diff --git a/src/commands/onboard-config.ts b/src/commands/onboard-config.ts new file mode 100644 index 00000000000..dc7c8cd4faa --- /dev/null +++ b/src/commands/onboard-config.ts @@ -0,0 +1,21 @@ +import type { OpenClawConfig } from "../config/config.js"; + +export function applyOnboardingLocalWorkspaceConfig( + baseConfig: OpenClawConfig, + workspaceDir: string, +): OpenClawConfig { + return { + ...baseConfig, + agents: { + ...baseConfig.agents, + defaults: { + ...baseConfig.agents?.defaults, + workspace: workspaceDir, + }, + }, + gateway: { + ...baseConfig.gateway, + mode: "local", + }, + }; +} diff --git a/src/commands/onboard-non-interactive/local.ts b/src/commands/onboard-non-interactive/local.ts index 3768c7a8297..7c64f1ca6b1 100644 --- a/src/commands/onboard-non-interactive/local.ts +++ b/src/commands/onboard-non-interactive/local.ts @@ -6,6 +6,7 @@ import { resolveGatewayPort, writeConfigFile } from "../../config/config.js"; import { logConfigUpdated } from "../../config/logging.js"; import { DEFAULT_GATEWAY_DAEMON_RUNTIME } from "../daemon-runtime.js"; import { healthCommand } from "../health.js"; +import { applyOnboardingLocalWorkspaceConfig } from "../onboard-config.js"; import { applyWizardMetadata, DEFAULT_WORKSPACE, @@ -35,20 +36,7 @@ export async function runNonInteractiveOnboardingLocal(params: { defaultWorkspaceDir: DEFAULT_WORKSPACE, }); - let nextConfig: OpenClawConfig = { - ...baseConfig, - agents: { - ...baseConfig.agents, - defaults: { - ...baseConfig.agents?.defaults, - workspace: workspaceDir, - }, - }, - gateway: { - ...baseConfig.gateway, - mode: "local", - }, - }; + let nextConfig: OpenClawConfig = applyOnboardingLocalWorkspaceConfig(baseConfig, workspaceDir); const inferredAuthChoice = inferAuthChoiceFromFlags(opts); if (!opts.authChoice && inferredAuthChoice.matches.length > 1) { diff --git a/src/wizard/onboarding.ts b/src/wizard/onboarding.ts index c61d6186dd7..ae15e406e72 100644 --- a/src/wizard/onboarding.ts +++ b/src/wizard/onboarding.ts @@ -18,6 +18,7 @@ import { } from "../commands/auth-choice.js"; import { applyPrimaryModel, promptDefaultModel } from "../commands/model-picker.js"; import { setupChannels } from "../commands/onboard-channels.js"; +import { applyOnboardingLocalWorkspaceConfig } from "../commands/onboard-config.js"; import { promptCustomApiConfig } from "../commands/onboard-custom.js"; import { applyWizardMetadata, @@ -352,20 +353,7 @@ export async function runOnboardingWizard( const workspaceDir = resolveUserPath(workspaceInput.trim() || DEFAULT_WORKSPACE); - let nextConfig: OpenClawConfig = { - ...baseConfig, - agents: { - ...baseConfig.agents, - defaults: { - ...baseConfig.agents?.defaults, - workspace: workspaceDir, - }, - }, - gateway: { - ...baseConfig.gateway, - mode: "local", - }, - }; + let nextConfig: OpenClawConfig = applyOnboardingLocalWorkspaceConfig(baseConfig, workspaceDir); const authStore = ensureAuthProfileStore(undefined, { allowKeychainPrompt: false,