hyperclaw 5.4.1 → 5.4.2
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/a2ui-protocol-CUqdJGh7.js +75 -0
- package/dist/agents-routing-B0D0vcp5.js +424 -0
- package/dist/agents-routing-BC6GndVe.js +7 -0
- package/dist/agents-routing-CyFBHvyk.js +424 -0
- package/dist/agents-routing-DdpszaMx.js +7 -0
- package/dist/api-key-validation-DrMrLEa0.js +66 -0
- package/dist/api-keys-guide-DmKF7tB-.js +149 -0
- package/dist/audit-Q-Uy5nem.js +445 -0
- package/dist/backup-CtHJEqGr.js +86 -0
- package/dist/banner-DYzQ8cCb.js +143 -0
- package/dist/banner-jW84OrYg.js +7 -0
- package/dist/bounty-tools-CCwY61YO.js +211 -0
- package/dist/chat-CJa0ph8c.js +528 -0
- package/dist/chat-CKnfxa1-.js +528 -0
- package/dist/chat-CQKCIrIY.js +528 -0
- package/dist/chat-npW_ZOmo.js +528 -0
- package/dist/claw-tasks-Dq38PrL5.js +80 -0
- package/dist/config-BzK_Xl4Y.js +261 -0
- package/dist/config-ClsdlpXc.js +261 -0
- package/dist/config-Dm394B6X.js +7 -0
- package/dist/config-SiLqEezw.js +7 -0
- package/dist/connector-BYPxgmsD.js +312 -0
- package/dist/cost-tracker-x9E8VKtk.js +103 -0
- package/dist/credentials-store-Ddhgmbpz.js +7 -0
- package/dist/credentials-store-onL1tYct.js +89 -0
- package/dist/cron-tasks-CF4MJoIU.js +89 -0
- package/dist/daemon-ApB1nMs2.js +421 -0
- package/dist/daemon-B2ghXB-I.js +7 -0
- package/dist/daemon-BldYSrDj.js +421 -0
- package/dist/daemon-BqTcxMZe.js +7 -0
- package/dist/daemon-CivMFYkD.js +7 -0
- package/dist/daemon-DBXFUMue.js +421 -0
- package/dist/delivery-BURWi8wu.js +4 -0
- package/dist/delivery-kZ2mVkU5.js +95 -0
- package/dist/destructive-gate-C1ny9ek2.js +116 -0
- package/dist/engine-B-JvIt_Y.js +7 -0
- package/dist/engine-BGZnBZ4m.js +7 -0
- package/dist/engine-BTSXJNba.js +346 -0
- package/dist/engine-C7LyH310.js +353 -0
- package/dist/engine-C_nC_Ioe.js +351 -0
- package/dist/engine-DCtJSbKU.js +7 -0
- package/dist/env-resolve-C0R8R7pb.js +167 -0
- package/dist/env-resolve-Dr-KfTtw.js +11 -0
- package/dist/gmail-watch-setup-BzbG0ICM.js +42 -0
- package/dist/heartbeat-engine-B9bhAHNi.js +89 -0
- package/dist/hyperclawbot-BEm8_87h.js +516 -0
- package/dist/hyperclawbot-DR6BgI_d.js +516 -0
- package/dist/hyperclawbot-hZv4pde0.js +516 -0
- package/dist/inference-C874-2MI.js +8 -0
- package/dist/inference-DCSz6Sb1.js +2880 -0
- package/dist/knowledge-graph-BiIvoxPt.js +134 -0
- package/dist/loader-DMMb9emn.js +410 -0
- package/dist/loader-JktrmJOG.js +6 -0
- package/dist/logger-Oty9sC13.js +86 -0
- package/dist/manager-BIc6zzZV.js +250 -0
- package/dist/manager-BwobWy0l.js +120 -0
- package/dist/mcp-CI2F3m8G.js +142 -0
- package/dist/mcp-loader-C-21ynRH.js +93 -0
- package/dist/mcp-loader-Di7n__ta.js +93 -0
- package/dist/memory-auto-BVCJeTwd.js +306 -0
- package/dist/memory-auto-DXKe2ayf.js +5 -0
- package/dist/memory-integration-D2RvZ-MB.js +91 -0
- package/dist/moltbook-DvV6GFFL.js +81 -0
- package/dist/node-DFKhz7Zn.js +251 -0
- package/dist/node-pending-queue-CIMXPU6K.js +32 -0
- package/dist/nodes-registry-BeiEjd9U.js +52 -0
- package/dist/oauth-flow-CZOsvU1v.js +148 -0
- package/dist/oauth-provider-Dk-6BmGL.js +111 -0
- package/dist/observability-B3dDQSdI.js +89 -0
- package/dist/onboard-BnyHie0K.js +14 -0
- package/dist/onboard-D-5gWzH0.js +3854 -0
- package/dist/onboard-D9pjgaVR.js +3854 -0
- package/dist/onboard-UhWVcTap.js +14 -0
- package/dist/onboard-W5DsxVf2.js +3854 -0
- package/dist/onboard-YszvVNgS.js +14 -0
- package/dist/onboard-pLDBUBpO.js +14 -0
- package/dist/onboard-zISipu-l.js +3854 -0
- package/dist/orchestrator-C0t11xj7.js +189 -0
- package/dist/orchestrator-CA4eKeGn.js +189 -0
- package/dist/orchestrator-CNxTIlOK.js +189 -0
- package/dist/orchestrator-Cg1vgEHb.js +6 -0
- package/dist/orchestrator-DV5t6wQ0.js +6 -0
- package/dist/orchestrator-eT0ZL4yl.js +6 -0
- package/dist/osint-47yIek6w.js +283 -0
- package/dist/osint-c-xDjLb-.js +283 -0
- package/dist/osint-chat-BJgnkFDm.js +789 -0
- package/dist/osint-chat-C09BvbGy.js +789 -0
- package/dist/osint-chat-zdeaaw7a.js +789 -0
- package/dist/osint-e6oBrtlj.js +283 -0
- package/dist/pending-approval-CEu_-DGQ.js +22 -0
- package/dist/providers-BfW-fgpw.js +5 -0
- package/dist/providers-Cs1h_TJA.js +1137 -0
- package/dist/renderer-B_ew6jRs.js +228 -0
- package/dist/rules-BAYXiKiJ.js +106 -0
- package/dist/run-main.js +112 -77
- package/dist/runner-B5uo6C5q.js +1310 -0
- package/dist/search-tools-DXVuVXW_.js +107 -0
- package/dist/server-BJkDIs8Z.js +1467 -0
- package/dist/server-CtFoXM88.js +4 -0
- package/dist/server-DVxVLu_G.js +1467 -0
- package/dist/server-DZj6Nobr.js +1467 -0
- package/dist/server-Diu80smx.js +4 -0
- package/dist/server-DszV63tu.js +4 -0
- package/dist/skill-runtime-BLkXA1mO.js +104 -0
- package/dist/skill-runtime-BMk-h6Dl.js +5 -0
- package/dist/skill-runtime-BaTX-RGy.js +5 -0
- package/dist/skill-runtime-CB9tnc-P.js +104 -0
- package/dist/skill-runtime-D6-rGzX1.js +104 -0
- package/dist/skill-runtime-Dej1Yr5V.js +5 -0
- package/dist/src-6dmkVQGq.js +63 -0
- package/dist/src-7yBXPAs6.js +315 -0
- package/dist/src-BOnuFlI4.js +23 -0
- package/dist/src-BkEtHLLy.js +462 -0
- package/dist/src-CDeWGebw.js +315 -0
- package/dist/src-CNAVUFC6.js +462 -0
- package/dist/src-DB6dPsbY.js +63 -0
- package/dist/src-DE4mH0BB.js +63 -0
- package/dist/src-krHV0uVj.js +315 -0
- package/dist/src-tF0sBtr3.js +462 -0
- package/dist/sub-agent-tools-BwOxHu6f.js +39 -0
- package/dist/sub-agent-tools-CJVEIF1F.js +39 -0
- package/dist/sub-agent-tools-f4X1M-li.js +39 -0
- package/dist/tool-policy-CfWEnRxy.js +190 -0
- package/dist/tts-elevenlabs-CCeOqqrh.js +64 -0
- package/dist/vision-BMRKyu3c.js +167 -0
- package/dist/vision-tools-DVYx9-Jw.js +5 -0
- package/dist/vision-tools-kYb3effk.js +51 -0
- package/dist/voice-transcription-B1D1rpca.js +170 -0
- package/package.json +1 -1
- package/static/chat.html +18 -4
- package/static/web/assets/index-D2ekZ-uM.js +75 -0
- package/static/web/assets/index-D_9lvvup.css +1 -0
- package/static/web/index.html +2 -2
- package/static/web/assets/index-8bDizzaq.js +0 -75
- package/static/web/assets/index-B5N1LHGR.css +0 -1
package/dist/run-main.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
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-C0R8R7pb.js');
|
|
5
|
+
const require_config = require('./config-BzK_Xl4Y.js');
|
|
6
|
+
require('./server-DVxVLu_G.js');
|
|
7
|
+
const require_daemon = require('./daemon-BldYSrDj.js');
|
|
8
8
|
const require_gateway = require('./gateway-CzI8dnlS.js');
|
|
9
|
-
require('./providers-
|
|
10
|
-
const require_onboard = require('./onboard-
|
|
9
|
+
require('./providers-Cs1h_TJA.js');
|
|
10
|
+
const require_onboard = require('./onboard-W5DsxVf2.js');
|
|
11
11
|
require('./theme-CLXvI6Hr.js');
|
|
12
|
-
const require_banner = require('./banner-
|
|
12
|
+
const require_banner = require('./banner-DYzQ8cCb.js');
|
|
13
13
|
const require_hub = require('./hub-DAkEVTEy.js');
|
|
14
14
|
const require_update_check = require('./update-check-DlUFL81n.js');
|
|
15
15
|
const require_manager = require('./manager-Dz2eKYqo.js');
|
|
16
16
|
const require_memory = require('./memory-DPSWQBc0.js');
|
|
17
|
-
const require_loader = require('./loader-
|
|
18
|
-
const require_agents_routing = require('./agents-routing-
|
|
17
|
+
const require_loader = require('./loader-DMMb9emn.js');
|
|
18
|
+
const require_agents_routing = require('./agents-routing-B0D0vcp5.js');
|
|
19
19
|
const require_pairing = require('./pairing-B4NoBvyE.js');
|
|
20
20
|
const require_doctor = require('./doctor-C6nAGdH8.js');
|
|
21
21
|
const require_health = require('./health-BMUmUNoe.js');
|
|
@@ -346,6 +346,7 @@ var GatewayManager$1 = class {
|
|
|
346
346
|
return crypto.default.randomBytes(32).toString("hex");
|
|
347
347
|
}
|
|
348
348
|
async isRunning(port) {
|
|
349
|
+
if (typeof port !== "number" || port < 1 || port > 65535) return false;
|
|
349
350
|
return new Promise((resolve) => {
|
|
350
351
|
const socket = new net.default.Socket();
|
|
351
352
|
socket.setTimeout(500);
|
|
@@ -2616,7 +2617,7 @@ function getGitShortHash() {
|
|
|
2616
2617
|
}
|
|
2617
2618
|
const cliVersion = (() => {
|
|
2618
2619
|
const h = getGitShortHash();
|
|
2619
|
-
return h ? `5.4.
|
|
2620
|
+
return h ? `5.4.2+${h}` : "5.4.2";
|
|
2620
2621
|
})();
|
|
2621
2622
|
process.on("unhandledRejection", (reason) => {
|
|
2622
2623
|
console.error("[hyperclaw] Unhandled rejection:", reason);
|
|
@@ -2644,6 +2645,7 @@ program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. Th
|
|
|
2644
2645
|
hub, hub search [query], hub install <id>, hub list, hub scan <id>, hub marketplace
|
|
2645
2646
|
skill search|list|install (alias for hub)
|
|
2646
2647
|
memory show|add-rule|add-fact|add-image|add-audio|search|search-vector|auto-show|clear|save
|
|
2648
|
+
rag add <path>
|
|
2647
2649
|
backup create|verify <dir>|restore <dir>
|
|
2648
2650
|
config show|set-key|set-service-key|schema
|
|
2649
2651
|
secrets audit|set|apply|reload|remove|credentials
|
|
@@ -2807,8 +2809,8 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2807
2809
|
}
|
|
2808
2810
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2809
2811
|
const toolsCfg = cfg?.tools ?? {};
|
|
2810
|
-
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-
|
|
2811
|
-
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-
|
|
2812
|
+
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-CfWEnRxy.js"));
|
|
2813
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
2812
2814
|
const allTools = [
|
|
2813
2815
|
...getBuiltinTools(),
|
|
2814
2816
|
...getSessionsTools(() => null),
|
|
@@ -3404,6 +3406,39 @@ memCmd.command("add-audio <path>").description("Add audio to multimodal vector m
|
|
|
3404
3406
|
}
|
|
3405
3407
|
process.exit(0);
|
|
3406
3408
|
});
|
|
3409
|
+
const ragCmd = program.command("rag").description("RAG document ingestion — chunk and index into vector memory");
|
|
3410
|
+
ragCmd.command("add <path>").description("Chunk file and add to vector DB (requires memory-lancedb + OPENAI_API_KEY)").option("-s, --chunk-size <n>", "Chunk size", "1000").option("-o, --overlap <n>", "Chunk overlap", "200").action(async (filePath, opts) => {
|
|
3411
|
+
try {
|
|
3412
|
+
const fs$7 = await import("fs-extra");
|
|
3413
|
+
const pathMod = await import("path");
|
|
3414
|
+
const { chunkText } = await Promise.resolve().then(() => require("./src-BOnuFlI4.js"));
|
|
3415
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3416
|
+
const mod = await import(pkg).catch(() => null);
|
|
3417
|
+
if (!mod?.VectorMemoryService) throw new Error("Install: npm install @hyperclaw/rag @hyperclaw/memory-lancedb vectordb openai");
|
|
3418
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
3419
|
+
const absPath = pathMod.resolve(filePath);
|
|
3420
|
+
if (!await fs$7.pathExists(absPath)) throw new Error(`File not found: ${absPath}`);
|
|
3421
|
+
const content = await fs$7.readFile(absPath, "utf8");
|
|
3422
|
+
const size = parseInt(opts.chunkSize, 10) || 1e3;
|
|
3423
|
+
const overlap = parseInt(opts.overlap, 10) || 200;
|
|
3424
|
+
const chunks = chunkText(content, {
|
|
3425
|
+
size,
|
|
3426
|
+
overlap
|
|
3427
|
+
});
|
|
3428
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3429
|
+
const svc = new mod.VectorMemoryService({
|
|
3430
|
+
dbPath: pathMod.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3431
|
+
apiKey: cfg?.provider?.apiKey ?? process.env.OPENAI_API_KEY
|
|
3432
|
+
});
|
|
3433
|
+
await svc.init();
|
|
3434
|
+
for (let i = 0; i < chunks.length; i++) await svc.addMemory(chunks[i], "rag", `file:${absPath}:chunk:${i}`);
|
|
3435
|
+
console.log(chalk.default.green(`\n ✓ Indexed ${chunks.length} chunks from ${pathMod.basename(absPath)}\n`));
|
|
3436
|
+
} catch (e) {
|
|
3437
|
+
console.log(chalk.default.yellow(`\n ${e.message}\n`));
|
|
3438
|
+
process.exit(1);
|
|
3439
|
+
}
|
|
3440
|
+
process.exit(0);
|
|
3441
|
+
});
|
|
3407
3442
|
memCmd.command("add-fact <fact>").description("Add a fact to MEMORY.md (and vector DB when memory-lancedb is available)").action(async (fact) => {
|
|
3408
3443
|
let vectorStore;
|
|
3409
3444
|
try {
|
|
@@ -3431,20 +3466,20 @@ memCmd.command("add-fact <fact>").description("Add a fact to MEMORY.md (and vect
|
|
|
3431
3466
|
});
|
|
3432
3467
|
const backupCmd = program.command("backup").description("Backup and restore local HyperClaw state");
|
|
3433
3468
|
backupCmd.command("create").description("Create a timestamped backup of hyperclaw.json, AGENTS.md, MEMORY.md, etc.").option("-o, --output <dir>", "Output directory (default: ~/.hyperclaw/backups)").action(async (opts) => {
|
|
3434
|
-
const { createBackup } = await Promise.resolve().then(() => require("./backup-
|
|
3469
|
+
const { createBackup } = await Promise.resolve().then(() => require("./backup-CtHJEqGr.js"));
|
|
3435
3470
|
const dir = await createBackup(opts.output);
|
|
3436
3471
|
console.log(chalk.default.green(`\n ✓ Backup created: ${dir}\n`));
|
|
3437
3472
|
process.exit(0);
|
|
3438
3473
|
});
|
|
3439
3474
|
backupCmd.command("verify <dir>").description("Verify backup integrity (checksums)").action(async (dir) => {
|
|
3440
|
-
const { verifyBackup } = await Promise.resolve().then(() => require("./backup-
|
|
3475
|
+
const { verifyBackup } = await Promise.resolve().then(() => require("./backup-CtHJEqGr.js"));
|
|
3441
3476
|
const { ok, errors } = await verifyBackup(dir);
|
|
3442
3477
|
if (ok) console.log(chalk.default.green("\n ✓ Backup OK\n"));
|
|
3443
3478
|
else console.log(chalk.default.red("\n ✗ Errors:\n"), errors.map((e) => " " + e).join("\n"), "\n");
|
|
3444
3479
|
process.exit(ok ? 0 : 1);
|
|
3445
3480
|
});
|
|
3446
3481
|
backupCmd.command("restore <dir>").description("Restore from backup (overwrites local files)").option("-y, --yes", "Skip confirmation").action(async (dir, opts) => {
|
|
3447
|
-
const { restoreBackup } = await Promise.resolve().then(() => require("./backup-
|
|
3482
|
+
const { restoreBackup } = await Promise.resolve().then(() => require("./backup-CtHJEqGr.js"));
|
|
3448
3483
|
if (!opts.yes) {
|
|
3449
3484
|
console.log(chalk.default.yellow(`\n This will overwrite files in ~/.hyperclaw. Confirm? (y/N) `));
|
|
3450
3485
|
const readline$1 = (await import("readline")).createInterface({
|
|
@@ -3517,7 +3552,7 @@ cfgCmd.command("set-key <KEY=value>").description("Set provider API key or confi
|
|
|
3517
3552
|
xai: "xai"
|
|
3518
3553
|
};
|
|
3519
3554
|
const pid = keyToProvider[key] ?? keyToProvider[key.toLowerCase()] ?? cfg?.provider?.providerId ?? key.toLowerCase();
|
|
3520
|
-
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-
|
|
3555
|
+
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-DrMrLEa0.js"));
|
|
3521
3556
|
const formatErr = validateApiKeyFormat(pid, value);
|
|
3522
3557
|
if (formatErr) {
|
|
3523
3558
|
console.log(chalk.default.yellow(`\n ⚠ ${formatErr}\n`));
|
|
@@ -3866,40 +3901,40 @@ themeCmd.command("preview").description("Preview all themes side-by-side").actio
|
|
|
3866
3901
|
});
|
|
3867
3902
|
const secretsCmd = program.command("secrets").description("External secrets management");
|
|
3868
3903
|
secretsCmd.command("audit").description("Audit all required secrets").option("--required-by <ids>", "Filter by skill/provider IDs (comma-separated)").action(async (opts) => {
|
|
3869
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3904
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3870
3905
|
const filter = opts.requiredBy?.split(",");
|
|
3871
3906
|
await new SecretsManager().audit(filter);
|
|
3872
3907
|
process.exit(0);
|
|
3873
3908
|
});
|
|
3874
3909
|
secretsCmd.command("set <KEY=value>").description("Set a secret in .env file").action(async (kv) => {
|
|
3875
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3910
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3876
3911
|
await new SecretsManager().set(kv);
|
|
3877
3912
|
process.exit(0);
|
|
3878
3913
|
});
|
|
3879
3914
|
secretsCmd.command("apply").description("Write secrets from .env to shell config (~/.bashrc, ~/.zshrc)").action(async () => {
|
|
3880
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3915
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3881
3916
|
await new SecretsManager().apply();
|
|
3882
3917
|
process.exit(0);
|
|
3883
3918
|
});
|
|
3884
3919
|
secretsCmd.command("reload").description("Reload secrets into running gateway").action(async () => {
|
|
3885
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3920
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3886
3921
|
await new SecretsManager().reload();
|
|
3887
3922
|
process.exit(0);
|
|
3888
3923
|
});
|
|
3889
3924
|
secretsCmd.command("remove <key>").description("Remove a secret from .env").action(async (key) => {
|
|
3890
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3925
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3891
3926
|
await new SecretsManager().remove(key);
|
|
3892
3927
|
process.exit(0);
|
|
3893
3928
|
});
|
|
3894
3929
|
secretsCmd.command("credentials").description("List provider credential files (credentials/*.json)").action(async () => {
|
|
3895
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3930
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Ddhgmbpz.js"));
|
|
3896
3931
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3897
3932
|
await new CredentialsStore(getHyperClawDir$1()).showList();
|
|
3898
3933
|
process.exit(0);
|
|
3899
3934
|
});
|
|
3900
3935
|
const securityCmd = program.command("security").description("Security tools");
|
|
3901
3936
|
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) => {
|
|
3902
|
-
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-
|
|
3937
|
+
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-Q-Uy5nem.js"));
|
|
3903
3938
|
await runSecurityAudit({
|
|
3904
3939
|
deep: opts.deep,
|
|
3905
3940
|
fix: opts.fix,
|
|
@@ -3908,20 +3943,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3908
3943
|
process.exit(0);
|
|
3909
3944
|
});
|
|
3910
3945
|
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) => {
|
|
3911
|
-
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-
|
|
3946
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-c-xDjLb-.js"));
|
|
3912
3947
|
if (opts.show || opts.reset) await osintSetup({
|
|
3913
3948
|
show: opts.show,
|
|
3914
3949
|
reset: opts.reset
|
|
3915
3950
|
});
|
|
3916
3951
|
else if (workflow === "chat") {
|
|
3917
|
-
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-
|
|
3952
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-C09BvbGy.js"));
|
|
3918
3953
|
await runOsintChat({ model: opts.model });
|
|
3919
3954
|
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3920
3955
|
else await osintQuickStart();
|
|
3921
3956
|
process.exit(0);
|
|
3922
3957
|
});
|
|
3923
3958
|
program.command("chat").description("Interactive terminal chat with the agent").option("--session <id>", "Resume a named session").option("--model <model>", "Override model").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--workspace <dir>", "Override workspace directory").option("--daemon", "Use daemon theme (red borders & prompt)").action(async (opts) => {
|
|
3924
|
-
const { runChat } = await Promise.resolve().then(() => require("./chat-
|
|
3959
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-CJa0ph8c.js"));
|
|
3925
3960
|
const cfg = await new require_manager.ConfigManager().load().catch(() => null);
|
|
3926
3961
|
const port = cfg?.gateway?.port ?? 18789;
|
|
3927
3962
|
const gm = new GatewayManager$1();
|
|
@@ -3936,7 +3971,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3936
3971
|
});
|
|
3937
3972
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3938
3973
|
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) => {
|
|
3939
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3974
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3940
3975
|
await runAgent({
|
|
3941
3976
|
message: opts.message,
|
|
3942
3977
|
thinking: opts.thinking,
|
|
@@ -3952,7 +3987,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3952
3987
|
});
|
|
3953
3988
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3954
3989
|
threadsCmd.command("create").description("Create or resume an ACP thread").option("--resume <id>", "Resume existing session by thread ID (ACP resumeSessionId)").option("--name <name>", "Thread name").option("--channel <id>", "Channel ID").action(async (opts) => {
|
|
3955
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3990
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3956
3991
|
const mgr = new ACPThreadManager();
|
|
3957
3992
|
const thread = await mgr.create({
|
|
3958
3993
|
resumeSessionId: opts.resume,
|
|
@@ -3963,7 +3998,7 @@ threadsCmd.command("create").description("Create or resume an ACP thread").optio
|
|
|
3963
3998
|
process.exit(0);
|
|
3964
3999
|
});
|
|
3965
4000
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3966
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
4001
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3967
4002
|
const mgr = new ACPThreadManager();
|
|
3968
4003
|
const threads = await mgr.list({
|
|
3969
4004
|
channelId: opts.channel,
|
|
@@ -3973,33 +4008,33 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3973
4008
|
process.exit(0);
|
|
3974
4009
|
});
|
|
3975
4010
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3976
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
4011
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3977
4012
|
await new ACPThreadManager().terminate(id);
|
|
3978
4013
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3979
4014
|
process.exit(0);
|
|
3980
4015
|
});
|
|
3981
4016
|
program.command("acp").description("Start ACP server on stdio for IDE integration (VS Code, Zed, Cursor, Codex)").action(async () => {
|
|
3982
|
-
const { runACPStdio } = await Promise.resolve().then(() => require("./src-
|
|
4017
|
+
const { runACPStdio } = await Promise.resolve().then(() => require("./src-CDeWGebw.js"));
|
|
3983
4018
|
await runACPStdio();
|
|
3984
4019
|
});
|
|
3985
4020
|
const canvasCmd = program.command("canvas").description("Live AI-driven UI canvas");
|
|
3986
4021
|
canvasCmd.command("show").description("Show current canvas components").action(async () => {
|
|
3987
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4022
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3988
4023
|
await new CanvasRenderer().show();
|
|
3989
4024
|
process.exit(0);
|
|
3990
4025
|
});
|
|
3991
4026
|
canvasCmd.command("add <type> <title>").description("Add a canvas component (type: chart|table|form|markdown|image|custom)").action(async (type, title) => {
|
|
3992
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4027
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3993
4028
|
await new CanvasRenderer().addComponent(type, title);
|
|
3994
4029
|
process.exit(0);
|
|
3995
4030
|
});
|
|
3996
4031
|
canvasCmd.command("clear").description("Clear all canvas components").action(async () => {
|
|
3997
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4032
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3998
4033
|
await new CanvasRenderer().clear();
|
|
3999
4034
|
process.exit(0);
|
|
4000
4035
|
});
|
|
4001
4036
|
canvasCmd.command("export").description("Export canvas as HTML file").action(async () => {
|
|
4002
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4037
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
4003
4038
|
const fs$7 = require("fs-extra");
|
|
4004
4039
|
const html = await new CanvasRenderer().exportHtml();
|
|
4005
4040
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
@@ -4021,67 +4056,67 @@ deliveryCmd.command("retry <id>").description("Retry a dead-lettered delivery it
|
|
|
4021
4056
|
});
|
|
4022
4057
|
const mcpCmd = program.command("mcp").description("MCP (Model Context Protocol) server management");
|
|
4023
4058
|
mcpCmd.command("list").description("List configured MCP servers").action(async () => {
|
|
4024
|
-
const { mcpList } = await Promise.resolve().then(() => require("./mcp-
|
|
4059
|
+
const { mcpList } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
4025
4060
|
await mcpList();
|
|
4026
4061
|
process.exit(0);
|
|
4027
4062
|
});
|
|
4028
4063
|
mcpCmd.command("add").description("Add MCP server").action(async () => {
|
|
4029
|
-
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-
|
|
4064
|
+
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
4030
4065
|
await mcpAdd();
|
|
4031
4066
|
process.exit(0);
|
|
4032
4067
|
});
|
|
4033
4068
|
mcpCmd.command("remove <id>").description("Remove MCP server").action(async (id) => {
|
|
4034
|
-
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-
|
|
4069
|
+
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
4035
4070
|
await mcpRemove(id);
|
|
4036
4071
|
process.exit(0);
|
|
4037
4072
|
});
|
|
4038
4073
|
mcpCmd.command("probe [id]").description("Test MCP server connection").action(async (id) => {
|
|
4039
|
-
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-
|
|
4074
|
+
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
4040
4075
|
await mcpProbe(id);
|
|
4041
4076
|
process.exit(0);
|
|
4042
4077
|
});
|
|
4043
4078
|
const nodeCmd = program.command("node").description("HyperClaw node management (local, remote, android)");
|
|
4044
4079
|
nodeCmd.command("list").description("List paired nodes").action(async () => {
|
|
4045
|
-
const { nodeList } = await Promise.resolve().then(() => require("./node-
|
|
4080
|
+
const { nodeList } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
4046
4081
|
await nodeList();
|
|
4047
4082
|
process.exit(0);
|
|
4048
4083
|
});
|
|
4049
4084
|
nodeCmd.command("add").description("Add or pair a node").action(async () => {
|
|
4050
|
-
const { nodeAdd } = await Promise.resolve().then(() => require("./node-
|
|
4085
|
+
const { nodeAdd } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
4051
4086
|
await nodeAdd();
|
|
4052
4087
|
process.exit(0);
|
|
4053
4088
|
});
|
|
4054
4089
|
nodeCmd.command("probe [id]").description("Probe node connection").action(async (id) => {
|
|
4055
|
-
const { nodeProbe } = await Promise.resolve().then(() => require("./node-
|
|
4090
|
+
const { nodeProbe } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
4056
4091
|
await nodeProbe(id);
|
|
4057
4092
|
process.exit(0);
|
|
4058
4093
|
});
|
|
4059
4094
|
nodeCmd.command("remove <id>").description("Remove paired node").action(async (id) => {
|
|
4060
|
-
const { nodeRemove } = await Promise.resolve().then(() => require("./node-
|
|
4095
|
+
const { nodeRemove } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
4061
4096
|
await nodeRemove(id);
|
|
4062
4097
|
process.exit(0);
|
|
4063
4098
|
});
|
|
4064
4099
|
nodeCmd.command("queue [nodeId]").description("List pending work queued for dormant nodes").action(async (nodeId) => {
|
|
4065
|
-
const { nodeQueue } = await Promise.resolve().then(() => require("./node-
|
|
4100
|
+
const { nodeQueue } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
4066
4101
|
await nodeQueue(nodeId);
|
|
4067
4102
|
process.exit(0);
|
|
4068
4103
|
});
|
|
4069
4104
|
const arCmd = program.command("auto-reply").description("Auto-reply rule engine");
|
|
4070
4105
|
arCmd.command("list").action(async () => {
|
|
4071
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4106
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BAYXiKiJ.js"));
|
|
4072
4107
|
const e = new AutoReplyEngine();
|
|
4073
4108
|
await e.load();
|
|
4074
4109
|
e.showList();
|
|
4075
4110
|
process.exit(0);
|
|
4076
4111
|
});
|
|
4077
4112
|
arCmd.command("toggle <id>").action(async (id) => {
|
|
4078
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4113
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BAYXiKiJ.js"));
|
|
4079
4114
|
const e = new AutoReplyEngine();
|
|
4080
4115
|
await e.toggle(id);
|
|
4081
4116
|
process.exit(0);
|
|
4082
4117
|
});
|
|
4083
4118
|
arCmd.command("remove <id>").action(async (id) => {
|
|
4084
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4119
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BAYXiKiJ.js"));
|
|
4085
4120
|
const e = new AutoReplyEngine();
|
|
4086
4121
|
await e.remove(id);
|
|
4087
4122
|
process.exit(0);
|
|
@@ -4090,7 +4125,7 @@ const gmailCmd = program.command("gmail").description("Gmail Pub/Sub real-time n
|
|
|
4090
4125
|
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) => {
|
|
4091
4126
|
const chalk$11 = require("chalk");
|
|
4092
4127
|
try {
|
|
4093
|
-
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup
|
|
4128
|
+
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-BzbG0ICM.js"));
|
|
4094
4129
|
const labelIds = opts.labels.split(",").map((s) => s.trim()).filter(Boolean);
|
|
4095
4130
|
const result = await setupGmailWatch({
|
|
4096
4131
|
topicName: opts.topic,
|
|
@@ -4110,7 +4145,7 @@ gmailCmd.command("watch-setup").description("Register Gmail watch for push notif
|
|
|
4110
4145
|
const cronCmd = program.command("cron").description("Scheduled tasks (cron → agent prompt)");
|
|
4111
4146
|
cronCmd.command("list").action(async () => {
|
|
4112
4147
|
const chalk$11 = require("chalk");
|
|
4113
|
-
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4148
|
+
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-CF4MJoIU.js"));
|
|
4114
4149
|
const tasks = await loadCronTasks();
|
|
4115
4150
|
console.log(chalk$11.bold.cyan("\n ⏰ CRON TASKS\n"));
|
|
4116
4151
|
if (tasks.length === 0) {
|
|
@@ -4131,7 +4166,7 @@ cronCmd.command("list").action(async () => {
|
|
|
4131
4166
|
});
|
|
4132
4167
|
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").option("-s, --skill <skillId>", "Skill ID to route task (e.g. morning-briefing)").action(async (schedule, prompt, opts) => {
|
|
4133
4168
|
const chalk$11 = require("chalk");
|
|
4134
|
-
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4169
|
+
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-CF4MJoIU.js"));
|
|
4135
4170
|
await loadCronTasks();
|
|
4136
4171
|
addCronTask(schedule, prompt, opts.name, opts.skill);
|
|
4137
4172
|
await saveCronTasks();
|
|
@@ -4141,7 +4176,7 @@ cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name
|
|
|
4141
4176
|
});
|
|
4142
4177
|
cronCmd.command("remove <id>").action(async (id) => {
|
|
4143
4178
|
const chalk$11 = require("chalk");
|
|
4144
|
-
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4179
|
+
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-CF4MJoIU.js"));
|
|
4145
4180
|
await loadCronTasks();
|
|
4146
4181
|
if (removeCronTask(id)) {
|
|
4147
4182
|
await saveCronTasks();
|
|
@@ -4201,20 +4236,20 @@ program.command("nodes").description("List connected mobile nodes (iOS/Android C
|
|
|
4201
4236
|
});
|
|
4202
4237
|
const whCmd = program.command("webhooks").description("Webhook endpoint management");
|
|
4203
4238
|
whCmd.command("list").action(async () => {
|
|
4204
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
4239
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BwobWy0l.js"));
|
|
4205
4240
|
const m = new WebhookManager();
|
|
4206
4241
|
await m.load();
|
|
4207
4242
|
m.showList();
|
|
4208
4243
|
process.exit(0);
|
|
4209
4244
|
});
|
|
4210
4245
|
whCmd.command("remove <id>").action(async (id) => {
|
|
4211
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
4246
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BwobWy0l.js"));
|
|
4212
4247
|
const m = new WebhookManager();
|
|
4213
4248
|
await m.remove(id);
|
|
4214
4249
|
process.exit(0);
|
|
4215
4250
|
});
|
|
4216
4251
|
whCmd.command("toggle <id>").action(async (id) => {
|
|
4217
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
4252
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BwobWy0l.js"));
|
|
4218
4253
|
const m = new WebhookManager();
|
|
4219
4254
|
await m.toggle(id);
|
|
4220
4255
|
process.exit(0);
|
|
@@ -4223,7 +4258,7 @@ const logsCmd = program.command("logs").description("View gateway logs");
|
|
|
4223
4258
|
logsCmd.option("-n, --lines <n>", "Number of lines to show", "50");
|
|
4224
4259
|
logsCmd.option("-f, --follow", "Stream logs in real time");
|
|
4225
4260
|
logsCmd.action(async (opts) => {
|
|
4226
|
-
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-
|
|
4261
|
+
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-Oty9sC13.js"));
|
|
4227
4262
|
if (opts.follow) await streamLog();
|
|
4228
4263
|
else {
|
|
4229
4264
|
await tailLog(parseInt(opts.lines));
|
|
@@ -4231,7 +4266,7 @@ logsCmd.action(async (opts) => {
|
|
|
4231
4266
|
}
|
|
4232
4267
|
});
|
|
4233
4268
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
4234
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
4269
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-DszV63tu.js"));
|
|
4235
4270
|
await startGateway();
|
|
4236
4271
|
process.on("SIGINT", () => process.exit(0));
|
|
4237
4272
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -4288,9 +4323,9 @@ const authCmd = program.command("auth").description("OAuth and provider credenti
|
|
|
4288
4323
|
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) => {
|
|
4289
4324
|
const chalk$11 = require("chalk");
|
|
4290
4325
|
const inquirer$2 = require("inquirer");
|
|
4291
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
4326
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Ddhgmbpz.js"));
|
|
4292
4327
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
4293
|
-
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-
|
|
4328
|
+
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-DmKF7tB-.js"));
|
|
4294
4329
|
const fs$7 = (await import("fs-extra")).default;
|
|
4295
4330
|
const path$5 = await import("path");
|
|
4296
4331
|
const guide = getApiKeyGuide(serviceId);
|
|
@@ -4343,7 +4378,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
4343
4378
|
});
|
|
4344
4379
|
authCmd.command("remove <service_id>").description("Remove API key for a service from credentials and .env").action(async (serviceId) => {
|
|
4345
4380
|
const chalk$11 = require("chalk");
|
|
4346
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
4381
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Ddhgmbpz.js"));
|
|
4347
4382
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
4348
4383
|
const fs$7 = (await import("fs-extra")).default;
|
|
4349
4384
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
@@ -4363,7 +4398,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
4363
4398
|
const chalk$11 = require("chalk");
|
|
4364
4399
|
const ora$4 = (await import("ora")).default;
|
|
4365
4400
|
try {
|
|
4366
|
-
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-
|
|
4401
|
+
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-CZOsvU1v.js"));
|
|
4367
4402
|
const spinner = ora$4("Starting OAuth flow...").start();
|
|
4368
4403
|
spinner.text = "Opening browser — complete the consent and return here.";
|
|
4369
4404
|
const tokens = await runOAuthFlow(provider, {
|
|
@@ -4371,7 +4406,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
4371
4406
|
clientSecret: opts.clientSecret
|
|
4372
4407
|
});
|
|
4373
4408
|
spinner.stop();
|
|
4374
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4409
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Dk-6BmGL.js"));
|
|
4375
4410
|
const now = Math.floor(Date.now() / 1e3);
|
|
4376
4411
|
const expires_at = tokens.expires_in ? now + tokens.expires_in : void 0;
|
|
4377
4412
|
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;
|
|
@@ -4406,7 +4441,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
4406
4441
|
console.log(chalk$11.red("\n ✖ No token provided.\n"));
|
|
4407
4442
|
process.exit(1);
|
|
4408
4443
|
}
|
|
4409
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4444
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Dk-6BmGL.js"));
|
|
4410
4445
|
await writeOAuthToken("anthropic-setup", {
|
|
4411
4446
|
access_token: token.trim(),
|
|
4412
4447
|
token_url: "https://api.anthropic.com"
|
|
@@ -4417,7 +4452,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
4417
4452
|
});
|
|
4418
4453
|
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) => {
|
|
4419
4454
|
const chalk$11 = require("chalk");
|
|
4420
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4455
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Dk-6BmGL.js"));
|
|
4421
4456
|
const access_token = opts.token || process.env.OAUTH_ACCESS_TOKEN;
|
|
4422
4457
|
if (!access_token) {
|
|
4423
4458
|
console.log(chalk$11.red("\n ✖ Provide --token <access_token> or set OAUTH_ACCESS_TOKEN\n"));
|
|
@@ -4484,13 +4519,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
4484
4519
|
});
|
|
4485
4520
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
4486
4521
|
botCmd.command("status").action(async () => {
|
|
4487
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4522
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4488
4523
|
await showBotStatus();
|
|
4489
4524
|
process.exit(0);
|
|
4490
4525
|
});
|
|
4491
4526
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
4492
4527
|
const inquirer$2 = require("inquirer");
|
|
4493
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4528
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4494
4529
|
const chalk$11 = require("chalk");
|
|
4495
4530
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
4496
4531
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4552,14 +4587,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4552
4587
|
cwd: process.cwd()
|
|
4553
4588
|
});
|
|
4554
4589
|
child.unref();
|
|
4555
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4590
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4556
4591
|
await writeBotPid(child.pid);
|
|
4557
4592
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4558
4593
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4559
4594
|
process.exit(0);
|
|
4560
4595
|
return;
|
|
4561
4596
|
}
|
|
4562
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4597
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4563
4598
|
const cfg = await loadBotConfig();
|
|
4564
4599
|
if (!cfg) {
|
|
4565
4600
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4586,7 +4621,7 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4586
4621
|
});
|
|
4587
4622
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4588
4623
|
const chalk$11 = require("chalk");
|
|
4589
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4624
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4590
4625
|
const stopped = await stopBotProcess();
|
|
4591
4626
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4592
4627
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
@@ -4625,34 +4660,34 @@ memCmd.command("search-vector <query>").description("Semantic search over vector
|
|
|
4625
4660
|
process.exit(0);
|
|
4626
4661
|
});
|
|
4627
4662
|
memCmd.command("search <query>").description("Search MEMORY.md (text search)").action(async (query) => {
|
|
4628
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
4663
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4629
4664
|
await searchMemory(query);
|
|
4630
4665
|
process.exit(0);
|
|
4631
4666
|
});
|
|
4632
4667
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4633
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4668
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4634
4669
|
await showMemory();
|
|
4635
4670
|
process.exit(0);
|
|
4636
4671
|
});
|
|
4637
4672
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4638
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4673
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4639
4674
|
await clearMemory();
|
|
4640
4675
|
process.exit(0);
|
|
4641
4676
|
});
|
|
4642
4677
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4643
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4678
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4644
4679
|
await saveMemoryDirect(text);
|
|
4645
4680
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4646
4681
|
process.exit(0);
|
|
4647
4682
|
});
|
|
4648
4683
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4649
4684
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4650
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4685
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4651
4686
|
await showPCAccessStatus();
|
|
4652
4687
|
process.exit(0);
|
|
4653
4688
|
});
|
|
4654
4689
|
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) => {
|
|
4655
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4690
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4656
4691
|
const level = opts.level;
|
|
4657
4692
|
const allowed = [
|
|
4658
4693
|
"read-only",
|
|
@@ -4679,7 +4714,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4679
4714
|
process.exit(0);
|
|
4680
4715
|
});
|
|
4681
4716
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4682
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4717
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4683
4718
|
await savePCAccessConfig({ enabled: false });
|
|
4684
4719
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4685
4720
|
process.exit(0);
|
|
@@ -4704,7 +4739,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4704
4739
|
process.exit(0);
|
|
4705
4740
|
});
|
|
4706
4741
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
4707
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
4742
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4708
4743
|
const cfg = await loadPCAccessConfig();
|
|
4709
4744
|
if (!cfg.enabled) {
|
|
4710
4745
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4763,7 +4798,7 @@ if (process.argv.length === 2) (async () => {
|
|
|
4763
4798
|
console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
|
|
4764
4799
|
} else {
|
|
4765
4800
|
await new require_banner.Banner().showNeonBanner(false);
|
|
4766
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4801
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-YszvVNgS.js"));
|
|
4767
4802
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4768
4803
|
}
|
|
4769
4804
|
await runUpdateCheck();
|