hyperclaw 5.2.6 → 5.2.7

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,13 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ require('./paths-AIyBxIzm.js');
3
+ require('./paths-DPovhojT.js');
4
+ require('./env-resolve-DS92g2fk.js');
5
+ require('./config-Br73VMLb.js');
6
+ require('./server-CnZ-Y6L-.js');
7
+ require('./daemon-Dhy9qq9P.js');
8
+ require('./gateway-CzI8dnlS.js');
9
+ require('./providers-DP8T0QCR.js');
10
+ const require_onboard = require('./onboard-BFuPscDx.js');
11
+ require('./theme-CLXvI6Hr.js');
12
+
13
+ exports.HyperClawWizard = require_onboard.HyperClawWizard;
@@ -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-DgGG7aYJ.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-DgGG7aYJ.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-DgGG7aYJ.js"));
135
+ return runAgentEngine(message, opts);
136
+ }
137
+ async function planSteps(goal) {
138
+ const { runAgentEngine } = await Promise.resolve().then(() => require("./engine-DgGG7aYJ.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
+ });
@@ -0,0 +1,6 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const require_orchestrator = require('./orchestrator-Wv1gLWH6.js');
3
+
4
+ require_orchestrator.init_orchestrator();
5
+ exports.runMultiStep = require_orchestrator.runMultiStep;
6
+ exports.runMultiStepParallel = require_orchestrator.runMultiStepParallel;
package/dist/run-main.js CHANGED
@@ -3,11 +3,11 @@ const require_paths = require('./paths-AIyBxIzm.js');
3
3
  const require_paths$1 = require('./paths-DPovhojT.js');
4
4
  require('./env-resolve-DS92g2fk.js');
5
5
  const require_config = require('./config-Br73VMLb.js');
6
- require('./server-BSCeWSlZ.js');
7
- const require_daemon = require('./daemon-bJ8IYnkd.js');
6
+ require('./server-CnZ-Y6L-.js');
7
+ const require_daemon = require('./daemon-Dhy9qq9P.js');
8
8
  const require_gateway = require('./gateway-CzI8dnlS.js');
9
9
  require('./providers-DP8T0QCR.js');
10
- const require_onboard = require('./onboard-C1RArB82.js');
10
+ const require_onboard = require('./onboard-BFuPscDx.js');
11
11
  require('./theme-CLXvI6Hr.js');
12
12
  const require_hub = require('./hub-DIoASRn6.js');
13
13
  const require_update_check = require('./update-check-BeAPt4-f.js');
@@ -2538,7 +2538,7 @@ function sanitizeForLog(value) {
2538
2538
  return String(value ?? "").replace(/[\r\n\t]+/g, " ").replace(/[^\x20-\x7e]+/g, "?").slice(0, 200);
2539
2539
  }
2540
2540
  const program = new commander.Command();
2541
- program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.2.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) => {
2541
+ program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.2.7").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) => {
2542
2542
  const profile = thisCommand.opts().profile;
2543
2543
  if (profile) {
2544
2544
  const os$2 = require("os");
@@ -2683,7 +2683,7 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
2683
2683
  const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
2684
2684
  const toolsCfg = cfg?.tools ?? {};
2685
2685
  const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-TmXx_fpp.js"));
2686
- const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
2686
+ const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
2687
2687
  const allTools = [
2688
2688
  ...getBuiltinTools(),
2689
2689
  ...getSessionsTools(() => null),
@@ -3084,7 +3084,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
3084
3084
  cfgCmd.command("schema").description("Show configuration schema").action(() => {
3085
3085
  console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
3086
3086
  const schema = {
3087
- version: "string (e.g. \"5.2.6\")",
3087
+ version: "string (e.g. \"5.2.7\")",
3088
3088
  workspaceName: "string",
3089
3089
  provider: {
3090
3090
  providerId: "string",
@@ -3414,7 +3414,7 @@ program.command("osint").description("OSINT / Ethical Hacking mode — configure
3414
3414
  process.exit(0);
3415
3415
  });
3416
3416
  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) => {
3417
- const { runChat } = await Promise.resolve().then(() => require("./chat-8E4H6nqx.js"));
3417
+ const { runChat } = await Promise.resolve().then(() => require("./chat-B5Y8u68o.js"));
3418
3418
  await runChat({
3419
3419
  sessionId: opts.session,
3420
3420
  model: opts.model,
@@ -3424,7 +3424,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
3424
3424
  });
3425
3425
  const agentRunCmd = program.command("agent").description("Run agent with thinking control");
3426
3426
  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) => {
3427
- const { runAgent } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
3427
+ const { runAgent } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
3428
3428
  await runAgent({
3429
3429
  message: opts.message,
3430
3430
  thinking: opts.thinking,
@@ -3440,7 +3440,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
3440
3440
  });
3441
3441
  const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
3442
3442
  threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
3443
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
3443
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
3444
3444
  const mgr = new ACPThreadManager();
3445
3445
  const threads = await mgr.list({
3446
3446
  channelId: opts.channel,
@@ -3450,7 +3450,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
3450
3450
  process.exit(0);
3451
3451
  });
3452
3452
  threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
3453
- const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
3453
+ const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
3454
3454
  await new ACPThreadManager().terminate(id);
3455
3455
  console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
3456
3456
  process.exit(0);
@@ -3698,7 +3698,7 @@ logsCmd.action(async (opts) => {
3698
3698
  }
3699
3699
  });
3700
3700
  program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
3701
- const { startGateway } = await Promise.resolve().then(() => require("./server-DIwR4tT3.js"));
3701
+ const { startGateway } = await Promise.resolve().then(() => require("./server-MpkM9aIZ.js"));
3702
3702
  await startGateway();
3703
3703
  process.on("SIGINT", () => process.exit(0));
3704
3704
  process.on("SIGTERM", () => process.exit(0));
@@ -3951,13 +3951,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
3951
3951
  });
3952
3952
  const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
3953
3953
  botCmd.command("status").action(async () => {
3954
- const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-CIvGq2IG.js"));
3954
+ const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-PfthmAly.js"));
3955
3955
  await showBotStatus();
3956
3956
  process.exit(0);
3957
3957
  });
3958
3958
  botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
3959
3959
  const inquirer$2 = require("inquirer");
3960
- const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-CIvGq2IG.js"));
3960
+ const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-PfthmAly.js"));
3961
3961
  const chalk$11 = require("chalk");
3962
3962
  console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
3963
3963
  console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
@@ -4019,14 +4019,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4019
4019
  cwd: process.cwd()
4020
4020
  });
4021
4021
  child.unref();
4022
- const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-CIvGq2IG.js"));
4022
+ const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-PfthmAly.js"));
4023
4023
  await writeBotPid(child.pid);
4024
4024
  console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
4025
4025
  console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
4026
4026
  process.exit(0);
4027
4027
  return;
4028
4028
  }
4029
- const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-CIvGq2IG.js"));
4029
+ const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-PfthmAly.js"));
4030
4030
  const cfg = await loadBotConfig();
4031
4031
  if (!cfg) {
4032
4032
  console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
@@ -4053,41 +4053,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
4053
4053
  });
4054
4054
  botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
4055
4055
  const chalk$11 = require("chalk");
4056
- const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-CIvGq2IG.js"));
4056
+ const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-PfthmAly.js"));
4057
4057
  const stopped = await stopBotProcess();
4058
4058
  if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
4059
4059
  else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
4060
4060
  process.exit(stopped ? 0 : 1);
4061
4061
  });
4062
4062
  memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
4063
- const { searchMemory } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4063
+ const { searchMemory } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4064
4064
  await searchMemory(query);
4065
4065
  process.exit(0);
4066
4066
  });
4067
4067
  memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
4068
- const { showMemory } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4068
+ const { showMemory } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4069
4069
  await showMemory();
4070
4070
  process.exit(0);
4071
4071
  });
4072
4072
  memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
4073
- const { clearMemory } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4073
+ const { clearMemory } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4074
4074
  await clearMemory();
4075
4075
  process.exit(0);
4076
4076
  });
4077
4077
  memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
4078
- const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4078
+ const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4079
4079
  await saveMemoryDirect(text);
4080
4080
  console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
4081
4081
  process.exit(0);
4082
4082
  });
4083
4083
  const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
4084
4084
  pcCmd.command("status").description("Show PC access status and config").action(async () => {
4085
- const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4085
+ const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4086
4086
  await showPCAccessStatus();
4087
4087
  process.exit(0);
4088
4088
  });
4089
4089
  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) => {
4090
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4090
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4091
4091
  const level = opts.level;
4092
4092
  const allowed = [
4093
4093
  "read-only",
@@ -4114,7 +4114,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
4114
4114
  process.exit(0);
4115
4115
  });
4116
4116
  pcCmd.command("disable").description("Disable PC access").action(async () => {
4117
- const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4117
+ const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4118
4118
  await savePCAccessConfig({ enabled: false });
4119
4119
  console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
4120
4120
  process.exit(0);
@@ -4139,7 +4139,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
4139
4139
  process.exit(0);
4140
4140
  });
4141
4141
  pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
4142
- const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BVeLalMV.js"));
4142
+ const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BRDu1tbl.js"));
4143
4143
  const cfg = await loadPCAccessConfig();
4144
4144
  if (!cfg.enabled) {
4145
4145
  console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
@@ -4197,7 +4197,7 @@ if (process.argv.length === 2) (async () => {
4197
4197
  console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
4198
4198
  } else {
4199
4199
  await new require_onboard.Banner().showNeonBanner(false);
4200
- const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-CQkUrkNk.js"));
4200
+ const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BbJROE0s.js"));
4201
4201
  await new HyperClawWizard$1().run({ wizard: true });
4202
4202
  }
4203
4203
  await runUpdateCheck();