hyperclaw 5.3.1 → 5.3.3
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 +2 -0
- package/dist/banner-B8OcbGCR.js +143 -0
- package/dist/banner-BIOxqoND.js +7 -0
- package/dist/banner-BT9llPVP.js +7 -0
- package/dist/banner-DNSYi9N-.js +143 -0
- package/dist/chat-CKLXvJjd.js +545 -0
- package/dist/chat-CvZyAfqV.js +545 -0
- package/dist/daemon-Bi0rcsh5.js +421 -0
- package/dist/daemon-DL5zfvZd.js +7 -0
- package/dist/daemon-DkK4j69t.js +421 -0
- package/dist/daemon-DnWIgRUn.js +7 -0
- package/dist/engine-BZ44Vuhh.js +7 -0
- package/dist/engine-C1osvhmq.js +327 -0
- package/dist/engine-EA8vevRJ.js +327 -0
- package/dist/engine-SjHViH0c.js +7 -0
- package/dist/hyperclawbot-CyIGak-G.js +516 -0
- package/dist/hyperclawbot-DC3jGsoA.js +516 -0
- package/dist/mcp-loader-BBlqPFQl.js +93 -0
- package/dist/mcp-loader-DyklUhL2.js +93 -0
- package/dist/onboard-BriaGw6G.js +3812 -0
- package/dist/onboard-Bu3xDVur.js +14 -0
- package/dist/onboard-DRgSPOuY.js +3812 -0
- package/dist/onboard-qPUG8PBU.js +14 -0
- package/dist/orchestrator-BURpEF0U.js +6 -0
- package/dist/orchestrator-C0_UaVsn.js +6 -0
- package/dist/orchestrator-CnEDItE1.js +189 -0
- package/dist/orchestrator-CqXGMcxd.js +189 -0
- package/dist/osint-BC5eNzVi.js +283 -0
- package/dist/osint-BiZZ_d-g.js +283 -0
- package/dist/osint-chat-DaRWDl3X.js +789 -0
- package/dist/osint-chat-myilxKVw.js +789 -0
- package/dist/run-main.js +128 -45
- package/dist/server-B5wYaa-U.js +4 -0
- package/dist/server-DBXhcGiq.js +4 -0
- package/dist/server-O4Zv8s74.js +1366 -0
- package/dist/server-viuRgDlF.js +1365 -0
- package/dist/skill-runtime-B7U9JxNS.js +5 -0
- package/dist/skill-runtime-DXKqnJos.js +104 -0
- package/dist/skill-runtime-IFk6whV0.js +104 -0
- package/dist/skill-runtime-vylCVHmD.js +5 -0
- package/dist/src-BA04v4CG.js +458 -0
- package/dist/src-BWpeRe8J.js +63 -0
- package/dist/src-Czb6-Nkc.js +458 -0
- package/dist/src-DSZTfNdO.js +63 -0
- package/dist/sub-agent-tools-Dzh0nVzy.js +39 -0
- package/dist/sub-agent-tools-zyfsZ8k0.js +39 -0
- package/package.json +1 -1
- package/static/chat.html +581 -163
package/dist/run-main.js
CHANGED
|
@@ -3,13 +3,13 @@ const require_paths = require('./paths-AIyBxIzm.js');
|
|
|
3
3
|
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
4
|
require('./env-resolve-CHxjGo8u.js');
|
|
5
5
|
const require_config = require('./config-DGAAJ49A.js');
|
|
6
|
-
require('./server-
|
|
7
|
-
const require_daemon = require('./daemon-
|
|
6
|
+
require('./server-O4Zv8s74.js');
|
|
7
|
+
const require_daemon = require('./daemon-Bi0rcsh5.js');
|
|
8
8
|
const require_gateway = require('./gateway-CzI8dnlS.js');
|
|
9
9
|
require('./providers-DP8T0QCR.js');
|
|
10
|
-
const require_onboard = require('./onboard-
|
|
10
|
+
const require_onboard = require('./onboard-DRgSPOuY.js');
|
|
11
11
|
require('./theme-CLXvI6Hr.js');
|
|
12
|
-
const require_banner = require('./banner-
|
|
12
|
+
const require_banner = require('./banner-DNSYi9N-.js');
|
|
13
13
|
const require_hub = require('./hub-Bb_dYECE.js');
|
|
14
14
|
const require_update_check = require('./update-check-CApy4DTc.js');
|
|
15
15
|
const require_manager = require('./manager-DYfzqckn.js');
|
|
@@ -2539,7 +2539,34 @@ function sanitizeForLog(value) {
|
|
|
2539
2539
|
return String(value ?? "").replace(/[\r\n\t]+/g, " ").replace(/[^\x20-\x7e]+/g, "?").slice(0, 200);
|
|
2540
2540
|
}
|
|
2541
2541
|
const program = new commander.Command();
|
|
2542
|
-
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.3.
|
|
2542
|
+
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.3.3").option("--profile <name>", "Use an isolated gateway profile. Auto-scopes HYPERCLAW_STATE_DIR and HYPERCLAW_CONFIG_PATH. Required for multi-gateway setups (rescue bot, staging, etc.). Example: hyperclaw --profile rescue gateway --port 19001").addHelpText("after", `
|
|
2543
|
+
Full commands reference: READMECOMMAND.md (all commands and options)
|
|
2544
|
+
|
|
2545
|
+
Main command groups:
|
|
2546
|
+
✓ init, onboard, quickstart, setup
|
|
2547
|
+
✓ gateway status|start|stop|restart, daemon start|stop|restart|status|logs
|
|
2548
|
+
✓ web — 🌐 React Web UI (auto npm install + dev server)
|
|
2549
|
+
✓ chat — 💬 terminal chat
|
|
2550
|
+
✓ agent -m "message"
|
|
2551
|
+
✓ channels list|add|remove|login|status
|
|
2552
|
+
✓ hooks list|enable|disable|info
|
|
2553
|
+
✓ pairing list|approve, devices list|pair|approve|reject|unpair
|
|
2554
|
+
✓ hub, skill search|list|install
|
|
2555
|
+
✓ memory show|add-rule|add-fact|search|clear|save
|
|
2556
|
+
✓ config show|set-key|schema, secrets audit|set|apply|reload
|
|
2557
|
+
✓ doctor [--fix], health, security audit
|
|
2558
|
+
✓ status, dashboard
|
|
2559
|
+
✓ threads list|terminate, canvas show|add|clear|export
|
|
2560
|
+
✓ mcp list|add|remove|probe, node list|add|probe|remove
|
|
2561
|
+
✓ cron list|add|remove, webhooks list|remove|toggle, logs
|
|
2562
|
+
✓ voice, theme list|set|preview, workspace init|show
|
|
2563
|
+
✓ pc status|enable|disable|log|run
|
|
2564
|
+
✓ bot status|setup|start|stop
|
|
2565
|
+
✓ auth add|remove|oauth|setup-token
|
|
2566
|
+
✓ osint [workflow], deploy, update, message send
|
|
2567
|
+
|
|
2568
|
+
Examples: hyperclaw onboard | hyperclaw chat | hyperclaw gateway status
|
|
2569
|
+
Run "hyperclaw" with no args for quick actions, or see READMECOMMAND.md for full list.`).hook("preAction", (thisCommand) => {
|
|
2543
2570
|
const profile = thisCommand.opts().profile;
|
|
2544
2571
|
if (profile) {
|
|
2545
2572
|
const os$2 = require("os");
|
|
@@ -2684,7 +2711,7 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2684
2711
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2685
2712
|
const toolsCfg = cfg?.tools ?? {};
|
|
2686
2713
|
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-QXF3MMxu.js"));
|
|
2687
|
-
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-
|
|
2714
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
2688
2715
|
const allTools = [
|
|
2689
2716
|
...getBuiltinTools(),
|
|
2690
2717
|
...getSessionsTools(() => null),
|
|
@@ -2937,6 +2964,61 @@ program.command("update").description("Update HyperClaw").option("-c, --channel
|
|
|
2937
2964
|
await performUpdate(effective.channel, installKind);
|
|
2938
2965
|
process.exit(0);
|
|
2939
2966
|
});
|
|
2967
|
+
program.command("web").description("Launch React Web UI — auto npm install and npm run dev").option("--skip-install", "Skip npm install (use if deps already installed)").option("--port <port>", "Vite dev server port", "5173").action(async (opts) => {
|
|
2968
|
+
const path$5 = await import("path");
|
|
2969
|
+
const fs$7 = await import("fs-extra");
|
|
2970
|
+
const { spawn: spawn$1 } = await import("child_process");
|
|
2971
|
+
async function findWebDir() {
|
|
2972
|
+
const candidates = [];
|
|
2973
|
+
if (process.env.HYPERCLAW_ROOT) candidates.push(path$5.join(process.env.HYPERCLAW_ROOT, "apps", "web"));
|
|
2974
|
+
candidates.push(path$5.join(process.cwd(), "apps", "web"));
|
|
2975
|
+
let dir = process.cwd();
|
|
2976
|
+
for (let i = 0; i < 6; i++) {
|
|
2977
|
+
const parent = path$5.dirname(dir);
|
|
2978
|
+
if (parent === dir) break;
|
|
2979
|
+
dir = parent;
|
|
2980
|
+
candidates.push(path$5.join(dir, "apps", "web"));
|
|
2981
|
+
}
|
|
2982
|
+
candidates.push(path$5.join(__dirname, "..", "..", "apps", "web"));
|
|
2983
|
+
candidates.push(path$5.join(__dirname, "..", "..", "..", "apps", "web"));
|
|
2984
|
+
for (const candidate of candidates) if (await fs$7.pathExists(path$5.join(candidate, "package.json"))) return candidate;
|
|
2985
|
+
return null;
|
|
2986
|
+
}
|
|
2987
|
+
const webDir = await findWebDir();
|
|
2988
|
+
if (!webDir) {
|
|
2989
|
+
console.log(chalk.default.gray("\n React Web UI not found. Set HYPERCLAW_ROOT to your repo path or run from the repo directory.\n"));
|
|
2990
|
+
console.log(chalk.default.gray(" Example: HYPERCLAW_ROOT=/path/to/hyperclaw hyperclaw web\n"));
|
|
2991
|
+
process.exit(1);
|
|
2992
|
+
}
|
|
2993
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🦅 HyperClaw Web UI\n"));
|
|
2994
|
+
if (!opts.skipInstall) {
|
|
2995
|
+
console.log(chalk.default.gray(" Installing dependencies...\n"));
|
|
2996
|
+
await new Promise((resolve, reject) => {
|
|
2997
|
+
const child$1 = spawn$1("npm", ["install"], {
|
|
2998
|
+
cwd: webDir,
|
|
2999
|
+
stdio: "inherit",
|
|
3000
|
+
shell: true
|
|
3001
|
+
});
|
|
3002
|
+
child$1.on("error", reject);
|
|
3003
|
+
child$1.on("exit", (code) => code === 0 ? resolve() : reject(new Error("npm install failed")));
|
|
3004
|
+
});
|
|
3005
|
+
}
|
|
3006
|
+
const port = opts.port || "5173";
|
|
3007
|
+
console.log(chalk.default.gray(` Starting dev server at http://localhost:${port}\n`));
|
|
3008
|
+
const child = spawn$1("npm", [
|
|
3009
|
+
"run",
|
|
3010
|
+
"dev",
|
|
3011
|
+
"--",
|
|
3012
|
+
"--port",
|
|
3013
|
+
port
|
|
3014
|
+
], {
|
|
3015
|
+
cwd: webDir,
|
|
3016
|
+
stdio: "inherit",
|
|
3017
|
+
shell: true
|
|
3018
|
+
});
|
|
3019
|
+
child.on("error", () => {});
|
|
3020
|
+
child.on("exit", (code) => process.exit(code ?? 0));
|
|
3021
|
+
});
|
|
2940
3022
|
program.command("doctor").description("Health check — surfaces misconfigs, risky DM policies, and repairs").option("--fix", "Auto-repair fixable issues").option("--repair", "Apply recommended repairs (same as --fix)").option("--force", "Apply aggressive repairs (use with --repair)").option("-y, --yes", "Accept defaults without prompting").option("--non-interactive", "Skip prompts; only run safe migrations").option("--deep", "Scan system services for extra gateway installs").action(async (opts) => {
|
|
2941
3023
|
await require_doctor.runDoctor(opts.fix || opts.repair, {
|
|
2942
3024
|
fix: opts.fix,
|
|
@@ -3085,7 +3167,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
3085
3167
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
3086
3168
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
|
|
3087
3169
|
const schema = {
|
|
3088
|
-
version: "string (e.g. \"5.3.
|
|
3170
|
+
version: "string (e.g. \"5.3.3\")",
|
|
3089
3171
|
workspaceName: "string",
|
|
3090
3172
|
provider: {
|
|
3091
3173
|
providerId: "string",
|
|
@@ -3237,10 +3319,10 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3237
3319
|
console.log(t.bold("\n ─── Deep status ───\n"));
|
|
3238
3320
|
try {
|
|
3239
3321
|
const cfg = await fs$7.readJson(configPath);
|
|
3240
|
-
console.log(t.muted(" Config: ") + (cfg ? t.success("loaded") : t.error("missing")));
|
|
3322
|
+
console.log(t.muted(" Config: ") + (cfg ? t.success("✓ loaded") : t.error("✗ missing")));
|
|
3241
3323
|
console.log(t.muted(" Channels: ") + JSON.stringify(cfg?.gateway?.enabledChannels || cfg?.channels || []));
|
|
3242
3324
|
} catch {
|
|
3243
|
-
console.log(t.muted(" Config: ") + t.error("unreadable"));
|
|
3325
|
+
console.log(t.muted(" Config: ") + t.error("✗ unreadable"));
|
|
3244
3326
|
}
|
|
3245
3327
|
if (opts.deep) {
|
|
3246
3328
|
const http$2 = await import("http");
|
|
@@ -3264,20 +3346,20 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3264
3346
|
res.on("end", () => {
|
|
3265
3347
|
try {
|
|
3266
3348
|
const j = JSON.parse(d);
|
|
3267
|
-
console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3349
|
+
console.log(t.muted(" Gateway: ") + t.success("✓ reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3268
3350
|
} catch {
|
|
3269
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
|
|
3351
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable or invalid response"));
|
|
3270
3352
|
}
|
|
3271
3353
|
resolve();
|
|
3272
3354
|
});
|
|
3273
3355
|
});
|
|
3274
3356
|
req.on("error", () => {
|
|
3275
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable"));
|
|
3357
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable"));
|
|
3276
3358
|
resolve();
|
|
3277
3359
|
});
|
|
3278
3360
|
req.on("timeout", () => {
|
|
3279
3361
|
req.destroy();
|
|
3280
|
-
console.log(t.muted(" Gateway: ") + t.error("timeout"));
|
|
3362
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ timeout"));
|
|
3281
3363
|
resolve();
|
|
3282
3364
|
});
|
|
3283
3365
|
req.end();
|
|
@@ -3289,20 +3371,20 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3289
3371
|
res.on("end", () => {
|
|
3290
3372
|
try {
|
|
3291
3373
|
const j = JSON.parse(d);
|
|
3292
|
-
console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3374
|
+
console.log(t.muted(" Gateway: ") + t.success("✓ reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3293
3375
|
} catch {
|
|
3294
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
|
|
3376
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable or invalid response"));
|
|
3295
3377
|
}
|
|
3296
3378
|
resolve();
|
|
3297
3379
|
});
|
|
3298
3380
|
});
|
|
3299
3381
|
req.on("error", () => {
|
|
3300
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable"));
|
|
3382
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable"));
|
|
3301
3383
|
resolve();
|
|
3302
3384
|
});
|
|
3303
3385
|
req.on("timeout", () => {
|
|
3304
3386
|
req.destroy();
|
|
3305
|
-
console.log(t.muted(" Gateway: ") + t.error("timeout"));
|
|
3387
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ timeout"));
|
|
3306
3388
|
resolve();
|
|
3307
3389
|
});
|
|
3308
3390
|
req.end();
|
|
@@ -3405,20 +3487,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3405
3487
|
process.exit(0);
|
|
3406
3488
|
});
|
|
3407
3489
|
program.command("osint").description("OSINT / Ethical Hacking mode — configure HyperClaw for security research").argument("[workflow]", "Workflow preset: recon | bugbounty | pentest | footprint | custom | chat").option("--show", "Show current OSINT profile").option("--reset", "Clear OSINT profile and disable OSINT mode").option("--model <model>", "Override model for OSINT chat").action(async (workflow, opts) => {
|
|
3408
|
-
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-
|
|
3490
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-BiZZ_d-g.js"));
|
|
3409
3491
|
if (opts.show || opts.reset) await osintSetup({
|
|
3410
3492
|
show: opts.show,
|
|
3411
3493
|
reset: opts.reset
|
|
3412
3494
|
});
|
|
3413
3495
|
else if (workflow === "chat") {
|
|
3414
|
-
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-
|
|
3496
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-DaRWDl3X.js"));
|
|
3415
3497
|
await runOsintChat({ model: opts.model });
|
|
3416
3498
|
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3417
3499
|
else await osintQuickStart();
|
|
3418
3500
|
process.exit(0);
|
|
3419
3501
|
});
|
|
3420
3502
|
program.command("chat").description("Interactive terminal chat with the agent").option("--session <id>", "Resume a named session").option("--model <model>", "Override model").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--workspace <dir>", "Override workspace directory").option("--daemon", "Use daemon theme (red borders & prompt)").action(async (opts) => {
|
|
3421
|
-
const { runChat } = await Promise.resolve().then(() => require("./chat-
|
|
3503
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-CKLXvJjd.js"));
|
|
3422
3504
|
const cfg = await new require_manager.ConfigManager().load().catch(() => null);
|
|
3423
3505
|
const port = cfg?.gateway?.port ?? 18789;
|
|
3424
3506
|
const gm = new GatewayManager$1();
|
|
@@ -3433,7 +3515,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3433
3515
|
});
|
|
3434
3516
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3435
3517
|
agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--model <model>", "Override model").option("--session <id>", "Session/thread ID").option("--multi-step", "Decompose into steps and run each (sequential)").option("--parallel", "Run sub-agents in parallel for independent subtasks").option("--verbose", "Show thinking blocks and request details").option("--workspace <dir>", "Override workspace directory").action(async (opts) => {
|
|
3436
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3518
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
3437
3519
|
await runAgent({
|
|
3438
3520
|
message: opts.message,
|
|
3439
3521
|
thinking: opts.thinking,
|
|
@@ -3449,7 +3531,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3449
3531
|
});
|
|
3450
3532
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3451
3533
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3452
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3534
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
3453
3535
|
const mgr = new ACPThreadManager();
|
|
3454
3536
|
const threads = await mgr.list({
|
|
3455
3537
|
channelId: opts.channel,
|
|
@@ -3459,7 +3541,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3459
3541
|
process.exit(0);
|
|
3460
3542
|
});
|
|
3461
3543
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3462
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3544
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
3463
3545
|
await new ACPThreadManager().terminate(id);
|
|
3464
3546
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3465
3547
|
process.exit(0);
|
|
@@ -3707,7 +3789,7 @@ logsCmd.action(async (opts) => {
|
|
|
3707
3789
|
}
|
|
3708
3790
|
});
|
|
3709
3791
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
3710
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
3792
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-DBXhcGiq.js"));
|
|
3711
3793
|
await startGateway();
|
|
3712
3794
|
process.on("SIGINT", () => process.exit(0));
|
|
3713
3795
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3960,13 +4042,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
3960
4042
|
});
|
|
3961
4043
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
3962
4044
|
botCmd.command("status").action(async () => {
|
|
3963
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4045
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
|
|
3964
4046
|
await showBotStatus();
|
|
3965
4047
|
process.exit(0);
|
|
3966
4048
|
});
|
|
3967
4049
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
3968
4050
|
const inquirer$2 = require("inquirer");
|
|
3969
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4051
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
|
|
3970
4052
|
const chalk$11 = require("chalk");
|
|
3971
4053
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
3972
4054
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4028,14 +4110,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4028
4110
|
cwd: process.cwd()
|
|
4029
4111
|
});
|
|
4030
4112
|
child.unref();
|
|
4031
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4113
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
|
|
4032
4114
|
await writeBotPid(child.pid);
|
|
4033
4115
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4034
4116
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4035
4117
|
process.exit(0);
|
|
4036
4118
|
return;
|
|
4037
4119
|
}
|
|
4038
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4120
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
|
|
4039
4121
|
const cfg = await loadBotConfig();
|
|
4040
4122
|
if (!cfg) {
|
|
4041
4123
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4062,41 +4144,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4062
4144
|
});
|
|
4063
4145
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4064
4146
|
const chalk$11 = require("chalk");
|
|
4065
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4147
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
|
|
4066
4148
|
const stopped = await stopBotProcess();
|
|
4067
4149
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4068
4150
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
4069
4151
|
process.exit(stopped ? 0 : 1);
|
|
4070
4152
|
});
|
|
4071
4153
|
memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
|
|
4072
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
4154
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4073
4155
|
await searchMemory(query);
|
|
4074
4156
|
process.exit(0);
|
|
4075
4157
|
});
|
|
4076
4158
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4077
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4159
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4078
4160
|
await showMemory();
|
|
4079
4161
|
process.exit(0);
|
|
4080
4162
|
});
|
|
4081
4163
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4082
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4164
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4083
4165
|
await clearMemory();
|
|
4084
4166
|
process.exit(0);
|
|
4085
4167
|
});
|
|
4086
4168
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4087
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4169
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4088
4170
|
await saveMemoryDirect(text);
|
|
4089
4171
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4090
4172
|
process.exit(0);
|
|
4091
4173
|
});
|
|
4092
4174
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4093
4175
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4094
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4176
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4095
4177
|
await showPCAccessStatus();
|
|
4096
4178
|
process.exit(0);
|
|
4097
4179
|
});
|
|
4098
4180
|
pcCmd.command("enable").description("Enable PC access for the AI").option("--level <level>", "Access level: read-only | sandboxed | full", "full").option("--paths <paths>", "Comma-separated allowed paths (sandboxed mode)").action(async (opts) => {
|
|
4099
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4181
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4100
4182
|
const level = opts.level;
|
|
4101
4183
|
const allowed = [
|
|
4102
4184
|
"read-only",
|
|
@@ -4123,7 +4205,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4123
4205
|
process.exit(0);
|
|
4124
4206
|
});
|
|
4125
4207
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4126
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4208
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4127
4209
|
await savePCAccessConfig({ enabled: false });
|
|
4128
4210
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4129
4211
|
process.exit(0);
|
|
@@ -4148,7 +4230,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4148
4230
|
process.exit(0);
|
|
4149
4231
|
});
|
|
4150
4232
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
4151
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
4233
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
|
|
4152
4234
|
const cfg = await loadPCAccessConfig();
|
|
4153
4235
|
if (!cfg.enabled) {
|
|
4154
4236
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4197,16 +4279,17 @@ if (process.argv.length === 2) (async () => {
|
|
|
4197
4279
|
const t = getTheme(false);
|
|
4198
4280
|
const chalk$11 = require("chalk");
|
|
4199
4281
|
console.log(t.bold(" Quick actions:\n"));
|
|
4200
|
-
console.log(` ${t.c("hyperclaw
|
|
4201
|
-
console.log(` ${t.c("hyperclaw
|
|
4202
|
-
console.log(` ${t.c("hyperclaw
|
|
4203
|
-
console.log(` ${t.c("hyperclaw daemon
|
|
4204
|
-
console.log(` ${t.c("hyperclaw status")}
|
|
4205
|
-
console.log(` ${t.c("hyperclaw
|
|
4206
|
-
console.log(` ${t.c("hyperclaw
|
|
4282
|
+
console.log(` ✓ ${t.c("hyperclaw web")} — 🌐 React Web UI (auto install + start)`);
|
|
4283
|
+
console.log(` ✓ ${t.c("hyperclaw chat")} — 💬 terminal chat`);
|
|
4284
|
+
console.log(` ✓ ${t.c("hyperclaw onboard")} — ⚙️ re-run setup wizard`);
|
|
4285
|
+
console.log(` ✓ ${t.c("hyperclaw daemon start")} — 🚀 start background service`);
|
|
4286
|
+
console.log(` ✓ ${t.c("hyperclaw daemon status")} — 📊 service status`);
|
|
4287
|
+
console.log(` ✓ ${t.c("hyperclaw status")} — 📋 system overview`);
|
|
4288
|
+
console.log(` ✓ ${t.c("hyperclaw doctor")} — 🔧 health check & fix issues`);
|
|
4289
|
+
console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
|
|
4207
4290
|
} else {
|
|
4208
4291
|
await new require_banner.Banner().showNeonBanner(false);
|
|
4209
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4292
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-qPUG8PBU.js"));
|
|
4210
4293
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4211
4294
|
}
|
|
4212
4295
|
await runUpdateCheck();
|