@symerian/symi 2.0.9 → 2.0.11

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 (251) hide show
  1. package/dist/{agents-DhimA7PX.js → agents-CNsMe4Dr.js} +4 -4
  2. package/dist/{agents.config-fv5KaNkC.js → agents.config-CdDf19dm.js} +1 -1
  3. package/dist/{agents.config-Dx90DAnM.js → agents.config-yx78oSLx.js} +1 -1
  4. package/dist/{audio-preflight-DQDfh7hZ.js → audio-preflight-CO2seHjy.js} +11 -12
  5. package/dist/{audio-preflight-B6L8N6Ly.js → audio-preflight-Cq4C-m27.js} +12 -13
  6. package/dist/{audio-preflight-Bk54IW__.js → audio-preflight-DRQD_nt1.js} +16 -17
  7. package/dist/{audio-preflight-C2U7KMim.js → audio-preflight-DSeaWZZW.js} +5 -6
  8. package/dist/{audit-C1KuICJa.js → audit-CiugrQda.js} +2 -2
  9. package/dist/{audit--HKrSvGg.js → audit-DKUpFt8z.js} +2 -2
  10. package/dist/{auth-choice-BqU5qMZy.js → auth-choice-CXMFi9LR.js} +1 -1
  11. package/dist/{auth-choice-B4zjI12P.js → auth-choice-mw9ndZQO.js} +4 -4
  12. package/dist/{banner-XTz_k5N3.js → banner-B-joBGLz.js} +1 -1
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +34 -34
  15. package/dist/bundled/session-memory/handler.js +34 -34
  16. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  17. package/dist/{channel-options-mU0wiiP2.js → channel-options-D74Jofp4.js} +1 -1
  18. package/dist/{channel-options-Bbd-uPQW.js → channel-options-XPRRVrmU.js} +1 -1
  19. package/dist/{channel-web-CT8JWl10.js → channel-web-vRvvtf0S.js} +8 -8
  20. package/dist/{channels-cli-16POci9_.js → channels-cli-D3lj5dXo.js} +32 -32
  21. package/dist/{channels-cli-DMCnP5KN.js → channels-cli-DgxPfJF7.js} +12 -12
  22. package/dist/{chrome-2-wXJfuH.js → chrome-LmEyZdbC.js} +1 -1
  23. package/dist/{chrome-B_zrSLce.js → chrome-h6BnL8Lp.js} +7 -7
  24. package/dist/{chunk-BPSLqkZN.js → chunk-BW5f05BR.js} +1 -1
  25. package/dist/{chunk-rw3-yl6B.js → chunk-DTMTDXwE.js} +1 -1
  26. package/dist/{cli-Bzq5mSbu.js → cli-Bg_5WQFe.js} +9 -9
  27. package/dist/{cli-nuP_OZI0.js → cli-DQQAfUbo.js} +29 -29
  28. package/dist/{command-registry-DbtbOY_4.js → command-registry-Cde2LqTh.js} +9 -9
  29. package/dist/{commands-registry-CZ5P8CpC.js → commands-registry-C3C4Rv3O.js} +2 -2
  30. package/dist/{commands-registry-UwWpNkQg.js → commands-registry-Copoizgv.js} +1 -1
  31. package/dist/{completion-cli-mwQhHtOm.js → completion-cli-Cx9htCOm.js} +1 -1
  32. package/dist/{completion-cli-BwRqjgrI.js → completion-cli-KJUTWJP3.js} +2 -2
  33. package/dist/{config-D3XlX-h-.js → config-DM0K7qC1.js} +1 -1
  34. package/dist/{config-cli-Bu_y5erZ.js → config-cli-C5-P9Nzz.js} +1 -1
  35. package/dist/{config-cli-CoceKyQv.js → config-cli-ozfA6MGF.js} +1 -1
  36. package/dist/{config-guard-DujvCAc6.js → config-guard-BpQn1MKk.js} +1 -1
  37. package/dist/{config-guard-CFGZ0BjX.js → config-guard-Cnu2qssk.js} +2 -3
  38. package/dist/{configure-C27dLO_C.js → configure-DiuQ_aTS.js} +6 -6
  39. package/dist/{configure-DekriuOk.js → configure-ktsZw1bT.js} +3 -3
  40. package/dist/control-ui/vendor/highlight.min.js +2518 -0
  41. package/dist/control-ui/vendor/marked.min.js +69 -0
  42. package/dist/{deliver-B572qYqb.js → deliver-2Y_F_0yh.js} +5 -5
  43. package/dist/{deliver-DGaRNkFI.js → deliver-B3UoBZdC.js} +5 -5
  44. package/dist/{deliver-jK_qcWx-.js → deliver-CZF9f8aC.js} +5 -5
  45. package/dist/{deliver-l9I03N1d.js → deliver-DONp5mgd.js} +2 -2
  46. package/dist/{diagnostic-BIVLRT_X.js → diagnostic-CI0kRQkt.js} +1 -1
  47. package/dist/{diagnostic-C-7DW8ZL.js → diagnostic-D0xmLpej.js} +1 -1
  48. package/dist/{doctor-completion-D2AFiL0G.js → doctor-completion-CrN6Ly8x.js} +1 -1
  49. package/dist/{doctor-completion-RScd9m4s.js → doctor-completion-Vwi_je1c.js} +1 -1
  50. package/dist/{doctor-config-flow-ZeM3rJqG.js → doctor-config-flow-B150h841.js} +1 -1
  51. package/dist/{doctor-config-flow-Cpwv-_yJ.js → doctor-config-flow-C_56SUPO.js} +1 -1
  52. package/dist/entry.js +1 -1
  53. package/dist/extensionAPI.js +29 -29
  54. package/dist/{fetch-BrtlUMgb.js → fetch-DTNGXEzX.js} +1 -1
  55. package/dist/{fetch-guard-DPA1vbaF.js → fetch-guard-DOPkVbh3.js} +1 -1
  56. package/dist/{gateway-cli-N4jJ2_RN.js → gateway-cli-CwO3878F.js} +20 -20
  57. package/dist/{gateway-cli-D98Kj3_n.js → gateway-cli-DyqK4XZ1.js} +43 -43
  58. package/dist/{gemini-auth-Ca6F0cNq.js → gemini-auth-7AWT6JXV.js} +1 -1
  59. package/dist/{glass-ui-ws-Dd-MN6YA.js → glass-ui-ws-BmqwQaCf.js} +16 -16
  60. package/dist/{glass-ui-ws-B2fxjJTt.js → glass-ui-ws-zVNodseh.js} +39 -39
  61. package/dist/{health-C1_ivVPh.js → health-Q1RP1M2f.js} +5 -5
  62. package/dist/{health-Da2Nvp6A.js → health-UjXEBnzA.js} +4 -4
  63. package/dist/{heartbeat-visibility-DS9JNq6T.js → heartbeat-visibility-B8TDjqpW.js} +2 -2
  64. package/dist/{heartbeat-visibility-D4Xy8Sv0.js → heartbeat-visibility-U4BL57eQ.js} +2 -2
  65. package/dist/{hooks-cli-Bv6VXisB.js → hooks-cli-D4qJl6do.js} +10 -10
  66. package/dist/{hooks-cli-GzTpm8sN.js → hooks-cli-DOT9uGZw.js} +30 -30
  67. package/dist/{image-BW-m96jq.js → image-B4LY9KFw.js} +1 -1
  68. package/dist/{image-qnqUW4nb.js → image-DOnOTocl.js} +2 -2
  69. package/dist/{image-B_WF7Uie.js → image-DrZEJQwQ.js} +2 -2
  70. package/dist/{image-BJiE96Ml.js → image-RFofsrof.js} +4 -4
  71. package/dist/index.js +36 -36
  72. package/dist/{ir-DEVHhjq7.js → ir-DZam9q5M.js} +1 -1
  73. package/dist/{ir-B4l25ISI.js → ir-DccrnjsE.js} +3 -3
  74. package/dist/{ir-DPLo2LIn.js → ir-F0moAwIl.js} +3 -3
  75. package/dist/llm-slug-generator.js +34 -34
  76. package/dist/{local-roots-BDORNz_Q.js → local-roots-CC8jiKDk.js} +1 -1
  77. package/dist/{local-roots-Dg0r0pJL.js → local-roots-DMwIh5cS.js} +1 -1
  78. package/dist/{local-roots-C31eq7PP.js → local-roots-aAFLQGkY.js} +1 -1
  79. package/dist/{login-DNi-TGJT.js → login-BG_7eJLu.js} +2 -2
  80. package/dist/{login-qr-DWlyS1Bc.js → login-qr-9OQSnm5L.js} +4 -4
  81. package/dist/{manager-BX65xO2I.js → manager-B5EXdBQV.js} +2 -2
  82. package/dist/{manager-DjVWQ1JF.js → manager-C_DoJrcP.js} +3 -3
  83. package/dist/{memory-cli-BsBiPX0L.js → memory-cli-D4J9SO7Z.js} +4 -4
  84. package/dist/{model-auth-Daguh6Kb.js → model-auth-CeL58m55.js} +1 -1
  85. package/dist/{model-picker-CiSWZdy1.js → model-picker-DXwUsLAy.js} +1 -1
  86. package/dist/{models-B7W1r9j8.js → models-DKsiIvSx.js} +2 -2
  87. package/dist/{models-cli-BBFKprvF.js → models-cli-BS6UJ98e.js} +11 -11
  88. package/dist/{models-cli-B3XOSnTQ.js → models-cli-ULbdeSgc.js} +30 -30
  89. package/dist/{onboard-D54rYSt2.js → onboard-B387frTY.js} +5 -5
  90. package/dist/{onboard-DEBJWlyh.js → onboard-Bt-BwfkR.js} +2 -2
  91. package/dist/{onboard-channels-CwXnFQgu.js → onboard-channels-COcxT5Q0.js} +1 -1
  92. package/dist/{onboard-channels-D4U3bHOF.js → onboard-channels-ybPEmcP8.js} +1 -1
  93. package/dist/{onboard-custom-B3RZopk5.js → onboard-custom-DoIhWPnb.js} +2 -2
  94. package/dist/{onboard-skills-DfKmsYuM.js → onboard-skills-BD8JNVwL.js} +1 -1
  95. package/dist/{onboarding-Do5IBVbx.js → onboarding-BibGEGIS.js} +4 -4
  96. package/dist/{onboarding-Ch56YN4Q.js → onboarding-CdN_NU2d.js} +7 -7
  97. package/dist/{onboarding.finalize-C8I4yJ1J.js → onboarding.finalize-CY1NjrGb.js} +15 -15
  98. package/dist/{onboarding.finalize-ijmEZx2f.js → onboarding.finalize-CvahVrDM.js} +34 -34
  99. package/dist/{onboarding.gateway-config-BxgvBGxU.js → onboarding.gateway-config-Cj_s_IG8.js} +1 -2
  100. package/dist/{onboarding.gateway-config-EtWmSCuC.js → onboarding.gateway-config-DipSuaKH.js} +1 -2
  101. package/dist/{openai-model-default-BkscYpXX.js → openai-model-default-DF334-MD.js} +1 -1
  102. package/dist/{outbound-ByC0HdWz.js → outbound-BNMysnJ1.js} +2 -2
  103. package/dist/{outbound-DpGc1neG.js → outbound-Cedd_yui.js} +3 -3
  104. package/dist/{outbound-56UQxS1I.js → outbound-DfOF58G2.js} +2 -2
  105. package/dist/{outbound-attachment-C-GD7uJh.js → outbound-attachment-D_QuKi8U.js} +1 -1
  106. package/dist/{outbound-attachment-CJZwroQb.js → outbound-attachment-DjNDa3zn.js} +2 -2
  107. package/dist/{outbound-attachment-Cir36qaG.js → outbound-attachment-entfcjDW.js} +2 -2
  108. package/dist/{pi-auth-json-CHgA276j.js → pi-auth-json-BNhcohVK.js} +2 -2
  109. package/dist/{pi-embedded-C5XncARS.js → pi-embedded-BjzaB3CT.js} +157 -62
  110. package/dist/{pi-embedded-FBOXa0Py.js → pi-embedded-BvCoZBNg.js} +149 -54
  111. package/dist/{pi-embedded-helpers-BqnI9Mzn.js → pi-embedded-helpers--yFTAWwW.js} +11 -107
  112. package/dist/{pi-embedded-helpers-dLW7QMQa.js → pi-embedded-helpers-CgxKWHj9.js} +1 -1
  113. package/dist/{pi-embedded-helpers-B8JQjQlx.js → pi-embedded-helpers-kB5lBgXk.js} +13 -109
  114. package/dist/{pi-embedded-helpers-V5QifZSd.js → pi-embedded-helpers-ueCT6VlS.js} +2 -2
  115. package/dist/{pi-tools.policy-C747j2xs.js → pi-tools.policy-DPmdlOwE.js} +1 -1
  116. package/dist/{pi-tools.policy-B9nQ2esl.js → pi-tools.policy-T6Z5F-_n.js} +1 -1
  117. package/dist/{plugin-registry-BQ_14aNH.js → plugin-registry-BAbkdLQ7.js} +1 -1
  118. package/dist/{plugin-registry-Dso3ttvf.js → plugin-registry-CEoSVvL1.js} +1 -1
  119. package/dist/plugin-sdk/{audio-preflight-CAWn5TBW.js → audio-preflight-CpYjfwrA.js} +3 -4
  120. package/dist/plugin-sdk/{channel-web-CdAlKpn7.js → channel-web-xXTpy0N_.js} +3 -3
  121. package/dist/plugin-sdk/{deliver-PnVwVXLm.js → deliver-BwnrMlHO.js} +1 -1
  122. package/dist/plugin-sdk/gateway/chat-sanitize.d.ts +0 -11
  123. package/dist/plugin-sdk/{image-BGfQ0dkr.js → image-k_W1USVr.js} +1 -1
  124. package/dist/plugin-sdk/index.js +6 -6
  125. package/dist/plugin-sdk/{pi-embedded-helpers-BMudP5Tn.js → pi-embedded-helpers-Cs2-_EpL.js} +2 -98
  126. package/dist/plugin-sdk/{reply-QYyMp-Tw.js → reply-EEvLfWgt.js} +107 -12
  127. package/dist/plugin-sdk/{runner-qajBqJHY.js → runner-Br1179I4.js} +1 -1
  128. package/dist/plugin-sdk/{web-CVs35ve3.js → web-COWtpMAH.js} +6 -6
  129. package/dist/{plugins-cli-CgbeQGSF.js → plugins-cli-BpuQ7Y9l.js} +10 -10
  130. package/dist/{plugins-cli-BVyrgA8I.js → plugins-cli-C_S07pgO.js} +30 -30
  131. package/dist/{program-kfkuCFKS.js → program-cO9YX6wL.js} +16 -16
  132. package/dist/{program-context-hfUEmZz7.js → program-context-QBBvnWFX.js} +21 -21
  133. package/dist/{prompt-select-styled-J9mSr0OH.js → prompt-select-styled-CepuQSKg.js} +10 -10
  134. package/dist/{prompt-select-styled-116ZbBko.js → prompt-select-styled-D3dYbx2P.js} +7 -7
  135. package/dist/{provider-auth-helpers-C6JINKCe.js → provider-auth-helpers-BMACaaEd.js} +1 -1
  136. package/dist/{provider-auth-helpers-B6VXmCAd.js → provider-auth-helpers-DXqvuBCi.js} +1 -1
  137. package/dist/{push-apns-jxwr84iE.js → push-apns-8YIzbTM7.js} +1 -1
  138. package/dist/{push-apns-DPN9gxCf.js → push-apns-DhZgao_r.js} +1 -1
  139. package/dist/{pw-ai-D8UzqLyI.js → pw-ai-CAkn033M.js} +4 -4
  140. package/dist/{pw-ai-s-d46DCX.js → pw-ai-C_C5as1t.js} +1 -1
  141. package/dist/{qmd-manager-DeZm1nJL.js → qmd-manager-D85GJrir.js} +1 -1
  142. package/dist/{register.agent-zXM0Ehps.js → register.agent-CSUoUVKd.js} +14 -14
  143. package/dist/{register.agent-DuJFFLJT.js → register.agent-CiTS9lyx.js} +35 -35
  144. package/dist/{register.configure-CNCoYc7M.js → register.configure-BbE9MAer.js} +39 -39
  145. package/dist/{register.configure-DS0YVUwx.js → register.configure-CuCVLOW0.js} +14 -14
  146. package/dist/{register.maintenance-BXnLhacM.js → register.maintenance-CJG75LTu.js} +17 -17
  147. package/dist/{register.maintenance-D3oTcEuA.js → register.maintenance-D8bthvou.js} +37 -37
  148. package/dist/{register.message-BjdjpA_Z.js → register.message-CyqE4E2O.js} +10 -10
  149. package/dist/{register.message-DyIz3Dyp.js → register.message-nUpHGrEE.js} +30 -30
  150. package/dist/{register.onboard-CStFDwlr.js → register.onboard-BDlne5KX.js} +12 -12
  151. package/dist/{register.onboard-DN3MQsVM.js → register.onboard-Dlw-TCPH.js} +35 -35
  152. package/dist/{register.setup-BMsroiDO.js → register.setup-B8kiMuah.js} +35 -35
  153. package/dist/{register.setup-6f2WvCYV.js → register.setup-ByMyofSq.js} +12 -12
  154. package/dist/{register.status-health-sessions-CQB3d6mV.js → register.status-health-sessions-0odRpA-p.js} +13 -13
  155. package/dist/{register.status-health-sessions-Bioq718n.js → register.status-health-sessions-Diirshgb.js} +34 -34
  156. package/dist/{register.subclis-DjRoIlDB.js → register.subclis-CqEj9vfW.js} +12 -12
  157. package/dist/{replies-B4-OBhpP.js → replies-D9V19U2-.js} +2 -2
  158. package/dist/{replies-ConxSQu4.js → replies-DqdOBkTB.js} +2 -2
  159. package/dist/{replies-DPvPoRgq.js → replies-QloQerhz.js} +2 -2
  160. package/dist/{reply-b43dsTx2.js → reply-B9o45s3E.js} +166 -45
  161. package/dist/{run-main-DYbAd0T1.js → run-main-C__lZ7VF.js} +25 -25
  162. package/dist/{runner-CQnf083C.js → runner-BXN4KYDK.js} +1 -1
  163. package/dist/{runner-DhtP_e8E.js → runner-C0tJTZmp.js} +6 -6
  164. package/dist/{runner-Ct0-sE8b.js → runner-DOvsNiYz.js} +8 -8
  165. package/dist/{runner-t-wbbvf-.js → runner-uDZlTCm2.js} +4 -4
  166. package/dist/{sandbox-DofcD9ax.js → sandbox-CbuJolk2.js} +1 -1
  167. package/dist/{sandbox-cli-Dx6F5FaT.js → sandbox-cli-C90jqh9l.js} +2 -3
  168. package/dist/{sandbox-cli-l_OcbOYC.js → sandbox-cli-Duc05KL9.js} +2 -3
  169. package/dist/{sandbox-yaTFb84E.js → sandbox-rMmahr2s.js} +1 -1
  170. package/dist/{security-cli-CSpwKdww.js → security-cli-Bt0VkUtO.js} +4 -5
  171. package/dist/{security-cli-BJ3IXZfm.js → security-cli-YGXUUBvD.js} +4 -5
  172. package/dist/{send-DXoJ5lC_.js → send-3YM-aarb.js} +1 -1
  173. package/dist/{send-OEyo5LFE.js → send-B18gkuvz.js} +2 -2
  174. package/dist/{send-LZO3UNRb.js → send-BVZGeP2r.js} +3 -3
  175. package/dist/{send-D3qb_2Q-.js → send-BeASPkFg.js} +4 -4
  176. package/dist/{send-Dz76LuDQ.js → send-BsocounR.js} +2 -2
  177. package/dist/{send-DzmRVAHq.js → send-CHOArYFe.js} +3 -3
  178. package/dist/{send-B9JhmJSo.js → send-CzE5UKr-.js} +5 -5
  179. package/dist/{send-TQWniAsM.js → send-D0dzPf6g.js} +2 -2
  180. package/dist/{send-bTMPppyJ.js → send-D16XtYvC.js} +4 -4
  181. package/dist/{send-yBb6c4og.js → send-D3M6pMr5.js} +5 -5
  182. package/dist/{send-CiVBt5gu.js → send-DEWzWqfZ.js} +4 -4
  183. package/dist/{send-COvqFO3S.js → send-D_yJMeJa.js} +4 -4
  184. package/dist/{send-DDt3Bdxx.js → send-De_WCeGZ.js} +4 -4
  185. package/dist/{send-DmlK72uJ.js → send-Do-0Kcmv.js} +3 -3
  186. package/dist/{send-DBTO2dLX.js → send-mi3NHnwI.js} +2 -2
  187. package/dist/{server-methods-DIMQMEoV.js → server-methods-B_NSJmhc.js} +14 -14
  188. package/dist/{server-methods-B_y_To6u.js → server-methods-Df9KsV_-.js} +13 -13
  189. package/dist/{server-node-events-xk6gk1TZ.js → server-node-events-C2mugatX.js} +10 -10
  190. package/dist/{server-node-events-Cl8uQahY.js → server-node-events-ZG0SBDkU.js} +30 -30
  191. package/dist/{session-_ViRAnAz.js → session-T0JXlYWe.js} +1 -1
  192. package/dist/{session-utils-kkbiQhvc.js → session-utils-Cdv2Qaq2.js} +1 -1
  193. package/dist/{sessions-8_kZyON5.js → sessions-BEyCtqBB.js} +3 -271
  194. package/dist/{sessions-C-C7dQBK.js → sessions-CX93jXmG.js} +2 -2
  195. package/dist/{sessions-BYcI2Zrm.js → sessions-DJAxaVI7.js} +2 -270
  196. package/dist/{skill-commands-D_bBwwvA.js → skill-commands-B64uavY9.js} +1 -1
  197. package/dist/{skill-commands-Bc-ztbDr.js → skill-commands-DWcJOIzP.js} +1 -1
  198. package/dist/{skills-install-CKFZBTH2.js → skills-install-D67isO1L.js} +1 -1
  199. package/dist/{status-B2lMU2Pm.js → status-BTF6_aBO.js} +1 -1
  200. package/dist/{status-Bz1iwxQ8.js → status-BytVj4kU.js} +1 -1
  201. package/dist/{status-D0xPNlv4.js → status-PADx9rG7.js} +5 -5
  202. package/dist/{status-Dy0ocYJ8.js → status-hgm5EhwS.js} +7 -7
  203. package/dist/{status.update-D40obmG1.js → status.update-DlaskfTr.js} +1 -1
  204. package/dist/{store-Bb4oiLME.js → store-C0wvOkae.js} +1 -1
  205. package/dist/{store-C4ZvS7QX.js → store-bnzGvI16.js} +1 -1
  206. package/dist/{subagent-registry-7kBxT_d_.js → subagent-registry-BR2Qhqjf.js} +138 -17
  207. package/dist/{tables-CjPLB3aX.js → tables-BEzT0Da4.js} +1 -1
  208. package/dist/{tables-dfFTl4Oa.js → tables-COnZ169v.js} +1 -1
  209. package/dist/{tables-XnT3BCYh.js → tables-DuZspiBu.js} +1 -1
  210. package/dist/{target-errors-B_xs1J06.js → target-errors-7AvoVa10.js} +1 -1
  211. package/dist/{target-errors-CL9BfceM.js → target-errors-BbOqxMY0.js} +2 -2
  212. package/dist/{target-errors-LR7w6--g.js → target-errors-Be1SwYlW.js} +2 -2
  213. package/dist/{thinking-EjJEKdLq.js → thinking-CdlENGRW.js} +1 -1
  214. package/dist/{thinking-XA7vussX.js → thinking-W85Rb32m.js} +1 -1
  215. package/dist/{tool-images-BHM4TeU5.js → tool-images-ChC2CXaN.js} +1 -1
  216. package/dist/{tool-images-BwAkbbBM.js → tool-images-DXB7tqWi.js} +1 -1
  217. package/dist/{tui-Bmq33rYO.js → tui-0rURH3b3.js} +2 -2
  218. package/dist/{tui-DSGlMzTS.js → tui-CcirlGg5.js} +3 -3
  219. package/dist/{tui-cli-yL_gg_7w.js → tui-cli-D3VMk5c8.js} +6 -7
  220. package/dist/{tui-cli-8Ln6C319.js → tui-cli-hcbzeOtp.js} +4 -5
  221. package/dist/{update-check-DK1kMuwI.js → update-check-CtckACbb.js} +1 -1
  222. package/dist/{update-cli-D0Jlnkzy.js → update-cli-CHr8rjf-.js} +17 -17
  223. package/dist/{update-cli-B4FtAyNd.js → update-cli-qacplfF4.js} +38 -38
  224. package/dist/{update-runner-Ci3cNYff.js → update-runner-DM8zQvQB.js} +2 -2
  225. package/dist/{update-runner-CDnlfyP5.js → update-runner-DNA7FJa2.js} +1 -1
  226. package/dist/{web-ENDSDPaD.js → web-BKQnrqo-.js} +37 -37
  227. package/dist/{web-10GxXUo7.js → web-DkQc82PT.js} +9 -9
  228. package/dist/{web-cJUlI_Wb.js → web-G0LUda_q.js} +30 -30
  229. package/dist/{web-gNZ16539.js → web-UroM-w6c.js} +31 -31
  230. package/dist/{whatsapp-actions-CUczC854.js → whatsapp-actions-BIjGyW3T.js} +9 -9
  231. package/dist/{whatsapp-actions-ia2odzch.js → whatsapp-actions-BL7tCNC_.js} +12 -12
  232. package/dist/{whatsapp-actions-BcsFR5tf.js → whatsapp-actions-Jfx4zcwv.js} +7 -7
  233. package/package.json +1 -1
  234. /package/dist/{accounts-9VRq1rY7.js → accounts-8zZqL37v.js} +0 -0
  235. /package/dist/{accounts-BCS-nbgN.js → accounts-CWktKM8a.js} +0 -0
  236. /package/dist/{api-key-rotation-erqZ9Tuc.js → api-key-rotation-BukD0zzl.js} +0 -0
  237. /package/dist/{diagnostic-session-state-Bu3E4Enn.js → diagnostic-session-state-Bxo4UHOL.js} +0 -0
  238. /package/dist/{diagnostic-session-state-DmrztgHU.js → diagnostic-session-state-C1vRJs5w.js} +0 -0
  239. /package/dist/{fetch-timeout-DoySHqfO.js → fetch-timeout-Db3da8yR.js} +0 -0
  240. /package/dist/{github-copilot-token-BqpAEW8G.js → github-copilot-token-C_qUP7p5.js} +0 -0
  241. /package/dist/{image-ops-UtlmP67m.js → image-ops-ByaQt43P.js} +0 -0
  242. /package/dist/{image-ops-DD37OhdR.js → image-ops-CvJzsyvE.js} +0 -0
  243. /package/dist/{message-channel-B3YUM8IG.js → message-channel-BQINJQIT.js} +0 -0
  244. /package/dist/{message-channel-Bj7aZphL.js → message-channel-Dz5lr5b0.js} +0 -0
  245. /package/dist/{model-catalog-DhaH7him.js → model-catalog-DjJ9GtKX.js} +0 -0
  246. /package/dist/{pi-model-discovery-C-yOXpma.js → pi-model-discovery-j5tVLINv.js} +0 -0
  247. /package/dist/{sqlite-DhNyBVPk.js → sqlite-Dx3J_aSE.js} +0 -0
  248. /package/dist/{tokens-DBCvs-Ns.js → tokens-BuceUQDl.js} +0 -0
  249. /package/dist/{tool-display-pHB3J5PK.js → tool-display-D8N3rsYt.js} +0 -0
  250. /package/dist/{tool-images-CLRUTPlM.js → tool-images-DvUBlqjX.js} +0 -0
  251. /package/dist/{transcript-events-CJRvASY_.js → transcript-events-DdnTeoR1.js} +0 -0
@@ -8,58 +8,58 @@ import { $ as DEFAULT_PROVIDER, A as resolveShellEnvFallbackTimeoutMs, B as dedu
8
8
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-K_J_nfgx.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BbsJ0Qbo.js";
10
10
  import { i as resolveCliName, n as parseBooleanValue$1, r as formatCliCommand, t as isTruthyEnvValue } from "./env-CQ_DQOwT.js";
11
- import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Cn6drXx2.js";
12
- import { $ as mergeDeliveryContext, $t as stripHeartbeatToken, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, Qt as resolveHeartbeatPrompt, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BqnI9Mzn.js";
11
+ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Cn6drXx2.js";
13
12
  import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-71oIavrF.js";
14
13
  import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
15
14
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
16
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-TQWniAsM.js";
17
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DDt3Bdxx.js";
18
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-jK_qcWx-.js";
19
- import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-C-7DW8ZL.js";
20
- import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bu3E4Enn.js";
21
- import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-9VRq1rY7.js";
22
- import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DBTO2dLX.js";
23
- import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-UtlmP67m.js";
24
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
- import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-B3YUM8IG.js";
15
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-D0dzPf6g.js";
16
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-De_WCeGZ.js";
17
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CZF9f8aC.js";
18
+ import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-D0xmLpej.js";
19
+ import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
20
+ import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
21
+ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-mi3NHnwI.js";
22
+ import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
23
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
24
+ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BQINJQIT.js";
25
+ import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers--yFTAWwW.js";
26
26
  import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BjGo9GnL.js";
27
27
  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-D-mTF1cj.js";
28
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B_zrSLce.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-h6BnL8Lp.js";
29
29
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BNpGMnp-.js";
30
30
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
31
31
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
32
- import { n as getMediaDir, r as saveMediaBuffer } from "./store-C4ZvS7QX.js";
33
- import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-XA7vussX.js";
32
+ import { n as getMediaDir, r as saveMediaBuffer } from "./store-bnzGvI16.js";
33
+ import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-W85Rb32m.js";
34
34
  import { n as resolveConversationLabel } from "./conversation-label-BShfMyKA.js";
35
35
  import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
36
36
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
- import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-BHM4TeU5.js";
39
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-qnqUW4nb.js";
38
+ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
39
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-DOnOTocl.js";
40
40
  import { n as resolveMemorySearchConfig } from "./manager-oiX42wby.js";
41
41
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-BNh23mUR.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
- import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-LR7w6--g.js";
44
- 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-rw3-yl6B.js";
43
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-BbOqxMY0.js";
44
+ 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-DTMTDXwE.js";
45
45
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
46
46
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BheTNyes.js";
47
- import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BDORNz_Q.js";
48
- import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DPLo2LIn.js";
49
- import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-UwWpNkQg.js";
50
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, 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-Bc-ztbDr.js";
47
+ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-CC8jiKDk.js";
48
+ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-F0moAwIl.js";
49
+ import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-Copoizgv.js";
50
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, 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-DWcJOIzP.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
52
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-t-wbbvf-.js";
52
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-uDZlTCm2.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtLn7YU3.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
55
55
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D9q-fIPB.js";
56
56
  import { n as normalizePollInput } from "./polls-DQcEziPg.js";
57
- import { t as convertMarkdownTables } from "./tables-dfFTl4Oa.js";
58
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-bTMPppyJ.js";
59
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-DmlK72uJ.js";
57
+ import { t as convertMarkdownTables } from "./tables-COnZ169v.js";
58
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-D16XtYvC.js";
59
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-Do-0Kcmv.js";
60
60
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-We7ViAbg.js";
61
61
  import { t as makeProxyFetch } from "./proxy-BaSHbVlA.js";
62
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ConxSQu4.js";
62
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DqdOBkTB.js";
63
63
  import { t as getActiveWebListener } from "./active-listener-1krIj9TM.js";
64
64
  import { createRequire } from "node:module";
65
65
  import * as path$1 from "node:path";
@@ -79,7 +79,7 @@ import { EdgeTTS } from "node-edge-tts";
79
79
  import AjvPkg from "ajv";
80
80
  import { createServer } from "node:http";
81
81
  import { ProxyAgent, fetch as fetch$1 } from "undici";
82
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
82
+ import WebSocket$1, { WebSocket } from "ws";
83
83
  import { Buffer as Buffer$1 } from "node:buffer";
84
84
  import { createJiti } from "jiti";
85
85
  import { Type } from "@sinclair/typebox";
@@ -100,6 +100,101 @@ import { run, sequentialize } from "@grammyjs/runner";
100
100
  import { apiThrottler } from "@grammyjs/transformer-throttler";
101
101
  import { EventEmitter } from "node:events";
102
102
 
103
+ //#region src/auto-reply/heartbeat.ts
104
+ 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.";
105
+ const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
106
+ function resolveHeartbeatPrompt(raw) {
107
+ return (typeof raw === "string" ? raw.trim() : "") || HEARTBEAT_PROMPT;
108
+ }
109
+ function stripTokenAtEdges(raw) {
110
+ let text = raw.trim();
111
+ if (!text) return {
112
+ text: "",
113
+ didStrip: false
114
+ };
115
+ const token = SYMIPULSE_TOKEN;
116
+ const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
117
+ if (!text.includes(token)) return {
118
+ text,
119
+ didStrip: false
120
+ };
121
+ let didStrip = false;
122
+ let changed = true;
123
+ while (changed) {
124
+ changed = false;
125
+ const next = text.trim();
126
+ if (next.startsWith(token)) {
127
+ text = next.slice(token.length).trimStart();
128
+ didStrip = true;
129
+ changed = true;
130
+ continue;
131
+ }
132
+ if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
133
+ const idx = next.lastIndexOf(token);
134
+ const before = next.slice(0, idx).trimEnd();
135
+ if (!before) text = "";
136
+ else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
137
+ didStrip = true;
138
+ changed = true;
139
+ }
140
+ }
141
+ return {
142
+ text: text.replace(/\s+/g, " ").trim(),
143
+ didStrip
144
+ };
145
+ }
146
+ function stripHeartbeatToken(raw, opts = {}) {
147
+ if (!raw) return {
148
+ shouldSkip: true,
149
+ text: "",
150
+ didStrip: false
151
+ };
152
+ const trimmed = raw.trim();
153
+ if (!trimmed) return {
154
+ shouldSkip: true,
155
+ text: "",
156
+ didStrip: false
157
+ };
158
+ const mode = opts.mode ?? "message";
159
+ const maxAckCharsRaw = opts.maxAckChars;
160
+ const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
161
+ const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
162
+ const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
163
+ const trimmedNormalized = stripMarkup(trimmed);
164
+ if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
165
+ shouldSkip: false,
166
+ text: trimmed,
167
+ didStrip: false
168
+ };
169
+ const strippedOriginal = stripTokenAtEdges(trimmed);
170
+ const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
171
+ const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
172
+ if (!picked.didStrip) return {
173
+ shouldSkip: false,
174
+ text: trimmed,
175
+ didStrip: false
176
+ };
177
+ if (!picked.text) return {
178
+ shouldSkip: true,
179
+ text: "",
180
+ didStrip: true
181
+ };
182
+ const rest = picked.text.trim();
183
+ if (mode === "heartbeat") {
184
+ if (rest.length <= maxAckChars) return {
185
+ shouldSkip: true,
186
+ text: "",
187
+ didStrip: true
188
+ };
189
+ }
190
+ return {
191
+ shouldSkip: false,
192
+ text: rest,
193
+ didStrip: true
194
+ };
195
+ }
196
+
197
+ //#endregion
103
198
  //#region src/channels/allowlist-match.ts
104
199
  function formatAllowlistMatchMeta(match) {
105
200
  return `matchKey=${match?.matchKey ?? "none"} matchSource=${match?.matchSource ?? "none"}`;
@@ -5618,7 +5713,7 @@ var GatewayClient = class {
5618
5713
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5619
5714
  });
5620
5715
  }
5621
- this.ws = new WebSocket$1(url, wsOptions);
5716
+ this.ws = new WebSocket(url, wsOptions);
5622
5717
  this.ws.on("open", () => {
5623
5718
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5624
5719
  const tlsError = this.validateTlsFingerprint();
@@ -5837,7 +5932,7 @@ var GatewayClient = class {
5837
5932
  return null;
5838
5933
  }
5839
5934
  async request(method, params, opts) {
5840
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5935
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5841
5936
  const id = randomUUID();
5842
5937
  const frame = {
5843
5938
  type: "req",
@@ -7103,7 +7198,7 @@ async function routeReply(params) {
7103
7198
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7104
7199
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7105
7200
  try {
7106
- const { deliverOutboundPayloads } = await import("./deliver-jK_qcWx-.js").then((n) => n.n);
7201
+ const { deliverOutboundPayloads } = await import("./deliver-CZF9f8aC.js").then((n) => n.n);
7107
7202
  return {
7108
7203
  ok: true,
7109
7204
  messageId: (await deliverOutboundPayloads({
@@ -12338,7 +12433,7 @@ const MODEL_CACHE = /* @__PURE__ */ new Map();
12338
12433
  await ensureSymiModelsJson(cfg);
12339
12434
  } catch {}
12340
12435
  try {
12341
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-DaNAekda.js").then((n) => n.r);
12436
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-j5tVLINv.js").then((n) => n.r);
12342
12437
  const agentDir = resolveSymiAgentDir();
12343
12438
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
12344
12439
  applyDiscoveredContextWindows({
@@ -41476,7 +41571,7 @@ async function deliverSessionMaintenanceWarning(params) {
41476
41571
  return;
41477
41572
  }
41478
41573
  try {
41479
- const { deliverOutboundPayloads } = await import("./deliver-jK_qcWx-.js").then((n) => n.n);
41574
+ const { deliverOutboundPayloads } = await import("./deliver-CZF9f8aC.js").then((n) => n.n);
41480
41575
  await deliverOutboundPayloads({
41481
41576
  cfg: params.cfg,
41482
41577
  channel,
@@ -44919,7 +45014,7 @@ async function describeStickerImage(params) {
44919
45014
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
44920
45015
  try {
44921
45016
  const buffer = await fs$1.readFile(imagePath);
44922
- const { describeImageWithModel } = await import("./image-qnqUW4nb.js").then((n) => n.n);
45017
+ const { describeImageWithModel } = await import("./image-DOnOTocl.js").then((n) => n.n);
44923
45018
  return (await describeImageWithModel({
44924
45019
  buffer,
44925
45020
  fileName: "sticker.webp",
@@ -47380,7 +47475,7 @@ async function preflightDiscordMessage(params) {
47380
47475
  let preflightTranscript;
47381
47476
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
47382
47477
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
47383
- const { transcribeFirstAudio } = await import("./audio-preflight-B6L8N6Ly.js");
47478
+ const { transcribeFirstAudio } = await import("./audio-preflight-Cq4C-m27.js");
47384
47479
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
47385
47480
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
47386
47481
  ctx: {
@@ -51386,27 +51481,27 @@ function isVoiceChannelType(type) {
51386
51481
  function createDefaultDeps() {
51387
51482
  return {
51388
51483
  sendMessageWhatsApp: async (...args) => {
51389
- const { sendMessageWhatsApp } = await import("./web-cJUlI_Wb.js");
51484
+ const { sendMessageWhatsApp } = await import("./web-G0LUda_q.js");
51390
51485
  return await sendMessageWhatsApp(...args);
51391
51486
  },
51392
51487
  sendMessageTelegram: async (...args) => {
51393
- const { sendMessageTelegram } = await import("./send-DBTO2dLX.js").then((n) => n.l);
51488
+ const { sendMessageTelegram } = await import("./send-mi3NHnwI.js").then((n) => n.l);
51394
51489
  return await sendMessageTelegram(...args);
51395
51490
  },
51396
51491
  sendMessageDiscord: async (...args) => {
51397
- const { sendMessageDiscord } = await import("./send-DDt3Bdxx.js").then((n) => n.t);
51492
+ const { sendMessageDiscord } = await import("./send-De_WCeGZ.js").then((n) => n.t);
51398
51493
  return await sendMessageDiscord(...args);
51399
51494
  },
51400
51495
  sendMessageSlack: async (...args) => {
51401
- const { sendMessageSlack } = await import("./send-TQWniAsM.js").then((n) => n.n);
51496
+ const { sendMessageSlack } = await import("./send-D0dzPf6g.js").then((n) => n.n);
51402
51497
  return await sendMessageSlack(...args);
51403
51498
  },
51404
51499
  sendMessageSignal: async (...args) => {
51405
- const { sendMessageSignal } = await import("./send-bTMPppyJ.js").then((n) => n.i);
51500
+ const { sendMessageSignal } = await import("./send-D16XtYvC.js").then((n) => n.i);
51406
51501
  return await sendMessageSignal(...args);
51407
51502
  },
51408
51503
  sendMessageIMessage: async (...args) => {
51409
- const { sendMessageIMessage } = await import("./send-DmlK72uJ.js").then((n) => n.n);
51504
+ const { sendMessageIMessage } = await import("./send-Do-0Kcmv.js").then((n) => n.n);
51410
51505
  return await sendMessageIMessage(...args);
51411
51506
  }
51412
51507
  };
@@ -54290,7 +54385,7 @@ function createDiscordGatewayPlugin(params) {
54290
54385
  super(options);
54291
54386
  }
54292
54387
  createWebSocket(url) {
54293
- return new WebSocket(url, { agent });
54388
+ return new WebSocket$1(url, { agent });
54294
54389
  }
54295
54390
  }
54296
54391
  return new ProxyGatewayPlugin();
@@ -61832,7 +61927,7 @@ function readSlackExternalArgMenuToken(raw) {
61832
61927
  }
61833
61928
  let commandsRegistry;
61834
61929
  async function getCommandsRegistry() {
61835
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-UwWpNkQg.js").then((n) => n.n);
61930
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-Copoizgv.js").then((n) => n.n);
61836
61931
  return commandsRegistry;
61837
61932
  }
61838
61933
  function encodeSlackCommandArgValue(parts) {
@@ -62235,8 +62330,8 @@ async function registerSlackMonitorSlashCommands(params) {
62235
62330
  });
62236
62331
  const deliverSlashPayloads = async (replies) => {
62237
62332
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
62238
- import("./replies-ConxSQu4.js").then((n) => n.r),
62239
- import("./chunk-rw3-yl6B.js").then((n) => n.s),
62333
+ import("./replies-DqdOBkTB.js").then((n) => n.r),
62334
+ import("./chunk-DTMTDXwE.js").then((n) => n.s),
62240
62335
  import("./markdown-tables-DawaaZEe.js").then((n) => n.t)
62241
62336
  ]);
62242
62337
  await deliverSlackSlashReplies({
@@ -62290,7 +62385,7 @@ async function registerSlackMonitorSlashCommands(params) {
62290
62385
  let nativeCommands = [];
62291
62386
  if (nativeEnabled) {
62292
62387
  reg = await getCommandsRegistry();
62293
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Bc-ztbDr.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62388
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DWcJOIzP.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62294
62389
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
62295
62390
  skillCommands,
62296
62391
  provider: "slack"
@@ -64508,7 +64603,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
64508
64603
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
64509
64604
  let preflightTranscript;
64510
64605
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
64511
- const { transcribeFirstAudio } = await import("./audio-preflight-B6L8N6Ly.js");
64606
+ const { transcribeFirstAudio } = await import("./audio-preflight-Cq4C-m27.js");
64512
64607
  preflightTranscript = await transcribeFirstAudio({
64513
64608
  ctx: {
64514
64609
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -66653,7 +66748,7 @@ let webLoginQrPromise = null;
66653
66748
  let webChannelPromise = null;
66654
66749
  let whatsappActionsPromise = null;
66655
66750
  function loadWebOutbound() {
66656
- webOutboundPromise ??= import("./outbound-ByC0HdWz.js").then((n) => n.t);
66751
+ webOutboundPromise ??= import("./outbound-BNMysnJ1.js").then((n) => n.t);
66657
66752
  return webOutboundPromise;
66658
66753
  }
66659
66754
  function loadWebLogin() {
@@ -66665,11 +66760,11 @@ function loadWebLoginQr() {
66665
66760
  return webLoginQrPromise;
66666
66761
  }
66667
66762
  function loadWebChannel() {
66668
- webChannelPromise ??= import("./web-cJUlI_Wb.js");
66763
+ webChannelPromise ??= import("./web-G0LUda_q.js");
66669
66764
  return webChannelPromise;
66670
66765
  }
66671
66766
  function loadWhatsAppActions() {
66672
- whatsappActionsPromise ??= import("./whatsapp-actions-CUczC854.js");
66767
+ whatsappActionsPromise ??= import("./whatsapp-actions-BIjGyW3T.js");
66673
66768
  return whatsappActionsPromise;
66674
66769
  }
66675
66770
  function createPluginRuntime() {
@@ -67947,7 +68042,7 @@ function shouldEmitLoopWarning(state, warningKey, count) {
67947
68042
  async function recordLoopOutcome(args) {
67948
68043
  if (!args.ctx?.sessionKey) return;
67949
68044
  try {
67950
- const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bu3E4Enn.js").then((n) => n.n);
68045
+ const { getDiagnosticSessionState } = await import("./diagnostic-session-state-C1vRJs5w.js").then((n) => n.n);
67951
68046
  const { recordToolCallOutcome } = await import("./tool-loop-detection-BgbtzUGc.js");
67952
68047
  recordToolCallOutcome(getDiagnosticSessionState({
67953
68048
  sessionKey: args.ctx.sessionKey,
@@ -67968,8 +68063,8 @@ async function runBeforeToolCallHook(args) {
67968
68063
  const toolName = normalizeToolName(args.toolName || "tool");
67969
68064
  const params = args.params;
67970
68065
  if (args.ctx?.sessionKey) {
67971
- const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bu3E4Enn.js").then((n) => n.n);
67972
- const { logToolLoopAction } = await import("./diagnostic-C-7DW8ZL.js").then((n) => n.n);
68066
+ const { getDiagnosticSessionState } = await import("./diagnostic-session-state-C1vRJs5w.js").then((n) => n.n);
68067
+ const { logToolLoopAction } = await import("./diagnostic-D0xmLpej.js").then((n) => n.n);
67973
68068
  const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BgbtzUGc.js");
67974
68069
  const sessionState = getDiagnosticSessionState({
67975
68070
  sessionKey: args.ctx.sessionKey,
@@ -1,26 +1,25 @@
1
1
  import { i as resolveGatewayPort, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
2
2
  import { c as normalizeMainKey, l as resolveAgentIdFromSessionKey, m as normalizeOptionalAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { A as normalizeE164, P as resolveUserPath, T as escapeRegExp, V as truncateUtf16Safe, lt as resolvePreferredSymiTmpDir, t as CHANNEL_IDS } from "./registry-BhoUuugi.js";
3
+ import { A as normalizeE164, P as resolveUserPath, V as truncateUtf16Safe, lt as resolvePreferredSymiTmpDir, t as CHANNEL_IDS } from "./registry-BhoUuugi.js";
4
4
  import { E as runExec, _ as DEFAULT_SYMIPULSE_FILENAME, b as ensureAgentWorkspace, f as DEFAULT_AGENTS_FILENAME, g as DEFAULT_SYMICORE_FILENAME, h as DEFAULT_IDENTITY_FILENAME, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, p as DEFAULT_AGENT_WORKSPACE_DIR, u as resolveSessionAgentId, v as DEFAULT_TOOLS_FILENAME, y as DEFAULT_USER_FILENAME } from "./agent-scope-Cbl5pNe1.js";
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
6
  import { J as isPidAlive, q as resolveProcessScopedMap } from "./model-selection--4t4F87n.js";
7
7
  import { n as parseBooleanValue, r as formatCliCommand } from "./env-CQ_DQOwT.js";
8
- import { r as SYMIPULSE_TOKEN } from "./tokens-Cn6drXx2.js";
9
8
  import { r as normalizeChannelId } from "./plugins-71oIavrF.js";
10
9
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
11
- import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-UtlmP67m.js";
12
- import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-B3YUM8IG.js";
10
+ import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-ByaQt43P.js";
11
+ import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BQINJQIT.js";
13
12
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BjGo9GnL.js";
14
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-B_zrSLce.js";
13
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-h6BnL8Lp.js";
15
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BNpGMnp-.js";
16
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
17
16
  import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
18
- import { r as saveMediaBuffer, t as ensureMediaDir } from "./store-C4ZvS7QX.js";
19
- import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug } from "./thinking-XA7vussX.js";
17
+ import { r as saveMediaBuffer, t as ensureMediaDir } from "./store-bnzGvI16.js";
18
+ import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug } from "./thinking-W85Rb32m.js";
20
19
  import { n as resolveConversationLabel } from "./conversation-label-BShfMyKA.js";
21
20
  import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
22
21
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
23
- import { t as sanitizeContentBlocksImages } from "./tool-images-BHM4TeU5.js";
22
+ import { t as sanitizeContentBlocksImages } from "./tool-images-ChC2CXaN.js";
24
23
  import path, { posix } from "node:path";
25
24
  import fs, { existsSync, realpathSync } from "node:fs";
26
25
  import os from "node:os";
@@ -30,101 +29,6 @@ import crypto, { createHash, timingSafeEqual } from "node:crypto";
30
29
  import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
31
30
  import express from "express";
32
31
 
33
- //#region src/auto-reply/heartbeat.ts
34
- 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.";
35
- const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
36
- function resolveHeartbeatPrompt(raw) {
37
- return (typeof raw === "string" ? raw.trim() : "") || HEARTBEAT_PROMPT;
38
- }
39
- function stripTokenAtEdges(raw) {
40
- let text = raw.trim();
41
- if (!text) return {
42
- text: "",
43
- didStrip: false
44
- };
45
- const token = SYMIPULSE_TOKEN;
46
- const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
47
- if (!text.includes(token)) return {
48
- text,
49
- didStrip: false
50
- };
51
- let didStrip = false;
52
- let changed = true;
53
- while (changed) {
54
- changed = false;
55
- const next = text.trim();
56
- if (next.startsWith(token)) {
57
- text = next.slice(token.length).trimStart();
58
- didStrip = true;
59
- changed = true;
60
- continue;
61
- }
62
- if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
63
- const idx = next.lastIndexOf(token);
64
- const before = next.slice(0, idx).trimEnd();
65
- if (!before) text = "";
66
- else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
67
- didStrip = true;
68
- changed = true;
69
- }
70
- }
71
- return {
72
- text: text.replace(/\s+/g, " ").trim(),
73
- didStrip
74
- };
75
- }
76
- function stripHeartbeatToken(raw, opts = {}) {
77
- if (!raw) return {
78
- shouldSkip: true,
79
- text: "",
80
- didStrip: false
81
- };
82
- const trimmed = raw.trim();
83
- if (!trimmed) return {
84
- shouldSkip: true,
85
- text: "",
86
- didStrip: false
87
- };
88
- const mode = opts.mode ?? "message";
89
- const maxAckCharsRaw = opts.maxAckChars;
90
- const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
91
- const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
92
- const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/&nbsp;/gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
93
- const trimmedNormalized = stripMarkup(trimmed);
94
- if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
95
- shouldSkip: false,
96
- text: trimmed,
97
- didStrip: false
98
- };
99
- const strippedOriginal = stripTokenAtEdges(trimmed);
100
- const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
101
- const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
102
- if (!picked.didStrip) return {
103
- shouldSkip: false,
104
- text: trimmed,
105
- didStrip: false
106
- };
107
- if (!picked.text) return {
108
- shouldSkip: true,
109
- text: "",
110
- didStrip: true
111
- };
112
- const rest = picked.text.trim();
113
- if (mode === "heartbeat") {
114
- if (rest.length <= maxAckChars) return {
115
- shouldSkip: true,
116
- text: "",
117
- didStrip: true
118
- };
119
- }
120
- return {
121
- shouldSkip: false,
122
- text: rest,
123
- didStrip: true
124
- };
125
- }
126
-
127
- //#endregion
128
32
  //#region src/agents/pi-embedded-helpers/bootstrap.ts
129
33
  function isBase64Signature(value) {
130
34
  const trimmed = value.trim();
@@ -1027,7 +931,7 @@ function isModuleNotFoundError(err) {
1027
931
  }
1028
932
  async function loadPwAiModule(mode) {
1029
933
  try {
1030
- return await import("./pw-ai-s-d46DCX.js");
934
+ return await import("./pw-ai-C_C5as1t.js");
1031
935
  } catch (err) {
1032
936
  if (mode === "soft") return null;
1033
937
  if (isModuleNotFoundError(err)) return null;
@@ -3567,11 +3471,11 @@ function createProfileContext(opts, profile) {
3567
3471
  const userDataDir = resolveSymiUserDataDir(profile.name);
3568
3472
  const profileState = getProfileState();
3569
3473
  if (await isHttpReachable(300) && !profileState.running) try {
3570
- await (await import("./pw-ai-s-d46DCX.js")).closePlaywrightBrowserConnection();
3474
+ await (await import("./pw-ai-C_C5as1t.js")).closePlaywrightBrowserConnection();
3571
3475
  } catch {}
3572
3476
  if (profileState.running) await stopRunningBrowser();
3573
3477
  try {
3574
- await (await import("./pw-ai-s-d46DCX.js")).closePlaywrightBrowserConnection();
3478
+ await (await import("./pw-ai-C_C5as1t.js")).closePlaywrightBrowserConnection();
3575
3479
  } catch {}
3576
3480
  if (!fs.existsSync(userDataDir)) return {
3577
3481
  moved: false,
@@ -7881,4 +7785,4 @@ function validateAnthropicTurns(messages) {
7881
7785
  }
7882
7786
 
7883
7787
  //#endregion
7884
- export { mergeDeliveryContext as $, stripHeartbeatToken as $t, isTransientHttpError as A, DEFAULT_UPLOAD_DIR as At, resolveMirroredTranscriptText as B, expandToolGroups as Bt, isContextOverflowError as C, resolveGroupSessionKey as Ct, isRateLimitAssistantError as D, registerBrowserRoutes as Dt, isLikelyContextOverflowError as E, createBrowserRouteContext as Et, resolveSandboxContext as F, resolveSandboxConfigForAgent as Ft, saveSessionStore as G, compileGlobPatterns as Gt, loadSessionStore as H, normalizeToolName as Ht, resolveSandboxRuntimeStatus as I, applyOwnerOnlyToolPolicy as It, updateSessionStoreEntry as J, ensureSessionHeader$1 as Jt, updateLastRoute as K, matchesAnyGlobPattern as Kt, extractDeliveryInfo as L, buildPluginToolGroups as Lt, parseImageSizeError as M, getBridgeAuthForPort as Mt, sanitizeUserFacingText as N, ensureBrowserControlAuth as Nt, isRawApiErrorPayload as O, resolveBrowserConfig as Ot, ensureSandboxWorkspaceForSession as P, resolveBrowserControlAuth as Pt, deliveryContextKey as Q, resolveHeartbeatPrompt as Qt, parseSessionThreadInfo as R, collectExplicitAllowlist as Rt, isCompactionFailureError as S, deriveSessionMetaPatch as St, isFailoverErrorMessage as T, resolveSessionLockMaxHoldFromTimeout as Tt, readSessionUpdatedAt as U, resolveToolProfilePolicy as Ut, resolveAndPersistSessionFile as V, mergeAlsoAllowPolicy as Vt, recordSessionMetaFromInbound as W, stripPluginOnlyAllowlist as Wt, resolveCacheTtlMs as X, resolveBootstrapTotalMaxChars as Xt, isCacheEnabled as Y, resolveBootstrapMaxChars as Yt, deliveryContextFromSession as Z, sanitizeGoogleTurnOrdering as Zt, formatRawAssistantErrorForUi as _, DEFAULT_RESET_TRIGGERS as _t, isMessagingToolDuplicateNormalized as a, countToolResults as at, isBillingAssistantError as b, resolveExplicitAgentSessionKey as bt, extractToolCallsFromAssistant as c, applyInputProvenanceToUserMessage as ct, isAntigravityClaude as d, resolveSessionKey as dt, normalizeDeliveryContext as et, isGoogleModelApi as f, evaluateSessionFreshness as ft, formatBillingErrorMessage as g, resolveThreadFlag as gt, formatAssistantErrorText as h, resolveSessionResetType as ht, isMessagingToolDuplicate as i, capArrayByJsonBytes as it, parseImageDimensionError as j, resolveExistingPathsWithinRoot as jt, isTimeoutErrorMessage as k, resolveProfile as kt, extractToolResultId as l, hasInterSessionUserProvenance as lt, classifyFailoverReason as m, resolveSessionResetPolicy as mt, validateGeminiTurns as n, normalizeAccountId as nt, normalizeTextForComparison as o, extractToolCallNames as ot, BILLING_ERROR_USER_MESSAGE as p, resolveChannelResetConfig as pt, updateSessionStore as q, buildBootstrapContextFiles as qt, pickFallbackThinkingLevel as r, archiveSessionTranscripts as rt, sanitizeSessionMessagesImages as s, INPUT_PROVENANCE_KIND_VALUES as st, validateAnthropicTurns as t, normalizeSessionDeliveryFields as tt, downgradeOpenAIReasoningBlocks as u, normalizeInputProvenance as ut, getApiErrorPayloadFingerprint as v, resolveFreshSessionTotalTokens as vt, isFailoverAssistantError as w, acquireSessionWriteLock as wt, isCloudCodeAssistFormatError as x, resolveMainSessionKey as xt, isAuthAssistantError as y, canonicalizeMainSessionAlias as yt, appendAssistantMessageToSessionTranscript as z, expandPolicyWithPluginGroups as zt };
7788
+ export { mergeDeliveryContext as $, isTransientHttpError as A, DEFAULT_UPLOAD_DIR as At, resolveMirroredTranscriptText as B, expandToolGroups as Bt, isContextOverflowError as C, resolveGroupSessionKey as Ct, isRateLimitAssistantError as D, registerBrowserRoutes as Dt, isLikelyContextOverflowError as E, createBrowserRouteContext as Et, resolveSandboxContext as F, resolveSandboxConfigForAgent as Ft, saveSessionStore as G, compileGlobPatterns as Gt, loadSessionStore as H, normalizeToolName as Ht, resolveSandboxRuntimeStatus as I, applyOwnerOnlyToolPolicy as It, updateSessionStoreEntry as J, ensureSessionHeader$1 as Jt, updateLastRoute as K, matchesAnyGlobPattern as Kt, extractDeliveryInfo as L, buildPluginToolGroups as Lt, parseImageSizeError as M, getBridgeAuthForPort as Mt, sanitizeUserFacingText as N, ensureBrowserControlAuth as Nt, isRawApiErrorPayload as O, resolveBrowserConfig as Ot, ensureSandboxWorkspaceForSession as P, resolveBrowserControlAuth as Pt, deliveryContextKey as Q, parseSessionThreadInfo as R, collectExplicitAllowlist as Rt, isCompactionFailureError as S, deriveSessionMetaPatch as St, isFailoverErrorMessage as T, resolveSessionLockMaxHoldFromTimeout as Tt, readSessionUpdatedAt as U, resolveToolProfilePolicy as Ut, resolveAndPersistSessionFile as V, mergeAlsoAllowPolicy as Vt, recordSessionMetaFromInbound as W, stripPluginOnlyAllowlist as Wt, resolveCacheTtlMs as X, resolveBootstrapTotalMaxChars as Xt, isCacheEnabled as Y, resolveBootstrapMaxChars as Yt, deliveryContextFromSession as Z, sanitizeGoogleTurnOrdering as Zt, formatRawAssistantErrorForUi as _, DEFAULT_RESET_TRIGGERS as _t, isMessagingToolDuplicateNormalized as a, countToolResults as at, isBillingAssistantError as b, resolveExplicitAgentSessionKey as bt, extractToolCallsFromAssistant as c, applyInputProvenanceToUserMessage as ct, isAntigravityClaude as d, resolveSessionKey as dt, normalizeDeliveryContext as et, isGoogleModelApi as f, evaluateSessionFreshness as ft, formatBillingErrorMessage as g, resolveThreadFlag as gt, formatAssistantErrorText as h, resolveSessionResetType as ht, isMessagingToolDuplicate as i, capArrayByJsonBytes as it, parseImageDimensionError as j, resolveExistingPathsWithinRoot as jt, isTimeoutErrorMessage as k, resolveProfile as kt, extractToolResultId as l, hasInterSessionUserProvenance as lt, classifyFailoverReason as m, resolveSessionResetPolicy as mt, validateGeminiTurns as n, normalizeAccountId as nt, normalizeTextForComparison as o, extractToolCallNames as ot, BILLING_ERROR_USER_MESSAGE as p, resolveChannelResetConfig as pt, updateSessionStore as q, buildBootstrapContextFiles as qt, pickFallbackThinkingLevel as r, archiveSessionTranscripts as rt, sanitizeSessionMessagesImages as s, INPUT_PROVENANCE_KIND_VALUES as st, validateAnthropicTurns as t, normalizeSessionDeliveryFields as tt, downgradeOpenAIReasoningBlocks as u, normalizeInputProvenance as ut, getApiErrorPayloadFingerprint as v, resolveFreshSessionTotalTokens as vt, isFailoverAssistantError as w, acquireSessionWriteLock as wt, isCloudCodeAssistFormatError as x, resolveMainSessionKey as xt, isAuthAssistantError as y, canonicalizeMainSessionAlias as yt, appendAssistantMessageToSessionTranscript as z, expandPolicyWithPluginGroups as zt };
@@ -1,5 +1,5 @@
1
1
  import { pt as truncateUtf16Safe } from "./entry.js";
2
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-DofcD9ax.js";
2
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-CbuJolk2.js";
3
3
  import { t as sanitizeContentBlocksImages } from "./tool-images-CVLISeRT.js";
4
4
  import { s as normalizeThinkLevel } from "./thinking-8sKPnzpp.js";
5
5
  import path from "node:path";