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.
Files changed (135) hide show
  1. package/dist/a2ui-protocol-CUqdJGh7.js +75 -0
  2. package/dist/agents-routing-B0D0vcp5.js +424 -0
  3. package/dist/agents-routing-BC6GndVe.js +7 -0
  4. package/dist/agents-routing-CyFBHvyk.js +424 -0
  5. package/dist/agents-routing-DdpszaMx.js +7 -0
  6. package/dist/api-key-validation-DrMrLEa0.js +66 -0
  7. package/dist/api-keys-guide-DmKF7tB-.js +149 -0
  8. package/dist/audit-Q-Uy5nem.js +445 -0
  9. package/dist/backup-CtHJEqGr.js +86 -0
  10. package/dist/banner-DYzQ8cCb.js +143 -0
  11. package/dist/banner-jW84OrYg.js +7 -0
  12. package/dist/bounty-tools-CCwY61YO.js +211 -0
  13. package/dist/chat-CJa0ph8c.js +528 -0
  14. package/dist/chat-CKnfxa1-.js +528 -0
  15. package/dist/chat-CQKCIrIY.js +528 -0
  16. package/dist/chat-npW_ZOmo.js +528 -0
  17. package/dist/claw-tasks-Dq38PrL5.js +80 -0
  18. package/dist/config-BzK_Xl4Y.js +261 -0
  19. package/dist/config-ClsdlpXc.js +261 -0
  20. package/dist/config-Dm394B6X.js +7 -0
  21. package/dist/config-SiLqEezw.js +7 -0
  22. package/dist/connector-BYPxgmsD.js +312 -0
  23. package/dist/cost-tracker-x9E8VKtk.js +103 -0
  24. package/dist/credentials-store-Ddhgmbpz.js +7 -0
  25. package/dist/credentials-store-onL1tYct.js +89 -0
  26. package/dist/cron-tasks-CF4MJoIU.js +89 -0
  27. package/dist/daemon-ApB1nMs2.js +421 -0
  28. package/dist/daemon-B2ghXB-I.js +7 -0
  29. package/dist/daemon-BldYSrDj.js +421 -0
  30. package/dist/daemon-BqTcxMZe.js +7 -0
  31. package/dist/daemon-CivMFYkD.js +7 -0
  32. package/dist/daemon-DBXFUMue.js +421 -0
  33. package/dist/delivery-BURWi8wu.js +4 -0
  34. package/dist/delivery-kZ2mVkU5.js +95 -0
  35. package/dist/destructive-gate-C1ny9ek2.js +116 -0
  36. package/dist/engine-B-JvIt_Y.js +7 -0
  37. package/dist/engine-BGZnBZ4m.js +7 -0
  38. package/dist/engine-BTSXJNba.js +346 -0
  39. package/dist/engine-C7LyH310.js +353 -0
  40. package/dist/engine-C_nC_Ioe.js +351 -0
  41. package/dist/engine-DCtJSbKU.js +7 -0
  42. package/dist/env-resolve-C0R8R7pb.js +167 -0
  43. package/dist/env-resolve-Dr-KfTtw.js +11 -0
  44. package/dist/gmail-watch-setup-BzbG0ICM.js +42 -0
  45. package/dist/heartbeat-engine-B9bhAHNi.js +89 -0
  46. package/dist/hyperclawbot-BEm8_87h.js +516 -0
  47. package/dist/hyperclawbot-DR6BgI_d.js +516 -0
  48. package/dist/hyperclawbot-hZv4pde0.js +516 -0
  49. package/dist/inference-C874-2MI.js +8 -0
  50. package/dist/inference-DCSz6Sb1.js +2880 -0
  51. package/dist/knowledge-graph-BiIvoxPt.js +134 -0
  52. package/dist/loader-DMMb9emn.js +410 -0
  53. package/dist/loader-JktrmJOG.js +6 -0
  54. package/dist/logger-Oty9sC13.js +86 -0
  55. package/dist/manager-BIc6zzZV.js +250 -0
  56. package/dist/manager-BwobWy0l.js +120 -0
  57. package/dist/mcp-CI2F3m8G.js +142 -0
  58. package/dist/mcp-loader-C-21ynRH.js +93 -0
  59. package/dist/mcp-loader-Di7n__ta.js +93 -0
  60. package/dist/memory-auto-BVCJeTwd.js +306 -0
  61. package/dist/memory-auto-DXKe2ayf.js +5 -0
  62. package/dist/memory-integration-D2RvZ-MB.js +91 -0
  63. package/dist/moltbook-DvV6GFFL.js +81 -0
  64. package/dist/node-DFKhz7Zn.js +251 -0
  65. package/dist/node-pending-queue-CIMXPU6K.js +32 -0
  66. package/dist/nodes-registry-BeiEjd9U.js +52 -0
  67. package/dist/oauth-flow-CZOsvU1v.js +148 -0
  68. package/dist/oauth-provider-Dk-6BmGL.js +111 -0
  69. package/dist/observability-B3dDQSdI.js +89 -0
  70. package/dist/onboard-BnyHie0K.js +14 -0
  71. package/dist/onboard-D-5gWzH0.js +3854 -0
  72. package/dist/onboard-D9pjgaVR.js +3854 -0
  73. package/dist/onboard-UhWVcTap.js +14 -0
  74. package/dist/onboard-W5DsxVf2.js +3854 -0
  75. package/dist/onboard-YszvVNgS.js +14 -0
  76. package/dist/onboard-pLDBUBpO.js +14 -0
  77. package/dist/onboard-zISipu-l.js +3854 -0
  78. package/dist/orchestrator-C0t11xj7.js +189 -0
  79. package/dist/orchestrator-CA4eKeGn.js +189 -0
  80. package/dist/orchestrator-CNxTIlOK.js +189 -0
  81. package/dist/orchestrator-Cg1vgEHb.js +6 -0
  82. package/dist/orchestrator-DV5t6wQ0.js +6 -0
  83. package/dist/orchestrator-eT0ZL4yl.js +6 -0
  84. package/dist/osint-47yIek6w.js +283 -0
  85. package/dist/osint-c-xDjLb-.js +283 -0
  86. package/dist/osint-chat-BJgnkFDm.js +789 -0
  87. package/dist/osint-chat-C09BvbGy.js +789 -0
  88. package/dist/osint-chat-zdeaaw7a.js +789 -0
  89. package/dist/osint-e6oBrtlj.js +283 -0
  90. package/dist/pending-approval-CEu_-DGQ.js +22 -0
  91. package/dist/providers-BfW-fgpw.js +5 -0
  92. package/dist/providers-Cs1h_TJA.js +1137 -0
  93. package/dist/renderer-B_ew6jRs.js +228 -0
  94. package/dist/rules-BAYXiKiJ.js +106 -0
  95. package/dist/run-main.js +112 -77
  96. package/dist/runner-B5uo6C5q.js +1310 -0
  97. package/dist/search-tools-DXVuVXW_.js +107 -0
  98. package/dist/server-BJkDIs8Z.js +1467 -0
  99. package/dist/server-CtFoXM88.js +4 -0
  100. package/dist/server-DVxVLu_G.js +1467 -0
  101. package/dist/server-DZj6Nobr.js +1467 -0
  102. package/dist/server-Diu80smx.js +4 -0
  103. package/dist/server-DszV63tu.js +4 -0
  104. package/dist/skill-runtime-BLkXA1mO.js +104 -0
  105. package/dist/skill-runtime-BMk-h6Dl.js +5 -0
  106. package/dist/skill-runtime-BaTX-RGy.js +5 -0
  107. package/dist/skill-runtime-CB9tnc-P.js +104 -0
  108. package/dist/skill-runtime-D6-rGzX1.js +104 -0
  109. package/dist/skill-runtime-Dej1Yr5V.js +5 -0
  110. package/dist/src-6dmkVQGq.js +63 -0
  111. package/dist/src-7yBXPAs6.js +315 -0
  112. package/dist/src-BOnuFlI4.js +23 -0
  113. package/dist/src-BkEtHLLy.js +462 -0
  114. package/dist/src-CDeWGebw.js +315 -0
  115. package/dist/src-CNAVUFC6.js +462 -0
  116. package/dist/src-DB6dPsbY.js +63 -0
  117. package/dist/src-DE4mH0BB.js +63 -0
  118. package/dist/src-krHV0uVj.js +315 -0
  119. package/dist/src-tF0sBtr3.js +462 -0
  120. package/dist/sub-agent-tools-BwOxHu6f.js +39 -0
  121. package/dist/sub-agent-tools-CJVEIF1F.js +39 -0
  122. package/dist/sub-agent-tools-f4X1M-li.js +39 -0
  123. package/dist/tool-policy-CfWEnRxy.js +190 -0
  124. package/dist/tts-elevenlabs-CCeOqqrh.js +64 -0
  125. package/dist/vision-BMRKyu3c.js +167 -0
  126. package/dist/vision-tools-DVYx9-Jw.js +5 -0
  127. package/dist/vision-tools-kYb3effk.js +51 -0
  128. package/dist/voice-transcription-B1D1rpca.js +170 -0
  129. package/package.json +1 -1
  130. package/static/chat.html +18 -4
  131. package/static/web/assets/index-D2ekZ-uM.js +75 -0
  132. package/static/web/assets/index-D_9lvvup.css +1 -0
  133. package/static/web/index.html +2 -2
  134. package/static/web/assets/index-8bDizzaq.js +0 -75
  135. 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-NNM3F6Eo.js');
5
- const require_config = require('./config-DN9fdLL3.js');
6
- require('./server-MDmdWHob.js');
7
- const require_daemon = require('./daemon-DBTtYx6E.js');
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-dHhpJo9j.js');
10
- const require_onboard = require('./onboard-CXSVPnP7.js');
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-CZ2BfvQq.js');
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-D6yjBYo4.js');
18
- const require_agents_routing = require('./agents-routing-EwzORQQv.js');
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.1+${h}` : "5.4.1";
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-1EBdJkSG.js"));
2811
- const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
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-7l3iovkX.js"));
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-7l3iovkX.js"));
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-7l3iovkX.js"));
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-BANgbsfO.js"));
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-CNgdJunf.js"));
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-CNgdJunf.js"));
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-CNgdJunf.js"));
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-CNgdJunf.js"));
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-CNgdJunf.js"));
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-CR4WSDGl.js"));
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-BLMB8qp7.js"));
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-DLYZsp1k.js"));
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-B0lc0Y6r.js"));
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-CiuT-GTs.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-D-OND_62.js"));
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-Cg3c41A5.js"));
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-Cg3c41A5.js"));
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-Cg3c41A5.js"));
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-Cg3c41A5.js"));
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-CAJSA_ee.js"));
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-CAJSA_ee.js"));
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-CAJSA_ee.js"));
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-CAJSA_ee.js"));
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-CLWgPlAk.js"));
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-CLWgPlAk.js"));
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-CLWgPlAk.js"));
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-CLWgPlAk.js"));
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-CLWgPlAk.js"));
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-D0v5nuSE.js"));
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-D0v5nuSE.js"));
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-D0v5nuSE.js"));
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--eQ8raeb.js"));
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-f_ieXSG2.js"));
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-f_ieXSG2.js"));
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-f_ieXSG2.js"));
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-R0TlRMZy.js"));
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-R0TlRMZy.js"));
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-R0TlRMZy.js"));
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-CmphFNmW.js"));
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-BlqWBbS7.js"));
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-CR4WSDGl.js"));
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-CFJPrgsL.js"));
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-CR4WSDGl.js"));
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-C4QSMsbl.js"));
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-Bnul5A_Z.js"));
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-Bnul5A_Z.js"));
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-Bnul5A_Z.js"));
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-v65eL2U0.js"));
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-v65eL2U0.js"));
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-v65eL2U0.js"));
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-v65eL2U0.js"));
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-v65eL2U0.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-CyCLoqIP.js"));
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-DPmufMqX.js"));
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();