hyperclaw 5.2.7 → 5.2.8
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/agents-routing-Cee7wrfi.js +398 -0
- package/dist/agents-routing-uNzqjgOr.js +6 -0
- package/dist/api-key-validation-DydlUth1.js +64 -0
- package/dist/api-keys-guide-DqRGa4x7.js +149 -0
- package/dist/audit-CX5poVMR.js +445 -0
- package/dist/bounty-tools-BoU1NN5N.js +211 -0
- package/dist/chat-C07wF0mM.js +494 -0
- package/dist/claw-tasks-BLqd1a0Q.js +80 -0
- package/dist/config-BlLlJ6Er.js +7 -0
- package/dist/config-SgDxKyfV.js +261 -0
- package/dist/cost-tracker-CgEXyEtz.js +103 -0
- package/dist/credentials-store-1LDtNReY.js +89 -0
- package/dist/credentials-store-BFxEJR00.js +7 -0
- package/dist/cron-tasks-1E6wKpTv.js +85 -0
- package/dist/daemon-B13UIqvL.js +7 -0
- package/dist/daemon-CzOW-1PS.js +421 -0
- package/dist/delivery-B8YGmrq5.js +4 -0
- package/dist/delivery-DWsU6gx-.js +95 -0
- package/dist/destructive-gate-bnkroJWG.js +101 -0
- package/dist/engine-ByQ-0sWM.js +7 -0
- package/dist/engine-gnMjO743.js +327 -0
- package/dist/env-resolve-BdagnXhK.js +151 -0
- package/dist/env-resolve-NEtsGacw.js +10 -0
- package/dist/gmail-watch-setup-Brkj94Sy.js +42 -0
- package/dist/heartbeat-engine-D6oSpgxx.js +89 -0
- package/dist/hyperclawbot-DzP_v3iA.js +516 -0
- package/dist/inference-BHJFPEKL.js +8 -0
- package/dist/inference-vweXyh27.js +2854 -0
- package/dist/knowledge-graph-yeMPBPP8.js +134 -0
- package/dist/loader-BXYJl25e.js +6 -0
- package/dist/loader-gTdKBwiI.js +410 -0
- package/dist/logger-C3ZCDSkc.js +86 -0
- package/dist/manager-BI3izlRG.js +120 -0
- package/dist/manager-CQ3MWNHY.js +250 -0
- package/dist/mcp-CklaYr_6.js +142 -0
- package/dist/mcp-loader-9v8eUsNI.js +93 -0
- package/dist/memory-auto-Bow9u_L7.js +306 -0
- package/dist/memory-auto-CgBAI8mm.js +5 -0
- package/dist/memory-integration-CveUEI3V.js +91 -0
- package/dist/moltbook-xP7VXKlX.js +81 -0
- package/dist/node-urDjajMt.js +226 -0
- package/dist/nodes-registry-Cd4eWw80.js +52 -0
- package/dist/oauth-flow-Bt-LaRHV.js +148 -0
- package/dist/oauth-provider-CVTKgj35.js +111 -0
- package/dist/observability-lwYm4aoB.js +89 -0
- package/dist/onboard-BV5Poocl.js +13 -0
- package/dist/onboard-UiynbNQy.js +3909 -0
- package/dist/orchestrator-DMZkAVa5.js +189 -0
- package/dist/orchestrator-rVGu7yYr.js +6 -0
- package/dist/osint-chat-Hn8qpsC1.js +836 -0
- package/dist/osint-f9DeXT6j.js +283 -0
- package/dist/pending-approval-CHUZ_qT6.js +22 -0
- package/dist/run-main.js +68 -65
- package/dist/runner-B9xANekJ.js +1274 -0
- package/dist/security--17Fxo5Z.js +4 -0
- package/dist/security-DP1qtJfL.js +90 -0
- package/dist/server-DUDXqJSo.js +1365 -0
- package/dist/server-ha59nA8a.js +4 -0
- package/dist/skill-runtime-BRp2D8Jb.js +5 -0
- package/dist/skill-runtime-C8bNwKwz.js +104 -0
- package/dist/src-B8LzGLSY.js +63 -0
- package/dist/src-DUoc6_kn.js +458 -0
- package/dist/sub-agent-tools-CldaMfd5.js +39 -0
- package/dist/tool-policy-DtGf3Ifq.js +189 -0
- package/dist/tts-elevenlabs-1zWD3QJw.js +64 -0
- package/dist/vision-DV2ubVjr.js +167 -0
- package/dist/vision-tools-Cb86uMdh.js +5 -0
- package/dist/vision-tools-DlnxaZjg.js +51 -0
- package/dist/voice-transcription-BolTT_HG.js +170 -0
- package/package.json +4 -1
- package/static/chat.html +9 -3
package/dist/run-main.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
2
|
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
3
|
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
-
require('./env-resolve-
|
|
5
|
-
const require_config = require('./config-
|
|
6
|
-
require('./server-
|
|
7
|
-
const require_daemon = require('./daemon-
|
|
4
|
+
require('./env-resolve-BdagnXhK.js');
|
|
5
|
+
const require_config = require('./config-SgDxKyfV.js');
|
|
6
|
+
require('./server-DUDXqJSo.js');
|
|
7
|
+
const require_daemon = require('./daemon-CzOW-1PS.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-UiynbNQy.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');
|
|
14
14
|
const require_manager = require('./manager-Jd0qSzVe.js');
|
|
15
15
|
const require_memory = require('./memory-D-Py-cz5.js');
|
|
16
|
-
const require_loader = require('./loader-
|
|
17
|
-
const require_agents_routing = require('./agents-routing-
|
|
16
|
+
const require_loader = require('./loader-gTdKBwiI.js');
|
|
17
|
+
const require_agents_routing = require('./agents-routing-Cee7wrfi.js');
|
|
18
18
|
const require_pairing = require('./pairing-fGaxBlgG.js');
|
|
19
19
|
const require_doctor = require('./doctor-BcfmNAGV.js');
|
|
20
20
|
const require_health = require('./health-CBy1PfzC.js');
|
|
21
|
-
const require_security = require('./security-
|
|
21
|
+
const require_security = require('./security-DP1qtJfL.js');
|
|
22
22
|
const require_device_auth_store = require('./device-auth-store-LKgpU74c.js');
|
|
23
23
|
const require_developer_keys = require('./developer-keys-CSmzA-dl.js');
|
|
24
24
|
const commander = require_chunk.__toESM(require("commander"));
|
|
@@ -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.8").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");
|
|
@@ -2682,8 +2682,8 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2682
2682
|
}
|
|
2683
2683
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2684
2684
|
const toolsCfg = cfg?.tools ?? {};
|
|
2685
|
-
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-
|
|
2686
|
-
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-
|
|
2685
|
+
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-DtGf3Ifq.js"));
|
|
2686
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
2687
2687
|
const allTools = [
|
|
2688
2688
|
...getBuiltinTools(),
|
|
2689
2689
|
...getSessionsTools(() => null),
|
|
@@ -3022,7 +3022,7 @@ cfgCmd.command("set-key <KEY=value>").description("Set provider API key or confi
|
|
|
3022
3022
|
xai: "xai"
|
|
3023
3023
|
};
|
|
3024
3024
|
const pid = keyToProvider[key] ?? keyToProvider[key.toLowerCase()] ?? cfg?.provider?.providerId ?? key.toLowerCase();
|
|
3025
|
-
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-
|
|
3025
|
+
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-DydlUth1.js"));
|
|
3026
3026
|
const formatErr = validateApiKeyFormat(pid, value);
|
|
3027
3027
|
if (formatErr) {
|
|
3028
3028
|
console.log(chalk.default.yellow(`\n ⚠ ${formatErr}\n`));
|
|
@@ -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.8\")",
|
|
3088
3088
|
workspaceName: "string",
|
|
3089
3089
|
provider: {
|
|
3090
3090
|
providerId: "string",
|
|
@@ -3362,40 +3362,40 @@ themeCmd.command("preview").description("Preview all themes side-by-side").actio
|
|
|
3362
3362
|
});
|
|
3363
3363
|
const secretsCmd = program.command("secrets").description("External secrets management");
|
|
3364
3364
|
secretsCmd.command("audit").description("Audit all required secrets").option("--required-by <ids>", "Filter by skill/provider IDs (comma-separated)").action(async (opts) => {
|
|
3365
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3365
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CQ3MWNHY.js"));
|
|
3366
3366
|
const filter = opts.requiredBy?.split(",");
|
|
3367
3367
|
await new SecretsManager().audit(filter);
|
|
3368
3368
|
process.exit(0);
|
|
3369
3369
|
});
|
|
3370
3370
|
secretsCmd.command("set <KEY=value>").description("Set a secret in .env file").action(async (kv) => {
|
|
3371
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3371
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CQ3MWNHY.js"));
|
|
3372
3372
|
await new SecretsManager().set(kv);
|
|
3373
3373
|
process.exit(0);
|
|
3374
3374
|
});
|
|
3375
3375
|
secretsCmd.command("apply").description("Write secrets from .env to shell config (~/.bashrc, ~/.zshrc)").action(async () => {
|
|
3376
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3376
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CQ3MWNHY.js"));
|
|
3377
3377
|
await new SecretsManager().apply();
|
|
3378
3378
|
process.exit(0);
|
|
3379
3379
|
});
|
|
3380
3380
|
secretsCmd.command("reload").description("Reload secrets into running gateway").action(async () => {
|
|
3381
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3381
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CQ3MWNHY.js"));
|
|
3382
3382
|
await new SecretsManager().reload();
|
|
3383
3383
|
process.exit(0);
|
|
3384
3384
|
});
|
|
3385
3385
|
secretsCmd.command("remove <key>").description("Remove a secret from .env").action(async (key) => {
|
|
3386
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3386
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CQ3MWNHY.js"));
|
|
3387
3387
|
await new SecretsManager().remove(key);
|
|
3388
3388
|
process.exit(0);
|
|
3389
3389
|
});
|
|
3390
3390
|
secretsCmd.command("credentials").description("List provider credential files (credentials/*.json)").action(async () => {
|
|
3391
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3391
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-BFxEJR00.js"));
|
|
3392
3392
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3393
3393
|
await new CredentialsStore(getHyperClawDir$1()).showList();
|
|
3394
3394
|
process.exit(0);
|
|
3395
3395
|
});
|
|
3396
3396
|
const securityCmd = program.command("security").description("Security tools");
|
|
3397
3397
|
securityCmd.command("audit").description("Security audit — file permissions, DM policies, embedded secrets").option("--deep", "Full deep scan including token entropy and installed skill risks").option("--fix", "Auto-fix safe findings (file permissions etc.)").option("--json", "Machine-readable JSON output").action(async (opts) => {
|
|
3398
|
-
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-
|
|
3398
|
+
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-CX5poVMR.js"));
|
|
3399
3399
|
await runSecurityAudit({
|
|
3400
3400
|
deep: opts.deep,
|
|
3401
3401
|
fix: opts.fix,
|
|
@@ -3403,18 +3403,21 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3403
3403
|
});
|
|
3404
3404
|
process.exit(0);
|
|
3405
3405
|
});
|
|
3406
|
-
program.command("osint").description("OSINT / Ethical Hacking mode — configure HyperClaw for security research").argument("[workflow]", "Workflow preset: recon | bugbounty | pentest | footprint | custom").option("--show", "Show current OSINT profile").option("--reset", "Clear OSINT profile and disable OSINT mode").action(async (workflow, opts) => {
|
|
3407
|
-
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-
|
|
3406
|
+
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) => {
|
|
3407
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-f9DeXT6j.js"));
|
|
3408
3408
|
if (opts.show || opts.reset) await osintSetup({
|
|
3409
3409
|
show: opts.show,
|
|
3410
3410
|
reset: opts.reset
|
|
3411
3411
|
});
|
|
3412
|
-
else if (workflow === "
|
|
3412
|
+
else if (workflow === "chat") {
|
|
3413
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-Hn8qpsC1.js"));
|
|
3414
|
+
await runOsintChat({ model: opts.model });
|
|
3415
|
+
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3413
3416
|
else await osintQuickStart();
|
|
3414
3417
|
process.exit(0);
|
|
3415
3418
|
});
|
|
3416
3419
|
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-
|
|
3420
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-C07wF0mM.js"));
|
|
3418
3421
|
await runChat({
|
|
3419
3422
|
sessionId: opts.session,
|
|
3420
3423
|
model: opts.model,
|
|
@@ -3424,7 +3427,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3424
3427
|
});
|
|
3425
3428
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3426
3429
|
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-
|
|
3430
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
3428
3431
|
await runAgent({
|
|
3429
3432
|
message: opts.message,
|
|
3430
3433
|
thinking: opts.thinking,
|
|
@@ -3440,7 +3443,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3440
3443
|
});
|
|
3441
3444
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3442
3445
|
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-
|
|
3446
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
3444
3447
|
const mgr = new ACPThreadManager();
|
|
3445
3448
|
const threads = await mgr.list({
|
|
3446
3449
|
channelId: opts.channel,
|
|
@@ -3450,7 +3453,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3450
3453
|
process.exit(0);
|
|
3451
3454
|
});
|
|
3452
3455
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3453
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3456
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
3454
3457
|
await new ACPThreadManager().terminate(id);
|
|
3455
3458
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3456
3459
|
process.exit(0);
|
|
@@ -3494,43 +3497,43 @@ deliveryCmd.command("retry <id>").description("Retry a dead-lettered delivery it
|
|
|
3494
3497
|
});
|
|
3495
3498
|
const mcpCmd = program.command("mcp").description("MCP (Model Context Protocol) server management");
|
|
3496
3499
|
mcpCmd.command("list").description("List configured MCP servers").action(async () => {
|
|
3497
|
-
const { mcpList } = await Promise.resolve().then(() => require("./mcp-
|
|
3500
|
+
const { mcpList } = await Promise.resolve().then(() => require("./mcp-CklaYr_6.js"));
|
|
3498
3501
|
await mcpList();
|
|
3499
3502
|
process.exit(0);
|
|
3500
3503
|
});
|
|
3501
3504
|
mcpCmd.command("add").description("Add MCP server").action(async () => {
|
|
3502
|
-
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-
|
|
3505
|
+
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-CklaYr_6.js"));
|
|
3503
3506
|
await mcpAdd();
|
|
3504
3507
|
process.exit(0);
|
|
3505
3508
|
});
|
|
3506
3509
|
mcpCmd.command("remove <id>").description("Remove MCP server").action(async (id) => {
|
|
3507
|
-
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-
|
|
3510
|
+
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-CklaYr_6.js"));
|
|
3508
3511
|
await mcpRemove(id);
|
|
3509
3512
|
process.exit(0);
|
|
3510
3513
|
});
|
|
3511
3514
|
mcpCmd.command("probe [id]").description("Test MCP server connection").action(async (id) => {
|
|
3512
|
-
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-
|
|
3515
|
+
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-CklaYr_6.js"));
|
|
3513
3516
|
await mcpProbe(id);
|
|
3514
3517
|
process.exit(0);
|
|
3515
3518
|
});
|
|
3516
3519
|
const nodeCmd = program.command("node").description("HyperClaw node management (local, remote, android)");
|
|
3517
3520
|
nodeCmd.command("list").description("List paired nodes").action(async () => {
|
|
3518
|
-
const { nodeList } = await Promise.resolve().then(() => require("./node-
|
|
3521
|
+
const { nodeList } = await Promise.resolve().then(() => require("./node-urDjajMt.js"));
|
|
3519
3522
|
await nodeList();
|
|
3520
3523
|
process.exit(0);
|
|
3521
3524
|
});
|
|
3522
3525
|
nodeCmd.command("add").description("Add or pair a node").action(async () => {
|
|
3523
|
-
const { nodeAdd } = await Promise.resolve().then(() => require("./node-
|
|
3526
|
+
const { nodeAdd } = await Promise.resolve().then(() => require("./node-urDjajMt.js"));
|
|
3524
3527
|
await nodeAdd();
|
|
3525
3528
|
process.exit(0);
|
|
3526
3529
|
});
|
|
3527
3530
|
nodeCmd.command("probe [id]").description("Probe node connection").action(async (id) => {
|
|
3528
|
-
const { nodeProbe } = await Promise.resolve().then(() => require("./node-
|
|
3531
|
+
const { nodeProbe } = await Promise.resolve().then(() => require("./node-urDjajMt.js"));
|
|
3529
3532
|
await nodeProbe(id);
|
|
3530
3533
|
process.exit(0);
|
|
3531
3534
|
});
|
|
3532
3535
|
nodeCmd.command("remove <id>").description("Remove paired node").action(async (id) => {
|
|
3533
|
-
const { nodeRemove } = await Promise.resolve().then(() => require("./node-
|
|
3536
|
+
const { nodeRemove } = await Promise.resolve().then(() => require("./node-urDjajMt.js"));
|
|
3534
3537
|
await nodeRemove(id);
|
|
3535
3538
|
process.exit(0);
|
|
3536
3539
|
});
|
|
@@ -3558,7 +3561,7 @@ const gmailCmd = program.command("gmail").description("Gmail Pub/Sub real-time n
|
|
|
3558
3561
|
gmailCmd.command("watch-setup").description("Register Gmail watch for push notifications. Requires: hyperclaw auth oauth google-gmail").requiredOption("-t, --topic <name>", "Pub/Sub topic (e.g. projects/myproject/topics/gmail-push)").option("-l, --labels <ids>", "Label IDs to watch (comma-separated)", "INBOX").action(async (opts) => {
|
|
3559
3562
|
const chalk$11 = require("chalk");
|
|
3560
3563
|
try {
|
|
3561
|
-
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-
|
|
3564
|
+
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-Brkj94Sy.js"));
|
|
3562
3565
|
const labelIds = opts.labels.split(",").map((s) => s.trim()).filter(Boolean);
|
|
3563
3566
|
const result = await setupGmailWatch({
|
|
3564
3567
|
topicName: opts.topic,
|
|
@@ -3578,7 +3581,7 @@ gmailCmd.command("watch-setup").description("Register Gmail watch for push notif
|
|
|
3578
3581
|
const cronCmd = program.command("cron").description("Scheduled tasks (cron → agent prompt)");
|
|
3579
3582
|
cronCmd.command("list").action(async () => {
|
|
3580
3583
|
const chalk$11 = require("chalk");
|
|
3581
|
-
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3584
|
+
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-1E6wKpTv.js"));
|
|
3582
3585
|
const tasks = await loadCronTasks();
|
|
3583
3586
|
console.log(chalk$11.bold.cyan("\n ⏰ CRON TASKS\n"));
|
|
3584
3587
|
if (tasks.length === 0) {
|
|
@@ -3598,7 +3601,7 @@ cronCmd.command("list").action(async () => {
|
|
|
3598
3601
|
});
|
|
3599
3602
|
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").action(async (schedule, prompt, opts) => {
|
|
3600
3603
|
const chalk$11 = require("chalk");
|
|
3601
|
-
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3604
|
+
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-1E6wKpTv.js"));
|
|
3602
3605
|
await loadCronTasks();
|
|
3603
3606
|
addCronTask(schedule, prompt, opts.name);
|
|
3604
3607
|
await saveCronTasks();
|
|
@@ -3608,7 +3611,7 @@ cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name
|
|
|
3608
3611
|
});
|
|
3609
3612
|
cronCmd.command("remove <id>").action(async (id) => {
|
|
3610
3613
|
const chalk$11 = require("chalk");
|
|
3611
|
-
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3614
|
+
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-1E6wKpTv.js"));
|
|
3612
3615
|
await loadCronTasks();
|
|
3613
3616
|
if (removeCronTask(id)) {
|
|
3614
3617
|
await saveCronTasks();
|
|
@@ -3668,20 +3671,20 @@ program.command("nodes").description("List connected mobile nodes (iOS/Android C
|
|
|
3668
3671
|
});
|
|
3669
3672
|
const whCmd = program.command("webhooks").description("Webhook endpoint management");
|
|
3670
3673
|
whCmd.command("list").action(async () => {
|
|
3671
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3674
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BI3izlRG.js"));
|
|
3672
3675
|
const m = new WebhookManager();
|
|
3673
3676
|
await m.load();
|
|
3674
3677
|
m.showList();
|
|
3675
3678
|
process.exit(0);
|
|
3676
3679
|
});
|
|
3677
3680
|
whCmd.command("remove <id>").action(async (id) => {
|
|
3678
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3681
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BI3izlRG.js"));
|
|
3679
3682
|
const m = new WebhookManager();
|
|
3680
3683
|
await m.remove(id);
|
|
3681
3684
|
process.exit(0);
|
|
3682
3685
|
});
|
|
3683
3686
|
whCmd.command("toggle <id>").action(async (id) => {
|
|
3684
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3687
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BI3izlRG.js"));
|
|
3685
3688
|
const m = new WebhookManager();
|
|
3686
3689
|
await m.toggle(id);
|
|
3687
3690
|
process.exit(0);
|
|
@@ -3690,7 +3693,7 @@ const logsCmd = program.command("logs").description("View gateway logs");
|
|
|
3690
3693
|
logsCmd.option("-n, --lines <n>", "Number of lines to show", "50");
|
|
3691
3694
|
logsCmd.option("-f, --follow", "Stream logs in real time");
|
|
3692
3695
|
logsCmd.action(async (opts) => {
|
|
3693
|
-
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-
|
|
3696
|
+
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-C3ZCDSkc.js"));
|
|
3694
3697
|
if (opts.follow) await streamLog();
|
|
3695
3698
|
else {
|
|
3696
3699
|
await tailLog(parseInt(opts.lines));
|
|
@@ -3698,7 +3701,7 @@ logsCmd.action(async (opts) => {
|
|
|
3698
3701
|
}
|
|
3699
3702
|
});
|
|
3700
3703
|
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-
|
|
3704
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-ha59nA8a.js"));
|
|
3702
3705
|
await startGateway();
|
|
3703
3706
|
process.on("SIGINT", () => process.exit(0));
|
|
3704
3707
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3755,9 +3758,9 @@ const authCmd = program.command("auth").description("OAuth and provider credenti
|
|
|
3755
3758
|
authCmd.command("add <service_id>").description("Add API key for a service (any provider we do not ship). Stored in credentials/ and .env.").option("--key <api_key>", "API key (prompts if omitted)").option("--base-url <url>", "Base URL (optional, e.g. https://api.example.com)").option("--env-var <name>", "Env var name (default: <SERVICE_ID>_API_KEY)").action(async (serviceId, opts) => {
|
|
3756
3759
|
const chalk$11 = require("chalk");
|
|
3757
3760
|
const inquirer$2 = require("inquirer");
|
|
3758
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3761
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-BFxEJR00.js"));
|
|
3759
3762
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3760
|
-
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-
|
|
3763
|
+
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-DqRGa4x7.js"));
|
|
3761
3764
|
const fs$7 = await import("fs-extra");
|
|
3762
3765
|
const path$5 = await import("path");
|
|
3763
3766
|
const guide = getApiKeyGuide(serviceId);
|
|
@@ -3810,7 +3813,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
3810
3813
|
});
|
|
3811
3814
|
authCmd.command("remove <service_id>").description("Remove API key for a service from credentials and .env").action(async (serviceId) => {
|
|
3812
3815
|
const chalk$11 = require("chalk");
|
|
3813
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3816
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-BFxEJR00.js"));
|
|
3814
3817
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3815
3818
|
const fs$7 = await import("fs-extra");
|
|
3816
3819
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
@@ -3830,7 +3833,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
3830
3833
|
const chalk$11 = require("chalk");
|
|
3831
3834
|
const ora$4 = (await import("ora")).default;
|
|
3832
3835
|
try {
|
|
3833
|
-
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-
|
|
3836
|
+
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-Bt-LaRHV.js"));
|
|
3834
3837
|
const spinner = ora$4("Starting OAuth flow...").start();
|
|
3835
3838
|
spinner.text = "Opening browser — complete the consent and return here.";
|
|
3836
3839
|
const tokens = await runOAuthFlow(provider, {
|
|
@@ -3838,7 +3841,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
3838
3841
|
clientSecret: opts.clientSecret
|
|
3839
3842
|
});
|
|
3840
3843
|
spinner.stop();
|
|
3841
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3844
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-CVTKgj35.js"));
|
|
3842
3845
|
const now = Math.floor(Date.now() / 1e3);
|
|
3843
3846
|
const expires_at = tokens.expires_in ? now + tokens.expires_in : void 0;
|
|
3844
3847
|
const tokenUrl = provider === "google" || provider === "google-gmail" ? "https://oauth2.googleapis.com/token" : provider === "microsoft" ? "https://login.microsoftonline.com/common/oauth2/v2.0/token" : void 0;
|
|
@@ -3873,7 +3876,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
3873
3876
|
console.log(chalk$11.red("\n ✖ No token provided.\n"));
|
|
3874
3877
|
process.exit(1);
|
|
3875
3878
|
}
|
|
3876
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3879
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-CVTKgj35.js"));
|
|
3877
3880
|
await writeOAuthToken("anthropic-setup", {
|
|
3878
3881
|
access_token: token.trim(),
|
|
3879
3882
|
token_url: "https://api.anthropic.com"
|
|
@@ -3884,7 +3887,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
3884
3887
|
});
|
|
3885
3888
|
authCmd.command("oauth-set <provider>").description("Save OAuth tokens manually (access_token, refresh_token, etc.) to ~/.hyperclaw/oauth-<provider>.json").option("--token <access_token>", "Access token").option("--refresh <refresh_token>", "Refresh token (optional)").option("--expires-in <seconds>", "Token lifetime in seconds (optional)").option("--token-url <url>", "Refresh endpoint URL (optional)").action(async (provider, opts) => {
|
|
3886
3889
|
const chalk$11 = require("chalk");
|
|
3887
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3890
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-CVTKgj35.js"));
|
|
3888
3891
|
const access_token = opts.token || process.env.OAUTH_ACCESS_TOKEN;
|
|
3889
3892
|
if (!access_token) {
|
|
3890
3893
|
console.log(chalk$11.red("\n ✖ Provide --token <access_token> or set OAUTH_ACCESS_TOKEN\n"));
|
|
@@ -3951,13 +3954,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
3951
3954
|
});
|
|
3952
3955
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
3953
3956
|
botCmd.command("status").action(async () => {
|
|
3954
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3957
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DzP_v3iA.js"));
|
|
3955
3958
|
await showBotStatus();
|
|
3956
3959
|
process.exit(0);
|
|
3957
3960
|
});
|
|
3958
3961
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
3959
3962
|
const inquirer$2 = require("inquirer");
|
|
3960
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3963
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DzP_v3iA.js"));
|
|
3961
3964
|
const chalk$11 = require("chalk");
|
|
3962
3965
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
3963
3966
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4019,14 +4022,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4019
4022
|
cwd: process.cwd()
|
|
4020
4023
|
});
|
|
4021
4024
|
child.unref();
|
|
4022
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4025
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DzP_v3iA.js"));
|
|
4023
4026
|
await writeBotPid(child.pid);
|
|
4024
4027
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4025
4028
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4026
4029
|
process.exit(0);
|
|
4027
4030
|
return;
|
|
4028
4031
|
}
|
|
4029
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4032
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DzP_v3iA.js"));
|
|
4030
4033
|
const cfg = await loadBotConfig();
|
|
4031
4034
|
if (!cfg) {
|
|
4032
4035
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4053,41 +4056,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4053
4056
|
});
|
|
4054
4057
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4055
4058
|
const chalk$11 = require("chalk");
|
|
4056
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4059
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DzP_v3iA.js"));
|
|
4057
4060
|
const stopped = await stopBotProcess();
|
|
4058
4061
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4059
4062
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
4060
4063
|
process.exit(stopped ? 0 : 1);
|
|
4061
4064
|
});
|
|
4062
4065
|
memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
|
|
4063
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
4066
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4064
4067
|
await searchMemory(query);
|
|
4065
4068
|
process.exit(0);
|
|
4066
4069
|
});
|
|
4067
4070
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4068
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4071
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4069
4072
|
await showMemory();
|
|
4070
4073
|
process.exit(0);
|
|
4071
4074
|
});
|
|
4072
4075
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4073
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4076
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4074
4077
|
await clearMemory();
|
|
4075
4078
|
process.exit(0);
|
|
4076
4079
|
});
|
|
4077
4080
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4078
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4081
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4079
4082
|
await saveMemoryDirect(text);
|
|
4080
4083
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4081
4084
|
process.exit(0);
|
|
4082
4085
|
});
|
|
4083
4086
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4084
4087
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4085
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4088
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4086
4089
|
await showPCAccessStatus();
|
|
4087
4090
|
process.exit(0);
|
|
4088
4091
|
});
|
|
4089
4092
|
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-
|
|
4093
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4091
4094
|
const level = opts.level;
|
|
4092
4095
|
const allowed = [
|
|
4093
4096
|
"read-only",
|
|
@@ -4114,7 +4117,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4114
4117
|
process.exit(0);
|
|
4115
4118
|
});
|
|
4116
4119
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4117
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4120
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4118
4121
|
await savePCAccessConfig({ enabled: false });
|
|
4119
4122
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4120
4123
|
process.exit(0);
|
|
@@ -4139,7 +4142,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4139
4142
|
process.exit(0);
|
|
4140
4143
|
});
|
|
4141
4144
|
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-
|
|
4145
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-B8LzGLSY.js"));
|
|
4143
4146
|
const cfg = await loadPCAccessConfig();
|
|
4144
4147
|
if (!cfg.enabled) {
|
|
4145
4148
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4197,7 +4200,7 @@ if (process.argv.length === 2) (async () => {
|
|
|
4197
4200
|
console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
|
|
4198
4201
|
} else {
|
|
4199
4202
|
await new require_onboard.Banner().showNeonBanner(false);
|
|
4200
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4203
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BV5Poocl.js"));
|
|
4201
4204
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4202
4205
|
}
|
|
4203
4206
|
await runUpdateCheck();
|