@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
@@ -25,7 +25,7 @@ import { t as normalizeChatType } from "./chat-type-BYHUZIi_.js";
25
25
  import { a as resolveSlackAccount, c as resolveSlackBotToken, n as listChannelPlugins, r as normalizeChannelId$1, s as resolveSlackAppToken, t as getChannelPlugin } from "./plugins-Bq-Msc8Z.js";
26
26
  import { _ as resolveSlackChannelId, a as markdownToIRWithMeta, c as MediaFetchError, d as createSlackWebClient, f as resolveSlackWebClientOptions, g as parseSlackTarget, h as buildSlackBlocksFallbackText, i as renderMarkdownWithMarkers, l as fetchRemoteMedia, m as validateSlackBlocksArray, o as getDefaultLocalRoots, p as parseSlackBlocksInput, s as loadWebMedia, t as sendMessageSlack, u as readResponseWithLimit } from "./send-CLJ2KPVT.js";
27
27
  import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-BsavN1IH.js";
28
- import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-CRqS1O8w.js";
28
+ import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-DcP6aVt4.js";
29
29
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BevbDWGa.js";
30
30
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
31
31
  import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-DnAXWUyj.js";
@@ -44,8 +44,8 @@ import { t as emitSessionTranscriptUpdate } from "./transcript-events-C1GkbPky.j
44
44
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-BDh5LPh-.js";
45
45
  import { t as ensureSymiModelsJson } from "./models-config-BfmuswQ_.js";
46
46
  import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CRdCnS44.js";
47
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-BduQaKuC.js";
48
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-9Rt8-xIT.js";
47
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-DJN1Q1jq.js";
48
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-TrK63P2M.js";
49
49
  import { f as runTasksWithConcurrency } from "./internal-BuBDa4KX.js";
50
50
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BySyfaEr.js";
51
51
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CCOfinlW.js";
@@ -57,7 +57,7 @@ import { a as shouldHandleTextCommands, i as normalizeCommandBody, n as listChat
57
57
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-wSdT0Ynz.js";
58
58
  import { n as formatTimeAgo } from "./format-relative-Cyq001S7.js";
59
59
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BtKMS2C8.js";
60
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-DJQ4rO24.js";
60
+ import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-K3kGchJA.js";
61
61
  import { g as getSkillsSnapshotVersion, h as ensureSkillsWatcher, t as getRemoteSkillEligibility } from "./skills-remote-DEkSSz2R.js";
62
62
  import { f as formatUsageWindowSummary, h as enqueueSystemEvent, i as formatDoctorNonInteractiveHint, l as writeRestartSentinel, m as drainSystemEventEntries, p as resolveUsageProviderId, t as redactIdentifier, u as loadProviderUsageSummary, v as buildChannelSummary } from "./redact-identifier-gZfj5mH2.js";
63
63
  import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-zuX3pwF5.js";
@@ -76,8 +76,8 @@ import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normal
76
76
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-p35DYzAL.js";
77
77
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BoF_Jubb.js";
78
78
  import { t as parseTimeoutMs } from "./parse-timeout-CMozMfzr.js";
79
- import { n as registerMemoryCli } from "./memory-cli-BCz9iNCM.js";
80
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CgVOirGF.js";
79
+ import { n as registerMemoryCli } from "./memory-cli-C9ZqpaaB.js";
80
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-BOy28KVL.js";
81
81
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-D-WJTlz8.js";
82
82
  import { createRequire } from "node:module";
83
83
  import { execFileSync, spawn, spawnSync } from "node:child_process";
@@ -110,7 +110,6 @@ function registerAgentRunContext(runId, context) {
110
110
  }
111
111
  if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
112
112
  if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
113
- if (context.isHeartbeat !== void 0 && existing.isHeartbeat !== context.isHeartbeat) existing.isHeartbeat = context.isHeartbeat;
114
113
  }
115
114
  function getAgentRunContext(runId) {
116
115
  return runContextById.get(runId);
@@ -3935,97 +3934,6 @@ function buildInboundUserContextPrefix(ctx) {
3935
3934
  return blocks.filter(Boolean).join("\n\n");
3936
3935
  }
3937
3936
 
3938
- //#endregion
3939
- //#region src/auto-reply/heartbeat.ts
3940
- const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
3941
- function stripTokenAtEdges(raw) {
3942
- let text = raw.trim();
3943
- if (!text) return {
3944
- text: "",
3945
- didStrip: false
3946
- };
3947
- const token = SYMIPULSE_TOKEN;
3948
- const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
3949
- if (!text.includes(token)) return {
3950
- text,
3951
- didStrip: false
3952
- };
3953
- let didStrip = false;
3954
- let changed = true;
3955
- while (changed) {
3956
- changed = false;
3957
- const next = text.trim();
3958
- if (next.startsWith(token)) {
3959
- text = next.slice(token.length).trimStart();
3960
- didStrip = true;
3961
- changed = true;
3962
- continue;
3963
- }
3964
- if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
3965
- const idx = next.lastIndexOf(token);
3966
- const before = next.slice(0, idx).trimEnd();
3967
- if (!before) text = "";
3968
- else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
3969
- didStrip = true;
3970
- changed = true;
3971
- }
3972
- }
3973
- return {
3974
- text: text.replace(/\s+/g, " ").trim(),
3975
- didStrip
3976
- };
3977
- }
3978
- function stripHeartbeatToken(raw, opts = {}) {
3979
- if (!raw) return {
3980
- shouldSkip: true,
3981
- text: "",
3982
- didStrip: false
3983
- };
3984
- const trimmed = raw.trim();
3985
- if (!trimmed) return {
3986
- shouldSkip: true,
3987
- text: "",
3988
- didStrip: false
3989
- };
3990
- const mode = opts.mode ?? "message";
3991
- const maxAckCharsRaw = opts.maxAckChars;
3992
- const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
3993
- const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
3994
- const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
3995
- const trimmedNormalized = stripMarkup(trimmed);
3996
- if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
3997
- shouldSkip: false,
3998
- text: trimmed,
3999
- didStrip: false
4000
- };
4001
- const strippedOriginal = stripTokenAtEdges(trimmed);
4002
- const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
4003
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
4004
- if (!picked.didStrip) return {
4005
- shouldSkip: false,
4006
- text: trimmed,
4007
- didStrip: false
4008
- };
4009
- if (!picked.text) return {
4010
- shouldSkip: true,
4011
- text: "",
4012
- didStrip: true
4013
- };
4014
- const rest = picked.text.trim();
4015
- if (mode === "heartbeat") {
4016
- if (rest.length <= maxAckChars) return {
4017
- shouldSkip: true,
4018
- text: "",
4019
- didStrip: true
4020
- };
4021
- }
4022
- return {
4023
- shouldSkip: false,
4024
- text: rest,
4025
- didStrip: true
4026
- };
4027
- }
4028
-
4029
3937
  //#endregion
4030
3938
  //#region src/auto-reply/reply/normalize-reply.ts
4031
3939
  function normalizeReplyPayload(payload, opts = {}) {
@@ -4046,15 +3954,6 @@ function normalizeReplyPayload(payload, opts = {}) {
4046
3954
  text = "";
4047
3955
  }
4048
3956
  if (text && !trimmed) text = "";
4049
- if ((opts.stripHeartbeat ?? true) && text?.includes(HEARTBEAT_TOKEN)) {
4050
- const stripped = stripHeartbeatToken(text, { mode: "message" });
4051
- if (stripped.didStrip) opts.onHeartbeatStrip?.();
4052
- if (stripped.shouldSkip && !hasMedia && !hasChannelData) {
4053
- opts.onSkip?.("heartbeat");
4054
- return null;
4055
- }
4056
- text = stripped.text;
4057
- }
4058
3957
  if (text) text = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
4059
3958
  if (!text?.trim() && !hasMedia && !hasChannelData) {
4060
3959
  opts.onSkip?.("empty");
@@ -4065,7 +3964,7 @@ function normalizeReplyPayload(payload, opts = {}) {
4065
3964
  text
4066
3965
  };
4067
3966
  const effectivePrefix = opts.responsePrefixContext ? resolveResponsePrefixTemplate(opts.responsePrefix, opts.responsePrefixContext) : opts.responsePrefix;
4068
- if (effectivePrefix && text && text.trim() !== HEARTBEAT_TOKEN && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
3967
+ if (effectivePrefix && text && !text.startsWith(effectivePrefix)) text = `${effectivePrefix} ${text}`;
4069
3968
  return {
4070
3969
  ...enrichedPayload,
4071
3970
  text
@@ -4122,7 +4021,7 @@ async function routeReply(params) {
4122
4021
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
4123
4022
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
4124
4023
  try {
4125
- const { deliverOutboundPayloads } = await import("./deliver-CRqS1O8w.js").then((n) => n.n);
4024
+ const { deliverOutboundPayloads } = await import("./deliver-DcP6aVt4.js").then((n) => n.n);
4126
4025
  return {
4127
4026
  ok: true,
4128
4027
  messageId: (await deliverOutboundPayloads({
@@ -4338,8 +4237,7 @@ async function incrementCompactionCount(params) {
4338
4237
  //#endregion
4339
4238
  //#region src/auto-reply/reply/typing-mode.ts
4340
4239
  const DEFAULT_GROUP_TYPING_MODE = "message";
4341
- function resolveTypingMode({ configured, isGroupChat, wasMentioned, isHeartbeat }) {
4342
- if (isHeartbeat) return "never";
4240
+ function resolveTypingMode({ configured, isGroupChat, wasMentioned }) {
4343
4241
  if (configured) return configured;
4344
4242
  if (!isGroupChat || wasMentioned) return "instant";
4345
4243
  return DEFAULT_GROUP_TYPING_MODE;
@@ -4373,12 +4271,11 @@ async function prepareAgentRun(params) {
4373
4271
  const isFirstTurnInSession = isNewSession || !currentSystemSent;
4374
4272
  const isGroupChat = sessionCtx.ChatType === "group";
4375
4273
  const wasMentioned = ctx.WasMentioned === true;
4376
- const isHeartbeat = opts?.isHeartbeat === true;
4377
4274
  const typingMode = resolveTypingMode({
4378
4275
  configured: sessionCfg?.typingMode ?? agentCfg?.typingMode,
4379
4276
  isGroupChat,
4380
4277
  wasMentioned,
4381
- isHeartbeat
4278
+ isHeartbeat: false
4382
4279
  });
4383
4280
  const shouldInjectGroupIntro = Boolean(isGroupChat && (isFirstTurnInSession || sessionEntry?.groupActivationNeedsSystemIntro));
4384
4281
  const groupChatContext = isGroupChat ? buildGroupChatContext({ sessionCtx }) : "";
@@ -8597,8 +8494,7 @@ async function createModelSelectionState(params) {
8597
8494
  sessionKey,
8598
8495
  parentSessionKey
8599
8496
  });
8600
- const skipStoredOverride = params.hasResolvedHeartbeatModelOverride === true;
8601
- if (storedOverride?.model && !skipStoredOverride) {
8497
+ if (storedOverride?.model) {
8602
8498
  const candidateProvider = storedOverride.provider || defaultProvider;
8603
8499
  const key = modelKey(candidateProvider, storedOverride.model);
8604
8500
  if (allowedModelKeys.size === 0 || allowedModelKeys.has(key)) {
@@ -15418,8 +15314,6 @@ function buildAgentSystemPrompt(params) {
15418
15314
  const reasoningLevel = params.reasoningLevel ?? "off";
15419
15315
  const userTimezone = params.userTimezone?.trim();
15420
15316
  const skillsPrompt = params.skillsPrompt?.trim();
15421
- const heartbeatPrompt = params.heartbeatPrompt?.trim();
15422
- const heartbeatPromptLine = heartbeatPrompt ? `Heartbeat prompt: ${heartbeatPrompt}` : "Heartbeat prompt: (configured)";
15423
15317
  const runtimeInfo = params.runtimeInfo;
15424
15318
  const runtimeChannel = runtimeInfo?.channel?.trim().toLowerCase();
15425
15319
  const runtimeCapabilities = (runtimeInfo?.capabilities ?? []).map((cap) => String(cap).trim()).filter(Boolean);
@@ -15632,7 +15526,6 @@ function buildAgentSystemPrompt(params) {
15632
15526
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
15633
15527
  }
15634
15528
  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}`, "");
15635
- 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.", "");
15636
15529
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
15637
15530
  return lines.filter(Boolean).join("\n");
15638
15531
  }
@@ -15762,7 +15655,6 @@ async function resolveCommandsSystemPromptBundle(params) {
15762
15655
  userTimeFormat,
15763
15656
  contextFiles: injectedFiles,
15764
15657
  skillsPrompt,
15765
- heartbeatPrompt: void 0,
15766
15658
  runtimeInfo,
15767
15659
  sandboxInfo,
15768
15660
  memoryCitationsMode: params.cfg?.memory?.citations
@@ -18552,7 +18444,7 @@ function resolveExecOverrides(params) {
18552
18444
  };
18553
18445
  }
18554
18446
  async function resolveReplyDirectives(params) {
18555
- 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;
18447
+ 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;
18556
18448
  let provider = initialProvider;
18557
18449
  let model = initialModel;
18558
18450
  const commandSource = sessionCtx.BodyForCommands ?? sessionCtx.CommandBody ?? sessionCtx.RawBody ?? sessionCtx.Transcript ?? sessionCtx.BodyStripped ?? sessionCtx.Body ?? ctx.BodyForCommands ?? ctx.CommandBody ?? ctx.RawBody ?? "";
@@ -18693,8 +18585,7 @@ async function resolveReplyDirectives(params) {
18693
18585
  defaultModel,
18694
18586
  provider,
18695
18587
  model,
18696
- hasModelDirective: directives.hasModelDirective,
18697
- hasResolvedHeartbeatModelOverride
18588
+ hasModelDirective: directives.hasModelDirective
18698
18589
  });
18699
18590
  provider = modelState.provider;
18700
18591
  model = modelState.model;
@@ -28991,7 +28882,7 @@ async function deliverSessionMaintenanceWarning(params) {
28991
28882
  return;
28992
28883
  }
28993
28884
  try {
28994
- const { deliverOutboundPayloads } = await import("./deliver-CRqS1O8w.js").then((n) => n.n);
28885
+ const { deliverOutboundPayloads } = await import("./deliver-DcP6aVt4.js").then((n) => n.n);
28995
28886
  await deliverOutboundPayloads({
28996
28887
  cfg: params.cfg,
28997
28888
  channel,
@@ -29665,20 +29556,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
29665
29556
  });
29666
29557
  let provider = defaultProvider;
29667
29558
  let model = defaultModel;
29668
- let hasResolvedHeartbeatModelOverride = false;
29669
- if (opts?.isHeartbeat) {
29670
- const heartbeatRaw = opts.heartbeatModelOverride?.trim() ?? agentCfg?.heartbeat?.model?.trim() ?? "";
29671
- const heartbeatRef = heartbeatRaw ? resolveModelRefFromString({
29672
- raw: heartbeatRaw,
29673
- defaultProvider,
29674
- aliasIndex
29675
- }) : null;
29676
- if (heartbeatRef) {
29677
- provider = heartbeatRef.ref.provider;
29678
- model = heartbeatRef.ref.model;
29679
- hasResolvedHeartbeatModelOverride = true;
29680
- }
29681
- }
29682
29559
  const workspaceDir = (await ensureAgentWorkspace({
29683
29560
  dir: resolveAgentWorkspaceDir(cfg, agentId) ?? DEFAULT_AGENT_WORKSPACE_DIR,
29684
29561
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
@@ -29757,8 +29634,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
29757
29634
  groupSubject: sessionEntry.subject ?? sessionCtx.GroupSubject ?? finalized.GroupSubject,
29758
29635
  parentSessionKey: sessionCtx.ParentSessionKey
29759
29636
  });
29760
- const hasSessionModelOverride = Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim());
29761
- if (!hasResolvedHeartbeatModelOverride && !hasSessionModelOverride && channelModelOverride) {
29637
+ if (!Boolean(sessionEntry.modelOverride?.trim() || sessionEntry.providerOverride?.trim()) && channelModelOverride) {
29762
29638
  const resolved = resolveModelRefFromString({
29763
29639
  raw: channelModelOverride.model,
29764
29640
  defaultProvider,
@@ -29791,7 +29667,6 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
29791
29667
  aliasIndex,
29792
29668
  provider,
29793
29669
  model,
29794
- hasResolvedHeartbeatModelOverride,
29795
29670
  typing,
29796
29671
  opts: resolvedOpts,
29797
29672
  skillFilter: mergedSkillFilter
@@ -30469,56 +30344,24 @@ function resolveModelProfile(modelId, userProfiles) {
30469
30344
  //#endregion
30470
30345
  //#region src/gateway/outbound-filter.ts
30471
30346
  const SILENT_REPLY_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SILENT_REPLY_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
30472
- const SYMIPULSE_BARE_RE = new RegExp(`^\\s*(?:["'\`]|\\*+|_+)?\\s*${SYMIPULSE_TOKEN}\\s*(?:["'\`]|\\*+|_+)?\\s*$`);
30473
30347
  /** Strict-match check for the bare NO_REPLY token. */
30474
30348
  function isBareSilentReply(text) {
30475
30349
  if (!text) return false;
30476
30350
  return SILENT_REPLY_BARE_RE.test(text);
30477
30351
  }
30478
- /** Strict-match check for the bare SYMIPULSE_OK token. */
30479
- function isBareSymipulseAck(text) {
30480
- if (!text) return false;
30481
- return SYMIPULSE_BARE_RE.test(text);
30482
- }
30483
30352
  /**
30484
30353
  * Classify an outbound assistant message at the gateway boundary.
30485
30354
  *
30486
30355
  * Returns a structured verdict the caller uses to decide whether to
30487
30356
  * broadcast / persist a payload. Pure function — no side effects.
30488
30357
  */
30489
- function classifyOutboundMessage(rawText, opts) {
30358
+ function classifyOutboundMessage(rawText, _opts) {
30490
30359
  const text = typeof rawText === "string" ? rawText : "";
30491
30360
  if (isBareSilentReply(text)) return {
30492
30361
  action: "drop",
30493
30362
  output: "",
30494
30363
  reason: "silent-reply-bare"
30495
30364
  };
30496
- if (opts.isHeartbeat) {
30497
- const stripped = stripHeartbeatToken(text, {
30498
- mode: "heartbeat",
30499
- maxAckChars: opts.heartbeatAckMaxChars
30500
- });
30501
- if (stripped.shouldSkip) return {
30502
- action: "drop",
30503
- output: "",
30504
- reason: stripped.didStrip ? "symipulse-heartbeat-ack" : "silent-reply-bare"
30505
- };
30506
- if (stripped.didStrip) return {
30507
- action: "deliver-stripped",
30508
- output: stripped.text,
30509
- reason: "symipulse-heartbeat-stripped"
30510
- };
30511
- return {
30512
- action: "deliver",
30513
- output: text,
30514
- reason: "deliver"
30515
- };
30516
- }
30517
- if (isBareSymipulseAck(text)) return {
30518
- action: "drop",
30519
- output: "",
30520
- reason: "symipulse-non-heartbeat-bare"
30521
- };
30522
30365
  return {
30523
30366
  action: "deliver",
30524
30367
  output: text,
@@ -37381,10 +37224,8 @@ function buildEmbeddedSystemPrompt(params) {
37381
37224
  ownerDisplay: params.ownerDisplay,
37382
37225
  ownerDisplaySecret: params.ownerDisplaySecret,
37383
37226
  reasoningTagHint: params.reasoningTagHint,
37384
- heartbeatPrompt: params.heartbeatPrompt,
37385
37227
  skillsPrompt: params.skillsPrompt,
37386
37228
  docsPath: params.docsPath,
37387
- ttsHint: params.ttsHint,
37388
37229
  workspaceNotes: params.workspaceNotes,
37389
37230
  reactionGuidance: params.reactionGuidance,
37390
37231
  promptMode: params.promptMode,
@@ -38154,7 +37995,6 @@ async function runEmbeddedAttempt(params) {
38154
37995
  ownerDisplay: params.config?.commands?.ownerDisplay,
38155
37996
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
38156
37997
  reasoningTagHint,
38157
- heartbeatPrompt: void 0,
38158
37998
  skillsPrompt,
38159
37999
  docsPath: docsPath ?? void 0,
38160
38000
  workspaceNotes,
@@ -39982,8 +39822,8 @@ async function runAgentTurnImpl(params) {
39982
39822
  const result = await runEmbeddedPiAgent(buildInternalParams());
39983
39823
  const rawText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
39984
39824
  const outboundResult = classifyOutboundMessage(rawText, {
39985
- isHeartbeat: getAgentRunContext(runId)?.isHeartbeat === true,
39986
- heartbeatAckMaxChars: Math.max(0, params.config.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS)
39825
+ isHeartbeat: false,
39826
+ heartbeatAckMaxChars: 0
39987
39827
  });
39988
39828
  const filteredText = outboundResult.output.trim();
39989
39829
  const resolvedProvider = result.meta.agentMeta?.provider ?? params.provider ?? "";
@@ -40549,54 +40389,6 @@ function withFastAbort(opts) {
40549
40389
  };
40550
40390
  }
40551
40391
 
40552
- //#endregion
40553
- //#region src/auto-reply/reply/middleware-heartbeat-strip.ts
40554
- /**
40555
- * Returns a PayloadMiddleware that strips heartbeat tokens, drops silent
40556
- * replies, and sanitizes user-facing text. Reads `ctx.isHeartbeat` to
40557
- * decide whether to strip; reads `payload.isError` to give the sanitizer
40558
- * the right context flag.
40559
- *
40560
- * Equivalence claim (proven by tests): for every input shape the chain's
40561
- * `normalizeStreamingText({text})` would have produced `{ skip, text }`,
40562
- * this middleware produces the corresponding `PayloadDelivery`:
40563
- *
40564
- * skip=true → delivered=false (drop)
40565
- * skip=false, text=undefined → delivered=true with payload.text undefined
40566
- * (media-only carry-through case)
40567
- * skip=false, text=string → delivered=true with payload.text=sanitized
40568
- */
40569
- function withHeartbeatStrip(opts) {
40570
- let didLogStrip = false;
40571
- return (next) => async (payload, ctx) => {
40572
- let text = payload.text;
40573
- const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
40574
- if (!ctx.isHeartbeat && typeof text === "string" && text.includes("SYMIPULSE_OK")) {
40575
- const stripped = stripHeartbeatToken(text, { mode: "message" });
40576
- if (stripped.didStrip && !didLogStrip) {
40577
- didLogStrip = true;
40578
- opts?.onStrip?.();
40579
- }
40580
- if (stripped.shouldSkip && !hasMedia) return PayloadDelivery.drop(payload, "drop:heartbeat-token-bare");
40581
- text = stripped.text;
40582
- }
40583
- if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return PayloadDelivery.drop(payload, "drop:silent-reply");
40584
- if (!text) {
40585
- if (hasMedia) return next({
40586
- ...payload,
40587
- text: void 0
40588
- }, ctx);
40589
- return PayloadDelivery.drop(payload, "drop:empty");
40590
- }
40591
- const sanitized = sanitizeUserFacingText(text, { errorContext: Boolean(payload.isError) });
40592
- if (!sanitized.trim()) return PayloadDelivery.drop(payload, "drop:empty-after-sanitize");
40593
- return next({
40594
- ...payload,
40595
- text: sanitized
40596
- }, ctx);
40597
- };
40598
- }
40599
-
40600
40392
  //#endregion
40601
40393
  //#region src/infra/map-size.ts
40602
40394
  function pruneMapToMaxSize(map, maxSize) {
@@ -40872,25 +40664,22 @@ function withToolResultSerialization(opts) {
40872
40664
  * session transcript after the inner runner completes.
40873
40665
  *
40874
40666
  * Skip conditions:
40875
- * - outbound.action === "drop" (NO_REPLY / heartbeat ack — no message)
40667
+ * - outbound.action === "drop" (NO_REPLY — no message)
40876
40668
  * - empty / whitespace-only text
40877
- * - outbound.action === "deliver-stripped" AND includeStripped=false
40878
40669
  *
40879
40670
  * The middleware does NOT mutate the turn result — the append is a
40880
40671
  * post-turn side effect. The result is returned unchanged regardless of
40881
40672
  * append success/failure.
40882
40673
  */
40883
40674
  function withTranscriptUpdate(opts) {
40884
- const includeStripped = opts.includeStripped !== false;
40885
40675
  return (next) => async (params) => {
40886
40676
  const result = await next(params);
40887
- if (shouldAppend(result, includeStripped)) await runAppend(opts, params, result);
40677
+ if (shouldAppend(result)) await runAppend(opts, params, result);
40888
40678
  return result;
40889
40679
  };
40890
40680
  }
40891
- function shouldAppend(result, includeStripped) {
40681
+ function shouldAppend(result) {
40892
40682
  if (result.outbound.action === "drop") return false;
40893
- if (result.outbound.action === "deliver-stripped" && !includeStripped) return false;
40894
40683
  return (typeof result.text === "string" ? result.text.trim() : "").length > 0;
40895
40684
  }
40896
40685
  async function runAppend(opts, params, result) {
@@ -40974,7 +40763,6 @@ function buildChannelProfile(opts) {
40974
40763
  ],
40975
40764
  payloadMiddlewares: [
40976
40765
  withPayloadDropOnEmpty(),
40977
- withHeartbeatStrip(),
40978
40766
  ...opts.typingSignaler ? [withTypingSignals({ signaler: opts.typingSignaler })] : [],
40979
40767
  withToolResultSerialization(),
40980
40768
  withChannelRouting({
@@ -41003,11 +40791,7 @@ function buildGlassUiProfile(opts) {
41003
40791
  withModelFallback(),
41004
40792
  ...opts.transcriptAppender ? [withTranscriptUpdate({ appender: opts.transcriptAppender })] : []
41005
40793
  ],
41006
- payloadMiddlewares: [
41007
- withPayloadDropOnEmpty(),
41008
- withHeartbeatStrip(),
41009
- withToolResultSerialization()
41010
- ],
40794
+ payloadMiddlewares: [withPayloadDropOnEmpty(), withToolResultSerialization()],
41011
40795
  payloadHandler: createReplyDispatcherHandler(opts.dispatcher)
41012
40796
  };
41013
40797
  }
@@ -41148,7 +40932,6 @@ function normalizeReplyPayloadInternal(payload, opts) {
41148
40932
  return normalizeReplyPayload(payload, {
41149
40933
  responsePrefix: opts.responsePrefix,
41150
40934
  responsePrefixContext: prefixContext,
41151
- onHeartbeatStrip: opts.onHeartbeatStrip,
41152
40935
  onSkip: opts.onSkip
41153
40936
  });
41154
40937
  }
@@ -41171,7 +40954,6 @@ function createReplyDispatcher(options) {
41171
40954
  responsePrefix: options.responsePrefix,
41172
40955
  responsePrefixContext: options.responsePrefixContext,
41173
40956
  responsePrefixContextProvider: options.responsePrefixContextProvider,
41174
- onHeartbeatStrip: options.onHeartbeatStrip,
41175
40957
  onSkip: (reason) => options.onSkip?.(payload, {
41176
40958
  kind,
41177
40959
  reason
@@ -45268,7 +45050,7 @@ async function registerSlackMonitorSlashCommands(params) {
45268
45050
  });
45269
45051
  const deliverSlashPayloads = async (replies) => {
45270
45052
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
45271
- import("./replies-CgVOirGF.js").then((n) => n.r),
45053
+ import("./replies-BOy28KVL.js").then((n) => n.r),
45272
45054
  import("./chunk-BySyfaEr.js").then((n) => n.s),
45273
45055
  import("./markdown-tables-CCOfinlW.js").then((n) => n.t)
45274
45056
  ]);
@@ -48093,7 +47875,6 @@ async function compactEmbeddedPiSessionDirect(params) {
48093
47875
  ownerDisplay: params.config?.commands?.ownerDisplay,
48094
47876
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
48095
47877
  reasoningTagHint,
48096
- heartbeatPrompt: void 0,
48097
47878
  skillsPrompt,
48098
47879
  docsPath: docsPath ?? void 0,
48099
47880
  promptMode,
@@ -50048,4 +49829,4 @@ function initSubagentRegistry() {
50048
49829
  }
50049
49830
 
50050
49831
  //#endregion
50051
- export { normalizeCronJobCreate as $, estimateBase64DecodedBytes as $t, resolveRunWorkspaceDir as A, buildSystemPromptParams as At, ensureOutboundSessionEntry as B, applyModelOverrideToSessionEntry as Bt, buildGlassUiProfile as C, clearAgentRunContext as Cn, emitGatewayRestart as Ct, getActiveEmbeddedRunCount as D, registerAgentRunContext as Dn, setGatewaySigusr1RestartPolicy as Dt, abortEmbeddedPiRun as E, onAgentEvent as En, scheduleGatewaySigusr1Restart as Et, createSymiTools as F, resolveSendPolicy as Ft, formatTargetDisplay as G, DEFAULT_INPUT_IMAGE_MAX_BYTES as Gt, resolveOutboundTarget as H, parseVerboseOverride as Ht, listTasksInWorkdir as I, maskApiKey as It, runWithModelFallback as J, DEFAULT_INPUT_TIMEOUT_MS as Jt, resetDirectoryCache as K, DEFAULT_INPUT_IMAGE_MIMES as Kt, readLatestAssistantReply as L, DEFAULT_OAUTH_WARN_MS as Lt, resolveModelProfile as M, getProcessSupervisor as Mt, buildAgentTurnParams as N, detectRuntimeShell as Nt, waitForEmbeddedPiRunEnd as O, setPreRestartDeferralCheck as Ot, prepareReplyTurn as P, normalizeSendPolicy as Pt, normalizeHttpWebhookUrl as Q, resolveInputFileLimits as Qt, resolveAnnounceTargetFromKey as R, buildAuthHealthSummary as Rt, getTotalPendingReplies as S, CommandLane as Sn, deferGatewayRestartUntilIdle as St, runAgentTurn as T, getAgentRunContext as Tn, markGatewaySigusr1RestartHandled as Tt, resolveSessionDeliveryTarget as U, installUnhandledRejectionHandler as Ut, resolveOutboundSessionRoute as V, applyVerboseOverride as Vt, normalizePollInput as W, registerUnhandledRejectionHandler as Wt, describeFailoverError as X, extractImageContentFromSource as Xt, FailoverError as Y, extractFileContentFromSource as Yt, resolveFailoverStatus as Z, normalizeMimeList as Zt, requestBodyErrorToText as _, getActiveTaskCount as _n, applyBrowserProxyPaths as _t, listSubagentRunsForRequester as a, normalizeGroupActivation as an, normalizePayloadToSystemText as at, provider_dispatcher_exports as b, setCommandLaneConcurrency as bn, AGENT_LANE_SUBAGENT as bt, clearSessionQueues as c, isAbortTrigger as cn, buildDeliveryFromLegacyPayload as ct, sniffMimeFromBase64 as d, resolveSymiDocsPath as dn, CHANNEL_TARGETS_DESCRIPTION as dt, resolveAgentTimeoutMs as en, normalizeCronJobPatch as et, getPluginToolMeta as f, formatUserTime as fn, CHANNEL_TARGET_DESCRIPTION as ft, readJsonBodyWithLimit as g, resolveBootstrapContextForRun as gn, isExternalHookSession as gt, handleSlackHttpRequest as h, makeBootstrapWarn as hn, getHookType as ht, listDescendantRunsForRequester as i, stripHeartbeatToken as in, normalizeOptionalText as it, classifyOutboundMessage as j, resolveCommitHash as jt, redactRunIdentifier as k, buildAgentSystemPrompt as kt, applyToolPolicyPipeline as l, stopSubagentsForRequester as ln, hasLegacyDeliveryHints as lt, loadSymiPlugins as m, resolveUserTimezone as mn, detectSuspiciousPatterns as mt, countActiveRunsForSession as n, BARE_SESSION_RESET_PROMPT as nn, normalizeOptionalAgentId as nt, subagent_registry_exports as o, clearSessionAuthProfileOverride as on, normalizeRequiredName as ot, createPluginLoaderLogger as p, resolveUserTimeFormat as pn, buildSafeExternalPrompt as pt, CHANNEL_MESSAGE_ACTION_NAMES as q, DEFAULT_INPUT_MAX_REDIRECTS as qt, initSubagentRegistry as r, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as rn, normalizeOptionalSessionKey as rt, runSubagentAnnounceFlow as s, formatZonedTimestamp as sn, migrateLegacyCronPayload as st, countActiveDescendantRuns as t, prepareAgentRun as tn, inferLegacyName as tt, buildDefaultToolPolicyPipelineSteps as u, ToolInputError as un, stripLegacyDeliveryFields as ut, buildHistoryContextFromEntries as v, getTotalQueueSize as vn, persistBrowserProxyFiles as vt, runUnifiedTurn as w, emitAgentEvent as wn, isGatewaySigusr1RestartExternallyAllowed as wt, createReplyDispatcher as x, waitForActiveTasks as xn, consumeGatewaySigusr1RestartAuthorization as xt, getChannelActivity as y, resetAllLanes as yn, AGENT_LANE_NESTED as yt, runMessageAction as z, formatRemainingShort as zt };
49832
+ export { normalizeCronJobCreate as $, estimateBase64DecodedBytes as $t, resolveRunWorkspaceDir as A, buildSystemPromptParams as At, ensureOutboundSessionEntry as B, applyModelOverrideToSessionEntry as Bt, buildGlassUiProfile as C, getAgentRunContext as Cn, emitGatewayRestart as Ct, getActiveEmbeddedRunCount as D, setGatewaySigusr1RestartPolicy as Dt, abortEmbeddedPiRun as E, scheduleGatewaySigusr1Restart as Et, createSymiTools as F, resolveSendPolicy as Ft, formatTargetDisplay as G, DEFAULT_INPUT_IMAGE_MAX_BYTES as Gt, resolveOutboundTarget as H, parseVerboseOverride as Ht, listTasksInWorkdir as I, maskApiKey as It, runWithModelFallback as J, DEFAULT_INPUT_TIMEOUT_MS as Jt, resetDirectoryCache as K, DEFAULT_INPUT_IMAGE_MIMES as Kt, readLatestAssistantReply as L, DEFAULT_OAUTH_WARN_MS as Lt, resolveModelProfile as M, getProcessSupervisor as Mt, buildAgentTurnParams as N, detectRuntimeShell as Nt, waitForEmbeddedPiRunEnd as O, setPreRestartDeferralCheck as Ot, prepareReplyTurn as P, normalizeSendPolicy as Pt, normalizeHttpWebhookUrl as Q, resolveInputFileLimits as Qt, resolveAnnounceTargetFromKey as R, buildAuthHealthSummary as Rt, getTotalPendingReplies as S, emitAgentEvent as Sn, deferGatewayRestartUntilIdle as St, runAgentTurn as T, registerAgentRunContext as Tn, markGatewaySigusr1RestartHandled as Tt, resolveSessionDeliveryTarget as U, installUnhandledRejectionHandler as Ut, resolveOutboundSessionRoute as V, applyVerboseOverride as Vt, normalizePollInput as W, registerUnhandledRejectionHandler as Wt, describeFailoverError as X, extractImageContentFromSource as Xt, FailoverError as Y, extractFileContentFromSource as Yt, resolveFailoverStatus as Z, normalizeMimeList as Zt, requestBodyErrorToText as _, resetAllLanes as _n, applyBrowserProxyPaths as _t, listSubagentRunsForRequester as a, formatZonedTimestamp as an, normalizePayloadToSystemText as at, provider_dispatcher_exports as b, CommandLane as bn, AGENT_LANE_SUBAGENT as bt, clearSessionQueues as c, ToolInputError as cn, buildDeliveryFromLegacyPayload as ct, sniffMimeFromBase64 as d, resolveUserTimeFormat as dn, CHANNEL_TARGETS_DESCRIPTION as dt, resolveAgentTimeoutMs as en, normalizeCronJobPatch as et, getPluginToolMeta as f, resolveUserTimezone as fn, CHANNEL_TARGET_DESCRIPTION as ft, readJsonBodyWithLimit as g, getTotalQueueSize as gn, isExternalHookSession as gt, handleSlackHttpRequest as h, getActiveTaskCount as hn, getHookType as ht, listDescendantRunsForRequester as i, clearSessionAuthProfileOverride as in, normalizeOptionalText as it, classifyOutboundMessage as j, resolveCommitHash as jt, redactRunIdentifier as k, buildAgentSystemPrompt as kt, applyToolPolicyPipeline as l, resolveSymiDocsPath as ln, hasLegacyDeliveryHints as lt, loadSymiPlugins as m, resolveBootstrapContextForRun as mn, detectSuspiciousPatterns as mt, countActiveRunsForSession as n, BARE_SESSION_RESET_PROMPT as nn, normalizeOptionalAgentId as nt, subagent_registry_exports as o, isAbortTrigger as on, normalizeRequiredName as ot, createPluginLoaderLogger as p, makeBootstrapWarn as pn, buildSafeExternalPrompt as pt, CHANNEL_MESSAGE_ACTION_NAMES as q, DEFAULT_INPUT_MAX_REDIRECTS as qt, initSubagentRegistry as r, normalizeGroupActivation as rn, normalizeOptionalSessionKey as rt, runSubagentAnnounceFlow as s, stopSubagentsForRequester as sn, migrateLegacyCronPayload as st, countActiveDescendantRuns as t, prepareAgentRun as tn, inferLegacyName as tt, buildDefaultToolPolicyPipelineSteps as u, formatUserTime as un, stripLegacyDeliveryFields as ut, buildHistoryContextFromEntries as v, setCommandLaneConcurrency as vn, persistBrowserProxyFiles as vt, runUnifiedTurn as w, onAgentEvent as wn, isGatewaySigusr1RestartExternallyAllowed as wt, createReplyDispatcher as x, clearAgentRunContext as xn, consumeGatewaySigusr1RestartAuthorization as xt, getChannelActivity as y, waitForActiveTasks as yn, AGENT_LANE_NESTED as yt, runMessageAction as z, formatRemainingShort as zt };
@@ -1,4 +1,4 @@
1
- import { F as isFileLogLevelEnabled, I as loggingState, L as levelToMinLevel, M as getChildLogger, N as getLogger, R as normalizeLogLevel, S as isVerbose, n as CHAT_CHANNEL_ORDER, z as readLoggingConfig } from "./registry-CtguoMhn.js";
1
+ import { F as isFileLogLevelEnabled, I as loggingState, L as levelToMinLevel, M as getChildLogger, N as getLogger, R as normalizeLogLevel, S as isVerbose, n as CHAT_CHANNEL_ORDER, z as readLoggingConfig } from "./registry-DKJLAPDB.js";
2
2
  import { Chalk } from "chalk";
3
3
  import util from "node:util";
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { fileURLToPath } from "node:url";
2
- import fs from "node:fs";
3
2
  import path from "node:path";
3
+ import fs from "node:fs";
4
4
  import fs$1 from "node:fs/promises";
5
5
 
6
6
  //#region src/agents/skills/filter.ts
@@ -3,37 +3,37 @@ import "./registry-C-JddWwo.js";
3
3
  import "./agent-scope-D_MtsuXX.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-DzRUKS9f.js";
5
5
  import "./workspace-CsaDUuDn.js";
6
- import "./tokens-B24nv23l.js";
7
- import { t as runAgentTurn } from "./unified-runner-CBVGL54b.js";
8
- import "./auth-profiles-CZTGpbyT.js";
9
- import "./github-copilot-token-BUd9oA8x.js";
10
- import "./boolean-B8-BqKGQ.js";
11
- import "./deliver-B_jXI55b.js";
12
- import "./ssrf-LaudpmHD.js";
13
- import "./manifest-registry-Cc80pffV.js";
14
- import "./chrome-BgQbis3t.js";
15
- import "./frontmatter-B5iYTsZP.js";
16
- import "./skills-Kt1PL_Um.js";
17
- import "./redact-DPnDWsnT.js";
18
- import "./errors-BgCjRT2k.js";
19
- import "./local-roots-DtvYChMM.js";
20
- import "./thinking-nf5YVDrR.js";
21
- import "./chunk-Ds8SZRkS.js";
22
- import "./plugins-BG2b7dR_.js";
23
- import "./send-dfhV1QIV.js";
24
- import "./paths-N698mtPE.js";
6
+ import { t as runAgentTurn } from "./unified-runner-BPgxfuKU.js";
7
+ import "./auth-profiles-duUuQXeC.js";
8
+ import "./github-copilot-token-B31ugq7R.js";
9
+ import "./boolean-mcn6kL0s.js";
10
+ import "./deliver-BY0HHHHB.js";
11
+ import "./ssrf-Dcgaqg3U.js";
12
+ import "./manifest-registry-DsTUFMvZ.js";
13
+ import "./chrome-CejiigNy.js";
14
+ import "./frontmatter-BzAaXBfE.js";
15
+ import "./skills-D0k4o0Ez.js";
16
+ import "./redact-Dd8jrogi.js";
17
+ import "./errors-BkfLlDKo.js";
18
+ import "./local-roots-WWcVq0Ma.js";
19
+ import "./thinking-CMIo8E_E.js";
20
+ import "./chunk-5H33X8qU.js";
21
+ import "./plugins-CcVzjOo_.js";
22
+ import "./send-DulXmWcG.js";
23
+ import "./paths-BeAyfCRg.js";
24
+ import "./tokens-BBh6tlmO.js";
25
25
  import "./diagnostic-D7z6O7v0.js";
26
26
  import "./diagnostic-session-state-BkfiP_y6.js";
27
- import "./pi-auth-json-ChKC--mV.js";
27
+ import "./pi-auth-json-D4Bl4hBw.js";
28
28
  import "./reply-prefix-ChIeKp-P.js";
29
- import "./manager-Bmh-pcUv.js";
30
- import "./sqlite-BKMdYqso.js";
31
- import "./markdown-tables-D0bwB4O7.js";
32
- import "./commands-registry-CRkL6mTz.js";
33
- import "./skill-commands-CfGPouRa.js";
29
+ import "./manager-BT2SbOdg.js";
30
+ import "./sqlite--aBEq1-J.js";
31
+ import "./markdown-tables-ptfgMe6b.js";
32
+ import "./commands-registry-DaPrWQSe.js";
33
+ import "./skill-commands-Cwrebyvj.js";
34
34
  import "./pi-model-discovery-B_aXYZv5.js";
35
- import "./resolve-route-BLDKso2x.js";
36
- import "./replies-CvuXRwhI.js";
35
+ import "./resolve-route-CIS2tjpz.js";
36
+ import "./replies-C82xaXm3.js";
37
37
 
38
38
  //#region src/memory/synthesis.ts
39
39
  const log = createSubsystemLogger("memory/synthesis");
@@ -6,9 +6,9 @@ import "./model-selection-BE83O-pv.js";
6
6
  import "./reply-prefix-BqgLflxO.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./plugins-Cp39v6b_.js";
9
- import "./replies-pnMj7AtP.js";
10
- import { n as runAgentTurn } from "./pi-embedded-hri4e4ie.js";
11
- import "./deliver-B_Gz2_tA.js";
9
+ import "./replies-BeK3uuQ8.js";
10
+ import { n as runAgentTurn } from "./pi-embedded-DoWU3tbW.js";
11
+ import "./deliver-i5knkyHl.js";
12
12
  import "./diagnostic-BvZmqxYI.js";
13
13
  import "./diagnostic-session-state-CWtaDOiK.js";
14
14
  import "./chunk-BjnT3w_x.js";
@@ -18,10 +18,10 @@ import "./chrome-b556dOQ6.js";
18
18
  import "./skills-xmXjOnAV.js";
19
19
  import "./redact-ojHFHOAb.js";
20
20
  import "./errors-C6sHIFo_.js";
21
- import "./tokens-CGqnWNmv.js";
21
+ import "./tokens-CJgPtOxz.js";
22
22
  import "./thinking-BKsvyjWX.js";
23
23
  import "./paths-N698mtPE.js";
24
- import "./manager-Do0-i7vp.js";
24
+ import "./manager-ue49bRVP.js";
25
25
  import "./sqlite-jFnvSfLz.js";
26
26
  import "./markdown-tables-BtWlyyt1.js";
27
27
  import "./commands-registry-BO62ZyK2.js";