@visorcraft/idlehands 4.2.6 → 4.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/{accounts-B8cGzkjD.js → accounts-BDVs8LTu.js} +1 -1
  2. package/dist/{accounts-D5tB_lO0.js → accounts-CIvVRRHb.js} +1 -1
  3. package/dist/{accounts-BQC_GRUB.js → accounts-Dk8mJIrQ.js} +6 -6
  4. package/dist/{agent-scope-Bxq1eWbA.js → agent-scope-DyP_tr7s.js} +4 -4
  5. package/dist/{agent-via-gateway-B_XqJoXa.js → agent-via-gateway-BMsMjnWe.js} +7 -7
  6. package/dist/{agent-via-gateway-BTaqOj5m.js → agent-via-gateway-CW7FhqaW.js} +60 -60
  7. package/dist/{anton-BvT9_aWG.js → anton-BDDjbZ5H.js} +1 -1
  8. package/dist/{anton-QvQ90n78.js → anton-C33_8bVg.js} +5 -5
  9. package/dist/{audio-preflight-qkU2lsDn.js → audio-preflight-BSlR2jEq.js} +35 -35
  10. package/dist/{audio-preflight-CSSlgO89.js → audio-preflight-vD3mDc6w.js} +4 -4
  11. package/dist/{auth-store-Bb4aajHu.js → auth-store-DXT-l7fO.js} +12 -12
  12. package/dist/{bindings-CLZIJ0Eo.js → bindings-D3b5Fmc9.js} +2 -2
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +60 -60
  15. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  16. package/dist/bundled/command-logger/handler.js +3 -3
  17. package/dist/bundled/session-memory/handler.js +60 -60
  18. package/dist/{plugin-sdk/channel-activity-TcS_VfJk.js → channel-activity-D_TMOGQ0.js} +3 -3
  19. package/dist/{chrome-Do5potHV.js → chrome-DEnkfZ9p.js} +9 -9
  20. package/dist/{chrome-CT_a9OgI.js → chrome-_2tzVjVl.js} +26 -26
  21. package/dist/{chunk-Djk-9JeT.js → chunk-CMpX7Jaz.js} +1 -1
  22. package/dist/{commands-registry-_TBHHpvt.js → commands-registry-j4vAzcF2.js} +5 -5
  23. package/dist/{deliver-whAbSPLk.js → deliver-5FLCa6tB.js} +1 -1
  24. package/dist/{deliver-Db2xqgLg.js → deliver-CVTXl0Cv.js} +20 -20
  25. package/dist/{deps-BO1TSzg3.js → deps-Bp-zobQ9.js} +1 -1
  26. package/dist/{plugin-sdk/deps-DHns5FkJ.js → deps-k7zLO-No.js} +6 -6
  27. package/dist/{diagnostic-BvlZ0Sot.js → diagnostic-4owMk4vH.js} +1 -1
  28. package/dist/{dock-ejUetwTC.js → dock-BgOmHcbh.js} +6 -6
  29. package/dist/emergency-stop-Bqex5qoB.js +113 -0
  30. package/dist/{emergency-stop-C_7XuwW8.js → emergency-stop-CHHSptxF.js} +7 -7
  31. package/dist/{env-q-PhWbb_.js → env-B5G1qwGc.js} +1 -1
  32. package/dist/{plugin-sdk/errors-UqLewZJL.js → errors-C_0nm4TJ.js} +1 -1
  33. package/dist/extensionAPI.js +7 -7
  34. package/dist/{fetch-guard-CcfDZXe9.js → fetch-guard-iuQsIjqN.js} +1 -1
  35. package/dist/{frontmatter-pTUG4Sx_.js → frontmatter-BOudmHMS.js} +2 -2
  36. package/dist/{fs-safe-2l05hI1Y.js → fs-safe-CYUaAFO9.js} +2 -2
  37. package/dist/{gemini-auth-DLSGffQK.js → gemini-auth-CIyaa44H.js} +2 -2
  38. package/dist/{github-copilot-token-BjmEQcmi.js → github-copilot-token-Dgt6cnsM.js} +7 -7
  39. package/dist/{image-Dlu13Ebx.js → image-COw__ACq.js} +6 -6
  40. package/dist/{image-BAsQlUqT.js → image-C_aN5P6-.js} +1 -1
  41. package/dist/{image-ops-J8P5zOFm.js → image-ops-D1KtygWz.js} +1 -1
  42. package/dist/{plugin-sdk/ir-Bv0Zbp2E.js → ir-B7IBoKLy.js} +6 -6
  43. package/dist/llm-slug-generator.js +60 -60
  44. package/dist/{local-roots-d4y0lvs2.js → local-roots-KN4Hp1yZ.js} +5 -5
  45. package/dist/{login-C2X0In6m.js → login-CFr5vJmR.js} +6 -6
  46. package/dist/{login-qr-C17PY0rr.js → login-qr-CFFFOjOl.js} +11 -11
  47. package/dist/{manager-CgzA1hKo.js → manager-BE_76jWB.js} +15 -15
  48. package/dist/{markdown-tables-R8VTpfE9.js → markdown-tables-CzsockiZ.js} +1 -1
  49. package/dist/{message-channel-ZdI1-uUh.js → message-channel-C8QtrwEU.js} +1 -1
  50. package/dist/{model-selection-C5hI1dum.js → model-selection-1MMYqY6M.js} +41 -41
  51. package/dist/{outbound-CdY_AskB.js → outbound-BNh6PpQb.js} +6 -6
  52. package/dist/{outbound-attachment-IfeZJAKk.js → outbound-attachment-3I6GzwDe.js} +2 -2
  53. package/dist/{path-alias-guards-BZmt6hFb.js → path-alias-guards-Cu1nXNMM.js} +1 -1
  54. package/dist/{paths-DQpv9a3Q.js → paths-BYNVLNi_.js} +5 -5
  55. package/dist/{paths-D3p7ZvM6.js → paths-D_qUel1T.js} +3 -3
  56. package/dist/{pi-embedded-Cfe7sfXp.js → pi-embedded-BYtUxbhJ.js} +26 -26
  57. package/dist/{pi-embedded-CQoT3WaM.js → pi-embedded-CIJj8Clt.js} +184 -184
  58. package/dist/{pi-embedded-helpers-Ct2rwp-P.js → pi-embedded-helpers-C2j0LfJC.js} +4 -4
  59. package/dist/{pi-embedded-helpers-B3ceCcxm.js → pi-embedded-helpers-CyTpDKo5.js} +24 -24
  60. package/dist/{pi-model-discovery-Dlx4RLWo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
  61. package/dist/plugin-sdk/{accounts-Kt6ygPsC.js → accounts-BLYMokxV.js} +2 -2
  62. package/dist/plugin-sdk/{accounts-mjFAny5F.js → accounts-C5tHm1UI.js} +1 -1
  63. package/dist/plugin-sdk/{accounts-B9nfRzyn.js → accounts-CBVAw5_G.js} +1 -1
  64. package/dist/plugin-sdk/{agent-scope-CU41EMlR.js → agent-scope-jl80I5G9.js} +2 -2
  65. package/dist/plugin-sdk/{agent-via-gateway-DgS1tFFD.js → agent-via-gateway-RUSmiQPF.js} +55 -55
  66. package/dist/plugin-sdk/{anton-CNaMAyWx.js → anton-BluQsLu2.js} +4 -4
  67. package/dist/plugin-sdk/{api-key-rotation-CZhCWd61.js → api-key-rotation-D6nK54XH.js} +2 -2
  68. package/dist/plugin-sdk/{audio-preflight-CRgDehfO.js → audio-preflight-CKqqN8ty.js} +30 -30
  69. package/dist/plugin-sdk/{auth-store-DycBvVqL.js → auth-store-DaPWgQTx.js} +1 -1
  70. package/dist/plugin-sdk/{bindings-BDKKHGv-.js → bindings-xXgmJGxj.js} +2 -2
  71. package/dist/{channel-activity-DdL3RAv_.js → plugin-sdk/channel-activity-loOg1DRw.js} +3 -3
  72. package/dist/plugin-sdk/{channel-web-DwpLcf95.js → channel-web-Dn0OzSFP.js} +24 -24
  73. package/dist/plugin-sdk/{chrome-BCTizrZD.js → chrome-Cb9FgiCI.js} +6 -6
  74. package/dist/plugin-sdk/{chunk-DZr5xuqv.js → chunk-PW4MBmaN.js} +1 -1
  75. package/dist/plugin-sdk/{commands-registry-BqJLwZYh.js → commands-registry-B5m2EsHz.js} +5 -5
  76. package/dist/plugin-sdk/{config-BzPMtEKA.js → config-CEgzwk0J.js} +10 -10
  77. package/dist/plugin-sdk/{deliver-Cfc1UCre.js → deliver-BNfMF0Nb.js} +10 -10
  78. package/dist/{deps-BQsD8-_C.js → plugin-sdk/deps-C8qACokW.js} +6 -6
  79. package/dist/plugin-sdk/{diagnostic-B8VzcqLf.js → diagnostic-ByA6zvzu.js} +1 -1
  80. package/dist/plugin-sdk/{dock-CMURqoee.js → dock-DKQYtT6-.js} +6 -6
  81. package/dist/plugin-sdk/{emergency-stop-BV2NiRit.js → emergency-stop-DylRK_E8.js} +55 -55
  82. package/dist/plugin-sdk/{env-qurSiOO2.js → env-5XecRTLs.js} +1 -1
  83. package/dist/{errors-C4SHjIZK.js → plugin-sdk/errors-CMcD8Lhh.js} +1 -1
  84. package/dist/plugin-sdk/{fetch-guard-C174s8ZV.js → fetch-guard-DwdUEdmT.js} +1 -1
  85. package/dist/plugin-sdk/{fs-safe-CCXTOK7j.js → fs-safe-qsx2_8-o.js} +2 -2
  86. package/dist/plugin-sdk/{image-DDuK8tyO.js → image-C_1tftC8.js} +6 -6
  87. package/dist/plugin-sdk/{image-ops-BRYGGDwL.js → image-ops-CXSUo-AM.js} +1 -1
  88. package/dist/plugin-sdk/index.js +60 -60
  89. package/dist/{ir-BT5aAdU9.js → plugin-sdk/ir-kdDGpPMq.js} +6 -6
  90. package/dist/plugin-sdk/{local-roots-bHCsSVt_.js → local-roots-DjB6DYeI.js} +4 -4
  91. package/dist/plugin-sdk/{login-CkQrnY2G.js → login-DIwO5D5Y.js} +6 -6
  92. package/dist/plugin-sdk/{login-qr-DAeHibH_.js → login-qr-CpCAJuvT.js} +8 -8
  93. package/dist/plugin-sdk/{manager-CTC1S_c9.js → manager-Dox9r7og.js} +10 -10
  94. package/dist/plugin-sdk/{markdown-tables-DfUQHRZY.js → markdown-tables-Drtwd4J5.js} +1 -1
  95. package/dist/plugin-sdk/{message-channel-DiMXmQeQ.js → message-channel-CQ0qkGHj.js} +1 -1
  96. package/dist/plugin-sdk/{outbound-B1twcfz5.js → outbound-Dx_q6JAI.js} +6 -6
  97. package/dist/plugin-sdk/{outbound-attachment-Bs7fNaqv.js → outbound-attachment-BisU5Vji.js} +2 -2
  98. package/dist/plugin-sdk/{path-alias-guards-yyy61qHh.js → path-alias-guards-C_uBEYb4.js} +1 -1
  99. package/dist/plugin-sdk/{pi-embedded-helpers-BAm9cWol.js → pi-embedded-helpers-B68z4sHq.js} +16 -16
  100. package/dist/plugin-sdk/{pi-model-discovery-Bt6JtUFr.js → pi-model-discovery-Dt6899be.js} +1 -1
  101. package/dist/plugin-sdk/{plugins-DRPlVBr_.js → plugins-NTjIvHYk.js} +5 -5
  102. package/dist/plugin-sdk/{pw-ai-CY0evCZ2.js → pw-ai-Dk2PTZzq.js} +10 -10
  103. package/dist/plugin-sdk/{qmd-manager-BckPBwZX.js → qmd-manager-juzrnopq.js} +5 -5
  104. package/dist/plugin-sdk/{query-expansion-CPqK-tTR.js → query-expansion-xBXvzdkL.js} +2 -2
  105. package/dist/plugin-sdk/{redact-Ub8sMBBC.js → redact-B6VQH3UQ.js} +1 -1
  106. package/dist/plugin-sdk/{replies-DwTNZJgi.js → replies-ZovJp-3F.js} +3 -3
  107. package/dist/plugin-sdk/{reply-B_cEB9MH.js → reply-DhycbFxW.js} +95 -95
  108. package/dist/plugin-sdk/{reply-prefix-BqV0o7_7.js → reply-prefix--mxmTL7A.js} +1 -1
  109. package/dist/plugin-sdk/{resolve-outbound-target-DAdNGEqG.js → resolve-outbound-target-CnUtsDch.js} +2 -2
  110. package/dist/plugin-sdk/{resolve-route-C5mAwY-o.js → resolve-route-BZABUE4J.js} +3 -3
  111. package/dist/plugin-sdk/{retry-2OVzZJMZ.js → retry-Bh7jveNm.js} +1 -1
  112. package/dist/plugin-sdk/{runner-Ck0w3rcz.js → runner-CZz1tOIR.js} +10 -10
  113. package/dist/plugin-sdk/{send-BBD-m-nM.js → send-0EVlThEG.js} +10 -10
  114. package/dist/plugin-sdk/{send-CaPoBwby.js → send-B26cNPqY.js} +6 -6
  115. package/dist/plugin-sdk/{send-CPeuqOlq.js → send-BCjVQhp3.js} +13 -13
  116. package/dist/plugin-sdk/{send-SsqudCMv.js → send-CHUGIZs9.js} +7 -7
  117. package/dist/plugin-sdk/{send-A4Lv5nrg.js → send-Cb5NIN8s.js} +7 -7
  118. package/dist/plugin-sdk/{session-DpL4uk1J.js → session-DdJj6_DW.js} +3 -3
  119. package/dist/plugin-sdk/{sessions-CQ5iD4Uq.js → sessions-DNx9c2O2.js} +6 -6
  120. package/dist/plugin-sdk/{skill-commands-C_O9I71g.js → skill-commands-DorIK8kn.js} +5 -5
  121. package/dist/plugin-sdk/{skills-DmiIiX4l.js → skills-Dh_Cf2PA.js} +8 -8
  122. package/dist/plugin-sdk/{store-BI3rLJdW.js → store-CCCXwngh.js} +2 -2
  123. package/dist/plugin-sdk/{subsystem-lJo9gqAK.js → subsystem-DWPzKeZ0.js} +1 -1
  124. package/dist/plugin-sdk/{tables-C4X_nAUQ.js → tables-CF9W23Rd.js} +1 -1
  125. package/dist/plugin-sdk/{target-errors-CXh6e9ZE.js → target-errors-DaH0qYtL.js} +2 -2
  126. package/dist/{tokens-DGajj8M9.js → plugin-sdk/tokens-Y97UKh4C.js} +1 -1
  127. package/dist/plugin-sdk/{tool-images-Cf9aWlVu.js → tool-images-BMRkn_yk.js} +2 -2
  128. package/dist/plugin-sdk/{tool-loop-detection-DuwkSqZL.js → tool-loop-detection-Cv8wyfAi.js} +2 -2
  129. package/dist/plugin-sdk/{utils-dP-FpIgu.js → utils-Dyj2wV4e.js} +2 -2
  130. package/dist/plugin-sdk/web-yryYzFPs.js +71 -0
  131. package/dist/plugin-sdk/{whatsapp-actions-Bcknq6EZ.js → whatsapp-actions-B5g-Rywy.js} +23 -23
  132. package/dist/{plugins-DYr-HHj0.js → plugins-CRB60mCJ.js} +10 -10
  133. package/dist/{pw-ai-DIV4PcIo.js → pw-ai-CowTfhOG.js} +13 -13
  134. package/dist/{pw-ai-yrIWfcWX.js → pw-ai-DjmrIQle.js} +1 -1
  135. package/dist/{qmd-manager-BRvg3Rx2.js → qmd-manager-B_GgyQQ0.js} +8 -8
  136. package/dist/{query-expansion-DHuNyU-_.js → query-expansion-DEq020GG.js} +5 -5
  137. package/dist/{redact-1Y0KPNtr.js → redact-Bvpf-ATQ.js} +1 -1
  138. package/dist/{replies-2C16fnBP.js → replies-6_GxvQYe.js} +3 -3
  139. package/dist/{reply-prefix-DCljZiIB.js → reply-prefix-BUgeSN2R.js} +1 -1
  140. package/dist/{resolve-route-ClcifpKn.js → resolve-route-DuttYY7A.js} +4 -4
  141. package/dist/{retry-CG6cMRDQ.js → retry-BeB9WenR.js} +1 -1
  142. package/dist/{runner-BkCU-kqs.js → runner-BzNdfqDz.js} +11 -11
  143. package/dist/{runner-Bv_BA3vd.js → runner-CZW_eyf2.js} +1 -1
  144. package/dist/{send-DZa8fWSm.js → send-BeIZJuy4.js} +7 -7
  145. package/dist/{send-Y1hD4tQ1.js → send-C1hvd3bt.js} +6 -6
  146. package/dist/{send-BOxJ4QXF.js → send-D4bMycQu.js} +7 -7
  147. package/dist/{send-FLdrx-oF.js → send-Dfa3sn6r.js} +24 -24
  148. package/dist/{send-IlPMLAH-.js → send-DmLC7aEF.js} +10 -10
  149. package/dist/{session-nUPBXeEa.js → session-F_YDS_1V.js} +7 -7
  150. package/dist/{sessions-DRA4oaxz.js → sessions-3ioSeOA1.js} +41 -41
  151. package/dist/{skill-commands-BHTBXXVn.js → skill-commands-Ck3flWX7.js} +9 -9
  152. package/dist/{skills-umlGvChF.js → skills-CnAPWfca.js} +22 -22
  153. package/dist/{store-D-ZicQeo.js → store-CvMgrKWx.js} +2 -2
  154. package/dist/{subsystem-D7ZepYT1.js → subsystem-tzu-rIAJ.js} +1 -1
  155. package/dist/{tables-Co_R_WKs.js → tables-5k-zOZ-s.js} +1 -1
  156. package/dist/{target-errors-B1mcM4WR.js → target-errors-BPfQrPim.js} +2 -2
  157. package/dist/{plugin-sdk/tokens-CU9S3S7t.js → tokens-BRLyURxW.js} +1 -1
  158. package/dist/{tool-images-Duuqr4bN.js → tool-images-CcGZpzmq.js} +2 -2
  159. package/dist/{tool-loop-detection-CjWRg_4q.js → tool-loop-detection-BNGetx3Z.js} +3 -3
  160. package/dist/{utils-D9wGoiU9.js → utils-CTFLl_ji.js} +18 -18
  161. package/dist/{web-D3gOCfby.js → web-BsIp9miY.js} +8 -8
  162. package/dist/{web-D7J5iB9K.js → web-JPsGpVZ5.js} +66 -66
  163. package/dist/{whatsapp-actions-BJ6kVDXi.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
  164. package/dist/{workspace-tAtkoD_r.js → workspace-DBFSzT6O.js} +18 -18
  165. package/package.json +1 -1
  166. package/dist/emergency-stop-DVyGxgzf.js +0 -113
  167. package/dist/plugin-sdk/web-B-hYOnMb.js +0 -71
@@ -1,13 +1,13 @@
1
- import { p as normalizeSkillFilter } from "./agent-scope-Bxq1eWbA.js";
2
- import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
3
- import { K as resolvePreferredIdleHandsTmpDir, h as resolveUserPath, t as CONFIG_DIR } from "./utils-D9wGoiU9.js";
4
- import { h as resolveIdleHandsPackageRootSync, j as isPathInside } from "./workspace-tAtkoD_r.js";
5
- import { ct as loadPluginManifestRegistry, ht as resolveMemorySlotDecision, in as isDangerousHostEnvVarName, mt as resolveEffectiveEnableState, pt as normalizePluginsConfig } from "./model-selection-C5hI1dum.js";
6
- import { a as resolveIdleHandsManifestBlock, c as resolveIdleHandsManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseIdleHandsManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveIdleHandsManifestInstall, r as parseFrontmatterBool, s as resolveIdleHandsManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-pTUG4Sx_.js";
7
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-BZmt6hFb.js";
1
+ import { p as normalizeSkillFilter } from "./agent-scope-DyP_tr7s.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
3
+ import { K as resolvePreferredIdleHandsTmpDir, h as resolveUserPath, t as CONFIG_DIR } from "./utils-CTFLl_ji.js";
4
+ import { h as resolveIdleHandsPackageRootSync, j as isPathInside } from "./workspace-DBFSzT6O.js";
5
+ import { ct as loadPluginManifestRegistry, ht as resolveMemorySlotDecision, in as isDangerousHostEnvVarName, mt as resolveEffectiveEnableState, pt as normalizePluginsConfig } from "./model-selection-1MMYqY6M.js";
6
+ import { a as resolveIdleHandsManifestBlock, c as resolveIdleHandsManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseIdleHandsManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveIdleHandsManifestInstall, r as parseFrontmatterBool, s as resolveIdleHandsManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-BOudmHMS.js";
7
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-Cu1nXNMM.js";
8
8
  import os from "node:os";
9
9
  import path from "node:path";
10
- import fs from "node:fs";
10
+ import syncFs from "node:fs";
11
11
  import { URL, fileURLToPath } from "node:url";
12
12
  import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
13
13
 
@@ -463,13 +463,13 @@ function shortPath(value) {
463
463
  //#region src/agents/skills/bundled-dir.ts
464
464
  function looksLikeSkillsDir(dir) {
465
465
  try {
466
- const entries = fs.readdirSync(dir, { withFileTypes: true });
466
+ const entries = syncFs.readdirSync(dir, { withFileTypes: true });
467
467
  for (const entry of entries) {
468
468
  if (entry.name.startsWith(".")) continue;
469
469
  const fullPath = path.join(dir, entry.name);
470
470
  if (entry.isFile() && entry.name.endsWith(".md")) return true;
471
471
  if (entry.isDirectory()) {
472
- if (fs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
472
+ if (syncFs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
473
473
  }
474
474
  }
475
475
  } catch {
@@ -484,7 +484,7 @@ function resolveBundledSkillsDir(opts = {}) {
484
484
  const execPath = opts.execPath ?? process.execPath;
485
485
  const execDir = path.dirname(execPath);
486
486
  const sibling = path.join(execDir, "skills");
487
- if (fs.existsSync(sibling)) return sibling;
487
+ if (syncFs.existsSync(sibling)) return sibling;
488
488
  } catch {}
489
489
  try {
490
490
  const moduleUrl = opts.moduleUrl ?? import.meta.url;
@@ -547,7 +547,7 @@ function resolvePluginSkillDirs(params) {
547
547
  const trimmed = raw.trim();
548
548
  if (!trimmed) continue;
549
549
  const candidate = path.resolve(record.rootDir, trimmed);
550
- if (!fs.existsSync(candidate)) {
550
+ if (!syncFs.existsSync(candidate)) {
551
551
  log.warn(`plugin skill path not found (${record.id}): ${candidate}`);
552
552
  continue;
553
553
  }
@@ -574,7 +574,7 @@ async function serializeByKey(key, task) {
574
574
 
575
575
  //#endregion
576
576
  //#region src/agents/skills/workspace.ts
577
- const fsp = fs.promises;
577
+ const fsp = syncFs.promises;
578
578
  const skillsLogger = createSubsystemLogger("skills");
579
579
  const skillCommandDebugOnce = /* @__PURE__ */ new Set();
580
580
  /**
@@ -651,7 +651,7 @@ function resolveSkillsLimits(config) {
651
651
  }
652
652
  function listChildDirectories(dir) {
653
653
  try {
654
- const entries = fs.readdirSync(dir, { withFileTypes: true });
654
+ const entries = syncFs.readdirSync(dir, { withFileTypes: true });
655
655
  const dirs = [];
656
656
  for (const entry of entries) {
657
657
  if (entry.name.startsWith(".")) continue;
@@ -662,7 +662,7 @@ function listChildDirectories(dir) {
662
662
  continue;
663
663
  }
664
664
  if (entry.isSymbolicLink()) try {
665
- if (fs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
665
+ if (syncFs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
666
666
  } catch {}
667
667
  }
668
668
  return dirs;
@@ -673,7 +673,7 @@ function listChildDirectories(dir) {
673
673
  function resolveNestedSkillsRoot(dir, opts) {
674
674
  const nested = path.join(dir, "skills");
675
675
  try {
676
- if (!fs.existsSync(nested) || !fs.statSync(nested).isDirectory()) return { baseDir: dir };
676
+ if (!syncFs.existsSync(nested) || !syncFs.statSync(nested).isDirectory()) return { baseDir: dir };
677
677
  } catch {
678
678
  return { baseDir: dir };
679
679
  }
@@ -682,7 +682,7 @@ function resolveNestedSkillsRoot(dir, opts) {
682
682
  const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
683
683
  for (const name of toScan) {
684
684
  const skillMd = path.join(nested, name, "SKILL.md");
685
- if (fs.existsSync(skillMd)) return {
685
+ if (syncFs.existsSync(skillMd)) return {
686
686
  baseDir: nested,
687
687
  note: `Detected nested skills root at ${nested}`
688
688
  };
@@ -702,9 +702,9 @@ function loadSkillEntries(workspaceDir, opts) {
702
702
  const loadSkills = (params) => {
703
703
  const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
704
704
  const rootSkillMd = path.join(baseDir, "SKILL.md");
705
- if (fs.existsSync(rootSkillMd)) {
705
+ if (syncFs.existsSync(rootSkillMd)) {
706
706
  try {
707
- const size = fs.statSync(rootSkillMd).size;
707
+ const size = syncFs.statSync(rootSkillMd).size;
708
708
  if (size > limits.maxSkillFileBytes) {
709
709
  skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
710
710
  dir: baseDir,
@@ -743,9 +743,9 @@ function loadSkillEntries(workspaceDir, opts) {
743
743
  for (const name of limitedChildren) {
744
744
  const skillDir = path.join(baseDir, name);
745
745
  const skillMd = path.join(skillDir, "SKILL.md");
746
- if (!fs.existsSync(skillMd)) continue;
746
+ if (!syncFs.existsSync(skillMd)) continue;
747
747
  try {
748
- const size = fs.statSync(skillMd).size;
748
+ const size = syncFs.statSync(skillMd).size;
749
749
  if (size > limits.maxSkillFileBytes) {
750
750
  skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
751
751
  skill: name,
@@ -813,7 +813,7 @@ function loadSkillEntries(workspaceDir, opts) {
813
813
  return Array.from(merged.values()).map((skill) => {
814
814
  let frontmatter = {};
815
815
  try {
816
- frontmatter = parseFrontmatter(fs.readFileSync(skill.filePath, "utf-8"));
816
+ frontmatter = parseFrontmatter(syncFs.readFileSync(skill.filePath, "utf-8"));
817
817
  } catch {}
818
818
  return {
819
819
  skill,
@@ -1,5 +1,5 @@
1
- import { p as resolveConfigDir } from "./utils-D9wGoiU9.js";
2
- import { c as detectMime, l as extensionForMime } from "./image-ops-J8P5zOFm.js";
1
+ import { p as resolveConfigDir } from "./utils-CTFLl_ji.js";
2
+ import { c as detectMime, l as extensionForMime } from "./image-ops-D1KtygWz.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import crypto from "node:crypto";
@@ -1,4 +1,4 @@
1
- import { B as resolveNodeRequireFromMeta, D as logVerbose, E as isVerbose, G as readLoggingConfig, H as loggingState, I as getChildLogger, R as isFileLogLevelEnabled, U as levelToMinLevel, V as resolveEnvLogLevelOverride, W as normalizeLogLevel, h as resolveUserPath } from "./utils-D9wGoiU9.js";
1
+ import { B as resolveNodeRequireFromMeta, D as logVerbose, E as isVerbose, G as readLoggingConfig, H as loggingState, I as getChildLogger, R as isFileLogLevelEnabled, U as levelToMinLevel, V as resolveEnvLogLevelOverride, W as normalizeLogLevel, h as resolveUserPath } from "./utils-CTFLl_ji.js";
2
2
  import { i as clearActiveProgressLine } from "./runtime-8mi3mpYB.js";
3
3
  import path from "node:path";
4
4
  import { Chalk } from "chalk";
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-BT5aAdU9.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-B7IBoKLy.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-MTSxc7LK.js";
3
3
 
4
4
  //#region src/markdown/tables.ts
@@ -1,5 +1,5 @@
1
- import { c as detectMime } from "./image-ops-J8P5zOFm.js";
2
- import { r as sanitizeToolResultImages } from "./tool-images-Duuqr4bN.js";
1
+ import { c as detectMime } from "./image-ops-D1KtygWz.js";
2
+ import { r as sanitizeToolResultImages } from "./tool-images-CcGZpzmq.js";
3
3
  import fs from "node:fs/promises";
4
4
 
5
5
  //#region src/agents/tools/common.ts
@@ -1,4 +1,4 @@
1
- import { o as escapeRegExp } from "./utils-dP-FpIgu.js";
1
+ import { o as escapeRegExp } from "./utils-CTFLl_ji.js";
2
2
 
3
3
  //#region src/auto-reply/tokens.ts
4
4
  const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
@@ -1,5 +1,5 @@
1
- import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
2
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-J8P5zOFm.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
2
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-D1KtygWz.js";
3
3
 
4
4
  //#region src/media/base64.ts
5
5
  function estimateBase64DecodedBytes(base64) {
@@ -1,6 +1,6 @@
1
- import "./paths-DQpv9a3Q.js";
2
- import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
3
- import { C as isPlainObject } from "./utils-D9wGoiU9.js";
1
+ import "./paths-BYNVLNi_.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
3
+ import { C as isPlainObject } from "./utils-CTFLl_ji.js";
4
4
  import "./runtime-8mi3mpYB.js";
5
5
  import { createHash } from "node:crypto";
6
6
 
@@ -1,22 +1,22 @@
1
- import { f as expandHomePrefix, i as resolveConfigPath, l as resolveOAuthDir, m as resolveRequiredHomeDir, p as resolveEffectiveHomeDir } from "./paths-DQpv9a3Q.js";
1
+ import { f as expandHomePrefix, i as resolveConfigPath, l as resolveOAuthDir, m as resolveRequiredHomeDir, p as resolveEffectiveHomeDir } from "./paths-BYNVLNi_.js";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
4
+ import syncFs from "node:fs";
5
5
  import chalk, { Chalk } from "chalk";
6
6
  import { Logger } from "tslog";
7
7
  import JSON5 from "json5";
8
8
 
9
9
  //#region src/infra/tmp-idlehands-dir.ts
10
10
  const POSIX_IDLEHANDS_TMP_DIR = "/tmp/idlehands";
11
- const TMP_DIR_ACCESS_MODE = fs.constants.W_OK | fs.constants.X_OK;
11
+ const TMP_DIR_ACCESS_MODE = syncFs.constants.W_OK | syncFs.constants.X_OK;
12
12
  function isNodeErrorWithCode(err, code) {
13
13
  return typeof err === "object" && err !== null && "code" in err && err.code === code;
14
14
  }
15
15
  function resolvePreferredIdleHandsTmpDir(options = {}) {
16
- const accessSync = options.accessSync ?? fs.accessSync;
17
- const chmodSync = options.chmodSync ?? fs.chmodSync;
18
- const lstatSync = options.lstatSync ?? fs.lstatSync;
19
- const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
16
+ const accessSync = options.accessSync ?? syncFs.accessSync;
17
+ const chmodSync = options.chmodSync ?? syncFs.chmodSync;
18
+ const lstatSync = options.lstatSync ?? syncFs.lstatSync;
19
+ const mkdirSync = options.mkdirSync ?? syncFs.mkdirSync;
20
20
  const warn = options.warn ?? ((message) => console.warn(message));
21
21
  const getuid = options.getuid ?? (() => {
22
22
  try {
@@ -109,8 +109,8 @@ function resolvePreferredIdleHandsTmpDir(options = {}) {
109
109
  function readLoggingConfig() {
110
110
  const configPath = resolveConfigPath();
111
111
  try {
112
- if (!fs.existsSync(configPath)) return;
113
- const raw = fs.readFileSync(configPath, "utf-8");
112
+ if (!syncFs.existsSync(configPath)) return;
113
+ const raw = syncFs.readFileSync(configPath, "utf-8");
114
114
  const logging = JSON5.parse(raw)?.logging;
115
115
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
116
116
  return logging;
@@ -245,7 +245,7 @@ function isFileLogLevelEnabled(level) {
245
245
  return levelToMinLevel(level) <= levelToMinLevel(settings.level);
246
246
  }
247
247
  function buildLogger(settings) {
248
- fs.mkdirSync(path.dirname(settings.file), { recursive: true });
248
+ syncFs.mkdirSync(path.dirname(settings.file), { recursive: true });
249
249
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
250
250
  let currentFileBytes = getCurrentLogFileBytes(settings.file);
251
251
  let warnedAboutSizeCap = false;
@@ -289,14 +289,14 @@ function resolveMaxLogFileBytes(raw) {
289
289
  }
290
290
  function getCurrentLogFileBytes(file) {
291
291
  try {
292
- return fs.statSync(file).size;
292
+ return syncFs.statSync(file).size;
293
293
  } catch {
294
294
  return 0;
295
295
  }
296
296
  }
297
297
  function appendLogLine(file, line) {
298
298
  try {
299
- fs.appendFileSync(file, line, { encoding: "utf8" });
299
+ syncFs.appendFileSync(file, line, { encoding: "utf8" });
300
300
  return true;
301
301
  } catch {
302
302
  return false;
@@ -348,14 +348,14 @@ function isRollingPath(file) {
348
348
  }
349
349
  function pruneOldRollingLogs(dir) {
350
350
  try {
351
- const entries = fs.readdirSync(dir, { withFileTypes: true });
351
+ const entries = syncFs.readdirSync(dir, { withFileTypes: true });
352
352
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
353
353
  for (const entry of entries) {
354
354
  if (!entry.isFile()) continue;
355
355
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
356
356
  const fullPath = path.join(dir, entry.name);
357
357
  try {
358
- if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
358
+ if (syncFs.statSync(fullPath).mtimeMs < cutoff) syncFs.rmSync(fullPath, { force: true });
359
359
  } catch {}
360
360
  }
361
361
  } catch {}
@@ -436,14 +436,14 @@ function isPlainObject(value) {
436
436
  //#endregion
437
437
  //#region src/utils.ts
438
438
  async function ensureDir(dir) {
439
- await fs.promises.mkdir(dir, { recursive: true });
439
+ await syncFs.promises.mkdir(dir, { recursive: true });
440
440
  }
441
441
  /**
442
442
  * Check if a file or directory exists at the given path.
443
443
  */
444
444
  async function pathExists(targetPath) {
445
445
  try {
446
- await fs.promises.access(targetPath);
446
+ await syncFs.promises.access(targetPath);
447
447
  return true;
448
448
  } catch {
449
449
  return false;
@@ -526,7 +526,7 @@ function readLidReverseMapping(lid, opts) {
526
526
  for (const dir of mappingDirs) {
527
527
  const mappingPath = path.join(dir, mappingFilename);
528
528
  try {
529
- const data = fs.readFileSync(mappingPath, "utf8");
529
+ const data = syncFs.readFileSync(mappingPath, "utf8");
530
530
  const phone = JSON.parse(data);
531
531
  if (phone === null || phone === void 0) continue;
532
532
  return normalizeE164(String(phone));
@@ -611,7 +611,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
611
611
  if (override) return resolveUserPath(override);
612
612
  const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".idlehands");
613
613
  try {
614
- if (fs.existsSync(newDir)) return newDir;
614
+ if (syncFs.existsSync(newDir)) return newDir;
615
615
  } catch {}
616
616
  return newDir;
617
617
  }
@@ -11,14 +11,14 @@ import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
11
11
  import "./env-BpvqFD5n.js";
12
12
  import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-QcCdS4qA.js";
13
13
  import "./tokens-Cg4XNE3H.js";
14
- import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-Cfe7sfXp.js";
14
+ import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-BYtUxbhJ.js";
15
15
  import "./plugins-D-_jp4FO.js";
16
16
  import { n as resolveWhatsAppAccount } from "./accounts-BwrguHMw.js";
17
17
  import "./bindings-hT7SPhiA.js";
18
18
  import { i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists, s as pickWebChannel, t as WA_WEB_AUTH_DIR } from "./auth-store-D1JaYlig.js";
19
19
  import "./send-J10cQN4A.js";
20
20
  import "./send-DLZt92Da.js";
21
- import "./deliver-whAbSPLk.js";
21
+ import "./deliver-5FLCa6tB.js";
22
22
  import "./diagnostic-jHCdo9Am.js";
23
23
  import "./diagnostic-session-state-Bx2Le86J.js";
24
24
  import "./accounts-BRVjft5i.js";
@@ -26,8 +26,8 @@ import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLo
26
26
  import "./image-ops-BDG-MYYV.js";
27
27
  import "./pi-model-discovery-Dic-M5qw.js";
28
28
  import "./message-channel-DqqfOIdx.js";
29
- import "./pi-embedded-helpers-Ct2rwp-P.js";
30
- import "./chrome-Do5potHV.js";
29
+ import "./pi-embedded-helpers-C2j0LfJC.js";
30
+ import "./chrome-DEnkfZ9p.js";
31
31
  import "./ssrf-DappnhDp.js";
32
32
  import "./skills-nQcWk6Z6.js";
33
33
  import "./path-alias-guards-CGbCFqW8.js";
@@ -40,7 +40,7 @@ import "./accounts-CBoBCTgA.js";
40
40
  import { u as resolveStorePath } from "./paths-vOrMwCEQ.js";
41
41
  import "./tool-images-CpZSs-zE.js";
42
42
  import "./thinking-BFsWfunr.js";
43
- import "./image-BAsQlUqT.js";
43
+ import "./image-C_aN5P6-.js";
44
44
  import "./manager-DYOflU5p.js";
45
45
  import "./gemini-auth-m2hi6OmF.js";
46
46
  import "./fetch-guard-BdCPmLBP.js";
@@ -55,7 +55,7 @@ import "./render-Ddkk6wf8.js";
55
55
  import "./commands-registry-1-Rv2-IS.js";
56
56
  import "./skill-commands-CHpRgsOw.js";
57
57
  import { t as finalizeInboundContext } from "./inbound-context-DZmR6jxY.js";
58
- import { p as registerUnhandledRejectionHandler } from "./runner-Bv_BA3vd.js";
58
+ import { p as registerUnhandledRejectionHandler } from "./runner-CZW_eyf2.js";
59
59
  import "./fetch-ChVgjTkv.js";
60
60
  import { n as recordChannelActivity } from "./channel-activity-C3LJmSjf.js";
61
61
  import { t as convertMarkdownTables } from "./tables-CJKtUpY0.js";
@@ -66,7 +66,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
66
66
  import { r as setActiveWebListener } from "./active-listener-BnWIC6Jc.js";
67
67
  import "./proxy-CNZpb4NE.js";
68
68
  import "./replies-CqYEEgmA.js";
69
- import "./deps-BO1TSzg3.js";
69
+ import "./deps-Bp-zobQ9.js";
70
70
  import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-DsfWfy-l.js";
71
71
  import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-DRN3VnUX.js";
72
72
  import { t as loginWeb } from "./login-Cnp8mhAl.js";
@@ -861,7 +861,7 @@ async function monitorWebInbox(options) {
861
861
  };
862
862
  const stopText = (inboundMessage.body ?? "").trim();
863
863
  if (stopText) {
864
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-C_7XuwW8.js");
864
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CHHSptxF.js");
865
865
  if (isAbortRequestText(stopText)) {
866
866
  const { loadConfig: loadCfg } = await import("./model-selection-D3Jhcvg-.js").then((n) => n.F);
867
867
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
@@ -1,78 +1,78 @@
1
- import "./agent-scope-Bxq1eWbA.js";
2
- import "./paths-DQpv9a3Q.js";
3
- import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
4
- import { A as shouldLogVerbose, D as logVerbose, I as getChildLogger, d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-D9wGoiU9.js";
1
+ import "./agent-scope-DyP_tr7s.js";
2
+ import "./paths-BYNVLNi_.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
4
+ import { A as shouldLogVerbose, D as logVerbose, I as getChildLogger, d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-CTFLl_ji.js";
5
5
  import { n as defaultRuntime } from "./runtime-8mi3mpYB.js";
6
6
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-CuLPSMu_.js";
7
- import "./workspace-tAtkoD_r.js";
8
- import { R as loadConfig } from "./model-selection-C5hI1dum.js";
9
- import "./github-copilot-token-BjmEQcmi.js";
7
+ import "./workspace-DBFSzT6O.js";
8
+ import { R as loadConfig } from "./model-selection-1MMYqY6M.js";
9
+ import "./github-copilot-token-Dgt6cnsM.js";
10
10
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
11
11
  import "./boolean-CE7i9tBR.js";
12
- import "./env-q-PhWbb_.js";
13
- import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-ejUetwTC.js";
14
- import "./tokens-DGajj8M9.js";
15
- import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-CQoT3WaM.js";
16
- import "./plugins-DYr-HHj0.js";
17
- import { n as resolveWhatsAppAccount } from "./accounts-BQC_GRUB.js";
18
- import "./bindings-CLZIJ0Eo.js";
19
- import { i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists, s as pickWebChannel, t as WA_WEB_AUTH_DIR } from "./auth-store-Bb4aajHu.js";
20
- import "./send-DZa8fWSm.js";
21
- import "./send-IlPMLAH-.js";
22
- import "./deliver-Db2xqgLg.js";
23
- import "./diagnostic-BvlZ0Sot.js";
12
+ import "./env-B5G1qwGc.js";
13
+ import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-BgOmHcbh.js";
14
+ import "./tokens-BRLyURxW.js";
15
+ import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-CIJj8Clt.js";
16
+ import "./plugins-CRB60mCJ.js";
17
+ import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
18
+ import "./bindings-D3b5Fmc9.js";
19
+ import { i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists, s as pickWebChannel, t as WA_WEB_AUTH_DIR } from "./auth-store-DXT-l7fO.js";
20
+ import "./send-BeIZJuy4.js";
21
+ import "./send-DmLC7aEF.js";
22
+ import "./deliver-CVTXl0Cv.js";
23
+ import "./diagnostic-4owMk4vH.js";
24
24
  import "./diagnostic-session-state-BGF2r-kt.js";
25
- import "./accounts-B8cGzkjD.js";
26
- import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLocationText } from "./send-FLdrx-oF.js";
27
- import "./image-ops-J8P5zOFm.js";
28
- import "./pi-model-discovery-Dlx4RLWo.js";
29
- import "./message-channel-ZdI1-uUh.js";
30
- import "./pi-embedded-helpers-B3ceCcxm.js";
31
- import "./chrome-CT_a9OgI.js";
25
+ import "./accounts-BDVs8LTu.js";
26
+ import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLocationText } from "./send-Dfa3sn6r.js";
27
+ import "./image-ops-D1KtygWz.js";
28
+ import "./pi-model-discovery-Bb__OY-j.js";
29
+ import "./message-channel-C8QtrwEU.js";
30
+ import "./pi-embedded-helpers-CyTpDKo5.js";
31
+ import "./chrome-_2tzVjVl.js";
32
32
  import "./ssrf-CZeHDwVZ.js";
33
- import "./frontmatter-pTUG4Sx_.js";
34
- import "./skills-umlGvChF.js";
35
- import "./path-alias-guards-BZmt6hFb.js";
36
- import "./redact-1Y0KPNtr.js";
37
- import "./errors-C4SHjIZK.js";
38
- import "./fs-safe-2l05hI1Y.js";
39
- import { r as saveMediaBuffer } from "./store-D-ZicQeo.js";
40
- import { K as resolveGroupSessionKey, c as readSessionUpdatedAt, d as updateLastRoute, l as recordSessionMetaFromInbound, s as loadSessionStore } from "./sessions-DRA4oaxz.js";
41
- import "./accounts-D5tB_lO0.js";
42
- import { u as resolveStorePath } from "./paths-D3p7ZvM6.js";
43
- import "./tool-images-Duuqr4bN.js";
33
+ import "./frontmatter-BOudmHMS.js";
34
+ import "./skills-CnAPWfca.js";
35
+ import "./path-alias-guards-Cu1nXNMM.js";
36
+ import "./redact-Bvpf-ATQ.js";
37
+ import "./errors-C_0nm4TJ.js";
38
+ import "./fs-safe-CYUaAFO9.js";
39
+ import { r as saveMediaBuffer } from "./store-CvMgrKWx.js";
40
+ import { K as resolveGroupSessionKey, c as readSessionUpdatedAt, d as updateLastRoute, l as recordSessionMetaFromInbound, s as loadSessionStore } from "./sessions-3ioSeOA1.js";
41
+ import "./accounts-CIvVRRHb.js";
42
+ import { u as resolveStorePath } from "./paths-D_qUel1T.js";
43
+ import "./tool-images-CcGZpzmq.js";
44
44
  import "./thinking-z4_linel.js";
45
- import "./image-Dlu13Ebx.js";
46
- import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-DCljZiIB.js";
47
- import "./manager-CgzA1hKo.js";
48
- import "./gemini-auth-DLSGffQK.js";
49
- import "./fetch-guard-CcfDZXe9.js";
50
- import "./query-expansion-DHuNyU-_.js";
51
- import "./retry-CG6cMRDQ.js";
52
- import "./target-errors-B1mcM4WR.js";
53
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-Djk-9JeT.js";
54
- import { n as resolveMarkdownTableMode } from "./markdown-tables-R8VTpfE9.js";
55
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-d4y0lvs2.js";
56
- import { a as loadWebMedia } from "./ir-BT5aAdU9.js";
45
+ import "./image-COw__ACq.js";
46
+ import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-BUgeSN2R.js";
47
+ import "./manager-BE_76jWB.js";
48
+ import "./gemini-auth-CIyaa44H.js";
49
+ import "./fetch-guard-iuQsIjqN.js";
50
+ import "./query-expansion-DEq020GG.js";
51
+ import "./retry-BeB9WenR.js";
52
+ import "./target-errors-BPfQrPim.js";
53
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-CMpX7Jaz.js";
54
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-CzsockiZ.js";
55
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-KN4Hp1yZ.js";
56
+ import { a as loadWebMedia } from "./ir-B7IBoKLy.js";
57
57
  import "./render-MTSxc7LK.js";
58
- import "./commands-registry-_TBHHpvt.js";
59
- import "./skill-commands-BHTBXXVn.js";
58
+ import "./commands-registry-j4vAzcF2.js";
59
+ import "./skill-commands-Ck3flWX7.js";
60
60
  import { t as finalizeInboundContext } from "./inbound-context-BYczzTII.js";
61
- import { p as registerUnhandledRejectionHandler } from "./runner-BkCU-kqs.js";
61
+ import { p as registerUnhandledRejectionHandler } from "./runner-BzNdfqDz.js";
62
62
  import "./fetch-CsfR_943.js";
63
- import { n as recordChannelActivity } from "./channel-activity-DdL3RAv_.js";
64
- import { t as convertMarkdownTables } from "./tables-Co_R_WKs.js";
65
- import "./send-Y1hD4tQ1.js";
66
- import "./outbound-attachment-IfeZJAKk.js";
67
- import "./send-BOxJ4QXF.js";
68
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-ClcifpKn.js";
63
+ import { n as recordChannelActivity } from "./channel-activity-D_TMOGQ0.js";
64
+ import { t as convertMarkdownTables } from "./tables-5k-zOZ-s.js";
65
+ import "./send-C1hvd3bt.js";
66
+ import "./outbound-attachment-3I6GzwDe.js";
67
+ import "./send-D4bMycQu.js";
68
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DuttYY7A.js";
69
69
  import { r as setActiveWebListener } from "./active-listener-jilCMH1M.js";
70
70
  import "./proxy-CRB9oCP5.js";
71
- import "./replies-2C16fnBP.js";
72
- import "./deps-BQsD8-_C.js";
73
- import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-CdY_AskB.js";
74
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-nUPBXeEa.js";
75
- import { t as loginWeb } from "./login-C2X0In6m.js";
71
+ import "./replies-6_GxvQYe.js";
72
+ import "./deps-k7zLO-No.js";
73
+ import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-BNh6PpQb.js";
74
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-F_YDS_1V.js";
75
+ import { t as loginWeb } from "./login-CFr5vJmR.js";
76
76
  import { randomUUID } from "node:crypto";
77
77
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
78
78
 
@@ -864,10 +864,10 @@ async function monitorWebInbox(options) {
864
864
  };
865
865
  const stopText = (inboundMessage.body ?? "").trim();
866
866
  if (stopText) {
867
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DVyGxgzf.js");
867
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Bqex5qoB.js");
868
868
  if (isAbortRequestText(stopText)) {
869
- const { loadConfig: loadCfg } = await import("./model-selection-C5hI1dum.js").then((n) => n.I);
870
- const { resolveAgentRoute } = await import("./resolve-route-ClcifpKn.js").then((n) => n.r);
869
+ const { loadConfig: loadCfg } = await import("./model-selection-1MMYqY6M.js").then((n) => n.I);
870
+ const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
871
871
  const freshCfg = loadCfg();
872
872
  const route = resolveAgentRoute({
873
873
  cfg: freshCfg,
@@ -1,32 +1,32 @@
1
- import "./agent-scope-Bxq1eWbA.js";
2
- import "./paths-DQpv9a3Q.js";
3
- import "./subsystem-D7ZepYT1.js";
4
- import "./utils-D9wGoiU9.js";
1
+ import "./agent-scope-DyP_tr7s.js";
2
+ import "./paths-BYNVLNi_.js";
3
+ import "./subsystem-tzu-rIAJ.js";
4
+ import "./utils-CTFLl_ji.js";
5
5
  import "./runtime-8mi3mpYB.js";
6
- import "./workspace-tAtkoD_r.js";
7
- import "./model-selection-C5hI1dum.js";
8
- import "./github-copilot-token-BjmEQcmi.js";
6
+ import "./workspace-DBFSzT6O.js";
7
+ import "./model-selection-1MMYqY6M.js";
8
+ import "./github-copilot-token-Dgt6cnsM.js";
9
9
  import "./boolean-CE7i9tBR.js";
10
- import "./env-q-PhWbb_.js";
11
- import { a as normalizeWhatsAppTarget, i as isWhatsAppGroupJid } from "./plugins-DYr-HHj0.js";
12
- import { n as resolveWhatsAppAccount } from "./accounts-BQC_GRUB.js";
13
- import "./bindings-CLZIJ0Eo.js";
14
- import "./auth-store-Bb4aajHu.js";
15
- import "./image-ops-J8P5zOFm.js";
16
- import "./message-channel-ZdI1-uUh.js";
10
+ import "./env-B5G1qwGc.js";
11
+ import { a as normalizeWhatsAppTarget, i as isWhatsAppGroupJid } from "./plugins-CRB60mCJ.js";
12
+ import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
13
+ import "./bindings-D3b5Fmc9.js";
14
+ import "./auth-store-DXT-l7fO.js";
15
+ import "./image-ops-D1KtygWz.js";
16
+ import "./message-channel-C8QtrwEU.js";
17
17
  import "./ssrf-CZeHDwVZ.js";
18
- import "./path-alias-guards-BZmt6hFb.js";
19
- import "./fs-safe-2l05hI1Y.js";
20
- import "./tool-images-Duuqr4bN.js";
21
- import "./fetch-guard-CcfDZXe9.js";
22
- import { a as createActionGate, c as jsonResult, d as readReactionParams, i as ToolAuthorizationError, m as readStringParam, n as missingTargetError } from "./target-errors-B1mcM4WR.js";
23
- import "./chunk-Djk-9JeT.js";
24
- import "./markdown-tables-R8VTpfE9.js";
25
- import "./local-roots-d4y0lvs2.js";
26
- import "./ir-BT5aAdU9.js";
18
+ import "./path-alias-guards-Cu1nXNMM.js";
19
+ import "./fs-safe-CYUaAFO9.js";
20
+ import "./tool-images-CcGZpzmq.js";
21
+ import "./fetch-guard-iuQsIjqN.js";
22
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, i as ToolAuthorizationError, m as readStringParam, n as missingTargetError } from "./target-errors-BPfQrPim.js";
23
+ import "./chunk-CMpX7Jaz.js";
24
+ import "./markdown-tables-CzsockiZ.js";
25
+ import "./local-roots-KN4Hp1yZ.js";
26
+ import "./ir-B7IBoKLy.js";
27
27
  import "./render-MTSxc7LK.js";
28
- import "./tables-Co_R_WKs.js";
29
- import { r as sendReactionWhatsApp } from "./outbound-CdY_AskB.js";
28
+ import "./tables-5k-zOZ-s.js";
29
+ import { r as sendReactionWhatsApp } from "./outbound-BNh6PpQb.js";
30
30
 
31
31
  //#region src/whatsapp/resolve-outbound-target.ts
32
32
  function resolveWhatsAppOutboundTarget(params) {