@symerian/symi 3.4.2 → 3.4.7

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 (346) hide show
  1. package/dist/{agent-CDUpwXQX.js → agent-BaSGoKPq.js} +8 -8
  2. package/dist/{agent-BcHmIY_n.js → agent-C8IIjDyn.js} +18 -18
  3. package/dist/{agent-scope-CKTVXF_1.js → agent-scope-DIjW66iO.js} +18 -18
  4. package/dist/{agents-Dx_B11LV.js → agents-D6Ygz9ED.js} +8 -8
  5. package/dist/{agents.config-D6lBCMyT.js → agents.config-D1nFwU81.js} +1 -1
  6. package/dist/{audit-CMPCYnHv.js → audit-BI8Rbs5q.js} +21 -21
  7. package/dist/{audit-FMN4BTKc.js → audit-nqP-JeOr.js} +8 -8
  8. package/dist/{auth-choice-s1SGAS0u.js → auth-choice-BBrEzoy2.js} +8 -8
  9. package/dist/{auth-choice-BJgf7XV6.js → auth-choice-Bx4Duu6u.js} +6 -6
  10. package/dist/{auth-choice-options-B5NLwpLs.js → auth-choice-options-BBYiPleR.js} +1 -1
  11. package/dist/{auth-choice-options-EWUh0VM6.js → auth-choice-options-C5b4PCvw.js} +1 -1
  12. package/dist/{auth-choice-prompt-BkTmN4sy.js → auth-choice-prompt-D8GvjOBX.js} +1 -1
  13. package/dist/{auth-choice-prompt-CXcrToaB.js → auth-choice-prompt-DBfm0y9l.js} +1 -1
  14. package/dist/{auth-profiles-BDvJK1Bg.js → auth-profiles-BFSVvFKy.js} +9 -9
  15. package/dist/{auth-token-BKp_ClDP.js → auth-token-SebYuqfR.js} +1 -1
  16. package/dist/{banner-C1DH2kVa.js → banner-l9GjW5Rm.js} +1 -1
  17. package/dist/{browser-cli-DW3CxkSc.js → browser-cli-BAxOL41p.js} +9 -9
  18. package/dist/{browser-cli-C6G2Ql9l.js → browser-cli-Bk8DxxeA.js} +4 -4
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +8 -8
  21. package/dist/bundled/session-memory/handler.js +7 -7
  22. package/dist/{call-Dy_T6f6d.js → call-5IE9ycvm.js} +2 -4
  23. package/dist/{call-BjHvYJx2.js → call-BPJn2_th.js} +9 -11
  24. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  25. package/dist/{channel-options-77nGDc70.js → channel-options-COanIUoQ.js} +1 -1
  26. package/dist/{channel-options-BMZyRh5E.js → channel-options-DGUqfnbP.js} +1 -1
  27. package/dist/{channels-cli-C048Z7h-.js → channels-cli-B1zmnm5a.js} +54 -54
  28. package/dist/{channels-cli-CjQ8Rfpv.js → channels-cli-CZ3M3yE1.js} +27 -27
  29. package/dist/{chrome-BxWRyWC_.js → chrome-B0wRtBRB.js} +1 -1
  30. package/dist/{chrome-C0vnHDyY.js → chrome-B4P7ycw5.js} +1 -1
  31. package/dist/{chrome-droANDig.js → chrome-CPSDqbK6.js} +8 -8
  32. package/dist/{chrome-BQoO4LXq.js → chrome-VbDUdW0_.js} +2 -2
  33. package/dist/{cli-CXAyZ9dx.js → cli-C7I5uEFC.js} +42 -42
  34. package/dist/{cli-CpmVizCT.js → cli-CC5GrdTI.js} +23 -23
  35. package/dist/{client-CAz5aPpp.js → client-Dp8LUTmF.js} +2 -5
  36. package/dist/{client-Bs2zB0rY.js → client-qjXXRKCO.js} +3 -6
  37. package/dist/{command-registry-B9TplwzB.js → command-registry-ByBvyNis.js} +11 -11
  38. package/dist/{commands-registry-CLePPNDW.js → commands-registry-BNCcZy2y.js} +1 -1
  39. package/dist/{completion-cli-Dv8CNTMW.js → completion-cli-BFBbL-u4.js} +2 -2
  40. package/dist/{completion-cli-ecfjoaIU.js → completion-cli-rzEsCzmE.js} +12 -12
  41. package/dist/{config-BEaq2Sb6.js → config-DqMsGcSQ.js} +2 -4
  42. package/dist/{config-cli-CAwWFZwh.js → config-cli-BqzjDmIH.js} +4 -4
  43. package/dist/{config-cli-zMpHOTSD.js → config-cli-DSDGwckX.js} +2 -2
  44. package/dist/{config-guard-29sjAeg8.js → config-guard-CJcSKMuP.js} +6 -6
  45. package/dist/{config-guard-B2j-KuUQ.js → config-guard-Cu-dwAgi.js} +2 -2
  46. package/dist/{config-Cw7uo7Dh.js → config-igdtSRrZ.js} +0 -2
  47. package/dist/{config-validation-Bp2AdKjN.js → config-validation-Bp2wJ610.js} +1 -1
  48. package/dist/{config-validation-MUkEKwbD.js → config-validation-Bs1Gp2oG.js} +1 -1
  49. package/dist/{configure-Bh0-A3hM.js → configure-BazJdwKU.js} +15 -15
  50. package/dist/{configure-DvVtZB1V.js → configure-Dl1f1Den.js} +18 -18
  51. package/dist/{consolidate-DeA11kIO.js → consolidate-7Usm-b2g.js} +6 -6
  52. package/dist/{control-service-BTydj9Kk.js → control-service-DO8FjrS6.js} +4 -4
  53. package/dist/{control-service-DhlgNQGb.js → control-service-Fn3d9AlH.js} +4 -4
  54. package/dist/{control-ui-assets-D22DSxhv.js → control-ui-assets-DUhvOLUL.js} +1 -1
  55. package/dist/{cron-cli-5souN2YC.js → cron-cli-DXgI5Lid.js} +7 -10
  56. package/dist/{cron-cli-Cr8hrEDQ.js → cron-cli-DZyH2BfZ.js} +10 -13
  57. package/dist/{daemon-cli-OZuuMobs.js → daemon-cli-C6FSROt1.js} +11 -11
  58. package/dist/{daemon-cli-AVJLjFd5.js → daemon-cli-DmMYx5Uf.js} +6 -6
  59. package/dist/daemon-cli.js +2 -9
  60. package/dist/{daemon-runtime-CkBw3gG5.js → daemon-runtime-2Y9RfgcP.js} +1 -1
  61. package/dist/{daemon-runtime-Dr_xKl0r.js → daemon-runtime-BpfA4d6Q.js} +10 -10
  62. package/dist/{deliver-BwcK0QD6.js → deliver-BkCYBlzi.js} +5 -5
  63. package/dist/{deliver-vzAN9mRl.js → deliver-Mqq3tgqB.js} +5 -5
  64. package/dist/{deliver-ccf_boim.js → deliver-RwovDEDy.js} +2 -2
  65. package/dist/{deliver-Cl2fWxx4.js → deliver-izdrXPr4.js} +1 -1
  66. package/dist/{deps-B6QYsl_-.js → deps-bCHNuszw.js} +1 -1
  67. package/dist/{devices-cli-DN3SH89Z.js → devices-cli-D6xXc9Ym.js} +6 -6
  68. package/dist/{devices-cli-BXaodSI7.js → devices-cli-IMv-0zor.js} +3 -3
  69. package/dist/{diagnostics-nLP2i_BY.js → diagnostics-DxdqTfpW.js} +5 -5
  70. package/dist/{directory-cli-cK6CHm4W.js → directory-cli-3wlYB9In.js} +1 -1
  71. package/dist/{directory-cli-B72WzWuP.js → directory-cli-ClbYhd6z.js} +3 -3
  72. package/dist/{dm-policy-shared-DiZ3lMtl.js → dm-policy-shared-5HLej1br.js} +1 -1
  73. package/dist/{dns-cli-DPO4AuUq.js → dns-cli-CY2voLuR.js} +3 -3
  74. package/dist/{dns-cli-D6uc55C9.js → dns-cli-CoVIqRWx.js} +1 -1
  75. package/dist/{docs-cli-C2BEC5yU.js → docs-cli-DjQ3SvBq.js} +1 -1
  76. package/dist/{doctor-completion-Cvu8koMQ.js → doctor-completion-B8cqL1A0.js} +2 -2
  77. package/dist/{doctor-completion-DwrIExJJ.js → doctor-completion-BqbhVdbe.js} +1 -1
  78. package/dist/{doctor-config-flow-Cu1ZuFHd.js → doctor-config-flow-CYDx1U0Z.js} +9 -9
  79. package/dist/{doctor-config-flow-BayEnbIy.js → doctor-config-flow-wvoEFNeZ.js} +2 -2
  80. package/dist/entry.js +1 -1
  81. package/dist/{exec-approvals-cli-BN5OFwrg.js → exec-approvals-cli-B_P-1zVp.js} +13 -13
  82. package/dist/{exec-approvals-cli-BI9yAGI5.js → exec-approvals-cli-Dy1jvh2M.js} +5 -5
  83. package/dist/extensionAPI.js +6 -6
  84. package/dist/{fs-safe-DjAKGGJ8.js → fs-safe-B6nMaZqV.js} +6 -6
  85. package/dist/{gateway-cli-C_wDspkm.js → gateway-cli-DYJxZ5dh.js} +377 -9751
  86. package/dist/{gateway-cli-uquFQTQW.js → gateway-cli-DfRlFuH-.js} +334 -9708
  87. package/dist/{gateway-rpc-B5_ZCiHW.js → gateway-rpc-C1xjWlxu.js} +1 -1
  88. package/dist/{gateway-rpc-fQLZhzRK.js → gateway-rpc-DD_aXogj.js} +1 -1
  89. package/dist/glass-ui-ws-BNJkhJrL.js +346 -0
  90. package/dist/glass-ui-ws-BZvH4MBO.js +341 -0
  91. package/dist/{health-DUulgHFK.js → health-D8cKia4i.js} +5 -61
  92. package/dist/{health-D2CsIdFz.js → health-DdzNc1yA.js} +4 -60
  93. package/dist/{hooks-cli-6UBBpeAz.js → hooks-cli-DkP3Y4ou.js} +58 -58
  94. package/dist/{hooks-cli-C6XdXNdl.js → hooks-cli-qO421UdO.js} +26 -26
  95. package/dist/{hooks-status-DGjgoBZt.js → hooks-status-COU9Cw9_.js} +1 -1
  96. package/dist/{hooks-status-BQAuzmwT.js → hooks-status-uaFS2SUa.js} +1 -1
  97. package/dist/{image-ops-c7_of0HT.js → image-ops-C-gIIp7Q.js} +10 -10
  98. package/dist/index.js +49 -49
  99. package/dist/{inspect-op0Ov-v4.js → inspect-BDzd6yBs.js} +4 -4
  100. package/dist/{install-safe-path-B73BkVO3.js → install-safe-path-CQXx3s9R.js} +11 -11
  101. package/dist/{installs-BzgwvqqQ.js → installs-DhSLZRT7.js} +10 -10
  102. package/dist/{internal-C3o_xyzP.js → internal-CHnZdvRy.js} +9 -9
  103. package/dist/{lifecycle-core-BmGPBj_P.js → lifecycle-core-BEmljRfh.js} +5 -5
  104. package/dist/{lifecycle-core-Dark4HHr.js → lifecycle-core-uN2bsrZs.js} +2 -2
  105. package/dist/llm-slug-generator.js +7 -7
  106. package/dist/{local-roots-CUKhHNCV.js → local-roots-BnDnugq3.js} +1 -1
  107. package/dist/{logs-cli-Dg7J424l.js → logs-cli-BB0Mq8D1.js} +4 -4
  108. package/dist/{logs-cli-BXBN6_Kf.js → logs-cli-Dbmzz8m_.js} +7 -7
  109. package/dist/{manager-WHZtXzz0.js → manager-BD_cpL9b.js} +1 -1
  110. package/dist/{manager-tYTYy-pH.js → manager-BQaZlWzK.js} +1 -1
  111. package/dist/{manager-C_5p8DxF.js → manager-DOiW-Koo.js} +14 -14
  112. package/dist/{manager-DOfc0hW0.js → manager-MbrGCH4o.js} +1 -1
  113. package/dist/{memory-CjpS9o50.js → memory-Cl4I_45k.js} +4 -4
  114. package/dist/{memory-cli-CbV91o_X.js → memory-cli-CszP57Ee.js} +3 -3
  115. package/dist/{memory-cli-4vj-LpgO.js → memory-cli-DkD_OD70.js} +12 -12
  116. package/dist/{memory-BZPO-RoX.js → memory-kIYeV9aO.js} +5 -5
  117. package/dist/{model-CbRy_3xW.js → model-BRcKPW49.js} +1 -1
  118. package/dist/{model-catalog-Ba4R_zVe.js → model-catalog-C2rNhRI4.js} +2 -2
  119. package/dist/{model-catalog-BrW9BL1p.js → model-catalog-CaGfL-2g.js} +4 -4
  120. package/dist/{model-picker-DAOOfQUH.js → model-picker-4NUXHy8M.js} +2 -2
  121. package/dist/{model-picker-UrQQVAuN.js → model-picker-CV56GE8A.js} +3 -3
  122. package/dist/{models-EthIDORJ.js → models-BYi0Fo1a.js} +13 -13
  123. package/dist/{models-cli-BRnmApgY.js → models-cli-Bn9M1TgO.js} +55 -55
  124. package/dist/{models-cli-DSW-aLCj.js → models-cli-EdjvkvFO.js} +29 -29
  125. package/dist/{models-config-Dh1tABIl.js → models-config-Unnduxgs.js} +7 -7
  126. package/dist/{models-config-C2OLw8vc.js → models-config-yKxNCn4V.js} +1 -1
  127. package/dist/{node-cli-DXCDRV3y.js → node-cli-39H0MZ8q.js} +28 -28
  128. package/dist/{node-cli-SMqarSas.js → node-cli-C8FYMIjN.js} +12 -12
  129. package/dist/{node-service-n6G8Ybbk.js → node-service-tPO_yUk7.js} +1 -1
  130. package/dist/{nodes-cli-Fyv-oG6A.js → nodes-cli-C-03nIJ0.js} +10 -10
  131. package/dist/{nodes-cli-BpG8jU6q.js → nodes-cli-CqxQexTU.js} +4 -4
  132. package/dist/{nodes-screen-CT94yu_w.js → nodes-screen-JELuBMBi.js} +4 -4
  133. package/dist/{npm-registry-spec-B8X06AqB.js → npm-registry-spec-BXw_6vF6.js} +9 -9
  134. package/dist/{onboard-CLSFAKKt.js → onboard-_3W1qIFk.js} +13 -13
  135. package/dist/{onboard-channels-LkgOp2vs.js → onboard-channels-B2l6OoMg.js} +1 -1
  136. package/dist/{onboard-channels-DqhDDHZ3.js → onboard-channels-D_uUQbem.js} +4 -4
  137. package/dist/{onboard-custom-BRFhBogJ.js → onboard-custom-B2fJvyxt.js} +3 -3
  138. package/dist/{onboard-custom-BD_6SIA8.js → onboard-custom-DcZ2SEUv.js} +2 -2
  139. package/dist/{onboard-helpers-C5YryU1N.js → onboard-helpers-Bm-oyLWy.js} +2 -2
  140. package/dist/{onboard-helpers-wgkj6qF2.js → onboard-helpers-CHfdRdZR.js} +8 -8
  141. package/dist/{onboard-hooks-CknstfLG.js → onboard-hooks-DBYkemjF.js} +3 -3
  142. package/dist/{onboard-hooks-DotvaUqG.js → onboard-hooks-DgRzMz0E.js} +2 -2
  143. package/dist/{onboard-CEyd79t_.js → onboard-kDOde8WJ.js} +16 -16
  144. package/dist/{onboard-remote-DR9mcFjZ.js → onboard-remote-ecyetiyL.js} +1 -1
  145. package/dist/{onboard-remote-B5rlIYUq.js → onboard-remote-z8XLK4M0.js} +1 -1
  146. package/dist/{onboard-skills-_6kHqhHz.js → onboard-skills-BLvL0KPR.js} +4 -4
  147. package/dist/{onboard-skills-5rA5bRSG.js → onboard-skills-C53RGq_5.js} +2 -2
  148. package/dist/{onboarding-CJuG6AyD.js → onboarding-BJ27gXxY.js} +15 -15
  149. package/dist/{onboarding-CREA0oQK.js → onboarding-CXaQnqxR.js} +16 -16
  150. package/dist/{onboarding.finalize-CkgL8Zde.js → onboarding.finalize-CSgYg74M.js} +32 -32
  151. package/dist/{onboarding.finalize-7iPylQyi.js → onboarding.finalize-CsyhJcuq.js} +19 -19
  152. package/dist/{onboarding.gateway-config-DtNG0As8.js → onboarding.gateway-config-3JMN1xRf.js} +9 -9
  153. package/dist/{onboarding.gateway-config-BzM2v2U5.js → onboarding.gateway-config-Ft3f6Jba.js} +6 -6
  154. package/dist/{openai-model-default-CSl0PZzK.js → openai-model-default-BVPmAuXK.js} +1 -1
  155. package/dist/{openai-model-default-DeTAMJKz.js → openai-model-default-CDDFpxUr.js} +2 -2
  156. package/dist/{outbound-send-deps-CBRh4LsL.js → outbound-send-deps-Dmc3B-LK.js} +1 -1
  157. package/dist/{pairing-cli-MwIIeBee.js → pairing-cli-B_icqS8Y.js} +1 -1
  158. package/dist/{pairing-cli-BvP6MoPZ.js → pairing-cli-CJGA4j6G.js} +4 -4
  159. package/dist/{pairing-store-S9CXOhSG.js → pairing-store-BGf29nPx.js} +1 -1
  160. package/dist/{pairing-token-DorpwP8O.js → pairing-token-CURbSHdi.js} +7 -7
  161. package/dist/{paths-DaQrPPet.js → paths-Dc6A9_vI.js} +1 -1
  162. package/dist/{pi-auth-json-CVwNh4rb.js → pi-auth-json-SHGGQzOL.js} +5 -5
  163. package/dist/{pi-embedded-B7_uthwZ.js → pi-embedded-8Zh_Y5ur.js} +20 -41
  164. package/dist/{pi-embedded-helpers-BbBfO9m_.js → pi-embedded-helpers-BwBjqJM5.js} +1 -1
  165. package/dist/{pi-embedded-helpers-DGW2untm.js → pi-embedded-helpers-CAdI9wJ5.js} +6 -6
  166. package/dist/{pi-tools.policy--USPnaLr.js → pi-tools.policy-BaRznBvu.js} +2 -2
  167. package/dist/{pi-tools.policy-BcTgKDG6.js → pi-tools.policy-Dyx3nBmp.js} +3 -3
  168. package/dist/{plugin-auto-enable-BDPdHiLS.js → plugin-auto-enable-D2TNEv3x.js} +1 -1
  169. package/dist/{plugin-registry-5aIoUu-O.js → plugin-registry-D7ACpV2Y.js} +2 -2
  170. package/dist/{plugin-registry-bskbnEuW.js → plugin-registry-d4hMhLLZ.js} +3 -3
  171. package/dist/plugin-sdk/agents/system-prompt.d.ts +1 -1
  172. package/dist/plugin-sdk/agents/unified-runner.d.ts +5 -5
  173. package/dist/plugin-sdk/auto-reply/reply/turn-middleware.d.ts +2 -2
  174. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +1 -21
  175. package/dist/plugin-sdk/channels/plugins/types.core.d.ts +1 -5
  176. package/dist/plugin-sdk/channels/plugins/types.d.ts +2 -2
  177. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +1 -2
  178. package/dist/plugin-sdk/commands/health.d.ts +0 -12
  179. package/dist/plugin-sdk/config/types.base.d.ts +0 -1
  180. package/dist/plugin-sdk/config/types.hooks.d.ts +0 -1
  181. package/dist/plugin-sdk/config/types.tools.d.ts +1 -1
  182. package/dist/plugin-sdk/config/zod-schema.d.ts +0 -2
  183. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +0 -1
  184. package/dist/plugin-sdk/cron/service/ops.d.ts +0 -1
  185. package/dist/plugin-sdk/cron/service/state.d.ts +1 -1
  186. package/dist/plugin-sdk/cron/service/timer.d.ts +0 -1
  187. package/dist/plugin-sdk/cron/service.d.ts +0 -1
  188. package/dist/plugin-sdk/cron/types.d.ts +1 -1
  189. package/dist/plugin-sdk/gateway/protocol/index.d.ts +1 -2
  190. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +0 -1
  191. package/dist/plugin-sdk/gateway/protocol/schema/cron.d.ts +3 -3
  192. package/dist/plugin-sdk/index.js +6 -8
  193. package/dist/plugin-sdk/plugin-sdk/index.d.ts +1 -1
  194. package/dist/{plugins-cli-LQUO7D2v.js → plugins-cli-CPf1hMaZ.js} +51 -51
  195. package/dist/{plugins-cli-DMCWSACj.js → plugins-cli-D1gd8p9T.js} +25 -25
  196. package/dist/{ports-ChuJYhEL.js → ports-DRHSHvqY.js} +1 -1
  197. package/dist/{ports-EAVAOFyK.js → ports-DqxP-bXz.js} +2 -2
  198. package/dist/{program-BgrmtnFn.js → program-BPcy7UBj.js} +31 -31
  199. package/dist/{program-context-C_uJXnZV.js → program-context-DYS38Clb.js} +39 -39
  200. package/dist/{prompt-select-styled-B3nTSykf.js → prompt-select-styled-Kgvc0-w2.js} +38 -37
  201. package/dist/{prompt-select-styled-CuGBQ9LO.js → prompt-select-styled-uUOSg6Qq.js} +20 -19
  202. package/dist/{provider-auth-helpers-MMYRbW_U.js → provider-auth-helpers-BUC4xGK9.js} +4 -4
  203. package/dist/{provider-auth-helpers-IsZNkaS0.js → provider-auth-helpers-DpRoNr_8.js} +6 -6
  204. package/dist/{push-apns-C7t2qAZ6.js → push-apns-Bm39oOO9.js} +4 -4
  205. package/dist/{push-apns-qCbh6Vhl.js → push-apns-DqmFEcqh.js} +1 -1
  206. package/dist/{pw-ai-DuPDo_Ia.js → pw-ai-B0-pgbYu.js} +2 -2
  207. package/dist/{pw-ai-YJhl5L-z.js → pw-ai-B2NuWIL7.js} +7 -7
  208. package/dist/{pw-ai-Bc5uzn_J.js → pw-ai-BsEf8C15.js} +2 -2
  209. package/dist/{pw-ai-Tm3pd-HP.js → pw-ai-w6Qalz1W.js} +2 -2
  210. package/dist/{qmd-manager-CrRvB46v.js → qmd-manager-358OTDns.js} +19 -19
  211. package/dist/{qr-cli-Bv4zF-WM.js → qr-cli-Cx7DYTSk.js} +1 -1
  212. package/dist/{qr-cli-D1U-qIkG.js → qr-cli-hPIeUYAT.js} +3 -3
  213. package/dist/{redact-identifier-QYENCXvy.js → redact-identifier-Cm1VfV7E.js} +1 -1
  214. package/dist/{register.agent-BblNQlzT.js → register.agent-CCKcgAXs.js} +66 -66
  215. package/dist/{register.agent-BWcxonR9.js → register.agent-DZuxoC0a.js} +37 -37
  216. package/dist/register.configure-CJErdFO_.js +129 -0
  217. package/dist/{register.configure-D0T0kOp7.js → register.configure-JT8T7HO5.js} +41 -41
  218. package/dist/{register.maintenance-DLJpeuc4.js → register.maintenance-BMswbbSL.js} +66 -66
  219. package/dist/{register.maintenance-w7sKxODf.js → register.maintenance-CNcd1-Vv.js} +38 -38
  220. package/dist/{register.message-CXEwBJ1O.js → register.message-CpOXi1rz.js} +45 -45
  221. package/dist/{register.message-C3dCPjVc.js → register.message-_bfhetTg.js} +25 -25
  222. package/dist/{register.onboard-DJmVC_6h.js → register.onboard-CRNjEhnQ.js} +19 -19
  223. package/dist/{register.onboard-B520Ixsd.js → register.onboard-DR2Wu59i.js} +24 -24
  224. package/dist/{register.setup-BTse4F3a.js → register.setup-Crrj2t2B.js} +26 -26
  225. package/dist/{register.setup-Br-aZ0qD.js → register.setup-Dbe-Z2xu.js} +18 -18
  226. package/dist/{register.status-health-sessions-Dbizirr2.js → register.status-health-sessions-DZnebsxZ.js} +38 -38
  227. package/dist/{register.status-health-sessions-4dxLj6hJ.js → register.status-health-sessions-DmX0DLAt.js} +22 -22
  228. package/dist/{register.subclis-CSJZQox4.js → register.subclis-BRPnstmu.js} +28 -28
  229. package/dist/{replies-CbipVshj.js → replies-B2O2eRh6.js} +1 -1
  230. package/dist/{replies-CH1VlYZQ.js → replies-Bnh0owwH.js} +1 -1
  231. package/dist/{replies-DIWartyA.js → replies-DIHkSwoW.js} +1 -1
  232. package/dist/{replies-CjSfYK97.js → replies-DU-fXkSk.js} +1 -1
  233. package/dist/{reply-prefix-DZQBodKF.js → reply-prefix-BOdARKaY.js} +1 -1
  234. package/dist/{resolve-route-BbUl3Hi7.js → resolve-route-CRWE36h5.js} +1 -1
  235. package/dist/{routes-DiqMB1cp.js → routes-BMShi_eY.js} +10 -10
  236. package/dist/{routes-CWYyvbxi.js → routes-Cio8is5Y.js} +3 -3
  237. package/dist/{rpc-DLfjbTSu.js → rpc-CEhoSTGo.js} +1 -1
  238. package/dist/{rpc-BcPBUUXl.js → rpc-D0Ldc6Hv.js} +1 -1
  239. package/dist/{run-main-DISYU1dh.js → run-main-CMQVjdht.js} +41 -41
  240. package/dist/{sandbox-B6P9-J8g.js → sandbox-B4RfQ7k1.js} +5 -5
  241. package/dist/{sandbox-DPn-s_K5.js → sandbox-C-UeHmuJ.js} +18 -18
  242. package/dist/{sandbox-cli-bOFig9Jd.js → sandbox-cli-B43FqqPT.js} +6 -6
  243. package/dist/{sandbox-cli-Bl5CMRjH.js → sandbox-cli-CNAPNXJ4.js} +13 -13
  244. package/dist/{security-cli-DuxEuSGr.js → security-cli-BSd8_Gsq.js} +28 -28
  245. package/dist/{security-cli-C7LBaB0e.js → security-cli-DDM0Z6IW.js} +11 -11
  246. package/dist/{send-6IYv-yRp.js → send-CGXxBSKh.js} +1 -1
  247. package/dist/{send-CYJucYob.js → send-DSK6O8SC.js} +7 -7
  248. package/dist/{send-C3ZXgOXw.js → send-EluKytgO.js} +1 -1
  249. package/dist/{server-context-Vd9sEFb9.js → server-context-CDTuNR-O.js} +5 -5
  250. package/dist/{server-context-BUbuOgNz.js → server-context-DFO6o83F.js} +5 -5
  251. package/dist/server-methods-Dz6NGEg3.js +9414 -0
  252. package/dist/server-methods-vp5zi6v5.js +9416 -0
  253. package/dist/{server-node-events-BH4-UlAH.js → server-node-events-4ufB_olv.js} +26 -26
  254. package/dist/{server-node-events-7ToqdaU5.js → server-node-events-B7UtUhkC.js} +46 -46
  255. package/dist/{service-9ItKCWWS.js → service-AP9pR9R5.js} +15 -15
  256. package/dist/session-dirs-Chh7bBGo.js +18 -0
  257. package/dist/session-dirs-Sl_x6tjD.js +18 -0
  258. package/dist/{session-utils-CqSXwGYa.js → session-utils-CgGDr4eh.js} +14 -14
  259. package/dist/{session-utils-CJfEkQQQ.js → session-utils-D1VcHni_.js} +5 -5
  260. package/dist/{sessions-BHrlpR92.js → sessions-BNEDanZO.js} +1 -1
  261. package/dist/{sessions-DorP6zY8.js → sessions-Dh88Kqd6.js} +11 -11
  262. package/dist/{sessions-Chjdz1Gx.js → sessions-iLfSd6VD.js} +3 -3
  263. package/dist/{shared-B-64oefu.js → shared-CIeW3aWF.js} +1 -1
  264. package/dist/{shared-ot5_jkpP.js → shared-DmYHvtn2.js} +1 -1
  265. package/dist/{shared-Z3KjnA8n.js → shared-_wwqvx84.js} +3 -3
  266. package/dist/{skill-commands-RbglvrSW.js → skill-commands-5QB5E8bv.js} +4 -4
  267. package/dist/{skill-scanner-CZK0TG9g.js → skill-scanner-YF2jR4RY.js} +5 -5
  268. package/dist/{skills-DS1Vdylm.js → skills-Bmjf5nFv.js} +4 -4
  269. package/dist/{skills-cli-DbhEEC78.js → skills-cli-BJDvUT_e.js} +1 -1
  270. package/dist/{skills-cli-BmIb-9--.js → skills-cli-Byp9MfZh.js} +7 -7
  271. package/dist/{skills-install-DcX1Txvp.js → skills-install-BB27sD4d.js} +3 -3
  272. package/dist/{skills-remote-BDSyRdyX.js → skills-remote-CqwR3Zvp.js} +3 -3
  273. package/dist/{skills-status-F7nlolZZ.js → skills-status-BNDqwHkP.js} +1 -1
  274. package/dist/{sqlite-BUXBg2yu.js → sqlite-DBEvS-Ne.js} +5 -5
  275. package/dist/{ssrf-CJor4ewC.js → ssrf-CBajKNWO.js} +0 -2
  276. package/dist/{ssrf-BzPY2FrA.js → ssrf-CeQ2Aub-.js} +0 -2
  277. package/dist/{status-CR4VgVZ0.js → status-B0HecH1s.js} +3 -3
  278. package/dist/{status-dHYcVtbb.js → status-BD8gFYKH.js} +14 -45
  279. package/dist/{status-Hf__QNbH.js → status-DEXnB1sw.js} +26 -57
  280. package/dist/{status-CeaJlVQK.js → status-MMLxoRgQ.js} +2 -2
  281. package/dist/{status.update-lna4Lub4.js → status.update-Be8PuHCh.js} +1 -1
  282. package/dist/{status.update-DOj5ifHZ.js → status.update-CB9e3eWW.js} +3 -3
  283. package/dist/{subagent-registry-BbQL79Gk.js → subagent-registry-C57PFGHU.js} +30 -46
  284. package/dist/{symi-root-0MUhiNlM.js → symi-root-DueRHNOE.js} +2 -2
  285. package/dist/{synthesis-CK0K7wFk.js → synthesis-CjsIBd8X.js} +42 -42
  286. package/dist/{synthesis-B4G0BnU5.js → synthesis-DSdF0vsi.js} +7 -7
  287. package/dist/{synthesis-C-IePZG6.js → synthesis-iB7TWRW4.js} +6 -6
  288. package/dist/{synthesis-DiPl8Usv.js → synthesis-j_kjlFo1.js} +23 -23
  289. package/dist/system-cli-BM8KbtUc.js +48 -0
  290. package/dist/system-cli-CQFH_HwX.js +43 -0
  291. package/dist/{systemd-8KKQdTO_.js → systemd-9LEEqibe.js} +5 -5
  292. package/dist/{systemd-hints-BefHB3bX.js → systemd-hints-A1W3AdVo.js} +6 -6
  293. package/dist/{systemd-hints-DQKA3tTS.js → systemd-hints-BejQ6J2Y.js} +1 -1
  294. package/dist/{systemd-linger-C0-G8yq4.js → systemd-linger-PqG8iGCt.js} +1 -1
  295. package/dist/{tui-C_yv1hvy.js → tui-B4Pd0T9l.js} +5 -15
  296. package/dist/{tui-BheB3rbE.js → tui-DBrpAw57.js} +7 -17
  297. package/dist/{tui-cli-D7wYLESM.js → tui-cli-B-obcHoZ.js} +10 -10
  298. package/dist/{tui-cli-BDcU-VgA.js → tui-cli-tbUaY-Pu.js} +19 -19
  299. package/dist/{unified-runner-BSdnT6eM.js → unified-runner-BNt7TQKM.js} +18 -39
  300. package/dist/{unified-runner-D6p4N2vu.js → unified-runner-DCiPB--z.js} +104 -120
  301. package/dist/{update-Djvyvehx.js → update-CjZgU686.js} +3 -3
  302. package/dist/{update-check-BdSIMYWq.js → update-check-CZxZhEXr.js} +5 -5
  303. package/dist/{update-cli-BmQuYKTw.js → update-cli-CUgElk5d.js} +42 -42
  304. package/dist/{update-cli-CwznFR5g.js → update-cli-Mpq0iwGk.js} +76 -76
  305. package/dist/{session-dirs-DONOhYc3.js → update-runner-Dq5UYQbo.js} +16 -30
  306. package/dist/{session-dirs-6atzU47U.js → update-runner-ENJw0Mco.js} +2 -16
  307. package/dist/{webhooks-cli-D_wAaLOU.js → webhooks-cli-Clx8DGfA.js} +5 -5
  308. package/dist/{webhooks-cli-B2_nrbvn.js → webhooks-cli-UfO_WffC.js} +2 -2
  309. package/dist/{with-timeout-CAUWEPmp.js → with-timeout-BE7lxhxW.js} +1 -1
  310. package/dist/{with-timeout-BhDKgIeU.js → with-timeout-BcL6qAbd.js} +1 -1
  311. package/dist/{workspace-dirs-QmSWJptJ.js → workspace-dirs-D5OnUmvw.js} +1 -1
  312. package/dist/{wsl-DO9usEVV.js → wsl-ZWGwnnKI.js} +2 -2
  313. package/package.json +1 -1
  314. package/dist/register.configure-BJ7xtOUZ.js +0 -129
  315. package/dist/system-cli-BKp2K0sb.js +0 -85
  316. package/dist/system-cli-C9uTFA4c.js +0 -80
  317. /package/dist/{agents.config-gkq5o5Hy.js → agents.config-D7cHU-OU.js} +0 -0
  318. /package/dist/{auth-choice-legacy-DlTku0W1.js → auth-choice-legacy-CsjluQCN.js} +0 -0
  319. /package/dist/{auth-choice-legacy-y8ZXjhDq.js → auth-choice-legacy-D9WcUI_J.js} +0 -0
  320. /package/dist/{auth-token-2yjfGFTo.js → auth-token-Brb1Askz.js} +0 -0
  321. /package/dist/{consolidate-CTKMVS1l.js → consolidate-D1GUJ5qq.js} +0 -0
  322. /package/dist/{dm-policy-shared-BcYwq7H9.js → dm-policy-shared-CSF4Tw_F.js} +0 -0
  323. /package/dist/{format-CUJQOEUj.js → format-BGzoTHhD.js} +0 -0
  324. /package/dist/{format-Cj8gNX2r.js → format-C-0EAOjI.js} +0 -0
  325. /package/dist/{gmail-setup-utils-C5QXoiTl.js → gmail-setup-utils-B1BYpISg.js} +0 -0
  326. /package/dist/{gmail-setup-utils-DO0-mXYp.js → gmail-setup-utils-fA1VaWLv.js} +0 -0
  327. /package/dist/{health-format-BQdYy0nL.js → health-format-39e76m9p.js} +0 -0
  328. /package/dist/{health-format-OIqaDZ2V.js → health-format-DaP03FBk.js} +0 -0
  329. /package/dist/{ipv4-CFw4fYIH.js → ipv4-CfVqgiTN.js} +0 -0
  330. /package/dist/{ipv4-DBwTCOBu.js → ipv4-DK4xoUQ-.js} +0 -0
  331. /package/dist/{logging-BA2NbxMy.js → logging-B96FQvnn.js} +0 -0
  332. /package/dist/{logging-Dt9kBzoO.js → logging-BeA4q4J_.js} +0 -0
  333. /package/dist/{model-param-b-CErLzOT8.js → model-param-b-B34yvxBN.js} +0 -0
  334. /package/dist/{model-param-b-DnsFCAGo.js → model-param-b-CmgmcGoJ.js} +0 -0
  335. /package/dist/{node-service-B7zf4WFE.js → node-service-DDDCEDdv.js} +0 -0
  336. /package/dist/{onboard-config-CIBKQuYV.js → onboard-config-Barp7MT9.js} +0 -0
  337. /package/dist/{onboard-config-D6L72_zg.js → onboard-config-DQkZqcyq.js} +0 -0
  338. /package/dist/{outbound-send-deps-pzO0D6kV.js → outbound-send-deps-BpziI1pC.js} +0 -0
  339. /package/dist/{ports-B3NnaSHu.js → ports-BAzQoIw0.js} +0 -0
  340. /package/dist/{qmd-manager-CX0jtKS5.js → qmd-manager--kGuC39q.js} +0 -0
  341. /package/dist/{skills-install-Q5hgZITy.js → skills-install-BzqoHn0x.js} +0 -0
  342. /package/dist/{system-run-command-XG1_P_la.js → system-run-command-QikSIqYG.js} +0 -0
  343. /package/dist/{systemd-linger-CoyAJEZx.js → systemd-linger-BM4qvprK.js} +0 -0
  344. /package/dist/{update-CbkItCeC.js → update-C1rkPV1C.js} +0 -0
  345. /package/dist/{workspace-2m2BLIbx.js → workspace-B3sO7QlN.js} +0 -0
  346. /package/dist/{workspace-CxAs2tsz.js → workspace-Bb1HX2I0.js} +0 -0
@@ -3,86 +3,86 @@ import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogge
3
3
  import { g as resolveStateDir, u as resolveGatewayPort } from "./paths-BSzKwaxE.js";
4
4
  import { S as isPlainObject, _ as shortenHomeInString, b as sliceUtf16Safe, c as escapeRegExp, h as resolveUserPath, r as clampInt, t as CONFIG_DIR, u as isRecord, v as shortenHomePath, x as truncateUtf16Safe, y as sleep } from "./utils-BU8jVQFM.js";
5
5
  import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
6
- import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$1, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, et as normalizeGoogleModelId, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-BDvJK1Bg.js";
6
+ import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$1, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, et as normalizeGoogleModelId, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-BFSVvFKy.js";
7
7
  import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
8
8
  import { S as resolveThreadParentSessionKey, _ as isAcpSessionKey, a as classifySessionKeyShape, b as isSubagentSessionKey, c as resolveAgentIdFromSessionKey, g as getSubagentDepth, l as resolveThreadSessionKeys, m as normalizeAccountId, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey, s as normalizeMainKey, t as DEFAULT_AGENT_ID, u as sanitizeAgentId, x as parseAgentSessionKey, y as isCronSessionKey } from "./session-key-B_ZVH1kE.js";
9
- import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-0MUhiNlM.js";
9
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DueRHNOE.js";
10
10
  import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
11
- import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentConfig, s as resolveAgentSkillsFilter, w as filterBootstrapFilesForSession } from "./agent-scope-CKTVXF_1.js";
11
+ import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentConfig, s as resolveAgentSkillsFilter, w as filterBootstrapFilesForSession } from "./agent-scope-DIjW66iO.js";
12
12
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BTNK6Tcd.js";
13
13
  import { t as parseBooleanValue } from "./boolean-Wzu0-e0P.js";
14
14
  import { t as isTruthyEnvValue } from "./env-B97Ms861.js";
15
- import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-DGW2untm.js";
16
- import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, C as unsetConfigValueAtPath, N as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, f as parseDurationMs, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-BEaq2Sb6.js";
15
+ import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-CAdI9wJ5.js";
16
+ import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, C as unsetConfigValueAtPath, N as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, f as parseDurationMs, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-DqMsGcSQ.js";
17
17
  import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D_LsBSyt.js";
18
18
  import { a as isPathInsideWithRealpath } from "./legacy-names-Catogrri.js";
19
- import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-DPn-s_K5.js";
20
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BQoO4LXq.js";
21
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-BUbuOgNz.js";
19
+ import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-C-UeHmuJ.js";
20
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-VbDUdW0_.js";
21
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DFO6o83F.js";
22
22
  import { l as parseFrontmatterBlock } from "./frontmatter-CHu3sfCM.js";
23
- 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-DS1Vdylm.js";
24
- import { n as getMediaDir, r as saveMediaBuffer } from "./routes-DiqMB1cp.js";
23
+ 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-Bmjf5nFv.js";
24
+ import { n as getMediaDir, r as saveMediaBuffer } from "./routes-BMShi_eY.js";
25
25
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-Z-WkF18Q.js";
26
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-DaQrPPet.js";
26
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-Dc6A9_vI.js";
27
27
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CC9kEPCT.js";
28
- import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-c7_of0HT.js";
29
- import { C as capArrayByJsonBytes, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields } from "./sessions-DorP6zY8.js";
28
+ import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-C-gIIp7Q.js";
29
+ import { C as capArrayByJsonBytes, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields } from "./sessions-Dh88Kqd6.js";
30
30
  import { c as normalizeStringEntries, i as resolveChannelGroupRequireMention, l as normalizeStringEntriesLower, n as listChannelDocks, o as normalizeAtHashSlug, r as resolveChannelGroupPolicy, s as normalizeHyphenSlug, t as getChannelDock } from "./dock-CnGWTXL4.js";
31
31
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, h as GATEWAY_CLIENT_NAMES, 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-C_V8IAYx.js";
32
32
  import { t as normalizeChatType } from "./chat-type-B7XD_ESN.js";
33
33
  import { n as resolveConversationLabel } from "./conversation-label-CS5Zjc4w.js";
34
34
  import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-DuuHorqi.js";
35
- import { _ as resolveSlackChannelId, a as markdownToIRWithMeta, c as MediaFetchError, d as createSlackWebClient, f as resolveSlackWebClientOptions, g as parseSlackTarget, h as buildSlackBlocksFallbackText, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as validateSlackBlocksArray, o as getDefaultLocalRoots, p as parseSlackBlocksInput, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit } from "./send-CYJucYob.js";
35
+ import { _ as resolveSlackChannelId, a as markdownToIRWithMeta, c as MediaFetchError, d as createSlackWebClient, f as resolveSlackWebClientOptions, g as parseSlackTarget, h as buildSlackBlocksFallbackText, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as validateSlackBlocksArray, o as getDefaultLocalRoots, p as parseSlackBlocksInput, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit } from "./send-DSK6O8SC.js";
36
36
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CJcw9nbZ.js";
37
37
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-DsLesw6T.js";
38
38
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-Ch7wLX-j.js";
39
39
  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-177f26eg.js";
40
40
  import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-BKbemuIk.js";
41
- import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-ccf_boim.js";
41
+ import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-RwovDEDy.js";
42
42
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-CwF3MnBL.js";
43
43
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-I4x9gPY4.js";
44
- import { t as ensureSymiModelsJson } from "./models-config-Dh1tABIl.js";
45
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CVwNh4rb.js";
44
+ import { t as ensureSymiModelsJson } from "./models-config-Unnduxgs.js";
45
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-SHGGQzOL.js";
46
46
  import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-DYcv40ss.js";
47
- import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-CqSXwGYa.js";
48
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-CAUWEPmp.js";
49
- import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DZQBodKF.js";
50
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-BZPO-RoX.js";
51
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-C_5p8DxF.js";
52
- import { f as runTasksWithConcurrency } from "./internal-C3o_xyzP.js";
47
+ import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-CgGDr4eh.js";
48
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-BE7lxhxW.js";
49
+ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BOdARKaY.js";
50
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-kIYeV9aO.js";
51
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DOiW-Koo.js";
52
+ import { f as runTasksWithConcurrency } from "./internal-CHnZdvRy.js";
53
53
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-DQGU0F8t.js";
54
54
  import { n as resolveMarkdownTableMode } from "./markdown-tables-GTLvbzuR.js";
55
55
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CgmRK282.js";
56
56
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DG6T0ZdL.js";
57
- import { n as getDefaultMediaLocalRoots } from "./local-roots-CUKhHNCV.js";
57
+ import { n as getDefaultMediaLocalRoots } from "./local-roots-BnDnugq3.js";
58
58
  import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-B3UrgxIz.js";
59
- import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-CLePPNDW.js";
60
- import { Rt as SESSION_LABEL_MAX_LENGTH } from "./client-Bs2zB0rY.js";
61
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-BjHvYJx2.js";
59
+ import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-BNCcZy2y.js";
60
+ import { Rt as SESSION_LABEL_MAX_LENGTH } from "./client-qjXXRKCO.js";
61
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-BPJn2_th.js";
62
62
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-Dr6VaTg5.js";
63
63
  import { n as formatTimeAgo } from "./format-relative-Vm-Tqk0h.js";
64
64
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DqAyGDbE.js";
65
- import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-BDSyRdyX.js";
65
+ import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-CqwR3Zvp.js";
66
66
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DdkUSfiI.js";
67
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BrW9BL1p.js";
68
- import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-RbglvrSW.js";
69
- import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-S9CXOhSG.js";
67
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-CaGfL-2g.js";
68
+ import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-5QB5E8bv.js";
69
+ import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BGf29nPx.js";
70
70
  import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExecApprovals, f as resolveExecApprovalsFromFile, g as resolveSafeBins, h as evaluateShellAllowlist, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval, y as buildSafeBinsShellCommand } from "./exec-approvals-CZOc8M5w.js";
71
- import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-CT94yu_w.js";
71
+ import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-JELuBMBi.js";
72
72
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-dNgkVIEe.js";
73
73
  import { t as formatDurationCompact$1 } from "./format-duration-DbZRICyO.js";
74
74
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-2_Os41y-.js";
75
75
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-Ca9K30TH.js";
76
76
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-DsZw7bas.js";
77
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DhlgNQGb.js";
77
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Fn3d9AlH.js";
78
78
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BhvnarfO.js";
79
79
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BvIcXQLj.js";
80
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BbUl3Hi7.js";
80
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CRWE36h5.js";
81
81
  import { t as parseTimeoutMs } from "./parse-timeout-CpgyC-LD.js";
82
- import { n as registerMemoryCli } from "./memory-cli-4vj-LpgO.js";
83
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CbipVshj.js";
84
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BcTgKDG6.js";
85
- import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-CbRy_3xW.js";
82
+ import { n as registerMemoryCli } from "./memory-cli-DkD_OD70.js";
83
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-B2O2eRh6.js";
84
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-Dyx3nBmp.js";
85
+ import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-BRcKPW49.js";
86
86
  import { createRequire } from "node:module";
87
87
  import process$1 from "node:process";
88
88
  import { fileURLToPath } from "node:url";
@@ -91,7 +91,7 @@ import path from "node:path";
91
91
  import fs, { constants, existsSync, statSync } from "node:fs";
92
92
  import os, { homedir } from "node:os";
93
93
  import JSON5 from "json5";
94
- import fsPromises from "node:fs/promises";
94
+ import fs$1 from "node:fs/promises";
95
95
  import { execFileSync, spawn, spawnSync } from "node:child_process";
96
96
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
97
97
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -1841,7 +1841,7 @@ async function imageResult(params) {
1841
1841
  }, params.label, params.imageSanitization);
1842
1842
  }
1843
1843
  async function imageResultFromFile(params) {
1844
- const buf = await fsPromises.readFile(params.path);
1844
+ const buf = await fs$1.readFile(params.path);
1845
1845
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
1846
1846
  return await imageResult({
1847
1847
  label: params.label,
@@ -5801,7 +5801,7 @@ async function routeReply(params) {
5801
5801
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
5802
5802
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
5803
5803
  try {
5804
- const { deliverOutboundPayloads } = await import("./deliver-ccf_boim.js").then((n) => n.n);
5804
+ const { deliverOutboundPayloads } = await import("./deliver-RwovDEDy.js").then((n) => n.n);
5805
5805
  return {
5806
5806
  ok: true,
5807
5807
  messageId: (await deliverOutboundPayloads({
@@ -7352,7 +7352,7 @@ function buildSubagentSystemPrompt(params) {
7352
7352
  "## Rules",
7353
7353
  "1. **Stay focused** - Do your assigned task, nothing else",
7354
7354
  `2. **Complete the task** - Your final message will be automatically reported to the ${parentLabel}`,
7355
- "3. **Don't initiate** - No heartbeats, no proactive actions, no side quests",
7355
+ "3. **Don't initiate** - No proactive actions, no side quests",
7356
7356
  "4. **Be ephemeral** - You may be terminated after task completion. That's fine.",
7357
7357
  "5. **Trust push-based completion** - Descendant results are auto-announced back to you; do not busy-poll for status.",
7358
7358
  "6. **Recover from compacted/truncated tool output** - If you see `[compacted: tool output removed to free context]` or `[truncated: output exceeded context limit]`, assume prior output was reduced. Re-read only what you need using smaller chunks (`read` with offset/limit, or targeted `rg`/`head`/`tail`) instead of full-file `cat`.",
@@ -9755,10 +9755,6 @@ async function prependSystemEvents(params) {
9755
9755
  const compactSystemEvent = (line) => {
9756
9756
  const trimmed = line.trim();
9757
9757
  if (!trimmed) return null;
9758
- const lower = trimmed.toLowerCase();
9759
- if (lower.includes("reason periodic")) return null;
9760
- if (lower.startsWith("read symipulse.md")) return null;
9761
- if (lower.includes("heartbeat poll") || lower.includes("heartbeat wake")) return null;
9762
9758
  if (trimmed.startsWith("Node:")) return trimmed.replace(/ · last input [^·]+/i, "").trim();
9763
9759
  return trimmed;
9764
9760
  };
@@ -11645,7 +11641,7 @@ var MediaAttachmentCache = class {
11645
11641
  const size = await this.ensureLocalStat(entry);
11646
11642
  if (entry.resolvedPath) {
11647
11643
  if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
11648
- const buffer = await fsPromises.readFile(entry.resolvedPath);
11644
+ const buffer = await fs$1.readFile(entry.resolvedPath);
11649
11645
  entry.buffer = buffer;
11650
11646
  entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
11651
11647
  buffer,
@@ -11715,10 +11711,10 @@ var MediaAttachmentCache = class {
11715
11711
  prefix: "symi-media",
11716
11712
  extension: path.extname(bufferResult.fileName || "") || ""
11717
11713
  });
11718
- await fsPromises.writeFile(tmpPath, bufferResult.buffer);
11714
+ await fs$1.writeFile(tmpPath, bufferResult.buffer);
11719
11715
  entry.tempPath = tmpPath;
11720
11716
  entry.tempCleanup = async () => {
11721
- await fsPromises.unlink(tmpPath).catch(() => {});
11717
+ await fs$1.unlink(tmpPath).catch(() => {});
11722
11718
  };
11723
11719
  return {
11724
11720
  path: tmpPath,
@@ -11765,12 +11761,12 @@ var MediaAttachmentCache = class {
11765
11761
  if (entry.statSize !== void 0) return entry.statSize;
11766
11762
  try {
11767
11763
  const currentPath = entry.resolvedPath;
11768
- const stat = await fsPromises.stat(currentPath);
11764
+ const stat = await fs$1.stat(currentPath);
11769
11765
  if (!stat.isFile()) {
11770
11766
  entry.resolvedPath = void 0;
11771
11767
  return;
11772
11768
  }
11773
- const canonicalPath = await fsPromises.realpath(currentPath).catch(() => currentPath);
11769
+ const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
11774
11770
  if (!isInboundPathAllowed({
11775
11771
  filePath: canonicalPath,
11776
11772
  roots: await this.getCanonicalLocalPathRoots()
@@ -11792,7 +11788,7 @@ var MediaAttachmentCache = class {
11792
11788
  if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
11793
11789
  this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
11794
11790
  if (root.includes("*")) return root;
11795
- return await fsPromises.realpath(root).catch(() => root);
11791
+ return await fs$1.realpath(root).catch(() => root);
11796
11792
  }))))();
11797
11793
  return await this.canonicalLocalPathRoots;
11798
11794
  }
@@ -11863,7 +11859,7 @@ function formatAudioTranscripts(outputs) {
11863
11859
  async function fileExists(filePath) {
11864
11860
  if (!filePath) return false;
11865
11861
  try {
11866
- await fsPromises.stat(filePath);
11862
+ await fs$1.stat(filePath);
11867
11863
  return true;
11868
11864
  } catch {
11869
11865
  return false;
@@ -11963,7 +11959,7 @@ async function resolveCliOutput(params) {
11963
11959
  const commandId = commandBase(params.command);
11964
11960
  const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
11965
11961
  if (fileOutput && await fileExists(fileOutput)) try {
11966
- const content = await fsPromises.readFile(fileOutput, "utf8");
11962
+ const content = await fs$1.readFile(fileOutput, "utf8");
11967
11963
  if (content.trim()) return content.trim();
11968
11964
  } catch {}
11969
11965
  if (commandId === "gemini") {
@@ -12254,7 +12250,7 @@ async function runCliEntry(params) {
12254
12250
  maxBytes,
12255
12251
  timeoutMs
12256
12252
  });
12257
- const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
12253
+ const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
12258
12254
  const mediaPath = pathResult.path;
12259
12255
  const outputBase = path.join(outputDir, path.parse(mediaPath).name);
12260
12256
  const templCtx = {
@@ -12288,7 +12284,7 @@ async function runCliEntry(params) {
12288
12284
  model: command
12289
12285
  };
12290
12286
  } finally {
12291
- await fsPromises.rm(outputDir, {
12287
+ await fs$1.rm(outputDir, {
12292
12288
  recursive: true,
12293
12289
  force: true
12294
12290
  }).catch(() => {});
@@ -12332,9 +12328,9 @@ function candidateBinaryNames(name) {
12332
12328
  }
12333
12329
  async function isExecutable$1(filePath) {
12334
12330
  try {
12335
- if (!(await fsPromises.stat(filePath)).isFile()) return false;
12331
+ if (!(await fs$1.stat(filePath)).isFile()) return false;
12336
12332
  if (process.platform === "win32") return true;
12337
- await fsPromises.access(filePath, constants.X_OK);
12333
+ await fs$1.access(filePath, constants.X_OK);
12338
12334
  return true;
12339
12335
  } catch {
12340
12336
  return false;
@@ -14038,7 +14034,7 @@ async function createModelSelectionState(params) {
14038
14034
  }
14039
14035
  }
14040
14036
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
14041
- const { ensureAuthProfileStore } = await import("./auth-profiles-BDvJK1Bg.js").then((n) => n.t);
14037
+ const { ensureAuthProfileStore } = await import("./auth-profiles-BFSVvFKy.js").then((n) => n.t);
14042
14038
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
14043
14039
  const providerKey = normalizeProviderId(provider);
14044
14040
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -17182,7 +17178,7 @@ async function resolveSandboxWorkdir(params) {
17182
17178
  cwd: process.cwd(),
17183
17179
  root: params.sandbox.workspaceDir
17184
17180
  });
17185
- if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
17181
+ if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
17186
17182
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
17187
17183
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
17188
17184
  return {
@@ -18196,13 +18192,13 @@ async function validateScriptFileForShellBleed(params) {
18196
18192
  cwd: params.workdir,
18197
18193
  root: params.workdir
18198
18194
  });
18199
- stat = await fsPromises.stat(absPath);
18195
+ stat = await fs$1.stat(absPath);
18200
18196
  } catch {
18201
18197
  return;
18202
18198
  }
18203
18199
  if (!stat.isFile()) return;
18204
18200
  if (stat.size > 512 * 1024) return;
18205
- const content = await fsPromises.readFile(absPath, "utf-8");
18201
+ const content = await fs$1.readFile(absPath, "utf-8");
18206
18202
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
18207
18203
  if (first) {
18208
18204
  const idx = first.index;
@@ -22878,7 +22874,7 @@ async function handleCommands(params) {
22878
22874
  try {
22879
22875
  const messages = [];
22880
22876
  if (sessionFile) {
22881
- const content = await fsPromises.readFile(sessionFile, "utf-8");
22877
+ const content = await fs$1.readFile(sessionFile, "utf-8");
22882
22878
  for (const line of content.split("\n")) {
22883
22879
  if (!line.trim()) continue;
22884
22880
  try {
@@ -25065,7 +25061,7 @@ async function readJsonlFromPath(jsonlPath) {
25065
25061
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
25066
25062
  throw new Error("jsonlPath outside allowed roots");
25067
25063
  }
25068
- const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
25064
+ const canonical = await fs$1.realpath(resolved).catch(() => resolved);
25069
25065
  if (!isInboundPathAllowed({
25070
25066
  filePath: canonical,
25071
25067
  roots
@@ -25073,7 +25069,7 @@ async function readJsonlFromPath(jsonlPath) {
25073
25069
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
25074
25070
  throw new Error("jsonlPath outside allowed roots");
25075
25071
  }
25076
- return await fsPromises.readFile(canonical, "utf8");
25072
+ return await fs$1.readFile(canonical, "utf8");
25077
25073
  }
25078
25074
  const CanvasToolSchema = Type.Object({
25079
25075
  action: stringEnum(CANVAS_ACTIONS),
@@ -25370,7 +25366,7 @@ function normalizeSessionTarget(raw) {
25370
25366
  function normalizeWakeMode(raw) {
25371
25367
  if (typeof raw !== "string") return;
25372
25368
  const trimmed = raw.trim().toLowerCase();
25373
- if (trimmed === "now" || trimmed === "next-heartbeat") return trimmed;
25369
+ if (trimmed === "now" || trimmed === "next-heartbeat") return "now";
25374
25370
  }
25375
25371
  function copyTopLevelAgentTurnFields(next, payload) {
25376
25372
  const copyString = (field) => {
@@ -25547,7 +25543,6 @@ const CRON_ACTIONS = [
25547
25543
  "runs",
25548
25544
  "wake"
25549
25545
  ];
25550
- const CRON_WAKE_MODES = ["now", "next-heartbeat"];
25551
25546
  const CRON_RUN_MODES = ["due", "force"];
25552
25547
  const REMINDER_CONTEXT_MESSAGES_MAX = 10;
25553
25548
  const REMINDER_CONTEXT_PER_MESSAGE_MAX = 220;
@@ -25564,7 +25559,6 @@ const CronToolSchema = Type.Object({
25564
25559
  id: Type.Optional(Type.String()),
25565
25560
  patch: Type.Optional(Type.Object({}, { additionalProperties: true })),
25566
25561
  text: Type.Optional(Type.String()),
25567
- mode: optionalStringEnum(CRON_WAKE_MODES),
25568
25562
  runMode: optionalStringEnum(CRON_RUN_MODES),
25569
25563
  contextMessages: Type.Optional(Type.Number({
25570
25564
  minimum: 0,
@@ -25705,10 +25699,6 @@ CRITICAL CONSTRAINTS:
25705
25699
  - For webhook callbacks, use delivery.mode="webhook" with delivery.to set to a URL.
25706
25700
  Default: prefer isolated agentTurn jobs unless the user explicitly wants a main-session system event.
25707
25701
 
25708
- WAKE MODES (for wake action):
25709
- - "next-heartbeat" (default): Wake on next heartbeat
25710
- - "now": Wake immediately
25711
-
25712
25702
  Use jobId as the canonical identifier; id is accepted for compatibility. Use contextMessages (0-10) to add previous messages as context to the job text.`,
25713
25703
  parameters: CronToolSchema,
25714
25704
  execute: async (_toolCallId, args) => {
@@ -25829,13 +25819,7 @@ Use jobId as the canonical identifier; id is accepted for compatibility. Use con
25829
25819
  if (!id) throw new Error("jobId required (id accepted for backward compatibility)");
25830
25820
  return jsonResult(await callGateway("cron.runs", gatewayOpts, { id }));
25831
25821
  }
25832
- case "wake": {
25833
- const text = readStringParam(params, "text", { required: true });
25834
- return jsonResult(await callGateway("wake", gatewayOpts, {
25835
- mode: params.mode === "now" || params.mode === "next-heartbeat" ? params.mode : "next-heartbeat",
25836
- text
25837
- }, { expectFinal: false }));
25838
- }
25822
+ case "wake": return jsonResult(await callGateway("wake", gatewayOpts, { text: readStringParam(params, "text", { required: true }) }, { expectFinal: false }));
25839
25823
  default: throw new Error(`Unknown action: ${action}`);
25840
25824
  }
25841
25825
  }
@@ -26616,7 +26600,7 @@ async function hydrateAttachmentPayload(params) {
26616
26600
  accountId: params.accountId
26617
26601
  }),
26618
26602
  sandboxValidated: true,
26619
- readFile: (filePath) => fsPromises.readFile(filePath)
26603
+ readFile: (filePath) => fs$1.readFile(filePath)
26620
26604
  });
26621
26605
  params.args.buffer = media.buffer.toString("base64");
26622
26606
  if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
@@ -33110,7 +33094,7 @@ async function deliverSessionMaintenanceWarning(params) {
33110
33094
  return;
33111
33095
  }
33112
33096
  try {
33113
- const { deliverOutboundPayloads } = await import("./deliver-ccf_boim.js").then((n) => n.n);
33097
+ const { deliverOutboundPayloads } = await import("./deliver-RwovDEDy.js").then((n) => n.n);
33114
33098
  await deliverOutboundPayloads({
33115
33099
  cfg: params.cfg,
33116
33100
  channel,
@@ -33515,7 +33499,7 @@ async function stageSandboxMedia(params) {
33515
33499
  };
33516
33500
  try {
33517
33501
  const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
33518
- await fsPromises.mkdir(destDir, { recursive: true });
33502
+ await fs$1.mkdir(destDir, { recursive: true });
33519
33503
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
33520
33504
  cfg,
33521
33505
  accountId: ctx.AccountId
@@ -33565,7 +33549,7 @@ async function stageSandboxMedia(params) {
33565
33549
  usedNames.add(fileName);
33566
33550
  const dest = path.join(destDir, fileName);
33567
33551
  if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
33568
- else await fsPromises.copyFile(source, dest);
33552
+ else await fs$1.copyFile(source, dest);
33569
33553
  const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
33570
33554
  staged.set(source, stagedPath);
33571
33555
  }
@@ -35029,8 +35013,8 @@ function buildGlassUiProfile(opts) {
35029
35013
  //#region src/auto-reply/run-channel-turn.ts
35030
35014
  /**
35031
35015
  * Deliver one or more early-reply payloads through the surface's payload
35032
- * chain (heartbeat-strip → typing-signals → tool-result-serialization →
35033
- * TTS → channel-routing → dispatcher). Used for prep-emitted finals
35016
+ * chain (typing-signals → tool-result-serialization → channel-routing →
35017
+ * dispatcher). Used for prep-emitted finals
35034
35018
  * (directive ack, inline action, auth rejection) and for the abort
35035
35019
  * payload from `withFastAbort`.
35036
35020
  */
@@ -38876,7 +38860,7 @@ function readSlackExternalArgMenuToken(raw) {
38876
38860
  }
38877
38861
  let commandsRegistry;
38878
38862
  async function getCommandsRegistry() {
38879
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CLePPNDW.js").then((n) => n.t);
38863
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BNCcZy2y.js").then((n) => n.t);
38880
38864
  return commandsRegistry;
38881
38865
  }
38882
38866
  function encodeSlackCommandArgValue(parts) {
@@ -39218,11 +39202,11 @@ async function registerSlackMonitorSlashCommands(params) {
39218
39202
  const channelName = channelInfo?.name;
39219
39203
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
39220
39204
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
39221
- import("./resolve-route-BbUl3Hi7.js").then((n) => n.r),
39205
+ import("./resolve-route-CRWE36h5.js").then((n) => n.r),
39222
39206
  import("./inbound-context-DqAyGDbE.js").then((n) => n.n),
39223
39207
  Promise.resolve().then(() => provider_dispatcher_exports)
39224
39208
  ]);
39225
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CS5Zjc4w.js").then((n) => n.t), import("./reply-prefix-DZQBodKF.js").then((n) => n.n)]);
39209
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CS5Zjc4w.js").then((n) => n.t), import("./reply-prefix-BOdARKaY.js").then((n) => n.n)]);
39226
39210
  const route = resolveAgentRoute({
39227
39211
  cfg,
39228
39212
  channel: "slack",
@@ -39279,7 +39263,7 @@ async function registerSlackMonitorSlashCommands(params) {
39279
39263
  });
39280
39264
  const deliverSlashPayloads = async (replies) => {
39281
39265
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
39282
- import("./replies-CbipVshj.js").then((n) => n.r),
39266
+ import("./replies-B2O2eRh6.js").then((n) => n.r),
39283
39267
  import("./chunk-DQGU0F8t.js").then((n) => n.s),
39284
39268
  import("./markdown-tables-GTLvbzuR.js").then((n) => n.t)
39285
39269
  ]);
@@ -39334,7 +39318,7 @@ async function registerSlackMonitorSlashCommands(params) {
39334
39318
  let nativeCommands = [];
39335
39319
  if (nativeEnabled) {
39336
39320
  reg = await getCommandsRegistry();
39337
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-RbglvrSW.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39321
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-5QB5E8bv.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39338
39322
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
39339
39323
  skillCommands,
39340
39324
  provider: "slack"
@@ -40467,7 +40451,7 @@ function resolvePluginTools(params) {
40467
40451
  //#endregion
40468
40452
  //#region src/agents/apply-patch-update.ts
40469
40453
  async function defaultReadFile(filePath) {
40470
- return fsPromises.readFile(filePath, "utf8");
40454
+ return fs$1.readFile(filePath, "utf8");
40471
40455
  }
40472
40456
  async function applyUpdateHunk(filePath, chunks, options) {
40473
40457
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -40711,10 +40695,10 @@ function resolvePatchFileOps(options) {
40711
40695
  };
40712
40696
  }
40713
40697
  return {
40714
- readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
40715
- writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
40716
- remove: (filePath) => fsPromises.rm(filePath),
40717
- mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
40698
+ readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
40699
+ writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
40700
+ remove: (filePath) => fs$1.rm(filePath),
40701
+ mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
40718
40702
  };
40719
40703
  }
40720
40704
  async function ensureDir(filePath, ops) {
@@ -41881,7 +41865,7 @@ async function repairSessionFileIfNeeded(params) {
41881
41865
  };
41882
41866
  let content;
41883
41867
  try {
41884
- content = await fsPromises.readFile(sessionFile, "utf-8");
41868
+ content = await fs$1.readFile(sessionFile, "utf-8");
41885
41869
  } catch (err) {
41886
41870
  if (err?.code === "ENOENT") return {
41887
41871
  repaired: false,
@@ -41929,15 +41913,15 @@ async function repairSessionFileIfNeeded(params) {
41929
41913
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
41930
41914
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
41931
41915
  try {
41932
- const stat = await fsPromises.stat(sessionFile).catch(() => null);
41933
- await fsPromises.writeFile(backupPath, content, "utf-8");
41934
- if (stat) await fsPromises.chmod(backupPath, stat.mode);
41935
- await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
41936
- if (stat) await fsPromises.chmod(tmpPath, stat.mode);
41937
- await fsPromises.rename(tmpPath, sessionFile);
41916
+ const stat = await fs$1.stat(sessionFile).catch(() => null);
41917
+ await fs$1.writeFile(backupPath, content, "utf-8");
41918
+ if (stat) await fs$1.chmod(backupPath, stat.mode);
41919
+ await fs$1.writeFile(tmpPath, cleaned, "utf-8");
41920
+ if (stat) await fs$1.chmod(tmpPath, stat.mode);
41921
+ await fs$1.rename(tmpPath, sessionFile);
41938
41922
  } catch (err) {
41939
41923
  try {
41940
- await fsPromises.unlink(tmpPath);
41924
+ await fs$1.unlink(tmpPath);
41941
41925
  } catch (cleanupErr) {
41942
41926
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
41943
41927
  }
@@ -43210,7 +43194,7 @@ async function prewarmSessionFile(sessionFile) {
43210
43194
  if (!isSessionManagerCacheEnabled()) return;
43211
43195
  if (isSessionManagerCached(sessionFile)) return;
43212
43196
  try {
43213
- const handle = await fsPromises.open(sessionFile, "r");
43197
+ const handle = await fs$1.open(sessionFile, "r");
43214
43198
  try {
43215
43199
  const buffer = Buffer$1.alloc(4096);
43216
43200
  await handle.read(buffer, 0, buffer.length, 0);
@@ -43350,7 +43334,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43350
43334
  } catch (err) {
43351
43335
  return fail(describeUnknownError(err));
43352
43336
  }
43353
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
43337
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
43354
43338
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
43355
43339
  const sandbox = await resolveSandboxContext({
43356
43340
  config: params.config,
@@ -43358,7 +43342,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43358
43342
  workspaceDir: resolvedWorkspace
43359
43343
  });
43360
43344
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
43361
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
43345
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
43362
43346
  await ensureSessionHeader({
43363
43347
  sessionFile: params.sessionFile,
43364
43348
  sessionId: params.sessionId,
@@ -43683,12 +43667,12 @@ function getQueuedFileWriter(writers, filePath) {
43683
43667
  const existing = writers.get(filePath);
43684
43668
  if (existing) return existing;
43685
43669
  const dir = path.dirname(filePath);
43686
- const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
43670
+ const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
43687
43671
  let queue = Promise.resolve();
43688
43672
  const writer = {
43689
43673
  filePath,
43690
43674
  write: (line) => {
43691
- queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
43675
+ queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
43692
43676
  }
43693
43677
  };
43694
43678
  writers.set(filePath, writer);
@@ -46868,7 +46852,7 @@ Use the message tool with buttons:
46868
46852
  */
46869
46853
  async function readSessionFile(sessionFile) {
46870
46854
  try {
46871
- return await fsPromises.readFile(sessionFile, "utf-8");
46855
+ return await fs$1.readFile(sessionFile, "utf-8");
46872
46856
  } catch {
46873
46857
  return null;
46874
46858
  }
@@ -46877,8 +46861,8 @@ async function writeAtomically(sessionFile, text) {
46877
46861
  const dir = path.dirname(sessionFile);
46878
46862
  const base = path.basename(sessionFile);
46879
46863
  const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
46880
- await fsPromises.writeFile(tmp, text, "utf-8");
46881
- await fsPromises.rename(tmp, sessionFile);
46864
+ await fs$1.writeFile(tmp, text, "utf-8");
46865
+ await fs$1.rename(tmp, sessionFile);
46882
46866
  }
46883
46867
  /**
46884
46868
  * Remove empty assistant JSONL entries from the session file.
@@ -46980,7 +46964,7 @@ function isInPoisonRange(version) {
46980
46964
  */
46981
46965
  async function checkSessionPoison(sessionFile) {
46982
46966
  try {
46983
- const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
46967
+ const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
46984
46968
  if (!firstLine) return null;
46985
46969
  const header = JSON.parse(firstLine);
46986
46970
  if (header.type !== "session") return null;
@@ -46998,7 +46982,7 @@ async function checkSessionPoison(sessionFile) {
46998
46982
  */
46999
46983
  async function archivePoisonedSession(sessionFile) {
47000
46984
  const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
47001
- await fsPromises.rename(sessionFile, archiveName);
46985
+ await fs$1.rename(sessionFile, archiveName);
47002
46986
  return archiveName;
47003
46987
  }
47004
46988
  /**
@@ -47007,14 +46991,14 @@ async function archivePoisonedSession(sessionFile) {
47007
46991
  */
47008
46992
  async function stampSessionVersion(sessionFile) {
47009
46993
  try {
47010
- const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
46994
+ const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
47011
46995
  if (lines.length === 0) return;
47012
46996
  const header = JSON.parse(lines[0]);
47013
46997
  if (header.type !== "session") return;
47014
46998
  if (header.symiVersion === VERSION) return;
47015
46999
  header.symiVersion = VERSION;
47016
47000
  lines[0] = JSON.stringify(header);
47017
- await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
47001
+ await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
47018
47002
  } catch {}
47019
47003
  }
47020
47004
  /**
@@ -47243,7 +47227,7 @@ async function prepareSessionManagerForRun(params) {
47243
47227
  return;
47244
47228
  }
47245
47229
  if (params.hadSessionFile && header && !hasAssistant) {
47246
- await fsPromises.writeFile(params.sessionFile, "", "utf-8");
47230
+ await fs$1.writeFile(params.sessionFile, "", "utf-8");
47247
47231
  sm.fileEntries = [header];
47248
47232
  sm.byId?.clear?.();
47249
47233
  sm.labelsById?.clear?.();
@@ -47801,7 +47785,7 @@ async function runEmbeddedAttempt(params) {
47801
47785
  const prevCwd = process.cwd();
47802
47786
  const runAbortController = new AbortController();
47803
47787
  log$7.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"}`);
47804
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
47788
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
47805
47789
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
47806
47790
  const sandbox = await resolveSandboxContext({
47807
47791
  config: params.config,
@@ -47809,7 +47793,7 @@ async function runEmbeddedAttempt(params) {
47809
47793
  workspaceDir: resolvedWorkspace
47810
47794
  });
47811
47795
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
47812
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
47796
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
47813
47797
  let restoreSkillEnv;
47814
47798
  process.chdir(effectiveWorkspace);
47815
47799
  try {
@@ -48018,7 +48002,7 @@ async function runEmbeddedAttempt(params) {
48018
48002
  sessionFile: params.sessionFile,
48019
48003
  warn: (message) => log$7.warn(message)
48020
48004
  });
48021
- const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
48005
+ const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
48022
48006
  const transcriptPolicy = resolveTranscriptPolicy({
48023
48007
  modelApi: params.model?.api,
48024
48008
  provider: params.provider,
@@ -49110,7 +49094,7 @@ async function runEmbeddedPiAgent(params) {
49110
49094
  }
49111
49095
  runLoopIterations += 1;
49112
49096
  attemptedThinking.add(thinkLevel);
49113
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
49097
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
49114
49098
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
49115
49099
  const attempt = await runEmbeddedAttempt({
49116
49100
  sessionId: params.sessionId,