@visorcraft/idlehands 4.0.18 → 4.0.20

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 (280) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{accounts-upx5iuke.js → accounts-BDVs8LTu.js} +1 -1
  3. package/dist/{accounts-yD5yI-jP.js → accounts-CIvVRRHb.js} +1 -1
  4. package/dist/{accounts-CRDMZUcg.js → accounts-Dk8mJIrQ.js} +6 -6
  5. package/dist/{acp-cli-COix-boa.js → acp-cli-B3uwVAGD.js} +2 -2
  6. package/dist/{acp-cli-B-7CXaeS.js → acp-cli-BEpWQbqb.js} +2 -2
  7. package/dist/{agent-scope-BVeQuh5x.js → agent-scope-DyP_tr7s.js} +4 -4
  8. package/dist/{agent-via-gateway-Cl2YwlXJ.js → agent-via-gateway-B03q92bw.js} +2 -2
  9. package/dist/{agent-via-gateway-ClQrLbgo.js → agent-via-gateway-CUQG6kii.js} +2 -2
  10. package/dist/{agent-via-gateway-pMCfUzW-.js → agent-via-gateway-CqzpAXCd.js} +60 -60
  11. package/dist/{agent-via-gateway-CC37LlPd.js → agent-via-gateway-igDg7ko6.js} +2 -2
  12. package/dist/{agents-DrnGQroU.js → agents-DdTECKDf.js} +5 -5
  13. package/dist/{agents.config-BZPnYIMF.js → agents.config-CHtoYxr6.js} +1 -1
  14. package/dist/{agents.config-DfWZrbXn.js → agents.config-D2EbQiOx.js} +1 -1
  15. package/dist/{anton-BfrX2FMd.js → anton-D4vpCj_q.js} +32 -6
  16. package/dist/{anton-B-I7rEtn.js → anton-DLsQ7Igk.js} +36 -10
  17. package/dist/{anton-BrY-bWgq.js → anton-ONYQUE8F.js} +32 -6
  18. package/dist/{anton-BgKjig3B.js → anton-x7f6kIFP.js} +32 -6
  19. package/dist/{audio-preflight-aBtF0cRI.js → audio-preflight-CW8IH1lU.js} +35 -35
  20. package/dist/{audit-Bkd4fvVb.js → audit-C9PrbHng.js} +2 -2
  21. package/dist/{audit-BmaVRZSd.js → audit-CKeZnjft.js} +2 -2
  22. package/dist/{auth-choice-_C22dz9o.js → auth-choice-DRR52LJT.js} +2 -2
  23. package/dist/{auth-choice-DtvI4epn.js → auth-choice-DVoPuwEs.js} +2 -2
  24. package/dist/{auth-store-DQAd4LSE.js → auth-store-DXT-l7fO.js} +12 -12
  25. package/dist/{banner-B-UYZG8d.js → banner-CFKoGAzN.js} +1 -1
  26. package/dist/{bindings-B9L4cqmm.js → bindings-D3b5Fmc9.js} +2 -2
  27. package/dist/{browser-cli-Ddh5zEZN.js → browser-cli-Brb82I5e.js} +3 -3
  28. package/dist/{browser-cli-Ny1nHwqv.js → browser-cli-Ci6DpTnS.js} +3 -3
  29. package/dist/build-info.json +3 -3
  30. package/dist/bundled/boot-md/handler.js +60 -60
  31. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  32. package/dist/bundled/command-logger/handler.js +3 -3
  33. package/dist/bundled/session-memory/handler.js +60 -60
  34. package/dist/{call-BRL23UCk.js → call-BpWhjuOg.js} +1 -1
  35. package/dist/{call-DuNslqj2.js → call-C82rD2Wn.js} +1 -1
  36. package/dist/{channel-activity-DOLX-uK1.js → channel-activity-D_TMOGQ0.js} +3 -3
  37. package/dist/{channel-options-C0iwLcfC.js → channel-options-B4oF7_V2.js} +1 -1
  38. package/dist/{channel-options-BbwNg4q_.js → channel-options-BU0E7BdU.js} +1 -1
  39. package/dist/{channel-web-BLxKeCXF.js → channel-web-0icuasR6.js} +2 -2
  40. package/dist/{channel-web-q6Ugfiks.js → channel-web-BDytDCrG.js} +2 -2
  41. package/dist/{channels-cli-DaRR8vAs.js → channels-cli-B2w32z11.js} +10 -10
  42. package/dist/{channels-cli-BtL1XuuK.js → channels-cli-DWaQsKP8.js} +10 -10
  43. package/dist/{chrome-D_SXDetO.js → chrome-BcJB6PcM.js} +26 -26
  44. package/dist/{chunk-BgScV6uo.js → chunk-CMpX7Jaz.js} +1 -1
  45. package/dist/cli/daemon-cli.js +1 -1
  46. package/dist/{cli-BjhrdeVd.js → cli-BVw2ja-q.js} +5 -5
  47. package/dist/{cli-CrUoGRuS.js → cli-Hplv9sD1.js} +5 -5
  48. package/dist/{client-DxH9hwLn.js → client-DtnD-ee9.js} +1 -0
  49. package/dist/{client-Brv1GCwX.js → client-udFMSDes.js} +1 -0
  50. package/dist/{command-registry-BZNlvfaM.js → command-registry-CWDCVzZv.js} +11 -11
  51. package/dist/{commands-registry-CK7aj_ri.js → commands-registry-j4vAzcF2.js} +5 -5
  52. package/dist/{completion-cli-p9W-g1Pe.js → completion-cli-CjERsZ27.js} +2 -2
  53. package/dist/{completion-cli-BIabgt7h.js → completion-cli-f5M3WVf8.js} +1 -1
  54. package/dist/{config-cli-B4nNEjK9.js → config-cli-B2gc8CV1.js} +1 -1
  55. package/dist/{config-cli-u4zbdm-e.js → config-cli-Bt7n6ZJS.js} +1 -1
  56. package/dist/{configure-BbDbMd5G.js → configure-BXsptBk3.js} +6 -6
  57. package/dist/{configure-Dj1JdeEI.js → configure-CKspMrI1.js} +6 -6
  58. package/dist/{cron-cli-Xml0Uww8.js → cron-cli-DQsnGQKs.js} +3 -3
  59. package/dist/{cron-cli-D4DXiD1C.js → cron-cli-DXZzPHDQ.js} +3 -3
  60. package/dist/{daemon-cli-yC6gq-yv.js → daemon-cli-DOG5Mivy.js} +2 -2
  61. package/dist/{daemon-cli-B1Ti51bt.js → daemon-cli-DUg-s4LG.js} +2 -2
  62. package/dist/daemon-cli.js +1 -0
  63. package/dist/{deliver-CJaM2zRY.js → deliver-BUiQ-9fE.js} +20 -20
  64. package/dist/{deps-CQzDLqTz.js → deps-BhCzAj5E.js} +6 -6
  65. package/dist/{deps-BuRud-p8.js → deps-CjWcQwlX.js} +1 -1
  66. package/dist/{deps-Dr9GpASq.js → deps-CwPrf7RC.js} +1 -1
  67. package/dist/{deps-BMWq0kjy.js → deps-DR1eh_L_.js} +1 -1
  68. package/dist/{devices-cli-BNkO0Fey.js → devices-cli-DKK65S9Z.js} +2 -2
  69. package/dist/{devices-cli-Ck6s9sQQ.js → devices-cli-aiEJxYcN.js} +2 -2
  70. package/dist/{diagnostic-lz5wKsEe.js → diagnostic-4owMk4vH.js} +1 -1
  71. package/dist/{dock-6MgvdSqu.js → dock-BgOmHcbh.js} +6 -6
  72. package/dist/{doctor-completion-BLRGmusD.js → doctor-completion-C2-SDBd6.js} +1 -1
  73. package/dist/{doctor-completion-BeZMlZPb.js → doctor-completion-DB151YdP.js} +1 -1
  74. package/dist/emergency-stop-8dcFF6tw.js +113 -0
  75. package/dist/{emergency-stop-CSSPAKHr.js → emergency-stop-CDozqde9.js} +5 -5
  76. package/dist/{emergency-stop-BU-Vbk3V.js → emergency-stop-ChBe32HN.js} +2 -2
  77. package/dist/{emergency-stop-BEsjWvQL.js → emergency-stop-DpNGtfb4.js} +5 -5
  78. package/dist/entry.js +1 -1
  79. package/dist/{env-B7b7MKfk.js → env-B5G1qwGc.js} +1 -1
  80. package/dist/{errors--Eb33_ji.js → errors-C_0nm4TJ.js} +1 -1
  81. package/dist/{exec-approvals-cli-CyjTnYfk.js → exec-approvals-cli-D6XUzs4j.js} +4 -4
  82. package/dist/{exec-approvals-cli-CNWOtvwX.js → exec-approvals-cli-DRoaRYPn.js} +4 -4
  83. package/dist/extensionAPI.js +2 -2
  84. package/dist/{fetch-guard-OZ_PCUyr.js → fetch-guard-iuQsIjqN.js} +1 -1
  85. package/dist/{frontmatter-p8nPDprK.js → frontmatter-BOudmHMS.js} +2 -2
  86. package/dist/{fs-safe-BEl8T_Vc.js → fs-safe-CYUaAFO9.js} +2 -2
  87. package/dist/{gateway-cli-BCHdAJHS.js → gateway-cli-Ccd1ukWq.js} +17 -14
  88. package/dist/{gateway-cli-Dumy2IVU.js → gateway-cli-lNUOd2_i.js} +17 -14
  89. package/dist/{gateway-rpc-CdfF0Zt5.js → gateway-rpc-5PTvwEfj.js} +1 -1
  90. package/dist/{gateway-rpc-Du-ZpDjh.js → gateway-rpc-BBFG1T-M.js} +1 -1
  91. package/dist/{gemini-auth-CA0K3QXj.js → gemini-auth-CIyaa44H.js} +2 -2
  92. package/dist/{github-copilot-token-DCg9Q9Ll.js → github-copilot-token-Dgt6cnsM.js} +7 -7
  93. package/dist/{health-CqdQAURH.js → health--GQAFTBr.js} +2 -2
  94. package/dist/{health-B3kk7l82.js → health-HEN6Wk9G.js} +2 -2
  95. package/dist/{hooks-cli-jMG5GST1.js → hooks-cli-DFrttZGb.js} +6 -6
  96. package/dist/{hooks-cli-Ba4woLl0.js → hooks-cli-Di8qrzIB.js} +6 -6
  97. package/dist/{image-BQ3RQWD8.js → image-D8b_rlQC.js} +6 -6
  98. package/dist/{image-ops-ZNtLhD4c.js → image-ops-D1KtygWz.js} +1 -1
  99. package/dist/index.js +10 -10
  100. package/dist/{ir-DnyYtX4H.js → ir-B7IBoKLy.js} +5 -5
  101. package/dist/llm-slug-generator.js +60 -60
  102. package/dist/{local-roots-C9CA2f0R.js → local-roots-KN4Hp1yZ.js} +5 -5
  103. package/dist/{login-Cn1vc1bn.js → login-CFr5vJmR.js} +6 -6
  104. package/dist/{login-qr-Dj0NmRdg.js → login-qr-CFFFOjOl.js} +11 -11
  105. package/dist/{logs-cli-CH4mFhUt.js → logs-cli-4VQ9Iwiw.js} +3 -3
  106. package/dist/{logs-cli-BN5TN6bg.js → logs-cli-u0WmYxx7.js} +3 -3
  107. package/dist/{manager-DBd_2F6j.js → manager-BE_76jWB.js} +15 -15
  108. package/dist/{markdown-tables-CsrsXS80.js → markdown-tables-CzsockiZ.js} +1 -1
  109. package/dist/{message-channel-Cg9KtLfy.js → message-channel-C8QtrwEU.js} +1 -1
  110. package/dist/{model-selection-Vtu6d5Um.js → model-selection-1MMYqY6M.js} +41 -41
  111. package/dist/{models-cli-iLP9BnPA.js → models-cli-CMwszgSD.js} +6 -6
  112. package/dist/{models-cli-BaR1RccY.js → models-cli-DVAyIZ63.js} +7 -7
  113. package/dist/{models-C6GypzZ1.js → models-tZYpgts_.js} +3 -3
  114. package/dist/{node-cli-Ch7K7WtL.js → node-cli-BYzjxmUY.js} +1 -1
  115. package/dist/{node-cli-BiQaHamJ.js → node-cli-CgeiQGbv.js} +1 -1
  116. package/dist/{nodes-cli-tVCIBdL1.js → nodes-cli-DaE0WsOH.js} +3 -3
  117. package/dist/{nodes-cli-D_hUCPNt.js → nodes-cli-kNOtp0U0.js} +3 -3
  118. package/dist/{npm-resolution-DYUWHUe5.js → npm-resolution-By6bZkA-.js} +1 -1
  119. package/dist/{npm-resolution-CWxaTTrT.js → npm-resolution-DLSA4PTO.js} +1 -1
  120. package/dist/{onboard-DdBsJgzg.js → onboard-B6eOxpDM.js} +3 -3
  121. package/dist/{onboard-CinZ4CuY.js → onboard-CbXlbAx2.js} +3 -3
  122. package/dist/{onboard-channels-Bnwwq6TK.js → onboard-channels-BISq46-i.js} +2 -2
  123. package/dist/{onboard-channels-9XAEsgO-.js → onboard-channels-JPltbNGL.js} +2 -2
  124. package/dist/{onboard-helpers-Dp6wXNs7.js → onboard-helpers-DWivfzcc.js} +1 -1
  125. package/dist/{onboard-helpers-BQmbMJxJ.js → onboard-helpers-mzy38DiC.js} +1 -1
  126. package/dist/{onboard-remote-1ZZd5lcX.js → onboard-remote-BMo2C9Ae.js} +1 -1
  127. package/dist/{onboard-remote-CIjhaP2W.js → onboard-remote-LCBHijVE.js} +1 -1
  128. package/dist/{onboard-skills-BD_AS1Iy.js → onboard-skills-BrqATIYg.js} +1 -1
  129. package/dist/{onboard-skills-BsaUIuq6.js → onboard-skills-jFY9gaOu.js} +1 -1
  130. package/dist/{onboarding-C4oujn63.js → onboarding-Da3n7Rvs.js} +7 -7
  131. package/dist/{onboarding-DFvHWFqL.js → onboarding-DikyMlYG.js} +7 -7
  132. package/dist/{onboarding.finalize-BDWHPpyn.js → onboarding.finalize-Bp2ufMd0.js} +10 -10
  133. package/dist/{onboarding.finalize-DMhdDTvo.js → onboarding.finalize-CwYx5n3Z.js} +11 -11
  134. package/dist/{onboarding.gateway-config-CEQMyj8l.js → onboarding.gateway-config-Btu2gzgr.js} +3 -3
  135. package/dist/{onboarding.gateway-config-Czn7jKsq.js → onboarding.gateway-config-w3C9Yj3B.js} +3 -3
  136. package/dist/{outbound-BYm4JJli.js → outbound-BNh6PpQb.js} +6 -6
  137. package/dist/{outbound-attachment-DwaqvYNG.js → outbound-attachment-3I6GzwDe.js} +2 -2
  138. package/dist/{path-alias-guards-BnjbJzIQ.js → path-alias-guards-Cu1nXNMM.js} +1 -1
  139. package/dist/{paths-CkTEyLTV.js → paths-BYNVLNi_.js} +5 -5
  140. package/dist/{paths-0fcEvxu4.js → paths-D_qUel1T.js} +3 -3
  141. package/dist/{pi-embedded-BDp9JsrM.js → pi-embedded-6dr9Wi77.js} +182 -181
  142. package/dist/{pi-embedded-Dap1HAGA.js → pi-embedded-DMx6rHVL.js} +13 -12
  143. package/dist/{pi-embedded-helpers-B1CKQ81Y.js → pi-embedded-helpers-CghCLoPo.js} +24 -24
  144. package/dist/{pi-model-discovery-DBHbwKOo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
  145. package/dist/{plugin-registry-CGFy1ugt.js → plugin-registry-BY85d-vE.js} +1 -1
  146. package/dist/{plugin-registry-LYzfPk35.js → plugin-registry-DROWinG6.js} +1 -1
  147. package/dist/plugin-sdk/{agent-via-gateway-De4e2_-W.js → agent-via-gateway-CXtWg-qx.js} +2 -2
  148. package/dist/plugin-sdk/{anton-BO16dWNw.js → anton-CGYTy9vy.js} +32 -6
  149. package/dist/plugin-sdk/{channel-web-Cd-eamYe.js → channel-web-EFRSObCG.js} +2 -2
  150. package/dist/plugin-sdk/commands/agent/types.d.ts +1 -0
  151. package/dist/plugin-sdk/{deps-D6VWIdk7.js → deps-qZxPlSgp.js} +1 -1
  152. package/dist/plugin-sdk/{emergency-stop-w-HD2bz4.js → emergency-stop-CxcBz-aQ.js} +2 -2
  153. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +1 -0
  154. package/dist/plugin-sdk/index.js +3 -3
  155. package/dist/plugin-sdk/{reply-BqAPyIsz.js → reply-nUO1aM3T.js} +13 -12
  156. package/dist/plugin-sdk/{web-Dj_tThNQ.js → web-CEtAvhaI.js} +3 -3
  157. package/dist/{plugins-Bb6_uisJ.js → plugins-CRB60mCJ.js} +10 -10
  158. package/dist/{plugins-cli-BQKfJ9aF.js → plugins-cli-RFXGkaxP.js} +6 -6
  159. package/dist/{plugins-cli-BCAcCeRZ.js → plugins-cli-b_o3IL7x.js} +6 -6
  160. package/dist/{program-context-DBOEyhi4.js → program-context-D6irLwPo.js} +31 -31
  161. package/dist/{program-Df-zk5RB.js → program-vH6RTUOw.js} +11 -11
  162. package/dist/{prompt-select-styled-DJVZSK4X.js → prompt-select-styled-CDoDFWo7.js} +6 -6
  163. package/dist/{prompt-select-styled-B0FsbRWb.js → prompt-select-styled-DFVvU0TH.js} +6 -6
  164. package/dist/{provider-auth-helpers-D0cQmJkF.js → provider-auth-helpers-BCc5UtUa.js} +1 -1
  165. package/dist/{provider-auth-helpers-Aojd4jNn.js → provider-auth-helpers-CNRz0SFC.js} +1 -1
  166. package/dist/{push-apns-BtI9tV7C.js → push-apns-CHmvuoMu.js} +1 -1
  167. package/dist/{push-apns-qzriU6TC.js → push-apns-e2xmxGGE.js} +1 -1
  168. package/dist/{pw-ai-BKPa5DlF.js → pw-ai-CfYaR1K2.js} +13 -13
  169. package/dist/{qmd-manager-DEJVRLvM.js → qmd-manager-B_GgyQQ0.js} +8 -8
  170. package/dist/{query-expansion-CW7PqIXL.js → query-expansion-DEq020GG.js} +5 -5
  171. package/dist/{redact-D1Ebz_iR.js → redact-Bvpf-ATQ.js} +1 -1
  172. package/dist/{register.agent-ButiRGeg.js → register.agent-Dx7ULz49.js} +12 -12
  173. package/dist/{register.agent-Xdy9Gu3H.js → register.agent-HWcFMr6h.js} +11 -11
  174. package/dist/{register.configure-f4xr9iKB.js → register.configure-BctHAiWh.js} +13 -13
  175. package/dist/{register.configure-m5qhbCOO.js → register.configure-k8gocsJw.js} +13 -13
  176. package/dist/{register.maintenance-N55abUee.js → register.maintenance-BYiX9iOa.js} +12 -12
  177. package/dist/{register.maintenance-BA4e0HDc.js → register.maintenance-C6o2WuQx.js} +11 -11
  178. package/dist/{register.message-DaVB6EYW.js → register.message-BLScF2fV.js} +6 -6
  179. package/dist/{register.message-Zta0bYh0.js → register.message-BewFLd-k.js} +6 -6
  180. package/dist/{register.onboard-BHKf5Emm.js → register.onboard-BVm-2XAx.js} +5 -5
  181. package/dist/{register.onboard-BikBO9Gs.js → register.onboard-a0kqiCTa.js} +5 -5
  182. package/dist/{register.orchestrator-anton-DtPFOV9F.js → register.orchestrator-anton-BYyjV8R-.js} +5 -4
  183. package/dist/{register.orchestrator-anton-x3yGok7b.js → register.orchestrator-anton-Tn_RaMLq.js} +5 -4
  184. package/dist/{register.setup-BeRMjZaz.js → register.setup-BJ0WBUpt.js} +5 -5
  185. package/dist/{register.setup-DCIPrpG0.js → register.setup-BwPJaqpH.js} +5 -5
  186. package/dist/{register.status-health-sessions-I0YSjY_V.js → register.status-health-sessions-Clzt8hbv.js} +8 -8
  187. package/dist/{register.status-health-sessions-CA5wMwpi.js → register.status-health-sessions-wbopjGL-.js} +8 -8
  188. package/dist/{register.subclis-DZkq_g35.js → register.subclis-CrcOefJY.js} +21 -21
  189. package/dist/{replies-CXcxPRWk.js → replies-6_GxvQYe.js} +3 -3
  190. package/dist/{reply-DlS9HBVo.js → reply-D5gCiiGr.js} +15 -15
  191. package/dist/{reply-prefix-49q2WQ2B.js → reply-prefix-BUgeSN2R.js} +1 -1
  192. package/dist/{resolve-route-Dr-fqH39.js → resolve-route-DuttYY7A.js} +4 -4
  193. package/dist/{retry-DWN-e4ja.js → retry-BeB9WenR.js} +1 -1
  194. package/dist/{rpc-CCimHATv.js → rpc-Cf9OK5Yk.js} +1 -1
  195. package/dist/{rpc-CasD0keJ.js → rpc-DVTovtI3.js} +1 -1
  196. package/dist/{run-main-B75ak_hb.js → run-main-BCX3UZMR.js} +18 -18
  197. package/dist/{runner-DO528Ump.js → runner-PgRFPYUj.js} +11 -11
  198. package/dist/{secrets-cli-Bx9bIigZ.js → secrets-cli-C4UBK_LV.js} +3 -3
  199. package/dist/{secrets-cli-Bgp_H_bH.js → secrets-cli-CR3h2TBy.js} +3 -3
  200. package/dist/{security-cli-MQ__Ca6v.js → security-cli-B9_LV2po.js} +3 -3
  201. package/dist/{security-cli-e1WjvhRm.js → security-cli-an5u-5Jb.js} +3 -3
  202. package/dist/{send-BspIjWIY.js → send-BeIZJuy4.js} +7 -7
  203. package/dist/{send-szC_vYk_.js → send-C1hvd3bt.js} +6 -6
  204. package/dist/{send-CRnMBrJ2.js → send-D4bMycQu.js} +7 -7
  205. package/dist/{send-De8xTUIV.js → send-Dfa3sn6r.js} +24 -24
  206. package/dist/{send-BypmtKl1.js → send-DmLC7aEF.js} +10 -10
  207. package/dist/{server-node-events-CufCnFp4.js → server-node-events-CbVkqOtV.js} +6 -6
  208. package/dist/{server-node-events-B1RPoseF.js → server-node-events-DvStFPGi.js} +6 -6
  209. package/dist/{session-CKiIT4OY.js → session-F_YDS_1V.js} +7 -7
  210. package/dist/{sessions-BgxmLQuf.js → sessions-3ioSeOA1.js} +41 -41
  211. package/dist/{skill-commands-BOUMR5De.js → skill-commands-Ck3flWX7.js} +9 -9
  212. package/dist/{skills-OsjsCf_S.js → skills-CnAPWfca.js} +22 -22
  213. package/dist/{status-hXjECVBh.js → status-CWnPokQF.js} +5 -5
  214. package/dist/{status-ERmEJYw1.js → status-ClMOrHdT.js} +5 -5
  215. package/dist/{store-B4rHJvSg.js → store-CvMgrKWx.js} +2 -2
  216. package/dist/{subagent-registry-CcxZYIwL.js → subagent-registry-BH5O1rxK.js} +15 -15
  217. package/dist/{subsystem-B98oWbbO.js → subsystem-tzu-rIAJ.js} +1 -1
  218. package/dist/{system-cli-CHiaS_zS.js → system-cli-Dd-gBN0t.js} +3 -3
  219. package/dist/{system-cli-3T-OTIKv.js → system-cli-DyVZ5udc.js} +3 -3
  220. package/dist/{tables-DuOExt0S.js → tables-5k-zOZ-s.js} +1 -1
  221. package/dist/{target-errors-CWZr3RMI.js → target-errors-BPfQrPim.js} +2 -2
  222. package/dist/{tokens-B9ArFCMX.js → tokens-BRLyURxW.js} +1 -1
  223. package/dist/{tool-images-DLiBUCZb.js → tool-images-CcGZpzmq.js} +2 -2
  224. package/dist/{tool-loop-detection-j48jLTrr.js → tool-loop-detection-BNGetx3Z.js} +3 -3
  225. package/dist/{tui-BPgLehyv.js → tui-2u2ZDhHV.js} +2 -2
  226. package/dist/{tui-lalhRHve.js → tui-Bne3YNiw.js} +2 -2
  227. package/dist/{tui-cli-9z2Sm8Qg.js → tui-cli-BWnIeq57.js} +3 -3
  228. package/dist/{tui-cli-BVKWJ9X7.js → tui-cli-D0Z-rcUe.js} +3 -3
  229. package/dist/{update-cli-Rnv68OR6.js → update-cli-BTNcddEX.js} +12 -12
  230. package/dist/{update-cli-DROtjWg7.js → update-cli-CxZD0ekr.js} +13 -13
  231. package/dist/{update-runner-BWxBVG9j.js → update-runner-CN7Dm9tg.js} +1 -1
  232. package/dist/{update-runner-CqeNDbPD.js → update-runner-tu2Aiphu.js} +1 -1
  233. package/dist/{utils-ChNzRVsg.js → utils-CTFLl_ji.js} +18 -18
  234. package/dist/{web-BMSzFWiF.js → web-BV-BEZj6.js} +6 -6
  235. package/dist/{web-BQLIquZA.js → web-BxegDO-S.js} +3 -3
  236. package/dist/{web-5ddwA0bs.js → web-C1BMClkN.js} +66 -66
  237. package/dist/{web-CnzKMZK0.js → web-aRaB-CvF.js} +6 -6
  238. package/dist/{whatsapp-actions-CYraflBZ.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
  239. package/dist/{workspace-AM44PzIs.js → workspace-DBFSzT6O.js} +18 -18
  240. package/extensions/acpx/package.json +1 -1
  241. package/extensions/bluebubbles/package.json +1 -1
  242. package/extensions/copilot-proxy/package.json +1 -1
  243. package/extensions/diagnostics-otel/package.json +1 -1
  244. package/extensions/discord/package.json +1 -1
  245. package/extensions/feishu/package.json +1 -1
  246. package/extensions/google-gemini-cli-auth/package.json +1 -1
  247. package/extensions/googlechat/package.json +1 -1
  248. package/extensions/hand/package.json +1 -1
  249. package/extensions/imessage/package.json +1 -1
  250. package/extensions/irc/package.json +1 -1
  251. package/extensions/line/package.json +1 -1
  252. package/extensions/llm-task/package.json +1 -1
  253. package/extensions/matrix/CHANGELOG.md +12 -0
  254. package/extensions/matrix/package.json +1 -1
  255. package/extensions/mattermost/package.json +1 -1
  256. package/extensions/memory-core/package.json +1 -1
  257. package/extensions/memory-lancedb/package.json +1 -1
  258. package/extensions/minimax-portal-auth/package.json +1 -1
  259. package/extensions/msteams/CHANGELOG.md +12 -0
  260. package/extensions/msteams/package.json +1 -1
  261. package/extensions/nextcloud-talk/package.json +1 -1
  262. package/extensions/nostr/CHANGELOG.md +12 -0
  263. package/extensions/nostr/package.json +1 -1
  264. package/extensions/open-prose/package.json +1 -1
  265. package/extensions/signal/package.json +1 -1
  266. package/extensions/slack/package.json +1 -1
  267. package/extensions/synology-chat/package.json +1 -1
  268. package/extensions/telegram/package.json +1 -1
  269. package/extensions/tlon/package.json +1 -1
  270. package/extensions/twitch/CHANGELOG.md +12 -0
  271. package/extensions/twitch/package.json +1 -1
  272. package/extensions/voice-call/CHANGELOG.md +12 -0
  273. package/extensions/voice-call/package.json +1 -1
  274. package/extensions/whatsapp/package.json +1 -1
  275. package/extensions/zalo/CHANGELOG.md +12 -0
  276. package/extensions/zalo/package.json +1 -1
  277. package/extensions/zalouser/CHANGELOG.md +12 -0
  278. package/extensions/zalouser/package.json +1 -1
  279. package/package.json +1 -1
  280. package/dist/emergency-stop-JXB5jZyK.js +0 -113
@@ -72,7 +72,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
72
72
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-BnWIC6Jc.js";
73
73
  import { t as makeProxyFetch } from "./proxy-CNZpb4NE.js";
74
74
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CqYEEgmA.js";
75
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-BMWq0kjy.js";
75
+ import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-DR1eh_L_.js";
76
76
  import { createRequire } from "node:module";
77
77
  import * as path$1 from "node:path";
78
78
  import path, { isAbsolute } from "node:path";
@@ -5104,6 +5104,7 @@ const AgentParamsSchema = Type.Object({
5104
5104
  bestEffortDeliver: Type.Optional(Type.Boolean()),
5105
5105
  lane: Type.Optional(Type.String()),
5106
5106
  extraSystemPrompt: Type.Optional(Type.String()),
5107
+ workspaceDir: Type.Optional(Type.String()),
5107
5108
  inputProvenance: Type.Optional(Type.Object({
5108
5109
  kind: Type.String({ enum: [...INPUT_PROVENANCE_KIND_VALUES] }),
5109
5110
  sourceSessionKey: Type.Optional(Type.String()),
@@ -23058,7 +23059,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23058
23059
  };
23059
23060
  const arg = body.slice(6).trim();
23060
23061
  if (arg === "status" || arg === "") {
23061
- const { antonStatus } = await import("./anton-BrY-bWgq.js");
23062
+ const { antonStatus } = await import("./anton-ONYQUE8F.js");
23062
23063
  const lines = [];
23063
23064
  await antonStatus({
23064
23065
  log: (msg) => lines.push(msg),
@@ -23074,7 +23075,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23074
23075
  return { shouldContinue: false };
23075
23076
  }
23076
23077
  if (arg === "stop") {
23077
- const { antonStop } = await import("./anton-BrY-bWgq.js");
23078
+ const { antonStop } = await import("./anton-ONYQUE8F.js");
23078
23079
  const lines = [];
23079
23080
  await antonStop({
23080
23081
  log: (msg) => lines.push(msg),
@@ -23112,8 +23113,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23112
23113
  await sendProgress(replyCtx, text);
23113
23114
  return { shouldContinue: false };
23114
23115
  }
23115
- const { runAnton, formatProgressMessage } = await import("./anton-BrY-bWgq.js");
23116
- const { createDefaultDeps } = await import("./deps-BMWq0kjy.js").then((n) => n.n);
23116
+ const { runAnton, formatProgressMessage } = await import("./anton-ONYQUE8F.js");
23117
+ const { createDefaultDeps } = await import("./deps-DR1eh_L_.js").then((n) => n.n);
23117
23118
  const { createNonExitingRuntime } = await import("./runtime-8mi3mpYB.js").then((n) => n.r);
23118
23119
  const runtime = createNonExitingRuntime();
23119
23120
  const deps = createDefaultDeps();
@@ -57266,7 +57267,7 @@ function createDiscordMessageHandler(params) {
57266
57267
  try {
57267
57268
  const messageText = resolveDiscordMessageText(data.message)?.trim();
57268
57269
  if (messageText) {
57269
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BU-Vbk3V.js");
57270
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.js");
57270
57271
  if (isAbortRequestText(messageText)) {
57271
57272
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
57272
57273
  const channelId = resolveDiscordMessageChannelId({
@@ -59990,7 +59991,7 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
59990
59991
  agentId: sessionAgentId,
59991
59992
  sessionKey
59992
59993
  });
59993
- const workspaceDirRaw = resolvedSessionEntry?.workspaceDir?.trim() || resolveAgentWorkspaceDir(cfg, sessionAgentId);
59994
+ const workspaceDirRaw = opts.workspaceDir?.trim() || resolvedSessionEntry?.workspaceDir?.trim() || resolveAgentWorkspaceDir(cfg, sessionAgentId);
59994
59995
  const agentDir = resolveAgentDir(cfg, sessionAgentId);
59995
59996
  const workspaceDir = (await ensureAgentWorkspace({
59996
59997
  dir: workspaceDirRaw,
@@ -64764,7 +64765,7 @@ async function monitorIMessageProvider(opts = {}) {
64764
64765
  }
64765
64766
  const msgText = (message.text ?? "").trim();
64766
64767
  if (msgText) {
64767
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BU-Vbk3V.js");
64768
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.js");
64768
64769
  if (isAbortRequestText(msgText)) {
64769
64770
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
64770
64771
  const route = resolveAgentRoute({
@@ -67375,7 +67376,7 @@ function createSignalEventHandler(deps) {
67375
67376
  const senderName = envelope.sourceName ?? senderDisplay;
67376
67377
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
67377
67378
  if (bodyText) {
67378
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BU-Vbk3V.js");
67379
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.js");
67379
67380
  if (isAbortRequestText(bodyText)) {
67380
67381
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
67381
67382
  const route = resolveAgentRoute({
@@ -70757,7 +70758,7 @@ function createSlackMessageHandler(params) {
70757
70758
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
70758
70759
  const rawText = (message.text ?? "").trim();
70759
70760
  if (rawText) {
70760
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BU-Vbk3V.js");
70761
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.js");
70761
70762
  if (isAbortRequestText(rawText)) {
70762
70763
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
70763
70764
  const route = resolveAgentRoute({
@@ -72951,7 +72952,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
72951
72952
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
72952
72953
  const text = typeof msg.text === "string" ? msg.text : void 0;
72953
72954
  if (text) {
72954
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BU-Vbk3V.js");
72955
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.js");
72955
72956
  if (isAbortRequestText(text)) {
72956
72957
  const senderId = msg.from?.id ? String(msg.from.id) : "";
72957
72958
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -76436,7 +76437,7 @@ function loadWebLoginQr() {
76436
76437
  return webLoginQrPromise;
76437
76438
  }
76438
76439
  function loadWebChannel() {
76439
- webChannelPromise ??= import("./web-BQLIquZA.js");
76440
+ webChannelPromise ??= import("./web-BxegDO-S.js");
76440
76441
  return webChannelPromise;
76441
76442
  }
76442
76443
  function loadWhatsAppActions() {
@@ -1,28 +1,28 @@
1
- import { d as resolveSessionAgentId, r as resolveAgentConfig } from "./agent-scope-BVeQuh5x.js";
2
- import { n as STATE_DIR, s as resolveGatewayPort } from "./paths-CkTEyLTV.js";
3
- import { n as CHANNEL_IDS, t as createSubsystemLogger } from "./subsystem-B98oWbbO.js";
4
- import { S as truncateUtf16Safe, h as resolveUserPath } from "./utils-ChNzRVsg.js";
1
+ import { d as resolveSessionAgentId, r as resolveAgentConfig } from "./agent-scope-DyP_tr7s.js";
2
+ import { n as STATE_DIR, s as resolveGatewayPort } from "./paths-BYNVLNi_.js";
3
+ import { n as CHANNEL_IDS, t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
4
+ import { S as truncateUtf16Safe, h as resolveUserPath } from "./utils-CTFLl_ji.js";
5
5
  import { n as defaultRuntime } from "./runtime-8mi3mpYB.js";
6
6
  import { l as resolveAgentIdFromSessionKey, s as normalizeAgentId } from "./session-key-CuLPSMu_.js";
7
- import { _ as runExec, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_HEARTBEAT_FILENAME, k as resolvePathViaExistingAncestorSync, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SOUL_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME, w as openBoundaryFile } from "./workspace-AM44PzIs.js";
8
- import { $ as getBlockedNetworkModeReason, H as writeConfigFile, L as createConfigIO, R as loadConfig } from "./model-selection-Vtu6d5Um.js";
7
+ import { _ as runExec, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_HEARTBEAT_FILENAME, k as resolvePathViaExistingAncestorSync, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SOUL_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME, w as openBoundaryFile } from "./workspace-DBFSzT6O.js";
8
+ import { $ as getBlockedNetworkModeReason, H as writeConfigFile, L as createConfigIO, R as loadConfig } from "./model-selection-1MMYqY6M.js";
9
9
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { t as generateSecureToken } from "./secure-random-B1N_MXT_.js";
12
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-ZNtLhD4c.js";
13
- import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-D_SXDetO.js";
12
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-D1KtygWz.js";
13
+ import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-BcJB6PcM.js";
14
14
  import { t as SsrFBlockedError } from "./ssrf-CZeHDwVZ.js";
15
- import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-OsjsCf_S.js";
16
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BnjbJzIQ.js";
17
- import { n as formatErrorMessage, t as extractErrorCode } from "./errors--Eb33_ji.js";
18
- import { r as saveMediaBuffer, t as ensureMediaDir } from "./store-B4rHJvSg.js";
19
- import { H as resolveAgentMainSessionKey, V as canonicalizeMainSessionAlias, q as acquireSessionWriteLock } from "./sessions-BgxmLQuf.js";
20
- import { t as sanitizeContentBlocksImages } from "./tool-images-DLiBUCZb.js";
15
+ import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CnAPWfca.js";
16
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Cu1nXNMM.js";
17
+ import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C_0nm4TJ.js";
18
+ import { r as saveMediaBuffer, t as ensureMediaDir } from "./store-CvMgrKWx.js";
19
+ import { H as resolveAgentMainSessionKey, V as canonicalizeMainSessionAlias, q as acquireSessionWriteLock } from "./sessions-3ioSeOA1.js";
20
+ import { t as sanitizeContentBlocksImages } from "./tool-images-CcGZpzmq.js";
21
21
  import { o as normalizeThinkLevel } from "./thinking-z4_linel.js";
22
22
  import fs from "node:fs/promises";
23
23
  import os from "node:os";
24
24
  import path, { posix } from "node:path";
25
- import fsSync, { existsSync } from "node:fs";
25
+ import syncFs, { existsSync } from "node:fs";
26
26
  import { spawn } from "node:child_process";
27
27
  import crypto, { createHash, timingSafeEqual } from "node:crypto";
28
28
  import express from "express";
@@ -1182,7 +1182,7 @@ function isModuleNotFoundError(err) {
1182
1182
  }
1183
1183
  async function loadPwAiModule(mode) {
1184
1184
  try {
1185
- return await import("./pw-ai-BKPa5DlF.js");
1185
+ return await import("./pw-ai-CfYaR1K2.js");
1186
1186
  } catch (err) {
1187
1187
  if (mode === "soft") return null;
1188
1188
  if (isModuleNotFoundError(err)) return null;
@@ -2922,11 +2922,11 @@ async function movePathToTrash(targetPath) {
2922
2922
  return targetPath;
2923
2923
  } catch {
2924
2924
  const trashDir = path.join(os.homedir(), ".Trash");
2925
- fsSync.mkdirSync(trashDir, { recursive: true });
2925
+ syncFs.mkdirSync(trashDir, { recursive: true });
2926
2926
  const base = path.basename(targetPath);
2927
2927
  let dest = path.join(trashDir, `${base}-${Date.now()}`);
2928
- if (fsSync.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
2929
- fsSync.renameSync(targetPath, dest);
2928
+ if (syncFs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
2929
+ syncFs.renameSync(targetPath, dest);
2930
2930
  return dest;
2931
2931
  }
2932
2932
  }
@@ -3004,7 +3004,7 @@ function createBrowserProfilesService(ctx) {
3004
3004
  } catch {}
3005
3005
  const userDataDir = resolveIdleHandsUserDataDir(name);
3006
3006
  const profileDir = path.dirname(userDataDir);
3007
- if (fsSync.existsSync(profileDir)) {
3007
+ if (syncFs.existsSync(profileDir)) {
3008
3008
  await movePathToTrash(profileDir);
3009
3009
  deleted = true;
3010
3010
  }
@@ -3717,13 +3717,13 @@ function createProfileContext(opts, profile) {
3717
3717
  const userDataDir = resolveIdleHandsUserDataDir(profile.name);
3718
3718
  const profileState = getProfileState();
3719
3719
  if (await isHttpReachable(300) && !profileState.running) try {
3720
- await (await import("./pw-ai-BKPa5DlF.js")).closePlaywrightBrowserConnection();
3720
+ await (await import("./pw-ai-CfYaR1K2.js")).closePlaywrightBrowserConnection();
3721
3721
  } catch {}
3722
3722
  if (profileState.running) await stopRunningBrowser();
3723
3723
  try {
3724
- await (await import("./pw-ai-BKPa5DlF.js")).closePlaywrightBrowserConnection();
3724
+ await (await import("./pw-ai-CfYaR1K2.js")).closePlaywrightBrowserConnection();
3725
3725
  } catch {}
3726
- if (!fsSync.existsSync(userDataDir)) return {
3726
+ if (!syncFs.existsSync(userDataDir)) return {
3727
3727
  moved: false,
3728
3728
  from: userDataDir
3729
3729
  };
@@ -5350,7 +5350,7 @@ var SandboxFsBridgeImpl = class {
5350
5350
  });
5351
5351
  if (!guarded.ok) {
5352
5352
  if (guarded.reason !== "path" || options.allowMissingTarget === false) throw guarded.error instanceof Error ? guarded.error : /* @__PURE__ */ new Error(`Sandbox boundary checks failed; cannot ${options.action}: ${target.containerPath}`);
5353
- } else fsSync.closeSync(guarded.fd);
5353
+ } else syncFs.closeSync(guarded.fd);
5354
5354
  const canonicalContainerPath = await this.resolveCanonicalContainerPath({
5355
5355
  containerPath: target.containerPath,
5356
5356
  allowFinalSymlinkForUnlink: options.aliasPolicy?.allowFinalSymlinkForUnlink === true
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { c as normalizeProviderId, ln as ensureAuthProfileStore } from "./model-selection-Vtu6d5Um.js";
2
+ import { c as normalizeProviderId, ln as ensureAuthProfileStore } from "./model-selection-1MMYqY6M.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import syncFs from "node:fs";
5
5
  import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
6
6
 
7
7
  //#region src/agents/pi-auth-credentials.ts
@@ -70,10 +70,10 @@ function isRecord(value) {
70
70
  }
71
71
  function scrubLegacyStaticAuthJsonEntries(pathname) {
72
72
  if (process.env.IDLEHANDS_AUTH_STORE_READONLY === "1") return;
73
- if (!fsSync.existsSync(pathname)) return;
73
+ if (!syncFs.existsSync(pathname)) return;
74
74
  let parsed;
75
75
  try {
76
- parsed = JSON.parse(fsSync.readFileSync(pathname, "utf8"));
76
+ parsed = JSON.parse(syncFs.readFileSync(pathname, "utf8"));
77
77
  } catch {
78
78
  return;
79
79
  }
@@ -87,11 +87,11 @@ function scrubLegacyStaticAuthJsonEntries(pathname) {
87
87
  }
88
88
  if (!changed) return;
89
89
  if (Object.keys(parsed).length === 0) {
90
- fsSync.rmSync(pathname, { force: true });
90
+ syncFs.rmSync(pathname, { force: true });
91
91
  return;
92
92
  }
93
- fsSync.writeFileSync(pathname, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
94
- fsSync.chmodSync(pathname, 384);
93
+ syncFs.writeFileSync(pathname, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
94
+ syncFs.chmodSync(pathname, 384);
95
95
  }
96
96
  function createAuthStorage(AuthStorageLike, path, creds) {
97
97
  const withInMemory = AuthStorageLike;
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { E as getActivePluginRegistry, s as createSubsystemLogger } from "./entry.js";
3
3
  import { j as loadConfig } from "./auth-profiles-Baj5ImDJ.js";
4
4
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-mLXQGQde.js";
5
- import { _ as loadIdleHandsPlugins } from "./subagent-registry-CcxZYIwL.js";
5
+ import { _ as loadIdleHandsPlugins } from "./subagent-registry-BH5O1rxK.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ht as loadIdleHandsPlugins } from "./reply-DlS9HBVo.js";
2
+ import { ht as loadIdleHandsPlugins } from "./reply-D5gCiiGr.js";
3
3
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-RA0zXRpu.js";
4
4
  import { b as getActivePluginRegistry, t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
5
5
  import { It as loadConfig } from "./model-selection-0dGxYGp8.js";
@@ -1,6 +1,6 @@
1
1
  import { s as normalizeAgentId } from "./session-key-47BV2tLd.js";
2
2
  import "./accounts-BLYMokxV.js";
3
- import { F as callGateway, I as randomIdempotencyKey, d as agentCommand, f as resolveSessionKeyForRequest, p as withProgress } from "./reply-BqAPyIsz.js";
3
+ import { F as callGateway, I as randomIdempotencyKey, d as agentCommand, f as resolveSessionKeyForRequest, p as withProgress } from "./reply-nUO1aM3T.js";
4
4
  import "./paths-CtGV5i8O.js";
5
5
  import "./github-copilot-token-CY2euW0d.js";
6
6
  import { r as loadConfig } from "./config-CEgzwk0J.js";
@@ -63,7 +63,7 @@ import "./send-B26cNPqY.js";
63
63
  import "./proxy-C4ewPdlN.js";
64
64
  import "./resolve-route-BZABUE4J.js";
65
65
  import "./replies-ZovJp-3F.js";
66
- import "./deps-D6VWIdk7.js";
66
+ import "./deps-qZxPlSgp.js";
67
67
  import "./outbound-attachment-BisU5Vji.js";
68
68
 
69
69
  //#region src/commands/agent-via-gateway.ts
@@ -219,7 +219,7 @@ async function loadAntonConfig() {
219
219
  }
220
220
  }
221
221
  async function runAgentTask(args) {
222
- const { agentCliCommand } = await import("./agent-via-gateway-De4e2_-W.js");
222
+ const { agentCliCommand } = await import("./agent-via-gateway-CXtWg-qx.js");
223
223
  const extraSystemPrompt = args.workspaceDir ? `Your working directory is: ${args.workspaceDir}\nAll file paths are relative to this directory. Use this as your cwd for all operations.` : void 0;
224
224
  const result = await agentCliCommand({
225
225
  message: args.message,
@@ -369,9 +369,21 @@ async function runDiscoveryPhase(args) {
369
369
  workspaceDir: args.workspaceDir
370
370
  });
371
371
  const firstParsed = extractJsonObject(firstPass.text);
372
- if ((firstParsed?.status ?? "").toLowerCase() === "complete") throw new Error("Discovery claimed task already complete without a verifiable plan artifact; refusing auto-complete");
373
372
  const declaredPlanFile = normalizeDiscoveryFilename(firstParsed?.filename, planFile);
374
- if (await isPlanFileValid(declaredPlanFile)) {
373
+ if (await isPlanFileValid(planFile)) {
374
+ await args.notify({
375
+ phase: "discovery_complete",
376
+ index: args.taskNum,
377
+ total: args.total,
378
+ task: args.task.text,
379
+ planFile
380
+ });
381
+ return {
382
+ status: "plan_ready",
383
+ planFile
384
+ };
385
+ }
386
+ if (declaredPlanFile !== planFile && await isPlanFileValid(declaredPlanFile)) {
375
387
  await args.notify({
376
388
  phase: "discovery_complete",
377
389
  index: args.taskNum,
@@ -420,7 +432,19 @@ async function runDiscoveryPhase(args) {
420
432
  workspaceDir: args.workspaceDir
421
433
  });
422
434
  const repairParsed = extractJsonObject(repairPass.text);
423
- if ((repairParsed?.status ?? "").toLowerCase() === "complete") throw new Error("Discovery repair claimed task complete without a verifiable plan artifact; refusing auto-complete");
435
+ if (await isPlanFileValid(declaredPlanFile)) {
436
+ await args.notify({
437
+ phase: "discovery_complete",
438
+ index: args.taskNum,
439
+ total: args.total,
440
+ task: args.task.text,
441
+ planFile: declaredPlanFile
442
+ });
443
+ return {
444
+ status: "plan_ready",
445
+ planFile: declaredPlanFile
446
+ };
447
+ }
424
448
  const repairPlanFile = normalizeDiscoveryFilename(repairParsed?.filename, declaredPlanFile);
425
449
  if (await isPlanFileValid(repairPlanFile) || await tryPersistPlanFallback({
426
450
  planFile: repairPlanFile,
@@ -609,6 +633,9 @@ async function runAnton(args) {
609
633
  });
610
634
  try {
611
635
  let planFile;
636
+ const gitCwdForBaseline = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
637
+ const taskFileRelForBaseline = path.relative(gitCwdForBaseline, filePath).replace(/\\/g, "/");
638
+ const changedBeforeTask = await getGitChangedFileCount(gitCwdForBaseline, taskFileRelForBaseline.startsWith("..") ? [] : [taskFileRelForBaseline]);
612
639
  if (mode === "preflight") {
613
640
  const discoveryResult = await runDiscoveryPhase({
614
641
  task,
@@ -680,7 +707,6 @@ async function runAnton(args) {
680
707
  const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
681
708
  const taskFileRel = path.relative(gitCwd, filePath).replace(/\\/g, "/");
682
709
  const changeIgnores = taskFileRel.startsWith("..") ? [] : [taskFileRel];
683
- const changedBefore = await getGitChangedFileCount(gitCwd, changeIgnores);
684
710
  await runAgentTask({
685
711
  message: implPrompt,
686
712
  sessionId: implSessionId,
@@ -692,7 +718,7 @@ async function runAnton(args) {
692
718
  workspaceDir: args.workspaceDir
693
719
  });
694
720
  const changedAfter = await getGitChangedFileCount(gitCwd, changeIgnores);
695
- if (mode === "preflight" && changedBefore !== null && changedAfter !== null && changedAfter <= changedBefore) throw new Error("Implementation made no repository changes; refusing to mark task complete");
721
+ if (mode === "preflight" && changedBeforeTask !== null && changedAfter !== null && changedAfter <= changedBeforeTask) throw new Error("Implementation made no repository changes; refusing to mark task complete");
696
722
  const updated = markTaskDone(await fs.readFile(filePath, "utf8"), task.line);
697
723
  await fs.writeFile(filePath, updated, "utf8");
698
724
  completed += 1;
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, f as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-47BV2tLd.js";
2
2
  import { i as resolveWhatsAppAccount } from "./accounts-BLYMokxV.js";
3
- import { A as formatDurationPrecise, Ct as formatInboundEnvelope, Gt as resolveOpenProviderRuntimeGroupPolicy, Lt as resolveDmGroupAccessWithCommandGate, Mt as buildPairingReply, Pt as readStoreAllowFromForDmPolicy, Rt as resolveDmGroupAccessWithLists, Tt as resolveEnvelopeFormatOptions, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Z as resolveMentionGating, _ as resolveInboundDebounceMs, ct as recordPendingHistoryEntryIfEnabled, g as createInboundDebouncer, i as parseActivationCommand, j as enqueueSystemEvent, l as computeBackoff, lt as buildMentionRegexes, m as dispatchReplyWithBufferedBlockDispatcher, nt as buildHistoryContextFromEntries, qt as warnMissingProviderGroupPolicyFallbackOnce, r as normalizeGroupActivation, t as getReplyFromConfig, tt as DEFAULT_GROUP_HISTORY_LIMIT, u as sleepWithAbort, ut as normalizeMentionText, v as hasControlCommand, y as shouldComputeCommandAuthorized, yt as createDedupeCache } from "./reply-BqAPyIsz.js";
3
+ import { A as formatDurationPrecise, Ct as formatInboundEnvelope, Gt as resolveOpenProviderRuntimeGroupPolicy, Lt as resolveDmGroupAccessWithCommandGate, Mt as buildPairingReply, Pt as readStoreAllowFromForDmPolicy, Rt as resolveDmGroupAccessWithLists, Tt as resolveEnvelopeFormatOptions, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Z as resolveMentionGating, _ as resolveInboundDebounceMs, ct as recordPendingHistoryEntryIfEnabled, g as createInboundDebouncer, i as parseActivationCommand, j as enqueueSystemEvent, l as computeBackoff, lt as buildMentionRegexes, m as dispatchReplyWithBufferedBlockDispatcher, nt as buildHistoryContextFromEntries, qt as warnMissingProviderGroupPolicyFallbackOnce, r as normalizeGroupActivation, t as getReplyFromConfig, tt as DEFAULT_GROUP_HISTORY_LIMIT, u as sleepWithAbort, ut as normalizeMentionText, v as hasControlCommand, y as shouldComputeCommandAuthorized, yt as createDedupeCache } from "./reply-nUO1aM3T.js";
4
4
  import { r as loadConfig } from "./config-CEgzwk0J.js";
5
5
  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-Dyj2wV4e.js";
6
6
  import { l as normalizeChatChannelId, t as createSubsystemLogger } from "./subsystem-DWPzKeZ0.js";
@@ -878,7 +878,7 @@ async function monitorWebInbox(options) {
878
878
  };
879
879
  const stopText = (inboundMessage.body ?? "").trim();
880
880
  if (stopText) {
881
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w-HD2bz4.js");
881
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CxcBz-aQ.js");
882
882
  if (isAbortRequestText(stopText)) {
883
883
  const { loadConfig: loadCfg } = await import("./config-CEgzwk0J.js").then((n) => n.t);
884
884
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
@@ -71,6 +71,7 @@ export type AgentCommandOpts = {
71
71
  lane?: string;
72
72
  runId?: string;
73
73
  extraSystemPrompt?: string;
74
+ workspaceDir?: string;
74
75
  inputProvenance?: InputProvenance;
75
76
  /** Per-call stream param overrides (best-effort). */
76
77
  streamParams?: AgentStreamParams;
@@ -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-Dj_tThNQ.js");
21
+ const { sendMessageWhatsApp } = await import("./web-CEtAvhaI.js");
22
22
  return await sendMessageWhatsApp(...args);
23
23
  },
24
24
  sendMessageTelegram: async (...args) => {
@@ -1,5 +1,5 @@
1
1
  import "./accounts-BLYMokxV.js";
2
- import { S as stopSubagentsForRequester, b as formatAbortReplyText, n as abortEmbeddedPiRun, w as clearSessionQueues, x as isAbortRequestText } from "./reply-BqAPyIsz.js";
2
+ import { S as stopSubagentsForRequester, b as formatAbortReplyText, n as abortEmbeddedPiRun, w as clearSessionQueues, x as isAbortRequestText } from "./reply-nUO1aM3T.js";
3
3
  import "./paths-CtGV5i8O.js";
4
4
  import "./github-copilot-token-CY2euW0d.js";
5
5
  import "./config-CEgzwk0J.js";
@@ -61,7 +61,7 @@ import "./send-B26cNPqY.js";
61
61
  import "./proxy-C4ewPdlN.js";
62
62
  import "./resolve-route-BZABUE4J.js";
63
63
  import "./replies-ZovJp-3F.js";
64
- import "./deps-D6VWIdk7.js";
64
+ import "./deps-qZxPlSgp.js";
65
65
  import "./outbound-attachment-BisU5Vji.js";
66
66
 
67
67
  //#region src/auto-reply/reply/emergency-stop.ts
@@ -61,6 +61,7 @@ export declare const AgentParamsSchema: import("@sinclair/typebox").TObject<{
61
61
  bestEffortDeliver: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
62
62
  lane: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
63
63
  extraSystemPrompt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
64
+ workspaceDir: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
64
65
  inputProvenance: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
65
66
  kind: import("@sinclair/typebox").TString;
66
67
  sourceSessionKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -1,6 +1,6 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId, u as resolveThreadSessionKeys } from "./session-key-47BV2tLd.js";
2
2
  import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, o as createAccountListHelpers, r as resolveDefaultWhatsAppAccountId } from "./accounts-BLYMokxV.js";
3
- import { $ as mergeAllowlist, $t as unregisterAcpRuntimeBackend, At as extractToolSend, B as formatDocsLink, Bt as resolveControlCommandGate, D as stripMarkdown, Dt as formatZonedTimestamp, E as processLineMessage, Et as formatUtcTimestamp, Ft as resolveDmAllowState, G as logInboundDrop, Gt as resolveOpenProviderRuntimeGroupPolicy, H as stringEnum, Ht as resetMissingProviderGroupPolicyFallbackWarningsForTesting, It as resolveDmGroupAccessDecision, J as removeAckReactionAfterReply, Jt as isDangerousNameMatchingEnabled, K as logTypingFailure, Kt as resolveRuntimeGroupPolicy, L as resolveDiscordUserAllowlist, Lt as resolveDmGroupAccessWithCommandGate, M as resolveSlackUserAllowlist, N as resolveSlackChannelAllowlist, Nt as DM_GROUP_ACCESS_REASON, O as createReceiptCard, Ot as resolveTimezone, P as detectBinary, Pt as readStoreAllowFromForDmPolicy, Q as resolveMentionGatingWithBypass, Qt as requireAcpRuntimeBackend, R as resolveDiscordChannelAllowlist, Rt as resolveDmGroupAccessWithLists, St as rejectDevicePairing, T as hasMarkdownToConvert, U as recordInboundSession, Ut as resolveAllowlistProviderRuntimeGroupPolicy, V as optionalStringEnum, Vt as GROUP_POLICY_BLOCKED_LABEL, W as logAckFailure, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Xt as getAcpRuntimeBackend, Y as shouldAckReaction, Yt as registerPluginHttpRoute, Z as resolveMentionGating, Zt as registerAcpRuntimeBackend, _t as readRequestBodyWithLimit, a as listLineAccountIds, an as formatAllowlistMatchMeta, at as clearHistoryEntriesIfEnabled, bt as approveDevicePairing, c as resolveLineAccount, cn as BLUEBUBBLES_ACTION_NAMES, ct as recordPendingHistoryEntryIfEnabled, dt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, en as ACP_ERROR_CODES, et as summarizeMapping, ft as DEFAULT_WEBHOOK_MAX_BODY_BYTES, gt as readJsonBodyWithLimit, ht as isRequestBodyLimitError, in as unbindThreadBindingsBySessionKey, it as clearHistoryEntries, jt as issuePairingChallenge, k as attachFooterText, kt as buildMediaPayload, ln as BLUEBUBBLES_GROUP_ACTIONS, mt as installRequestBodyLimitGuard, nn as autoBindSpawnedDiscordSubagent, o as normalizeAccountId$1, on as resolveAllowlistMatchSimple, ot as evictOldHistoryKeys, pt as RequestBodyLimitError, q as createTypingCallbacks, qt as warnMissingProviderGroupPolicyFallbackOnce, rn as listThreadBindingsBySessionKey, rt as buildPendingHistoryContextFromMap, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_ACTIONS, st as recordPendingHistoryEntry, tn as AcpRuntimeError, tt as DEFAULT_GROUP_HISTORY_LIMIT, un as CHANNEL_MESSAGE_ACTION_NAMES, vt as requestBodyErrorToText, wt as formatInboundFromLabel, xt as listDevicePairing, yt as createDedupeCache, z as collectDiscordAuditChannelIds, zt as resolveEffectiveAllowFromLists } from "./reply-BqAPyIsz.js";
3
+ import { $ as mergeAllowlist, $t as unregisterAcpRuntimeBackend, At as extractToolSend, B as formatDocsLink, Bt as resolveControlCommandGate, D as stripMarkdown, Dt as formatZonedTimestamp, E as processLineMessage, Et as formatUtcTimestamp, Ft as resolveDmAllowState, G as logInboundDrop, Gt as resolveOpenProviderRuntimeGroupPolicy, H as stringEnum, Ht as resetMissingProviderGroupPolicyFallbackWarningsForTesting, It as resolveDmGroupAccessDecision, J as removeAckReactionAfterReply, Jt as isDangerousNameMatchingEnabled, K as logTypingFailure, Kt as resolveRuntimeGroupPolicy, L as resolveDiscordUserAllowlist, Lt as resolveDmGroupAccessWithCommandGate, M as resolveSlackUserAllowlist, N as resolveSlackChannelAllowlist, Nt as DM_GROUP_ACCESS_REASON, O as createReceiptCard, Ot as resolveTimezone, P as detectBinary, Pt as readStoreAllowFromForDmPolicy, Q as resolveMentionGatingWithBypass, Qt as requireAcpRuntimeBackend, R as resolveDiscordChannelAllowlist, Rt as resolveDmGroupAccessWithLists, St as rejectDevicePairing, T as hasMarkdownToConvert, U as recordInboundSession, Ut as resolveAllowlistProviderRuntimeGroupPolicy, V as optionalStringEnum, Vt as GROUP_POLICY_BLOCKED_LABEL, W as logAckFailure, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Xt as getAcpRuntimeBackend, Y as shouldAckReaction, Yt as registerPluginHttpRoute, Z as resolveMentionGating, Zt as registerAcpRuntimeBackend, _t as readRequestBodyWithLimit, a as listLineAccountIds, an as formatAllowlistMatchMeta, at as clearHistoryEntriesIfEnabled, bt as approveDevicePairing, c as resolveLineAccount, cn as BLUEBUBBLES_ACTION_NAMES, ct as recordPendingHistoryEntryIfEnabled, dt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, en as ACP_ERROR_CODES, et as summarizeMapping, ft as DEFAULT_WEBHOOK_MAX_BODY_BYTES, gt as readJsonBodyWithLimit, ht as isRequestBodyLimitError, in as unbindThreadBindingsBySessionKey, it as clearHistoryEntries, jt as issuePairingChallenge, k as attachFooterText, kt as buildMediaPayload, ln as BLUEBUBBLES_GROUP_ACTIONS, mt as installRequestBodyLimitGuard, nn as autoBindSpawnedDiscordSubagent, o as normalizeAccountId$1, on as resolveAllowlistMatchSimple, ot as evictOldHistoryKeys, pt as RequestBodyLimitError, q as createTypingCallbacks, qt as warnMissingProviderGroupPolicyFallbackOnce, rn as listThreadBindingsBySessionKey, rt as buildPendingHistoryContextFromMap, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_ACTIONS, st as recordPendingHistoryEntry, tn as AcpRuntimeError, tt as DEFAULT_GROUP_HISTORY_LIMIT, un as CHANNEL_MESSAGE_ACTION_NAMES, vt as requestBodyErrorToText, wt as formatInboundFromLabel, xt as listDevicePairing, yt as createDedupeCache, z as collectDiscordAuditChannelIds, zt as resolveEffectiveAllowFromLists } from "./reply-nUO1aM3T.js";
4
4
  import "./paths-CtGV5i8O.js";
5
5
  import "./github-copilot-token-CY2euW0d.js";
6
6
  import { A as GroupPolicySchema, An as acquireFileLock, D as BlockStreamingCoalesceSchema, E as ToolPolicySchema, F as TtsConfigSchema, I as TtsModeSchema, L as TtsProviderSchema, M as MarkdownTableModeSchema, N as ReplyRuntimeConfigSchemaShape, O as DmConfigSchema, P as TtsAutoSchema, R as normalizeAllowFrom, d as GoogleChatConfigSchema, f as IMessageConfigSchema, g as TelegramConfigSchema, h as SlackConfigSchema, j as MarkdownConfigSchema, jn as withFileLock, k as DmPolicySchema, l as WhatsAppConfigSchema, m as SignalConfigSchema, p as MSTeamsConfigSchema, u as DiscordConfigSchema, z as requireOpenAllowFrom } from "./config-CEgzwk0J.js";
@@ -52,7 +52,7 @@ import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticE
52
52
  import { n as extractOriginalFilename } from "./store-CCCXwngh.js";
53
53
  import "./pi-embedded-helpers-B68z4sHq.js";
54
54
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-CnUtsDch.js";
55
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-Cd-eamYe.js";
55
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-EFRSObCG.js";
56
56
  import "./thinking-g4Rrlwu4.js";
57
57
  import "./image-C_1tftC8.js";
58
58
  import "./pi-model-discovery-Dt6899be.js";
@@ -65,7 +65,7 @@ import "./send-B26cNPqY.js";
65
65
  import "./proxy-C4ewPdlN.js";
66
66
  import "./resolve-route-BZABUE4J.js";
67
67
  import "./replies-ZovJp-3F.js";
68
- import "./deps-D6VWIdk7.js";
68
+ import "./deps-qZxPlSgp.js";
69
69
  import "./outbound-attachment-BisU5Vji.js";
70
70
  import "./outbound-Dx_q6JAI.js";
71
71
  import "./session-DdJj6_DW.js";
@@ -72,7 +72,7 @@ import { t as makeProxyFetch } from "./proxy-C4ewPdlN.js";
72
72
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BZABUE4J.js";
73
73
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ZovJp-3F.js";
74
74
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-WMrtFGPv.js";
75
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-D6VWIdk7.js";
75
+ import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-qZxPlSgp.js";
76
76
  import { createRequire } from "node:module";
77
77
  import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
78
78
  import * as path$1 from "node:path";
@@ -4507,6 +4507,7 @@ const AgentParamsSchema = Type.Object({
4507
4507
  bestEffortDeliver: Type.Optional(Type.Boolean()),
4508
4508
  lane: Type.Optional(Type.String()),
4509
4509
  extraSystemPrompt: Type.Optional(Type.String()),
4510
+ workspaceDir: Type.Optional(Type.String()),
4510
4511
  inputProvenance: Type.Optional(Type.Object({
4511
4512
  kind: Type.String({ enum: [...INPUT_PROVENANCE_KIND_VALUES] }),
4512
4513
  sourceSessionKey: Type.Optional(Type.String()),
@@ -33090,7 +33091,7 @@ function createDiscordMessageHandler(params) {
33090
33091
  try {
33091
33092
  const messageText = resolveDiscordMessageText(data.message)?.trim();
33092
33093
  if (messageText) {
33093
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w-HD2bz4.js");
33094
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CxcBz-aQ.js");
33094
33095
  if (isAbortRequestText(messageText)) {
33095
33096
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
33096
33097
  const channelId = resolveDiscordMessageChannelId({
@@ -39358,7 +39359,7 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
39358
39359
  agentId: sessionAgentId,
39359
39360
  sessionKey
39360
39361
  });
39361
- const workspaceDirRaw = resolvedSessionEntry?.workspaceDir?.trim() || resolveAgentWorkspaceDir(cfg, sessionAgentId);
39362
+ const workspaceDirRaw = opts.workspaceDir?.trim() || resolvedSessionEntry?.workspaceDir?.trim() || resolveAgentWorkspaceDir(cfg, sessionAgentId);
39362
39363
  const agentDir = resolveAgentDir(cfg, sessionAgentId);
39363
39364
  const workspaceDir = (await ensureAgentWorkspace({
39364
39365
  dir: workspaceDirRaw,
@@ -43834,7 +43835,7 @@ async function monitorIMessageProvider(opts = {}) {
43834
43835
  }
43835
43836
  const msgText = (message.text ?? "").trim();
43836
43837
  if (msgText) {
43837
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w-HD2bz4.js");
43838
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CxcBz-aQ.js");
43838
43839
  if (isAbortRequestText(msgText)) {
43839
43840
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
43840
43841
  const route = resolveAgentRoute({
@@ -46230,7 +46231,7 @@ function createSignalEventHandler(deps) {
46230
46231
  const senderName = envelope.sourceName ?? senderDisplay;
46231
46232
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
46232
46233
  if (bodyText) {
46233
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w-HD2bz4.js");
46234
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CxcBz-aQ.js");
46234
46235
  if (isAbortRequestText(bodyText)) {
46235
46236
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
46236
46237
  const route = resolveAgentRoute({
@@ -49601,7 +49602,7 @@ function createSlackMessageHandler(params) {
49601
49602
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
49602
49603
  const rawText = (message.text ?? "").trim();
49603
49604
  if (rawText) {
49604
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w-HD2bz4.js");
49605
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CxcBz-aQ.js");
49605
49606
  if (isAbortRequestText(rawText)) {
49606
49607
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
49607
49608
  const route = resolveAgentRoute({
@@ -54224,7 +54225,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
54224
54225
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
54225
54226
  const text = typeof msg.text === "string" ? msg.text : void 0;
54226
54227
  if (text) {
54227
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w-HD2bz4.js");
54228
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CxcBz-aQ.js");
54228
54229
  if (isAbortRequestText(text)) {
54229
54230
  const senderId = msg.from?.id ? String(msg.from.id) : "";
54230
54231
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -57709,7 +57710,7 @@ function loadWebLoginQr() {
57709
57710
  return webLoginQrPromise;
57710
57711
  }
57711
57712
  function loadWebChannel() {
57712
- webChannelPromise ??= import("./web-Dj_tThNQ.js");
57713
+ webChannelPromise ??= import("./web-CEtAvhaI.js");
57713
57714
  return webChannelPromise;
57714
57715
  }
57715
57716
  function loadWhatsAppActions() {
@@ -80281,7 +80282,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
80281
80282
  };
80282
80283
  const arg = body.slice(6).trim();
80283
80284
  if (arg === "status" || arg === "") {
80284
- const { antonStatus } = await import("./anton-BO16dWNw.js");
80285
+ const { antonStatus } = await import("./anton-CGYTy9vy.js");
80285
80286
  const lines = [];
80286
80287
  await antonStatus({
80287
80288
  log: (msg) => lines.push(msg),
@@ -80297,7 +80298,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
80297
80298
  return { shouldContinue: false };
80298
80299
  }
80299
80300
  if (arg === "stop") {
80300
- const { antonStop } = await import("./anton-BO16dWNw.js");
80301
+ const { antonStop } = await import("./anton-CGYTy9vy.js");
80301
80302
  const lines = [];
80302
80303
  await antonStop({
80303
80304
  log: (msg) => lines.push(msg),
@@ -80335,8 +80336,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
80335
80336
  await sendProgress(replyCtx, text);
80336
80337
  return { shouldContinue: false };
80337
80338
  }
80338
- const { runAnton, formatProgressMessage } = await import("./anton-BO16dWNw.js");
80339
- const { createDefaultDeps } = await import("./deps-D6VWIdk7.js").then((n) => n.n);
80339
+ const { runAnton, formatProgressMessage } = await import("./anton-CGYTy9vy.js");
80340
+ const { createDefaultDeps } = await import("./deps-qZxPlSgp.js").then((n) => n.n);
80340
80341
  const { createNonExitingRuntime } = await import("./runtime-CjfcfOBD.js").then((n) => n.r);
80341
80342
  const runtime = createNonExitingRuntime();
80342
80343
  const deps = createDefaultDeps();
@@ -1,5 +1,5 @@
1
1
  import "./accounts-BLYMokxV.js";
2
- import "./reply-BqAPyIsz.js";
2
+ import "./reply-nUO1aM3T.js";
3
3
  import "./paths-CtGV5i8O.js";
4
4
  import "./github-copilot-token-CY2euW0d.js";
5
5
  import "./config-CEgzwk0J.js";
@@ -49,7 +49,7 @@ import "./deliver-BNfMF0Nb.js";
49
49
  import "./diagnostic-ByA6zvzu.js";
50
50
  import "./store-CCCXwngh.js";
51
51
  import "./pi-embedded-helpers-B68z4sHq.js";
52
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-Cd-eamYe.js";
52
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-EFRSObCG.js";
53
53
  import "./thinking-g4Rrlwu4.js";
54
54
  import "./image-C_1tftC8.js";
55
55
  import "./pi-model-discovery-Dt6899be.js";
@@ -62,7 +62,7 @@ import "./send-B26cNPqY.js";
62
62
  import "./proxy-C4ewPdlN.js";
63
63
  import "./resolve-route-BZABUE4J.js";
64
64
  import "./replies-ZovJp-3F.js";
65
- import "./deps-D6VWIdk7.js";
65
+ import "./deps-qZxPlSgp.js";
66
66
  import "./outbound-attachment-BisU5Vji.js";
67
67
  import { n as sendMessageWhatsApp } from "./outbound-Dx_q6JAI.js";
68
68
  import { i as waitForWaConnection, t as createWaSocket } from "./session-DdJj6_DW.js";