hyperclaw 5.3.4 → 5.3.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/banner-3jmKGq6t.js +143 -0
  2. package/dist/banner-BhOid_rp.js +7 -0
  3. package/dist/banner-C5D09Afq.js +7 -0
  4. package/dist/banner-DG3v43xA.js +143 -0
  5. package/dist/chat-D-i8bqTf.js +523 -0
  6. package/dist/daemon-BXfbyPBf.js +7 -0
  7. package/dist/daemon-C4j0wqxz.js +421 -0
  8. package/dist/daemon-CUNaq2Ls.js +421 -0
  9. package/dist/daemon-IU5UIMJo.js +7 -0
  10. package/dist/engine-2Tc-z0e4.js +7 -0
  11. package/dist/engine-DQ3hT5JD.js +327 -0
  12. package/dist/hyperclawbot-DcQt62PL.js +516 -0
  13. package/dist/mcp-loader-CPlsbcja.js +93 -0
  14. package/dist/onboard-BF29mNbC.js +14 -0
  15. package/dist/onboard-C7vJegQc.js +3812 -0
  16. package/dist/onboard-CJKxKPBH.js +3812 -0
  17. package/dist/onboard-CytL65jh.js +14 -0
  18. package/dist/orchestrator-DcEHTInR.js +6 -0
  19. package/dist/orchestrator-PQY07fH7.js +189 -0
  20. package/dist/osint-DsUwGzgP.js +283 -0
  21. package/dist/osint-DtRd_A_O.js +283 -0
  22. package/dist/osint-chat-CfexqWop.js +789 -0
  23. package/dist/osint-chat-DdclrVa6.js +789 -0
  24. package/dist/run-main.js +103 -44
  25. package/dist/server-C9f6qtEW.js +1366 -0
  26. package/dist/server-CdlilrcS.js +4 -0
  27. package/dist/server-DfrmKeE6.js +1356 -0
  28. package/dist/server-rHap51o6.js +4 -0
  29. package/dist/skill-runtime-249xckq3.js +5 -0
  30. package/dist/skill-runtime-Bv59FUVu.js +104 -0
  31. package/dist/src-ClYgvXAj.js +63 -0
  32. package/dist/src-DiYkDVnn.js +458 -0
  33. package/dist/sub-agent-tools-8-Imp1B5.js +39 -0
  34. package/package.json +1 -1
  35. package/static/chat.html +764 -764
  36. package/static/web/assets/{index-BhCDgT5S.js → index-BeAuHLb2.js} +2 -2
  37. package/static/web/index.html +1 -1
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-jkSNOitC.js');
7
- const require_daemon = require('./daemon-WOoAWS-0.js');
6
+ require('./server-DfrmKeE6.js');
7
+ const require_daemon = require('./daemon-C4j0wqxz.js');
8
8
  const require_gateway = require('./gateway-CzI8dnlS.js');
9
9
  require('./providers-DP8T0QCR.js');
10
- const require_onboard = require('./onboard-x4I788gj.js');
10
+ const require_onboard = require('./onboard-C7vJegQc.js');
11
11
  require('./theme-CLXvI6Hr.js');
12
- const require_banner = require('./banner-CP4LeLsu.js');
12
+ const require_banner = require('./banner-DG3v43xA.js');
13
13
  const require_hub = require('./hub-Bb_dYECE.js');
14
14
  const require_update_check = require('./update-check-DlUFL81n.js');
15
15
  const require_manager = require('./manager-DYfzqckn.js');
@@ -115,7 +115,7 @@ var Dashboard = class {
115
115
  };
116
116
  const logRow = (content) => console.log(row(content));
117
117
  console.log(c("├" + line + "┤"));
118
- console.log(c("│") + chalk.default.bold.hex("#06b6d4")(`${"🦅 HYPERCLAW v5.2.1 — GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c("│"));
118
+ console.log(c("│") + chalk.default.bold.hex("#06b6d4")(`${"🦅 HYPERCLAW v5.3.45 — GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c("│"));
119
119
  console.log(c("├" + line + "┤"));
120
120
  logRow(`${statusDot} Gateway ${statusText} ${chalk.default.gray("│")} ws://localhost:${port} ${chalk.default.gray("│")} Agent: ${c(agent)}`);
121
121
  logRow(`${c("●")} Model ${chalk.default.gray(model.slice(0, 30))} ${chalk.default.gray("│")} User: ${c(user)}`);
@@ -2539,7 +2539,7 @@ 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.4").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", `
2542
+ program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.3.45").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
2543
  Full commands reference: READMECOMMAND.md (all commands and options)
2544
2544
 
2545
2545
  Main command groups:
@@ -2711,7 +2711,7 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
2711
2711
  const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
2712
2712
  const toolsCfg = cfg?.tools ?? {};
2713
2713
  const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-QXF3MMxu.js"));
2714
- const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
2714
+ const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
2715
2715
  const allTools = [
2716
2716
  ...getBuiltinTools(),
2717
2717
  ...getSessionsTools(() => null),
@@ -2933,7 +2933,7 @@ skillCmd.command("install <id>").description("Install skill from ClawHub (or bun
2933
2933
  program.command("menu-bar").description("Launch macOS menu bar companion (Electron tray app)").action(async () => {
2934
2934
  const path$5 = await import("path");
2935
2935
  const { spawn: spawn$1 } = await import("child_process");
2936
- const fs$7 = await import("fs-extra");
2936
+ const fs$7 = (await import("fs-extra")).default;
2937
2937
  const root = path$5.join(process.cwd(), "apps", "macos");
2938
2938
  const altRoot = path$5.join(__dirname, "..", "..", "apps", "macos");
2939
2939
  const macosDir = await fs$7.pathExists(root) ? root : await fs$7.pathExists(altRoot) ? altRoot : null;
@@ -2966,7 +2966,7 @@ program.command("update").description("Update HyperClaw").option("-c, --channel
2966
2966
  });
2967
2967
  program.command("web").description("Launch React Web UI").option("--skip-install", "Skip npm install (use if deps already installed)").option("--port <port>", "Port to serve on", "3000").action(async (opts) => {
2968
2968
  const path$5 = await import("path");
2969
- const fs$7 = await import("fs-extra");
2969
+ const fs$7 = (await import("fs-extra")).default;
2970
2970
  const { spawn: spawn$1 } = await import("child_process");
2971
2971
  const http$2 = await import("http");
2972
2972
  const net$3 = await import("net");
@@ -3063,13 +3063,38 @@ program.command("web").description("Launch React Web UI").option("--skip-install
3063
3063
  server.listen(PORT, () => {
3064
3064
  console.log(chalk.default.hex("#06b6d4")(` Open: http://localhost:${PORT}\n`));
3065
3065
  });
3066
- process.on("SIGINT", () => {
3067
- server.close();
3068
- process.exit(0);
3069
- });
3070
- process.on("SIGTERM", () => {
3071
- server.close();
3072
- process.exit(0);
3066
+ await new Promise((resolve, reject) => {
3067
+ let settled = false;
3068
+ let closing = false;
3069
+ const cleanup = () => {
3070
+ server.off("close", onClose);
3071
+ server.off("error", onError);
3072
+ process.off("SIGINT", onSignal);
3073
+ process.off("SIGTERM", onSignal);
3074
+ };
3075
+ const finish = () => {
3076
+ if (settled) return;
3077
+ settled = true;
3078
+ cleanup();
3079
+ resolve();
3080
+ };
3081
+ const fail = (err) => {
3082
+ if (settled) return;
3083
+ settled = true;
3084
+ cleanup();
3085
+ reject(err);
3086
+ };
3087
+ const onClose = () => finish();
3088
+ const onError = (err) => fail(err);
3089
+ const onSignal = () => {
3090
+ if (closing) return;
3091
+ closing = true;
3092
+ server.close(() => finish());
3093
+ };
3094
+ server.on("close", onClose);
3095
+ server.on("error", onError);
3096
+ process.on("SIGINT", onSignal);
3097
+ process.on("SIGTERM", onSignal);
3073
3098
  });
3074
3099
  return;
3075
3100
  }
@@ -3105,8 +3130,42 @@ program.command("web").description("Launch React Web UI").option("--skip-install
3105
3130
  stdio: "inherit",
3106
3131
  shell: true
3107
3132
  });
3108
- child.on("error", () => {});
3109
- child.on("exit", (code) => process.exit(code ?? 0));
3133
+ await new Promise((resolve, reject) => {
3134
+ let settled = false;
3135
+ const cleanup = () => {
3136
+ child.off("error", onError);
3137
+ child.off("exit", onExit);
3138
+ process.off("SIGINT", onSignal);
3139
+ process.off("SIGTERM", onSignal);
3140
+ };
3141
+ const finish = () => {
3142
+ if (settled) return;
3143
+ settled = true;
3144
+ cleanup();
3145
+ resolve();
3146
+ };
3147
+ const fail = (err) => {
3148
+ if (settled) return;
3149
+ settled = true;
3150
+ cleanup();
3151
+ reject(err);
3152
+ };
3153
+ const onError = (err) => fail(err);
3154
+ const onExit = (code, signal) => {
3155
+ if (signal || code === 0) {
3156
+ finish();
3157
+ return;
3158
+ }
3159
+ fail(new Error(`Vite dev server exited with code ${code}`));
3160
+ };
3161
+ const onSignal = (signal) => {
3162
+ if (!child.killed) child.kill(signal);
3163
+ };
3164
+ child.on("error", onError);
3165
+ child.on("exit", onExit);
3166
+ process.on("SIGINT", onSignal);
3167
+ process.on("SIGTERM", onSignal);
3168
+ });
3110
3169
  });
3111
3170
  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) => {
3112
3171
  await require_doctor.runDoctor(opts.fix || opts.repair, {
@@ -3256,7 +3315,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
3256
3315
  cfgCmd.command("schema").description("Show configuration schema").action(() => {
3257
3316
  console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
3258
3317
  const schema = {
3259
- version: "string (e.g. \"5.3.4\")",
3318
+ version: "string (e.g. \"5.3.45\")",
3260
3319
  workspaceName: "string",
3261
3320
  provider: {
3262
3321
  providerId: "string",
@@ -3401,7 +3460,7 @@ program.command("dashboard").description("Launch live terminal dashboard").optio
3401
3460
  program.command("status").description("System overview").option("--all", "Full local diagnosis (read-only)").option("--deep", "Also probe the running gateway").action(async (opts) => {
3402
3461
  await new require_banner.Banner().showStatus();
3403
3462
  if (opts.all || opts.deep) {
3404
- const fs$7 = await import("fs-extra");
3463
+ const fs$7 = (await import("fs-extra")).default;
3405
3464
  const { getConfigPath: getConfigPath$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
3406
3465
  const t = (await Promise.resolve().then(() => require("./theme-DdZT-Bq4.js"))).getTheme(false);
3407
3466
  const configPath = getConfigPath$1();
@@ -3576,20 +3635,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
3576
3635
  process.exit(0);
3577
3636
  });
3578
3637
  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) => {
3579
- const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-D3OoMs9I.js"));
3638
+ const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-DtRd_A_O.js"));
3580
3639
  if (opts.show || opts.reset) await osintSetup({
3581
3640
  show: opts.show,
3582
3641
  reset: opts.reset
3583
3642
  });
3584
3643
  else if (workflow === "chat") {
3585
- const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-BJfbgXwk.js"));
3644
+ const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-CfexqWop.js"));
3586
3645
  await runOsintChat({ model: opts.model });
3587
3646
  } else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
3588
3647
  else await osintQuickStart();
3589
3648
  process.exit(0);
3590
3649
  });
3591
3650
  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) => {
3592
- const { runChat } = await Promise.resolve().then(() => require("./chat-BTJoZxtU.js"));
3651
+ const { runChat } = await Promise.resolve().then(() => require("./chat-D-i8bqTf.js"));
3593
3652
  const cfg = await new require_manager.ConfigManager().load().catch(() => null);
3594
3653
  const port = cfg?.gateway?.port ?? 18789;
3595
3654
  const gm = new GatewayManager$1();
@@ -3604,7 +3663,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
3604
3663
  });
3605
3664
  const agentRunCmd = program.command("agent").description("Run agent with thinking control");
3606
3665
  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) => {
3607
- const { runAgent } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3666
+ const { runAgent } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
3608
3667
  await runAgent({
3609
3668
  message: opts.message,
3610
3669
  thinking: opts.thinking,
@@ -3620,7 +3679,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
3620
3679
  });
3621
3680
  const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
3622
3681
  threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
3623
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3682
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
3624
3683
  const mgr = new ACPThreadManager();
3625
3684
  const threads = await mgr.list({
3626
3685
  channelId: opts.channel,
@@ -3630,7 +3689,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
3630
3689
  process.exit(0);
3631
3690
  });
3632
3691
  threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
3633
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3692
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
3634
3693
  await new ACPThreadManager().terminate(id);
3635
3694
  console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
3636
3695
  process.exit(0);
@@ -3799,7 +3858,7 @@ cronCmd.command("remove <id>").action(async (id) => {
3799
3858
  program.command("nodes").description("List connected mobile nodes (iOS/Android Connect tab)").action(async () => {
3800
3859
  const chalk$11 = require("chalk");
3801
3860
  const http$2 = await import("http");
3802
- const fs$7 = await import("fs-extra");
3861
+ const fs$7 = (await import("fs-extra")).default;
3803
3862
  const { getConfigPath: getConfigPath$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
3804
3863
  let port = 18789;
3805
3864
  try {
@@ -3878,7 +3937,7 @@ logsCmd.action(async (opts) => {
3878
3937
  }
3879
3938
  });
3880
3939
  program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
3881
- const { startGateway } = await Promise.resolve().then(() => require("./server-CSu5UPl3.js"));
3940
+ const { startGateway } = await Promise.resolve().then(() => require("./server-rHap51o6.js"));
3882
3941
  await startGateway();
3883
3942
  process.on("SIGINT", () => process.exit(0));
3884
3943
  process.on("SIGTERM", () => process.exit(0));
@@ -3938,7 +3997,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
3938
3997
  const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Bmm9e1SS.js"));
3939
3998
  const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
3940
3999
  const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide--73Bq0Ey.js"));
3941
- const fs$7 = await import("fs-extra");
4000
+ const fs$7 = (await import("fs-extra")).default;
3942
4001
  const path$5 = await import("path");
3943
4002
  const guide = getApiKeyGuide(serviceId);
3944
4003
  const steps = guide?.setupSteps ?? GENERIC_API_KEY_STEPS;
@@ -3992,7 +4051,7 @@ authCmd.command("remove <service_id>").description("Remove API key for a service
3992
4051
  const chalk$11 = require("chalk");
3993
4052
  const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Bmm9e1SS.js"));
3994
4053
  const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
3995
- const fs$7 = await import("fs-extra");
4054
+ const fs$7 = (await import("fs-extra")).default;
3996
4055
  const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
3997
4056
  const creds = new CredentialsStore(getHyperClawDir$1());
3998
4057
  await creds.remove(safeId);
@@ -4131,13 +4190,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
4131
4190
  });
4132
4191
  const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
4133
4192
  botCmd.command("status").action(async () => {
4134
- const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4193
+ const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
4135
4194
  await showBotStatus();
4136
4195
  process.exit(0);
4137
4196
  });
4138
4197
  botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
4139
4198
  const inquirer$2 = require("inquirer");
4140
- const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4199
+ const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
4141
4200
  const chalk$11 = require("chalk");
4142
4201
  console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
4143
4202
  console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
@@ -4199,14 +4258,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4199
4258
  cwd: process.cwd()
4200
4259
  });
4201
4260
  child.unref();
4202
- const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4261
+ const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
4203
4262
  await writeBotPid(child.pid);
4204
4263
  console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
4205
4264
  console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
4206
4265
  process.exit(0);
4207
4266
  return;
4208
4267
  }
4209
- const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4268
+ const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
4210
4269
  const cfg = await loadBotConfig();
4211
4270
  if (!cfg) {
4212
4271
  console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
@@ -4233,41 +4292,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4233
4292
  });
4234
4293
  botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
4235
4294
  const chalk$11 = require("chalk");
4236
- const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4295
+ const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
4237
4296
  const stopped = await stopBotProcess();
4238
4297
  if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
4239
4298
  else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
4240
4299
  process.exit(stopped ? 0 : 1);
4241
4300
  });
4242
4301
  memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
4243
- const { searchMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4302
+ const { searchMemory } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4244
4303
  await searchMemory(query);
4245
4304
  process.exit(0);
4246
4305
  });
4247
4306
  memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
4248
- const { showMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4307
+ const { showMemory } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4249
4308
  await showMemory();
4250
4309
  process.exit(0);
4251
4310
  });
4252
4311
  memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
4253
- const { clearMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4312
+ const { clearMemory } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4254
4313
  await clearMemory();
4255
4314
  process.exit(0);
4256
4315
  });
4257
4316
  memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
4258
- const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4317
+ const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4259
4318
  await saveMemoryDirect(text);
4260
4319
  console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
4261
4320
  process.exit(0);
4262
4321
  });
4263
4322
  const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
4264
4323
  pcCmd.command("status").description("Show PC access status and config").action(async () => {
4265
- const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4324
+ const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4266
4325
  await showPCAccessStatus();
4267
4326
  process.exit(0);
4268
4327
  });
4269
4328
  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) => {
4270
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4329
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4271
4330
  const level = opts.level;
4272
4331
  const allowed = [
4273
4332
  "read-only",
@@ -4294,7 +4353,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
4294
4353
  process.exit(0);
4295
4354
  });
4296
4355
  pcCmd.command("disable").description("Disable PC access").action(async () => {
4297
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4356
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4298
4357
  await savePCAccessConfig({ enabled: false });
4299
4358
  console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
4300
4359
  process.exit(0);
@@ -4319,7 +4378,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
4319
4378
  process.exit(0);
4320
4379
  });
4321
4380
  pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
4322
- const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4381
+ const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
4323
4382
  const cfg = await loadPCAccessConfig();
4324
4383
  if (!cfg.enabled) {
4325
4384
  console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
@@ -4378,7 +4437,7 @@ if (process.argv.length === 2) (async () => {
4378
4437
  console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
4379
4438
  } else {
4380
4439
  await new require_banner.Banner().showNeonBanner(false);
4381
- const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BRN9NLFk.js"));
4440
+ const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BF29mNbC.js"));
4382
4441
  await new HyperClawWizard$1().run({ wizard: true });
4383
4442
  }
4384
4443
  await runUpdateCheck();