@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,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-CT7w1pYd.js";
2
- import "./reply-3TWXjNUA.js";
2
+ import "./reply-qWVVjmhR.js";
3
3
  import "./paths-CGrNQEMk.js";
4
4
  import { R as theme, c as defaultRuntime } from "./subsystem-Btuh5yZj.js";
5
5
  import { h as shortenHomePath, p as resolveUserPath, t as CONFIG_DIR } from "./utils-CGterW74.js";
@@ -35,7 +35,7 @@ import "./client-BaTYzXOU.js";
35
35
  import "./call-QEaFjVBF.js";
36
36
  import "./login-qr-BpdHxT8l.js";
37
37
  import "./pairing-store-Dbotpoz6.js";
38
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
38
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
39
39
  import "./progress-DTEUicRP.js";
40
40
  import "./pi-tools.policy-BjgXXFkH.js";
41
41
  import "./prompt-style-BBlJlXtd.js";
@@ -45,7 +45,7 @@ import "./channel-selection-ChOffLk2.js";
45
45
  import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-Dy3Ezb-5.js";
46
46
  import { t as renderTable } from "./table-C1Xupkjv.js";
47
47
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-n8jKv3Fm.js";
48
- import { t as buildPluginStatusReport } from "./status-CbMg399g.js";
48
+ import { t as buildPluginStatusReport } from "./status-DCrBN9vJ.js";
49
49
  import os from "node:os";
50
50
  import path from "node:path";
51
51
  import fs from "node:fs";
@@ -743,7 +743,7 @@ async function disableHook(hookName) {
743
743
  defaultRuntime.log(`${theme.warn("⏸")} Disabled hook: ${hook.emoji ?? "🔗"} ${theme.command(hookName)}`);
744
744
  }
745
745
  function registerHooksCli(program) {
746
- const hooks = program.command("hooks").description("Manage internal agent hooks").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/hooks", "docs.cryptoclaw.ai/cli/hooks")}\n`);
746
+ const hooks = program.command("hooks").description("Manage internal agent hooks").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/hooks", "docs.openclaw.ai/cli/hooks")}\n`);
747
747
  hooks.command("list").description("List all hooks").option("--eligible", "Show only eligible hooks", false).option("--json", "Output as JSON", false).option("-v, --verbose", "Show more details including missing requirements", false).action(async (opts) => {
748
748
  try {
749
749
  const report = buildHooksReport(loadConfig());
@@ -15,11 +15,11 @@ import "./control-service-CWGGzqpN.js";
15
15
  import "./client-N6zH1neq.js";
16
16
  import "./call-D-Kvee3W.js";
17
17
  import "./message-channel-CfYBy4y3.js";
18
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
18
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
19
19
  import "./plugins-CB4Xjrgb.js";
20
20
  import "./logging-5MtSkLpb.js";
21
21
  import "./accounts-BIh6Lgjl.js";
22
- import "./loader-BNqYr2Am.js";
22
+ import "./loader-DE_vKAH5.js";
23
23
  import "./progress-D-Oc-KAH.js";
24
24
  import "./prompt-style-BntC_Eoo.js";
25
25
  import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-iT9wNsml.js";
@@ -43,7 +43,7 @@ import "./pairing-store-cC0TwSYc.js";
43
43
  import "./login-qr-C_Vv7Cqc.js";
44
44
  import { t as renderTable } from "./table--L48nql9.js";
45
45
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-B4cP-W7z.js";
46
- import { t as buildPluginStatusReport } from "./status-D09U-Iku.js";
46
+ import { t as buildPluginStatusReport } from "./status-BnbwLzB2.js";
47
47
  import path from "node:path";
48
48
  import os from "node:os";
49
49
  import fs from "node:fs";
@@ -741,7 +741,7 @@ async function disableHook(hookName) {
741
741
  defaultRuntime.log(`${theme.warn("⏸")} Disabled hook: ${hook.emoji ?? "🔗"} ${theme.command(hookName)}`);
742
742
  }
743
743
  function registerHooksCli(program) {
744
- const hooks = program.command("hooks").description("Manage internal agent hooks").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/hooks", "docs.cryptoclaw.ai/cli/hooks")}\n`);
744
+ const hooks = program.command("hooks").description("Manage internal agent hooks").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/hooks", "docs.openclaw.ai/cli/hooks")}\n`);
745
745
  hooks.command("list").description("List all hooks").option("--eligible", "Show only eligible hooks", false).option("--json", "Output as JSON", false).option("-v, --verbose", "Show more details including missing requirements", false).action(async (opts) => {
746
746
  try {
747
747
  const report = buildHooksReport(loadConfig());
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import "./pi-embedded-helpers-CT7w1pYd.js";
3
- import { $ as CHANNEL_TARGET_DESCRIPTION, $t as runMemoryStatus, Fr as applyTemplate, M as formatTargetDisplay, Ot as waitForGatewayReachable, P as CHANNEL_MESSAGE_ACTION_NAMES, Q as CHANNEL_TARGETS_DESCRIPTION, Qt as registerMemoryCli, T as runMessageAction, Tt as resolveControlUiLinks, an as waitForever, ct as resolveCommitHash, dt as DEFAULT_WORKSPACE, en as monitorWebChannel, ft as applyWizardMetadata, gt as formatControlUiSshHint, ht as ensureWorkspaceAndSessions, mt as detectBrowserOpenSupport, pr as lookupContextTokens, rn as installUnhandledRejectionHandler, t as getReplyFromConfig, vt as handleReset, wt as randomToken, xt as openUrl, yt as moveToTrash } from "./reply-3TWXjNUA.js";
3
+ import { $ as CHANNEL_TARGET_DESCRIPTION, $t as runMemoryStatus, Fr as applyTemplate, M as formatTargetDisplay, Ot as waitForGatewayReachable, P as CHANNEL_MESSAGE_ACTION_NAMES, Q as CHANNEL_TARGETS_DESCRIPTION, Qt as registerMemoryCli, T as runMessageAction, Tt as resolveControlUiLinks, an as waitForever, ct as resolveCommitHash, dt as DEFAULT_WORKSPACE, en as monitorWebChannel, ft as applyWizardMetadata, gt as formatControlUiSshHint, ht as ensureWorkspaceAndSessions, mt as detectBrowserOpenSupport, pr as lookupContextTokens, rn as installUnhandledRejectionHandler, t as getReplyFromConfig, vt as handleReset, wt as randomToken, xt as openUrl, yt as moveToTrash } from "./reply-qWVVjmhR.js";
4
4
  import { _ as resolveStateDir, d as resolveGatewayPort, h as resolveOAuthDir, i as isNixMode, r as STATE_DIR, s as resolveConfigPath } from "./paths-CGrNQEMk.js";
5
5
  import { c as normalizeAgentId, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-CYpWeuht.js";
6
6
  import { D as info, E as danger, I as colorize, L as isRich, M as setVerbose, R as theme, S as normalizeChatChannelId, c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL, l as restoreTerminalState, r as enableConsoleCapture, s as visibleWidth, v as getChatChannelMeta } from "./subsystem-Btuh5yZj.js";
@@ -37,7 +37,7 @@ import "./client-BaTYzXOU.js";
37
37
  import { i as randomIdempotencyKey, n as callGateway } from "./call-QEaFjVBF.js";
38
38
  import "./login-qr-BpdHxT8l.js";
39
39
  import "./pairing-store-Dbotpoz6.js";
40
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
40
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
41
41
  import { r as runCommandWithRuntime } from "./cli-utils-CgOu3WAB.js";
42
42
  import { n as withProgress } from "./progress-DTEUicRP.js";
43
43
  import "./pi-tools.policy-BjgXXFkH.js";
@@ -45,26 +45,26 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
45
45
  import "./session-cost-usage-B3HzifR9.js";
46
46
  import "./control-service-BBeopea3.js";
47
47
  import "./channel-selection-ChOffLk2.js";
48
- import { t as createDefaultDeps } from "./deps-DY5l__pK.js";
48
+ import { t as createDefaultDeps } from "./deps-BhcPiVuz.js";
49
49
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-BY0igR48.js";
50
50
  import { t as isMainModule } from "./is-main-B6kCyqsv.js";
51
51
  import { t as ensureOpenClawCliOnPath } from "./path-env-DQ-mM2ya.js";
52
52
  import { a as gatewayInstallErrorHint, g as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CD5XPuxz.js";
53
- import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-DX15S5UW.js";
53
+ import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-B6aTF0nd.js";
54
54
  import { t as resolveChannelDefaultAccountId } from "./helpers-CzQjTUbz.js";
55
55
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-C3Y3mzWS.js";
56
56
  import "./note-DEz9ZK7G.js";
57
57
  import { t as WizardCancelledError } from "./prompts-FbZThK8w.js";
58
58
  import { t as createClackPrompter } from "./clack-prompter-nSmn5cZ2.js";
59
- import { _ as upsertSharedEnvVar, g as applyOpenAIConfig, h as applyAuthChoice, m as warnIfModelConfigLooksOff, v as applyGoogleGeminiModelDefault, y as promptAuthChoiceGrouped } from "./onboard-skills-CKpZ4Xwu.js";
60
- 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-CeBZ5KDq.js";
61
- import { n as setupChannels } from "./onboard-channels-xteKATz4.js";
59
+ import { _ as upsertSharedEnvVar, g as applyOpenAIConfig, h as applyAuthChoice, m as warnIfModelConfigLooksOff, v as applyGoogleGeminiModelDefault, y as promptAuthChoiceGrouped } from "./onboard-skills-DEnuz7z3.js";
60
+ 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-DvShXmvU.js";
61
+ import { n as setupChannels } from "./onboard-channels-BgchLTab.js";
62
62
  import "./plugin-auto-enable-BmBAQgRq.js";
63
63
  import "./archive-Dy3Ezb-5.js";
64
64
  import "./skill-scanner-BoGjHXUZ.js";
65
65
  import "./installs-CWAe2dOG.js";
66
- import { i as healthCommand } from "./health-format-D0ylScGO.js";
67
- import "./update-runner-DotP-T6Y.js";
66
+ import { i as healthCommand } from "./health-format-SZpheYuf.js";
67
+ import "./update-runner-L1EJYQRF.js";
68
68
  import "./auth-RTEHx2eI.js";
69
69
  import "./audit-BMzW1G5a.js";
70
70
  import { t as renderTable } from "./table-C1Xupkjv.js";
@@ -74,17 +74,17 @@ import { r as isSystemdUserServiceAvailable } from "./systemd-CFHiVC1D.js";
74
74
  import "./service-audit-BsDPEKdd.js";
75
75
  import "./node-service-DTgDFo7M.js";
76
76
  import "./channels-status-issues-BwOdQrU9.js";
77
- import { c as registerSubCliCommands, d as getPositiveIntFlagValue, f as getVerboseFlag, l as getCommandPath, m as hasHelpOrVersion, p as hasFlag, u as getFlagValue } from "./completion-cli-DyiCPCwN.js";
77
+ import { c as registerSubCliCommands, d as getPositiveIntFlagValue, f as getVerboseFlag, l as getCommandPath, m as hasHelpOrVersion, p as hasFlag, u as getFlagValue } from "./completion-cli-Bd5FrGHg.js";
78
78
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-anmk3tbT.js";
79
79
  import { t as formatHelpExamples } from "./help-format-BzWwbeSF.js";
80
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-BH-rLX4t.js";
81
- import { i as hasExplicitOptions, n as resolveCliChannelOptions, r as ensurePluginRegistryLoaded } from "./channel-options-CUOi5M0r.js";
80
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-8dTCwA-D.js";
81
+ import { i as hasExplicitOptions, n as resolveCliChannelOptions, r as ensurePluginRegistryLoaded } from "./channel-options-B951pKy8.js";
82
82
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-5yebzF4C.js";
83
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-B28_m98z.js";
83
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CxPJaP8X.js";
84
84
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-CxBBzOjC.js";
85
85
  import "./widearea-dns-BKbb6W_z.js";
86
86
  import "./auth-health-Cr8ib9nm.js";
87
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-ClJURW58.js";
87
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-DRRL31R4.js";
88
88
  import "./hooks-status-n8jKv3Fm.js";
89
89
  import "./tui-3eD-E_iD.js";
90
90
  import process$1 from "node:process";
@@ -456,7 +456,7 @@ async function agentsAddCommand(opts, runtime = defaultRuntime, params) {
456
456
  const result = applyAgentBindings(nextConfig, desiredBindings);
457
457
  nextConfig = result.config;
458
458
  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");
459
- } else await prompter.note(["Routing unchanged. Add bindings when you're ready.", "Docs: https://docs.cryptoclaw.ai/concepts/multi-agent"].join("\n"), "Routing");
459
+ } else await prompter.note(["Routing unchanged. Add bindings when you're ready.", "Docs: https://docs.openclaw.ai/concepts/multi-agent"].join("\n"), "Routing");
460
460
  await writeConfigFile(nextConfig);
461
461
  logConfigUpdated(runtime);
462
462
  await ensureWorkspaceAndSessions(workspaceDir, runtime, {
@@ -1870,14 +1870,14 @@ function registerBrowserExtensionCommands(browser, parentOpts) {
1870
1870
  `- “Load unpacked” → select: ${displayPath}`,
1871
1871
  `- Pin “OpenClaw Browser Relay”, then click it on the tab (badge shows ON)`,
1872
1872
  "",
1873
- `${theme.muted("Docs:")} ${formatDocsLink("/tools/chrome-extension", "docs.cryptoclaw.ai/tools/chrome-extension")}`
1873
+ `${theme.muted("Docs:")} ${formatDocsLink("/tools/chrome-extension", "docs.openclaw.ai/tools/chrome-extension")}`
1874
1874
  ].join("\n")));
1875
1875
  });
1876
1876
  ext.command("path").description("Print the path to the installed Chrome extension (load unpacked)").action(async (_opts, cmd) => {
1877
1877
  const parent = parentOpts(cmd);
1878
1878
  const dir = installedExtensionRootDir();
1879
1879
  if (!hasManifest(dir)) {
1880
- 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")));
1880
+ 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")));
1881
1881
  defaultRuntime.exit(1);
1882
1882
  }
1883
1883
  if (parent?.json) {
@@ -2692,7 +2692,7 @@ function registerBrowserStateCommands(browser, parentOpts) {
2692
2692
  //#endregion
2693
2693
  //#region src/cli/browser-cli.ts
2694
2694
  function registerBrowserCli(program) {
2695
- 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(() => {
2695
+ 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(() => {
2696
2696
  browser.outputHelp();
2697
2697
  defaultRuntime.error(danger(`Missing subcommand. Try: "${formatCliCommand("cryptoclaw browser status")}"`));
2698
2698
  defaultRuntime.exit(1);
@@ -2853,8 +2853,8 @@ async function loadValidConfig() {
2853
2853
  return snapshot;
2854
2854
  }
2855
2855
  function registerConfigCli(program) {
2856
- 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) => {
2857
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-B28_m98z.js").then((n) => n.t);
2856
+ 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) => {
2857
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-CxPJaP8X.js").then((n) => n.t);
2858
2858
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2859
2859
  if (sections.length === 0) {
2860
2860
  await configureCommand(defaultRuntime);
@@ -3035,14 +3035,14 @@ ${formatHelpExamples([
3035
3035
  ["cryptoclaw agent --agent ops --message \"Generate report\" --deliver --reply-channel slack --reply-to \"#reports\"", "Send reply to a different channel/target."]
3036
3036
  ])}
3037
3037
 
3038
- ${theme.muted("Docs:")} ${formatDocsLink("/cli/agent", "docs.cryptoclaw.ai/cli/agent")}`).action(async (opts) => {
3038
+ ${theme.muted("Docs:")} ${formatDocsLink("/cli/agent", "docs.openclaw.ai/cli/agent")}`).action(async (opts) => {
3039
3039
  setVerbose((typeof opts.verbose === "string" ? opts.verbose.toLowerCase() : "") === "on");
3040
3040
  const deps = createDefaultDeps();
3041
3041
  await runCommandWithRuntime(defaultRuntime, async () => {
3042
3042
  await agentCliCommand(opts, defaultRuntime, deps);
3043
3043
  });
3044
3044
  });
3045
- 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`);
3045
+ 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`);
3046
3046
  agents.command("list").description("List configured agents").option("--json", "Output JSON instead of text", false).option("--bindings", "Include routing bindings", false).action(async (opts) => {
3047
3047
  await runCommandWithRuntime(defaultRuntime, async () => {
3048
3048
  await agentsListCommand({
@@ -3113,7 +3113,7 @@ ${formatHelpExamples([
3113
3113
  //#endregion
3114
3114
  //#region src/cli/program/register.configure.ts
3115
3115
  function registerConfigureCommand(program) {
3116
- 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) => {
3116
+ 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) => {
3117
3117
  await runCommandWithRuntime(defaultRuntime, async () => {
3118
3118
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
3119
3119
  if (sections.length === 0) {
@@ -3539,7 +3539,7 @@ async function uninstallCommand(runtime, opts) {
3539
3539
  //#endregion
3540
3540
  //#region src/cli/program/register.maintenance.ts
3541
3541
  function registerMaintenanceCommands(program) {
3542
- 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) => {
3542
+ 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) => {
3543
3543
  await runCommandWithRuntime(defaultRuntime, async () => {
3544
3544
  await doctorCommand(defaultRuntime, {
3545
3545
  workspaceSuggestions: opts.workspaceSuggestions,
@@ -3552,12 +3552,12 @@ function registerMaintenanceCommands(program) {
3552
3552
  });
3553
3553
  });
3554
3554
  });
3555
- 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) => {
3555
+ 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) => {
3556
3556
  await runCommandWithRuntime(defaultRuntime, async () => {
3557
3557
  await dashboardCommand(defaultRuntime, { noOpen: Boolean(opts.noOpen) });
3558
3558
  });
3559
3559
  });
3560
- 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) => {
3560
+ 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) => {
3561
3561
  await runCommandWithRuntime(defaultRuntime, async () => {
3562
3562
  await resetCommand(defaultRuntime, {
3563
3563
  scope: opts.scope,
@@ -3567,7 +3567,7 @@ function registerMaintenanceCommands(program) {
3567
3567
  });
3568
3568
  });
3569
3569
  });
3570
- 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) => {
3570
+ 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) => {
3571
3571
  await runCommandWithRuntime(defaultRuntime, async () => {
3572
3572
  await uninstallCommand(defaultRuntime, {
3573
3573
  service: Boolean(opts.service),
@@ -4149,7 +4149,7 @@ ${formatHelpExamples([
4149
4149
  ["cryptoclaw message react --channel discord --target 123 --message-id 456 --emoji \"✅\"", "React to a message."]
4150
4150
  ])}
4151
4151
 
4152
- ${theme.muted("Docs:")} ${formatDocsLink("/cli/message", "docs.cryptoclaw.ai/cli/message")}`).action(() => {
4152
+ ${theme.muted("Docs:")} ${formatDocsLink("/cli/message", "docs.openclaw.ai/cli/message")}`).action(() => {
4153
4153
  message.help({ error: true });
4154
4154
  });
4155
4155
  const helpers = createMessageCliHelpers(message, ctx.messageChannelOptions);
@@ -4978,7 +4978,7 @@ async function runNonInteractiveOnboardingLocal(params) {
4978
4978
  skipSkills: Boolean(opts.skipSkills),
4979
4979
  skipHealth: Boolean(opts.skipHealth)
4980
4980
  });
4981
- 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`);
4981
+ 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`);
4982
4982
  }
4983
4983
 
4984
4984
  //#endregion
@@ -5018,7 +5018,7 @@ async function runNonInteractiveOnboardingRemote(params) {
5018
5018
  else {
5019
5019
  runtime.log(`Remote gateway: ${remoteUrl}`);
5020
5020
  runtime.log(`Auth: ${payload.auth}`);
5021
- 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`);
5021
+ 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`);
5022
5022
  }
5023
5023
  }
5024
5024
 
@@ -5075,7 +5075,7 @@ async function onboardCommand(opts, runtime = defaultRuntime) {
5075
5075
  if (normalizedOpts.nonInteractive && normalizedOpts.acceptRisk !== true) {
5076
5076
  runtime.error([
5077
5077
  "Non-interactive onboarding requires explicit risk acknowledgement.",
5078
- "Read: https://docs.cryptoclaw.ai/security",
5078
+ "Read: https://docs.openclaw.ai/security",
5079
5079
  `Re-run with: ${formatCliCommand("cryptoclaw onboard --non-interactive --accept-risk ...")}`
5080
5080
  ].join("\n"));
5081
5081
  runtime.exit(1);
@@ -5090,7 +5090,7 @@ async function onboardCommand(opts, runtime = defaultRuntime) {
5090
5090
  "Windows detected — CryptoClaw runs great on WSL2!",
5091
5091
  "Native Windows might be trickier.",
5092
5092
  "Quick setup: wsl --install (one command, one reboot)",
5093
- "Guide: https://docs.cryptoclaw.ai/windows"
5093
+ "Guide: https://docs.openclaw.ai/windows"
5094
5094
  ].join("\n"));
5095
5095
  if (normalizedOpts.nonInteractive) {
5096
5096
  await runNonInteractiveOnboarding(normalizedOpts, runtime);
@@ -5109,7 +5109,7 @@ function resolveInstallDaemonFlag(command, opts) {
5109
5109
  if (getOptionValueSource.call(command, "installDaemon") === "cli") return Boolean(opts.installDaemon);
5110
5110
  }
5111
5111
  function registerOnboardCommand(program) {
5112
- 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) => {
5112
+ 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) => {
5113
5113
  await runCommandWithRuntime(defaultRuntime, async () => {
5114
5114
  const installDaemon = resolveInstallDaemonFlag(command, { installDaemon: Boolean(opts.installDaemon) });
5115
5115
  const gatewayPort = typeof opts.gatewayPort === "string" ? Number.parseInt(opts.gatewayPort, 10) : void 0;
@@ -5227,7 +5227,7 @@ async function setupCommand(opts, runtime = defaultRuntime) {
5227
5227
  //#endregion
5228
5228
  //#region src/cli/program/register.setup.ts
5229
5229
  function registerSetupCommand(program) {
5230
- 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) => {
5230
+ 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) => {
5231
5231
  await runCommandWithRuntime(defaultRuntime, async () => {
5232
5232
  const hasWizardFlags = hasExplicitOptions(command, [
5233
5233
  "wizard",
@@ -5273,7 +5273,7 @@ function registerStatusHealthSessionsCommands(program) {
5273
5273
  ["cryptoclaw status --usage", "Show model provider usage/quota snapshots."],
5274
5274
  ["cryptoclaw status --deep", "Run channel probes (WA + Telegram + Discord + Slack + Signal)."],
5275
5275
  ["cryptoclaw status --deep --timeout 5000", "Tighten probe timeout."]
5276
- ])}`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/status", "docs.cryptoclaw.ai/cli/status")}\n`).action(async (opts) => {
5276
+ ])}`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/status", "docs.openclaw.ai/cli/status")}\n`).action(async (opts) => {
5277
5277
  const verbose = resolveVerbose(opts);
5278
5278
  setVerbose(verbose);
5279
5279
  const timeout = parseTimeoutMs(opts.timeout);
@@ -5289,7 +5289,7 @@ function registerStatusHealthSessionsCommands(program) {
5289
5289
  }, defaultRuntime);
5290
5290
  });
5291
5291
  });
5292
- 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) => {
5292
+ 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) => {
5293
5293
  const verbose = resolveVerbose(opts);
5294
5294
  setVerbose(verbose);
5295
5295
  const timeout = parseTimeoutMs(opts.timeout);
@@ -5307,7 +5307,7 @@ function registerStatusHealthSessionsCommands(program) {
5307
5307
  ["cryptoclaw sessions --active 120", "Only last 2 hours."],
5308
5308
  ["cryptoclaw sessions --json", "Machine-readable output."],
5309
5309
  ["cryptoclaw sessions --store ./tmp/sessions.json", "Use a specific session store."]
5310
- ])}\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) => {
5310
+ ])}\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) => {
5311
5311
  setVerbose(Boolean(opts.verbose));
5312
5312
  await sessionsCommand({
5313
5313
  json: Boolean(opts.json),
@@ -5765,7 +5765,7 @@ function configureProgramHelp(program, ctx) {
5765
5765
  const fmtExamples = EXAMPLES.map(([cmd, desc]) => ` ${theme.command(replaceCliName(cmd, CLI_NAME))}\n ${theme.muted(desc)}`).join("\n");
5766
5766
  program.addHelpText("afterAll", ({ command }) => {
5767
5767
  if (command !== program) return "";
5768
- const docs = formatDocsLink("/cli", "docs.cryptoclaw.ai/cli");
5768
+ const docs = formatDocsLink("/cli", "docs.openclaw.ai/cli");
5769
5769
  return `\n${theme.heading("Examples:")}\n${fmtExamples}\n\n${theme.muted("Docs:")} ${docs}\n`;
5770
5770
  });
5771
5771
  }
@@ -1,7 +1,7 @@
1
1
  import { o as formatTerminalLink } from "./utils-CGterW74.js";
2
2
 
3
3
  //#region src/terminal/links.ts
4
- const DOCS_ROOT = "https://docs.cryptoclaw.ai";
4
+ const DOCS_ROOT = "https://docs.openclaw.ai";
5
5
  function formatDocsLink(path, label, opts) {
6
6
  const trimmed = path.trim();
7
7
  const url = trimmed.startsWith("http") ? trimmed : `${DOCS_ROOT}${trimmed.startsWith("/") ? trimmed : `/${trimmed}`}`;
@@ -1,7 +1,7 @@
1
1
  import { a as formatTerminalLink } from "./utils-DV2rghi_.js";
2
2
 
3
3
  //#region src/terminal/links.ts
4
- const DOCS_ROOT = "https://docs.cryptoclaw.ai";
4
+ const DOCS_ROOT = "https://docs.openclaw.ai";
5
5
  function formatDocsLink(path, label, opts) {
6
6
  const trimmed = path.trim();
7
7
  const url = trimmed.startsWith("http") ? trimmed : `${DOCS_ROOT}${trimmed.startsWith("/") ? trimmed : `/${trimmed}`}`;
@@ -18,7 +18,7 @@ import { t as pickPrimaryTailnetIPv4 } from "./tailnet-CZq_ZSNX.js";
18
18
  import { Et as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-N6zH1neq.js";
19
19
  import { i as randomIdempotencyKey, n as callGateway } from "./call-D-Kvee3W.js";
20
20
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-CfYBy4y3.js";
21
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
21
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
22
22
  import { _ as normalizeChatType, a as normalizeWhatsAppTarget, b as normalizeDiscordToken, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as listEnabledDiscordAccounts, y as resolveDiscordAccount } from "./plugins-CB4Xjrgb.js";
23
23
  import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-BIh6Lgjl.js";
24
24
  import { n as withProgress, r as withProgressTotals } from "./progress-D-Oc-KAH.js";
@@ -21187,12 +21187,12 @@ function missingSearchKeyPayload(provider) {
21187
21187
  if (provider === "perplexity") return {
21188
21188
  error: "missing_perplexity_api_key",
21189
21189
  message: "web_search (perplexity) needs an API key. Set PERPLEXITY_API_KEY or OPENROUTER_API_KEY in the Gateway environment, or configure tools.web.search.perplexity.apiKey.",
21190
- docs: "https://docs.cryptoclaw.ai/tools/web"
21190
+ docs: "https://docs.openclaw.ai/tools/web"
21191
21191
  };
21192
21192
  return {
21193
21193
  error: "missing_brave_api_key",
21194
21194
  message: `web_search needs a Brave Search API key. Run \`${formatCliCommand("cryptoclaw configure --section web")}\` to store it, or set BRAVE_API_KEY in the Gateway environment.`,
21195
- docs: "https://docs.cryptoclaw.ai/tools/web"
21195
+ docs: "https://docs.openclaw.ai/tools/web"
21196
21196
  };
21197
21197
  }
21198
21198
  function resolveSearchProvider(search) {
@@ -21411,13 +21411,13 @@ function createWebSearchTool(options) {
21411
21411
  if (rawFreshness && provider !== "brave") return jsonResult({
21412
21412
  error: "unsupported_freshness",
21413
21413
  message: "freshness is only supported by the Brave web_search provider.",
21414
- docs: "https://docs.cryptoclaw.ai/tools/web"
21414
+ docs: "https://docs.openclaw.ai/tools/web"
21415
21415
  });
21416
21416
  const freshness = rawFreshness ? normalizeFreshness(rawFreshness) : void 0;
21417
21417
  if (rawFreshness && !freshness) return jsonResult({
21418
21418
  error: "invalid_freshness",
21419
21419
  message: "freshness must be one of pd, pw, pm, py, or a range like YYYY-MM-DDtoYYYY-MM-DD.",
21420
- docs: "https://docs.cryptoclaw.ai/tools/web"
21420
+ docs: "https://docs.openclaw.ai/tools/web"
21421
21421
  });
21422
21422
  return jsonResult(await runWebSearch({
21423
21423
  query,
@@ -23847,7 +23847,7 @@ function buildDocsSection(params) {
23847
23847
  return [
23848
23848
  "## Documentation",
23849
23849
  `CryptoClaw docs: ${docsPath}`,
23850
- "Mirror: https://docs.cryptoclaw.ai",
23850
+ "Mirror: https://docs.openclaw.ai",
23851
23851
  "Source: https://github.com/cryptoclaw/cryptoclaw",
23852
23852
  "Community: https://discord.com/invite/clawd",
23853
23853
  "Find new skills: https://clawhub.com",
@@ -35340,7 +35340,7 @@ function formatElevatedUnavailableMessage$1(params) {
35340
35340
  return lines.join("\n");
35341
35341
  }
35342
35342
  async function handleBashChatCommand(params) {
35343
- if (params.cfg.commands?.bash !== true) return { text: "⚠️ bash is disabled. Set commands.bash=true to enable. Docs: https://docs.cryptoclaw.ai/tools/slash-commands#config" };
35343
+ if (params.cfg.commands?.bash !== true) return { text: "⚠️ bash is disabled. Set commands.bash=true to enable. Docs: https://docs.openclaw.ai/tools/slash-commands#config" };
35344
35344
  const agentId = params.agentId ?? resolveSessionAgentId({
35345
35345
  sessionKey: params.sessionKey,
35346
35346
  config: params.cfg
@@ -49169,7 +49169,7 @@ async function runMemoryStatus(opts) {
49169
49169
  }
49170
49170
  }
49171
49171
  function registerMemoryCli(program) {
49172
- const memory = program.command("memory").description("Memory search tools").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/memory", "docs.cryptoclaw.ai/cli/memory")}\n`);
49172
+ const memory = program.command("memory").description("Memory search tools").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/memory", "docs.openclaw.ai/cli/memory")}\n`);
49173
49173
  memory.command("status").description("Show memory search index status").option("--agent <id>", "Agent id (default: default agent)").option("--json", "Print JSON").option("--deep", "Probe embedding provider availability").option("--index", "Reindex if dirty (implies --deep)").option("--verbose", "Verbose logging", false).action(async (opts) => {
49174
49174
  await runMemoryStatus(opts);
49175
49175
  });
@@ -53157,8 +53157,8 @@ function formatControlUiSshHint(params) {
53157
53157
  "Then open:",
53158
53158
  localUrl,
53159
53159
  "Docs:",
53160
- "https://docs.cryptoclaw.ai/gateway/remote",
53161
- "https://docs.cryptoclaw.ai/web/control-ui"
53160
+ "https://docs.openclaw.ai/gateway/remote",
53161
+ "https://docs.openclaw.ai/web/control-ui"
53162
53162
  ].filter(Boolean).join("\n");
53163
53163
  }
53164
53164
  function resolveSshTargetHint() {
@@ -13,7 +13,7 @@ import "./manifest-registry-CmLtWVRR.js";
13
13
  import "./message-channel-CvHWS3C2.js";
14
14
  import "./client-BaTYzXOU.js";
15
15
  import { t as buildGatewayConnectionDetails } from "./call-QEaFjVBF.js";
16
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
16
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
17
17
  import "./progress-DTEUicRP.js";
18
18
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-anmk3tbT.js";
19
19
  import { t as parseLogLine } from "./parse-log-line-BxDgv4Uo.js";
@@ -149,7 +149,7 @@ function emitGatewayError(err, opts, mode, rich, emitJsonLine, errorLine) {
149
149
  errorLine(colorize(rich, theme.muted, hint));
150
150
  }
151
151
  function registerLogsCli(program) {
152
- const logs = program.command("logs").description("Tail gateway file logs via RPC").option("--limit <n>", "Max lines to return", "200").option("--max-bytes <n>", "Max bytes to read", "250000").option("--follow", "Follow log output", false).option("--interval <ms>", "Polling interval in ms", "1000").option("--json", "Emit JSON log lines", false).option("--plain", "Plain text output (no ANSI styling)", false).option("--no-color", "Disable ANSI colors").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/logs", "docs.cryptoclaw.ai/cli/logs")}\n`);
152
+ const logs = program.command("logs").description("Tail gateway file logs via RPC").option("--limit <n>", "Max lines to return", "200").option("--max-bytes <n>", "Max bytes to read", "250000").option("--follow", "Follow log output", false).option("--interval <ms>", "Polling interval in ms", "1000").option("--json", "Emit JSON log lines", false).option("--plain", "Plain text output (no ANSI styling)", false).option("--no-color", "Disable ANSI colors").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/logs", "docs.openclaw.ai/cli/logs")}\n`);
153
153
  addGatewayClientOptions(logs);
154
154
  logs.action(async (opts) => {
155
155
  const { logLine, errorLine, emitJsonLine } = createLogWriters();
@@ -11,7 +11,7 @@ import "./manifest-registry-CBbBh2FT.js";
11
11
  import "./client-N6zH1neq.js";
12
12
  import { t as buildGatewayConnectionDetails } from "./call-D-Kvee3W.js";
13
13
  import "./message-channel-CfYBy4y3.js";
14
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
14
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
15
15
  import "./progress-D-Oc-KAH.js";
16
16
  import { t as parseLogLine } from "./parse-log-line-CUrpqe1w.js";
17
17
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-0hjEbkzc.js";
@@ -147,7 +147,7 @@ function emitGatewayError(err, opts, mode, rich, emitJsonLine, errorLine) {
147
147
  errorLine(colorize(rich, theme.muted, hint));
148
148
  }
149
149
  function registerLogsCli(program) {
150
- const logs = program.command("logs").description("Tail gateway file logs via RPC").option("--limit <n>", "Max lines to return", "200").option("--max-bytes <n>", "Max bytes to read", "250000").option("--follow", "Follow log output", false).option("--interval <ms>", "Polling interval in ms", "1000").option("--json", "Emit JSON log lines", false).option("--plain", "Plain text output (no ANSI styling)", false).option("--no-color", "Disable ANSI colors").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/logs", "docs.cryptoclaw.ai/cli/logs")}\n`);
150
+ const logs = program.command("logs").description("Tail gateway file logs via RPC").option("--limit <n>", "Max lines to return", "200").option("--max-bytes <n>", "Max bytes to read", "250000").option("--follow", "Follow log output", false).option("--interval <ms>", "Polling interval in ms", "1000").option("--json", "Emit JSON log lines", false).option("--plain", "Plain text output (no ANSI styling)", false).option("--no-color", "Disable ANSI colors").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/logs", "docs.openclaw.ai/cli/logs")}\n`);
151
151
  addGatewayClientOptions(logs);
152
152
  logs.action(async (opts) => {
153
153
  const { logLine, errorLine, emitJsonLine } = createLogWriters();
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-CT7w1pYd.js";
2
- import { I as describeFailoverError, c as runEmbeddedPiAgent, it as loadProviderUsageSummary, ot as formatUsageWindowSummary, st as resolveUsageProviderId, xr as loadModelCatalog, xt as openUrl } from "./reply-3TWXjNUA.js";
2
+ import { I as describeFailoverError, c as runEmbeddedPiAgent, it as loadProviderUsageSummary, ot as formatUsageWindowSummary, st as resolveUsageProviderId, xr as loadModelCatalog, xt as openUrl } from "./reply-qWVVjmhR.js";
3
3
  import { t as CONFIG_PATH } from "./paths-CGrNQEMk.js";
4
4
  import { I as colorize, L as isRich$1, R as theme, c as defaultRuntime } from "./subsystem-Btuh5yZj.js";
5
5
  import { h as shortenHomePath } from "./utils-CGterW74.js";
@@ -35,7 +35,7 @@ import "./client-BaTYzXOU.js";
35
35
  import "./call-QEaFjVBF.js";
36
36
  import "./login-qr-BpdHxT8l.js";
37
37
  import "./pairing-store-Dbotpoz6.js";
38
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
38
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
39
39
  import { n as resolveOptionFromCommand, r as runCommandWithRuntime } from "./cli-utils-CgOu3WAB.js";
40
40
  import { r as withProgressTotals } from "./progress-DTEUicRP.js";
41
41
  import "./pi-tools.policy-BjgXXFkH.js";
@@ -46,7 +46,7 @@ import "./channel-selection-ChOffLk2.js";
46
46
  import { n as logConfigUpdated } from "./logging-C3Y3mzWS.js";
47
47
  import "./note-DEz9ZK7G.js";
48
48
  import { t as createClackPrompter } from "./clack-prompter-nSmn5cZ2.js";
49
- import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, lt as validateAnthropicSetupToken, n as ensureFlagCompatibility, o as resolveKnownAgentId, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-CeBZ5KDq.js";
49
+ import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, lt as validateAnthropicSetupToken, n as ensureFlagCompatibility, o as resolveKnownAgentId, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-DvShXmvU.js";
50
50
  import { t as renderTable } from "./table-C1Xupkjv.js";
51
51
  import { i as redactSecrets } from "./format-B7OjpGnt.js";
52
52
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-Cr8ib9nm.js";
@@ -2354,7 +2354,7 @@ function runModelsCommand(action) {
2354
2354
  return runCommandWithRuntime(defaultRuntime, action);
2355
2355
  }
2356
2356
  function registerModelsCli(program) {
2357
- const models = program.command("models").description("Model discovery, scanning, and configuration").option("--status-json", "Output JSON (alias for `models status --json`)", false).option("--status-plain", "Plain output (alias for `models status --plain`)", false).option("--agent <id>", "Agent id to inspect (overrides CRYPTOCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/models", "docs.cryptoclaw.ai/cli/models")}\n`);
2357
+ const models = program.command("models").description("Model discovery, scanning, and configuration").option("--status-json", "Output JSON (alias for `models status --json`)", false).option("--status-plain", "Plain output (alias for `models status --plain`)", false).option("--agent <id>", "Agent id to inspect (overrides CRYPTOCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/models", "docs.openclaw.ai/cli/models")}\n`);
2358
2358
  models.command("list").description("List models (configured by default)").option("--all", "Show full model catalog", false).option("--local", "Filter to local models", false).option("--provider <name>", "Filter by provider").option("--json", "Output JSON", false).option("--plain", "Plain line output", false).action(async (opts) => {
2359
2359
  await runModelsCommand(async () => {
2360
2360
  await modelsListCommand(opts, defaultRuntime);
@@ -15,11 +15,11 @@ import "./control-service-CWGGzqpN.js";
15
15
  import "./client-N6zH1neq.js";
16
16
  import "./call-D-Kvee3W.js";
17
17
  import "./message-channel-CfYBy4y3.js";
18
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
18
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
19
19
  import "./plugins-CB4Xjrgb.js";
20
20
  import "./logging-5MtSkLpb.js";
21
21
  import "./accounts-BIh6Lgjl.js";
22
- import { Dt as runEmbeddedPiAgent, En as describeFailoverError, Jt as loadProviderUsageSummary, Kt as loadModelCatalog, Xt as formatUsageWindowSummary, Zt as resolveUsageProviderId, m as openUrl } from "./loader-BNqYr2Am.js";
22
+ import { Dt as runEmbeddedPiAgent, En as describeFailoverError, Jt as loadProviderUsageSummary, Kt as loadModelCatalog, Xt as formatUsageWindowSummary, Zt as resolveUsageProviderId, m as openUrl } from "./loader-DE_vKAH5.js";
23
23
  import { r as withProgressTotals } from "./progress-D-Oc-KAH.js";
24
24
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BntC_Eoo.js";
25
25
  import "./note-C5M2AQOP.js";
@@ -44,7 +44,7 @@ import "./pairing-store-cC0TwSYc.js";
44
44
  import "./login-qr-C_Vv7Cqc.js";
45
45
  import { n as resolveOptionFromCommand, r as runCommandWithRuntime } from "./cli-utils-B7iQwCY5.js";
46
46
  import { t as renderTable } from "./table--L48nql9.js";
47
- import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, lt as validateAnthropicSetupToken, n as ensureFlagCompatibility, o as resolveKnownAgentId, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-CLh6feLw.js";
47
+ import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, lt as validateAnthropicSetupToken, n as ensureFlagCompatibility, o as resolveKnownAgentId, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-D6I2MUxi.js";
48
48
  import { n as logConfigUpdated } from "./logging-B65tlzu3.js";
49
49
  import { i as redactSecrets } from "./format-Dv1wz41T.js";
50
50
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-Dc-ImENT.js";
@@ -2352,7 +2352,7 @@ function runModelsCommand(action) {
2352
2352
  return runCommandWithRuntime(defaultRuntime, action);
2353
2353
  }
2354
2354
  function registerModelsCli(program) {
2355
- const models = program.command("models").description("Model discovery, scanning, and configuration").option("--status-json", "Output JSON (alias for `models status --json`)", false).option("--status-plain", "Plain output (alias for `models status --plain`)", false).option("--agent <id>", "Agent id to inspect (overrides CRYPTOCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/models", "docs.cryptoclaw.ai/cli/models")}\n`);
2355
+ const models = program.command("models").description("Model discovery, scanning, and configuration").option("--status-json", "Output JSON (alias for `models status --json`)", false).option("--status-plain", "Plain output (alias for `models status --plain`)", false).option("--agent <id>", "Agent id to inspect (overrides CRYPTOCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/models", "docs.openclaw.ai/cli/models")}\n`);
2356
2356
  models.command("list").description("List models (configured by default)").option("--all", "Show full model catalog", false).option("--local", "Filter to local models", false).option("--provider <name>", "Filter by provider").option("--json", "Output JSON", false).option("--plain", "Plain line output", false).action(async (opts) => {
2357
2357
  await runModelsCommand(async () => {
2358
2358
  await modelsListCommand(opts, defaultRuntime);