@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.
- package/CHANGELOG.md +93 -93
- package/assets/favicon.svg +22 -0
- package/dist/{acp-cli-Bsrf851G.js → acp-cli-CBFKSvET.js} +2 -2
- package/dist/{acp-cli-C9D24JzU.js → acp-cli-CEPAR8vh.js} +2 -2
- package/dist/{agent-BH-rLX4t.js → agent-8dTCwA-D.js} +2 -2
- package/dist/{agent-mns7e_gL.js → agent-sjalTGVA.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CUOi5M0r.js → channel-options-B951pKy8.js} +1 -1
- package/dist/{channel-options-B3XNSAJG.js → channel-options-DJsSCLD8.js} +1 -1
- package/dist/{channels-cli-BRxxmnVq.js → channels-cli-Fv9FTQXn.js} +6 -6
- package/dist/{channels-cli-xTlvzb2Z.js → channels-cli-Lq6EWRJ9.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-B7NiNFc2.js → cli-Bzyu6rQE.js} +2 -2
- package/dist/{cli-6yV4qEGI.js → cli-DJnpasWd.js} +2 -2
- package/dist/{command-options-DeWanQ_1.js → command-options-DBpEhnW5.js} +1 -1
- package/dist/{completion-cli-DyiCPCwN.js → completion-cli-Bd5FrGHg.js} +25 -25
- package/dist/{completion-cli-BIA4Amxj.js → completion-cli-Cs-B1hk7.js} +1 -1
- package/dist/{config-guard-C4vrsjgm.js → config-guard-Csl9Ubn5.js} +36 -36
- package/dist/{configure-BupCndyG.js → configure-CeTzu0Ed.js} +14 -14
- package/dist/{configure-B28_m98z.js → configure-CxPJaP8X.js} +14 -14
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/{index-DQ-7PWhX.js → index-BdjmXlOn.js} +372 -363
- package/dist/control-ui/assets/index-BdjmXlOn.js.map +1 -0
- package/dist/control-ui/assets/{index-nlpH70Eh.css → index-BxkHytum.css} +1 -1
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +4 -4
- package/dist/control-ui/index.html +2 -2
- package/dist/{cron-cli-CaCwFGvb.js → cron-cli-D8gKivN0.js} +2 -2
- package/dist/{cron-cli-v8FMB7_N.js → cron-cli-yC5Cy77c.js} +2 -2
- package/dist/{daemon-cli-JZ9ONoBh.js → daemon-cli-BM8zb09s.js} +5 -5
- package/dist/{daemon-cli-D24Obngu.js → daemon-cli-D8AC0Q_A.js} +5 -5
- package/dist/{deps-DY5l__pK.js → deps-BhcPiVuz.js} +1 -1
- package/dist/{deps-BDQ4UyT5.js → deps-ZGqhOjkR.js} +1 -1
- package/dist/{directory-cli-B8IA2RSF.js → directory-cli--IOOMz66.js} +2 -2
- package/dist/{directory-cli-C9y2B84i.js → directory-cli-DGFlpQ4T.js} +2 -2
- package/dist/{dns-cli-DoO4a6op.js → dns-cli-DkhYuREi.js} +2 -2
- package/dist/{dns-cli-DJUkN_WU.js → dns-cli-fQ4wu1HJ.js} +2 -2
- package/dist/{docs-cli-CcQ9shjL.js → docs-cli-BgnDzmFT.js} +5 -5
- package/dist/{docs-cli-CPus_TqL.js → docs-cli-CPaJzUSD.js} +5 -5
- package/dist/{doctor-D3VWObNR.js → doctor-D6M3Hc0a.js} +3 -3
- package/dist/{doctor-ClJURW58.js → doctor-DRRL31R4.js} +3 -3
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-DC9v48w9.js → exec-approvals-cli-BhEdzGao.js} +3 -3
- package/dist/{exec-approvals-cli-Djev4HNk.js → exec-approvals-cli-DHMroOAh.js} +3 -3
- package/dist/extensionAPI.js +8 -8
- package/dist/{gateway-cli-CHZrqsVp.js → gateway-cli-CbQ4xoXp.js} +14 -14
- package/dist/{gateway-cli--xOlaN5f.js → gateway-cli-DO7lIBZ5.js} +15 -15
- package/dist/{github-copilot-auth-CLh6feLw.js → github-copilot-auth-D6I2MUxi.js} +1 -1
- package/dist/{github-copilot-auth-CeBZ5KDq.js → github-copilot-auth-DvShXmvU.js} +1 -1
- package/dist/{health-format-QWTDdHdV.js → health-format-DlvTEKqI.js} +1 -1
- package/dist/{health-format-D0ylScGO.js → health-format-SZpheYuf.js} +1 -1
- package/dist/hooks/bundled/boot-md/HOOK.md +1 -1
- package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
- package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
- package/dist/{hooks-cli-IS7KFMZy.js → hooks-cli-CedlcxxR.js} +4 -4
- package/dist/{hooks-cli-C9066q7q.js → hooks-cli-DRarvOK2.js} +4 -4
- package/dist/index.js +38 -38
- package/dist/{links-DXtV_A64.js → links-Dv1EDiwa.js} +1 -1
- package/dist/{links-KcaRpMJg.js → links-kbubTyay.js} +1 -1
- package/dist/{loader-BNqYr2Am.js → loader-DE_vKAH5.js} +10 -10
- package/dist/{logs-cli-BRQOdLoD.js → logs-cli-_DHuOrR4.js} +2 -2
- package/dist/{logs-cli-D08L6RIX.js → logs-cli-emy-Mg4S.js} +2 -2
- package/dist/{models-cli-CovM2RsI.js → models-cli-CdrDfutq.js} +4 -4
- package/dist/{models-cli-D0bxf-ID.js → models-cli-CgIqfTHx.js} +4 -4
- package/dist/{node-cli-whSrpDNN.js → node-cli-Bsn9lQ6O.js} +2 -2
- package/dist/{node-cli-DoMmvbg-.js → node-cli-Ckvs6bcI.js} +2 -2
- package/dist/{nodes-cli-CeMIAaHZ.js → nodes-cli-BELOAYB6.js} +2 -2
- package/dist/{nodes-cli-DRmkJeRw.js → nodes-cli-CTQPoAcf.js} +2 -2
- package/dist/{onboard-channels-uZ5vLniX.js → onboard-channels-B5qHfMk8.js} +2 -2
- package/dist/{onboard-channels-xteKATz4.js → onboard-channels-BgchLTab.js} +2 -2
- package/dist/{onboard-skills-tUnJDYV8.js → onboard-skills-CyG0xbsu.js} +7 -7
- package/dist/{onboard-skills-CKpZ4Xwu.js → onboard-skills-DEnuz7z3.js} +7 -7
- package/dist/{onboarding-DX15S5UW.js → onboarding-B6aTF0nd.js} +18 -18
- package/dist/{pairing-cli-Oq8UZJRJ.js → pairing-cli-C_PnyRzK.js} +2 -2
- package/dist/{pairing-cli-B7Bji_j_.js → pairing-cli-CocCRLzF.js} +2 -2
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/{plugins-cli-BVoSu7m7.js → plugins-cli-DB1NYN9W.js} +5 -5
- package/dist/{plugins-cli-ChkSbzKF.js → plugins-cli-Dn9I2nvT.js} +5 -5
- package/dist/{program-DpxSYPmu.js → program-CL1V1uQh.js} +18 -18
- package/dist/{register.subclis-DG215F73.js → register.subclis-Bf9yES9h.js} +26 -26
- package/dist/{reply-3TWXjNUA.js → reply-qWVVjmhR.js} +10 -10
- package/dist/{run-main-D43qwCZX.js → run-main-C12Z921D.js} +19 -19
- package/dist/{sandbox-cli-BPdnq1hk.js → sandbox-cli-DVfJ38Q2.js} +4 -4
- package/dist/{sandbox-cli-a3oEVi7W.js → sandbox-cli-DqrtTHAP.js} +4 -4
- package/dist/{security-cli-Devsjfv_.js → security-cli-2AAajc4y.js} +2 -2
- package/dist/{security-cli-C1XbzHNF.js → security-cli-YL2ZTkkR.js} +2 -2
- package/dist/{server-node-events-BVLdeCJU.js → server-node-events-uUSBf7hZ.js} +4 -4
- package/dist/{server-node-events-DLZj55Ir.js → server-node-events-x6ZMjAs1.js} +4 -4
- package/dist/{skills-cli-DnSEVLxn.js → skills-cli-CYZbvr7O.js} +2 -2
- package/dist/{skills-cli-g1nC-Yz9.js → skills-cli-eDUNGpwb.js} +2 -2
- package/dist/{status-D09U-Iku.js → status-BnbwLzB2.js} +1 -1
- package/dist/{status-1TQxVU1M.js → status-CN2V3fan.js} +18 -18
- package/dist/{status-CbMg399g.js → status-DCrBN9vJ.js} +1 -1
- package/dist/{system-cli-D3UizeGy.js → system-cli-BEmIixtY.js} +2 -2
- package/dist/{system-cli-DJ_e6msK.js → system-cli-ZxnlO0-v.js} +2 -2
- package/dist/{tui-cli-PKJ39Zsl.js → tui-cli-B9iCyCn2.js} +2 -2
- package/dist/{tui-cli-DPhl5a66.js → tui-cli-iakTIAvk.js} +2 -2
- package/dist/{update-cli-C5x50A17.js → update-cli-DUO4CVNB.js} +12 -12
- package/dist/{update-cli-DKLyK_Tu.js → update-cli-DlXzjuIc.js} +11 -11
- package/dist/{update-runner-DotP-T6Y.js → update-runner-L1EJYQRF.js} +2 -2
- package/dist/{update-runner-vOge0-Wj.js → update-runner-eJ773fp-.js} +2 -2
- package/dist/{webhooks-cli-DEqtDAwW.js → webhooks-cli-BLHZn_at.js} +2 -2
- package/dist/{webhooks-cli-ORjumqe4.js → webhooks-cli-UhujyhVU.js} +2 -2
- package/docs/assets/pixel-lobster.svg +3 -3
- package/docs/blockchain/aave.md +72 -0
- package/docs/blockchain/agent-identity.md +73 -0
- package/docs/blockchain/contracts.md +96 -0
- package/docs/blockchain/defi.md +61 -0
- package/docs/blockchain/index.md +92 -0
- package/docs/blockchain/market-data.md +98 -0
- package/docs/blockchain/nft.md +44 -0
- package/docs/blockchain/portfolio.md +57 -0
- package/docs/blockchain/security.md +83 -0
- package/docs/blockchain/swap.md +89 -0
- package/docs/blockchain/wallet.md +77 -0
- package/docs/concepts/features.md +29 -10
- package/docs/docs.json +76 -6
- package/docs/index.md +44 -44
- package/docs/start/getting-started.md +10 -9
- package/docs/zh-CN/blockchain/aave.md +63 -0
- package/docs/zh-CN/blockchain/agent-identity.md +62 -0
- package/docs/zh-CN/blockchain/contracts.md +64 -0
- package/docs/zh-CN/blockchain/defi.md +49 -0
- package/docs/zh-CN/blockchain/index.md +92 -0
- package/docs/zh-CN/blockchain/market-data.md +68 -0
- package/docs/zh-CN/blockchain/nft.md +43 -0
- package/docs/zh-CN/blockchain/portfolio.md +49 -0
- package/docs/zh-CN/blockchain/security.md +75 -0
- package/docs/zh-CN/blockchain/swap.md +68 -0
- package/docs/zh-CN/blockchain/wallet.md +71 -0
- package/extensions/voice-call/README.md +2 -2
- package/extensions/voice-call/src/cli.ts +1 -1
- package/package.json +1 -1
- package/dist/control-ui/assets/index-DQ-7PWhX.js.map +0 -1
|
@@ -12,25 +12,25 @@ import { f as inspectPortUsage, m as formatPortDiagnostics } from "./errors-DpH6
|
|
|
12
12
|
import { a as findTailscaleBinary, o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CCLcQalf.js";
|
|
13
13
|
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-D-Kvee3W.js";
|
|
14
14
|
import { n as listChannelPlugins } from "./plugins-CB4Xjrgb.js";
|
|
15
|
-
import { Dr as getMemorySearchManager, Fn as readRestartSentinel, In as summarizeRestartSentinel, Jt as loadProviderUsageSummary, Kn as peekSystemEvents, Qt as listAgentsForGateway, Yt as formatUsageReportLines, _ as randomToken, a as applyWizardMetadata, b as summarizeExistingConfig, c as ensureWorkspaceAndSessions, d as handleReset, dn as lookupContextTokens, g as probeGatewayReachable, h as printWizardHeader, i as DEFAULT_WORKSPACE, l as formatControlUiSshHint, m as openUrl, p as normalizeGatewayTokenInput, q as getRemoteSkillEligibility, s as detectBrowserOpenSupport, v as resolveControlUiLinks, w as normalizeControlUiBasePath, x as waitForGatewayReachable } from "./loader-
|
|
15
|
+
import { Dr as getMemorySearchManager, Fn as readRestartSentinel, In as summarizeRestartSentinel, Jt as loadProviderUsageSummary, Kn as peekSystemEvents, Qt as listAgentsForGateway, Yt as formatUsageReportLines, _ as randomToken, a as applyWizardMetadata, b as summarizeExistingConfig, c as ensureWorkspaceAndSessions, d as handleReset, dn as lookupContextTokens, g as probeGatewayReachable, h as printWizardHeader, i as DEFAULT_WORKSPACE, l as formatControlUiSshHint, m as openUrl, p as normalizeGatewayTokenInput, q as getRemoteSkillEligibility, s as detectBrowserOpenSupport, v as resolveControlUiLinks, w as normalizeControlUiBasePath, x as waitForGatewayReachable } from "./loader-DE_vKAH5.js";
|
|
16
16
|
import { n as withProgress } from "./progress-D-Oc-KAH.js";
|
|
17
17
|
import { t as WizardCancelledError } from "./prompts-C2D9_VZC.js";
|
|
18
18
|
import { t as resolveChannelDefaultAccountId } from "./helpers-OUt4hxkS.js";
|
|
19
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
19
|
+
import { n as setupChannels } from "./onboard-channels-B5qHfMk8.js";
|
|
20
20
|
import { o as resolveStorePath } from "./paths-KUslkJRs.js";
|
|
21
21
|
import { I as resolveMainSessionKey, d as loadSessionStore } from "./sandbox-Cfvpk8Q8.js";
|
|
22
22
|
import { t as buildChannelSummary } from "./channel-summary-BQMoWZQ1.js";
|
|
23
23
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-DouPXVa3.js";
|
|
24
|
-
import { r as installCompletion } from "./completion-cli-
|
|
24
|
+
import { r as installCompletion } from "./completion-cli-Cs-B1hk7.js";
|
|
25
25
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BMAJ_2LE.js";
|
|
26
26
|
import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-C0ccl5rU.js";
|
|
27
27
|
import { r as isSystemdUserServiceAvailable } from "./systemd-kY3NnWdi.js";
|
|
28
28
|
import { o as readLastGatewayErrorLine } from "./service-audit-CCg0o0UZ.js";
|
|
29
29
|
import { t as renderTable } from "./table--L48nql9.js";
|
|
30
30
|
import { i as probeGateway, t as runSecurityAudit } from "./audit-DQsCrYXQ.js";
|
|
31
|
-
import { d as applyAuthChoice, g as ensureControlUiAssetsBuilt, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-
|
|
32
|
-
import { a as resolveHeartbeatSummaryForAgent, i as healthCommand, n as formatHealthChannelLines, t as formatHealthCheckFailure } from "./health-format-
|
|
33
|
-
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, c as formatUpdateOneLiner, d as checkShellCompletionStatus, h as compareSemverStrings, l as getUpdateCheckResult, m as checkUpdateStatus, p as ensureCompletionCacheExists, s as formatUpdateAvailableHint, u as resolveUpdateAvailability, x as formatUpdateChannelLabel } from "./update-runner-
|
|
31
|
+
import { d as applyAuthChoice, g as ensureControlUiAssetsBuilt, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-CyG0xbsu.js";
|
|
32
|
+
import { a as resolveHeartbeatSummaryForAgent, i as healthCommand, n as formatHealthChannelLines, t as formatHealthCheckFailure } from "./health-format-DlvTEKqI.js";
|
|
33
|
+
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, c as formatUpdateOneLiner, d as checkShellCompletionStatus, h as compareSemverStrings, l as getUpdateCheckResult, m as checkUpdateStatus, p as ensureCompletionCacheExists, s as formatUpdateAvailableHint, u as resolveUpdateAvailability, x as formatUpdateChannelLabel } from "./update-runner-eJ773fp-.js";
|
|
34
34
|
import { n as logConfigUpdated } from "./logging-B65tlzu3.js";
|
|
35
35
|
import { t as buildWorkspaceHookStatus } from "./hooks-status-B4cP-W7z.js";
|
|
36
36
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-dTiH79uI.js";
|
|
@@ -50,7 +50,7 @@ async function setupInternalHooks(cfg, runtime, prompter) {
|
|
|
50
50
|
"Hooks let you automate actions when agent commands are issued.",
|
|
51
51
|
"Example: Save session context to memory when you issue /new.",
|
|
52
52
|
"",
|
|
53
|
-
"Learn more: https://docs.
|
|
53
|
+
"Learn more: https://docs.openclaw.ai/hooks"
|
|
54
54
|
].join("\n"), "Hooks");
|
|
55
55
|
const eligibleHooks = buildWorkspaceHookStatus(resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg)), { config: cfg }).hooks.filter((h) => h.eligible);
|
|
56
56
|
if (eligibleHooks.length === 0) {
|
|
@@ -379,8 +379,8 @@ async function finalizeOnboardingWizard(options) {
|
|
|
379
379
|
runtime.error(formatHealthCheckFailure(err));
|
|
380
380
|
await prompter.note([
|
|
381
381
|
"Docs:",
|
|
382
|
-
"https://docs.
|
|
383
|
-
"https://docs.
|
|
382
|
+
"https://docs.openclaw.ai/gateway/health",
|
|
383
|
+
"https://docs.openclaw.ai/gateway/troubleshooting"
|
|
384
384
|
].join("\n"), "Health check help");
|
|
385
385
|
}
|
|
386
386
|
}
|
|
@@ -410,7 +410,7 @@ async function finalizeOnboardingWizard(options) {
|
|
|
410
410
|
`Web UI: ${dashboardUrl}`,
|
|
411
411
|
`Gateway WS: ${links.wsUrl}`,
|
|
412
412
|
gatewayStatusLine,
|
|
413
|
-
"Docs: https://docs.
|
|
413
|
+
"Docs: https://docs.openclaw.ai/web/control-ui"
|
|
414
414
|
].filter(Boolean).join("\n"), "Control UI");
|
|
415
415
|
let controlUiOpened = false;
|
|
416
416
|
let controlUiOpenHint;
|
|
@@ -472,7 +472,7 @@ async function finalizeOnboardingWizard(options) {
|
|
|
472
472
|
].filter(Boolean).join("\n"), "Dashboard ready");
|
|
473
473
|
} else await prompter.note(`When you're ready: ${formatCliCommand("cryptoclaw dashboard --no-open")}`, "Later");
|
|
474
474
|
} else if (opts.skipUi) await prompter.note("Skipping Control UI/TUI prompts.", "Control UI");
|
|
475
|
-
await prompter.note("Running agents on your computer is risky — harden your setup: https://docs.
|
|
475
|
+
await prompter.note("Running agents on your computer is risky — harden your setup: https://docs.openclaw.ai/security", "Security");
|
|
476
476
|
const cliName = resolveCliName();
|
|
477
477
|
const completionStatus = await checkShellCompletionStatus(cliName);
|
|
478
478
|
if (completionStatus.usesSlowPattern) {
|
|
@@ -614,8 +614,8 @@ async function configureGatewayForOnboarding(opts) {
|
|
|
614
614
|
if (tailscaleMode !== "off" && flow !== "quickstart") {
|
|
615
615
|
await prompter.note([
|
|
616
616
|
"Docs:",
|
|
617
|
-
"https://docs.
|
|
618
|
-
"https://docs.
|
|
617
|
+
"https://docs.openclaw.ai/gateway/tailscale",
|
|
618
|
+
"https://docs.openclaw.ai/web"
|
|
619
619
|
].join("\n"), "Tailscale");
|
|
620
620
|
tailscaleResetOnExit = Boolean(await prompter.confirm({
|
|
621
621
|
message: "Reset Tailscale serve/funnel on exit?",
|
|
@@ -718,7 +718,7 @@ async function requireRiskAcknowledgement(params) {
|
|
|
718
718
|
"cryptoclaw security audit --deep",
|
|
719
719
|
"cryptoclaw security audit --fix",
|
|
720
720
|
"",
|
|
721
|
-
"Must read: https://docs.
|
|
721
|
+
"Must read: https://docs.openclaw.ai/gateway/security"
|
|
722
722
|
].join("\n"), "Security");
|
|
723
723
|
if (!await params.prompter.confirm({
|
|
724
724
|
message: "I understand this is powerful and inherently risky. Continue?",
|
|
@@ -739,7 +739,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
739
739
|
if (snapshot.issues.length > 0) await prompter.note([
|
|
740
740
|
...snapshot.issues.map((iss) => `- ${iss.path}: ${iss.message}`),
|
|
741
741
|
"",
|
|
742
|
-
"Docs: https://docs.
|
|
742
|
+
"Docs: https://docs.openclaw.ai/gateway/configuration"
|
|
743
743
|
].join("\n"), "Config issues");
|
|
744
744
|
await prompter.outro(`Config invalid. Run \`${formatCliCommand("cryptoclaw doctor")}\` to repair it, then re-run onboarding.`);
|
|
745
745
|
runtime.exit(1);
|
|
@@ -1902,7 +1902,7 @@ async function appendStatusAllDiagnosis(params) {
|
|
|
1902
1902
|
}
|
|
1903
1903
|
lines.push("");
|
|
1904
1904
|
lines.push(muted("Pasteable debug report. Auth tokens redacted."));
|
|
1905
|
-
lines.push("Troubleshooting: https://docs.
|
|
1905
|
+
lines.push("Troubleshooting: https://docs.openclaw.ai/troubleshooting");
|
|
1906
1906
|
lines.push("");
|
|
1907
1907
|
}
|
|
1908
1908
|
|
|
@@ -3345,8 +3345,8 @@ async function statusCommand(opts, runtime) {
|
|
|
3345
3345
|
for (const line of formatUsageReportLines(usage)) runtime.log(line);
|
|
3346
3346
|
}
|
|
3347
3347
|
runtime.log("");
|
|
3348
|
-
runtime.log("FAQ: https://docs.
|
|
3349
|
-
runtime.log("Troubleshooting: https://docs.
|
|
3348
|
+
runtime.log("FAQ: https://docs.openclaw.ai/faq");
|
|
3349
|
+
runtime.log("Troubleshooting: https://docs.openclaw.ai/troubleshooting");
|
|
3350
3350
|
runtime.log("");
|
|
3351
3351
|
const updateHint = formatUpdateAvailableHint(update);
|
|
3352
3352
|
if (updateHint) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { rt as loadOpenClawPlugins } from "./reply-
|
|
1
|
+
import { rt as loadOpenClawPlugins } from "./reply-qWVVjmhR.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-Btuh5yZj.js";
|
|
3
3
|
import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-GUoze5gc.js";
|
|
4
4
|
import { i as loadConfig } from "./config-D1wc31Qf.js";
|
|
@@ -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-
|
|
15
|
+
import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
|
|
16
16
|
import "./progress-DTEUicRP.js";
|
|
17
17
|
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-anmk3tbT.js";
|
|
18
18
|
|
|
@@ -24,7 +24,7 @@ const normalizeWakeMode = (raw) => {
|
|
|
24
24
|
throw new Error("--mode must be now or next-heartbeat");
|
|
25
25
|
};
|
|
26
26
|
function registerSystemCli(program) {
|
|
27
|
-
const system = program.command("system").description("System tools (events, heartbeat, presence)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/system", "docs.
|
|
27
|
+
const system = program.command("system").description("System tools (events, heartbeat, presence)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/system", "docs.openclaw.ai/cli/system")}\n`);
|
|
28
28
|
addGatewayClientOptions(system.command("event").description("Enqueue a system event and optionally trigger a heartbeat").requiredOption("--text <text>", "System event text").option("--mode <mode>", "Wake mode (now|next-heartbeat)", "next-heartbeat").option("--json", "Output JSON", false)).action(async (opts) => {
|
|
29
29
|
try {
|
|
30
30
|
const text = typeof opts.text === "string" ? opts.text.trim() : "";
|
|
@@ -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-
|
|
13
|
+
import { t as formatDocsLink } from "./links-kbubTyay.js";
|
|
14
14
|
import "./progress-D-Oc-KAH.js";
|
|
15
15
|
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-0hjEbkzc.js";
|
|
16
16
|
|
|
@@ -22,7 +22,7 @@ const normalizeWakeMode = (raw) => {
|
|
|
22
22
|
throw new Error("--mode must be now or next-heartbeat");
|
|
23
23
|
};
|
|
24
24
|
function registerSystemCli(program) {
|
|
25
|
-
const system = program.command("system").description("System tools (events, heartbeat, presence)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/system", "docs.
|
|
25
|
+
const system = program.command("system").description("System tools (events, heartbeat, presence)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/system", "docs.openclaw.ai/cli/system")}\n`);
|
|
26
26
|
addGatewayClientOptions(system.command("event").description("Enqueue a system event and optionally trigger a heartbeat").requiredOption("--text <text>", "System event text").option("--mode <mode>", "Wake mode (now|next-heartbeat)", "next-heartbeat").option("--json", "Output JSON", false)).action(async (opts) => {
|
|
27
27
|
try {
|
|
28
28
|
const text = typeof opts.text === "string" ? opts.text.trim() : "";
|
|
@@ -25,13 +25,13 @@ import "./tool-display-7o4pgXYF.js";
|
|
|
25
25
|
import "./channel-summary-C4kSR_wu.js";
|
|
26
26
|
import "./client-BaTYzXOU.js";
|
|
27
27
|
import "./call-QEaFjVBF.js";
|
|
28
|
-
import { t as formatDocsLink } from "./links-
|
|
28
|
+
import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
|
|
29
29
|
import { t as parseTimeoutMs } from "./parse-timeout-Du-wHHNi.js";
|
|
30
30
|
import { t as runTui } from "./tui-3eD-E_iD.js";
|
|
31
31
|
|
|
32
32
|
//#region src/cli/tui-cli.ts
|
|
33
33
|
function registerTuiCli(program) {
|
|
34
|
-
program.command("tui").description("Open a terminal UI connected to the Gateway").option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Session key (default: \"main\", or \"global\" when scope is global)").option("--deliver", "Deliver assistant replies", false).option("--thinking <level>", "Thinking level override").option("--message <text>", "Send an initial message after connecting").option("--timeout-ms <ms>", "Agent timeout in ms (defaults to agents.defaults.timeoutSeconds)").option("--history-limit <n>", "History entries to load", "200").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/tui", "docs.
|
|
34
|
+
program.command("tui").description("Open a terminal UI connected to the Gateway").option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Session key (default: \"main\", or \"global\" when scope is global)").option("--deliver", "Deliver assistant replies", false).option("--thinking <level>", "Thinking level override").option("--message <text>", "Send an initial message after connecting").option("--timeout-ms <ms>", "Agent timeout in ms (defaults to agents.defaults.timeoutSeconds)").option("--history-limit <n>", "History entries to load", "200").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/tui", "docs.openclaw.ai/cli/tui")}\n`).action(async (opts) => {
|
|
35
35
|
try {
|
|
36
36
|
const timeoutMs = parseTimeoutMs(opts.timeoutMs);
|
|
37
37
|
if (opts.timeoutMs !== void 0 && timeoutMs === void 0) defaultRuntime.error(`warning: invalid --timeout-ms "${String(opts.timeoutMs)}"; ignoring`);
|
|
@@ -12,7 +12,7 @@ import "./errors-DpH6VpWK.js";
|
|
|
12
12
|
import "./client-N6zH1neq.js";
|
|
13
13
|
import "./call-D-Kvee3W.js";
|
|
14
14
|
import "./message-channel-CfYBy4y3.js";
|
|
15
|
-
import { t as formatDocsLink } from "./links-
|
|
15
|
+
import { t as formatDocsLink } from "./links-kbubTyay.js";
|
|
16
16
|
import "./plugins-CB4Xjrgb.js";
|
|
17
17
|
import "./logging-5MtSkLpb.js";
|
|
18
18
|
import "./accounts-BIh6Lgjl.js";
|
|
@@ -29,7 +29,7 @@ import { t as runTui } from "./tui-BGSteZzU.js";
|
|
|
29
29
|
|
|
30
30
|
//#region src/cli/tui-cli.ts
|
|
31
31
|
function registerTuiCli(program) {
|
|
32
|
-
program.command("tui").description("Open a terminal UI connected to the Gateway").option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Session key (default: \"main\", or \"global\" when scope is global)").option("--deliver", "Deliver assistant replies", false).option("--thinking <level>", "Thinking level override").option("--message <text>", "Send an initial message after connecting").option("--timeout-ms <ms>", "Agent timeout in ms (defaults to agents.defaults.timeoutSeconds)").option("--history-limit <n>", "History entries to load", "200").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/tui", "docs.
|
|
32
|
+
program.command("tui").description("Open a terminal UI connected to the Gateway").option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Session key (default: \"main\", or \"global\" when scope is global)").option("--deliver", "Deliver assistant replies", false).option("--thinking <level>", "Thinking level override").option("--message <text>", "Send an initial message after connecting").option("--timeout-ms <ms>", "Agent timeout in ms (defaults to agents.defaults.timeoutSeconds)").option("--history-limit <n>", "History entries to load", "200").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/tui", "docs.openclaw.ai/cli/tui")}\n`).action(async (opts) => {
|
|
33
33
|
try {
|
|
34
34
|
const timeoutMs = parseTimeoutMs(opts.timeoutMs);
|
|
35
35
|
if (opts.timeoutMs !== void 0 && timeoutMs === void 0) defaultRuntime.error(`warning: invalid --timeout-ms "${String(opts.timeoutMs)}"; ignoring`);
|
|
@@ -18,12 +18,12 @@ import "./auth-phxCaFNX.js";
|
|
|
18
18
|
import "./client-N6zH1neq.js";
|
|
19
19
|
import "./call-D-Kvee3W.js";
|
|
20
20
|
import "./message-channel-CfYBy4y3.js";
|
|
21
|
-
import { t as formatDocsLink } from "./links-
|
|
21
|
+
import { t as formatDocsLink } from "./links-kbubTyay.js";
|
|
22
22
|
import "./plugin-auto-enable-CBfM3u2p.js";
|
|
23
23
|
import "./plugins-CB4Xjrgb.js";
|
|
24
24
|
import "./logging-5MtSkLpb.js";
|
|
25
25
|
import "./accounts-BIh6Lgjl.js";
|
|
26
|
-
import { Ln as trimLogTail } from "./loader-
|
|
26
|
+
import { Ln as trimLogTail } from "./loader-DE_vKAH5.js";
|
|
27
27
|
import "./progress-D-Oc-KAH.js";
|
|
28
28
|
import { n as stylePromptMessage, t as stylePromptHint } from "./prompt-style-BntC_Eoo.js";
|
|
29
29
|
import "./note-C5M2AQOP.js";
|
|
@@ -49,25 +49,25 @@ import "./commands-B0LiAJsa.js";
|
|
|
49
49
|
import "./pairing-store-cC0TwSYc.js";
|
|
50
50
|
import "./login-qr-C_Vv7Cqc.js";
|
|
51
51
|
import "./channels-status-issues-DouPXVa3.js";
|
|
52
|
-
import "./register.subclis-
|
|
53
|
-
import { r as installCompletion } from "./completion-cli-
|
|
54
|
-
import "./deps-
|
|
52
|
+
import "./register.subclis-Bf9yES9h.js";
|
|
53
|
+
import { r as installCompletion } from "./completion-cli-Cs-B1hk7.js";
|
|
54
|
+
import "./deps-ZGqhOjkR.js";
|
|
55
55
|
import { g as parseSemver } from "./daemon-runtime-BMAJ_2LE.js";
|
|
56
56
|
import "./service-C0ccl5rU.js";
|
|
57
57
|
import "./systemd-kY3NnWdi.js";
|
|
58
58
|
import "./shared-DCh7fkR2.js";
|
|
59
|
-
import { r as runDaemonRestart } from "./daemon-cli-
|
|
59
|
+
import { r as runDaemonRestart } from "./daemon-cli-BM8zb09s.js";
|
|
60
60
|
import "./service-audit-CCg0o0UZ.js";
|
|
61
61
|
import { t as renderTable } from "./table--L48nql9.js";
|
|
62
|
-
import "./health-format-
|
|
63
|
-
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, c as formatUpdateOneLiner, d as checkShellCompletionStatus, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as ensureCompletionCacheExists, r as detectGlobalInstallManagerByPresence, s as formatUpdateAvailableHint, t as runGatewayUpdate, u as resolveUpdateAvailability, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-
|
|
62
|
+
import "./health-format-DlvTEKqI.js";
|
|
63
|
+
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, c as formatUpdateOneLiner, d as checkShellCompletionStatus, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as ensureCompletionCacheExists, r as detectGlobalInstallManagerByPresence, s as formatUpdateAvailableHint, t as runGatewayUpdate, u as resolveUpdateAvailability, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-eJ773fp-.js";
|
|
64
64
|
import "./logging-B65tlzu3.js";
|
|
65
65
|
import "./skills-status-dTiH79uI.js";
|
|
66
66
|
import "./auth-health-Dc-ImENT.js";
|
|
67
67
|
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-lGuOUiyd.js";
|
|
68
68
|
import { t as formatHelpExamples } from "./help-format-CUnac_bT.js";
|
|
69
69
|
import "./systemd-linger-CFK5jDdq.js";
|
|
70
|
-
import { t as doctorCommand } from "./doctor-
|
|
70
|
+
import { t as doctorCommand } from "./doctor-D6M3Hc0a.js";
|
|
71
71
|
import { spawnSync } from "node:child_process";
|
|
72
72
|
import path from "node:path";
|
|
73
73
|
import os from "node:os";
|
|
@@ -986,7 +986,7 @@ ${theme.heading("Notes:")}
|
|
|
986
986
|
- Downgrades require confirmation (can break configuration)
|
|
987
987
|
- Skips update if the working directory has uncommitted changes
|
|
988
988
|
|
|
989
|
-
${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
989
|
+
${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}`;
|
|
990
990
|
}).action(async (opts) => {
|
|
991
991
|
try {
|
|
992
992
|
await updateCommand({
|
|
@@ -1002,7 +1002,7 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.cryptoclaw.ai/cli/
|
|
|
1002
1002
|
defaultRuntime.exit(1);
|
|
1003
1003
|
}
|
|
1004
1004
|
});
|
|
1005
|
-
update.command("wizard").description("Interactive update wizard").option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)").addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
1005
|
+
update.command("wizard").description("Interactive update wizard").option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)").addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}\n`).action(async (opts) => {
|
|
1006
1006
|
try {
|
|
1007
1007
|
await updateWizardCommand({ timeout: opts.timeout });
|
|
1008
1008
|
} catch (err) {
|
|
@@ -1014,7 +1014,7 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.cryptoclaw.ai/cli/
|
|
|
1014
1014
|
["cryptoclaw update status", "Show channel + version status."],
|
|
1015
1015
|
["cryptoclaw update status --json", "JSON output."],
|
|
1016
1016
|
["cryptoclaw update status --timeout 10", "Custom timeout."]
|
|
1017
|
-
])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
1017
|
+
])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}`).action(async (opts) => {
|
|
1018
1018
|
try {
|
|
1019
1019
|
await updateStatusCommand({
|
|
1020
1020
|
json: Boolean(opts.json),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-CT7w1pYd.js";
|
|
2
|
-
import { q as trimLogTail } from "./reply-
|
|
2
|
+
import { q as trimLogTail } from "./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 "./utils-CGterW74.js";
|
|
@@ -36,14 +36,14 @@ import "./client-BaTYzXOU.js";
|
|
|
36
36
|
import "./call-QEaFjVBF.js";
|
|
37
37
|
import "./login-qr-BpdHxT8l.js";
|
|
38
38
|
import "./pairing-store-Dbotpoz6.js";
|
|
39
|
-
import { t as formatDocsLink } from "./links-
|
|
39
|
+
import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
|
|
40
40
|
import "./progress-DTEUicRP.js";
|
|
41
41
|
import "./pi-tools.policy-BjgXXFkH.js";
|
|
42
42
|
import { n as stylePromptMessage, t as stylePromptHint } from "./prompt-style-BBlJlXtd.js";
|
|
43
43
|
import "./session-cost-usage-B3HzifR9.js";
|
|
44
44
|
import "./control-service-BBeopea3.js";
|
|
45
45
|
import "./channel-selection-ChOffLk2.js";
|
|
46
|
-
import "./deps-
|
|
46
|
+
import "./deps-BhcPiVuz.js";
|
|
47
47
|
import "./tailscale-BY0igR48.js";
|
|
48
48
|
import { _ as parseSemver } from "./daemon-runtime-CD5XPuxz.js";
|
|
49
49
|
import "./logging-C3Y3mzWS.js";
|
|
@@ -52,8 +52,8 @@ import "./plugin-auto-enable-BmBAQgRq.js";
|
|
|
52
52
|
import "./archive-Dy3Ezb-5.js";
|
|
53
53
|
import "./skill-scanner-BoGjHXUZ.js";
|
|
54
54
|
import "./installs-CWAe2dOG.js";
|
|
55
|
-
import "./health-format-
|
|
56
|
-
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-
|
|
55
|
+
import "./health-format-SZpheYuf.js";
|
|
56
|
+
import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-L1EJYQRF.js";
|
|
57
57
|
import "./auth-RTEHx2eI.js";
|
|
58
58
|
import { t as renderTable } from "./table-C1Xupkjv.js";
|
|
59
59
|
import "./skills-status-D9G4-4sK.js";
|
|
@@ -61,13 +61,13 @@ import "./service-mrQPgOXl.js";
|
|
|
61
61
|
import "./systemd-CFHiVC1D.js";
|
|
62
62
|
import "./service-audit-BsDPEKdd.js";
|
|
63
63
|
import "./channels-status-issues-BwOdQrU9.js";
|
|
64
|
-
import { r as installCompletion } from "./completion-cli-
|
|
64
|
+
import { r as installCompletion } from "./completion-cli-Bd5FrGHg.js";
|
|
65
65
|
import { t as formatHelpExamples } from "./help-format-BzWwbeSF.js";
|
|
66
66
|
import "./systemd-linger-CxBBzOjC.js";
|
|
67
67
|
import "./auth-health-Cr8ib9nm.js";
|
|
68
|
-
import { t as doctorCommand } from "./doctor-
|
|
68
|
+
import { t as doctorCommand } from "./doctor-DRRL31R4.js";
|
|
69
69
|
import "./shared-CtNMbLRE.js";
|
|
70
|
-
import { r as runDaemonRestart } from "./daemon-cli-
|
|
70
|
+
import { r as runDaemonRestart } from "./daemon-cli-D8AC0Q_A.js";
|
|
71
71
|
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-zm4_acQX.js";
|
|
72
72
|
import os from "node:os";
|
|
73
73
|
import path from "node:path";
|
|
@@ -987,7 +987,7 @@ ${theme.heading("Notes:")}
|
|
|
987
987
|
- Downgrades require confirmation (can break configuration)
|
|
988
988
|
- Skips update if the working directory has uncommitted changes
|
|
989
989
|
|
|
990
|
-
${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
990
|
+
${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}`;
|
|
991
991
|
}).action(async (opts) => {
|
|
992
992
|
try {
|
|
993
993
|
await updateCommand({
|
|
@@ -1003,7 +1003,7 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.cryptoclaw.ai/cli/
|
|
|
1003
1003
|
defaultRuntime.exit(1);
|
|
1004
1004
|
}
|
|
1005
1005
|
});
|
|
1006
|
-
update.command("wizard").description("Interactive update wizard").option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)").addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
1006
|
+
update.command("wizard").description("Interactive update wizard").option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)").addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}\n`).action(async (opts) => {
|
|
1007
1007
|
try {
|
|
1008
1008
|
await updateWizardCommand({ timeout: opts.timeout });
|
|
1009
1009
|
} catch (err) {
|
|
@@ -1015,7 +1015,7 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.cryptoclaw.ai/cli/
|
|
|
1015
1015
|
["cryptoclaw update status", "Show channel + version status."],
|
|
1016
1016
|
["cryptoclaw update status --json", "JSON output."],
|
|
1017
1017
|
["cryptoclaw update status --timeout 10", "Custom timeout."]
|
|
1018
|
-
])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
1018
|
+
])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}`).action(async (opts) => {
|
|
1019
1019
|
try {
|
|
1020
1020
|
await updateStatusCommand({
|
|
1021
1021
|
json: Boolean(opts.json),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { q as trimLogTail } from "./reply-
|
|
1
|
+
import { q as trimLogTail } from "./reply-qWVVjmhR.js";
|
|
2
2
|
import { t as runCommandWithTimeout } from "./exec-CW_QjkBi.js";
|
|
3
3
|
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-Cx_l_MXP.js";
|
|
4
4
|
import { r as resolveCliName, t as formatCliCommand } from "./command-format-9IsYy-9N.js";
|
|
5
5
|
import { j as VERSION } from "./config-D1wc31Qf.js";
|
|
6
6
|
import { _ as parseSemver } from "./daemon-runtime-CD5XPuxz.js";
|
|
7
7
|
import { t as note } from "./note-DEz9ZK7G.js";
|
|
8
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
8
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Bd5FrGHg.js";
|
|
9
9
|
import os from "node:os";
|
|
10
10
|
import path from "node:path";
|
|
11
11
|
import fs from "node:fs/promises";
|
|
@@ -2,9 +2,9 @@ import { r as resolveCliName, t as formatCliCommand } from "./command-format-B0b
|
|
|
2
2
|
import { t as runCommandWithTimeout } from "./exec-CLQSz0CI.js";
|
|
3
3
|
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-DJB4AQtF.js";
|
|
4
4
|
import { j as VERSION } from "./config-DBZqAqbe.js";
|
|
5
|
-
import { Ln as trimLogTail } from "./loader-
|
|
5
|
+
import { Ln as trimLogTail } from "./loader-DE_vKAH5.js";
|
|
6
6
|
import { t as note } from "./note-C5M2AQOP.js";
|
|
7
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
7
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cs-B1hk7.js";
|
|
8
8
|
import { g as parseSemver } from "./daemon-runtime-BMAJ_2LE.js";
|
|
9
9
|
import { spawnSync } from "node:child_process";
|
|
10
10
|
import path from "node:path";
|
|
@@ -8,7 +8,7 @@ import "./agent-scope-BJucHu4R.js";
|
|
|
8
8
|
import "./github-copilot-token-C1sArkX4.js";
|
|
9
9
|
import { c as writeConfigFile, i as loadConfig, l as validateConfigObjectWithPlugins, o as readConfigFileSnapshot } from "./config-DBZqAqbe.js";
|
|
10
10
|
import "./manifest-registry-CBbBh2FT.js";
|
|
11
|
-
import { t as formatDocsLink } from "./links-
|
|
11
|
+
import { t as formatDocsLink } from "./links-kbubTyay.js";
|
|
12
12
|
import "./skills-DaDm2aTV.js";
|
|
13
13
|
import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-CJ1pbsWv.js";
|
|
14
14
|
import { spawn } from "node:child_process";
|
|
@@ -226,7 +226,7 @@ async function startGmailWatch(cfg, fatal = false) {
|
|
|
226
226
|
//#endregion
|
|
227
227
|
//#region src/cli/webhooks-cli.ts
|
|
228
228
|
function registerWebhooksCli(program) {
|
|
229
|
-
const gmail = program.command("webhooks").description("Webhook helpers and integrations").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/webhooks", "docs.
|
|
229
|
+
const gmail = program.command("webhooks").description("Webhook helpers and integrations").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/webhooks", "docs.openclaw.ai/cli/webhooks")}\n`).command("gmail").description("Gmail Pub/Sub hooks (via gogcli)");
|
|
230
230
|
gmail.command("setup").description("Configure Gmail watch + Pub/Sub + CryptoClaw hooks").requiredOption("--account <email>", "Gmail account to watch").option("--project <id>", "GCP project id (OAuth client owner)").option("--topic <name>", "Pub/Sub topic name", DEFAULT_GMAIL_TOPIC).option("--subscription <name>", "Pub/Sub subscription name", DEFAULT_GMAIL_SUBSCRIPTION).option("--label <label>", "Gmail label to watch", DEFAULT_GMAIL_LABEL).option("--hook-url <url>", "CryptoClaw hook URL").option("--hook-token <token>", "CryptoClaw hook token").option("--push-token <token>", "Push token for gog watch serve").option("--bind <host>", "gog watch serve bind host", DEFAULT_GMAIL_SERVE_BIND).option("--port <port>", "gog watch serve port", String(DEFAULT_GMAIL_SERVE_PORT)).option("--path <path>", "gog watch serve path", DEFAULT_GMAIL_SERVE_PATH).option("--include-body", "Include email body snippets", true).option("--max-bytes <n>", "Max bytes for body snippets", String(DEFAULT_GMAIL_MAX_BYTES)).option("--renew-minutes <n>", "Renew watch every N minutes", String(DEFAULT_GMAIL_RENEW_MINUTES)).option("--tailscale <mode>", "Expose push endpoint via tailscale (funnel|serve|off)", "funnel").option("--tailscale-path <path>", "Path for tailscale serve/funnel").option("--tailscale-target <target>", "Tailscale serve/funnel target (port, host:port, or URL)").option("--push-endpoint <url>", "Explicit Pub/Sub push endpoint").option("--json", "Output JSON summary", false).action(async (opts) => {
|
|
231
231
|
try {
|
|
232
232
|
await runGmailSetup(parseGmailSetupOptions(opts));
|
|
@@ -11,7 +11,7 @@ import "./env-B2Cd_6IS.js";
|
|
|
11
11
|
import { c as writeConfigFile, i as loadConfig, l as validateConfigObjectWithPlugins, o as readConfigFileSnapshot } from "./config-D1wc31Qf.js";
|
|
12
12
|
import "./manifest-registry-CmLtWVRR.js";
|
|
13
13
|
import "./skills-DryIpWLj.js";
|
|
14
|
-
import { t as formatDocsLink } from "./links-
|
|
14
|
+
import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
|
|
15
15
|
import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-CAfk_F1J.js";
|
|
16
16
|
import { spawn } from "node:child_process";
|
|
17
17
|
|
|
@@ -228,7 +228,7 @@ async function startGmailWatch(cfg, fatal = false) {
|
|
|
228
228
|
//#endregion
|
|
229
229
|
//#region src/cli/webhooks-cli.ts
|
|
230
230
|
function registerWebhooksCli(program) {
|
|
231
|
-
const gmail = program.command("webhooks").description("Webhook helpers and integrations").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/webhooks", "docs.
|
|
231
|
+
const gmail = program.command("webhooks").description("Webhook helpers and integrations").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/webhooks", "docs.openclaw.ai/cli/webhooks")}\n`).command("gmail").description("Gmail Pub/Sub hooks (via gogcli)");
|
|
232
232
|
gmail.command("setup").description("Configure Gmail watch + Pub/Sub + CryptoClaw hooks").requiredOption("--account <email>", "Gmail account to watch").option("--project <id>", "GCP project id (OAuth client owner)").option("--topic <name>", "Pub/Sub topic name", DEFAULT_GMAIL_TOPIC).option("--subscription <name>", "Pub/Sub subscription name", DEFAULT_GMAIL_SUBSCRIPTION).option("--label <label>", "Gmail label to watch", DEFAULT_GMAIL_LABEL).option("--hook-url <url>", "CryptoClaw hook URL").option("--hook-token <token>", "CryptoClaw hook token").option("--push-token <token>", "Push token for gog watch serve").option("--bind <host>", "gog watch serve bind host", DEFAULT_GMAIL_SERVE_BIND).option("--port <port>", "gog watch serve port", String(DEFAULT_GMAIL_SERVE_PORT)).option("--path <path>", "gog watch serve path", DEFAULT_GMAIL_SERVE_PATH).option("--include-body", "Include email body snippets", true).option("--max-bytes <n>", "Max bytes for body snippets", String(DEFAULT_GMAIL_MAX_BYTES)).option("--renew-minutes <n>", "Renew watch every N minutes", String(DEFAULT_GMAIL_RENEW_MINUTES)).option("--tailscale <mode>", "Expose push endpoint via tailscale (funnel|serve|off)", "funnel").option("--tailscale-path <path>", "Path for tailscale serve/funnel").option("--tailscale-target <target>", "Tailscale serve/funnel target (port, host:port, or URL)").option("--push-endpoint <url>", "Explicit Pub/Sub push endpoint").option("--json", "Output JSON summary", false).action(async (opts) => {
|
|
233
233
|
try {
|
|
234
234
|
await runGmailSetup(parseGmailSetupOptions(opts));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 16 16" role="img" aria-label="Pixel lobster">
|
|
2
2
|
<rect width="16" height="16" fill="none"/>
|
|
3
3
|
<!-- outline -->
|
|
4
|
-
<g fill="#
|
|
4
|
+
<g fill="#064E3B">
|
|
5
5
|
<rect x="1" y="5" width="1" height="3"/>
|
|
6
6
|
<rect x="2" y="4" width="1" height="1"/>
|
|
7
7
|
<rect x="2" y="8" width="1" height="1"/>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
</g>
|
|
26
26
|
|
|
27
27
|
<!-- body -->
|
|
28
|
-
<g fill="#
|
|
28
|
+
<g fill="#10B981">
|
|
29
29
|
<rect x="5" y="3" width="6" height="1"/>
|
|
30
30
|
<rect x="4" y="4" width="8" height="1"/>
|
|
31
31
|
<rect x="3" y="5" width="10" height="1"/>
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
</g>
|
|
39
39
|
|
|
40
40
|
<!-- claws -->
|
|
41
|
-
<g fill="#
|
|
41
|
+
<g fill="#34D399">
|
|
42
42
|
<rect x="1" y="6" width="2" height="1"/>
|
|
43
43
|
<rect x="2" y="5" width="1" height="1"/>
|
|
44
44
|
<rect x="2" y="7" width="1" height="1"/>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Supply, borrow, and repay on Aave V3 on BSC."
|
|
3
|
+
title: "AAVE Lending"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AAVE Lending
|
|
7
|
+
|
|
8
|
+
CryptoClaw integrates with Aave V3 on BNB Smart Chain for lending and borrowing operations.
|
|
9
|
+
|
|
10
|
+
## Protocol addresses (BSC)
|
|
11
|
+
|
|
12
|
+
| Contract | Address |
|
|
13
|
+
| ----------------------- | -------------------------------------------- |
|
|
14
|
+
| Pool Proxy | `0x6807dc923806fE8Fd134338EABCA509979a7e0cB` |
|
|
15
|
+
| Pool Addresses Provider | `0xff75B6da14FfbbfD355Daf7a2731456b3562Ba6D` |
|
|
16
|
+
| Protocol Data Provider | `0x41585C50524fb8c3899B43D7D797d9486AAc94DB` |
|
|
17
|
+
|
|
18
|
+
## Supported assets
|
|
19
|
+
|
|
20
|
+
| Asset | Address | Use as collateral |
|
|
21
|
+
| ----- | -------------------------------------------- | :---------------: |
|
|
22
|
+
| WBNB | `0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c` | Yes |
|
|
23
|
+
| USDT | `0x55d398326f99059fF775485246999027B3197955` | Yes |
|
|
24
|
+
| USDC | `0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d` | Yes |
|
|
25
|
+
| BTCB | `0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c` | Yes |
|
|
26
|
+
| ETH | `0x2170Ed0880ac9A755fd29B2688956BD959F933F8` | Yes |
|
|
27
|
+
|
|
28
|
+
## Operations
|
|
29
|
+
|
|
30
|
+
| Action | Description | Confirmation |
|
|
31
|
+
| -------------------- | ------------------------------- | :----------: |
|
|
32
|
+
| `supply` | Deposit assets to earn interest | Yes |
|
|
33
|
+
| `withdraw` | Withdraw supplied assets | Yes |
|
|
34
|
+
| `borrow` | Borrow against collateral | Yes |
|
|
35
|
+
| `repay` | Repay borrowed assets | Yes |
|
|
36
|
+
| `getUserAccountData` | View position summary | |
|
|
37
|
+
|
|
38
|
+
## Position monitoring
|
|
39
|
+
|
|
40
|
+
Ask the agent to check your Aave position:
|
|
41
|
+
|
|
42
|
+
- "What's my Aave position?" — Shows total collateral, total debt, available borrows, health factor
|
|
43
|
+
- "What's my health factor on Aave?" — Liquidation risk indicator (safe above 1.5)
|
|
44
|
+
- "How much can I borrow on Aave?" — Available borrow capacity
|
|
45
|
+
|
|
46
|
+
The `getUserAccountData` function returns:
|
|
47
|
+
|
|
48
|
+
- Total collateral (USD)
|
|
49
|
+
- Total debt (USD)
|
|
50
|
+
- Available borrows (USD)
|
|
51
|
+
- Liquidation threshold
|
|
52
|
+
- LTV ratio
|
|
53
|
+
- Health factor
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
"Supply 10 USDT to Aave"
|
|
59
|
+
"Borrow 0.1 BNB from Aave using my USDT as collateral"
|
|
60
|
+
"Repay 5 USDT on Aave"
|
|
61
|
+
"Withdraw all my WBNB from Aave"
|
|
62
|
+
"What's my current Aave health factor?"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
<Warning>
|
|
66
|
+
Monitor your health factor regularly. If it drops below 1.0, your position may be liquidated. The agent will warn you when health factor is below 1.5.
|
|
67
|
+
</Warning>
|
|
68
|
+
|
|
69
|
+
## Related
|
|
70
|
+
|
|
71
|
+
- [DeFi Dashboard](/blockchain/defi) — Monitor all DeFi positions
|
|
72
|
+
- [Token Swap](/blockchain/swap) — Swap tokens to repay or adjust positions
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Register and manage on-chain AI agent identity using ERC-8004 Trustless Agents standard."
|
|
3
|
+
title: "Agent Identity (ERC-8004)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Identity (ERC-8004)
|
|
7
|
+
|
|
8
|
+
CryptoClaw supports on-chain AI agent identity registration via the **ERC-8004 Trustless Agents** standard. This gives your agent a verifiable on-chain identity and reputation.
|
|
9
|
+
|
|
10
|
+
## What is ERC-8004?
|
|
11
|
+
|
|
12
|
+
ERC-8004 defines a standard for registering AI agents on-chain with:
|
|
13
|
+
|
|
14
|
+
- **Identity registry** — Map agent addresses to metadata (name, capabilities, version)
|
|
15
|
+
- **Reputation registry** — Track agent reputation scores and endorsements
|
|
16
|
+
- **Trustless verification** — Anyone can verify an agent's identity on-chain
|
|
17
|
+
|
|
18
|
+
## Tools
|
|
19
|
+
|
|
20
|
+
| Tool | Description | Confirmation |
|
|
21
|
+
| ----------------------- | ------------------------------------ | :----------: |
|
|
22
|
+
| `agent_register` | Register agent identity on-chain | Yes |
|
|
23
|
+
| `agent_identity` | Query agent identity information | |
|
|
24
|
+
| `agent_set_wallet` | Update the agent's associated wallet | Yes |
|
|
25
|
+
| `agent_reputation` | Check agent reputation score | |
|
|
26
|
+
| `agent_list_registered` | List registered agents | |
|
|
27
|
+
|
|
28
|
+
## Supported networks
|
|
29
|
+
|
|
30
|
+
Agent identity can be registered on 10+ networks:
|
|
31
|
+
|
|
32
|
+
| Network | Registry type |
|
|
33
|
+
| ----------- | ------------- |
|
|
34
|
+
| BSC | Mainnet |
|
|
35
|
+
| Ethereum | Mainnet |
|
|
36
|
+
| Polygon | Mainnet |
|
|
37
|
+
| Arbitrum | Mainnet |
|
|
38
|
+
| Base | Mainnet |
|
|
39
|
+
| BSC Testnet | Testnet |
|
|
40
|
+
| Sepolia | Testnet |
|
|
41
|
+
|
|
42
|
+
## Registration flow
|
|
43
|
+
|
|
44
|
+
<Steps>
|
|
45
|
+
<Step title="Prepare identity">
|
|
46
|
+
The agent collects identity metadata: name, description, capabilities, and version.
|
|
47
|
+
</Step>
|
|
48
|
+
<Step title="Choose network">
|
|
49
|
+
Select which chain to register on. BSC is recommended for low gas costs.
|
|
50
|
+
</Step>
|
|
51
|
+
<Step title="Confirm and register">
|
|
52
|
+
Review the registration transaction and confirm. The identity is stored on-chain.
|
|
53
|
+
</Step>
|
|
54
|
+
</Steps>
|
|
55
|
+
|
|
56
|
+
## Identity persistence
|
|
57
|
+
|
|
58
|
+
Agent identity data is persisted locally at `~/.cryptoclaw/agent-identity.json` for quick access without on-chain queries.
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
"Register my agent identity on BSC"
|
|
64
|
+
"What's my agent's on-chain reputation?"
|
|
65
|
+
"List all registered agents on BSC Testnet"
|
|
66
|
+
"Update my agent's wallet address"
|
|
67
|
+
"Show my agent identity details"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Related
|
|
71
|
+
|
|
72
|
+
- [Wallet Management](/blockchain/wallet) — Wallet used for registration
|
|
73
|
+
- [Transaction Security](/blockchain/security) — Registration requires confirmation
|