@termix-it/cryptoclaw 1.0.1 → 1.0.2

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 (137) hide show
  1. package/CHANGELOG.md +93 -93
  2. package/assets/favicon.svg +22 -0
  3. package/dist/{acp-cli-Bsrf851G.js → acp-cli-CBFKSvET.js} +2 -2
  4. package/dist/{acp-cli-C9D24JzU.js → acp-cli-CEPAR8vh.js} +2 -2
  5. package/dist/{agent-BH-rLX4t.js → agent-8dTCwA-D.js} +2 -2
  6. package/dist/{agent-mns7e_gL.js → agent-sjalTGVA.js} +2 -2
  7. package/dist/build-info.json +3 -3
  8. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  9. package/dist/{channel-options-CUOi5M0r.js → channel-options-B951pKy8.js} +1 -1
  10. package/dist/{channel-options-B3XNSAJG.js → channel-options-DJsSCLD8.js} +1 -1
  11. package/dist/{channels-cli-BRxxmnVq.js → channels-cli-Fv9FTQXn.js} +6 -6
  12. package/dist/{channels-cli-xTlvzb2Z.js → channels-cli-Lq6EWRJ9.js} +5 -5
  13. package/dist/cli/daemon-cli.js +1 -1
  14. package/dist/{cli-B7NiNFc2.js → cli-Bzyu6rQE.js} +2 -2
  15. package/dist/{cli-6yV4qEGI.js → cli-DJnpasWd.js} +2 -2
  16. package/dist/{command-options-DeWanQ_1.js → command-options-DBpEhnW5.js} +1 -1
  17. package/dist/{completion-cli-DyiCPCwN.js → completion-cli-Bd5FrGHg.js} +25 -25
  18. package/dist/{completion-cli-BIA4Amxj.js → completion-cli-Cs-B1hk7.js} +1 -1
  19. package/dist/{config-guard-C4vrsjgm.js → config-guard-Csl9Ubn5.js} +36 -36
  20. package/dist/{configure-BupCndyG.js → configure-CeTzu0Ed.js} +14 -14
  21. package/dist/{configure-B28_m98z.js → configure-CxPJaP8X.js} +14 -14
  22. package/dist/control-ui/apple-touch-icon.png +0 -0
  23. package/dist/control-ui/assets/{index-DQ-7PWhX.js → index-BdjmXlOn.js} +372 -363
  24. package/dist/control-ui/assets/index-BdjmXlOn.js.map +1 -0
  25. package/dist/control-ui/assets/{index-nlpH70Eh.css → index-BxkHytum.css} +1 -1
  26. package/dist/control-ui/favicon-32.png +0 -0
  27. package/dist/control-ui/favicon.ico +0 -0
  28. package/dist/control-ui/favicon.svg +4 -4
  29. package/dist/control-ui/index.html +2 -2
  30. package/dist/{cron-cli-CaCwFGvb.js → cron-cli-D8gKivN0.js} +2 -2
  31. package/dist/{cron-cli-v8FMB7_N.js → cron-cli-yC5Cy77c.js} +2 -2
  32. package/dist/{daemon-cli-JZ9ONoBh.js → daemon-cli-BM8zb09s.js} +5 -5
  33. package/dist/{daemon-cli-D24Obngu.js → daemon-cli-D8AC0Q_A.js} +5 -5
  34. package/dist/{deps-DY5l__pK.js → deps-BhcPiVuz.js} +1 -1
  35. package/dist/{deps-BDQ4UyT5.js → deps-ZGqhOjkR.js} +1 -1
  36. package/dist/{directory-cli-B8IA2RSF.js → directory-cli--IOOMz66.js} +2 -2
  37. package/dist/{directory-cli-C9y2B84i.js → directory-cli-DGFlpQ4T.js} +2 -2
  38. package/dist/{dns-cli-DoO4a6op.js → dns-cli-DkhYuREi.js} +2 -2
  39. package/dist/{dns-cli-DJUkN_WU.js → dns-cli-fQ4wu1HJ.js} +2 -2
  40. package/dist/{docs-cli-CcQ9shjL.js → docs-cli-BgnDzmFT.js} +5 -5
  41. package/dist/{docs-cli-CPus_TqL.js → docs-cli-CPaJzUSD.js} +5 -5
  42. package/dist/{doctor-D3VWObNR.js → doctor-D6M3Hc0a.js} +3 -3
  43. package/dist/{doctor-ClJURW58.js → doctor-DRRL31R4.js} +3 -3
  44. package/dist/entry.js +1 -1
  45. package/dist/{exec-approvals-cli-DC9v48w9.js → exec-approvals-cli-BhEdzGao.js} +3 -3
  46. package/dist/{exec-approvals-cli-Djev4HNk.js → exec-approvals-cli-DHMroOAh.js} +3 -3
  47. package/dist/extensionAPI.js +8 -8
  48. package/dist/{gateway-cli-CHZrqsVp.js → gateway-cli-CbQ4xoXp.js} +14 -14
  49. package/dist/{gateway-cli--xOlaN5f.js → gateway-cli-DO7lIBZ5.js} +15 -15
  50. package/dist/{github-copilot-auth-CLh6feLw.js → github-copilot-auth-D6I2MUxi.js} +1 -1
  51. package/dist/{github-copilot-auth-CeBZ5KDq.js → github-copilot-auth-DvShXmvU.js} +1 -1
  52. package/dist/{health-format-QWTDdHdV.js → health-format-DlvTEKqI.js} +1 -1
  53. package/dist/{health-format-D0ylScGO.js → health-format-SZpheYuf.js} +1 -1
  54. package/dist/hooks/bundled/boot-md/HOOK.md +1 -1
  55. package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
  56. package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
  57. package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
  58. package/dist/{hooks-cli-IS7KFMZy.js → hooks-cli-CedlcxxR.js} +4 -4
  59. package/dist/{hooks-cli-C9066q7q.js → hooks-cli-DRarvOK2.js} +4 -4
  60. package/dist/index.js +38 -38
  61. package/dist/{links-DXtV_A64.js → links-Dv1EDiwa.js} +1 -1
  62. package/dist/{links-KcaRpMJg.js → links-kbubTyay.js} +1 -1
  63. package/dist/{loader-BNqYr2Am.js → loader-DE_vKAH5.js} +10 -10
  64. package/dist/{logs-cli-BRQOdLoD.js → logs-cli-_DHuOrR4.js} +2 -2
  65. package/dist/{logs-cli-D08L6RIX.js → logs-cli-emy-Mg4S.js} +2 -2
  66. package/dist/{models-cli-CovM2RsI.js → models-cli-CdrDfutq.js} +4 -4
  67. package/dist/{models-cli-D0bxf-ID.js → models-cli-CgIqfTHx.js} +4 -4
  68. package/dist/{node-cli-whSrpDNN.js → node-cli-Bsn9lQ6O.js} +2 -2
  69. package/dist/{node-cli-DoMmvbg-.js → node-cli-Ckvs6bcI.js} +2 -2
  70. package/dist/{nodes-cli-CeMIAaHZ.js → nodes-cli-BELOAYB6.js} +2 -2
  71. package/dist/{nodes-cli-DRmkJeRw.js → nodes-cli-CTQPoAcf.js} +2 -2
  72. package/dist/{onboard-channels-uZ5vLniX.js → onboard-channels-B5qHfMk8.js} +2 -2
  73. package/dist/{onboard-channels-xteKATz4.js → onboard-channels-BgchLTab.js} +2 -2
  74. package/dist/{onboard-skills-tUnJDYV8.js → onboard-skills-CyG0xbsu.js} +7 -7
  75. package/dist/{onboard-skills-CKpZ4Xwu.js → onboard-skills-DEnuz7z3.js} +7 -7
  76. package/dist/{onboarding-DX15S5UW.js → onboarding-B6aTF0nd.js} +18 -18
  77. package/dist/{pairing-cli-Oq8UZJRJ.js → pairing-cli-C_PnyRzK.js} +2 -2
  78. package/dist/{pairing-cli-B7Bji_j_.js → pairing-cli-CocCRLzF.js} +2 -2
  79. package/dist/plugin-sdk/index.js +1 -1
  80. package/dist/{plugins-cli-BVoSu7m7.js → plugins-cli-DB1NYN9W.js} +5 -5
  81. package/dist/{plugins-cli-ChkSbzKF.js → plugins-cli-Dn9I2nvT.js} +5 -5
  82. package/dist/{program-DpxSYPmu.js → program-CL1V1uQh.js} +18 -18
  83. package/dist/{register.subclis-DG215F73.js → register.subclis-Bf9yES9h.js} +26 -26
  84. package/dist/{reply-3TWXjNUA.js → reply-qWVVjmhR.js} +10 -10
  85. package/dist/{run-main-D43qwCZX.js → run-main-C12Z921D.js} +19 -19
  86. package/dist/{sandbox-cli-BPdnq1hk.js → sandbox-cli-DVfJ38Q2.js} +4 -4
  87. package/dist/{sandbox-cli-a3oEVi7W.js → sandbox-cli-DqrtTHAP.js} +4 -4
  88. package/dist/{security-cli-Devsjfv_.js → security-cli-2AAajc4y.js} +2 -2
  89. package/dist/{security-cli-C1XbzHNF.js → security-cli-YL2ZTkkR.js} +2 -2
  90. package/dist/{server-node-events-BVLdeCJU.js → server-node-events-uUSBf7hZ.js} +4 -4
  91. package/dist/{server-node-events-DLZj55Ir.js → server-node-events-x6ZMjAs1.js} +4 -4
  92. package/dist/{skills-cli-DnSEVLxn.js → skills-cli-CYZbvr7O.js} +2 -2
  93. package/dist/{skills-cli-g1nC-Yz9.js → skills-cli-eDUNGpwb.js} +2 -2
  94. package/dist/{status-D09U-Iku.js → status-BnbwLzB2.js} +1 -1
  95. package/dist/{status-1TQxVU1M.js → status-CN2V3fan.js} +18 -18
  96. package/dist/{status-CbMg399g.js → status-DCrBN9vJ.js} +1 -1
  97. package/dist/{system-cli-D3UizeGy.js → system-cli-BEmIixtY.js} +2 -2
  98. package/dist/{system-cli-DJ_e6msK.js → system-cli-ZxnlO0-v.js} +2 -2
  99. package/dist/{tui-cli-PKJ39Zsl.js → tui-cli-B9iCyCn2.js} +2 -2
  100. package/dist/{tui-cli-DPhl5a66.js → tui-cli-iakTIAvk.js} +2 -2
  101. package/dist/{update-cli-C5x50A17.js → update-cli-DUO4CVNB.js} +12 -12
  102. package/dist/{update-cli-DKLyK_Tu.js → update-cli-DlXzjuIc.js} +11 -11
  103. package/dist/{update-runner-DotP-T6Y.js → update-runner-L1EJYQRF.js} +2 -2
  104. package/dist/{update-runner-vOge0-Wj.js → update-runner-eJ773fp-.js} +2 -2
  105. package/dist/{webhooks-cli-DEqtDAwW.js → webhooks-cli-BLHZn_at.js} +2 -2
  106. package/dist/{webhooks-cli-ORjumqe4.js → webhooks-cli-UhujyhVU.js} +2 -2
  107. package/docs/assets/pixel-lobster.svg +3 -3
  108. package/docs/blockchain/aave.md +72 -0
  109. package/docs/blockchain/agent-identity.md +73 -0
  110. package/docs/blockchain/contracts.md +96 -0
  111. package/docs/blockchain/defi.md +61 -0
  112. package/docs/blockchain/index.md +92 -0
  113. package/docs/blockchain/market-data.md +98 -0
  114. package/docs/blockchain/nft.md +44 -0
  115. package/docs/blockchain/portfolio.md +57 -0
  116. package/docs/blockchain/security.md +83 -0
  117. package/docs/blockchain/swap.md +89 -0
  118. package/docs/blockchain/wallet.md +77 -0
  119. package/docs/concepts/features.md +29 -10
  120. package/docs/docs.json +76 -6
  121. package/docs/index.md +44 -44
  122. package/docs/start/getting-started.md +10 -9
  123. package/docs/zh-CN/blockchain/aave.md +63 -0
  124. package/docs/zh-CN/blockchain/agent-identity.md +62 -0
  125. package/docs/zh-CN/blockchain/contracts.md +64 -0
  126. package/docs/zh-CN/blockchain/defi.md +49 -0
  127. package/docs/zh-CN/blockchain/index.md +92 -0
  128. package/docs/zh-CN/blockchain/market-data.md +68 -0
  129. package/docs/zh-CN/blockchain/nft.md +43 -0
  130. package/docs/zh-CN/blockchain/portfolio.md +49 -0
  131. package/docs/zh-CN/blockchain/security.md +75 -0
  132. package/docs/zh-CN/blockchain/swap.md +68 -0
  133. package/docs/zh-CN/blockchain/wallet.md +71 -0
  134. package/extensions/voice-call/README.md +2 -2
  135. package/extensions/voice-call/src/cli.ts +1 -1
  136. package/package.json +1 -1
  137. package/dist/control-ui/assets/index-DQ-7PWhX.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-BJucHu4R.js";
3
3
  import { i as loadConfig } from "./config-DBZqAqbe.js";
4
- import { t as loadOpenClawPlugins } from "./loader-BNqYr2Am.js";
4
+ import { t as loadOpenClawPlugins } from "./loader-DE_vKAH5.js";
5
5
 
6
6
  //#region src/cli/plugin-registry.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -117,56 +117,56 @@ const entries = [
117
117
  name: "acp",
118
118
  description: "Agent Control Protocol tools",
119
119
  register: async (program) => {
120
- (await import("./acp-cli-Bsrf851G.js")).registerAcpCli(program);
120
+ (await import("./acp-cli-CBFKSvET.js")).registerAcpCli(program);
121
121
  }
122
122
  },
123
123
  {
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-CHZrqsVp.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-CbQ4xoXp.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
131
131
  name: "daemon",
132
132
  description: "Gateway service (legacy alias)",
133
133
  register: async (program) => {
134
- (await import("./daemon-cli-D24Obngu.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-D8AC0Q_A.js").then((n) => n.t)).registerDaemonCli(program);
135
135
  }
136
136
  },
137
137
  {
138
138
  name: "logs",
139
139
  description: "Gateway logs",
140
140
  register: async (program) => {
141
- (await import("./logs-cli-BRQOdLoD.js")).registerLogsCli(program);
141
+ (await import("./logs-cli-_DHuOrR4.js")).registerLogsCli(program);
142
142
  }
143
143
  },
144
144
  {
145
145
  name: "system",
146
146
  description: "System events, heartbeat, and presence",
147
147
  register: async (program) => {
148
- (await import("./system-cli-D3UizeGy.js")).registerSystemCli(program);
148
+ (await import("./system-cli-BEmIixtY.js")).registerSystemCli(program);
149
149
  }
150
150
  },
151
151
  {
152
152
  name: "models",
153
153
  description: "Model configuration",
154
154
  register: async (program) => {
155
- (await import("./models-cli-CovM2RsI.js")).registerModelsCli(program);
155
+ (await import("./models-cli-CdrDfutq.js")).registerModelsCli(program);
156
156
  }
157
157
  },
158
158
  {
159
159
  name: "approvals",
160
160
  description: "Exec approvals",
161
161
  register: async (program) => {
162
- (await import("./exec-approvals-cli-Djev4HNk.js")).registerExecApprovalsCli(program);
162
+ (await import("./exec-approvals-cli-DHMroOAh.js")).registerExecApprovalsCli(program);
163
163
  }
164
164
  },
165
165
  {
166
166
  name: "nodes",
167
167
  description: "Node commands",
168
168
  register: async (program) => {
169
- (await import("./nodes-cli-DRmkJeRw.js")).registerNodesCli(program);
169
+ (await import("./nodes-cli-CTQPoAcf.js")).registerNodesCli(program);
170
170
  }
171
171
  },
172
172
  {
@@ -180,73 +180,73 @@ const entries = [
180
180
  name: "node",
181
181
  description: "Node control",
182
182
  register: async (program) => {
183
- (await import("./node-cli-DoMmvbg-.js")).registerNodeCli(program);
183
+ (await import("./node-cli-Ckvs6bcI.js")).registerNodeCli(program);
184
184
  }
185
185
  },
186
186
  {
187
187
  name: "sandbox",
188
188
  description: "Sandbox tools",
189
189
  register: async (program) => {
190
- (await import("./sandbox-cli-a3oEVi7W.js")).registerSandboxCli(program);
190
+ (await import("./sandbox-cli-DqrtTHAP.js")).registerSandboxCli(program);
191
191
  }
192
192
  },
193
193
  {
194
194
  name: "tui",
195
195
  description: "Terminal UI",
196
196
  register: async (program) => {
197
- (await import("./tui-cli-PKJ39Zsl.js")).registerTuiCli(program);
197
+ (await import("./tui-cli-B9iCyCn2.js")).registerTuiCli(program);
198
198
  }
199
199
  },
200
200
  {
201
201
  name: "cron",
202
202
  description: "Cron scheduler",
203
203
  register: async (program) => {
204
- (await import("./cron-cli-v8FMB7_N.js")).registerCronCli(program);
204
+ (await import("./cron-cli-yC5Cy77c.js")).registerCronCli(program);
205
205
  }
206
206
  },
207
207
  {
208
208
  name: "dns",
209
209
  description: "DNS helpers",
210
210
  register: async (program) => {
211
- (await import("./dns-cli-DJUkN_WU.js")).registerDnsCli(program);
211
+ (await import("./dns-cli-fQ4wu1HJ.js")).registerDnsCli(program);
212
212
  }
213
213
  },
214
214
  {
215
215
  name: "docs",
216
216
  description: "Docs helpers",
217
217
  register: async (program) => {
218
- (await import("./docs-cli-CcQ9shjL.js")).registerDocsCli(program);
218
+ (await import("./docs-cli-BgnDzmFT.js")).registerDocsCli(program);
219
219
  }
220
220
  },
221
221
  {
222
222
  name: "hooks",
223
223
  description: "Hooks tooling",
224
224
  register: async (program) => {
225
- (await import("./hooks-cli-IS7KFMZy.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-CedlcxxR.js")).registerHooksCli(program);
226
226
  }
227
227
  },
228
228
  {
229
229
  name: "webhooks",
230
230
  description: "Webhook helpers",
231
231
  register: async (program) => {
232
- (await import("./webhooks-cli-ORjumqe4.js")).registerWebhooksCli(program);
232
+ (await import("./webhooks-cli-UhujyhVU.js")).registerWebhooksCli(program);
233
233
  }
234
234
  },
235
235
  {
236
236
  name: "pairing",
237
237
  description: "Pairing helpers",
238
238
  register: async (program) => {
239
- const { registerPluginCliCommands } = await import("./cli-6yV4qEGI.js");
239
+ const { registerPluginCliCommands } = await import("./cli-DJnpasWd.js");
240
240
  registerPluginCliCommands(program, await loadConfig());
241
- (await import("./pairing-cli-B7Bji_j_.js")).registerPairingCli(program);
241
+ (await import("./pairing-cli-CocCRLzF.js")).registerPairingCli(program);
242
242
  }
243
243
  },
244
244
  {
245
245
  name: "plugins",
246
246
  description: "Plugin management",
247
247
  register: async (program) => {
248
- (await import("./plugins-cli-ChkSbzKF.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-6yV4qEGI.js");
248
+ (await import("./plugins-cli-Dn9I2nvT.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-DJnpasWd.js");
250
250
  registerPluginCliCommands(program, await loadConfig());
251
251
  }
252
252
  },
@@ -254,35 +254,35 @@ const entries = [
254
254
  name: "channels",
255
255
  description: "Channel management",
256
256
  register: async (program) => {
257
- (await import("./channels-cli-xTlvzb2Z.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-Lq6EWRJ9.js")).registerChannelsCli(program);
258
258
  }
259
259
  },
260
260
  {
261
261
  name: "directory",
262
262
  description: "Directory commands",
263
263
  register: async (program) => {
264
- (await import("./directory-cli-C9y2B84i.js")).registerDirectoryCli(program);
264
+ (await import("./directory-cli-DGFlpQ4T.js")).registerDirectoryCli(program);
265
265
  }
266
266
  },
267
267
  {
268
268
  name: "security",
269
269
  description: "Security helpers",
270
270
  register: async (program) => {
271
- (await import("./security-cli-C1XbzHNF.js")).registerSecurityCli(program);
271
+ (await import("./security-cli-YL2ZTkkR.js")).registerSecurityCli(program);
272
272
  }
273
273
  },
274
274
  {
275
275
  name: "skills",
276
276
  description: "Skills management",
277
277
  register: async (program) => {
278
- (await import("./skills-cli-DnSEVLxn.js")).registerSkillsCli(program);
278
+ (await import("./skills-cli-CYZbvr7O.js")).registerSkillsCli(program);
279
279
  }
280
280
  },
281
281
  {
282
282
  name: "update",
283
283
  description: "CLI update helpers",
284
284
  register: async (program) => {
285
- (await import("./update-cli-DKLyK_Tu.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-DlXzjuIc.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { _ as resolveStateDir } from "./paths-D2ytuv-2.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DG215F73.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-Bf9yES9h.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -10,37 +10,37 @@ import { c as writeConfigFile, h as parseDurationMs, i as loadConfig, o as readC
10
10
  import { n as movePathToTrash } from "./server-context-BG54Dk0A.js";
11
11
  import { i as randomIdempotencyKey, n as callGateway } from "./call-D-Kvee3W.js";
12
12
  import { h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES } from "./message-channel-CfYBy4y3.js";
13
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
13
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
14
14
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CB4Xjrgb.js";
15
- import { D as runMemoryStatus, E as registerMemoryCli, Hn as CHANNEL_TARGETS_DESCRIPTION, Sn as formatTargetDisplay, Un as CHANNEL_TARGET_DESCRIPTION, _ as randomToken, a as applyWizardMetadata, c as ensureWorkspaceAndSessions, d as handleReset, dn as lookupContextTokens, f as moveToTrash, i as DEFAULT_WORKSPACE, l as formatControlUiSshHint, m as openUrl, mn as runMessageAction, s as detectBrowserOpenSupport, un as resolveCommitHash, v as resolveControlUiLinks, wn as CHANNEL_MESSAGE_ACTION_NAMES, x as waitForGatewayReachable } from "./loader-BNqYr2Am.js";
15
+ import { D as runMemoryStatus, E as registerMemoryCli, Hn as CHANNEL_TARGETS_DESCRIPTION, Sn as formatTargetDisplay, Un as CHANNEL_TARGET_DESCRIPTION, _ as randomToken, a as applyWizardMetadata, c as ensureWorkspaceAndSessions, d as handleReset, dn as lookupContextTokens, f as moveToTrash, i as DEFAULT_WORKSPACE, l as formatControlUiSshHint, m as openUrl, mn as runMessageAction, s as detectBrowserOpenSupport, un as resolveCommitHash, v as resolveControlUiLinks, wn as CHANNEL_MESSAGE_ACTION_NAMES, x as waitForGatewayReachable } from "./loader-DE_vKAH5.js";
16
16
  import { n as withProgress } from "./progress-D-Oc-KAH.js";
17
17
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BntC_Eoo.js";
18
18
  import { t as WizardCancelledError } from "./prompts-C2D9_VZC.js";
19
19
  import { t as createClackPrompter } from "./clack-prompter-k_egRADS.js";
20
20
  import { t as resolveChannelDefaultAccountId } from "./helpers-OUt4hxkS.js";
21
- import { n as setupChannels } from "./onboard-channels-uZ5vLniX.js";
21
+ import { n as setupChannels } from "./onboard-channels-B5qHfMk8.js";
22
22
  import { a as resolveSessionTranscriptsDirForAgent, i as resolveSessionTranscriptsDir, o as resolveStorePath } from "./paths-KUslkJRs.js";
23
23
  import { d as loadSessionStore } from "./sandbox-Cfvpk8Q8.js";
24
24
  import { r as runCommandWithRuntime } from "./cli-utils-B7iQwCY5.js";
25
- import { n as ensurePluginRegistryLoaded, t as hasExplicitOptions } from "./command-options-DeWanQ_1.js";
26
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-DG215F73.js";
25
+ import { n as ensurePluginRegistryLoaded, t as hasExplicitOptions } from "./command-options-DBpEhnW5.js";
26
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-Bf9yES9h.js";
27
27
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-CQI-5xS9.js";
28
28
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-0hjEbkzc.js";
29
- import { t as createDefaultDeps } from "./deps-BDQ4UyT5.js";
29
+ import { t as createDefaultDeps } from "./deps-ZGqhOjkR.js";
30
30
  import { a as gatewayInstallErrorHint, h as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BMAJ_2LE.js";
31
31
  import { t as resolveGatewayService } from "./service-C0ccl5rU.js";
32
32
  import { r as isSystemdUserServiceAvailable } from "./systemd-kY3NnWdi.js";
33
33
  import { t as renderTable } from "./table--L48nql9.js";
34
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-tUnJDYV8.js";
35
- import { i as healthCommand } from "./health-format-QWTDdHdV.js";
36
- import { $ as setVeniceApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyXaiConfig, G as setCloudflareAiGatewayConfig, J as setMinimaxApiKey, K as setGeminiApiKey, L as applyXiaomiConfig, N as applyVercelAiGatewayConfig, Q as setSyntheticApiKey, W as setAnthropicApiKey, X as setOpencodeZenApiKey, Y as setMoonshotApiKey, Z as setOpenrouterApiKey, ct as buildTokenProfileId, et as setVercelAiGatewayApiKey, f as applyOpencodeZenConfig, g as applyMinimaxConfig, j as applyVeniceConfig, k as applySyntheticConfig, lt as validateAnthropicSetupToken, m as applyMinimaxApiConfig, nt as setXiaomiApiKey, q as setKimiCodingApiKey, rt as setZaiApiKey, tt as setXaiApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyZaiConfig } from "./github-copilot-auth-CLh6feLw.js";
34
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-CyG0xbsu.js";
35
+ import { i as healthCommand } from "./health-format-DlvTEKqI.js";
36
+ import { $ as setVeniceApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyXaiConfig, G as setCloudflareAiGatewayConfig, J as setMinimaxApiKey, K as setGeminiApiKey, L as applyXiaomiConfig, N as applyVercelAiGatewayConfig, Q as setSyntheticApiKey, W as setAnthropicApiKey, X as setOpencodeZenApiKey, Y as setMoonshotApiKey, Z as setOpenrouterApiKey, ct as buildTokenProfileId, et as setVercelAiGatewayApiKey, f as applyOpencodeZenConfig, g as applyMinimaxConfig, j as applyVeniceConfig, k as applySyntheticConfig, lt as validateAnthropicSetupToken, m as applyMinimaxApiConfig, nt as setXiaomiApiKey, q as setKimiCodingApiKey, rt as setZaiApiKey, tt as setXaiApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyZaiConfig } from "./github-copilot-auth-D6I2MUxi.js";
37
37
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-B65tlzu3.js";
38
- import { a as findAgentEntryIndex, c as pruneAgentConfig, d as parseIdentityMarkdown, f as runOnboardingWizard, i as buildAgentSummaries, l as identityHasValues, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, t as statusCommand } from "./status-1TQxVU1M.js";
39
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-mns7e_gL.js";
38
+ import { a as findAgentEntryIndex, c as pruneAgentConfig, d as parseIdentityMarkdown, f as runOnboardingWizard, i as buildAgentSummaries, l as identityHasValues, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, t as statusCommand } from "./status-CN2V3fan.js";
39
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-sjalTGVA.js";
40
40
  import { t as formatHelpExamples } from "./help-format-CUnac_bT.js";
41
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-BupCndyG.js";
41
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CeTzu0Ed.js";
42
42
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-CFK5jDdq.js";
43
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-D3VWObNR.js";
43
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-D6M3Hc0a.js";
44
44
  import path from "node:path";
45
45
  import fs from "node:fs";
46
46
  import JSON5 from "json5";
@@ -393,7 +393,7 @@ async function agentsAddCommand(opts, runtime = defaultRuntime, params) {
393
393
  const result = applyAgentBindings(nextConfig, desiredBindings);
394
394
  nextConfig = result.config;
395
395
  if (result.conflicts.length > 0) await prompter.note(["Skipped bindings already claimed by another agent:", ...result.conflicts.map((conflict) => `- ${describeBinding(conflict.binding)} (agent=${conflict.existingAgentId})`)].join("\n"), "Routing bindings");
396
- } else await prompter.note(["Routing unchanged. Add bindings when you're ready.", "Docs: https://docs.cryptoclaw.ai/concepts/multi-agent"].join("\n"), "Routing");
396
+ } else await prompter.note(["Routing unchanged. Add bindings when you're ready.", "Docs: https://docs.openclaw.ai/concepts/multi-agent"].join("\n"), "Routing");
397
397
  await writeConfigFile(nextConfig);
398
398
  logConfigUpdated(runtime);
399
399
  await ensureWorkspaceAndSessions(workspaceDir, runtime, {
@@ -1807,14 +1807,14 @@ function registerBrowserExtensionCommands(browser, parentOpts) {
1807
1807
  `- “Load unpacked” → select: ${displayPath}`,
1808
1808
  `- Pin “OpenClaw Browser Relay”, then click it on the tab (badge shows ON)`,
1809
1809
  "",
1810
- `${theme.muted("Docs:")} ${formatDocsLink("/tools/chrome-extension", "docs.cryptoclaw.ai/tools/chrome-extension")}`
1810
+ `${theme.muted("Docs:")} ${formatDocsLink("/tools/chrome-extension", "docs.openclaw.ai/tools/chrome-extension")}`
1811
1811
  ].join("\n")));
1812
1812
  });
1813
1813
  ext.command("path").description("Print the path to the installed Chrome extension (load unpacked)").action(async (_opts, cmd) => {
1814
1814
  const parent = parentOpts(cmd);
1815
1815
  const dir = installedExtensionRootDir();
1816
1816
  if (!hasManifest(dir)) {
1817
- defaultRuntime.error(danger([`Chrome extension is not installed. Run: "${formatCliCommand("cryptoclaw browser extension install")}"`, `Docs: ${formatDocsLink("/tools/chrome-extension", "docs.cryptoclaw.ai/tools/chrome-extension")}`].join("\n")));
1817
+ defaultRuntime.error(danger([`Chrome extension is not installed. Run: "${formatCliCommand("cryptoclaw browser extension install")}"`, `Docs: ${formatDocsLink("/tools/chrome-extension", "docs.openclaw.ai/tools/chrome-extension")}`].join("\n")));
1818
1818
  defaultRuntime.exit(1);
1819
1819
  }
1820
1820
  if (parent?.json) {
@@ -2629,7 +2629,7 @@ function registerBrowserStateCommands(browser, parentOpts) {
2629
2629
  //#endregion
2630
2630
  //#region src/cli/browser-cli.ts
2631
2631
  function registerBrowserCli(program) {
2632
- const browser = program.command("browser").description("Manage OpenClaw's dedicated browser (Chrome/Chromium)").option("--browser-profile <name>", "Browser profile name (default from config)").option("--json", "Output machine-readable JSON", false).addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples([...browserCoreExamples, ...browserActionExamples].map((cmd) => [cmd, ""]), true)}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/browser", "docs.cryptoclaw.ai/cli/browser")}\n`).action(() => {
2632
+ const browser = program.command("browser").description("Manage OpenClaw's dedicated browser (Chrome/Chromium)").option("--browser-profile <name>", "Browser profile name (default from config)").option("--json", "Output machine-readable JSON", false).addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples([...browserCoreExamples, ...browserActionExamples].map((cmd) => [cmd, ""]), true)}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/browser", "docs.openclaw.ai/cli/browser")}\n`).action(() => {
2633
2633
  browser.outputHelp();
2634
2634
  defaultRuntime.error(danger(`Missing subcommand. Try: "${formatCliCommand("cryptoclaw browser status")}"`));
2635
2635
  defaultRuntime.exit(1);
@@ -2790,8 +2790,8 @@ async function loadValidConfig() {
2790
2790
  return snapshot;
2791
2791
  }
2792
2792
  function registerConfigCli(program) {
2793
- const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.cryptoclaw.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
2794
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-BupCndyG.js").then((n) => n.t);
2793
+ const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.openclaw.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
2794
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-CeTzu0Ed.js").then((n) => n.t);
2795
2795
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2796
2796
  if (sections.length === 0) {
2797
2797
  await configureCommand(defaultRuntime);
@@ -2972,14 +2972,14 @@ ${formatHelpExamples([
2972
2972
  ["cryptoclaw agent --agent ops --message \"Generate report\" --deliver --reply-channel slack --reply-to \"#reports\"", "Send reply to a different channel/target."]
2973
2973
  ])}
2974
2974
 
2975
- ${theme.muted("Docs:")} ${formatDocsLink("/cli/agent", "docs.cryptoclaw.ai/cli/agent")}`).action(async (opts) => {
2975
+ ${theme.muted("Docs:")} ${formatDocsLink("/cli/agent", "docs.openclaw.ai/cli/agent")}`).action(async (opts) => {
2976
2976
  setVerbose((typeof opts.verbose === "string" ? opts.verbose.toLowerCase() : "") === "on");
2977
2977
  const deps = createDefaultDeps();
2978
2978
  await runCommandWithRuntime(defaultRuntime, async () => {
2979
2979
  await agentCliCommand(opts, defaultRuntime, deps);
2980
2980
  });
2981
2981
  });
2982
- const agents = program.command("agents").description("Manage isolated agents (workspaces + auth + routing)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/agents", "docs.cryptoclaw.ai/cli/agents")}\n`);
2982
+ const agents = program.command("agents").description("Manage isolated agents (workspaces + auth + routing)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/agents", "docs.openclaw.ai/cli/agents")}\n`);
2983
2983
  agents.command("list").description("List configured agents").option("--json", "Output JSON instead of text", false).option("--bindings", "Include routing bindings", false).action(async (opts) => {
2984
2984
  await runCommandWithRuntime(defaultRuntime, async () => {
2985
2985
  await agentsListCommand({
@@ -3050,7 +3050,7 @@ ${formatHelpExamples([
3050
3050
  //#endregion
3051
3051
  //#region src/cli/program/register.configure.ts
3052
3052
  function registerConfigureCommand(program) {
3053
- program.command("configure").description("Interactive prompt to set up credentials, devices, and agent defaults").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/configure", "docs.cryptoclaw.ai/cli/configure")}\n`).option("--section <section>", `Configuration sections (repeatable). Options: ${CONFIGURE_WIZARD_SECTIONS.join(", ")}`, (value, previous) => [...previous, value], []).action(async (opts) => {
3053
+ program.command("configure").description("Interactive prompt to set up credentials, devices, and agent defaults").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/configure", "docs.openclaw.ai/cli/configure")}\n`).option("--section <section>", `Configuration sections (repeatable). Options: ${CONFIGURE_WIZARD_SECTIONS.join(", ")}`, (value, previous) => [...previous, value], []).action(async (opts) => {
3054
3054
  await runCommandWithRuntime(defaultRuntime, async () => {
3055
3055
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
3056
3056
  if (sections.length === 0) {
@@ -3476,7 +3476,7 @@ async function uninstallCommand(runtime, opts) {
3476
3476
  //#endregion
3477
3477
  //#region src/cli/program/register.maintenance.ts
3478
3478
  function registerMaintenanceCommands(program) {
3479
- program.command("doctor").description("Health checks + quick fixes for the gateway and channels").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/doctor", "docs.cryptoclaw.ai/cli/doctor")}\n`).option("--no-workspace-suggestions", "Disable workspace memory system suggestions", false).option("--yes", "Accept defaults without prompting", false).option("--repair", "Apply recommended repairs without prompting", false).option("--fix", "Apply recommended repairs (alias for --repair)", false).option("--force", "Apply aggressive repairs (overwrites custom service config)", false).option("--non-interactive", "Run without prompts (safe migrations only)", false).option("--generate-gateway-token", "Generate and configure a gateway token", false).option("--deep", "Scan system services for extra gateway installs", false).action(async (opts) => {
3479
+ program.command("doctor").description("Health checks + quick fixes for the gateway and channels").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/doctor", "docs.openclaw.ai/cli/doctor")}\n`).option("--no-workspace-suggestions", "Disable workspace memory system suggestions", false).option("--yes", "Accept defaults without prompting", false).option("--repair", "Apply recommended repairs without prompting", false).option("--fix", "Apply recommended repairs (alias for --repair)", false).option("--force", "Apply aggressive repairs (overwrites custom service config)", false).option("--non-interactive", "Run without prompts (safe migrations only)", false).option("--generate-gateway-token", "Generate and configure a gateway token", false).option("--deep", "Scan system services for extra gateway installs", false).action(async (opts) => {
3480
3480
  await runCommandWithRuntime(defaultRuntime, async () => {
3481
3481
  await doctorCommand(defaultRuntime, {
3482
3482
  workspaceSuggestions: opts.workspaceSuggestions,
@@ -3489,12 +3489,12 @@ function registerMaintenanceCommands(program) {
3489
3489
  });
3490
3490
  });
3491
3491
  });
3492
- program.command("dashboard").description("Open the Control UI with your current token").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/dashboard", "docs.cryptoclaw.ai/cli/dashboard")}\n`).option("--no-open", "Print URL but do not launch a browser", false).action(async (opts) => {
3492
+ program.command("dashboard").description("Open the Control UI with your current token").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/dashboard", "docs.openclaw.ai/cli/dashboard")}\n`).option("--no-open", "Print URL but do not launch a browser", false).action(async (opts) => {
3493
3493
  await runCommandWithRuntime(defaultRuntime, async () => {
3494
3494
  await dashboardCommand(defaultRuntime, { noOpen: Boolean(opts.noOpen) });
3495
3495
  });
3496
3496
  });
3497
- program.command("reset").description("Reset local config/state (keeps the CLI installed)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/reset", "docs.cryptoclaw.ai/cli/reset")}\n`).option("--scope <scope>", "config|config+creds+sessions|full (default: interactive prompt)").option("--yes", "Skip confirmation prompts", false).option("--non-interactive", "Disable prompts (requires --scope + --yes)", false).option("--dry-run", "Print actions without removing files", false).action(async (opts) => {
3497
+ program.command("reset").description("Reset local config/state (keeps the CLI installed)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/reset", "docs.openclaw.ai/cli/reset")}\n`).option("--scope <scope>", "config|config+creds+sessions|full (default: interactive prompt)").option("--yes", "Skip confirmation prompts", false).option("--non-interactive", "Disable prompts (requires --scope + --yes)", false).option("--dry-run", "Print actions without removing files", false).action(async (opts) => {
3498
3498
  await runCommandWithRuntime(defaultRuntime, async () => {
3499
3499
  await resetCommand(defaultRuntime, {
3500
3500
  scope: opts.scope,
@@ -3504,7 +3504,7 @@ function registerMaintenanceCommands(program) {
3504
3504
  });
3505
3505
  });
3506
3506
  });
3507
- program.command("uninstall").description("Uninstall the gateway service + local data (CLI remains)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/uninstall", "docs.cryptoclaw.ai/cli/uninstall")}\n`).option("--service", "Remove the gateway service", false).option("--state", "Remove state + config", false).option("--workspace", "Remove workspace dirs", false).option("--app", "Remove the macOS app", false).option("--all", "Remove service + state + workspace + app", false).option("--yes", "Skip confirmation prompts", false).option("--non-interactive", "Disable prompts (requires --yes)", false).option("--dry-run", "Print actions without removing files", false).action(async (opts) => {
3507
+ program.command("uninstall").description("Uninstall the gateway service + local data (CLI remains)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/uninstall", "docs.openclaw.ai/cli/uninstall")}\n`).option("--service", "Remove the gateway service", false).option("--state", "Remove state + config", false).option("--workspace", "Remove workspace dirs", false).option("--app", "Remove the macOS app", false).option("--all", "Remove service + state + workspace + app", false).option("--yes", "Skip confirmation prompts", false).option("--non-interactive", "Disable prompts (requires --yes)", false).option("--dry-run", "Print actions without removing files", false).action(async (opts) => {
3508
3508
  await runCommandWithRuntime(defaultRuntime, async () => {
3509
3509
  await uninstallCommand(defaultRuntime, {
3510
3510
  service: Boolean(opts.service),
@@ -4086,7 +4086,7 @@ ${formatHelpExamples([
4086
4086
  ["cryptoclaw message react --channel discord --target 123 --message-id 456 --emoji \"✅\"", "React to a message."]
4087
4087
  ])}
4088
4088
 
4089
- ${theme.muted("Docs:")} ${formatDocsLink("/cli/message", "docs.cryptoclaw.ai/cli/message")}`).action(() => {
4089
+ ${theme.muted("Docs:")} ${formatDocsLink("/cli/message", "docs.openclaw.ai/cli/message")}`).action(() => {
4090
4090
  message.help({ error: true });
4091
4091
  });
4092
4092
  const helpers = createMessageCliHelpers(message, ctx.messageChannelOptions);
@@ -4915,7 +4915,7 @@ async function runNonInteractiveOnboardingLocal(params) {
4915
4915
  skipSkills: Boolean(opts.skipSkills),
4916
4916
  skipHealth: Boolean(opts.skipHealth)
4917
4917
  });
4918
- if (!opts.json) runtime.log(`Tip: run \`${formatCliCommand("cryptoclaw configure --section web")}\` to store your Brave API key for web_search. Docs: https://docs.cryptoclaw.ai/tools/web`);
4918
+ if (!opts.json) runtime.log(`Tip: run \`${formatCliCommand("cryptoclaw configure --section web")}\` to store your Brave API key for web_search. Docs: https://docs.openclaw.ai/tools/web`);
4919
4919
  }
4920
4920
 
4921
4921
  //#endregion
@@ -4955,7 +4955,7 @@ async function runNonInteractiveOnboardingRemote(params) {
4955
4955
  else {
4956
4956
  runtime.log(`Remote gateway: ${remoteUrl}`);
4957
4957
  runtime.log(`Auth: ${payload.auth}`);
4958
- runtime.log(`Tip: run \`${formatCliCommand("cryptoclaw configure --section web")}\` to store your Brave API key for web_search. Docs: https://docs.cryptoclaw.ai/tools/web`);
4958
+ runtime.log(`Tip: run \`${formatCliCommand("cryptoclaw configure --section web")}\` to store your Brave API key for web_search. Docs: https://docs.openclaw.ai/tools/web`);
4959
4959
  }
4960
4960
  }
4961
4961
 
@@ -5012,7 +5012,7 @@ async function onboardCommand(opts, runtime = defaultRuntime) {
5012
5012
  if (normalizedOpts.nonInteractive && normalizedOpts.acceptRisk !== true) {
5013
5013
  runtime.error([
5014
5014
  "Non-interactive onboarding requires explicit risk acknowledgement.",
5015
- "Read: https://docs.cryptoclaw.ai/security",
5015
+ "Read: https://docs.openclaw.ai/security",
5016
5016
  `Re-run with: ${formatCliCommand("cryptoclaw onboard --non-interactive --accept-risk ...")}`
5017
5017
  ].join("\n"));
5018
5018
  runtime.exit(1);
@@ -5027,7 +5027,7 @@ async function onboardCommand(opts, runtime = defaultRuntime) {
5027
5027
  "Windows detected — CryptoClaw runs great on WSL2!",
5028
5028
  "Native Windows might be trickier.",
5029
5029
  "Quick setup: wsl --install (one command, one reboot)",
5030
- "Guide: https://docs.cryptoclaw.ai/windows"
5030
+ "Guide: https://docs.openclaw.ai/windows"
5031
5031
  ].join("\n"));
5032
5032
  if (normalizedOpts.nonInteractive) {
5033
5033
  await runNonInteractiveOnboarding(normalizedOpts, runtime);
@@ -5046,7 +5046,7 @@ function resolveInstallDaemonFlag(command, opts) {
5046
5046
  if (getOptionValueSource.call(command, "installDaemon") === "cli") return Boolean(opts.installDaemon);
5047
5047
  }
5048
5048
  function registerOnboardCommand(program) {
5049
- program.command("onboard").description("Interactive wizard to set up the gateway, workspace, and skills").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/onboard", "docs.cryptoclaw.ai/cli/onboard")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.cryptoclaw/workspace)").option("--reset", "Reset config + credentials + sessions + workspace before running wizard").option("--non-interactive", "Run without prompts", false).option("--accept-risk", "Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)", false).option("--flow <flow>", "Wizard flow: quickstart|advanced|manual").option("--mode <mode>", "Wizard mode: local|remote").option("--auth-choice <choice>", "Auth: setup-token|token|chutes|openai-codex|openai-api-key|openrouter-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|xiaomi-api-key|xai-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|skip").option("--token-provider <id>", "Token provider id (non-interactive; used with --auth-choice token)").option("--token <token>", "Token value (non-interactive; used with --auth-choice token)").option("--token-profile-id <id>", "Auth profile id (non-interactive; default: <provider>:manual)").option("--token-expires-in <duration>", "Optional token expiry duration (e.g. 365d, 12h)").option("--anthropic-api-key <key>", "Anthropic API key").option("--openai-api-key <key>", "OpenAI API key").option("--openrouter-api-key <key>", "OpenRouter API key").option("--ai-gateway-api-key <key>", "Vercel AI Gateway API key").option("--cloudflare-ai-gateway-account-id <id>", "Cloudflare Account ID").option("--cloudflare-ai-gateway-gateway-id <id>", "Cloudflare AI Gateway ID").option("--cloudflare-ai-gateway-api-key <key>", "Cloudflare AI Gateway API key").option("--moonshot-api-key <key>", "Moonshot API key").option("--kimi-code-api-key <key>", "Kimi Coding API key").option("--gemini-api-key <key>", "Gemini API key").option("--zai-api-key <key>", "Z.AI API key").option("--xiaomi-api-key <key>", "Xiaomi API key").option("--minimax-api-key <key>", "MiniMax API key").option("--synthetic-api-key <key>", "Synthetic API key").option("--venice-api-key <key>", "Venice API key").option("--opencode-zen-api-key <key>", "OpenCode Zen API key").option("--xai-api-key <key>", "xAI API key").option("--gateway-port <port>", "Gateway port").option("--gateway-bind <mode>", "Gateway bind: loopback|tailnet|lan|auto|custom").option("--gateway-auth <mode>", "Gateway auth: token|password").option("--gateway-token <token>", "Gateway token (token auth)").option("--gateway-password <password>", "Gateway password (password auth)").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").option("--tailscale <mode>", "Tailscale: off|serve|funnel").option("--tailscale-reset-on-exit", "Reset tailscale serve/funnel on exit").option("--install-daemon", "Install gateway service").option("--no-install-daemon", "Skip gateway service install").option("--skip-daemon", "Skip gateway service install").option("--daemon-runtime <runtime>", "Daemon runtime: node|bun").option("--skip-channels", "Skip channel setup").option("--skip-skills", "Skip skills setup").option("--skip-health", "Skip health check").option("--skip-ui", "Skip Control UI/TUI prompts").option("--node-manager <name>", "Node manager for skills: npm|pnpm|bun").option("--wallet-create", "Create a new wallet during onboarding").option("--wallet-import", "Import an existing wallet during onboarding").option("--wallet-label <name>", "Label for the new wallet").option("--skip-wallet", "Skip wallet setup").option("--json", "Output JSON summary", false).action(async (opts, command) => {
5049
+ program.command("onboard").description("Interactive wizard to set up the gateway, workspace, and skills").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/onboard", "docs.openclaw.ai/cli/onboard")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.cryptoclaw/workspace)").option("--reset", "Reset config + credentials + sessions + workspace before running wizard").option("--non-interactive", "Run without prompts", false).option("--accept-risk", "Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)", false).option("--flow <flow>", "Wizard flow: quickstart|advanced|manual").option("--mode <mode>", "Wizard mode: local|remote").option("--auth-choice <choice>", "Auth: setup-token|token|chutes|openai-codex|openai-api-key|openrouter-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|xiaomi-api-key|xai-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|skip").option("--token-provider <id>", "Token provider id (non-interactive; used with --auth-choice token)").option("--token <token>", "Token value (non-interactive; used with --auth-choice token)").option("--token-profile-id <id>", "Auth profile id (non-interactive; default: <provider>:manual)").option("--token-expires-in <duration>", "Optional token expiry duration (e.g. 365d, 12h)").option("--anthropic-api-key <key>", "Anthropic API key").option("--openai-api-key <key>", "OpenAI API key").option("--openrouter-api-key <key>", "OpenRouter API key").option("--ai-gateway-api-key <key>", "Vercel AI Gateway API key").option("--cloudflare-ai-gateway-account-id <id>", "Cloudflare Account ID").option("--cloudflare-ai-gateway-gateway-id <id>", "Cloudflare AI Gateway ID").option("--cloudflare-ai-gateway-api-key <key>", "Cloudflare AI Gateway API key").option("--moonshot-api-key <key>", "Moonshot API key").option("--kimi-code-api-key <key>", "Kimi Coding API key").option("--gemini-api-key <key>", "Gemini API key").option("--zai-api-key <key>", "Z.AI API key").option("--xiaomi-api-key <key>", "Xiaomi API key").option("--minimax-api-key <key>", "MiniMax API key").option("--synthetic-api-key <key>", "Synthetic API key").option("--venice-api-key <key>", "Venice API key").option("--opencode-zen-api-key <key>", "OpenCode Zen API key").option("--xai-api-key <key>", "xAI API key").option("--gateway-port <port>", "Gateway port").option("--gateway-bind <mode>", "Gateway bind: loopback|tailnet|lan|auto|custom").option("--gateway-auth <mode>", "Gateway auth: token|password").option("--gateway-token <token>", "Gateway token (token auth)").option("--gateway-password <password>", "Gateway password (password auth)").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").option("--tailscale <mode>", "Tailscale: off|serve|funnel").option("--tailscale-reset-on-exit", "Reset tailscale serve/funnel on exit").option("--install-daemon", "Install gateway service").option("--no-install-daemon", "Skip gateway service install").option("--skip-daemon", "Skip gateway service install").option("--daemon-runtime <runtime>", "Daemon runtime: node|bun").option("--skip-channels", "Skip channel setup").option("--skip-skills", "Skip skills setup").option("--skip-health", "Skip health check").option("--skip-ui", "Skip Control UI/TUI prompts").option("--node-manager <name>", "Node manager for skills: npm|pnpm|bun").option("--wallet-create", "Create a new wallet during onboarding").option("--wallet-import", "Import an existing wallet during onboarding").option("--wallet-label <name>", "Label for the new wallet").option("--skip-wallet", "Skip wallet setup").option("--json", "Output JSON summary", false).action(async (opts, command) => {
5050
5050
  await runCommandWithRuntime(defaultRuntime, async () => {
5051
5051
  const installDaemon = resolveInstallDaemonFlag(command, { installDaemon: Boolean(opts.installDaemon) });
5052
5052
  const gatewayPort = typeof opts.gatewayPort === "string" ? Number.parseInt(opts.gatewayPort, 10) : void 0;
@@ -5164,7 +5164,7 @@ async function setupCommand(opts, runtime = defaultRuntime) {
5164
5164
  //#endregion
5165
5165
  //#region src/cli/program/register.setup.ts
5166
5166
  function registerSetupCommand(program) {
5167
- program.command("setup").description("Initialize ~/.cryptoclaw/cryptoclaw.json and the agent workspace").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/setup", "docs.cryptoclaw.ai/cli/setup")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.cryptoclaw/workspace; stored as agents.defaults.workspace)").option("--wizard", "Run the interactive onboarding wizard", false).option("--non-interactive", "Run the wizard without prompts", false).option("--mode <mode>", "Wizard mode: local|remote").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").action(async (opts, command) => {
5167
+ program.command("setup").description("Initialize ~/.cryptoclaw/cryptoclaw.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: ~/.cryptoclaw/workspace; stored as agents.defaults.workspace)").option("--wizard", "Run the interactive onboarding wizard", false).option("--non-interactive", "Run the wizard without prompts", false).option("--mode <mode>", "Wizard mode: local|remote").option("--remote-url <url>", "Remote Gateway WebSocket URL").option("--remote-token <token>", "Remote Gateway token (optional)").action(async (opts, command) => {
5168
5168
  await runCommandWithRuntime(defaultRuntime, async () => {
5169
5169
  const hasWizardFlags = hasExplicitOptions(command, [
5170
5170
  "wizard",
@@ -5210,7 +5210,7 @@ function registerStatusHealthSessionsCommands(program) {
5210
5210
  ["cryptoclaw status --usage", "Show model provider usage/quota snapshots."],
5211
5211
  ["cryptoclaw status --deep", "Run channel probes (WA + Telegram + Discord + Slack + Signal)."],
5212
5212
  ["cryptoclaw status --deep --timeout 5000", "Tighten probe timeout."]
5213
- ])}`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/status", "docs.cryptoclaw.ai/cli/status")}\n`).action(async (opts) => {
5213
+ ])}`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/status", "docs.openclaw.ai/cli/status")}\n`).action(async (opts) => {
5214
5214
  const verbose = resolveVerbose(opts);
5215
5215
  setVerbose(verbose);
5216
5216
  const timeout = parseTimeoutMs(opts.timeout);
@@ -5226,7 +5226,7 @@ function registerStatusHealthSessionsCommands(program) {
5226
5226
  }, defaultRuntime);
5227
5227
  });
5228
5228
  });
5229
- program.command("health").description("Fetch health from the running gateway").option("--json", "Output JSON instead of text", false).option("--timeout <ms>", "Connection timeout in milliseconds", "10000").option("--verbose", "Verbose logging", false).option("--debug", "Alias for --verbose", false).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/health", "docs.cryptoclaw.ai/cli/health")}\n`).action(async (opts) => {
5229
+ program.command("health").description("Fetch health from the running gateway").option("--json", "Output JSON instead of text", false).option("--timeout <ms>", "Connection timeout in milliseconds", "10000").option("--verbose", "Verbose logging", false).option("--debug", "Alias for --verbose", false).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/health", "docs.openclaw.ai/cli/health")}\n`).action(async (opts) => {
5230
5230
  const verbose = resolveVerbose(opts);
5231
5231
  setVerbose(verbose);
5232
5232
  const timeout = parseTimeoutMs(opts.timeout);
@@ -5244,7 +5244,7 @@ function registerStatusHealthSessionsCommands(program) {
5244
5244
  ["cryptoclaw sessions --active 120", "Only last 2 hours."],
5245
5245
  ["cryptoclaw sessions --json", "Machine-readable output."],
5246
5246
  ["cryptoclaw sessions --store ./tmp/sessions.json", "Use a specific session store."]
5247
- ])}\n\n${theme.muted("Shows token usage per session when the agent reports it; set agents.defaults.contextTokens to cap the window and show %.")}`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/sessions", "docs.cryptoclaw.ai/cli/sessions")}\n`).action(async (opts) => {
5247
+ ])}\n\n${theme.muted("Shows token usage per session when the agent reports it; set agents.defaults.contextTokens to cap the window and show %.")}`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/sessions", "docs.openclaw.ai/cli/sessions")}\n`).action(async (opts) => {
5248
5248
  setVerbose(Boolean(opts.verbose));
5249
5249
  await sessionsCommand({
5250
5250
  json: Boolean(opts.json),
@@ -7,17 +7,17 @@ import { f as resolveUserPath, m as shortenHomePath } from "./utils-DV2rghi_.js"
7
7
  import { c as writeConfigFile, i as loadConfig, o as readConfigFileSnapshot } from "./config-DBZqAqbe.js";
8
8
  import { a as findTailscaleBinary } from "./tailscale-CCLcQalf.js";
9
9
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CB4Xjrgb.js";
10
- import { _ as randomToken, a as applyWizardMetadata, b as summarizeExistingConfig, c as ensureWorkspaceAndSessions, g as probeGatewayReachable, h as printWizardHeader, i as DEFAULT_WORKSPACE, p as normalizeGatewayTokenInput, u as guardCancel, v as resolveControlUiLinks, x as waitForGatewayReachable } from "./loader-BNqYr2Am.js";
10
+ import { _ as randomToken, a as applyWizardMetadata, b as summarizeExistingConfig, c as ensureWorkspaceAndSessions, g as probeGatewayReachable, h as printWizardHeader, i as DEFAULT_WORKSPACE, p as normalizeGatewayTokenInput, u as guardCancel, v as resolveControlUiLinks, x as waitForGatewayReachable } from "./loader-DE_vKAH5.js";
11
11
  import { n as withProgress } from "./progress-D-Oc-KAH.js";
12
12
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BntC_Eoo.js";
13
13
  import { t as note$1 } from "./note-C5M2AQOP.js";
14
14
  import { t as WizardCancelledError } from "./prompts-C2D9_VZC.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-k_egRADS.js";
16
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-uZ5vLniX.js";
16
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-B5qHfMk8.js";
17
17
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BMAJ_2LE.js";
18
18
  import { t as resolveGatewayService } from "./service-C0ccl5rU.js";
19
- import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, g as ensureControlUiAssetsBuilt, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-tUnJDYV8.js";
20
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-QWTDdHdV.js";
19
+ import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, g as ensureControlUiAssetsBuilt, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-CyG0xbsu.js";
20
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-DlvTEKqI.js";
21
21
  import { n as logConfigUpdated } from "./logging-B65tlzu3.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-CFK5jDdq.js";
23
23
  import { confirm, intro, outro, select, text } from "@clack/prompts";
@@ -408,8 +408,8 @@ async function promptGatewayConfig(cfg, runtime) {
408
408
  if (tailscaleMode !== "off") {
409
409
  note$1([
410
410
  "Docs:",
411
- "https://docs.cryptoclaw.ai/gateway/tailscale",
412
- "https://docs.cryptoclaw.ai/web"
411
+ "https://docs.openclaw.ai/gateway/tailscale",
412
+ "https://docs.openclaw.ai/web"
413
413
  ].join("\n"), "Tailscale");
414
414
  tailscaleResetOnExit = Boolean(guardCancel(await confirm$1({
415
415
  message: "Reset Tailscale serve/funnel on exit?",
@@ -502,7 +502,7 @@ async function promptWebToolsConfig(nextConfig, runtime) {
502
502
  note$1([
503
503
  "Web search lets your agent look things up online using the `web_search` tool.",
504
504
  "It requires a Brave Search API key (you can store it in the config or set BRAVE_API_KEY in the Gateway environment).",
505
- "Docs: https://docs.cryptoclaw.ai/tools/web"
505
+ "Docs: https://docs.openclaw.ai/tools/web"
506
506
  ].join("\n"), "Web search");
507
507
  const enableSearch = guardCancel(await confirm$1({
508
508
  message: "Enable web_search (Brave Search)?",
@@ -525,7 +525,7 @@ async function promptWebToolsConfig(nextConfig, runtime) {
525
525
  else if (!hasSearchKey) note$1([
526
526
  "No key stored yet, so web_search will stay unavailable.",
527
527
  "Store a key here or set BRAVE_API_KEY in the Gateway environment.",
528
- "Docs: https://docs.cryptoclaw.ai/tools/web"
528
+ "Docs: https://docs.openclaw.ai/tools/web"
529
529
  ].join("\n"), "Web search");
530
530
  }
531
531
  const enableFetch = guardCancel(await confirm$1({
@@ -561,7 +561,7 @@ async function runConfigureWizard(opts, runtime = defaultRuntime) {
561
561
  if (!snapshot.valid && snapshot.issues.length > 0) note$1([
562
562
  ...snapshot.issues.map((iss) => `- ${iss.path}: ${iss.message}`),
563
563
  "",
564
- "Docs: https://docs.cryptoclaw.ai/gateway/configuration"
564
+ "Docs: https://docs.openclaw.ai/gateway/configuration"
565
565
  ].join("\n"), "Config issues");
566
566
  if (!snapshot.valid) {
567
567
  outro$1(`Config invalid. Run \`${formatCliCommand("cryptoclaw doctor")}\` to repair it, then re-run configure.`);
@@ -714,8 +714,8 @@ async function runConfigureWizard(opts, runtime = defaultRuntime) {
714
714
  runtime.error(formatHealthCheckFailure(err));
715
715
  note$1([
716
716
  "Docs:",
717
- "https://docs.cryptoclaw.ai/gateway/health",
718
- "https://docs.cryptoclaw.ai/gateway/troubleshooting"
717
+ "https://docs.openclaw.ai/gateway/health",
718
+ "https://docs.openclaw.ai/gateway/troubleshooting"
719
719
  ].join("\n"), "Health check help");
720
720
  }
721
721
  }
@@ -818,8 +818,8 @@ async function runConfigureWizard(opts, runtime = defaultRuntime) {
818
818
  runtime.error(formatHealthCheckFailure(err));
819
819
  note$1([
820
820
  "Docs:",
821
- "https://docs.cryptoclaw.ai/gateway/health",
822
- "https://docs.cryptoclaw.ai/gateway/troubleshooting"
821
+ "https://docs.openclaw.ai/gateway/health",
822
+ "https://docs.openclaw.ai/gateway/troubleshooting"
823
823
  ].join("\n"), "Health check help");
824
824
  }
825
825
  }
@@ -860,7 +860,7 @@ async function runConfigureWizard(opts, runtime = defaultRuntime) {
860
860
  `Web UI: ${links.httpUrl}`,
861
861
  `Gateway WS: ${links.wsUrl}`,
862
862
  gatewayStatusLine,
863
- "Docs: https://docs.cryptoclaw.ai/web/control-ui"
863
+ "Docs: https://docs.openclaw.ai/web/control-ui"
864
864
  ].join("\n"), "Control UI");
865
865
  outro$1("Configure complete.");
866
866
  } catch (err) {