@symerian/symi 3.2.0 → 3.3.0

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 (269) hide show
  1. package/dist/{agent-BAizavBj.js → agent-B2IkIBj2.js} +13 -13
  2. package/dist/{agent-CcMZZWTA.js → agent-BrIHHGnC.js} +4 -4
  3. package/dist/{agents-eZOTKidZ.js → agents-B57SUSPt.js} +5 -5
  4. package/dist/{audit-CqpgecVD.js → audit-B58SlbPa.js} +5 -5
  5. package/dist/{audit-CgO25stB.js → audit-DEXQlMwn.js} +11 -11
  6. package/dist/{auth-B2ihI_FW.js → auth-DIdzV4_r.js} +1 -1
  7. package/dist/{auth-choice-DAgO_iWS.js → auth-choice-B6iYCDVN.js} +2 -2
  8. package/dist/{auth-choice-Blb0tLr-.js → auth-choice-Z1qCZxwg.js} +5 -5
  9. package/dist/{banner-BkUQ7Jvs.js → banner-QsnCDxXH.js} +1 -1
  10. package/dist/{browser-cli-CEGXNjxz.js → browser-cli-CcKmOVu4.js} +5 -5
  11. package/dist/{browser-cli-U3MBFIug.js → browser-cli-_9G3GBJS.js} +3 -3
  12. package/dist/build-info.json +3 -3
  13. package/dist/bundled/boot-md/handler.js +6 -6
  14. package/dist/bundled/session-memory/handler.js +4 -4
  15. package/dist/{call-Ck5wfJH6.js → call-DLBaLOHo.js} +1 -1
  16. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  17. package/dist/{channel-options-C8HEh0Jh.js → channel-options-Cj-xJAMD.js} +2 -2
  18. package/dist/{channel-options-HrNuXx3g.js → channel-options-DckWOMWG.js} +1 -1
  19. package/dist/{channel-selection-BYRDrp1h.js → channel-selection-p35DYzAL.js} +1 -1
  20. package/dist/{channels-cli-DRXVUZVd.js → channels-cli-CIq4PFA0.js} +59 -59
  21. package/dist/{channels-cli-DTRTIR0y.js → channels-cli-Y8CGJ_qQ.js} +17 -17
  22. package/dist/{channels-status-issues-CCl5veUF.js → channels-status-issues-GSsGZvfn.js} +1 -1
  23. package/dist/{chrome-R_zreHQs.js → chrome-BgQbis3t.js} +7 -7
  24. package/dist/{chrome-DeANsMHC.js → chrome-DYKZHZ9k.js} +2 -2
  25. package/dist/{chrome-BSrczqdD.js → chrome-b556dOQ6.js} +9 -9
  26. package/dist/{chrome-Dpt5h40c.js → chrome-sQI2Ex5S.js} +7 -7
  27. package/dist/{cli-NVoyNwL_.js → cli--omJsLkl.js} +52 -52
  28. package/dist/{cli-t18ocz3t.js → cli-iz9sMJ9d.js} +14 -14
  29. package/dist/{client-3Wn4QAzR.js → client-D8iTVY4F.js} +3 -3
  30. package/dist/{command-registry-Dq-URnUH.js → command-registry-bozDt85D.js} +11 -11
  31. package/dist/{commands-DEQrzkzc.js → commands-CHkx0oTl.js} +1 -1
  32. package/dist/{commands-registry-DN1LiqOB.js → commands-registry-BO62ZyK2.js} +2 -2
  33. package/dist/{commands-registry-CfoaeBjv.js → commands-registry-CY-QAK3n.js} +3 -3
  34. package/dist/{completion-cli-DTUgu6s6.js → completion-cli-9qQYFUPk.js} +2 -2
  35. package/dist/{completion-cli-Ognzzh5u.js → completion-cli-FXkVKM19.js} +1 -1
  36. package/dist/{config-cli-BhUF3oku.js → config-cli-BexhS7Qb.js} +1 -1
  37. package/dist/{config-cli-CWhQ62DB.js → config-cli-C3D7beGW.js} +1 -1
  38. package/dist/{config-guard-C_uscuUh.js → config-guard-I1mvbCOr.js} +1 -1
  39. package/dist/{configure-DzNIkSm_.js → configure-0e3ty1G9.js} +6 -6
  40. package/dist/{configure-C4pZmiRa.js → configure-BWXNd2TO.js} +10 -10
  41. package/dist/{consolidate-Dl8KwVc8.js → consolidate-D1GUJ5qq.js} +1 -1
  42. package/dist/{control-service-D_yArX3I.js → control-service-BDMq-0pg.js} +3 -3
  43. package/dist/{control-service-B_cTcCiN.js → control-service-D3BYG-FJ.js} +3 -3
  44. package/dist/{conversation-label-D9In_j9D.js → conversation-label-CPUfoQmh.js} +1 -1
  45. package/dist/{conversation-label-ErntvxLV.js → conversation-label-CfwDE1_Q.js} +1 -1
  46. package/dist/{cron-cli-Baox5Ek2.js → cron-cli-A0c5t2V9.js} +1 -1
  47. package/dist/{cron-cli-DojoU32-.js → cron-cli-DvDr2Uxo.js} +3 -3
  48. package/dist/{daemon-cli-DbP7O7HT.js → daemon-cli-CbqjLPV8.js} +3 -3
  49. package/dist/{daemon-cli-BA_y7Ul0.js → daemon-cli-DiLogoCM.js} +2 -2
  50. package/dist/{deliver-DmDZ-ctY.js → deliver-B_Gz2_tA.js} +13 -13
  51. package/dist/{deliver-hSoD8wz7.js → deliver-B_jXI55b.js} +4 -4
  52. package/dist/{deliver-CspEtj74.js → deliver-CRqS1O8w.js} +5 -5
  53. package/dist/{devices-cli-DYdWxU06.js → devices-cli-BFPrh5bu.js} +2 -2
  54. package/dist/{devices-cli-DWZAzDCp.js → devices-cli-BRqbjkNA.js} +1 -1
  55. package/dist/{diagnostic-ntB3cjZB.js → diagnostic-BevbDWGa.js} +1 -1
  56. package/dist/{diagnostic-DqlT8R50.js → diagnostic-BvZmqxYI.js} +1 -1
  57. package/dist/{directory-cli-C0reFcyU.js → directory-cli-rhATy7j5.js} +2 -2
  58. package/dist/{dm-policy-shared-D65DpO9M.js → dm-policy-shared-CC_pbZzd.js} +2 -2
  59. package/dist/{dock-CNe0XqQg.js → dock-Cq5LxV1L.js} +1 -1
  60. package/dist/{docs-cli-wk6KuHiF.js → docs-cli-D2hhvfad.js} +2 -2
  61. package/dist/{doctor-completion-BRWDuSW_.js → doctor-completion-CcHk8myN.js} +1 -1
  62. package/dist/{doctor-completion-BMnWLOlk.js → doctor-completion-K1dL1s3P.js} +1 -1
  63. package/dist/{doctor-config-flow-CIk-HHyn.js → doctor-config-flow-DlX_L8Y-.js} +1 -1
  64. package/dist/entry.js +1 -1
  65. package/dist/{errors-BEU7IHU6.js → errors-C6sHIFo_.js} +1 -1
  66. package/dist/{errors-D1uOCNHg.js → errors-TVUWuVoP.js} +1 -1
  67. package/dist/{exec-approvals-DhYCjuCW.js → exec-approvals-B8n8es8o.js} +1 -1
  68. package/dist/{exec-approvals-cli-CnUE6k76.js → exec-approvals-cli-DxvIsIQi.js} +2 -2
  69. package/dist/{exec-approvals-cli-Ygr7-96O.js → exec-approvals-cli-SDF4LICf.js} +4 -4
  70. package/dist/extensionAPI.js +21 -21
  71. package/dist/{fetch-guard-CwHhFING.js → fetch-guard--i1VgM2O.js} +2 -2
  72. package/dist/format-relative-Cyq001S7.js +55 -0
  73. package/dist/{gateway-cli-Td7zBs4m.js → gateway-cli-CAFWFnSX.js} +32 -135
  74. package/dist/{gateway-cli-wUaprQur.js → gateway-cli-CzD6faIt.js} +78 -181
  75. package/dist/{gateway-rpc-NAHyafFD.js → gateway-rpc-o8CJkHuM.js} +1 -1
  76. package/dist/{glass-ui-ws-CxvVsiJq.js → glass-ui-ws-Bbs2mIij.js} +67 -67
  77. package/dist/{glass-ui-ws-BjkYXSwe.js → glass-ui-ws-Dsez9bGF.js} +24 -24
  78. package/dist/{health-CIzrf_uX.js → health-CvdEEMPS.js} +14 -33
  79. package/dist/{health-CNPl11m6.js → health-iJ9JzccO.js} +11 -30
  80. package/dist/{hooks-cli-Bk8dDCle.js → hooks-cli-BEYoHsqh.js} +15 -15
  81. package/dist/{hooks-cli-D8MQxNS9.js → hooks-cli-DNlmk6eB.js} +53 -53
  82. package/dist/{inbound-context-hLZdoPqa.js → inbound-context-BtKMS2C8.js} +2 -2
  83. package/dist/{inbound-context-oMKUczD-.js → inbound-context-OpYa4EXl.js} +2 -2
  84. package/dist/index.js +18 -18
  85. package/dist/{installs-DgzIQM1_.js → installs-D0_bsQwa.js} +1 -1
  86. package/dist/llm-slug-generator.js +4 -4
  87. package/dist/{logs-cli-CHRBJi-e.js → logs-cli--Wek899G.js} +3 -3
  88. package/dist/{manager-DjOT_gPA.js → manager-9Rt8-xIT.js} +6 -6
  89. package/dist/{manager-D6TMbS9L.js → manager-Bmh-pcUv.js} +1 -1
  90. package/dist/{manager-CuY92F3I.js → manager-CS1vxold.js} +1 -1
  91. package/dist/{manager-BYyUh3ad.js → manager-Do0-i7vp.js} +3 -3
  92. package/dist/{markdown-tables-D5SmTwnx.js → markdown-tables-BtWlyyt1.js} +1 -1
  93. package/dist/{markdown-tables-Cguh6m77.js → markdown-tables-CCOfinlW.js} +1 -1
  94. package/dist/{memory-BSbaqEiH.js → memory-BduQaKuC.js} +4 -4
  95. package/dist/{memory-cli-BR0HDrhc.js → memory-cli-BCz9iNCM.js} +5 -5
  96. package/dist/{memory-cli-CMfGKcfs.js → memory-cli-LXH0BNmI.js} +2 -2
  97. package/dist/{memory-D70bi98u.js → memory-ofHIUCzf.js} +2 -2
  98. package/dist/{model-catalog-DkDIZfHs.js → model-catalog-zuX3pwF5.js} +1 -1
  99. package/dist/{model-picker-DhjQC0WT.js → model-picker-DCkIP0W7.js} +1 -1
  100. package/dist/{models-BH8EXme8.js → models-DTHdIg0A.js} +7 -7
  101. package/dist/{models-cli-LCDfv_g7.js → models-cli-CdL5Tf5E.js} +55 -55
  102. package/dist/{models-cli-BfqpHV6D.js → models-cli-DrJsggrX.js} +16 -16
  103. package/dist/{node-cli-BSUx_E8m.js → node-cli-CjA21eC1.js} +17 -17
  104. package/dist/{node-cli-B8qXf9pn.js → node-cli-Dl-lvH1N.js} +6 -6
  105. package/dist/{nodes-cli-CVCNx2XE.js → nodes-cli-C9pjIduh.js} +3 -3
  106. package/dist/{nodes-cli-1Ox4zC7f.js → nodes-cli-DHcCJ6Jo.js} +4 -4
  107. package/dist/{onboard-DMa4CEAw.js → onboard-3VcPRZV5.js} +6 -6
  108. package/dist/{onboard-CejQrDu1.js → onboard-Cr1Rd93U.js} +3 -3
  109. package/dist/{onboard-channels-AEIKTueF.js → onboard-channels-CXqIlUcV.js} +1 -1
  110. package/dist/{onboard-channels-DMzIMYs2.js → onboard-channels-DmvTuYe_.js} +3 -3
  111. package/dist/{onboard-custom-BJL976dk.js → onboard-custom-C0GtEEDP.js} +2 -2
  112. package/dist/{onboard-helpers-BhDEF1N9.js → onboard-helpers-C5J9vSm2.js} +1 -1
  113. package/dist/{onboard-helpers-B7dgGjmj.js → onboard-helpers-LbRPhqLj.js} +1 -1
  114. package/dist/{onboard-remote-Nz0oZ9Y1.js → onboard-remote-D3CWFQ0_.js} +1 -1
  115. package/dist/{onboard-remote-DjtEL91M.js → onboard-remote-DRnsw2VC.js} +1 -1
  116. package/dist/{onboard-skills-VKqXJgZC.js → onboard-skills-C6FIDEFz.js} +2 -2
  117. package/dist/{onboard-skills-4w2Z-aN7.js → onboard-skills-CTv0hBJv.js} +1 -1
  118. package/dist/{onboarding-i6cOoB8w.js → onboarding-Bop5peq2.js} +7 -7
  119. package/dist/{onboarding-DY2WmtMY.js → onboarding-D_wPq7hv.js} +10 -10
  120. package/dist/{onboarding.finalize-_5bvtIQq.js → onboarding.finalize-DGwAMlRi.js} +30 -30
  121. package/dist/{onboarding.finalize-Bg5mQNb8.js → onboarding.finalize-Pa0bEFjp.js} +13 -13
  122. package/dist/{onboarding.gateway-config-H4bMrlmu.js → onboarding.gateway-config-BT8nU-bQ.js} +6 -6
  123. package/dist/{onboarding.gateway-config-ByjssyeH.js → onboarding.gateway-config-aIrdqmcQ.js} +3 -3
  124. package/dist/{openai-model-default-DPRLcgQH.js → openai-model-default-BiSllV8d.js} +1 -1
  125. package/dist/{outbound-send-deps-BRozM9Qu.js → outbound-send-deps-WKDU2JsO.js} +1 -1
  126. package/dist/{pairing-cli-CE196_ar.js → pairing-cli-C7HoBU3D.js} +2 -2
  127. package/dist/{pairing-store-D2taxx-V.js → pairing-store-CtYJcUUv.js} +1 -1
  128. package/dist/{path-env-BnawVaJZ.js → path-env-DmaMvYrK.js} +1 -1
  129. package/dist/{paths-FR_Zltu5.js → paths-CsQkeUQ3.js} +1 -1
  130. package/dist/{pi-embedded-helpers-qwidIQ0-.js → pi-embedded-helpers-DnAXWUyj.js} +3 -3
  131. package/dist/{pi-embedded-helpers-CBbg0u1B.js → pi-embedded-helpers-VZo1D4Ck.js} +1 -1
  132. package/dist/{pi-embedded-2uW-V2_B.js → pi-embedded-hri4e4ie.js} +134 -146
  133. package/dist/{pi-tools.policy-D9pOmEQ-.js → pi-tools.policy-D-WJTlz8.js} +2 -2
  134. package/dist/{pi-tools.policy-iVo2Y8pC.js → pi-tools.policy-DrRZdkk0.js} +1 -1
  135. package/dist/{plugin-registry-DesFs-lT.js → plugin-registry-CYEwOWqU.js} +1 -1
  136. package/dist/{plugin-registry-BTnpe85A.js → plugin-registry-q_UuFncy.js} +1 -1
  137. package/dist/plugin-sdk/commands/health.d.ts +9 -2
  138. package/dist/plugin-sdk/cron/service/state.d.ts +0 -19
  139. package/dist/plugin-sdk/gateway/server-chat.d.ts +4 -2
  140. package/dist/plugin-sdk/index.js +6 -6
  141. package/dist/{plugins-CYQsm6Gy.js → plugins-Bq-Msc8Z.js} +1 -1
  142. package/dist/{plugins-B7WCtuxh.js → plugins-Cp39v6b_.js} +1 -1
  143. package/dist/{plugins-cli-CDzxsvz1.js → plugins-cli-CR1PAkGv.js} +15 -15
  144. package/dist/{plugins-cli--tOOkoDQ.js → plugins-cli-DE_0PdqM.js} +56 -56
  145. package/dist/{ports-l6UxKpOs.js → ports-BAzQoIw0.js} +1 -1
  146. package/dist/{ports-zGrc4d1W.js → ports-Cv4kt1bT.js} +1 -1
  147. package/dist/{program-context-BY8NYfiK.js → program-context-CvgJOZ3Q.js} +30 -30
  148. package/dist/{program-BZhol11z.js → program-x8XxEZXE.js} +60 -60
  149. package/dist/{prompt-select-styled-B2aJWja2.js → prompt-select-styled-BFV2QYJC.js} +17 -17
  150. package/dist/{prompt-select-styled-C3nimTHU.js → prompt-select-styled-CFeLUnsr.js} +9 -9
  151. package/dist/{provider-auth-helpers-Bj1nZPu8.js → provider-auth-helpers-C-Cv3SZA.js} +1 -1
  152. package/dist/{provider-auth-helpers-CH6VuvFG.js → provider-auth-helpers-D2GLBV7U.js} +1 -1
  153. package/dist/{push-apns-CeHCKJbK.js → push-apns-9XQgEWxs.js} +2 -2
  154. package/dist/{push-apns-CtKaAgsq.js → push-apns-DTqLWoEj.js} +1 -1
  155. package/dist/{pw-ai-ClV-zlpc.js → pw-ai-BFZrohva.js} +5 -5
  156. package/dist/{pw-ai-CJKI3qHq.js → pw-ai-Bb4P23-n.js} +1 -1
  157. package/dist/{pw-ai-rXNKcFeh.js → pw-ai-Cnc8PGzN.js} +5 -5
  158. package/dist/{pw-ai-DPc3vKQE.js → pw-ai-D5WlMgqy.js} +1 -1
  159. package/dist/{qmd-manager-DI6Vda-c.js → qmd-manager-94nTSYk_.js} +2 -2
  160. package/dist/{qmd-manager-M1vvSTXY.js → qmd-manager-DKAr0zp6.js} +4 -4
  161. package/dist/{redact-identifier-CfInlG0d.js → redact-identifier-gZfj5mH2.js} +3 -3
  162. package/dist/{register.agent-nDeqoEBI.js → register.agent-C-p6kDhf.js} +19 -19
  163. package/dist/{register.agent-CHXxDzgP.js → register.agent-D9FfFyh0.js} +63 -63
  164. package/dist/{register.configure-CLzf9xIS.js → register.configure-CtbO9t7v.js} +66 -66
  165. package/dist/{register.configure-Cz88IOI3.js → register.configure-D69HXLo4.js} +22 -22
  166. package/dist/{register.maintenance-BmefpzAo.js → register.maintenance-Dy8l8hKt.js} +22 -22
  167. package/dist/{register.maintenance-BlwrUHuN.js → register.maintenance-h-CVvMpP.js} +64 -64
  168. package/dist/{register.message-381Gzih6.js → register.message-CaOagrcp.js} +15 -15
  169. package/dist/{register.message-CNVSGcGw.js → register.message-DFytf1Dr.js} +54 -54
  170. package/dist/{register.onboard-BrP6ecWc.js → register.onboard-BAQSWmTB.js} +15 -15
  171. package/dist/{register.onboard-BRGrlQ6x.js → register.onboard-SunldfQB.js} +6 -6
  172. package/dist/{register.setup-T-EUrPCt.js → register.setup-BnuPTj2h.js} +15 -15
  173. package/dist/{register.setup-CGrdvPa6.js → register.setup-D3uuohUQ.js} +6 -6
  174. package/dist/{register.status-health-sessions-CoGgKqEf.js → register.status-health-sessions-CPcQpUNU.js} +15 -15
  175. package/dist/{register.status-health-sessions-Bx_iO3kS.js → register.status-health-sessions-azKiEST-.js} +37 -37
  176. package/dist/{register.subclis-qyJoKa4o.js → register.subclis-Di2DRNVF.js} +21 -21
  177. package/dist/{replies-OFj_EOj5.js → replies-CgVOirGF.js} +3 -3
  178. package/dist/{replies-DSI8-9wG.js → replies-pnMj7AtP.js} +5 -5
  179. package/dist/{resolve-route-B9mYSvxa.js → resolve-route-BoF_Jubb.js} +1 -1
  180. package/dist/{resolve-route-CIfYQ5xq.js → resolve-route-D0TboSMz.js} +1 -1
  181. package/dist/{routes-NdLw86IB.js → routes-BFfAPz_0.js} +2 -2
  182. package/dist/{routes-CAawDNn6.js → routes-MX2zYTZX.js} +5 -5
  183. package/dist/{rpc-CDODOtj5.js → rpc-CQUsmQ6_.js} +1 -1
  184. package/dist/{run-main-BHMJnAMQ.js → run-main-BhJ6M7oy.js} +70 -70
  185. package/dist/{sandbox-CNDuaUiX.js → sandbox-DzRvFxeE.js} +4 -4
  186. package/dist/{sandbox-cli-BlHtlDaZ.js → sandbox-cli-Dyh_eqHp.js} +4 -4
  187. package/dist/{sandbox-cli-Cz20gLjw.js → sandbox-cli-WYHWWki_.js} +18 -18
  188. package/dist/{sandbox-CTHB6H4C.js → sandbox-sayuve7z.js} +3 -3
  189. package/dist/{security-cli-DylPM6Ig.js → security-cli-B5XGCe-n.js} +8 -8
  190. package/dist/{security-cli-MDg9FjM6.js → security-cli-qZaxHyoZ.js} +24 -24
  191. package/dist/{send-mIYdlk2s.js → send-CLJ2KPVT.js} +7 -7
  192. package/dist/{server-context-rB9SYwsp.js → server-context-CCPE_W8C.js} +8 -8
  193. package/dist/{server-context-k4u5vRZi.js → server-context-hxl_K7eY.js} +4 -4
  194. package/dist/{server-methods-ghMYekWt.js → server-methods-3uA_KwN4.js} +42 -110
  195. package/dist/{server-methods-CdvcMCRG.js → server-methods-MUFuMWc_.js} +29 -97
  196. package/dist/{server-node-events-BNSYLnuV.js → server-node-events-DkbyHj1T.js} +55 -56
  197. package/dist/{server-node-events-BVkXlMva.js → server-node-events-FUPulMjB.js} +16 -17
  198. package/dist/{session-cost-usage-CfsM7H0Q.js → session-cost-usage-Cj3vd7lZ.js} +2 -2
  199. package/dist/{session-utils-C0bflN4H.js → session-utils-i74hYiQl.js} +3 -3
  200. package/dist/{sessions-BPopgS75.js → sessions-7jk0D1BI.js} +7 -7
  201. package/dist/{sessions-CYQHaOxG.js → sessions-CC1W02Uv.js} +4 -4
  202. package/dist/{skill-commands-z0KmSE3J.js → skill-commands-CEY0MdSm.js} +2 -2
  203. package/dist/{skill-commands-DeC3iib8.js → skill-commands-DzodvMO3.js} +1 -1
  204. package/dist/{skill-scanner-B8r_rZEC.js → skill-scanner-DkITukAS.js} +1 -1
  205. package/dist/{skills-install-ClrjL0Ky.js → skills-install-BMhIk6vI.js} +3 -3
  206. package/dist/{skills-DfN7C42D.js → skills-xmXjOnAV.js} +1 -1
  207. package/dist/{sqlite-Byzf46k1.js → sqlite-jFnvSfLz.js} +1 -1
  208. package/dist/{sqlite-BbZDaxh_.js → sqlite-l3CZYU6t.js} +3 -3
  209. package/dist/{ssrf-_EUCeS6M.js → ssrf-BJZIZ4yo.js} +1 -1
  210. package/dist/{status-CA91ksCO.js → status-B-XD80Yl.js} +15 -32
  211. package/dist/{status-DiACHWF5.js → status-BNH-f3PA.js} +1 -1
  212. package/dist/{status-Di-HVgWZ.js → status-C7F7r-qN.js} +23 -40
  213. package/dist/{status-Cb3Z8-6G.js → status-CCgqMBwp.js} +1 -1
  214. package/dist/{status.update-CWfIVmkl.js → status.update-B9WCVHPy.js} +1 -1
  215. package/dist/{status.update-CvLaHuo8.js → status.update-CN2XgChL.js} +1 -1
  216. package/dist/{subagent-registry-DBEoimsW.js → subagent-registry-z08a8MUS.js} +158 -170
  217. package/dist/{synthesis-CUkTal9I.js → synthesis-ByjLMHMS.js} +21 -21
  218. package/dist/{synthesis-BN721xB_.js → synthesis-CjFmYp54.js} +14 -14
  219. package/dist/{synthesis-Bns-7weZ.js → synthesis-D4iCZvKx.js} +52 -52
  220. package/dist/{synthesis-DUSKxRis.js → synthesis-Dlweuq0p.js} +4 -4
  221. package/dist/{system-cli-BmxEcLwZ.js → system-cli-Ccu9utFt.js} +3 -3
  222. package/dist/{thinking-BOmbt-UE.js → thinking-BKsvyjWX.js} +1 -1
  223. package/dist/{local-roots-_IZuPEVo.js → tokens-CGqnWNmv.js} +14 -14
  224. package/dist/{tool-display-DEnDm47O.js → tool-display-wSdT0Ynz.js} +1 -1
  225. package/dist/{tui-CTTzBqcG.js → tui-DqMRn1zF.js} +3 -3
  226. package/dist/{tui-DsWy0Fh9.js → tui-JznxMYj0.js} +6 -6
  227. package/dist/{tui-cli-DFXREWDD.js → tui-cli-Cc_TS4LH.js} +24 -24
  228. package/dist/{tui-cli-CDwT7lxE.js → tui-cli-sRKxOjmC.js} +8 -8
  229. package/dist/{unified-runner-DjK_xANW.js → unified-runner-CBVGL54b.js} +13 -25
  230. package/dist/{unified-runner-CDyedWS-.js → unified-runner-Uyw1gZOm.js} +16 -28
  231. package/dist/{update-DwUiNQcY.js → update-JtKX2Yl3.js} +1 -1
  232. package/dist/{update-check-D-VbogcH.js → update-check-C1JNxsic.js} +1 -1
  233. package/dist/{update-cli-DHiMZjnT.js → update-cli-BbtFbkK5.js} +24 -24
  234. package/dist/{update-cli-4gg0S9NF.js → update-cli-CH7SLjSd.js} +69 -69
  235. package/dist/{update-runner-Bhpg9A9O.js → update-runner-B0L2a2rW.js} +1 -1
  236. package/dist/{update-runner-B4AuR2P1.js → update-runner-BGhhL2R8.js} +2 -2
  237. package/dist/{with-timeout-BxFWn7qW.js → with-timeout-BsavN1IH.js} +1 -1
  238. package/dist/{with-timeout-4X39bfAZ.js → with-timeout-Bxn0qVBQ.js} +1 -1
  239. package/package.json +1 -1
  240. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +0 -38
  241. package/dist/plugin-sdk/infra/heartbeat-visibility.d.ts +0 -12
  242. package/dist/plugin-sdk/infra/heartbeat-wake.d.ts +0 -25
  243. /package/dist/{brew-ChhP5U7g.js → brew-B5ek79r9.js} +0 -0
  244. /package/dist/{chat-type-Coeec2xt.js → chat-type-BYHUZIi_.js} +0 -0
  245. /package/dist/{chat-type-DedJJ5qX.js → chat-type-C_KiWNAH.js} +0 -0
  246. /package/dist/{chunk-Dsb1i5-M.js → chunk-BjnT3w_x.js} +0 -0
  247. /package/dist/{chunk-DSZSgT0v.js → chunk-BySyfaEr.js} +0 -0
  248. /package/dist/{diagnostic-session-state-CXCbqRxw.js → diagnostic-session-state-CWtaDOiK.js} +0 -0
  249. /package/dist/{diagnostic-session-state-C9jKr8qI.js → diagnostic-session-state-Zw87xFym.js} +0 -0
  250. /package/dist/{fetch-timeout-BL0dTnkh.js → fetch-timeout-PV2_ySyb.js} +0 -0
  251. /package/dist/{fs-safe-DWwr539k.js → fs-safe-DzJT_iD4.js} +0 -0
  252. /package/dist/{image-ops-BnrOBRvo.js → image-ops-CZPSKxgE.js} +0 -0
  253. /package/dist/{internal-JPGteS8Q.js → internal-BuBDa4KX.js} +0 -0
  254. /package/dist/{local-roots-B5gzKk2b.js → local-roots-CkcUju_2.js} +0 -0
  255. /package/dist/{manifest-registry-Cb-8fZPE.js → manifest-registry-BV_2TbGz.js} +0 -0
  256. /package/dist/{models-config-BtqIc3fj.js → models-config-BfmuswQ_.js} +0 -0
  257. /package/dist/{paths-DftOuF96.js → paths-CNexk5_o.js} +0 -0
  258. /package/dist/{redact-Dx6iZvON.js → redact-KvsGzUFH.js} +0 -0
  259. /package/dist/{redact-DSOAcWMe.js → redact-ojHFHOAb.js} +0 -0
  260. /package/dist/{reply-prefix-BRb0MDfZ.js → reply-prefix-CRdCnS44.js} +0 -0
  261. /package/dist/{shell-argv-osL1ekUp.js → shell-argv-N_ZB4iHX.js} +0 -0
  262. /package/dist/{ssrf-HJ6PoEEw.js → ssrf-jKt8PSDl.js} +0 -0
  263. /package/dist/{tailscale-BDyCAsla.js → tailscale-BsA0YClX.js} +0 -0
  264. /package/dist/{thinking-C72VJ9y9.js → thinking-BDh5LPh-.js} +0 -0
  265. /package/dist/{tokens-CjSCsuyC.js → tokens-DJQ4rO24.js} +0 -0
  266. /package/dist/{transcript-events-DhcCZGEX.js → transcript-events-C1GkbPky.js} +0 -0
  267. /package/dist/{transcript-tools-cLCK4A-E.js → transcript-tools-Cxxsyxgt.js} +0 -0
  268. /package/dist/{trash-GNdXK_zw.js → trash-CF1G530Y.js} +0 -0
  269. /package/dist/{update-check-DFfE95SZ.js → update-check-CC111uwU.js} +0 -0
@@ -7,32 +7,32 @@ import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as cre
7
7
  import { $ as resolveCliName, B as resolveApiKeyForProfile, C as requireApiKey, D as getShellPathFromLoginShell, E as resolveModelAuthMode, F as resolveAuthProfileOrder, G as resolveAuthStorePathForDisplay, H as listProfilesForProvider, I as getSoonestCooldownExpiry, K as resolveSymiAgentDir, L as isProfileInCooldown, M as isTruthyEnvValue, N as parseBooleanValue, Q as formatCliCommand, R as markAuthProfileFailure, S as getCustomProviderApiKey, T as resolveEnvApiKey, U as markAuthProfileGood, V as dedupeProfileIds, W as ensureAuthProfileStore, Z as normalizeSecretInput, _ as resolveImplicitCopilotProvider, a as modelKey, b as createOllamaStreamFn, d as resolveModelRefFromString, et as resolveAuthProfileDisplayLabel, f as resolveSubagentSpawnModelSelection, g as resolveImplicitBedrockProvider, h as normalizeProviders, i as findNormalizedProviderValue, k as resolveShellEnvFallbackTimeoutMs, l as resolveConfiguredModelRef, m as normalizeGoogleModelId, n as buildConfiguredAllowlistKeys, nt as DEFAULT_MODEL, o as normalizeModelRef$1, p as resolveThinkingDefault, q as withFileLock$1, r as buildModelAliasIndex, rt as DEFAULT_PROVIDER, s as normalizeProviderId, t as buildAllowedModelSet, tt as DEFAULT_CONTEXT_TOKENS, u as resolveDefaultModelForAgent, v as resolveImplicitProviders, w as resolveApiKeyForProvider, x as getApiKeyForModel, y as OLLAMA_NATIVE_BASE_URL, z as markAuthProfileUsed } from "./model-selection-BE83O-pv.js";
8
8
  import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BqgLflxO.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BbsJ0Qbo.js";
10
- import { C as HEARTBEAT_TOKEN, E as isSilentReplyText, T as SYMIPULSE_TOKEN, _ as MAX_IMAGE_BYTES, d as extensionForMime, f as getFileExtension, g as normalizeMimeType$1, h as kindFromMime, l as resizeToJpeg, m as isAudioFileName, n as getDefaultMediaLocalRoots, o as getImageMetadata, p as imageMimeFromFormat, u as detectMime, w as SILENT_REPLY_TOKEN, y as mediaKindFromMime } from "./local-roots-_IZuPEVo.js";
11
- import { t as normalizeChatType } from "./chat-type-Coeec2xt.js";
12
- import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-B7WCtuxh.js";
13
- 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-DSI8-9wG.js";
14
- 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-DmDZ-ctY.js";
15
- import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-DqlT8R50.js";
16
- import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CXCbqRxw.js";
17
- 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-Dsb1i5-M.js";
18
- import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, m as parseDurationMs, o as normalizeHostname, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-_EUCeS6M.js";
19
- import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-Cb-8fZPE.js";
20
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BSrczqdD.js";
21
- 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-DfN7C42D.js";
22
- import { n as redactToolDetail } from "./redact-DSOAcWMe.js";
23
- import { n as formatErrorMessage } from "./errors-BEU7IHU6.js";
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-BOmbt-UE.js";
25
- import { n as resolveConversationLabel } from "./conversation-label-ErntvxLV.js";
10
+ import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
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";
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
+ import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CWtaDOiK.js";
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";
17
+ import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, m as parseDurationMs, o as normalizeHostname, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-BJZIZ4yo.js";
18
+ import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-BV_2TbGz.js";
19
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-b556dOQ6.js";
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
+ import { n as redactToolDetail } from "./redact-ojHFHOAb.js";
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";
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
+ 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-BYyUh3ad.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";
29
29
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DWs9CjHs.js";
30
- import { n as resolveMarkdownTableMode } from "./markdown-tables-D5SmTwnx.js";
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-DN1LiqOB.js";
32
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile$1, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-z0KmSE3J.js";
33
- import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-oMKUczD-.js";
30
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BtWlyyt1.js";
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";
32
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile$1, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CEY0MdSm.js";
33
+ import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-OpYa4EXl.js";
34
34
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DZDhVxut.js";
35
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CIfYQ5xq.js";
35
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D0TboSMz.js";
36
36
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-BXOVPAoA.js";
37
37
  import { createRequire } from "node:module";
38
38
  import * as path$1 from "node:path";
@@ -49,7 +49,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
49
49
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
50
50
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
51
51
  import AjvPkg from "ajv";
52
- import { WebSocket as WebSocket$1 } from "ws";
52
+ import { WebSocket } from "ws";
53
53
  import { Buffer as Buffer$1 } from "node:buffer";
54
54
  import { createJiti } from "jiti";
55
55
  import { Type } from "@sinclair/typebox";
@@ -59,101 +59,6 @@ import { spinner } from "@clack/prompts";
59
59
  import { createOscProgressController, supportsOscProgress } from "osc-progress";
60
60
  import SlackBolt from "@slack/bolt";
61
61
 
62
- //#region src/auto-reply/heartbeat.ts
63
- const HEARTBEAT_PROMPT = "Read SYMIPULSE.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply SYMIPULSE_OK.";
64
- const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
65
- function resolveHeartbeatPrompt(raw) {
66
- return (typeof raw === "string" ? raw.trim() : "") || HEARTBEAT_PROMPT;
67
- }
68
- function stripTokenAtEdges(raw) {
69
- let text = raw.trim();
70
- if (!text) return {
71
- text: "",
72
- didStrip: false
73
- };
74
- const token = SYMIPULSE_TOKEN;
75
- const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
76
- if (!text.includes(token)) return {
77
- text,
78
- didStrip: false
79
- };
80
- let didStrip = false;
81
- let changed = true;
82
- while (changed) {
83
- changed = false;
84
- const next = text.trim();
85
- if (next.startsWith(token)) {
86
- text = next.slice(token.length).trimStart();
87
- didStrip = true;
88
- changed = true;
89
- continue;
90
- }
91
- if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
92
- const idx = next.lastIndexOf(token);
93
- const before = next.slice(0, idx).trimEnd();
94
- if (!before) text = "";
95
- else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
96
- didStrip = true;
97
- changed = true;
98
- }
99
- }
100
- return {
101
- text: text.replace(/\s+/g, " ").trim(),
102
- didStrip
103
- };
104
- }
105
- function stripHeartbeatToken(raw, opts = {}) {
106
- if (!raw) return {
107
- shouldSkip: true,
108
- text: "",
109
- didStrip: false
110
- };
111
- const trimmed = raw.trim();
112
- if (!trimmed) return {
113
- shouldSkip: true,
114
- text: "",
115
- didStrip: false
116
- };
117
- const mode = opts.mode ?? "message";
118
- const maxAckCharsRaw = opts.maxAckChars;
119
- const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
120
- const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
121
- const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
122
- const trimmedNormalized = stripMarkup(trimmed);
123
- if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
124
- shouldSkip: false,
125
- text: trimmed,
126
- didStrip: false
127
- };
128
- const strippedOriginal = stripTokenAtEdges(trimmed);
129
- const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
130
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
131
- if (!picked.didStrip) return {
132
- shouldSkip: false,
133
- text: trimmed,
134
- didStrip: false
135
- };
136
- if (!picked.text) return {
137
- shouldSkip: true,
138
- text: "",
139
- didStrip: true
140
- };
141
- const rest = picked.text.trim();
142
- if (mode === "heartbeat") {
143
- if (rest.length <= maxAckChars) return {
144
- shouldSkip: true,
145
- text: "",
146
- didStrip: true
147
- };
148
- }
149
- return {
150
- shouldSkip: false,
151
- text: rest,
152
- didStrip: true
153
- };
154
- }
155
-
156
- //#endregion
157
62
  //#region src/channels/channel-config.ts
158
63
  function applyChannelMatchMeta(result, match) {
159
64
  if (match.matchKey && match.matchSource) {
@@ -1111,7 +1016,7 @@ async function getMemorySearchManager(params) {
1111
1016
  if (cached) return { manager: cached };
1112
1017
  }
1113
1018
  try {
1114
- const { QmdMemoryManager } = await import("./qmd-manager-DI6Vda-c.js");
1019
+ const { QmdMemoryManager } = await import("./qmd-manager-94nTSYk_.js");
1115
1020
  const primary = await QmdMemoryManager.create({
1116
1021
  cfg: params.cfg,
1117
1022
  agentId: params.agentId,
@@ -1123,7 +1028,7 @@ async function getMemorySearchManager(params) {
1123
1028
  const wrapper = new FallbackMemoryManager({
1124
1029
  primary,
1125
1030
  fallbackFactory: async () => {
1126
- const { MemoryIndexManager } = await import("./manager-BYyUh3ad.js").then((n) => n.t);
1031
+ const { MemoryIndexManager } = await import("./manager-Do0-i7vp.js").then((n) => n.t);
1127
1032
  return await MemoryIndexManager.get(params);
1128
1033
  }
1129
1034
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -1136,7 +1041,7 @@ async function getMemorySearchManager(params) {
1136
1041
  }
1137
1042
  }
1138
1043
  try {
1139
- const { MemoryIndexManager } = await import("./manager-BYyUh3ad.js").then((n) => n.t);
1044
+ const { MemoryIndexManager } = await import("./manager-Do0-i7vp.js").then((n) => n.t);
1140
1045
  return { manager: await MemoryIndexManager.get(params) };
1141
1046
  } catch (err) {
1142
1047
  return {
@@ -3652,7 +3557,7 @@ var GatewayClient = class {
3652
3557
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
3653
3558
  });
3654
3559
  }
3655
- this.ws = new WebSocket$1(url, wsOptions);
3560
+ this.ws = new WebSocket(url, wsOptions);
3656
3561
  this.ws.on("open", () => {
3657
3562
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
3658
3563
  const tlsError = this.validateTlsFingerprint();
@@ -3871,7 +3776,7 @@ var GatewayClient = class {
3871
3776
  return null;
3872
3777
  }
3873
3778
  async request(method, params, opts) {
3874
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
3779
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
3875
3780
  const id = randomUUID();
3876
3781
  const frame = {
3877
3782
  type: "req",
@@ -4735,6 +4640,97 @@ function clearSessionQueues(keys) {
4735
4640
  };
4736
4641
  }
4737
4642
 
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
+
4738
4734
  //#endregion
4739
4735
  //#region src/auto-reply/reply/normalize-reply.ts
4740
4736
  function normalizeReplyPayload(payload, opts = {}) {
@@ -4831,7 +4827,7 @@ async function routeReply(params) {
4831
4827
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
4832
4828
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
4833
4829
  try {
4834
- const { deliverOutboundPayloads } = await import("./deliver-DmDZ-ctY.js").then((n) => n.n);
4830
+ const { deliverOutboundPayloads } = await import("./deliver-B_Gz2_tA.js").then((n) => n.n);
4835
4831
  return {
4836
4832
  ok: true,
4837
4833
  messageId: (await deliverOutboundPayloads({
@@ -18801,10 +18797,6 @@ function maxAsk(a, b) {
18801
18797
  return order[a] >= order[b] ? a : b;
18802
18798
  }
18803
18799
 
18804
- //#endregion
18805
- //#region src/infra/heartbeat-wake.ts
18806
- function requestHeartbeatNow(_opts) {}
18807
-
18808
18800
  //#endregion
18809
18801
  //#region src/infra/path-prepend.ts
18810
18802
  function normalizePathPrepend(entries) {
@@ -19824,7 +19816,6 @@ function maybeNotifyOnExit(session, status) {
19824
19816
  const output = compactNotifyOutput(tail(session.tail || session.aggregated || "", DEFAULT_NOTIFY_TAIL_CHARS));
19825
19817
  if (status === "completed" && !output && session.notifyOnExitEmptySuccess !== true) return;
19826
19818
  enqueueSystemEvent(output ? `Exec ${status} (${session.id.slice(0, 8)}, ${exitLabel}) :: ${output}` : `Exec ${status} (${session.id.slice(0, 8)}, ${exitLabel})`, { sessionKey });
19827
- /* @__PURE__ */ requestHeartbeatNow({ reason: `exec:${session.id}:exit` });
19828
19819
  }
19829
19820
  function createApprovalSlug(id) {
19830
19821
  return id.slice(0, APPROVAL_SLUG_LENGTH);
@@ -19841,7 +19832,6 @@ function emitExecSystemEvent(text, opts) {
19841
19832
  sessionKey,
19842
19833
  contextKey: opts.contextKey
19843
19834
  });
19844
- /* @__PURE__ */ requestHeartbeatNow({ reason: "exec-event" });
19845
19835
  }
19846
19836
  async function runExecProcess(opts) {
19847
19837
  const startedAt = Date.now();
@@ -38917,7 +38907,7 @@ async function deliverSessionMaintenanceWarning(params) {
38917
38907
  return;
38918
38908
  }
38919
38909
  try {
38920
- const { deliverOutboundPayloads } = await import("./deliver-DmDZ-ctY.js").then((n) => n.n);
38910
+ const { deliverOutboundPayloads } = await import("./deliver-B_Gz2_tA.js").then((n) => n.n);
38921
38911
  await deliverOutboundPayloads({
38922
38912
  cfg: params.cfg,
38923
38913
  channel,
@@ -43725,7 +43715,7 @@ function shouldEmitLoopWarning(state, warningKey, count) {
43725
43715
  async function recordLoopOutcome(args) {
43726
43716
  if (!args.ctx?.sessionKey) return;
43727
43717
  try {
43728
- const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CXCbqRxw.js").then((n) => n.t);
43718
+ const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CWtaDOiK.js").then((n) => n.t);
43729
43719
  const { recordToolCallOutcome } = await import("./tool-loop-detection-BHtN0mXg.js");
43730
43720
  recordToolCallOutcome(getDiagnosticSessionState({
43731
43721
  sessionKey: args.ctx.sessionKey,
@@ -43746,8 +43736,8 @@ async function runBeforeToolCallHook(args) {
43746
43736
  const toolName = normalizeToolName$1(args.toolName || "tool");
43747
43737
  const params = args.params;
43748
43738
  if (args.ctx?.sessionKey) {
43749
- const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CXCbqRxw.js").then((n) => n.t);
43750
- const { logToolLoopAction } = await import("./diagnostic-DqlT8R50.js").then((n) => n.n);
43739
+ const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CWtaDOiK.js").then((n) => n.t);
43740
+ const { logToolLoopAction } = await import("./diagnostic-BvZmqxYI.js").then((n) => n.n);
43751
43741
  const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BHtN0mXg.js");
43752
43742
  const sessionState = getDiagnosticSessionState({
43753
43743
  sessionKey: args.ctx.sessionKey,
@@ -48362,7 +48352,6 @@ async function runEmbeddedAttempt(params) {
48362
48352
  channelActions
48363
48353
  }
48364
48354
  });
48365
- const isDefaultAgent = sessionAgentId === defaultAgentId;
48366
48355
  const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
48367
48356
  const docsPath = await resolveSymiDocsPath({
48368
48357
  workspaceDir: effectiveWorkspace,
@@ -48379,7 +48368,7 @@ async function runEmbeddedAttempt(params) {
48379
48368
  ownerDisplay: params.config?.commands?.ownerDisplay,
48380
48369
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
48381
48370
  reasoningTagHint,
48382
- heartbeatPrompt: isDefaultAgent ? resolveHeartbeatPrompt(params.config?.agents?.defaults?.heartbeat?.prompt) : void 0,
48371
+ heartbeatPrompt: void 0,
48383
48372
  skillsPrompt,
48384
48373
  docsPath: docsPath ?? void 0,
48385
48374
  workspaceNotes,
@@ -55894,7 +55883,7 @@ function readSlackExternalArgMenuToken(raw) {
55894
55883
  }
55895
55884
  let commandsRegistry;
55896
55885
  async function getCommandsRegistry() {
55897
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DN1LiqOB.js").then((n) => n.t);
55886
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BO62ZyK2.js").then((n) => n.t);
55898
55887
  return commandsRegistry;
55899
55888
  }
55900
55889
  function encodeSlackCommandArgValue(parts) {
@@ -56236,11 +56225,11 @@ async function registerSlackMonitorSlashCommands(params) {
56236
56225
  const channelName = channelInfo?.name;
56237
56226
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
56238
56227
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
56239
- import("./resolve-route-CIfYQ5xq.js").then((n) => n.r),
56240
- import("./inbound-context-oMKUczD-.js").then((n) => n.n),
56228
+ import("./resolve-route-D0TboSMz.js").then((n) => n.r),
56229
+ import("./inbound-context-OpYa4EXl.js").then((n) => n.n),
56241
56230
  Promise.resolve().then(() => provider_dispatcher_exports)
56242
56231
  ]);
56243
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-ErntvxLV.js").then((n) => n.t), import("./reply-prefix-BqgLflxO.js").then((n) => n.n)]);
56232
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-CPUfoQmh.js").then((n) => n.t), import("./reply-prefix-BqgLflxO.js").then((n) => n.n)]);
56244
56233
  const route = resolveAgentRoute({
56245
56234
  cfg,
56246
56235
  channel: "slack",
@@ -56297,9 +56286,9 @@ async function registerSlackMonitorSlashCommands(params) {
56297
56286
  });
56298
56287
  const deliverSlashPayloads = async (replies) => {
56299
56288
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
56300
- import("./replies-DSI8-9wG.js").then((n) => n.r),
56301
- import("./chunk-Dsb1i5-M.js").then((n) => n.s),
56302
- import("./markdown-tables-D5SmTwnx.js").then((n) => n.t)
56289
+ import("./replies-pnMj7AtP.js").then((n) => n.r),
56290
+ import("./chunk-BjnT3w_x.js").then((n) => n.s),
56291
+ import("./markdown-tables-BtWlyyt1.js").then((n) => n.t)
56303
56292
  ]);
56304
56293
  await deliverSlackSlashReplies({
56305
56294
  replies,
@@ -56352,7 +56341,7 @@ async function registerSlackMonitorSlashCommands(params) {
56352
56341
  let nativeCommands = [];
56353
56342
  if (nativeEnabled) {
56354
56343
  reg = await getCommandsRegistry();
56355
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-z0KmSE3J.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
56344
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CEY0MdSm.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
56356
56345
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
56357
56346
  skillCommands,
56358
56347
  provider: "slack"
@@ -59335,7 +59324,6 @@ async function compactEmbeddedPiSessionDirect(params) {
59335
59324
  sessionKey: params.sessionKey,
59336
59325
  config: params.config
59337
59326
  });
59338
- const isDefaultAgent = sessionAgentId === defaultAgentId;
59339
59327
  const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
59340
59328
  const docsPath = await resolveSymiDocsPath({
59341
59329
  workspaceDir: effectiveWorkspace,
@@ -59352,7 +59340,7 @@ async function compactEmbeddedPiSessionDirect(params) {
59352
59340
  ownerDisplay: params.config?.commands?.ownerDisplay,
59353
59341
  ownerDisplaySecret: params.config?.commands?.ownerDisplaySecret ?? params.config?.gateway?.auth?.token ?? params.config?.gateway?.remote?.token,
59354
59342
  reasoningTagHint,
59355
- heartbeatPrompt: isDefaultAgent ? resolveHeartbeatPrompt(params.config?.agents?.defaults?.heartbeat?.prompt) : void 0,
59343
+ heartbeatPrompt: void 0,
59356
59344
  skillsPrompt,
59357
59345
  docsPath: docsPath ?? void 0,
59358
59346
  promptMode,
@@ -2,8 +2,8 @@ import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey }
2
2
  import { r as resolveAgentConfig } from "./agent-scope-8LjCKvga.js";
3
3
  import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-B91360jE.js";
4
4
  import { l as normalizeMessageChannel } from "./message-channel-CNPAq1Tl.js";
5
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-CNDuaUiX.js";
6
- import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-CNe0XqQg.js";
5
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-DzRvFxeE.js";
6
+ import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-Cq5LxV1L.js";
7
7
 
8
8
  //#region src/agents/sandbox-tool-policy.ts
9
9
  function unionAllow(base, extra) {
@@ -1,7 +1,7 @@
1
1
  import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-DUSb7CCb.js";
2
2
  import { r as resolveAgentConfig } from "./agent-scope-2la27US0.js";
3
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-CTHB6H4C.js";
4
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-sayuve7z.js";
5
5
  import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-n_MeJBcj.js";
6
6
  import { l as normalizeMessageChannel } from "./message-channel-j44ChSJV.js";
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as loadSymiPlugins } from "./unified-runner-CDyedWS-.js";
2
+ import { s as loadSymiPlugins } from "./unified-runner-Uyw1gZOm.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-CtguoMhn.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CgepNOk5.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-2la27US0.js";
@@ -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-DBEoimsW.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-z08a8MUS.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,4 @@
1
1
  import type { SymiConfig } from "../config/config.js";
2
- import { type HeartbeatSummary } from "../infra/heartbeat-runner.js";
3
2
  import type { RuntimeEnv } from "../runtime.js";
4
3
  export type ChannelAccountHealthSummary = {
5
4
  accountId: string;
@@ -13,7 +12,15 @@ export type ChannelAccountHealthSummary = {
13
12
  export type ChannelHealthSummary = ChannelAccountHealthSummary & {
14
13
  accounts?: Record<string, ChannelAccountHealthSummary>;
15
14
  };
16
- export type AgentHeartbeatSummary = HeartbeatSummary;
15
+ export type AgentHeartbeatSummary = {
16
+ enabled: boolean;
17
+ every: string | undefined;
18
+ everyMs: number | null;
19
+ prompt: string;
20
+ target: string;
21
+ model?: string;
22
+ ackMaxChars: number;
23
+ };
17
24
  export type AgentHealthSummary = {
18
25
  agentId: string;
19
26
  name?: string;
@@ -1,5 +1,4 @@
1
1
  import type { CronConfig } from "../../config/types.cron.js";
2
- import type { HeartbeatRunResult } from "../../infra/heartbeat-wake.js";
3
2
  import type { CronJob, CronJobCreate, CronJobPatch, CronRunOutcome, CronRunStatus, CronRunTelemetry, CronStoreFile } from "../types.js";
4
3
  export type CronEvent = {
5
4
  jobId: string;
@@ -37,24 +36,6 @@ export type CronServiceDeps = {
37
36
  sessionKey?: string;
38
37
  contextKey?: string;
39
38
  }) => void;
40
- requestHeartbeatNow: (opts?: {
41
- reason?: string;
42
- agentId?: string;
43
- sessionKey?: string;
44
- }) => void;
45
- runHeartbeatOnce?: (opts?: {
46
- reason?: string;
47
- agentId?: string;
48
- sessionKey?: string;
49
- }) => Promise<HeartbeatRunResult>;
50
- /**
51
- * WakeMode=now: max time to wait for runHeartbeatOnce to stop returning
52
- * { status:"skipped", reason:"requests-in-flight" } before falling back to
53
- * requestHeartbeatNow.
54
- */
55
- wakeNowHeartbeatBusyMaxWaitMs?: number;
56
- /** WakeMode=now: delay between runHeartbeatOnce retries while busy. */
57
- wakeNowHeartbeatBusyRetryDelayMs?: number;
58
39
  runIsolatedAgentJob: (params: {
59
40
  job: CronJob;
60
41
  message: string;
@@ -1,5 +1,7 @@
1
- import { type AgentEventPayload } from "../infra/agent-events.js";
2
- export declare function resolveHeartbeatContext(runId: string, sourceRunId?: string): import("../infra/agent-events.js").AgentRunContext | undefined;
1
+ import { type AgentEventPayload, getAgentRunContext } from "../infra/agent-events.js";
2
+ export declare function resolveHeartbeatContext(_runId: string, _sourceRunId?: string): (ReturnType<typeof getAgentRunContext> & {
3
+ isHeartbeat?: boolean;
4
+ }) | undefined;
3
5
  export type ChatRunEntry = {
4
6
  sessionKey: string;
5
7
  clientRunId: string;
@@ -3,7 +3,7 @@ import path from "node:path";
3
3
  import fs, { constants, readFileSync } from "node:fs";
4
4
  import os from "node:os";
5
5
  import { Logger } from "tslog";
6
- import JSON5 from "json5";
6
+ import json5 from "json5";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import fs$1, { mkdtemp, rm } from "node:fs/promises";
9
9
  import { z } from "zod";
@@ -473,7 +473,7 @@ function readLoggingConfig() {
473
473
  try {
474
474
  if (!fs.existsSync(configPath)) return;
475
475
  const raw = fs.readFileSync(configPath, "utf-8");
476
- const logging = JSON5.parse(raw)?.logging;
476
+ const logging = json5.parse(raw)?.logging;
477
477
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
478
478
  return logging;
479
479
  } catch {
@@ -7409,7 +7409,7 @@ function safeRealpath(target) {
7409
7409
  }
7410
7410
  const defaultResolver = {
7411
7411
  readFile: (p) => fs.readFileSync(p, "utf-8"),
7412
- parseJson: (raw) => JSON5.parse(raw)
7412
+ parseJson: (raw) => json5.parse(raw)
7413
7413
  };
7414
7414
  /**
7415
7415
  * Resolves all $include directives in a parsed config object.
@@ -10661,7 +10661,7 @@ function resolveConfigPathForDeps(deps) {
10661
10661
  function normalizeDeps(overrides = {}) {
10662
10662
  return {
10663
10663
  fs: overrides.fs ?? fs,
10664
- json5: overrides.json5 ?? JSON5,
10664
+ json5: overrides.json5 ?? json5,
10665
10665
  env: overrides.env ?? process.env,
10666
10666
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
10667
10667
  configPath: overrides.configPath ?? "",
@@ -10672,11 +10672,11 @@ function maybeLoadDotEnvForConfig(env) {
10672
10672
  if (env !== process.env) return;
10673
10673
  loadDotEnv({ quiet: true });
10674
10674
  }
10675
- function parseConfigJson5(raw, json5 = JSON5) {
10675
+ function parseConfigJson5(raw, json5$1 = json5) {
10676
10676
  try {
10677
10677
  return {
10678
10678
  ok: true,
10679
- parsed: json5.parse(raw)
10679
+ parsed: json5$1.parse(raw)
10680
10680
  };
10681
10681
  } catch (err) {
10682
10682
  return {
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { C as CHAT_CHANNEL_ORDER, N as requireActivePluginRegistry, k as normalizeAnyChannelId } from "./entry.js";
3
3
  import { m as normalizeAccountId, p as DEFAULT_ACCOUNT_ID } from "./session-key-BfskPVEs.js";
4
- import { t as normalizeChatType } from "./chat-type-DedJJ5qX.js";
4
+ import { t as normalizeChatType } from "./chat-type-BYHUZIi_.js";
5
5
 
6
6
  //#region src/channels/plugins/account-helpers.ts
7
7
  function createAccountListHelpers(channelKey) {