@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
@@ -9,8 +9,8 @@ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as reso
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BbsJ0Qbo.js";
10
10
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
11
11
  import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-Cp39v6b_.js";
12
- import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-pnMj7AtP.js";
13
- import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-B_Gz2_tA.js";
12
+ import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-BeK3uuQ8.js";
13
+ import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-i5knkyHl.js";
14
14
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BvZmqxYI.js";
15
15
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CWtaDOiK.js";
16
16
  import { S as GATEWAY_CLIENT_NAMES, _ as listDeliverableMessageChannels, a as chunkText, b as GATEWAY_CLIENT_IDS, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isMarkdownCapableMessageChannel, h 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 normalizeMessageChannel, x as GATEWAY_CLIENT_MODES, y as resolveGatewayMessageChannel } from "./chunk-BjnT3w_x.js";
@@ -20,12 +20,12 @@ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecure
20
20
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-xmXjOnAV.js";
21
21
  import { n as redactToolDetail } from "./redact-ojHFHOAb.js";
22
22
  import { n as formatErrorMessage } from "./errors-C6sHIFo_.js";
23
- import { C as mediaKindFromMime, _ as imageMimeFromFormat, b as normalizeMimeType$1, g as getFileExtension, h as extensionForMime, i as isSilentReplyText, m as detectMime, n as SILENT_REPLY_TOKEN, o as getDefaultMediaLocalRoots, p as resizeToJpeg, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN, u as getImageMetadata, v as isAudioFileName, x as MAX_IMAGE_BYTES, y as kindFromMime } from "./tokens-CGqnWNmv.js";
23
+ import { _ as kindFromMime, c as getImageMetadata, d as resizeToJpeg, f as detectMime, g as isAudioFileName, h as imageMimeFromFormat, i as getDefaultMediaLocalRoots, m as getFileExtension, n as isSilentReplyText, p as extensionForMime, t as SILENT_REPLY_TOKEN, v as normalizeMimeType$1, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./tokens-CJgPtOxz.js";
24
24
  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-BKsvyjWX.js";
25
25
  import { n as resolveConversationLabel } from "./conversation-label-CPUfoQmh.js";
26
26
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-N698mtPE.js";
27
27
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-fUhPZcB5.js";
28
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-Do0-i7vp.js";
28
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-ue49bRVP.js";
29
29
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DWs9CjHs.js";
30
30
  import { n as resolveMarkdownTableMode } from "./markdown-tables-BtWlyyt1.js";
31
31
  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-BO62ZyK2.js";
@@ -1028,7 +1028,7 @@ async function getMemorySearchManager(params) {
1028
1028
  const wrapper = new FallbackMemoryManager({
1029
1029
  primary,
1030
1030
  fallbackFactory: async () => {
1031
- const { MemoryIndexManager } = await import("./manager-Do0-i7vp.js").then((n) => n.t);
1031
+ const { MemoryIndexManager } = await import("./manager-ue49bRVP.js").then((n) => n.t);
1032
1032
  return await MemoryIndexManager.get(params);
1033
1033
  }
1034
1034
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -1041,7 +1041,7 @@ async function getMemorySearchManager(params) {
1041
1041
  }
1042
1042
  }
1043
1043
  try {
1044
- const { MemoryIndexManager } = await import("./manager-Do0-i7vp.js").then((n) => n.t);
1044
+ const { MemoryIndexManager } = await import("./manager-ue49bRVP.js").then((n) => n.t);
1045
1045
  return { manager: await MemoryIndexManager.get(params) };
1046
1046
  } catch (err) {
1047
1047
  return {
@@ -4162,9 +4162,6 @@ function randomIdempotencyKey() {
4162
4162
  const seqByRun = /* @__PURE__ */ new Map();
4163
4163
  const listeners = /* @__PURE__ */ new Set();
4164
4164
  const runContextById = /* @__PURE__ */ new Map();
4165
- function getAgentRunContext(runId) {
4166
- return runContextById.get(runId);
4167
- }
4168
4165
  function emitAgentEvent(event) {
4169
4166
  const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
4170
4167
  seqByRun.set(event.runId, nextSeq);
@@ -4640,97 +4637,6 @@ function clearSessionQueues(keys) {
4640
4637
  };
4641
4638
  }
4642
4639
 
4643
- //#endregion
4644
- //#region src/auto-reply/heartbeat.ts
4645
- const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
4646
- function stripTokenAtEdges(raw) {
4647
- let text = raw.trim();
4648
- if (!text) return {
4649
- text: "",
4650
- didStrip: false
4651
- };
4652
- const token = SYMIPULSE_TOKEN;
4653
- const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
4654
- if (!text.includes(token)) return {
4655
- text,
4656
- didStrip: false
4657
- };
4658
- let didStrip = false;
4659
- let changed = true;
4660
- while (changed) {
4661
- changed = false;
4662
- const next = text.trim();
4663
- if (next.startsWith(token)) {
4664
- text = next.slice(token.length).trimStart();
4665
- didStrip = true;
4666
- changed = true;
4667
- continue;
4668
- }
4669
- if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
4670
- const idx = next.lastIndexOf(token);
4671
- const before = next.slice(0, idx).trimEnd();
4672
- if (!before) text = "";
4673
- else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
4674
- didStrip = true;
4675
- changed = true;
4676
- }
4677
- }
4678
- return {
4679
- text: text.replace(/\s+/g, " ").trim(),
4680
- didStrip
4681
- };
4682
- }
4683
- function stripHeartbeatToken(raw, opts = {}) {
4684
- if (!raw) return {
4685
- shouldSkip: true,
4686
- text: "",
4687
- didStrip: false
4688
- };
4689
- const trimmed = raw.trim();
4690
- if (!trimmed) return {
4691
- shouldSkip: true,
4692
- text: "",
4693
- didStrip: false
4694
- };
4695
- const mode = opts.mode ?? "message";
4696
- const maxAckCharsRaw = opts.maxAckChars;
4697
- const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
4698
- const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
4699
- const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
4700
- const trimmedNormalized = stripMarkup(trimmed);
4701
- if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
4702
- shouldSkip: false,
4703
- text: trimmed,
4704
- didStrip: false
4705
- };
4706
- const strippedOriginal = stripTokenAtEdges(trimmed);
4707
- const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
4708
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
4709
- if (!picked.didStrip) return {
4710
- shouldSkip: false,
4711
- text: trimmed,
4712
- didStrip: false
4713
- };
4714
- if (!picked.text) return {
4715
- shouldSkip: true,
4716
- text: "",
4717
- didStrip: true
4718
- };
4719
- const rest = picked.text.trim();
4720
- if (mode === "heartbeat") {
4721
- if (rest.length <= maxAckChars) return {
4722
- shouldSkip: true,
4723
- text: "",
4724
- didStrip: true
4725
- };
4726
- }
4727
- return {
4728
- shouldSkip: false,
4729
- text: rest,
4730
- didStrip: true
4731
- };
4732
- }
4733
-
4734
4640
  //#endregion
4735
4641
  //#region src/auto-reply/reply/normalize-reply.ts
4736
4642
  function normalizeReplyPayload(payload, opts = {}) {
@@ -4751,15 +4657,6 @@ function normalizeReplyPayload(payload, opts = {}) {
4751
4657
  text = "";
4752
4658
  }
4753
4659
  if (text && !trimmed) text = "";
4754
- if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
4755
- const stripped = stripHeartbeatToken(text, { mode: "message" });
4756
- if (stripped.didStrip) opts.onHeartbeatStrip?.();
4757
- if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
4758
- opts.onSkip?.("heartbeat");
4759
- return null;
4760
- }
4761
- text = stripped.text;
4762
- }
4763
4660
  if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
4764
4661
  if (!text?.trim() && !hasMedia && !hasChannelData) {
4765
4662
  opts.onSkip?.("empty");
@@ -4770,7 +4667,7 @@ function normalizeReplyPayload(payload, opts = {}) {
4770
4667
  text
4771
4668
  };
4772
4669
  const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
4773
- if (effectivePrefix && text && text.trim() !== HEARTBEAT_TOKEN && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
4670
+ if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
4774
4671
  return {
4775
4672
  ...enrichedPayload,
4776
4673
  text
@@ -4827,7 +4724,7 @@ async function routeReply(params) {
4827
4724
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
4828
4725
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
4829
4726
  try {
4830
- const { deliverOutboundPayloads } = await import("./deliver-B_Gz2_tA.js").then((n) => n.n);
4727
+ const { deliverOutboundPayloads } = await import("./deliver-i5knkyHl.js").then((n) => n.n);
4831
4728
  return {
4832
4729
  ok: true,
4833
4730
  messageId: (await deliverOutboundPayloads({
@@ -10503,8 +10400,7 @@ async function incrementCompactionCount(params) {
10503
10400
  //#endregion
10504
10401
  //#region src/auto-reply/reply/typing-mode.ts
10505
10402
  const DEFAULT_GROUP_TYPING_MODE = "message";
10506
- function resolveTypingMode({ configured, isGroupChat, wasMentioned, isHeartbeat }) {
10507
- if (isHeartbeat) return "never";
10403
+ function resolveTypingMode({ configured, isGroupChat, wasMentioned }) {
10508
10404
  if (configured) return configured;
10509
10405
  if (!isGroupChat || wasMentioned) return "instant";
10510
10406
  return DEFAULT_GROUP_TYPING_MODE;
@@ -10538,12 +10434,11 @@ async function prepareAgentRun(params) {
10538
10434
  const isFirstTurnInSession = isNewSession || !currentSystemSent;
10539
10435
  const isGroupChat = sessionCtx.ChatType === "group";
10540
10436
  const wasMentioned = ctx.WasMentioned === true;
10541
- const isHeartbeat = opts?.isHeartbeat === true;
10542
10437
  const typingMode = resolveTypingMode({
10543
10438
  configured: sessionCfg?.typingMode ?? agentCfg?.typingMode,
10544
10439
  isGroupChat,
10545
10440
  wasMentioned,
10546
- isHeartbeat
10441
+ isHeartbeat: false
10547
10442
  });
10548
10443
  const shouldInjectGroupIntro = Boolean(isGroupChat && (isFirstTurnInSession || sessionEntry?.groupActivationNeedsSystemIntro));
10549
10444
  const groupChatContext = isGroupChat ? buildGroupChatContext({ sessionCtx }) : "";
@@ -14577,8 +14472,7 @@ async function createModelSelectionState(params) {
14577
14472
  sessionKey,
14578
14473
  parentSessionKey
14579
14474
  });
14580
- const skipStoredOverride = params.hasResolvedHeartbeatModelOverride === true;
14581
- if (storedOverride?.model && !skipStoredOverride) {
14475
+ if (storedOverride?.model) {
14582
14476
  const candidateProvider = storedOverride.provider || defaultProvider;
14583
14477
  const key = modelKey(candidateProvider, storedOverride.model);
14584
14478
  if (allowedModelKeys.size === 0 || allowedModelKeys.has(key)) {
@@ -23510,8 +23404,6 @@ function buildAgentSystemPrompt(params) {
23510
23404
  const reasoningLevel = params.reasoningLevel ?? "off";
23511
23405
  const userTimezone = params.userTimezone?.trim();
23512
23406
  const skillsPrompt = params.skillsPrompt?.trim();
23513
- const heartbeatPrompt = params.heartbeatPrompt?.trim();
23514
- const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
23515
23407
  const runtimeInfo = params.runtimeInfo;
23516
23408
  const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
23517
23409
  const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
@@ -23724,7 +23616,6 @@ function buildAgentSystemPrompt(params) {
23724
23616
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
23725
23617
  }
23726
23618
  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}`, "");
23727
- 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.", "");
23728
23619
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
23729
23620
  return lines.filter(Boolean).join("\n");
23730
23621
  }
@@ -23854,7 +23745,6 @@ async function resolveCommandsSystemPromptBundle(params) {
23854
23745
  userTimeFormat,
23855
23746
  contextFiles: injectedFiles,
23856
23747
  skillsPrompt,
23857
- heartbeatPrompt: void 0,
23858
23748
  runtimeInfo,
23859
23749
  sandboxInfo,
23860
23750
  memoryCitationsMode: params.cfg?.memory?.citations
@@ -28058,7 +27948,7 @@ function resolveExecOverrides(params) {
28058
27948
  };
28059
27949
  }
28060
27950
  async function resolveReplyDirectives(params) {
28061
- 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;
27951
+ 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;
28062
27952
  let provider = initialProvider;
28063
27953
  let model = initialModel;
28064
27954
  const commandSource = sessionCtx.BodyForCommands ?? sessionCtx.CommandBody ?? sessionCtx.RawBody ?? sessionCtx.Transcript ?? sessionCtx.BodyStripped ?? sessionCtx.Body ?? ctx.BodyForCommands ?? ctx.CommandBody ?? ctx.RawBody ?? "";
@@ -28199,8 +28089,7 @@ async function resolveReplyDirectives(params) {
28199
28089
  defaultModel,
28200
28090
  provider,
28201
28091
  model,
28202
- hasModelDirective: directives.hasModelDirective,
28203
- hasResolvedHeartbeatModelOverride
28092
+ hasModelDirective: directives.hasModelDirective
28204
28093
  });
28205
28094
  provider = modelState.provider;
28206
28095
  model = modelState.model;
@@ -38907,7 +38796,7 @@ async function deliverSessionMaintenanceWarning(params) {
38907
38796
  return;
38908
38797
  }
38909
38798
  try {
38910
- const { deliverOutboundPayloads } = await import("./deliver-B_Gz2_tA.js").then((n) => n.n);
38799
+ const { deliverOutboundPayloads } = await import("./deliver-i5knkyHl.js").then((n) => n.n);
38911
38800
  await deliverOutboundPayloads({
38912
38801
  cfg: params.cfg,
38913
38802
  channel,
@@ -39581,20 +39470,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
39581
39470
  });
39582
39471
  let provider = defaultProvider;
39583
39472
  let model = defaultModel;
39584
- let hasResolvedHeartbeatModelOverride = false;
39585
- if (opts?.isHeartbeat) {
39586
- const heartbeatRaw = opts.heartbeatModelOverride?.trim() ?? agentCfg?.heartbeat?.model?.trim() ?? "";
39587
- const heartbeatRef = heartbeatRaw ? resolveModelRefFromString({
39588
- raw: heartbeatRaw,
39589
- defaultProvider,
39590
- aliasIndex
39591
- }) : null;
39592
- if (heartbeatRef) {
39593
- provider = heartbeatRef.ref.provider;
39594
- model = heartbeatRef.ref.model;
39595
- hasResolvedHeartbeatModelOverride = true;
39596
- }
39597
- }
39598
39473
  const workspaceDir = (await ensureAgentWorkspace({
39599
39474
  dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
39600
39475
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
@@ -39673,8 +39548,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
39673
39548
  groupSubject: sessionEntry.subject ?? sessionCtx.GroupSubject ?? finalized.GroupSubject,
39674
39549
  parentSessionKey: sessionCtx.ParentSessionKey
39675
39550
  });
39676
- const hasSessionModelOverride = Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim());
39677
- if (!hasResolvedHeartbeatModelOverride && !hasSessionModelOverride && channelModelOverride) {
39551
+ if (!Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim()) && channelModelOverride) {
39678
39552
  const resolved = resolveModelRefFromString({
39679
39553
  raw: channelModelOverride.model,
39680
39554
  defaultProvider,
@@ -39707,7 +39581,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
39707
39581
  aliasIndex,
39708
39582
  provider,
39709
39583
  model,
39710
- hasResolvedHeartbeatModelOverride,
39711
39584
  typing,
39712
39585
  opts: resolvedOpts,
39713
39586
  skillFilter: mergedSkillFilter
@@ -40385,56 +40258,24 @@ function resolveModelProfile(modelId, userProfiles) {
40385
40258
  //#endregion
40386
40259
  //#region src/gateway/outbound-filter.ts
40387
40260
  const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
40388
- const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
40389
40261
  /** Strict-match check for the bare NO_REPLY token. */
40390
40262
  function isBareSilentReply(text) {
40391
40263
  if (!text) return false;
40392
40264
  return SILENT_REPLY_BARE_RE.test(text);
40393
40265
  }
40394
- /** Strict-match check for the bare SYMIPULSE_OK token. */
40395
- function isBareSymipulseAck(text) {
40396
- if (!text) return false;
40397
- return SYMIPULSE_BARE_RE.test(text);
40398
- }
40399
40266
  /**
40400
40267
  * Classify an outbound assistant message at the gateway boundary.
40401
40268
  *
40402
40269
  * Returns a structured verdict the caller uses to decide whether to
40403
40270
  * broadcast / persist a payload. Pure function — no side effects.
40404
40271
  */
40405
- function classifyOutboundMessage(rawText, opts) {
40272
+ function classifyOutboundMessage(rawText, _opts) {
40406
40273
  const text = typeof rawText === "string" ? rawText : "";
40407
40274
  if (isBareSilentReply(text)) return {
40408
40275
  action: "drop",
40409
40276
  output: "",
40410
40277
  reason: "silent-reply-bare"
40411
40278
  };
40412
- if (opts.isHeartbeat) {
40413
- const stripped = stripHeartbeatToken(text, {
40414
- mode: "heartbeat",
40415
- maxAckChars: opts.heartbeatAckMaxChars
40416
- });
40417
- if (stripped.shouldSkip) return {
40418
- action: "drop",
40419
- output: "",
40420
- reason: stripped.didStrip ? "symipulse-heartbeat-ack" : "silent-reply-bare"
40421
- };
40422
- if (stripped.didStrip) return {
40423
- action: "deliver-stripped",
40424
- output: stripped.text,
40425
- reason: "symipulse-heartbeat-stripped"
40426
- };
40427
- return {
40428
- action: "deliver",
40429
- output: text,
40430
- reason: "deliver"
40431
- };
40432
- }
40433
- if (isBareSymipulseAck(text)) return {
40434
- action: "drop",
40435
- output: "",
40436
- reason: "symipulse-non-heartbeat-bare"
40437
- };
40438
40279
  return {
40439
40280
  action: "deliver",
40440
40281
  output: text,
@@ -47595,10 +47436,8 @@ function buildEmbeddedSystemPrompt(params) {
47595
47436
  ownerDisplay: params.ownerDisplay,
47596
47437
  ownerDisplaySecret: params.ownerDisplaySecret,
47597
47438
  reasoningTagHint: params.reasoningTagHint,
47598
- heartbeatPrompt: params.heartbeatPrompt,
47599
47439
  skillsPrompt: params.skillsPrompt,
47600
47440
  docsPath: params.docsPath,
47601
- ttsHint: params.ttsHint,
47602
47441
  workspaceNotes: params.workspaceNotes,
47603
47442
  reactionGuidance: params.reactionGuidance,
47604
47443
  promptMode: params.promptMode,
@@ -48368,7 +48207,6 @@ async function runEmbeddedAttempt(params) {
48368
48207
  ownerDisplay: params.config?.commands?.ownerDisplay,
48369
48208
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
48370
48209
  reasoningTagHint,
48371
- heartbeatPrompt: void 0,
48372
48210
  skillsPrompt,
48373
48211
  docsPath: docsPath ?? void 0,
48374
48212
  workspaceNotes,
@@ -50196,8 +50034,8 @@ async function runAgentTurnImpl(params) {
50196
50034
  const result = await runEmbeddedPiAgent(buildInternalParams());
50197
50035
  const rawText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
50198
50036
  const outboundResult = classifyOutboundMessage(rawText, {
50199
- isHeartbeat: getAgentRunContext(runId)?.isHeartbeat === true,
50200
- heartbeatAckMaxChars: Math.max(0, params.config.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS)
50037
+ isHeartbeat: false,
50038
+ heartbeatAckMaxChars: 0
50201
50039
  });
50202
50040
  const filteredText = outboundResult.output.trim();
50203
50041
  const resolvedProvider = result.meta.agentMeta?.provider ?? params.provider ?? "";
@@ -50763,54 +50601,6 @@ function withFastAbort(opts) {
50763
50601
  };
50764
50602
  }
50765
50603
 
50766
- //#endregion
50767
- //#region src/auto-reply/reply/middleware-heartbeat-strip.ts
50768
- /**
50769
- * Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
50770
- * replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
50771
- * decide whether to strip; reads `payload.isError` to give the sanitizer
50772
- * the right context flag.
50773
- *
50774
- * Equivalence claim (proven by tests): for every input shape the chain's
50775
- * `normalizeStreamingText({text})` would have produced `{ skip, text }`,
50776
- * this middleware produces the corresponding `PayloadDelivery`:
50777
- *
50778
- * skip=true → delivered=false (drop)
50779
- * skip=false, text=undefined → delivered=true with payload.text undefined
50780
- * (media-only carry-through case)
50781
- * skip=false, text=string → delivered=true with payload.text=sanitized
50782
- */
50783
- function withHeartbeatStrip(opts) {
50784
- let didLogStrip = false;
50785
- return (next) => async (payload, ctx) => {
50786
- let text = payload.text;
50787
- const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
50788
- if (!ctx.isHeartbeat && typeof text === "string" && text.includes("SYMIPULSE_OK")) {
50789
- const stripped = stripHeartbeatToken(text, { mode: "message" });
50790
- if (stripped.didStrip && !didLogStrip) {
50791
- didLogStrip = true;
50792
- opts?.onStrip?.();
50793
- }
50794
- if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
50795
- text = stripped.text;
50796
- }
50797
- if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
50798
- if (!text) {
50799
- if (hasMedia) return next({
50800
- ...payload,
50801
- text: void 0
50802
- }, ctx);
50803
- return PayloadDelivery.drop(payload, "drop:empty");
50804
- }
50805
- const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
50806
- if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
50807
- return next({
50808
- ...payload,
50809
- text: sanitized
50810
- }, ctx);
50811
- };
50812
- }
50813
-
50814
50604
  //#endregion
50815
50605
  //#region src/infra/map-size.ts
50816
50606
  function pruneMapToMaxSize(map, maxSize) {
@@ -51086,25 +50876,22 @@ function withToolResultSerialization(opts) {
51086
50876
  * session transcript after the inner runner completes.
51087
50877
  *
51088
50878
  * Skip conditions:
51089
- * - outbound.action === "drop" (NO_REPLY / heartbeat ack — no message)
50879
+ * - outbound.action === "drop" (NO_REPLY — no message)
51090
50880
  * - empty / whitespace-only text
51091
- * - outbound.action === "deliver-stripped" AND includeStripped=false
51092
50881
  *
51093
50882
  * The middleware does NOT mutate the turn result — the append is a
51094
50883
  * post-turn side effect. The result is returned unchanged regardless of
51095
50884
  * append success/failure.
51096
50885
  */
51097
50886
  function withTranscriptUpdate(opts) {
51098
- const includeStripped = opts.includeStripped !== false;
51099
50887
  return (next) => async (params) => {
51100
50888
  const result = await next(params);
51101
- if (shouldAppend(result, includeStripped)) await runAppend(opts, params, result);
50889
+ if (shouldAppend(result)) await runAppend(opts, params, result);
51102
50890
  return result;
51103
50891
  };
51104
50892
  }
51105
- function shouldAppend(result, includeStripped) {
50893
+ function shouldAppend(result) {
51106
50894
  if (result.outbound.action === "drop") return false;
51107
- if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
51108
50895
  return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
51109
50896
  }
51110
50897
  async function runAppend(opts, params, result) {
@@ -51188,7 +50975,6 @@ function buildChannelProfile(opts) {
51188
50975
  ],
51189
50976
  payloadMiddlewares: [
51190
50977
  withPayloadDropOnEmpty(),
51191
- withHeartbeatStrip(),
51192
50978
  ...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
51193
50979
  withToolResultSerialization(),
51194
50980
  withChannelRouting({
@@ -51333,7 +51119,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
51333
51119
  return normalizeReplyPayload(payload, {
51334
51120
  responsePrefix: opts.responsePrefix,
51335
51121
  responsePrefixContext: prefixContext,
51336
- onHeartbeatStrip: opts.onHeartbeatStrip,
51337
51122
  onSkip: opts.onSkip
51338
51123
  });
51339
51124
  }
@@ -51356,7 +51141,6 @@ function createReplyDispatcher(options) {
51356
51141
  responsePrefix: options.responsePrefix,
51357
51142
  responsePrefixContext: options.responsePrefixContext,
51358
51143
  responsePrefixContextProvider: options.responsePrefixContextProvider,
51359
- onHeartbeatStrip: options.onHeartbeatStrip,
51360
51144
  onSkip: (reason) => options.onSkip?.(payload, {
51361
51145
  kind,
51362
51146
  reason
@@ -56286,7 +56070,7 @@ async function registerSlackMonitorSlashCommands(params) {
56286
56070
  });
56287
56071
  const deliverSlashPayloads = async (replies) => {
56288
56072
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
56289
- import("./replies-pnMj7AtP.js").then((n) => n.r),
56073
+ import("./replies-BeK3uuQ8.js").then((n) => n.r),
56290
56074
  import("./chunk-BjnT3w_x.js").then((n) => n.s),
56291
56075
  import("./markdown-tables-BtWlyyt1.js").then((n) => n.t)
56292
56076
  ]);
@@ -59340,7 +59124,6 @@ async function compactEmbeddedPiSessionDirect(params) {
59340
59124
  ownerDisplay: params.config?.commands?.ownerDisplay,
59341
59125
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
59342
59126
  reasoningTagHint,
59343
- heartbeatPrompt: void 0,
59344
59127
  skillsPrompt,
59345
59128
  docsPath: docsPath ?? void 0,
59346
59129
  promptMode,
@@ -1,8 +1,8 @@
1
- import { x as truncateUtf16Safe } from "./utils-AQWIWjGu.js";
2
- import { t as createSubsystemLogger } from "./subsystem-CgepNOk5.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-sayuve7z.js";
4
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BkR5mVOY.js";
5
- import { s as normalizeThinkLevel } from "./thinking-BTh3b5vY.js";
1
+ import { x as truncateUtf16Safe } from "./utils-BU8jVQFM.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-CQU7Gcb9.js";
4
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-C-gIIp7Q.js";
5
+ import { s as normalizeThinkLevel } from "./thinking-177f26eg.js";
6
6
  import { createHash } from "node:crypto";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,9 +1,9 @@
1
- import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-DUSb7CCb.js";
2
- import { r as resolveAgentConfig } from "./agent-scope-2la27US0.js";
3
- import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-fTqqDRAc.js";
4
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-sayuve7z.js";
5
- import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-n_MeJBcj.js";
6
- import { l as normalizeMessageChannel } from "./message-channel-j44ChSJV.js";
1
+ import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-B_ZVH1kE.js";
2
+ import { r as resolveAgentConfig } from "./agent-scope-B_oqIiaD.js";
3
+ import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CphS_6eg.js";
4
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-CQU7Gcb9.js";
5
+ import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-CnGWTXL4.js";
6
+ import { l as normalizeMessageChannel } from "./message-channel-C_V8IAYx.js";
7
7
 
8
8
  //#region src/agents/sandbox-tool-policy.ts
9
9
  function unionAllow(base, extra) {
@@ -1,7 +1,7 @@
1
- import { u as isRecord } from "./utils-AQWIWjGu.js";
2
- import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-CtguoMhn.js";
3
- import { L as normalizeProviderId } from "./auth-profiles-8vSEr9B4.js";
4
- import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-CNZxYA15.js";
1
+ import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-DKJLAPDB.js";
2
+ import { u as isRecord } from "./utils-BU8jVQFM.js";
3
+ import { L as normalizeProviderId } from "./auth-profiles-CPlXilKu.js";
4
+ import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-BEREnWaa.js";
5
5
  import { t as ensurePluginAllowlisted } from "./plugins-allowlist-D2tS9tcu.js";
6
6
 
7
7
  //#region src/config/plugin-auto-enable.ts
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as loadSymiPlugins } from "./unified-runner-Uyw1gZOm.js";
3
- import { d as getActivePluginRegistry } from "./registry-CtguoMhn.js";
4
- import { t as createSubsystemLogger } from "./subsystem-CgepNOk5.js";
5
- import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-2la27US0.js";
6
- import { i as loadConfig } from "./config-fTqqDRAc.js";
2
+ import { s as loadSymiPlugins } from "./unified-runner-DzycRpag.js";
3
+ import { d as getActivePluginRegistry } from "./registry-DKJLAPDB.js";
4
+ import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
5
+ import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-B_oqIiaD.js";
6
+ import { i as loadConfig } from "./config-CphS_6eg.js";
7
7
 
8
8
  //#region src/cli/plugin-registry.ts
9
9
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-8LjCKvga.js";
4
4
  import { i as loadConfig } from "./config-B91360jE.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-z08a8MUS.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-CgZDo35C.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -16,10 +16,8 @@ export declare function buildEmbeddedSystemPrompt(params: {
16
16
  ownerDisplay?: "raw" | "hash";
17
17
  ownerDisplaySecret?: string;
18
18
  reasoningTagHint: boolean;
19
- heartbeatPrompt?: string;
20
19
  skillsPrompt?: string;
21
20
  docsPath?: string;
22
- ttsHint?: string;
23
21
  reactionGuidance?: {
24
22
  level: "minimal" | "extensive";
25
23
  channel: string;
@@ -28,7 +28,6 @@ export declare function buildAgentSystemPrompt(params: {
28
28
  userTimeFormat?: ResolvedTimeFormat;
29
29
  contextFiles?: EmbeddedContextFile[];
30
30
  skillsPrompt?: string;
31
- heartbeatPrompt?: string;
32
31
  docsPath?: string;
33
32
  workspaceNotes?: string[];
34
33
  ttsHint?: string;
@@ -74,7 +73,7 @@ export declare function buildAgentSystemPrompt(params: {
74
73
  * - tool descriptions (Edit Tool Best Practices → edit tool desc + safe-edit skill)
75
74
  * - JIT skills loaded on-demand (Verify Your Work → verify-output skill)
76
75
  * - auto-loaded skills (Tool Call Style → tool-narration; Reactions → reactions-{level}; Messaging → channel-routing)
77
- * - runtime guards / outbound filters (Symi Self-Update → permission gate; NO_REPLY/SYMIPULSE_OK → outbound filter)
76
+ * - runtime guards / outbound filters (Symi Self-Update → permission gate; NO_REPLY → outbound filter)
78
77
  * Default false; opt in via prompt.compactMode in symi.json.
79
78
  */
80
79
  compactMode?: boolean;
@@ -84,7 +84,6 @@ export declare function resolveReplyDirectives(params: {
84
84
  aliasIndex: ModelAliasIndex;
85
85
  provider: string;
86
86
  model: string;
87
- hasResolvedHeartbeatModelOverride: boolean;
88
87
  typing: TypingController;
89
88
  opts?: GetReplyOptions;
90
89
  skillFilter?: string[];