hyperclaw 5.0.5 → 5.0.6

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.
@@ -0,0 +1,11 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ require('./paths-AIyBxIzm.js');
3
+ require('./paths-DPovhojT.js');
4
+ require('./env-resolve-BFJXWl94.js');
5
+ const require_onboard = require('./onboard-ChdCrzG4.js');
6
+ require('./server-Cv6kgXvX.js');
7
+ require('./daemon-Dhd1g5G3.js');
8
+ require('./providers-Dy15rDb7.js');
9
+ require('./theme-DajRRZbA.js');
10
+
11
+ exports.HyperClawWizard = require_onboard.HyperClawWizard;
@@ -0,0 +1,6 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_orchestrator = require('./orchestrator-Dr-Kx8Sj.js');
3
+
4
+ require_orchestrator.init_orchestrator();
5
+ exports.runMultiStep = require_orchestrator.runMultiStep;
6
+ exports.runMultiStepParallel = require_orchestrator.runMultiStepParallel;
@@ -0,0 +1,189 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+
3
+ //#region packages/core/src/agent/orchestrator.ts
4
+ /** Parse parallel plan into waves: [['A'], ['B','C'], ['D']] = A then B||C then D. */
5
+ function parseParallelWaves(text) {
6
+ const waves = [];
7
+ const lines = (text || "").trim().split(/\n/);
8
+ for (const line of lines) {
9
+ const m = line.match(/^\s*\d+\.\s*(.+)$/);
10
+ if (!m) continue;
11
+ const parts = m[1].split(/\|/).map((s) => s.trim()).filter(Boolean);
12
+ if (parts.length > 0) waves.push(parts);
13
+ }
14
+ return waves;
15
+ }
16
+ /** Parse "1. X\n2. Y" into step strings. */
17
+ function parseSteps(text) {
18
+ const steps = [];
19
+ const lines = (text || "").trim().split(/\n/);
20
+ for (const line of lines) {
21
+ const m = line.match(/^\s*\d+\.\s*(.+)$/);
22
+ if (m) steps.push(m[1].trim());
23
+ }
24
+ return steps.length > 0 ? steps : [];
25
+ }
26
+ /** Multi-step with retry, session context, checkpointing, error recovery. */
27
+ async function runMultiStep(goal, opts) {
28
+ const { runAgentEngine } = await Promise.resolve().then(() => require("./engine-wq9XrYn_.js"));
29
+ const maxRetries = opts.maxStepRetries ?? 2;
30
+ const checkpointable = opts.checkpointable ?? false;
31
+ let steps;
32
+ let results = [];
33
+ let startIndex = 0;
34
+ if (opts.checkpoint && opts.checkpoint.goal === goal && opts.checkpoint.steps.length > 0) {
35
+ steps = opts.checkpoint.steps;
36
+ results = [...opts.checkpoint.results ?? []];
37
+ startIndex = results.length;
38
+ } else {
39
+ const planOpts = opts.sessionId && opts.appendTranscript ? opts : {
40
+ ...opts,
41
+ sessionId: opts.sessionId,
42
+ appendTranscript: opts.appendTranscript
43
+ };
44
+ const planResult = await runAgentEngine(`${PLAN_PROMPT}\n\nGoal: ${goal}`, planOpts);
45
+ steps = parseSteps(planResult.text);
46
+ if (steps.length === 0) return runAgentEngine(goal, opts);
47
+ }
48
+ let lastUsage;
49
+ for (let i = startIndex; i < steps.length; i++) {
50
+ const step = steps[i];
51
+ const ctx = results.length > 0 ? `Previous results:\n${results.map((r, j) => `Step ${j + 1}: ${r.slice(0, 400)}${r.length > 400 ? "..." : ""}`).join("\n")}\n\n` : "";
52
+ const message = `${ctx}Step ${i + 1}: ${step}`;
53
+ let lastErr;
54
+ let stepResult;
55
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
56
+ stepResult = await runAgentEngine(message, opts);
57
+ if (stepResult.usage) lastUsage = stepResult.usage;
58
+ if (!stepResult.error) {
59
+ results.push(stepResult.text);
60
+ if (checkpointable && opts.onCheckpoint) await Promise.resolve(opts.onCheckpoint({
61
+ goal,
62
+ steps,
63
+ completedIndices: [...Array(results.length)].map((_, k) => k),
64
+ results: [...results]
65
+ }));
66
+ break;
67
+ }
68
+ lastErr = stepResult.error;
69
+ if (attempt < maxRetries && opts.onToken) opts.onToken(`[Retry ${attempt + 1}/${maxRetries} for step ${i + 1}…]\n`);
70
+ }
71
+ if (lastErr) {
72
+ const summary$1 = results.length > 0 ? results.map((r, j) => `**Step ${j + 1}**\n${r}`).join("\n\n---\n\n") + `\n\n**Step ${i + 1}** (failed): ${lastErr}` : `Step ${i + 1} failed: ${lastErr}`;
73
+ opts.onDone?.(summary$1);
74
+ return {
75
+ text: summary$1,
76
+ error: lastErr,
77
+ usage: lastUsage
78
+ };
79
+ }
80
+ }
81
+ const summary = results.map((r, i) => `**Step ${i + 1}**\n${r}`).join("\n\n---\n\n");
82
+ opts.onDone?.(summary);
83
+ return {
84
+ text: summary,
85
+ usage: lastUsage
86
+ };
87
+ }
88
+ /** Parallel sub-agents: plan waves → run each wave in parallel (Promise.all) → aggregate. */
89
+ async function runMultiStepParallel(goal, opts) {
90
+ const { runAgentEngine } = await Promise.resolve().then(() => require("./engine-wq9XrYn_.js"));
91
+ const planOpts = {
92
+ ...opts,
93
+ sessionId: void 0,
94
+ appendTranscript: void 0
95
+ };
96
+ const planResult = await runAgentEngine(`${PARALLEL_PLAN_PROMPT}\n\nGoal: ${goal}`, planOpts);
97
+ const waves = parseParallelWaves(planResult.text);
98
+ if (waves.length === 0) return runAgentEngine(goal, opts);
99
+ const allResults = [];
100
+ let lastUsage = planResult.usage;
101
+ for (let w = 0; w < waves.length; w++) {
102
+ const wave = waves[w];
103
+ const ctx = allResults.length > 0 ? `Previous results:\n${allResults.map((r, j) => `Result ${j + 1}: ${r.slice(0, 300)}${r.length > 300 ? "..." : ""}`).join("\n")}\n\n` : "";
104
+ const messages = wave.map((step, i) => `${ctx}Sub-task ${w + 1}.${i + 1}: ${step}`);
105
+ const runOpts = {
106
+ ...opts,
107
+ onToken: void 0,
108
+ onDone: void 0
109
+ };
110
+ const results = await Promise.all(messages.map((msg) => runAgentEngine(msg, runOpts)));
111
+ for (const r of results) {
112
+ if (r.usage) lastUsage = r.usage;
113
+ if (r.error) {
114
+ const summary$1 = allResults.map((r0, j) => `**Sub-agent ${j + 1}**\n${r0}`).join("\n\n---\n\n") + `\n\n**Failed**\n${r.text}`;
115
+ opts.onDone?.(summary$1);
116
+ return {
117
+ text: summary$1,
118
+ error: r.error,
119
+ usage: lastUsage
120
+ };
121
+ }
122
+ allResults.push(r.text);
123
+ }
124
+ }
125
+ const summary = allResults.map((r, i) => `**Sub-agent ${i + 1}**\n${r}`).join("\n\n---\n\n");
126
+ opts.onDone?.(summary);
127
+ return {
128
+ text: summary,
129
+ usage: lastUsage
130
+ };
131
+ }
132
+ /** Single-run passthrough (unchanged). */
133
+ async function runWithPlan(message, opts) {
134
+ const { runAgentEngine } = await Promise.resolve().then(() => require("./engine-wq9XrYn_.js"));
135
+ return runAgentEngine(message, opts);
136
+ }
137
+ async function planSteps(goal) {
138
+ const { runAgentEngine } = await Promise.resolve().then(() => require("./engine-wq9XrYn_.js"));
139
+ const r = await runAgentEngine(`${PLAN_PROMPT}\n\nGoal: ${goal}`, {});
140
+ return parseSteps(r.text).map((g) => ({ goal: g }));
141
+ }
142
+ var PLAN_PROMPT, PARALLEL_PLAN_PROMPT;
143
+ var init_orchestrator = require_chunk.__esm({ "packages/core/src/agent/orchestrator.ts"() {
144
+ PLAN_PROMPT = `Break this goal into 1-4 concrete, executable steps. Output ONLY numbered lines.
145
+ Format: 1. step one
146
+ 2. step two
147
+ ...
148
+ No other text.`;
149
+ PARALLEL_PLAN_PROMPT = `Break this goal into 2-6 steps. Steps that can run IN PARALLEL (independent) put on the SAME line with | between them.
150
+ Format:
151
+ 1. step one
152
+ 2. step A | step B
153
+ 3. step three
154
+ Example: "Compare Python vs Node for APIs" → 1. research Python for APIs | research Node for APIs
155
+ 2. summarize comparison
156
+ Output ONLY numbered lines. No other text.`;
157
+ } });
158
+
159
+ //#endregion
160
+ Object.defineProperty(exports, 'init_orchestrator', {
161
+ enumerable: true,
162
+ get: function () {
163
+ return init_orchestrator;
164
+ }
165
+ });
166
+ Object.defineProperty(exports, 'planSteps', {
167
+ enumerable: true,
168
+ get: function () {
169
+ return planSteps;
170
+ }
171
+ });
172
+ Object.defineProperty(exports, 'runMultiStep', {
173
+ enumerable: true,
174
+ get: function () {
175
+ return runMultiStep;
176
+ }
177
+ });
178
+ Object.defineProperty(exports, 'runMultiStepParallel', {
179
+ enumerable: true,
180
+ get: function () {
181
+ return runMultiStepParallel;
182
+ }
183
+ });
184
+ Object.defineProperty(exports, 'runWithPlan', {
185
+ enumerable: true,
186
+ get: function () {
187
+ return runWithPlan;
188
+ }
189
+ });
package/dist/run-main.js CHANGED
@@ -2,9 +2,9 @@ const require_chunk = require('./chunk-jS-bbMI5.js');
2
2
  require('./paths-AIyBxIzm.js');
3
3
  require('./paths-DPovhojT.js');
4
4
  require('./env-resolve-BFJXWl94.js');
5
- const require_onboard = require('./onboard-BKfMt31e.js');
6
- require('./server-BEqsQF8r.js');
7
- const require_daemon = require('./daemon-DNfRHk6k.js');
5
+ const require_onboard = require('./onboard-ChdCrzG4.js');
6
+ require('./server-Cv6kgXvX.js');
7
+ const require_daemon = require('./daemon-Dhd1g5G3.js');
8
8
  require('./providers-Dy15rDb7.js');
9
9
  require('./theme-DajRRZbA.js');
10
10
  const require_hub = require('./hub-BO6bj8Yj.js');
@@ -65,7 +65,7 @@ var Dashboard = class {
65
65
  return c(`� `) + content + " ".repeat(pad) + c(`�`);
66
66
  };
67
67
  console.log(c(`-${line}�`));
68
- console.log(c(`�`) + chalk.default.bold.hex("#06b6d4")(`${"?? HYPERCLAW v5.0.5 � GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c(`�`));
68
+ console.log(c(`�`) + chalk.default.bold.hex("#06b6d4")(`${"?? HYPERCLAW v5.0.6 � GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c(`�`));
69
69
  console.log(c(`�${line}�`));
70
70
  console.log(row(`${statusDot} Gateway ${statusText} ${chalk.default.gray("�")} ws://localhost:${port} ${chalk.default.gray("�")} Agent: ${c(agent)}`));
71
71
  console.log(row(`${c("?")} Model ${chalk.default.gray(model.slice(0, 30))} ${chalk.default.gray("�")} User: ${c(user)}`));
@@ -2427,7 +2427,7 @@ var init_queue = require_chunk.__esm({ "src/delivery/queue.ts"() {
2427
2427
  //#endregion
2428
2428
  //#region src/cli/run-main.ts
2429
2429
  const program = new commander.Command();
2430
- program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.0.5").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").hook("preAction", (thisCommand) => {
2430
+ program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.0.6").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").hook("preAction", (thisCommand) => {
2431
2431
  const profile = thisCommand.opts().profile;
2432
2432
  if (profile) {
2433
2433
  const os$8 = require("os");
@@ -2570,7 +2570,7 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
2570
2570
  const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
2571
2571
  const toolsCfg = cfg?.tools ?? {};
2572
2572
  const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-DgNqFWYn.js"));
2573
- const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
2573
+ const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
2574
2574
  const allTools = [
2575
2575
  ...getBuiltinTools(),
2576
2576
  ...getSessionsTools(() => null),
@@ -2913,7 +2913,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
2913
2913
  cfgCmd.command("schema").description("Show configuration schema").action(() => {
2914
2914
  console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/config.json\n"));
2915
2915
  const schema = {
2916
- version: "string (e.g. \"5.0.5\")",
2916
+ version: "string (e.g. \"5.0.6\")",
2917
2917
  workspaceName: "string",
2918
2918
  provider: {
2919
2919
  providerId: "string",
@@ -3235,7 +3235,7 @@ program.command("osint").description("OSINT / Ethical Hacking mode — configure
3235
3235
  process.exit(0);
3236
3236
  });
3237
3237
  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").action(async (opts) => {
3238
- const { runChat } = await Promise.resolve().then(() => require("./chat-C4jrx5t1.js"));
3238
+ const { runChat } = await Promise.resolve().then(() => require("./chat-jnikU_sY.js"));
3239
3239
  await runChat({
3240
3240
  sessionId: opts.session,
3241
3241
  model: opts.model,
@@ -3245,7 +3245,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
3245
3245
  });
3246
3246
  const agentRunCmd = program.command("agent").description("Run agent with thinking control");
3247
3247
  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) => {
3248
- const { runAgent } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3248
+ const { runAgent } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3249
3249
  await runAgent({
3250
3250
  message: opts.message,
3251
3251
  thinking: opts.thinking,
@@ -3261,7 +3261,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
3261
3261
  });
3262
3262
  const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
3263
3263
  threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
3264
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3264
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3265
3265
  const mgr = new ACPThreadManager();
3266
3266
  const threads = await mgr.list({
3267
3267
  channelId: opts.channel,
@@ -3271,7 +3271,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
3271
3271
  process.exit(0);
3272
3272
  });
3273
3273
  threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
3274
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3274
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3275
3275
  await new ACPThreadManager().terminate(id);
3276
3276
  console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
3277
3277
  process.exit(0);
@@ -3515,7 +3515,7 @@ logsCmd.action(async (opts) => {
3515
3515
  }
3516
3516
  });
3517
3517
  program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
3518
- const { startGateway } = await Promise.resolve().then(() => require("./server-B6xEN6iX.js"));
3518
+ const { startGateway } = await Promise.resolve().then(() => require("./server-5BJD83CF.js"));
3519
3519
  await startGateway();
3520
3520
  process.on("SIGINT", () => process.exit(0));
3521
3521
  process.on("SIGTERM", () => process.exit(0));
@@ -3763,13 +3763,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
3763
3763
  });
3764
3764
  const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
3765
3765
  botCmd.command("status").action(async () => {
3766
- const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-BnsEqbB1.js"));
3766
+ const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-_lByyYQP.js"));
3767
3767
  await showBotStatus();
3768
3768
  process.exit(0);
3769
3769
  });
3770
3770
  botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
3771
3771
  const inquirer$2 = require("inquirer");
3772
- const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-BnsEqbB1.js"));
3772
+ const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-_lByyYQP.js"));
3773
3773
  const chalk$11 = require("chalk");
3774
3774
  console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
3775
3775
  console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
@@ -3831,14 +3831,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
3831
3831
  cwd: process.cwd()
3832
3832
  });
3833
3833
  child.unref();
3834
- const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-BnsEqbB1.js"));
3834
+ const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-_lByyYQP.js"));
3835
3835
  await writeBotPid(child.pid);
3836
3836
  console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
3837
3837
  console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
3838
3838
  process.exit(0);
3839
3839
  return;
3840
3840
  }
3841
- const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-BnsEqbB1.js"));
3841
+ const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-_lByyYQP.js"));
3842
3842
  const cfg = await loadBotConfig();
3843
3843
  if (!cfg) {
3844
3844
  console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
@@ -3865,41 +3865,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
3865
3865
  });
3866
3866
  botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
3867
3867
  const chalk$11 = require("chalk");
3868
- const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-BnsEqbB1.js"));
3868
+ const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-_lByyYQP.js"));
3869
3869
  const stopped = await stopBotProcess();
3870
3870
  if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
3871
3871
  else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
3872
3872
  process.exit(stopped ? 0 : 0);
3873
3873
  });
3874
3874
  memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
3875
- const { searchMemory } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3875
+ const { searchMemory } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3876
3876
  await searchMemory(query);
3877
3877
  process.exit(0);
3878
3878
  });
3879
3879
  memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
3880
- const { showMemory } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3880
+ const { showMemory } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3881
3881
  await showMemory();
3882
3882
  process.exit(0);
3883
3883
  });
3884
3884
  memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
3885
- const { clearMemory } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3885
+ const { clearMemory } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3886
3886
  await clearMemory();
3887
3887
  process.exit(0);
3888
3888
  });
3889
3889
  memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
3890
- const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3890
+ const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3891
3891
  await saveMemoryDirect(text);
3892
3892
  console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
3893
3893
  process.exit(0);
3894
3894
  });
3895
3895
  const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
3896
3896
  pcCmd.command("status").description("Show PC access status and config").action(async () => {
3897
- const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3897
+ const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3898
3898
  await showPCAccessStatus();
3899
3899
  process.exit(0);
3900
3900
  });
3901
3901
  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) => {
3902
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3902
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3903
3903
  const level = opts.level;
3904
3904
  const allowed = [
3905
3905
  "read-only",
@@ -3926,7 +3926,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
3926
3926
  process.exit(0);
3927
3927
  });
3928
3928
  pcCmd.command("disable").description("Disable PC access").action(async () => {
3929
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3929
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3930
3930
  await savePCAccessConfig({ enabled: false });
3931
3931
  console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
3932
3932
  process.exit(0);
@@ -3950,7 +3950,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
3950
3950
  process.exit(0);
3951
3951
  });
3952
3952
  pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
3953
- const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-D28v-IHz.js"));
3953
+ const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BJtvfghE.js"));
3954
3954
  const cfg = await loadPCAccessConfig();
3955
3955
  if (!cfg.enabled) {
3956
3956
  console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
@@ -4009,7 +4009,7 @@ if (process.argv.length === 2) (async () => {
4009
4009
  console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
4010
4010
  } else {
4011
4011
  await new require_onboard.Banner().showNeonBanner(false);
4012
- const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-a9t7X2tC.js"));
4012
+ const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-DE6HRM9h.js"));
4013
4013
  await new HyperClawWizard$1().run({ wizard: true });
4014
4014
  }
4015
4015
  await runUpdateCheck();
@@ -0,0 +1,4 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_server = require('./server-Cv6kgXvX.js');
3
+
4
+ exports.startGateway = require_server.startGateway;