squidclaw 3.0.13 → 3.0.14

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 (307) hide show
  1. package/dist/{accounts-PhtBJ8mA.js → accounts-BjEXPlGc.js} +1 -1
  2. package/dist/{accounts-Xp5W2xrR.js → accounts-CyBVeR-N.js} +1 -1
  3. package/dist/{accounts-BFC1okn9.js → accounts-D095MOmG.js} +7 -7
  4. package/dist/{acp-cli-Dt95OPXW.js → acp-cli-Dd2joFFS.js} +8 -8
  5. package/dist/{agent-scope-tUxfsPYq.js → agent-scope-C1XMay0T.js} +17 -17
  6. package/dist/{agents.config-DNPisWCH.js → agents.config-CRKsD30n.js} +2 -2
  7. package/dist/{api-key-rotation-Y59kKrr0.js → api-key-rotation-BcKKu9kK.js} +1 -1
  8. package/dist/{audio-preflight-DeBM0nTy.js → audio-preflight-g9rsstMv.js} +34 -34
  9. package/dist/{audio-transcription-runner-B7oPsr3U.js → audio-transcription-runner-Bnl3Ubjo.js} +23 -23
  10. package/dist/{audit-Bq3iosCf.js → audit-B4s_5Gn1.js} +29 -29
  11. package/dist/{auth-HYiP0mxx.js → auth-DHSeaNcB.js} +1 -1
  12. package/dist/{auth-choice-Du_pIfBh.js → auth-choice-C-7c5Td_.js} +13 -13
  13. package/dist/{auth-choice-CX8TDXmp.js → auth-choice-D7LiN5Ju.js} +11 -11
  14. package/dist/{auth-choice.apply-helpers-DRfHu1d8.js → auth-choice.apply-helpers-CxO2Wbq-.js} +1 -1
  15. package/dist/{auth-token-BQRI3c6e.js → auth-token-BxYYHBlc.js} +1 -1
  16. package/dist/{bonjour-discovery-BenDpM0y.js → bonjour-discovery-mtNewKSx.js} +1 -1
  17. package/dist/{browser-cli-Et8PyJjA.js → browser-cli-I1fzIVmS.js} +12 -12
  18. package/dist/build-info.json +2 -2
  19. package/dist/{call-DbkLm3eP.js → call-DkR5OGhh.js} +10 -10
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-account-context-C_WQRa6U.js → channel-account-context-e4ysObLI.js} +5 -5
  22. package/dist/{channel-activity-7kixHIgY.js → channel-activity-CCjlTlcN.js} +1 -1
  23. package/dist/{channel-options-D0TjqxeO.js → channel-options-BL5mHe-R.js} +3 -3
  24. package/dist/{channel-selection-BwbXcgj2.js → channel-selection-D_20zq3H.js} +1 -1
  25. package/dist/{channel-web-lfZ3VOOl.js → channel-web-C7Iij0H0.js} +16 -16
  26. package/dist/{channels-cli-Hr4vekE6.js → channels-cli-BMiEn81Y.js} +92 -92
  27. package/dist/{channels-status-issues-DeoqSoo-.js → channels-status-issues-N9kzQrD8.js} +1 -1
  28. package/dist/{chrome-gIqO4t7T.js → chrome-BNfSmFAM.js} +4 -4
  29. package/dist/{clawbot-cli-C-jGxnTq.js → clawbot-cli-B6-68gsT.js} +11 -11
  30. package/dist/cli/daemon-cli.js +1 -1
  31. package/dist/{cli-BH62lCfL.js → cli-ByaubO_B.js} +72 -72
  32. package/dist/{client-CeaUCJtL.js → client-BURktNyH.js} +2 -2
  33. package/dist/{command-secret-targets-BF4WzaME.js → command-secret-targets-WwcPUFAf.js} +4 -4
  34. package/dist/{commands-CD6EMOiw.js → commands-CiY9HjRt.js} +1 -1
  35. package/dist/{commands-registry-DCUj1QOi.js → commands-registry-0bpX7A_Q.js} +3 -3
  36. package/dist/{completion-cli-BIY_jjYY.js → completion-cli-8PdK97J-.js} +12 -12
  37. package/dist/{config-cli-DvNViMXW.js → config-cli-ClomIMw7.js} +7 -7
  38. package/dist/{config-guard-DwgnWjmj.js → config-guard-rLrk7eSS.js} +16 -16
  39. package/dist/{config-validation-CcqZ--gE.js → config-validation-BQEaXMk7.js} +3 -3
  40. package/dist/{configure-B5Zuhebc.js → configure-CoXGul3l.js} +17 -17
  41. package/dist/{control-ui-assets-x69xyZH-.js → control-ui-assets-Bz7TCLpb.js} +1 -1
  42. package/dist/{cron-cli-Bv-X4msQ.js → cron-cli-C3iKBccc.js} +11 -11
  43. package/dist/{daemon-cli-B-8-rGND.js → daemon-cli-BVcrlw5o.js} +15 -15
  44. package/dist/{daemon-install-2y4HHhYl.js → daemon-install-CXDWHEEO.js} +4 -4
  45. package/dist/{daemon-install-helpers-Cdo6Pryw.js → daemon-install-helpers-a4pGEsbA.js} +11 -11
  46. package/dist/{deliver-CVl43oM1.js → deliver-B1sllFkh.js} +7 -7
  47. package/dist/deliver-runtime-CaV7seKv.js +61 -0
  48. package/dist/deps-send-discord.runtime-DbS5pxta.js +36 -0
  49. package/dist/deps-send-imessage.runtime-Ji753_F7.js +35 -0
  50. package/dist/deps-send-signal.runtime-DLJqvPLf.js +34 -0
  51. package/dist/deps-send-slack.runtime-DrFxeZ1I.js +32 -0
  52. package/dist/{deps-send-telegram.runtime-C9lz8bf0.js → deps-send-telegram.runtime-CF-Ylrvr.js} +16 -16
  53. package/dist/deps-send-whatsapp.runtime-BOE0Ke6v.js +118 -0
  54. package/dist/{devices-cli-BT8K0hdG.js → devices-cli-Dn_norz3.js} +8 -8
  55. package/dist/{diagnostic-5bqrhGEp.js → diagnostic-CNl71AzW.js} +1 -1
  56. package/dist/{diagnostics-C0CazfQM.js → diagnostics-DZ99A0EW.js} +5 -5
  57. package/dist/{directory-cli-BZcT9ie1.js → directory-cli-ZzwXkW89.js} +7 -7
  58. package/dist/{dns-cli-CPYaeASu.js → dns-cli-DipYQjtY.js} +5 -5
  59. package/dist/{dock-CVTqzMqE.js → dock-C7N1CmcP.js} +4 -4
  60. package/dist/{docs-cli-C50vGyDh.js → docs-cli-C-Izm9Tb.js} +4 -4
  61. package/dist/{doctor-completion-Emprau8v.js → doctor-completion-CGmYWy0n.js} +2 -2
  62. package/dist/{doctor-config-flow-DSA-JE3n.js → doctor-config-flow-DDWA3Z2D.js} +15 -15
  63. package/dist/{enable-CAYj5OhY.js → enable-RJyJVP_B.js} +1 -1
  64. package/dist/{exec-approvals-allowlist-BO4EEQUI.js → exec-approvals-allowlist-Bu_oaDJC.js} +1 -1
  65. package/dist/{exec-approvals-cli-DSOHdWJR.js → exec-approvals-cli-Csducy9L.js} +16 -16
  66. package/dist/{exec-safe-bin-runtime-policy-CSnpe1AT.js → exec-safe-bin-runtime-policy-DRQwt8kj.js} +2 -2
  67. package/dist/{fetch-guard-VcWeni3c.js → fetch-guard-DNykKlIv.js} +1 -1
  68. package/dist/{fs-safe-CjHYKGbt.js → fs-safe-CKHYu4Vz.js} +24 -24
  69. package/dist/{gateway-cli-B2fScwuY.js → gateway-cli-CUph5Eqo.js} +152 -152
  70. package/dist/{gateway-rpc-DpqZnhyz.js → gateway-rpc-DoKw40aG.js} +1 -1
  71. package/dist/{health-BZcB9SMe.js → health-Cia3g9r1.js} +11 -11
  72. package/dist/{hooks-cli-BylHgZ52.js → hooks-cli-LDbU3XMU.js} +80 -80
  73. package/dist/{hooks-status-DqGd74DG.js → hooks-status-Dd_iWcBZ.js} +1 -1
  74. package/dist/{image-CulZw1up.js → image-D2a7rcK1.js} +5 -5
  75. package/dist/{image-ops-BpsIdA2j.js → image-ops-BIWika4g.js} +10 -10
  76. package/dist/image-runtime-DTxVPe7Z.js +55 -0
  77. package/dist/index.js +82 -82
  78. package/dist/{inspect-D5T8Bbzl.js → inspect-C3PHuODr.js} +4 -4
  79. package/dist/{install-safe-path-BoN-MLvX.js → install-safe-path-iCmVuopp.js} +25 -25
  80. package/dist/{installs-CPHMcmNj.js → installs-CyjlehlR.js} +9 -9
  81. package/dist/{ipv4-Bwl9ruCP.js → ipv4-CWVOQw5T.js} +1 -1
  82. package/dist/{ir-xnftdkOo.js → ir-BPM7rQYq.js} +8 -8
  83. package/dist/{issue-format-8t_ncgFx.js → issue-format-sA05c-6t.js} +1 -1
  84. package/dist/{json-files-DIEpaxUj.js → json-files-D6M304Qd.js} +8 -8
  85. package/dist/{lifecycle-core-DKiBjZdv.js → lifecycle-core-DsfZ6965.js} +5 -5
  86. package/dist/{local-roots-BrxGyJnb.js → local-roots-CMxJ8L4w.js} +3 -3
  87. package/dist/{login-CxDYXbgx.js → login-BjtBaVVG.js} +3 -3
  88. package/dist/{login-qr-zf4B1lpU.js → login-qr-JfRlpd7I.js} +6 -6
  89. package/dist/{logs-cli-CJAe1_dv.js → logs-cli-gv2Ql7GE.js} +9 -9
  90. package/dist/{manager-DBgRFvYb.js → manager-XeZQ6ws7.js} +14 -14
  91. package/dist/{manager-runtime-Dl31cGh-.js → manager-runtime-BvGqzQIY.js} +9 -9
  92. package/dist/{manifest-registry-Cx3mB9zS.js → manifest-registry-BaUPjNKb.js} +1 -1
  93. package/dist/{memory-cli-Bhoc-n_1.js → memory-cli-BUJHSsW6.js} +12 -12
  94. package/dist/{model-DYzjrxpA.js → model-Jy6fO59G.js} +2 -2
  95. package/dist/{model-catalog-kpDOW8eY.js → model-catalog-BfoWgIDd.js} +3 -3
  96. package/dist/{model-picker-BZwK54QT.js → model-picker-CxmHVCE1.js} +4 -4
  97. package/dist/{model-selection-ZV3PuYVR.js → model-selection-QgM_TOjC.js} +16 -16
  98. package/dist/{models-cli-BIxlIOFr.js → models-cli-DlbNL6it.js} +81 -81
  99. package/dist/{models-config-BLdDYoxi.js → models-config-DOD5jluc.js} +6 -6
  100. package/dist/{node-cli-6uYJccbd.js → node-cli-uJ5lFzxj.js} +33 -33
  101. package/dist/{node-command-policy-CKTXVa3D.js → node-command-policy-CwVo8Z1X.js} +1 -1
  102. package/dist/{node-service-DGPVb5ri.js → node-service-xGYkt3vb.js} +1 -1
  103. package/dist/{nodes-cli-CXLRfAYx.js → nodes-cli-eauCMbSr.js} +16 -16
  104. package/dist/{nodes-screen-C-tuRhA1.js → nodes-screen-iR_FzGNs.js} +7 -7
  105. package/dist/{npm-pack-install-DgSn7djE.js → npm-pack-install-s-mP9K0z.js} +18 -18
  106. package/dist/{npm-resolution-gw3vFNTB.js → npm-resolution-Ck7yFIM2.js} +4 -4
  107. package/dist/{onboard-CCaYDSO2.js → onboard-aISMp4Kt.js} +6 -6
  108. package/dist/{onboard-channels-DQnP5d3Y.js → onboard-channels-CELkEQUS.js} +21 -21
  109. package/dist/{onboard-custom-CJohrPzT.js → onboard-custom-BmAzWYbD.js} +4 -4
  110. package/dist/{onboard-helpers-Bcs_1b81.js → onboard-helpers-DRk4Y5uA.js} +10 -10
  111. package/dist/{onboard-hooks-A23nqe_3.js → onboard-hooks-lk1sMnDf.js} +4 -4
  112. package/dist/{onboard-remote-Hf9sTDHl.js → onboard-remote-Bj9cR8kF.js} +4 -4
  113. package/dist/{onboard-skills-Cpc8o6sG.js → onboard-skills-eRpyQ1la.js} +4 -4
  114. package/dist/{onboarding-wx00blu5.js → onboarding-Bl4RDn6W.js} +14 -14
  115. package/dist/{onboarding.finalize-B8wqvggG.js → onboarding.finalize-Bm7_INHb.js} +85 -85
  116. package/dist/{onboarding.gateway-config-CvWq5i_X.js → onboarding.gateway-config-BPyk6gwr.js} +18 -18
  117. package/dist/{onboarding.secret-input-CIN4p8mg.js → onboarding.secret-input-DlDt-I2O.js} +1 -1
  118. package/dist/{openai-model-default-BYfJa19m.js → openai-model-default-DnYP1Em1.js} +2 -2
  119. package/dist/{outbound-B3RZI-ai.js → outbound-BQtnr_z2.js} +3 -3
  120. package/dist/{outbound-attachment-BATDqOuj.js → outbound-attachment-WnXMTJC4.js} +2 -2
  121. package/dist/{pairing-cli-FMIw0yL6.js → pairing-cli-BsU-YnVT.js} +8 -8
  122. package/dist/{pairing-labels-MH31IXn_.js → pairing-labels-BXfoinTP.js} +1 -1
  123. package/dist/{pairing-store-KII9MIZX.js → pairing-store-C1FvWpDK.js} +3 -3
  124. package/dist/{path-alias-guards-B7H6jIIw.js → path-alias-guards-CCRXJArp.js} +3 -3
  125. package/dist/{path-safety-3wUzDqI9.js → path-safety-BWiXz6D4.js} +1 -1
  126. package/dist/{paths-BguvT84s.js → paths-Bg6h1q3v.js} +9 -9
  127. package/dist/{pi-embedded-helpers-D8WkqLZt.js → pi-embedded-helpers-DctimJJI.js} +6 -6
  128. package/dist/{pi-model-discovery-Bfyzj3Lq.js → pi-model-discovery-D63dINOn.js} +1 -1
  129. package/dist/{pi-model-discovery-runtime-nh-zh_Bp.js → pi-model-discovery-runtime-CcXGQcru.js} +5 -5
  130. package/dist/{pi-tools.before-tool-call.runtime-D4V6gUzq.js → pi-tools.before-tool-call.runtime-BMb_b90y.js} +5 -5
  131. package/dist/{pi-tools.policy-DCE9mhtw.js → pi-tools.policy-CXvZtJB7.js} +5 -5
  132. package/dist/{plugin-auto-enable-BJw5Rcbx.js → plugin-auto-enable-DMABTEO-.js} +3 -3
  133. package/dist/{plugin-registry-V0H8DaZf.js → plugin-registry-BSlUIHKX.js} +3 -3
  134. package/dist/plugin-sdk/accounts-B6gye1Jd.js +46 -0
  135. package/dist/plugin-sdk/accounts-C-BT6Po7.js +288 -0
  136. package/dist/plugin-sdk/accounts-DQDXV8eB.js +35 -0
  137. package/dist/plugin-sdk/active-listener-DZCohPuZ.js +50 -0
  138. package/dist/plugin-sdk/api-key-rotation-CrX0fvDj.js +181 -0
  139. package/dist/plugin-sdk/audio-preflight-xnWAFqH-.js +69 -0
  140. package/dist/plugin-sdk/audio-transcription-runner-BDmtq7-q.js +2176 -0
  141. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +58 -0
  142. package/dist/plugin-sdk/channel-activity-JjLRpUa_.js +94 -0
  143. package/dist/plugin-sdk/channel-web-DNWsxhYh.js +2256 -0
  144. package/dist/plugin-sdk/chrome-B5PWOUbr.js +2415 -0
  145. package/dist/plugin-sdk/commands-registry-BKeyJUxK.js +1125 -0
  146. package/dist/plugin-sdk/config-FhBFLsNm.js +17911 -0
  147. package/dist/plugin-sdk/deliver-DEbTlzFy.js +1694 -0
  148. package/dist/plugin-sdk/deliver-runtime-CO2uP-r9.js +32 -0
  149. package/dist/plugin-sdk/deps-send-discord.runtime-DIPW0tR4.js +23 -0
  150. package/dist/plugin-sdk/deps-send-imessage.runtime-ByGjRa1H.js +22 -0
  151. package/dist/plugin-sdk/deps-send-signal.runtime-Ca1awu4L.js +21 -0
  152. package/dist/plugin-sdk/deps-send-slack.runtime-CRzWCVkC.js +19 -0
  153. package/dist/plugin-sdk/deps-send-telegram.runtime-BWyavKp9.js +24 -0
  154. package/dist/plugin-sdk/deps-send-whatsapp.runtime-cC_XvHV8.js +57 -0
  155. package/dist/plugin-sdk/diagnostic-Dv9S12vm.js +319 -0
  156. package/dist/plugin-sdk/errors-B8oJXuCF.js +54 -0
  157. package/dist/plugin-sdk/fetch-guard-W_A4uSz2.js +156 -0
  158. package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +352 -0
  159. package/dist/plugin-sdk/image-BSFy8d1M.js +2310 -0
  160. package/dist/plugin-sdk/image-ops-DN17S88I.js +584 -0
  161. package/dist/plugin-sdk/image-runtime-5YO31sjU.js +25 -0
  162. package/dist/plugin-sdk/imessage.js +2 -2
  163. package/dist/plugin-sdk/index.js +50 -50
  164. package/dist/plugin-sdk/ir-JaPZ0yKH.js +1296 -0
  165. package/dist/plugin-sdk/local-roots-BTW3ifco.js +186 -0
  166. package/dist/plugin-sdk/logger-DDdrdbDu.js +1163 -0
  167. package/dist/plugin-sdk/login-BXGRny-S.js +57 -0
  168. package/dist/plugin-sdk/login-qr-DTs92ap8.js +320 -0
  169. package/dist/plugin-sdk/manager-DzFj9oHX.js +3917 -0
  170. package/dist/plugin-sdk/manager-runtime-DrpyZvO0.js +15 -0
  171. package/dist/plugin-sdk/mattermost.js +3 -3
  172. package/dist/plugin-sdk/outbound-CQ7uBBML.js +212 -0
  173. package/dist/plugin-sdk/outbound-attachment-dTE6EVdX.js +19 -0
  174. package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +43 -0
  175. package/dist/plugin-sdk/paths-C6W4VHoa.js +166 -0
  176. package/dist/plugin-sdk/pi-embedded-helpers-CfzQPXDC.js +9627 -0
  177. package/dist/plugin-sdk/pi-model-discovery-Bt6B0MAj.js +134 -0
  178. package/dist/plugin-sdk/pi-model-discovery-runtime-BcgXpTmL.js +8 -0
  179. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DYJQxhuo.js +354 -0
  180. package/dist/plugin-sdk/plugins-6NxPd6TS.js +864 -0
  181. package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +38 -0
  182. package/dist/plugin-sdk/pw-ai-BFK39pwE.js +1938 -0
  183. package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +1448 -0
  184. package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +1011 -0
  185. package/dist/plugin-sdk/redact-BoNEjbpF.js +319 -0
  186. package/dist/plugin-sdk/reply-DgcrQBKL.js +98828 -0
  187. package/dist/plugin-sdk/resolve-outbound-target-CbaJ-kc2.js +40 -0
  188. package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +1994 -0
  189. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-jkgyeVsN.js +10 -0
  190. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DdLJJ1YC.js +19 -0
  191. package/dist/plugin-sdk/send-BSoMbeqA.js +3135 -0
  192. package/dist/plugin-sdk/send-Byyfc20_.js +503 -0
  193. package/dist/plugin-sdk/send-CI-xWEs7.js +2587 -0
  194. package/dist/plugin-sdk/send-DzP9EJqK.js +540 -0
  195. package/dist/plugin-sdk/send-MlSZ82sA.js +414 -0
  196. package/dist/plugin-sdk/session-DFy97tfW.js +169 -0
  197. package/dist/plugin-sdk/signal.js +2 -2
  198. package/dist/plugin-sdk/skill-commands-yum46YuA.js +342 -0
  199. package/dist/plugin-sdk/skills-DUphJGKn.js +1428 -0
  200. package/dist/plugin-sdk/slash-commands.runtime-5UW5KLyR.js +13 -0
  201. package/dist/plugin-sdk/slash-dispatch.runtime-4oQ2P_qo.js +52 -0
  202. package/dist/plugin-sdk/slash-skill-commands.runtime-y_mOLyS7.js +16 -0
  203. package/dist/plugin-sdk/ssrf-B3XRWBsP.js +202 -0
  204. package/dist/plugin-sdk/store-DFvIhzWZ.js +81 -0
  205. package/dist/plugin-sdk/subagent-registry-runtime-DtKXhKtl.js +52 -0
  206. package/dist/plugin-sdk/tables-bDM_jlLP.js +55 -0
  207. package/dist/{target-errors-DlzVutaL.js → plugin-sdk/target-errors-BVBW25Y3.js} +4 -4
  208. package/dist/plugin-sdk/thinking-Bu-w5mW5.js +1206 -0
  209. package/dist/plugin-sdk/tokens-CTIYTLWu.js +52 -0
  210. package/dist/plugin-sdk/tool-images-D0G_giwP.js +274 -0
  211. package/dist/plugin-sdk/web-DSXk7XCb.js +56 -0
  212. package/dist/plugin-sdk/whatsapp-actions-BOyA0Uuj.js +80 -0
  213. package/dist/{plugins-Cl_3OCyK.js → plugins-H53_4Gxb.js} +2 -2
  214. package/dist/{plugins-cli-CN2fty5U.js → plugins-cli-CQkxWdnt.js} +82 -82
  215. package/dist/{ports-Bop51hz6.js → ports-CKXuQJST.js} +2 -2
  216. package/dist/{ports-6i8smH3e.js → ports-CXjhFS7T.js} +1 -1
  217. package/dist/{program-context-ehHvCw9L.js → program-context-tphS7xu7.js} +41 -41
  218. package/dist/{prompt-select-styled-CSMviLJY.js → prompt-select-styled-DL2p1pfi.js} +40 -40
  219. package/dist/{provider-auth-helpers-CgNWlsqs.js → provider-auth-helpers-BqWiy-r-.js} +5 -5
  220. package/dist/{proxy-env-CRD7fbqp.js → proxy-env-D1tz4Z6a.js} +1 -1
  221. package/dist/{push-apns-DoYzx3tH.js → push-apns-C-YdARdy.js} +5 -5
  222. package/dist/{pw-ai-yKJj32B4.js → pw-ai-SVeR5d2o.js} +18 -18
  223. package/dist/{qmd-manager-AYDUTXmc.js → qmd-manager-B-XXhWVw.js} +20 -20
  224. package/dist/{qr-cli-cikAHfYn.js → qr-cli-B4fjHvn1.js} +2 -2
  225. package/dist/{query-expansion-CV2Z4_mS.js → query-expansion-Bf60ekMj.js} +12 -12
  226. package/dist/{redact-snapshot-C9T1079O.js → redact-snapshot-DRqM8Vla.js} +1 -1
  227. package/dist/{register.agent-BlxoyQt0.js → register.agent-BdiM0qkl.js} +97 -97
  228. package/dist/register.configure-wANXDbzQ.js +164 -0
  229. package/dist/{register.maintenance-C-Yv2mHK.js → register.maintenance-CMAt3Nl8.js} +93 -93
  230. package/dist/{register.message-CUNXtFOj.js → register.message-CbxQ5lgi.js} +73 -73
  231. package/dist/{register.onboard-BKXm1mL7.js → register.onboard-CbiTdKQX.js} +18 -18
  232. package/dist/{register.setup-DaT9AIAz.js → register.setup-KhsHMx2v.js} +21 -21
  233. package/dist/{register.status-health-sessions-7yZmSvUL.js → register.status-health-sessions-Bw5YDa_s.js} +86 -86
  234. package/dist/{reply-CeUYZhWu.js → reply-BWXzPVSJ.js} +149 -149
  235. package/dist/{rpc-BDpuIniF.js → rpc-DlN_W_L1.js} +1 -1
  236. package/dist/{runtime-Dw7Yw4OJ.js → runtime-Ci7mtLvH.js} +3 -3
  237. package/dist/{runtime-config-collectors-jhc1wDBg.js → runtime-config-collectors-CKmGmTQ5.js} +1 -1
  238. package/dist/{runtime-whatsapp-login.runtime-f293Z_er.js → runtime-whatsapp-login.runtime-Bxqt5jiO.js} +7 -7
  239. package/dist/runtime-whatsapp-outbound.runtime-B-UsXwvb.js +32 -0
  240. package/dist/{sandbox-BgsD1lf7.js → sandbox-Cuk1IWYT.js} +18 -18
  241. package/dist/{sandbox-cli-BnvmhiN9.js → sandbox-cli-BxgFeoAD.js} +25 -25
  242. package/dist/{secrets-cli-D7-K7P82.js → secrets-cli-DODLX29x.js} +11 -11
  243. package/dist/{security-cli-BFJAgNYH.js → security-cli-Ch83VrLP.js} +42 -42
  244. package/dist/{send-BvlkshC1.js → send-BfVgGHK6.js} +6 -6
  245. package/dist/{send-tK0H9nwq.js → send-Bw8LNCit.js} +5 -5
  246. package/dist/{send-CDms2FQA.js → send-C9UJKBSM.js} +4 -4
  247. package/dist/{send-CPFNtAP8.js → send-DX_fR45p.js} +11 -11
  248. package/dist/{send-C3Aeswif.js → send-FTQaNJPj.js} +8 -8
  249. package/dist/{server-OfKJG6Bo.js → server-Q9nnn04D.js} +20 -20
  250. package/dist/{server-context-B-0KzcZE.js → server-context-CX28l04l.js} +12 -12
  251. package/dist/{server-lifecycle-D6VNKVvQ.js → server-lifecycle-yAUMTJhv.js} +2 -2
  252. package/dist/{server-middleware-7cXowO4W.js → server-middleware-DIc4WJOS.js} +1 -1
  253. package/dist/{server-node-events-DWQhNK-0.js → server-node-events-qU3NTncQ.js} +73 -73
  254. package/dist/{service-Dk-UMipf.js → service-D4y0_Q5Z.js} +15 -15
  255. package/dist/{session-Da18ilJ0.js → session-CZJ5Ux6-.js} +1 -1
  256. package/dist/{sessions-CmjcNTJ3.js → sessions-C5H_BZSr.js} +15 -15
  257. package/dist/{shared-BzY0v0tS.js → shared-CxdBWgym.js} +3 -3
  258. package/dist/{shared-BcB-feC8.js → shared-DwNtcoQg.js} +1 -1
  259. package/dist/{skill-commands-BEWkEml_.js → skill-commands-BSRPnzXp.js} +5 -5
  260. package/dist/{skill-scanner-Bb5SMbCz.js → skill-scanner-rdr9cQew.js} +6 -6
  261. package/dist/{skills-Rnr7zPen.js → skills-BnBOxX1c.js} +3 -3
  262. package/dist/{skills-cli-BowIIIzH.js → skills-cli-CUgeYV1y.js} +5 -5
  263. package/dist/{skills-install-BLNCKuex.js → skills-install-BE04CZ6e.js} +6 -6
  264. package/dist/{skills-status-BCU-5otB.js → skills-status-DQw98BkG.js} +1 -1
  265. package/dist/{slash-commands.runtime-BgVgQ-Eh.js → slash-commands.runtime-BPtL2Qev.js} +11 -11
  266. package/dist/slash-dispatch.runtime-Cf9dq1k6.js +113 -0
  267. package/dist/{slash-skill-commands.runtime-4dOiU6U0.js → slash-skill-commands.runtime-9BYoANpd.js} +15 -15
  268. package/dist/{squidclaw-root-BcB7vo9M.js → squidclaw-root-CnE19yKj.js} +8 -8
  269. package/dist/{status-COTRBaam.js → status-rb5Jz-VU.js} +26 -26
  270. package/dist/{status.update-BUql4yz-.js → status.update-BNODJGA9.js} +2 -2
  271. package/dist/{store-aa15VM42.js → store-PDMRmC5Z.js} +5 -5
  272. package/dist/subagent-registry-runtime-CTiA365B.js +113 -0
  273. package/dist/{system-cli-CgCUbH_M.js → system-cli-DJYyTO07.js} +9 -9
  274. package/dist/{system-run-command-Ny1SbbOD.js → system-run-command-BgnCyvrj.js} +1 -1
  275. package/dist/{systemd-zbKl2Q3E.js → systemd-fP8tz4aL.js} +9 -9
  276. package/dist/{systemd-hints-C9_7ouv7.js → systemd-hints-BG_t__ZD.js} +6 -6
  277. package/dist/{systemd-linger-BM6JyzAr.js → systemd-linger-DgK8uuKY.js} +1 -1
  278. package/dist/{tables-jZMI8hLl.js → tables-DUSFF9-W.js} +1 -1
  279. package/dist/{tailnet-gTCqUBfJ.js → tailnet-CLkKVwDq.js} +1 -1
  280. package/dist/target-errors-BxwxgIDk.js +195 -0
  281. package/dist/{tool-images-DTl_LHMa.js → tool-images-FhSCiY-o.js} +1 -1
  282. package/dist/{tui-kDK-MAOc.js → tui-BMOMT-ma.js} +6 -6
  283. package/dist/{tui-cli-Dxy6fKkU.js → tui-cli-kqZ_-2Mz.js} +32 -32
  284. package/dist/{update-ZUTn6Jsu.js → update-blK9j2ag.js} +3 -3
  285. package/dist/{update-cli-D_QEiKyz.js → update-cli-gLKrP8UQ.js} +102 -102
  286. package/dist/{update-runner-DOXPSA_-.js → update-runner-C2UrF4oZ.js} +16 -16
  287. package/dist/web-VmjeceHS.js +117 -0
  288. package/dist/{webhooks-cli-D1iehjkP.js → webhooks-cli-BEXPBILa.js} +6 -6
  289. package/dist/{whatsapp-actions-hN5bwjWU.js → whatsapp-actions-DhiV181U.js} +17 -17
  290. package/dist/{with-timeout-BjaANd4G.js → with-timeout-BCAfkt03.js} +3 -3
  291. package/dist/{workspace-BITWyKG4.js → workspace-B-k5DNiQ.js} +1 -1
  292. package/dist/{workspace-dirs-B7O9BAHp.js → workspace-dirs-B2dNahfe.js} +1 -1
  293. package/dist/{ws-Bx8lpC1N.js → ws-DKt5HoA5.js} +2 -2
  294. package/dist/{wsl-wYxPJ8EO.js → wsl-CgxzAzRe.js} +2 -2
  295. package/package.json +1 -1
  296. package/dist/deliver-runtime-uwleBPlq.js +0 -61
  297. package/dist/deps-send-discord.runtime-CuZGpA7H.js +0 -36
  298. package/dist/deps-send-imessage.runtime-ByVW2alP.js +0 -35
  299. package/dist/deps-send-signal.runtime-Dl4GaCbQ.js +0 -34
  300. package/dist/deps-send-slack.runtime-BEV10FHj.js +0 -32
  301. package/dist/deps-send-whatsapp.runtime-Di0SEPNK.js +0 -118
  302. package/dist/image-runtime-B5Q4J9w2.js +0 -55
  303. package/dist/register.configure-CGptmTVZ.js +0 -164
  304. package/dist/runtime-whatsapp-outbound.runtime-uDhEmWe1.js +0 -32
  305. package/dist/slash-dispatch.runtime-D83FVeU7.js +0 -113
  306. package/dist/subagent-registry-runtime-CrT5RSO9.js +0 -113
  307. package/dist/web-DtSq_aUB.js +0 -117
@@ -2,13 +2,13 @@ import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
2
2
  import { E as normalizeLogLevel, R as FLAG_TERMINATOR, a as logVerbose, c as shouldLogVerbose, k as resolvePreferredSquidClawTmpDir, m as getChildLogger, p as theme, t as danger, u as warn, z as consumeRootOptionToken } from "./globals-xfUIfxbE.js";
3
3
  import { C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, S as shortenHomePath, d as isRecord$1, i as clampInt, l as escapeRegExp, m as normalizeE164, t as CONFIG_DIR, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./utils-DMGXr25O.js";
4
4
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-44rmAw5o.js";
5
- import { D as filterBootstrapFilesForSession, E as ensureAgentWorkspace, M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, _ as DEFAULT_AGENT_WORKSPACE_DIR, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, h as resolveSessionAgentIds, i as resolveAgentConfig, k as loadWorkspaceBootstrapFiles, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-tUxfsPYq.js";
5
+ import { D as filterBootstrapFilesForSession, E as ensureAgentWorkspace, M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, _ as DEFAULT_AGENT_WORKSPACE_DIR, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, h as resolveSessionAgentIds, i as resolveAgentConfig, k as loadWorkspaceBootstrapFiles, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-C1XMay0T.js";
6
6
  import { d as defaultRuntime, t as createSubsystemLogger, u as createNonExitingRuntime } from "./subsystem-DC87CPVS.js";
7
7
  import { C as isCronRunSessionKey, 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-CIXZm7v4.js";
8
- import { a as openBoundaryFileSync, h as normalizeWindowsPathForComparison, i as openBoundaryFile, t as resolveSquidClawPackageRoot } from "./squidclaw-root-BcB7vo9M.js";
8
+ import { a as openBoundaryFileSync, h as normalizeWindowsPathForComparison, i as openBoundaryFile, t as resolveSquidClawPackageRoot } from "./squidclaw-root-CnE19yKj.js";
9
9
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-DEmOJ9C3.js";
10
10
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-Dfgi8amS.js";
11
- import { $ as buildUsageWithNoCost, $n as validateJsonSchemaValue, $t as loadConfig, Ai as resolveAuthProfileDisplayLabel, B as retryAsync, Bi as DEFAULT_MODEL, Dn as parseDurationMs, Dt as resolveTokenExpiryState, Ei as withFileLock, Et as evaluateStoredCredentialEligibility, Fi as normalizeSecretInput, Gn as isAvatarDataUrl, J as OLLAMA_NATIVE_BASE_URL, Jn as isPathWithinRoot, Jr as resolveDiscordPreviewStreamMode, Kn as isAvatarHttpUrl, Q as buildStreamErrorAssistantMessage, Qn as resolveAvatarMime, Ri as splitTrailingAuthProfile, S as resolveThinkingDefault, St as markAuthProfileUsed, Ti as resolveSquidClawAgentDir, Tt as resolveApiKeyForProfile, Vi as DEFAULT_PROVIDER, Vr as applyMergePatch, Wn as AVATAR_MAX_BYTES, X as buildAssistantMessage, Xn as isWorkspaceRelativeAvatarPath, Xr as resolveSlackStreamingMode, Y as createOllamaStreamFn, Yn as isSupportedLocalAvatarExtension, Yr as resolveSlackNativeStreaming, Z as buildAssistantMessageWithZeroUsage, _n as parseNonNegativeByteSize, _t as resolveAuthProfileOrder, ai as getShellPathFromLoginShell, an as writeConfigFile, ar as getConfigValueAtPath, at as resolveEnvApiKey, bt as isProfileInCooldown, c as modelKey, cn as TELEGRAM_COMMAND_NAME_PATTERN, cr as unsetConfigValueAtPath, d as normalizeProviderId, di as dedupeProfileIds, et as getApiKeyForModel, f as parseModelRef, fi as listProfilesForProvider, fn as isInboundPathAllowed, g as resolveDefaultModelForAgent, gn as normalizeScpRemoteHost, gr as buildEnforcedShellCommand, h as resolveConfiguredModelRef, hn as resolveIMessageRemoteAttachmentRoots, i as findNormalizedProviderValue, ir as unsetConfigOverride, l as normalizeModelRef$2, li as resolveOwnerDisplaySetting, ln as normalizeTelegramCommandName, mn as resolveIMessageAttachmentRoots, n as buildConfiguredAllowlistKeys, ni as resolveAgentMaxConcurrent, nr as resetConfigOverrides, nt as requireApiKey, o as inferUniqueProviderFromConfiguredModels, oi as resolveShellEnvFallbackTimeoutMs, on as validateConfigObjectWithPlugins, or as parseConfigPath, ot as resolveModelAuthMode, pi as markAuthProfileGood, qr as mapStreamingModeToSlackLegacyDraftStreamMode, r as buildModelAliasIndex, rn as resolveConfigSnapshotHash, rr as setConfigOverride, rt as resolveApiKeyForProvider, s as isCliProvider, sr as setConfigValueAtPath, t as buildAllowedModelSet, ti as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, tn as readConfigFileSnapshot, tr as getConfigOverrides, tt as getCustomProviderApiKey, un as resolveTelegramCustomCommands, v as resolveModelRefFromString, vi as ensureAuthProfileStore, vt as clearExpiredCooldowns, wi as resolveAuthStorePathForDisplay, wt as resolveProfilesUnavailableReason, x as resolveSubagentSpawnModelSelection, xt as markAuthProfileFailure, y as resolveReasoningDefault, yt as getSoonestCooldownExpiry, z as resolveRetryConfig, zi as DEFAULT_CONTEXT_TOKENS } from "./model-selection-ZV3PuYVR.js";
11
+ import { $ as buildUsageWithNoCost, $n as validateJsonSchemaValue, $t as loadConfig, Ai as resolveAuthProfileDisplayLabel, B as retryAsync, Bi as DEFAULT_MODEL, Dn as parseDurationMs, Dt as resolveTokenExpiryState, Ei as withFileLock, Et as evaluateStoredCredentialEligibility, Fi as normalizeSecretInput, Gn as isAvatarDataUrl, J as OLLAMA_NATIVE_BASE_URL, Jn as isPathWithinRoot, Jr as resolveDiscordPreviewStreamMode, Kn as isAvatarHttpUrl, Q as buildStreamErrorAssistantMessage, Qn as resolveAvatarMime, Ri as splitTrailingAuthProfile, S as resolveThinkingDefault, St as markAuthProfileUsed, Ti as resolveSquidClawAgentDir, Tt as resolveApiKeyForProfile, Vi as DEFAULT_PROVIDER, Vr as applyMergePatch, Wn as AVATAR_MAX_BYTES, X as buildAssistantMessage, Xn as isWorkspaceRelativeAvatarPath, Xr as resolveSlackStreamingMode, Y as createOllamaStreamFn, Yn as isSupportedLocalAvatarExtension, Yr as resolveSlackNativeStreaming, Z as buildAssistantMessageWithZeroUsage, _n as parseNonNegativeByteSize, _t as resolveAuthProfileOrder, ai as getShellPathFromLoginShell, an as writeConfigFile, ar as getConfigValueAtPath, at as resolveEnvApiKey, bt as isProfileInCooldown, c as modelKey, cn as TELEGRAM_COMMAND_NAME_PATTERN, cr as unsetConfigValueAtPath, d as normalizeProviderId, di as dedupeProfileIds, et as getApiKeyForModel, f as parseModelRef, fi as listProfilesForProvider, fn as isInboundPathAllowed, g as resolveDefaultModelForAgent, gn as normalizeScpRemoteHost, gr as buildEnforcedShellCommand, h as resolveConfiguredModelRef, hn as resolveIMessageRemoteAttachmentRoots, i as findNormalizedProviderValue, ir as unsetConfigOverride, l as normalizeModelRef$2, li as resolveOwnerDisplaySetting, ln as normalizeTelegramCommandName, mn as resolveIMessageAttachmentRoots, n as buildConfiguredAllowlistKeys, ni as resolveAgentMaxConcurrent, nr as resetConfigOverrides, nt as requireApiKey, o as inferUniqueProviderFromConfiguredModels, oi as resolveShellEnvFallbackTimeoutMs, on as validateConfigObjectWithPlugins, or as parseConfigPath, ot as resolveModelAuthMode, pi as markAuthProfileGood, qr as mapStreamingModeToSlackLegacyDraftStreamMode, r as buildModelAliasIndex, rn as resolveConfigSnapshotHash, rr as setConfigOverride, rt as resolveApiKeyForProvider, s as isCliProvider, sr as setConfigValueAtPath, t as buildAllowedModelSet, ti as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, tn as readConfigFileSnapshot, tr as getConfigOverrides, tt as getCustomProviderApiKey, un as resolveTelegramCustomCommands, v as resolveModelRefFromString, vi as ensureAuthProfileStore, vt as clearExpiredCooldowns, wi as resolveAuthStorePathForDisplay, wt as resolveProfilesUnavailableReason, x as resolveSubagentSpawnModelSelection, xt as markAuthProfileFailure, y as resolveReasoningDefault, yt as getSoonestCooldownExpiry, z as resolveRetryConfig, zi as DEFAULT_CONTEXT_TOKENS } from "./model-selection-QgM_TOjC.js";
12
12
  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-CpzNS8-a.js";
13
13
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Xh3EqlDM.js";
14
14
  import { t as formatCliCommand } from "./command-format-z1t1m-Kx.js";
@@ -16,94 +16,94 @@ import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
16
16
  import { t as isTruthyEnvValue } from "./env-DeB9SeAQ.js";
17
17
  import { n as isDangerousHostEnvVarName } from "./host-env-security-DkAVVuaw.js";
18
18
  import { r as VERSION } from "./env-vars-DpyLwTjM.js";
19
- 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-Cx3mB9zS.js";
20
- 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-CVTqzMqE.js";
19
+ 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-BaUPjNKb.js";
20
+ 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-C7N1CmcP.js";
21
21
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-C3sn1gEK.js";
22
22
  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-CSxZnhaV.js";
23
- 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 chunkDiscordTextWithMode, 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 createDiscordClient, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordRestClient, 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-CPFNtAP8.js";
24
- 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-Cl_3OCyK.js";
25
- import { $ as resolveMainSessionKey, B as resolveSessionKey, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveThreadFlag, H as resolveChannelResetConfig, J as resolveFreshSessionTotalTokens, K as DEFAULT_RESET_TRIGGERS, Q as resolveExplicitAgentSessionKey, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as resolveSessionResetPolicy, V as evaluateSessionFreshness, W as resolveSessionResetType, X as canonicalizeMainSessionAlias, Y as setSessionRuntimeModel, Z as resolveAgentMainSessionKey, _ as isCacheEnabled, a as resolveAndPersistSessionFile, at as buildGroupDisplayName, b as deliveryContextKey, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, j as readSessionTitleFieldsFromTranscript, lt as resolveSessionLockMaxHoldFromTimeout, n as parseSessionThreadInfo, o as loadSessionStore, ot as resolveGroupSessionKey, q as mergeSessionEntry, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, st as acquireSessionWriteLock, t as extractDeliveryInfo, tt as deriveSessionMetaPatch, u as updateLastRoute, ut as resolveConversationLabel, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-CmjcNTJ3.js";
26
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveAutoImageModel, c as buildRandomTempFilePath, f as resolveAttachmentKind, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as normalizeMediaAttachments, m as resolveTimeoutMs$1, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as resolveConcurrency, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as registerUnhandledRejectionHandler, v as applyTemplate } from "./audio-transcription-runner-B7oPsr3U.js";
27
- 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-CulZw1up.js";
28
- import { t as ensureSquidClawModelsJson } from "./models-config-BLdDYoxi.js";
29
- 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-D8WkqLZt.js";
30
- 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-BgsD1lf7.js";
31
- import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-gIqO4t7T.js";
32
- import { i as isLoopbackHost } from "./ws-Bx8lpC1N.js";
23
+ 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 chunkDiscordTextWithMode, 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 createDiscordClient, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordRestClient, 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-DX_fR45p.js";
24
+ 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-H53_4Gxb.js";
25
+ import { $ as resolveMainSessionKey, B as resolveSessionKey, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveThreadFlag, H as resolveChannelResetConfig, J as resolveFreshSessionTotalTokens, K as DEFAULT_RESET_TRIGGERS, Q as resolveExplicitAgentSessionKey, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as resolveSessionResetPolicy, V as evaluateSessionFreshness, W as resolveSessionResetType, X as canonicalizeMainSessionAlias, Y as setSessionRuntimeModel, Z as resolveAgentMainSessionKey, _ as isCacheEnabled, a as resolveAndPersistSessionFile, at as buildGroupDisplayName, b as deliveryContextKey, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, j as readSessionTitleFieldsFromTranscript, lt as resolveSessionLockMaxHoldFromTimeout, n as parseSessionThreadInfo, o as loadSessionStore, ot as resolveGroupSessionKey, q as mergeSessionEntry, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, st as acquireSessionWriteLock, t as extractDeliveryInfo, tt as deriveSessionMetaPatch, u as updateLastRoute, ut as resolveConversationLabel, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-C5H_BZSr.js";
26
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveAutoImageModel, c as buildRandomTempFilePath, f as resolveAttachmentKind, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as normalizeMediaAttachments, m as resolveTimeoutMs$1, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as resolveConcurrency, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as registerUnhandledRejectionHandler, v as applyTemplate } from "./audio-transcription-runner-Bnl3Ubjo.js";
27
+ 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-D2a7rcK1.js";
28
+ import { t as ensureSquidClawModelsJson } from "./models-config-DOD5jluc.js";
29
+ 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-DctimJJI.js";
30
+ 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-Cuk1IWYT.js";
31
+ import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BNfSmFAM.js";
32
+ import { i as isLoopbackHost } from "./ws-DKt5HoA5.js";
33
33
  import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-CR1rTMla.js";
34
- import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-B-0KzcZE.js";
35
- 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-Rnr7zPen.js";
36
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-B7H6jIIw.js";
37
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BguvT84s.js";
34
+ import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-CX28l04l.js";
35
+ 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-BnBOxX1c.js";
36
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CCRXJArp.js";
37
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-Bg6h1q3v.js";
38
38
  import { a as testRegexWithBoundedInput, i as compileSafeRegex, n as redactSensitiveText } from "./redact-BHOzodtN.js";
39
39
  import { i as formatUncaughtError, r as formatErrorMessage, s as readErrorName } from "./errors-oMAXKmXG.js";
40
- import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-CjHYKGbt.js";
41
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-CRD7fbqp.js";
42
- 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-BpsIdA2j.js";
43
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-aa15VM42.js";
44
- import { s as resolveLsofCommandSync } from "./ports-Bop51hz6.js";
40
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-CKHYu4Vz.js";
41
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-D1tz4Z6a.js";
42
+ 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-BIWika4g.js";
43
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-PDMRmC5Z.js";
44
+ import { s as resolveLsofCommandSync } from "./ports-CKXuQJST.js";
45
45
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CO1VkMEt.js";
46
- import { r as writeJsonAtomic } from "./json-files-DIEpaxUj.js";
47
- import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, y as resolveAccountEntry } from "./accounts-BFC1okn9.js";
48
- import { r as resolveIMessageAccount } from "./accounts-Xp5W2xrR.js";
49
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-PhtBJ8mA.js";
50
- import { a as validateSlackBlocksArray, c as resolveSlackWebClientOptions, i as parseSlackBlocksInput, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as buildSlackBlocksFallbackText, r as normalizeSlackOutboundText, s as createSlackWebClient, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CDms2FQA.js";
46
+ import { r as writeJsonAtomic } from "./json-files-D6M304Qd.js";
47
+ import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, y as resolveAccountEntry } from "./accounts-D095MOmG.js";
48
+ import { r as resolveIMessageAccount } from "./accounts-CyBVeR-N.js";
49
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BjEXPlGc.js";
50
+ import { a as validateSlackBlocksArray, c as resolveSlackWebClientOptions, i as parseSlackBlocksInput, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as buildSlackBlocksFallbackText, r as normalizeSlackOutboundText, s as createSlackWebClient, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-C9UJKBSM.js";
51
51
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-B9v1dJHA.js";
52
52
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-K1purPKY.js";
53
53
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-BtGqtPqd.js";
54
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-DTl_LHMa.js";
54
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-FhSCiY-o.js";
55
55
  import { n as formatToolSummary, r as resolveToolDisplay } from "./tool-display-j0Y5n8v7.js";
56
56
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BTot-we4.js";
57
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-VcWeni3c.js";
58
- import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError, t as getAgentScopedMediaLocalRoots } from "./local-roots-BrxGyJnb.js";
59
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-kpDOW8eY.js";
57
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-DNykKlIv.js";
58
+ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError, t as getAgentScopedMediaLocalRoots } from "./local-roots-CMxJ8L4w.js";
59
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BfoWgIDd.js";
60
60
  import { t as makeProxyFetch } from "./proxy-fetch-C4C5I8Js.js";
61
61
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-B4_ntOSs.js";
62
- import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-CVl43oM1.js";
63
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CD6EMOiw.js";
64
- 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-DCUj1QOi.js";
65
- import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CeaUCJtL.js";
66
- import { a as randomIdempotencyKey, f as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-DbkLm3eP.js";
62
+ import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-B1sllFkh.js";
63
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CiY9HjRt.js";
64
+ 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-0bpX7A_Q.js";
65
+ import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-BURktNyH.js";
66
+ import { a as randomIdempotencyKey, f as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-DkR5OGhh.js";
67
67
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-C7NOAcr0.js";
68
68
  import { n as formatTimeAgo } from "./format-relative-DQEv82Cs.js";
69
- 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-KII9MIZX.js";
69
+ 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-C1FvWpDK.js";
70
70
  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-B7ShUtAS.js";
71
- import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-BO4EEQUI.js";
72
- import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-CSnpe1AT.js";
73
- 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-C-tuRhA1.js";
71
+ import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-Bu_oaDJC.js";
72
+ import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-DRQwt8kj.js";
73
+ 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-iR_FzGNs.js";
74
74
  import { t as killProcessTree$1 } from "./kill-tree-B3eImH-F.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-DlzVutaL.js";
76
- import { t as formatExecCommand } from "./system-run-command-Ny1SbbOD.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-BxwxgIDk.js";
76
+ import { t as formatExecCommand } from "./system-run-command-BgnCyvrj.js";
77
77
  import { i as parsePairingList, n as resolveNodeIdFromNodeList, r as parseNodeList, t as resolveNodeFromNodeList } from "./node-resolve-BeyCAGYI.js";
78
78
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-XLSvPvzN.js";
79
- 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-5bqrhGEp.js";
79
+ 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-CNl71AzW.js";
80
80
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Cgt3YiSW.js";
81
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-BjaANd4G.js";
81
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-BCAfkt03.js";
82
82
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-wKNR_8O8.js";
83
- 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 renderTelegramHtmlText, a as reactMessageTelegram, b as splitTelegramCaption, c as sendStickerTelegram, d as resolveCronStorePath, g as markdownToTelegramHtml, h as markdownToTelegramChunks, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, l as resolveTelegramVoiceSend, m as isRecoverableTelegramNetworkError, n as createForumTopicTelegram, o as sendMessageTelegram, p as wasSentByBot, q as toLocationContext, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as loadCronStore, v as wrapFileReferencesInHtml, w as buildSenderName, x as withTelegramApiErrorLogging, y as resolveTelegramFetch, z as resolveTelegramReplyId } from "./send-C3Aeswif.js";
84
- import { i as buildModelAliasLines, n as resolveModel } from "./model-DYzjrxpA.js";
85
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bfyzj3Lq.js";
86
- 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-xnftdkOo.js";
87
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BwbXcgj2.js";
83
+ 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 renderTelegramHtmlText, a as reactMessageTelegram, b as splitTelegramCaption, c as sendStickerTelegram, d as resolveCronStorePath, g as markdownToTelegramHtml, h as markdownToTelegramChunks, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, l as resolveTelegramVoiceSend, m as isRecoverableTelegramNetworkError, n as createForumTopicTelegram, o as sendMessageTelegram, p as wasSentByBot, q as toLocationContext, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as loadCronStore, v as wrapFileReferencesInHtml, w as buildSenderName, x as withTelegramApiErrorLogging, y as resolveTelegramFetch, z as resolveTelegramReplyId } from "./send-FTQaNJPj.js";
84
+ import { i as buildModelAliasLines, n as resolveModel } from "./model-Jy6fO59G.js";
85
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-D63dINOn.js";
86
+ 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-BPM7rQYq.js";
87
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-D_20zq3H.js";
88
88
  import { n as normalizePollInput } from "./polls-Dc-wk6Mc.js";
89
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BJw5Rcbx.js";
90
- import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-tK0H9nwq.js";
89
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DMABTEO-.js";
90
+ import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-Bw8LNCit.js";
91
91
  import { t as buildOutboundMediaLoadOptions } from "./load-options-CQcHt2f2.js";
92
- 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-BvlkshC1.js";
92
+ 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-BfVgGHK6.js";
93
93
  import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined$1 } from "./allow-from-CsQJtEUH.js";
94
- 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-DCE9mhtw.js";
95
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-7kixHIgY.js";
96
- import { t as convertMarkdownTables } from "./tables-jZMI8hLl.js";
94
+ 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-CXvZtJB7.js";
95
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CCjlTlcN.js";
96
+ import { t as convertMarkdownTables } from "./tables-DUSFF9-W.js";
97
97
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CN1u5zht.js";
98
- 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-BEWkEml_.js";
98
+ 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-BSRPnzXp.js";
99
99
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-cUtJy06F.js";
100
- import { s as resolveCommandSecretRefsViaGateway, t as getAgentRuntimeCommandSecretTargetIds } from "./command-secret-targets-BF4WzaME.js";
100
+ import { s as resolveCommandSecretRefsViaGateway, t as getAgentRuntimeCommandSecretTargetIds } from "./command-secret-targets-WwcPUFAf.js";
101
101
  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-B4DbYmaL.js";
102
- import { r as detectBinary } from "./onboard-helpers-Bcs_1b81.js";
103
- import { t as resolvePairingIdLabel } from "./pairing-labels-MH31IXn_.js";
102
+ import { r as detectBinary } from "./onboard-helpers-DRk4Y5uA.js";
103
+ import { t as resolvePairingIdLabel } from "./pairing-labels-BXfoinTP.js";
104
104
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-CpAFclrX.js";
105
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-Bhoc-n_1.js";
106
- import { r as resolveMemorySearchConfig } from "./manager-DBgRFvYb.js";
105
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BUJHSsW6.js";
106
+ import { r as resolveMemorySearchConfig } from "./manager-XeZQ6ws7.js";
107
107
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DL-XRpny.js";
108
108
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-JYGbA1vc.js";
109
109
  import { t as parseTimeoutMs } from "./parse-timeout-BwFhOmlt.js";
@@ -115,7 +115,7 @@ import os, { homedir } from "node:os";
115
115
  import path, { isAbsolute } from "node:path";
116
116
  import JSON5 from "json5";
117
117
  import { inspect } from "node:util";
118
- import fsPromises, { appendFile, mkdir } from "node:fs/promises";
118
+ import fs$1, { appendFile, mkdir } from "node:fs/promises";
119
119
  import { execFileSync, spawn, spawnSync } from "node:child_process";
120
120
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
121
121
  import { complete, completeSimple, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
@@ -1081,7 +1081,7 @@ async function runWithConcurrency(tasks, limit) {
1081
1081
  //#region src/media-understanding/echo-transcript.ts
1082
1082
  let deliverRuntimePromise$2 = null;
1083
1083
  function loadDeliverRuntime$2() {
1084
- deliverRuntimePromise$2 ??= import("./deliver-runtime-uwleBPlq.js");
1084
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-CaV7seKv.js");
1085
1085
  return deliverRuntimePromise$2;
1086
1086
  }
1087
1087
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -2430,7 +2430,7 @@ async function resolveAgentSessionDirs(stateDir) {
2430
2430
  const agentsDir = path.join(stateDir, "agents");
2431
2431
  let entries = [];
2432
2432
  try {
2433
- entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
2433
+ entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
2434
2434
  } catch (err) {
2435
2435
  if (err.code === "ENOENT") return [];
2436
2436
  throw err;
@@ -8309,7 +8309,7 @@ async function resolveSandboxWorkdir(params) {
8309
8309
  cwd: process.cwd(),
8310
8310
  root: params.sandbox.workspaceDir
8311
8311
  });
8312
- if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
8312
+ if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
8313
8313
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
8314
8314
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
8315
8315
  return {
@@ -9553,13 +9553,13 @@ async function validateScriptFileForShellBleed(params) {
9553
9553
  cwd: params.workdir,
9554
9554
  root: params.workdir
9555
9555
  });
9556
- stat = await fsPromises.stat(absPath);
9556
+ stat = await fs$1.stat(absPath);
9557
9557
  } catch {
9558
9558
  return;
9559
9559
  }
9560
9560
  if (!stat.isFile()) return;
9561
9561
  if (stat.size > 512 * 1024) return;
9562
- const content = await fsPromises.readFile(absPath, "utf-8");
9562
+ const content = await fs$1.readFile(absPath, "utf-8");
9563
9563
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
9564
9564
  if (first) {
9565
9565
  const idx = first.index;
@@ -15604,7 +15604,7 @@ function normalizeReplyPayload(payload, opts = {}) {
15604
15604
  */
15605
15605
  let deliverRuntimePromise$1 = null;
15606
15606
  function loadDeliverRuntime$1() {
15607
- deliverRuntimePromise$1 ??= import("./deliver-runtime-uwleBPlq.js");
15607
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-CaV7seKv.js");
15608
15608
  return deliverRuntimePromise$1;
15609
15609
  }
15610
15610
  /**
@@ -16354,7 +16354,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
16354
16354
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
16355
16355
  let subagentRegistryRuntimePromise = null;
16356
16356
  function loadSubagentRegistryRuntime() {
16357
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-CrT5RSO9.js");
16357
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-CTiA365B.js");
16358
16358
  return subagentRegistryRuntimePromise;
16359
16359
  }
16360
16360
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -26091,7 +26091,7 @@ const VISION_PROVIDERS = [
26091
26091
  ];
26092
26092
  let imageRuntimePromise = null;
26093
26093
  function loadImageRuntime() {
26094
- imageRuntimePromise ??= import("./image-runtime-B5Q4J9w2.js");
26094
+ imageRuntimePromise ??= import("./image-runtime-DTxVPe7Z.js");
26095
26095
  return imageRuntimePromise;
26096
26096
  }
26097
26097
  /**
@@ -26157,7 +26157,7 @@ async function describeStickerImage(params) {
26157
26157
  const { provider, model } = resolved;
26158
26158
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
26159
26159
  try {
26160
- const buffer = await fsPromises.readFile(imagePath);
26160
+ const buffer = await fs$1.readFile(imagePath);
26161
26161
  const { describeImageWithModel } = await loadImageRuntime();
26162
26162
  return (await describeImageWithModel({
26163
26163
  buffer,
@@ -28441,7 +28441,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
28441
28441
  hasTypedText
28442
28442
  };
28443
28443
  try {
28444
- const { transcribeFirstAudio } = await import("./audio-preflight-DeBM0nTy.js");
28444
+ const { transcribeFirstAudio } = await import("./audio-preflight-g9rsstMv.js");
28445
28445
  if (params.abortSignal?.aborted) return {
28446
28446
  hasAudioAttachment,
28447
28447
  hasTypedText
@@ -32278,7 +32278,7 @@ function ensureContextWindowCacheLoaded() {
32278
32278
  await ensureSquidClawModelsJson(cfg);
32279
32279
  } catch {}
32280
32280
  try {
32281
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-Bfyzj3Lq.js").then((n) => n.r);
32281
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-D63dINOn.js").then((n) => n.r);
32282
32282
  const agentDir = resolveSquidClawAgentDir();
32283
32283
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
32284
32284
  applyDiscoveredContextWindows({
@@ -32731,7 +32731,7 @@ async function createModelSelectionState(params) {
32731
32731
  }
32732
32732
  }
32733
32733
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
32734
- const { ensureAuthProfileStore } = await import("./model-selection-ZV3PuYVR.js").then((n) => n.ht);
32734
+ const { ensureAuthProfileStore } = await import("./model-selection-QgM_TOjC.js").then((n) => n.ht);
32735
32735
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
32736
32736
  const providerKey = normalizeProviderId(provider);
32737
32737
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -36781,18 +36781,18 @@ function appendImagePathsToPrompt(prompt, paths) {
36781
36781
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
36782
36782
  }
36783
36783
  async function writeCliImages(images) {
36784
- const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "squidclaw-cli-images-"));
36784
+ const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "squidclaw-cli-images-"));
36785
36785
  const paths = [];
36786
36786
  for (let i = 0; i < images.length; i += 1) {
36787
36787
  const image = images[i];
36788
36788
  const ext = resolveImageExtension(image.mimeType);
36789
36789
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
36790
36790
  const buffer = Buffer.from(image.data, "base64");
36791
- await fsPromises.writeFile(filePath, buffer, { mode: 384 });
36791
+ await fs$1.writeFile(filePath, buffer, { mode: 384 });
36792
36792
  paths.push(filePath);
36793
36793
  }
36794
36794
  const cleanup = async () => {
36795
- await fsPromises.rm(tempDir, {
36795
+ await fs$1.rm(tempDir, {
36796
36796
  recursive: true,
36797
36797
  force: true
36798
36798
  });
@@ -37826,27 +37826,27 @@ let slackSenderRuntimePromise = null;
37826
37826
  let signalSenderRuntimePromise = null;
37827
37827
  let imessageSenderRuntimePromise = null;
37828
37828
  function loadWhatsAppSenderRuntime() {
37829
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-Di0SEPNK.js");
37829
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-BOE0Ke6v.js");
37830
37830
  return whatsappSenderRuntimePromise;
37831
37831
  }
37832
37832
  function loadTelegramSenderRuntime() {
37833
- telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-C9lz8bf0.js");
37833
+ telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-CF-Ylrvr.js");
37834
37834
  return telegramSenderRuntimePromise;
37835
37835
  }
37836
37836
  function loadDiscordSenderRuntime() {
37837
- discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-CuZGpA7H.js");
37837
+ discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-DbS5pxta.js");
37838
37838
  return discordSenderRuntimePromise;
37839
37839
  }
37840
37840
  function loadSlackSenderRuntime() {
37841
- slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-BEV10FHj.js");
37841
+ slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-DrFxeZ1I.js");
37842
37842
  return slackSenderRuntimePromise;
37843
37843
  }
37844
37844
  function loadSignalSenderRuntime() {
37845
- signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-Dl4GaCbQ.js");
37845
+ signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-DLJqvPLf.js");
37846
37846
  return signalSenderRuntimePromise;
37847
37847
  }
37848
37848
  function loadIMessageSenderRuntime() {
37849
- imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-ByVW2alP.js");
37849
+ imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-Ji753_F7.js");
37850
37850
  return imessageSenderRuntimePromise;
37851
37851
  }
37852
37852
  function createDefaultDeps() {
@@ -39053,10 +39053,10 @@ function estimateDurationSeconds(pcm) {
39053
39053
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
39054
39054
  }
39055
39055
  async function writeWavFile(pcm) {
39056
- const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredSquidClawTmpDir(), "discord-voice-"));
39056
+ const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredSquidClawTmpDir(), "discord-voice-"));
39057
39057
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
39058
39058
  const wav = buildWavBuffer(pcm);
39059
- await fsPromises.writeFile(filePath, wav);
39059
+ await fs$1.writeFile(filePath, wav);
39060
39060
  scheduleTempCleanup(tempDir);
39061
39061
  return {
39062
39062
  path: filePath,
@@ -39065,7 +39065,7 @@ async function writeWavFile(pcm) {
39065
39065
  }
39066
39066
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
39067
39067
  setTimeout(() => {
39068
- fsPromises.rm(tempDir, {
39068
+ fs$1.rm(tempDir, {
39069
39069
  recursive: true,
39070
39070
  force: true
39071
39071
  }).catch((err) => {
@@ -43708,7 +43708,7 @@ function normalizeAllowList$1(list) {
43708
43708
  async function detectRemoteHostFromCliPath(cliPath) {
43709
43709
  try {
43710
43710
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
43711
- const content = await fsPromises.readFile(expanded, "utf8");
43711
+ const content = await fs$1.readFile(expanded, "utf8");
43712
43712
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
43713
43713
  if (userHostMatch) return userHostMatch[1];
43714
43714
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -50696,15 +50696,15 @@ let slashCommandsRuntimePromise = null;
50696
50696
  let slashDispatchRuntimePromise = null;
50697
50697
  let slashSkillCommandsRuntimePromise = null;
50698
50698
  function loadSlashCommandsRuntime() {
50699
- slashCommandsRuntimePromise ??= import("./slash-commands.runtime-BgVgQ-Eh.js");
50699
+ slashCommandsRuntimePromise ??= import("./slash-commands.runtime-BPtL2Qev.js");
50700
50700
  return slashCommandsRuntimePromise;
50701
50701
  }
50702
50702
  function loadSlashDispatchRuntime() {
50703
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-D83FVeU7.js");
50703
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-Cf9dq1k6.js");
50704
50704
  return slashDispatchRuntimePromise;
50705
50705
  }
50706
50706
  function loadSlashSkillCommandsRuntime() {
50707
- slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-4dOiU6U0.js");
50707
+ slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-9BYoANpd.js");
50708
50708
  return slashSkillCommandsRuntimePromise;
50709
50709
  }
50710
50710
  const slackExternalArgMenuStore = createSlackExternalArgMenuStore();
@@ -56396,7 +56396,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
56396
56396
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
56397
56397
  let preflightTranscript;
56398
56398
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
56399
- const { transcribeFirstAudio } = await import("./audio-preflight-DeBM0nTy.js");
56399
+ const { transcribeFirstAudio } = await import("./audio-preflight-g9rsstMv.js");
56400
56400
  preflightTranscript = await transcribeFirstAudio({
56401
56401
  ctx: {
56402
56402
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -57893,7 +57893,7 @@ function resolveCommandHashPath(accountId, botIdentity) {
57893
57893
  }
57894
57894
  async function readCachedCommandHash(accountId, botIdentity) {
57895
57895
  try {
57896
- return (await fsPromises.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
57896
+ return (await fs$1.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
57897
57897
  } catch {
57898
57898
  return null;
57899
57899
  }
@@ -57901,8 +57901,8 @@ async function readCachedCommandHash(accountId, botIdentity) {
57901
57901
  async function writeCachedCommandHash(accountId, botIdentity, hash) {
57902
57902
  const filePath = resolveCommandHashPath(accountId, botIdentity);
57903
57903
  try {
57904
- await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
57905
- await fsPromises.writeFile(filePath, hash, "utf-8");
57904
+ await fs$1.mkdir(path.dirname(filePath), { recursive: true });
57905
+ await fs$1.writeFile(filePath, hash, "utf-8");
57906
57906
  } catch {}
57907
57907
  }
57908
57908
  function syncTelegramMenuCommands(params) {
@@ -58746,7 +58746,7 @@ function safeParseState(raw) {
58746
58746
  async function readTelegramUpdateOffset(params) {
58747
58747
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
58748
58748
  try {
58749
- const parsed = safeParseState(await fsPromises.readFile(filePath, "utf-8"));
58749
+ const parsed = safeParseState(await fs$1.readFile(filePath, "utf-8"));
58750
58750
  const expectedBotId = extractBotIdFromToken(params.botToken);
58751
58751
  if (expectedBotId && parsed?.botId && parsed.botId !== expectedBotId) return null;
58752
58752
  if (expectedBotId && parsed?.botId === null) return null;
@@ -58770,7 +58770,7 @@ async function writeTelegramUpdateOffset(params) {
58770
58770
  async function deleteTelegramUpdateOffset(params) {
58771
58771
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
58772
58772
  try {
58773
- await fsPromises.unlink(filePath);
58773
+ await fs$1.unlink(filePath);
58774
58774
  } catch (err) {
58775
58775
  if (err.code === "ENOENT") return;
58776
58776
  throw err;
@@ -59244,7 +59244,7 @@ function createWhatsAppLoginTool() {
59244
59244
  force: Type.Optional(Type.Boolean())
59245
59245
  }),
59246
59246
  execute: async (_toolCallId, args) => {
59247
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-zf4B1lpU.js");
59247
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-JfRlpd7I.js");
59248
59248
  if ((args?.action ?? "start") === "wait") {
59249
59249
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
59250
59250
  return {
@@ -59319,23 +59319,23 @@ let webOutboundPromise = null;
59319
59319
  let webLoginPromise = null;
59320
59320
  let whatsappActionsPromise = null;
59321
59321
  function loadWebOutbound() {
59322
- webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-uDhEmWe1.js");
59322
+ webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-B-UsXwvb.js");
59323
59323
  return webOutboundPromise;
59324
59324
  }
59325
59325
  function loadWebLogin() {
59326
- webLoginPromise ??= import("./runtime-whatsapp-login.runtime-f293Z_er.js");
59326
+ webLoginPromise ??= import("./runtime-whatsapp-login.runtime-Bxqt5jiO.js");
59327
59327
  return webLoginPromise;
59328
59328
  }
59329
59329
  function loadWebLoginQr() {
59330
- webLoginQrPromise ??= import("./login-qr-zf4B1lpU.js");
59330
+ webLoginQrPromise ??= import("./login-qr-JfRlpd7I.js");
59331
59331
  return webLoginQrPromise;
59332
59332
  }
59333
59333
  function loadWebChannel() {
59334
- webChannelPromise ??= import("./web-DtSq_aUB.js");
59334
+ webChannelPromise ??= import("./web-VmjeceHS.js");
59335
59335
  return webChannelPromise;
59336
59336
  }
59337
59337
  function loadWhatsAppActions() {
59338
- whatsappActionsPromise ??= import("./whatsapp-actions-hN5bwjWU.js");
59338
+ whatsappActionsPromise ??= import("./whatsapp-actions-DhiV181U.js");
59339
59339
  return whatsappActionsPromise;
59340
59340
  }
59341
59341
  function createRuntimeWhatsApp() {
@@ -60647,7 +60647,7 @@ function resolvePluginTools(params) {
60647
60647
  //#endregion
60648
60648
  //#region src/agents/apply-patch-update.ts
60649
60649
  async function defaultReadFile(filePath) {
60650
- return fsPromises.readFile(filePath, "utf8");
60650
+ return fs$1.readFile(filePath, "utf8");
60651
60651
  }
60652
60652
  async function applyUpdateHunk(filePath, chunks, options) {
60653
60653
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -60968,7 +60968,7 @@ function resolvePatchFileOps(options) {
60968
60968
  const workspaceOnly = options.workspaceOnly !== false;
60969
60969
  return {
60970
60970
  readFile: async (filePath) => {
60971
- if (!workspaceOnly) return await fsPromises.readFile(filePath, "utf8");
60971
+ if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
60972
60972
  const opened = await openBoundaryFile({
60973
60973
  absolutePath: filePath,
60974
60974
  rootPath: options.cwd,
@@ -60983,7 +60983,7 @@ function resolvePatchFileOps(options) {
60983
60983
  },
60984
60984
  writeFile: async (filePath, content) => {
60985
60985
  if (!workspaceOnly) {
60986
- await fsPromises.writeFile(filePath, content, "utf8");
60986
+ await fs$1.writeFile(filePath, content, "utf8");
60987
60987
  return;
60988
60988
  }
60989
60989
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -60994,8 +60994,8 @@ function resolvePatchFileOps(options) {
60994
60994
  encoding: "utf8"
60995
60995
  });
60996
60996
  },
60997
- remove: (filePath) => fsPromises.rm(filePath),
60998
- mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
60997
+ remove: (filePath) => fs$1.rm(filePath),
60998
+ mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
60999
60999
  };
61000
61000
  }
61001
61001
  async function ensureDir(filePath, ops) {
@@ -62449,7 +62449,7 @@ async function readJsonlFromPath(jsonlPath) {
62449
62449
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
62450
62450
  throw new Error("jsonlPath outside allowed roots");
62451
62451
  }
62452
- const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
62452
+ const canonical = await fs$1.realpath(resolved).catch(() => resolved);
62453
62453
  if (!isInboundPathAllowed({
62454
62454
  filePath: canonical,
62455
62455
  roots
@@ -62457,7 +62457,7 @@ async function readJsonlFromPath(jsonlPath) {
62457
62457
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
62458
62458
  throw new Error("jsonlPath outside allowed roots");
62459
62459
  }
62460
- return await fsPromises.readFile(canonical, "utf8");
62460
+ return await fs$1.readFile(canonical, "utf8");
62461
62461
  }
62462
62462
  const CanvasToolSchema = Type.Object({
62463
62463
  action: stringEnum(CANVAS_ACTIONS),
@@ -63272,27 +63272,27 @@ function resolveRestartSentinelPath(env = process.env) {
63272
63272
  }
63273
63273
  async function writeRestartSentinel(payload, env = process.env) {
63274
63274
  const filePath = resolveRestartSentinelPath(env);
63275
- await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
63275
+ await fs$1.mkdir(path.dirname(filePath), { recursive: true });
63276
63276
  const data = {
63277
63277
  version: 1,
63278
63278
  payload
63279
63279
  };
63280
- await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
63280
+ await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
63281
63281
  return filePath;
63282
63282
  }
63283
63283
  async function readRestartSentinel(env = process.env) {
63284
63284
  const filePath = resolveRestartSentinelPath(env);
63285
63285
  try {
63286
- const raw = await fsPromises.readFile(filePath, "utf-8");
63286
+ const raw = await fs$1.readFile(filePath, "utf-8");
63287
63287
  let parsed;
63288
63288
  try {
63289
63289
  parsed = JSON.parse(raw);
63290
63290
  } catch {
63291
- await fsPromises.unlink(filePath).catch(() => {});
63291
+ await fs$1.unlink(filePath).catch(() => {});
63292
63292
  return null;
63293
63293
  }
63294
63294
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
63295
- await fsPromises.unlink(filePath).catch(() => {});
63295
+ await fs$1.unlink(filePath).catch(() => {});
63296
63296
  return null;
63297
63297
  }
63298
63298
  return parsed;
@@ -63304,7 +63304,7 @@ async function consumeRestartSentinel(env = process.env) {
63304
63304
  const filePath = resolveRestartSentinelPath(env);
63305
63305
  const parsed = await readRestartSentinel(env);
63306
63306
  if (!parsed) return null;
63307
- await fsPromises.unlink(filePath).catch(() => {});
63307
+ await fs$1.unlink(filePath).catch(() => {});
63308
63308
  return parsed;
63309
63309
  }
63310
63310
  function formatRestartSentinelMessage(payload) {
@@ -71476,7 +71476,7 @@ const LOOP_WARNING_BUCKET_SIZE = 10;
71476
71476
  const MAX_LOOP_WARNING_KEYS = 256;
71477
71477
  let beforeToolCallRuntimePromise = null;
71478
71478
  function loadBeforeToolCallRuntime() {
71479
- beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-D4V6gUzq.js");
71479
+ beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-BMb_b90y.js");
71480
71480
  return beforeToolCallRuntimePromise;
71481
71481
  }
71482
71482
  function buildAdjustedParamsKey(params) {
@@ -71714,7 +71714,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
71714
71714
  if (!pathParam || !newText) throw err;
71715
71715
  try {
71716
71716
  const absolutePath = resolveHostEditPath(root, pathParam);
71717
- const content = await fsPromises.readFile(absolutePath, "utf-8");
71717
+ const content = await fs$1.readFile(absolutePath, "utf-8");
71718
71718
  const hasNew = content.includes(newText);
71719
71719
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
71720
71720
  if (hasNew && !stillHasOld) return {
@@ -72196,14 +72196,14 @@ function createSandboxEditOperations(params) {
72196
72196
  }
72197
72197
  async function writeHostFile(absolutePath, content) {
72198
72198
  const resolved = path.resolve(absolutePath);
72199
- await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
72200
- await fsPromises.writeFile(resolved, content, "utf-8");
72199
+ await fs$1.mkdir(path.dirname(resolved), { recursive: true });
72200
+ await fs$1.writeFile(resolved, content, "utf-8");
72201
72201
  }
72202
72202
  function createHostWriteOperations(root, options) {
72203
72203
  if (!(options?.workspaceOnly ?? false)) return {
72204
72204
  mkdir: async (dir) => {
72205
72205
  const resolved = path.resolve(dir);
72206
- await fsPromises.mkdir(resolved, { recursive: true });
72206
+ await fs$1.mkdir(resolved, { recursive: true });
72207
72207
  },
72208
72208
  writeFile: writeHostFile
72209
72209
  };
@@ -72216,7 +72216,7 @@ function createHostWriteOperations(root, options) {
72216
72216
  cwd: root,
72217
72217
  root
72218
72218
  });
72219
- await fsPromises.mkdir(resolved, { recursive: true });
72219
+ await fs$1.mkdir(resolved, { recursive: true });
72220
72220
  },
72221
72221
  writeFile: async (absolutePath, content) => {
72222
72222
  await writeFileWithinRoot({
@@ -72232,12 +72232,12 @@ function createHostEditOperations(root, options) {
72232
72232
  if (!(options?.workspaceOnly ?? false)) return {
72233
72233
  readFile: async (absolutePath) => {
72234
72234
  const resolved = path.resolve(absolutePath);
72235
- return await fsPromises.readFile(resolved);
72235
+ return await fs$1.readFile(resolved);
72236
72236
  },
72237
72237
  writeFile: writeHostFile,
72238
72238
  access: async (absolutePath) => {
72239
72239
  const resolved = path.resolve(absolutePath);
72240
- await fsPromises.access(resolved);
72240
+ await fs$1.access(resolved);
72241
72241
  }
72242
72242
  };
72243
72243
  return {
@@ -73075,7 +73075,7 @@ async function repairSessionFileIfNeeded(params) {
73075
73075
  };
73076
73076
  let content;
73077
73077
  try {
73078
- content = await fsPromises.readFile(sessionFile, "utf-8");
73078
+ content = await fs$1.readFile(sessionFile, "utf-8");
73079
73079
  } catch (err) {
73080
73080
  if (err?.code === "ENOENT") return {
73081
73081
  repaired: false,
@@ -73123,15 +73123,15 @@ async function repairSessionFileIfNeeded(params) {
73123
73123
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
73124
73124
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
73125
73125
  try {
73126
- const stat = await fsPromises.stat(sessionFile).catch(() => null);
73127
- await fsPromises.writeFile(backupPath, content, "utf-8");
73128
- if (stat) await fsPromises.chmod(backupPath, stat.mode);
73129
- await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
73130
- if (stat) await fsPromises.chmod(tmpPath, stat.mode);
73131
- await fsPromises.rename(tmpPath, sessionFile);
73126
+ const stat = await fs$1.stat(sessionFile).catch(() => null);
73127
+ await fs$1.writeFile(backupPath, content, "utf-8");
73128
+ if (stat) await fs$1.chmod(backupPath, stat.mode);
73129
+ await fs$1.writeFile(tmpPath, cleaned, "utf-8");
73130
+ if (stat) await fs$1.chmod(tmpPath, stat.mode);
73131
+ await fs$1.rename(tmpPath, sessionFile);
73132
73132
  } catch (err) {
73133
73133
  try {
73134
- await fsPromises.unlink(tmpPath);
73134
+ await fs$1.unlink(tmpPath);
73135
73135
  } catch (cleanupErr) {
73136
73136
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
73137
73137
  }
@@ -75597,7 +75597,7 @@ async function prewarmSessionFile(sessionFile) {
75597
75597
  if (!isSessionManagerCacheEnabled()) return;
75598
75598
  if (isSessionManagerCached(sessionFile)) return;
75599
75599
  try {
75600
- const handle = await fsPromises.open(sessionFile, "r");
75600
+ const handle = await fs$1.open(sessionFile, "r");
75601
75601
  try {
75602
75602
  const buffer = Buffer$1.alloc(4096);
75603
75603
  await handle.read(buffer, 0, buffer.length, 0);
@@ -75964,7 +75964,7 @@ async function compactEmbeddedPiSessionDirect(params) {
75964
75964
  } catch (err) {
75965
75965
  return fail(describeUnknownError(err));
75966
75966
  }
75967
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
75967
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
75968
75968
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
75969
75969
  const sandbox = await resolveSandboxContext({
75970
75970
  config: params.config,
@@ -75972,7 +75972,7 @@ async function compactEmbeddedPiSessionDirect(params) {
75972
75972
  workspaceDir: resolvedWorkspace
75973
75973
  });
75974
75974
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
75975
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
75975
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
75976
75976
  await ensureSessionHeader({
75977
75977
  sessionFile: params.sessionFile,
75978
75978
  sessionId: params.sessionId,
@@ -76857,12 +76857,12 @@ function getQueuedFileWriter(writers, filePath) {
76857
76857
  const existing = writers.get(filePath);
76858
76858
  if (existing) return existing;
76859
76859
  const dir = path.dirname(filePath);
76860
- const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
76860
+ const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
76861
76861
  let queue = Promise.resolve();
76862
76862
  const writer = {
76863
76863
  filePath,
76864
76864
  write: (line) => {
76865
- queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
76865
+ queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
76866
76866
  }
76867
76867
  };
76868
76868
  writers.set(filePath, writer);
@@ -79780,7 +79780,7 @@ async function prepareSessionManagerForRun(params) {
79780
79780
  return;
79781
79781
  }
79782
79782
  if (params.hadSessionFile && header && !hasAssistant) {
79783
- await fsPromises.writeFile(params.sessionFile, "", "utf-8");
79783
+ await fs$1.writeFile(params.sessionFile, "", "utf-8");
79784
79784
  sm.fileEntries = [header];
79785
79785
  sm.byId?.clear?.();
79786
79786
  sm.labelsById?.clear?.();
@@ -80498,7 +80498,7 @@ async function runEmbeddedAttempt(params) {
80498
80498
  const prevCwd = process.cwd();
80499
80499
  const runAbortController = new AbortController();
80500
80500
  log$6.debug(`embedded run start: runId=${params.runId} sessionId=${params.sessionId} provider=${params.provider} model=${params.modelId} thinking=${params.thinkLevel} messageChannel=${params.messageChannel ?? params.messageProvider ?? "unknown"}`);
80501
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
80501
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
80502
80502
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
80503
80503
  const sandbox = await resolveSandboxContext({
80504
80504
  config: params.config,
@@ -80506,7 +80506,7 @@ async function runEmbeddedAttempt(params) {
80506
80506
  workspaceDir: resolvedWorkspace
80507
80507
  });
80508
80508
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
80509
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
80509
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
80510
80510
  let restoreSkillEnv;
80511
80511
  process.chdir(effectiveWorkspace);
80512
80512
  try {
@@ -80776,7 +80776,7 @@ async function runEmbeddedAttempt(params) {
80776
80776
  sessionFile: params.sessionFile,
80777
80777
  warn: (message) => log$6.warn(message)
80778
80778
  });
80779
- const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
80779
+ const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
80780
80780
  const transcriptPolicy = resolveTranscriptPolicy({
80781
80781
  modelApi: params.model?.api,
80782
80782
  provider: params.provider,
@@ -81905,7 +81905,7 @@ async function runEmbeddedPiAgent(params) {
81905
81905
  const copilotAuthRetry = authRetryPending;
81906
81906
  authRetryPending = false;
81907
81907
  attemptedThinking.add(thinkLevel);
81908
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
81908
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
81909
81909
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
81910
81910
  const attempt = await runEmbeddedAttempt({
81911
81911
  sessionId: params.sessionId,
@@ -84219,7 +84219,7 @@ async function emitResetCommandHooks(params) {
84219
84219
  try {
84220
84220
  const messages = [];
84221
84221
  if (sessionFile) {
84222
- const content = await fsPromises.readFile(sessionFile, "utf-8");
84222
+ const content = await fs$1.readFile(sessionFile, "utf-8");
84223
84223
  for (const line of content.split("\n")) {
84224
84224
  if (!line.trim()) continue;
84225
84225
  try {
@@ -89256,7 +89256,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
89256
89256
  const log$1 = createSubsystemLogger("session-maintenance-warning");
89257
89257
  let deliverRuntimePromise = null;
89258
89258
  function loadDeliverRuntime() {
89259
- deliverRuntimePromise ??= import("./deliver-runtime-uwleBPlq.js");
89259
+ deliverRuntimePromise ??= import("./deliver-runtime-CaV7seKv.js");
89260
89260
  return deliverRuntimePromise;
89261
89261
  }
89262
89262
  function shouldSendWarning() {
@@ -89837,7 +89837,7 @@ async function stageSandboxMedia(params) {
89837
89837
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(CONFIG_DIR, "media", "remote-cache", sessionKey) : null;
89838
89838
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
89839
89839
  if (!effectiveWorkspaceDir) return;
89840
- await fsPromises.mkdir(effectiveWorkspaceDir, { recursive: true });
89840
+ await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
89841
89841
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
89842
89842
  cfg,
89843
89843
  accountId: ctx.AccountId
@@ -89896,8 +89896,8 @@ async function stageLocalFileIntoRoot(params) {
89896
89896
  }
89897
89897
  async function stageRemoteFileIntoRoot(params) {
89898
89898
  const tmpRoot = resolvePreferredSquidClawTmpDir();
89899
- await fsPromises.mkdir(tmpRoot, { recursive: true });
89900
- const tmpDir = await fsPromises.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
89899
+ await fs$1.mkdir(tmpRoot, { recursive: true });
89900
+ const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
89901
89901
  const tmpPath = path.join(tmpDir, "download");
89902
89902
  try {
89903
89903
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -89908,7 +89908,7 @@ async function stageRemoteFileIntoRoot(params) {
89908
89908
  maxBytes: params.maxBytes
89909
89909
  });
89910
89910
  } finally {
89911
- await fsPromises.rm(tmpDir, {
89911
+ await fs$1.rm(tmpDir, {
89912
89912
  recursive: true,
89913
89913
  force: true
89914
89914
  }).catch(() => {});