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.
- package/dist/chat-B5Y8u68o.js +325 -0
- package/dist/connector-DD5pq6wT.js +566 -0
- package/dist/daemon-B4dlIs7x.js +7 -0
- package/dist/daemon-Dhy9qq9P.js +421 -0
- package/dist/delivery-D-ud3VlK.js +4 -0
- package/dist/delivery-DcK118_L.js +95 -0
- package/dist/engine-DgGG7aYJ.js +7 -0
- package/dist/engine-w5V7Xp_6.js +327 -0
- package/dist/hyperclawbot-PfthmAly.js +516 -0
- package/dist/mcp-loader-Btdmmj1A.js +93 -0
- package/dist/onboard-BFuPscDx.js +3865 -0
- package/dist/onboard-BbJROE0s.js +13 -0
- package/dist/orchestrator-Wv1gLWH6.js +189 -0
- package/dist/orchestrator-gncKq3wS.js +6 -0
- package/dist/run-main.js +25 -25
- package/dist/runner-BccY5FGT.js +1274 -0
- package/dist/server-CnZ-Y6L-.js +1305 -0
- package/dist/server-MpkM9aIZ.js +4 -0
- package/dist/skill-runtime-DUlp_2uW.js +104 -0
- package/dist/skill-runtime-RB7_EOoi.js +5 -0
- package/dist/src-BRDu1tbl.js +63 -0
- package/dist/src-BTIUlese.js +458 -0
- package/dist/sub-agent-tools-BgXug8yS.js +39 -0
- package/dist/vision-BZG7_ybG.js +167 -0
- package/dist/vision-tools-BZM7OifC.js +51 -0
- package/dist/vision-tools-COLYNbXb.js +5 -0
- package/dist/voice-transcription-j1jpOpH2.js +170 -0
- package/package.json +1 -1
|
@@ -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-
|
|
7
|
-
const require_daemon = require('./daemon-
|
|
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-
|
|
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.
|
|
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-
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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();
|