hyperclaw 5.3.2 → 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/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-viuRgDlF.js');
7
- const require_daemon = require('./daemon-DkK4j69t.js');
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-BriaGw6G.js');
10
+ const require_onboard = require('./onboard-DRgSPOuY.js');
11
11
  require('./theme-CLXvI6Hr.js');
12
- const require_banner = require('./banner-B8OcbGCR.js');
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,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.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
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-BWpeRe8J.js"));
2715
2715
  const allTools = [
2716
2716
  ...getBuiltinTools(),
2717
2717
  ...getSessionsTools(() => null),
@@ -2968,11 +2968,26 @@ program.command("web").description("Launch React Web UI — auto npm install and
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
+ 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"));
2976
2991
  process.exit(1);
2977
2992
  }
2978
2993
  console.log(chalk.default.bold.hex("#06b6d4")("\n 🦅 HyperClaw Web UI\n"));
@@ -3152,7 +3167,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
3152
3167
  cfgCmd.command("schema").description("Show configuration schema").action(() => {
3153
3168
  console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
3154
3169
  const schema = {
3155
- version: "string (e.g. \"5.3.2\")",
3170
+ version: "string (e.g. \"5.3.3\")",
3156
3171
  workspaceName: "string",
3157
3172
  provider: {
3158
3173
  providerId: "string",
@@ -3304,10 +3319,10 @@ program.command("status").description("System overview").option("--all", "Full l
3304
3319
  console.log(t.bold("\n ─── Deep status ───\n"));
3305
3320
  try {
3306
3321
  const cfg = await fs$7.readJson(configPath);
3307
- 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")));
3308
3323
  console.log(t.muted(" Channels: ") + JSON.stringify(cfg?.gateway?.enabledChannels || cfg?.channels || []));
3309
3324
  } catch {
3310
- console.log(t.muted(" Config: ") + t.error("unreadable"));
3325
+ console.log(t.muted(" Config: ") + t.error("unreadable"));
3311
3326
  }
3312
3327
  if (opts.deep) {
3313
3328
  const http$2 = await import("http");
@@ -3331,20 +3346,20 @@ program.command("status").description("System overview").option("--all", "Full l
3331
3346
  res.on("end", () => {
3332
3347
  try {
3333
3348
  const j = JSON.parse(d);
3334
- 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 ?? "-"})`);
3335
3350
  } catch {
3336
- console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3351
+ console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3337
3352
  }
3338
3353
  resolve();
3339
3354
  });
3340
3355
  });
3341
3356
  req.on("error", () => {
3342
- console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3357
+ console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3343
3358
  resolve();
3344
3359
  });
3345
3360
  req.on("timeout", () => {
3346
3361
  req.destroy();
3347
- console.log(t.muted(" Gateway: ") + t.error("timeout"));
3362
+ console.log(t.muted(" Gateway: ") + t.error("timeout"));
3348
3363
  resolve();
3349
3364
  });
3350
3365
  req.end();
@@ -3356,20 +3371,20 @@ program.command("status").description("System overview").option("--all", "Full l
3356
3371
  res.on("end", () => {
3357
3372
  try {
3358
3373
  const j = JSON.parse(d);
3359
- 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 ?? "-"})`);
3360
3375
  } catch {
3361
- console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3376
+ console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
3362
3377
  }
3363
3378
  resolve();
3364
3379
  });
3365
3380
  });
3366
3381
  req.on("error", () => {
3367
- console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3382
+ console.log(t.muted(" Gateway: ") + t.error("unreachable"));
3368
3383
  resolve();
3369
3384
  });
3370
3385
  req.on("timeout", () => {
3371
3386
  req.destroy();
3372
- console.log(t.muted(" Gateway: ") + t.error("timeout"));
3387
+ console.log(t.muted(" Gateway: ") + t.error("timeout"));
3373
3388
  resolve();
3374
3389
  });
3375
3390
  req.end();
@@ -3472,20 +3487,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
3472
3487
  process.exit(0);
3473
3488
  });
3474
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) => {
3475
- const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-BC5eNzVi.js"));
3490
+ const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-BiZZ_d-g.js"));
3476
3491
  if (opts.show || opts.reset) await osintSetup({
3477
3492
  show: opts.show,
3478
3493
  reset: opts.reset
3479
3494
  });
3480
3495
  else if (workflow === "chat") {
3481
- const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-myilxKVw.js"));
3496
+ const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-DaRWDl3X.js"));
3482
3497
  await runOsintChat({ model: opts.model });
3483
3498
  } else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
3484
3499
  else await osintQuickStart();
3485
3500
  process.exit(0);
3486
3501
  });
3487
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) => {
3488
- const { runChat } = await Promise.resolve().then(() => require("./chat-CvZyAfqV.js"));
3503
+ const { runChat } = await Promise.resolve().then(() => require("./chat-CKLXvJjd.js"));
3489
3504
  const cfg = await new require_manager.ConfigManager().load().catch(() => null);
3490
3505
  const port = cfg?.gateway?.port ?? 18789;
3491
3506
  const gm = new GatewayManager$1();
@@ -3500,7 +3515,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
3500
3515
  });
3501
3516
  const agentRunCmd = program.command("agent").description("Run agent with thinking control");
3502
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) => {
3503
- const { runAgent } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
3518
+ const { runAgent } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
3504
3519
  await runAgent({
3505
3520
  message: opts.message,
3506
3521
  thinking: opts.thinking,
@@ -3516,7 +3531,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
3516
3531
  });
3517
3532
  const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
3518
3533
  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"));
3534
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
3520
3535
  const mgr = new ACPThreadManager();
3521
3536
  const threads = await mgr.list({
3522
3537
  channelId: opts.channel,
@@ -3526,7 +3541,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
3526
3541
  process.exit(0);
3527
3542
  });
3528
3543
  threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
3529
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
3544
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
3530
3545
  await new ACPThreadManager().terminate(id);
3531
3546
  console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
3532
3547
  process.exit(0);
@@ -3774,7 +3789,7 @@ logsCmd.action(async (opts) => {
3774
3789
  }
3775
3790
  });
3776
3791
  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"));
3792
+ const { startGateway } = await Promise.resolve().then(() => require("./server-DBXhcGiq.js"));
3778
3793
  await startGateway();
3779
3794
  process.on("SIGINT", () => process.exit(0));
3780
3795
  process.on("SIGTERM", () => process.exit(0));
@@ -4027,13 +4042,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
4027
4042
  });
4028
4043
  const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
4029
4044
  botCmd.command("status").action(async () => {
4030
- const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4045
+ const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4031
4046
  await showBotStatus();
4032
4047
  process.exit(0);
4033
4048
  });
4034
4049
  botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
4035
4050
  const inquirer$2 = require("inquirer");
4036
- const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4051
+ const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4037
4052
  const chalk$11 = require("chalk");
4038
4053
  console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
4039
4054
  console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
@@ -4095,14 +4110,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4095
4110
  cwd: process.cwd()
4096
4111
  });
4097
4112
  child.unref();
4098
- const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4113
+ const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4099
4114
  await writeBotPid(child.pid);
4100
4115
  console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
4101
4116
  console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
4102
4117
  process.exit(0);
4103
4118
  return;
4104
4119
  }
4105
- const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4120
+ const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4106
4121
  const cfg = await loadBotConfig();
4107
4122
  if (!cfg) {
4108
4123
  console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
@@ -4129,41 +4144,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4129
4144
  });
4130
4145
  botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
4131
4146
  const chalk$11 = require("chalk");
4132
- const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-CyIGak-G.js"));
4147
+ const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC3jGsoA.js"));
4133
4148
  const stopped = await stopBotProcess();
4134
4149
  if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
4135
4150
  else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
4136
4151
  process.exit(stopped ? 0 : 1);
4137
4152
  });
4138
4153
  memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
4139
- const { searchMemory } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4154
+ const { searchMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4140
4155
  await searchMemory(query);
4141
4156
  process.exit(0);
4142
4157
  });
4143
4158
  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"));
4159
+ const { showMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4145
4160
  await showMemory();
4146
4161
  process.exit(0);
4147
4162
  });
4148
4163
  memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
4149
- const { clearMemory } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4164
+ const { clearMemory } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4150
4165
  await clearMemory();
4151
4166
  process.exit(0);
4152
4167
  });
4153
4168
  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"));
4169
+ const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4155
4170
  await saveMemoryDirect(text);
4156
4171
  console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
4157
4172
  process.exit(0);
4158
4173
  });
4159
4174
  const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
4160
4175
  pcCmd.command("status").description("Show PC access status and config").action(async () => {
4161
- const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4176
+ const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4162
4177
  await showPCAccessStatus();
4163
4178
  process.exit(0);
4164
4179
  });
4165
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) => {
4166
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4181
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4167
4182
  const level = opts.level;
4168
4183
  const allowed = [
4169
4184
  "read-only",
@@ -4190,7 +4205,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
4190
4205
  process.exit(0);
4191
4206
  });
4192
4207
  pcCmd.command("disable").description("Disable PC access").action(async () => {
4193
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-DSZTfNdO.js"));
4208
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4194
4209
  await savePCAccessConfig({ enabled: false });
4195
4210
  console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
4196
4211
  process.exit(0);
@@ -4215,7 +4230,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
4215
4230
  process.exit(0);
4216
4231
  });
4217
4232
  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"));
4233
+ const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BWpeRe8J.js"));
4219
4234
  const cfg = await loadPCAccessConfig();
4220
4235
  if (!cfg.enabled) {
4221
4236
  console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
@@ -4264,17 +4279,17 @@ if (process.argv.length === 2) (async () => {
4264
4279
  const t = getTheme(false);
4265
4280
  const chalk$11 = require("chalk");
4266
4281
  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`);
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`);
4275
4290
  } else {
4276
4291
  await new require_banner.Banner().showNeonBanner(false);
4277
- const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-Bu3xDVur.js"));
4292
+ const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-qPUG8PBU.js"));
4278
4293
  await new HyperClawWizard$1().run({ wizard: true });
4279
4294
  }
4280
4295
  await runUpdateCheck();
@@ -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;