@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
@@ -5,40 +5,40 @@ import { $ as sleep, A as theme, B as clampInt, C as logVerbose, D as warn, E as
5
5
  import { a as resolveAgentSkillsFilter, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentWorkspaceDir, r as resolveAgentDir, s as resolveDefaultAgentId, u as resolveSessionAgentIds } from "./agent-scope-D_MtsuXX.js";
6
6
  import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DzRUKS9f.js";
7
7
  import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, h as resolveSymiPackageRootSync, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-CsaDUuDn.js";
8
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-B24nv23l.js";
9
- import { $ as DEFAULT_MODEL, A as resolveThinkingDefault, B as requireApiKey, C as normalizeModelRef$1, D as resolveDefaultModelForAgent, E as resolveConfiguredModelRef, F as resolveImplicitProviders, G as normalizeSecretInput, H as resolveEnvApiKey, I as OLLAMA_NATIVE_BASE_URL, J as resolveShellEnvFallbackTimeoutMs, K as getShellPathFromLoginShell, L as createOllamaStreamFn, M as normalizeProviders, N as resolveImplicitBedrockProvider, O as resolveModelRefFromString, P as resolveImplicitCopilotProvider, Q as DEFAULT_CONTEXT_TOKENS, R as getApiKeyForModel, S as modelKey, U as resolveModelAuthMode, V as resolveApiKeyForProvider, Z as isTruthyEnvValue, _ as buildAllowedModelSet, a as markAuthProfileFailure, b as findNormalizedProviderValue, c as dedupeProfileIds, d as ensureAuthProfileStore, et as DEFAULT_PROVIDER, f as resolveAuthStorePathForDisplay, i as isProfileInCooldown, j as normalizeGoogleModelId, k as resolveSubagentSpawnModelSelection, l as listProfilesForProvider, m as withFileLock$1, n as resolveAuthProfileOrder, nt as resolveCliName, o as markAuthProfileUsed, p as resolveSymiAgentDir, r as getSoonestCooldownExpiry, rt as resolveAuthProfileDisplayLabel, s as resolveApiKeyForProfile, tt as formatCliCommand, u as markAuthProfileGood, v as buildConfiguredAllowlistKeys, w as normalizeProviderId, y as buildModelAliasIndex, z as getCustomProviderApiKey } from "./auth-profiles-CZTGpbyT.js";
10
- import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BUd9oA8x.js";
11
- import { t as parseBooleanValue } from "./boolean-B8-BqKGQ.js";
12
- import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-B_jXI55b.js";
13
- import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, m as parseDurationMs, o as normalizeHostname, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-LaudpmHD.js";
14
- import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-Cc80pffV.js";
15
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BgQbis3t.js";
16
- import { l as parseFrontmatterBlock } from "./frontmatter-B5iYTsZP.js";
17
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Kt1PL_Um.js";
18
- import { n as redactToolDetail } from "./redact-DPnDWsnT.js";
19
- import { n as formatErrorMessage } from "./errors-BgCjRT2k.js";
20
- import { _ as MAX_IMAGE_BYTES, d as extensionForMime, f as getFileExtension, g as normalizeMimeType$1, h as kindFromMime, l as resizeToJpeg, m as isAudioFileName, n as getDefaultMediaLocalRoots, o as getImageMetadata, p as imageMimeFromFormat, u as detectMime, y as mediaKindFromMime } from "./local-roots-DtvYChMM.js";
21
- import { _ as normalizeHyphenSlug, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as normalizeAtHashSlug, h as resolveChannelGroupToolsPolicy, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupRequireMention, n as formatXHighModelHint, o as normalizeThinkLevel, p as resolveChannelGroupPolicy, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeStringEntries, y as normalizeStringEntriesLower } from "./thinking-nf5YVDrR.js";
22
- import { C as GATEWAY_CLIENT_MODES, S as GATEWAY_CLIENT_IDS, _ as isMarkdownCapableMessageChannel, a as chunkText, b as resolveGatewayMessageChannel, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as listDeliverableMessageChannels, w as GATEWAY_CLIENT_NAMES, y as normalizeMessageChannel } from "./chunk-Ds8SZRkS.js";
23
- import { t as normalizeChatType } from "./chat-type-B2TfTsnW.js";
24
- import { n as resolveConversationLabel } from "./conversation-label-B4d5pKXr.js";
25
- import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-BG2b7dR_.js";
26
- import { _ as validateSlackBlocksArray, a as markdownToIRWithMeta, b as resolveSlackChannelId, c as MediaFetchError, d as fetchWithSsrFGuard, f as bindAbortRelay, g as parseSlackBlocksInput, h as resolveSlackWebClientOptions, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as createSlackWebClient, o as getDefaultLocalRoots, p as fetchWithTimeout, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit, v as buildSlackBlocksFallbackText, y as parseSlackTarget } from "./send-dfhV1QIV.js";
27
- import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-N698mtPE.js";
28
- import { t as emitSessionTranscriptUpdate } from "./transcript-events-fUhPZcB5.js";
8
+ import { $ as DEFAULT_MODEL, A as resolveThinkingDefault, B as requireApiKey, C as normalizeModelRef$1, D as resolveDefaultModelForAgent, E as resolveConfiguredModelRef, F as resolveImplicitProviders, G as normalizeSecretInput, H as resolveEnvApiKey, I as OLLAMA_NATIVE_BASE_URL, J as resolveShellEnvFallbackTimeoutMs, K as getShellPathFromLoginShell, L as createOllamaStreamFn, M as normalizeProviders, N as resolveImplicitBedrockProvider, O as resolveModelRefFromString, P as resolveImplicitCopilotProvider, Q as DEFAULT_CONTEXT_TOKENS, R as getApiKeyForModel, S as modelKey, U as resolveModelAuthMode, V as resolveApiKeyForProvider, Z as isTruthyEnvValue, _ as buildAllowedModelSet, a as markAuthProfileFailure, b as findNormalizedProviderValue, c as dedupeProfileIds, d as ensureAuthProfileStore, et as DEFAULT_PROVIDER, f as resolveAuthStorePathForDisplay, i as isProfileInCooldown, j as normalizeGoogleModelId, k as resolveSubagentSpawnModelSelection, l as listProfilesForProvider, m as withFileLock$1, n as resolveAuthProfileOrder, nt as resolveCliName, o as markAuthProfileUsed, p as resolveSymiAgentDir, r as getSoonestCooldownExpiry, rt as resolveAuthProfileDisplayLabel, s as resolveApiKeyForProfile, tt as formatCliCommand, u as markAuthProfileGood, v as buildConfiguredAllowlistKeys, w as normalizeProviderId, y as buildModelAliasIndex, z as getCustomProviderApiKey } from "./auth-profiles-duUuQXeC.js";
9
+ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-B31ugq7R.js";
10
+ import { t as parseBooleanValue } from "./boolean-mcn6kL0s.js";
11
+ import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-BY0HHHHB.js";
12
+ import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, m as parseDurationMs, o as normalizeHostname, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-Dcgaqg3U.js";
13
+ import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-DsTUFMvZ.js";
14
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CejiigNy.js";
15
+ import { l as parseFrontmatterBlock } from "./frontmatter-BzAaXBfE.js";
16
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-D0k4o0Ez.js";
17
+ import { n as redactToolDetail } from "./redact-Dd8jrogi.js";
18
+ import { n as formatErrorMessage } from "./errors-BkfLlDKo.js";
19
+ import { _ as MAX_IMAGE_BYTES, d as extensionForMime, f as getFileExtension, g as normalizeMimeType$1, h as kindFromMime, l as resizeToJpeg, m as isAudioFileName, n as getDefaultMediaLocalRoots, o as getImageMetadata, p as imageMimeFromFormat, u as detectMime, y as mediaKindFromMime } from "./local-roots-WWcVq0Ma.js";
20
+ import { _ as normalizeHyphenSlug, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as normalizeAtHashSlug, h as resolveChannelGroupToolsPolicy, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupRequireMention, n as formatXHighModelHint, o as normalizeThinkLevel, p as resolveChannelGroupPolicy, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeStringEntries, y as normalizeStringEntriesLower } from "./thinking-CMIo8E_E.js";
21
+ import { C as GATEWAY_CLIENT_MODES, S as GATEWAY_CLIENT_IDS, _ as isMarkdownCapableMessageChannel, a as chunkText, b as resolveGatewayMessageChannel, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as listDeliverableMessageChannels, w as GATEWAY_CLIENT_NAMES, y as normalizeMessageChannel } from "./chunk-5H33X8qU.js";
22
+ import { t as normalizeChatType } from "./chat-type-BPBtOjer.js";
23
+ import { n as resolveConversationLabel } from "./conversation-label-tLwAlqLf.js";
24
+ import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-CcVzjOo_.js";
25
+ import { _ as validateSlackBlocksArray, a as markdownToIRWithMeta, b as resolveSlackChannelId, c as MediaFetchError, d as fetchWithSsrFGuard, f as bindAbortRelay, g as parseSlackBlocksInput, h as resolveSlackWebClientOptions, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as createSlackWebClient, o as getDefaultLocalRoots, p as fetchWithTimeout, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit, v as buildSlackBlocksFallbackText, y as parseSlackTarget } from "./send-DulXmWcG.js";
26
+ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BeAyfCRg.js";
27
+ import { t as emitSessionTranscriptUpdate } from "./transcript-events-JGGQViao.js";
28
+ import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-BBh6tlmO.js";
29
29
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-D7z6O7v0.js";
30
30
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-BkfiP_y6.js";
31
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-ChKC--mV.js";
31
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-D4Bl4hBw.js";
32
32
  import { a as resolveEffectiveMessagesConfig, i as resolveAckReaction, o as resolveHumanDelayConfig, r as resolveResponsePrefixTemplate, t as createReplyPrefixOptions } from "./reply-prefix-ChIeKp-P.js";
33
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-Bmh-pcUv.js";
33
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-BT2SbOdg.js";
34
34
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Crkye5gI.js";
35
- import { n as resolveMarkdownTableMode } from "./markdown-tables-D0bwB4O7.js";
36
- import { a as shouldHandleTextCommands, c as resolveNativeCommandsEnabled, i as normalizeCommandBody, l as resolveNativeSkillsEnabled, n as listChatCommands, o as isCommandFlagEnabled, r as listChatCommandsForConfig, s as isRestartEnabled } from "./commands-registry-CRkL6mTz.js";
37
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile$1, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CfGPouRa.js";
38
- import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-B4B7i7oM.js";
35
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-ptfgMe6b.js";
36
+ import { a as shouldHandleTextCommands, c as resolveNativeCommandsEnabled, i as normalizeCommandBody, l as resolveNativeSkillsEnabled, n as listChatCommands, o as isCommandFlagEnabled, r as listChatCommandsForConfig, s as isRestartEnabled } from "./commands-registry-DaPrWQSe.js";
37
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile$1, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-Cwrebyvj.js";
38
+ import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CJj1VfzK.js";
39
39
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-B_aXYZv5.js";
40
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BLDKso2x.js";
41
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CvuXRwhI.js";
40
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CIS2tjpz.js";
41
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-C82xaXm3.js";
42
42
  import { createRequire } from "node:module";
43
43
  import * as path$1 from "node:path";
44
44
  import path from "node:path";
@@ -64,97 +64,6 @@ import { spinner } from "@clack/prompts";
64
64
  import { createOscProgressController, supportsOscProgress } from "osc-progress";
65
65
  import SlackBolt from "@slack/bolt";
66
66
 
67
- //#region src/auto-reply/heartbeat.ts
68
- const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
69
- function stripTokenAtEdges(raw) {
70
- let text = raw.trim();
71
- if (!text) return {
72
- text: "",
73
- didStrip: false
74
- };
75
- const token = SYMIPULSE_TOKEN;
76
- const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
77
- if (!text.includes(token)) return {
78
- text,
79
- didStrip: false
80
- };
81
- let didStrip = false;
82
- let changed = true;
83
- while (changed) {
84
- changed = false;
85
- const next = text.trim();
86
- if (next.startsWith(token)) {
87
- text = next.slice(token.length).trimStart();
88
- didStrip = true;
89
- changed = true;
90
- continue;
91
- }
92
- if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
93
- const idx = next.lastIndexOf(token);
94
- const before = next.slice(0, idx).trimEnd();
95
- if (!before) text = "";
96
- else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
97
- didStrip = true;
98
- changed = true;
99
- }
100
- }
101
- return {
102
- text: text.replace(/\s+/g, " ").trim(),
103
- didStrip
104
- };
105
- }
106
- function stripHeartbeatToken(raw, opts = {}) {
107
- if (!raw) return {
108
- shouldSkip: true,
109
- text: "",
110
- didStrip: false
111
- };
112
- const trimmed = raw.trim();
113
- if (!trimmed) return {
114
- shouldSkip: true,
115
- text: "",
116
- didStrip: false
117
- };
118
- const mode = opts.mode ?? "message";
119
- const maxAckCharsRaw = opts.maxAckChars;
120
- const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
121
- const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
122
- const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
123
- const trimmedNormalized = stripMarkup(trimmed);
124
- if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
125
- shouldSkip: false,
126
- text: trimmed,
127
- didStrip: false
128
- };
129
- const strippedOriginal = stripTokenAtEdges(trimmed);
130
- const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
131
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
132
- if (!picked.didStrip) return {
133
- shouldSkip: false,
134
- text: trimmed,
135
- didStrip: false
136
- };
137
- if (!picked.text) return {
138
- shouldSkip: true,
139
- text: "",
140
- didStrip: true
141
- };
142
- const rest = picked.text.trim();
143
- if (mode === "heartbeat") {
144
- if (rest.length <= maxAckChars) return {
145
- shouldSkip: true,
146
- text: "",
147
- didStrip: true
148
- };
149
- }
150
- return {
151
- shouldSkip: false,
152
- text: rest,
153
- didStrip: true
154
- };
155
- }
156
-
157
- //#endregion
158
67
  //#region src/auto-reply/reply/middleware-circuit-breaker.ts
159
68
  /**
160
69
  * Default recovery prompt — tells the model the previous turn aborted on
@@ -1111,56 +1020,24 @@ function resolveModelProfile(modelId, userProfiles) {
1111
1020
  //#endregion
1112
1021
  //#region src/gateway/outbound-filter.ts
1113
1022
  const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
1114
- const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
1115
1023
  /** Strict-match check for the bare NO_REPLY token. */
1116
1024
  function isBareSilentReply(text) {
1117
1025
  if (!text) return false;
1118
1026
  return SILENT_REPLY_BARE_RE.test(text);
1119
1027
  }
1120
- /** Strict-match check for the bare SYMIPULSE_OK token. */
1121
- function isBareSymipulseAck(text) {
1122
- if (!text) return false;
1123
- return SYMIPULSE_BARE_RE.test(text);
1124
- }
1125
1028
  /**
1126
1029
  * Classify an outbound assistant message at the gateway boundary.
1127
1030
  *
1128
1031
  * Returns a structured verdict the caller uses to decide whether to
1129
1032
  * broadcast / persist a payload. Pure function — no side effects.
1130
1033
  */
1131
- function classifyOutboundMessage(rawText, opts) {
1034
+ function classifyOutboundMessage(rawText, _opts) {
1132
1035
  const text = typeof rawText === "string" ? rawText : "";
1133
1036
  if (isBareSilentReply(text)) return {
1134
1037
  action: "drop",
1135
1038
  output: "",
1136
1039
  reason: "silent-reply-bare"
1137
1040
  };
1138
- if (opts.isHeartbeat) {
1139
- const stripped = stripHeartbeatToken(text, {
1140
- mode: "heartbeat",
1141
- maxAckChars: opts.heartbeatAckMaxChars
1142
- });
1143
- if (stripped.shouldSkip) return {
1144
- action: "drop",
1145
- output: "",
1146
- reason: stripped.didStrip ? "symipulse-heartbeat-ack" : "silent-reply-bare"
1147
- };
1148
- if (stripped.didStrip) return {
1149
- action: "deliver-stripped",
1150
- output: stripped.text,
1151
- reason: "symipulse-heartbeat-stripped"
1152
- };
1153
- return {
1154
- action: "deliver",
1155
- output: text,
1156
- reason: "deliver"
1157
- };
1158
- }
1159
- if (isBareSymipulseAck(text)) return {
1160
- action: "drop",
1161
- output: "",
1162
- reason: "symipulse-non-heartbeat-bare"
1163
- };
1164
1041
  return {
1165
1042
  action: "deliver",
1166
1043
  output: text,
@@ -1168,48 +1045,6 @@ function classifyOutboundMessage(rawText, opts) {
1168
1045
  };
1169
1046
  }
1170
1047
 
1171
- //#endregion
1172
- //#region src/infra/agent-events.ts
1173
- const seqByRun = /* @__PURE__ */ new Map();
1174
- const listeners = /* @__PURE__ */ new Set();
1175
- const runContextById = /* @__PURE__ */ new Map();
1176
- function registerAgentRunContext(runId, context) {
1177
- if (!runId) return;
1178
- const existing = runContextById.get(runId);
1179
- if (!existing) {
1180
- runContextById.set(runId, { ...context });
1181
- return;
1182
- }
1183
- if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
1184
- if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
1185
- if (context.isHeartbeat !== void 0 && existing.isHeartbeat !== context.isHeartbeat) existing.isHeartbeat = context.isHeartbeat;
1186
- }
1187
- function getAgentRunContext(runId) {
1188
- return runContextById.get(runId);
1189
- }
1190
- function clearAgentRunContext(runId) {
1191
- runContextById.delete(runId);
1192
- }
1193
- function emitAgentEvent(event) {
1194
- const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
1195
- seqByRun.set(event.runId, nextSeq);
1196
- const context = runContextById.get(event.runId);
1197
- const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
1198
- const enriched = {
1199
- ...event,
1200
- sessionKey,
1201
- seq: nextSeq,
1202
- ts: Date.now()
1203
- };
1204
- for (const listener of listeners) try {
1205
- listener(enriched);
1206
- } catch {}
1207
- }
1208
- function onAgentEvent(listener) {
1209
- listeners.add(listener);
1210
- return () => listeners.delete(listener);
1211
- }
1212
-
1213
1048
  //#endregion
1214
1049
  //#region src/process/lanes.ts
1215
1050
  let CommandLane = /* @__PURE__ */ function(CommandLane) {
@@ -2252,7 +2087,7 @@ async function getMemorySearchManager(params) {
2252
2087
  if (cached) return { manager: cached };
2253
2088
  }
2254
2089
  try {
2255
- const { QmdMemoryManager } = await import("./qmd-manager-D6ABQ2yd.js");
2090
+ const { QmdMemoryManager } = await import("./qmd-manager-CTHJcHPq.js");
2256
2091
  const primary = await QmdMemoryManager.create({
2257
2092
  cfg: params.cfg,
2258
2093
  agentId: params.agentId,
@@ -2264,7 +2099,7 @@ async function getMemorySearchManager(params) {
2264
2099
  const wrapper = new FallbackMemoryManager({
2265
2100
  primary,
2266
2101
  fallbackFactory: async () => {
2267
- const { MemoryIndexManager } = await import("./manager-Bmh-pcUv.js").then((n) => n.t);
2102
+ const { MemoryIndexManager } = await import("./manager-BT2SbOdg.js").then((n) => n.t);
2268
2103
  return await MemoryIndexManager.get(params);
2269
2104
  }
2270
2105
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -2277,7 +2112,7 @@ async function getMemorySearchManager(params) {
2277
2112
  }
2278
2113
  }
2279
2114
  try {
2280
- const { MemoryIndexManager } = await import("./manager-Bmh-pcUv.js").then((n) => n.t);
2115
+ const { MemoryIndexManager } = await import("./manager-BT2SbOdg.js").then((n) => n.t);
2281
2116
  return { manager: await MemoryIndexManager.get(params) };
2282
2117
  } catch (err) {
2283
2118
  return {
@@ -5172,8 +5007,6 @@ function buildAgentSystemPrompt(params) {
5172
5007
  const reasoningLevel = params.reasoningLevel ?? "off";
5173
5008
  const userTimezone = params.userTimezone?.trim();
5174
5009
  const skillsPrompt = params.skillsPrompt?.trim();
5175
- const heartbeatPrompt = params.heartbeatPrompt?.trim();
5176
- const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
5177
5010
  const runtimeInfo = params.runtimeInfo;
5178
5011
  const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
5179
5012
  const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
@@ -5386,7 +5219,6 @@ function buildAgentSystemPrompt(params) {
5386
5219
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
5387
5220
  }
5388
5221
  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}`, "");
5389
- 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.", "");
5390
5222
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
5391
5223
  return lines.filter(Boolean).join("\n");
5392
5224
  }
@@ -5430,10 +5262,8 @@ function buildEmbeddedSystemPrompt(params) {
5430
5262
  ownerDisplay: params.ownerDisplay,
5431
5263
  ownerDisplaySecret: params.ownerDisplaySecret,
5432
5264
  reasoningTagHint: params.reasoningTagHint,
5433
- heartbeatPrompt: params.heartbeatPrompt,
5434
5265
  skillsPrompt: params.skillsPrompt,
5435
5266
  docsPath: params.docsPath,
5436
- ttsHint: params.ttsHint,
5437
5267
  workspaceNotes: params.workspaceNotes,
5438
5268
  reactionGuidance: params.reactionGuidance,
5439
5269
  promptMode: params.promptMode,
@@ -8028,6 +7858,44 @@ function randomIdempotencyKey() {
8028
7858
  return randomUUID();
8029
7859
  }
8030
7860
 
7861
+ //#endregion
7862
+ //#region src/infra/agent-events.ts
7863
+ const seqByRun = /* @__PURE__ */ new Map();
7864
+ const listeners = /* @__PURE__ */ new Set();
7865
+ const runContextById = /* @__PURE__ */ new Map();
7866
+ function registerAgentRunContext(runId, context) {
7867
+ if (!runId) return;
7868
+ const existing = runContextById.get(runId);
7869
+ if (!existing) {
7870
+ runContextById.set(runId, { ...context });
7871
+ return;
7872
+ }
7873
+ if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
7874
+ if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
7875
+ }
7876
+ function clearAgentRunContext(runId) {
7877
+ runContextById.delete(runId);
7878
+ }
7879
+ function emitAgentEvent(event) {
7880
+ const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
7881
+ seqByRun.set(event.runId, nextSeq);
7882
+ const context = runContextById.get(event.runId);
7883
+ const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
7884
+ const enriched = {
7885
+ ...event,
7886
+ sessionKey,
7887
+ seq: nextSeq,
7888
+ ts: Date.now()
7889
+ };
7890
+ for (const listener of listeners) try {
7891
+ listener(enriched);
7892
+ } catch {}
7893
+ }
7894
+ function onAgentEvent(listener) {
7895
+ listeners.add(listener);
7896
+ return () => listeners.delete(listener);
7897
+ }
7898
+
8031
7899
  //#endregion
8032
7900
  //#region src/utils/queue-helpers.ts
8033
7901
  function clearQueueSummaryState(state) {
@@ -8503,15 +8371,6 @@ function normalizeReplyPayload(payload, opts = {}) {
8503
8371
  text = "";
8504
8372
  }
8505
8373
  if (text && !trimmed) text = "";
8506
- if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
8507
- const stripped = stripHeartbeatToken(text, { mode: "message" });
8508
- if (stripped.didStrip) opts.onHeartbeatStrip?.();
8509
- if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
8510
- opts.onSkip?.("heartbeat");
8511
- return null;
8512
- }
8513
- text = stripped.text;
8514
- }
8515
8374
  if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
8516
8375
  if (!text?.trim() && !hasMedia && !hasChannelData) {
8517
8376
  opts.onSkip?.("empty");
@@ -8522,7 +8381,7 @@ function normalizeReplyPayload(payload, opts = {}) {
8522
8381
  text
8523
8382
  };
8524
8383
  const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
8525
- if (effectivePrefix && text && text.trim() !== HEARTBEAT_TOKEN && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
8384
+ if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
8526
8385
  return {
8527
8386
  ...enrichedPayload,
8528
8387
  text
@@ -8579,7 +8438,7 @@ async function routeReply(params) {
8579
8438
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
8580
8439
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
8581
8440
  try {
8582
- const { deliverOutboundPayloads } = await import("./deliver-B_jXI55b.js").then((n) => n.n);
8441
+ const { deliverOutboundPayloads } = await import("./deliver-BY0HHHHB.js").then((n) => n.n);
8583
8442
  return {
8584
8443
  ok: true,
8585
8444
  messageId: (await deliverOutboundPayloads({
@@ -14255,8 +14114,7 @@ async function incrementCompactionCount(params) {
14255
14114
  //#endregion
14256
14115
  //#region src/auto-reply/reply/typing-mode.ts
14257
14116
  const DEFAULT_GROUP_TYPING_MODE = "message";
14258
- function resolveTypingMode({ configured, isGroupChat, wasMentioned, isHeartbeat }) {
14259
- if (isHeartbeat) return "never";
14117
+ function resolveTypingMode({ configured, isGroupChat, wasMentioned }) {
14260
14118
  if (configured) return configured;
14261
14119
  if (!isGroupChat || wasMentioned) return "instant";
14262
14120
  return DEFAULT_GROUP_TYPING_MODE;
@@ -14290,12 +14148,11 @@ async function prepareAgentRun(params) {
14290
14148
  const isFirstTurnInSession = isNewSession || !currentSystemSent;
14291
14149
  const isGroupChat = sessionCtx.ChatType === "group";
14292
14150
  const wasMentioned = ctx.WasMentioned === true;
14293
- const isHeartbeat = opts?.isHeartbeat === true;
14294
14151
  const typingMode = resolveTypingMode({
14295
14152
  configured: sessionCfg?.typingMode ?? agentCfg?.typingMode,
14296
14153
  isGroupChat,
14297
14154
  wasMentioned,
14298
- isHeartbeat
14155
+ isHeartbeat: false
14299
14156
  });
14300
14157
  const shouldInjectGroupIntro = Boolean(isGroupChat && (isFirstTurnInSession || sessionEntry?.groupActivationNeedsSystemIntro));
14301
14158
  const groupChatContext = isGroupChat ? buildGroupChatContext({ sessionCtx }) : "";
@@ -16185,7 +16042,7 @@ async function loadModelCatalog(params) {
16185
16042
  try {
16186
16043
  const cfg = params?.config ?? loadConfig();
16187
16044
  await ensureSymiModelsJson(cfg);
16188
- await (await import("./pi-auth-json-ChKC--mV.js").then((n) => n.n)).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir(), { config: cfg });
16045
+ await (await import("./pi-auth-json-D4Bl4hBw.js").then((n) => n.n)).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir(), { config: cfg });
16189
16046
  const piSdk = await importPiSdk();
16190
16047
  const agentDir = resolveSymiAgentDir();
16191
16048
  const { join } = await import("node:path");
@@ -18309,8 +18166,7 @@ async function createModelSelectionState(params) {
18309
18166
  sessionKey,
18310
18167
  parentSessionKey
18311
18168
  });
18312
- const skipStoredOverride = params.hasResolvedHeartbeatModelOverride === true;
18313
- if (storedOverride?.model && !skipStoredOverride) {
18169
+ if (storedOverride?.model) {
18314
18170
  const candidateProvider = storedOverride.provider || defaultProvider;
18315
18171
  const key = modelKey(candidateProvider, storedOverride.model);
18316
18172
  if (allowedModelKeys.size === 0 || allowedModelKeys.has(key)) {
@@ -18319,7 +18175,7 @@ async function createModelSelectionState(params) {
18319
18175
  }
18320
18176
  }
18321
18177
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
18322
- const { ensureAuthProfileStore } = await import("./auth-profiles-CZTGpbyT.js").then((n) => n.t);
18178
+ const { ensureAuthProfileStore } = await import("./auth-profiles-duUuQXeC.js").then((n) => n.t);
18323
18179
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
18324
18180
  const providerKey = normalizeProviderId(provider);
18325
18181
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -26989,7 +26845,6 @@ async function resolveCommandsSystemPromptBundle(params) {
26989
26845
  userTimeFormat,
26990
26846
  contextFiles: injectedFiles,
26991
26847
  skillsPrompt,
26992
- heartbeatPrompt: void 0,
26993
26848
  runtimeInfo,
26994
26849
  sandboxInfo,
26995
26850
  memoryCitationsMode: params.cfg?.memory?.citations
@@ -31193,7 +31048,7 @@ function resolveExecOverrides(params) {
31193
31048
  };
31194
31049
  }
31195
31050
  async function resolveReplyDirectives(params) {
31196
- 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;
31051
+ 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;
31197
31052
  let provider = initialProvider;
31198
31053
  let model = initialModel;
31199
31054
  const commandSource = sessionCtx.BodyForCommands ?? sessionCtx.CommandBody ?? sessionCtx.RawBody ?? sessionCtx.Transcript ?? sessionCtx.BodyStripped ?? sessionCtx.Body ?? ctx.BodyForCommands ?? ctx.CommandBody ?? ctx.RawBody ?? "";
@@ -31334,8 +31189,7 @@ async function resolveReplyDirectives(params) {
31334
31189
  defaultModel,
31335
31190
  provider,
31336
31191
  model,
31337
- hasModelDirective: directives.hasModelDirective,
31338
- hasResolvedHeartbeatModelOverride
31192
+ hasModelDirective: directives.hasModelDirective
31339
31193
  });
31340
31194
  provider = modelState.provider;
31341
31195
  model = modelState.model;
@@ -41435,7 +41289,7 @@ async function deliverSessionMaintenanceWarning(params) {
41435
41289
  return;
41436
41290
  }
41437
41291
  try {
41438
- const { deliverOutboundPayloads } = await import("./deliver-B_jXI55b.js").then((n) => n.n);
41292
+ const { deliverOutboundPayloads } = await import("./deliver-BY0HHHHB.js").then((n) => n.n);
41439
41293
  await deliverOutboundPayloads({
41440
41294
  cfg: params.cfg,
41441
41295
  channel,
@@ -42109,20 +41963,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
42109
41963
  });
42110
41964
  let provider = defaultProvider;
42111
41965
  let model = defaultModel;
42112
- let hasResolvedHeartbeatModelOverride = false;
42113
- if (opts?.isHeartbeat) {
42114
- const heartbeatRaw = opts.heartbeatModelOverride?.trim() ?? agentCfg?.heartbeat?.model?.trim() ?? "";
42115
- const heartbeatRef = heartbeatRaw ? resolveModelRefFromString({
42116
- raw: heartbeatRaw,
42117
- defaultProvider,
42118
- aliasIndex
42119
- }) : null;
42120
- if (heartbeatRef) {
42121
- provider = heartbeatRef.ref.provider;
42122
- model = heartbeatRef.ref.model;
42123
- hasResolvedHeartbeatModelOverride = true;
42124
- }
42125
- }
42126
41966
  const workspaceDir = (await ensureAgentWorkspace({
42127
41967
  dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
42128
41968
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
@@ -42201,8 +42041,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
42201
42041
  groupSubject: sessionEntry.subject ?? sessionCtx.GroupSubject ?? finalized.GroupSubject,
42202
42042
  parentSessionKey: sessionCtx.ParentSessionKey
42203
42043
  });
42204
- const hasSessionModelOverride = Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim());
42205
- if (!hasResolvedHeartbeatModelOverride && !hasSessionModelOverride && channelModelOverride) {
42044
+ if (!Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim()) && channelModelOverride) {
42206
42045
  const resolved = resolveModelRefFromString({
42207
42046
  raw: channelModelOverride.model,
42208
42047
  defaultProvider,
@@ -42235,7 +42074,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
42235
42074
  aliasIndex,
42236
42075
  provider,
42237
42076
  model,
42238
- hasResolvedHeartbeatModelOverride,
42239
42077
  typing,
42240
42078
  opts: resolvedOpts,
42241
42079
  skillFilter: mergedSkillFilter
@@ -42959,54 +42797,6 @@ function withFastAbort(opts) {
42959
42797
  };
42960
42798
  }
42961
42799
 
42962
- //#endregion
42963
- //#region src/auto-reply/reply/middleware-heartbeat-strip.ts
42964
- /**
42965
- * Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
42966
- * replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
42967
- * decide whether to strip; reads `payload.isError` to give the sanitizer
42968
- * the right context flag.
42969
- *
42970
- * Equivalence claim (proven by tests): for every input shape the chain's
42971
- * `normalizeStreamingText({text})` would have produced `{ skip, text }`,
42972
- * this middleware produces the corresponding `PayloadDelivery`:
42973
- *
42974
- * skip=true → delivered=false (drop)
42975
- * skip=false, text=undefined → delivered=true with payload.text undefined
42976
- * (media-only carry-through case)
42977
- * skip=false, text=string → delivered=true with payload.text=sanitized
42978
- */
42979
- function withHeartbeatStrip(opts) {
42980
- let didLogStrip = false;
42981
- return (next) => async (payload, ctx) => {
42982
- let text = payload.text;
42983
- const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
42984
- if (!ctx.isHeartbeat && typeof text === "string" && text.includes("SYMIPULSE_OK")) {
42985
- const stripped = stripHeartbeatToken(text, { mode: "message" });
42986
- if (stripped.didStrip && !didLogStrip) {
42987
- didLogStrip = true;
42988
- opts?.onStrip?.();
42989
- }
42990
- if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
42991
- text = stripped.text;
42992
- }
42993
- if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
42994
- if (!text) {
42995
- if (hasMedia) return next({
42996
- ...payload,
42997
- text: void 0
42998
- }, ctx);
42999
- return PayloadDelivery.drop(payload, "drop:empty");
43000
- }
43001
- const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
43002
- if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
43003
- return next({
43004
- ...payload,
43005
- text: sanitized
43006
- }, ctx);
43007
- };
43008
- }
43009
-
43010
42800
  //#endregion
43011
42801
  //#region src/infra/map-size.ts
43012
42802
  function pruneMapToMaxSize(map, maxSize) {
@@ -43282,25 +43072,22 @@ function withToolResultSerialization(opts) {
43282
43072
  * session transcript after the inner runner completes.
43283
43073
  *
43284
43074
  * Skip conditions:
43285
- * - outbound.action === "drop" (NO_REPLY / heartbeat ack — no message)
43075
+ * - outbound.action === "drop" (NO_REPLY — no message)
43286
43076
  * - empty / whitespace-only text
43287
- * - outbound.action === "deliver-stripped" AND includeStripped=false
43288
43077
  *
43289
43078
  * The middleware does NOT mutate the turn result — the append is a
43290
43079
  * post-turn side effect. The result is returned unchanged regardless of
43291
43080
  * append success/failure.
43292
43081
  */
43293
43082
  function withTranscriptUpdate(opts) {
43294
- const includeStripped = opts.includeStripped !== false;
43295
43083
  return (next) => async (params) => {
43296
43084
  const result = await next(params);
43297
- if (shouldAppend(result, includeStripped)) await runAppend(opts, params, result);
43085
+ if (shouldAppend(result)) await runAppend(opts, params, result);
43298
43086
  return result;
43299
43087
  };
43300
43088
  }
43301
- function shouldAppend(result, includeStripped) {
43089
+ function shouldAppend(result) {
43302
43090
  if (result.outbound.action === "drop") return false;
43303
- if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
43304
43091
  return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
43305
43092
  }
43306
43093
  async function runAppend(opts, params, result) {
@@ -43384,7 +43171,6 @@ function buildChannelProfile(opts) {
43384
43171
  ],
43385
43172
  payloadMiddlewares: [
43386
43173
  withPayloadDropOnEmpty(),
43387
- withHeartbeatStrip(),
43388
43174
  ...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
43389
43175
  withToolResultSerialization(),
43390
43176
  withChannelRouting({
@@ -43529,7 +43315,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
43529
43315
  return normalizeReplyPayload(payload, {
43530
43316
  responsePrefix: opts.responsePrefix,
43531
43317
  responsePrefixContext: prefixContext,
43532
- onHeartbeatStrip: opts.onHeartbeatStrip,
43533
43318
  onSkip: opts.onSkip
43534
43319
  });
43535
43320
  }
@@ -43552,7 +43337,6 @@ function createReplyDispatcher(options) {
43552
43337
  responsePrefix: options.responsePrefix,
43553
43338
  responsePrefixContext: options.responsePrefixContext,
43554
43339
  responsePrefixContextProvider: options.responsePrefixContextProvider,
43555
- onHeartbeatStrip: options.onHeartbeatStrip,
43556
43340
  onSkip: (reason) => options.onSkip?.(payload, {
43557
43341
  kind,
43558
43342
  reason
@@ -48079,7 +47863,7 @@ function readSlackExternalArgMenuToken(raw) {
48079
47863
  }
48080
47864
  let commandsRegistry;
48081
47865
  async function getCommandsRegistry() {
48082
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CRkL6mTz.js").then((n) => n.t);
47866
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DaPrWQSe.js").then((n) => n.t);
48083
47867
  return commandsRegistry;
48084
47868
  }
48085
47869
  function encodeSlackCommandArgValue(parts) {
@@ -48421,11 +48205,11 @@ async function registerSlackMonitorSlashCommands(params) {
48421
48205
  const channelName = channelInfo?.name;
48422
48206
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
48423
48207
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
48424
- import("./resolve-route-BLDKso2x.js").then((n) => n.r),
48425
- import("./inbound-context-B4B7i7oM.js").then((n) => n.n),
48208
+ import("./resolve-route-CIS2tjpz.js").then((n) => n.r),
48209
+ import("./inbound-context-CJj1VfzK.js").then((n) => n.n),
48426
48210
  Promise.resolve().then(() => provider_dispatcher_exports)
48427
48211
  ]);
48428
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-B4d5pKXr.js").then((n) => n.t), import("./reply-prefix-ChIeKp-P.js").then((n) => n.n)]);
48212
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-tLwAlqLf.js").then((n) => n.t), import("./reply-prefix-ChIeKp-P.js").then((n) => n.n)]);
48429
48213
  const route = resolveAgentRoute({
48430
48214
  cfg,
48431
48215
  channel: "slack",
@@ -48482,9 +48266,9 @@ async function registerSlackMonitorSlashCommands(params) {
48482
48266
  });
48483
48267
  const deliverSlashPayloads = async (replies) => {
48484
48268
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
48485
- import("./replies-CvuXRwhI.js").then((n) => n.r),
48486
- import("./chunk-Ds8SZRkS.js").then((n) => n.s),
48487
- import("./markdown-tables-D0bwB4O7.js").then((n) => n.t)
48269
+ import("./replies-C82xaXm3.js").then((n) => n.r),
48270
+ import("./chunk-5H33X8qU.js").then((n) => n.s),
48271
+ import("./markdown-tables-ptfgMe6b.js").then((n) => n.t)
48488
48272
  ]);
48489
48273
  await deliverSlackSlashReplies({
48490
48274
  replies,
@@ -48537,7 +48321,7 @@ async function registerSlackMonitorSlashCommands(params) {
48537
48321
  let nativeCommands = [];
48538
48322
  if (nativeEnabled) {
48539
48323
  reg = await getCommandsRegistry();
48540
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CfGPouRa.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
48324
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Cwrebyvj.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
48541
48325
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
48542
48326
  skillCommands,
48543
48327
  provider: "slack"
@@ -53064,7 +52848,7 @@ async function compactEmbeddedPiSessionDirect(params) {
53064
52848
  if (!apiKeyInfo.apiKey) {
53065
52849
  if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
53066
52850
  } else if (model.provider === "github-copilot") {
53067
- const { resolveCopilotApiToken } = await import("./github-copilot-token-BUd9oA8x.js").then((n) => n.n);
52851
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-B31ugq7R.js").then((n) => n.n);
53068
52852
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
53069
52853
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
53070
52854
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -53195,7 +52979,6 @@ async function compactEmbeddedPiSessionDirect(params) {
53195
52979
  ownerDisplay: params.config?.commands?.ownerDisplay,
53196
52980
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
53197
52981
  reasoningTagHint,
53198
- heartbeatPrompt: void 0,
53199
52982
  skillsPrompt,
53200
52983
  docsPath: docsPath ?? void 0,
53201
52984
  promptMode,
@@ -57669,7 +57452,6 @@ async function runEmbeddedAttempt(params) {
57669
57452
  ownerDisplay: params.config?.commands?.ownerDisplay,
57670
57453
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
57671
57454
  reasoningTagHint,
57672
- heartbeatPrompt: void 0,
57673
57455
  skillsPrompt,
57674
57456
  docsPath: docsPath ?? void 0,
57675
57457
  workspaceNotes,
@@ -58748,7 +58530,7 @@ async function runEmbeddedPiAgent(params) {
58748
58530
  return;
58749
58531
  }
58750
58532
  if (model.provider === "github-copilot") {
58751
- const { resolveCopilotApiToken } = await import("./github-copilot-token-BUd9oA8x.js").then((n) => n.n);
58533
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-B31ugq7R.js").then((n) => n.n);
58752
58534
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
58753
58535
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
58754
58536
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -59497,8 +59279,8 @@ async function runAgentTurnImpl(params) {
59497
59279
  const result = await runEmbeddedPiAgent(buildInternalParams());
59498
59280
  const rawText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
59499
59281
  const outboundResult = classifyOutboundMessage(rawText, {
59500
- isHeartbeat: getAgentRunContext(runId)?.isHeartbeat === true,
59501
- heartbeatAckMaxChars: Math.max(0, params.config.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS)
59282
+ isHeartbeat: false,
59283
+ heartbeatAckMaxChars: 0
59502
59284
  });
59503
59285
  const filteredText = outboundResult.output.trim();
59504
59286
  const resolvedProvider = result.meta.agentMeta?.provider ?? params.provider ?? "";
@@ -59555,4 +59337,4 @@ async function runAgentTurn(params) {
59555
59337
  }
59556
59338
 
59557
59339
  //#endregion
59558
- export { runWithModelFallback as A, redactRunIdentifier as C, clearAgentRunContext as D, hasNonzeroUsage as E, resolveFailoverStatus as M, emitAgentEvent as O, resolveBootstrapContextForRun as S, deriveSessionTotalTokens as T, AGENT_LANE_NESTED as _, resolveSessionDeliveryTarget as a, resolveSymiDocsPath as b, detectRuntimeShell as c, applyModelOverrideToSessionEntry as d, applyVerboseOverride as f, resolveAgentTimeoutMs as g, subagent_registry_exports as h, resolveOutboundTarget as i, FailoverError as j, registerAgentRunContext as k, resolveSendPolicy as l, clearSessionAuthProfileOverride as m, buildModelAliasLines as n, buildSystemPromptParams as o, loadModelCatalog as p, provider_dispatcher_exports as r, getProcessSupervisor as s, runAgentTurn as t, lookupContextTokens as u, AGENT_LANE_SUBAGENT as v, resolveRunWorkspaceDir as w, makeBootstrapWarn as x, buildAgentSystemPrompt as y };
59340
+ export { runWithModelFallback as A, resolveSymiDocsPath as C, resolveRunWorkspaceDir as D, redactRunIdentifier as E, resolveFailoverStatus as M, deriveSessionTotalTokens as O, buildAgentSystemPrompt as S, resolveBootstrapContextForRun as T, AGENT_LANE_NESTED as _, resolveSessionDeliveryTarget as a, emitAgentEvent as b, detectRuntimeShell as c, applyModelOverrideToSessionEntry as d, applyVerboseOverride as f, resolveAgentTimeoutMs as g, subagent_registry_exports as h, resolveOutboundTarget as i, FailoverError as j, hasNonzeroUsage as k, resolveSendPolicy as l, clearSessionAuthProfileOverride as m, buildModelAliasLines as n, buildSystemPromptParams as o, loadModelCatalog as p, provider_dispatcher_exports as r, getProcessSupervisor as s, runAgentTurn as t, lookupContextTokens as u, AGENT_LANE_SUBAGENT as v, makeBootstrapWarn as w, registerAgentRunContext as x, clearAgentRunContext as y };