hyperclaw 5.3.3 → 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 (38) hide show
  1. package/dist/banner-CP4LeLsu.js +143 -0
  2. package/dist/banner-D14weGVJ.js +7 -0
  3. package/dist/banner-mu7p6UkV.js +143 -0
  4. package/dist/banner-nRaqjrSN.js +7 -0
  5. package/dist/chat-BTJoZxtU.js +523 -0
  6. package/dist/chat-BYqxftlU.js +523 -0
  7. package/dist/daemon-BtQqCfEH.js +7 -0
  8. package/dist/daemon-WOoAWS-0.js +421 -0
  9. package/dist/engine-C88DJeLD.js +327 -0
  10. package/dist/engine-D9BvbJxu.js +7 -0
  11. package/dist/hyperclawbot-DC9nGl99.js +516 -0
  12. package/dist/mcp-loader-Bd7MNj5-.js +93 -0
  13. package/dist/onboard-BRN9NLFk.js +14 -0
  14. package/dist/onboard-Cxjlal2t.js +14 -0
  15. package/dist/onboard-i20xz3_O.js +3812 -0
  16. package/dist/onboard-x4I788gj.js +3812 -0
  17. package/dist/orchestrator-B9gd0u_r.js +6 -0
  18. package/dist/orchestrator-CfswFK1w.js +189 -0
  19. package/dist/osint-BXu9NVcF.js +283 -0
  20. package/dist/osint-D3OoMs9I.js +283 -0
  21. package/dist/osint-chat-BJfbgXwk.js +789 -0
  22. package/dist/osint-chat-CY2ODmY-.js +789 -0
  23. package/dist/run-main.js +130 -41
  24. package/dist/server-CSu5UPl3.js +4 -0
  25. package/dist/server-jkSNOitC.js +1366 -0
  26. package/dist/skill-runtime-CdR3YMFp.js +5 -0
  27. package/dist/skill-runtime-CxL0PxyP.js +104 -0
  28. package/dist/src-CboISwpv.js +63 -0
  29. package/dist/src-PutqGezt.js +458 -0
  30. package/dist/sub-agent-tools-DNbBE93o.js +39 -0
  31. package/dist/update-check-B-wd-tpa.js +7 -0
  32. package/dist/update-check-DlUFL81n.js +118 -0
  33. package/package.json +2 -2
  34. package/static/chat.html +2 -2
  35. package/static/web/assets/index-BhCDgT5S.js +75 -0
  36. package/static/web/assets/index-D2RfO0dG.css +1 -0
  37. package/static/web/icon.png +0 -0
  38. 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-O4Zv8s74.js');
7
- const require_daemon = require('./daemon-Bi0rcsh5.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-DRgSPOuY.js');
10
+ const require_onboard = require('./onboard-x4I788gj.js');
11
11
  require('./theme-CLXvI6Hr.js');
12
- const require_banner = require('./banner-DNSYi9N-.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,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.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", `
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:
@@ -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-BWpeRe8J.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,10 +2964,23 @@ 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 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
+ }
2971
2984
  async function findWebDir() {
2972
2985
  const candidates = [];
2973
2986
  if (process.env.HYPERCLAW_ROOT) candidates.push(path$5.join(process.env.HYPERCLAW_ROOT, "apps", "web"));
@@ -2981,36 +2994,112 @@ program.command("web").description("Launch React Web UI — auto npm install and
2981
2994
  }
2982
2995
  candidates.push(path$5.join(__dirname, "..", "..", "apps", "web"));
2983
2996
  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;
2997
+ for (const c of candidates) if (await fs$7.pathExists(path$5.join(c, "package.json"))) return c;
2985
2998
  return null;
2986
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
+ }
2987
3076
  const webDir = await findWebDir();
2988
3077
  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"));
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"));
2991
3082
  process.exit(1);
2992
3083
  }
2993
- console.log(chalk.default.bold.hex("#06b6d4")("\n 🦅 HyperClaw Web UI\n"));
2994
3084
  if (!opts.skipInstall) {
2995
3085
  console.log(chalk.default.gray(" Installing dependencies...\n"));
2996
3086
  await new Promise((resolve, reject) => {
2997
- const child$1 = spawn$1("npm", ["install"], {
3087
+ const c = spawn$1("npm", ["install"], {
2998
3088
  cwd: webDir,
2999
3089
  stdio: "inherit",
3000
3090
  shell: true
3001
3091
  });
3002
- child$1.on("error", reject);
3003
- 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")));
3004
3094
  });
3005
3095
  }
3006
- const port = opts.port || "5173";
3007
- 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`));
3008
3097
  const child = spawn$1("npm", [
3009
3098
  "run",
3010
3099
  "dev",
3011
3100
  "--",
3012
3101
  "--port",
3013
- port
3102
+ String(PORT)
3014
3103
  ], {
3015
3104
  cwd: webDir,
3016
3105
  stdio: "inherit",
@@ -3167,7 +3256,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
3167
3256
  cfgCmd.command("schema").description("Show configuration schema").action(() => {
3168
3257
  console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
3169
3258
  const schema = {
3170
- version: "string (e.g. \"5.3.3\")",
3259
+ version: "string (e.g. \"5.3.4\")",
3171
3260
  workspaceName: "string",
3172
3261
  provider: {
3173
3262
  providerId: "string",
@@ -3487,20 +3576,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
3487
3576
  process.exit(0);
3488
3577
  });
3489
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) => {
3490
- const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-BiZZ_d-g.js"));
3579
+ const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-D3OoMs9I.js"));
3491
3580
  if (opts.show || opts.reset) await osintSetup({
3492
3581
  show: opts.show,
3493
3582
  reset: opts.reset
3494
3583
  });
3495
3584
  else if (workflow === "chat") {
3496
- const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-DaRWDl3X.js"));
3585
+ const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-BJfbgXwk.js"));
3497
3586
  await runOsintChat({ model: opts.model });
3498
3587
  } else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
3499
3588
  else await osintQuickStart();
3500
3589
  process.exit(0);
3501
3590
  });
3502
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) => {
3503
- const { runChat } = await Promise.resolve().then(() => require("./chat-CKLXvJjd.js"));
3592
+ const { runChat } = await Promise.resolve().then(() => require("./chat-BTJoZxtU.js"));
3504
3593
  const cfg = await new require_manager.ConfigManager().load().catch(() => null);
3505
3594
  const port = cfg?.gateway?.port ?? 18789;
3506
3595
  const gm = new GatewayManager$1();
@@ -3515,7 +3604,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
3515
3604
  });
3516
3605
  const agentRunCmd = program.command("agent").description("Run agent with thinking control");
3517
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) => {
3518
- const { runAgent } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
3607
+ const { runAgent } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3519
3608
  await runAgent({
3520
3609
  message: opts.message,
3521
3610
  thinking: opts.thinking,
@@ -3531,7 +3620,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
3531
3620
  });
3532
3621
  const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
3533
3622
  threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
3534
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
3623
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3535
3624
  const mgr = new ACPThreadManager();
3536
3625
  const threads = await mgr.list({
3537
3626
  channelId: opts.channel,
@@ -3541,7 +3630,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
3541
3630
  process.exit(0);
3542
3631
  });
3543
3632
  threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
3544
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
3633
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
3545
3634
  await new ACPThreadManager().terminate(id);
3546
3635
  console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
3547
3636
  process.exit(0);
@@ -3789,7 +3878,7 @@ logsCmd.action(async (opts) => {
3789
3878
  }
3790
3879
  });
3791
3880
  program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
3792
- const { startGateway } = await Promise.resolve().then(() => require("./server-DBXhcGiq.js"));
3881
+ const { startGateway } = await Promise.resolve().then(() => require("./server-CSu5UPl3.js"));
3793
3882
  await startGateway();
3794
3883
  process.on("SIGINT", () => process.exit(0));
3795
3884
  process.on("SIGTERM", () => process.exit(0));
@@ -4042,13 +4131,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
4042
4131
  });
4043
4132
  const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
4044
4133
  botCmd.command("status").action(async () => {
4045
- const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4134
+ const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4046
4135
  await showBotStatus();
4047
4136
  process.exit(0);
4048
4137
  });
4049
4138
  botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
4050
4139
  const inquirer$2 = require("inquirer");
4051
- const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4140
+ const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4052
4141
  const chalk$11 = require("chalk");
4053
4142
  console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
4054
4143
  console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
@@ -4110,14 +4199,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4110
4199
  cwd: process.cwd()
4111
4200
  });
4112
4201
  child.unref();
4113
- const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4202
+ const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4114
4203
  await writeBotPid(child.pid);
4115
4204
  console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
4116
4205
  console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
4117
4206
  process.exit(0);
4118
4207
  return;
4119
4208
  }
4120
- const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4209
+ const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4121
4210
  const cfg = await loadBotConfig();
4122
4211
  if (!cfg) {
4123
4212
  console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
@@ -4144,41 +4233,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4144
4233
  });
4145
4234
  botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
4146
4235
  const chalk$11 = require("chalk");
4147
- const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4236
+ const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
4148
4237
  const stopped = await stopBotProcess();
4149
4238
  if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
4150
4239
  else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
4151
4240
  process.exit(stopped ? 0 : 1);
4152
4241
  });
4153
4242
  memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
4154
- const { searchMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4243
+ const { searchMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4155
4244
  await searchMemory(query);
4156
4245
  process.exit(0);
4157
4246
  });
4158
4247
  memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
4159
- const { showMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4248
+ const { showMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4160
4249
  await showMemory();
4161
4250
  process.exit(0);
4162
4251
  });
4163
4252
  memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
4164
- const { clearMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4253
+ const { clearMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4165
4254
  await clearMemory();
4166
4255
  process.exit(0);
4167
4256
  });
4168
4257
  memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
4169
- const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4258
+ const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4170
4259
  await saveMemoryDirect(text);
4171
4260
  console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
4172
4261
  process.exit(0);
4173
4262
  });
4174
4263
  const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
4175
4264
  pcCmd.command("status").description("Show PC access status and config").action(async () => {
4176
- const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4265
+ const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4177
4266
  await showPCAccessStatus();
4178
4267
  process.exit(0);
4179
4268
  });
4180
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) => {
4181
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4270
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4182
4271
  const level = opts.level;
4183
4272
  const allowed = [
4184
4273
  "read-only",
@@ -4205,7 +4294,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
4205
4294
  process.exit(0);
4206
4295
  });
4207
4296
  pcCmd.command("disable").description("Disable PC access").action(async () => {
4208
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4297
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4209
4298
  await savePCAccessConfig({ enabled: false });
4210
4299
  console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
4211
4300
  process.exit(0);
@@ -4230,7 +4319,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
4230
4319
  process.exit(0);
4231
4320
  });
4232
4321
  pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
4233
- const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4322
+ const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
4234
4323
  const cfg = await loadPCAccessConfig();
4235
4324
  if (!cfg.enabled) {
4236
4325
  console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
@@ -4261,7 +4350,7 @@ program.command("setup").description("Setup wizard — alias for `hyperclaw onbo
4261
4350
  });
4262
4351
  async function runUpdateCheck() {
4263
4352
  try {
4264
- 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"));
4265
4354
  const path$5 = require("path");
4266
4355
  const { readFileSync } = require("fs");
4267
4356
  const pkgPath = path$5.resolve(__dirname, "../package.json");
@@ -4289,7 +4378,7 @@ if (process.argv.length === 2) (async () => {
4289
4378
  console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
4290
4379
  } else {
4291
4380
  await new require_banner.Banner().showNeonBanner(false);
4292
- const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-qPUG8PBU.js"));
4381
+ const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BRN9NLFk.js"));
4293
4382
  await new HyperClawWizard$1().run({ wizard: true });
4294
4383
  }
4295
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;