squidclaw 3.0.23 → 3.0.25

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 (235) hide show
  1. package/dist/{accounts-KzgPbLHP.js → accounts-B1RxFghM.js} +1 -1
  2. package/dist/{accounts-BK8I0Svb.js → accounts-BH9Qo1sQ.js} +7 -7
  3. package/dist/{accounts-DeqNOvBo.js → accounts-Cuwg9Tan.js} +1 -1
  4. package/dist/{acp-cli-BwG98FYT.js → acp-cli-Ch55Vzud.js} +8 -8
  5. package/dist/{agent-scope-Cq4vDGrK.js → agent-scope-nEVgVklg.js} +17 -17
  6. package/dist/{agents-DXKtU4Il.js → agents-B-ig6ydU.js} +14 -14
  7. package/dist/{agents.config-BM-2SLCh.js → agents.config-w_Z6Fb4-.js} +2 -2
  8. package/dist/{api-key-rotation-6i41mEc9.js → api-key-rotation-JPmjv-c0.js} +1 -1
  9. package/dist/{audio-preflight-C-JCwUKe.js → audio-preflight-CZ--cSZh.js} +34 -34
  10. package/dist/{audio-transcription-runner-DvQksGUE.js → audio-transcription-runner-D-uxpkbd.js} +23 -23
  11. package/dist/{audit-DLTgNDFw.js → audit-JLT1FqTt.js} +29 -29
  12. package/dist/{auth-CuObxnC4.js → auth-BlP9BwaD.js} +1 -1
  13. package/dist/{auth-choice-BVQQneHM.js → auth-choice-Czu7271G.js} +13 -13
  14. package/dist/{auth-choice-CXepQc7c.js → auth-choice-ORZHjbsv.js} +11 -11
  15. package/dist/{auth-choice.apply-helpers-p1y_DmDT.js → auth-choice.apply-helpers-CdoXMtxm.js} +1 -1
  16. package/dist/{auth-profiles-CX4YYu7Z.js → auth-profiles-9T4j6jMy.js} +16 -16
  17. package/dist/{auth-token-Dlk7MMsC.js → auth-token-BFc70pes.js} +1 -1
  18. package/dist/{banner-DMfuBV69.js → banner-CwNmI5G-.js} +2 -2
  19. package/dist/{bonjour-discovery-BHz2I6_W.js → bonjour-discovery-eqJcK09r.js} +1 -1
  20. package/dist/{browser-cli-Dvwk4zAD.js → browser-cli-DCDPC5sg.js} +12 -12
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/session-memory/handler.js +52 -10
  23. package/dist/{call-BlWEBz99.js → call-D7jOWSFr.js} +10 -10
  24. package/dist/{channel-account-context-CQ6rCiGI.js → channel-account-context-DJ3rHgVO.js} +5 -5
  25. package/dist/{channel-activity-BZKeZQH-.js → channel-activity-wuB3-cfR.js} +1 -1
  26. package/dist/{channel-options-CQ-gER0J.js → channel-options-BS7BSU_5.js} +3 -3
  27. package/dist/{channel-selection-BqwS1Rlq.js → channel-selection-CFWQq1nS.js} +1 -1
  28. package/dist/{channel-web-LLzBxZrT.js → channel-web-C1qYz-HK.js} +17 -17
  29. package/dist/{channels-cli-D4xUEYYC.js → channels-cli-CVNqp5q7.js} +93 -93
  30. package/dist/{channels-status-issues-Dz1_R7Ah.js → channels-status-issues-Erzzhl2e.js} +1 -1
  31. package/dist/{chrome-CoRiYsNu.js → chrome-DiktJpMU.js} +4 -4
  32. package/dist/{clawbot-cli-2Zlim_pH.js → clawbot-cli-C3bt-FEP.js} +11 -11
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-CAID9zkL.js → cli-Jyqv2jm8.js} +73 -73
  35. package/dist/{client-G9E5HGM2.js → client-COy24r9W.js} +2 -2
  36. package/dist/{command-registry-AHS8_9da.js → command-registry-DCojicSG.js} +11 -11
  37. package/dist/{command-secret-targets-DAu5nw-j.js → command-secret-targets-CZjP-Bm5.js} +4 -4
  38. package/dist/{commands-CnX9I_l4.js → commands-DDHiW-As.js} +1 -1
  39. package/dist/{commands-registry-_r_JONI4.js → commands-registry--ITOJ-cM.js} +3 -3
  40. package/dist/{completion-cli-BR1r9_h4.js → completion-cli-DCTv7Ejv.js} +13 -13
  41. package/dist/{config-cli-D0A8Awoo.js → config-cli-CSPSSP_R.js} +7 -7
  42. package/dist/{config-guard-BHy2f0hU.js → config-guard-CFauJm79.js} +3 -3
  43. package/dist/{config-validation-BkvDORAk.js → config-validation-Bt3LfFJ0.js} +3 -3
  44. package/dist/{configure-XmOqwwy9.js → configure-DAol2gT6.js} +17 -17
  45. package/dist/{control-ui-assets-BYEy341x.js → control-ui-assets-d6VtDSeo.js} +1 -1
  46. package/dist/{cron-cli-QwZcnjJc.js → cron-cli-yS1ww1k2.js} +11 -11
  47. package/dist/{daemon-cli-kJfDhzr8.js → daemon-cli-B-yZvTqZ.js} +15 -15
  48. package/dist/{daemon-install-Chxlu9Kv.js → daemon-install-CbPLNiIP.js} +4 -4
  49. package/dist/{daemon-install-helpers-CJtiW2RE.js → daemon-install-helpers-CZDVO_MU.js} +11 -11
  50. package/dist/{deliver-CL2RW5UB.js → deliver-D-IQEJ52.js} +7 -7
  51. package/dist/deliver-runtime-zICm26tE.js +61 -0
  52. package/dist/deps-send-discord.runtime-C_9HZQko.js +36 -0
  53. package/dist/deps-send-imessage.runtime-BMhGsWds.js +35 -0
  54. package/dist/deps-send-signal.runtime-BGhjYiu6.js +34 -0
  55. package/dist/deps-send-slack.runtime-DjBCu-RX.js +32 -0
  56. package/dist/{deps-send-telegram.runtime-BHaZAs2h.js → deps-send-telegram.runtime-Irv0ky5l.js} +16 -16
  57. package/dist/deps-send-whatsapp.runtime-CU257URT.js +119 -0
  58. package/dist/{devices-cli-DlQGTogF.js → devices-cli-CPgutgUT.js} +8 -8
  59. package/dist/{diagnostic-CLEtu0MC.js → diagnostic-B4w80e4D.js} +1 -1
  60. package/dist/{diagnostics--O6mo6KH.js → diagnostics-m7hHHbuE.js} +5 -5
  61. package/dist/{directory-cli-K9qIwxYa.js → directory-cli-DqObADBL.js} +7 -7
  62. package/dist/{dns-cli-qtX-WNMF.js → dns-cli-CKbwsWBv.js} +5 -5
  63. package/dist/{dock-DJJAj46v.js → dock-W3cGg46W.js} +4 -4
  64. package/dist/{docs-cli--gGxz79Z.js → docs-cli-BpZtes_j.js} +4 -4
  65. package/dist/{doctor-completion-CZoEdMS-.js → doctor-completion--7PR_Vqz.js} +2 -2
  66. package/dist/{doctor-config-flow-C-h3yV4z.js → doctor-config-flow-BDF7TR6O.js} +15 -15
  67. package/dist/{enable-C8FNY18p.js → enable--Q7yLTZm.js} +1 -1
  68. package/dist/entry.js +2 -2
  69. package/dist/{exec-approvals-allowlist-CtSREgYh.js → exec-approvals-allowlist-B9bcJkGP.js} +1 -1
  70. package/dist/{exec-approvals-cli-BmM4RpVn.js → exec-approvals-cli-homtziYt.js} +16 -16
  71. package/dist/{exec-safe-bin-runtime-policy-CfQeDABF.js → exec-safe-bin-runtime-policy-DECo77U6.js} +2 -2
  72. package/dist/{fetch-guard-Dvzi3MjK.js → fetch-guard-CbtWqa1E.js} +1 -1
  73. package/dist/{fetch-CtoC2wgs.js → fetch-lq0SDLLE.js} +3 -3
  74. package/dist/{fs-safe-DPYj7h8A.js → fs-safe-BPQ-per2.js} +24 -24
  75. package/dist/{gateway-cli-BJHBChfI.js → gateway-cli-B3oqskb4.js} +153 -153
  76. package/dist/{gateway-rpc-D0AmaBzR.js → gateway-rpc-BBBN9ZJk.js} +1 -1
  77. package/dist/{health-XFKFZ7ZJ.js → health-CjXrJkCb.js} +11 -11
  78. package/dist/{hooks-cli-CXsZK8H9.js → hooks-cli--aKmd8c9.js} +81 -81
  79. package/dist/{hooks-status-DMFBAUq8.js → hooks-status-BlgSVDvN.js} +1 -1
  80. package/dist/{image-DSWTfuxv.js → image-BcYt63Jx.js} +5 -5
  81. package/dist/{image-ops-B2uuLIGD.js → image-ops-LFsSCTyI.js} +10 -10
  82. package/dist/image-runtime-Cxoxcx04.js +55 -0
  83. package/dist/{inspect-4c1uL0x5.js → inspect-CzsXBsew.js} +4 -4
  84. package/dist/{install-safe-path-3muwy3fu.js → install-safe-path-DqI19VEv.js} +25 -25
  85. package/dist/{installs-BiQDtPF0.js → installs-P-pYAJm1.js} +9 -9
  86. package/dist/{ipv4-sHllwvAI.js → ipv4-B95173MB.js} +1 -1
  87. package/dist/{ir-BukzlgSp.js → ir-C7He5vmn.js} +8 -8
  88. package/dist/{issue-format-DCcINW-9.js → issue-format-CbTfB8Hy.js} +1 -1
  89. package/dist/{json-files-CuJjdF_0.js → json-files-rR19q30D.js} +8 -8
  90. package/dist/{lifecycle-core-CqFEhwHn.js → lifecycle-core-ChKClWdw.js} +5 -5
  91. package/dist/{login-zoeewfBu.js → login-CjzRATwO.js} +3 -3
  92. package/dist/{login-qr-B8P_EAd-.js → login-qr-CX0rs3A6.js} +6 -6
  93. package/dist/{logs-cli-D30BUN6y.js → logs-cli-DvHsw1WZ.js} +9 -9
  94. package/dist/{manager-5OzUkYLf.js → manager-BVfTfggO.js} +14 -14
  95. package/dist/{manager-runtime-BxXpVt3x.js → manager-runtime-BXJJSlzC.js} +9 -9
  96. package/dist/{manifest-registry-7kwtbCH-.js → manifest-registry-1ACGW3OR.js} +1 -1
  97. package/dist/{memory-cli-Dj8tyFtt.js → memory-cli-u8eyO3Ec.js} +12 -12
  98. package/dist/{model-B8p-EsdJ.js → model-D7hZpWTB.js} +2 -2
  99. package/dist/{model-catalog-BWuvEv1x.js → model-catalog-Drh9Rois.js} +3 -3
  100. package/dist/{model-picker-CLhaaagi.js → model-picker-DK_vvKCV.js} +4 -4
  101. package/dist/{models-5VXwJBU2.js → models-CFXLX9IF.js} +17 -17
  102. package/dist/{models-cli-Br56IHfy.js → models-cli-PHQyKESa.js} +78 -78
  103. package/dist/{models-config-poV-4Xlx.js → models-config-DAastTau.js} +6 -6
  104. package/dist/{net-CCnbGop3.js → net-CIh5ellr.js} +2 -2
  105. package/dist/{node-cli-C8hvYquX.js → node-cli-o9qcU9GJ.js} +33 -33
  106. package/dist/{node-command-policy-B_D5ucTj.js → node-command-policy-BeTSnoyk.js} +1 -1
  107. package/dist/{node-service-Z0JprJda.js → node-service-OVe0_CIs.js} +1 -1
  108. package/dist/{nodes-cli-IIc8fTKT.js → nodes-cli-kGx_Qa3c.js} +16 -16
  109. package/dist/{nodes-screen-DFFmbaXE.js → nodes-screen-BrMJzhot.js} +7 -7
  110. package/dist/{npm-pack-install-B887us7R.js → npm-pack-install-Dn3FiWXB.js} +18 -18
  111. package/dist/{npm-resolution-CKtyq4FH.js → npm-resolution-ky_uAlXE.js} +4 -4
  112. package/dist/{onboard-lFwpCpC3.js → onboard-D1Qy64JK.js} +6 -6
  113. package/dist/{onboard-channels-_kVo3Apf.js → onboard-channels-oJCC_sJX.js} +21 -21
  114. package/dist/{onboard-custom-CZtjqrY7.js → onboard-custom-CRpsaM3g.js} +4 -4
  115. package/dist/{onboard-helpers-BP429__H.js → onboard-helpers-DwEZeaoe.js} +10 -10
  116. package/dist/{onboard-hooks-CTbjgLDl.js → onboard-hooks-DyxckB2C.js} +4 -4
  117. package/dist/{onboard-remote-BlZB0AE9.js → onboard-remote-ZgpWNq9Z.js} +4 -4
  118. package/dist/{onboard-skills-BT2YOXeP.js → onboard-skills-DEijVfCg.js} +4 -4
  119. package/dist/{onboarding-EEd_g8Zg.js → onboarding-Mxqy4O1E.js} +14 -14
  120. package/dist/{onboarding.finalize-Cs1ukjFN.js → onboarding.finalize-DiOMx6A5.js} +90 -90
  121. package/dist/{onboarding.gateway-config-C6N8r5Is.js → onboarding.gateway-config-9wkBCzzO.js} +18 -18
  122. package/dist/{onboarding.secret-input-BTK1IG-J.js → onboarding.secret-input-DRnoQSlI.js} +1 -1
  123. package/dist/{openai-model-default-COzeuAI4.js → openai-model-default-DqE4bNtd.js} +2 -2
  124. package/dist/{outbound-B7m9Vcd2.js → outbound-CwzUo-rx.js} +3 -3
  125. package/dist/{outbound-attachment-fdEhzyl9.js → outbound-attachment-Bedqixj2.js} +2 -2
  126. package/dist/{pairing-cli-NhoRKes6.js → pairing-cli-CsYP0at7.js} +8 -8
  127. package/dist/{pairing-labels-CnTvFrUT.js → pairing-labels-CX4CtqRa.js} +1 -1
  128. package/dist/{pairing-store-D0eOXyby.js → pairing-store-BC4mnG9S.js} +3 -3
  129. package/dist/{path-alias-guards-vfYYQFIg.js → path-alias-guards-DeOVetT7.js} +3 -3
  130. package/dist/{path-safety-C95DzArw.js → path-safety-D7CjFQvf.js} +1 -1
  131. package/dist/{paths-DfuVHiHu.js → paths-D6mnO6Ni.js} +9 -9
  132. package/dist/{pi-embedded-helpers-qCAK_a65.js → pi-embedded-helpers-DtCOZSv-.js} +6 -6
  133. package/dist/{pi-model-discovery-CKUePiDc.js → pi-model-discovery-Cr1q2cJt.js} +1 -1
  134. package/dist/{pi-model-discovery-runtime-CNLKih0w.js → pi-model-discovery-runtime-BHmdAKBK.js} +5 -5
  135. package/dist/{pi-tools.before-tool-call.runtime-Bba7rXQq.js → pi-tools.before-tool-call.runtime-duKHqrMc.js} +5 -5
  136. package/dist/{pi-tools.policy-BwWnFLLV.js → pi-tools.policy-D3RA94WF.js} +5 -5
  137. package/dist/{plugin-auto-enable-DJkHW_LG.js → plugin-auto-enable-a3TK3OPT.js} +3 -3
  138. package/dist/{plugin-registry-D3PnPE1D.js → plugin-registry-CFqqDqQV.js} +3 -3
  139. package/dist/{plugins-BDTkSIi7.js → plugins-Bc7YM9X-.js} +2 -2
  140. package/dist/{plugins-cli-BA_2daJe.js → plugins-cli-vQi8tFye.js} +83 -83
  141. package/dist/{ports-Be82TlEg.js → ports-BzfeaNjw.js} +1 -1
  142. package/dist/{ports-0jLyYbvQ.js → ports-DMeUt80n.js} +2 -2
  143. package/dist/{program-D_xdLzmM.js → program-Nott_VTb.js} +81 -81
  144. package/dist/{prompt-select-styled-BsheNEnh.js → prompt-select-styled-7mnlZgrQ.js} +40 -40
  145. package/dist/{provider-auth-helpers-B5kD4Lt6.js → provider-auth-helpers-_77rN3Zc.js} +5 -5
  146. package/dist/{proxy-env-CQTuxZoS.js → proxy-env-BiKHVg2h.js} +1 -1
  147. package/dist/{push-apns-BbenjEX4.js → push-apns-Ce1zzNYB.js} +5 -5
  148. package/dist/{pw-ai-wo5t_KO_.js → pw-ai-CAhTwexx.js} +18 -18
  149. package/dist/{qmd-manager-BkSWV1Q1.js → qmd-manager-BsL_hcOB.js} +20 -20
  150. package/dist/{qr-cli-DSMYIp-D.js → qr-cli-DzjBpGix.js} +2 -2
  151. package/dist/{query-expansion-DI9INxTg.js → query-expansion-C0HUJbRn.js} +12 -12
  152. package/dist/{redact-snapshot-B2YFI3cO.js → redact-snapshot-C0McNGqh.js} +1 -1
  153. package/dist/{register.agent-Dk_5V5oA.js → register.agent-DtjNdvUh.js} +94 -94
  154. package/dist/register.configure-BkwbM-hb.js +165 -0
  155. package/dist/{register.maintenance-CluQOq8b.js → register.maintenance-DERKsSgi.js} +95 -95
  156. package/dist/{register.message-BCTXT5yK.js → register.message-DkYxt6gZ.js} +74 -74
  157. package/dist/{register.onboard-C64oXnvq.js → register.onboard-BtfW83M0.js} +18 -18
  158. package/dist/{register.setup-Dl3nk2Ui.js → register.setup-Ba9gMkRk.js} +21 -21
  159. package/dist/{register.status-health-sessions-BHtbPeCO.js → register.status-health-sessions-BILdpWJV.js} +88 -88
  160. package/dist/{register.subclis-CDMFyaKR.js → register.subclis-Dfm_Zu31.js} +31 -31
  161. package/dist/{rpc-DA9IhLVG.js → rpc-mau2U4RG.js} +1 -1
  162. package/dist/{run-main-BcA22Ipv.js → run-main-BF7ybLIy.js} +93 -93
  163. package/dist/{runtime-BnbzNRr6.js → runtime-Bcmv4Epp.js} +3 -3
  164. package/dist/{runtime-config-collectors-CXJdhHRo.js → runtime-config-collectors-Bsjz4isf.js} +1 -1
  165. package/dist/{runtime-whatsapp-login.runtime-DRoK8G8H.js → runtime-whatsapp-login.runtime-COUEKxmy.js} +7 -7
  166. package/dist/{runtime-whatsapp-outbound.runtime-C9OiwkWh.js → runtime-whatsapp-outbound.runtime-BaWH6-ns.js} +15 -15
  167. package/dist/{sandbox-cli-BwK2slfh.js → sandbox-cli-DOxm7fjR.js} +25 -25
  168. package/dist/{sandbox-C3TbYIHd.js → sandbox-ixDhkfHu.js} +18 -18
  169. package/dist/{secrets-cli-Beu2lcrf.js → secrets-cli-DvXznMUb.js} +11 -11
  170. package/dist/{security-cli-CcpKH_lC.js → security-cli-3WOXvJR-.js} +42 -42
  171. package/dist/{send-EVcbFVqn.js → send-BPgrWmUX.js} +5 -5
  172. package/dist/{send-RDqyJwZx.js → send-BVyLW1cn.js} +8 -8
  173. package/dist/{send-z-sMjqvX.js → send-BpkluEZ5.js} +4 -4
  174. package/dist/{send-CLI3CiQv.js → send-BuBTLRMz.js} +6 -6
  175. package/dist/{send-DEs83M9V.js → send-Do2preUU.js} +11 -11
  176. package/dist/{server-Bm-IxvZZ.js → server-DMAPnkgM.js} +20 -20
  177. package/dist/{server-context-Dw_4lGoI.js → server-context-Dd8UynDU.js} +12 -12
  178. package/dist/{server-lifecycle-DYgHYif9.js → server-lifecycle-BEZ2jsQ6.js} +2 -2
  179. package/dist/{server-middleware-BVAEuQs7.js → server-middleware-B_LyQkOL.js} +1 -1
  180. package/dist/{server-node-events-Q0cT2ifj.js → server-node-events-dr5CaM3M.js} +74 -74
  181. package/dist/{service-DSqxS6_D.js → service-B5T42CWZ.js} +15 -15
  182. package/dist/{session-D0jodcgT.js → session-eXSdl5mb.js} +1 -1
  183. package/dist/{session-utils-XY6JwRhT.js → session-utils-D12gSo5W.js} +6 -6
  184. package/dist/{sessions-CMqv9JEu.js → sessions-C16G7L5c.js} +4 -4
  185. package/dist/{sessions-BWptzMw0.js → sessions-DgnXAQCc.js} +15 -15
  186. package/dist/{shared-BbVxcRzb.js → shared-BYny1RCF.js} +3 -3
  187. package/dist/{shared-D5DTxBPH.js → shared-By6_qr_R.js} +1 -1
  188. package/dist/{skill-commands-fU-Mejn9.js → skill-commands-BcigmiOW.js} +5 -5
  189. package/dist/{skill-scanner-CvS725eQ.js → skill-scanner--QKHR8U0.js} +6 -6
  190. package/dist/{skills-C85azDXm.js → skills-EwyaIyKC.js} +3 -3
  191. package/dist/{skills-cli-ZXx6BNar.js → skills-cli-CqEjN0Yj.js} +5 -5
  192. package/dist/{skills-install-KD6dzNoZ.js → skills-install-CXVKvhIE.js} +6 -6
  193. package/dist/{skills-status-DkO7rxE8.js → skills-status-Bv8Xt7Lc.js} +1 -1
  194. package/dist/{slash-commands.runtime-CPlXJtuM.js → slash-commands.runtime-Bi99B_EP.js} +11 -11
  195. package/dist/slash-dispatch.runtime-reuPLnse.js +114 -0
  196. package/dist/{slash-skill-commands.runtime-Cnfq_5LN.js → slash-skill-commands.runtime-DOXmvOtU.js} +15 -15
  197. package/dist/{squidclaw-root-BQfLymzj.js → squidclaw-root-JXyRbQLJ.js} +8 -8
  198. package/dist/{status-cU9cJReo.js → status-Dnl-Um1D.js} +27 -27
  199. package/dist/{status.update-CiLU9RPF.js → status.update-BGIm6we4.js} +2 -2
  200. package/dist/{store-BEIcnlgx.js → store-BTkIx401.js} +5 -5
  201. package/dist/{subagent-registry-CIgFD2oi.js → subagent-registry-CQA6P2FO.js} +149 -149
  202. package/dist/subagent-registry-runtime-CqgIWcSl.js +114 -0
  203. package/dist/{system-cli-i1FWZDjn.js → system-cli-CJAQxYHv.js} +9 -9
  204. package/dist/{system-run-command-COqCNIBg.js → system-run-command-BaSqmSwR.js} +1 -1
  205. package/dist/{systemd-Cj2cX_ZP.js → systemd-B86VePXs.js} +9 -9
  206. package/dist/{systemd-hints-46PqJfaq.js → systemd-hints-BmFWZu_j.js} +6 -6
  207. package/dist/{systemd-linger-6Jd9K5p2.js → systemd-linger-w7fvBU-1.js} +1 -1
  208. package/dist/{tables-CIpKClDV.js → tables-CGh4CW_h.js} +1 -1
  209. package/dist/{tailnet-CZANZjq6.js → tailnet-DJq7Mi1o.js} +1 -1
  210. package/dist/{target-errors-CRQlPF1u.js → target-errors-C_rnMuJ2.js} +4 -4
  211. package/dist/{tool-images-CyzWvDUu.js → tool-images-D6mmxuWS.js} +1 -1
  212. package/dist/{tui-CC_AbfZr.js → tui-BbcmzKaA.js} +6 -6
  213. package/dist/{tui-cli-DiJ7zKUD.js → tui-cli-Dv3jSm3x.js} +32 -32
  214. package/dist/{update-1JhjCqjy.js → update-BhRrb6BI.js} +3 -3
  215. package/dist/{update-cli-DM_dUip_.js → update-cli-Oe0fP8x9.js} +104 -104
  216. package/dist/{update-runner-BBJZmfZ4.js → update-runner-DdA6xBa9.js} +16 -16
  217. package/dist/web-w04Gvwqi.js +118 -0
  218. package/dist/{webhooks-cli-CzDd8ikc.js → webhooks-cli-CJLug1QH.js} +6 -6
  219. package/dist/{whatsapp-actions-MR_bBjXO.js → whatsapp-actions-_ca5OtHq.js} +17 -17
  220. package/dist/{with-timeout-BZ_Teugb.js → with-timeout-CFfRudNc.js} +3 -3
  221. package/dist/{workspace-D5vNjk5G.js → workspace-BbO-M3Jv.js} +1 -1
  222. package/dist/{workspace-dirs-CjMIsQti.js → workspace-dirs-D8D-Ghcl.js} +1 -1
  223. package/dist/{wsl-CvQfS6aU.js → wsl-CsGe5QCP.js} +2 -2
  224. package/package.json +1 -1
  225. package/dist/deliver-runtime-C08pF1_3.js +0 -61
  226. package/dist/deps-send-discord.runtime-r80y9aXF.js +0 -36
  227. package/dist/deps-send-imessage.runtime-BmocBgPM.js +0 -35
  228. package/dist/deps-send-signal.runtime-ByJt6qz-.js +0 -34
  229. package/dist/deps-send-slack.runtime-C3UUEG9J.js +0 -32
  230. package/dist/deps-send-whatsapp.runtime-__ogpmJj.js +0 -119
  231. package/dist/image-runtime-cza2NTiZ.js +0 -55
  232. package/dist/register.configure-C8OFfGln.js +0 -165
  233. package/dist/slash-dispatch.runtime-BOMEVFk0.js +0 -114
  234. package/dist/subagent-registry-runtime-DGTjU9Lb.js +0 -114
  235. package/dist/web-CZhZC1EA.js +0 -118
@@ -3,111 +3,111 @@ import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
3
3
  import { d as defaultRuntime, t as createSubsystemLogger, u as createNonExitingRuntime } from "./subsystem-Bw5n50gj.js";
4
4
  import { t as parseBooleanValue$1 } from "./boolean-DtWR5bt3.js";
5
5
  import { r as isTruthyEnvValue } from "./entry.js";
6
- import { Ar as resolveReasoningDefault, At as AVATAR_MAX_BYTES, Dn as applyMergePatch, Dr as resolveDefaultModelForAgent, Er as resolveConfiguredModelRef, Fi as DEFAULT_CONTEXT_TOKENS, Fn as resolveSlackNativeStreaming, Ft as isSupportedLocalAvatarExtension, G as writeConfigFile, Gn as resolveOwnerDisplaySetting, Gt as getConfigValueAtPath, Hn as resolveAgentMaxConcurrent, Ht as resetConfigOverrides, Ii as DEFAULT_MODEL, In as resolveSlackStreamingMode, J as TELEGRAM_COMMAND_NAME_PATTERN, Jn as listProfilesForProvider, Jt as unsetConfigValueAtPath, K as validateConfigObjectWithPlugins, Kt as parseConfigPath, Li as DEFAULT_PROVIDER, Mr as resolveSubagentSpawnModelSelection, Mt as isAvatarHttpUrl, Nn as mapStreamingModeToSlackLegacyDraftStreamMode, Nr as resolveThinkingDefault, Pi as splitTrailingAuthProfile, Pn as resolveDiscordPreviewStreamMode, Pt as isPathWithinRoot, Q as isInboundPathAllowed, Ri as resolveAuthProfileDisplayLabel, Sr as normalizeProviderId, U as resolveConfigSnapshotHash, Ut as setConfigOverride, V as readConfigFileSnapshot, Vn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Vt as getConfigOverrides, Wt as unsetConfigOverride, X as resolveTelegramCustomCommands, Xr as resolveRetryConfig, Y as normalizeTelegramCommandName, Yn as markAuthProfileGood, Zr as retryAsync, _i as resolveModelAuthMode, a as getSoonestCooldownExpiry, ai as OLLAMA_NATIVE_BASE_URL, bi as resolveShellEnvFallbackTimeoutMs, br as normalizeModelRef$2, c as markAuthProfileUsed, ci as buildAssistantMessageWithZeroUsage, cr as withFileLock, d as resolveApiKeyForProfile, di as getApiKeyForModel, er as ensureAuthProfileStore, et as resolveIMessageAttachmentRoots, f as evaluateStoredCredentialEligibility, fi as getCustomProviderApiKey, fr as buildAllowedModelSet, gi as resolveEnvApiKey, hr as findNormalizedProviderValue, i as clearExpiredCooldowns, ji as normalizeSecretInput, jt as isAvatarDataUrl, kr as resolveModelRefFromString, li as buildStreamErrorAssistantMessage, mi as resolveApiKeyForProvider, mr as buildModelAliasIndex, nn as buildEnforcedShellCommand, nt as normalizeScpRemoteHost, o as isProfileInCooldown, oi as createOllamaStreamFn, or as resolveAuthStorePathForDisplay, p as resolveTokenExpiryState, pi as requireApiKey, pr as buildConfiguredAllowlistKeys, pt as parseDurationMs, qn as dedupeProfileIds, qt as setConfigValueAtPath, r as resolveAuthProfileOrder, rt as parseNonNegativeByteSize, s as markAuthProfileFailure, si as buildAssistantMessage, sr as resolveSquidClawAgentDir, tt as resolveIMessageRemoteAttachmentRoots, u as resolveProfilesUnavailableReason, ui as buildUsageWithNoCost, vr as isCliProvider, yi as getShellPathFromLoginShell, yr as modelKey, z as loadConfig, zt as validateJsonSchemaValue } from "./auth-profiles-CX4YYu7Z.js";
6
+ import { Ar as resolveReasoningDefault, At as AVATAR_MAX_BYTES, Dn as applyMergePatch, Dr as resolveDefaultModelForAgent, Er as resolveConfiguredModelRef, Fi as DEFAULT_CONTEXT_TOKENS, Fn as resolveSlackNativeStreaming, Ft as isSupportedLocalAvatarExtension, G as writeConfigFile, Gn as resolveOwnerDisplaySetting, Gt as getConfigValueAtPath, Hn as resolveAgentMaxConcurrent, Ht as resetConfigOverrides, Ii as DEFAULT_MODEL, In as resolveSlackStreamingMode, J as TELEGRAM_COMMAND_NAME_PATTERN, Jn as listProfilesForProvider, Jt as unsetConfigValueAtPath, K as validateConfigObjectWithPlugins, Kt as parseConfigPath, Li as DEFAULT_PROVIDER, Mr as resolveSubagentSpawnModelSelection, Mt as isAvatarHttpUrl, Nn as mapStreamingModeToSlackLegacyDraftStreamMode, Nr as resolveThinkingDefault, Pi as splitTrailingAuthProfile, Pn as resolveDiscordPreviewStreamMode, Pt as isPathWithinRoot, Q as isInboundPathAllowed, Ri as resolveAuthProfileDisplayLabel, Sr as normalizeProviderId, U as resolveConfigSnapshotHash, Ut as setConfigOverride, V as readConfigFileSnapshot, Vn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Vt as getConfigOverrides, Wt as unsetConfigOverride, X as resolveTelegramCustomCommands, Xr as resolveRetryConfig, Y as normalizeTelegramCommandName, Yn as markAuthProfileGood, Zr as retryAsync, _i as resolveModelAuthMode, a as getSoonestCooldownExpiry, ai as OLLAMA_NATIVE_BASE_URL, bi as resolveShellEnvFallbackTimeoutMs, br as normalizeModelRef$2, c as markAuthProfileUsed, ci as buildAssistantMessageWithZeroUsage, cr as withFileLock, d as resolveApiKeyForProfile, di as getApiKeyForModel, er as ensureAuthProfileStore, et as resolveIMessageAttachmentRoots, f as evaluateStoredCredentialEligibility, fi as getCustomProviderApiKey, fr as buildAllowedModelSet, gi as resolveEnvApiKey, hr as findNormalizedProviderValue, i as clearExpiredCooldowns, ji as normalizeSecretInput, jt as isAvatarDataUrl, kr as resolveModelRefFromString, li as buildStreamErrorAssistantMessage, mi as resolveApiKeyForProvider, mr as buildModelAliasIndex, nn as buildEnforcedShellCommand, nt as normalizeScpRemoteHost, o as isProfileInCooldown, oi as createOllamaStreamFn, or as resolveAuthStorePathForDisplay, p as resolveTokenExpiryState, pi as requireApiKey, pr as buildConfiguredAllowlistKeys, pt as parseDurationMs, qn as dedupeProfileIds, qt as setConfigValueAtPath, r as resolveAuthProfileOrder, rt as parseNonNegativeByteSize, s as markAuthProfileFailure, si as buildAssistantMessage, sr as resolveSquidClawAgentDir, tt as resolveIMessageRemoteAttachmentRoots, u as resolveProfilesUnavailableReason, ui as buildUsageWithNoCost, vr as isCliProvider, yi as getShellPathFromLoginShell, yr as modelKey, z as loadConfig, zt as validateJsonSchemaValue } from "./auth-profiles-9T4j6jMy.js";
7
7
  import { t as formatCliCommand } from "./command-format-D8-lYArk.js";
8
- 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-Cq4vDGrK.js";
8
+ 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-nEVgVklg.js";
9
9
  import { D as resolveThreadParentSessionKey, E as parseAgentSessionKey, S as isAcpSessionKey, T as isSubagentSessionKey, _ as normalizeAccountId$2, b as deriveSessionChatType, c as normalizeAgentId, d as resolveThreadSessionKeys, f as sanitizeAgentId, g as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, l as normalizeMainKey, n as DEFAULT_MAIN_KEY, o as classifySessionKeyShape, p as scopedHeartbeatWakeOptions, r as buildAgentMainSessionKey, s as isValidAgentId, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, v as normalizeOptionalAccountId, w as isCronSessionKey, x as getSubagentDepth, y as isBlockedObjectKey } from "./session-key-k6urs9r-.js";
10
10
  import { C as sliceUtf16Safe, E as isPlainObject, S as sleep$1, T as truncateUtf16Safe, b as shortenHomeInString, c as escapeRegExp, p as normalizeE164, r as clampInt, t as CONFIG_DIR, u as isRecord$1, v as resolveUserPath, x as shortenHomePath } from "./utils-D6vohX1h.js";
11
- import { a as openBoundaryFileSync, h as normalizeWindowsPathForComparison, i as openBoundaryFile, t as resolveSquidClawPackageRoot } from "./squidclaw-root-BQfLymzj.js";
11
+ import { a as openBoundaryFileSync, h as normalizeWindowsPathForComparison, i as openBoundaryFile, t as resolveSquidClawPackageRoot } from "./squidclaw-root-JXyRbQLJ.js";
12
12
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-DL3N22PJ.js";
13
13
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-TSiqsZw1.js";
14
14
  import { E as triggerInternalHook, M as normalizeResolvedSecretInputString, S as matchPluginCommand, _ as normalizePluginHttpPath, b as getPluginCommandSpecs, c as normalizeChannelId$1, d as getActivePluginRegistryKey, g as createPluginRegistry, k as coerceSecretRef, m as setActivePluginRegistry, n as CHAT_CHANNEL_ORDER, p as requireActivePluginRegistry, s as normalizeAnyChannelId, u as getActivePluginRegistry, v as clearPluginCommands, w as createInternalHookEvent, x as listPluginCommands, y as executePluginCommand } from "./registry-BXcl3IkC.js";
15
15
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-CxitgiZA.js";
16
16
  import { n as isDangerousHostEnvVarName } from "./host-env-security-lcjXF83D.js";
17
17
  import { t as VERSION } from "./version-3so140Zi.js";
18
- import { a as safeStatSync, d as normalizePluginsConfig, f as resolveEffectiveEnableState, i as isPathInside, l as applyTestPluginDefaults, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision, r as discoverSquidClawPlugins } from "./manifest-registry-7kwtbCH-.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-DJJAj46v.js";
18
+ import { a as safeStatSync, d as normalizePluginsConfig, f as resolveEffectiveEnableState, i as isPathInside, l as applyTestPluginDefaults, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision, r as discoverSquidClawPlugins } from "./manifest-registry-1ACGW3OR.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-W3cGg46W.js";
20
20
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-kzSMVKJz.js";
21
21
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BAST85mP.js";
22
- import { i as buildModelAliasLines, n as resolveModel } from "./model-B8p-EsdJ.js";
23
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CKUePiDc.js";
24
- import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as getDiagnosticSessionState, i as logMessageProcessed, l as logWebhookProcessed, m as isDiagnosticsEnabled, n as logLaneDequeue, o as logSessionStateChange, p as emitDiagnosticEvent, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-CLEtu0MC.js";
25
- 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-C85azDXm.js";
26
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-vfYYQFIg.js";
22
+ import { i as buildModelAliasLines, n as resolveModel } from "./model-D7hZpWTB.js";
23
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Cr1q2cJt.js";
24
+ import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as getDiagnosticSessionState, i as logMessageProcessed, l as logWebhookProcessed, m as isDiagnosticsEnabled, n as logLaneDequeue, o as logSessionStateChange, p as emitDiagnosticEvent, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-B4w80e4D.js";
25
+ 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-EwyaIyKC.js";
26
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DeOVetT7.js";
27
27
  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-DqvtYF2o.js";
28
- import { C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveSessionResetPolicy, H as resolveSessionKey, J as DEFAULT_RESET_TRIGGERS, K as resolveSessionResetType, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as evaluateSessionFreshness, V as resolveSessionLockMaxHoldFromTimeout, W as resolveChannelResetConfig, X as resolveFreshSessionTotalTokens, Y as mergeSessionEntry, Z as setSessionRuntimeModel, _ as isCacheEnabled, a as resolveAndPersistSessionFile, at as resolveConversationLabel, b as deliveryContextKey, c as recordSessionMetaFromInbound, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, lt as resolveGroupSessionKey, n as parseSessionThreadInfo, o as loadSessionStore, q as resolveThreadFlag, r as appendAssistantMessageToSessionTranscript, rt as deriveSessionMetaPatch, s as readSessionUpdatedAt, t as extractDeliveryInfo, tt as resolveMainSessionKey, u as updateLastRoute, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession, z as acquireSessionWriteLock } from "./sessions-BWptzMw0.js";
29
- import { A as normalizeDiscordToken, C as isWhatsAppGroupJid, D as listEnabledDiscordAccounts, S as resolveSlackBotToken, T as createDiscordActionGate, a as createTelegramActionGate, b as resolveSlackReplyToMode, h as listBindings, j as normalizeChatType, k as resolveDiscordAccount, l as resolveTelegramAccount, m as buildChannelAccountBindings, n as listChannelPlugins, o as listEnabledTelegramAccounts, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, w as normalizeWhatsAppTarget, x as resolveSlackAppToken, y as resolveSlackAccount } from "./plugins-BDTkSIi7.js";
30
- import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, y as resolveAccountEntry } from "./accounts-BK8I0Svb.js";
31
- import { r as resolveIMessageAccount } from "./accounts-DeqNOvBo.js";
32
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-KzgPbLHP.js";
33
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-z-sMjqvX.js";
34
- import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, 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 buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-DEs83M9V.js";
28
+ import { C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveSessionResetPolicy, H as resolveSessionKey, J as DEFAULT_RESET_TRIGGERS, K as resolveSessionResetType, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as evaluateSessionFreshness, V as resolveSessionLockMaxHoldFromTimeout, W as resolveChannelResetConfig, X as resolveFreshSessionTotalTokens, Y as mergeSessionEntry, Z as setSessionRuntimeModel, _ as isCacheEnabled, a as resolveAndPersistSessionFile, at as resolveConversationLabel, b as deliveryContextKey, c as recordSessionMetaFromInbound, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, lt as resolveGroupSessionKey, n as parseSessionThreadInfo, o as loadSessionStore, q as resolveThreadFlag, r as appendAssistantMessageToSessionTranscript, rt as deriveSessionMetaPatch, s as readSessionUpdatedAt, t as extractDeliveryInfo, tt as resolveMainSessionKey, u as updateLastRoute, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession, z as acquireSessionWriteLock } from "./sessions-DgnXAQCc.js";
29
+ import { A as normalizeDiscordToken, C as isWhatsAppGroupJid, D as listEnabledDiscordAccounts, S as resolveSlackBotToken, T as createDiscordActionGate, a as createTelegramActionGate, b as resolveSlackReplyToMode, h as listBindings, j as normalizeChatType, k as resolveDiscordAccount, l as resolveTelegramAccount, m as buildChannelAccountBindings, n as listChannelPlugins, o as listEnabledTelegramAccounts, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, w as normalizeWhatsAppTarget, x as resolveSlackAppToken, y as resolveSlackAccount } from "./plugins-Bc7YM9X-.js";
30
+ import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, y as resolveAccountEntry } from "./accounts-BH9Qo1sQ.js";
31
+ import { r as resolveIMessageAccount } from "./accounts-Cuwg9Tan.js";
32
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-B1RxFghM.js";
33
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BpkluEZ5.js";
34
+ import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, 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 buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-Do2preUU.js";
35
35
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-Dn_rzeZN.js";
36
36
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-C8z9KgIz.js";
37
- import { r as writeJsonAtomic } from "./json-files-CuJjdF_0.js";
37
+ import { r as writeJsonAtomic } from "./json-files-rR19q30D.js";
38
38
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-DgzPL8Hc.js";
39
- import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-G9E5HGM2.js";
40
- import { a as randomIdempotencyKey, f as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BlWEBz99.js";
41
- import { r as isLoopbackHost } from "./net-CCnbGop3.js";
39
+ import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-COy24r9W.js";
40
+ import { a as randomIdempotencyKey, f as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-D7jOWSFr.js";
41
+ import { r as isLoopbackHost } from "./net-CIh5ellr.js";
42
42
  import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-CyQeGziJ.js";
43
43
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-DOVPgjwZ.js";
44
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-BZ_Teugb.js";
44
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-CFfRudNc.js";
45
45
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-_dzDDlFo.js";
46
- import { A as initializeGlobalHookRunner, C as toInternalMessagePreprocessedContext, D as toPluginMessageReceivedEvent, E as toPluginMessageContext, O as fireAndForgetHook, S as deriveInboundMessageHookContext, T as toInternalMessageTranscribedContext, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, w as toInternalMessageReceivedContext, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-CL2RW5UB.js";
46
+ import { A as initializeGlobalHookRunner, C as toInternalMessagePreprocessedContext, D as toPluginMessageReceivedEvent, E as toPluginMessageContext, O as fireAndForgetHook, S as deriveInboundMessageHookContext, T as toInternalMessageTranscribedContext, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, w as toInternalMessageReceivedContext, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-D-IQEJ52.js";
47
47
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-Bz6Ajr4f.js";
48
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-B2uuLIGD.js";
49
- import { A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramDirectPeerId, G as resolveSenderAllowMatch$1, H as isSenderAllowed$1, I as resolveTelegramForumThreadId, J as isVoiceCompatibleAudio, K as formatLocationText, L as resolveTelegramGroupAllowFromContext, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, R as resolveTelegramMediaPlaceholder, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeAllowFrom$2, V as resolveTelegramThreadSpec, W as normalizeDmAllowFromWithStore$1, _ as splitTelegramCaption, a as reactMessageTelegram, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramHtml, q as toLocationContext, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildSenderName, y as loadCronStore, z as resolveTelegramReplyId } from "./send-RDqyJwZx.js";
50
- import { A as isTransientHttpError, B as resolveBootstrapTotalMaxChars, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as isTimeoutErrorMessage, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRateLimitAssistantError, P as isAuthPermanentErrorMessage, R as resolveBootstrapMaxChars, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, V as sanitizeGoogleTurnOrdering, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, b as isAuthAssistantError, c as extractToolCallsFromAssistant, d as downgradeOpenAIFunctionCallReasoningPairs, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, j as parseImageDimensionError, k as isRawApiErrorPayload, l as extractToolResultId, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, o as normalizeTextForComparison, p as isGoogleModelApi, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as formatRawAssistantErrorForUi, w as isContextOverflowError, x as isBillingAssistantError, y as getApiErrorPayloadFingerprint, z as resolveBootstrapPromptTruncationWarningMode } from "./pi-embedded-helpers-qCAK_a65.js";
51
- 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-C3TbYIHd.js";
52
- import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CoRiYsNu.js";
53
- import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-Dw_4lGoI.js";
54
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-DfuVHiHu.js";
48
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-LFsSCTyI.js";
49
+ import { A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramDirectPeerId, G as resolveSenderAllowMatch$1, H as isSenderAllowed$1, I as resolveTelegramForumThreadId, J as isVoiceCompatibleAudio, K as formatLocationText, L as resolveTelegramGroupAllowFromContext, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, R as resolveTelegramMediaPlaceholder, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeAllowFrom$2, V as resolveTelegramThreadSpec, W as normalizeDmAllowFromWithStore$1, _ as splitTelegramCaption, a as reactMessageTelegram, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramHtml, q as toLocationContext, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildSenderName, y as loadCronStore, z as resolveTelegramReplyId } from "./send-BVyLW1cn.js";
50
+ import { A as isTransientHttpError, B as resolveBootstrapTotalMaxChars, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as isTimeoutErrorMessage, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRateLimitAssistantError, P as isAuthPermanentErrorMessage, R as resolveBootstrapMaxChars, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, V as sanitizeGoogleTurnOrdering, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, b as isAuthAssistantError, c as extractToolCallsFromAssistant, d as downgradeOpenAIFunctionCallReasoningPairs, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, j as parseImageDimensionError, k as isRawApiErrorPayload, l as extractToolResultId, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, o as normalizeTextForComparison, p as isGoogleModelApi, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as formatRawAssistantErrorForUi, w as isContextOverflowError, x as isBillingAssistantError, y as getApiErrorPayloadFingerprint, z as resolveBootstrapPromptTruncationWarningMode } from "./pi-embedded-helpers-DtCOZSv-.js";
51
+ 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-ixDhkfHu.js";
52
+ import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DiktJpMU.js";
53
+ import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-Dd8UynDU.js";
54
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-D6mnO6Ni.js";
55
55
  import { a as testRegexWithBoundedInput, i as compileSafeRegex, n as redactSensitiveText } from "./redact-DknVdX-O.js";
56
56
  import { i as formatUncaughtError, r as formatErrorMessage, s as readErrorName } from "./errors-BnRmsfe-.js";
57
- import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-DPYj7h8A.js";
58
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-CQTuxZoS.js";
59
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-BEIcnlgx.js";
60
- import { i as resolveLsofCommandSync } from "./ports-0jLyYbvQ.js";
61
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CyzWvDUu.js";
57
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-BPQ-per2.js";
58
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-BiKHVg2h.js";
59
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-BTkIx401.js";
60
+ import { i as resolveLsofCommandSync } from "./ports-DMeUt80n.js";
61
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-D6mmxuWS.js";
62
62
  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-CrcT589P.js";
63
- import { t as ensureSquidClawModelsJson } from "./models-config-poV-4Xlx.js";
64
- import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-CtSREgYh.js";
65
- import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-CfQeDABF.js";
66
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BWuvEv1x.js";
67
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-CtoC2wgs.js";
68
- import { a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, g as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$1, v as resolveAttachmentKind } from "./audio-transcription-runner-DvQksGUE.js";
63
+ import { t as ensureSquidClawModelsJson } from "./models-config-DAastTau.js";
64
+ import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-B9bcJkGP.js";
65
+ import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-DECo77U6.js";
66
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-Drh9Rois.js";
67
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-lq0SDLLE.js";
68
+ import { a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, g as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$1, v as resolveAttachmentKind } from "./audio-transcription-runner-D-uxpkbd.js";
69
69
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Mawkd1Br.js";
70
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-Dvzi3MjK.js";
71
- import { _ as stripReasoningTagsFromText, a as resolveProviderVisionModelFromConfig, b as extractTextFromChatContent, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as findCodeRegions, x as minimaxUnderstandImage, y as isInsideCode } from "./image-DSWTfuxv.js";
70
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CbtWqa1E.js";
71
+ import { _ as stripReasoningTagsFromText, a as resolveProviderVisionModelFromConfig, b as extractTextFromChatContent, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as findCodeRegions, x as minimaxUnderstandImage, y as isInsideCode } from "./image-BcYt63Jx.js";
72
72
  import { n as formatToolSummary, r as resolveToolDisplay } from "./tool-display-BisOZb2_.js";
73
73
  import { t as makeProxyFetch } from "./proxy-fetch-DfeBVFag.js";
74
- import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-BukzlgSp.js";
75
- import { a as ToolInputError, 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-CRQlPF1u.js";
76
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CnX9I_l4.js";
77
- import { a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs } from "./commands-registry-_r_JONI4.js";
74
+ import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-C7He5vmn.js";
75
+ import { a as ToolInputError, 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-C_rnMuJ2.js";
76
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-DDHiW-As.js";
77
+ import { a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs } from "./commands-registry--ITOJ-cM.js";
78
78
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-By9arPco.js";
79
79
  import { n as formatTimeAgo } from "./format-relative-Czf5fUjn.js";
80
- 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-D0eOXyby.js";
80
+ 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-BC4mnG9S.js";
81
81
  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-Db6myg-N.js";
82
- import { C as mergePathPrepend, S as findPathKey, a as canvasSnapshotTempPath, b as buildNodeShellCommand, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeCameraPayloadToFile, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as parsePreparedSystemRunPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile, w as normalizePathPrepend, x as applyPathPrepend } from "./nodes-screen-DFFmbaXE.js";
82
+ import { C as mergePathPrepend, S as findPathKey, a as canvasSnapshotTempPath, b as buildNodeShellCommand, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeCameraPayloadToFile, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as parsePreparedSystemRunPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile, w as normalizePathPrepend, x as applyPathPrepend } from "./nodes-screen-BrMJzhot.js";
83
83
  import { t as killProcessTree$1 } from "./kill-tree-0NV2m8EI.js";
84
- import { t as formatExecCommand } from "./system-run-command-COqCNIBg.js";
84
+ import { t as formatExecCommand } from "./system-run-command-BaSqmSwR.js";
85
85
  import { i as parsePairingList, n as resolveNodeIdFromNodeList, r as parseNodeList, t as resolveNodeFromNodeList } from "./node-resolve-DO_ibeH6.js";
86
86
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-CZ0b60YO.js";
87
- import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, f as computeBackoff, p as sleepWithAbort, u as lookupContextTokens } from "./session-utils-XY6JwRhT.js";
87
+ import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, f as computeBackoff, p as sleepWithAbort, u as lookupContextTokens } from "./session-utils-D12gSo5W.js";
88
88
  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-BL2HPuc5.js";
89
89
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-eNPY7j3q.js";
90
- import { a as getRemoteSkillEligibility, b as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, y as ensureSkillsWatcher } from "./skill-commands-fU-Mejn9.js";
91
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BZKeZQH-.js";
90
+ import { a as getRemoteSkillEligibility, b as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, y as ensureSkillsWatcher } from "./skill-commands-BcigmiOW.js";
91
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-wuB3-cfR.js";
92
92
  import { t as buildOutboundMediaLoadOptions } from "./load-options-PN66jbnR.js";
93
93
  import { n as normalizePollInput } from "./polls-C67dmFc-.js";
94
- import { t as convertMarkdownTables } from "./tables-CIpKClDV.js";
94
+ import { t as convertMarkdownTables } from "./tables-CGh4CW_h.js";
95
95
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-vBANYkEo.js";
96
96
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-C4U8O7GM.js";
97
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BqwS1Rlq.js";
98
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DJkHW_LG.js";
99
- import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-EVcbFVqn.js";
100
- import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-CLI3CiQv.js";
97
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-CFWQq1nS.js";
98
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-a3TK3OPT.js";
99
+ import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-BPgrWmUX.js";
100
+ import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-BuBTLRMz.js";
101
101
  import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined$1 } from "./allow-from-DzfdGdp7.js";
102
102
  import { t as parseTimeoutMs } from "./parse-timeout-DUdeaMqF.js";
103
103
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-tA6LTRr3.js";
104
- import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, i as resolveGroupToolPolicy, m as resolveControlCommandGate, n as isToolAllowedByPolicies, p as resolveCommandAuthorizedFromAuthorizers, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-BwWnFLLV.js";
104
+ import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, i as resolveGroupToolPolicy, m as resolveControlCommandGate, n as isToolAllowedByPolicies, p as resolveCommandAuthorizedFromAuthorizers, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-D3RA94WF.js";
105
105
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CXdnb6je.js";
106
- import { s as resolveCommandSecretRefsViaGateway, t as getAgentRuntimeCommandSecretTargetIds } from "./command-secret-targets-DAu5nw-j.js";
107
- import { r as detectBinary } from "./onboard-helpers-BP429__H.js";
108
- import { t as resolvePairingIdLabel } from "./pairing-labels-CnTvFrUT.js";
109
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-Dj8tyFtt.js";
110
- import { r as resolveMemorySearchConfig } from "./manager-5OzUkYLf.js";
106
+ import { s as resolveCommandSecretRefsViaGateway, t as getAgentRuntimeCommandSecretTargetIds } from "./command-secret-targets-CZjP-Bm5.js";
107
+ import { r as detectBinary } from "./onboard-helpers-DwEZeaoe.js";
108
+ import { t as resolvePairingIdLabel } from "./pairing-labels-CX4CtqRa.js";
109
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-u8eyO3Ec.js";
110
+ import { r as resolveMemorySearchConfig } from "./manager-BVfTfggO.js";
111
111
  import { i as resolveContextWindowInfo, n as CONTEXT_WINDOW_WARN_BELOW_TOKENS, r as evaluateContextWindowGuard, t as CONTEXT_WINDOW_HARD_MIN_TOKENS } from "./context-window-guard-EeoVR--t.js";
112
112
  import { createRequire } from "node:module";
113
113
  import { execFileSync, spawn, spawnSync } from "node:child_process";
@@ -117,7 +117,7 @@ import path, { isAbsolute } from "node:path";
117
117
  import fs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
118
118
  import JSON5 from "json5";
119
119
  import { inspect } from "node:util";
120
- import fs$1, { appendFile, mkdir } from "node:fs/promises";
120
+ import fsPromises, { appendFile, mkdir } from "node:fs/promises";
121
121
  import { complete, completeSimple, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
122
122
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
123
123
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -5153,7 +5153,7 @@ async function resolveAgentSessionDirs(stateDir) {
5153
5153
  const agentsDir = path.join(stateDir, "agents");
5154
5154
  let entries = [];
5155
5155
  try {
5156
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
5156
+ entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
5157
5157
  } catch (err) {
5158
5158
  if (err.code === "ENOENT") return [];
5159
5159
  throw err;
@@ -8286,7 +8286,7 @@ async function runWithConcurrency(tasks, limit) {
8286
8286
  //#region src/media-understanding/echo-transcript.ts
8287
8287
  let deliverRuntimePromise$2 = null;
8288
8288
  function loadDeliverRuntime$2() {
8289
- deliverRuntimePromise$2 ??= import("./deliver-runtime-C08pF1_3.js");
8289
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-zICm26tE.js");
8290
8290
  return deliverRuntimePromise$2;
8291
8291
  }
8292
8292
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -13122,7 +13122,7 @@ async function resolveSandboxWorkdir(params) {
13122
13122
  cwd: process.cwd(),
13123
13123
  root: params.sandbox.workspaceDir
13124
13124
  });
13125
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
13125
+ if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
13126
13126
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
13127
13127
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
13128
13128
  return {
@@ -14366,13 +14366,13 @@ async function validateScriptFileForShellBleed(params) {
14366
14366
  cwd: params.workdir,
14367
14367
  root: params.workdir
14368
14368
  });
14369
- stat = await fs$1.stat(absPath);
14369
+ stat = await fsPromises.stat(absPath);
14370
14370
  } catch {
14371
14371
  return;
14372
14372
  }
14373
14373
  if (!stat.isFile()) return;
14374
14374
  if (stat.size > 512 * 1024) return;
14375
- const content = await fs$1.readFile(absPath, "utf-8");
14375
+ const content = await fsPromises.readFile(absPath, "utf-8");
14376
14376
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
14377
14377
  if (first) {
14378
14378
  const idx = first.index;
@@ -23948,7 +23948,7 @@ function normalizeReplyPayload(payload, opts = {}) {
23948
23948
  */
23949
23949
  let deliverRuntimePromise$1 = null;
23950
23950
  function loadDeliverRuntime$1() {
23951
- deliverRuntimePromise$1 ??= import("./deliver-runtime-C08pF1_3.js");
23951
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-zICm26tE.js");
23952
23952
  return deliverRuntimePromise$1;
23953
23953
  }
23954
23954
  /**
@@ -24072,7 +24072,7 @@ async function emitResetCommandHooks(params) {
24072
24072
  try {
24073
24073
  const messages = [];
24074
24074
  if (sessionFile) {
24075
- const content = await fs$1.readFile(sessionFile, "utf-8");
24075
+ const content = await fsPromises.readFile(sessionFile, "utf-8");
24076
24076
  for (const line of content.split("\n")) {
24077
24077
  if (!line.trim()) continue;
24078
24078
  try {
@@ -24902,7 +24902,7 @@ async function createModelSelectionState(params) {
24902
24902
  }
24903
24903
  }
24904
24904
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
24905
- const { ensureAuthProfileStore } = await import("./auth-profiles-CX4YYu7Z.js").then((n) => n.t);
24905
+ const { ensureAuthProfileStore } = await import("./auth-profiles-9T4j6jMy.js").then((n) => n.t);
24906
24906
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
24907
24907
  const providerKey = normalizeProviderId(provider);
24908
24908
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -28498,7 +28498,7 @@ async function readJsonlFromPath(jsonlPath) {
28498
28498
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
28499
28499
  throw new Error("jsonlPath outside allowed roots");
28500
28500
  }
28501
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
28501
+ const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
28502
28502
  if (!isInboundPathAllowed({
28503
28503
  filePath: canonical,
28504
28504
  roots
@@ -28506,7 +28506,7 @@ async function readJsonlFromPath(jsonlPath) {
28506
28506
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
28507
28507
  throw new Error("jsonlPath outside allowed roots");
28508
28508
  }
28509
- return await fs$1.readFile(canonical, "utf8");
28509
+ return await fsPromises.readFile(canonical, "utf8");
28510
28510
  }
28511
28511
  const CanvasToolSchema = Type.Object({
28512
28512
  action: stringEnum(CANVAS_ACTIONS),
@@ -29321,27 +29321,27 @@ function resolveRestartSentinelPath(env = process.env) {
29321
29321
  }
29322
29322
  async function writeRestartSentinel(payload, env = process.env) {
29323
29323
  const filePath = resolveRestartSentinelPath(env);
29324
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
29324
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
29325
29325
  const data = {
29326
29326
  version: 1,
29327
29327
  payload
29328
29328
  };
29329
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
29329
+ await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
29330
29330
  return filePath;
29331
29331
  }
29332
29332
  async function readRestartSentinel(env = process.env) {
29333
29333
  const filePath = resolveRestartSentinelPath(env);
29334
29334
  try {
29335
- const raw = await fs$1.readFile(filePath, "utf-8");
29335
+ const raw = await fsPromises.readFile(filePath, "utf-8");
29336
29336
  let parsed;
29337
29337
  try {
29338
29338
  parsed = JSON.parse(raw);
29339
29339
  } catch {
29340
- await fs$1.unlink(filePath).catch(() => {});
29340
+ await fsPromises.unlink(filePath).catch(() => {});
29341
29341
  return null;
29342
29342
  }
29343
29343
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
29344
- await fs$1.unlink(filePath).catch(() => {});
29344
+ await fsPromises.unlink(filePath).catch(() => {});
29345
29345
  return null;
29346
29346
  }
29347
29347
  return parsed;
@@ -29353,7 +29353,7 @@ async function consumeRestartSentinel(env = process.env) {
29353
29353
  const filePath = resolveRestartSentinelPath(env);
29354
29354
  const parsed = await readRestartSentinel(env);
29355
29355
  if (!parsed) return null;
29356
- await fs$1.unlink(filePath).catch(() => {});
29356
+ await fsPromises.unlink(filePath).catch(() => {});
29357
29357
  return parsed;
29358
29358
  }
29359
29359
  function formatRestartSentinelMessage(payload) {
@@ -40457,18 +40457,18 @@ function appendImagePathsToPrompt(prompt, paths) {
40457
40457
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
40458
40458
  }
40459
40459
  async function writeCliImages(images) {
40460
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "squidclaw-cli-images-"));
40460
+ const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "squidclaw-cli-images-"));
40461
40461
  const paths = [];
40462
40462
  for (let i = 0; i < images.length; i += 1) {
40463
40463
  const image = images[i];
40464
40464
  const ext = resolveImageExtension(image.mimeType);
40465
40465
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
40466
40466
  const buffer = Buffer.from(image.data, "base64");
40467
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
40467
+ await fsPromises.writeFile(filePath, buffer, { mode: 384 });
40468
40468
  paths.push(filePath);
40469
40469
  }
40470
40470
  const cleanup = async () => {
40471
- await fs$1.rm(tempDir, {
40471
+ await fsPromises.rm(tempDir, {
40472
40472
  recursive: true,
40473
40473
  force: true
40474
40474
  });
@@ -44440,7 +44440,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
44440
44440
  const log$9 = createSubsystemLogger("session-maintenance-warning");
44441
44441
  let deliverRuntimePromise = null;
44442
44442
  function loadDeliverRuntime() {
44443
- deliverRuntimePromise ??= import("./deliver-runtime-C08pF1_3.js");
44443
+ deliverRuntimePromise ??= import("./deliver-runtime-zICm26tE.js");
44444
44444
  return deliverRuntimePromise;
44445
44445
  }
44446
44446
  function shouldSendWarning() {
@@ -45021,7 +45021,7 @@ async function stageSandboxMedia(params) {
45021
45021
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(CONFIG_DIR, "media", "remote-cache", sessionKey) : null;
45022
45022
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
45023
45023
  if (!effectiveWorkspaceDir) return;
45024
- await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
45024
+ await fsPromises.mkdir(effectiveWorkspaceDir, { recursive: true });
45025
45025
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
45026
45026
  cfg,
45027
45027
  accountId: ctx.AccountId
@@ -45080,8 +45080,8 @@ async function stageLocalFileIntoRoot(params) {
45080
45080
  }
45081
45081
  async function stageRemoteFileIntoRoot(params) {
45082
45082
  const tmpRoot = resolvePreferredSquidClawTmpDir();
45083
- await fs$1.mkdir(tmpRoot, { recursive: true });
45084
- const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
45083
+ await fsPromises.mkdir(tmpRoot, { recursive: true });
45084
+ const tmpDir = await fsPromises.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
45085
45085
  const tmpPath = path.join(tmpDir, "download");
45086
45086
  try {
45087
45087
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -45092,7 +45092,7 @@ async function stageRemoteFileIntoRoot(params) {
45092
45092
  maxBytes: params.maxBytes
45093
45093
  });
45094
45094
  } finally {
45095
- await fs$1.rm(tmpDir, {
45095
+ await fsPromises.rm(tmpDir, {
45096
45096
  recursive: true,
45097
45097
  force: true
45098
45098
  }).catch(() => {});
@@ -49400,7 +49400,7 @@ const VISION_PROVIDERS = [
49400
49400
  ];
49401
49401
  let imageRuntimePromise = null;
49402
49402
  function loadImageRuntime() {
49403
- imageRuntimePromise ??= import("./image-runtime-cza2NTiZ.js");
49403
+ imageRuntimePromise ??= import("./image-runtime-Cxoxcx04.js");
49404
49404
  return imageRuntimePromise;
49405
49405
  }
49406
49406
  /**
@@ -49466,7 +49466,7 @@ async function describeStickerImage(params) {
49466
49466
  const { provider, model } = resolved;
49467
49467
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
49468
49468
  try {
49469
- const buffer = await fs$1.readFile(imagePath);
49469
+ const buffer = await fsPromises.readFile(imagePath);
49470
49470
  const { describeImageWithModel } = await loadImageRuntime();
49471
49471
  return (await describeImageWithModel({
49472
49472
  buffer,
@@ -51296,7 +51296,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
51296
51296
  hasTypedText
51297
51297
  };
51298
51298
  try {
51299
- const { transcribeFirstAudio } = await import("./audio-preflight-C-JCwUKe.js");
51299
+ const { transcribeFirstAudio } = await import("./audio-preflight-CZ--cSZh.js");
51300
51300
  if (params.abortSignal?.aborted) return {
51301
51301
  hasAudioAttachment,
51302
51302
  hasTypedText
@@ -56252,27 +56252,27 @@ let slackSenderRuntimePromise = null;
56252
56252
  let signalSenderRuntimePromise = null;
56253
56253
  let imessageSenderRuntimePromise = null;
56254
56254
  function loadWhatsAppSenderRuntime() {
56255
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-__ogpmJj.js");
56255
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-CU257URT.js");
56256
56256
  return whatsappSenderRuntimePromise;
56257
56257
  }
56258
56258
  function loadTelegramSenderRuntime() {
56259
- telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-BHaZAs2h.js");
56259
+ telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-Irv0ky5l.js");
56260
56260
  return telegramSenderRuntimePromise;
56261
56261
  }
56262
56262
  function loadDiscordSenderRuntime() {
56263
- discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-r80y9aXF.js");
56263
+ discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-C_9HZQko.js");
56264
56264
  return discordSenderRuntimePromise;
56265
56265
  }
56266
56266
  function loadSlackSenderRuntime() {
56267
- slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-C3UUEG9J.js");
56267
+ slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-DjBCu-RX.js");
56268
56268
  return slackSenderRuntimePromise;
56269
56269
  }
56270
56270
  function loadSignalSenderRuntime() {
56271
- signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-ByJt6qz-.js");
56271
+ signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-BGhjYiu6.js");
56272
56272
  return signalSenderRuntimePromise;
56273
56273
  }
56274
56274
  function loadIMessageSenderRuntime() {
56275
- imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-BmocBgPM.js");
56275
+ imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-BMhGsWds.js");
56276
56276
  return imessageSenderRuntimePromise;
56277
56277
  }
56278
56278
  function createDefaultDeps() {
@@ -57445,10 +57445,10 @@ function estimateDurationSeconds(pcm) {
57445
57445
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
57446
57446
  }
57447
57447
  async function writeWavFile(pcm) {
57448
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredSquidClawTmpDir(), "discord-voice-"));
57448
+ const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredSquidClawTmpDir(), "discord-voice-"));
57449
57449
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
57450
57450
  const wav = buildWavBuffer(pcm);
57451
- await fs$1.writeFile(filePath, wav);
57451
+ await fsPromises.writeFile(filePath, wav);
57452
57452
  scheduleTempCleanup(tempDir);
57453
57453
  return {
57454
57454
  path: filePath,
@@ -57457,7 +57457,7 @@ async function writeWavFile(pcm) {
57457
57457
  }
57458
57458
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
57459
57459
  setTimeout(() => {
57460
- fs$1.rm(tempDir, {
57460
+ fsPromises.rm(tempDir, {
57461
57461
  recursive: true,
57462
57462
  force: true
57463
57463
  }).catch((err) => {
@@ -62100,7 +62100,7 @@ function normalizeAllowList$1(list) {
62100
62100
  async function detectRemoteHostFromCliPath(cliPath) {
62101
62101
  try {
62102
62102
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
62103
- const content = await fs$1.readFile(expanded, "utf8");
62103
+ const content = await fsPromises.readFile(expanded, "utf8");
62104
62104
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
62105
62105
  if (userHostMatch) return userHostMatch[1];
62106
62106
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -69088,15 +69088,15 @@ let slashCommandsRuntimePromise = null;
69088
69088
  let slashDispatchRuntimePromise = null;
69089
69089
  let slashSkillCommandsRuntimePromise = null;
69090
69090
  function loadSlashCommandsRuntime() {
69091
- slashCommandsRuntimePromise ??= import("./slash-commands.runtime-CPlXJtuM.js");
69091
+ slashCommandsRuntimePromise ??= import("./slash-commands.runtime-Bi99B_EP.js");
69092
69092
  return slashCommandsRuntimePromise;
69093
69093
  }
69094
69094
  function loadSlashDispatchRuntime() {
69095
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-BOMEVFk0.js");
69095
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-reuPLnse.js");
69096
69096
  return slashDispatchRuntimePromise;
69097
69097
  }
69098
69098
  function loadSlashSkillCommandsRuntime() {
69099
- slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-Cnfq_5LN.js");
69099
+ slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-DOXmvOtU.js");
69100
69100
  return slashSkillCommandsRuntimePromise;
69101
69101
  }
69102
69102
  const slackExternalArgMenuStore = createSlackExternalArgMenuStore();
@@ -72461,7 +72461,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
72461
72461
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
72462
72462
  let preflightTranscript;
72463
72463
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
72464
- const { transcribeFirstAudio } = await import("./audio-preflight-C-JCwUKe.js");
72464
+ const { transcribeFirstAudio } = await import("./audio-preflight-CZ--cSZh.js");
72465
72465
  preflightTranscript = await transcribeFirstAudio({
72466
72466
  ctx: {
72467
72467
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -73958,7 +73958,7 @@ function resolveCommandHashPath(accountId, botIdentity) {
73958
73958
  }
73959
73959
  async function readCachedCommandHash(accountId, botIdentity) {
73960
73960
  try {
73961
- return (await fs$1.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
73961
+ return (await fsPromises.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
73962
73962
  } catch {
73963
73963
  return null;
73964
73964
  }
@@ -73966,8 +73966,8 @@ async function readCachedCommandHash(accountId, botIdentity) {
73966
73966
  async function writeCachedCommandHash(accountId, botIdentity, hash) {
73967
73967
  const filePath = resolveCommandHashPath(accountId, botIdentity);
73968
73968
  try {
73969
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
73970
- await fs$1.writeFile(filePath, hash, "utf-8");
73969
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
73970
+ await fsPromises.writeFile(filePath, hash, "utf-8");
73971
73971
  } catch {}
73972
73972
  }
73973
73973
  function syncTelegramMenuCommands(params) {
@@ -74811,7 +74811,7 @@ function safeParseState(raw) {
74811
74811
  async function readTelegramUpdateOffset(params) {
74812
74812
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
74813
74813
  try {
74814
- const parsed = safeParseState(await fs$1.readFile(filePath, "utf-8"));
74814
+ const parsed = safeParseState(await fsPromises.readFile(filePath, "utf-8"));
74815
74815
  const expectedBotId = extractBotIdFromToken(params.botToken);
74816
74816
  if (expectedBotId && parsed?.botId && parsed.botId !== expectedBotId) return null;
74817
74817
  if (expectedBotId && parsed?.botId === null) return null;
@@ -74835,7 +74835,7 @@ async function writeTelegramUpdateOffset(params) {
74835
74835
  async function deleteTelegramUpdateOffset(params) {
74836
74836
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
74837
74837
  try {
74838
- await fs$1.unlink(filePath);
74838
+ await fsPromises.unlink(filePath);
74839
74839
  } catch (err) {
74840
74840
  if (err.code === "ENOENT") return;
74841
74841
  throw err;
@@ -75309,7 +75309,7 @@ function createWhatsAppLoginTool() {
75309
75309
  force: Type.Optional(Type.Boolean())
75310
75310
  }),
75311
75311
  execute: async (_toolCallId, args) => {
75312
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-B8P_EAd-.js");
75312
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CX0rs3A6.js");
75313
75313
  if ((args?.action ?? "start") === "wait") {
75314
75314
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
75315
75315
  return {
@@ -75384,23 +75384,23 @@ let webOutboundPromise = null;
75384
75384
  let webLoginPromise = null;
75385
75385
  let whatsappActionsPromise = null;
75386
75386
  function loadWebOutbound() {
75387
- webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-C9OiwkWh.js");
75387
+ webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-BaWH6-ns.js");
75388
75388
  return webOutboundPromise;
75389
75389
  }
75390
75390
  function loadWebLogin() {
75391
- webLoginPromise ??= import("./runtime-whatsapp-login.runtime-DRoK8G8H.js");
75391
+ webLoginPromise ??= import("./runtime-whatsapp-login.runtime-COUEKxmy.js");
75392
75392
  return webLoginPromise;
75393
75393
  }
75394
75394
  function loadWebLoginQr() {
75395
- webLoginQrPromise ??= import("./login-qr-B8P_EAd-.js");
75395
+ webLoginQrPromise ??= import("./login-qr-CX0rs3A6.js");
75396
75396
  return webLoginQrPromise;
75397
75397
  }
75398
75398
  function loadWebChannel() {
75399
- webChannelPromise ??= import("./web-CZhZC1EA.js");
75399
+ webChannelPromise ??= import("./web-w04Gvwqi.js");
75400
75400
  return webChannelPromise;
75401
75401
  }
75402
75402
  function loadWhatsAppActions() {
75403
- whatsappActionsPromise ??= import("./whatsapp-actions-MR_bBjXO.js");
75403
+ whatsappActionsPromise ??= import("./whatsapp-actions-_ca5OtHq.js");
75404
75404
  return whatsappActionsPromise;
75405
75405
  }
75406
75406
  function createRuntimeWhatsApp() {
@@ -76712,7 +76712,7 @@ function resolvePluginTools(params) {
76712
76712
  //#endregion
76713
76713
  //#region src/agents/apply-patch-update.ts
76714
76714
  async function defaultReadFile(filePath) {
76715
- return fs$1.readFile(filePath, "utf8");
76715
+ return fsPromises.readFile(filePath, "utf8");
76716
76716
  }
76717
76717
  async function applyUpdateHunk(filePath, chunks, options) {
76718
76718
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -77033,7 +77033,7 @@ function resolvePatchFileOps(options) {
77033
77033
  const workspaceOnly = options.workspaceOnly !== false;
77034
77034
  return {
77035
77035
  readFile: async (filePath) => {
77036
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
77036
+ if (!workspaceOnly) return await fsPromises.readFile(filePath, "utf8");
77037
77037
  const opened = await openBoundaryFile({
77038
77038
  absolutePath: filePath,
77039
77039
  rootPath: options.cwd,
@@ -77048,7 +77048,7 @@ function resolvePatchFileOps(options) {
77048
77048
  },
77049
77049
  writeFile: async (filePath, content) => {
77050
77050
  if (!workspaceOnly) {
77051
- await fs$1.writeFile(filePath, content, "utf8");
77051
+ await fsPromises.writeFile(filePath, content, "utf8");
77052
77052
  return;
77053
77053
  }
77054
77054
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -77059,8 +77059,8 @@ function resolvePatchFileOps(options) {
77059
77059
  encoding: "utf8"
77060
77060
  });
77061
77061
  },
77062
- remove: (filePath) => fs$1.rm(filePath),
77063
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
77062
+ remove: (filePath) => fsPromises.rm(filePath),
77063
+ mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
77064
77064
  };
77065
77065
  }
77066
77066
  async function ensureDir(filePath, ops) {
@@ -77322,7 +77322,7 @@ const LOOP_WARNING_BUCKET_SIZE = 10;
77322
77322
  const MAX_LOOP_WARNING_KEYS = 256;
77323
77323
  let beforeToolCallRuntimePromise = null;
77324
77324
  function loadBeforeToolCallRuntime() {
77325
- beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-Bba7rXQq.js");
77325
+ beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-duKHqrMc.js");
77326
77326
  return beforeToolCallRuntimePromise;
77327
77327
  }
77328
77328
  function buildAdjustedParamsKey(params) {
@@ -77560,7 +77560,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
77560
77560
  if (!pathParam || !newText) throw err;
77561
77561
  try {
77562
77562
  const absolutePath = resolveHostEditPath(root, pathParam);
77563
- const content = await fs$1.readFile(absolutePath, "utf-8");
77563
+ const content = await fsPromises.readFile(absolutePath, "utf-8");
77564
77564
  const hasNew = content.includes(newText);
77565
77565
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
77566
77566
  if (hasNew && !stillHasOld) return {
@@ -78042,14 +78042,14 @@ function createSandboxEditOperations(params) {
78042
78042
  }
78043
78043
  async function writeHostFile(absolutePath, content) {
78044
78044
  const resolved = path.resolve(absolutePath);
78045
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
78046
- await fs$1.writeFile(resolved, content, "utf-8");
78045
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
78046
+ await fsPromises.writeFile(resolved, content, "utf-8");
78047
78047
  }
78048
78048
  function createHostWriteOperations(root, options) {
78049
78049
  if (!(options?.workspaceOnly ?? false)) return {
78050
78050
  mkdir: async (dir) => {
78051
78051
  const resolved = path.resolve(dir);
78052
- await fs$1.mkdir(resolved, { recursive: true });
78052
+ await fsPromises.mkdir(resolved, { recursive: true });
78053
78053
  },
78054
78054
  writeFile: writeHostFile
78055
78055
  };
@@ -78062,7 +78062,7 @@ function createHostWriteOperations(root, options) {
78062
78062
  cwd: root,
78063
78063
  root
78064
78064
  });
78065
- await fs$1.mkdir(resolved, { recursive: true });
78065
+ await fsPromises.mkdir(resolved, { recursive: true });
78066
78066
  },
78067
78067
  writeFile: async (absolutePath, content) => {
78068
78068
  await writeFileWithinRoot({
@@ -78078,12 +78078,12 @@ function createHostEditOperations(root, options) {
78078
78078
  if (!(options?.workspaceOnly ?? false)) return {
78079
78079
  readFile: async (absolutePath) => {
78080
78080
  const resolved = path.resolve(absolutePath);
78081
- return await fs$1.readFile(resolved);
78081
+ return await fsPromises.readFile(resolved);
78082
78082
  },
78083
78083
  writeFile: writeHostFile,
78084
78084
  access: async (absolutePath) => {
78085
78085
  const resolved = path.resolve(absolutePath);
78086
- await fs$1.access(resolved);
78086
+ await fsPromises.access(resolved);
78087
78087
  }
78088
78088
  };
78089
78089
  return {
@@ -78921,7 +78921,7 @@ async function repairSessionFileIfNeeded(params) {
78921
78921
  };
78922
78922
  let content;
78923
78923
  try {
78924
- content = await fs$1.readFile(sessionFile, "utf-8");
78924
+ content = await fsPromises.readFile(sessionFile, "utf-8");
78925
78925
  } catch (err) {
78926
78926
  if (err?.code === "ENOENT") return {
78927
78927
  repaired: false,
@@ -78969,15 +78969,15 @@ async function repairSessionFileIfNeeded(params) {
78969
78969
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
78970
78970
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
78971
78971
  try {
78972
- const stat = await fs$1.stat(sessionFile).catch(() => null);
78973
- await fs$1.writeFile(backupPath, content, "utf-8");
78974
- if (stat) await fs$1.chmod(backupPath, stat.mode);
78975
- await fs$1.writeFile(tmpPath, cleaned, "utf-8");
78976
- if (stat) await fs$1.chmod(tmpPath, stat.mode);
78977
- await fs$1.rename(tmpPath, sessionFile);
78972
+ const stat = await fsPromises.stat(sessionFile).catch(() => null);
78973
+ await fsPromises.writeFile(backupPath, content, "utf-8");
78974
+ if (stat) await fsPromises.chmod(backupPath, stat.mode);
78975
+ await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
78976
+ if (stat) await fsPromises.chmod(tmpPath, stat.mode);
78977
+ await fsPromises.rename(tmpPath, sessionFile);
78978
78978
  } catch (err) {
78979
78979
  try {
78980
- await fs$1.unlink(tmpPath);
78980
+ await fsPromises.unlink(tmpPath);
78981
78981
  } catch (cleanupErr) {
78982
78982
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
78983
78983
  }
@@ -80749,7 +80749,7 @@ async function prewarmSessionFile(sessionFile) {
80749
80749
  if (!isSessionManagerCacheEnabled()) return;
80750
80750
  if (isSessionManagerCached(sessionFile)) return;
80751
80751
  try {
80752
- const handle = await fs$1.open(sessionFile, "r");
80752
+ const handle = await fsPromises.open(sessionFile, "r");
80753
80753
  try {
80754
80754
  const buffer = Buffer$1.alloc(4096);
80755
80755
  await handle.read(buffer, 0, buffer.length, 0);
@@ -81116,7 +81116,7 @@ async function compactEmbeddedPiSessionDirect(params) {
81116
81116
  } catch (err) {
81117
81117
  return fail(describeUnknownError(err));
81118
81118
  }
81119
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
81119
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
81120
81120
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
81121
81121
  const sandbox = await resolveSandboxContext({
81122
81122
  config: params.config,
@@ -81124,7 +81124,7 @@ async function compactEmbeddedPiSessionDirect(params) {
81124
81124
  workspaceDir: resolvedWorkspace
81125
81125
  });
81126
81126
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
81127
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
81127
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
81128
81128
  await ensureSessionHeader({
81129
81129
  sessionFile: params.sessionFile,
81130
81130
  sessionId: params.sessionId,
@@ -82009,12 +82009,12 @@ function getQueuedFileWriter(writers, filePath) {
82009
82009
  const existing = writers.get(filePath);
82010
82010
  if (existing) return existing;
82011
82011
  const dir = path.dirname(filePath);
82012
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
82012
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
82013
82013
  let queue = Promise.resolve();
82014
82014
  const writer = {
82015
82015
  filePath,
82016
82016
  write: (line) => {
82017
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
82017
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
82018
82018
  }
82019
82019
  };
82020
82020
  writers.set(filePath, writer);
@@ -84932,7 +84932,7 @@ async function prepareSessionManagerForRun(params) {
84932
84932
  return;
84933
84933
  }
84934
84934
  if (params.hadSessionFile && header && !hasAssistant) {
84935
- await fs$1.writeFile(params.sessionFile, "", "utf-8");
84935
+ await fsPromises.writeFile(params.sessionFile, "", "utf-8");
84936
84936
  sm.fileEntries = [header];
84937
84937
  sm.byId?.clear?.();
84938
84938
  sm.labelsById?.clear?.();
@@ -85650,7 +85650,7 @@ async function runEmbeddedAttempt(params) {
85650
85650
  const prevCwd = process.cwd();
85651
85651
  const runAbortController = new AbortController();
85652
85652
  log$3.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"}`);
85653
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
85653
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
85654
85654
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
85655
85655
  const sandbox = await resolveSandboxContext({
85656
85656
  config: params.config,
@@ -85658,7 +85658,7 @@ async function runEmbeddedAttempt(params) {
85658
85658
  workspaceDir: resolvedWorkspace
85659
85659
  });
85660
85660
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
85661
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
85661
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
85662
85662
  let restoreSkillEnv;
85663
85663
  process.chdir(effectiveWorkspace);
85664
85664
  try {
@@ -85928,7 +85928,7 @@ async function runEmbeddedAttempt(params) {
85928
85928
  sessionFile: params.sessionFile,
85929
85929
  warn: (message) => log$3.warn(message)
85930
85930
  });
85931
- const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
85931
+ const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
85932
85932
  const transcriptPolicy = resolveTranscriptPolicy({
85933
85933
  modelApi: params.model?.api,
85934
85934
  provider: params.provider,
@@ -87057,7 +87057,7 @@ async function runEmbeddedPiAgent(params) {
87057
87057
  const copilotAuthRetry = authRetryPending;
87058
87058
  authRetryPending = false;
87059
87059
  attemptedThinking.add(thinkLevel);
87060
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
87060
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
87061
87061
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
87062
87062
  const attempt = await runEmbeddedAttempt({
87063
87063
  sessionId: params.sessionId,
@@ -87863,7 +87863,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
87863
87863
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
87864
87864
  let subagentRegistryRuntimePromise = null;
87865
87865
  function loadSubagentRegistryRuntime() {
87866
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DGTjU9Lb.js");
87866
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-CqgIWcSl.js");
87867
87867
  return subagentRegistryRuntimePromise;
87868
87868
  }
87869
87869
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [