@visorcraft/idlehands 4.0.16 → 4.0.18

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 (231) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{accounts-Dk8mJIrQ.js → accounts-CRDMZUcg.js} +6 -6
  3. package/dist/{accounts-BDVs8LTu.js → accounts-upx5iuke.js} +1 -1
  4. package/dist/{accounts-CIvVRRHb.js → accounts-yD5yI-jP.js} +1 -1
  5. package/dist/{agent-scope-DyP_tr7s.js → agent-scope-BVeQuh5x.js} +4 -4
  6. package/dist/{agent-via-gateway-Ceb_VeXS.js → agent-via-gateway-CC37LlPd.js} +3 -2
  7. package/dist/{agent-via-gateway-DIfwOe7Y.js → agent-via-gateway-Cl2YwlXJ.js} +2 -1
  8. package/dist/{agent-via-gateway-F1Zu0slF.js → agent-via-gateway-ClQrLbgo.js} +2 -1
  9. package/dist/{agent-via-gateway-7SDhvcBa.js → agent-via-gateway-pMCfUzW-.js} +61 -60
  10. package/dist/{agents-idaLog48.js → agents-DrnGQroU.js} +4 -4
  11. package/dist/{agents.config-w0ZcfpyW.js → agents.config-BZPnYIMF.js} +1 -1
  12. package/dist/{agents.config-DP_bqTwg.js → agents.config-DfWZrbXn.js} +1 -1
  13. package/dist/{anton-CzWIEEiT.js → anton-B-I7rEtn.js} +44 -15
  14. package/dist/{anton-B7VZSQo-.js → anton-BfrX2FMd.js} +40 -11
  15. package/dist/{anton-Cs1JPzv4.js → anton-BgKjig3B.js} +40 -11
  16. package/dist/{anton-BomwkDBv.js → anton-BrY-bWgq.js} +40 -11
  17. package/dist/{audio-preflight-BSlR2jEq.js → audio-preflight-aBtF0cRI.js} +35 -35
  18. package/dist/{auth-choice-D-TtZtMR.js → auth-choice-DtvI4epn.js} +1 -1
  19. package/dist/{auth-choice-C49o8owq.js → auth-choice-_C22dz9o.js} +1 -1
  20. package/dist/{auth-store-DXT-l7fO.js → auth-store-DQAd4LSE.js} +12 -12
  21. package/dist/{banner-DmFqQvFd.js → banner-B-UYZG8d.js} +1 -1
  22. package/dist/{bindings-D3b5Fmc9.js → bindings-B9L4cqmm.js} +2 -2
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/boot-md/handler.js +60 -60
  25. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  26. package/dist/bundled/command-logger/handler.js +3 -3
  27. package/dist/bundled/session-memory/handler.js +60 -60
  28. package/dist/{channel-activity-D_TMOGQ0.js → channel-activity-DOLX-uK1.js} +3 -3
  29. package/dist/{channel-options-CsEgIwgu.js → channel-options-BbwNg4q_.js} +1 -1
  30. package/dist/{channel-options-1Dqo0zkg.js → channel-options-C0iwLcfC.js} +1 -1
  31. package/dist/{channel-web-BicbbO9_.js → channel-web-BLxKeCXF.js} +2 -2
  32. package/dist/{channel-web-C7s5QLXL.js → channel-web-q6Ugfiks.js} +2 -2
  33. package/dist/{channels-cli-CWb-B8BT.js → channels-cli-BtL1XuuK.js} +7 -7
  34. package/dist/{channels-cli-REwO9h_a.js → channels-cli-DaRR8vAs.js} +7 -7
  35. package/dist/{chrome-_2tzVjVl.js → chrome-D_SXDetO.js} +17 -17
  36. package/dist/{chunk-CMpX7Jaz.js → chunk-BgScV6uo.js} +1 -1
  37. package/dist/{cli-B9ARC6CF.js → cli-BjhrdeVd.js} +2 -2
  38. package/dist/{cli-B4rP4MXJ.js → cli-CrUoGRuS.js} +2 -2
  39. package/dist/{command-registry-0e5VHciB.js → command-registry-BZNlvfaM.js} +10 -10
  40. package/dist/{commands-registry-j4vAzcF2.js → commands-registry-CK7aj_ri.js} +5 -5
  41. package/dist/{completion-cli-C1StqVUs.js → completion-cli-BIabgt7h.js} +1 -1
  42. package/dist/{completion-cli-BTtvgatl.js → completion-cli-p9W-g1Pe.js} +2 -2
  43. package/dist/{config-cli-C3As38Z_.js → config-cli-B4nNEjK9.js} +1 -1
  44. package/dist/{config-cli-B-yirt2T.js → config-cli-u4zbdm-e.js} +1 -1
  45. package/dist/{configure-Cw6aeqBy.js → configure-BbDbMd5G.js} +3 -3
  46. package/dist/{configure-BEd8nUOe.js → configure-Dj1JdeEI.js} +3 -3
  47. package/dist/{deliver-CVTXl0Cv.js → deliver-CJaM2zRY.js} +20 -20
  48. package/dist/{deps-C28cWNmF.js → deps-BMWq0kjy.js} +1 -1
  49. package/dist/{deps-Cn32rOjf.js → deps-BuRud-p8.js} +1 -1
  50. package/dist/{deps-CVb-kfIX.js → deps-CQzDLqTz.js} +6 -6
  51. package/dist/{deps-CYAKIzhf.js → deps-Dr9GpASq.js} +1 -1
  52. package/dist/{diagnostic-4owMk4vH.js → diagnostic-lz5wKsEe.js} +1 -1
  53. package/dist/{dock-BgOmHcbh.js → dock-6MgvdSqu.js} +6 -6
  54. package/dist/{doctor-completion-o6QBkVYG.js → doctor-completion-BLRGmusD.js} +1 -1
  55. package/dist/{doctor-completion-T5sq7t8L.js → doctor-completion-BeZMlZPb.js} +1 -1
  56. package/dist/{emergency-stop-CMeSxuEg.js → emergency-stop-BEsjWvQL.js} +2 -2
  57. package/dist/{emergency-stop-h5_WOPZT.js → emergency-stop-BU-Vbk3V.js} +2 -2
  58. package/dist/{emergency-stop-D-dp9zCO.js → emergency-stop-CSSPAKHr.js} +2 -2
  59. package/dist/emergency-stop-JXB5jZyK.js +113 -0
  60. package/dist/entry.js +1 -1
  61. package/dist/{env-B5G1qwGc.js → env-B7b7MKfk.js} +1 -1
  62. package/dist/{errors-C_0nm4TJ.js → errors--Eb33_ji.js} +1 -1
  63. package/dist/extensionAPI.js +2 -2
  64. package/dist/{fetch-guard-iuQsIjqN.js → fetch-guard-OZ_PCUyr.js} +1 -1
  65. package/dist/{frontmatter-BOudmHMS.js → frontmatter-p8nPDprK.js} +2 -2
  66. package/dist/{fs-safe-CYUaAFO9.js → fs-safe-BEl8T_Vc.js} +2 -2
  67. package/dist/{gateway-cli-Dxoh3sSC.js → gateway-cli-BCHdAJHS.js} +9 -9
  68. package/dist/{gateway-cli-bZXsaQkU.js → gateway-cli-Dumy2IVU.js} +9 -9
  69. package/dist/{gemini-auth-CIyaa44H.js → gemini-auth-CA0K3QXj.js} +2 -2
  70. package/dist/{github-copilot-token-Dgt6cnsM.js → github-copilot-token-DCg9Q9Ll.js} +7 -7
  71. package/dist/{health-dLZas7f8.js → health-B3kk7l82.js} +1 -1
  72. package/dist/{health-OvNY74XL.js → health-CqdQAURH.js} +1 -1
  73. package/dist/{hooks-cli-DZr1MB1B.js → hooks-cli-Ba4woLl0.js} +3 -3
  74. package/dist/{hooks-cli-DOH-i33b.js → hooks-cli-jMG5GST1.js} +3 -3
  75. package/dist/{image-COw__ACq.js → image-BQ3RQWD8.js} +6 -6
  76. package/dist/{image-ops-D1KtygWz.js → image-ops-ZNtLhD4c.js} +1 -1
  77. package/dist/index.js +7 -7
  78. package/dist/{ir-B7IBoKLy.js → ir-DnyYtX4H.js} +5 -5
  79. package/dist/llm-slug-generator.js +60 -60
  80. package/dist/{local-roots-KN4Hp1yZ.js → local-roots-C9CA2f0R.js} +5 -5
  81. package/dist/{login-CFr5vJmR.js → login-Cn1vc1bn.js} +6 -6
  82. package/dist/{login-qr-CFFFOjOl.js → login-qr-Dj0NmRdg.js} +11 -11
  83. package/dist/{manager-BE_76jWB.js → manager-DBd_2F6j.js} +15 -15
  84. package/dist/{markdown-tables-CzsockiZ.js → markdown-tables-CsrsXS80.js} +1 -1
  85. package/dist/{message-channel-C8QtrwEU.js → message-channel-Cg9KtLfy.js} +1 -1
  86. package/dist/{model-selection-1MMYqY6M.js → model-selection-Vtu6d5Um.js} +41 -41
  87. package/dist/{models-Dvyot3-o.js → models-C6GypzZ1.js} +2 -2
  88. package/dist/{models-cli-Dtzht0md.js → models-cli-BaR1RccY.js} +4 -4
  89. package/dist/{models-cli-CKRL4j3x.js → models-cli-iLP9BnPA.js} +3 -3
  90. package/dist/{npm-resolution-BpruvRIr.js → npm-resolution-CWxaTTrT.js} +1 -1
  91. package/dist/{npm-resolution-iEXmU1Ol.js → npm-resolution-DYUWHUe5.js} +1 -1
  92. package/dist/{onboard-CS6IQorr.js → onboard-CinZ4CuY.js} +2 -2
  93. package/dist/{onboard-Ck4SwhZB.js → onboard-DdBsJgzg.js} +2 -2
  94. package/dist/{onboard-channels-CM4puuWQ.js → onboard-channels-9XAEsgO-.js} +1 -1
  95. package/dist/{onboard-channels-DzNjXM6f.js → onboard-channels-Bnwwq6TK.js} +1 -1
  96. package/dist/{onboarding-DMEJRAg4.js → onboarding-C4oujn63.js} +3 -3
  97. package/dist/{onboarding-0Pop0Cex.js → onboarding-DFvHWFqL.js} +3 -3
  98. package/dist/{onboarding.finalize-f2qChM_N.js → onboarding.finalize-BDWHPpyn.js} +6 -6
  99. package/dist/{onboarding.finalize-BZW1kZw7.js → onboarding.finalize-DMhdDTvo.js} +7 -7
  100. package/dist/{outbound-BNh6PpQb.js → outbound-BYm4JJli.js} +6 -6
  101. package/dist/{outbound-attachment-3I6GzwDe.js → outbound-attachment-DwaqvYNG.js} +2 -2
  102. package/dist/{path-alias-guards-Cu1nXNMM.js → path-alias-guards-BnjbJzIQ.js} +1 -1
  103. package/dist/{paths-D_qUel1T.js → paths-0fcEvxu4.js} +3 -3
  104. package/dist/{paths-BYNVLNi_.js → paths-CkTEyLTV.js} +5 -5
  105. package/dist/{pi-embedded-Oto02Ard.js → pi-embedded-BDp9JsrM.js} +175 -175
  106. package/dist/{pi-embedded-BKTKQn_9.js → pi-embedded-Dap1HAGA.js} +11 -11
  107. package/dist/{pi-embedded-helpers-CyTpDKo5.js → pi-embedded-helpers-B1CKQ81Y.js} +24 -24
  108. package/dist/{pi-model-discovery-Bb__OY-j.js → pi-model-discovery-DBHbwKOo.js} +7 -7
  109. package/dist/{plugin-registry-BfNJBiAr.js → plugin-registry-CGFy1ugt.js} +1 -1
  110. package/dist/{plugin-registry-PcN7mK-d.js → plugin-registry-LYzfPk35.js} +1 -1
  111. package/dist/plugin-sdk/{agent-via-gateway-l3LvRB7r.js → agent-via-gateway-De4e2_-W.js} +3 -2
  112. package/dist/plugin-sdk/{anton-DJn2RPpW.js → anton-BO16dWNw.js} +40 -11
  113. package/dist/plugin-sdk/{channel-web-DvztgyXI.js → channel-web-Cd-eamYe.js} +2 -2
  114. package/dist/plugin-sdk/commands/agent-via-gateway.d.ts +1 -0
  115. package/dist/plugin-sdk/{deps-B1DxdYuU.js → deps-D6VWIdk7.js} +1 -1
  116. package/dist/plugin-sdk/{emergency-stop-CVZuzTM7.js → emergency-stop-w-HD2bz4.js} +2 -2
  117. package/dist/plugin-sdk/index.js +3 -3
  118. package/dist/plugin-sdk/{reply-BhGucE6k.js → reply-BqAPyIsz.js} +11 -11
  119. package/dist/plugin-sdk/{web-BzmXmmAo.js → web-Dj_tThNQ.js} +3 -3
  120. package/dist/{plugins-CRB60mCJ.js → plugins-Bb6_uisJ.js} +10 -10
  121. package/dist/{plugins-cli-DOTZBHc7.js → plugins-cli-BCAcCeRZ.js} +3 -3
  122. package/dist/{plugins-cli-s1bEnfMn.js → plugins-cli-BQKfJ9aF.js} +3 -3
  123. package/dist/{program-Blak4A0H.js → program-Df-zk5RB.js} +8 -8
  124. package/dist/{program-context-DtHO30yM.js → program-context-DBOEyhi4.js} +18 -18
  125. package/dist/{prompt-select-styled-DuHE5c_O.js → prompt-select-styled-B0FsbRWb.js} +4 -4
  126. package/dist/{prompt-select-styled-D8vDTRY8.js → prompt-select-styled-DJVZSK4X.js} +4 -4
  127. package/dist/{provider-auth-helpers-PdlgGx1Z.js → provider-auth-helpers-Aojd4jNn.js} +1 -1
  128. package/dist/{provider-auth-helpers-CnqcE5__.js → provider-auth-helpers-D0cQmJkF.js} +1 -1
  129. package/dist/{push-apns-DkGS3lmo.js → push-apns-BtI9tV7C.js} +1 -1
  130. package/dist/{push-apns-CNVtKEbW.js → push-apns-qzriU6TC.js} +1 -1
  131. package/dist/{pw-ai-CowTfhOG.js → pw-ai-BKPa5DlF.js} +13 -13
  132. package/dist/{qmd-manager-B_GgyQQ0.js → qmd-manager-DEJVRLvM.js} +8 -8
  133. package/dist/{query-expansion-DEq020GG.js → query-expansion-CW7PqIXL.js} +5 -5
  134. package/dist/{redact-Bvpf-ATQ.js → redact-D1Ebz_iR.js} +1 -1
  135. package/dist/{register.agent-BGs6wEo-.js → register.agent-ButiRGeg.js} +9 -9
  136. package/dist/{register.agent-DliuXWG0.js → register.agent-Xdy9Gu3H.js} +8 -8
  137. package/dist/{register.configure-D9bNPRml.js → register.configure-f4xr9iKB.js} +8 -8
  138. package/dist/{register.configure-DJsShg2l.js → register.configure-m5qhbCOO.js} +8 -8
  139. package/dist/{register.maintenance-B-36Avrl.js → register.maintenance-BA4e0HDc.js} +8 -8
  140. package/dist/{register.maintenance-B7ZM7NqF.js → register.maintenance-N55abUee.js} +9 -9
  141. package/dist/{register.message-CmEzaYEw.js → register.message-DaVB6EYW.js} +3 -3
  142. package/dist/{register.message-Cm5P_dls.js → register.message-Zta0bYh0.js} +3 -3
  143. package/dist/{register.onboard-ByUSn1hy.js → register.onboard-BHKf5Emm.js} +2 -2
  144. package/dist/{register.onboard-cB-UkXhL.js → register.onboard-BikBO9Gs.js} +2 -2
  145. package/dist/{register.orchestrator-anton-D_mAceTk.js → register.orchestrator-anton-DtPFOV9F.js} +2 -2
  146. package/dist/{register.orchestrator-anton-CADua5Nr.js → register.orchestrator-anton-x3yGok7b.js} +2 -2
  147. package/dist/{register.setup-CA3WwC1V.js → register.setup-BeRMjZaz.js} +2 -2
  148. package/dist/{register.setup-DOnWysTP.js → register.setup-DCIPrpG0.js} +2 -2
  149. package/dist/{register.status-health-sessions-DgR30NBl.js → register.status-health-sessions-CA5wMwpi.js} +4 -4
  150. package/dist/{register.status-health-sessions-Dsvbkrhh.js → register.status-health-sessions-I0YSjY_V.js} +4 -4
  151. package/dist/{register.subclis-CvN5J3oh.js → register.subclis-DZkq_g35.js} +9 -9
  152. package/dist/{replies-6_GxvQYe.js → replies-CXcxPRWk.js} +3 -3
  153. package/dist/{reply-D6y5faqD.js → reply-DlS9HBVo.js} +11 -11
  154. package/dist/{reply-prefix-BUgeSN2R.js → reply-prefix-49q2WQ2B.js} +1 -1
  155. package/dist/{resolve-route-DuttYY7A.js → resolve-route-Dr-fqH39.js} +4 -4
  156. package/dist/{retry-BeB9WenR.js → retry-DWN-e4ja.js} +1 -1
  157. package/dist/{run-main-BBYeikWD.js → run-main-B75ak_hb.js} +15 -15
  158. package/dist/{runner-BzNdfqDz.js → runner-DO528Ump.js} +11 -11
  159. package/dist/{send-BeIZJuy4.js → send-BspIjWIY.js} +7 -7
  160. package/dist/{send-DmLC7aEF.js → send-BypmtKl1.js} +10 -10
  161. package/dist/{send-D4bMycQu.js → send-CRnMBrJ2.js} +7 -7
  162. package/dist/{send-Dfa3sn6r.js → send-De8xTUIV.js} +24 -24
  163. package/dist/{send-C1hvd3bt.js → send-szC_vYk_.js} +6 -6
  164. package/dist/{server-node-events-CcAiA2an.js → server-node-events-B1RPoseF.js} +3 -3
  165. package/dist/{server-node-events-DeBYOK05.js → server-node-events-CufCnFp4.js} +3 -3
  166. package/dist/{session-F_YDS_1V.js → session-CKiIT4OY.js} +7 -7
  167. package/dist/{sessions-3ioSeOA1.js → sessions-BgxmLQuf.js} +41 -41
  168. package/dist/{skill-commands-Ck3flWX7.js → skill-commands-BOUMR5De.js} +9 -9
  169. package/dist/{skills-CnAPWfca.js → skills-OsjsCf_S.js} +22 -22
  170. package/dist/{status-Dd0rJBTD.js → status-ERmEJYw1.js} +2 -2
  171. package/dist/{status-BW8aF7xu.js → status-hXjECVBh.js} +2 -2
  172. package/dist/{store-CvMgrKWx.js → store-B4rHJvSg.js} +2 -2
  173. package/dist/{subagent-registry-DeXWDNty.js → subagent-registry-CcxZYIwL.js} +11 -11
  174. package/dist/{subsystem-tzu-rIAJ.js → subsystem-B98oWbbO.js} +1 -1
  175. package/dist/{tables-5k-zOZ-s.js → tables-DuOExt0S.js} +1 -1
  176. package/dist/{target-errors-BPfQrPim.js → target-errors-CWZr3RMI.js} +2 -2
  177. package/dist/{tokens-BRLyURxW.js → tokens-B9ArFCMX.js} +1 -1
  178. package/dist/{tool-images-CcGZpzmq.js → tool-images-DLiBUCZb.js} +2 -2
  179. package/dist/{tool-loop-detection-BNGetx3Z.js → tool-loop-detection-j48jLTrr.js} +3 -3
  180. package/dist/{update-cli-C97163Ne.js → update-cli-DROtjWg7.js} +9 -9
  181. package/dist/{update-cli-DLWAR9u6.js → update-cli-Rnv68OR6.js} +8 -8
  182. package/dist/{update-runner-Cft2lh5r.js → update-runner-BWxBVG9j.js} +1 -1
  183. package/dist/{update-runner-BV9LWTCG.js → update-runner-CqeNDbPD.js} +1 -1
  184. package/dist/{utils-CTFLl_ji.js → utils-ChNzRVsg.js} +18 -18
  185. package/dist/{web-BwZ1OGaX.js → web-5ddwA0bs.js} +66 -66
  186. package/dist/{web-D8zB-Qkg.js → web-BMSzFWiF.js} +3 -3
  187. package/dist/{web-DGPTqAhk.js → web-BQLIquZA.js} +3 -3
  188. package/dist/{web-Da_aB4Vm.js → web-CnzKMZK0.js} +3 -3
  189. package/dist/{whatsapp-actions-DbPcN6JQ.js → whatsapp-actions-CYraflBZ.js} +25 -25
  190. package/dist/{workspace-DBFSzT6O.js → workspace-AM44PzIs.js} +18 -18
  191. package/extensions/acpx/package.json +1 -1
  192. package/extensions/bluebubbles/package.json +1 -1
  193. package/extensions/copilot-proxy/package.json +1 -1
  194. package/extensions/diagnostics-otel/package.json +1 -1
  195. package/extensions/discord/package.json +1 -1
  196. package/extensions/feishu/package.json +1 -1
  197. package/extensions/google-gemini-cli-auth/package.json +1 -1
  198. package/extensions/googlechat/package.json +1 -1
  199. package/extensions/hand/package.json +1 -1
  200. package/extensions/imessage/package.json +1 -1
  201. package/extensions/irc/package.json +1 -1
  202. package/extensions/line/package.json +1 -1
  203. package/extensions/llm-task/package.json +1 -1
  204. package/extensions/matrix/CHANGELOG.md +12 -0
  205. package/extensions/matrix/package.json +1 -1
  206. package/extensions/mattermost/package.json +1 -1
  207. package/extensions/memory-core/package.json +1 -1
  208. package/extensions/memory-lancedb/package.json +1 -1
  209. package/extensions/minimax-portal-auth/package.json +1 -1
  210. package/extensions/msteams/CHANGELOG.md +12 -0
  211. package/extensions/msteams/package.json +1 -1
  212. package/extensions/nextcloud-talk/package.json +1 -1
  213. package/extensions/nostr/CHANGELOG.md +12 -0
  214. package/extensions/nostr/package.json +1 -1
  215. package/extensions/open-prose/package.json +1 -1
  216. package/extensions/signal/package.json +1 -1
  217. package/extensions/slack/package.json +1 -1
  218. package/extensions/synology-chat/package.json +1 -1
  219. package/extensions/telegram/package.json +1 -1
  220. package/extensions/tlon/package.json +1 -1
  221. package/extensions/twitch/CHANGELOG.md +12 -0
  222. package/extensions/twitch/package.json +1 -1
  223. package/extensions/voice-call/CHANGELOG.md +12 -0
  224. package/extensions/voice-call/package.json +1 -1
  225. package/extensions/whatsapp/package.json +1 -1
  226. package/extensions/zalo/CHANGELOG.md +12 -0
  227. package/extensions/zalo/package.json +1 -1
  228. package/extensions/zalouser/CHANGELOG.md +12 -0
  229. package/extensions/zalouser/package.json +1 -1
  230. package/package.json +1 -1
  231. package/dist/emergency-stop-w0AyIMs7.js +0 -113
@@ -11,15 +11,15 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
11
11
  import { t as note$1 } from "./note-C2HHth6G.js";
12
12
  import { t as WizardCancelledError } from "./prompts-D3HHe1ZZ.js";
13
13
  import { t as createClackPrompter } from "./clack-prompter-Bo7vS5xP.js";
14
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-CM4puuWQ.js";
14
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-9XAEsgO-.js";
15
15
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-DUHqeg5Y.js";
16
16
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CRT3STlu.js";
17
17
  import { t as resolveGatewayService } from "./service-BzgRt9im.js";
18
- import { r as healthCommand } from "./health-dLZas7f8.js";
18
+ import { r as healthCommand } from "./health-B3kk7l82.js";
19
19
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5haX6bT.js";
20
20
  import { n as logConfigUpdated } from "./logging-MF6Thoxk.js";
21
21
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-kycZqH8q.js";
22
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-D-TtZtMR.js";
22
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-DtvI4epn.js";
23
23
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-D_yngXMe.js";
24
24
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Dx928sEF.js";
25
25
  import { a as promptCustomApiConfig } from "./onboard-custom-BjUK6yP5.js";
@@ -1,19 +1,19 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { d as resolveStateDir } from "./paths-BYNVLNi_.js";
3
- import { C as triggerInternalHook, b as createInternalHookEvent, l as getActivePluginRegistry, t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
2
+ import { d as resolveStateDir } from "./paths-CkTEyLTV.js";
3
+ import { C as triggerInternalHook, b as createInternalHookEvent, l as getActivePluginRegistry, t as createSubsystemLogger } from "./subsystem-B98oWbbO.js";
4
4
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-CuLPSMu_.js";
5
- import { t as getChannelDock } from "./dock-BgOmHcbh.js";
6
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BRLyURxW.js";
7
- import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CRB60mCJ.js";
5
+ import { t as getChannelDock } from "./dock-6MgvdSqu.js";
6
+ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-B9ArFCMX.js";
7
+ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-Bb6_uisJ.js";
8
8
  import { n as generateSecureUuid } from "./secure-random-B1N_MXT_.js";
9
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-CyTpDKo5.js";
10
- import { E as parseInlineDirectives, a as resolveMirroredTranscriptText, i as appendAssistantMessageToSessionTranscript } from "./sessions-3ioSeOA1.js";
11
- import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-CMpX7Jaz.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-CzsockiZ.js";
13
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-KN4Hp1yZ.js";
14
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-C1hvd3bt.js";
9
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-B1CKQ81Y.js";
10
+ import { E as parseInlineDirectives, a as resolveMirroredTranscriptText, i as appendAssistantMessageToSessionTranscript } from "./sessions-BgxmLQuf.js";
11
+ import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BgScV6uo.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-CsrsXS80.js";
13
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-C9CA2f0R.js";
14
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-szC_vYk_.js";
15
15
  import path from "node:path";
16
- import syncFs from "node:fs";
16
+ import fsSync from "node:fs";
17
17
 
18
18
  //#region src/plugins/hooks.ts
19
19
  /**
@@ -843,11 +843,11 @@ function resolveFailedDir(stateDir) {
843
843
  /** Ensure the queue directory (and failed/ subdirectory) exist. */
844
844
  async function ensureQueueDir(stateDir) {
845
845
  const queueDir = resolveQueueDir(stateDir);
846
- await syncFs.promises.mkdir(queueDir, {
846
+ await fsSync.promises.mkdir(queueDir, {
847
847
  recursive: true,
848
848
  mode: 448
849
849
  });
850
- await syncFs.promises.mkdir(resolveFailedDir(stateDir), {
850
+ await fsSync.promises.mkdir(resolveFailedDir(stateDir), {
851
851
  recursive: true,
852
852
  mode: 448
853
853
  });
@@ -874,18 +874,18 @@ async function enqueueDelivery(params, stateDir) {
874
874
  const filePath = path.join(queueDir, `${id}.json`);
875
875
  const tmp = `${filePath}.${process.pid}.tmp`;
876
876
  const json = JSON.stringify(entry, null, 2);
877
- await syncFs.promises.writeFile(tmp, json, {
877
+ await fsSync.promises.writeFile(tmp, json, {
878
878
  encoding: "utf-8",
879
879
  mode: 384
880
880
  });
881
- await syncFs.promises.rename(tmp, filePath);
881
+ await fsSync.promises.rename(tmp, filePath);
882
882
  return id;
883
883
  }
884
884
  /** Remove a successfully delivered entry from the queue. */
885
885
  async function ackDelivery(id, stateDir) {
886
886
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
887
887
  try {
888
- await syncFs.promises.unlink(filePath);
888
+ await fsSync.promises.unlink(filePath);
889
889
  } catch (err) {
890
890
  if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) !== "ENOENT") throw err;
891
891
  }
@@ -893,17 +893,17 @@ async function ackDelivery(id, stateDir) {
893
893
  /** Update a queue entry after a failed delivery attempt. */
894
894
  async function failDelivery(id, error, stateDir) {
895
895
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
896
- const raw = await syncFs.promises.readFile(filePath, "utf-8");
896
+ const raw = await fsSync.promises.readFile(filePath, "utf-8");
897
897
  const entry = JSON.parse(raw);
898
898
  entry.retryCount += 1;
899
899
  entry.lastAttemptAt = Date.now();
900
900
  entry.lastError = error;
901
901
  const tmp = `${filePath}.${process.pid}.tmp`;
902
- await syncFs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
902
+ await fsSync.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
903
903
  encoding: "utf-8",
904
904
  mode: 384
905
905
  });
906
- await syncFs.promises.rename(tmp, filePath);
906
+ await fsSync.promises.rename(tmp, filePath);
907
907
  }
908
908
 
909
909
  //#endregion
@@ -18,7 +18,7 @@ var deps_exports = /* @__PURE__ */ __exportAll({ createDefaultDeps: () => create
18
18
  function createDefaultDeps() {
19
19
  return {
20
20
  sendMessageWhatsApp: async (...args) => {
21
- const { sendMessageWhatsApp } = await import("./web-DGPTqAhk.js");
21
+ const { sendMessageWhatsApp } = await import("./web-BQLIquZA.js");
22
22
  return await sendMessageWhatsApp(...args);
23
23
  },
24
24
  sendMessageTelegram: async (...args) => {
@@ -21,7 +21,7 @@ var deps_exports = /* @__PURE__ */ __exportAll({
21
21
  function createDefaultDeps() {
22
22
  return {
23
23
  sendMessageWhatsApp: async (...args) => {
24
- const { sendMessageWhatsApp } = await import("./web-Da_aB4Vm.js");
24
+ const { sendMessageWhatsApp } = await import("./web-CnzKMZK0.js");
25
25
  return await sendMessageWhatsApp(...args);
26
26
  },
27
27
  sendMessageTelegram: async (...args) => {
@@ -18,27 +18,27 @@ var deps_exports = /* @__PURE__ */ __exportAll({ createDefaultDeps: () => create
18
18
  function createDefaultDeps() {
19
19
  return {
20
20
  sendMessageWhatsApp: async (...args) => {
21
- const { sendMessageWhatsApp } = await import("./web-BwZ1OGaX.js");
21
+ const { sendMessageWhatsApp } = await import("./web-5ddwA0bs.js");
22
22
  return await sendMessageWhatsApp(...args);
23
23
  },
24
24
  sendMessageTelegram: async (...args) => {
25
- const { sendMessageTelegram } = await import("./send-Dfa3sn6r.js").then((n) => n.l);
25
+ const { sendMessageTelegram } = await import("./send-De8xTUIV.js").then((n) => n.l);
26
26
  return await sendMessageTelegram(...args);
27
27
  },
28
28
  sendMessageDiscord: async (...args) => {
29
- const { sendMessageDiscord } = await import("./send-DmLC7aEF.js").then((n) => n.t);
29
+ const { sendMessageDiscord } = await import("./send-BypmtKl1.js").then((n) => n.t);
30
30
  return await sendMessageDiscord(...args);
31
31
  },
32
32
  sendMessageSlack: async (...args) => {
33
- const { sendMessageSlack } = await import("./send-BeIZJuy4.js").then((n) => n.n);
33
+ const { sendMessageSlack } = await import("./send-BspIjWIY.js").then((n) => n.n);
34
34
  return await sendMessageSlack(...args);
35
35
  },
36
36
  sendMessageSignal: async (...args) => {
37
- const { sendMessageSignal } = await import("./send-C1hvd3bt.js").then((n) => n.i);
37
+ const { sendMessageSignal } = await import("./send-szC_vYk_.js").then((n) => n.i);
38
38
  return await sendMessageSignal(...args);
39
39
  },
40
40
  sendMessageIMessage: async (...args) => {
41
- const { sendMessageIMessage } = await import("./send-D4bMycQu.js").then((n) => n.n);
41
+ const { sendMessageIMessage } = await import("./send-CRnMBrJ2.js").then((n) => n.n);
42
42
  return await sendMessageIMessage(...args);
43
43
  }
44
44
  };
@@ -21,7 +21,7 @@ var deps_exports = /* @__PURE__ */ __exportAll({
21
21
  function createDefaultDeps() {
22
22
  return {
23
23
  sendMessageWhatsApp: async (...args) => {
24
- const { sendMessageWhatsApp } = await import("./web-D8zB-Qkg.js");
24
+ const { sendMessageWhatsApp } = await import("./web-BMSzFWiF.js");
25
25
  return await sendMessageWhatsApp(...args);
26
26
  },
27
27
  sendMessageTelegram: async (...args) => {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-B98oWbbO.js";
3
3
  import { i as pruneDiagnosticSessionStates, r as getDiagnosticSessionState, t as diagnosticSessionStates } from "./diagnostic-session-state-BGF2r-kt.js";
4
4
 
5
5
  //#region src/infra/diagnostic-events.ts
@@ -1,11 +1,11 @@
1
- import { d as requireActivePluginRegistry, i as getChatChannelMeta, r as CHAT_CHANNEL_ORDER } from "./subsystem-tzu-rIAJ.js";
2
- import { d as normalizeE164, o as escapeRegExp } from "./utils-CTFLl_ji.js";
1
+ import { d as requireActivePluginRegistry, i as getChatChannelMeta, r as CHAT_CHANNEL_ORDER } from "./subsystem-B98oWbbO.js";
2
+ import { d as normalizeE164, o as escapeRegExp } from "./utils-ChNzRVsg.js";
3
3
  import { p as normalizeAccountId } from "./session-key-CuLPSMu_.js";
4
- import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, d as resolveSlackAccount, f as resolveSlackReplyToMode, l as resolveTelegramAccount } from "./plugins-CRB60mCJ.js";
5
- import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
4
+ import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, d as resolveSlackAccount, f as resolveSlackReplyToMode, l as resolveTelegramAccount } from "./plugins-Bb6_uisJ.js";
5
+ import { n as resolveWhatsAppAccount } from "./accounts-CRDMZUcg.js";
6
6
  import { t as resolveAccountEntry } from "./account-lookup-DlMshWZ_.js";
7
- import { n as resolveSignalAccount } from "./accounts-BDVs8LTu.js";
8
- import { t as resolveIMessageAccount } from "./accounts-CIvVRRHb.js";
7
+ import { n as resolveSignalAccount } from "./accounts-upx5iuke.js";
8
+ import { t as resolveIMessageAccount } from "./accounts-yD5yI-jP.js";
9
9
 
10
10
  //#region src/config/types.tools.ts
11
11
  const TOOLS_BY_SENDER_KEY_TYPES = [
@@ -1,7 +1,7 @@
1
1
  import { t as resolveIdleHandsPackageRoot } from "./idlehands-root-B8cUs-5M.js";
2
2
  import { r as resolveCliName } from "./command-format-DInZLuZ8.js";
3
3
  import { t as note } from "./note-69EfBEU-.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-C1StqVUs.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BIabgt7h.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-CPa5ksO_.js";
2
2
  import { t as resolveIdleHandsPackageRoot } from "./idlehands-root-SOu5dQGI.js";
3
3
  import { t as note } from "./note-C2HHth6G.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BTtvgatl.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-p9W-g1Pe.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cn44w-EB.js";
2
2
  import { M as logVerbose } from "./utils-CXzXXV2o.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { An as formatAbortReplyText, Mn as stopSubagentsForRequester, Vn as clearSessionQueues, f as abortEmbeddedPiRun, jn as isAbortRequestText } from "./reply-D6y5faqD.js";
4
+ import { An as formatAbortReplyText, Mn as stopSubagentsForRequester, Vn as clearSessionQueues, f as abortEmbeddedPiRun, jn as isAbortRequestText } from "./reply-DlS9HBVo.js";
5
5
  import "./agent-scope-RA0zXRpu.js";
6
6
  import "./subsystem-CGZX2PBV.js";
7
7
  import "./runtime-44j_X4Y6.js";
@@ -102,7 +102,7 @@ import "./resolve-route-D_AbcmD6.js";
102
102
  import "./replies-hSFVxL4h.js";
103
103
  import "./skill-commands-BFzmZAfo.js";
104
104
  import "./workspace-dirs-SsExQ3Bz.js";
105
- import "./deps-CYAKIzhf.js";
105
+ import "./deps-Dr9GpASq.js";
106
106
  import "./plugin-auto-enable-7DUxMy6A.js";
107
107
  import "./channel-selection-ZxRkxpuF.js";
108
108
  import "./outbound-attachment-Bot3bRnK.js";
@@ -9,7 +9,7 @@ import "./github-copilot-token-D50c466d.js";
9
9
  import "./env-BpvqFD5n.js";
10
10
  import "./dock-QcCdS4qA.js";
11
11
  import "./tokens-Cg4XNE3H.js";
12
- import { F as isAbortRequestText, I as stopSubagentsForRequester, P as formatAbortReplyText, V as clearSessionQueues, n as abortEmbeddedPiRun } from "./pi-embedded-BKTKQn_9.js";
12
+ import { F as isAbortRequestText, I as stopSubagentsForRequester, P as formatAbortReplyText, V as clearSessionQueues, n as abortEmbeddedPiRun } from "./pi-embedded-Dap1HAGA.js";
13
13
  import "./plugins-D-_jp4FO.js";
14
14
  import "./accounts-BwrguHMw.js";
15
15
  import "./bindings-hT7SPhiA.js";
@@ -62,7 +62,7 @@ import "./send-Cn2wvd3W.js";
62
62
  import "./resolve-route-BI3VjtwE.js";
63
63
  import "./proxy-CNZpb4NE.js";
64
64
  import "./replies-CqYEEgmA.js";
65
- import "./deps-C28cWNmF.js";
65
+ import "./deps-BMWq0kjy.js";
66
66
 
67
67
  //#region src/auto-reply/reply/emergency-stop.ts
68
68
  /**
@@ -25,7 +25,7 @@ import "./logging-Bgrm4o7g.js";
25
25
  import "./auth-store-D9BmR4S6.js";
26
26
  import "./send-m4lQkQcY.js";
27
27
  import "./send-CCiDIuX4.js";
28
- import { $n as stopSubagentsForRequester, Qn as isAbortRequestText, Zn as formatAbortReplyText, c as abortEmbeddedPiRun, o as clearSessionQueues } from "./subagent-registry-DeXWDNty.js";
28
+ import { $n as stopSubagentsForRequester, Qn as isAbortRequestText, Zn as formatAbortReplyText, c as abortEmbeddedPiRun, o as clearSessionQueues } from "./subagent-registry-CcxZYIwL.js";
29
29
  import { r as resolveDefaultSessionStorePath } from "./paths-CC17i2eK.js";
30
30
  import "./chat-envelope-Dedaetiq.js";
31
31
  import "./client-Brv1GCwX.js";
@@ -108,7 +108,7 @@ import "./cli-utils-BfsDuRZS.js";
108
108
  import "./help-format-CldHB7lS.js";
109
109
  import "./progress-B76RkFx7.js";
110
110
  import "./replies-DSfpze17.js";
111
- import "./deps-Cn32rOjf.js";
111
+ import "./deps-BuRud-p8.js";
112
112
  import "./onboard-helpers-Dp6wXNs7.js";
113
113
  import "./prompt-style-XmK49QYK.js";
114
114
  import "./pairing-labels-D7xcHkxi.js";
@@ -0,0 +1,113 @@
1
+ import "./agent-scope-BVeQuh5x.js";
2
+ import "./paths-CkTEyLTV.js";
3
+ import "./subsystem-B98oWbbO.js";
4
+ import { D as logVerbose } from "./utils-ChNzRVsg.js";
5
+ import "./runtime-8mi3mpYB.js";
6
+ import "./workspace-AM44PzIs.js";
7
+ import "./model-selection-Vtu6d5Um.js";
8
+ import "./github-copilot-token-DCg9Q9Ll.js";
9
+ import "./boolean-CE7i9tBR.js";
10
+ import "./env-B7b7MKfk.js";
11
+ import "./dock-6MgvdSqu.js";
12
+ import "./tokens-B9ArFCMX.js";
13
+ import { B as clearSessionQueues, F as isAbortRequestText, I as stopSubagentsForRequester, P as formatAbortReplyText, n as abortEmbeddedPiRun } from "./pi-embedded-BDp9JsrM.js";
14
+ import "./plugins-Bb6_uisJ.js";
15
+ import "./accounts-CRDMZUcg.js";
16
+ import "./bindings-B9L4cqmm.js";
17
+ import "./auth-store-DQAd4LSE.js";
18
+ import "./send-BspIjWIY.js";
19
+ import "./send-BypmtKl1.js";
20
+ import "./deliver-CJaM2zRY.js";
21
+ import "./diagnostic-lz5wKsEe.js";
22
+ import "./diagnostic-session-state-BGF2r-kt.js";
23
+ import "./accounts-upx5iuke.js";
24
+ import "./send-De8xTUIV.js";
25
+ import "./image-ops-ZNtLhD4c.js";
26
+ import "./pi-model-discovery-DBHbwKOo.js";
27
+ import "./message-channel-Cg9KtLfy.js";
28
+ import "./pi-embedded-helpers-B1CKQ81Y.js";
29
+ import "./chrome-D_SXDetO.js";
30
+ import "./ssrf-CZeHDwVZ.js";
31
+ import "./frontmatter-p8nPDprK.js";
32
+ import "./skills-OsjsCf_S.js";
33
+ import "./path-alias-guards-BnjbJzIQ.js";
34
+ import "./redact-D1Ebz_iR.js";
35
+ import "./errors--Eb33_ji.js";
36
+ import "./fs-safe-BEl8T_Vc.js";
37
+ import "./store-B4rHJvSg.js";
38
+ import { s as loadSessionStore } from "./sessions-BgxmLQuf.js";
39
+ import "./accounts-yD5yI-jP.js";
40
+ import { r as resolveDefaultSessionStorePath } from "./paths-0fcEvxu4.js";
41
+ import "./tool-images-DLiBUCZb.js";
42
+ import "./thinking-z4_linel.js";
43
+ import "./image-BQ3RQWD8.js";
44
+ import "./reply-prefix-49q2WQ2B.js";
45
+ import "./manager-DBd_2F6j.js";
46
+ import "./gemini-auth-CA0K3QXj.js";
47
+ import "./fetch-guard-OZ_PCUyr.js";
48
+ import "./query-expansion-CW7PqIXL.js";
49
+ import "./retry-DWN-e4ja.js";
50
+ import "./target-errors-CWZr3RMI.js";
51
+ import "./chunk-BgScV6uo.js";
52
+ import "./markdown-tables-CsrsXS80.js";
53
+ import "./local-roots-C9CA2f0R.js";
54
+ import "./ir-DnyYtX4H.js";
55
+ import "./render-MTSxc7LK.js";
56
+ import "./commands-registry-CK7aj_ri.js";
57
+ import "./skill-commands-BOUMR5De.js";
58
+ import "./runner-DO528Ump.js";
59
+ import "./fetch-CsfR_943.js";
60
+ import "./channel-activity-DOLX-uK1.js";
61
+ import "./tables-DuOExt0S.js";
62
+ import "./send-szC_vYk_.js";
63
+ import "./outbound-attachment-DwaqvYNG.js";
64
+ import "./send-CRnMBrJ2.js";
65
+ import "./resolve-route-Dr-fqH39.js";
66
+ import "./proxy-CRB9oCP5.js";
67
+ import "./replies-CXcxPRWk.js";
68
+ import "./deps-CQzDLqTz.js";
69
+
70
+ //#region src/auto-reply/reply/emergency-stop.ts
71
+ /**
72
+ * Emergency stop — bypass all queues and debouncing.
73
+ * Called at the earliest ingress point (before debouncer) to guarantee immediate execution.
74
+ */
75
+ /**
76
+ * Execute an emergency stop for a session.
77
+ * Clears all queues, aborts embedded runs, and stops subagents.
78
+ * Returns the reply text to send to the user.
79
+ */
80
+ function emergencyStop(params) {
81
+ const { cfg, sessionKey, sessionId } = params;
82
+ const cleared = clearSessionQueues([sessionKey, sessionId]);
83
+ if (cleared.followupCleared > 0 || cleared.laneCleared > 0) logVerbose(`emergency-stop: cleared followups=${cleared.followupCleared} lane=${cleared.laneCleared} keys=${cleared.keys.join(",")}`);
84
+ if (sessionId) abortEmbeddedPiRun(sessionId);
85
+ const { stopped } = stopSubagentsForRequester({
86
+ cfg,
87
+ requesterSessionKey: sessionKey
88
+ });
89
+ logVerbose(`emergency-stop: sessionKey=${sessionKey} sessionId=${sessionId} stoppedSubagents=${stopped}`);
90
+ return {
91
+ aborted: true,
92
+ replyText: formatAbortReplyText(stopped),
93
+ sessionKey
94
+ };
95
+ }
96
+ /**
97
+ * Resolve session info from the session store for emergency stop.
98
+ * Lightweight — just reads the store, no locks.
99
+ */
100
+ function resolveSessionForEmergencyStop(sessionKey) {
101
+ try {
102
+ const store = loadSessionStore(resolveDefaultSessionStorePath());
103
+ return {
104
+ sessionId: store[sessionKey]?.sessionId,
105
+ store
106
+ };
107
+ } catch {
108
+ return {};
109
+ }
110
+ }
111
+
112
+ //#endregion
113
+ export { emergencyStop, isAbortRequestText, resolveSessionForEmergencyStop };
package/dist/entry.js CHANGED
@@ -2566,7 +2566,7 @@ if (!isMainModule({
2566
2566
  applyCliProfileEnv({ profile: parsed.profile });
2567
2567
  process$1.argv = parsed.argv;
2568
2568
  }
2569
- import("./run-main-BBYeikWD.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2569
+ import("./run-main-B75ak_hb.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2570
2570
  console.error("[idlehands] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2571
2571
  process$1.exitCode = 1;
2572
2572
  });
@@ -1,4 +1,4 @@
1
- import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-B98oWbbO.js";
2
2
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
3
3
 
4
4
  //#region src/infra/env.ts
@@ -1,4 +1,4 @@
1
- import { t as redactSensitiveText } from "./redact-Bvpf-ATQ.js";
1
+ import { t as redactSensitiveText } from "./redact-D1Ebz_iR.js";
2
2
 
3
3
  //#region src/infra/errors.ts
4
4
  function extractErrorCode(err) {
@@ -9,7 +9,7 @@ import "./github-copilot-token-D50c466d.js";
9
9
  import "./env-BpvqFD5n.js";
10
10
  import "./dock-QcCdS4qA.js";
11
11
  import "./tokens-Cg4XNE3H.js";
12
- import { B as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-BKTKQn_9.js";
12
+ import { B as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-Dap1HAGA.js";
13
13
  import "./plugins-D-_jp4FO.js";
14
14
  import "./accounts-BwrguHMw.js";
15
15
  import "./bindings-hT7SPhiA.js";
@@ -62,6 +62,6 @@ import "./send-Cn2wvd3W.js";
62
62
  import "./resolve-route-BI3VjtwE.js";
63
63
  import "./proxy-CNZpb4NE.js";
64
64
  import "./replies-CqYEEgmA.js";
65
- import "./deps-C28cWNmF.js";
65
+ import "./deps-BMWq0kjy.js";
66
66
 
67
67
  export { DEFAULT_MODEL, DEFAULT_PROVIDER, ensureAgentWorkspace, loadSessionStore, resolveAgentDir, resolveAgentIdentity, resolveAgentTimeoutMs, resolveAgentWorkspaceDir, resolveSessionFilePath, resolveStorePath, resolveThinkingDefault, runEmbeddedPiAgent, saveSessionStore };
@@ -1,4 +1,4 @@
1
- import { S as logWarn } from "./workspace-DBFSzT6O.js";
1
+ import { S as logWarn } from "./workspace-AM44PzIs.js";
2
2
  import { a as resolvePinnedHostnameWithPolicy, n as closeDispatcher, r as createPinnedDispatcher, t as SsrFBlockedError } from "./ssrf-CZeHDwVZ.js";
3
3
  import { t as bindAbortRelay } from "./fetch-timeout-3YYM8QuM.js";
4
4
  import { EnvHttpProxyAgent } from "undici";
@@ -1,7 +1,7 @@
1
1
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
2
2
  import { n as MANIFEST_KEY, t as LEGACY_MANIFEST_KEYS } from "./legacy-names-B4ZvHEmO.js";
3
3
  import path from "node:path";
4
- import syncFs from "node:fs";
4
+ import fsSync from "node:fs";
5
5
  import JSON5 from "json5";
6
6
  import YAML from "yaml";
7
7
 
@@ -93,7 +93,7 @@ function hasBinary(bin) {
93
93
  for (const part of parts) for (const ext of extensions) {
94
94
  const candidate = path.join(part, bin + ext);
95
95
  try {
96
- syncFs.accessSync(candidate, syncFs.constants.X_OK);
96
+ fsSync.accessSync(candidate, fsSync.constants.X_OK);
97
97
  hasBinaryCache.set(bin, true);
98
98
  return true;
99
99
  } catch {}
@@ -1,5 +1,5 @@
1
- import { A as isNotFoundPathError, E as sameFileIdentity, M as isSymlinkOpenError, j as isPathInside } from "./workspace-DBFSzT6O.js";
2
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-Cu1nXNMM.js";
1
+ import { A as isNotFoundPathError, E as sameFileIdentity, M as isSymlinkOpenError, j as isPathInside } from "./workspace-AM44PzIs.js";
2
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-BnjbJzIQ.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { constants } from "node:fs";
@@ -28,7 +28,7 @@ import "./logging-Bgrm4o7g.js";
28
28
  import "./auth-store-D9BmR4S6.js";
29
29
  import "./send-m4lQkQcY.js";
30
30
  import "./send-CCiDIuX4.js";
31
- import { $n as stopSubagentsForRequester, A as createOutboundSendDeps, An as requestHeartbeatNow, Ar as clearAgentRunContext, At as normalizeHttpWebhookUrl, Bn as DEFAULT_INPUT_MAX_REDIRECTS, Bt as buildDeliveryFromLegacyPayload, C as computeBackoff, Cr as waitForActiveTasks, Ct as consumeRestartSentinel, Dn as isSystemEventContextChanged, Dt as summarizeRestartSentinel, E as agentCommand, En as enqueueSystemEvent, Fn as ACP_SESSION_IDENTITY_RENDERER_VERSION, Ft as normalizeOptionalSessionKey, Gn as resolveInputFileLimits, Gt as buildSafeExternalPrompt, Hn as extractFileContentFromSource, Ht as stripLegacyDeliveryFields, In as getAcpSessionManager, It as normalizeOptionalText, Jn as resolveSendPolicy, Jt as isExternalHookSession, Kn as resolveAgentTimeoutMs, Kt as detectSuspiciousPatterns, Ln as resolveAgentSessionDirs, Lt as normalizePayloadToSystemText, Mr as getAgentRunContext, Mt as normalizeCronJobPatch, Nr as onAgentEvent, Nt as inferLegacyName, O as resolveAgentDeliveryPlan, Pr as registerAgentRunContext, Pt as normalizeOptionalAgentId, Q as getTotalPendingReplies, Qn as isAbortRequestText, R as buildHistoryContextFromEntries, Rn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Rt as normalizeRequiredName, S as requestBodyErrorToText, Sr as setCommandLaneConcurrency, Tr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Tt as formatRestartSentinelMessage, Un as extractImageContentFromSource, Vn as DEFAULT_INPUT_TIMEOUT_MS, Vt as hasLegacyDeliveryHints, Wn as normalizeMimeList, X as dispatchInboundMessage, Xt as persistBrowserProxyFiles, Yt as applyBrowserProxyPaths, Z as createReplyDispatcher, Zt as resolveSessionAuthProfileOverride, _ as loadIdleHandsPlugins, _r as getActiveTaskCount, _t as resolveOutboundChannelPlugin, a as runSubagentAnnounceFlow, an as deferGatewayRestartUntilIdle, ar as isTtsEnabled, at as setCliSessionId, b as handleSlackHttpRequest, bn as buildOutboundSessionContext, br as markGatewayDraining, c as abortEmbeddedPiRun, cn as markGatewaySigusr1RestartHandled, cr as resolveTtsAutoMode, ct as readLatestAssistantReply, d as applyToolPolicyPipeline, dn as setPreRestartDeferralCheck, dr as resolveTtsProviderOrder, dt as ensureOutboundSessionEntry, f as buildDefaultToolPolicyPipelineSteps, fn as unbindThreadBindingsBySessionKey, fr as setTtsEnabled, ft as resolveOutboundSessionRoute, gr as OPENAI_TTS_VOICES, gt as resolveSessionDeliveryTarget, h as resolvePluginTools, hn as loadProviderUsageSummary, hr as OPENAI_TTS_MODELS, ht as resolveOutboundTarget, in as consumeGatewaySigusr1RestartAuthorization, ir as getTtsProvider, it as getCliSessionId, j as resolveAgentAvatar, jr as emitAgentEvent, jt as normalizeCronJobCreate, k as resolveAgentOutboundTarget, kr as stripHeartbeatToken, kt as writeRestartSentinel, l as getActiveEmbeddedRunCount, ln as scheduleGatewaySigusr1Restart, lr as resolveTtsConfig, lt as resolveAnnounceTargetFromKey, m as getPluginToolMeta, mr as textToSpeech, n as initSubagentRegistry, nn as applyVerboseOverride, nr as resolveUserTimezone, o as clearSessionQueues, on as emitGatewayRestart, or as isTtsProviderConfigured, ot as runCliAgent, pn as normalizeGroupActivation, pr as setTtsProvider, qn as normalizeSendPolicy, qt as getHookType, r as listDescendantRunsForRequester, rn as parseVerboseOverride, rr as clearBootstrapSnapshot, rt as resolveCronStyleNow, s as runEmbeddedPiAgent, sn as isGatewaySigusr1RestartExternallyAllowed, sr as resolveTtsApiKey, st as createIdleHandsTools, t as countActiveDescendantRuns, tn as applyModelOverrideToSessionEntry, tt as BARE_SESSION_RESET_PROMPT, u as waitForEmbeddedPiRunEnd, un as setGatewaySigusr1RestartPolicy, ur as resolveTtsPrefsPath, w as sleepWithAbort, wr as CommandLane, wt as formatDoctorNonInteractiveHint, x as readJsonBodyWithLimit, xn as formatZonedTimestamp, xr as resetAllLanes, xt as runWithModelFallback, yr as getTotalQueueSize, yt as resetDirectoryCache, zn as DEFAULT_INPUT_IMAGE_MIMES, zt as migrateLegacyCronPayload } from "./subagent-registry-DeXWDNty.js";
31
+ import { $n as stopSubagentsForRequester, A as createOutboundSendDeps, An as requestHeartbeatNow, Ar as clearAgentRunContext, At as normalizeHttpWebhookUrl, Bn as DEFAULT_INPUT_MAX_REDIRECTS, Bt as buildDeliveryFromLegacyPayload, C as computeBackoff, Cr as waitForActiveTasks, Ct as consumeRestartSentinel, Dn as isSystemEventContextChanged, Dt as summarizeRestartSentinel, E as agentCommand, En as enqueueSystemEvent, Fn as ACP_SESSION_IDENTITY_RENDERER_VERSION, Ft as normalizeOptionalSessionKey, Gn as resolveInputFileLimits, Gt as buildSafeExternalPrompt, Hn as extractFileContentFromSource, Ht as stripLegacyDeliveryFields, In as getAcpSessionManager, It as normalizeOptionalText, Jn as resolveSendPolicy, Jt as isExternalHookSession, Kn as resolveAgentTimeoutMs, Kt as detectSuspiciousPatterns, Ln as resolveAgentSessionDirs, Lt as normalizePayloadToSystemText, Mr as getAgentRunContext, Mt as normalizeCronJobPatch, Nr as onAgentEvent, Nt as inferLegacyName, O as resolveAgentDeliveryPlan, Pr as registerAgentRunContext, Pt as normalizeOptionalAgentId, Q as getTotalPendingReplies, Qn as isAbortRequestText, R as buildHistoryContextFromEntries, Rn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Rt as normalizeRequiredName, S as requestBodyErrorToText, Sr as setCommandLaneConcurrency, Tr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Tt as formatRestartSentinelMessage, Un as extractImageContentFromSource, Vn as DEFAULT_INPUT_TIMEOUT_MS, Vt as hasLegacyDeliveryHints, Wn as normalizeMimeList, X as dispatchInboundMessage, Xt as persistBrowserProxyFiles, Yt as applyBrowserProxyPaths, Z as createReplyDispatcher, Zt as resolveSessionAuthProfileOverride, _ as loadIdleHandsPlugins, _r as getActiveTaskCount, _t as resolveOutboundChannelPlugin, a as runSubagentAnnounceFlow, an as deferGatewayRestartUntilIdle, ar as isTtsEnabled, at as setCliSessionId, b as handleSlackHttpRequest, bn as buildOutboundSessionContext, br as markGatewayDraining, c as abortEmbeddedPiRun, cn as markGatewaySigusr1RestartHandled, cr as resolveTtsAutoMode, ct as readLatestAssistantReply, d as applyToolPolicyPipeline, dn as setPreRestartDeferralCheck, dr as resolveTtsProviderOrder, dt as ensureOutboundSessionEntry, f as buildDefaultToolPolicyPipelineSteps, fn as unbindThreadBindingsBySessionKey, fr as setTtsEnabled, ft as resolveOutboundSessionRoute, gr as OPENAI_TTS_VOICES, gt as resolveSessionDeliveryTarget, h as resolvePluginTools, hn as loadProviderUsageSummary, hr as OPENAI_TTS_MODELS, ht as resolveOutboundTarget, in as consumeGatewaySigusr1RestartAuthorization, ir as getTtsProvider, it as getCliSessionId, j as resolveAgentAvatar, jr as emitAgentEvent, jt as normalizeCronJobCreate, k as resolveAgentOutboundTarget, kr as stripHeartbeatToken, kt as writeRestartSentinel, l as getActiveEmbeddedRunCount, ln as scheduleGatewaySigusr1Restart, lr as resolveTtsConfig, lt as resolveAnnounceTargetFromKey, m as getPluginToolMeta, mr as textToSpeech, n as initSubagentRegistry, nn as applyVerboseOverride, nr as resolveUserTimezone, o as clearSessionQueues, on as emitGatewayRestart, or as isTtsProviderConfigured, ot as runCliAgent, pn as normalizeGroupActivation, pr as setTtsProvider, qn as normalizeSendPolicy, qt as getHookType, r as listDescendantRunsForRequester, rn as parseVerboseOverride, rr as clearBootstrapSnapshot, rt as resolveCronStyleNow, s as runEmbeddedPiAgent, sn as isGatewaySigusr1RestartExternallyAllowed, sr as resolveTtsApiKey, st as createIdleHandsTools, t as countActiveDescendantRuns, tn as applyModelOverrideToSessionEntry, tt as BARE_SESSION_RESET_PROMPT, u as waitForEmbeddedPiRunEnd, un as setGatewaySigusr1RestartPolicy, ur as resolveTtsPrefsPath, w as sleepWithAbort, wr as CommandLane, wt as formatDoctorNonInteractiveHint, x as readJsonBodyWithLimit, xn as formatZonedTimestamp, xr as resetAllLanes, xt as runWithModelFallback, yr as getTotalQueueSize, yt as resetDirectoryCache, zn as DEFAULT_INPUT_IMAGE_MIMES, zt as migrateLegacyCronPayload } from "./subagent-registry-CcxZYIwL.js";
32
32
  import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath, l as resolveSessionTranscriptsDirForAgent, o as resolveSessionTranscriptPath, u as resolveStorePath } from "./paths-CC17i2eK.js";
33
33
  import { i as normalizeInputProvenance } from "./input-provenance-iBlnbS1d.js";
34
34
  import "./chat-envelope-Dedaetiq.js";
@@ -115,7 +115,7 @@ import { n as runCommandWithRuntime } from "./cli-utils-BfsDuRZS.js";
115
115
  import { t as formatHelpExamples } from "./help-format-CldHB7lS.js";
116
116
  import { n as withProgress } from "./progress-B76RkFx7.js";
117
117
  import "./replies-DSfpze17.js";
118
- import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-Cn32rOjf.js";
118
+ import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-BuRud-p8.js";
119
119
  import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-Dp6wXNs7.js";
120
120
  import "./prompt-style-XmK49QYK.js";
121
121
  import "./pairing-labels-D7xcHkxi.js";
@@ -125,7 +125,7 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-B1XEiDxB.
125
125
  import { n as inheritOptionFromParent } from "./command-options-CK65DMbR.js";
126
126
  import { t as WizardCancelledError } from "./prompts-D3HHe1ZZ.js";
127
127
  import { t as resolveChannelDefaultAccountId } from "./helpers-CIyuenBU.js";
128
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DP_bqTwg.js";
128
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DfWZrbXn.js";
129
129
  import { t as isWithinDir } from "./path-safety-O-JjyFjj.js";
130
130
  import "./install-safe-path-C7y57-yb.js";
131
131
  import "./skill-scanner-CdLElD51.js";
@@ -146,19 +146,19 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
146
146
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-KdaUmZfd.js";
147
147
  import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-Bkd4fvVb.js";
148
148
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-xjvAm8hU.js";
149
- import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-Dd0rJBTD.js";
150
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-dLZas7f8.js";
149
+ import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-ERmEJYw1.js";
150
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-B3kk7l82.js";
151
151
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5haX6bT.js";
152
152
  import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-ofowt_yq.js";
153
153
  import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-BsH_IMcC.js";
154
- import { t as runOnboardingWizard } from "./onboarding-0Pop0Cex.js";
155
- import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-DkGS3lmo.js";
154
+ import { t as runOnboardingWizard } from "./onboarding-DFvHWFqL.js";
155
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-BtI9tV7C.js";
156
156
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-U10Ul2gc.js";
157
157
  import "./node-service-v7Nz7h4D.js";
158
158
  import "./status.update-BzUu2M5c.js";
159
159
  import { a as matchSystemRunApprovalBindingV1, i as buildSystemRunApprovalBindingV1, n as resolveSystemRunApprovalRequestContext, o as missingSystemRunApprovalBindingV1, r as resolveSystemRunApprovalRuntimeContext, s as toSystemRunApprovalMismatchError } from "./system-run-approval-context-DkX3cprL.js";
160
160
  import { t as installSkill } from "./skills-install-DkQ2ndc6.js";
161
- import { t as runGatewayUpdate } from "./update-runner-BV9LWTCG.js";
161
+ import { t as runGatewayUpdate } from "./update-runner-CqeNDbPD.js";
162
162
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-Dj1dL0rI.js";
163
163
  import { n as forceFreePortAndWait } from "./ports-CIJavqzS.js";
164
164
  import { spawn, spawnSync } from "node:child_process";
@@ -12688,7 +12688,7 @@ const nodeHandlers = {
12688
12688
  const p = params;
12689
12689
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
12690
12690
  await respondUnavailableOnThrow(respond, async () => {
12691
- const { handleNodeEvent } = await import("./server-node-events-DeBYOK05.js");
12691
+ const { handleNodeEvent } = await import("./server-node-events-CufCnFp4.js");
12692
12692
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
12693
12693
  await handleNodeEvent({
12694
12694
  deps: context.deps,