@symerian/symi 3.5.26 → 3.5.28

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 (229) hide show
  1. package/dist/{agent-CoHzNs_e.js → agent-BsRYHa15.js} +18 -18
  2. package/dist/{agent-CB5yb-7V.js → agent-TRt_SsAW.js} +1 -1
  3. package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
  4. package/dist/{agents-DtRd3yEb.js → agents-7qMp2MWu.js} +2 -2
  5. package/dist/{agents.config-DA0ISLi7.js → agents.config-B7sNDvhz.js} +1 -1
  6. package/dist/{audit-CuwXq_EA.js → audit-C_3fAFeS.js} +20 -20
  7. package/dist/{auth-choice-5SLfZiQ7.js → auth-choice-C8lwYiEQ.js} +1 -1
  8. package/dist/{auth-choice-DKRHawfp.js → auth-choice-DcB72YWZ.js} +11 -11
  9. package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
  10. package/dist/{auth-token-fgnCQEHT.js → auth-token-Cr28IDKY.js} +3 -3
  11. package/dist/{banner-B_P_FrmA.js → banner-B5Hv4rlk.js} +1 -1
  12. package/dist/{browser-cli-BI81RlI8.js → browser-cli-D6xFqw9w.js} +9 -9
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +4 -4
  15. package/dist/bundled/session-memory/handler.js +4 -4
  16. package/dist/{call-xUpyZDH4.js → call-AZ9vNhST.js} +9 -9
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-vjcKi2yl.js → channel-options-DOzFci6h.js} +1 -1
  19. package/dist/{channel-options-8NGYZjfd.js → channel-options-ZkruGuHl.js} +1 -1
  20. package/dist/{channels-cli-Bx90nSmB.js → channels-cli-CEz9LILV.js} +7 -7
  21. package/dist/{channels-cli-CfBFa-VO.js → channels-cli-DMShhX0d.js} +57 -57
  22. package/dist/{chrome-38OnGyuN.js → chrome-DJChpTwP.js} +2 -2
  23. package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
  24. package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
  25. package/dist/{cli-qf0qK7oi.js → cli-Byovb_j5.js} +45 -45
  26. package/dist/{cli-DHG9iZJi.js → cli-MDHkESMC.js} +4 -4
  27. package/dist/{client-DiPa71im.js → client-DH75FlQF.js} +1 -1
  28. package/dist/{command-registry-DBbzZvh6.js → command-registry-Dzj-Uz5N.js} +10 -10
  29. package/dist/{commands-registry-CwXsDVuO.js → commands-registry-Ca5hh7nh.js} +1 -1
  30. package/dist/{completion-cli-Ddfrnilx.js → completion-cli-CsJ2f_fk.js} +12 -12
  31. package/dist/{completion-cli-DoQrkCAd.js → completion-cli-vAwL_uEK.js} +2 -2
  32. package/dist/{config-BngIfn5l.js → config-B4jkreCN.js} +2 -2
  33. package/dist/{config-cli-9a5qBcdo.js → config-cli-CqqCDyf0.js} +1 -1
  34. package/dist/{config-cli-JVGYyfYA.js → config-cli-cmea_Z-A.js} +4 -4
  35. package/dist/{config-guard-DStz4_V2.js → config-guard-BRm3RiOi.js} +6 -6
  36. package/dist/{config-validation-Dxj9LRzr.js → config-validation-Cdyg1BZB.js} +1 -1
  37. package/dist/{configure-ryB8EvyP.js → configure-BEPKQuJj.js} +2 -2
  38. package/dist/{configure-Bqz2Hvnf.js → configure-DymrZd1n.js} +14 -14
  39. package/dist/{consolidate-CO32_TEx.js → consolidate-DymnvvYm.js} +6 -6
  40. package/dist/{control-service-CUreKVeY.js → control-service-D8kKOts5.js} +4 -4
  41. package/dist/control-ui/css/style.css +274 -0
  42. package/dist/control-ui/index.html +14 -0
  43. package/dist/control-ui/js/symframe-bidirectional.js +210 -0
  44. package/dist/{control-ui-assets-B8B9z_Ll.js → control-ui-assets-CJQ97d4u.js} +1 -1
  45. package/dist/{cost-cli-D-ssjcRF.js → cost-cli-DWiVCOCx.js} +3 -3
  46. package/dist/{cron-cli-pZ_7Wzhj.js → cron-cli-VH_t2D1o.js} +7 -7
  47. package/dist/{daemon-cli-BDzcfcu_.js → daemon-cli-3PFXkheJ.js} +11 -11
  48. package/dist/{daemon-runtime-CKn0wmCk.js → daemon-runtime-DlQla_dA.js} +10 -10
  49. package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
  50. package/dist/{deliver-CWMFmMCv.js → deliver-lTZLIQqf.js} +2 -2
  51. package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
  52. package/dist/{deps-CdibsPMx.js → deps-Bf9dt2UO.js} +1 -1
  53. package/dist/{devices-cli-BIZbo_Pt.js → devices-cli-Bhi1rWnT.js} +6 -6
  54. package/dist/{diagnostics-CYkqD5lP.js → diagnostics-DlZODdRf.js} +5 -5
  55. package/dist/{directory-cli-giqTe8Yg.js → directory-cli-Bm5QYEo-.js} +3 -3
  56. package/dist/{dm-policy-shared-B61_yf6G.js → dm-policy-shared-CeFt0nch.js} +1 -1
  57. package/dist/{dns-cli-Dssz4RqF.js → dns-cli-CubLq4j9.js} +3 -3
  58. package/dist/{docs-cli-Ct1STieY.js → docs-cli-PS8m1er7.js} +1 -1
  59. package/dist/{doctor-completion-Bk55g4MP.js → doctor-completion--phnyAqO.js} +1 -1
  60. package/dist/{doctor-completion-eh7aImCx.js → doctor-completion-BY72G6-l.js} +2 -2
  61. package/dist/{doctor-config-flow-ljVnQJjo.js → doctor-config-flow-C52W1uUK.js} +9 -9
  62. package/dist/entry.js +1 -1
  63. package/dist/{exec-approvals-cli-B2UY9dZC.js → exec-approvals-cli-xTOKcyZh.js} +13 -13
  64. package/dist/extensionAPI.js +4 -4
  65. package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
  66. package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
  67. package/dist/{gateway-cli-BwPy7u0B.js → gateway-cli-BVpyqk_H.js} +98 -98
  68. package/dist/{gateway-cli-BGMVOW2G.js → gateway-cli-Bo80TSkq.js} +10 -10
  69. package/dist/{gateway-rpc-DmFOiGIJ.js → gateway-rpc-C6lKFbor.js} +1 -1
  70. package/dist/{glass-ui-ws-Z-W33_mF.js → glass-ui-ws-BK5qk7-_.js} +8 -8
  71. package/dist/{glass-ui-ws-CwOiILiY.js → glass-ui-ws-CrmnRYxe.js} +67 -67
  72. package/dist/{health-Bc1wmAO5.js → health-7UqIGG8U.js} +4 -4
  73. package/dist/{hooks-cli-DOjHV2fF.js → hooks-cli-CjklMDuK.js} +59 -59
  74. package/dist/{hooks-cli-Bn6x6Jnj.js → hooks-cli-CqmTdxT6.js} +5 -5
  75. package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
  76. package/dist/index.js +52 -52
  77. package/dist/{inspect-DzYUb_Dl.js → inspect-CGKsaVZ4.js} +4 -4
  78. package/dist/{install-safe-path-BrpA09f2.js → install-safe-path-B2JrFspY.js} +11 -11
  79. package/dist/{installs-bnDlOSq2.js → installs-D890uIIW.js} +10 -10
  80. package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
  81. package/dist/{lifecycle-core-cSR_xiIO.js → lifecycle-core-wFwnK_mD.js} +5 -5
  82. package/dist/llm-slug-generator.js +4 -4
  83. package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
  84. package/dist/{logs-cli-CYFlhj51.js → logs-cli-BTU7zrkU.js} +7 -7
  85. package/dist/{manager-DuWp0CTD.js → manager-CL767Sv9.js} +15 -15
  86. package/dist/{manager-BHddoe4T.js → manager-NDn8AFhr.js} +1 -1
  87. package/dist/{manager-DH00nlW8.js → manager-XfNxjaX5.js} +1 -1
  88. package/dist/{manager-F0-SHT1B.js → manager-fgUC_sHR.js} +1 -1
  89. package/dist/{memory-C02Znuee.js → memory-CTf9MdBg.js} +2 -2
  90. package/dist/{memory-fFc7GGPZ.js → memory-DOl2l2AS.js} +5 -5
  91. package/dist/{memory-cli-BnBKckEk.js → memory-cli-B9_Vfaow.js} +12 -12
  92. package/dist/{memory-cli-083UJtVJ.js → memory-cli-CA5PbH9y.js} +2 -2
  93. package/dist/{model-Cwbcw-km.js → model-MUMSB_7d.js} +1 -1
  94. package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
  95. package/dist/{model-catalog-BWurV7gl.js → model-catalog-IWi6-nY9.js} +3 -3
  96. package/dist/{model-picker-Dpkr5xBW.js → model-picker-Cf6UgQEh.js} +5 -5
  97. package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
  98. package/dist/{models-Bh_frCup.js → models-DgiBOeVH.js} +2 -2
  99. package/dist/{models-cli-DVdb_TUS.js → models-cli-B7gTrlgn.js} +55 -55
  100. package/dist/{models-cli-BhBu4Dwm.js → models-cli-BHN3bt0f.js} +6 -6
  101. package/dist/{models-config-DlXge3Sd.js → models-config-B5Xxy-c-.js} +8 -8
  102. package/dist/{node-cli-B0ePfMUr.js → node-cli-CWbA6YCw.js} +27 -27
  103. package/dist/{node-service-Cc18m-uk.js → node-service-BH08wY5j.js} +1 -1
  104. package/dist/{nodes-cli-L0gy-26E.js → nodes-cli-BfHcv62i.js} +10 -10
  105. package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
  106. package/dist/{npm-registry-spec-C-muP97-.js → npm-registry-spec-DTqn-NXZ.js} +9 -9
  107. package/dist/{onboard-D6GZ2t-L.js → onboard-BNdKimpG.js} +15 -15
  108. package/dist/{onboard-BSxqEQfo.js → onboard-DGp6mHJD.js} +1 -1
  109. package/dist/{onboard-channels-BkR3MKMp.js → onboard-channels-DSBWRjSp.js} +1 -1
  110. package/dist/{onboard-channels-DVS9vciR.js → onboard-channels-Dhb-28-_.js} +4 -4
  111. package/dist/{onboard-custom-DnDrvxSg.js → onboard-custom-BcRYreNG.js} +3 -3
  112. package/dist/{onboard-helpers-CJlheOSJ.js → onboard-helpers-7IGQ8nAM.js} +8 -8
  113. package/dist/{onboard-hooks-D9jHwImb.js → onboard-hooks-2SCajRKc.js} +1 -1
  114. package/dist/{onboard-remote-CVZ8l58S.js → onboard-remote-Dr75eqOQ.js} +1 -1
  115. package/dist/{onboard-skills-MgcaLiE6.js → onboard-skills-uO7HZwjc.js} +3 -3
  116. package/dist/{onboarding-D-mzwQ_f.js → onboarding-BG23DuS1.js} +12 -12
  117. package/dist/{onboarding-CrCGoZ4H.js → onboarding-MPSU9pXd.js} +3 -3
  118. package/dist/{onboarding.finalize-BYzduVFA.js → onboarding.finalize-B-mxzJ08.js} +4 -4
  119. package/dist/{onboarding.finalize-DBFL76p0.js → onboarding.finalize-Cv20GyNt.js} +31 -31
  120. package/dist/{onboarding.gateway-config-BCDgsFl8.js → onboarding.gateway-config-CkP7K4EN.js} +8 -8
  121. package/dist/{openai-model-default-De-UAjwg.js → openai-model-default-BkuuK-Di.js} +2 -2
  122. package/dist/{pairing-cli-CBMMCNnx.js → pairing-cli-Rsae0KnN.js} +5 -5
  123. package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
  124. package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
  125. package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
  126. package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
  127. package/dist/{pi-embedded-DGnpyHm-.js → pi-embedded-V-5MAZNb.js} +11 -10
  128. package/dist/{pi-embedded-helpers-j1JrlsI0.js → pi-embedded-helpers-D-OFjhdI.js} +6 -6
  129. package/dist/{pi-tools.policy-CvAqjEH9.js → pi-tools.policy-H2t-Xkfc.js} +3 -3
  130. package/dist/{plugin-auto-enable-BXSJTxI7.js → plugin-auto-enable-DJBhDIMq.js} +1 -1
  131. package/dist/{plugin-registry-KP94aK4z.js → plugin-registry-CBV_Y6Dj.js} +3 -3
  132. package/dist/{plugin-registry-B74FBx4U.js → plugin-registry-c3Skr0q9.js} +1 -1
  133. package/dist/{plugins-cli-Cmf3kRf5.js → plugins-cli-8Jo1X8SU.js} +5 -5
  134. package/dist/{plugins-cli-B4ljapU5.js → plugins-cli-Dl7-FSCq.js} +54 -54
  135. package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
  136. package/dist/{ports-Bi3V_3n9.js → ports-r7LBic2V.js} +1 -1
  137. package/dist/{program-CGuYYumL.js → program-D-LYHEvk.js} +10 -10
  138. package/dist/{program-context-BzqGUxMS.js → program-context-BpeLcVUB.js} +40 -40
  139. package/dist/{prompt-select-styled-BVkRteee.js → prompt-select-styled-Ceih9wkY.js} +38 -38
  140. package/dist/{prompt-select-styled-b752FPLG.js → prompt-select-styled-ZWxB2Odf.js} +4 -4
  141. package/dist/{provider-auth-helpers-C6GjAO-s.js → provider-auth-helpers-BCejcf5o.js} +6 -6
  142. package/dist/{provider-auth-helpers-BKveYcEH.js → provider-auth-helpers-BdvW7eau.js} +1 -1
  143. package/dist/{push-apns-HNg0rTkI.js → push-apns-D4iLNyBo.js} +1 -1
  144. package/dist/{push-apns-CbbWM63o.js → push-apns-HQd5hCpM.js} +4 -4
  145. package/dist/{pw-ai-CP5pn3eU.js → pw-ai-BiBvIJzd.js} +7 -7
  146. package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
  147. package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
  148. package/dist/{qmd-manager-Dxyue7B1.js → qmd-manager-C8-M4Pru.js} +19 -19
  149. package/dist/{qr-cli-DHw6muwK.js → qr-cli-1sCVaPcF.js} +3 -3
  150. package/dist/{register.agent-DbPYGG3u.js → register.agent-DoUbqZIu.js} +9 -9
  151. package/dist/{register.agent-DhS2lmWo.js → register.agent-zwVEiCHs.js} +67 -67
  152. package/dist/{register.configure-ChjzXxh8.js → register.configure-CSe8Rlda.js} +70 -70
  153. package/dist/{register.configure-B0M15y31.js → register.configure-jBKvvOnk.js} +8 -8
  154. package/dist/{register.maintenance-bzLNOqch.js → register.maintenance-BdikNAV1.js} +9 -9
  155. package/dist/{register.maintenance-frHWf6Xs.js → register.maintenance-royLmVA2.js} +67 -67
  156. package/dist/{register.message-Bfukmte_.js → register.message-C1H5Vcnb.js} +5 -5
  157. package/dist/{register.message-DWB4eVII.js → register.message-C_0uLdYn.js} +47 -47
  158. package/dist/{register.onboard-4P8ud4Sw.js → register.onboard-DTLtb0SN.js} +25 -25
  159. package/dist/{register.onboard-CDsSVoFI.js → register.onboard-DnMRUtnl.js} +2 -2
  160. package/dist/{register.setup-Bp8rYeRx.js → register.setup-B9sjRH7l.js} +2 -2
  161. package/dist/{register.setup-D0I7sEGc.js → register.setup-KA8Cs3HJ.js} +28 -28
  162. package/dist/{register.status-health-sessions-69Gigo_H.js → register.status-health-sessions-B_jcsH3c.js} +41 -41
  163. package/dist/{register.status-health-sessions-DE2db_Uo.js → register.status-health-sessions-BwiKHLEj.js} +3 -3
  164. package/dist/{register.subclis-QXO75pUm.js → register.subclis-B_V8vNI0.js} +9 -9
  165. package/dist/{replies-B_3j7R_Q.js → replies-CbXXjn9X.js} +1 -1
  166. package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
  167. package/dist/{resolve-route-Du0VftVs.js → resolve-route-C1IIA6kH.js} +1 -1
  168. package/dist/{routes-BwTUoI5h.js → routes-ivqbutvM.js} +10 -10
  169. package/dist/{rpc-DTqyJZKO.js → rpc-B1czfnym.js} +1 -1
  170. package/dist/{run-main-MD8Z8ydF.js → run-main-DhgQtxI0.js} +17 -17
  171. package/dist/{sandbox-CZGTCone.js → sandbox-BkznAPKO.js} +18 -18
  172. package/dist/{sandbox-cli-DEtGT_4y.js → sandbox-cli-Bb9cBtBH.js} +13 -13
  173. package/dist/{security-cli-iJpHPABF.js → security-cli-l59T6lAJ.js} +29 -29
  174. package/dist/{send-CxjvucMO.js → send-B0jHSNMF.js} +7 -7
  175. package/dist/{server-context-DXdk410X.js → server-context-ChcbJgNo.js} +5 -5
  176. package/dist/{server-methods-DHWxmfIu.js → server-methods-6-10RyMD.js} +60 -60
  177. package/dist/{server-methods-DTkVQH8Q.js → server-methods-Bdz-OwQ4.js} +7 -7
  178. package/dist/{server-node-events-C0smPxrR.js → server-node-events-B3Yey3h9.js} +6 -6
  179. package/dist/{server-node-events-DHSiqnRS.js → server-node-events-C4giIb7q.js} +48 -48
  180. package/dist/{service-CRZoXO_n.js → service-e6MzlLCd.js} +15 -15
  181. package/dist/{session-dirs-a00Ad2SO.js → session-dirs-C9E2G0yZ.js} +2 -2
  182. package/dist/{session-utils-CJhcRx3E.js → session-utils-Cs1jlD-q.js} +14 -14
  183. package/dist/{sessions-BCc3THTm.js → sessions-Dxf5Kjig.js} +10 -10
  184. package/dist/{shared-C39SiDDJ.js → shared-1xPo9ygd.js} +1 -1
  185. package/dist/{shared-Dh-O8nRd.js → shared-COtpr3Ad.js} +3 -3
  186. package/dist/{skill-commands-DWvXs3lz.js → skill-commands-DDGGlq68.js} +4 -4
  187. package/dist/{skill-scanner-CIlHPszT.js → skill-scanner-BCgVcIwi.js} +5 -5
  188. package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
  189. package/dist/{skills-cli-CD9s3cgm.js → skills-cli-B-7TY-vS.js} +7 -7
  190. package/dist/{skills-install-BTa9IuQ6.js → skills-install-Dwzsjoc8.js} +3 -3
  191. package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
  192. package/dist/{skills-status-DLnCHUZ2.js → skills-status-BKX1PjCc.js} +1 -1
  193. package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
  194. package/dist/{status-DUbs9rVu.js → status-BRUIJsUm.js} +3 -3
  195. package/dist/{status-OTYFx93W.js → status-B_CQpjQ9.js} +1 -1
  196. package/dist/{status-ISN-LC9F.js → status-CCAO6ZHm.js} +23 -23
  197. package/dist/{status-BEZotN01.js → status-D_0593yR.js} +1 -1
  198. package/dist/{status.update-CKfyV6zw.js → status.update-DGJi0OLl.js} +3 -3
  199. package/dist/{subagent-registry-CVhLz4p3.js → subagent-registry-D8BIWG9Q.js} +4 -3
  200. package/dist/{symframe-cli-CPE5nxuJ.js → symframe-cli-BVmRLRid.js} +9 -9
  201. package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
  202. package/dist/{synthesis-C1mZnGqD.js → synthesis-BfVWACNx.js} +4 -4
  203. package/dist/{synthesis-DkHCk0El.js → synthesis-CV94EuT_.js} +45 -45
  204. package/dist/{synthesis-CDPVZw2P.js → synthesis-D6pnRAxI.js} +4 -4
  205. package/dist/{synthesis-RhT991Ni.js → synthesis-qvteT0Ti.js} +4 -4
  206. package/dist/{system-cli-nWJwLo85.js → system-cli-Du1GEeoO.js} +7 -7
  207. package/dist/{systemd-CsoVnIbM.js → systemd-CUIM0n5P.js} +5 -5
  208. package/dist/{systemd-hints-QISwLlFU.js → systemd-hints-CsrzMCTD.js} +6 -6
  209. package/dist/{systemd-linger-BnhuRdbt.js → systemd-linger-BzYk7A6M.js} +1 -1
  210. package/dist/{tui-ZL7IGA7l.js → tui-B2MY6Mj2.js} +7 -7
  211. package/dist/{tui-cli-CEpMtmhP.js → tui-cli-BMEnosW9.js} +19 -19
  212. package/dist/{unified-runner-CsadjpQa.js → unified-runner-CtSJoaGS.js} +102 -101
  213. package/dist/{unified-runner-Cppo8O8z.js → unified-runner-H3Qh_NZO.js} +11 -10
  214. package/dist/{update-check-u6Jgr1cz.js → update-check-BCL_K7kx.js} +5 -5
  215. package/dist/{update-cli-48-Nah-Y.js → update-cli-BrryYmFA.js} +77 -77
  216. package/dist/{update-cli-D9g9s187.js → update-cli-CUos9qgT.js} +9 -9
  217. package/dist/{update-runner-G2YgEATs.js → update-runner-BLV8SI96.js} +15 -15
  218. package/dist/{update-Cb0Fmxic.js → update-yYduAjKd.js} +3 -3
  219. package/dist/{webhooks-cli-DjUITimx.js → webhooks-cli-D5k-Y2A8.js} +4 -4
  220. package/dist/{with-timeout-CLrF-Yr_.js → with-timeout-DPR4A2dx.js} +1 -1
  221. package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
  222. package/dist/{wsl-DTi7eX-V.js → wsl-CglTdtlb.js} +2 -2
  223. package/extensions/memory-core/package.json +1 -1
  224. package/extensions/msteams/CHANGELOG.md +12 -0
  225. package/extensions/msteams/package.json +1 -1
  226. package/extensions/open-prose/package.json +1 -1
  227. package/extensions/outlook/package.json +1 -1
  228. package/extensions/slack/package.json +1 -1
  229. package/package.json +1 -1
@@ -3,93 +3,93 @@ import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogge
3
3
  import { _ as resolveStateDir, u as resolveGatewayPort } from "./paths-By0XjHBk.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-CTPsqyE_.js";
5
5
  import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
6
- import { T as resolveAuthProfileDisplayLabel, a as markAuthProfileFailure, b as ensureAuthProfileStore, g as markAuthProfileGood, h as listProfilesForProvider, i as isProfileInCooldown, n as resolveAuthProfileOrder, o as markAuthProfileUsed, r as getSoonestCooldownExpiry, w as resolveAuthStorePathForDisplay } from "./auth-profiles-D5nYBj_Z.js";
6
+ import { T as resolveAuthProfileDisplayLabel, a as markAuthProfileFailure, b as ensureAuthProfileStore, g as markAuthProfileGood, h as listProfilesForProvider, i as isProfileInCooldown, n as resolveAuthProfileOrder, o as markAuthProfileUsed, r as getSoonestCooldownExpiry, w as resolveAuthStorePathForDisplay } from "./auth-profiles-Ce7R_25e.js";
7
7
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.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-DUSb7CCb.js";
9
- import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.js";
9
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.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-DuYbft0z.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-Bnsyyeci.js";
12
- import { C as DEFAULT_MODEL, S as DEFAULT_CONTEXT_TOKENS, _ as resolveModelRefFromString, a as findNormalizedProviderValue, b as resolveThinkingDefault, c as modelKey, h as resolveDefaultModelForAgent, l as normalizeModelRef$1, m as resolveConfiguredModelRef, n as buildConfiguredAllowlistKeys, r as buildModelAliasIndex, t as buildAllowedModelSet, u as normalizeProviderId, w as DEFAULT_PROVIDER, x as getProviderAdapter, y as resolveSubagentSpawnModelSelection } from "./model-selection-CCTzD29o.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-DOrZjOnW.js";
12
+ import { C as DEFAULT_MODEL, S as DEFAULT_CONTEXT_TOKENS, _ as resolveModelRefFromString, a as findNormalizedProviderValue, b as resolveThinkingDefault, c as modelKey, h as resolveDefaultModelForAgent, l as normalizeModelRef$1, m as resolveConfiguredModelRef, n as buildConfiguredAllowlistKeys, r as buildModelAliasIndex, t as buildAllowedModelSet, u as normalizeProviderId, w as DEFAULT_PROVIDER, x as getProviderAdapter, y as resolveSubagentSpawnModelSelection } from "./model-selection-7wdmO-Iw.js";
13
13
  import { n as normalizeSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
14
14
  import { n as saveJsonFile, t as loadJsonFile } from "./json-file-CNp4GTiH.js";
15
15
  import { t as resolveSymiAgentDir } from "./agent-paths-BbZSGrUA.js";
16
- 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-j1JrlsI0.js";
17
- 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-BngIfn5l.js";
16
+ 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-D-OFjhdI.js";
17
+ 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-B4jkreCN.js";
18
18
  import { t as parseBooleanValue } from "./boolean-CbZoNRMn.js";
19
19
  import { t as isTruthyEnvValue } from "./env-BRnPI9sO.js";
20
20
  import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell } from "./shell-env-Dc3iU7HK.js";
21
21
  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-D1MLZEjS.js";
22
22
  import { a as isPathInsideWithRealpath } from "./legacy-names-BQ9vKISY.js";
23
- 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-CZGTCone.js";
24
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-38OnGyuN.js";
25
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DXdk410X.js";
23
+ 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-BkznAPKO.js";
24
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DJChpTwP.js";
25
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-ChcbJgNo.js";
26
26
  import { l as parseFrontmatterBlock } from "./frontmatter-B_jqcova.js";
27
- 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-CYcBtLGH.js";
28
- import { n as getMediaDir, r as saveMediaBuffer } from "./routes-BwTUoI5h.js";
27
+ 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-BwDmcZdt.js";
28
+ import { n as getMediaDir, r as saveMediaBuffer } from "./routes-ivqbutvM.js";
29
29
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-bI7Tdx75.js";
30
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BWqg8NZT.js";
30
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-DObzwe08.js";
31
31
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DOZRI5XH.js";
32
- 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-BzCBIakN.js";
33
- 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-BCc3THTm.js";
32
+ 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-L70xVnpG.js";
33
+ 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-Dxf5Kjig.js";
34
34
  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-hF45sewN.js";
35
35
  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-DgjXWzf-.js";
36
36
  import { t as normalizeChatType } from "./chat-type-CUJqUqwu.js";
37
37
  import { n as resolveConversationLabel } from "./conversation-label-CffvEjpp.js";
38
38
  import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
39
- 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-CxjvucMO.js";
39
+ 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-B0jHSNMF.js";
40
40
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-BtvQ7JvU.js";
41
41
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-Dfn-vEsu.js";
42
42
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
43
43
  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-COroyVA5.js";
44
44
  import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-0yh2UnJq.js";
45
- 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-CWMFmMCv.js";
45
+ 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-lTZLIQqf.js";
46
46
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-DbT9t0Sh.js";
47
47
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DnkpMfCl.js";
48
- import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-_C07_3Yr.js";
49
- import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-DlXge3Sd.js";
50
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-D-vdh-nY.js";
48
+ import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-1EAQvYRv.js";
49
+ import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-B5Xxy-c-.js";
50
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-Db8XJVGL.js";
51
51
  import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-D3mgssM_.js";
52
- 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-CJhcRx3E.js";
53
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-CLrF-Yr_.js";
54
- import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CtZtkTJK.js";
55
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-fFc7GGPZ.js";
56
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DuWp0CTD.js";
57
- import { f as runTasksWithConcurrency } from "./internal-csqU78gW.js";
52
+ 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-Cs1jlD-q.js";
53
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-DPR4A2dx.js";
54
+ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BFNeXT65.js";
55
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-DOl2l2AS.js";
56
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-CL767Sv9.js";
57
+ import { f as runTasksWithConcurrency } from "./internal-DVCddhhN.js";
58
58
  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-BxfKjCUx.js";
59
59
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CS1Tvb3z.js";
60
60
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BhdrdVp5.js";
61
61
  import { t as fetchWithSsrFGuard } from "./fetch-guard-JHxT9355.js";
62
- import { n as getDefaultMediaLocalRoots } from "./local-roots-2Jb79HZ8.js";
62
+ import { n as getDefaultMediaLocalRoots } from "./local-roots-CgDCgCuM.js";
63
63
  import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-DUzLGgEZ.js";
64
- import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-CwXsDVuO.js";
65
- import { Ht as SESSION_LABEL_MAX_LENGTH } from "./client-DiPa71im.js";
66
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-xUpyZDH4.js";
64
+ import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-Ca5hh7nh.js";
65
+ import { Ht as SESSION_LABEL_MAX_LENGTH } from "./client-DH75FlQF.js";
66
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-AZ9vNhST.js";
67
67
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-DFOL6UQ9.js";
68
68
  import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
69
69
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-B7Rvs8pK.js";
70
- import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-BcRQTDsZ.js";
70
+ import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-bz71Bstn.js";
71
71
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-ClQLvlCW.js";
72
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BWurV7gl.js";
73
- import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-DWvXs3lz.js";
74
- import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-Be-ZQK87.js";
72
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-IWi6-nY9.js";
73
+ import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-DDGGlq68.js";
74
+ import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BNhJOnWn.js";
75
75
  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-DioSaIeH.js";
76
- 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-Cp5QP3ET.js";
76
+ 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-De9ma6e1.js";
77
77
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-N7nsmfM6.js";
78
78
  import { t as formatDurationCompact$1 } from "./format-duration-CIjmjQST.js";
79
79
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-9ygk6nTV.js";
80
80
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-DeczTGI-.js";
81
81
  import { i as resolveWindow, n as formatSummaryReport, r as loadCostBenchmarkSummary, t as buildCostBreakdown } from "./breakdown-B_Dhhm3K.js";
82
82
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
83
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CUreKVeY.js";
83
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-D8kKOts5.js";
84
84
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DQs772BN.js";
85
85
  import { t as emitSymframePush } from "./symframe-broadcast-CXo2qoxy.js";
86
86
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-H1qOf0q-.js";
87
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Du0VftVs.js";
87
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-C1IIA6kH.js";
88
88
  import { t as parseTimeoutMs } from "./parse-timeout-DmEcHIsV.js";
89
- import { n as registerMemoryCli } from "./memory-cli-BnBKckEk.js";
90
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-B_3j7R_Q.js";
91
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-CvAqjEH9.js";
92
- import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-Cwbcw-km.js";
89
+ import { n as registerMemoryCli } from "./memory-cli-B9_Vfaow.js";
90
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CbXXjn9X.js";
91
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-H2t-Xkfc.js";
92
+ import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-MUMSB_7d.js";
93
93
  import { createRequire } from "node:module";
94
94
  import process$1 from "node:process";
95
95
  import { fileURLToPath } from "node:url";
@@ -98,7 +98,7 @@ import path from "node:path";
98
98
  import fs, { constants, existsSync, statSync } from "node:fs";
99
99
  import os, { homedir } from "node:os";
100
100
  import JSON5 from "json5";
101
- import fsPromises from "node:fs/promises";
101
+ import fs$1 from "node:fs/promises";
102
102
  import { execFileSync, spawn, spawnSync } from "node:child_process";
103
103
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
104
104
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -1848,7 +1848,7 @@ async function imageResult(params) {
1848
1848
  }, params.label, params.imageSanitization);
1849
1849
  }
1850
1850
  async function imageResultFromFile(params) {
1851
- const buf = await fsPromises.readFile(params.path);
1851
+ const buf = await fs$1.readFile(params.path);
1852
1852
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
1853
1853
  return await imageResult({
1854
1854
  label: params.label,
@@ -4702,6 +4702,7 @@ function buildAgentSystemPrompt(params) {
4702
4702
  " - `quiet` — substrate only, cards + AWAITING hidden. Use when you're thinking and have nothing actionable to surface yet.",
4703
4703
  "Modes are sticky until you `setMode` again or the user overrides via the header chips. Default to `ambient`; pick `focus` only when you genuinely want a single card to dominate; pick `awaiting` only when waiting is the user's primary experience.",
4704
4704
  "After pushing, briefly tell the user what's in the panel (e.g. \"Drafted the email — shown in your panel.\"). Don't repeat the full content in chat.",
4705
+ "Card references (Stage E): when you reference a card you pushed earlier in chat, use the literal syntax `[panel:<card-id>]` (e.g. \"see [panel:sf-abc123] for the draft\"). Glass UI rewrites this into a clickable span showing the card's title and auto-pulses the card to draw the user's eye. Use only the card id you got back from a previous `display_artifact add` call. Use sparingly — only when you genuinely want to direct the user to a specific previously-pushed card.",
4705
4706
  "",
4706
4707
  ...compactMode ? [] : [
4707
4708
  "## Tool Call Style",
@@ -5834,7 +5835,7 @@ async function routeReply(params) {
5834
5835
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
5835
5836
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
5836
5837
  try {
5837
- const { deliverOutboundPayloads } = await import("./deliver-CWMFmMCv.js").then((n) => n.n);
5838
+ const { deliverOutboundPayloads } = await import("./deliver-lTZLIQqf.js").then((n) => n.n);
5838
5839
  return {
5839
5840
  ok: true,
5840
5841
  messageId: (await deliverOutboundPayloads({
@@ -11675,7 +11676,7 @@ var MediaAttachmentCache = class {
11675
11676
  const size = await this.ensureLocalStat(entry);
11676
11677
  if (entry.resolvedPath) {
11677
11678
  if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
11678
- const buffer = await fsPromises.readFile(entry.resolvedPath);
11679
+ const buffer = await fs$1.readFile(entry.resolvedPath);
11679
11680
  entry.buffer = buffer;
11680
11681
  entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
11681
11682
  buffer,
@@ -11745,10 +11746,10 @@ var MediaAttachmentCache = class {
11745
11746
  prefix: "symi-media",
11746
11747
  extension: path.extname(bufferResult.fileName || "") || ""
11747
11748
  });
11748
- await fsPromises.writeFile(tmpPath, bufferResult.buffer);
11749
+ await fs$1.writeFile(tmpPath, bufferResult.buffer);
11749
11750
  entry.tempPath = tmpPath;
11750
11751
  entry.tempCleanup = async () => {
11751
- await fsPromises.unlink(tmpPath).catch(() => {});
11752
+ await fs$1.unlink(tmpPath).catch(() => {});
11752
11753
  };
11753
11754
  return {
11754
11755
  path: tmpPath,
@@ -11795,12 +11796,12 @@ var MediaAttachmentCache = class {
11795
11796
  if (entry.statSize !== void 0) return entry.statSize;
11796
11797
  try {
11797
11798
  const currentPath = entry.resolvedPath;
11798
- const stat = await fsPromises.stat(currentPath);
11799
+ const stat = await fs$1.stat(currentPath);
11799
11800
  if (!stat.isFile()) {
11800
11801
  entry.resolvedPath = void 0;
11801
11802
  return;
11802
11803
  }
11803
- const canonicalPath = await fsPromises.realpath(currentPath).catch(() => currentPath);
11804
+ const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
11804
11805
  if (!isInboundPathAllowed({
11805
11806
  filePath: canonicalPath,
11806
11807
  roots: await this.getCanonicalLocalPathRoots()
@@ -11822,7 +11823,7 @@ var MediaAttachmentCache = class {
11822
11823
  if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
11823
11824
  this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
11824
11825
  if (root.includes("*")) return root;
11825
- return await fsPromises.realpath(root).catch(() => root);
11826
+ return await fs$1.realpath(root).catch(() => root);
11826
11827
  }))))();
11827
11828
  return await this.canonicalLocalPathRoots;
11828
11829
  }
@@ -11893,7 +11894,7 @@ function formatAudioTranscripts(outputs) {
11893
11894
  async function fileExists(filePath) {
11894
11895
  if (!filePath) return false;
11895
11896
  try {
11896
- await fsPromises.stat(filePath);
11897
+ await fs$1.stat(filePath);
11897
11898
  return true;
11898
11899
  } catch {
11899
11900
  return false;
@@ -11993,7 +11994,7 @@ async function resolveCliOutput(params) {
11993
11994
  const commandId = commandBase(params.command);
11994
11995
  const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
11995
11996
  if (fileOutput && await fileExists(fileOutput)) try {
11996
- const content = await fsPromises.readFile(fileOutput, "utf8");
11997
+ const content = await fs$1.readFile(fileOutput, "utf8");
11997
11998
  if (content.trim()) return content.trim();
11998
11999
  } catch {}
11999
12000
  if (commandId === "gemini") {
@@ -12284,7 +12285,7 @@ async function runCliEntry(params) {
12284
12285
  maxBytes,
12285
12286
  timeoutMs
12286
12287
  });
12287
- const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
12288
+ const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
12288
12289
  const mediaPath = pathResult.path;
12289
12290
  const outputBase = path.join(outputDir, path.parse(mediaPath).name);
12290
12291
  const templCtx = {
@@ -12318,7 +12319,7 @@ async function runCliEntry(params) {
12318
12319
  model: command
12319
12320
  };
12320
12321
  } finally {
12321
- await fsPromises.rm(outputDir, {
12322
+ await fs$1.rm(outputDir, {
12322
12323
  recursive: true,
12323
12324
  force: true
12324
12325
  }).catch(() => {});
@@ -12362,9 +12363,9 @@ function candidateBinaryNames(name) {
12362
12363
  }
12363
12364
  async function isExecutable$1(filePath) {
12364
12365
  try {
12365
- if (!(await fsPromises.stat(filePath)).isFile()) return false;
12366
+ if (!(await fs$1.stat(filePath)).isFile()) return false;
12366
12367
  if (process.platform === "win32") return true;
12367
- await fsPromises.access(filePath, constants.X_OK);
12368
+ await fs$1.access(filePath, constants.X_OK);
12368
12369
  return true;
12369
12370
  } catch {
12370
12371
  return false;
@@ -14076,7 +14077,7 @@ async function createModelSelectionState(params) {
14076
14077
  }
14077
14078
  }
14078
14079
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
14079
- const { ensureAuthProfileStore } = await import("./auth-profiles-D5nYBj_Z.js").then((n) => n.t);
14080
+ const { ensureAuthProfileStore } = await import("./auth-profiles-Ce7R_25e.js").then((n) => n.t);
14080
14081
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
14081
14082
  const providerKey = normalizeProviderId(provider);
14082
14083
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -17220,7 +17221,7 @@ async function resolveSandboxWorkdir(params) {
17220
17221
  cwd: process.cwd(),
17221
17222
  root: params.sandbox.workspaceDir
17222
17223
  });
17223
- if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
17224
+ if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
17224
17225
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
17225
17226
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
17226
17227
  return {
@@ -18234,13 +18235,13 @@ async function validateScriptFileForShellBleed(params) {
18234
18235
  cwd: params.workdir,
18235
18236
  root: params.workdir
18236
18237
  });
18237
- stat = await fsPromises.stat(absPath);
18238
+ stat = await fs$1.stat(absPath);
18238
18239
  } catch {
18239
18240
  return;
18240
18241
  }
18241
18242
  if (!stat.isFile()) return;
18242
18243
  if (stat.size > 512 * 1024) return;
18243
- const content = await fsPromises.readFile(absPath, "utf-8");
18244
+ const content = await fs$1.readFile(absPath, "utf-8");
18244
18245
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
18245
18246
  if (first) {
18246
18247
  const idx = first.index;
@@ -22975,7 +22976,7 @@ async function handleCommands(params) {
22975
22976
  try {
22976
22977
  const messages = [];
22977
22978
  if (sessionFile) {
22978
- const content = await fsPromises.readFile(sessionFile, "utf-8");
22979
+ const content = await fs$1.readFile(sessionFile, "utf-8");
22979
22980
  for (const line of content.split("\n")) {
22980
22981
  if (!line.trim()) continue;
22981
22982
  try {
@@ -25162,7 +25163,7 @@ async function readJsonlFromPath(jsonlPath) {
25162
25163
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
25163
25164
  throw new Error("jsonlPath outside allowed roots");
25164
25165
  }
25165
- const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
25166
+ const canonical = await fs$1.realpath(resolved).catch(() => resolved);
25166
25167
  if (!isInboundPathAllowed({
25167
25168
  filePath: canonical,
25168
25169
  roots
@@ -25170,7 +25171,7 @@ async function readJsonlFromPath(jsonlPath) {
25170
25171
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
25171
25172
  throw new Error("jsonlPath outside allowed roots");
25172
25173
  }
25173
- return await fsPromises.readFile(canonical, "utf8");
25174
+ return await fs$1.readFile(canonical, "utf8");
25174
25175
  }
25175
25176
  const CanvasToolSchema = Type.Object({
25176
25177
  action: stringEnum(CANVAS_ACTIONS),
@@ -26873,7 +26874,7 @@ async function hydrateAttachmentPayload(params) {
26873
26874
  accountId: params.accountId
26874
26875
  }),
26875
26876
  sandboxValidated: true,
26876
- readFile: (filePath) => fsPromises.readFile(filePath)
26877
+ readFile: (filePath) => fs$1.readFile(filePath)
26877
26878
  });
26878
26879
  params.args.buffer = media.buffer.toString("base64");
26879
26880
  if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
@@ -33487,7 +33488,7 @@ async function deliverSessionMaintenanceWarning(params) {
33487
33488
  return;
33488
33489
  }
33489
33490
  try {
33490
- const { deliverOutboundPayloads } = await import("./deliver-CWMFmMCv.js").then((n) => n.n);
33491
+ const { deliverOutboundPayloads } = await import("./deliver-lTZLIQqf.js").then((n) => n.n);
33491
33492
  await deliverOutboundPayloads({
33492
33493
  cfg: params.cfg,
33493
33494
  channel,
@@ -33892,7 +33893,7 @@ async function stageSandboxMedia(params) {
33892
33893
  };
33893
33894
  try {
33894
33895
  const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
33895
- await fsPromises.mkdir(destDir, { recursive: true });
33896
+ await fs$1.mkdir(destDir, { recursive: true });
33896
33897
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
33897
33898
  cfg,
33898
33899
  accountId: ctx.AccountId
@@ -33942,7 +33943,7 @@ async function stageSandboxMedia(params) {
33942
33943
  usedNames.add(fileName);
33943
33944
  const dest = path.join(destDir, fileName);
33944
33945
  if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
33945
- else await fsPromises.copyFile(source, dest);
33946
+ else await fs$1.copyFile(source, dest);
33946
33947
  const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
33947
33948
  staged.set(source, stagedPath);
33948
33949
  }
@@ -39273,7 +39274,7 @@ function readSlackExternalArgMenuToken(raw) {
39273
39274
  }
39274
39275
  let commandsRegistry;
39275
39276
  async function getCommandsRegistry() {
39276
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CwXsDVuO.js").then((n) => n.t);
39277
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-Ca5hh7nh.js").then((n) => n.t);
39277
39278
  return commandsRegistry;
39278
39279
  }
39279
39280
  function encodeSlackCommandArgValue(parts) {
@@ -39615,11 +39616,11 @@ async function registerSlackMonitorSlashCommands(params) {
39615
39616
  const channelName = channelInfo?.name;
39616
39617
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
39617
39618
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
39618
- import("./resolve-route-Du0VftVs.js").then((n) => n.r),
39619
+ import("./resolve-route-C1IIA6kH.js").then((n) => n.r),
39619
39620
  import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
39620
39621
  Promise.resolve().then(() => provider_dispatcher_exports)
39621
39622
  ]);
39622
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-CtZtkTJK.js").then((n) => n.n)]);
39623
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-BFNeXT65.js").then((n) => n.n)]);
39623
39624
  const route = resolveAgentRoute({
39624
39625
  cfg,
39625
39626
  channel: "slack",
@@ -39676,7 +39677,7 @@ async function registerSlackMonitorSlashCommands(params) {
39676
39677
  });
39677
39678
  const deliverSlashPayloads = async (replies) => {
39678
39679
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
39679
- import("./replies-B_3j7R_Q.js").then((n) => n.r),
39680
+ import("./replies-CbXXjn9X.js").then((n) => n.r),
39680
39681
  import("./chunk-BxfKjCUx.js").then((n) => n.s),
39681
39682
  import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
39682
39683
  ]);
@@ -39731,7 +39732,7 @@ async function registerSlackMonitorSlashCommands(params) {
39731
39732
  let nativeCommands = [];
39732
39733
  if (nativeEnabled) {
39733
39734
  reg = await getCommandsRegistry();
39734
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DWvXs3lz.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39735
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DDGGlq68.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39735
39736
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
39736
39737
  skillCommands,
39737
39738
  provider: "slack"
@@ -40864,7 +40865,7 @@ function resolvePluginTools(params) {
40864
40865
  //#endregion
40865
40866
  //#region src/agents/apply-patch-update.ts
40866
40867
  async function defaultReadFile(filePath) {
40867
- return fsPromises.readFile(filePath, "utf8");
40868
+ return fs$1.readFile(filePath, "utf8");
40868
40869
  }
40869
40870
  async function applyUpdateHunk(filePath, chunks, options) {
40870
40871
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -41108,10 +41109,10 @@ function resolvePatchFileOps(options) {
41108
41109
  };
41109
41110
  }
41110
41111
  return {
41111
- readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
41112
- writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
41113
- remove: (filePath) => fsPromises.rm(filePath),
41114
- mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
41112
+ readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
41113
+ writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
41114
+ remove: (filePath) => fs$1.rm(filePath),
41115
+ mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
41115
41116
  };
41116
41117
  }
41117
41118
  async function ensureDir(filePath, ops) {
@@ -42316,7 +42317,7 @@ async function repairSessionFileIfNeeded(params) {
42316
42317
  };
42317
42318
  let content;
42318
42319
  try {
42319
- content = await fsPromises.readFile(sessionFile, "utf-8");
42320
+ content = await fs$1.readFile(sessionFile, "utf-8");
42320
42321
  } catch (err) {
42321
42322
  if (err?.code === "ENOENT") return {
42322
42323
  repaired: false,
@@ -42364,15 +42365,15 @@ async function repairSessionFileIfNeeded(params) {
42364
42365
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
42365
42366
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
42366
42367
  try {
42367
- const stat = await fsPromises.stat(sessionFile).catch(() => null);
42368
- await fsPromises.writeFile(backupPath, content, "utf-8");
42369
- if (stat) await fsPromises.chmod(backupPath, stat.mode);
42370
- await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
42371
- if (stat) await fsPromises.chmod(tmpPath, stat.mode);
42372
- await fsPromises.rename(tmpPath, sessionFile);
42368
+ const stat = await fs$1.stat(sessionFile).catch(() => null);
42369
+ await fs$1.writeFile(backupPath, content, "utf-8");
42370
+ if (stat) await fs$1.chmod(backupPath, stat.mode);
42371
+ await fs$1.writeFile(tmpPath, cleaned, "utf-8");
42372
+ if (stat) await fs$1.chmod(tmpPath, stat.mode);
42373
+ await fs$1.rename(tmpPath, sessionFile);
42373
42374
  } catch (err) {
42374
42375
  try {
42375
- await fsPromises.unlink(tmpPath);
42376
+ await fs$1.unlink(tmpPath);
42376
42377
  } catch (cleanupErr) {
42377
42378
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
42378
42379
  }
@@ -43645,7 +43646,7 @@ async function prewarmSessionFile(sessionFile) {
43645
43646
  if (!isSessionManagerCacheEnabled()) return;
43646
43647
  if (isSessionManagerCached(sessionFile)) return;
43647
43648
  try {
43648
- const handle = await fsPromises.open(sessionFile, "r");
43649
+ const handle = await fs$1.open(sessionFile, "r");
43649
43650
  try {
43650
43651
  const buffer = Buffer$1.alloc(4096);
43651
43652
  await handle.read(buffer, 0, buffer.length, 0);
@@ -43785,7 +43786,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43785
43786
  } catch (err) {
43786
43787
  return fail(describeUnknownError(err));
43787
43788
  }
43788
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
43789
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
43789
43790
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
43790
43791
  const sandbox = await resolveSandboxContext({
43791
43792
  config: params.config,
@@ -43793,7 +43794,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43793
43794
  workspaceDir: resolvedWorkspace
43794
43795
  });
43795
43796
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
43796
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
43797
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
43797
43798
  await ensureSessionHeader({
43798
43799
  sessionFile: params.sessionFile,
43799
43800
  sessionId: params.sessionId,
@@ -44118,12 +44119,12 @@ function getQueuedFileWriter(writers, filePath) {
44118
44119
  const existing = writers.get(filePath);
44119
44120
  if (existing) return existing;
44120
44121
  const dir = path.dirname(filePath);
44121
- const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
44122
+ const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
44122
44123
  let queue = Promise.resolve();
44123
44124
  const writer = {
44124
44125
  filePath,
44125
44126
  write: (line) => {
44126
- queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
44127
+ queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
44127
44128
  }
44128
44129
  };
44129
44130
  writers.set(filePath, writer);
@@ -47214,7 +47215,7 @@ Use the message tool with buttons:
47214
47215
  */
47215
47216
  async function readSessionFile(sessionFile) {
47216
47217
  try {
47217
- return await fsPromises.readFile(sessionFile, "utf-8");
47218
+ return await fs$1.readFile(sessionFile, "utf-8");
47218
47219
  } catch {
47219
47220
  return null;
47220
47221
  }
@@ -47223,8 +47224,8 @@ async function writeAtomically(sessionFile, text) {
47223
47224
  const dir = path.dirname(sessionFile);
47224
47225
  const base = path.basename(sessionFile);
47225
47226
  const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
47226
- await fsPromises.writeFile(tmp, text, "utf-8");
47227
- await fsPromises.rename(tmp, sessionFile);
47227
+ await fs$1.writeFile(tmp, text, "utf-8");
47228
+ await fs$1.rename(tmp, sessionFile);
47228
47229
  }
47229
47230
  /**
47230
47231
  * Remove empty assistant JSONL entries from the session file.
@@ -47326,7 +47327,7 @@ function isInPoisonRange(version) {
47326
47327
  */
47327
47328
  async function checkSessionPoison(sessionFile) {
47328
47329
  try {
47329
- const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
47330
+ const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
47330
47331
  if (!firstLine) return null;
47331
47332
  const header = JSON.parse(firstLine);
47332
47333
  if (header.type !== "session") return null;
@@ -47344,7 +47345,7 @@ async function checkSessionPoison(sessionFile) {
47344
47345
  */
47345
47346
  async function archivePoisonedSession(sessionFile) {
47346
47347
  const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
47347
- await fsPromises.rename(sessionFile, archiveName);
47348
+ await fs$1.rename(sessionFile, archiveName);
47348
47349
  return archiveName;
47349
47350
  }
47350
47351
  /**
@@ -47353,14 +47354,14 @@ async function archivePoisonedSession(sessionFile) {
47353
47354
  */
47354
47355
  async function stampSessionVersion(sessionFile) {
47355
47356
  try {
47356
- const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
47357
+ const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
47357
47358
  if (lines.length === 0) return;
47358
47359
  const header = JSON.parse(lines[0]);
47359
47360
  if (header.type !== "session") return;
47360
47361
  if (header.symiVersion === VERSION) return;
47361
47362
  header.symiVersion = VERSION;
47362
47363
  lines[0] = JSON.stringify(header);
47363
- await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
47364
+ await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
47364
47365
  } catch {}
47365
47366
  }
47366
47367
  /**
@@ -47589,7 +47590,7 @@ async function prepareSessionManagerForRun(params) {
47589
47590
  return;
47590
47591
  }
47591
47592
  if (params.hadSessionFile && header && !hasAssistant) {
47592
- await fsPromises.writeFile(params.sessionFile, "", "utf-8");
47593
+ await fs$1.writeFile(params.sessionFile, "", "utf-8");
47593
47594
  sm.fileEntries = [header];
47594
47595
  sm.byId?.clear?.();
47595
47596
  sm.labelsById?.clear?.();
@@ -48147,7 +48148,7 @@ async function runEmbeddedAttempt(params) {
48147
48148
  const prevCwd = process.cwd();
48148
48149
  const runAbortController = new AbortController();
48149
48150
  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"}`);
48150
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
48151
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
48151
48152
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
48152
48153
  const sandbox = await resolveSandboxContext({
48153
48154
  config: params.config,
@@ -48155,7 +48156,7 @@ async function runEmbeddedAttempt(params) {
48155
48156
  workspaceDir: resolvedWorkspace
48156
48157
  });
48157
48158
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
48158
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
48159
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
48159
48160
  let restoreSkillEnv;
48160
48161
  process.chdir(effectiveWorkspace);
48161
48162
  try {
@@ -48364,7 +48365,7 @@ async function runEmbeddedAttempt(params) {
48364
48365
  sessionFile: params.sessionFile,
48365
48366
  warn: (message) => log$7.warn(message)
48366
48367
  });
48367
- const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
48368
+ const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
48368
48369
  const transcriptPolicy = resolveTranscriptPolicy({
48369
48370
  modelApi: params.model?.api,
48370
48371
  provider: params.provider,
@@ -49456,7 +49457,7 @@ async function runEmbeddedPiAgent(params) {
49456
49457
  }
49457
49458
  runLoopIterations += 1;
49458
49459
  attemptedThinking.add(thinkLevel);
49459
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
49460
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
49460
49461
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
49461
49462
  const attempt = await runEmbeddedAttempt({
49462
49463
  sessionId: params.sessionId,