@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
@@ -8,7 +8,7 @@ import "./github-copilot-token-C1sArkX4.js";
8
8
  import { i as loadConfig } from "./config-DBZqAqbe.js";
9
9
  import "./manifest-registry-CBbBh2FT.js";
10
10
  import { n as pickPrimaryTailnetIPv6, t as pickPrimaryTailnetIPv4 } from "./tailnet-CZq_ZSNX.js";
11
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
11
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
12
12
  import { t as renderTable } from "./table--L48nql9.js";
13
13
  import { n as resolveWideAreaDiscoveryDomain, t as getWideAreaZonePath } from "./widearea-dns-CVZf20c2.js";
14
14
  import { spawnSync } from "node:child_process";
@@ -83,7 +83,7 @@ function ensureImportLine(corefilePath, importGlob) {
83
83
  return true;
84
84
  }
85
85
  function registerDnsCli(program) {
86
- program.command("dns").description("DNS helpers for wide-area discovery (Tailscale + CoreDNS)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/dns", "docs.cryptoclaw.ai/cli/dns")}\n`).command("setup").description("Set up CoreDNS to serve your discovery domain for unicast DNS-SD (Wide-Area Bonjour)").option("--domain <domain>", "Wide-area discovery domain (e.g. openclaw.internal)").option("--apply", "Install/update CoreDNS config and (re)start the service (requires sudo)", false).action(async (opts) => {
86
+ program.command("dns").description("DNS helpers for wide-area discovery (Tailscale + CoreDNS)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/dns", "docs.openclaw.ai/cli/dns")}\n`).command("setup").description("Set up CoreDNS to serve your discovery domain for unicast DNS-SD (Wide-Area Bonjour)").option("--domain <domain>", "Wide-area discovery domain (e.g. openclaw.internal)").option("--apply", "Install/update CoreDNS config and (re)start the service (requires sudo)", false).action(async (opts) => {
87
87
  const cfg = loadConfig();
88
88
  const tailnetIPv4 = pickPrimaryTailnetIPv4();
89
89
  const tailnetIPv6 = pickPrimaryTailnetIPv6();
@@ -10,7 +10,7 @@ import "./env-B2Cd_6IS.js";
10
10
  import { i as loadConfig } from "./config-D1wc31Qf.js";
11
11
  import "./manifest-registry-CmLtWVRR.js";
12
12
  import { n as pickPrimaryTailnetIPv6, t as pickPrimaryTailnetIPv4 } from "./tailnet-D5wOWpOX.js";
13
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
13
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
14
14
  import { t as renderTable } from "./table-C1Xupkjv.js";
15
15
  import { n as resolveWideAreaDiscoveryDomain, t as getWideAreaZonePath } from "./widearea-dns-BKbb6W_z.js";
16
16
  import path from "node:path";
@@ -85,7 +85,7 @@ function ensureImportLine(corefilePath, importGlob) {
85
85
  return true;
86
86
  }
87
87
  function registerDnsCli(program) {
88
- program.command("dns").description("DNS helpers for wide-area discovery (Tailscale + CoreDNS)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/dns", "docs.cryptoclaw.ai/cli/dns")}\n`).command("setup").description("Set up CoreDNS to serve your discovery domain for unicast DNS-SD (Wide-Area Bonjour)").option("--domain <domain>", "Wide-area discovery domain (e.g. openclaw.internal)").option("--apply", "Install/update CoreDNS config and (re)start the service (requires sudo)", false).action(async (opts) => {
88
+ program.command("dns").description("DNS helpers for wide-area discovery (Tailscale + CoreDNS)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/dns", "docs.openclaw.ai/cli/dns")}\n`).command("setup").description("Set up CoreDNS to serve your discovery domain for unicast DNS-SD (Wide-Area Bonjour)").option("--domain <domain>", "Wide-area discovery domain (e.g. openclaw.internal)").option("--apply", "Install/update CoreDNS config and (re)start the service (requires sudo)", false).action(async (opts) => {
89
89
  const cfg = loadConfig();
90
90
  const tailnetIPv4 = pickPrimaryTailnetIPv4();
91
91
  const tailnetIPv6 = pickPrimaryTailnetIPv6();
@@ -6,11 +6,11 @@ import { t as formatCliCommand } from "./command-format-9IsYy-9N.js";
6
6
  import "./boolean-BsqeuxE6.js";
7
7
  import "./manifest-registry-CmLtWVRR.js";
8
8
  import { d as hasBinary } from "./skills-DryIpWLj.js";
9
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
9
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
10
10
  import { r as runCommandWithRuntime } from "./cli-utils-CgOu3WAB.js";
11
11
 
12
12
  //#region src/commands/docs.ts
13
- const SEARCH_TOOL = "https://docs.cryptoclaw.ai/mcp.SearchCryptoClaw";
13
+ const SEARCH_TOOL = "https://docs.openclaw.ai/mcp.SearchCryptoClaw";
14
14
  const SEARCH_TIMEOUT_MS = 3e4;
15
15
  const DEFAULT_SNIPPET_MAX = 220;
16
16
  function resolveNodeRunner() {
@@ -115,12 +115,12 @@ async function renderMarkdown(markdown, runtime) {
115
115
  async function docsSearchCommand(queryParts, runtime) {
116
116
  const query = queryParts.join(" ").trim();
117
117
  if (!query) {
118
- const docs = formatDocsLink("/", "docs.cryptoclaw.ai");
118
+ const docs = formatDocsLink("/", "docs.openclaw.ai");
119
119
  if (isRich()) {
120
120
  runtime.log(`${theme.muted("Docs:")} ${docs}`);
121
121
  runtime.log(`${theme.muted("Search:")} ${formatCliCommand("cryptoclaw docs \"your query\"")}`);
122
122
  } else {
123
- runtime.log("Docs: https://docs.cryptoclaw.ai/");
123
+ runtime.log("Docs: https://docs.openclaw.ai/");
124
124
  runtime.log(`Search: ${formatCliCommand("cryptoclaw docs \"your query\"")}`);
125
125
  }
126
126
  return;
@@ -150,7 +150,7 @@ async function docsSearchCommand(queryParts, runtime) {
150
150
  //#endregion
151
151
  //#region src/cli/docs-cli.ts
152
152
  function registerDocsCli(program) {
153
- program.command("docs").description("Search the live OpenClaw docs").argument("[query...]", "Search query").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/docs", "docs.cryptoclaw.ai/cli/docs")}\n`).action(async (queryParts) => {
153
+ program.command("docs").description("Search the live OpenClaw docs").argument("[query...]", "Search query").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/docs", "docs.openclaw.ai/cli/docs")}\n`).action(async (queryParts) => {
154
154
  await runCommandWithRuntime(defaultRuntime, async () => {
155
155
  await docsSearchCommand(queryParts, defaultRuntime);
156
156
  });
@@ -4,12 +4,12 @@ import { t as formatCliCommand } from "./command-format-B0bnyrEA.js";
4
4
  import "./utils-DV2rghi_.js";
5
5
  import { t as runCommandWithTimeout } from "./exec-CLQSz0CI.js";
6
6
  import "./manifest-registry-CBbBh2FT.js";
7
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
7
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
8
8
  import { d as hasBinary } from "./skills-DaDm2aTV.js";
9
9
  import { r as runCommandWithRuntime } from "./cli-utils-B7iQwCY5.js";
10
10
 
11
11
  //#region src/commands/docs.ts
12
- const SEARCH_TOOL = "https://docs.cryptoclaw.ai/mcp.SearchCryptoClaw";
12
+ const SEARCH_TOOL = "https://docs.openclaw.ai/mcp.SearchCryptoClaw";
13
13
  const SEARCH_TIMEOUT_MS = 3e4;
14
14
  const DEFAULT_SNIPPET_MAX = 220;
15
15
  function resolveNodeRunner() {
@@ -114,12 +114,12 @@ async function renderMarkdown(markdown, runtime) {
114
114
  async function docsSearchCommand(queryParts, runtime) {
115
115
  const query = queryParts.join(" ").trim();
116
116
  if (!query) {
117
- const docs = formatDocsLink("/", "docs.cryptoclaw.ai");
117
+ const docs = formatDocsLink("/", "docs.openclaw.ai");
118
118
  if (isRich()) {
119
119
  runtime.log(`${theme.muted("Docs:")} ${docs}`);
120
120
  runtime.log(`${theme.muted("Search:")} ${formatCliCommand("cryptoclaw docs \"your query\"")}`);
121
121
  } else {
122
- runtime.log("Docs: https://docs.cryptoclaw.ai/");
122
+ runtime.log("Docs: https://docs.openclaw.ai/");
123
123
  runtime.log(`Search: ${formatCliCommand("cryptoclaw docs \"your query\"")}`);
124
124
  }
125
125
  return;
@@ -149,7 +149,7 @@ async function docsSearchCommand(queryParts, runtime) {
149
149
  //#endregion
150
150
  //#region src/cli/docs-cli.ts
151
151
  function registerDocsCli(program) {
152
- program.command("docs").description("Search the live OpenClaw docs").argument("[query...]", "Search query").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/docs", "docs.cryptoclaw.ai/cli/docs")}\n`).action(async (queryParts) => {
152
+ program.command("docs").description("Search the live OpenClaw docs").argument("[query...]", "Search query").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/docs", "docs.openclaw.ai/cli/docs")}\n`).action(async (queryParts) => {
153
153
  await runCommandWithRuntime(defaultRuntime, async () => {
154
154
  await docsSearchCommand(queryParts, defaultRuntime);
155
155
  });
@@ -14,7 +14,7 @@ import { i as resolveGatewayAuth } from "./auth-phxCaFNX.js";
14
14
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-D-Kvee3W.js";
15
15
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CBfM3u2p.js";
16
16
  import { n as listChannelPlugins } from "./plugins-CB4Xjrgb.js";
17
- import { Kt as loadModelCatalog, _ as randomToken, a as applyWizardMetadata, h as printWizardHeader, t as loadOpenClawPlugins, u as guardCancel } from "./loader-BNqYr2Am.js";
17
+ import { Kt as loadModelCatalog, _ as randomToken, a as applyWizardMetadata, h as printWizardHeader, t as loadOpenClawPlugins, u as guardCancel } from "./loader-DE_vKAH5.js";
18
18
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BntC_Eoo.js";
19
19
  import { t as note$1 } from "./note-C5M2AQOP.js";
20
20
  import { t as resolveChannelDefaultAccountId } from "./helpers-OUt4hxkS.js";
@@ -29,8 +29,8 @@ import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLa
29
29
  import { r as isSystemdUserServiceAvailable } from "./systemd-kY3NnWdi.js";
30
30
  import { n as renderSystemdUnavailableHints, t as isSystemdUnavailableDetail } from "./systemd-hints-CgQqk98i.js";
31
31
  import { a as renderGatewayServiceCleanupHints, i as findExtraGatewayServices, n as auditGatewayServiceConfig, o as readLastGatewayErrorLine, r as needsNodeRuntimeMigration, t as SERVICE_AUDIT_CODES } from "./service-audit-CCg0o0UZ.js";
32
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-QWTDdHdV.js";
33
- import { f as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-vOge0-Wj.js";
32
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-DlvTEKqI.js";
33
+ import { f as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-eJ773fp-.js";
34
34
  import { n as logConfigUpdated } from "./logging-B65tlzu3.js";
35
35
  import { t as buildWorkspaceSkillStatus } from "./skills-status-dTiH79uI.js";
36
36
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-Dc-ImENT.js";
@@ -1,4 +1,4 @@
1
- import { St as printWizardHeader, _t as guardCancel, ft as applyWizardMetadata, rt as loadOpenClawPlugins, wt as randomToken, xr as loadModelCatalog } from "./reply-3TWXjNUA.js";
1
+ import { St as printWizardHeader, _t as guardCancel, ft as applyWizardMetadata, rt as loadOpenClawPlugins, wt as randomToken, xr as loadModelCatalog } from "./reply-qWVVjmhR.js";
2
2
  import { _ as resolveStateDir, d as resolveGatewayPort, f as resolveIsNixMode, h as resolveOAuthDir, m as resolveNewStateDir, p as resolveLegacyStateDirs, t as CONFIG_PATH } from "./paths-CGrNQEMk.js";
3
3
  import { c as normalizeAgentId, i as buildAgentMainSessionKey, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-CYpWeuht.js";
4
4
  import { V as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-Btuh5yZj.js";
@@ -24,8 +24,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-CzQjTUbz.js";
24
24
  import { n as logConfigUpdated } from "./logging-C3Y3mzWS.js";
25
25
  import { t as note$1 } from "./note-DEz9ZK7G.js";
26
26
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BmBAQgRq.js";
27
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-D0ylScGO.js";
28
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-DotP-T6Y.js";
27
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-SZpheYuf.js";
28
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-L1EJYQRF.js";
29
29
  import { a as resolveGatewayBindHost, n as isLoopbackHost } from "./net-D4G66Xui.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-RTEHx2eI.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-D9G4-4sK.js";
package/dist/entry.js CHANGED
@@ -1146,7 +1146,7 @@ if (!ensureExperimentalWarningSuppressed()) {
1146
1146
  applyCliProfileEnv({ profile: parsed.profile });
1147
1147
  process$1.argv = parsed.argv;
1148
1148
  }
1149
- import("./run-main-D43qwCZX.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
1149
+ import("./run-main-C12Z921D.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
1150
1150
  console.error("[cryptoclaw] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
1151
1151
  process$1.exitCode = 1;
1152
1152
  });
@@ -10,7 +10,7 @@ import "./manifest-registry-CBbBh2FT.js";
10
10
  import "./client-N6zH1neq.js";
11
11
  import "./call-D-Kvee3W.js";
12
12
  import "./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 "./progress-D-Oc-KAH.js";
15
15
  import { g as saveExecApprovals, l as readExecApprovalsSnapshot } from "./exec-approvals-P7vwSw4O.js";
16
16
  import { n as callGatewayFromCli } from "./gateway-rpc-0hjEbkzc.js";
@@ -224,7 +224,7 @@ function isEmptyAgent(agent) {
224
224
  }
225
225
  function registerExecApprovalsCli(program) {
226
226
  const formatExample = (cmd, desc) => ` ${theme.command(cmd)}\n ${theme.muted(desc)}`;
227
- const approvals = program.command("approvals").alias("exec-approvals").description("Manage exec approvals (gateway or node host)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.cryptoclaw.ai/cli/approvals")}\n`);
227
+ const approvals = program.command("approvals").alias("exec-approvals").description("Manage exec approvals (gateway or node host)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.openclaw.ai/cli/approvals")}\n`);
228
228
  nodesCallOpts(approvals.command("get").description("Fetch exec approvals snapshot").option("--node <node>", "Target node id/name/IP").option("--gateway", "Force gateway approvals", false).action(async (opts) => {
229
229
  try {
230
230
  const { snapshot, nodeId, source } = await loadSnapshotTarget(opts);
@@ -285,7 +285,7 @@ function registerExecApprovalsCli(program) {
285
285
  defaultRuntime.exit(1);
286
286
  }
287
287
  }));
288
- const allowlist = approvals.command("allowlist").description("Edit the per-agent allowlist").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatExample("cryptoclaw approvals allowlist add \"~/Projects/**/bin/rg\"", "Allowlist a local binary pattern for the main agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent main --node <id|name|ip> \"/usr/bin/uptime\"", "Allowlist on a specific node/agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent \"*\" \"/usr/bin/uname\"", "Allowlist for all agents (wildcard).")}\n${formatExample("cryptoclaw approvals allowlist remove \"~/Projects/**/bin/rg\"", "Remove an allowlist pattern.")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.cryptoclaw.ai/cli/approvals")}\n`);
288
+ const allowlist = approvals.command("allowlist").description("Edit the per-agent allowlist").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatExample("cryptoclaw approvals allowlist add \"~/Projects/**/bin/rg\"", "Allowlist a local binary pattern for the main agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent main --node <id|name|ip> \"/usr/bin/uptime\"", "Allowlist on a specific node/agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent \"*\" \"/usr/bin/uname\"", "Allowlist for all agents (wildcard).")}\n${formatExample("cryptoclaw approvals allowlist remove \"~/Projects/**/bin/rg\"", "Remove an allowlist pattern.")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.openclaw.ai/cli/approvals")}\n`);
289
289
  nodesCallOpts(allowlist.command("add <pattern>").description("Add a glob pattern to an allowlist").option("--node <node>", "Target node id/name/IP").option("--gateway", "Force gateway approvals", false).option("--agent <id>", "Agent id (defaults to \"*\")").action(async (pattern, opts) => {
290
290
  try {
291
291
  const trimmed = pattern.trim();
@@ -12,7 +12,7 @@ import "./manifest-registry-CmLtWVRR.js";
12
12
  import "./message-channel-CvHWS3C2.js";
13
13
  import "./client-BaTYzXOU.js";
14
14
  import "./call-QEaFjVBF.js";
15
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
15
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
16
16
  import "./progress-DTEUicRP.js";
17
17
  import { g as saveExecApprovals, l as readExecApprovalsSnapshot } from "./exec-approvals-CuXem6Li.js";
18
18
  import { t as renderTable } from "./table-C1Xupkjv.js";
@@ -226,7 +226,7 @@ function isEmptyAgent(agent) {
226
226
  }
227
227
  function registerExecApprovalsCli(program) {
228
228
  const formatExample = (cmd, desc) => ` ${theme.command(cmd)}\n ${theme.muted(desc)}`;
229
- const approvals = program.command("approvals").alias("exec-approvals").description("Manage exec approvals (gateway or node host)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.cryptoclaw.ai/cli/approvals")}\n`);
229
+ const approvals = program.command("approvals").alias("exec-approvals").description("Manage exec approvals (gateway or node host)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.openclaw.ai/cli/approvals")}\n`);
230
230
  nodesCallOpts(approvals.command("get").description("Fetch exec approvals snapshot").option("--node <node>", "Target node id/name/IP").option("--gateway", "Force gateway approvals", false).action(async (opts) => {
231
231
  try {
232
232
  const { snapshot, nodeId, source } = await loadSnapshotTarget(opts);
@@ -287,7 +287,7 @@ function registerExecApprovalsCli(program) {
287
287
  defaultRuntime.exit(1);
288
288
  }
289
289
  }));
290
- const allowlist = approvals.command("allowlist").description("Edit the per-agent allowlist").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatExample("cryptoclaw approvals allowlist add \"~/Projects/**/bin/rg\"", "Allowlist a local binary pattern for the main agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent main --node <id|name|ip> \"/usr/bin/uptime\"", "Allowlist on a specific node/agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent \"*\" \"/usr/bin/uname\"", "Allowlist for all agents (wildcard).")}\n${formatExample("cryptoclaw approvals allowlist remove \"~/Projects/**/bin/rg\"", "Remove an allowlist pattern.")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.cryptoclaw.ai/cli/approvals")}\n`);
290
+ const allowlist = approvals.command("allowlist").description("Edit the per-agent allowlist").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatExample("cryptoclaw approvals allowlist add \"~/Projects/**/bin/rg\"", "Allowlist a local binary pattern for the main agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent main --node <id|name|ip> \"/usr/bin/uptime\"", "Allowlist on a specific node/agent.")}\n${formatExample("cryptoclaw approvals allowlist add --agent \"*\" \"/usr/bin/uname\"", "Allowlist for all agents (wildcard).")}\n${formatExample("cryptoclaw approvals allowlist remove \"~/Projects/**/bin/rg\"", "Remove an allowlist pattern.")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.openclaw.ai/cli/approvals")}\n`);
291
291
  nodesCallOpts(allowlist.command("add <pattern>").description("Add a glob pattern to an allowlist").option("--node <node>", "Target node id/name/IP").option("--gateway", "Force gateway approvals", false).option("--agent <id>", "Agent id (defaults to \"*\")").action(async (pattern, opts) => {
292
292
  try {
293
293
  const trimmed = pattern.trim();
@@ -19976,7 +19976,7 @@ function formatElevatedUnavailableMessage$1(params) {
19976
19976
  return lines.join("\n");
19977
19977
  }
19978
19978
  async function handleBashChatCommand(params) {
19979
- 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" };
19979
+ 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" };
19980
19980
  const agentId = params.agentId ?? resolveSessionAgentId({
19981
19981
  sessionKey: params.sessionKey,
19982
19982
  config: params.cfg
@@ -21632,7 +21632,7 @@ function buildDocsSection(params) {
21632
21632
  return [
21633
21633
  "## Documentation",
21634
21634
  `CryptoClaw docs: ${docsPath}`,
21635
- "Mirror: https://docs.cryptoclaw.ai",
21635
+ "Mirror: https://docs.openclaw.ai",
21636
21636
  "Source: https://github.com/cryptoclaw/cryptoclaw",
21637
21637
  "Community: https://discord.com/invite/clawd",
21638
21638
  "Find new skills: https://clawhub.com",
@@ -34757,12 +34757,12 @@ function missingSearchKeyPayload(provider) {
34757
34757
  if (provider === "perplexity") return {
34758
34758
  error: "missing_perplexity_api_key",
34759
34759
  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.",
34760
- docs: "https://docs.cryptoclaw.ai/tools/web"
34760
+ docs: "https://docs.openclaw.ai/tools/web"
34761
34761
  };
34762
34762
  return {
34763
34763
  error: "missing_brave_api_key",
34764
34764
  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.`,
34765
- docs: "https://docs.cryptoclaw.ai/tools/web"
34765
+ docs: "https://docs.openclaw.ai/tools/web"
34766
34766
  };
34767
34767
  }
34768
34768
  function resolveSearchProvider(search) {
@@ -34981,13 +34981,13 @@ function createWebSearchTool(options) {
34981
34981
  if (rawFreshness && provider !== "brave") return jsonResult({
34982
34982
  error: "unsupported_freshness",
34983
34983
  message: "freshness is only supported by the Brave web_search provider.",
34984
- docs: "https://docs.cryptoclaw.ai/tools/web"
34984
+ docs: "https://docs.openclaw.ai/tools/web"
34985
34985
  });
34986
34986
  const freshness = rawFreshness ? normalizeFreshness(rawFreshness) : void 0;
34987
34987
  if (rawFreshness && !freshness) return jsonResult({
34988
34988
  error: "invalid_freshness",
34989
34989
  message: "freshness must be one of pd, pw, pm, py, or a range like YYYY-MM-DDtoYYYY-MM-DD.",
34990
- docs: "https://docs.cryptoclaw.ai/tools/web"
34990
+ docs: "https://docs.openclaw.ai/tools/web"
34991
34991
  });
34992
34992
  return jsonResult(await runWebSearch({
34993
34993
  query,
@@ -45605,7 +45605,7 @@ async function loginWeb(verbose, waitForConnection, runtime = defaultRuntime, ac
45605
45605
 
45606
45606
  //#endregion
45607
45607
  //#region src/terminal/links.ts
45608
- const DOCS_ROOT = "https://docs.cryptoclaw.ai";
45608
+ const DOCS_ROOT = "https://docs.openclaw.ai";
45609
45609
  function formatDocsLink(path, label, opts) {
45610
45610
  const trimmed = path.trim();
45611
45611
  const url = trimmed.startsWith("http") ? trimmed : `${DOCS_ROOT}${trimmed.startsWith("/") ? trimmed : `/${trimmed}`}`;
@@ -46077,7 +46077,7 @@ async function runMemoryStatus(opts) {
46077
46077
  }
46078
46078
  }
46079
46079
  function registerMemoryCli(program) {
46080
- const memory = program.command("memory").description("Memory search tools").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/memory", "docs.cryptoclaw.ai/cli/memory")}\n`);
46080
+ const memory = program.command("memory").description("Memory search tools").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/memory", "docs.openclaw.ai/cli/memory")}\n`);
46081
46081
  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) => {
46082
46082
  await runMemoryStatus(opts);
46083
46083
  });
@@ -1,5 +1,5 @@
1
1
  import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-CT7w1pYd.js";
2
- import { $n as setTtsEnabled, A as resolveOutboundTarget, An as normalizePollInput, Ar as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, At as buildControlUiAvatarUrl, B as scheduleGatewaySigusr1Restart, Bn as createInternalHookEvent, Bt as listNodePairing, C as resolveSessionTranscriptCandidates, Cr as DEFAULT_INPUT_FILE_MAX_CHARS, D as resolveOutboundSessionRoute, Dn as onAgentEvent, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as ensureOutboundSessionEntry, En as getAgentRunContext, Er as DEFAULT_INPUT_IMAGE_MIMES, F as runWithModelFallback, Ft as recordRemoteNodeInfo, Gn as getTtsProvider, Gt as verifyNodeToken, H as consumeRestartSentinel, Hn as triggerInternalHook, Ht as renamePairedNode, In as formatUserTime, Ir as resolveAgentTimeoutMs, It as refreshRemoteBinsForConnectedNodes, J as writeRestartSentinel, Jn as resolveTtsApiKey, Jt as buildSafeExternalPrompt, K as summarizeRestartSentinel, Kn as isTtsEnabled, Kt as getSkillsSnapshotVersion, L as authorizeGatewaySigusr1Restart, Ln as resolveUserTimeFormat, Lt as refreshRemoteNodeBins, Mr as extractFileContentFromSource, Mt as resolveAssistantAvatarUrl, N as resetDirectoryCache, Nr as extractImageContentFromSource, Nt as getRemoteSkillEligibility, On as registerAgentRunContext, Or as DEFAULT_INPUT_PDF_MAX_PAGES, Pn as resolveAgentIdentity, Pr as normalizeMimeList, Pt as primeRemoteSkillsCache, Qn as resolveTtsProviderOrder, R as consumeGatewaySigusr1RestartAuthorization, Rn as resolveUserTimezone, Rt as setSkillsRemoteRegistry, S as readSessionPreviewItemsFromTranscript, Sn as initSubagentRegistry, Sr as DEFAULT_INPUT_FILE_MAX_BYTES, Tn as emitAgentEvent, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, U as formatDoctorNonInteractiveHint, Un as OPENAI_TTS_MODELS, Ut as requestNodePairing, V as setGatewaySigusr1RestartPolicy, Vn as registerInternalHook, Vt as rejectNodePairing, W as formatRestartSentinelMessage, Wn as OPENAI_TTS_VOICES, Wt as updatePairedNodeMetadata, X as normalizeCronJobPatch, Xn as resolveTtsConfig, Xt as getHookType, Y as normalizeCronJobCreate, Yn as resolveTtsAutoMode, Yt as detectSuspiciousPatterns, Z as migrateLegacyCronPayload, Zn as resolveTtsPrefsPath, Zt as isExternalHookSession, _ as resolveGatewaySessionStoreTarget, _n as dispatchInboundMessage, _r as parseVerboseOverride, a as normalizeSendPolicy, ar as startDiagnosticHeartbeat, b as capArrayByJsonBytes, bn as isAbortTrigger, c as runEmbeddedPiAgent, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createOpenClawTools, er as setTtsProvider, et as requestHeartbeatNow, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, g as loadSessionEntry, gr as applyVerboseOverride, h as loadCombinedSessionStoreForGateway, hr as applyModelOverrideToSessionEntry, i as runCliAgent, in as registerUnhandledRejectionHandler, ir as CommandLane, it as loadProviderUsageSummary, j as resolveSessionDeliveryTarget, jr as DEFAULT_INPUT_TIMEOUT_MS, jt as normalizeControlUiBasePath, kr as DEFAULT_INPUT_PDF_MAX_PIXELS, kt as CONTROL_UI_AVATAR_PREFIX, l as abortEmbeddedPiRun, ln as getLastHeartbeatEvent, lt as handleSlackHttpRequest, m as listSessionsFromStore, mn as getChannelActivity, n as getCliSessionId, nn as normalizeGroupActivation, nt as getPluginToolMeta, o as resolveSendPolicy, on as buildHistoryContextFromEntries, or as stopDiagnosticHeartbeat, p as listAgentsForGateway, pr as lookupContextTokens, qn as isTtsProviderConfigured, qt as registerSkillsChangeListener, r as setCliSessionId, rr as setCommandLaneConcurrency, rt as loadOpenClawPlugins, s as clearSessionQueues, sn as resolveHeartbeatVisibility, sr as isDiagnosticsEnabled, tn as createReplyPrefixOptions, tr as textToSpeech, u as waitForEmbeddedPiRunEnd, un as onHeartbeatEvent, v as resolveSessionModelRef, vn as createReplyDispatcher, vr as enqueueSystemEvent, vt as handleReset, w as stripEnvelopeFromMessages, wn as clearAgentRunContext, wr as DEFAULT_INPUT_FILE_MIMES, x as readSessionMessages, xn as stopSubagentsForRequester, xr as loadModelCatalog, y as archiveFileOnDisk, yn as formatZonedTimestamp, yr as isSystemEventContextChanged, z as isGatewaySigusr1RestartExternallyAllowed, zn as clearInternalHooks, zt as approveNodePairing } from "./reply-3TWXjNUA.js";
2
+ import { $n as setTtsEnabled, A as resolveOutboundTarget, An as normalizePollInput, Ar as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, At as buildControlUiAvatarUrl, B as scheduleGatewaySigusr1Restart, Bn as createInternalHookEvent, Bt as listNodePairing, C as resolveSessionTranscriptCandidates, Cr as DEFAULT_INPUT_FILE_MAX_CHARS, D as resolveOutboundSessionRoute, Dn as onAgentEvent, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as ensureOutboundSessionEntry, En as getAgentRunContext, Er as DEFAULT_INPUT_IMAGE_MIMES, F as runWithModelFallback, Ft as recordRemoteNodeInfo, Gn as getTtsProvider, Gt as verifyNodeToken, H as consumeRestartSentinel, Hn as triggerInternalHook, Ht as renamePairedNode, In as formatUserTime, Ir as resolveAgentTimeoutMs, It as refreshRemoteBinsForConnectedNodes, J as writeRestartSentinel, Jn as resolveTtsApiKey, Jt as buildSafeExternalPrompt, K as summarizeRestartSentinel, Kn as isTtsEnabled, Kt as getSkillsSnapshotVersion, L as authorizeGatewaySigusr1Restart, Ln as resolveUserTimeFormat, Lt as refreshRemoteNodeBins, Mr as extractFileContentFromSource, Mt as resolveAssistantAvatarUrl, N as resetDirectoryCache, Nr as extractImageContentFromSource, Nt as getRemoteSkillEligibility, On as registerAgentRunContext, Or as DEFAULT_INPUT_PDF_MAX_PAGES, Pn as resolveAgentIdentity, Pr as normalizeMimeList, Pt as primeRemoteSkillsCache, Qn as resolveTtsProviderOrder, R as consumeGatewaySigusr1RestartAuthorization, Rn as resolveUserTimezone, Rt as setSkillsRemoteRegistry, S as readSessionPreviewItemsFromTranscript, Sn as initSubagentRegistry, Sr as DEFAULT_INPUT_FILE_MAX_BYTES, Tn as emitAgentEvent, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, U as formatDoctorNonInteractiveHint, Un as OPENAI_TTS_MODELS, Ut as requestNodePairing, V as setGatewaySigusr1RestartPolicy, Vn as registerInternalHook, Vt as rejectNodePairing, W as formatRestartSentinelMessage, Wn as OPENAI_TTS_VOICES, Wt as updatePairedNodeMetadata, X as normalizeCronJobPatch, Xn as resolveTtsConfig, Xt as getHookType, Y as normalizeCronJobCreate, Yn as resolveTtsAutoMode, Yt as detectSuspiciousPatterns, Z as migrateLegacyCronPayload, Zn as resolveTtsPrefsPath, Zt as isExternalHookSession, _ as resolveGatewaySessionStoreTarget, _n as dispatchInboundMessage, _r as parseVerboseOverride, a as normalizeSendPolicy, ar as startDiagnosticHeartbeat, b as capArrayByJsonBytes, bn as isAbortTrigger, c as runEmbeddedPiAgent, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createOpenClawTools, er as setTtsProvider, et as requestHeartbeatNow, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, g as loadSessionEntry, gr as applyVerboseOverride, h as loadCombinedSessionStoreForGateway, hr as applyModelOverrideToSessionEntry, i as runCliAgent, in as registerUnhandledRejectionHandler, ir as CommandLane, it as loadProviderUsageSummary, j as resolveSessionDeliveryTarget, jr as DEFAULT_INPUT_TIMEOUT_MS, jt as normalizeControlUiBasePath, kr as DEFAULT_INPUT_PDF_MAX_PIXELS, kt as CONTROL_UI_AVATAR_PREFIX, l as abortEmbeddedPiRun, ln as getLastHeartbeatEvent, lt as handleSlackHttpRequest, m as listSessionsFromStore, mn as getChannelActivity, n as getCliSessionId, nn as normalizeGroupActivation, nt as getPluginToolMeta, o as resolveSendPolicy, on as buildHistoryContextFromEntries, or as stopDiagnosticHeartbeat, p as listAgentsForGateway, pr as lookupContextTokens, qn as isTtsProviderConfigured, qt as registerSkillsChangeListener, r as setCliSessionId, rr as setCommandLaneConcurrency, rt as loadOpenClawPlugins, s as clearSessionQueues, sn as resolveHeartbeatVisibility, sr as isDiagnosticsEnabled, tn as createReplyPrefixOptions, tr as textToSpeech, u as waitForEmbeddedPiRunEnd, un as onHeartbeatEvent, v as resolveSessionModelRef, vn as createReplyDispatcher, vr as enqueueSystemEvent, vt as handleReset, w as stripEnvelopeFromMessages, wn as clearAgentRunContext, wr as DEFAULT_INPUT_FILE_MIMES, x as readSessionMessages, xn as stopSubagentsForRequester, xr as loadModelCatalog, y as archiveFileOnDisk, yn as formatZonedTimestamp, yr as isSystemEventContextChanged, z as isGatewaySigusr1RestartExternallyAllowed, zn as clearInternalHooks, zt as approveNodePairing } from "./reply-qWVVjmhR.js";
3
3
  import { _ as resolveStateDir, d as resolveGatewayPort, i as isNixMode, r as STATE_DIR, s as resolveConfigPath, t as CONFIG_PATH, u as resolveGatewayLockDir } from "./paths-CGrNQEMk.js";
4
4
  import { _ as parseAgentSessionKey, c as normalizeAgentId, g as isSubagentSessionKey, i as buildAgentMainSessionKey, l as normalizeMainKey, p as toAgentRequestSessionKey, t as DEFAULT_ACCOUNT_ID, u as resolveAgentIdFromSessionKey } from "./session-key-CYpWeuht.js";
5
5
  import { B as getLogger, C as getActivePluginRegistry, I as colorize, L as isRich, M as setVerbose, R as theme, V as getResolvedLoggerSettings, a as setConsoleTimestampPrefix, c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL, i as setConsoleSubsystemFilter, n as runtimeForLogger, p as CHANNEL_IDS, t as createSubsystemLogger, z as getChildLogger } from "./subsystem-Btuh5yZj.js";
@@ -39,7 +39,7 @@ import { n as pickPrimaryTailnetIPv6, t as pickPrimaryTailnetIPv4 } from "./tail
39
39
  import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-QEaFjVBF.js";
40
40
  import "./login-qr-BpdHxT8l.js";
41
41
  import "./pairing-store-Dbotpoz6.js";
42
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
42
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
43
43
  import { r as runCommandWithRuntime } from "./cli-utils-CgOu3WAB.js";
44
44
  import { n as withProgress } from "./progress-DTEUicRP.js";
45
45
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BjgXXFkH.js";
@@ -50,24 +50,24 @@ import { c as normalizeExecApprovals, g as saveExecApprovals, l as readExecAppro
50
50
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BBeopea3.js";
51
51
  import { t as parseAbsoluteTimeMs } from "./parse-BZz5lHzQ.js";
52
52
  import { n as resolveMessageChannelSelection } from "./channel-selection-ChOffLk2.js";
53
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-DY5l__pK.js";
53
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-BhcPiVuz.js";
54
54
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-BY0igR48.js";
55
55
  import { t as ensureOpenClawCliOnPath } from "./path-env-DQ-mM2ya.js";
56
56
  import "./daemon-runtime-CD5XPuxz.js";
57
- import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, p as forceFreePortAndWait, r as getStatusSummary, t as runOnboardingWizard } from "./onboarding-DX15S5UW.js";
57
+ import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, p as forceFreePortAndWait, r as getStatusSummary, t as runOnboardingWizard } from "./onboarding-B6aTF0nd.js";
58
58
  import { t as resolveChannelDefaultAccountId } from "./helpers-CzQjTUbz.js";
59
59
  import "./logging-C3Y3mzWS.js";
60
60
  import "./note-DEz9ZK7G.js";
61
61
  import { t as WizardCancelledError } from "./prompts-FbZThK8w.js";
62
- import { d as resolveControlUiRootOverrideSync, f as resolveControlUiRootSync, i as discoverGatewayBeacons, n as installSkill, u as ensureControlUiAssetsBuilt } from "./onboard-skills-CKpZ4Xwu.js";
63
- import "./github-copilot-auth-CeBZ5KDq.js";
64
- import "./onboard-channels-xteKATz4.js";
62
+ import { d as resolveControlUiRootOverrideSync, f as resolveControlUiRootSync, i as discoverGatewayBeacons, n as installSkill, u as ensureControlUiAssetsBuilt } from "./onboard-skills-DEnuz7z3.js";
63
+ import "./github-copilot-auth-DvShXmvU.js";
64
+ import "./onboard-channels-BgchLTab.js";
65
65
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-BmBAQgRq.js";
66
66
  import "./archive-Dy3Ezb-5.js";
67
67
  import "./skill-scanner-BoGjHXUZ.js";
68
68
  import "./installs-CWAe2dOG.js";
69
- import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-D0ylScGO.js";
70
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-DotP-T6Y.js";
69
+ import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-SZpheYuf.js";
70
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-L1EJYQRF.js";
71
71
  import { a as resolveGatewayBindHost, n as isLoopbackHost$2, o as resolveGatewayClientIp, r as isTrustedProxyAddress, s as resolveGatewayListenHosts, t as isLoopbackAddress } from "./net-D4G66Xui.js";
72
72
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-RTEHx2eI.js";
73
73
  import { i as probeGateway } from "./audit-BMzW1G5a.js";
@@ -78,14 +78,14 @@ import "./systemd-CFHiVC1D.js";
78
78
  import "./service-audit-BsDPEKdd.js";
79
79
  import "./node-service-DTgDFo7M.js";
80
80
  import "./channels-status-issues-BwOdQrU9.js";
81
- import "./completion-cli-DyiCPCwN.js";
82
- import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-BH-rLX4t.js";
81
+ import "./completion-cli-Bd5FrGHg.js";
82
+ import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-8dTCwA-D.js";
83
83
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-BKbb6W_z.js";
84
84
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-n8jKv3Fm.js";
85
85
  import "./tui-3eD-E_iD.js";
86
86
  import { t as buildChannelAccountSnapshot } from "./status-BqtiImKF.js";
87
87
  import "./shared-CtNMbLRE.js";
88
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-D24Obngu.js";
88
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-D8AC0Q_A.js";
89
89
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Na5zjEUc.js";
90
90
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-DsyLcTqD.js";
91
91
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CAfk_F1J.js";
@@ -9071,7 +9071,7 @@ const nodeHandlers = {
9071
9071
  const p = params;
9072
9072
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
9073
9073
  await respondUnavailableOnThrow(respond, async () => {
9074
- const { handleNodeEvent } = await import("./server-node-events-BVLdeCJU.js");
9074
+ const { handleNodeEvent } = await import("./server-node-events-uUSBf7hZ.js");
9075
9075
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
9076
9076
  await handleNodeEvent({
9077
9077
  deps: context.deps,
@@ -17313,7 +17313,7 @@ function renderCostUsageSummary(summary, days, rich) {
17313
17313
  return lines;
17314
17314
  }
17315
17315
  function registerGatewayCli(program) {
17316
- const gateway = addGatewayRunCommand(program.command("gateway").description("Run the WebSocket Gateway").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/gateway", "docs.cryptoclaw.ai/cli/gateway")}\n`));
17316
+ const gateway = addGatewayRunCommand(program.command("gateway").description("Run the WebSocket Gateway").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/gateway", "docs.openclaw.ai/cli/gateway")}\n`));
17317
17317
  addGatewayRunCommand(gateway.command("run").description("Run the WebSocket Gateway (foreground)"));
17318
17318
  gateway.command("status").description("Show gateway service status + probe the Gateway").option("--url <url>", "Gateway WebSocket URL (defaults to config/remote/local)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (password auth)").option("--timeout <ms>", "Timeout in ms", "10000").option("--no-probe", "Skip RPC probe").option("--deep", "Scan system-level services", false).option("--json", "Output JSON", false).action(async (opts) => {
17319
17319
  await runDaemonStatus({
@@ -23,18 +23,18 @@ import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDire
23
23
  import { $ as validatePollParams, A as validateDevicePairListParams, At as deriveDeviceIdFromPublicKey, B as validateLogsTailParams, C as validateCronListParams, Ct as PROTOCOL_VERSION, D as validateCronStatusParams, Dt as parseSessionLabel, E as validateCronRunsParams, F as validateExecApprovalResolveParams, G as validateNodeInvokeResultParams, H as validateNodeDescribeParams, I as validateExecApprovalsGetParams, J as validateNodePairListParams, K as validateNodeListParams, L as validateExecApprovalsNodeGetParams, M as validateDeviceTokenRevokeParams, Mt as normalizeDevicePublicKeyBase64Url, N as validateDeviceTokenRotateParams, Nt as verifyDeviceSignature, O as validateCronUpdateParams, Ot as buildDeviceAuthPayload, P as validateExecApprovalRequestParams, Q as validateNodeRenameParams, R as validateExecApprovalsNodeSetParams, S as validateCronAddParams, St as validateWizardStatusParams, T as validateCronRunParams, Tt as errorShape, U as validateNodeEventParams, V as validateModelsListParams, W as validateNodeInvokeParams, X as validateNodePairRequestParams, Y as validateNodePairRejectParams, Z as validateNodePairVerifyParams, _ as validateConfigGetParams, _t as validateWebLoginStartParams, a as validateAgentWaitParams, at as validateSessionsPatchParams, b as validateConfigSetParams, bt as validateWizardNextParams, c as validateAgentsFilesSetParams, ct as validateSessionsResolveParams, d as validateChannelsStatusParams, dt as validateSkillsInstallParams, et as validateRequestFrame, f as validateChatAbortParams, ft as validateSkillsStatusParams, g as validateConfigApplyParams, gt as validateWakeParams, h as validateChatSendParams, ht as validateUpdateRunParams, i as validateAgentParams, it as validateSessionsListParams, j as validateDevicePairRejectParams, k as validateDevicePairApproveParams, l as validateAgentsListParams, lt as validateSessionsUsageParams, m as validateChatInjectParams, mt as validateTalkModeParams, n as formatValidationErrors, nt as validateSessionsCompactParams, o as validateAgentsFilesGetParams, ot as validateSessionsPreviewParams, p as validateChatHistoryParams, pt as validateSkillsUpdateParams, q as validateNodePairApproveParams, r as validateAgentIdentityParams, rt as validateSessionsDeleteParams, s as validateAgentsFilesListParams, st as validateSessionsResetParams, tt as validateSendParams, u as validateChannelsLogoutParams, ut as validateSkillsBinsParams, v as validateConfigPatchParams, vt as validateWebLoginWaitParams, w as validateCronRemoveParams, wt as ErrorCodes, x as validateConnectParams, xt as validateWizardStartParams, y as validateConfigSchemaParams, yt as validateWizardCancelParams, z as validateExecApprovalsSetParams } from "./client-N6zH1neq.js";
24
24
  import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-D-Kvee3W.js";
25
25
  import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CfYBy4y3.js";
26
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
26
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
27
27
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-CBfM3u2p.js";
28
28
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CB4Xjrgb.js";
29
29
  import "./logging-5MtSkLpb.js";
30
30
  import "./accounts-BIh6Lgjl.js";
31
- import { $ as approveNodePairing, $n as isTtsEnabled, $t as listSessionsFromStore, A as resolveHeartbeatVisibility, An as scheduleGatewaySigusr1Restart, Ar as clearInternalHooks, B as createReplyDispatcher, Bn as normalizeCronJobPatch, Bt as emitAgentEvent, C as buildControlUiAvatarUrl, Cn as resetDirectoryCache, Cr as resolveUserTimeFormat, Ct as normalizeMimeList, Dn as authorizeGatewaySigusr1Restart, Dt as runEmbeddedPiAgent, Et as stopSubagentsForRequester, Ft as getHookType, G as normalizeSendPolicy, Gn as isSystemEventContextChanged, H as getCliSessionId, Ht as onAgentEvent, In as summarizeRestartSentinel, It as isExternalHookSession, J as primeRemoteSkillsCache, Jt as loadProviderUsageSummary, K as resolveSendPolicy, Kt as loadModelCatalog, L as getChannelActivity, Lt as initSubagentRegistry, M as getLastHeartbeatEvent, Mn as consumeRestartSentinel, Mr as registerInternalHook, Mt as createOpenClawTools, N as onHeartbeatEvent, Nn as formatDoctorNonInteractiveHint, Nr as triggerInternalHook, Nt as buildSafeExternalPrompt, O as createReplyPrefixOptions, On as consumeGatewaySigusr1RestartAuthorization, Or as resolveAgentIdentity, Ot as abortEmbeddedPiRun, Pn as formatRestartSentinelMessage, Pt as detectSuspiciousPatterns, Q as setSkillsRemoteRegistry, Qn as getTtsProvider, Qt as listAgentsForGateway, Rn as writeRestartSentinel, Rt as resolveAgentTimeoutMs, S as CONTROL_UI_AVATAR_PREFIX, Sr as formatUserTime, St as extractImageContentFromSource, T as resolveAssistantAvatarUrl, Tn as runWithModelFallback, Tt as isAbortTrigger, U as setCliSessionId, Ut as registerAgentRunContext, Vn as migrateLegacyCronPayload, Vt as getAgentRunContext, W as runCliAgent, Wn as enqueueSystemEvent, Wt as resolveAnnounceTargetFromKey, X as refreshRemoteBinsForConnectedNodes, Xn as OPENAI_TTS_MODELS, Y as recordRemoteNodeInfo, Yn as getPluginToolMeta, Z as refreshRemoteNodeBins, Zn as OPENAI_TTS_VOICES, _t as DEFAULT_INPUT_PDF_MAX_PAGES, an as capArrayByJsonBytes, ar as resolveTtsProviderOrder, at as verifyNodeToken, bn as resolveOutboundTarget, bt as DEFAULT_INPUT_TIMEOUT_MS, cn as resolveSessionTranscriptCandidates, cr as textToSpeech, d as handleReset, dn as lookupContextTokens, dr as CommandLane, dt as DEFAULT_INPUT_FILE_MAX_BYTES, en as loadCombinedSessionStoreForGateway, er as isTtsProviderConfigured, et as listNodePairing, fn as clearSessionQueues, fr as startDiagnosticHeartbeat, ft as DEFAULT_INPUT_FILE_MAX_CHARS, gn as resolveOutboundSessionRoute, gt as DEFAULT_INPUT_MAX_REDIRECTS, hn as ensureOutboundSessionEntry, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ht as DEFAULT_INPUT_IMAGE_MIMES, in as archiveFileOnDisk, ir as resolveTtsPrefsPath, it as updatePairedNodeMetadata, jn as setGatewaySigusr1RestartPolicy, jr as createInternalHookEvent, jt as registerUnhandledRejectionHandler, k as buildHistoryContextFromEntries, kn as isGatewaySigusr1RestartExternallyAllowed, kt as waitForEmbeddedPiRunEnd, ln as stripEnvelopeFromMessages, lt as applyVerboseOverride, mr as isDiagnosticsEnabled, mt as DEFAULT_INPUT_IMAGE_MAX_BYTES, n as handleSlackHttpRequest, nn as resolveGatewaySessionStoreTarget, nr as resolveTtsAutoMode, nt as renamePairedNode, on as readSessionMessages, or as setTtsEnabled, ot as getSkillsSnapshotVersion, pn as normalizeGroupActivation, pr as stopDiagnosticHeartbeat, pt as DEFAULT_INPUT_FILE_MIMES, q as getRemoteSkillEligibility, qn as requestHeartbeatNow, qt as applyModelOverrideToSessionEntry, rn as resolveSessionModelRef, rr as resolveTtsConfig, rt as requestNodePairing, sn as readSessionPreviewItemsFromTranscript, sr as setTtsProvider, st as registerSkillsChangeListener, t as loadOpenClawPlugins, tn as loadSessionEntry, tr as resolveTtsApiKey, tt as rejectNodePairing, ur as setCommandLaneConcurrency, ut as parseVerboseOverride, vt as DEFAULT_INPUT_PDF_MAX_PIXELS, w as normalizeControlUiBasePath, wr as resolveUserTimezone, wt as formatZonedTimestamp, xn as resolveSessionDeliveryTarget, xr as normalizePollInput, xt as extractFileContentFromSource, yr as stripHeartbeatToken, yt as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, z as dispatchInboundMessage, zn as normalizeCronJobCreate, zt as clearAgentRunContext } from "./loader-BNqYr2Am.js";
31
+ import { $ as approveNodePairing, $n as isTtsEnabled, $t as listSessionsFromStore, A as resolveHeartbeatVisibility, An as scheduleGatewaySigusr1Restart, Ar as clearInternalHooks, B as createReplyDispatcher, Bn as normalizeCronJobPatch, Bt as emitAgentEvent, C as buildControlUiAvatarUrl, Cn as resetDirectoryCache, Cr as resolveUserTimeFormat, Ct as normalizeMimeList, Dn as authorizeGatewaySigusr1Restart, Dt as runEmbeddedPiAgent, Et as stopSubagentsForRequester, Ft as getHookType, G as normalizeSendPolicy, Gn as isSystemEventContextChanged, H as getCliSessionId, Ht as onAgentEvent, In as summarizeRestartSentinel, It as isExternalHookSession, J as primeRemoteSkillsCache, Jt as loadProviderUsageSummary, K as resolveSendPolicy, Kt as loadModelCatalog, L as getChannelActivity, Lt as initSubagentRegistry, M as getLastHeartbeatEvent, Mn as consumeRestartSentinel, Mr as registerInternalHook, Mt as createOpenClawTools, N as onHeartbeatEvent, Nn as formatDoctorNonInteractiveHint, Nr as triggerInternalHook, Nt as buildSafeExternalPrompt, O as createReplyPrefixOptions, On as consumeGatewaySigusr1RestartAuthorization, Or as resolveAgentIdentity, Ot as abortEmbeddedPiRun, Pn as formatRestartSentinelMessage, Pt as detectSuspiciousPatterns, Q as setSkillsRemoteRegistry, Qn as getTtsProvider, Qt as listAgentsForGateway, Rn as writeRestartSentinel, Rt as resolveAgentTimeoutMs, S as CONTROL_UI_AVATAR_PREFIX, Sr as formatUserTime, St as extractImageContentFromSource, T as resolveAssistantAvatarUrl, Tn as runWithModelFallback, Tt as isAbortTrigger, U as setCliSessionId, Ut as registerAgentRunContext, Vn as migrateLegacyCronPayload, Vt as getAgentRunContext, W as runCliAgent, Wn as enqueueSystemEvent, Wt as resolveAnnounceTargetFromKey, X as refreshRemoteBinsForConnectedNodes, Xn as OPENAI_TTS_MODELS, Y as recordRemoteNodeInfo, Yn as getPluginToolMeta, Z as refreshRemoteNodeBins, Zn as OPENAI_TTS_VOICES, _t as DEFAULT_INPUT_PDF_MAX_PAGES, an as capArrayByJsonBytes, ar as resolveTtsProviderOrder, at as verifyNodeToken, bn as resolveOutboundTarget, bt as DEFAULT_INPUT_TIMEOUT_MS, cn as resolveSessionTranscriptCandidates, cr as textToSpeech, d as handleReset, dn as lookupContextTokens, dr as CommandLane, dt as DEFAULT_INPUT_FILE_MAX_BYTES, en as loadCombinedSessionStoreForGateway, er as isTtsProviderConfigured, et as listNodePairing, fn as clearSessionQueues, fr as startDiagnosticHeartbeat, ft as DEFAULT_INPUT_FILE_MAX_CHARS, gn as resolveOutboundSessionRoute, gt as DEFAULT_INPUT_MAX_REDIRECTS, hn as ensureOutboundSessionEntry, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ht as DEFAULT_INPUT_IMAGE_MIMES, in as archiveFileOnDisk, ir as resolveTtsPrefsPath, it as updatePairedNodeMetadata, jn as setGatewaySigusr1RestartPolicy, jr as createInternalHookEvent, jt as registerUnhandledRejectionHandler, k as buildHistoryContextFromEntries, kn as isGatewaySigusr1RestartExternallyAllowed, kt as waitForEmbeddedPiRunEnd, ln as stripEnvelopeFromMessages, lt as applyVerboseOverride, mr as isDiagnosticsEnabled, mt as DEFAULT_INPUT_IMAGE_MAX_BYTES, n as handleSlackHttpRequest, nn as resolveGatewaySessionStoreTarget, nr as resolveTtsAutoMode, nt as renamePairedNode, on as readSessionMessages, or as setTtsEnabled, ot as getSkillsSnapshotVersion, pn as normalizeGroupActivation, pr as stopDiagnosticHeartbeat, pt as DEFAULT_INPUT_FILE_MIMES, q as getRemoteSkillEligibility, qn as requestHeartbeatNow, qt as applyModelOverrideToSessionEntry, rn as resolveSessionModelRef, rr as resolveTtsConfig, rt as requestNodePairing, sn as readSessionPreviewItemsFromTranscript, sr as setTtsProvider, st as registerSkillsChangeListener, t as loadOpenClawPlugins, tn as loadSessionEntry, tr as resolveTtsApiKey, tt as rejectNodePairing, ur as setCommandLaneConcurrency, ut as parseVerboseOverride, vt as DEFAULT_INPUT_PDF_MAX_PIXELS, w as normalizeControlUiBasePath, wr as resolveUserTimezone, wt as formatZonedTimestamp, xn as resolveSessionDeliveryTarget, xr as normalizePollInput, xt as extractFileContentFromSource, yr as stripHeartbeatToken, yt as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, z as dispatchInboundMessage, zn as normalizeCronJobCreate, zt as clearAgentRunContext } from "./loader-DE_vKAH5.js";
32
32
  import { n as withProgress } from "./progress-D-Oc-KAH.js";
33
33
  import "./prompt-style-BntC_Eoo.js";
34
34
  import "./note-C5M2AQOP.js";
35
35
  import { t as WizardCancelledError } from "./prompts-C2D9_VZC.js";
36
36
  import { t as resolveChannelDefaultAccountId } from "./helpers-OUt4hxkS.js";
37
- import "./onboard-channels-uZ5vLniX.js";
37
+ import "./onboard-channels-B5qHfMk8.js";
38
38
  import "./archive-iT9wNsml.js";
39
39
  import "./skill-scanner-AfOudYI1.js";
40
40
  import "./installs-BhPUpyE9.js";
@@ -62,31 +62,31 @@ import "./login-qr-C_Vv7Cqc.js";
62
62
  import { r as runCommandWithRuntime } from "./cli-utils-B7iQwCY5.js";
63
63
  import { t as buildChannelAccountSnapshot } from "./status-Drziap9H.js";
64
64
  import "./channels-status-issues-DouPXVa3.js";
65
- import "./register.subclis-DG215F73.js";
66
- import "./completion-cli-BIA4Amxj.js";
67
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-BDQ4UyT5.js";
65
+ import "./register.subclis-Bf9yES9h.js";
66
+ import "./completion-cli-Cs-B1hk7.js";
67
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-ZGqhOjkR.js";
68
68
  import "./daemon-runtime-BMAJ_2LE.js";
69
69
  import "./service-C0ccl5rU.js";
70
70
  import "./systemd-kY3NnWdi.js";
71
71
  import "./shared-DCh7fkR2.js";
72
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-JZ9ONoBh.js";
72
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-BM8zb09s.js";
73
73
  import "./service-audit-CCg0o0UZ.js";
74
74
  import "./table--L48nql9.js";
75
75
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-CVZf20c2.js";
76
76
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CBcCIWC0.js";
77
77
  import { i as probeGateway } from "./audit-DQsCrYXQ.js";
78
- import { _ as resolveControlUiRootOverrideSync, g as ensureControlUiAssetsBuilt, n as installSkill, v as resolveControlUiRootSync, y as discoverGatewayBeacons } from "./onboard-skills-tUnJDYV8.js";
79
- import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-QWTDdHdV.js";
80
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-vOge0-Wj.js";
81
- import "./github-copilot-auth-CLh6feLw.js";
78
+ import { _ as resolveControlUiRootOverrideSync, g as ensureControlUiAssetsBuilt, n as installSkill, v as resolveControlUiRootSync, y as discoverGatewayBeacons } from "./onboard-skills-CyG0xbsu.js";
79
+ import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-DlvTEKqI.js";
80
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-eJ773fp-.js";
81
+ import "./github-copilot-auth-D6I2MUxi.js";
82
82
  import "./logging-B65tlzu3.js";
83
83
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-B4cP-W7z.js";
84
- import { f as runOnboardingWizard, n as getStatusSummary, s as loadAgentIdentity, u as loadAgentIdentityFromWorkspace } from "./status-1TQxVU1M.js";
84
+ import { f as runOnboardingWizard, n as getStatusSummary, s as loadAgentIdentity, u as loadAgentIdentityFromWorkspace } from "./status-CN2V3fan.js";
85
85
  import { t as buildWorkspaceSkillStatus } from "./skills-status-dTiH79uI.js";
86
86
  import "./tui-BGSteZzU.js";
87
87
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-BhQmGM0R.js";
88
88
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CJ1pbsWv.js";
89
- import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-mns7e_gL.js";
89
+ import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-sjalTGVA.js";
90
90
  import "./node-service-JEBcPQat.js";
91
91
  import { n as forceFreePortAndWait } from "./ports-CcCvup-Y.js";
92
92
  import { spawn, spawnSync } from "node:child_process";
@@ -9071,7 +9071,7 @@ const nodeHandlers = {
9071
9071
  const p = params;
9072
9072
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
9073
9073
  await respondUnavailableOnThrow(respond, async () => {
9074
- const { handleNodeEvent } = await import("./server-node-events-DLZj55Ir.js");
9074
+ const { handleNodeEvent } = await import("./server-node-events-x6ZMjAs1.js");
9075
9075
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
9076
9076
  await handleNodeEvent({
9077
9077
  deps: context.deps,
@@ -17313,7 +17313,7 @@ function renderCostUsageSummary(summary, days, rich) {
17313
17313
  return lines;
17314
17314
  }
17315
17315
  function registerGatewayCli(program) {
17316
- const gateway = addGatewayRunCommand(program.command("gateway").description("Run the WebSocket Gateway").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/gateway", "docs.cryptoclaw.ai/cli/gateway")}\n`));
17316
+ const gateway = addGatewayRunCommand(program.command("gateway").description("Run the WebSocket Gateway").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/gateway", "docs.openclaw.ai/cli/gateway")}\n`));
17317
17317
  addGatewayRunCommand(gateway.command("run").description("Run the WebSocket Gateway (foreground)"));
17318
17318
  gateway.command("status").description("Show gateway service status + probe the Gateway").option("--url <url>", "Gateway WebSocket URL (defaults to config/remote/local)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (password auth)").option("--timeout <ms>", "Timeout in ms", "10000").option("--no-probe", "Skip RPC probe").option("--deep", "Scan system-level services", false).option("--json", "Output JSON", false).action(async (opts) => {
17319
17319
  await runDaemonStatus({
@@ -4,7 +4,7 @@ import { t as formatCliCommand } from "./command-format-B0bnyrEA.js";
4
4
  import { c as normalizeAgentId } from "./session-key-C-ig2pxJ.js";
5
5
  import { t as listAgentIds } from "./agent-scope-BJucHu4R.js";
6
6
  import { c as writeConfigFile, o as readConfigFileSnapshot } from "./config-DBZqAqbe.js";
7
- import { t as loadOpenClawPlugins } from "./loader-BNqYr2Am.js";
7
+ import { t as loadOpenClawPlugins } from "./loader-DE_vKAH5.js";
8
8
  import { r as stylePromptTitle } from "./prompt-style-BntC_Eoo.js";
9
9
  import { n as isWSLEnv } from "./wsl-DntkIGSe.js";
10
10
  import { n as logConfigUpdated } from "./logging-B65tlzu3.js";
@@ -1,4 +1,4 @@
1
- import { rt as loadOpenClawPlugins } from "./reply-3TWXjNUA.js";
1
+ import { rt as loadOpenClawPlugins } from "./reply-qWVVjmhR.js";
2
2
  import { c as normalizeAgentId } from "./session-key-CYpWeuht.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-Btuh5yZj.js";
4
4
  import { t as listAgentIds } from "./agent-scope-GUoze5gc.js";
@@ -5,7 +5,7 @@ import { h as parseDurationMs, i as loadConfig } from "./config-DBZqAqbe.js";
5
5
  import { n as formatErrorMessage } from "./errors-DpH6VpWK.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-D-Kvee3W.js";
7
7
  import { f as resolvePreferredAccountId, n as listChannelPlugins, t as getChannelPlugin, u as buildChannelAccountBindings } from "./plugins-CB4Xjrgb.js";
8
- import { A as resolveHeartbeatVisibility, Jn as setHeartbeatWakeHandler, Kn as peekSystemEvents, P as resolveIndicatorType, V as getReplyFromConfig, _r as isHeartbeatContentEffectivelyEmpty, dr as CommandLane, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, j as emitHeartbeatEvent, kr as resolveEffectiveMessagesConfig, lr as getQueueSize, qn as requestHeartbeatNow, vn as resolveHeartbeatDeliveryTarget, vr as resolveHeartbeatPrompt$1, wr as resolveUserTimezone, yn as resolveHeartbeatSenderContext, yr as stripHeartbeatToken } from "./loader-BNqYr2Am.js";
8
+ import { A as resolveHeartbeatVisibility, Jn as setHeartbeatWakeHandler, Kn as peekSystemEvents, P as resolveIndicatorType, V as getReplyFromConfig, _r as isHeartbeatContentEffectivelyEmpty, dr as CommandLane, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, j as emitHeartbeatEvent, kr as resolveEffectiveMessagesConfig, lr as getQueueSize, qn as requestHeartbeatNow, vn as resolveHeartbeatDeliveryTarget, vr as resolveHeartbeatPrompt$1, wr as resolveUserTimezone, yn as resolveHeartbeatSenderContext, yr as stripHeartbeatToken } from "./loader-DE_vKAH5.js";
9
9
  import { n as withProgress } from "./progress-D-Oc-KAH.js";
10
10
  import { t as resolveChannelDefaultAccountId } from "./helpers-OUt4hxkS.js";
11
11
  import { o as resolveStorePath } from "./paths-KUslkJRs.js";
@@ -1,4 +1,4 @@
1
- import { Fn as resolveEffectiveMessagesConfig, O as resolveHeartbeatDeliveryTarget, Rn as resolveUserTimezone, br as peekSystemEvents, cn as emitHeartbeatEvent, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, dn as resolveIndicatorType, dr as resolveHeartbeatPrompt$1, et as requestHeartbeatNow, fr as stripHeartbeatToken, ir as CommandLane, k as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, nr as getQueueSize, sn as resolveHeartbeatVisibility, t as getReplyFromConfig, tt as setHeartbeatWakeHandler, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-3TWXjNUA.js";
1
+ import { Fn as resolveEffectiveMessagesConfig, O as resolveHeartbeatDeliveryTarget, Rn as resolveUserTimezone, br as peekSystemEvents, cn as emitHeartbeatEvent, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, dn as resolveIndicatorType, dr as resolveHeartbeatPrompt$1, et as requestHeartbeatNow, fr as stripHeartbeatToken, ir as CommandLane, k as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, nr as getQueueSize, sn as resolveHeartbeatVisibility, t as getReplyFromConfig, tt as setHeartbeatWakeHandler, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-qWVVjmhR.js";
2
2
  import { c as normalizeAgentId, m as toAgentStoreSessionKey, u as resolveAgentIdFromSessionKey } from "./session-key-CYpWeuht.js";
3
3
  import { D as info, I as colorize, L as isRich, R as theme, c as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Btuh5yZj.js";
4
4
  import { c as resolveDefaultAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, s as resolveAgentWorkspaceDir } from "./agent-scope-GUoze5gc.js";
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: boot-md
3
3
  description: "Run BOOT.md on gateway startup"
4
- homepage: https://docs.cryptoclaw.ai/hooks#boot-md
4
+ homepage: https://docs.openclaw.ai/hooks#boot-md
5
5
  metadata:
6
6
  {
7
7
  "openclaw":
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: command-logger
3
3
  description: "Log all command events to a centralized audit file"
4
- homepage: https://docs.cryptoclaw.ai/hooks#command-logger
4
+ homepage: https://docs.openclaw.ai/hooks#command-logger
5
5
  metadata:
6
6
  {
7
7
  "openclaw":
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: session-memory
3
3
  description: "Save session context to memory when /new command is issued"
4
- homepage: https://docs.cryptoclaw.ai/hooks#session-memory
4
+ homepage: https://docs.openclaw.ai/hooks#session-memory
5
5
  metadata:
6
6
  {
7
7
  "openclaw":
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: soul-evil
3
3
  description: "Swap SOUL.md with SOUL_EVIL.md during a purge window or by random chance"
4
- homepage: https://docs.cryptoclaw.ai/hooks/soul-evil
4
+ homepage: https://docs.openclaw.ai/hooks/soul-evil
5
5
  metadata:
6
6
  {
7
7
  "openclaw":