@symerian/symi 3.3.0 → 3.3.2

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 (332) hide show
  1. package/dist/{agent-B2IkIBj2.js → agent-BED0HDsS.js} +2 -5
  2. package/dist/{agent-BrIHHGnC.js → agent-pDOR_idq.js} +25 -28
  3. package/dist/{agent-scope-2la27US0.js → agent-scope-B_oqIiaD.js} +6 -6
  4. package/dist/{agents-B57SUSPt.js → agents-mZX2a3hp.js} +2 -2
  5. package/dist/{agents.config-COMcEDAk.js → agents.config-B_LFeRQS.js} +3 -3
  6. package/dist/{audit-B58SlbPa.js → audit-B_HL4UJ_.js} +26 -26
  7. package/dist/{auth-CC9_WXMi.js → auth-BbwD4lRX.js} +3 -3
  8. package/dist/{auth-choice-B6iYCDVN.js → auth-choice-BgCnInKE.js} +9 -9
  9. package/dist/{auth-choice-Z1qCZxwg.js → auth-choice-nKtOJ3wF.js} +1 -1
  10. package/dist/{auth-profiles-8vSEr9B4.js → auth-profiles-CPlXilKu.js} +9 -9
  11. package/dist/{auth-profiles-CZTGpbyT.js → auth-profiles-duUuQXeC.js} +2 -2
  12. package/dist/{auth-token-DpYUPTNG.js → auth-token-DTj2WrbV.js} +3 -3
  13. package/dist/{banner-QsnCDxXH.js → banner-C2jUZyMq.js} +1 -1
  14. package/dist/{bindings-CiRAK4tH.js → bindings-9LSA3Jr1.js} +2 -2
  15. package/dist/{bonjour-discovery-lp5P_YUR.js → bonjour-discovery-CU1mz7AC.js} +3 -3
  16. package/dist/{browser-cli-_9G3GBJS.js → browser-cli-C-Q0t9y_.js} +28 -28
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +28 -31
  19. package/dist/bundled/bootstrap-extra-files/handler.js +2 -2
  20. package/dist/bundled/session-memory/handler.js +27 -27
  21. package/dist/{call-DLBaLOHo.js → call-Du4CT1Hp.js} +6 -6
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{catalog-CNZxYA15.js → catalog-BEREnWaa.js} +4 -4
  24. package/dist/{channel-options-DckWOMWG.js → channel-options-DBKd8H2k.js} +5 -5
  25. package/dist/{channel-options-Cj-xJAMD.js → channel-options-DRzIcaL1.js} +1 -1
  26. package/dist/{channel-selection-BGtIUbFL.js → channel-selection-BvIcXQLj.js} +2 -2
  27. package/dist/{channels-cli-Y8CGJ_qQ.js → channels-cli-CdfROBlW.js} +95 -95
  28. package/dist/{channels-cli-CIq4PFA0.js → channels-cli-CxUB3oX1.js} +10 -10
  29. package/dist/{channels-status-issues-rRBNHH7B.js → channels-status-issues-DC8vgOMo.js} +1 -1
  30. package/dist/{chrome-BgQbis3t.js → chrome-CejiigNy.js} +2 -2
  31. package/dist/{chrome-sQI2Ex5S.js → chrome-owBWinlj.js} +7 -7
  32. package/dist/{chunk-CKgSHf7u.js → chunk-DQGU0F8t.js} +2 -2
  33. package/dist/{clack-prompter-CR9tYooX.js → clack-prompter-CWQQn_CK.js} +5 -5
  34. package/dist/{cli--omJsLkl.js → cli-CzEP9cIM.js} +7 -7
  35. package/dist/cli-DWcoPSRG.js +128 -0
  36. package/dist/{client-D8iTVY4F.js → client-ZZqt0H0-.js} +7 -7
  37. package/dist/{clipboard-C9NQe8TV.js → clipboard-McRwF3r0.js} +1 -1
  38. package/dist/{command-registry-bozDt85D.js → command-registry-5O5dCHsD.js} +10 -10
  39. package/dist/{commands-sNCgvbpu.js → commands-B3UrgxIz.js} +2 -2
  40. package/dist/{commands-registry-CRkL6mTz.js → commands-registry-DaPrWQSe.js} +3 -3
  41. package/dist/{commands-registry-DXK4Ortm.js → commands-registry-W2GQIywv.js} +6 -6
  42. package/dist/{completion-cli-FXkVKM19.js → completion-cli-D4wYjxBG.js} +5 -5
  43. package/dist/{completion-cli-9qQYFUPk.js → completion-cli-DqrFJhG4.js} +2 -2
  44. package/dist/{config-fTqqDRAc.js → config-CphS_6eg.js} +9 -9
  45. package/dist/{config-cli-BexhS7Qb.js → config-cli-BE2vvf40.js} +15 -15
  46. package/dist/{config-cli-C3D7beGW.js → config-cli-CfA5xnD-.js} +1 -1
  47. package/dist/{config-guard-IteQa1rq.js → config-guard-B5BwQ-AP.js} +23 -23
  48. package/dist/{config-validation-B05t9fma.js → config-validation-A2rXGvVY.js} +2 -2
  49. package/dist/{configure-0e3ty1G9.js → configure-CPY4n9mx.js} +26 -26
  50. package/dist/{configure-BWXNd2TO.js → configure-DYDsHAWF.js} +2 -2
  51. package/dist/{consolidate-BaeR2tIX.js → consolidate-7Usm-b2g.js} +5 -5
  52. package/dist/{control-service-BDMq-0pg.js → control-service-CMVDL3Yl.js} +5 -5
  53. package/dist/{control-ui-assets-muBwnb6-.js → control-ui-assets-DUhvOLUL.js} +4 -4
  54. package/dist/{conversation-label-B4d5pKXr.js → conversation-label-CS5Zjc4w.js} +1 -1
  55. package/dist/{conversation-label-WjwKgn7n.js → conversation-label-tLwAlqLf.js} +1 -1
  56. package/dist/{cron-cli-DvDr2Uxo.js → cron-cli-DR4W075u.js} +21 -21
  57. package/dist/{daemon-cli-DiLogoCM.js → daemon-cli-B__05b-d.js} +21 -21
  58. package/dist/{daemon-runtime-C3dBpZhs.js → daemon-runtime-BD-3XS8R.js} +4 -4
  59. package/dist/{deliver-B_Fv-dS9.js → deliver-63FtOVMC.js} +8 -8
  60. package/dist/{deliver-B_jXI55b.js → deliver-BY0HHHHB.js} +18 -18
  61. package/dist/{deliver-CRqS1O8w.js → deliver-DcP6aVt4.js} +1 -1
  62. package/dist/{deliver-B_Gz2_tA.js → deliver-i5knkyHl.js} +1 -1
  63. package/dist/{delivery-queue-CeY346SK.js → delivery-queue-DDs84baU.js} +2 -2
  64. package/dist/{deps-Du8ZcRHN.js → deps-DD_ZCq3v.js} +1 -1
  65. package/dist/{devices-cli-BFPrh5bu.js → devices-cli-CJom2K8b.js} +19 -19
  66. package/dist/{diagnostic-oeL366QK.js → diagnostic-CwF3MnBL.js} +1 -1
  67. package/dist/{diagnostics-3x3usVgE.js → diagnostics-DxdqTfpW.js} +1 -1
  68. package/dist/{directory-cli-BUBucKQI.js → directory-cli-BwhEj1FE.js} +19 -19
  69. package/dist/{dm-policy-shared-BcXoqtVd.js → dm-policy-shared-C1TQOlkZ.js} +2 -2
  70. package/dist/{dns-cli-B6QTNBXV.js → dns-cli-DzQDEQM2.js} +17 -17
  71. package/dist/{dock-n_MeJBcj.js → dock-CnGWTXL4.js} +3 -3
  72. package/dist/{docs-cli-C2xEH6jC.js → docs-cli--T-77Ujn.js} +13 -13
  73. package/dist/{doctor-completion-K1dL1s3P.js → doctor-completion-C6M7eRb_.js} +4 -4
  74. package/dist/{doctor-completion-CcHk8myN.js → doctor-completion-DkwAZ_yS.js} +1 -1
  75. package/dist/{doctor-config-flow-Dl08K6Q3.js → doctor-config-flow-4UT3396o.js} +10 -10
  76. package/dist/entry.js +1 -1
  77. package/dist/{env-B7UUyzd_.js → env-B97Ms861.js} +2 -2
  78. package/dist/{errors-BgCjRT2k.js → errors-BkfLlDKo.js} +1 -1
  79. package/dist/{errors-CBVhQiQ9.js → errors-Z-WkF18Q.js} +1 -1
  80. package/dist/{exec-BcvUYCcV.js → exec-DKyLtSjm.js} +2 -2
  81. package/dist/{exec-approvals-BWtVKlN2.js → exec-approvals-CZOc8M5w.js} +3 -3
  82. package/dist/{exec-approvals-cli-SDF4LICf.js → exec-approvals-cli-D-MLmhzh.js} +25 -25
  83. package/dist/extensionAPI.js +5 -5
  84. package/dist/{fetch-guard-BWofyagX.js → fetch-guard-DG6T0ZdL.js} +2 -2
  85. package/dist/{frontmatter-B5iYTsZP.js → frontmatter-B6IdJ7UK.js} +2 -2
  86. package/dist/{frontmatter-vaw8OX7Y.js → frontmatter-BzAaXBfE.js} +3 -3
  87. package/dist/{fs-safe-CR_3Yr4x.js → fs-safe-B6nMaZqV.js} +1 -1
  88. package/dist/{gateway-cli-CAFWFnSX.js → gateway-cli-Dm5RZoKM.js} +433 -153
  89. package/dist/{gateway-cli-CzD6faIt.js → gateway-cli-K_XVNWQc.js} +315 -35
  90. package/dist/{gateway-rpc-o8CJkHuM.js → gateway-rpc-CUIXRk2t.js} +3 -3
  91. package/dist/{github-copilot-token-DTYkb2IC.js → github-copilot-token-BTNK6Tcd.js} +2 -2
  92. package/dist/{glass-ui-ws-Bbs2mIij.js → glass-ui-ws-B_7JgOGU.js} +11 -11
  93. package/dist/{glass-ui-ws-Dsez9bGF.js → glass-ui-ws-BbsrTxei.js} +105 -105
  94. package/dist/{gmail-setup-utils-CLvOQ6kY.js → gmail-setup-utils-D5G00y8h.js} +5 -5
  95. package/dist/{health-iJ9JzccO.js → health-BdxlhiXA.js} +13 -13
  96. package/dist/{health-format-CxAXRqzB.js → health-format-39e76m9p.js} +1 -1
  97. package/dist/{help-format-BWTv-lf6.js → help-format-BI_G2p1e.js} +1 -1
  98. package/dist/{helpers-BtwjKsDp.js → helpers-BBypnAYf.js} +1 -1
  99. package/dist/{hooks-cli-BEYoHsqh.js → hooks-cli-D5S_h70_.js} +87 -87
  100. package/dist/{hooks-cli-DNlmk6eB.js → hooks-cli-DyiztpNG.js} +8 -8
  101. package/dist/{hooks-status-D9SOPTTY.js → hooks-status-DLHEahg_.js} +3 -3
  102. package/dist/{image-ops-BkR5mVOY.js → image-ops-C-gIIp7Q.js} +2 -2
  103. package/dist/{inbound-context-CICDRKxY.js → inbound-context-CJj1VfzK.js} +2 -2
  104. package/dist/{inbound-context-B4B7i7oM.js → inbound-context-DqAyGDbE.js} +2 -2
  105. package/dist/index.js +90 -90
  106. package/dist/{inspect-XD55qAEL.js → inspect-BDzd6yBs.js} +1 -1
  107. package/dist/{install-safe-path-odQNUvjd.js → install-safe-path-CQXx3s9R.js} +1 -1
  108. package/dist/{installs-DLhIne1t.js → installs-CLp95gcX.js} +5 -5
  109. package/dist/{internal-CBKiu8Jv.js → internal-CHnZdvRy.js} +1 -1
  110. package/dist/{legacy-names-BVA_sKnb.js → legacy-names-C0hZiM-7.js} +1 -1
  111. package/dist/{lifecycle-core-CcinwCvM.js → lifecycle-core-_BlNODTH.js} +9 -9
  112. package/dist/{links-C6mXo5Yj.js → links-CSaUKNKm.js} +1 -1
  113. package/dist/llm-slug-generator.js +27 -27
  114. package/dist/{local-roots-C0G03E-R.js → local-roots-JhQs5w0I.js} +3 -3
  115. package/dist/{logging-CMolPIQB.js → logging-B96FQvnn.js} +2 -2
  116. package/dist/{logs-cli--Wek899G.js → logs-cli-BEWOyW5R.js} +20 -20
  117. package/dist/{manager-Bmh-pcUv.js → manager-BT2SbOdg.js} +6 -6
  118. package/dist/{manager-CS1vxold.js → manager-BTtaJXdu.js} +13 -13
  119. package/dist/{manager-9Rt8-xIT.js → manager-TrK63P2M.js} +1 -1
  120. package/dist/{manager-Do0-i7vp.js → manager-ue49bRVP.js} +1 -1
  121. package/dist/{manifest-registry-B4I9g0CL.js → manifest-registry-D7Qup2Vq.js} +3 -3
  122. package/dist/{manifest-registry-Cc80pffV.js → manifest-registry-DsTUFMvZ.js} +1 -1
  123. package/dist/{markdown-tables-jlJYpF1X.js → markdown-tables-GTLvbzuR.js} +2 -2
  124. package/dist/{markdown-tables-D0bwB4O7.js → markdown-tables-ptfgMe6b.js} +1 -1
  125. package/dist/{memory-ofHIUCzf.js → memory-Czxk_hJw.js} +7 -7
  126. package/dist/{memory-BduQaKuC.js → memory-DJN1Q1jq.js} +2 -2
  127. package/dist/{memory-cli-LXH0BNmI.js → memory-cli-B-nQp5HP.js} +16 -16
  128. package/dist/{memory-cli-BCz9iNCM.js → memory-cli-C9ZqpaaB.js} +2 -2
  129. package/dist/{message-channel-j44ChSJV.js → message-channel-C_V8IAYx.js} +1 -1
  130. package/dist/{model-BBL3doiY.js → model-BKtw-Bqs.js} +1 -1
  131. package/dist/{model-catalog-D8YRs6r8.js → model-catalog-DKBhNiWm.js} +4 -4
  132. package/dist/{model-picker-CdmjvvmL.js → model-picker-DKzvan7c.js} +3 -3
  133. package/dist/{models-cli-CdL5Tf5E.js → models-cli-CuHQFbs7.js} +9 -9
  134. package/dist/{models-cli-DrJsggrX.js → models-cli-D8rsqzuW.js} +91 -91
  135. package/dist/{models-config-BCa11tVc.js → models-config-CFUwiu4W.js} +3 -3
  136. package/dist/{models-DTHdIg0A.js → models-oqT-RVMM.js} +2 -2
  137. package/dist/{node-cli-Dl-lvH1N.js → node-cli-CgWAxe-K.js} +43 -43
  138. package/dist/{node-service-O5CpXu6c.js → node-service-tPO_yUk7.js} +1 -1
  139. package/dist/{nodes-cli-C9pjIduh.js → nodes-cli-CprJ5K63.js} +25 -25
  140. package/dist/{nodes-screen-B_D8bZhT.js → nodes-screen-JELuBMBi.js} +3 -3
  141. package/dist/{note-1QdZVD7W.js → note-CHrtEumO.js} +2 -2
  142. package/dist/{npm-registry-spec-BQ7yzKIT.js → npm-registry-spec-BXw_6vF6.js} +4 -4
  143. package/dist/{onboard-Cr1Rd93U.js → onboard-BICXrIV1.js} +20 -20
  144. package/dist/{onboard-3VcPRZV5.js → onboard-D-xPcbdk.js} +1 -1
  145. package/dist/{onboard-channels-CXqIlUcV.js → onboard-channels-CiLPgwMl.js} +13 -13
  146. package/dist/{onboard-channels-DmvTuYe_.js → onboard-channels-IZ52XV8A.js} +1 -1
  147. package/dist/{onboard-custom-DAD9D1fS.js → onboard-custom-Cla8O-Tv.js} +3 -3
  148. package/dist/{onboard-helpers-C5J9vSm2.js → onboard-helpers-D2mWJnFB.js} +11 -11
  149. package/dist/{onboard-hooks-D87tRcuX.js → onboard-hooks-DZD-nGLB.js} +11 -11
  150. package/dist/{onboard-remote-D3CWFQ0_.js → onboard-remote-Bi2BNRnh.js} +3 -3
  151. package/dist/{onboard-skills-CTv0hBJv.js → onboard-skills-C0XDXvWw.js} +5 -5
  152. package/dist/{onboarding-D_wPq7hv.js → onboarding-B-jxZvC2.js} +3 -3
  153. package/dist/{onboarding-Bop5peq2.js → onboarding-BmB9v20h.js} +19 -19
  154. package/dist/{onboarding.finalize-Pa0bEFjp.js → onboarding.finalize-BejpUEVe.js} +60 -60
  155. package/dist/{onboarding.finalize-DGwAMlRi.js → onboarding.finalize-DufFKTf4.js} +4 -4
  156. package/dist/{onboarding.gateway-config-aIrdqmcQ.js → onboarding.gateway-config-BmaAH8uo.js} +23 -23
  157. package/dist/{openai-model-default-BDH_OYY8.js → openai-model-default-BeRT9S75.js} +4 -4
  158. package/dist/{pairing-cli-PrIxvqnD.js → pairing-cli-DdtW6Nu-.js} +17 -17
  159. package/dist/{pairing-store-DmCi9E47.js → pairing-store-mmeniyUt.js} +5 -5
  160. package/dist/{pairing-token-BmIoXjHZ.js → pairing-token-CURbSHdi.js} +2 -2
  161. package/dist/{path-env-CRW1aXZp.js → path-env-DuQralyy.js} +3 -3
  162. package/dist/{paths-Cqn-zk3M.js → paths-BSzKwaxE.js} +1 -1
  163. package/dist/paths-BeAyfCRg.js +127 -0
  164. package/dist/{paths-CdGa1jlU.js → paths-CJcw9nbZ.js} +3 -3
  165. package/dist/{paths-DvXvD4Xu.js → paths-Dc6A9_vI.js} +2 -2
  166. package/dist/{pi-auth-json-DhbhmAvs.js → pi-auth-json-1Z1j1PDI.js} +1 -1
  167. package/dist/{pi-auth-json-ChKC--mV.js → pi-auth-json-D4Bl4hBw.js} +1 -1
  168. package/dist/{pi-embedded-hri4e4ie.js → pi-embedded-DoWU3tbW.js} +22 -239
  169. package/dist/{pi-embedded-helpers-VZo1D4Ck.js → pi-embedded-helpers-BRM8EM4P.js} +5 -5
  170. package/dist/{pi-tools.policy-DrRZdkk0.js → pi-tools.policy-BBHbN8Nh.js} +6 -6
  171. package/dist/{plugin-auto-enable-BV-thF8P.js → plugin-auto-enable-BCwyDNSP.js} +4 -4
  172. package/dist/{plugin-registry-CYEwOWqU.js → plugin-registry-BybhOEu2.js} +5 -5
  173. package/dist/{plugin-registry-q_UuFncy.js → plugin-registry-CFRFz2CF.js} +1 -1
  174. package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +0 -2
  175. package/dist/plugin-sdk/agents/system-prompt.d.ts +1 -2
  176. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +0 -1
  177. package/dist/plugin-sdk/auto-reply/reply/middleware-transcript-update.d.ts +1 -8
  178. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +0 -3
  179. package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +1 -3
  180. package/dist/plugin-sdk/auto-reply/reply/payload-middleware.d.ts +0 -2
  181. package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +0 -1
  182. package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +5 -3
  183. package/dist/plugin-sdk/auto-reply/tokens.d.ts +0 -3
  184. package/dist/plugin-sdk/auto-reply/types.d.ts +0 -3
  185. package/dist/plugin-sdk/gateway/outbound-filter.d.ts +6 -11
  186. package/dist/plugin-sdk/index.js +6 -6
  187. package/dist/plugin-sdk/infra/agent-events.d.ts +0 -1
  188. package/dist/{plugins-BG2b7dR_.js → plugins-CcVzjOo_.js} +1 -1
  189. package/dist/{plugins-CYQOjCDt.js → plugins-DuuHorqi.js} +3 -3
  190. package/dist/{plugins-cli-DE_0PdqM.js → plugins-cli-D9jv4SGt.js} +8 -8
  191. package/dist/{plugins-cli-CR1PAkGv.js → plugins-cli-Dw_F4XTt.js} +86 -86
  192. package/dist/{ports-DfsXfAsq.js → ports-DRHSHvqY.js} +2 -2
  193. package/dist/{ports-LzI_-wEZ.js → ports-DqxP-bXz.js} +5 -5
  194. package/dist/{program-x8XxEZXE.js → program-BijlJds3.js} +13 -13
  195. package/dist/{program-context-CvgJOZ3Q.js → program-context-f_krhr6H.js} +39 -39
  196. package/dist/{progress-B6mhJhX6.js → progress-CyPyGCDn.js} +2 -2
  197. package/dist/{prompt-select-styled-CFeLUnsr.js → prompt-select-styled-D4Dl6PAx.js} +45 -45
  198. package/dist/{prompt-select-styled-BFV2QYJC.js → prompt-select-styled-wUs9hOXT.js} +4 -4
  199. package/dist/{prompt-style-DtQMGj0v.js → prompt-style-Cad0BDRS.js} +1 -1
  200. package/dist/{provider-auth-helpers-D2GLBV7U.js → provider-auth-helpers-B0LgxUJm.js} +1 -1
  201. package/dist/{provider-auth-helpers-C-Cv3SZA.js → provider-auth-helpers-Dqg9CSy6.js} +7 -7
  202. package/dist/{push-apns-9XQgEWxs.js → push-apns-C8U43QIp.js} +1 -1
  203. package/dist/{push-apns-DTqLWoEj.js → push-apns-DBG95KxK.js} +8 -8
  204. package/dist/{pw-ai-D5WlMgqy.js → pw-ai-BHSw4eGG.js} +8 -8
  205. package/dist/{pw-ai-Bb4P23-n.js → pw-ai-BW5obXRK.js} +18 -18
  206. package/dist/{qmd-manager-92cDmzSO.js → qmd-manager-C-J9Sfjk.js} +12 -12
  207. package/dist/{qmd-manager-D6ABQ2yd.js → qmd-manager-CTHJcHPq.js} +3 -3
  208. package/dist/{qr-cli-B_kge4ua.js → qr-cli-BIdgVMK1.js} +12 -12
  209. package/dist/{register.agent-C-p6kDhf.js → register.agent-B0UZREcL.js} +103 -103
  210. package/dist/{register.agent-D9FfFyh0.js → register.agent-BQa36aBT.js} +12 -12
  211. package/dist/register.configure-C2da871z.js +129 -0
  212. package/dist/{register.configure-CtbO9t7v.js → register.configure-DXxKMVFv.js} +11 -11
  213. package/dist/{register.maintenance-Dy8l8hKt.js → register.maintenance-CU2sJOVr.js} +106 -106
  214. package/dist/{register.maintenance-h-CVvMpP.js → register.maintenance-DUuHNER1.js} +12 -12
  215. package/dist/{register.message-CaOagrcp.js → register.message-DIDXm7JJ.js} +81 -81
  216. package/dist/{register.message-DFytf1Dr.js → register.message-zAQ9mzwS.js} +8 -8
  217. package/dist/{register.onboard-SunldfQB.js → register.onboard-BQrBlJMk.js} +45 -45
  218. package/dist/{register.onboard-BAQSWmTB.js → register.onboard-xApCQkav.js} +2 -2
  219. package/dist/{register.setup-D3uuohUQ.js → register.setup-C3DgnQee.js} +45 -45
  220. package/dist/{register.setup-BnuPTj2h.js → register.setup-CfJlyVIU.js} +2 -2
  221. package/dist/{register.status-health-sessions-CPcQpUNU.js → register.status-health-sessions-CZKtQH3R.js} +68 -68
  222. package/dist/{register.status-health-sessions-azKiEST-.js → register.status-health-sessions-D7eQHV4A.js} +3 -3
  223. package/dist/{register.subclis-Di2DRNVF.js → register.subclis-DBKLQ-vk.js} +9 -9
  224. package/dist/{registry-CtguoMhn.js → registry-DKJLAPDB.js} +4 -4
  225. package/dist/{replies-CgVOirGF.js → replies-BOy28KVL.js} +1 -1
  226. package/dist/{replies-pnMj7AtP.js → replies-BeK3uuQ8.js} +1 -1
  227. package/dist/{replies-BUaT9S6J.js → replies-C82xaXm3.js} +3 -3
  228. package/dist/{replies-CvuXRwhI.js → replies-P7jbK6Bo.js} +3 -3
  229. package/dist/{reply-prefix-ClUrRCRd.js → reply-prefix-xaWqfM9m.js} +1 -1
  230. package/dist/{resolve-route-BLDKso2x.js → resolve-route-CIS2tjpz.js} +1 -1
  231. package/dist/{resolve-route-C0EHjIMD.js → resolve-route-DKhx5C-P.js} +6 -6
  232. package/dist/{routes-BFfAPz_0.js → routes-BJ2iXVJF.js} +9 -9
  233. package/dist/{rpc-CQUsmQ6_.js → rpc-CSI4uFgj.js} +3 -3
  234. package/dist/{run-main-BhJ6M7oy.js → run-main-C_9MD69x.js} +20 -20
  235. package/dist/{runtime-guard-Btd35-OG.js → runtime-guard-BZ3_1QqS.js} +1 -1
  236. package/dist/{sandbox-sayuve7z.js → sandbox-CQU7Gcb9.js} +16 -16
  237. package/dist/{sandbox-cli-Dyh_eqHp.js → sandbox-cli-Ci90LP_X.js} +37 -37
  238. package/dist/{security-cli-B5XGCe-n.js → security-cli-BfOZ_cJN.js} +47 -47
  239. package/dist/{send-B-tsyoRw.js → send-BAKkoPOy.js} +10 -10
  240. package/dist/{send-dfhV1QIV.js → send-DulXmWcG.js} +5 -5
  241. package/dist/{server-context-hxl_K7eY.js → server-context-BsMQBnUG.js} +11 -11
  242. package/dist/{server-methods-MUFuMWc_.js → server-methods-B4kcazJq.js} +49 -381
  243. package/dist/{server-methods-3uA_KwN4.js → server-methods-BLH71I9g.js} +9 -341
  244. package/dist/{server-node-events-FUPulMjB.js → server-node-events-BercSdmp.js} +82 -82
  245. package/dist/{server-node-events-DkbyHj1T.js → server-node-events-DO4ug_A0.js} +9 -9
  246. package/dist/{service-B5aOZmQH.js → service-AP9pR9R5.js} +1 -1
  247. package/dist/{session-cost-usage-DQjHUno0.js → session-cost-usage-DYcv40ss.js} +3 -3
  248. package/dist/{session-utils-C6O0Db39.js → session-utils-0F9pB5d6.js} +15 -15
  249. package/dist/{sessions-oPVoK2gW.js → sessions-DQMaURzb.js} +16 -16
  250. package/dist/{shared-BJxR-kzm.js → shared-4Z8Ut8Cs.js} +5 -5
  251. package/dist/{shared-E4KDN3LG.js → shared-DmYHvtn2.js} +3 -3
  252. package/dist/{skill-commands-CfGPouRa.js → skill-commands-Cwrebyvj.js} +2 -2
  253. package/dist/{skill-commands-4afIEM1a.js → skill-commands-DP1fshwh.js} +4 -4
  254. package/dist/{skill-scanner-BGtq5jZi.js → skill-scanner-qMQf6-FN.js} +2 -2
  255. package/dist/{skills-Kt1PL_Um.js → skills-D0k4o0Ez.js} +2 -2
  256. package/dist/{skills-BF_e-fYt.js → skills-DL8DjveU.js} +6 -6
  257. package/dist/{skills-cli-BlFM1U3r.js → skills-cli-BkIH3HKr.js} +19 -19
  258. package/dist/{skills-install-miTQGOBQ.js → skills-install-C9uT4MR2.js} +9 -9
  259. package/dist/{skills-remote-Ch1B-1aN.js → skills-remote-Db5Wwr4s.js} +6 -6
  260. package/dist/{skills-status-CFVFYR-o.js → skills-status-Dx3Lf5iU.js} +4 -4
  261. package/dist/{sqlite-BKMdYqso.js → sqlite--aBEq1-J.js} +2 -2
  262. package/dist/{sqlite-CfMLToLW.js → sqlite-DBEvS-Ne.js} +4 -4
  263. package/dist/{ssrf-LaudpmHD.js → ssrf-Dcgaqg3U.js} +2 -2
  264. package/dist/{status-BNH-f3PA.js → status-3CIcz22o.js} +4 -4
  265. package/dist/{status-C7F7r-qN.js → status-BdrH4P1l.js} +1 -1
  266. package/dist/{status-B-XD80Yl.js → status-DA_sl7Yp.js} +32 -32
  267. package/dist/{status-CCgqMBwp.js → status-uVc7h7PN.js} +1 -1
  268. package/dist/{status.update-B9WCVHPy.js → status.update-CQ1vKrEg.js} +4 -4
  269. package/dist/{subagent-registry-z08a8MUS.js → subagent-registry-CgZDo35C.js} +24 -243
  270. package/dist/{subsystem-CgepNOk5.js → subsystem-CtH6J8AV.js} +1 -1
  271. package/dist/{symi-root-7ei1lwo0.js → symi-root-DueRHNOE.js} +1 -1
  272. package/dist/{synthesis-Dlweuq0p.js → synthesis-B_K7BSX3.js} +27 -27
  273. package/dist/{synthesis-ByjLMHMS.js → synthesis-DmdaBp-J.js} +5 -5
  274. package/dist/{synthesis-D4iCZvKx.js → synthesis-DwfzSD3_.js} +7 -7
  275. package/dist/{synthesis-CjFmYp54.js → synthesis-w1oM0_-6.js} +78 -78
  276. package/dist/{system-cli-Ccu9utFt.js → system-cli-5_JOcUt0.js} +19 -19
  277. package/dist/{systemd-ChKNxGyT.js → systemd-9LEEqibe.js} +3 -3
  278. package/dist/{systemd-hints-hoofHqb7.js → systemd-hints-CeavseQh.js} +4 -4
  279. package/dist/{systemd-linger-DLgi3jd0.js → systemd-linger-PqG8iGCt.js} +2 -2
  280. package/dist/{table-Cyd0-LaL.js → table-DkAQzCOR.js} +2 -2
  281. package/dist/{tailscale-D3KwzQUZ.js → tailscale-D7dC-5EX.js} +3 -3
  282. package/dist/{thinking-nf5YVDrR.js → thinking-CMIo8E_E.js} +1 -1
  283. package/dist/{tokens-B24nv23l.js → tokens-BBh6tlmO.js} +1 -4
  284. package/dist/{tokens-DfB8vBa4.js → tokens-BKbemuIk.js} +2 -5
  285. package/dist/{tokens-CGqnWNmv.js → tokens-CJgPtOxz.js} +1 -4
  286. package/dist/{tokens-DJQ4rO24.js → tokens-K3kGchJA.js} +1 -4
  287. package/dist/{tool-display-D1Hh5TqL.js → tool-display-Dr6VaTg5.js} +2 -2
  288. package/dist/{tool-loop-detection-BxrJfVQU.js → tool-loop-detection-CSSq5kkt.js} +4 -4
  289. package/dist/transcript-events-JGGQViao.js +17 -0
  290. package/dist/{trash-oWw0M_xA.js → trash-BjVrPcAx.js} +2 -2
  291. package/dist/{tui-DqMRn1zF.js → tui-Bnusp3Vd.js} +12 -12
  292. package/dist/{tui-cli-sRKxOjmC.js → tui-cli-BY8W9Yjm.js} +43 -43
  293. package/dist/{unified-runner-CBVGL54b.js → unified-runner-BPgxfuKU.js} +98 -316
  294. package/dist/{unified-runner-Uyw1gZOm.js → unified-runner-DzycRpag.js} +146 -365
  295. package/dist/{update-rop24lF7.js → update-BvDXKE6K.js} +3 -3
  296. package/dist/{update-check-CC111uwU.js → update-check-CZxZhEXr.js} +2 -2
  297. package/dist/{update-cli-CH7SLjSd.js → update-cli-C4I2k2u9.js} +12 -12
  298. package/dist/{update-cli-BbtFbkK5.js → update-cli-DYYKfrbM.js} +116 -116
  299. package/dist/{update-runner-B0L2a2rW.js → update-runner-C8L4XRQb.js} +6 -6
  300. package/dist/{utils-AQWIWjGu.js → utils-BU8jVQFM.js} +2 -2
  301. package/dist/{webhooks-cli-CFMpDwWL.js → webhooks-cli-CXbv4eB6.js} +17 -17
  302. package/dist/{widearea-dns-DxpPXWPv.js → widearea-dns-C5NqCQ3L.js} +2 -2
  303. package/dist/{with-timeout-Bxn0qVBQ.js → with-timeout-C0UtpXBj.js} +2 -2
  304. package/dist/{workspace-StbmAqYj.js → workspace-B_xyjOdv.js} +4 -4
  305. package/dist/{workspace-dirs-B5axjz_-.js → workspace-dirs-gn_0yzFP.js} +1 -1
  306. package/dist/{ws-FAiTi9-v.js → ws-CahTJvD6.js} +1 -1
  307. package/package.json +1 -1
  308. package/dist/cli-iz9sMJ9d.js +0 -128
  309. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +0 -26
  310. package/dist/plugin-sdk/auto-reply/reply/middleware-heartbeat-strip.d.ts +0 -25
  311. package/dist/plugin-sdk/gateway/server-chat.d.ts +0 -49
  312. package/dist/register.configure-D69HXLo4.js +0 -129
  313. package/dist/{boolean-B8-BqKGQ.js → boolean-Wzu0-e0P.js} +0 -0
  314. package/dist/{boolean-BgXe2hyu.js → boolean-mcn6kL0s.js} +0 -0
  315. package/dist/{brew-ip7v32wW.js → brew-BoKmB5x9.js} +1 -1
  316. /package/dist/{chat-type-B2TfTsnW.js → chat-type-B7XD_ESN.js} +0 -0
  317. /package/dist/{chat-type-BoBpxitL.js → chat-type-BPBtOjer.js} +0 -0
  318. /package/dist/{chunk-Ds8SZRkS.js → chunk-5H33X8qU.js} +0 -0
  319. /package/dist/{command-format-CyXZlazG.js → command-format-BvAkTjTI.js} +0 -0
  320. /package/dist/{github-copilot-token-BUd9oA8x.js → github-copilot-token-B31ugq7R.js} +0 -0
  321. /package/dist/{input-provenance-iBlnbS1d.js → input-provenance-DsLesw6T.js} +0 -0
  322. /package/dist/{legacy-names-BlIw4lsD.js → legacy-names-sghWmXe3.js} +0 -0
  323. /package/dist/{local-roots-DtvYChMM.js → local-roots-WWcVq0Ma.js} +0 -0
  324. /package/dist/{redact-CozCe54d.js → redact-CSc_2Nka.js} +0 -0
  325. /package/dist/{redact-DPnDWsnT.js → redact-Dd8jrogi.js} +0 -0
  326. /package/dist/{secret-equal-DjTAoH50.js → secret-equal-D1BCVB1D.js} +0 -0
  327. /package/dist/{session-key-DUSb7CCb.js → session-key-B_ZVH1kE.js} +0 -0
  328. /package/dist/{ssrf-Cirmgays.js → ssrf-CC9kEPCT.js} +0 -0
  329. /package/dist/{tailnet-BruyvjMC.js → tailnet-LYvn9g3I.js} +0 -0
  330. /package/dist/{thinking-BTh3b5vY.js → thinking-177f26eg.js} +0 -0
  331. /package/dist/{transcript-events-BOK6eOU8.js → transcript-events-Ch7wLX-j.js} +0 -0
  332. /package/dist/{transcript-tools--a2pL_yH.js → transcript-tools-CrMLYORt.js} +0 -0
@@ -1,95 +1,95 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { g as resolveStateDir, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
3
- 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-AQWIWjGu.js";
4
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-DfB8vBa4.js";
5
- import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogger, O as warn, R as normalizeLogLevel, W as triggerInternalHook, _ as executePluginCommand, b as danger, c as normalizeAnyChannelId, g as clearPluginCommands, h as createPluginRegistry, l as normalizeChannelId, n as CHAT_CHANNEL_ORDER, p as setActivePluginRegistry, v as listPluginCommands, w as logVerbose, y as matchPluginCommand } from "./registry-CtguoMhn.js";
6
- import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CgepNOk5.js";
7
- import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$1, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, et as normalizeGoogleModelId, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-8vSEr9B4.js";
8
- import { t as formatCliCommand } from "./command-format-CyXZlazG.js";
9
- 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";
10
- import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-7ei1lwo0.js";
11
- import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-BcvUYCcV.js";
12
- 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-2la27US0.js";
13
- import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DTYkb2IC.js";
14
- import { t as parseBooleanValue } from "./boolean-BgXe2hyu.js";
15
- import { t as isTruthyEnvValue } from "./env-B7UUyzd_.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-VZo1D4Ck.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, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, m as parseDurationMs, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-fTqqDRAc.js";
18
- 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-B4I9g0CL.js";
19
- import { a as isPathInsideWithRealpath } from "./legacy-names-BVA_sKnb.js";
20
- 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-sayuve7z.js";
21
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-sQI2Ex5S.js";
22
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-hxl_K7eY.js";
23
- import { l as parseFrontmatterBlock } from "./frontmatter-vaw8OX7Y.js";
24
- 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-BF_e-fYt.js";
25
- import { n as getMediaDir, r as saveMediaBuffer } from "./routes-BFfAPz_0.js";
26
- import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-CBVhQiQ9.js";
27
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-DvXvD4Xu.js";
28
- import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Cirmgays.js";
29
- 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-BkR5mVOY.js";
30
- 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-oPVoK2gW.js";
31
- 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-n_MeJBcj.js";
32
- 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-j44ChSJV.js";
33
- import { t as normalizeChatType } from "./chat-type-BoBpxitL.js";
34
- import { n as resolveConversationLabel } from "./conversation-label-WjwKgn7n.js";
35
- import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-CYQOjCDt.js";
36
- 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-B-tsyoRw.js";
37
- import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CdGa1jlU.js";
38
- import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-iBlnbS1d.js";
39
- import { t as emitSessionTranscriptUpdate } from "./transcript-events-BOK6eOU8.js";
40
- 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-BTh3b5vY.js";
41
- import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-B_Fv-dS9.js";
42
- import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-oeL366QK.js";
2
+ import { D as shouldLogVerbose, H as createInternalHookEvent, M as getChildLogger, O as warn, R as normalizeLogLevel, W as triggerInternalHook, _ as executePluginCommand, b as danger, c as normalizeAnyChannelId, g as clearPluginCommands, h as createPluginRegistry, l as normalizeChannelId, n as CHAT_CHANNEL_ORDER, p as setActivePluginRegistry, v as listPluginCommands, w as logVerbose, y as matchPluginCommand } from "./registry-DKJLAPDB.js";
3
+ import { g as resolveStateDir, u as resolveGatewayPort } from "./paths-BSzKwaxE.js";
4
+ import { S as isPlainObject, _ as shortenHomeInString, b as sliceUtf16Safe, c as escapeRegExp, h as resolveUserPath, r as clampInt, t as CONFIG_DIR, u as isRecord, v as shortenHomePath, x as truncateUtf16Safe, y as sleep } from "./utils-BU8jVQFM.js";
5
+ import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
6
+ import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$1, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, et as normalizeGoogleModelId, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-CPlXilKu.js";
7
+ import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
8
+ import { S as resolveThreadParentSessionKey, _ as isAcpSessionKey, a as classifySessionKeyShape, b as isSubagentSessionKey, c as resolveAgentIdFromSessionKey, g as getSubagentDepth, l as resolveThreadSessionKeys, m as normalizeAccountId, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey, s as normalizeMainKey, t as DEFAULT_AGENT_ID, u as sanitizeAgentId, x as parseAgentSessionKey, y as isCronSessionKey } from "./session-key-B_ZVH1kE.js";
9
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DueRHNOE.js";
10
+ import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
11
+ import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentConfig, s as resolveAgentSkillsFilter, w as filterBootstrapFilesForSession } from "./agent-scope-B_oqIiaD.js";
12
+ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BTNK6Tcd.js";
13
+ import { t as parseBooleanValue } from "./boolean-Wzu0-e0P.js";
14
+ import { t as isTruthyEnvValue } from "./env-B97Ms861.js";
15
+ import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-BRM8EM4P.js";
16
+ import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, C as unsetConfigValueAtPath, N as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, m as parseDurationMs, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-CphS_6eg.js";
17
+ import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D7Qup2Vq.js";
18
+ import { a as isPathInsideWithRealpath } from "./legacy-names-C0hZiM-7.js";
19
+ import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-CQU7Gcb9.js";
20
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-owBWinlj.js";
21
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-BsMQBnUG.js";
22
+ import { l as parseFrontmatterBlock } from "./frontmatter-B6IdJ7UK.js";
23
+ import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-DL8DjveU.js";
24
+ import { n as getMediaDir, r as saveMediaBuffer } from "./routes-BJ2iXVJF.js";
25
+ import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-Z-WkF18Q.js";
26
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-Dc6A9_vI.js";
27
+ import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CC9kEPCT.js";
28
+ import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-C-gIIp7Q.js";
29
+ import { C as capArrayByJsonBytes, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields } from "./sessions-DQMaURzb.js";
30
+ import { c as normalizeStringEntries, i as resolveChannelGroupRequireMention, l as normalizeStringEntriesLower, n as listChannelDocks, o as normalizeAtHashSlug, r as resolveChannelGroupPolicy, s as normalizeHyphenSlug, t as getChannelDock } from "./dock-CnGWTXL4.js";
31
+ import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C_V8IAYx.js";
32
+ import { t as normalizeChatType } from "./chat-type-B7XD_ESN.js";
33
+ import { n as resolveConversationLabel } from "./conversation-label-CS5Zjc4w.js";
34
+ import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-DuuHorqi.js";
35
+ import { _ as resolveSlackChannelId, a as markdownToIRWithMeta, c as MediaFetchError, d as createSlackWebClient, f as resolveSlackWebClientOptions, g as parseSlackTarget, h as buildSlackBlocksFallbackText, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as validateSlackBlocksArray, o as getDefaultLocalRoots, p as parseSlackBlocksInput, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit } from "./send-BAKkoPOy.js";
36
+ import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CJcw9nbZ.js";
37
+ import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-DsLesw6T.js";
38
+ import { t as emitSessionTranscriptUpdate } from "./transcript-events-Ch7wLX-j.js";
39
+ import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-177f26eg.js";
40
+ import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-BKbemuIk.js";
41
+ import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-63FtOVMC.js";
42
+ import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-CwF3MnBL.js";
43
43
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-I4x9gPY4.js";
44
- import { t as ensureSymiModelsJson } from "./models-config-BCa11tVc.js";
45
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DhbhmAvs.js";
46
- import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-DQjHUno0.js";
47
- import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-C6O0Db39.js";
48
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-Bxn0qVBQ.js";
49
- import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-ClUrRCRd.js";
50
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-ofHIUCzf.js";
51
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-CS1vxold.js";
52
- import { f as runTasksWithConcurrency } from "./internal-CBKiu8Jv.js";
53
- import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-CKgSHf7u.js";
54
- import { n as resolveMarkdownTableMode } from "./markdown-tables-jlJYpF1X.js";
44
+ import { t as ensureSymiModelsJson } from "./models-config-CFUwiu4W.js";
45
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-1Z1j1PDI.js";
46
+ import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-DYcv40ss.js";
47
+ import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-0F9pB5d6.js";
48
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-C0UtpXBj.js";
49
+ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-xaWqfM9m.js";
50
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-Czxk_hJw.js";
51
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-BTtaJXdu.js";
52
+ import { f as runTasksWithConcurrency } from "./internal-CHnZdvRy.js";
53
+ import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-DQGU0F8t.js";
54
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-GTLvbzuR.js";
55
55
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CgmRK282.js";
56
- import { t as fetchWithSsrFGuard } from "./fetch-guard-BWofyagX.js";
57
- import { n as getDefaultMediaLocalRoots } from "./local-roots-C0G03E-R.js";
58
- import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-sNCgvbpu.js";
59
- import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-DXK4Ortm.js";
60
- import { Rt as SESSION_LABEL_MAX_LENGTH } from "./client-D8iTVY4F.js";
61
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-DLBaLOHo.js";
62
- import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-D1Hh5TqL.js";
56
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-DG6T0ZdL.js";
57
+ import { n as getDefaultMediaLocalRoots } from "./local-roots-JhQs5w0I.js";
58
+ import { i as resolveNativeSkillsEnabled, n as isRestartEnabled, r as resolveNativeCommandsEnabled, t as isCommandFlagEnabled } from "./commands-B3UrgxIz.js";
59
+ import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-W2GQIywv.js";
60
+ import { Rt as SESSION_LABEL_MAX_LENGTH } from "./client-ZZqt0H0-.js";
61
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege } from "./call-Du4CT1Hp.js";
62
+ import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-Dr6VaTg5.js";
63
63
  import { n as formatTimeAgo } from "./format-relative-Vm-Tqk0h.js";
64
- import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CICDRKxY.js";
65
- import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-Ch1B-1aN.js";
64
+ import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DqAyGDbE.js";
65
+ import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-Db5Wwr4s.js";
66
66
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DdkUSfiI.js";
67
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-D8YRs6r8.js";
68
- import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-4afIEM1a.js";
69
- import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-DmCi9E47.js";
70
- import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExecApprovals, f as resolveExecApprovalsFromFile, g as resolveSafeBins, h as evaluateShellAllowlist, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval, y as buildSafeBinsShellCommand } from "./exec-approvals-BWtVKlN2.js";
71
- import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-B_D8bZhT.js";
67
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DKBhNiWm.js";
68
+ import { i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames } from "./skill-commands-DP1fshwh.js";
69
+ import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-mmeniyUt.js";
70
+ import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExecApprovals, f as resolveExecApprovalsFromFile, g as resolveSafeBins, h as evaluateShellAllowlist, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval, y as buildSafeBinsShellCommand } from "./exec-approvals-CZOc8M5w.js";
71
+ import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-JELuBMBi.js";
72
72
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-dNgkVIEe.js";
73
73
  import { t as formatDurationCompact$1 } from "./format-duration-DbZRICyO.js";
74
74
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-2_Os41y-.js";
75
75
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-Ca9K30TH.js";
76
76
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-DsZw7bas.js";
77
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BDMq-0pg.js";
77
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CMVDL3Yl.js";
78
78
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BhvnarfO.js";
79
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BGtIUbFL.js";
80
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-C0EHjIMD.js";
79
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BvIcXQLj.js";
80
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DKhx5C-P.js";
81
81
  import { t as parseTimeoutMs } from "./parse-timeout-CpgyC-LD.js";
82
- import { n as registerMemoryCli } from "./memory-cli-LXH0BNmI.js";
83
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-BUaT9S6J.js";
84
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-DrRZdkk0.js";
85
- import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-BBL3doiY.js";
82
+ import { n as registerMemoryCli } from "./memory-cli-B-nQp5HP.js";
83
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-P7jbK6Bo.js";
84
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BBHbN8Nh.js";
85
+ import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-BKtw-Bqs.js";
86
86
  import { createRequire } from "node:module";
87
87
  import process$1 from "node:process";
88
88
  import { fileURLToPath } from "node:url";
89
89
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
90
+ import path from "node:path";
90
91
  import fs, { constants, existsSync, statSync } from "node:fs";
91
92
  import os, { homedir } from "node:os";
92
- import path from "node:path";
93
93
  import JSON5 from "json5";
94
94
  import fs$1 from "node:fs/promises";
95
95
  import { execFileSync, spawn, spawnSync } from "node:child_process";
@@ -101,97 +101,6 @@ import { Type } from "@sinclair/typebox";
101
101
  import { EventEmitter } from "node:events";
102
102
  import SlackBolt from "@slack/bolt";
103
103
 
104
- //#region src/auto-reply/heartbeat.ts
105
- const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
106
- function stripTokenAtEdges(raw) {
107
- let text = raw.trim();
108
- if (!text) return {
109
- text: "",
110
- didStrip: false
111
- };
112
- const token = SYMIPULSE_TOKEN;
113
- const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
114
- if (!text.includes(token)) return {
115
- text,
116
- didStrip: false
117
- };
118
- let didStrip = false;
119
- let changed = true;
120
- while (changed) {
121
- changed = false;
122
- const next = text.trim();
123
- if (next.startsWith(token)) {
124
- text = next.slice(token.length).trimStart();
125
- didStrip = true;
126
- changed = true;
127
- continue;
128
- }
129
- if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
130
- const idx = next.lastIndexOf(token);
131
- const before = next.slice(0, idx).trimEnd();
132
- if (!before) text = "";
133
- else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
134
- didStrip = true;
135
- changed = true;
136
- }
137
- }
138
- return {
139
- text: text.replace(/\s+/g, " ").trim(),
140
- didStrip
141
- };
142
- }
143
- function stripHeartbeatToken(raw, opts = {}) {
144
- if (!raw) return {
145
- shouldSkip: true,
146
- text: "",
147
- didStrip: false
148
- };
149
- const trimmed = raw.trim();
150
- if (!trimmed) return {
151
- shouldSkip: true,
152
- text: "",
153
- didStrip: false
154
- };
155
- const mode = opts.mode ?? "message";
156
- const maxAckCharsRaw = opts.maxAckChars;
157
- const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
158
- const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
159
- const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
160
- const trimmedNormalized = stripMarkup(trimmed);
161
- if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
162
- shouldSkip: false,
163
- text: trimmed,
164
- didStrip: false
165
- };
166
- const strippedOriginal = stripTokenAtEdges(trimmed);
167
- const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
168
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
169
- if (!picked.didStrip) return {
170
- shouldSkip: false,
171
- text: trimmed,
172
- didStrip: false
173
- };
174
- if (!picked.text) return {
175
- shouldSkip: true,
176
- text: "",
177
- didStrip: true
178
- };
179
- const rest = picked.text.trim();
180
- if (mode === "heartbeat") {
181
- if (rest.length <= maxAckChars) return {
182
- shouldSkip: true,
183
- text: "",
184
- didStrip: true
185
- };
186
- }
187
- return {
188
- shouldSkip: false,
189
- text: rest,
190
- didStrip: true
191
- };
192
- }
193
-
194
- //#endregion
195
104
  //#region src/auto-reply/reply/middleware-circuit-breaker.ts
196
105
  /**
197
106
  * Default recovery prompt — tells the model the previous turn aborted on
@@ -1148,56 +1057,24 @@ function resolveModelProfile(modelId, userProfiles) {
1148
1057
  //#endregion
1149
1058
  //#region src/gateway/outbound-filter.ts
1150
1059
  const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
1151
- const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
1152
1060
  /** Strict-match check for the bare NO_REPLY token. */
1153
1061
  function isBareSilentReply(text) {
1154
1062
  if (!text) return false;
1155
1063
  return SILENT_REPLY_BARE_RE.test(text);
1156
1064
  }
1157
- /** Strict-match check for the bare SYMIPULSE_OK token. */
1158
- function isBareSymipulseAck(text) {
1159
- if (!text) return false;
1160
- return SYMIPULSE_BARE_RE.test(text);
1161
- }
1162
1065
  /**
1163
1066
  * Classify an outbound assistant message at the gateway boundary.
1164
1067
  *
1165
1068
  * Returns a structured verdict the caller uses to decide whether to
1166
1069
  * broadcast / persist a payload. Pure function — no side effects.
1167
1070
  */
1168
- function classifyOutboundMessage(rawText, opts) {
1071
+ function classifyOutboundMessage(rawText, _opts) {
1169
1072
  const text = typeof rawText === "string" ? rawText : "";
1170
1073
  if (isBareSilentReply(text)) return {
1171
1074
  action: "drop",
1172
1075
  output: "",
1173
1076
  reason: "silent-reply-bare"
1174
1077
  };
1175
- if (opts.isHeartbeat) {
1176
- const stripped = stripHeartbeatToken(text, {
1177
- mode: "heartbeat",
1178
- maxAckChars: opts.heartbeatAckMaxChars
1179
- });
1180
- if (stripped.shouldSkip) return {
1181
- action: "drop",
1182
- output: "",
1183
- reason: stripped.didStrip ? "symipulse-heartbeat-ack" : "silent-reply-bare"
1184
- };
1185
- if (stripped.didStrip) return {
1186
- action: "deliver-stripped",
1187
- output: stripped.text,
1188
- reason: "symipulse-heartbeat-stripped"
1189
- };
1190
- return {
1191
- action: "deliver",
1192
- output: text,
1193
- reason: "deliver"
1194
- };
1195
- }
1196
- if (isBareSymipulseAck(text)) return {
1197
- action: "drop",
1198
- output: "",
1199
- reason: "symipulse-non-heartbeat-bare"
1200
- };
1201
1078
  return {
1202
1079
  action: "deliver",
1203
1080
  output: text,
@@ -1205,48 +1082,6 @@ function classifyOutboundMessage(rawText, opts) {
1205
1082
  };
1206
1083
  }
1207
1084
 
1208
- //#endregion
1209
- //#region src/infra/agent-events.ts
1210
- const seqByRun = /* @__PURE__ */ new Map();
1211
- const listeners = /* @__PURE__ */ new Set();
1212
- const runContextById = /* @__PURE__ */ new Map();
1213
- function registerAgentRunContext(runId, context) {
1214
- if (!runId) return;
1215
- const existing = runContextById.get(runId);
1216
- if (!existing) {
1217
- runContextById.set(runId, { ...context });
1218
- return;
1219
- }
1220
- if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
1221
- if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
1222
- if (context.isHeartbeat !== void 0 && existing.isHeartbeat !== context.isHeartbeat) existing.isHeartbeat = context.isHeartbeat;
1223
- }
1224
- function getAgentRunContext(runId) {
1225
- return runContextById.get(runId);
1226
- }
1227
- function clearAgentRunContext(runId) {
1228
- runContextById.delete(runId);
1229
- }
1230
- function emitAgentEvent(event) {
1231
- const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
1232
- seqByRun.set(event.runId, nextSeq);
1233
- const context = runContextById.get(event.runId);
1234
- const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
1235
- const enriched = {
1236
- ...event,
1237
- sessionKey,
1238
- seq: nextSeq,
1239
- ts: Date.now()
1240
- };
1241
- for (const listener of listeners) try {
1242
- listener(enriched);
1243
- } catch {}
1244
- }
1245
- function onAgentEvent(listener) {
1246
- listeners.add(listener);
1247
- return () => listeners.delete(listener);
1248
- }
1249
-
1250
1085
  //#endregion
1251
1086
  //#region src/process/lanes.ts
1252
1087
  let CommandLane = /* @__PURE__ */ function(CommandLane) {
@@ -4757,8 +4592,6 @@ function buildAgentSystemPrompt(params) {
4757
4592
  const reasoningLevel = params.reasoningLevel ?? "off";
4758
4593
  const userTimezone = params.userTimezone?.trim();
4759
4594
  const skillsPrompt = params.skillsPrompt?.trim();
4760
- const heartbeatPrompt = params.heartbeatPrompt?.trim();
4761
- const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
4762
4595
  const runtimeInfo = params.runtimeInfo;
4763
4596
  const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
4764
4597
  const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
@@ -4971,7 +4804,6 @@ function buildAgentSystemPrompt(params) {
4971
4804
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
4972
4805
  }
4973
4806
  if (!isMinimal && !isCoding) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
4974
- if (!isMinimal && !isCoding) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
4975
4807
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
4976
4808
  return lines.filter(Boolean).join("\n");
4977
4809
  }
@@ -5015,10 +4847,8 @@ function buildEmbeddedSystemPrompt(params) {
5015
4847
  ownerDisplay: params.ownerDisplay,
5016
4848
  ownerDisplaySecret: params.ownerDisplaySecret,
5017
4849
  reasoningTagHint: params.reasoningTagHint,
5018
- heartbeatPrompt: params.heartbeatPrompt,
5019
4850
  skillsPrompt: params.skillsPrompt,
5020
4851
  docsPath: params.docsPath,
5021
- ttsHint: params.ttsHint,
5022
4852
  workspaceNotes: params.workspaceNotes,
5023
4853
  reactionGuidance: params.reactionGuidance,
5024
4854
  promptMode: params.promptMode,
@@ -5085,7 +4915,7 @@ async function recordLoopOutcome(args) {
5085
4915
  if (!args.ctx?.sessionKey) return;
5086
4916
  try {
5087
4917
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-I4x9gPY4.js").then((n) => n.n);
5088
- const { recordToolCallOutcome } = await import("./tool-loop-detection-BxrJfVQU.js");
4918
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-CSSq5kkt.js");
5089
4919
  recordToolCallOutcome(getDiagnosticSessionState({
5090
4920
  sessionKey: args.ctx.sessionKey,
5091
4921
  sessionId: args.ctx?.agentId
@@ -5106,8 +4936,8 @@ async function runBeforeToolCallHook(args) {
5106
4936
  const params = args.params;
5107
4937
  if (args.ctx?.sessionKey) {
5108
4938
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-I4x9gPY4.js").then((n) => n.n);
5109
- const { logToolLoopAction } = await import("./diagnostic-oeL366QK.js").then((n) => n.n);
5110
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BxrJfVQU.js");
4939
+ const { logToolLoopAction } = await import("./diagnostic-CwF3MnBL.js").then((n) => n.n);
4940
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CSSq5kkt.js");
5111
4941
  const sessionState = getDiagnosticSessionState({
5112
4942
  sessionKey: args.ctx.sessionKey,
5113
4943
  sessionId: args.ctx?.agentId
@@ -5388,6 +5218,47 @@ function splitSdkTools(options) {
5388
5218
  };
5389
5219
  }
5390
5220
 
5221
+ //#endregion
5222
+ //#region src/infra/agent-events.ts
5223
+ const seqByRun = /* @__PURE__ */ new Map();
5224
+ const listeners = /* @__PURE__ */ new Set();
5225
+ const runContextById = /* @__PURE__ */ new Map();
5226
+ function registerAgentRunContext(runId, context) {
5227
+ if (!runId) return;
5228
+ const existing = runContextById.get(runId);
5229
+ if (!existing) {
5230
+ runContextById.set(runId, { ...context });
5231
+ return;
5232
+ }
5233
+ if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
5234
+ if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
5235
+ }
5236
+ function getAgentRunContext(runId) {
5237
+ return runContextById.get(runId);
5238
+ }
5239
+ function clearAgentRunContext(runId) {
5240
+ runContextById.delete(runId);
5241
+ }
5242
+ function emitAgentEvent(event) {
5243
+ const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
5244
+ seqByRun.set(event.runId, nextSeq);
5245
+ const context = runContextById.get(event.runId);
5246
+ const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
5247
+ const enriched = {
5248
+ ...event,
5249
+ sessionKey,
5250
+ seq: nextSeq,
5251
+ ts: Date.now()
5252
+ };
5253
+ for (const listener of listeners) try {
5254
+ listener(enriched);
5255
+ } catch {}
5256
+ }
5257
+ function onAgentEvent(listener) {
5258
+ listeners.add(listener);
5259
+ return () => listeners.delete(listener);
5260
+ }
5261
+
5391
5262
  //#endregion
5392
5263
  //#region src/utils/queue-helpers.ts
5393
5264
  function clearQueueSummaryState(state) {
@@ -5863,15 +5734,6 @@ function normalizeReplyPayload(payload, opts = {}) {
5863
5734
  text = "";
5864
5735
  }
5865
5736
  if (text && !trimmed) text = "";
5866
- if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
5867
- const stripped = stripHeartbeatToken(text, { mode: "message" });
5868
- if (stripped.didStrip) opts.onHeartbeatStrip?.();
5869
- if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
5870
- opts.onSkip?.("heartbeat");
5871
- return null;
5872
- }
5873
- text = stripped.text;
5874
- }
5875
5737
  if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
5876
5738
  if (!text?.trim() && !hasMedia && !hasChannelData) {
5877
5739
  opts.onSkip?.("empty");
@@ -5882,7 +5744,7 @@ function normalizeReplyPayload(payload, opts = {}) {
5882
5744
  text
5883
5745
  };
5884
5746
  const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
5885
- if (effectivePrefix && text && text.trim() !== HEARTBEAT_TOKEN && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
5747
+ if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
5886
5748
  return {
5887
5749
  ...enrichedPayload,
5888
5750
  text
@@ -5939,7 +5801,7 @@ async function routeReply(params) {
5939
5801
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
5940
5802
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
5941
5803
  try {
5942
- const { deliverOutboundPayloads } = await import("./deliver-B_Fv-dS9.js").then((n) => n.n);
5804
+ const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
5943
5805
  return {
5944
5806
  ok: true,
5945
5807
  messageId: (await deliverOutboundPayloads({
@@ -10060,8 +9922,7 @@ async function incrementCompactionCount(params) {
10060
9922
  //#endregion
10061
9923
  //#region src/auto-reply/reply/typing-mode.ts
10062
9924
  const DEFAULT_GROUP_TYPING_MODE = "message";
10063
- function resolveTypingMode({ configured, isGroupChat, wasMentioned, isHeartbeat }) {
10064
- if (isHeartbeat) return "never";
9925
+ function resolveTypingMode({ configured, isGroupChat, wasMentioned }) {
10065
9926
  if (configured) return configured;
10066
9927
  if (!isGroupChat || wasMentioned) return "instant";
10067
9928
  return DEFAULT_GROUP_TYPING_MODE;
@@ -10095,12 +9956,11 @@ async function prepareAgentRun(params) {
10095
9956
  const isFirstTurnInSession = isNewSession || !currentSystemSent;
10096
9957
  const isGroupChat = sessionCtx.ChatType === "group";
10097
9958
  const wasMentioned = ctx.WasMentioned === true;
10098
- const isHeartbeat = opts?.isHeartbeat === true;
10099
9959
  const typingMode = resolveTypingMode({
10100
9960
  configured: sessionCfg?.typingMode ?? agentCfg?.typingMode,
10101
9961
  isGroupChat,
10102
9962
  wasMentioned,
10103
- isHeartbeat
9963
+ isHeartbeat: false
10104
9964
  });
10105
9965
  const shouldInjectGroupIntro = Boolean(isGroupChat && (isFirstTurnInSession || sessionEntry?.groupActivationNeedsSystemIntro));
10106
9966
  const groupChatContext = isGroupChat ? buildGroupChatContext({ sessionCtx }) : "";
@@ -14170,8 +14030,7 @@ async function createModelSelectionState(params) {
14170
14030
  sessionKey,
14171
14031
  parentSessionKey
14172
14032
  });
14173
- const skipStoredOverride = params.hasResolvedHeartbeatModelOverride === true;
14174
- if (storedOverride?.model && !skipStoredOverride) {
14033
+ if (storedOverride?.model) {
14175
14034
  const candidateProvider = storedOverride.provider || defaultProvider;
14176
14035
  const key = modelKey(candidateProvider, storedOverride.model);
14177
14036
  if (allowedModelKeys.size === 0 || allowedModelKeys.has(key)) {
@@ -14180,7 +14039,7 @@ async function createModelSelectionState(params) {
14180
14039
  }
14181
14040
  }
14182
14041
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
14183
- const { ensureAuthProfileStore } = await import("./auth-profiles-8vSEr9B4.js").then((n) => n.t);
14042
+ const { ensureAuthProfileStore } = await import("./auth-profiles-CPlXilKu.js").then((n) => n.t);
14184
14043
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
14185
14044
  const providerKey = normalizeProviderId(provider);
14186
14045
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -20780,7 +20639,6 @@ async function resolveCommandsSystemPromptBundle(params) {
20780
20639
  userTimeFormat,
20781
20640
  contextFiles: injectedFiles,
20782
20641
  skillsPrompt,
20783
- heartbeatPrompt: void 0,
20784
20642
  runtimeInfo,
20785
20643
  sandboxInfo,
20786
20644
  memoryCitationsMode: params.cfg?.memory?.citations
@@ -23476,7 +23334,7 @@ function resolveExecOverrides(params) {
23476
23334
  };
23477
23335
  }
23478
23336
  async function resolveReplyDirectives(params) {
23479
- const { ctx, cfg, agentId, agentCfg, agentDir, workspaceDir, sessionCtx, sessionEntry, sessionStore, sessionKey, storePath, sessionScope, groupResolution, isGroup, triggerBodyNormalized, commandAuthorized, defaultProvider, defaultModel, provider: initialProvider, model: initialModel, hasResolvedHeartbeatModelOverride, typing, opts, skillFilter } = params;
23337
+ const { ctx, cfg, agentId, agentCfg, agentDir, workspaceDir, sessionCtx, sessionEntry, sessionStore, sessionKey, storePath, sessionScope, groupResolution, isGroup, triggerBodyNormalized, commandAuthorized, defaultProvider, defaultModel, provider: initialProvider, model: initialModel, typing, opts, skillFilter } = params;
23480
23338
  let provider = initialProvider;
23481
23339
  let model = initialModel;
23482
23340
  const commandSource = sessionCtx.BodyForCommands ?? sessionCtx.CommandBody ?? sessionCtx.RawBody ?? sessionCtx.Transcript ?? sessionCtx.BodyStripped ?? sessionCtx.Body ?? ctx.BodyForCommands ?? ctx.CommandBody ?? ctx.RawBody ?? "";
@@ -23617,8 +23475,7 @@ async function resolveReplyDirectives(params) {
23617
23475
  defaultModel,
23618
23476
  provider,
23619
23477
  model,
23620
- hasModelDirective: directives.hasModelDirective,
23621
- hasResolvedHeartbeatModelOverride
23478
+ hasModelDirective: directives.hasModelDirective
23622
23479
  });
23623
23480
  provider = modelState.provider;
23624
23481
  model = modelState.model;
@@ -33254,7 +33111,7 @@ async function deliverSessionMaintenanceWarning(params) {
33254
33111
  return;
33255
33112
  }
33256
33113
  try {
33257
- const { deliverOutboundPayloads } = await import("./deliver-B_Fv-dS9.js").then((n) => n.n);
33114
+ const { deliverOutboundPayloads } = await import("./deliver-63FtOVMC.js").then((n) => n.n);
33258
33115
  await deliverOutboundPayloads({
33259
33116
  cfg: params.cfg,
33260
33117
  channel,
@@ -33928,20 +33785,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
33928
33785
  });
33929
33786
  let provider = defaultProvider;
33930
33787
  let model = defaultModel;
33931
- let hasResolvedHeartbeatModelOverride = false;
33932
- if (opts?.isHeartbeat) {
33933
- const heartbeatRaw = opts.heartbeatModelOverride?.trim() ?? agentCfg?.heartbeat?.model?.trim() ?? "";
33934
- const heartbeatRef = heartbeatRaw ? resolveModelRefFromString({
33935
- raw: heartbeatRaw,
33936
- defaultProvider,
33937
- aliasIndex
33938
- }) : null;
33939
- if (heartbeatRef) {
33940
- provider = heartbeatRef.ref.provider;
33941
- model = heartbeatRef.ref.model;
33942
- hasResolvedHeartbeatModelOverride = true;
33943
- }
33944
- }
33945
33788
  const workspaceDir = (await ensureAgentWorkspace({
33946
33789
  dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
33947
33790
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
@@ -34020,8 +33863,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
34020
33863
  groupSubject: sessionEntry.subject ?? sessionCtx.GroupSubject ?? finalized.GroupSubject,
34021
33864
  parentSessionKey: sessionCtx.ParentSessionKey
34022
33865
  });
34023
- const hasSessionModelOverride = Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim());
34024
- if (!hasResolvedHeartbeatModelOverride && !hasSessionModelOverride && channelModelOverride) {
33866
+ if (!Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim()) && channelModelOverride) {
34025
33867
  const resolved = resolveModelRefFromString({
34026
33868
  raw: channelModelOverride.model,
34027
33869
  defaultProvider,
@@ -34054,7 +33896,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
34054
33896
  aliasIndex,
34055
33897
  provider,
34056
33898
  model,
34057
- hasResolvedHeartbeatModelOverride,
34058
33899
  typing,
34059
33900
  opts: resolvedOpts,
34060
33901
  skillFilter: mergedSkillFilter
@@ -34778,54 +34619,6 @@ function withFastAbort(opts) {
34778
34619
  };
34779
34620
  }
34780
34621
 
34781
- //#endregion
34782
- //#region src/auto-reply/reply/middleware-heartbeat-strip.ts
34783
- /**
34784
- * Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
34785
- * replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
34786
- * decide whether to strip; reads `payload.isError` to give the sanitizer
34787
- * the right context flag.
34788
- *
34789
- * Equivalence claim (proven by tests): for every input shape the chain's
34790
- * `normalizeStreamingText({text})` would have produced `{ skip, text }`,
34791
- * this middleware produces the corresponding `PayloadDelivery`:
34792
- *
34793
- * skip=true → delivered=false (drop)
34794
- * skip=false, text=undefined → delivered=true with payload.text undefined
34795
- * (media-only carry-through case)
34796
- * skip=false, text=string → delivered=true with payload.text=sanitized
34797
- */
34798
- function withHeartbeatStrip(opts) {
34799
- let didLogStrip = false;
34800
- return (next) => async (payload, ctx) => {
34801
- let text = payload.text;
34802
- const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
34803
- if (!ctx.isHeartbeat && typeof text === "string" && text.includes("SYMIPULSE_OK")) {
34804
- const stripped = stripHeartbeatToken(text, { mode: "message" });
34805
- if (stripped.didStrip && !didLogStrip) {
34806
- didLogStrip = true;
34807
- opts?.onStrip?.();
34808
- }
34809
- if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
34810
- text = stripped.text;
34811
- }
34812
- if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
34813
- if (!text) {
34814
- if (hasMedia) return next({
34815
- ...payload,
34816
- text: void 0
34817
- }, ctx);
34818
- return PayloadDelivery.drop(payload, "drop:empty");
34819
- }
34820
- const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
34821
- if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
34822
- return next({
34823
- ...payload,
34824
- text: sanitized
34825
- }, ctx);
34826
- };
34827
- }
34828
-
34829
34622
  //#endregion
34830
34623
  //#region src/infra/map-size.ts
34831
34624
  function pruneMapToMaxSize(map, maxSize) {
@@ -35101,25 +34894,22 @@ function withToolResultSerialization(opts) {
35101
34894
  * session transcript after the inner runner completes.
35102
34895
  *
35103
34896
  * Skip conditions:
35104
- * - outbound.action === "drop" (NO_REPLY / heartbeat ack — no message)
34897
+ * - outbound.action === "drop" (NO_REPLY — no message)
35105
34898
  * - empty / whitespace-only text
35106
- * - outbound.action === "deliver-stripped" AND includeStripped=false
35107
34899
  *
35108
34900
  * The middleware does NOT mutate the turn result — the append is a
35109
34901
  * post-turn side effect. The result is returned unchanged regardless of
35110
34902
  * append success/failure.
35111
34903
  */
35112
34904
  function withTranscriptUpdate(opts) {
35113
- const includeStripped = opts.includeStripped !== false;
35114
34905
  return (next) => async (params) => {
35115
34906
  const result = await next(params);
35116
- if (shouldAppend(result, includeStripped)) await runAppend(opts, params, result);
34907
+ if (shouldAppend(result)) await runAppend(opts, params, result);
35117
34908
  return result;
35118
34909
  };
35119
34910
  }
35120
- function shouldAppend(result, includeStripped) {
34911
+ function shouldAppend(result) {
35121
34912
  if (result.outbound.action === "drop") return false;
35122
- if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
35123
34913
  return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
35124
34914
  }
35125
34915
  async function runAppend(opts, params, result) {
@@ -35203,7 +34993,6 @@ function buildChannelProfile(opts) {
35203
34993
  ],
35204
34994
  payloadMiddlewares: [
35205
34995
  withPayloadDropOnEmpty(),
35206
- withHeartbeatStrip(),
35207
34996
  ...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
35208
34997
  withToolResultSerialization(),
35209
34998
  withChannelRouting({
@@ -35232,11 +35021,7 @@ function buildGlassUiProfile(opts) {
35232
35021
  withModelFallback(),
35233
35022
  ...opts.transcriptAppender ? [withTranscriptUpdate({ appender: opts.transcriptAppender })] : []
35234
35023
  ],
35235
- payloadMiddlewares: [
35236
- withPayloadDropOnEmpty(),
35237
- withHeartbeatStrip(),
35238
- withToolResultSerialization()
35239
- ],
35024
+ payloadMiddlewares: [withPayloadDropOnEmpty(), withToolResultSerialization()],
35240
35025
  payloadHandler: createReplyDispatcherHandler(opts.dispatcher)
35241
35026
  };
35242
35027
  }
@@ -35377,7 +35162,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
35377
35162
  return normalizeReplyPayload(payload, {
35378
35163
  responsePrefix: opts.responsePrefix,
35379
35164
  responsePrefixContext: prefixContext,
35380
- onHeartbeatStrip: opts.onHeartbeatStrip,
35381
35165
  onSkip: opts.onSkip
35382
35166
  });
35383
35167
  }
@@ -35400,7 +35184,6 @@ function createReplyDispatcher(options) {
35400
35184
  responsePrefix: options.responsePrefix,
35401
35185
  responsePrefixContext: options.responsePrefixContext,
35402
35186
  responsePrefixContextProvider: options.responsePrefixContextProvider,
35403
- onHeartbeatStrip: options.onHeartbeatStrip,
35404
35187
  onSkip: (reason) => options.onSkip?.(payload, {
35405
35188
  kind,
35406
35189
  reason
@@ -39094,7 +38877,7 @@ function readSlackExternalArgMenuToken(raw) {
39094
38877
  }
39095
38878
  let commandsRegistry;
39096
38879
  async function getCommandsRegistry() {
39097
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DXK4Ortm.js").then((n) => n.t);
38880
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-W2GQIywv.js").then((n) => n.t);
39098
38881
  return commandsRegistry;
39099
38882
  }
39100
38883
  function encodeSlackCommandArgValue(parts) {
@@ -39436,11 +39219,11 @@ async function registerSlackMonitorSlashCommands(params) {
39436
39219
  const channelName = channelInfo?.name;
39437
39220
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
39438
39221
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
39439
- import("./resolve-route-C0EHjIMD.js").then((n) => n.r),
39440
- import("./inbound-context-CICDRKxY.js").then((n) => n.n),
39222
+ import("./resolve-route-DKhx5C-P.js").then((n) => n.r),
39223
+ import("./inbound-context-DqAyGDbE.js").then((n) => n.n),
39441
39224
  Promise.resolve().then(() => provider_dispatcher_exports)
39442
39225
  ]);
39443
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-WjwKgn7n.js").then((n) => n.t), import("./reply-prefix-ClUrRCRd.js").then((n) => n.n)]);
39226
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CS5Zjc4w.js").then((n) => n.t), import("./reply-prefix-xaWqfM9m.js").then((n) => n.n)]);
39444
39227
  const route = resolveAgentRoute({
39445
39228
  cfg,
39446
39229
  channel: "slack",
@@ -39497,9 +39280,9 @@ async function registerSlackMonitorSlashCommands(params) {
39497
39280
  });
39498
39281
  const deliverSlashPayloads = async (replies) => {
39499
39282
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
39500
- import("./replies-BUaT9S6J.js").then((n) => n.r),
39501
- import("./chunk-CKgSHf7u.js").then((n) => n.s),
39502
- import("./markdown-tables-jlJYpF1X.js").then((n) => n.t)
39283
+ import("./replies-P7jbK6Bo.js").then((n) => n.r),
39284
+ import("./chunk-DQGU0F8t.js").then((n) => n.s),
39285
+ import("./markdown-tables-GTLvbzuR.js").then((n) => n.t)
39503
39286
  ]);
39504
39287
  await deliverSlackSlashReplies({
39505
39288
  replies,
@@ -39552,7 +39335,7 @@ async function registerSlackMonitorSlashCommands(params) {
39552
39335
  let nativeCommands = [];
39553
39336
  if (nativeEnabled) {
39554
39337
  reg = await getCommandsRegistry();
39555
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-4afIEM1a.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39338
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DP1fshwh.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
39556
39339
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
39557
39340
  skillCommands,
39558
39341
  provider: "slack"
@@ -43561,7 +43344,7 @@ async function compactEmbeddedPiSessionDirect(params) {
43561
43344
  if (!apiKeyInfo.apiKey) {
43562
43345
  if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
43563
43346
  } else if (model.provider === "github-copilot") {
43564
- const { resolveCopilotApiToken } = await import("./github-copilot-token-DTYkb2IC.js").then((n) => n.n);
43347
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-BTNK6Tcd.js").then((n) => n.n);
43565
43348
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
43566
43349
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
43567
43350
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -43692,7 +43475,6 @@ async function compactEmbeddedPiSessionDirect(params) {
43692
43475
  ownerDisplay: params.config?.commands?.ownerDisplay,
43693
43476
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
43694
43477
  reasoningTagHint,
43695
- heartbeatPrompt: void 0,
43696
43478
  skillsPrompt,
43697
43479
  docsPath: docsPath ?? void 0,
43698
43480
  promptMode,
@@ -48166,7 +47948,6 @@ async function runEmbeddedAttempt(params) {
48166
47948
  ownerDisplay: params.config?.commands?.ownerDisplay,
48167
47949
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
48168
47950
  reasoningTagHint,
48169
- heartbeatPrompt: void 0,
48170
47951
  skillsPrompt,
48171
47952
  docsPath: docsPath ?? void 0,
48172
47953
  workspaceNotes,
@@ -49245,7 +49026,7 @@ async function runEmbeddedPiAgent(params) {
49245
49026
  return;
49246
49027
  }
49247
49028
  if (model.provider === "github-copilot") {
49248
- const { resolveCopilotApiToken } = await import("./github-copilot-token-DTYkb2IC.js").then((n) => n.n);
49029
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-BTNK6Tcd.js").then((n) => n.n);
49249
49030
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
49250
49031
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
49251
49032
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -49994,8 +49775,8 @@ async function runAgentTurnImpl(params) {
49994
49775
  const result = await runEmbeddedPiAgent(buildInternalParams());
49995
49776
  const rawText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
49996
49777
  const outboundResult = classifyOutboundMessage(rawText, {
49997
- isHeartbeat: getAgentRunContext(runId)?.isHeartbeat === true,
49998
- heartbeatAckMaxChars: Math.max(0, params.config.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS)
49778
+ isHeartbeat: false,
49779
+ heartbeatAckMaxChars: 0
49999
49780
  });
50000
49781
  const filteredText = outboundResult.output.trim();
50001
49782
  const resolvedProvider = result.meta.agentMeta?.provider ?? params.provider ?? "";
@@ -50052,4 +49833,4 @@ async function runAgentTurn(params) {
50052
49833
  }
50053
49834
 
50054
49835
  //#endregion
50055
- export { applyBrowserProxyPaths as $, getActiveEmbeddedRunCount as $t, normalizePollInput as A, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as An, estimateBase64DecodedBytes as At, normalizeOptionalText as B, countActiveRunsForSession as Bt, listTasksInWorkdir as C, classifyOutboundMessage as Cn, DEFAULT_INPUT_IMAGE_MIMES as Ct, resolveOutboundSessionRoute as D, FailoverError as Dn, extractImageContentFromSource as Dt, ensureOutboundSessionEntry as E, runWithModelFallback as En, extractFileContentFromSource as Et, normalizeCronJobCreate as F, clearSessionAuthProfileOverride as Ft, hasLegacyDeliveryHints as G, resolveAgentTimeoutMs as Gt, normalizeRequiredName as H, listDescendantRunsForRequester as Ht, normalizeCronJobPatch as I, formatZonedTimestamp as It, CHANNEL_TARGET_DESCRIPTION as J, AGENT_LANE_NESTED as Jt, stripLegacyDeliveryFields as K, runSubagentAnnounceFlow as Kt, inferLegacyName as L, isAbortTrigger as Lt, resetDirectoryCache as M, prepareAgentRun as Mt, CHANNEL_MESSAGE_ACTION_NAMES as N, BARE_SESSION_RESET_PROMPT as Nt, resolveOutboundTarget as O, describeFailoverError as On, normalizeMimeList as Ot, normalizeHttpWebhookUrl as P, normalizeGroupActivation as Pt, isExternalHookSession as Q, abortEmbeddedPiRun as Qt, normalizeOptionalAgentId as R, stopSubagentsForRequester as Rt, createSymiTools as S, registerAgentRunContext as Sn, DEFAULT_INPUT_IMAGE_MAX_BYTES as St, runMessageAction as T, composeTurnMiddleware as Tn, DEFAULT_INPUT_TIMEOUT_MS as Tt, migrateLegacyCronPayload as U, listSubagentRunsForRequester as Ut, normalizePayloadToSystemText as V, initSubagentRegistry as Vt, buildDeliveryFromLegacyPayload as W, subagent_registry_exports as Wt, detectSuspiciousPatterns as X, clearSessionQueues as Xt, buildSafeExternalPrompt as Y, AGENT_LANE_SUBAGENT as Yt, getHookType as Z, buildAgentSystemPrompt as Zt, withContextUsageWarning as _, CommandLane as _n, buildAuthHealthSummary as _t, getPluginToolMeta as a, formatUserTime as an, markGatewaySigusr1RestartHandled as at, buildAgentTurnParams as b, getAgentRunContext as bn, applyVerboseOverride as bt, handleSlackHttpRequest as c, makeBootstrapWarn as cn, setPreRestartDeferralCheck as ct, buildHistoryContextFromEntries as d, resolveRunWorkspaceDir as dn, getProcessSupervisor as dt, waitForEmbeddedPiRunEnd as en, persistBrowserProxyFiles as et, getChannelActivity as f, getActiveTaskCount as fn, detectRuntimeShell as ft, buildGlassUiProfile as g, waitForActiveTasks as gn, DEFAULT_OAUTH_WARN_MS as gt, getTotalPendingReplies as h, setCommandLaneConcurrency as hn, maskApiKey as ht, sniffMimeFromBase64 as i, resolveSymiDocsPath as in, isGatewaySigusr1RestartExternallyAllowed as it, formatTargetDisplay as j, stripHeartbeatToken as jn, applyTemplate as jt, resolveSessionDeliveryTarget as k, resolveFailoverStatus as kn, resolveInputFileLimits as kt, readJsonBodyWithLimit as l, resolveBootstrapContextForRun as ln, buildSystemPromptParams as lt, createReplyDispatcher as m, resetAllLanes as mn, resolveSendPolicy as mt, applyToolPolicyPipeline as n, registerUnhandledRejectionHandler as nn, deferGatewayRestartUntilIdle as nt, createPluginLoaderLogger as o, resolveUserTimeFormat as on, scheduleGatewaySigusr1Restart as ot, provider_dispatcher_exports as p, getTotalQueueSize as pn, normalizeSendPolicy as pt, CHANNEL_TARGETS_DESCRIPTION as q, readLatestAssistantReply as qt, buildDefaultToolPolicyPipelineSteps as r, ToolInputError as rn, emitGatewayRestart as rt, loadSymiPlugins as s, resolveUserTimezone as sn, setGatewaySigusr1RestartPolicy as st, runAgentTurn as t, installUnhandledRejectionHandler as tn, consumeGatewaySigusr1RestartAuthorization as tt, requestBodyErrorToText as u, redactRunIdentifier as un, resolveCommitHash as ut, withContextOverflowRecovery as v, clearAgentRunContext as vn, formatRemainingShort as vt, resolveAnnounceTargetFromKey as w, resolveModelProfile as wn, DEFAULT_INPUT_MAX_REDIRECTS as wt, prepareReplyTurn as x, onAgentEvent as xn, parseVerboseOverride as xt, runUnifiedTurn as y, emitAgentEvent as yn, applyModelOverrideToSessionEntry as yt, normalizeOptionalSessionKey as z, countActiveDescendantRuns as zt };
49836
+ export { applyBrowserProxyPaths as $, getAgentRunContext as $t, normalizePollInput as A, estimateBase64DecodedBytes as At, normalizeOptionalText as B, countActiveRunsForSession as Bt, listTasksInWorkdir as C, classifyOutboundMessage as Cn, DEFAULT_INPUT_IMAGE_MIMES as Ct, resolveOutboundSessionRoute as D, FailoverError as Dn, extractImageContentFromSource as Dt, ensureOutboundSessionEntry as E, runWithModelFallback as En, extractFileContentFromSource as Et, normalizeCronJobCreate as F, clearSessionAuthProfileOverride as Ft, hasLegacyDeliveryHints as G, resolveAgentTimeoutMs as Gt, normalizeRequiredName as H, listDescendantRunsForRequester as Ht, normalizeCronJobPatch as I, formatZonedTimestamp as It, CHANNEL_TARGET_DESCRIPTION as J, AGENT_LANE_NESTED as Jt, stripLegacyDeliveryFields as K, runSubagentAnnounceFlow as Kt, inferLegacyName as L, isAbortTrigger as Lt, resetDirectoryCache as M, prepareAgentRun as Mt, CHANNEL_MESSAGE_ACTION_NAMES as N, BARE_SESSION_RESET_PROMPT as Nt, resolveOutboundTarget as O, describeFailoverError as On, normalizeMimeList as Ot, normalizeHttpWebhookUrl as P, normalizeGroupActivation as Pt, isExternalHookSession as Q, emitAgentEvent as Qt, normalizeOptionalAgentId as R, stopSubagentsForRequester as Rt, createSymiTools as S, CommandLane as Sn, DEFAULT_INPUT_IMAGE_MAX_BYTES as St, runMessageAction as T, composeTurnMiddleware as Tn, DEFAULT_INPUT_TIMEOUT_MS as Tt, migrateLegacyCronPayload as U, listSubagentRunsForRequester as Ut, normalizePayloadToSystemText as V, initSubagentRegistry as Vt, buildDeliveryFromLegacyPayload as W, subagent_registry_exports as Wt, detectSuspiciousPatterns as X, clearSessionQueues as Xt, buildSafeExternalPrompt as Y, AGENT_LANE_SUBAGENT as Yt, getHookType as Z, clearAgentRunContext as Zt, withContextUsageWarning as _, getActiveTaskCount as _n, buildAuthHealthSummary as _t, getPluginToolMeta as a, waitForEmbeddedPiRunEnd as an, markGatewaySigusr1RestartHandled as at, buildAgentTurnParams as b, setCommandLaneConcurrency as bn, applyVerboseOverride as bt, handleSlackHttpRequest as c, ToolInputError as cn, setPreRestartDeferralCheck as ct, buildHistoryContextFromEntries as d, resolveUserTimeFormat as dn, getProcessSupervisor as dt, onAgentEvent as en, persistBrowserProxyFiles as et, getChannelActivity as f, resolveUserTimezone as fn, detectRuntimeShell as ft, buildGlassUiProfile as g, resolveRunWorkspaceDir as gn, DEFAULT_OAUTH_WARN_MS as gt, getTotalPendingReplies as h, redactRunIdentifier as hn, maskApiKey as ht, sniffMimeFromBase64 as i, getActiveEmbeddedRunCount as in, isGatewaySigusr1RestartExternallyAllowed as it, formatTargetDisplay as j, applyTemplate as jt, resolveSessionDeliveryTarget as k, resolveFailoverStatus as kn, resolveInputFileLimits as kt, readJsonBodyWithLimit as l, resolveSymiDocsPath as ln, buildSystemPromptParams as lt, createReplyDispatcher as m, resolveBootstrapContextForRun as mn, resolveSendPolicy as mt, applyToolPolicyPipeline as n, buildAgentSystemPrompt as nn, deferGatewayRestartUntilIdle as nt, createPluginLoaderLogger as o, installUnhandledRejectionHandler as on, scheduleGatewaySigusr1Restart as ot, provider_dispatcher_exports as p, makeBootstrapWarn as pn, normalizeSendPolicy as pt, CHANNEL_TARGETS_DESCRIPTION as q, readLatestAssistantReply as qt, buildDefaultToolPolicyPipelineSteps as r, abortEmbeddedPiRun as rn, emitGatewayRestart as rt, loadSymiPlugins as s, registerUnhandledRejectionHandler as sn, setGatewaySigusr1RestartPolicy as st, runAgentTurn as t, registerAgentRunContext as tn, consumeGatewaySigusr1RestartAuthorization as tt, requestBodyErrorToText as u, formatUserTime as un, resolveCommitHash as ut, withContextOverflowRecovery as v, getTotalQueueSize as vn, formatRemainingShort as vt, resolveAnnounceTargetFromKey as w, resolveModelProfile as wn, DEFAULT_INPUT_MAX_REDIRECTS as wt, prepareReplyTurn as x, waitForActiveTasks as xn, parseVerboseOverride as xt, runUnifiedTurn as y, resetAllLanes as yn, applyModelOverrideToSessionEntry as yt, normalizeOptionalSessionKey as z, countActiveDescendantRuns as zt };