@symerian/symi 3.4.26 → 3.4.27

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 (215) hide show
  1. package/dist/{agent-DR2UU-2F.js → agent-CiqPWDUd.js} +18 -18
  2. package/dist/{agent-DQvcs-ag.js → agent-DOOj3Gzb.js} +1 -1
  3. package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
  4. package/dist/{agents-BewjExwR.js → agents-BBQfFoen.js} +2 -2
  5. package/dist/{agents.config-BJ9RIQlb.js → agents.config-Dm3oLpYK.js} +1 -1
  6. package/dist/{audit-bjakulrx.js → audit-BSX7fMfc.js} +20 -20
  7. package/dist/{auth-choice-BkSsm1pk.js → auth-choice-BYbTjWcs.js} +1 -1
  8. package/dist/{auth-choice-L6_DvGSb.js → auth-choice-rhBmet5i.js} +11 -11
  9. package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
  10. package/dist/{auth-token-DgRRSbEX.js → auth-token-CAV1oLQG.js} +3 -3
  11. package/dist/{banner-DoxWG0Rv.js → banner-C1qG5Rm9.js} +1 -1
  12. package/dist/{browser-cli-DdLN-X6g.js → browser-cli-De8jg4-F.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-BOE4s-tQ.js → call-CW8U1BPq.js} +9 -9
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-CJOhNCrO.js → channel-options-BsXUgCMq.js} +1 -1
  19. package/dist/{channel-options-X5Mgr-oH.js → channel-options-CJD7jwYg.js} +1 -1
  20. package/dist/{channels-cli-Drn3JOc8.js → channels-cli-Bao4VNbH.js} +57 -57
  21. package/dist/{channels-cli-CBdy4UL6.js → channels-cli-Dxn5n9e4.js} +7 -7
  22. package/dist/{chrome-C_I81hbq.js → chrome-DPjznJQ-.js} +7 -7
  23. package/dist/{chrome-xlyBE8q3.js → chrome-pFBxO63W.js} +9 -9
  24. package/dist/{cli-DJA_Gm3_.js → cli-CrhLSz3t.js} +4 -4
  25. package/dist/{cli-S62cMO1-.js → cli-WP38F9C5.js} +45 -45
  26. package/dist/{client-iv2QpsT1.js → client-T5P9umyG.js} +4 -4
  27. package/dist/{command-registry-CZrQWdR_.js → command-registry-DoXcG7FZ.js} +10 -10
  28. package/dist/{commands-registry-VfAQOVZO.js → commands-registry-BjcGLk4v.js} +1 -1
  29. package/dist/{completion-cli-DvaCHwGr.js → completion-cli-C0SXi7ya.js} +12 -12
  30. package/dist/{completion-cli-CPiZTObN.js → completion-cli-DaWi3_ux.js} +2 -2
  31. package/dist/{config-D7SS4vdk.js → config-D-PYSlE8.js} +2 -2
  32. package/dist/{config-cli-CiTMrunf.js → config-cli-DS67KtKf.js} +4 -4
  33. package/dist/{config-cli-Dhb3ZuZ6.js → config-cli-DXKm0pS5.js} +1 -1
  34. package/dist/{config-guard-BGAQzX2K.js → config-guard-xLTTFANi.js} +6 -6
  35. package/dist/{config-validation-COcIIMNe.js → config-validation-C4wGq3rz.js} +1 -1
  36. package/dist/{configure-DlLBbvyP.js → configure-B99YJJb0.js} +14 -14
  37. package/dist/{configure-CzAszDyQ.js → configure-CzO4_jJJ.js} +2 -2
  38. package/dist/{consolidate-DI20-Wtn.js → consolidate-BB4BOQIN.js} +6 -6
  39. package/dist/{control-service-BgfKoTwJ.js → control-service-y53w3Jzy.js} +4 -4
  40. package/dist/{control-ui-assets-DuDhl0co.js → control-ui-assets-Dryy7mCE.js} +1 -1
  41. package/dist/{cron-cli-Bg9CiOss.js → cron-cli-BMblAFRK.js} +7 -7
  42. package/dist/{daemon-cli-wRBPfyuU.js → daemon-cli-BJGNf5qV.js} +11 -11
  43. package/dist/{daemon-runtime-tZgIbDPz.js → daemon-runtime-u4p9jsEF.js} +10 -10
  44. package/dist/{deliver-DB4v0Tyl.js → deliver-C79-Umbk.js} +2 -2
  45. package/dist/{deliver-DyO3QD8O.js → deliver-DTRkeYm3.js} +4 -4
  46. package/dist/{deps-BlmO-MfQ.js → deps-UA1UBhl7.js} +1 -1
  47. package/dist/{devices-cli-IoQV2hfa.js → devices-cli-wsTs-nti.js} +6 -6
  48. package/dist/{diagnostics-tVJR9V0_.js → diagnostics-oW0LBW-t.js} +5 -5
  49. package/dist/{directory-cli-Bfy_ejW2.js → directory-cli-D8As6t8Z.js} +3 -3
  50. package/dist/{dm-policy-shared-CBlUyDSX.js → dm-policy-shared-DRJrFKqJ.js} +1 -1
  51. package/dist/{dns-cli-DzKaV6NZ.js → dns-cli-BKOTBn3n.js} +3 -3
  52. package/dist/{docs-cli-a90_8wuN.js → docs-cli-D5j7Nmz2.js} +1 -1
  53. package/dist/{doctor-completion-CBs1R4s0.js → doctor-completion-B1YCzbvi.js} +1 -1
  54. package/dist/{doctor-completion-C4vmp9I7.js → doctor-completion-mev5PRjN.js} +2 -2
  55. package/dist/{doctor-config-flow-30ZEvATb.js → doctor-config-flow-Uv41seME.js} +9 -9
  56. package/dist/entry.js +1 -1
  57. package/dist/{exec-approvals-cli-D107mxRX.js → exec-approvals-cli-B4ry9s5r.js} +13 -13
  58. package/dist/extensionAPI.js +2 -2
  59. package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
  60. package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
  61. package/dist/{gateway-cli-D6v-ok73.js → gateway-cli-B3JVj_dv.js} +98 -98
  62. package/dist/{gateway-cli-q8Mf3jQH.js → gateway-cli-Chnp6icp.js} +10 -10
  63. package/dist/{gateway-rpc-rNjNMA6y.js → gateway-rpc-CLzM6ugo.js} +1 -1
  64. package/dist/{glass-ui-ws-CC93azF2.js → glass-ui-ws--GjxFRyX.js} +67 -67
  65. package/dist/{glass-ui-ws-CIm7LZ8W.js → glass-ui-ws-5o8dvEZO.js} +8 -8
  66. package/dist/{health-B92I0vwb.js → health-D2th0Ip6.js} +4 -4
  67. package/dist/{hooks-cli-DfFHpfYB.js → hooks-cli-B4Nvp9AV.js} +59 -59
  68. package/dist/{hooks-cli-DCVYSJ8i.js → hooks-cli-B_sZth4r.js} +5 -5
  69. package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
  70. package/dist/index.js +52 -52
  71. package/dist/{inspect-CXsOujVt.js → inspect-U3g9owQ8.js} +4 -4
  72. package/dist/{install-safe-path-D5gi-nfu.js → install-safe-path-BwMMOh9z.js} +11 -11
  73. package/dist/{installs-DF_LhGX6.js → installs-vdi1BESF.js} +10 -10
  74. package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
  75. package/dist/{lifecycle-core-Bvdl2ShM.js → lifecycle-core-BfmNlC-k.js} +5 -5
  76. package/dist/llm-slug-generator.js +4 -4
  77. package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
  78. package/dist/{logs-cli-DvPMH-Ur.js → logs-cli-COZzdFu6.js} +7 -7
  79. package/dist/{manager-CVP2spyx.js → manager-BfbQb9qM.js} +1 -1
  80. package/dist/{manager-Dz4nKG33.js → manager-Bryhc0Ip.js} +1 -1
  81. package/dist/{manager-Dj2dVPGR.js → manager-C5FGNRjL.js} +1 -1
  82. package/dist/{manager-C1bLWQJb.js → manager-DyYRwHZt.js} +15 -15
  83. package/dist/{memory-BGLXu8Hn.js → memory-Cypj1lBQ.js} +2 -2
  84. package/dist/{memory-D_CuTCAW.js → memory-DgDnTEcB.js} +5 -5
  85. package/dist/{memory-cli-XxOC0_-M.js → memory-cli-CfJkD7mO.js} +12 -12
  86. package/dist/{memory-cli-DLyBqCnp.js → memory-cli-DB7UIev4.js} +2 -2
  87. package/dist/{model-DsMHOvMn.js → model-DbILYCfo.js} +1 -1
  88. package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
  89. package/dist/{model-catalog-DQTmHZK7.js → model-catalog-CeqDEWGz.js} +3 -3
  90. package/dist/{model-picker-D4TY_tPx.js → model-picker-C_f6MALt.js} +5 -5
  91. package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
  92. package/dist/{models-Bf57T7rZ.js → models-Bpqeds64.js} +2 -2
  93. package/dist/{models-cli-C7UZtCdE.js → models-cli-BUWfj5iJ.js} +55 -55
  94. package/dist/{models-cli-BoUVPeOA.js → models-cli-Bc47WFhD.js} +6 -6
  95. package/dist/{models-config-CRnTzdFs.js → models-config-Dp5-tBqs.js} +8 -8
  96. package/dist/{node-cli-DBa3SOQb.js → node-cli-BdjmGI32.js} +27 -27
  97. package/dist/{node-service-CrDVFWQl.js → node-service-DphkTjBV.js} +1 -1
  98. package/dist/{nodes-cli-Dx8iwcda.js → nodes-cli-BChJzcKY.js} +10 -10
  99. package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
  100. package/dist/{npm-registry-spec-YMWTMnm_.js → npm-registry-spec-CqVgiBCf.js} +9 -9
  101. package/dist/{onboard-CvspL8de.js → onboard-BbfERyKU.js} +1 -1
  102. package/dist/{onboard-CvXaQ6g7.js → onboard-C0nMMiiS.js} +15 -15
  103. package/dist/{onboard-channels-MlbB9sk1.js → onboard-channels-CMp9YXHC.js} +1 -1
  104. package/dist/{onboard-channels-Bf0N23cr.js → onboard-channels-CmsfVut5.js} +4 -4
  105. package/dist/{onboard-custom-BrtjWDlX.js → onboard-custom-BfHczxx0.js} +3 -3
  106. package/dist/{onboard-helpers-DP7FgSbE.js → onboard-helpers-OB_xKQze.js} +8 -8
  107. package/dist/{onboard-hooks-CtIRdncr.js → onboard-hooks-BA22KYCG.js} +1 -1
  108. package/dist/{onboard-remote-KlZ04Ycj.js → onboard-remote-Dv2Uz8Ru.js} +1 -1
  109. package/dist/{onboard-skills-C2YVZLtY.js → onboard-skills-BzxofI4T.js} +3 -3
  110. package/dist/{onboarding-Bkqm3GYG.js → onboarding-DoYMfCjS.js} +3 -3
  111. package/dist/{onboarding-Dhjsa9Kl.js → onboarding-vgZFhH5N.js} +12 -12
  112. package/dist/{onboarding.finalize-DEnbT-08.js → onboarding.finalize-BYHDzz2i.js} +31 -31
  113. package/dist/{onboarding.finalize-Dj2kTz2P.js → onboarding.finalize-Dj0xG8pk.js} +4 -4
  114. package/dist/{onboarding.gateway-config-1PP2Esxt.js → onboarding.gateway-config-CDRLfIZM.js} +8 -8
  115. package/dist/{openai-model-default-XudD4Xik.js → openai-model-default-Dl21Ivjc.js} +2 -2
  116. package/dist/{pairing-cli-NDavTm1_.js → pairing-cli-C2_Zobhz.js} +5 -5
  117. package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
  118. package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
  119. package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
  120. package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
  121. package/dist/{pi-embedded-DisxTf9Y.js → pi-embedded-C7mJzGIf.js} +12 -4
  122. package/dist/{pi-embedded-helpers-x7n6pMgT.js → pi-embedded-helpers-y3vJmW6T.js} +6 -6
  123. package/dist/{pi-tools.policy-J58A7qFU.js → pi-tools.policy-ji-L-Mpv.js} +3 -3
  124. package/dist/{plugin-auto-enable-B_lNp6yM.js → plugin-auto-enable-Ctbn2w4Q.js} +1 -1
  125. package/dist/{plugin-registry-D-hgQT7P.js → plugin-registry-D2ZbwBU_.js} +3 -3
  126. package/dist/{plugin-registry-BTkbl0FJ.js → plugin-registry-pKaJ4ltN.js} +1 -1
  127. package/dist/{plugins-cli-Bh5QiPdZ.js → plugins-cli-CoHiV4BX.js} +54 -54
  128. package/dist/{plugins-cli-kV-uO1kp.js → plugins-cli-uo8lcB7v.js} +5 -5
  129. package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
  130. package/dist/{ports-C3ZSkRGq.js → ports-ukrEAkOP.js} +1 -1
  131. package/dist/{program-context-DFJyoCC0.js → program-context-B1ZbQmLL.js} +38 -38
  132. package/dist/{program-CbGjDDWP.js → program-rzYjZKRz.js} +10 -10
  133. package/dist/{prompt-select-styled-DaVdKaBp.js → prompt-select-styled-CX0v66wx.js} +38 -38
  134. package/dist/{prompt-select-styled-p9o4e4m6.js → prompt-select-styled-F6P-rvFI.js} +4 -4
  135. package/dist/{provider-auth-helpers-CoGyeok2.js → provider-auth-helpers-Ck98bkHV.js} +1 -1
  136. package/dist/{provider-auth-helpers-BCiBe4Q9.js → provider-auth-helpers-_jn9PngO.js} +6 -6
  137. package/dist/{push-apns-BorKE_Qo.js → push-apns-BtMtpzEm.js} +1 -1
  138. package/dist/{push-apns-DzCR9bci.js → push-apns-CmeoBcIQ.js} +4 -4
  139. package/dist/{pw-ai-8E0uhtHT.js → pw-ai-CQJsGI1b.js} +7 -7
  140. package/dist/{pw-ai-Cx-Ko_FL.js → pw-ai-D2pEVS5n.js} +1 -1
  141. package/dist/{qmd-manager-qV_04VKG.js → qmd-manager-DawTY2mB.js} +19 -19
  142. package/dist/{qr-cli-Vo1XL6B2.js → qr-cli-DKowtQcM.js} +3 -3
  143. package/dist/{register.agent-CaN-g4uZ.js → register.agent-0hWBZXD7.js} +67 -67
  144. package/dist/{register.agent-DydJFXJP.js → register.agent-_UqSBmt5.js} +9 -9
  145. package/dist/{register.configure-DAy2cE8-.js → register.configure-CgQ6sqtQ.js} +70 -70
  146. package/dist/{register.configure-BVe4hnaS.js → register.configure-KrTtvKSp.js} +8 -8
  147. package/dist/{register.maintenance-dg4F8WtF.js → register.maintenance-DDSfzFoo.js} +9 -9
  148. package/dist/{register.maintenance-DOPFPjF1.js → register.maintenance-DjZeknO6.js} +67 -67
  149. package/dist/{register.message-BcVCnsvF.js → register.message-DSwwDcGi.js} +5 -5
  150. package/dist/{register.message-C142fUnJ.js → register.message-DTZJ5OiL.js} +47 -47
  151. package/dist/{register.onboard-JdqDBt_q.js → register.onboard-B8k5phG7.js} +25 -25
  152. package/dist/{register.onboard-rAsjY0XL.js → register.onboard-BToIZTIS.js} +2 -2
  153. package/dist/{register.setup-D1aL4OSn.js → register.setup-1fexz2oW.js} +28 -28
  154. package/dist/{register.setup--uV2P6Rv.js → register.setup-BdUewOo1.js} +2 -2
  155. package/dist/{register.status-health-sessions-78J4b8E3.js → register.status-health-sessions-0RyA2cXf.js} +41 -41
  156. package/dist/{register.status-health-sessions-CsaUl0vE.js → register.status-health-sessions-eBaeXIvo.js} +3 -3
  157. package/dist/{register.subclis-BVReTdEZ.js → register.subclis-tX3BslaT.js} +9 -9
  158. package/dist/{replies-DzsYQ8Md.js → replies-D3cffD5N.js} +1 -1
  159. package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
  160. package/dist/{resolve-route-Zww0Y-HJ.js → resolve-route-B0i_o4Fo.js} +1 -1
  161. package/dist/{routes-DIFuU49J.js → routes-zpAUwtCG.js} +10 -10
  162. package/dist/{rpc-DfaVxm4P.js → rpc-DhsDKVo-.js} +1 -1
  163. package/dist/{run-main-Crj9RFFj.js → run-main-DIl_Kl0B.js} +17 -17
  164. package/dist/{sandbox-DR_uvPm8.js → sandbox-DQCaejcD.js} +18 -18
  165. package/dist/{sandbox-cli-we8HwKzB.js → sandbox-cli-CbvyZs1z.js} +13 -13
  166. package/dist/{security-cli-B3nmOCuA.js → security-cli-CbJxNYZx.js} +29 -29
  167. package/dist/{send-Cxu1tl56.js → send-QscYkkNh.js} +7 -7
  168. package/dist/{server-context-DZK_rfwz.js → server-context-CXVq7gZ7.js} +5 -5
  169. package/dist/{server-methods-BR_LQLUr.js → server-methods-CpFBGxWI.js} +6 -6
  170. package/dist/{server-methods-qP6jEpBJ.js → server-methods-DPxjPGr0.js} +58 -58
  171. package/dist/{server-node-events-C9CEaVgd.js → server-node-events-2SUW10k3.js} +6 -6
  172. package/dist/{server-node-events-BLrBQ1Ix.js → server-node-events-B_BPbi7z.js} +48 -48
  173. package/dist/{service-CyEDtYLq.js → service-Cm4-5AH9.js} +15 -15
  174. package/dist/{session-dirs-CXErIzZq.js → session-dirs-BypCYFN3.js} +2 -2
  175. package/dist/{session-utils-BZnPW904.js → session-utils-lXjJoBxe.js} +14 -14
  176. package/dist/{sessions-optZRB57.js → sessions-aSo5jsmg.js} +10 -10
  177. package/dist/{shared-DJFwvlUi.js → shared-BI-gOZsD.js} +3 -3
  178. package/dist/{shared-Ctok0Bcs.js → shared-DDX_4ypC.js} +1 -1
  179. package/dist/{skill-commands-yPirQFOb.js → skill-commands-C9WuAfb2.js} +4 -4
  180. package/dist/{skill-scanner-BBwesm0w.js → skill-scanner-CFqMkfZW.js} +5 -5
  181. package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
  182. package/dist/{skills-cli-gC5ETdly.js → skills-cli-BgyaAQoj.js} +7 -7
  183. package/dist/{skills-install-CLN_Ks5r.js → skills-install-MGsx6q5Z.js} +3 -3
  184. package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
  185. package/dist/{skills-status-iltfI_bO.js → skills-status-CbSdFlvm.js} +1 -1
  186. package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
  187. package/dist/{status-ORM-gYB7.js → status-BVYDUlnp.js} +1 -1
  188. package/dist/{status-DCL7G3Ib.js → status-C-r9JpJf.js} +23 -23
  189. package/dist/{status-COihHYJZ.js → status-DIJvpgEm.js} +3 -3
  190. package/dist/{status-DTQT3d18.js → status-DbNNmkNB.js} +1 -1
  191. package/dist/{status.update-F4CbQCxF.js → status.update-EyslEZkn.js} +3 -3
  192. package/dist/{subagent-registry-8gdHiRIg.js → subagent-registry-DWemyjbN.js} +12 -4
  193. package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
  194. package/dist/{synthesis-CH82c52O.js → synthesis-BdTiornP.js} +2 -2
  195. package/dist/{synthesis-SpZQv_zc.js → synthesis-BxYzOZUA.js} +4 -4
  196. package/dist/{synthesis-CppYEB8e.js → synthesis-C7RlvHEs.js} +45 -45
  197. package/dist/{synthesis-RrXFr-nJ.js → synthesis-DQ7Y6OE0.js} +4 -4
  198. package/dist/{system-cli-DNR3YCgN.js → system-cli-DgOvK_kU.js} +7 -7
  199. package/dist/{systemd-DRpQb_L1.js → systemd-B2nTr3Y2.js} +5 -5
  200. package/dist/{systemd-hints-DR4u43WA.js → systemd-hints-DtOWJT_2.js} +6 -6
  201. package/dist/{systemd-linger-BQQl5RXN.js → systemd-linger-CWi5l8Nt.js} +1 -1
  202. package/dist/{tui-BADAjgA5.js → tui-D7ms_iQ4.js} +7 -7
  203. package/dist/{tui-cli-3ZepuEPv.js → tui-cli-DNvAqIYN.js} +19 -19
  204. package/dist/{unified-runner-DOYB1_-K.js → unified-runner-BIUJm_Iv.js} +110 -102
  205. package/dist/{unified-runner-97bDoU4e.js → unified-runner-DPWNhQQA.js} +19 -11
  206. package/dist/{update-check-CxBGAP1E.js → update-check-CduiCxPo.js} +5 -5
  207. package/dist/{update-cli-CKoIGU3l.js → update-cli-BM-A3cIZ.js} +9 -9
  208. package/dist/{update-cli-BTkGps8b.js → update-cli-GKXF83cS.js} +77 -77
  209. package/dist/{update-CWEjB8uS.js → update-pddgyV7i.js} +3 -3
  210. package/dist/{update-runner-C4Uy75eP.js → update-runner-BMYqz1dl.js} +15 -15
  211. package/dist/{webhooks-cli-Dp-pp0Sf.js → webhooks-cli-BPPmnDCj.js} +4 -4
  212. package/dist/{with-timeout-CGWq0-d5.js → with-timeout-D1qzvPE0.js} +1 -1
  213. package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
  214. package/dist/{wsl-DMA0sTvh.js → wsl-Sed675xh.js} +2 -2
  215. package/package.json +1 -1
@@ -3,91 +3,91 @@ 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-Ce7R_25e.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";
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-BQ0IpoW2.js";
9
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.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-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";
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";
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-x7n6pMgT.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-D7SS4vdk.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-y3vJmW6T.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-D-PYSlE8.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-DR_uvPm8.js";
24
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-xlyBE8q3.js";
25
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DZK_rfwz.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-DQCaejcD.js";
24
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-pFBxO63W.js";
25
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CXVq7gZ7.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-BwDmcZdt.js";
28
- import { n as getMediaDir, r as saveMediaBuffer } from "./routes-DIFuU49J.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-zpAUwtCG.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-DObzwe08.js";
30
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BWqg8NZT.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-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-optZRB57.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-aSo5jsmg.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-Cxu1tl56.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-QscYkkNh.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-DB4v0Tyl.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-C79-Umbk.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-1EAQvYRv.js";
49
- import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-CRnTzdFs.js";
50
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-Db8XJVGL.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-Dp5-tBqs.js";
50
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-D-vdh-nY.js";
51
51
  import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-D6Ocwmq1.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-BZnPW904.js";
53
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-CGWq0-d5.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-D_CuTCAW.js";
56
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-C1bLWQJb.js";
57
- import { f as runTasksWithConcurrency } from "./internal-DVCddhhN.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-lXjJoBxe.js";
53
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-D1qzvPE0.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-DgDnTEcB.js";
56
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DyYRwHZt.js";
57
+ import { f as runTasksWithConcurrency } from "./internal-csqU78gW.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-CgDCgCuM.js";
62
+ import { n as getDefaultMediaLocalRoots } from "./local-roots-2Jb79HZ8.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-VfAQOVZO.js";
65
- import { zt as SESSION_LABEL_MAX_LENGTH } from "./client-iv2QpsT1.js";
66
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-BOE4s-tQ.js";
64
+ import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-BjcGLk4v.js";
65
+ import { zt as SESSION_LABEL_MAX_LENGTH } from "./client-T5P9umyG.js";
66
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-CW8U1BPq.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-bz71Bstn.js";
70
+ import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-BcRQTDsZ.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-DQTmHZK7.js";
73
- import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-yPirQFOb.js";
74
- import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BNhJOnWn.js";
72
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-CeqDEWGz.js";
73
+ import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-C9WuAfb2.js";
74
+ import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-Be-ZQK87.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-De9ma6e1.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";
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-_37Bn-Jb.js";
81
81
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-ChnKXZKi.js";
82
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BgfKoTwJ.js";
82
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-y53w3Jzy.js";
83
83
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DUVGiPYV.js";
84
84
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DF4bza2Q.js";
85
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Zww0Y-HJ.js";
85
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-B0i_o4Fo.js";
86
86
  import { t as parseTimeoutMs } from "./parse-timeout-DUdeaMqF.js";
87
- import { n as registerMemoryCli } from "./memory-cli-XxOC0_-M.js";
88
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-DzsYQ8Md.js";
89
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-J58A7qFU.js";
90
- import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-DsMHOvMn.js";
87
+ import { n as registerMemoryCli } from "./memory-cli-CfJkD7mO.js";
88
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-D3cffD5N.js";
89
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-ji-L-Mpv.js";
90
+ import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-DbILYCfo.js";
91
91
  import { createRequire } from "node:module";
92
92
  import process$1 from "node:process";
93
93
  import { fileURLToPath } from "node:url";
@@ -96,7 +96,7 @@ import path from "node:path";
96
96
  import fs, { constants, existsSync, statSync } from "node:fs";
97
97
  import os, { homedir } from "node:os";
98
98
  import JSON5 from "json5";
99
- import fs$1 from "node:fs/promises";
99
+ import fsPromises from "node:fs/promises";
100
100
  import { execFileSync, spawn, spawnSync } from "node:child_process";
101
101
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
102
102
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -1846,7 +1846,7 @@ async function imageResult(params) {
1846
1846
  }, params.label, params.imageSanitization);
1847
1847
  }
1848
1848
  async function imageResultFromFile(params) {
1849
- const buf = await fs$1.readFile(params.path);
1849
+ const buf = await fsPromises.readFile(params.path);
1850
1850
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
1851
1851
  return await imageResult({
1852
1852
  label: params.label,
@@ -5807,7 +5807,7 @@ async function routeReply(params) {
5807
5807
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
5808
5808
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
5809
5809
  try {
5810
- const { deliverOutboundPayloads } = await import("./deliver-DB4v0Tyl.js").then((n) => n.n);
5810
+ const { deliverOutboundPayloads } = await import("./deliver-C79-Umbk.js").then((n) => n.n);
5811
5811
  return {
5812
5812
  ok: true,
5813
5813
  messageId: (await deliverOutboundPayloads({
@@ -11648,7 +11648,7 @@ var MediaAttachmentCache = class {
11648
11648
  const size = await this.ensureLocalStat(entry);
11649
11649
  if (entry.resolvedPath) {
11650
11650
  if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
11651
- const buffer = await fs$1.readFile(entry.resolvedPath);
11651
+ const buffer = await fsPromises.readFile(entry.resolvedPath);
11652
11652
  entry.buffer = buffer;
11653
11653
  entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
11654
11654
  buffer,
@@ -11718,10 +11718,10 @@ var MediaAttachmentCache = class {
11718
11718
  prefix: "symi-media",
11719
11719
  extension: path.extname(bufferResult.fileName || "") || ""
11720
11720
  });
11721
- await fs$1.writeFile(tmpPath, bufferResult.buffer);
11721
+ await fsPromises.writeFile(tmpPath, bufferResult.buffer);
11722
11722
  entry.tempPath = tmpPath;
11723
11723
  entry.tempCleanup = async () => {
11724
- await fs$1.unlink(tmpPath).catch(() => {});
11724
+ await fsPromises.unlink(tmpPath).catch(() => {});
11725
11725
  };
11726
11726
  return {
11727
11727
  path: tmpPath,
@@ -11768,12 +11768,12 @@ var MediaAttachmentCache = class {
11768
11768
  if (entry.statSize !== void 0) return entry.statSize;
11769
11769
  try {
11770
11770
  const currentPath = entry.resolvedPath;
11771
- const stat = await fs$1.stat(currentPath);
11771
+ const stat = await fsPromises.stat(currentPath);
11772
11772
  if (!stat.isFile()) {
11773
11773
  entry.resolvedPath = void 0;
11774
11774
  return;
11775
11775
  }
11776
- const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
11776
+ const canonicalPath = await fsPromises.realpath(currentPath).catch(() => currentPath);
11777
11777
  if (!isInboundPathAllowed({
11778
11778
  filePath: canonicalPath,
11779
11779
  roots: await this.getCanonicalLocalPathRoots()
@@ -11795,7 +11795,7 @@ var MediaAttachmentCache = class {
11795
11795
  if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
11796
11796
  this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
11797
11797
  if (root.includes("*")) return root;
11798
- return await fs$1.realpath(root).catch(() => root);
11798
+ return await fsPromises.realpath(root).catch(() => root);
11799
11799
  }))))();
11800
11800
  return await this.canonicalLocalPathRoots;
11801
11801
  }
@@ -11866,7 +11866,7 @@ function formatAudioTranscripts(outputs) {
11866
11866
  async function fileExists(filePath) {
11867
11867
  if (!filePath) return false;
11868
11868
  try {
11869
- await fs$1.stat(filePath);
11869
+ await fsPromises.stat(filePath);
11870
11870
  return true;
11871
11871
  } catch {
11872
11872
  return false;
@@ -11966,7 +11966,7 @@ async function resolveCliOutput(params) {
11966
11966
  const commandId = commandBase(params.command);
11967
11967
  const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
11968
11968
  if (fileOutput && await fileExists(fileOutput)) try {
11969
- const content = await fs$1.readFile(fileOutput, "utf8");
11969
+ const content = await fsPromises.readFile(fileOutput, "utf8");
11970
11970
  if (content.trim()) return content.trim();
11971
11971
  } catch {}
11972
11972
  if (commandId === "gemini") {
@@ -12257,7 +12257,7 @@ async function runCliEntry(params) {
12257
12257
  maxBytes,
12258
12258
  timeoutMs
12259
12259
  });
12260
- const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
12260
+ const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
12261
12261
  const mediaPath = pathResult.path;
12262
12262
  const outputBase = path.join(outputDir, path.parse(mediaPath).name);
12263
12263
  const templCtx = {
@@ -12291,7 +12291,7 @@ async function runCliEntry(params) {
12291
12291
  model: command
12292
12292
  };
12293
12293
  } finally {
12294
- await fs$1.rm(outputDir, {
12294
+ await fsPromises.rm(outputDir, {
12295
12295
  recursive: true,
12296
12296
  force: true
12297
12297
  }).catch(() => {});
@@ -12335,9 +12335,9 @@ function candidateBinaryNames(name) {
12335
12335
  }
12336
12336
  async function isExecutable$1(filePath) {
12337
12337
  try {
12338
- if (!(await fs$1.stat(filePath)).isFile()) return false;
12338
+ if (!(await fsPromises.stat(filePath)).isFile()) return false;
12339
12339
  if (process.platform === "win32") return true;
12340
- await fs$1.access(filePath, constants.X_OK);
12340
+ await fsPromises.access(filePath, constants.X_OK);
12341
12341
  return true;
12342
12342
  } catch {
12343
12343
  return false;
@@ -14041,7 +14041,7 @@ async function createModelSelectionState(params) {
14041
14041
  }
14042
14042
  }
14043
14043
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
14044
- const { ensureAuthProfileStore } = await import("./auth-profiles-Ce7R_25e.js").then((n) => n.t);
14044
+ const { ensureAuthProfileStore } = await import("./auth-profiles-D5nYBj_Z.js").then((n) => n.t);
14045
14045
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
14046
14046
  const providerKey = normalizeProviderId(provider);
14047
14047
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -17185,7 +17185,7 @@ async function resolveSandboxWorkdir(params) {
17185
17185
  cwd: process.cwd(),
17186
17186
  root: params.sandbox.workspaceDir
17187
17187
  });
17188
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
17188
+ if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
17189
17189
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
17190
17190
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
17191
17191
  return {
@@ -18199,13 +18199,13 @@ async function validateScriptFileForShellBleed(params) {
18199
18199
  cwd: params.workdir,
18200
18200
  root: params.workdir
18201
18201
  });
18202
- stat = await fs$1.stat(absPath);
18202
+ stat = await fsPromises.stat(absPath);
18203
18203
  } catch {
18204
18204
  return;
18205
18205
  }
18206
18206
  if (!stat.isFile()) return;
18207
18207
  if (stat.size > 512 * 1024) return;
18208
- const content = await fs$1.readFile(absPath, "utf-8");
18208
+ const content = await fsPromises.readFile(absPath, "utf-8");
18209
18209
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
18210
18210
  if (first) {
18211
18211
  const idx = first.index;
@@ -22881,7 +22881,7 @@ async function handleCommands(params) {
22881
22881
  try {
22882
22882
  const messages = [];
22883
22883
  if (sessionFile) {
22884
- const content = await fs$1.readFile(sessionFile, "utf-8");
22884
+ const content = await fsPromises.readFile(sessionFile, "utf-8");
22885
22885
  for (const line of content.split("\n")) {
22886
22886
  if (!line.trim()) continue;
22887
22887
  try {
@@ -25068,7 +25068,7 @@ async function readJsonlFromPath(jsonlPath) {
25068
25068
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
25069
25069
  throw new Error("jsonlPath outside allowed roots");
25070
25070
  }
25071
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
25071
+ const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
25072
25072
  if (!isInboundPathAllowed({
25073
25073
  filePath: canonical,
25074
25074
  roots
@@ -25076,7 +25076,7 @@ async function readJsonlFromPath(jsonlPath) {
25076
25076
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
25077
25077
  throw new Error("jsonlPath outside allowed roots");
25078
25078
  }
25079
- return await fs$1.readFile(canonical, "utf8");
25079
+ return await fsPromises.readFile(canonical, "utf8");
25080
25080
  }
25081
25081
  const CanvasToolSchema = Type.Object({
25082
25082
  action: stringEnum(CANVAS_ACTIONS),
@@ -26607,7 +26607,7 @@ async function hydrateAttachmentPayload(params) {
26607
26607
  accountId: params.accountId
26608
26608
  }),
26609
26609
  sandboxValidated: true,
26610
- readFile: (filePath) => fs$1.readFile(filePath)
26610
+ readFile: (filePath) => fsPromises.readFile(filePath)
26611
26611
  });
26612
26612
  params.args.buffer = media.buffer.toString("base64");
26613
26613
  if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
@@ -32551,11 +32551,19 @@ function createWebSearchTool(options) {
32551
32551
  const provider = resolveSearchProvider(search);
32552
32552
  const perplexityConfig = resolvePerplexityConfig(search);
32553
32553
  const grokConfig = resolveGrokConfig(search);
32554
+ const description = provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.";
32555
+ const resolveActiveApiKey = () => {
32556
+ if (provider === "perplexity") return resolvePerplexityApiKey(perplexityConfig)?.apiKey;
32557
+ if (provider === "grok") return resolveGrokApiKey(grokConfig);
32558
+ return resolveSearchApiKey(search);
32559
+ };
32554
32560
  return {
32555
32561
  label: "Web Search",
32556
32562
  name: "web_search",
32557
- description: provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.",
32563
+ description,
32558
32564
  parameters: WebSearchSchema,
32565
+ checkFn: () => Boolean(resolveActiveApiKey()),
32566
+ requiredEnv: provider === "perplexity" ? ["PERPLEXITY_API_KEY", "OPENROUTER_API_KEY"] : provider === "grok" ? ["XAI_API_KEY"] : ["BRAVE_API_KEY"],
32559
32567
  execute: async (_toolCallId, args) => {
32560
32568
  const perplexityAuth = provider === "perplexity" ? resolvePerplexityApiKey(perplexityConfig) : void 0;
32561
32569
  const apiKey = provider === "perplexity" ? perplexityAuth?.apiKey : provider === "grok" ? resolveGrokApiKey(grokConfig) : resolveSearchApiKey(search);
@@ -33101,7 +33109,7 @@ async function deliverSessionMaintenanceWarning(params) {
33101
33109
  return;
33102
33110
  }
33103
33111
  try {
33104
- const { deliverOutboundPayloads } = await import("./deliver-DB4v0Tyl.js").then((n) => n.n);
33112
+ const { deliverOutboundPayloads } = await import("./deliver-C79-Umbk.js").then((n) => n.n);
33105
33113
  await deliverOutboundPayloads({
33106
33114
  cfg: params.cfg,
33107
33115
  channel,
@@ -33506,7 +33514,7 @@ async function stageSandboxMedia(params) {
33506
33514
  };
33507
33515
  try {
33508
33516
  const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
33509
- await fs$1.mkdir(destDir, { recursive: true });
33517
+ await fsPromises.mkdir(destDir, { recursive: true });
33510
33518
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
33511
33519
  cfg,
33512
33520
  accountId: ctx.AccountId
@@ -33556,7 +33564,7 @@ async function stageSandboxMedia(params) {
33556
33564
  usedNames.add(fileName);
33557
33565
  const dest = path.join(destDir, fileName);
33558
33566
  if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
33559
- else await fs$1.copyFile(source, dest);
33567
+ else await fsPromises.copyFile(source, dest);
33560
33568
  const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
33561
33569
  staged.set(source, stagedPath);
33562
33570
  }
@@ -38867,7 +38875,7 @@ function readSlackExternalArgMenuToken(raw) {
38867
38875
  }
38868
38876
  let commandsRegistry;
38869
38877
  async function getCommandsRegistry() {
38870
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-VfAQOVZO.js").then((n) => n.t);
38878
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BjcGLk4v.js").then((n) => n.t);
38871
38879
  return commandsRegistry;
38872
38880
  }
38873
38881
  function encodeSlackCommandArgValue(parts) {
@@ -39209,11 +39217,11 @@ async function registerSlackMonitorSlashCommands(params) {
39209
39217
  const channelName = channelInfo?.name;
39210
39218
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
39211
39219
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
39212
- import("./resolve-route-Zww0Y-HJ.js").then((n) => n.r),
39220
+ import("./resolve-route-B0i_o4Fo.js").then((n) => n.r),
39213
39221
  import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
39214
39222
  Promise.resolve().then(() => provider_dispatcher_exports)
39215
39223
  ]);
39216
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-BFNeXT65.js").then((n) => n.n)]);
39224
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CffvEjpp.js").then((n) => n.t), import("./reply-prefix-CtZtkTJK.js").then((n) => n.n)]);
39217
39225
  const route = resolveAgentRoute({
39218
39226
  cfg,
39219
39227
  channel: "slack",
@@ -39270,7 +39278,7 @@ async function registerSlackMonitorSlashCommands(params) {
39270
39278
  });
39271
39279
  const deliverSlashPayloads = async (replies) => {
39272
39280
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
39273
- import("./replies-DzsYQ8Md.js").then((n) => n.r),
39281
+ import("./replies-D3cffD5N.js").then((n) => n.r),
39274
39282
  import("./chunk-BxfKjCUx.js").then((n) => n.s),
39275
39283
  import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
39276
39284
  ]);
@@ -39325,7 +39333,7 @@ async function registerSlackMonitorSlashCommands(params) {
39325
39333
  let nativeCommands = [];
39326
39334
  if (nativeEnabled) {
39327
39335
  reg = await getCommandsRegistry();
39328
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-yPirQFOb.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39336
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C9WuAfb2.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39329
39337
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
39330
39338
  skillCommands,
39331
39339
  provider: "slack"
@@ -40458,7 +40466,7 @@ function resolvePluginTools(params) {
40458
40466
  //#endregion
40459
40467
  //#region src/agents/apply-patch-update.ts
40460
40468
  async function defaultReadFile(filePath) {
40461
- return fs$1.readFile(filePath, "utf8");
40469
+ return fsPromises.readFile(filePath, "utf8");
40462
40470
  }
40463
40471
  async function applyUpdateHunk(filePath, chunks, options) {
40464
40472
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -40702,10 +40710,10 @@ function resolvePatchFileOps(options) {
40702
40710
  };
40703
40711
  }
40704
40712
  return {
40705
- readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
40706
- writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
40707
- remove: (filePath) => fs$1.rm(filePath),
40708
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
40713
+ readFile: (filePath) => fsPromises.readFile(filePath, "utf8"),
40714
+ writeFile: (filePath, content) => fsPromises.writeFile(filePath, content, "utf8"),
40715
+ remove: (filePath) => fsPromises.rm(filePath),
40716
+ mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
40709
40717
  };
40710
40718
  }
40711
40719
  async function ensureDir(filePath, ops) {
@@ -41910,7 +41918,7 @@ async function repairSessionFileIfNeeded(params) {
41910
41918
  };
41911
41919
  let content;
41912
41920
  try {
41913
- content = await fs$1.readFile(sessionFile, "utf-8");
41921
+ content = await fsPromises.readFile(sessionFile, "utf-8");
41914
41922
  } catch (err) {
41915
41923
  if (err?.code === "ENOENT") return {
41916
41924
  repaired: false,
@@ -41958,15 +41966,15 @@ async function repairSessionFileIfNeeded(params) {
41958
41966
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
41959
41967
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
41960
41968
  try {
41961
- const stat = await fs$1.stat(sessionFile).catch(() => null);
41962
- await fs$1.writeFile(backupPath, content, "utf-8");
41963
- if (stat) await fs$1.chmod(backupPath, stat.mode);
41964
- await fs$1.writeFile(tmpPath, cleaned, "utf-8");
41965
- if (stat) await fs$1.chmod(tmpPath, stat.mode);
41966
- await fs$1.rename(tmpPath, sessionFile);
41969
+ const stat = await fsPromises.stat(sessionFile).catch(() => null);
41970
+ await fsPromises.writeFile(backupPath, content, "utf-8");
41971
+ if (stat) await fsPromises.chmod(backupPath, stat.mode);
41972
+ await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
41973
+ if (stat) await fsPromises.chmod(tmpPath, stat.mode);
41974
+ await fsPromises.rename(tmpPath, sessionFile);
41967
41975
  } catch (err) {
41968
41976
  try {
41969
- await fs$1.unlink(tmpPath);
41977
+ await fsPromises.unlink(tmpPath);
41970
41978
  } catch (cleanupErr) {
41971
41979
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
41972
41980
  }
@@ -43239,7 +43247,7 @@ async function prewarmSessionFile(sessionFile) {
43239
43247
  if (!isSessionManagerCacheEnabled()) return;
43240
43248
  if (isSessionManagerCached(sessionFile)) return;
43241
43249
  try {
43242
- const handle = await fs$1.open(sessionFile, "r");
43250
+ const handle = await fsPromises.open(sessionFile, "r");
43243
43251
  try {
43244
43252
  const buffer = Buffer$1.alloc(4096);
43245
43253
  await handle.read(buffer, 0, buffer.length, 0);
@@ -43379,7 +43387,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43379
43387
  } catch (err) {
43380
43388
  return fail(describeUnknownError(err));
43381
43389
  }
43382
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
43390
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
43383
43391
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
43384
43392
  const sandbox = await resolveSandboxContext({
43385
43393
  config: params.config,
@@ -43387,7 +43395,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43387
43395
  workspaceDir: resolvedWorkspace
43388
43396
  });
43389
43397
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
43390
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
43398
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
43391
43399
  await ensureSessionHeader({
43392
43400
  sessionFile: params.sessionFile,
43393
43401
  sessionId: params.sessionId,
@@ -43712,12 +43720,12 @@ function getQueuedFileWriter(writers, filePath) {
43712
43720
  const existing = writers.get(filePath);
43713
43721
  if (existing) return existing;
43714
43722
  const dir = path.dirname(filePath);
43715
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
43723
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
43716
43724
  let queue = Promise.resolve();
43717
43725
  const writer = {
43718
43726
  filePath,
43719
43727
  write: (line) => {
43720
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
43728
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
43721
43729
  }
43722
43730
  };
43723
43731
  writers.set(filePath, writer);
@@ -46897,7 +46905,7 @@ Use the message tool with buttons:
46897
46905
  */
46898
46906
  async function readSessionFile(sessionFile) {
46899
46907
  try {
46900
- return await fs$1.readFile(sessionFile, "utf-8");
46908
+ return await fsPromises.readFile(sessionFile, "utf-8");
46901
46909
  } catch {
46902
46910
  return null;
46903
46911
  }
@@ -46906,8 +46914,8 @@ async function writeAtomically(sessionFile, text) {
46906
46914
  const dir = path.dirname(sessionFile);
46907
46915
  const base = path.basename(sessionFile);
46908
46916
  const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
46909
- await fs$1.writeFile(tmp, text, "utf-8");
46910
- await fs$1.rename(tmp, sessionFile);
46917
+ await fsPromises.writeFile(tmp, text, "utf-8");
46918
+ await fsPromises.rename(tmp, sessionFile);
46911
46919
  }
46912
46920
  /**
46913
46921
  * Remove empty assistant JSONL entries from the session file.
@@ -47009,7 +47017,7 @@ function isInPoisonRange(version) {
47009
47017
  */
47010
47018
  async function checkSessionPoison(sessionFile) {
47011
47019
  try {
47012
- const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
47020
+ const firstLine = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n")[0];
47013
47021
  if (!firstLine) return null;
47014
47022
  const header = JSON.parse(firstLine);
47015
47023
  if (header.type !== "session") return null;
@@ -47027,7 +47035,7 @@ async function checkSessionPoison(sessionFile) {
47027
47035
  */
47028
47036
  async function archivePoisonedSession(sessionFile) {
47029
47037
  const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
47030
- await fs$1.rename(sessionFile, archiveName);
47038
+ await fsPromises.rename(sessionFile, archiveName);
47031
47039
  return archiveName;
47032
47040
  }
47033
47041
  /**
@@ -47036,14 +47044,14 @@ async function archivePoisonedSession(sessionFile) {
47036
47044
  */
47037
47045
  async function stampSessionVersion(sessionFile) {
47038
47046
  try {
47039
- const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
47047
+ const lines = (await fsPromises.readFile(sessionFile, "utf-8")).split("\n");
47040
47048
  if (lines.length === 0) return;
47041
47049
  const header = JSON.parse(lines[0]);
47042
47050
  if (header.type !== "session") return;
47043
47051
  if (header.symiVersion === VERSION) return;
47044
47052
  header.symiVersion = VERSION;
47045
47053
  lines[0] = JSON.stringify(header);
47046
- await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
47054
+ await fsPromises.writeFile(sessionFile, lines.join("\n"), "utf-8");
47047
47055
  } catch {}
47048
47056
  }
47049
47057
  /**
@@ -47272,7 +47280,7 @@ async function prepareSessionManagerForRun(params) {
47272
47280
  return;
47273
47281
  }
47274
47282
  if (params.hadSessionFile && header && !hasAssistant) {
47275
- await fs$1.writeFile(params.sessionFile, "", "utf-8");
47283
+ await fsPromises.writeFile(params.sessionFile, "", "utf-8");
47276
47284
  sm.fileEntries = [header];
47277
47285
  sm.byId?.clear?.();
47278
47286
  sm.labelsById?.clear?.();
@@ -47830,7 +47838,7 @@ async function runEmbeddedAttempt(params) {
47830
47838
  const prevCwd = process.cwd();
47831
47839
  const runAbortController = new AbortController();
47832
47840
  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"}`);
47833
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
47841
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
47834
47842
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
47835
47843
  const sandbox = await resolveSandboxContext({
47836
47844
  config: params.config,
@@ -47838,7 +47846,7 @@ async function runEmbeddedAttempt(params) {
47838
47846
  workspaceDir: resolvedWorkspace
47839
47847
  });
47840
47848
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
47841
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
47849
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
47842
47850
  let restoreSkillEnv;
47843
47851
  process.chdir(effectiveWorkspace);
47844
47852
  try {
@@ -48047,7 +48055,7 @@ async function runEmbeddedAttempt(params) {
48047
48055
  sessionFile: params.sessionFile,
48048
48056
  warn: (message) => log$7.warn(message)
48049
48057
  });
48050
- const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
48058
+ const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
48051
48059
  const transcriptPolicy = resolveTranscriptPolicy({
48052
48060
  modelApi: params.model?.api,
48053
48061
  provider: params.provider,
@@ -49139,7 +49147,7 @@ async function runEmbeddedPiAgent(params) {
49139
49147
  }
49140
49148
  runLoopIterations += 1;
49141
49149
  attemptedThinking.add(thinkLevel);
49142
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
49150
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
49143
49151
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
49144
49152
  const attempt = await runEmbeddedAttempt({
49145
49153
  sessionId: params.sessionId,