@visorcraft/idlehands 4.0.15 → 4.0.17

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 (380) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{accounts-DLTODa_Z.js → accounts-D-hQsUw-.js} +1 -1
  3. package/dist/{accounts-DgbTKQoW.js → accounts-D87a1Y_K.js} +1 -1
  4. package/dist/{accounts-3HS_UAhJ.js → accounts-DsVN0UNw.js} +1 -1
  5. package/dist/{acp-cli-B-7CXaeS.js → acp-cli-D52jj29o.js} +7 -7
  6. package/dist/{agent-scope-RA0zXRpu.js → agent-scope-Bn39ugK4.js} +18 -18
  7. package/dist/{agent-via-gateway-CcaPUQrc.js → agent-via-gateway-BDWomN2t.js} +4 -4
  8. package/dist/{agent-via-gateway-BvXS1sXv.js → agent-via-gateway-BVY7w5-N.js} +1 -1
  9. package/dist/{agent-via-gateway-CIM26Dxl.js → agent-via-gateway-BlRwv6D6.js} +2 -2
  10. package/dist/{agent-via-gateway-BFtbpQpT.js → agent-via-gateway-DSZK5iRF.js} +2 -2
  11. package/dist/{agents-DPlb4UQu.js → agents-BLa67Gdv.js} +4 -4
  12. package/dist/{agents.config-8pxRoZvL.js → agents.config-ADCeu0yD.js} +1 -1
  13. package/dist/{agents.config-BKoyeUnK.js → agents.config-CyEkgCQE.js} +2 -2
  14. package/dist/{anton-DKA8iAQE.js → anton-CZ5moxh6.js} +22 -4
  15. package/dist/{anton-BTjKlGm7.js → anton-D-0SP_5T.js} +22 -4
  16. package/dist/{anton-DhBvDNcB.js → anton-DYEYyPJ1.js} +40 -22
  17. package/dist/{anton-Dyhtv3C8.js → anton-llLwn1lp.js} +22 -4
  18. package/dist/{api-key-rotation-B-FTJm5p.js → api-key-rotation-nXQVJErE.js} +1 -1
  19. package/dist/{audio-preflight-Dl1TO10w.js → audio-preflight-DzjXupNO.js} +31 -31
  20. package/dist/{audit-BmaVRZSd.js → audit-D12wg2tV.js} +22 -22
  21. package/dist/{auth-choice-D-_AVWgJ.js → auth-choice-01ELTnLA.js} +1 -1
  22. package/dist/{auth-choice-D12Wsf7w.js → auth-choice-BDndThZZ.js} +12 -12
  23. package/dist/{auth-choice-CMUzxwaw.js → auth-choice-CqbTnCYz.js} +10 -10
  24. package/dist/{auth-choice.apply-helpers-CGcniL1T.js → auth-choice.apply-helpers-pTqMTYmi.js} +1 -1
  25. package/dist/{auth-store-DDzIMy8_.js → auth-store-CMyrmmSF.js} +7 -7
  26. package/dist/{auth-token-BJq87X3o.js → auth-token-fKt_cHOj.js} +1 -1
  27. package/dist/{banner-B6ih1A5q.js → banner-Dv_eAAWw.js} +1 -1
  28. package/dist/{bindings-B59Q7nsk.js → bindings-DZjkLUU_.js} +1 -1
  29. package/dist/{browser-cli-Ny1nHwqv.js → browser-cli-Da-0lyq2.js} +11 -11
  30. package/dist/build-info.json +3 -3
  31. package/dist/bundled/boot-md/handler.js +2 -2
  32. package/dist/bundled/session-memory/handler.js +2 -2
  33. package/dist/{call-BRL23UCk.js → call-DnTBT02D.js} +9 -9
  34. package/dist/{channel-account-context-CDbY5AIr.js → channel-account-context-B4nJPU2N.js} +5 -5
  35. package/dist/{channel-options-DqOp64vm.js → channel-options-BilcK806.js} +1 -1
  36. package/dist/{channel-options-DdT_iiu2.js → channel-options-BvOLgXCF.js} +3 -3
  37. package/dist/{channel-selection-ZxRkxpuF.js → channel-selection-3jUl-PyW.js} +1 -1
  38. package/dist/{channel-web-DjS8VQYO.js → channel-web-B1IazKKL.js} +22 -22
  39. package/dist/{channel-web-PG7u76pG.js → channel-web-BptLTwvg.js} +2 -2
  40. package/dist/{channels-cli-1tt6zmdw.js → channels-cli-DejBZZ85.js} +7 -7
  41. package/dist/{channels-cli-CWxVX3_x.js → channels-cli-FssbSykQ.js} +88 -88
  42. package/dist/{channels-status-issues-CDpWjdI3.js → channels-status-issues-hgASw9UA.js} +1 -1
  43. package/dist/{chrome-VBsQfIrt.js → chrome-YguTEaLx.js} +2 -2
  44. package/dist/{clawbot-cli-uFgYrysW.js → clawbot-cli-C5cDal-5.js} +5 -5
  45. package/dist/cli/daemon-cli.js +1 -1
  46. package/dist/{cli-D4FV736E.js → cli-BrQZTuUX.js} +70 -70
  47. package/dist/{cli-CmOlEYcx.js → cli-j1A8WKSj.js} +2 -2
  48. package/dist/{client-DxH9hwLn.js → client-DIckPnsi.js} +1 -1
  49. package/dist/{command-registry-CQ_cgvak.js → command-registry-DZZAmcbA.js} +10 -10
  50. package/dist/{commands-Dj5LalLo.js → commands-D3BU_t7G.js} +1 -1
  51. package/dist/{commands-registry-CURlRZQJ.js → commands-registry-Cj4D_1tw.js} +3 -3
  52. package/dist/{completion-cli-UytEAOmM.js → completion-cli-Cxvf8clb.js} +2 -2
  53. package/dist/{completion-cli-y9BFk5F6.js → completion-cli-ktxbWAiG.js} +12 -12
  54. package/dist/{config-cli-DUb0ZGdL.js → config-cli-Bq_MWzp9.js} +1 -1
  55. package/dist/{config-cli-5c6A3y5U.js → config-cli-CogA71uD.js} +6 -6
  56. package/dist/{config-guard-BdsOumqh.js → config-guard-DnAyuF6T.js} +17 -17
  57. package/dist/{config-validation-BvKX6fPw.js → config-validation-DIomLMwH.js} +2 -2
  58. package/dist/{configure-AlSS40po.js → configure-CPDGJFyt.js} +3 -3
  59. package/dist/{configure-BPwYKVb4.js → configure-CZUn--aN.js} +16 -16
  60. package/dist/{control-ui-assets-C7ZpN9hN.js → control-ui-assets-CiaCDBvZ.js} +1 -1
  61. package/dist/{cron-cli-Xml0Uww8.js → cron-cli-B8uqoogS.js} +12 -12
  62. package/dist/{daemon-cli-B1Ti51bt.js → daemon-cli-CMBNTpSS.js} +11 -11
  63. package/dist/{daemon-install-CYPo4M1M.js → daemon-install-DeqQiAad.js} +4 -4
  64. package/dist/{daemon-install-helpers-BZY9-jNW.js → daemon-install-helpers-Bug_GYuy.js} +9 -9
  65. package/dist/{deliver--kttnrER.js → deliver-yTpXc5sv.js} +7 -7
  66. package/dist/{deps-DxMLbT7t.js → deps-BUUwigzc.js} +1 -1
  67. package/dist/{deps-KIFYHxig.js → deps-B_5kPH1Q.js} +1 -1
  68. package/dist/{deps-BYfE_aIY.js → deps-CH8f3TJK.js} +6 -6
  69. package/dist/{deps-TwKaIh1I.js → deps-PAzfFs3Q.js} +1 -1
  70. package/dist/{devices-cli-BNkO0Fey.js → devices-cli-DVLF8Yvw.js} +7 -7
  71. package/dist/{diagnostics-DmZbQ8Nc.js → diagnostics-CdUgLS0N.js} +5 -5
  72. package/dist/{directory-cli-Dz9iXeut.js → directory-cli-BAMS8f9U.js} +9 -9
  73. package/dist/{dns-cli-DD6hWsdc.js → dns-cli-BdxBk-k_.js} +4 -4
  74. package/dist/{dock-Y96MzKuM.js → dock-CzF5XYGd.js} +4 -4
  75. package/dist/{docs-cli-cHkrTB2e.js → docs-cli-SF7es4Zs.js} +4 -4
  76. package/dist/{doctor-completion-S-XHygGb.js → doctor-completion-i04j1TGW.js} +1 -1
  77. package/dist/{doctor-completion-HzTBPNbS.js → doctor-completion-iWmUY3B4.js} +2 -2
  78. package/dist/{doctor-config-flow-Ck4oCjfl.js → doctor-config-flow-8qXzBx09.js} +14 -14
  79. package/dist/{emergency-stop-BDwI4Cyl.js → emergency-stop-CfKEsUr_.js} +70 -70
  80. package/dist/{emergency-stop-DpMAMIiz.js → emergency-stop-CzExWKhr.js} +2 -2
  81. package/dist/{emergency-stop-DOi-rKmj.js → emergency-stop-DAmKucxm.js} +2 -2
  82. package/dist/{emergency-stop--ScwariE.js → emergency-stop-tKLAiFAG.js} +2 -2
  83. package/dist/{enable-o_s6PBsC.js → enable-DaA_orGN.js} +1 -1
  84. package/dist/entry.js +1 -1
  85. package/dist/{exec-approvals-allowlist-Co2tJSEo.js → exec-approvals-allowlist-8AkOwwIr.js} +1 -1
  86. package/dist/{exec-approvals-cli-CyjTnYfk.js → exec-approvals-cli-CtoJW2K-.js} +15 -15
  87. package/dist/{exec-safe-bin-runtime-policy-DaoU9-ni.js → exec-safe-bin-runtime-policy-DYXuBKqH.js} +2 -2
  88. package/dist/extensionAPI.js +2 -2
  89. package/dist/{fs-safe-_JQUGpZf.js → fs-safe-DNFrxDS-.js} +15 -15
  90. package/dist/{gateway-cli-DQcjWJr7.js → gateway-cli-C8P5BVto.js} +148 -148
  91. package/dist/{gateway-cli-B4T44JsM.js → gateway-cli-DSJcNJYR.js} +9 -9
  92. package/dist/{gateway-rpc-Du-ZpDjh.js → gateway-rpc-6vnhO4v8.js} +1 -1
  93. package/dist/{health-D7UCYzfy.js → health-BN8WNyon.js} +1 -1
  94. package/dist/{health--39yieH5.js → health-CNZK5D2k.js} +13 -13
  95. package/dist/{hooks-cli-CGB7TcZZ.js → hooks-cli-L32lBsp7.js} +3 -3
  96. package/dist/{hooks-cli-Cko_uweG.js → hooks-cli-t7tiLn8P.js} +84 -84
  97. package/dist/{hooks-status-DNGo2G8Q.js → hooks-status-CPIWc_bx.js} +1 -1
  98. package/dist/{idlehands-root-B8cUs-5M.js → idlehands-root-DFL2GrNW.js} +8 -8
  99. package/dist/{image-DSDEbSiO.js → image-C2JZiK-6.js} +5 -5
  100. package/dist/{image-ops-BU-VdLZu.js → image-ops-BkoEFRYH.js} +10 -10
  101. package/dist/index.js +80 -80
  102. package/dist/{inspect-ISQZuNM5.js → inspect-Dg16DMLn.js} +4 -4
  103. package/dist/{install-safe-path-ChNR9pl6.js → install-safe-path-CNNMzJl9.js} +19 -19
  104. package/dist/{installs-CNubze2L.js → installs-ST3UaUVJ.js} +9 -9
  105. package/dist/{ir-VncGpwA1.js → ir-DV0Hszc8.js} +6 -6
  106. package/dist/{lifecycle-core-B6UoqYTJ.js → lifecycle-core-DOScNyOv.js} +5 -5
  107. package/dist/llm-slug-generator.js +2 -2
  108. package/dist/{local-roots-q0xbefkf.js → local-roots-Cco87A2_.js} +2 -2
  109. package/dist/{login-CfUhrgWT.js → login-Dl_lsEHS.js} +4 -4
  110. package/dist/{login-qr-DBMsUxgL.js → login-qr-B68cBRH0.js} +7 -7
  111. package/dist/{logs-cli-CH4mFhUt.js → logs-cli-BluGGq03.js} +8 -8
  112. package/dist/{manager-BMAFgXyU.js → manager-BBeTPO2h.js} +13 -13
  113. package/dist/{manifest-registry-Bak1x76G.js → manifest-registry-RfRn8HJx.js} +1 -1
  114. package/dist/{markdown-tables-DZClqsNo.js → markdown-tables-C5hTDqNm.js} +1 -1
  115. package/dist/{memory-cli-CUGwnVIY.js → memory-cli-4wfelGdK.js} +12 -12
  116. package/dist/{model-C-icShH2.js → model-Bd-05WpB.js} +2 -2
  117. package/dist/{model-catalog-D9no0CH2.js → model-catalog-BCsDrrvq.js} +3 -3
  118. package/dist/{model-picker-BkXoTOiA.js → model-picker-D3U0wJCO.js} +4 -4
  119. package/dist/{model-selection-0dGxYGp8.js → model-selection-CSn9tUuH.js} +16 -16
  120. package/dist/{models-cli-d_ead6LU.js → models-cli-ChStpcQY.js} +79 -79
  121. package/dist/{models-cli-NlT2N74B.js → models-cli-dd-wJvj0.js} +4 -4
  122. package/dist/{models-config-C5A1wDWh.js → models-config-lQpqp472.js} +6 -6
  123. package/dist/{models-CWfcMshO.js → models-mQeB9JXZ.js} +2 -2
  124. package/dist/{node-cli-Ch7K7WtL.js → node-cli-DhD8-NHR.js} +32 -32
  125. package/dist/{node-service-C3vyxHLA.js → node-service-GpI0jzKr.js} +1 -1
  126. package/dist/{nodes-cli-D_hUCPNt.js → nodes-cli-DPzxQ0mY.js} +14 -14
  127. package/dist/{nodes-screen-CcpPaFxa.js → nodes-screen-CIAn0wXq.js} +4 -4
  128. package/dist/{npm-registry-spec-BCbbfIhX.js → npm-registry-spec-BfeHLbIQ.js} +16 -16
  129. package/dist/{npm-resolution-Dpn9DNPz.js → npm-resolution-WKW4cIrd.js} +1 -1
  130. package/dist/{npm-resolution-DIJeEhoa.js → npm-resolution-tT1BUac2.js} +3 -3
  131. package/dist/{onboard-DFseyAG9.js → onboard-D1wKkHHC.js} +2 -2
  132. package/dist/{onboard-channels-mLWuxUlN.js → onboard-channels-CG1R8Ozs.js} +1 -1
  133. package/dist/{onboard-channels-CG1HcORq.js → onboard-channels-CRHp5hA-.js} +20 -20
  134. package/dist/{onboard-custom-DUbzMMu7.js → onboard-custom-D2sCP3_S.js} +4 -4
  135. package/dist/{onboard-helpers-BQmbMJxJ.js → onboard-helpers-ByhJg2ST.js} +8 -8
  136. package/dist/{onboard-hooks-D9teGxfH.js → onboard-hooks-_1Jgimeu.js} +4 -4
  137. package/dist/{onboard-remote-CIjhaP2W.js → onboard-remote-DuhWSiAO.js} +1 -1
  138. package/dist/{onboard-Raw5nkGc.js → onboard-rze7pzoW.js} +6 -6
  139. package/dist/{onboard-skills-BsaUIuq6.js → onboard-skills-vFwEasAg.js} +4 -4
  140. package/dist/{onboarding-CzzjhwRf.js → onboarding-BgHfZNln.js} +3 -3
  141. package/dist/{onboarding-DYlNLV9R.js → onboarding-BxvY_aEE.js} +13 -13
  142. package/dist/{onboarding.finalize-CIOBj6Jy.js → onboarding.finalize-5_UCPMAw.js} +7 -7
  143. package/dist/{onboarding.finalize-BJYuOTPe.js → onboarding.finalize-DnCFQEPR.js} +82 -82
  144. package/dist/{onboarding.gateway-config-CEQMyj8l.js → onboarding.gateway-config-qVAY6x7I.js} +16 -16
  145. package/dist/{openai-model-default-7J6cw1rA.js → openai-model-default-OPCCNNS0.js} +2 -2
  146. package/dist/{outbound-DPTxwchq.js → outbound-CG19kl0w.js} +4 -4
  147. package/dist/{plugin-sdk/outbound-attachment-BisU5Vji.js → outbound-attachment-jYdMgCml.js} +2 -2
  148. package/dist/{pairing-cli-jwx6hMsM.js → pairing-cli-QJYYDcIK.js} +10 -10
  149. package/dist/{pairing-labels-ChQJzbS9.js → pairing-labels-DuZ7ih-T.js} +1 -1
  150. package/dist/{pairing-store-CPpEEQJO.js → pairing-store-qvpPoWL_.js} +2 -2
  151. package/dist/{pairing-token-lKXTMQ_M.js → pairing-token-3hoCgQqp.js} +7 -7
  152. package/dist/{path-alias-guards-FXBVVTLw.js → path-alias-guards-BCskHdfJ.js} +3 -3
  153. package/dist/{path-safety-DwibX65n.js → path-safety-C1Y004P_.js} +1 -1
  154. package/dist/{paths-B-CLQ5RT.js → paths-Bt0fZexW.js} +9 -9
  155. package/dist/{pi-embedded-Swc7dke2.js → pi-embedded-BcmA23Ak.js} +12 -12
  156. package/dist/{pi-embedded-7XGjNojd.js → pi-embedded-D_8x2ll-.js} +12 -12
  157. package/dist/{pi-embedded-helpers-BCsfqpDt.js → pi-embedded-helpers-BkzrQ5bZ.js} +6 -6
  158. package/dist/{pi-model-discovery-BIP3RjXl.js → pi-model-discovery-Bt79ifyi.js} +1 -1
  159. package/dist/{pi-tools.policy-DfITIKZj.js → pi-tools.policy-B_ME3yF6.js} +5 -5
  160. package/dist/{plugin-auto-enable-7DUxMy6A.js → plugin-auto-enable-BMuSi4aV.js} +3 -3
  161. package/dist/{plugin-registry-BAd0SoEv.js → plugin-registry-C3IHwz9i.js} +3 -3
  162. package/dist/{plugin-registry-D9Z1bMNt.js → plugin-registry-CncOKeD3.js} +1 -1
  163. package/dist/plugin-sdk/{accounts-CBVAw5_G.js → accounts-B9nfRzyn.js} +1 -1
  164. package/dist/plugin-sdk/{accounts-BLYMokxV.js → accounts-Kt6ygPsC.js} +2 -2
  165. package/dist/plugin-sdk/{accounts-C5tHm1UI.js → accounts-mjFAny5F.js} +1 -1
  166. package/dist/plugin-sdk/{agent-scope-jl80I5G9.js → agent-scope-CU41EMlR.js} +2 -2
  167. package/dist/plugin-sdk/{agent-via-gateway-B3F-royZ.js → agent-via-gateway-CDKZ0Jk9.js} +55 -55
  168. package/dist/plugin-sdk/{anton-DfpQdXJJ.js → anton-Bp5L7uaN.js} +25 -7
  169. package/dist/plugin-sdk/{api-key-rotation-D6nK54XH.js → api-key-rotation-CZhCWd61.js} +2 -2
  170. package/dist/plugin-sdk/{audio-preflight-CKqqN8ty.js → audio-preflight-CRgDehfO.js} +30 -30
  171. package/dist/plugin-sdk/{auth-store-DaPWgQTx.js → auth-store-DycBvVqL.js} +1 -1
  172. package/dist/plugin-sdk/{bindings-xXgmJGxj.js → bindings-BDKKHGv-.js} +2 -2
  173. package/dist/plugin-sdk/{channel-activity-loOg1DRw.js → channel-activity-TcS_VfJk.js} +3 -3
  174. package/dist/plugin-sdk/{channel-web-BWE_kecR.js → channel-web-DcgShj6y.js} +24 -24
  175. package/dist/plugin-sdk/{chrome-Cb9FgiCI.js → chrome-BCTizrZD.js} +6 -6
  176. package/dist/plugin-sdk/{chunk-PW4MBmaN.js → chunk-DZr5xuqv.js} +1 -1
  177. package/dist/plugin-sdk/{commands-registry-B5m2EsHz.js → commands-registry-BqJLwZYh.js} +5 -5
  178. package/dist/plugin-sdk/{config-CEgzwk0J.js → config-BzPMtEKA.js} +10 -10
  179. package/dist/plugin-sdk/{deliver-BNfMF0Nb.js → deliver-Cfc1UCre.js} +10 -10
  180. package/dist/plugin-sdk/{deps-B0MfJgDH.js → deps-B5eQTF_d.js} +6 -6
  181. package/dist/plugin-sdk/{diagnostic-ByA6zvzu.js → diagnostic-B8VzcqLf.js} +1 -1
  182. package/dist/plugin-sdk/{dock-DKQYtT6-.js → dock-CMURqoee.js} +6 -6
  183. package/dist/plugin-sdk/{emergency-stop-rTRWpk26.js → emergency-stop-DQppo4RU.js} +55 -55
  184. package/dist/plugin-sdk/{env-5XecRTLs.js → env-qurSiOO2.js} +1 -1
  185. package/dist/plugin-sdk/{errors-CMcD8Lhh.js → errors-UqLewZJL.js} +1 -1
  186. package/dist/plugin-sdk/{fetch-guard-DwdUEdmT.js → fetch-guard-C174s8ZV.js} +1 -1
  187. package/dist/plugin-sdk/{fs-safe-qsx2_8-o.js → fs-safe-CCXTOK7j.js} +2 -2
  188. package/dist/plugin-sdk/{image-C_1tftC8.js → image-DDuK8tyO.js} +6 -6
  189. package/dist/plugin-sdk/{image-ops-CXSUo-AM.js → image-ops-BRYGGDwL.js} +1 -1
  190. package/dist/plugin-sdk/index.js +60 -60
  191. package/dist/plugin-sdk/{ir-kdDGpPMq.js → ir-Bv0Zbp2E.js} +5 -5
  192. package/dist/plugin-sdk/{local-roots-DjB6DYeI.js → local-roots-bHCsSVt_.js} +4 -4
  193. package/dist/plugin-sdk/{login-DIwO5D5Y.js → login-CkQrnY2G.js} +6 -6
  194. package/dist/plugin-sdk/{login-qr-CpCAJuvT.js → login-qr-DAeHibH_.js} +8 -8
  195. package/dist/plugin-sdk/{manager-Dox9r7og.js → manager-CTC1S_c9.js} +10 -10
  196. package/dist/plugin-sdk/{markdown-tables-Drtwd4J5.js → markdown-tables-DfUQHRZY.js} +1 -1
  197. package/dist/plugin-sdk/{message-channel-CQ0qkGHj.js → message-channel-DiMXmQeQ.js} +1 -1
  198. package/dist/plugin-sdk/{outbound-Dx_q6JAI.js → outbound-B1twcfz5.js} +6 -6
  199. package/dist/{outbound-attachment-Bot3bRnK.js → plugin-sdk/outbound-attachment-Bs7fNaqv.js} +2 -2
  200. package/dist/plugin-sdk/{path-alias-guards-C_uBEYb4.js → path-alias-guards-yyy61qHh.js} +1 -1
  201. package/dist/plugin-sdk/{pi-embedded-helpers-B68z4sHq.js → pi-embedded-helpers-BAm9cWol.js} +16 -16
  202. package/dist/plugin-sdk/{pi-model-discovery-Dt6899be.js → pi-model-discovery-Bt6JtUFr.js} +1 -1
  203. package/dist/plugin-sdk/{plugins-NTjIvHYk.js → plugins-DRPlVBr_.js} +5 -5
  204. package/dist/plugin-sdk/{pw-ai-Dk2PTZzq.js → pw-ai-CY0evCZ2.js} +10 -10
  205. package/dist/plugin-sdk/{qmd-manager-juzrnopq.js → qmd-manager-BckPBwZX.js} +5 -5
  206. package/dist/plugin-sdk/{query-expansion-xBXvzdkL.js → query-expansion-CPqK-tTR.js} +2 -2
  207. package/dist/plugin-sdk/{redact-B6VQH3UQ.js → redact-Ub8sMBBC.js} +1 -1
  208. package/dist/plugin-sdk/{replies-ZovJp-3F.js → replies-DwTNZJgi.js} +3 -3
  209. package/dist/plugin-sdk/{reply-C2G4DKTN.js → reply-BtQHoQT3.js} +96 -96
  210. package/dist/plugin-sdk/{reply-prefix--mxmTL7A.js → reply-prefix-BqV0o7_7.js} +1 -1
  211. package/dist/plugin-sdk/{resolve-outbound-target-CnUtsDch.js → resolve-outbound-target-DAdNGEqG.js} +2 -2
  212. package/dist/plugin-sdk/{resolve-route-BZABUE4J.js → resolve-route-C5mAwY-o.js} +3 -3
  213. package/dist/plugin-sdk/{retry-Bh7jveNm.js → retry-2OVzZJMZ.js} +1 -1
  214. package/dist/plugin-sdk/{runner-CZz1tOIR.js → runner-Ck0w3rcz.js} +10 -10
  215. package/dist/plugin-sdk/{send-Cb5NIN8s.js → send-A4Lv5nrg.js} +7 -7
  216. package/dist/plugin-sdk/{send-0EVlThEG.js → send-BBD-m-nM.js} +10 -10
  217. package/dist/plugin-sdk/{send-BCjVQhp3.js → send-CPeuqOlq.js} +13 -13
  218. package/dist/plugin-sdk/{send-B26cNPqY.js → send-CaPoBwby.js} +6 -6
  219. package/dist/plugin-sdk/{send-CHUGIZs9.js → send-SsqudCMv.js} +7 -7
  220. package/dist/plugin-sdk/{session-DdJj6_DW.js → session-DpL4uk1J.js} +3 -3
  221. package/dist/plugin-sdk/{sessions-DNx9c2O2.js → sessions-CQ5iD4Uq.js} +6 -6
  222. package/dist/plugin-sdk/{skill-commands-DorIK8kn.js → skill-commands-C_O9I71g.js} +5 -5
  223. package/dist/plugin-sdk/{skills-Dh_Cf2PA.js → skills-DmiIiX4l.js} +8 -8
  224. package/dist/plugin-sdk/{store-CCCXwngh.js → store-BI3rLJdW.js} +2 -2
  225. package/dist/plugin-sdk/{subsystem-DWPzKeZ0.js → subsystem-lJo9gqAK.js} +1 -1
  226. package/dist/plugin-sdk/{tables-CF9W23Rd.js → tables-C4X_nAUQ.js} +1 -1
  227. package/dist/plugin-sdk/{target-errors-DaH0qYtL.js → target-errors-CXh6e9ZE.js} +2 -2
  228. package/dist/plugin-sdk/{tokens-Y97UKh4C.js → tokens-CU9S3S7t.js} +1 -1
  229. package/dist/plugin-sdk/{tool-images-BMRkn_yk.js → tool-images-Cf9aWlVu.js} +2 -2
  230. package/dist/plugin-sdk/{tool-loop-detection-Cv8wyfAi.js → tool-loop-detection-DuwkSqZL.js} +2 -2
  231. package/dist/plugin-sdk/{upgrade-command-DKUGbn8D.js → upgrade-command-y1YvsJbf.js} +12 -2
  232. package/dist/plugin-sdk/{utils-Dyj2wV4e.js → utils-dP-FpIgu.js} +2 -2
  233. package/dist/plugin-sdk/web-Cg6vlkku.js +71 -0
  234. package/dist/plugin-sdk/{whatsapp-actions-B5g-Rywy.js → whatsapp-actions-Bcknq6EZ.js} +23 -23
  235. package/dist/{plugins-D46VZh7u.js → plugins-B4hASNc2.js} +2 -2
  236. package/dist/{plugins-cli-BYfDyWXn.js → plugins-cli-BMptU-1l.js} +80 -80
  237. package/dist/{plugins-cli-DP46ipIu.js → plugins-cli-CMYlin6k.js} +3 -3
  238. package/dist/{ports-B2o0FSFD.js → ports-B07M55Gr.js} +1 -1
  239. package/dist/{ports-SQy1d-RL.js → ports-DWJO5S52.js} +2 -2
  240. package/dist/{program-BlV0XOMu.js → program-DyMaBEqF.js} +8 -8
  241. package/dist/{program-context-PC7Knx3s.js → program-context-BxflGz_G.js} +43 -43
  242. package/dist/{prompt-select-styled-BgfuPDVv.js → prompt-select-styled-CI3hobey.js} +37 -37
  243. package/dist/{prompt-select-styled-BEnn1bwr.js → prompt-select-styled-es3PJxfH.js} +4 -4
  244. package/dist/{provider-auth-helpers-CrjXAqYu.js → provider-auth-helpers-CrGScfnN.js} +1 -1
  245. package/dist/{provider-auth-helpers-CKIkgNDk.js → provider-auth-helpers-DYxaYmlq.js} +5 -5
  246. package/dist/{push-apns-B4sxQAG3.js → push-apns-BNxgGXQy.js} +1 -1
  247. package/dist/{push-apns-BPmS_f8e.js → push-apns-CjAXPy2N.js} +5 -5
  248. package/dist/{pw-ai-7i9eGnLh.js → pw-ai-BGALvhDi.js} +11 -11
  249. package/dist/{qmd-manager-B-qeywfQ.js → qmd-manager-CVcPfkhL.js} +19 -19
  250. package/dist/{qr-cli-CSt5ihwG.js → qr-cli-D2Oh8f0U.js} +1 -1
  251. package/dist/{query-expansion-Clts_AGz.js → query-expansion-i5I3yavb.js} +12 -12
  252. package/dist/{redact-snapshot-BBNDQZIe.js → redact-snapshot-CtIVs92s.js} +1 -1
  253. package/dist/{register.agent-DRcOj2U3.js → register.agent-B9f0mtlc.js} +9 -9
  254. package/dist/{register.agent-uaM-OgFM.js → register.agent-DrVFgVpf.js} +95 -95
  255. package/dist/register.configure-BxZRBEJ9.js +168 -0
  256. package/dist/{register.configure-BebpNVXc.js → register.configure-DAlBU97I.js} +8 -8
  257. package/dist/{register.maintenance-CjWtRkPb.js → register.maintenance-BThQUyMI.js} +9 -9
  258. package/dist/{register.maintenance-Cr0SJRGa.js → register.maintenance-G_dZOyQA.js} +90 -90
  259. package/dist/{register.message-BNqRwnPx.js → register.message-BVTuvjQA.js} +71 -71
  260. package/dist/{register.message-DMAqqNBh.js → register.message-DKaxesxx.js} +3 -3
  261. package/dist/{register.onboard-9Z1ghVgM.js → register.onboard-CnoQ56yq.js} +18 -18
  262. package/dist/{register.onboard-DDLj9mJ2.js → register.onboard-CwtL9YYR.js} +2 -2
  263. package/dist/{register.orchestrator-anton-BybNaYi1.js → register.orchestrator-anton-2LtPHPXM.js} +14 -14
  264. package/dist/{register.orchestrator-anton-9Al8Av8i.js → register.orchestrator-anton-Ce55Lxt0.js} +2 -2
  265. package/dist/{register.setup-yqN0SXow.js → register.setup-Dg5LmRxd.js} +2 -2
  266. package/dist/{register.setup-Z1tBfa9d.js → register.setup-_s2CQaBF.js} +21 -21
  267. package/dist/{register.status-health-sessions-r-mpQR1m.js → register.status-health-sessions-DX2OgAeG.js} +4 -4
  268. package/dist/{register.status-health-sessions-Di92AnoH.js → register.status-health-sessions-iSQzPXD0.js} +82 -82
  269. package/dist/{register.subclis-DPQqxIZd.js → register.subclis-YeKuHCRg.js} +10 -10
  270. package/dist/{replies-hSFVxL4h.js → replies-Czp4hvpS.js} +1 -1
  271. package/dist/{reply-ZWOav11z.js → reply-DKIv9jez.js} +153 -153
  272. package/dist/{reply-prefix-C3y4zpTl.js → reply-prefix-BMEdvSpA.js} +1 -1
  273. package/dist/{resolve-route-D_AbcmD6.js → resolve-route-Ef_Yt2Dw.js} +2 -2
  274. package/dist/{rpc-CCimHATv.js → rpc-DDTp_J6f.js} +1 -1
  275. package/dist/{run-main-DDbBATo6.js → run-main-BwWO5erE.js} +15 -15
  276. package/dist/{runner-DzszLzI4.js → runner-BFG54hnb.js} +20 -20
  277. package/dist/{runtime-XmXLaHNk.js → runtime-DEmy759r.js} +2 -2
  278. package/dist/{sandbox-DcUw5h3p.js → sandbox-CfPbhDY_.js} +20 -20
  279. package/dist/{sandbox-cli-DGvJ7Eeq.js → sandbox-cli-B4wLJr21.js} +22 -22
  280. package/dist/{secrets-cli-Bgp_H_bH.js → secrets-cli-CidAOBfl.js} +9 -9
  281. package/dist/{security-cli-MQ__Ca6v.js → security-cli-Ch7AhbhS.js} +39 -39
  282. package/dist/{send-C4v0Leny.js → send-BCPkAE2k.js} +6 -6
  283. package/dist/{send-DuwdEkLw.js → send-BPwTl4-K.js} +4 -4
  284. package/dist/{send-DQiw_nGD.js → send-CEavqqEz.js} +6 -6
  285. package/dist/{send-DwdHiC7_.js → send-CVIXqubC.js} +13 -13
  286. package/dist/{send--lzpNy4f.js → send-DDMaLJAQ.js} +7 -7
  287. package/dist/{server-D6MltJIF.js → server-BpSbZAwg.js} +14 -14
  288. package/dist/{server-context-DI0W_H7R.js → server-context-BxNSTpH6.js} +10 -10
  289. package/dist/{server-lifecycle-B5PlrlbG.js → server-lifecycle-CGKrGrhM.js} +2 -2
  290. package/dist/{server-node-events-DNJLKEMT.js → server-node-events-CZ5OkouD.js} +71 -71
  291. package/dist/{server-node-events-BcZPS5tj.js → server-node-events-lbb8M18B.js} +3 -3
  292. package/dist/{service-C8NMS3m_.js → service-Bj2oSfpw.js} +15 -15
  293. package/dist/{session-CdnrRhb4.js → session-BKVySI8q.js} +1 -1
  294. package/dist/{sessions-BtPXimXQ.js → sessions-BqWocozB.js} +14 -14
  295. package/dist/{shared-CpDPo3hJ.js → shared-DnQ4iyXk.js} +2 -2
  296. package/dist/{shared-DpLSpJIl.js → shared-Jzrx8DfN.js} +1 -1
  297. package/dist/{skill-commands-BFzmZAfo.js → skill-commands-BwIRWSCI.js} +5 -5
  298. package/dist/{skill-scanner-D7mzXRXd.js → skill-scanner-B4Ftsbd2.js} +5 -5
  299. package/dist/{skills-DlvDyK8L.js → skills-TIyQDZx7.js} +3 -3
  300. package/dist/{skills-cli-BhKGhjbO.js → skills-cli-5lbXi4Lh.js} +5 -5
  301. package/dist/{skills-install-tr6wRWZj.js → skills-install-D0JHP5uM.js} +4 -4
  302. package/dist/{skills-status-qjQ8XP0h.js → skills-status-Q9skQExW.js} +1 -1
  303. package/dist/{status-geIYZraQ.js → status-BE1Y0CKS.js} +2 -2
  304. package/dist/{status-BXSiFfmy.js → status-Bd9NYE1U.js} +24 -24
  305. package/dist/{status.update-CTi6vuWj.js → status.update-C3uRz7W6.js} +2 -2
  306. package/dist/{store-kH9wHHbO.js → store-CLNuI8-G.js} +5 -5
  307. package/dist/{subagent-registry-C6uygQa1.js → subagent-registry-CTZmDdGV.js} +12 -12
  308. package/dist/{system-cli-3T-OTIKv.js → system-cli-DBp9Zmvt.js} +8 -8
  309. package/dist/{system-run-approval-context-CISBXlNw.js → system-run-approval-context-xZVoE4nS.js} +1 -1
  310. package/dist/{system-run-command-qJdgzxLp.js → system-run-command-BIhrK3OI.js} +1 -1
  311. package/dist/{systemd-CaCR5CyM.js → systemd-DyrVLTI0.js} +9 -9
  312. package/dist/{systemd-hints-DHu-HVFx.js → systemd-hints-BoKKzRI_.js} +6 -6
  313. package/dist/{systemd-linger-B7XlUHk_.js → systemd-linger-DrhGd61G.js} +1 -1
  314. package/dist/{tables-g9xkflht.js → tables-CZSD889r.js} +1 -1
  315. package/dist/{target-errors-bLIVFsbF.js → target-errors-BYuWhuLU.js} +4 -4
  316. package/dist/{tool-images-CHqepyF_.js → tool-images-DZHrc4pq.js} +1 -1
  317. package/dist/{tui-lalhRHve.js → tui-DWGHGeZ3.js} +6 -6
  318. package/dist/{tui-cli-BVKWJ9X7.js → tui-cli-DKyA5pZ2.js} +30 -30
  319. package/dist/{update-cli-BxVcRBy_.js → update-cli-D-4_OhRR.js} +9 -9
  320. package/dist/{update-cli-VlK55yII.js → update-cli-DvUx2El6.js} +99 -99
  321. package/dist/{update-D79ppbMQ.js → update-la2AdLf3.js} +3 -3
  322. package/dist/{update-runner-bFqEARFN.js → update-runner-BvaywdEe.js} +1 -1
  323. package/dist/{update-runner-Cw7BbjGv.js → update-runner-n2snlf-4.js} +15 -15
  324. package/dist/{upgrade-command-Bh61DpzA.js → upgrade-command-28wRHZZ2.js} +15 -5
  325. package/dist/{upgrade-command-CvbcPPIF.js → upgrade-command-BOG7TpIq.js} +12 -2
  326. package/dist/{upgrade-command-Bvrv4iDU.js → upgrade-command-CWP8S_lt.js} +12 -2
  327. package/dist/{upgrade-command-L9y3xbza.js → upgrade-command-eqla-KnV.js} +12 -2
  328. package/dist/{web-BjMMu9l1.js → web-BedV4zGE.js} +3 -3
  329. package/dist/{web-DptF9st7.js → web-BjP-D0Iz.js} +3 -3
  330. package/dist/web-CDFWB79W.js +123 -0
  331. package/dist/{web-TRTzT6rm.js → web-Dbrx58hF.js} +3 -3
  332. package/dist/{webhooks-cli-2N03q0iY.js → webhooks-cli-BnmVPYkU.js} +6 -6
  333. package/dist/{whatsapp-actions-Cms8wQM1.js → whatsapp-actions-D2mBFzmK.js} +18 -18
  334. package/dist/{with-timeout-DEdycYxq.js → with-timeout-BodPmGCY.js} +3 -3
  335. package/dist/{workspace-D3pARwoB.js → workspace-CDw87aZG.js} +1 -1
  336. package/dist/{workspace-dirs-SsExQ3Bz.js → workspace-dirs-D3bousoX.js} +1 -1
  337. package/dist/{wsl-BJW8nTyL.js → wsl-CgXDjE09.js} +2 -2
  338. package/extensions/acpx/package.json +1 -1
  339. package/extensions/bluebubbles/package.json +1 -1
  340. package/extensions/copilot-proxy/package.json +1 -1
  341. package/extensions/diagnostics-otel/package.json +1 -1
  342. package/extensions/discord/package.json +1 -1
  343. package/extensions/feishu/package.json +1 -1
  344. package/extensions/google-gemini-cli-auth/package.json +1 -1
  345. package/extensions/googlechat/package.json +1 -1
  346. package/extensions/hand/package.json +1 -1
  347. package/extensions/imessage/package.json +1 -1
  348. package/extensions/irc/package.json +1 -1
  349. package/extensions/line/package.json +1 -1
  350. package/extensions/llm-task/package.json +1 -1
  351. package/extensions/matrix/CHANGELOG.md +12 -0
  352. package/extensions/matrix/package.json +1 -1
  353. package/extensions/mattermost/package.json +1 -1
  354. package/extensions/memory-core/package.json +1 -1
  355. package/extensions/memory-lancedb/package.json +1 -1
  356. package/extensions/minimax-portal-auth/package.json +1 -1
  357. package/extensions/msteams/CHANGELOG.md +12 -0
  358. package/extensions/msteams/package.json +1 -1
  359. package/extensions/nextcloud-talk/package.json +1 -1
  360. package/extensions/nostr/CHANGELOG.md +12 -0
  361. package/extensions/nostr/package.json +1 -1
  362. package/extensions/open-prose/package.json +1 -1
  363. package/extensions/signal/package.json +1 -1
  364. package/extensions/slack/package.json +1 -1
  365. package/extensions/synology-chat/package.json +1 -1
  366. package/extensions/telegram/package.json +1 -1
  367. package/extensions/tlon/package.json +1 -1
  368. package/extensions/twitch/CHANGELOG.md +12 -0
  369. package/extensions/twitch/package.json +1 -1
  370. package/extensions/voice-call/CHANGELOG.md +12 -0
  371. package/extensions/voice-call/package.json +1 -1
  372. package/extensions/whatsapp/package.json +1 -1
  373. package/extensions/zalo/CHANGELOG.md +12 -0
  374. package/extensions/zalo/package.json +1 -1
  375. package/extensions/zalouser/CHANGELOG.md +12 -0
  376. package/extensions/zalouser/package.json +1 -1
  377. package/package.json +1 -1
  378. package/dist/plugin-sdk/web-bxu2RRVS.js +0 -71
  379. package/dist/register.configure-B0i1vobR.js +0 -168
  380. package/dist/web-Bjj9WtlF.js +0 -123
@@ -2,119 +2,119 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as resolveRequiredHomeDir } from "./paths-Cn44w-EB.js";
3
3
  import { B as theme, C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, F as shouldLogVerbose, L as warn, M as logVerbose, O as danger, S as shortenHomePath, V as getChildLogger, Z as normalizeLogLevel, d as isRecord$1, et as resolvePreferredIdleHandsTmpDir, i as clampInt, l as escapeRegExp, m as normalizeE164, t as CONFIG_DIR, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./utils-CXzXXV2o.js";
4
4
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-EAliFiVK.js";
5
- import { D as filterBootstrapFilesForSession, E as ensureAgentWorkspace, M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, _ as DEFAULT_AGENT_WORKSPACE_DIR, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, h as resolveSessionAgentIds, i as resolveAgentConfig, k as loadWorkspaceBootstrapFiles, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-RA0zXRpu.js";
5
+ import { D as filterBootstrapFilesForSession, E as ensureAgentWorkspace, M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, _ as DEFAULT_AGENT_WORKSPACE_DIR, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, h as resolveSessionAgentIds, i as resolveAgentConfig, k as loadWorkspaceBootstrapFiles, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-Bn39ugK4.js";
6
6
  import { A as listPluginCommands, C as setActivePluginRegistry, D as clearPluginCommands, E as normalizePluginHttpPath, F as triggerInternalHook, N as createInternalHookEvent, O as executePluginCommand, S as requireActivePluginRegistry, T as createPluginRegistry, _ as normalizeAnyChannelId, b as getActivePluginRegistry, f as CHAT_CHANNEL_ORDER, j as matchPluginCommand, k as getPluginCommandSpecs, t as createSubsystemLogger, v as normalizeChannelId$1, x as getActivePluginRegistryKey } from "./subsystem-CGZX2PBV.js";
7
7
  import { n as defaultRuntime, t as createNonExitingRuntime } from "./runtime-44j_X4Y6.js";
8
8
  import { C as isSubagentSessionKey, S as isCronSessionKey, T as resolveThreadParentSessionKey, _ as isBlockedObjectKey, b as isAcpSessionKey, c as normalizeMainKey, d as sanitizeAgentId, g as normalizeOptionalAccountId, h as normalizeAccountId$2, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as deriveSessionChatType, w as parseAgentSessionKey, x as isCronRunSessionKey, y as getSubagentDepth } from "./session-key-Cuihcz_O.js";
9
- import { a as openBoundaryFileSync, i as openBoundaryFile, t as resolveIdleHandsPackageRoot } from "./idlehands-root-B8cUs-5M.js";
9
+ import { a as openBoundaryFileSync, i as openBoundaryFile, t as resolveIdleHandsPackageRoot } from "./idlehands-root-DFL2GrNW.js";
10
10
  import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CKHMT0tZ.js";
11
- import { $r as DEFAULT_PROVIDER, $t as normalizeScpRemoteHost, Br as resolveAuthProfileDisplayLabel, Bt as resolveConfigSnapshotHash, Cn as unsetConfigOverride, Cr as listProfilesForProvider, Dn as unsetConfigValueAtPath, En as setConfigValueAtPath, Fn as buildEnforcedShellCommand, Fr as resolveAuthStorePathForDisplay, G as createOllamaStreamFn, Gt as TELEGRAM_COMMAND_NAME_PATTERN, Ht as writeConfigFile, Ir as resolveIdleHandsAgentDir, It as loadConfig, J as requireApiKey, K as getApiKeyForModel, Kt as normalizeTelegramCommandName, Lr as withFileLock, Qr as DEFAULT_MODEL, Qt as resolveIMessageRemoteAttachmentRoots, Rt as readConfigFileSnapshot, Sn as setConfigOverride, Sr as dedupeProfileIds, Tn as parseConfigPath, Ut as validateConfigObjectWithPlugins, W as OLLAMA_NATIVE_BASE_URL, Wr as normalizeSecretInput, X as resolveEnvApiKey, Xr as splitTrailingAuthProfile, Y as resolveApiKeyForProvider, Yt as isInboundPathAllowed, Z as resolveModelAuthMode, Zr as DEFAULT_CONTEXT_TOKENS, Zt as resolveIMessageAttachmentRoots, _ as resolveModelRefFromString, _r as resolveShellEnvFallbackTimeoutMs, ar as resolveDiscordPreviewStreamMode, b as resolveSubagentSpawnModelSelection, bn as getConfigOverrides, br as resolveOwnerDisplaySetting, c as modelKey, cn as parseDurationMs, ct as getSoonestCooldownExpiry, d as parseModelRef, dn as isAvatarDataUrl, dt as markAuthProfileUsed, fn as isAvatarHttpUrl, fr as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, gn as isWorkspaceRelativeAvatarPath, gr as getShellPathFromLoginShell, h as resolveDefaultModelForAgent, hn as isSupportedLocalAvatarExtension, i as findNormalizedProviderValue, ir as mapStreamingModeToSlackLegacyDraftStreamMode, kr as ensureAuthProfileStore, l as normalizeModelRef$2, lt as isProfileInCooldown, m as resolveConfiguredModelRef, mn as isPathWithinRoot, mt as resolveApiKeyForProfile, n as buildConfiguredAllowlistKeys, o as inferUniqueProviderFromConfiguredModels, or as resolveSlackNativeStreaming, pr as resolveAgentMaxConcurrent, pt as resolveProfilesUnavailableReason, q as getCustomProviderApiKey, qt as resolveTelegramCustomCommands, r as buildModelAliasIndex, s as isCliProvider, sr as resolveSlackStreamingMode, st as resolveAuthProfileOrder, t as buildAllowedModelSet, tr as applyMergePatch, u as normalizeProviderId, un as AVATAR_MAX_BYTES, ut as markAuthProfileFailure, v as resolveReasoningDefault, vn as resolveAvatarMime, wn as getConfigValueAtPath, wr as markAuthProfileGood, x as resolveThinkingDefault, xn as resetConfigOverrides, yn as validateJsonSchemaValue } from "./model-selection-0dGxYGp8.js";
11
+ import { $r as DEFAULT_PROVIDER, $t as normalizeScpRemoteHost, Br as resolveAuthProfileDisplayLabel, Bt as resolveConfigSnapshotHash, Cn as unsetConfigOverride, Cr as listProfilesForProvider, Dn as unsetConfigValueAtPath, En as setConfigValueAtPath, Fn as buildEnforcedShellCommand, Fr as resolveAuthStorePathForDisplay, G as createOllamaStreamFn, Gt as TELEGRAM_COMMAND_NAME_PATTERN, Ht as writeConfigFile, Ir as resolveIdleHandsAgentDir, It as loadConfig, J as requireApiKey, K as getApiKeyForModel, Kt as normalizeTelegramCommandName, Lr as withFileLock, Qr as DEFAULT_MODEL, Qt as resolveIMessageRemoteAttachmentRoots, Rt as readConfigFileSnapshot, Sn as setConfigOverride, Sr as dedupeProfileIds, Tn as parseConfigPath, Ut as validateConfigObjectWithPlugins, W as OLLAMA_NATIVE_BASE_URL, Wr as normalizeSecretInput, X as resolveEnvApiKey, Xr as splitTrailingAuthProfile, Y as resolveApiKeyForProvider, Yt as isInboundPathAllowed, Z as resolveModelAuthMode, Zr as DEFAULT_CONTEXT_TOKENS, Zt as resolveIMessageAttachmentRoots, _ as resolveModelRefFromString, _r as resolveShellEnvFallbackTimeoutMs, ar as resolveDiscordPreviewStreamMode, b as resolveSubagentSpawnModelSelection, bn as getConfigOverrides, br as resolveOwnerDisplaySetting, c as modelKey, cn as parseDurationMs, ct as getSoonestCooldownExpiry, d as parseModelRef, dn as isAvatarDataUrl, dt as markAuthProfileUsed, fn as isAvatarHttpUrl, fr as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, gn as isWorkspaceRelativeAvatarPath, gr as getShellPathFromLoginShell, h as resolveDefaultModelForAgent, hn as isSupportedLocalAvatarExtension, i as findNormalizedProviderValue, ir as mapStreamingModeToSlackLegacyDraftStreamMode, kr as ensureAuthProfileStore, l as normalizeModelRef$2, lt as isProfileInCooldown, m as resolveConfiguredModelRef, mn as isPathWithinRoot, mt as resolveApiKeyForProfile, n as buildConfiguredAllowlistKeys, o as inferUniqueProviderFromConfiguredModels, or as resolveSlackNativeStreaming, pr as resolveAgentMaxConcurrent, pt as resolveProfilesUnavailableReason, q as getCustomProviderApiKey, qt as resolveTelegramCustomCommands, r as buildModelAliasIndex, s as isCliProvider, sr as resolveSlackStreamingMode, st as resolveAuthProfileOrder, t as buildAllowedModelSet, tr as applyMergePatch, u as normalizeProviderId, un as AVATAR_MAX_BYTES, ut as markAuthProfileFailure, v as resolveReasoningDefault, vn as resolveAvatarMime, wn as getConfigValueAtPath, wr as markAuthProfileGood, x as resolveThinkingDefault, xn as resetConfigOverrides, yn as validateJsonSchemaValue } from "./model-selection-CSn9tUuH.js";
12
12
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-D7lpquOO.js";
13
13
  import { t as formatCliCommand } from "./command-format-DInZLuZ8.js";
14
14
  import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
15
15
  import { t as isTruthyEnvValue } from "./env-Bx-F45X5.js";
16
16
  import { n as isDangerousHostEnvVarName } from "./host-env-security-DkAVVuaw.js";
17
17
  import { r as VERSION } from "./env-vars-sTMVGyld.js";
18
- import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEffectiveEnableState, f as resolveMemorySlotDecision, i as isPathInside, n as loadPluginManifestRegistry, r as discoverIdleHandsPlugins, u as normalizePluginsConfig } from "./manifest-registry-Bak1x76G.js";
19
- import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-Y96MzKuM.js";
18
+ import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEffectiveEnableState, f as resolveMemorySlotDecision, i as isPathInside, n as loadPluginManifestRegistry, r as discoverIdleHandsPlugins, u as normalizePluginsConfig } from "./manifest-registry-RfRn8HJx.js";
19
+ import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-CzF5XYGd.js";
20
20
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-CLARJMM7.js";
21
21
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-DVauVtrg.js";
22
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordRestClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as chunkDiscordTextWithMode, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as createDiscordClient, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DwdHiC7_.js";
22
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordRestClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as chunkDiscordTextWithMode, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as createDiscordClient, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CVIXqubC.js";
23
23
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
24
24
  import { n as resolveConversationLabel } from "./conversation-label-Onz2hiJh.js";
25
25
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-C8P8Rlqd.js";
26
- import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs$1, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-DzszLzI4.js";
27
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as isInsideCode, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, x as extractTextFromChatContent, y as findCodeRegions } from "./image-DSDEbSiO.js";
28
- import { t as ensureIdleHandsModelsJson } from "./models-config-C5A1wDWh.js";
29
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BIP3RjXl.js";
30
- import { A as isTimeoutErrorMessage, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as buildBootstrapContextFiles, I as ensureSessionHeader, L as resolveBootstrapMaxChars, M as parseImageDimensionError, N as parseImageSizeError, O as isRateLimitAssistantError, P as sanitizeUserFacingText, R as resolveBootstrapTotalMaxChars, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isAuthPermanentErrorMessage, c as extractToolCallsFromAssistant, d as downgradeOpenAIReasoningBlocks, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as isTransientHttpError, k as isRawApiErrorPayload, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as getApiErrorPayloadFingerprint, w as isContextOverflowError, x as isBillingAssistantError, y as isAuthAssistantError, z as sanitizeGoogleTurnOrdering } from "./pi-embedded-helpers-BCsfqpDt.js";
31
- import { C as resolveToolProfilePolicy, S as normalizeToolName, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as stripPluginOnlyAllowlist, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, y as mergeAlsoAllowPolicy } from "./sandbox-DcUw5h3p.js";
32
- import { E as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-VBsQfIrt.js";
26
+ import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs$1, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-BFG54hnb.js";
27
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as isInsideCode, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, x as extractTextFromChatContent, y as findCodeRegions } from "./image-C2JZiK-6.js";
28
+ import { t as ensureIdleHandsModelsJson } from "./models-config-lQpqp472.js";
29
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bt79ifyi.js";
30
+ import { A as isTimeoutErrorMessage, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as buildBootstrapContextFiles, I as ensureSessionHeader, L as resolveBootstrapMaxChars, M as parseImageDimensionError, N as parseImageSizeError, O as isRateLimitAssistantError, P as sanitizeUserFacingText, R as resolveBootstrapTotalMaxChars, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isAuthPermanentErrorMessage, c as extractToolCallsFromAssistant, d as downgradeOpenAIReasoningBlocks, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as isTransientHttpError, k as isRawApiErrorPayload, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as getApiErrorPayloadFingerprint, w as isContextOverflowError, x as isBillingAssistantError, y as isAuthAssistantError, z as sanitizeGoogleTurnOrdering } from "./pi-embedded-helpers-BkzrQ5bZ.js";
31
+ import { C as resolveToolProfilePolicy, S as normalizeToolName, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as stripPluginOnlyAllowlist, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, y as mergeAlsoAllowPolicy } from "./sandbox-CfPbhDY_.js";
32
+ import { E as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-YguTEaLx.js";
33
33
  import { i as isLoopbackHost } from "./ws-XBTtYpJc.js";
34
34
  import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-DcJ9zJDt.js";
35
- import { i as resolveBrowserConfig, s as resolveBrowserControlAuth } from "./server-context-DI0W_H7R.js";
36
- import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-DlvDyK8L.js";
37
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-FXBVVTLw.js";
38
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-B-CLQ5RT.js";
35
+ import { i as resolveBrowserConfig, s as resolveBrowserControlAuth } from "./server-context-BxNSTpH6.js";
36
+ import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-TIyQDZx7.js";
37
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BCskHdfJ.js";
38
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-Bt0fZexW.js";
39
39
  import { i as compileSafeRegex, n as redactSensitiveText } from "./redact-B_4KNlXs.js";
40
40
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-DZDuPc3M.js";
41
- import { i as writeFileWithinRoot, n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-_JQUGpZf.js";
41
+ import { i as writeFileWithinRoot, n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-DNFrxDS-.js";
42
42
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Dw9zzKSM.js";
43
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-BU-VdLZu.js";
44
- import { n as getMediaDir, r as saveMediaBuffer } from "./store-kH9wHHbO.js";
45
- import { s as resolveLsofCommandSync } from "./ports-SQy1d-RL.js";
43
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-BkoEFRYH.js";
44
+ import { n as getMediaDir, r as saveMediaBuffer } from "./store-CLNuI8-G.js";
45
+ import { s as resolveLsofCommandSync } from "./ports-DWJO5S52.js";
46
46
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-B3f7Ri2X.js";
47
- import { $ as resolveExplicitAgentSessionKey, C as mergeDeliveryContext, E as normalizeAccountId$3, G as resolveSessionResetType, H as evaluateSessionFreshness, J as mergeSessionEntry, K as resolveThreadFlag, L as parseInlineDirectives$1, N as readSessionTitleFieldsFromTranscript, O as archiveSessionTranscripts, Q as resolveAgentMainSessionKey, S as deliveryContextKey, T as normalizeSessionDeliveryFields, U as resolveChannelResetConfig, V as resolveSessionKey, W as resolveSessionResetPolicy, X as setSessionRuntimeModel, Y as resolveFreshSessionTotalTokens, Z as canonicalizeMainSessionAlias, _ as updateSessionStoreEntry, b as resolveCacheTtlMs$1, c as loadSessionStore, ct as acquireSessionWriteLock, d as recordSessionMetaFromInbound, et as resolveMainSessionKey, g as updateSessionStore, h as updateLastRoute, i as appendAssistantMessageToSessionTranscript, k as capArrayByJsonBytes, n as extractDeliveryInfo, nt as deriveSessionMetaPatch, o as resolveAndPersistSessionFile, ot as buildGroupDisplayName, q as DEFAULT_RESET_TRIGGERS, r as parseSessionThreadInfo, st as resolveGroupSessionKey, u as readSessionUpdatedAt, ut as resolveSessionLockMaxHoldFromTimeout, w as normalizeDeliveryContext, x as deliveryContextFromSession, y as isCacheEnabled } from "./sessions-BtPXimXQ.js";
47
+ import { $ as resolveExplicitAgentSessionKey, C as mergeDeliveryContext, E as normalizeAccountId$3, G as resolveSessionResetType, H as evaluateSessionFreshness, J as mergeSessionEntry, K as resolveThreadFlag, L as parseInlineDirectives$1, N as readSessionTitleFieldsFromTranscript, O as archiveSessionTranscripts, Q as resolveAgentMainSessionKey, S as deliveryContextKey, T as normalizeSessionDeliveryFields, U as resolveChannelResetConfig, V as resolveSessionKey, W as resolveSessionResetPolicy, X as setSessionRuntimeModel, Y as resolveFreshSessionTotalTokens, Z as canonicalizeMainSessionAlias, _ as updateSessionStoreEntry, b as resolveCacheTtlMs$1, c as loadSessionStore, ct as acquireSessionWriteLock, d as recordSessionMetaFromInbound, et as resolveMainSessionKey, g as updateSessionStore, h as updateLastRoute, i as appendAssistantMessageToSessionTranscript, k as capArrayByJsonBytes, n as extractDeliveryInfo, nt as deriveSessionMetaPatch, o as resolveAndPersistSessionFile, ot as buildGroupDisplayName, q as DEFAULT_RESET_TRIGGERS, r as parseSessionThreadInfo, st as resolveGroupSessionKey, u as readSessionUpdatedAt, ut as resolveSessionLockMaxHoldFromTimeout, w as normalizeDeliveryContext, x as deliveryContextFromSession, y as isCacheEnabled } from "./sessions-BqWocozB.js";
48
48
  import { t as resolveAccountEntry } from "./account-lookup-BtMY6XyP.js";
49
- import { C as resolveDiscordAccount, _ as resolveSlackAppToken, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramAccount, f as resolveTelegramToken, h as resolveSlackAccount, l as listTelegramAccountIds, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$2, s as createTelegramActionGate, t as getChannelPlugin, v as resolveSlackBotToken, w as normalizeDiscordToken, x as listEnabledDiscordAccounts, y as createDiscordActionGate } from "./plugins-D46VZh7u.js";
50
- import { i as resolveWhatsAppAccount } from "./accounts-DLTODa_Z.js";
51
- import { r as resolveIMessageAccount } from "./accounts-3HS_UAhJ.js";
52
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DgbTKQoW.js";
53
- import { t as buildChannelAccountBindings } from "./bindings-B59Q7nsk.js";
54
- import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists } from "./auth-store-DDzIMy8_.js";
55
- import { a as validateSlackBlocksArray, c as resolveSlackWebClientOptions, i as parseSlackBlocksInput, l as parseSlackTarget, o as buildSlackBlocksFallbackText, s as createSlackWebClient, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-DuwdEkLw.js";
49
+ import { C as resolveDiscordAccount, _ as resolveSlackAppToken, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramAccount, f as resolveTelegramToken, h as resolveSlackAccount, l as listTelegramAccountIds, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$2, s as createTelegramActionGate, t as getChannelPlugin, v as resolveSlackBotToken, w as normalizeDiscordToken, x as listEnabledDiscordAccounts, y as createDiscordActionGate } from "./plugins-B4hASNc2.js";
50
+ import { i as resolveWhatsAppAccount } from "./accounts-D-hQsUw-.js";
51
+ import { r as resolveIMessageAccount } from "./accounts-DsVN0UNw.js";
52
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D87a1Y_K.js";
53
+ import { t as buildChannelAccountBindings } from "./bindings-DZjkLUU_.js";
54
+ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists } from "./auth-store-CMyrmmSF.js";
55
+ import { a as validateSlackBlocksArray, c as resolveSlackWebClientOptions, i as parseSlackBlocksInput, l as parseSlackTarget, o as buildSlackBlocksFallbackText, s as createSlackWebClient, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BPwTl4-K.js";
56
56
  import { a as resolveSessionFilePathOptions, i as resolveSessionFilePath, o as resolveSessionTranscriptPath, r as resolveDefaultSessionStorePath, u as resolveStorePath } from "./paths-DRz46q00.js";
57
57
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-CTnwu8Ge.js";
58
58
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DvLx8VNH.js";
59
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CHqepyF_.js";
59
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-DZHrc4pq.js";
60
60
  import { n as resolveToolDisplay } from "./tool-display-Dac7lHGW.js";
61
61
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Tud5uP5n.js";
62
62
  import { t as fetchWithSsrFGuard } from "./fetch-guard-yUZu1Vzc.js";
63
- import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError, t as getAgentScopedMediaLocalRoots } from "./local-roots-q0xbefkf.js";
64
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-D9no0CH2.js";
63
+ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError, t as getAgentScopedMediaLocalRoots } from "./local-roots-Cco87A2_.js";
64
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BCsDrrvq.js";
65
65
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-Dg-QZ_pN.js";
66
- import { C as initializeGlobalHookRunner, S as getGlobalHookRunner, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as splitMediaFromOutput, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, l as throwIfAborted, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as parseReplyDirectives, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver--kttnrER.js";
67
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-Dj5LalLo.js";
68
- import { a as listChatCommands, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-CURlRZQJ.js";
69
- import { Nt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-DxH9hwLn.js";
70
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BRL23UCk.js";
66
+ import { C as initializeGlobalHookRunner, S as getGlobalHookRunner, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as splitMediaFromOutput, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, l as throwIfAborted, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as parseReplyDirectives, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-yTpXc5sv.js";
67
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-D3BU_t7G.js";
68
+ import { a as listChatCommands, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-Cj4D_1tw.js";
69
+ import { Nt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-DIckPnsi.js";
70
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-DnTBT02D.js";
71
71
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CYe1ekSh.js";
72
72
  import { n as retryAsync } from "./retry-Db05aSB8.js";
73
73
  import { n as formatTimeAgo } from "./format-relative-DcQZUAYl.js";
74
- import { c as readJsonFileWithFallback, d as listPairingChannels, i as readChannelAllowFromStore, l as writeJsonFileAtomically, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-CPpEEQJO.js";
74
+ import { c as readJsonFileWithFallback, d as listPairingChannels, i as readChannelAllowFromStore, l as writeJsonFileAtomically, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-qvpPoWL_.js";
75
75
  import { d as resolveExecApprovals, f as resolveExecApprovalsFromFile, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval } from "./exec-approvals-C2s2dPha.js";
76
- import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-Co2tJSEo.js";
77
- import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-DaoU9-ni.js";
78
- import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-CcpPaFxa.js";
79
- import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-bLIVFsbF.js";
76
+ import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-8AkOwwIr.js";
77
+ import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-DYXuBKqH.js";
78
+ import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-CIAn0wXq.js";
79
+ import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-BYuWhuLU.js";
80
80
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CZ8lT9jK.js";
81
81
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-C9ZBnsdW.js";
82
82
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CJHdRyOy.js";
83
83
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-9ygk6nTV.js";
84
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-DEdycYxq.js";
84
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-BodPmGCY.js";
85
85
  import { a as logMessageQueued, d as logWebhookReceived, f as startDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookError, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as stopDiagnosticHeartbeat, r as logLaneEnqueue, t as diag, u as logWebhookProcessed } from "./diagnostic-ByHpt6q8.js";
86
- import { A as describeReplyTarget, B as resolveTelegramThreadSpec, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramForumThreadId, G as formatLocationText, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as isVoiceCompatibleAudio, K as toLocationContext, L as resolveTelegramMediaPlaceholder, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, R as resolveTelegramReplyId, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch, X as resolveTelegramTargetChatType, Y as parseTelegramTarget, _ as markdownToTelegramHtml, a as reactMessageTelegram, b as resolveTelegramFetch, c as sendStickerTelegram, g as markdownToTelegramChunks, h as isRecoverableTelegramNetworkError, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, m as wasSentByBot, n as createForumTopicTelegram, o as sendMessageTelegram, q as withTelegramApiErrorLogging, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as renderTelegramHtmlText, w as buildSenderName, x as splitTelegramCaption, y as wrapFileReferencesInHtml, z as resolveTelegramStreamMode } from "./send--lzpNy4f.js";
87
- import { i as buildModelAliasLines, n as resolveModel } from "./model-C-icShH2.js";
88
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-C3y4zpTl.js";
89
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-CUGwnVIY.js";
90
- import { n as resolveMemorySearchConfig } from "./manager-BMAFgXyU.js";
86
+ import { A as describeReplyTarget, B as resolveTelegramThreadSpec, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramForumThreadId, G as formatLocationText, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as isVoiceCompatibleAudio, K as toLocationContext, L as resolveTelegramMediaPlaceholder, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, R as resolveTelegramReplyId, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch, X as resolveTelegramTargetChatType, Y as parseTelegramTarget, _ as markdownToTelegramHtml, a as reactMessageTelegram, b as resolveTelegramFetch, c as sendStickerTelegram, g as markdownToTelegramChunks, h as isRecoverableTelegramNetworkError, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, m as wasSentByBot, n as createForumTopicTelegram, o as sendMessageTelegram, q as withTelegramApiErrorLogging, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as renderTelegramHtmlText, w as buildSenderName, x as splitTelegramCaption, y as wrapFileReferencesInHtml, z as resolveTelegramStreamMode } from "./send-DDMaLJAQ.js";
87
+ import { i as buildModelAliasLines, n as resolveModel } from "./model-Bd-05WpB.js";
88
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BMEdvSpA.js";
89
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-4wfelGdK.js";
90
+ import { n as resolveMemorySearchConfig } from "./manager-BBeTPO2h.js";
91
91
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-ClMFHJu-.js";
92
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DZClqsNo.js";
93
- import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-VncGpwA1.js";
94
- import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolveCommandAuthorizedFromAuthorizers, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, p as resolveControlCommandGate, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-DfITIKZj.js";
92
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-C5hTDqNm.js";
93
+ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DV0Hszc8.js";
94
+ import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolveCommandAuthorizedFromAuthorizers, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, p as resolveControlCommandGate, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-B_ME3yF6.js";
95
95
  import { n as normalizePollInput } from "./polls-CGpoOVqd.js";
96
96
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-DaCsrdWK.js";
97
- import { t as convertMarkdownTables } from "./tables-g9xkflht.js";
98
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-C4v0Leny.js";
97
+ import { t as convertMarkdownTables } from "./tables-CZSD889r.js";
98
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BCPkAE2k.js";
99
99
  import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined$1 } from "./allow-from-DKKtZjsx.js";
100
100
  import { t as makeProxyFetch } from "./proxy-yk1Oqe9p.js";
101
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D_AbcmD6.js";
101
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Ef_Yt2Dw.js";
102
102
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-c9SZFcEG.js";
103
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-hSFVxL4h.js";
104
- import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-BFzmZAfo.js";
103
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Czp4hvpS.js";
104
+ import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-BwIRWSCI.js";
105
105
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-30JxwI-t.js";
106
- import { i as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-BYfE_aIY.js";
107
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-7DUxMy6A.js";
108
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-ZxRkxpuF.js";
106
+ import { i as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-CH8f3TJK.js";
107
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BMuSi4aV.js";
108
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-3jUl-PyW.js";
109
109
  import { c as hasNonzeroUsage, l as makeZeroUsageSnapshot, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens, u as normalizeUsage } from "./session-cost-usage-DS1rjzML.js";
110
- import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-DQiw_nGD.js";
111
- import { r as detectBinary } from "./onboard-helpers-BQmbMJxJ.js";
112
- import { t as resolvePairingIdLabel } from "./pairing-labels-ChQJzbS9.js";
110
+ import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-CEavqqEz.js";
111
+ import { r as detectBinary } from "./onboard-helpers-ByhJg2ST.js";
112
+ import { t as resolvePairingIdLabel } from "./pairing-labels-DuZ7ih-T.js";
113
113
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-D1JXJKiz.js";
114
114
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-rQoQSWkz.js";
115
115
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-Z_TnY4pX.js";
116
116
  import { t as parseTimeoutMs } from "./parse-timeout-iAZMQ2yo.js";
117
- import { t as formatExecCommand } from "./system-run-command-qJdgzxLp.js";
117
+ import { t as formatExecCommand } from "./system-run-command-BIhrK3OI.js";
118
118
  import { createRequire } from "node:module";
119
119
  import { fileURLToPath } from "node:url";
120
120
  import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
@@ -122,7 +122,7 @@ import os, { homedir } from "node:os";
122
122
  import path, { isAbsolute } from "node:path";
123
123
  import JSON5 from "json5";
124
124
  import { inspect } from "node:util";
125
- import fs$1 from "node:fs/promises";
125
+ import fsPromises from "node:fs/promises";
126
126
  import { execFileSync, spawn, spawnSync } from "node:child_process";
127
127
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
128
128
  import { complete, completeSimple, streamSimple } from "@mariozechner/pi-ai";
@@ -2281,7 +2281,7 @@ async function resolveAgentSessionDirs(stateDir) {
2281
2281
  const agentsDir = path.join(stateDir, "agents");
2282
2282
  let entries = [];
2283
2283
  try {
2284
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
2284
+ entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
2285
2285
  } catch (err) {
2286
2286
  if (err.code === "ENOENT") return [];
2287
2287
  throw err;
@@ -8132,7 +8132,7 @@ async function resolveSandboxWorkdir(params) {
8132
8132
  cwd: process.cwd(),
8133
8133
  root: params.sandbox.workspaceDir
8134
8134
  });
8135
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
8135
+ if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
8136
8136
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
8137
8137
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
8138
8138
  return {
@@ -9294,13 +9294,13 @@ async function validateScriptFileForShellBleed(params) {
9294
9294
  cwd: params.workdir,
9295
9295
  root: params.workdir
9296
9296
  });
9297
- stat = await fs$1.stat(absPath);
9297
+ stat = await fsPromises.stat(absPath);
9298
9298
  } catch {
9299
9299
  return;
9300
9300
  }
9301
9301
  if (!stat.isFile()) return;
9302
9302
  if (stat.size > 512 * 1024) return;
9303
- const content = await fs$1.readFile(absPath, "utf-8");
9303
+ const content = await fsPromises.readFile(absPath, "utf-8");
9304
9304
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
9305
9305
  if (first) {
9306
9306
  const idx = first.index;
@@ -14997,7 +14997,7 @@ async function routeReply(params) {
14997
14997
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
14998
14998
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
14999
14999
  try {
15000
- const { deliverOutboundPayloads } = await import("./deliver--kttnrER.js").then((n) => n.n);
15000
+ const { deliverOutboundPayloads } = await import("./deliver-yTpXc5sv.js").then((n) => n.n);
15001
15001
  const outboundSession = buildOutboundSessionContext({
15002
15002
  cfg,
15003
15003
  agentId: resolvedAgentId,
@@ -21560,8 +21560,8 @@ async function describeStickerImage(params) {
21560
21560
  const { provider, model } = resolved;
21561
21561
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
21562
21562
  try {
21563
- const buffer = await fs$1.readFile(imagePath);
21564
- const { describeImageWithModel } = await import("./image-DSDEbSiO.js").then((n) => n.n);
21563
+ const buffer = await fsPromises.readFile(imagePath);
21564
+ const { describeImageWithModel } = await import("./image-C2JZiK-6.js").then((n) => n.n);
21565
21565
  return (await describeImageWithModel({
21566
21566
  buffer,
21567
21567
  fileName: "sticker.webp",
@@ -22015,7 +22015,7 @@ function createWhatsAppLoginTool() {
22015
22015
  force: Type.Optional(Type.Boolean())
22016
22016
  }),
22017
22017
  execute: async (_toolCallId, args) => {
22018
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DBMsUxgL.js");
22018
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-B68cBRH0.js");
22019
22019
  if ((args?.action ?? "start") === "wait") {
22020
22020
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
22021
22021
  return {
@@ -24735,7 +24735,7 @@ async function preflightDiscordMessage(params) {
24735
24735
  let preflightTranscript;
24736
24736
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
24737
24737
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
24738
- const { transcribeFirstAudio } = await import("./audio-preflight-Dl1TO10w.js");
24738
+ const { transcribeFirstAudio } = await import("./audio-preflight-DzjXupNO.js");
24739
24739
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
24740
24740
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
24741
24741
  ctx: {
@@ -27503,9 +27503,9 @@ function createDiscordMessageHandler(params) {
27503
27503
  try {
27504
27504
  const messageText = resolveDiscordMessageText(data.message)?.trim();
27505
27505
  if (messageText) {
27506
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BDwI4Cyl.js");
27506
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CfKEsUr_.js");
27507
27507
  if (isAbortRequestText(messageText)) {
27508
- const { resolveAgentRoute } = await import("./resolve-route-D_AbcmD6.js").then((n) => n.r);
27508
+ const { resolveAgentRoute } = await import("./resolve-route-Ef_Yt2Dw.js").then((n) => n.r);
27509
27509
  const channelId = resolveDiscordMessageChannelId({
27510
27510
  message: data.message,
27511
27511
  eventChannelId: data.channel_id
@@ -27668,7 +27668,7 @@ const MODEL_CACHE = /* @__PURE__ */ new Map();
27668
27668
  await ensureIdleHandsModelsJson(cfg);
27669
27669
  } catch {}
27670
27670
  try {
27671
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-BIP3RjXl.js").then((n) => n.r);
27671
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-Bt79ifyi.js").then((n) => n.r);
27672
27672
  const agentDir = resolveIdleHandsAgentDir();
27673
27673
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
27674
27674
  applyDiscoveredContextWindows({
@@ -27991,7 +27991,7 @@ async function createModelSelectionState(params) {
27991
27991
  }
27992
27992
  }
27993
27993
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
27994
- const { ensureAuthProfileStore } = await import("./model-selection-0dGxYGp8.js").then((n) => n.ot);
27994
+ const { ensureAuthProfileStore } = await import("./model-selection-CSn9tUuH.js").then((n) => n.ot);
27995
27995
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
27996
27996
  const providerKey = normalizeProviderId(provider);
27997
27997
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -31714,18 +31714,18 @@ function appendImagePathsToPrompt(prompt, paths) {
31714
31714
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
31715
31715
  }
31716
31716
  async function writeCliImages(images) {
31717
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "idlehands-cli-images-"));
31717
+ const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "idlehands-cli-images-"));
31718
31718
  const paths = [];
31719
31719
  for (let i = 0; i < images.length; i += 1) {
31720
31720
  const image = images[i];
31721
31721
  const ext = resolveImageExtension(image.mimeType);
31722
31722
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
31723
31723
  const buffer = Buffer.from(image.data, "base64");
31724
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
31724
+ await fsPromises.writeFile(filePath, buffer, { mode: 384 });
31725
31725
  paths.push(filePath);
31726
31726
  }
31727
31727
  const cleanup = async () => {
31728
- await fs$1.rm(tempDir, {
31728
+ await fsPromises.rm(tempDir, {
31729
31729
  recursive: true,
31730
31730
  force: true
31731
31731
  });
@@ -33925,10 +33925,10 @@ function estimateDurationSeconds(pcm) {
33925
33925
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
33926
33926
  }
33927
33927
  async function writeWavFile(pcm) {
33928
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredIdleHandsTmpDir(), "discord-voice-"));
33928
+ const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredIdleHandsTmpDir(), "discord-voice-"));
33929
33929
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
33930
33930
  const wav = buildWavBuffer(pcm);
33931
- await fs$1.writeFile(filePath, wav);
33931
+ await fsPromises.writeFile(filePath, wav);
33932
33932
  scheduleTempCleanup(tempDir);
33933
33933
  return {
33934
33934
  path: filePath,
@@ -33937,7 +33937,7 @@ async function writeWavFile(pcm) {
33937
33937
  }
33938
33938
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
33939
33939
  setTimeout(() => {
33940
- fs$1.rm(tempDir, {
33940
+ fsPromises.rm(tempDir, {
33941
33941
  recursive: true,
33942
33942
  force: true
33943
33943
  }).catch((err) => {
@@ -37907,7 +37907,7 @@ function normalizeAllowList$2(list) {
37907
37907
  async function detectRemoteHostFromCliPath(cliPath) {
37908
37908
  try {
37909
37909
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
37910
- const content = await fs$1.readFile(expanded, "utf8");
37910
+ const content = await fsPromises.readFile(expanded, "utf8");
37911
37911
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
37912
37912
  if (userHostMatch) return userHostMatch[1];
37913
37913
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -38171,9 +38171,9 @@ async function monitorIMessageProvider(opts = {}) {
38171
38171
  }
38172
38172
  const msgText = (message.text ?? "").trim();
38173
38173
  if (msgText) {
38174
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BDwI4Cyl.js");
38174
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CfKEsUr_.js");
38175
38175
  if (isAbortRequestText(msgText)) {
38176
- const { resolveAgentRoute } = await import("./resolve-route-D_AbcmD6.js").then((n) => n.r);
38176
+ const { resolveAgentRoute } = await import("./resolve-route-Ef_Yt2Dw.js").then((n) => n.r);
38177
38177
  const route = resolveAgentRoute({
38178
38178
  cfg,
38179
38179
  channel: "imessage",
@@ -40852,9 +40852,9 @@ function createSignalEventHandler(deps) {
40852
40852
  const senderName = envelope.sourceName ?? senderDisplay;
40853
40853
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
40854
40854
  if (bodyText) {
40855
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BDwI4Cyl.js");
40855
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CfKEsUr_.js");
40856
40856
  if (isAbortRequestText(bodyText)) {
40857
- const { resolveAgentRoute } = await import("./resolve-route-D_AbcmD6.js").then((n) => n.r);
40857
+ const { resolveAgentRoute } = await import("./resolve-route-Ef_Yt2Dw.js").then((n) => n.r);
40858
40858
  const route = resolveAgentRoute({
40859
40859
  cfg: deps.cfg,
40860
40860
  channel: "signal",
@@ -44315,9 +44315,9 @@ function createSlackMessageHandler(params) {
44315
44315
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
44316
44316
  const rawText = (message.text ?? "").trim();
44317
44317
  if (rawText) {
44318
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BDwI4Cyl.js");
44318
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CfKEsUr_.js");
44319
44319
  if (isAbortRequestText(rawText)) {
44320
- const { resolveAgentRoute } = await import("./resolve-route-D_AbcmD6.js").then((n) => n.r);
44320
+ const { resolveAgentRoute } = await import("./resolve-route-Ef_Yt2Dw.js").then((n) => n.r);
44321
44321
  const route = resolveAgentRoute({
44322
44322
  cfg: ctx.cfg,
44323
44323
  channel: "slack",
@@ -44437,7 +44437,7 @@ function readSlackExternalArgMenuToken(raw) {
44437
44437
  }
44438
44438
  let commandsRegistry;
44439
44439
  async function getCommandsRegistry() {
44440
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CURlRZQJ.js").then((n) => n.n);
44440
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-Cj4D_1tw.js").then((n) => n.n);
44441
44441
  return commandsRegistry;
44442
44442
  }
44443
44443
  function encodeSlackCommandArgValue(parts) {
@@ -44761,14 +44761,14 @@ async function registerSlackMonitorSlashCommands(params) {
44761
44761
  const channelName = channelInfo?.name;
44762
44762
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
44763
44763
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
44764
- import("./resolve-route-D_AbcmD6.js").then((n) => n.r),
44764
+ import("./resolve-route-Ef_Yt2Dw.js").then((n) => n.r),
44765
44765
  import("./inbound-context-C8P8Rlqd.js").then((n) => n.n),
44766
44766
  Promise.resolve().then(() => provider_dispatcher_exports)
44767
44767
  ]);
44768
44768
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordSessionMetaFromInbound, resolveStorePath }] = await Promise.all([
44769
44769
  import("./conversation-label-Onz2hiJh.js").then((n) => n.t),
44770
- import("./reply-prefix-C3y4zpTl.js").then((n) => n.n),
44771
- import("./sessions-BtPXimXQ.js").then((n) => n.t)
44770
+ import("./reply-prefix-BMEdvSpA.js").then((n) => n.n),
44771
+ import("./sessions-BqWocozB.js").then((n) => n.t)
44772
44772
  ]);
44773
44773
  const route = resolveAgentRoute({
44774
44774
  cfg,
@@ -44836,9 +44836,9 @@ async function registerSlackMonitorSlashCommands(params) {
44836
44836
  });
44837
44837
  const deliverSlashPayloads = async (replies) => {
44838
44838
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
44839
- import("./replies-hSFVxL4h.js").then((n) => n.r),
44839
+ import("./replies-Czp4hvpS.js").then((n) => n.r),
44840
44840
  import("./chunk-ClMFHJu-.js").then((n) => n.s),
44841
- import("./markdown-tables-DZClqsNo.js").then((n) => n.t)
44841
+ import("./markdown-tables-C5hTDqNm.js").then((n) => n.t)
44842
44842
  ]);
44843
44843
  await deliverSlackSlashReplies({
44844
44844
  replies,
@@ -44891,7 +44891,7 @@ async function registerSlackMonitorSlashCommands(params) {
44891
44891
  let nativeCommands = [];
44892
44892
  if (nativeEnabled) {
44893
44893
  reg = await getCommandsRegistry();
44894
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BFzmZAfo.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
44894
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BwIRWSCI.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
44895
44895
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
44896
44896
  skillCommands,
44897
44897
  provider: "slack"
@@ -48926,7 +48926,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
48926
48926
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
48927
48927
  const text = typeof msg.text === "string" ? msg.text : void 0;
48928
48928
  if (text) {
48929
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-BDwI4Cyl.js");
48929
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CfKEsUr_.js");
48930
48930
  if (isAbortRequestText(text)) {
48931
48931
  const senderId = msg.from?.id ? String(msg.from.id) : "";
48932
48932
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -49813,7 +49813,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
49813
49813
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
49814
49814
  let preflightTranscript;
49815
49815
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
49816
- const { transcribeFirstAudio } = await import("./audio-preflight-Dl1TO10w.js");
49816
+ const { transcribeFirstAudio } = await import("./audio-preflight-DzjXupNO.js");
49817
49817
  preflightTranscript = await transcribeFirstAudio({
49818
49818
  ctx: {
49819
49819
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -51864,7 +51864,7 @@ function safeParseState(raw) {
51864
51864
  async function readTelegramUpdateOffset(params) {
51865
51865
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
51866
51866
  try {
51867
- const parsed = safeParseState(await fs$1.readFile(filePath, "utf-8"));
51867
+ const parsed = safeParseState(await fsPromises.readFile(filePath, "utf-8"));
51868
51868
  const expectedBotId = extractBotIdFromToken(params.botToken);
51869
51869
  if (expectedBotId && parsed?.botId && parsed.botId !== expectedBotId) return null;
51870
51870
  if (expectedBotId && parsed?.botId === null) return null;
@@ -51877,7 +51877,7 @@ async function readTelegramUpdateOffset(params) {
51877
51877
  async function writeTelegramUpdateOffset(params) {
51878
51878
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
51879
51879
  const dir = path.dirname(filePath);
51880
- await fs$1.mkdir(dir, {
51880
+ await fsPromises.mkdir(dir, {
51881
51881
  recursive: true,
51882
51882
  mode: 448
51883
51883
  });
@@ -51887,14 +51887,14 @@ async function writeTelegramUpdateOffset(params) {
51887
51887
  lastUpdateId: params.updateId,
51888
51888
  botId: extractBotIdFromToken(params.botToken)
51889
51889
  };
51890
- await fs$1.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
51891
- await fs$1.chmod(tmp, 384);
51892
- await fs$1.rename(tmp, filePath);
51890
+ await fsPromises.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
51891
+ await fsPromises.chmod(tmp, 384);
51892
+ await fsPromises.rename(tmp, filePath);
51893
51893
  }
51894
51894
  async function deleteTelegramUpdateOffset(params) {
51895
51895
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
51896
51896
  try {
51897
- await fs$1.unlink(filePath);
51897
+ await fsPromises.unlink(filePath);
51898
51898
  } catch (err) {
51899
51899
  if (err.code === "ENOENT") return;
51900
51900
  throw err;
@@ -52408,23 +52408,23 @@ let webLoginQrPromise = null;
52408
52408
  let webChannelPromise = null;
52409
52409
  let whatsappActionsPromise = null;
52410
52410
  function loadWebOutbound() {
52411
- webOutboundPromise ??= import("./outbound-DPTxwchq.js").then((n) => n.t);
52411
+ webOutboundPromise ??= import("./outbound-CG19kl0w.js").then((n) => n.t);
52412
52412
  return webOutboundPromise;
52413
52413
  }
52414
52414
  function loadWebLogin() {
52415
- webLoginPromise ??= import("./login-CfUhrgWT.js").then((n) => n.n);
52415
+ webLoginPromise ??= import("./login-Dl_lsEHS.js").then((n) => n.n);
52416
52416
  return webLoginPromise;
52417
52417
  }
52418
52418
  function loadWebLoginQr() {
52419
- webLoginQrPromise ??= import("./login-qr-DBMsUxgL.js");
52419
+ webLoginQrPromise ??= import("./login-qr-B68cBRH0.js");
52420
52420
  return webLoginQrPromise;
52421
52421
  }
52422
52422
  function loadWebChannel() {
52423
- webChannelPromise ??= import("./web-Bjj9WtlF.js");
52423
+ webChannelPromise ??= import("./web-CDFWB79W.js");
52424
52424
  return webChannelPromise;
52425
52425
  }
52426
52426
  function loadWhatsAppActions() {
52427
- whatsappActionsPromise ??= import("./whatsapp-actions-Cms8wQM1.js");
52427
+ whatsappActionsPromise ??= import("./whatsapp-actions-D2mBFzmK.js");
52428
52428
  return whatsappActionsPromise;
52429
52429
  }
52430
52430
  function createPluginRuntime() {
@@ -53239,7 +53239,7 @@ function resolvePluginTools(params) {
53239
53239
  //#endregion
53240
53240
  //#region src/agents/apply-patch-update.ts
53241
53241
  async function defaultReadFile(filePath) {
53242
- return fs$1.readFile(filePath, "utf8");
53242
+ return fsPromises.readFile(filePath, "utf8");
53243
53243
  }
53244
53244
  async function applyUpdateHunk(filePath, chunks, options) {
53245
53245
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -53485,7 +53485,7 @@ function resolvePatchFileOps(options) {
53485
53485
  const workspaceOnly = options.workspaceOnly !== false;
53486
53486
  return {
53487
53487
  readFile: async (filePath) => {
53488
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
53488
+ if (!workspaceOnly) return await fsPromises.readFile(filePath, "utf8");
53489
53489
  const opened = await openBoundaryFile({
53490
53490
  absolutePath: filePath,
53491
53491
  rootPath: options.cwd,
@@ -53500,7 +53500,7 @@ function resolvePatchFileOps(options) {
53500
53500
  },
53501
53501
  writeFile: async (filePath, content) => {
53502
53502
  if (!workspaceOnly) {
53503
- await fs$1.writeFile(filePath, content, "utf8");
53503
+ await fsPromises.writeFile(filePath, content, "utf8");
53504
53504
  return;
53505
53505
  }
53506
53506
  const relative = toRelativeWorkspacePath(options.cwd, filePath);
@@ -53511,8 +53511,8 @@ function resolvePatchFileOps(options) {
53511
53511
  encoding: "utf8"
53512
53512
  });
53513
53513
  },
53514
- remove: (filePath) => fs$1.rm(filePath),
53515
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
53514
+ remove: (filePath) => fsPromises.rm(filePath),
53515
+ mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
53516
53516
  };
53517
53517
  }
53518
53518
  async function ensureDir(filePath, ops) {
@@ -54987,7 +54987,7 @@ async function readJsonlFromPath(jsonlPath) {
54987
54987
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
54988
54988
  throw new Error("jsonlPath outside allowed roots");
54989
54989
  }
54990
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
54990
+ const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
54991
54991
  if (!isInboundPathAllowed({
54992
54992
  filePath: canonical,
54993
54993
  roots
@@ -54995,7 +54995,7 @@ async function readJsonlFromPath(jsonlPath) {
54995
54995
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
54996
54996
  throw new Error("jsonlPath outside allowed roots");
54997
54997
  }
54998
- return await fs$1.readFile(canonical, "utf8");
54998
+ return await fsPromises.readFile(canonical, "utf8");
54999
54999
  }
55000
55000
  const CanvasToolSchema = Type.Object({
55001
55001
  action: stringEnum(CANVAS_ACTIONS),
@@ -55775,27 +55775,27 @@ function resolveRestartSentinelPath(env = process.env) {
55775
55775
  }
55776
55776
  async function writeRestartSentinel(payload, env = process.env) {
55777
55777
  const filePath = resolveRestartSentinelPath(env);
55778
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
55778
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
55779
55779
  const data = {
55780
55780
  version: 1,
55781
55781
  payload
55782
55782
  };
55783
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
55783
+ await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
55784
55784
  return filePath;
55785
55785
  }
55786
55786
  async function readRestartSentinel(env = process.env) {
55787
55787
  const filePath = resolveRestartSentinelPath(env);
55788
55788
  try {
55789
- const raw = await fs$1.readFile(filePath, "utf-8");
55789
+ const raw = await fsPromises.readFile(filePath, "utf-8");
55790
55790
  let parsed;
55791
55791
  try {
55792
55792
  parsed = JSON.parse(raw);
55793
55793
  } catch {
55794
- await fs$1.unlink(filePath).catch(() => {});
55794
+ await fsPromises.unlink(filePath).catch(() => {});
55795
55795
  return null;
55796
55796
  }
55797
55797
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
55798
- await fs$1.unlink(filePath).catch(() => {});
55798
+ await fsPromises.unlink(filePath).catch(() => {});
55799
55799
  return null;
55800
55800
  }
55801
55801
  return parsed;
@@ -55807,7 +55807,7 @@ async function consumeRestartSentinel(env = process.env) {
55807
55807
  const filePath = resolveRestartSentinelPath(env);
55808
55808
  const parsed = await readRestartSentinel(env);
55809
55809
  if (!parsed) return null;
55810
- await fs$1.unlink(filePath).catch(() => {});
55810
+ await fsPromises.unlink(filePath).catch(() => {});
55811
55811
  return parsed;
55812
55812
  }
55813
55813
  function formatRestartSentinelMessage(payload) {
@@ -57019,7 +57019,7 @@ function buildAttachmentMediaLoadOptions(params) {
57019
57019
  if (params.policy.mode === "sandbox") return {
57020
57020
  maxBytes: params.maxBytes,
57021
57021
  sandboxValidated: true,
57022
- readFile: (filePath) => fs$1.readFile(filePath)
57022
+ readFile: (filePath) => fsPromises.readFile(filePath)
57023
57023
  };
57024
57024
  return {
57025
57025
  maxBytes: params.maxBytes,
@@ -65501,7 +65501,7 @@ function createHostWriteOperations(root) {
65501
65501
  cwd: root,
65502
65502
  root
65503
65503
  });
65504
- await fs$1.mkdir(resolved, { recursive: true });
65504
+ await fsPromises.mkdir(resolved, { recursive: true });
65505
65505
  },
65506
65506
  writeFile: async (absolutePath, content) => {
65507
65507
  await writeFileWithinRoot({
@@ -66315,7 +66315,7 @@ async function repairSessionFileIfNeeded(params) {
66315
66315
  };
66316
66316
  let content;
66317
66317
  try {
66318
- content = await fs$1.readFile(sessionFile, "utf-8");
66318
+ content = await fsPromises.readFile(sessionFile, "utf-8");
66319
66319
  } catch (err) {
66320
66320
  if (err?.code === "ENOENT") return {
66321
66321
  repaired: false,
@@ -66363,15 +66363,15 @@ async function repairSessionFileIfNeeded(params) {
66363
66363
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
66364
66364
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
66365
66365
  try {
66366
- const stat = await fs$1.stat(sessionFile).catch(() => null);
66367
- await fs$1.writeFile(backupPath, content, "utf-8");
66368
- if (stat) await fs$1.chmod(backupPath, stat.mode);
66369
- await fs$1.writeFile(tmpPath, cleaned, "utf-8");
66370
- if (stat) await fs$1.chmod(tmpPath, stat.mode);
66371
- await fs$1.rename(tmpPath, sessionFile);
66366
+ const stat = await fsPromises.stat(sessionFile).catch(() => null);
66367
+ await fsPromises.writeFile(backupPath, content, "utf-8");
66368
+ if (stat) await fsPromises.chmod(backupPath, stat.mode);
66369
+ await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
66370
+ if (stat) await fsPromises.chmod(tmpPath, stat.mode);
66371
+ await fsPromises.rename(tmpPath, sessionFile);
66372
66372
  } catch (err) {
66373
66373
  try {
66374
- await fs$1.unlink(tmpPath);
66374
+ await fsPromises.unlink(tmpPath);
66375
66375
  } catch (cleanupErr) {
66376
66376
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
66377
66377
  }
@@ -68498,7 +68498,7 @@ async function prewarmSessionFile(sessionFile) {
68498
68498
  if (!isSessionManagerCacheEnabled()) return;
68499
68499
  if (isSessionManagerCached(sessionFile)) return;
68500
68500
  try {
68501
- const handle = await fs$1.open(sessionFile, "r");
68501
+ const handle = await fsPromises.open(sessionFile, "r");
68502
68502
  try {
68503
68503
  const buffer = Buffer$1.alloc(4096);
68504
68504
  await handle.read(buffer, 0, buffer.length, 0);
@@ -68878,7 +68878,7 @@ async function compactEmbeddedPiSessionDirect(params) {
68878
68878
  } catch (err) {
68879
68879
  return fail(describeUnknownError(err));
68880
68880
  }
68881
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
68881
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
68882
68882
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
68883
68883
  const sandbox = await resolveSandboxContext({
68884
68884
  config: params.config,
@@ -68886,7 +68886,7 @@ async function compactEmbeddedPiSessionDirect(params) {
68886
68886
  workspaceDir: resolvedWorkspace
68887
68887
  });
68888
68888
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
68889
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
68889
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
68890
68890
  await ensureSessionHeader({
68891
68891
  sessionFile: params.sessionFile,
68892
68892
  sessionId: params.sessionId,
@@ -69632,12 +69632,12 @@ function getQueuedFileWriter(writers, filePath) {
69632
69632
  const existing = writers.get(filePath);
69633
69633
  if (existing) return existing;
69634
69634
  const dir = path.dirname(filePath);
69635
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
69635
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
69636
69636
  let queue = Promise.resolve();
69637
69637
  const writer = {
69638
69638
  filePath,
69639
69639
  write: (line) => {
69640
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
69640
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
69641
69641
  }
69642
69642
  };
69643
69643
  writers.set(filePath, writer);
@@ -72139,7 +72139,7 @@ async function prepareSessionManagerForRun(params) {
72139
72139
  return;
72140
72140
  }
72141
72141
  if (params.hadSessionFile && header && !hasAssistant) {
72142
- await fs$1.writeFile(params.sessionFile, "", "utf-8");
72142
+ await fsPromises.writeFile(params.sessionFile, "", "utf-8");
72143
72143
  sm.fileEntries = [header];
72144
72144
  sm.byId?.clear?.();
72145
72145
  sm.labelsById?.clear?.();
@@ -72742,7 +72742,7 @@ async function runEmbeddedAttempt(params) {
72742
72742
  const prevCwd = process.cwd();
72743
72743
  const runAbortController = new AbortController();
72744
72744
  log$6.debug(`embedded run start: runId=${params.runId} sessionId=${params.sessionId} provider=${params.provider} model=${params.modelId} thinking=${params.thinkLevel} messageChannel=${params.messageChannel ?? params.messageProvider ?? "unknown"}`);
72745
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
72745
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
72746
72746
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
72747
72747
  const sandbox = await resolveSandboxContext({
72748
72748
  config: params.config,
@@ -72750,7 +72750,7 @@ async function runEmbeddedAttempt(params) {
72750
72750
  workspaceDir: resolvedWorkspace
72751
72751
  });
72752
72752
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
72753
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
72753
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
72754
72754
  let restoreSkillEnv;
72755
72755
  process.chdir(effectiveWorkspace);
72756
72756
  try {
@@ -72994,7 +72994,7 @@ async function runEmbeddedAttempt(params) {
72994
72994
  sessionFile: params.sessionFile,
72995
72995
  warn: (message) => log$6.warn(message)
72996
72996
  });
72997
- const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
72997
+ const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
72998
72998
  const transcriptPolicy = resolveTranscriptPolicy({
72999
72999
  modelApi: params.model?.api,
73000
73000
  provider: params.provider,
@@ -73996,7 +73996,7 @@ async function runEmbeddedPiAgent(params) {
73996
73996
  }
73997
73997
  runLoopIterations += 1;
73998
73998
  attemptedThinking.add(thinkLevel);
73999
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
73999
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
74000
74000
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
74001
74001
  const attempt = await runEmbeddedAttempt({
74002
74002
  sessionId: params.sessionId,
@@ -75159,7 +75159,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
75159
75159
  };
75160
75160
  const arg = body.slice(6).trim();
75161
75161
  if (arg === "status" || arg === "") {
75162
- const { antonStatus } = await import("./anton-DhBvDNcB.js").then((n) => n.r);
75162
+ const { antonStatus } = await import("./anton-DYEYyPJ1.js").then((n) => n.r);
75163
75163
  const lines = [];
75164
75164
  await antonStatus({
75165
75165
  log: (msg) => lines.push(msg),
@@ -75175,7 +75175,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
75175
75175
  return { shouldContinue: false };
75176
75176
  }
75177
75177
  if (arg === "stop") {
75178
- const { antonStop } = await import("./anton-DhBvDNcB.js").then((n) => n.r);
75178
+ const { antonStop } = await import("./anton-DYEYyPJ1.js").then((n) => n.r);
75179
75179
  const lines = [];
75180
75180
  await antonStop({
75181
75181
  log: (msg) => lines.push(msg),
@@ -75213,8 +75213,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
75213
75213
  await sendProgress(replyCtx, text);
75214
75214
  return { shouldContinue: false };
75215
75215
  }
75216
- const { runAnton, formatProgressMessage } = await import("./anton-DhBvDNcB.js").then((n) => n.r);
75217
- const { createDefaultDeps } = await import("./deps-BYfE_aIY.js").then((n) => n.r);
75216
+ const { runAnton, formatProgressMessage } = await import("./anton-DYEYyPJ1.js").then((n) => n.r);
75217
+ const { createDefaultDeps } = await import("./deps-CH8f3TJK.js").then((n) => n.r);
75218
75218
  const { createNonExitingRuntime } = await import("./runtime-44j_X4Y6.js").then((n) => n.r);
75219
75219
  const runtime = createNonExitingRuntime();
75220
75220
  const deps = createDefaultDeps();
@@ -75311,7 +75311,7 @@ const handleDirCommand = async (params, _allowTextCommands) => {
75311
75311
  }
75312
75312
  try {
75313
75313
  if (params.sessionKey) {
75314
- const { updateSessionStoreEntry } = await import("./sessions-BtPXimXQ.js").then((n) => n.m);
75314
+ const { updateSessionStoreEntry } = await import("./sessions-BqWocozB.js").then((n) => n.m);
75315
75315
  const { resolveDefaultSessionStorePath } = await import("./paths-DRz46q00.js").then((n) => n.n);
75316
75316
  await updateSessionStoreEntry({
75317
75317
  storePath: params.storePath ?? resolveDefaultSessionStorePath(),
@@ -76482,7 +76482,7 @@ const handleTtsCommands = async (params, allowTextCommands) => {
76482
76482
  const handleUpgradeCommand = async (params, _allowTextCommands) => {
76483
76483
  if (!params.command.commandBodyNormalized.startsWith("/upgrade")) return null;
76484
76484
  if (!params.command.isAuthorizedSender) return { shouldContinue: false };
76485
- const { performBotUpgrade } = await import("./upgrade-command-Bh61DpzA.js");
76485
+ const { performBotUpgrade } = await import("./upgrade-command-28wRHZZ2.js");
76486
76486
  const channel = params.ctx.OriginatingChannel ?? params.command.channel;
76487
76487
  const to = params.ctx.OriginatingTo ?? params.command.from ?? params.command.to ?? "";
76488
76488
  await routeReply({
@@ -76544,7 +76544,7 @@ async function emitResetCommandHooks(params) {
76544
76544
  try {
76545
76545
  const messages = [];
76546
76546
  if (sessionFile) {
76547
- const content = await fs$1.readFile(sessionFile, "utf-8");
76547
+ const content = await fsPromises.readFile(sessionFile, "utf-8");
76548
76548
  for (const line of content.split("\n")) {
76549
76549
  if (!line.trim()) continue;
76550
76550
  try {
@@ -81468,7 +81468,7 @@ async function deliverSessionMaintenanceWarning(params) {
81468
81468
  return;
81469
81469
  }
81470
81470
  try {
81471
- const { deliverOutboundPayloads } = await import("./deliver--kttnrER.js").then((n) => n.n);
81471
+ const { deliverOutboundPayloads } = await import("./deliver-yTpXc5sv.js").then((n) => n.n);
81472
81472
  const outboundSession = buildOutboundSessionContext({
81473
81473
  cfg: params.cfg,
81474
81474
  sessionKey: params.sessionKey
@@ -81892,7 +81892,7 @@ async function stageSandboxMedia(params) {
81892
81892
  };
81893
81893
  try {
81894
81894
  const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
81895
- await fs$1.mkdir(destDir, { recursive: true });
81895
+ await fsPromises.mkdir(destDir, { recursive: true });
81896
81896
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
81897
81897
  cfg,
81898
81898
  accountId: ctx.AccountId
@@ -81942,7 +81942,7 @@ async function stageSandboxMedia(params) {
81942
81942
  usedNames.add(fileName);
81943
81943
  const dest = path.join(destDir, fileName);
81944
81944
  if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
81945
- else await fs$1.copyFile(source, dest);
81945
+ else await fsPromises.copyFile(source, dest);
81946
81946
  const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
81947
81947
  staged.set(source, stagedPath);
81948
81948
  }