hyperclaw 5.3.2 → 5.3.4

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 (60) hide show
  1. package/dist/banner-BT9llPVP.js +7 -0
  2. package/dist/banner-CP4LeLsu.js +143 -0
  3. package/dist/banner-D14weGVJ.js +7 -0
  4. package/dist/banner-DNSYi9N-.js +143 -0
  5. package/dist/banner-mu7p6UkV.js +143 -0
  6. package/dist/banner-nRaqjrSN.js +7 -0
  7. package/dist/chat-BTJoZxtU.js +523 -0
  8. package/dist/chat-BYqxftlU.js +523 -0
  9. package/dist/chat-CKLXvJjd.js +545 -0
  10. package/dist/daemon-Bi0rcsh5.js +421 -0
  11. package/dist/daemon-BtQqCfEH.js +7 -0
  12. package/dist/daemon-DnWIgRUn.js +7 -0
  13. package/dist/daemon-WOoAWS-0.js +421 -0
  14. package/dist/engine-BZ44Vuhh.js +7 -0
  15. package/dist/engine-C1osvhmq.js +327 -0
  16. package/dist/engine-C88DJeLD.js +327 -0
  17. package/dist/engine-D9BvbJxu.js +7 -0
  18. package/dist/hyperclawbot-DC3jGsoA.js +516 -0
  19. package/dist/hyperclawbot-DC9nGl99.js +516 -0
  20. package/dist/mcp-loader-BBlqPFQl.js +93 -0
  21. package/dist/mcp-loader-Bd7MNj5-.js +93 -0
  22. package/dist/onboard-BRN9NLFk.js +14 -0
  23. package/dist/onboard-Cxjlal2t.js +14 -0
  24. package/dist/onboard-DRgSPOuY.js +3812 -0
  25. package/dist/onboard-i20xz3_O.js +3812 -0
  26. package/dist/onboard-qPUG8PBU.js +14 -0
  27. package/dist/onboard-x4I788gj.js +3812 -0
  28. package/dist/orchestrator-B9gd0u_r.js +6 -0
  29. package/dist/orchestrator-BURpEF0U.js +6 -0
  30. package/dist/orchestrator-CfswFK1w.js +189 -0
  31. package/dist/orchestrator-CnEDItE1.js +189 -0
  32. package/dist/osint-BXu9NVcF.js +283 -0
  33. package/dist/osint-BiZZ_d-g.js +283 -0
  34. package/dist/osint-D3OoMs9I.js +283 -0
  35. package/dist/osint-chat-BJfbgXwk.js +789 -0
  36. package/dist/osint-chat-CY2ODmY-.js +789 -0
  37. package/dist/osint-chat-DaRWDl3X.js +789 -0
  38. package/dist/run-main.js +186 -82
  39. package/dist/server-CSu5UPl3.js +4 -0
  40. package/dist/server-DBXhcGiq.js +4 -0
  41. package/dist/server-O4Zv8s74.js +1366 -0
  42. package/dist/server-jkSNOitC.js +1366 -0
  43. package/dist/skill-runtime-CdR3YMFp.js +5 -0
  44. package/dist/skill-runtime-CxL0PxyP.js +104 -0
  45. package/dist/skill-runtime-IFk6whV0.js +104 -0
  46. package/dist/skill-runtime-vylCVHmD.js +5 -0
  47. package/dist/src-BA04v4CG.js +458 -0
  48. package/dist/src-BWpeRe8J.js +63 -0
  49. package/dist/src-CboISwpv.js +63 -0
  50. package/dist/src-PutqGezt.js +458 -0
  51. package/dist/sub-agent-tools-DNbBE93o.js +39 -0
  52. package/dist/sub-agent-tools-Dzh0nVzy.js +39 -0
  53. package/dist/update-check-B-wd-tpa.js +7 -0
  54. package/dist/update-check-DlUFL81n.js +118 -0
  55. package/package.json +2 -2
  56. package/static/chat.html +570 -259
  57. package/static/web/assets/index-BhCDgT5S.js +75 -0
  58. package/static/web/assets/index-D2RfO0dG.css +1 -0
  59. package/static/web/icon.png +0 -0
  60. package/static/web/index.html +14 -0
package/dist/run-main.js CHANGED
@@ -3,15 +3,15 @@ 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-viuRgDlF.js');
7
- const require_daemon = require('./daemon-DkK4j69t.js');
6
+ require('./server-jkSNOitC.js');
7
+ const require_daemon = require('./daemon-WOoAWS-0.js');
8
8
  const require_gateway = require('./gateway-CzI8dnlS.js');
9
9
  require('./providers-DP8T0QCR.js');
10
- const require_onboard = require('./onboard-BriaGw6G.js');
10
+ const require_onboard = require('./onboard-x4I788gj.js');
11
11
  require('./theme-CLXvI6Hr.js');
12
- const require_banner = require('./banner-B8OcbGCR.js');
12
+ const require_banner = require('./banner-CP4LeLsu.js');
13
13
  const require_hub = require('./hub-Bb_dYECE.js');
14
- const require_update_check = require('./update-check-CApy4DTc.js');
14
+ const require_update_check = require('./update-check-DlUFL81n.js');
15
15
  const require_manager = require('./manager-DYfzqckn.js');
16
16
  const require_memory = require('./memory-BCYvdqwo.js');
17
17
  const require_loader = require('./loader-DIPs649t.js');
@@ -2539,31 +2539,31 @@ 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.2").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.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", `
2543
2543
  Full commands reference: READMECOMMAND.md (all commands and options)
2544
2544
 
2545
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
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
2567
 
2568
2568
  Examples: hyperclaw onboard | hyperclaw chat | hyperclaw gateway status
2569
2569
  Run "hyperclaw" with no args for quick actions, or see READMECOMMAND.md for full list.`).hook("preAction", (thisCommand) => {
@@ -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-DSZTfNdO.js"));
2714
+ const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
2715
2715
  const allTools = [
2716
2716
  ...getBuiltinTools(),
2717
2717
  ...getSessionsTools(() => null),
@@ -2964,38 +2964,142 @@ program.command("update").description("Update HyperClaw").option("-c, --channel
2964
2964
  await performUpdate(effective.channel, installKind);
2965
2965
  process.exit(0);
2966
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) => {
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
2969
  const fs$7 = await import("fs-extra");
2970
2970
  const { spawn: spawn$1 } = await import("child_process");
2971
- const root = path$5.join(process.cwd(), "apps", "web");
2972
- const altRoot = path$5.join(__dirname, "..", "..", "apps", "web");
2973
- const webDir = await fs$7.pathExists(root) ? root : await fs$7.pathExists(altRoot) ? altRoot : null;
2974
- if (!webDir || !await fs$7.pathExists(path$5.join(webDir, "package.json"))) {
2975
- console.log(chalk.default.gray("\n React Web UI not found. Run from HyperClaw repo root.\n"));
2971
+ const http$2 = await import("http");
2972
+ const net$3 = await import("net");
2973
+ const PORT = parseInt(opts.port || "3000", 10);
2974
+ const GW_PORT = 18789;
2975
+ async function findBuiltDir() {
2976
+ const candidates = [
2977
+ process.env.HYPERCLAW_ROOT && path$5.join(process.env.HYPERCLAW_ROOT, "static", "web"),
2978
+ path$5.join(__dirname, "..", "static", "web"),
2979
+ path$5.join(__dirname, "..", "..", "static", "web")
2980
+ ].filter(Boolean);
2981
+ for (const c of candidates) if (await fs$7.pathExists(path$5.join(c, "index.html"))) return c;
2982
+ return null;
2983
+ }
2984
+ async function findWebDir() {
2985
+ const candidates = [];
2986
+ if (process.env.HYPERCLAW_ROOT) candidates.push(path$5.join(process.env.HYPERCLAW_ROOT, "apps", "web"));
2987
+ candidates.push(path$5.join(process.cwd(), "apps", "web"));
2988
+ let dir = process.cwd();
2989
+ for (let i = 0; i < 6; i++) {
2990
+ const parent = path$5.dirname(dir);
2991
+ if (parent === dir) break;
2992
+ dir = parent;
2993
+ candidates.push(path$5.join(dir, "apps", "web"));
2994
+ }
2995
+ candidates.push(path$5.join(__dirname, "..", "..", "apps", "web"));
2996
+ candidates.push(path$5.join(__dirname, "..", "..", "..", "apps", "web"));
2997
+ for (const c of candidates) if (await fs$7.pathExists(path$5.join(c, "package.json"))) return c;
2998
+ return null;
2999
+ }
3000
+ console.log(chalk.default.bold.hex("#06b6d4")("\n HyperClaw Web UI\n"));
3001
+ const builtDir = await findBuiltDir();
3002
+ if (builtDir) {
3003
+ console.log(chalk.default.gray(` Serving at http://localhost:${PORT}\n`));
3004
+ const MIME = {
3005
+ ".html": "text/html; charset=utf-8",
3006
+ ".js": "application/javascript",
3007
+ ".css": "text/css",
3008
+ ".json": "application/json",
3009
+ ".png": "image/png",
3010
+ ".svg": "image/svg+xml",
3011
+ ".ico": "image/x-icon",
3012
+ ".woff2": "font/woff2",
3013
+ ".woff": "font/woff",
3014
+ ".ttf": "font/ttf"
3015
+ };
3016
+ const server = http$2.createServer(async (req, res) => {
3017
+ const url = (req.url || "/").split("?")[0];
3018
+ if (url.startsWith("/api/") || url === "/api") {
3019
+ const pr = http$2.request({
3020
+ hostname: "localhost",
3021
+ port: GW_PORT,
3022
+ path: req.url,
3023
+ method: req.method,
3024
+ headers: {
3025
+ ...req.headers,
3026
+ host: `localhost:${GW_PORT}`
3027
+ }
3028
+ }, (proxyRes) => {
3029
+ res.writeHead(proxyRes.statusCode || 200, proxyRes.headers);
3030
+ proxyRes.pipe(res);
3031
+ });
3032
+ pr.on("error", () => {
3033
+ res.writeHead(502);
3034
+ res.end("{\"error\":\"Gateway unreachable\"}");
3035
+ });
3036
+ req.pipe(pr);
3037
+ return;
3038
+ }
3039
+ let filePath = path$5.join(builtDir, url === "/" ? "index.html" : url);
3040
+ if (!await fs$7.pathExists(filePath)) filePath = path$5.join(builtDir, "index.html");
3041
+ try {
3042
+ const content = await fs$7.readFile(filePath);
3043
+ const ext = path$5.extname(filePath).toLowerCase();
3044
+ res.writeHead(200, { "Content-Type": MIME[ext] || "application/octet-stream" });
3045
+ res.end(content);
3046
+ } catch {
3047
+ res.writeHead(404);
3048
+ res.end("Not found");
3049
+ }
3050
+ });
3051
+ server.on("upgrade", (req, socket, head) => {
3052
+ const target = net$3.createConnection(GW_PORT, "localhost", () => {
3053
+ target.write(`${req.method} ${req.url} HTTP/1.1\r\n`);
3054
+ Object.entries(req.headers).forEach(([k, v]) => target.write(`${k}: ${v}\r\n`));
3055
+ target.write("\r\n");
3056
+ if (head?.length) target.write(head);
3057
+ });
3058
+ target.on("error", () => socket.destroy());
3059
+ socket.on("error", () => target.destroy());
3060
+ target.pipe(socket);
3061
+ socket.pipe(target);
3062
+ });
3063
+ server.listen(PORT, () => {
3064
+ console.log(chalk.default.hex("#06b6d4")(` Open: http://localhost:${PORT}\n`));
3065
+ });
3066
+ process.on("SIGINT", () => {
3067
+ server.close();
3068
+ process.exit(0);
3069
+ });
3070
+ process.on("SIGTERM", () => {
3071
+ server.close();
3072
+ process.exit(0);
3073
+ });
3074
+ return;
3075
+ }
3076
+ const webDir = await findWebDir();
3077
+ if (!webDir) {
3078
+ console.log(chalk.default.gray("\n Web UI not found (pre-built or source).\n"));
3079
+ console.log(chalk.default.gray(" Rebuild the UI from the repo:\n"));
3080
+ console.log(chalk.default.gray(" cd apps/web && npm install && npm run build\n"));
3081
+ console.log(chalk.default.gray(" Or set HYPERCLAW_ROOT=/path/to/your/hyperclaw/repo\n"));
2976
3082
  process.exit(1);
2977
3083
  }
2978
- console.log(chalk.default.bold.hex("#06b6d4")("\n 🦅 HyperClaw Web UI\n"));
2979
3084
  if (!opts.skipInstall) {
2980
3085
  console.log(chalk.default.gray(" Installing dependencies...\n"));
2981
3086
  await new Promise((resolve, reject) => {
2982
- const child$1 = spawn$1("npm", ["install"], {
3087
+ const c = spawn$1("npm", ["install"], {
2983
3088
  cwd: webDir,
2984
3089
  stdio: "inherit",
2985
3090
  shell: true
2986
3091
  });
2987
- child$1.on("error", reject);
2988
- child$1.on("exit", (code) => code === 0 ? resolve() : reject(new Error("npm install failed")));
3092
+ c.on("error", reject);
3093
+ c.on("exit", (code) => code === 0 ? resolve() : reject(new Error("npm install failed")));
2989
3094
  });
2990
3095
  }
2991
- const port = opts.port || "5173";
2992
- console.log(chalk.default.gray(` Starting dev server at http://localhost:${port}\n`));
3096
+ console.log(chalk.default.gray(` Starting Vite dev server at http://localhost:${PORT}\n`));
2993
3097
  const child = spawn$1("npm", [
2994
3098
  "run",
2995
3099
  "dev",
2996
3100
  "--",
2997
3101
  "--port",
2998
- port
3102
+ String(PORT)
2999
3103
  ], {
3000
3104
  cwd: webDir,
3001
3105
  stdio: "inherit",
@@ -3152,7 +3256,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
3152
3256
  cfgCmd.command("schema").description("Show configuration schema").action(() => {
3153
3257
  console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
3154
3258
  const schema = {
3155
- version: "string (e.g. \"5.3.2\")",
3259
+ version: "string (e.g. \"5.3.4\")",
3156
3260
  workspaceName: "string",
3157
3261
  provider: {
3158
3262
  providerId: "string",
@@ -3304,10 +3408,10 @@ program.command("status").description("System overview").option("--all", "Full l
3304
3408
  console.log(t.bold("\n ─── Deep status ───\n"));
3305
3409
  try {
3306
3410
  const cfg = await fs$7.readJson(configPath);
3307
- console.log(t.muted(" Config: ") + (cfg ? t.success("loaded") : t.error("missing")));
3411
+ console.log(t.muted(" Config: ") + (cfg ? t.success("loaded") : t.error("missing")));
3308
3412
  console.log(t.muted(" Channels: ") + JSON.stringify(cfg?.gateway?.enabledChannels || cfg?.channels || []));
3309
3413
  } catch {
3310
- console.log(t.muted(" Config: ") + t.error("unreadable"));
3414
+ console.log(t.muted(" Config: ") + t.error("unreadable"));
3311
3415
  }
3312
3416
  if (opts.deep) {
3313
3417
  const http$2 = await import("http");
@@ -3331,20 +3435,20 @@ program.command("status").description("System overview").option("--all", "Full l
3331
3435
  res.on("end", () => {
3332
3436
  try {
3333
3437
  const j = JSON.parse(d);
3334
- console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
3438
+ console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
3335
3439
  } catch {
3336
- console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3440
+ console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3337
3441
  }
3338
3442
  resolve();
3339
3443
  });
3340
3444
  });
3341
3445
  req.on("error", () => {
3342
- console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3446
+ console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3343
3447
  resolve();
3344
3448
  });
3345
3449
  req.on("timeout", () => {
3346
3450
  req.destroy();
3347
- console.log(t.muted(" Gateway: ") + t.error("timeout"));
3451
+ console.log(t.muted(" Gateway: ") + t.error("timeout"));
3348
3452
  resolve();
3349
3453
  });
3350
3454
  req.end();
@@ -3356,20 +3460,20 @@ program.command("status").description("System overview").option("--all", "Full l
3356
3460
  res.on("end", () => {
3357
3461
  try {
3358
3462
  const j = JSON.parse(d);
3359
- console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
3463
+ console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
3360
3464
  } catch {
3361
- console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3465
+ console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3362
3466
  }
3363
3467
  resolve();
3364
3468
  });
3365
3469
  });
3366
3470
  req.on("error", () => {
3367
- console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3471
+ console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3368
3472
  resolve();
3369
3473
  });
3370
3474
  req.on("timeout", () => {
3371
3475
  req.destroy();
3372
- console.log(t.muted(" Gateway: ") + t.error("timeout"));
3476
+ console.log(t.muted(" Gateway: ") + t.error("timeout"));
3373
3477
  resolve();
3374
3478
  });
3375
3479
  req.end();
@@ -3472,20 +3576,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
3472
3576
  process.exit(0);
3473
3577
  });
3474
3578
  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) => {
3475
- const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-BC5eNzVi.js"));
3579
+ const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-D3OoMs9I.js"));
3476
3580
  if (opts.show || opts.reset) await osintSetup({
3477
3581
  show: opts.show,
3478
3582
  reset: opts.reset
3479
3583
  });
3480
3584
  else if (workflow === "chat") {
3481
- const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-myilxKVw.js"));
3585
+ const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-BJfbgXwk.js"));
3482
3586
  await runOsintChat({ model: opts.model });
3483
3587
  } else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
3484
3588
  else await osintQuickStart();
3485
3589
  process.exit(0);
3486
3590
  });
3487
3591
  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) => {
3488
- const { runChat } = await Promise.resolve().then(() => require("./chat-CvZyAfqV.js"));
3592
+ const { runChat } = await Promise.resolve().then(() => require("./chat-BTJoZxtU.js"));
3489
3593
  const cfg = await new require_manager.ConfigManager().load().catch(() => null);
3490
3594
  const port = cfg?.gateway?.port ?? 18789;
3491
3595
  const gm = new GatewayManager$1();
@@ -3500,7 +3604,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
3500
3604
  });
3501
3605
  const agentRunCmd = program.command("agent").description("Run agent with thinking control");
3502
3606
  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) => {
3503
- const { runAgent } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
3607
+ const { runAgent } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3504
3608
  await runAgent({
3505
3609
  message: opts.message,
3506
3610
  thinking: opts.thinking,
@@ -3516,7 +3620,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
3516
3620
  });
3517
3621
  const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
3518
3622
  threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
3519
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
3623
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3520
3624
  const mgr = new ACPThreadManager();
3521
3625
  const threads = await mgr.list({
3522
3626
  channelId: opts.channel,
@@ -3526,7 +3630,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
3526
3630
  process.exit(0);
3527
3631
  });
3528
3632
  threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
3529
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
3633
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3530
3634
  await new ACPThreadManager().terminate(id);
3531
3635
  console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
3532
3636
  process.exit(0);
@@ -3774,7 +3878,7 @@ logsCmd.action(async (opts) => {
3774
3878
  }
3775
3879
  });
3776
3880
  program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
3777
- const { startGateway } = await Promise.resolve().then(() => require("./server-B5wYaa-U.js"));
3881
+ const { startGateway } = await Promise.resolve().then(() => require("./server-CSu5UPl3.js"));
3778
3882
  await startGateway();
3779
3883
  process.on("SIGINT", () => process.exit(0));
3780
3884
  process.on("SIGTERM", () => process.exit(0));
@@ -4027,13 +4131,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
4027
4131
  });
4028
4132
  const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
4029
4133
  botCmd.command("status").action(async () => {
4030
- const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4134
+ const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4031
4135
  await showBotStatus();
4032
4136
  process.exit(0);
4033
4137
  });
4034
4138
  botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
4035
4139
  const inquirer$2 = require("inquirer");
4036
- const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4140
+ const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4037
4141
  const chalk$11 = require("chalk");
4038
4142
  console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
4039
4143
  console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
@@ -4095,14 +4199,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4095
4199
  cwd: process.cwd()
4096
4200
  });
4097
4201
  child.unref();
4098
- const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4202
+ const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4099
4203
  await writeBotPid(child.pid);
4100
4204
  console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
4101
4205
  console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
4102
4206
  process.exit(0);
4103
4207
  return;
4104
4208
  }
4105
- const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4209
+ const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4106
4210
  const cfg = await loadBotConfig();
4107
4211
  if (!cfg) {
4108
4212
  console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
@@ -4129,41 +4233,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4129
4233
  });
4130
4234
  botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
4131
4235
  const chalk$11 = require("chalk");
4132
- const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4236
+ const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4133
4237
  const stopped = await stopBotProcess();
4134
4238
  if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
4135
4239
  else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
4136
4240
  process.exit(stopped ? 0 : 1);
4137
4241
  });
4138
4242
  memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
4139
- const { searchMemory } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4243
+ const { searchMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4140
4244
  await searchMemory(query);
4141
4245
  process.exit(0);
4142
4246
  });
4143
4247
  memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
4144
- const { showMemory } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4248
+ const { showMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4145
4249
  await showMemory();
4146
4250
  process.exit(0);
4147
4251
  });
4148
4252
  memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
4149
- const { clearMemory } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4253
+ const { clearMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4150
4254
  await clearMemory();
4151
4255
  process.exit(0);
4152
4256
  });
4153
4257
  memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
4154
- const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4258
+ const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4155
4259
  await saveMemoryDirect(text);
4156
4260
  console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
4157
4261
  process.exit(0);
4158
4262
  });
4159
4263
  const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
4160
4264
  pcCmd.command("status").description("Show PC access status and config").action(async () => {
4161
- const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4265
+ const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4162
4266
  await showPCAccessStatus();
4163
4267
  process.exit(0);
4164
4268
  });
4165
4269
  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) => {
4166
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4270
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4167
4271
  const level = opts.level;
4168
4272
  const allowed = [
4169
4273
  "read-only",
@@ -4190,7 +4294,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
4190
4294
  process.exit(0);
4191
4295
  });
4192
4296
  pcCmd.command("disable").description("Disable PC access").action(async () => {
4193
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4297
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4194
4298
  await savePCAccessConfig({ enabled: false });
4195
4299
  console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
4196
4300
  process.exit(0);
@@ -4215,7 +4319,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
4215
4319
  process.exit(0);
4216
4320
  });
4217
4321
  pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
4218
- const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4322
+ const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4219
4323
  const cfg = await loadPCAccessConfig();
4220
4324
  if (!cfg.enabled) {
4221
4325
  console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
@@ -4246,7 +4350,7 @@ program.command("setup").description("Setup wizard — alias for `hyperclaw onbo
4246
4350
  });
4247
4351
  async function runUpdateCheck() {
4248
4352
  try {
4249
- const { checkForUpdates: checkForUpdates$1, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-CCMXnjxr.js"));
4353
+ const { checkForUpdates: checkForUpdates$1, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-B-wd-tpa.js"));
4250
4354
  const path$5 = require("path");
4251
4355
  const { readFileSync } = require("fs");
4252
4356
  const pkgPath = path$5.resolve(__dirname, "../package.json");
@@ -4264,17 +4368,17 @@ if (process.argv.length === 2) (async () => {
4264
4368
  const t = getTheme(false);
4265
4369
  const chalk$11 = require("chalk");
4266
4370
  console.log(t.bold(" Quick actions:\n"));
4267
- console.log(` ${t.c("hyperclaw web")} — React Web UI (auto install + start)`);
4268
- console.log(` ${t.c("hyperclaw chat")} — terminal chat`);
4269
- console.log(` ${t.c("hyperclaw onboard")} — re-run setup wizard`);
4270
- console.log(` ${t.c("hyperclaw daemon start")} — start background service`);
4271
- console.log(` ${t.c("hyperclaw daemon status")} — service status`);
4272
- console.log(` ${t.c("hyperclaw status")} — system overview`);
4273
- console.log(` ${t.c("hyperclaw doctor")} — health check & fix issues`);
4274
- console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
4371
+ console.log(` ${t.c("hyperclaw web")} — 🌐 React Web UI (auto install + start)`);
4372
+ console.log(` ${t.c("hyperclaw chat")} — 💬 terminal chat`);
4373
+ console.log(` ${t.c("hyperclaw onboard")} — ⚙️ re-run setup wizard`);
4374
+ console.log(` ${t.c("hyperclaw daemon start")} — 🚀 start background service`);
4375
+ console.log(` ${t.c("hyperclaw daemon status")} — 📊 service status`);
4376
+ console.log(` ${t.c("hyperclaw status")} — 📋 system overview`);
4377
+ console.log(` ${t.c("hyperclaw doctor")} — 🔧 health check & fix issues`);
4378
+ console.log(` ${t.c("hyperclaw --help")} — 📖 all commands\n`);
4275
4379
  } else {
4276
4380
  await new require_banner.Banner().showNeonBanner(false);
4277
- const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-Bu3xDVur.js"));
4381
+ const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BRN9NLFk.js"));
4278
4382
  await new HyperClawWizard$1().run({ wizard: true });
4279
4383
  }
4280
4384
  await runUpdateCheck();
@@ -0,0 +1,4 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_server = require('./server-jkSNOitC.js');
3
+
4
+ exports.startGateway = require_server.startGateway;
@@ -0,0 +1,4 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_server = require('./server-O4Zv8s74.js');
3
+
4
+ exports.startGateway = require_server.startGateway;