@heretek-ai/openclaw 2026.3.30 → 2026.3.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/.buildstamp +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/chunks/command-registry-BeAmVjny.mjs +214 -0
  5. package/dist/chunks/command-registry-BnmWhMEa.mjs +214 -0
  6. package/dist/chunks/command-registry-CCc0vZoH.mjs +14 -0
  7. package/dist/chunks/command-registry-CLOY087q.mjs +14 -0
  8. package/dist/chunks/command-registry-CjAG33h3.mjs +14 -0
  9. package/dist/chunks/command-registry-DPx6M6gw.mjs +214 -0
  10. package/dist/chunks/completion-cli-BDWbmV-o.mjs +448 -0
  11. package/dist/chunks/completion-cli-CBrKGQfJ.mjs +17 -0
  12. package/dist/chunks/completion-cli-CpJ8IzQO.mjs +448 -0
  13. package/dist/chunks/completion-cli-CwouPhbG.mjs +17 -0
  14. package/dist/chunks/completion-cli-DuMZk0lN.mjs +448 -0
  15. package/dist/chunks/completion-cli-DxUdlYt0.mjs +17 -0
  16. package/dist/chunks/doctor-completion-1UqU9aiy.mjs +92 -0
  17. package/dist/chunks/doctor-completion-B_LLsQm-.mjs +92 -0
  18. package/dist/chunks/doctor-completion-CCuL-Cen.mjs +92 -0
  19. package/dist/chunks/gateway-cli-Bc4J6-zj.mjs +43508 -0
  20. package/dist/chunks/gateway-cli-CqAlS2xh.mjs +43508 -0
  21. package/dist/chunks/gateway-cli-CxfnMGx8.mjs +43508 -0
  22. package/dist/chunks/onboard-CRZ2jxOE.mjs +601 -0
  23. package/dist/chunks/onboard-CyzbNCBF.mjs +601 -0
  24. package/dist/chunks/onboard-Y9qZW5yw.mjs +601 -0
  25. package/dist/chunks/program-B27s-BhZ.mjs +163 -0
  26. package/dist/chunks/program-B3JSAo3Q.mjs +163 -0
  27. package/dist/chunks/program-DVTI5ouc.mjs +163 -0
  28. package/dist/chunks/prompt-select-styled-AhC9B2Sr.mjs +5035 -0
  29. package/dist/chunks/prompt-select-styled-DWTJpQCH.mjs +5035 -0
  30. package/dist/chunks/prompt-select-styled-PxJbW1Dj.mjs +5035 -0
  31. package/dist/chunks/register.maintenance-DkQKQI29.mjs +685 -0
  32. package/dist/chunks/register.maintenance-DrxPWWzR.mjs +685 -0
  33. package/dist/chunks/register.maintenance-ofEvddjM.mjs +685 -0
  34. package/dist/chunks/register.onboard-3m3OGP7x.mjs +168 -0
  35. package/dist/chunks/register.onboard-BpL-OvP9.mjs +168 -0
  36. package/dist/chunks/register.onboard-CvtQ4Z6V.mjs +168 -0
  37. package/dist/chunks/register.setup-Dz3jKcQw.mjs +188 -0
  38. package/dist/chunks/register.setup-NRV53Eo_.mjs +188 -0
  39. package/dist/chunks/register.setup-xf9cH3sc.mjs +188 -0
  40. package/dist/chunks/register.subclis-B6xOze_R.mjs +319 -0
  41. package/dist/chunks/register.subclis-B_qUKZPW.mjs +13 -0
  42. package/dist/chunks/register.subclis-BvClctGE.mjs +319 -0
  43. package/dist/chunks/register.subclis-CXtcQnsP.mjs +13 -0
  44. package/dist/chunks/register.subclis-Dd7Q2x2W.mjs +13 -0
  45. package/dist/chunks/register.subclis-Dj9qGYdr.mjs +319 -0
  46. package/dist/chunks/run-main-BYaCWOd9.mjs +437 -0
  47. package/dist/chunks/run-main-CpZzBbaq.mjs +437 -0
  48. package/dist/chunks/run-main-nT8E6iSo.mjs +437 -0
  49. package/dist/chunks/setup-BufxzaUK.mjs +399 -0
  50. package/dist/chunks/setup-DHU6h2yc.mjs +399 -0
  51. package/dist/chunks/setup-Ddj3KzQ7.mjs +399 -0
  52. package/dist/chunks/setup.finalize-Cc2mg8-p.mjs +544 -0
  53. package/dist/chunks/setup.finalize-DVacBRaT.mjs +544 -0
  54. package/dist/chunks/setup.finalize-ZR-Hv0hQ.mjs +544 -0
  55. package/dist/chunks/update-cli-DK2TX2U4.mjs +1632 -0
  56. package/dist/chunks/update-cli-DWGkI141.mjs +1632 -0
  57. package/dist/chunks/update-cli-JcUKNsam.mjs +1632 -0
  58. package/dist/entry.mjs +1 -1
  59. package/dist/index.mjs +1 -1
  60. package/package.json +134 -134
@@ -0,0 +1,188 @@
1
+ import "./redact-CtGOTRBK.mjs";
2
+ import "./errors-CbvpN2RP.mjs";
3
+ import "./logger-vRSRu9wD.mjs";
4
+ import "./paths-CNST7z3O.mjs";
5
+ import "./tmp-openclaw-dir-BeWwpCKM.mjs";
6
+ import { r as theme } from "./theme-w86ra_7m.mjs";
7
+ import "./globals-DZFR3wyP.mjs";
8
+ import { m as defaultRuntime } from "./subsystem-yLe4Gjha.mjs";
9
+ import "./ansi-BJ9IOlIp.mjs";
10
+ import "./boolean-Bwxxidw8.mjs";
11
+ import "./env-9fhyzTaG.mjs";
12
+ import { S as shortenHomePath } from "./utils-Dc9DiBqf.mjs";
13
+ import { t as formatDocsLink } from "./links-BNNF54ea.mjs";
14
+ import { t as hasExplicitOptions } from "./command-options-CMEANk0N.mjs";
15
+ import "./agent-scope-CnAwGoC2.mjs";
16
+ import "./boundary-path-DnlNnNbU.mjs";
17
+ import "./boundary-file-read-BB4JbZzx.mjs";
18
+ import "./logger-DWOgrQoS.mjs";
19
+ import "./exec-DX0zVVG7.mjs";
20
+ import "./openclaw-root-CSfnLaqO.mjs";
21
+ import { d as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR } from "./workspace-CoFl73GV.mjs";
22
+ import "./model-selection-BJk_hQeE.mjs";
23
+ import { g as writeConfigFile, i as createConfigIO } from "./io-CDQGJKjg.mjs";
24
+ import "./shell-env-CP5vTYhw.mjs";
25
+ import "./safe-text-Bsdm3bQS.mjs";
26
+ import "./version-Ckv-IbvB.mjs";
27
+ import "./env-substitution-DGlYO8jV.mjs";
28
+ import "./scan-paths-ahOy4FCQ.mjs";
29
+ import "./includes-DcO1JxKG.mjs";
30
+ import "./zod-schema.providers-core-CjdAU1TY.mjs";
31
+ import "./legacy-web-search-B1O8hiGy.mjs";
32
+ import "./schema-validator-BOH34EXk.mjs";
33
+ import "./registry-DBJv0dvl.mjs";
34
+ import "./config-state-kmbzTT63.mjs";
35
+ import "./min-host-version-EA11e8I5.mjs";
36
+ import "./manifest-registry-dO1qi1iI.mjs";
37
+ import "./runtime-guard-CWHkkioa.mjs";
38
+ import "./avatar-policy-uRVtZ7lJ.mjs";
39
+ import "./ip-BtMd9ssR.mjs";
40
+ import "./zod-schema.agent-runtime-BtGT59eP.mjs";
41
+ import "./zod-schema.core-CMT7g7UX.mjs";
42
+ import "./zod-schema.channels-BAG3dUtC.mjs";
43
+ import "./zod-schema.providers-whatsapp-qnpQepaf.mjs";
44
+ import "./config-Bhjk4Vel.mjs";
45
+ import "./process-scoped-map-BmLEe6nP.mjs";
46
+ import "./audit-fs-kb-rv_ZT.mjs";
47
+ import "./shared-VxKfp8Uy.mjs";
48
+ import "./resolve-DI6cKS4v.mjs";
49
+ import "./cli-name-lEyorNIN.mjs";
50
+ import "./command-format-D1DrcTDP.mjs";
51
+ import "./tailnet-Bc7IPWjH.mjs";
52
+ import "./net-OJiOmwY1.mjs";
53
+ import "./credentials-DTsHVnAc.mjs";
54
+ import "./message-channel-DCt8BIP7.mjs";
55
+ import "./store-B0V1qm_-.mjs";
56
+ import "./runtime-a4e8n7tq.mjs";
57
+ import "./registry-9YpVWxKb.mjs";
58
+ import "./plugins-D8oapapr.mjs";
59
+ import "./sessions-CYgBPqrc.mjs";
60
+ import { s as resolveSessionTranscriptsDir } from "./paths-CGxgQvpf.mjs";
61
+ import "./types-DoAKcnWC.mjs";
62
+ import "./session-write-lock-DE8KASyZ.mjs";
63
+ import "./json-files-BcpXnc9i.mjs";
64
+ import "./delivery-info-CGNfeMd6.mjs";
65
+ import "./method-scopes-hu-4urbi.mjs";
66
+ import "./call-CcXWxOVG.mjs";
67
+ import "./ws-Dv5Afaxu.mjs";
68
+ import "./control-ui-shared-Dhzx9It_.mjs";
69
+ import "./onboard-helpers-C5GCWoDO.mjs";
70
+ import "./wsl-BW8_A9_i.mjs";
71
+ import "./prompt-style-Dua6SIJh.mjs";
72
+ import "./progress-BxDdsPK3.mjs";
73
+ import "./registry-CFSnIRx_.mjs";
74
+ import "./internal-hooks-VOrTrqjW.mjs";
75
+ import "./accounts-DCMTPA3m.mjs";
76
+ import "./loader-CYgWRKc6.mjs";
77
+ import "./config-presence-DzY-U322.mjs";
78
+ import "./types-BaXbwBIP.mjs";
79
+ import "./hook-runner-global-z_Icpwvo.mjs";
80
+ import "./session-binding-service-Bmkk4TGJ.mjs";
81
+ import "./conversation-binding-elBCYjlA.mjs";
82
+ import "./sdk-alias-C5qDxQv2.mjs";
83
+ import "./bundle-lsp-DyU7-zol.mjs";
84
+ import { n as logConfigUpdated, t as formatConfigPath } from "./logging-CcQ-gmqC.mjs";
85
+ import "./status-BWLPyL8Y.mjs";
86
+ import { n as runCommandWithRuntime } from "./cli-utils-DA6vWpDg.mjs";
87
+ import "./note-CaQ2HD-A.mjs";
88
+ import "./clack-prompter-C0PG2vbx.mjs";
89
+ import "./setup.secret-input-DPX4L6ht.mjs";
90
+ import "./setup-Ddj3KzQ7.mjs";
91
+ import "./provider-auth-choices-DFywK1Pz.mjs";
92
+ import { t as setupWizardCommand } from "./onboard-Y9qZW5yw.mjs";
93
+ import JSON5 from "json5";
94
+ import fs from "node:fs/promises";
95
+
96
+ //#region src/commands/setup.ts
97
+ async function readConfigFileRaw(configPath) {
98
+ try {
99
+ const raw = await fs.readFile(configPath, "utf-8");
100
+ const parsed = JSON5.parse(raw);
101
+ if (parsed && typeof parsed === "object") return {
102
+ exists: true,
103
+ parsed
104
+ };
105
+ return {
106
+ exists: true,
107
+ parsed: {}
108
+ };
109
+ } catch {
110
+ return {
111
+ exists: false,
112
+ parsed: {}
113
+ };
114
+ }
115
+ }
116
+ async function setupCommand(opts, runtime = defaultRuntime) {
117
+ const desiredWorkspace = typeof opts?.workspace === "string" && opts.workspace.trim() ? opts.workspace.trim() : void 0;
118
+ const configPath = createConfigIO().configPath;
119
+ const existingRaw = await readConfigFileRaw(configPath);
120
+ const cfg = existingRaw.parsed;
121
+ const defaults = cfg.agents?.defaults ?? {};
122
+ const workspace = desiredWorkspace ?? defaults.workspace ?? DEFAULT_AGENT_WORKSPACE_DIR;
123
+ const next = {
124
+ ...cfg,
125
+ agents: {
126
+ ...cfg.agents,
127
+ defaults: {
128
+ ...defaults,
129
+ workspace
130
+ }
131
+ },
132
+ gateway: {
133
+ ...cfg.gateway,
134
+ mode: cfg.gateway?.mode ?? "local"
135
+ }
136
+ };
137
+ if (!existingRaw.exists || defaults.workspace !== workspace || cfg.gateway?.mode !== next.gateway?.mode) {
138
+ await writeConfigFile(next);
139
+ if (!existingRaw.exists) runtime.log(`Wrote ${formatConfigPath(configPath)}`);
140
+ else {
141
+ const updates = [];
142
+ if (defaults.workspace !== workspace) updates.push("set agents.defaults.workspace");
143
+ if (cfg.gateway?.mode !== next.gateway?.mode) updates.push("set gateway.mode");
144
+ logConfigUpdated(runtime, {
145
+ path: configPath,
146
+ suffix: updates.length > 0 ? `(${updates.join(", ")})` : void 0
147
+ });
148
+ }
149
+ } else runtime.log(`Config OK: ${formatConfigPath(configPath)}`);
150
+ const ws = await ensureAgentWorkspace({
151
+ dir: workspace,
152
+ ensureBootstrapFiles: !next.agents?.defaults?.skipBootstrap
153
+ });
154
+ runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
155
+ const sessionsDir = resolveSessionTranscriptsDir();
156
+ await fs.mkdir(sessionsDir, { recursive: true });
157
+ runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
158
+ }
159
+
160
+ //#endregion
161
+ //#region src/cli/program/register.setup.ts
162
+ function registerSetupCommand(program) {
163
+ program.command("setup").description("Initialize ~/.Heretek-AI/openclaw.json and the agent workspace").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/setup", "docs.openclaw.ai/cli/setup")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)").option("--wizard", "Run interactive onboarding", false).option("--non-interactive", "Run onboarding without prompts", false).option("--mode <mode>", "Onboard mode: local|remote").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").action(async (opts, command) => {
164
+ await runCommandWithRuntime(defaultRuntime, async () => {
165
+ const hasWizardFlags = hasExplicitOptions(command, [
166
+ "wizard",
167
+ "nonInteractive",
168
+ "mode",
169
+ "remoteUrl",
170
+ "remoteToken"
171
+ ]);
172
+ if (opts.wizard || hasWizardFlags) {
173
+ await setupWizardCommand({
174
+ workspace: opts.workspace,
175
+ nonInteractive: Boolean(opts.nonInteractive),
176
+ mode: opts.mode,
177
+ remoteUrl: opts.remoteUrl,
178
+ remoteToken: opts.remoteToken
179
+ }, defaultRuntime);
180
+ return;
181
+ }
182
+ await setupCommand({ workspace: opts.workspace }, defaultRuntime);
183
+ });
184
+ });
185
+ }
186
+
187
+ //#endregion
188
+ export { registerSetupCommand };
@@ -0,0 +1,188 @@
1
+ import "./redact-CtGOTRBK.mjs";
2
+ import "./errors-CbvpN2RP.mjs";
3
+ import "./logger-vRSRu9wD.mjs";
4
+ import "./paths-CNST7z3O.mjs";
5
+ import "./tmp-openclaw-dir-BeWwpCKM.mjs";
6
+ import { r as theme } from "./theme-w86ra_7m.mjs";
7
+ import "./globals-DZFR3wyP.mjs";
8
+ import { m as defaultRuntime } from "./subsystem-yLe4Gjha.mjs";
9
+ import "./ansi-BJ9IOlIp.mjs";
10
+ import "./boolean-Bwxxidw8.mjs";
11
+ import "./env-9fhyzTaG.mjs";
12
+ import { S as shortenHomePath } from "./utils-Dc9DiBqf.mjs";
13
+ import { t as formatDocsLink } from "./links-BNNF54ea.mjs";
14
+ import { t as hasExplicitOptions } from "./command-options-CMEANk0N.mjs";
15
+ import "./agent-scope-CnAwGoC2.mjs";
16
+ import "./boundary-path-DnlNnNbU.mjs";
17
+ import "./boundary-file-read-BB4JbZzx.mjs";
18
+ import "./logger-DWOgrQoS.mjs";
19
+ import "./exec-DX0zVVG7.mjs";
20
+ import "./openclaw-root-CSfnLaqO.mjs";
21
+ import { d as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR } from "./workspace-CoFl73GV.mjs";
22
+ import "./model-selection-BJk_hQeE.mjs";
23
+ import { g as writeConfigFile, i as createConfigIO } from "./io-CDQGJKjg.mjs";
24
+ import "./shell-env-CP5vTYhw.mjs";
25
+ import "./safe-text-Bsdm3bQS.mjs";
26
+ import "./version-Ckv-IbvB.mjs";
27
+ import "./env-substitution-DGlYO8jV.mjs";
28
+ import "./scan-paths-ahOy4FCQ.mjs";
29
+ import "./includes-DcO1JxKG.mjs";
30
+ import "./zod-schema.providers-core-CjdAU1TY.mjs";
31
+ import "./legacy-web-search-B1O8hiGy.mjs";
32
+ import "./schema-validator-BOH34EXk.mjs";
33
+ import "./registry-DBJv0dvl.mjs";
34
+ import "./config-state-kmbzTT63.mjs";
35
+ import "./min-host-version-EA11e8I5.mjs";
36
+ import "./manifest-registry-dO1qi1iI.mjs";
37
+ import "./runtime-guard-CWHkkioa.mjs";
38
+ import "./avatar-policy-uRVtZ7lJ.mjs";
39
+ import "./ip-BtMd9ssR.mjs";
40
+ import "./zod-schema.agent-runtime-BtGT59eP.mjs";
41
+ import "./zod-schema.core-CMT7g7UX.mjs";
42
+ import "./zod-schema.channels-BAG3dUtC.mjs";
43
+ import "./zod-schema.providers-whatsapp-qnpQepaf.mjs";
44
+ import "./config-Bhjk4Vel.mjs";
45
+ import "./process-scoped-map-BmLEe6nP.mjs";
46
+ import "./audit-fs-kb-rv_ZT.mjs";
47
+ import "./shared-VxKfp8Uy.mjs";
48
+ import "./resolve-DI6cKS4v.mjs";
49
+ import "./cli-name-lEyorNIN.mjs";
50
+ import "./command-format-D1DrcTDP.mjs";
51
+ import "./tailnet-Bc7IPWjH.mjs";
52
+ import "./net-OJiOmwY1.mjs";
53
+ import "./credentials-DTsHVnAc.mjs";
54
+ import "./message-channel-DCt8BIP7.mjs";
55
+ import "./store-B0V1qm_-.mjs";
56
+ import "./runtime-a4e8n7tq.mjs";
57
+ import "./registry-9YpVWxKb.mjs";
58
+ import "./plugins-D8oapapr.mjs";
59
+ import "./sessions-CYgBPqrc.mjs";
60
+ import { s as resolveSessionTranscriptsDir } from "./paths-CGxgQvpf.mjs";
61
+ import "./types-DoAKcnWC.mjs";
62
+ import "./session-write-lock-DE8KASyZ.mjs";
63
+ import "./json-files-BcpXnc9i.mjs";
64
+ import "./delivery-info-CGNfeMd6.mjs";
65
+ import "./method-scopes-hu-4urbi.mjs";
66
+ import "./call-CcXWxOVG.mjs";
67
+ import "./ws-Dv5Afaxu.mjs";
68
+ import "./control-ui-shared-Dhzx9It_.mjs";
69
+ import "./onboard-helpers-C5GCWoDO.mjs";
70
+ import "./wsl-BW8_A9_i.mjs";
71
+ import "./prompt-style-Dua6SIJh.mjs";
72
+ import "./progress-BxDdsPK3.mjs";
73
+ import "./registry-CFSnIRx_.mjs";
74
+ import "./internal-hooks-VOrTrqjW.mjs";
75
+ import "./accounts-DCMTPA3m.mjs";
76
+ import "./loader-CYgWRKc6.mjs";
77
+ import "./config-presence-DzY-U322.mjs";
78
+ import "./types-BaXbwBIP.mjs";
79
+ import "./hook-runner-global-z_Icpwvo.mjs";
80
+ import "./session-binding-service-Bmkk4TGJ.mjs";
81
+ import "./conversation-binding-elBCYjlA.mjs";
82
+ import "./sdk-alias-C5qDxQv2.mjs";
83
+ import "./bundle-lsp-DyU7-zol.mjs";
84
+ import { n as logConfigUpdated, t as formatConfigPath } from "./logging-CcQ-gmqC.mjs";
85
+ import "./status-BWLPyL8Y.mjs";
86
+ import { n as runCommandWithRuntime } from "./cli-utils-DA6vWpDg.mjs";
87
+ import "./note-CaQ2HD-A.mjs";
88
+ import "./clack-prompter-C0PG2vbx.mjs";
89
+ import "./setup.secret-input-DPX4L6ht.mjs";
90
+ import "./setup-DHU6h2yc.mjs";
91
+ import "./provider-auth-choices-DFywK1Pz.mjs";
92
+ import { t as setupWizardCommand } from "./onboard-CRZ2jxOE.mjs";
93
+ import JSON5 from "json5";
94
+ import fs from "node:fs/promises";
95
+
96
+ //#region src/commands/setup.ts
97
+ async function readConfigFileRaw(configPath) {
98
+ try {
99
+ const raw = await fs.readFile(configPath, "utf-8");
100
+ const parsed = JSON5.parse(raw);
101
+ if (parsed && typeof parsed === "object") return {
102
+ exists: true,
103
+ parsed
104
+ };
105
+ return {
106
+ exists: true,
107
+ parsed: {}
108
+ };
109
+ } catch {
110
+ return {
111
+ exists: false,
112
+ parsed: {}
113
+ };
114
+ }
115
+ }
116
+ async function setupCommand(opts, runtime = defaultRuntime) {
117
+ const desiredWorkspace = typeof opts?.workspace === "string" && opts.workspace.trim() ? opts.workspace.trim() : void 0;
118
+ const configPath = createConfigIO().configPath;
119
+ const existingRaw = await readConfigFileRaw(configPath);
120
+ const cfg = existingRaw.parsed;
121
+ const defaults = cfg.agents?.defaults ?? {};
122
+ const workspace = desiredWorkspace ?? defaults.workspace ?? DEFAULT_AGENT_WORKSPACE_DIR;
123
+ const next = {
124
+ ...cfg,
125
+ agents: {
126
+ ...cfg.agents,
127
+ defaults: {
128
+ ...defaults,
129
+ workspace
130
+ }
131
+ },
132
+ gateway: {
133
+ ...cfg.gateway,
134
+ mode: cfg.gateway?.mode ?? "local"
135
+ }
136
+ };
137
+ if (!existingRaw.exists || defaults.workspace !== workspace || cfg.gateway?.mode !== next.gateway?.mode) {
138
+ await writeConfigFile(next);
139
+ if (!existingRaw.exists) runtime.log(`Wrote ${formatConfigPath(configPath)}`);
140
+ else {
141
+ const updates = [];
142
+ if (defaults.workspace !== workspace) updates.push("set agents.defaults.workspace");
143
+ if (cfg.gateway?.mode !== next.gateway?.mode) updates.push("set gateway.mode");
144
+ logConfigUpdated(runtime, {
145
+ path: configPath,
146
+ suffix: updates.length > 0 ? `(${updates.join(", ")})` : void 0
147
+ });
148
+ }
149
+ } else runtime.log(`Config OK: ${formatConfigPath(configPath)}`);
150
+ const ws = await ensureAgentWorkspace({
151
+ dir: workspace,
152
+ ensureBootstrapFiles: !next.agents?.defaults?.skipBootstrap
153
+ });
154
+ runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
155
+ const sessionsDir = resolveSessionTranscriptsDir();
156
+ await fs.mkdir(sessionsDir, { recursive: true });
157
+ runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
158
+ }
159
+
160
+ //#endregion
161
+ //#region src/cli/program/register.setup.ts
162
+ function registerSetupCommand(program) {
163
+ program.command("setup").description("Initialize ~/.Heretek-AI/openclaw.json and the agent workspace").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/setup", "docs.openclaw.ai/cli/setup")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)").option("--wizard", "Run interactive onboarding", false).option("--non-interactive", "Run onboarding without prompts", false).option("--mode <mode>", "Onboard mode: local|remote").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").action(async (opts, command) => {
164
+ await runCommandWithRuntime(defaultRuntime, async () => {
165
+ const hasWizardFlags = hasExplicitOptions(command, [
166
+ "wizard",
167
+ "nonInteractive",
168
+ "mode",
169
+ "remoteUrl",
170
+ "remoteToken"
171
+ ]);
172
+ if (opts.wizard || hasWizardFlags) {
173
+ await setupWizardCommand({
174
+ workspace: opts.workspace,
175
+ nonInteractive: Boolean(opts.nonInteractive),
176
+ mode: opts.mode,
177
+ remoteUrl: opts.remoteUrl,
178
+ remoteToken: opts.remoteToken
179
+ }, defaultRuntime);
180
+ return;
181
+ }
182
+ await setupCommand({ workspace: opts.workspace }, defaultRuntime);
183
+ });
184
+ });
185
+ }
186
+
187
+ //#endregion
188
+ export { registerSetupCommand };
@@ -0,0 +1,188 @@
1
+ import "./redact-CtGOTRBK.mjs";
2
+ import "./errors-CbvpN2RP.mjs";
3
+ import "./logger-vRSRu9wD.mjs";
4
+ import "./paths-CNST7z3O.mjs";
5
+ import "./tmp-openclaw-dir-BeWwpCKM.mjs";
6
+ import { r as theme } from "./theme-w86ra_7m.mjs";
7
+ import "./globals-DZFR3wyP.mjs";
8
+ import { m as defaultRuntime } from "./subsystem-yLe4Gjha.mjs";
9
+ import "./ansi-BJ9IOlIp.mjs";
10
+ import "./boolean-Bwxxidw8.mjs";
11
+ import "./env-9fhyzTaG.mjs";
12
+ import { S as shortenHomePath } from "./utils-Dc9DiBqf.mjs";
13
+ import { t as formatDocsLink } from "./links-BNNF54ea.mjs";
14
+ import { t as hasExplicitOptions } from "./command-options-CMEANk0N.mjs";
15
+ import "./agent-scope-CnAwGoC2.mjs";
16
+ import "./boundary-path-DnlNnNbU.mjs";
17
+ import "./boundary-file-read-BB4JbZzx.mjs";
18
+ import "./logger-DWOgrQoS.mjs";
19
+ import "./exec-DX0zVVG7.mjs";
20
+ import "./openclaw-root-CSfnLaqO.mjs";
21
+ import { d as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR } from "./workspace-CoFl73GV.mjs";
22
+ import "./model-selection-BJk_hQeE.mjs";
23
+ import { g as writeConfigFile, i as createConfigIO } from "./io-CDQGJKjg.mjs";
24
+ import "./shell-env-CP5vTYhw.mjs";
25
+ import "./safe-text-Bsdm3bQS.mjs";
26
+ import "./version-Ckv-IbvB.mjs";
27
+ import "./env-substitution-DGlYO8jV.mjs";
28
+ import "./scan-paths-ahOy4FCQ.mjs";
29
+ import "./includes-DcO1JxKG.mjs";
30
+ import "./zod-schema.providers-core-CjdAU1TY.mjs";
31
+ import "./legacy-web-search-B1O8hiGy.mjs";
32
+ import "./schema-validator-BOH34EXk.mjs";
33
+ import "./registry-DBJv0dvl.mjs";
34
+ import "./config-state-kmbzTT63.mjs";
35
+ import "./min-host-version-EA11e8I5.mjs";
36
+ import "./manifest-registry-dO1qi1iI.mjs";
37
+ import "./runtime-guard-CWHkkioa.mjs";
38
+ import "./avatar-policy-uRVtZ7lJ.mjs";
39
+ import "./ip-BtMd9ssR.mjs";
40
+ import "./zod-schema.agent-runtime-BtGT59eP.mjs";
41
+ import "./zod-schema.core-CMT7g7UX.mjs";
42
+ import "./zod-schema.channels-BAG3dUtC.mjs";
43
+ import "./zod-schema.providers-whatsapp-qnpQepaf.mjs";
44
+ import "./config-Bhjk4Vel.mjs";
45
+ import "./process-scoped-map-BmLEe6nP.mjs";
46
+ import "./audit-fs-kb-rv_ZT.mjs";
47
+ import "./shared-VxKfp8Uy.mjs";
48
+ import "./resolve-DI6cKS4v.mjs";
49
+ import "./cli-name-lEyorNIN.mjs";
50
+ import "./command-format-D1DrcTDP.mjs";
51
+ import "./tailnet-Bc7IPWjH.mjs";
52
+ import "./net-OJiOmwY1.mjs";
53
+ import "./credentials-DTsHVnAc.mjs";
54
+ import "./message-channel-DCt8BIP7.mjs";
55
+ import "./store-B0V1qm_-.mjs";
56
+ import "./runtime-a4e8n7tq.mjs";
57
+ import "./registry-9YpVWxKb.mjs";
58
+ import "./plugins-D8oapapr.mjs";
59
+ import "./sessions-CYgBPqrc.mjs";
60
+ import { s as resolveSessionTranscriptsDir } from "./paths-CGxgQvpf.mjs";
61
+ import "./types-DoAKcnWC.mjs";
62
+ import "./session-write-lock-DE8KASyZ.mjs";
63
+ import "./json-files-BcpXnc9i.mjs";
64
+ import "./delivery-info-CGNfeMd6.mjs";
65
+ import "./method-scopes-hu-4urbi.mjs";
66
+ import "./call-CcXWxOVG.mjs";
67
+ import "./ws-Dv5Afaxu.mjs";
68
+ import "./control-ui-shared-Dhzx9It_.mjs";
69
+ import "./onboard-helpers-C5GCWoDO.mjs";
70
+ import "./wsl-BW8_A9_i.mjs";
71
+ import "./prompt-style-Dua6SIJh.mjs";
72
+ import "./progress-BxDdsPK3.mjs";
73
+ import "./registry-CFSnIRx_.mjs";
74
+ import "./internal-hooks-VOrTrqjW.mjs";
75
+ import "./accounts-DCMTPA3m.mjs";
76
+ import "./loader-CYgWRKc6.mjs";
77
+ import "./config-presence-DzY-U322.mjs";
78
+ import "./types-BaXbwBIP.mjs";
79
+ import "./hook-runner-global-z_Icpwvo.mjs";
80
+ import "./session-binding-service-Bmkk4TGJ.mjs";
81
+ import "./conversation-binding-elBCYjlA.mjs";
82
+ import "./sdk-alias-C5qDxQv2.mjs";
83
+ import "./bundle-lsp-DyU7-zol.mjs";
84
+ import { n as logConfigUpdated, t as formatConfigPath } from "./logging-CcQ-gmqC.mjs";
85
+ import "./status-BWLPyL8Y.mjs";
86
+ import { n as runCommandWithRuntime } from "./cli-utils-DA6vWpDg.mjs";
87
+ import "./note-CaQ2HD-A.mjs";
88
+ import "./clack-prompter-C0PG2vbx.mjs";
89
+ import "./setup.secret-input-DPX4L6ht.mjs";
90
+ import "./setup-BufxzaUK.mjs";
91
+ import "./provider-auth-choices-DFywK1Pz.mjs";
92
+ import { t as setupWizardCommand } from "./onboard-CyzbNCBF.mjs";
93
+ import JSON5 from "json5";
94
+ import fs from "node:fs/promises";
95
+
96
+ //#region src/commands/setup.ts
97
+ async function readConfigFileRaw(configPath) {
98
+ try {
99
+ const raw = await fs.readFile(configPath, "utf-8");
100
+ const parsed = JSON5.parse(raw);
101
+ if (parsed && typeof parsed === "object") return {
102
+ exists: true,
103
+ parsed
104
+ };
105
+ return {
106
+ exists: true,
107
+ parsed: {}
108
+ };
109
+ } catch {
110
+ return {
111
+ exists: false,
112
+ parsed: {}
113
+ };
114
+ }
115
+ }
116
+ async function setupCommand(opts, runtime = defaultRuntime) {
117
+ const desiredWorkspace = typeof opts?.workspace === "string" && opts.workspace.trim() ? opts.workspace.trim() : void 0;
118
+ const configPath = createConfigIO().configPath;
119
+ const existingRaw = await readConfigFileRaw(configPath);
120
+ const cfg = existingRaw.parsed;
121
+ const defaults = cfg.agents?.defaults ?? {};
122
+ const workspace = desiredWorkspace ?? defaults.workspace ?? DEFAULT_AGENT_WORKSPACE_DIR;
123
+ const next = {
124
+ ...cfg,
125
+ agents: {
126
+ ...cfg.agents,
127
+ defaults: {
128
+ ...defaults,
129
+ workspace
130
+ }
131
+ },
132
+ gateway: {
133
+ ...cfg.gateway,
134
+ mode: cfg.gateway?.mode ?? "local"
135
+ }
136
+ };
137
+ if (!existingRaw.exists || defaults.workspace !== workspace || cfg.gateway?.mode !== next.gateway?.mode) {
138
+ await writeConfigFile(next);
139
+ if (!existingRaw.exists) runtime.log(`Wrote ${formatConfigPath(configPath)}`);
140
+ else {
141
+ const updates = [];
142
+ if (defaults.workspace !== workspace) updates.push("set agents.defaults.workspace");
143
+ if (cfg.gateway?.mode !== next.gateway?.mode) updates.push("set gateway.mode");
144
+ logConfigUpdated(runtime, {
145
+ path: configPath,
146
+ suffix: updates.length > 0 ? `(${updates.join(", ")})` : void 0
147
+ });
148
+ }
149
+ } else runtime.log(`Config OK: ${formatConfigPath(configPath)}`);
150
+ const ws = await ensureAgentWorkspace({
151
+ dir: workspace,
152
+ ensureBootstrapFiles: !next.agents?.defaults?.skipBootstrap
153
+ });
154
+ runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
155
+ const sessionsDir = resolveSessionTranscriptsDir();
156
+ await fs.mkdir(sessionsDir, { recursive: true });
157
+ runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
158
+ }
159
+
160
+ //#endregion
161
+ //#region src/cli/program/register.setup.ts
162
+ function registerSetupCommand(program) {
163
+ program.command("setup").description("Initialize ~/.Heretek-AI/openclaw.json and the agent workspace").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/setup", "docs.openclaw.ai/cli/setup")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)").option("--wizard", "Run interactive onboarding", false).option("--non-interactive", "Run onboarding without prompts", false).option("--mode <mode>", "Onboard mode: local|remote").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").action(async (opts, command) => {
164
+ await runCommandWithRuntime(defaultRuntime, async () => {
165
+ const hasWizardFlags = hasExplicitOptions(command, [
166
+ "wizard",
167
+ "nonInteractive",
168
+ "mode",
169
+ "remoteUrl",
170
+ "remoteToken"
171
+ ]);
172
+ if (opts.wizard || hasWizardFlags) {
173
+ await setupWizardCommand({
174
+ workspace: opts.workspace,
175
+ nonInteractive: Boolean(opts.nonInteractive),
176
+ mode: opts.mode,
177
+ remoteUrl: opts.remoteUrl,
178
+ remoteToken: opts.remoteToken
179
+ }, defaultRuntime);
180
+ return;
181
+ }
182
+ await setupCommand({ workspace: opts.workspace }, defaultRuntime);
183
+ });
184
+ });
185
+ }
186
+
187
+ //#endregion
188
+ export { registerSetupCommand };