@sequence0/blockclaw 2.0.0
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/README.md +97 -0
- package/dist/agent/binary.d.ts +15 -0
- package/dist/agent/binary.d.ts.map +1 -0
- package/dist/agent/binary.js +172 -0
- package/dist/agent/binary.js.map +1 -0
- package/dist/agent/chains.d.ts +26 -0
- package/dist/agent/chains.d.ts.map +1 -0
- package/dist/agent/chains.js +123 -0
- package/dist/agent/chains.js.map +1 -0
- package/dist/agent/client.d.ts +484 -0
- package/dist/agent/client.d.ts.map +1 -0
- package/dist/agent/client.js +448 -0
- package/dist/agent/client.js.map +1 -0
- package/dist/agent/config.d.ts +75 -0
- package/dist/agent/config.d.ts.map +1 -0
- package/dist/agent/config.js +133 -0
- package/dist/agent/config.js.map +1 -0
- package/dist/agent/process.d.ts +36 -0
- package/dist/agent/process.d.ts.map +1 -0
- package/dist/agent/process.js +208 -0
- package/dist/agent/process.js.map +1 -0
- package/dist/agent/wallet.d.ts +43 -0
- package/dist/agent/wallet.d.ts.map +1 -0
- package/dist/agent/wallet.js +146 -0
- package/dist/agent/wallet.js.map +1 -0
- package/dist/ai/brain.d.ts +21 -0
- package/dist/ai/brain.d.ts.map +1 -0
- package/dist/ai/brain.js +117 -0
- package/dist/ai/brain.js.map +1 -0
- package/dist/ai/prompts.d.ts +15 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +67 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/rules.d.ts +19 -0
- package/dist/ai/rules.d.ts.map +1 -0
- package/dist/ai/rules.js +143 -0
- package/dist/ai/rules.js.map +1 -0
- package/dist/core/detector.d.ts +16 -0
- package/dist/core/detector.d.ts.map +1 -0
- package/dist/core/detector.js +90 -0
- package/dist/core/detector.js.map +1 -0
- package/dist/core/healer.d.ts +62 -0
- package/dist/core/healer.d.ts.map +1 -0
- package/dist/core/healer.js +355 -0
- package/dist/core/healer.js.map +1 -0
- package/dist/core/heartbeat.d.ts +67 -0
- package/dist/core/heartbeat.d.ts.map +1 -0
- package/dist/core/heartbeat.js +426 -0
- package/dist/core/heartbeat.js.map +1 -0
- package/dist/core/memory.d.ts +57 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +149 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/updater.d.ts +16 -0
- package/dist/core/updater.d.ts.map +1 -0
- package/dist/core/updater.js +107 -0
- package/dist/core/updater.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +97 -0
- package/dist/index.js.map +1 -0
- package/dist/interface/commands/ask.d.ts +3 -0
- package/dist/interface/commands/ask.d.ts.map +1 -0
- package/dist/interface/commands/ask.js +39 -0
- package/dist/interface/commands/ask.js.map +1 -0
- package/dist/interface/commands/backup.d.ts +3 -0
- package/dist/interface/commands/backup.d.ts.map +1 -0
- package/dist/interface/commands/backup.js +576 -0
- package/dist/interface/commands/backup.js.map +1 -0
- package/dist/interface/commands/config.d.ts +3 -0
- package/dist/interface/commands/config.d.ts.map +1 -0
- package/dist/interface/commands/config.js +107 -0
- package/dist/interface/commands/config.js.map +1 -0
- package/dist/interface/commands/daemon.d.ts +3 -0
- package/dist/interface/commands/daemon.d.ts.map +1 -0
- package/dist/interface/commands/daemon.js +162 -0
- package/dist/interface/commands/daemon.js.map +1 -0
- package/dist/interface/commands/doctor.d.ts +3 -0
- package/dist/interface/commands/doctor.d.ts.map +1 -0
- package/dist/interface/commands/doctor.js +143 -0
- package/dist/interface/commands/doctor.js.map +1 -0
- package/dist/interface/commands/earnings.d.ts +3 -0
- package/dist/interface/commands/earnings.d.ts.map +1 -0
- package/dist/interface/commands/earnings.js +165 -0
- package/dist/interface/commands/earnings.js.map +1 -0
- package/dist/interface/commands/health.d.ts +3 -0
- package/dist/interface/commands/health.d.ts.map +1 -0
- package/dist/interface/commands/health.js +48 -0
- package/dist/interface/commands/health.js.map +1 -0
- package/dist/interface/commands/history.d.ts +3 -0
- package/dist/interface/commands/history.d.ts.map +1 -0
- package/dist/interface/commands/history.js +113 -0
- package/dist/interface/commands/history.js.map +1 -0
- package/dist/interface/commands/info.d.ts +3 -0
- package/dist/interface/commands/info.d.ts.map +1 -0
- package/dist/interface/commands/info.js +82 -0
- package/dist/interface/commands/info.js.map +1 -0
- package/dist/interface/commands/logs.d.ts +3 -0
- package/dist/interface/commands/logs.d.ts.map +1 -0
- package/dist/interface/commands/logs.js +98 -0
- package/dist/interface/commands/logs.js.map +1 -0
- package/dist/interface/commands/menu.d.ts +4 -0
- package/dist/interface/commands/menu.d.ts.map +1 -0
- package/dist/interface/commands/menu.js +156 -0
- package/dist/interface/commands/menu.js.map +1 -0
- package/dist/interface/commands/receive.d.ts +3 -0
- package/dist/interface/commands/receive.d.ts.map +1 -0
- package/dist/interface/commands/receive.js +81 -0
- package/dist/interface/commands/receive.js.map +1 -0
- package/dist/interface/commands/register.d.ts +3 -0
- package/dist/interface/commands/register.d.ts.map +1 -0
- package/dist/interface/commands/register.js +231 -0
- package/dist/interface/commands/register.js.map +1 -0
- package/dist/interface/commands/restart.d.ts +3 -0
- package/dist/interface/commands/restart.d.ts.map +1 -0
- package/dist/interface/commands/restart.js +154 -0
- package/dist/interface/commands/restart.js.map +1 -0
- package/dist/interface/commands/send.d.ts +3 -0
- package/dist/interface/commands/send.d.ts.map +1 -0
- package/dist/interface/commands/send.js +108 -0
- package/dist/interface/commands/send.js.map +1 -0
- package/dist/interface/commands/service.d.ts +3 -0
- package/dist/interface/commands/service.d.ts.map +1 -0
- package/dist/interface/commands/service.js +474 -0
- package/dist/interface/commands/service.js.map +1 -0
- package/dist/interface/commands/setup.d.ts +5 -0
- package/dist/interface/commands/setup.d.ts.map +1 -0
- package/dist/interface/commands/setup.js +410 -0
- package/dist/interface/commands/setup.js.map +1 -0
- package/dist/interface/commands/start.d.ts +3 -0
- package/dist/interface/commands/start.d.ts.map +1 -0
- package/dist/interface/commands/start.js +171 -0
- package/dist/interface/commands/start.js.map +1 -0
- package/dist/interface/commands/status.d.ts +3 -0
- package/dist/interface/commands/status.d.ts.map +1 -0
- package/dist/interface/commands/status.js +77 -0
- package/dist/interface/commands/status.js.map +1 -0
- package/dist/interface/commands/stop.d.ts +3 -0
- package/dist/interface/commands/stop.d.ts.map +1 -0
- package/dist/interface/commands/stop.js +62 -0
- package/dist/interface/commands/stop.js.map +1 -0
- package/dist/interface/commands/update.d.ts +3 -0
- package/dist/interface/commands/update.d.ts.map +1 -0
- package/dist/interface/commands/update.js +53 -0
- package/dist/interface/commands/update.js.map +1 -0
- package/dist/interface/commands/wallet.d.ts +3 -0
- package/dist/interface/commands/wallet.d.ts.map +1 -0
- package/dist/interface/commands/wallet.js +446 -0
- package/dist/interface/commands/wallet.js.map +1 -0
- package/dist/interface/commands/webhook.d.ts +3 -0
- package/dist/interface/commands/webhook.d.ts.map +1 -0
- package/dist/interface/commands/webhook.js +99 -0
- package/dist/interface/commands/webhook.js.map +1 -0
- package/dist/interface/commands/withdraw.d.ts +3 -0
- package/dist/interface/commands/withdraw.d.ts.map +1 -0
- package/dist/interface/commands/withdraw.js +261 -0
- package/dist/interface/commands/withdraw.js.map +1 -0
- package/dist/interface/interactive.d.ts +43 -0
- package/dist/interface/interactive.d.ts.map +1 -0
- package/dist/interface/interactive.js +276 -0
- package/dist/interface/interactive.js.map +1 -0
- package/dist/interface/logo.d.ts +2 -0
- package/dist/interface/logo.d.ts.map +1 -0
- package/dist/interface/logo.js +21 -0
- package/dist/interface/logo.js.map +1 -0
- package/dist/interface/webhooks.d.ts +19 -0
- package/dist/interface/webhooks.d.ts.map +1 -0
- package/dist/interface/webhooks.js +172 -0
- package/dist/interface/webhooks.js.map +1 -0
- package/dist/utils/format.d.ts +19 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +107 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +47 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/paths.d.ts +35 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +45 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/platform.d.ts +26 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +72 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface UpdateInfo {
|
|
2
|
+
currentVersion: string | null;
|
|
3
|
+
latestVersion: string | null;
|
|
4
|
+
updateAvailable: boolean;
|
|
5
|
+
blockclawVersion: string;
|
|
6
|
+
}
|
|
7
|
+
/** Check if an update is available for the agent binary */
|
|
8
|
+
export declare function checkForUpdate(): Promise<UpdateInfo>;
|
|
9
|
+
/** Apply an update to the agent binary */
|
|
10
|
+
export declare function applyUpdate(version?: string): Promise<boolean>;
|
|
11
|
+
/** Check for BlockClaw CLI updates */
|
|
12
|
+
export declare function checkBlockclawUpdate(): Promise<{
|
|
13
|
+
latest: string | null;
|
|
14
|
+
updateAvailable: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=updater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/core/updater.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CA2C1D;AAED,0CAA0C;AAC1C,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BpE;AAED,sCAAsC;AACtC,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAczG"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { promisify } from "node:util";
|
|
3
|
+
import { getBinaryVersion, downloadBinary, verifyBinary, resolveBinary } from "../agent/binary.js";
|
|
4
|
+
import { stopAgent } from "../agent/process.js";
|
|
5
|
+
import { readBlockclawConfig } from "../agent/config.js";
|
|
6
|
+
import { VERSION } from "../version.js";
|
|
7
|
+
import { logger } from "../utils/logger.js";
|
|
8
|
+
const execFileAsync = promisify(execFile);
|
|
9
|
+
/** Check if an update is available for the agent binary */
|
|
10
|
+
export async function checkForUpdate() {
|
|
11
|
+
const info = {
|
|
12
|
+
currentVersion: null,
|
|
13
|
+
latestVersion: null,
|
|
14
|
+
updateAvailable: false,
|
|
15
|
+
blockclawVersion: VERSION,
|
|
16
|
+
};
|
|
17
|
+
// Get current binary version
|
|
18
|
+
try {
|
|
19
|
+
const binPath = await resolveBinary();
|
|
20
|
+
info.currentVersion = await getBinaryVersion(binPath);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Binary not installed
|
|
24
|
+
}
|
|
25
|
+
// Check install server for latest version
|
|
26
|
+
try {
|
|
27
|
+
const response = await fetch("https://install.sequence0.network/releases/latest/version.txt", {
|
|
28
|
+
signal: AbortSignal.timeout(10000),
|
|
29
|
+
});
|
|
30
|
+
if (response.ok) {
|
|
31
|
+
const text = await response.text();
|
|
32
|
+
info.latestVersion = text.trim().replace(/^v/, "");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Can't reach install server — fall back to npm registry
|
|
37
|
+
try {
|
|
38
|
+
const { stdout } = await execFileAsync("npm", ["view", "@sequence0/agent", "version"], {
|
|
39
|
+
timeout: 10000,
|
|
40
|
+
encoding: "utf8",
|
|
41
|
+
});
|
|
42
|
+
info.latestVersion = stdout.trim();
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Can't reach npm registry either
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (info.currentVersion && info.latestVersion) {
|
|
49
|
+
info.updateAvailable = compareVersions(info.latestVersion, info.currentVersion) > 0;
|
|
50
|
+
}
|
|
51
|
+
return info;
|
|
52
|
+
}
|
|
53
|
+
/** Apply an update to the agent binary */
|
|
54
|
+
export async function applyUpdate(version) {
|
|
55
|
+
const config = readBlockclawConfig();
|
|
56
|
+
const apiPort = config.api_port ?? 8080;
|
|
57
|
+
logger.info("Stopping agent for update...");
|
|
58
|
+
await stopAgent(apiPort);
|
|
59
|
+
// Wait for process to fully exit
|
|
60
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
61
|
+
logger.info("Downloading new binary...");
|
|
62
|
+
try {
|
|
63
|
+
const binPath = await downloadBinary(version);
|
|
64
|
+
const verified = await verifyBinary(binPath, version);
|
|
65
|
+
if (!verified) {
|
|
66
|
+
logger.error("Binary verification failed! Update aborted.");
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const newVersion = await getBinaryVersion(binPath);
|
|
70
|
+
logger.success(`Updated to v${newVersion ?? "unknown"}`);
|
|
71
|
+
logger.info("Restart the agent with 'blockclaw start'");
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
logger.error(`Update failed: ${err.message}`);
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Check for BlockClaw CLI updates */
|
|
80
|
+
export async function checkBlockclawUpdate() {
|
|
81
|
+
try {
|
|
82
|
+
const { stdout } = await execFileAsync("npm", ["view", "@sequence0/blockclaw", "version"], {
|
|
83
|
+
timeout: 10000,
|
|
84
|
+
encoding: "utf8",
|
|
85
|
+
});
|
|
86
|
+
const latest = stdout.trim();
|
|
87
|
+
return {
|
|
88
|
+
latest,
|
|
89
|
+
updateAvailable: compareVersions(latest, VERSION) > 0,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return { latest: null, updateAvailable: false };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** Compare two semver strings. Returns >0 if a > b, <0 if a < b, 0 if equal */
|
|
97
|
+
function compareVersions(a, b) {
|
|
98
|
+
const pa = a.replace(/^v/, "").split(".").map(Number);
|
|
99
|
+
const pb = b.replace(/^v/, "").split(".").map(Number);
|
|
100
|
+
for (let i = 0; i < 3; i++) {
|
|
101
|
+
const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
102
|
+
if (diff !== 0)
|
|
103
|
+
return diff;
|
|
104
|
+
}
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/core/updater.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import pc from "picocolors";
|
|
4
|
+
import { VERSION } from "./version.js";
|
|
5
|
+
const program = new Command();
|
|
6
|
+
program
|
|
7
|
+
.name("blockclaw")
|
|
8
|
+
.description(`${pc.bold(pc.cyan("BlockClaw"))} — Run a Sequence0 node and earn passive income\n\n` +
|
|
9
|
+
` Manage your node with guided prompts, self-healing monitoring, and AI assistance.\n` +
|
|
10
|
+
` Supports 81 blockchains via threshold signing.`)
|
|
11
|
+
.version(VERSION, "-V, --version");
|
|
12
|
+
// ── Phase 1: Core Agent Management ──
|
|
13
|
+
async function registerCommands() {
|
|
14
|
+
// ── Phase 0: Setup ──
|
|
15
|
+
const { register: registerSetup } = await import("./interface/commands/setup.js");
|
|
16
|
+
registerSetup(program);
|
|
17
|
+
// ── Phase 1: Core Agent Management ──
|
|
18
|
+
const { register: registerStart } = await import("./interface/commands/start.js");
|
|
19
|
+
const { register: registerStop } = await import("./interface/commands/stop.js");
|
|
20
|
+
const { register: registerRestart } = await import("./interface/commands/restart.js");
|
|
21
|
+
const { register: registerStatus } = await import("./interface/commands/status.js");
|
|
22
|
+
const { register: registerLogs } = await import("./interface/commands/logs.js");
|
|
23
|
+
const { register: registerWallet } = await import("./interface/commands/wallet.js");
|
|
24
|
+
const { register: registerConfig } = await import("./interface/commands/config.js");
|
|
25
|
+
const { register: registerInfo } = await import("./interface/commands/info.js");
|
|
26
|
+
registerStart(program);
|
|
27
|
+
registerStop(program);
|
|
28
|
+
registerRestart(program);
|
|
29
|
+
registerStatus(program);
|
|
30
|
+
registerLogs(program);
|
|
31
|
+
registerWallet(program);
|
|
32
|
+
registerConfig(program);
|
|
33
|
+
registerInfo(program);
|
|
34
|
+
// ── Phase 2: Monitoring & Self-Healing ──
|
|
35
|
+
const { register: registerDaemon } = await import("./interface/commands/daemon.js");
|
|
36
|
+
const { register: registerDoctor } = await import("./interface/commands/doctor.js");
|
|
37
|
+
const { register: registerHealth } = await import("./interface/commands/health.js");
|
|
38
|
+
const { register: registerUpdate } = await import("./interface/commands/update.js");
|
|
39
|
+
registerDaemon(program);
|
|
40
|
+
registerDoctor(program);
|
|
41
|
+
registerHealth(program);
|
|
42
|
+
registerUpdate(program);
|
|
43
|
+
// ── Phase 3: AI & Alerting ──
|
|
44
|
+
const { register: registerAsk } = await import("./interface/commands/ask.js");
|
|
45
|
+
const { register: registerWebhook } = await import("./interface/commands/webhook.js");
|
|
46
|
+
registerAsk(program);
|
|
47
|
+
registerWebhook(program);
|
|
48
|
+
// ── Phase 4: Wallet Operations ──
|
|
49
|
+
const { register: registerSend } = await import("./interface/commands/send.js");
|
|
50
|
+
const { register: registerReceive } = await import("./interface/commands/receive.js");
|
|
51
|
+
const { register: registerHistory } = await import("./interface/commands/history.js");
|
|
52
|
+
registerSend(program);
|
|
53
|
+
registerReceive(program);
|
|
54
|
+
registerHistory(program);
|
|
55
|
+
// ── Phase 5: Network & Earnings ──
|
|
56
|
+
const { register: registerRegister } = await import("./interface/commands/register.js");
|
|
57
|
+
const { register: registerEarnings } = await import("./interface/commands/earnings.js");
|
|
58
|
+
const { register: registerWithdraw } = await import("./interface/commands/withdraw.js");
|
|
59
|
+
registerRegister(program);
|
|
60
|
+
registerEarnings(program);
|
|
61
|
+
registerWithdraw(program);
|
|
62
|
+
// ── Backup & Restore ──
|
|
63
|
+
const { register: registerBackup } = await import("./interface/commands/backup.js");
|
|
64
|
+
registerBackup(program);
|
|
65
|
+
// ── Phase 6: Service Management ──
|
|
66
|
+
const { register: registerService } = await import("./interface/commands/service.js");
|
|
67
|
+
registerService(program);
|
|
68
|
+
}
|
|
69
|
+
async function main() {
|
|
70
|
+
// Node.js version guard — must be >= 18
|
|
71
|
+
const nodeMajor = parseInt(process.versions.node.split(".")[0], 10);
|
|
72
|
+
if (nodeMajor < 18) {
|
|
73
|
+
console.error(`BlockClaw requires Node.js 18 or later. You have Node.js ${process.versions.node}. Please upgrade at https://nodejs.org`);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
await registerCommands();
|
|
77
|
+
// If no subcommand provided...
|
|
78
|
+
if (process.argv.length <= 2) {
|
|
79
|
+
// First run? Launch setup wizard automatically
|
|
80
|
+
const { isFirstRun } = await import("./interface/commands/setup.js");
|
|
81
|
+
if (isFirstRun()) {
|
|
82
|
+
process.argv = ["node", "blockclaw", "setup"];
|
|
83
|
+
await program.parseAsync(process.argv);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// Otherwise show interactive menu
|
|
87
|
+
const { showMenu } = await import("./interface/commands/menu.js");
|
|
88
|
+
await showMenu(program);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
program.parse(process.argv);
|
|
92
|
+
}
|
|
93
|
+
main().catch((err) => {
|
|
94
|
+
console.error(pc.red(`Fatal: ${err.message}`));
|
|
95
|
+
process.exit(1);
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../../src/interface/commands/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiC/C"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import pc from "picocolors";
|
|
2
|
+
import { AgentClient } from "../../agent/client.js";
|
|
3
|
+
import { readBlockclawConfig } from "../../agent/config.js";
|
|
4
|
+
import { Brain } from "../../ai/brain.js";
|
|
5
|
+
import { Memory } from "../../core/memory.js";
|
|
6
|
+
import { logger } from "../../utils/logger.js";
|
|
7
|
+
export function register(program) {
|
|
8
|
+
program
|
|
9
|
+
.command("ask")
|
|
10
|
+
.description("Ask BlockClaw a question about your node")
|
|
11
|
+
.argument("<question...>", "Your question in natural language")
|
|
12
|
+
.action(async (words) => {
|
|
13
|
+
try {
|
|
14
|
+
const question = words.join(" ");
|
|
15
|
+
const config = readBlockclawConfig();
|
|
16
|
+
const client = new AgentClient(`http://localhost:${config.api_port ?? 8080}`);
|
|
17
|
+
const memory = new Memory();
|
|
18
|
+
const brain = new Brain(client, memory);
|
|
19
|
+
const provider = brain.getProvider();
|
|
20
|
+
if (provider !== "rules") {
|
|
21
|
+
logger.debug(`Using AI provider: ${provider}`);
|
|
22
|
+
}
|
|
23
|
+
const response = await brain.ask(question);
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(` ${pc.cyan(pc.bold("BlockClaw"))} ${pc.dim(`(${provider})`)}`);
|
|
26
|
+
console.log();
|
|
27
|
+
// Indent each line of the response
|
|
28
|
+
for (const line of response.split("\n")) {
|
|
29
|
+
console.log(` ${line}`);
|
|
30
|
+
}
|
|
31
|
+
console.log();
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
logger.error(`Failed: ${err.message}`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../../src/interface/commands/ask.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,eAAe,EAAE,mCAAmC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,oBAAoB,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAExC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE3C,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,mCAAmC;YACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,WAAY,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../../src/interface/commands/backup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6qBpC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiC/C"}
|