@symerian/symi 2.6.40 → 2.6.41

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 (343) hide show
  1. package/dist/{acp-cli-Cm65S6FL.js → acp-cli-BLUeUUA5.js} +2 -2
  2. package/dist/{acp-cli-CArw-nEj.js → acp-cli-CrEIx-c7.js} +2 -2
  3. package/dist/{agents-BUphGO8B.js → agents-B4RNdKQ3.js} +7 -7
  4. package/dist/{agents.config-bWQyGjxK.js → agents.config-CA31c0kN.js} +1 -1
  5. package/dist/{agents.config-C5FjRTiH.js → agents.config-CG2klYOg.js} +1 -1
  6. package/dist/{audio-preflight-DEJHmI9r.js → audio-preflight-CIiS5cfP.js} +11 -11
  7. package/dist/{audio-preflight-B0alOE_D.js → audio-preflight-DD18zIZd.js} +5 -5
  8. package/dist/{audio-preflight-BUO1aDLp.js → audio-preflight-K-s65jbB.js} +5 -5
  9. package/dist/{audio-preflight-EindUWk_.js → audio-preflight-XrlQA8IZ.js} +11 -11
  10. package/dist/{audit-ChxZ7_3y.js → audit-BjI_Yyr5.js} +5 -5
  11. package/dist/{audit-B_XnVSC_.js → audit-DB9YkTVX.js} +5 -5
  12. package/dist/{auth-choice-CScrqcEI.js → auth-choice-CCGIgXvF.js} +4 -4
  13. package/dist/{auth-choice-BZIJ1WP4.js → auth-choice-CiMf3Pjp.js} +4 -4
  14. package/dist/{banner-DdxLX10a.js → banner-BNsB_A87.js} +1 -1
  15. package/dist/{browser-cli-B8qCOonD.js → browser-cli-Ctn9do4z.js} +3 -3
  16. package/dist/{browser-cli-d3tBzuZB.js → browser-cli-kDUw45Y0.js} +3 -3
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +13 -13
  19. package/dist/bundled/session-memory/handler.js +13 -13
  20. package/dist/{call-CLKMnHOP.js → call-DKi-hnaF.js} +1 -1
  21. package/dist/{call-Dqx-xSZ7.js → call-DwpGquzW.js} +1 -1
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-options-CC5ojwB6.js → channel-options-BMQlkUDX.js} +1 -1
  24. package/dist/{channel-options-BAqgueJ5.js → channel-options-pAH4A-xX.js} +1 -1
  25. package/dist/{channel-web-_jV8VUEw.js → channel-web-Dwuj48T5.js} +7 -7
  26. package/dist/{channels-cli-1we8fBWm.js → channels-cli-CuExxB0U.js} +30 -30
  27. package/dist/{channels-cli-GldZ8ajW.js → channels-cli-rmDzxb0W.js} +29 -29
  28. package/dist/{chrome-D07ZncFh.js → chrome-BYOhnxTr.js} +8 -8
  29. package/dist/{chrome-DJn17LsI.js → chrome-BxwUEWrH.js} +1 -1
  30. package/dist/{chrome-Cixcv-qk.js → chrome-DAw-AWNi.js} +1 -1
  31. package/dist/{chrome-DtPv6OzN.js → chrome-DU2ZysN3.js} +1 -1
  32. package/dist/cli/daemon-cli.js +1 -1
  33. package/dist/{cli-CNO5cyFx.js → cli-BPGZalMg.js} +25 -25
  34. package/dist/{cli-DZAotBEi.js → cli-Mcq2pPI0.js} +26 -26
  35. package/dist/{command-registry-DZIdLwVe.js → command-registry-BoEw2RzH.js} +11 -11
  36. package/dist/{completion-cli-BWw06AVN.js → completion-cli-CE9Xqlyx.js} +1 -1
  37. package/dist/{completion-cli-DYgPksHH.js → completion-cli-CQVZGJPg.js} +2 -2
  38. package/dist/{config-CyV6zkEL.js → config-B6OxYMgn.js} +6 -1
  39. package/dist/{config-BwQutavB.js → config-BNTB6qj8.js} +6 -1
  40. package/dist/{config-jVLwO6DP.js → config-BUTI-mUZ.js} +6 -1
  41. package/dist/{config-Bjt5P4vW.js → config-Dz95lSBW.js} +6 -1
  42. package/dist/{config-cli-DNHtgLYH.js → config-cli-BucNvr-c.js} +2 -2
  43. package/dist/{config-cli-BOS84uDD.js → config-cli-mU_ckD4l.js} +2 -2
  44. package/dist/{config-guard-bJv1t515.js → config-guard-B1skCv1C.js} +2 -2
  45. package/dist/{config-guard-BTGDJDTi.js → config-guard-CEkSg4hl.js} +3 -3
  46. package/dist/{config-validation-D1EjO6bG.js → config-validation-Cutpn5eO.js} +1 -1
  47. package/dist/{config-validation-PZAxf4DR.js → config-validation-HDVDlMSV.js} +1 -1
  48. package/dist/{configure-B7YGhbtM.js → configure-CDOF87Fk.js} +10 -10
  49. package/dist/{configure-DZQuTL_V.js → configure-CxnBcN95.js} +10 -10
  50. package/dist/{control-service-B0G5d40m.js → control-service-BYKXzY4f.js} +4 -4
  51. package/dist/{control-service-BW1BNnC1.js → control-service-rbSHSlcd.js} +4 -4
  52. package/dist/control-ui/js/app.js +41 -0
  53. package/dist/{cron-cli-B88WIOK2.js → cron-cli-DCpsXkrw.js} +3 -3
  54. package/dist/{cron-cli-QxHcrynL.js → cron-cli-QCTdVZuP.js} +3 -3
  55. package/dist/{daemon-cli-Cy45NZwV.js → daemon-cli-DSDcmWOi.js} +6 -6
  56. package/dist/{daemon-cli-DK3CCo49.js → daemon-cli-DhJYEAoL.js} +6 -6
  57. package/dist/daemon-cli.js +6 -1
  58. package/dist/{daemon-runtime-A-deduW3.js → daemon-runtime-CVFg-ZmT.js} +1 -1
  59. package/dist/{daemon-runtime-CdKAsAeg.js → daemon-runtime-mE1b-Q48.js} +1 -1
  60. package/dist/{deliver-BjpaKGTx.js → deliver-B4KZ6-oZ.js} +3 -3
  61. package/dist/{deliver-BCmoI9iE.js → deliver-Bu0iWeja.js} +3 -3
  62. package/dist/{deliver-Cm6Yfbzh.js → deliver-C1HRkzPJ.js} +2 -2
  63. package/dist/{deliver-SIVO_ZZm.js → deliver-DtuY4Wgl.js} +2 -2
  64. package/dist/{devices-cli-f3yJl6-G.js → devices-cli-BNG-fvdl.js} +2 -2
  65. package/dist/{devices-cli-D6sKbRkk.js → devices-cli-x3jIP4Ih.js} +2 -2
  66. package/dist/{directory-cli-DDb20Fzl.js → directory-cli-BxnSZZsW.js} +1 -1
  67. package/dist/{directory-cli-hohI4d8v.js → directory-cli-KgsAVTA0.js} +1 -1
  68. package/dist/{dns-cli-DIZyU_2d.js → dns-cli-BuVomfxS.js} +1 -1
  69. package/dist/{dns-cli-C1SXZIAh.js → dns-cli-Cwr92Aiq.js} +1 -1
  70. package/dist/{doctor-completion-UC-Jc5jn.js → doctor-completion-CHF_TwGQ.js} +1 -1
  71. package/dist/{doctor-completion-BayL_S0c.js → doctor-completion-CoftKlUX.js} +1 -1
  72. package/dist/{doctor-config-flow-DLtGtIf_.js → doctor-config-flow-DhAYwhNB.js} +2 -2
  73. package/dist/{doctor-config-flow-i4XYSFXR.js → doctor-config-flow-iIzSEQxb.js} +2 -2
  74. package/dist/entry.js +1 -1
  75. package/dist/{exec-approvals-cli-DpFjEahL.js → exec-approvals-cli-BSgxsdMt.js} +4 -4
  76. package/dist/{exec-approvals-cli-Cr-mrEfY.js → exec-approvals-cli-CmndFjEA.js} +4 -4
  77. package/dist/extensionAPI.js +13 -13
  78. package/dist/{gateway-cli-Cwh2BbPv.js → gateway-cli-G7fiXsQ6.js} +42 -42
  79. package/dist/{gateway-cli-BFPPqLYw.js → gateway-cli-SNaqDM7f.js} +41 -41
  80. package/dist/{gateway-rpc-CS_pPYyV.js → gateway-rpc-5fREQe9Q.js} +1 -1
  81. package/dist/{gateway-rpc-Ddqs16S-.js → gateway-rpc-BMdVa3QV.js} +1 -1
  82. package/dist/{glass-ui-ws-DB9p7t4H.js → glass-ui-ws-CF0__vuO.js} +34 -34
  83. package/dist/{glass-ui-ws-BfHJCfCz.js → glass-ui-ws-he25wGFt.js} +33 -33
  84. package/dist/{health-Bx6RQ4MZ.js → health-en2N_Kqc.js} +5 -5
  85. package/dist/{health-CLIwZbJe.js → health-q7706M36.js} +5 -5
  86. package/dist/{hooks-cli-BgALdxuB.js → hooks-cli-C4rVaLzZ.js} +26 -26
  87. package/dist/{hooks-cli-CF4fT-gm.js → hooks-cli-ChQbBpyb.js} +27 -27
  88. package/dist/{image-DI1dYFo0.js → image-BWmcNF8N.js} +2 -2
  89. package/dist/{image-KpMaj86B.js → image-C3wYkWyK.js} +2 -2
  90. package/dist/{image-BmIvgTV4.js → image-CbyTdMd5.js} +2 -2
  91. package/dist/{image-BrxGAFvc.js → image-lp19FlzF.js} +2 -2
  92. package/dist/index.js +34 -34
  93. package/dist/{lifecycle-core-BnlvcthF.js → lifecycle-core-BZ5sOcHT.js} +2 -2
  94. package/dist/{lifecycle-core-D8iU9ahw.js → lifecycle-core-C4HzGXA1.js} +2 -2
  95. package/dist/llm-slug-generator.js +13 -13
  96. package/dist/{login-CayZfsyE.js → login-BkbDSDPc.js} +2 -2
  97. package/dist/{login-bQWLSSfZ.js → login-BtBwGFrb.js} +2 -2
  98. package/dist/{login-DPxmcuIe.js → login-CiVdC-o_.js} +2 -2
  99. package/dist/{login-QU18rIZK.js → login-DODfJ3Dn.js} +2 -2
  100. package/dist/{login-qr-Bn4BQkWf.js → login-qr-CBRxijIg.js} +2 -2
  101. package/dist/{login-qr-BB2Zfn7K.js → login-qr-DPxuLEvD.js} +2 -2
  102. package/dist/{login-qr-CPn2Q7vV.js → login-qr-Dbw5m381.js} +2 -2
  103. package/dist/{login-qr-l5XwJWk9.js → login-qr-q201Ckfe.js} +2 -2
  104. package/dist/{logs-cli-COwO0YyZ.js → logs-cli-CfGj-dOg.js} +3 -3
  105. package/dist/{logs-cli-2z1YdwSX.js → logs-cli-DtlrLf7u.js} +3 -3
  106. package/dist/{memory-cli-B7GV_Iz_.js → memory-cli-Btzr8gfD.js} +1 -1
  107. package/dist/{memory-cli-9q0ppQpo.js → memory-cli-DDumUksr.js} +1 -1
  108. package/dist/{model-catalog-CsKgWlNp.js → model-catalog-8Son0J4O.js} +2 -2
  109. package/dist/{model-catalog-b9o0TtF7.js → model-catalog-DNvgFPZn.js} +2 -2
  110. package/dist/{model-picker-DBsP93uq.js → model-picker-CAm2Bftd.js} +2 -2
  111. package/dist/{model-picker-CRy3nJeT.js → model-picker-Casgrpw3.js} +2 -2
  112. package/dist/{models-CPIhph0W.js → models-DOTpfa7b.js} +8 -8
  113. package/dist/{models-cli-C01GsvW2.js → models-cli-CBl45f7R.js} +28 -28
  114. package/dist/{models-cli-CLqS4ENq.js → models-cli-MJAY_Wg4.js} +29 -29
  115. package/dist/{models-config-Bc8qKqev.js → models-config-Be8DRFkB.js} +1 -1
  116. package/dist/{models-config-BiIYPWCW.js → models-config-CFFjJPe7.js} +1 -1
  117. package/dist/{node-cli-BeZKOSYR.js → node-cli-DnfDOh1d.js} +9 -9
  118. package/dist/{node-cli-74pkmapS.js → node-cli-eHn9-YfJ.js} +9 -9
  119. package/dist/{nodes-cli-nic1q7eb.js → nodes-cli-Ci3oxw8k.js} +3 -3
  120. package/dist/{nodes-cli-DJHcnIfL.js → nodes-cli-Ct4M7JOe.js} +3 -3
  121. package/dist/{onboard-CzncEzdT.js → onboard-Bx02XPb1.js} +7 -7
  122. package/dist/{onboard-BrxB6sbz.js → onboard-DQdGJ1lE.js} +7 -7
  123. package/dist/{onboard-channels-BBUPobrz.js → onboard-channels-Bp89ZT6Q.js} +1 -1
  124. package/dist/{onboard-channels-H11ympjW.js → onboard-channels-Ct2eNYUC.js} +1 -1
  125. package/dist/{onboard-custom-BFbF4nGV.js → onboard-custom-CQOMQkfS.js} +2 -2
  126. package/dist/{onboard-custom-Bt-wDMSz.js → onboard-custom-XiomtQr7.js} +2 -2
  127. package/dist/{onboard-helpers-ChH5EhW2.js → onboard-helpers-BBtPmJEe.js} +2 -2
  128. package/dist/{onboard-helpers-MnxHJAaB.js → onboard-helpers-DFvWPFhU.js} +2 -2
  129. package/dist/{onboard-remote-57GHsVPU.js → onboard-remote-BURDxwoE.js} +1 -1
  130. package/dist/{onboard-remote-BRxgNeoe.js → onboard-remote-D-B4EiOE.js} +1 -1
  131. package/dist/{onboard-skills-DtcVRCTc.js → onboard-skills-BDCzVjxb.js} +1 -1
  132. package/dist/{onboard-skills-CLnJpRrp.js → onboard-skills-CbzgBT1W.js} +1 -1
  133. package/dist/{onboarding-D8p8ii63.js → onboarding-Dnn_0VTy.js} +10 -10
  134. package/dist/{onboarding-D7hzRo_I.js → onboarding-DxUcsrKV.js} +10 -10
  135. package/dist/{onboarding.finalize-BJUg2rlZ.js → onboarding.finalize-1kzzMLFM.js} +33 -33
  136. package/dist/{onboarding.finalize-C-rIKbkf.js → onboarding.finalize-Dwr-jEtL.js} +31 -31
  137. package/dist/{onboarding.gateway-config-CTbWQvl6.js → onboarding.gateway-config-B9zGPfCl.js} +4 -4
  138. package/dist/{onboarding.gateway-config-oxW0bLBK.js → onboarding.gateway-config-DKwJ5bWd.js} +4 -4
  139. package/dist/{outbound-BodV7hPd.js → outbound-BIOChOHt.js} +1 -1
  140. package/dist/{outbound-BOqx1b0e.js → outbound-Bt8rj9kO.js} +1 -1
  141. package/dist/{outbound-BhKz3zWF.js → outbound-DL8bdXlZ.js} +1 -1
  142. package/dist/{outbound-CG3KehgB.js → outbound-wnv03tb3.js} +1 -1
  143. package/dist/{pairing-cli-RbEs_EMc.js → pairing-cli-DSM82gJG.js} +1 -1
  144. package/dist/{pairing-cli-NErE7ajG.js → pairing-cli-HDWwcqjZ.js} +1 -1
  145. package/dist/{pi-embedded-b2yPH0UQ.js → pi-embedded-BfEg6Wwb.js} +377 -247
  146. package/dist/{pi-embedded-helpers-CeNTB0sV.js → pi-embedded-helpers-BgdB5kvy.js} +1 -1
  147. package/dist/{pi-embedded-helpers-cgZRM5cz.js → pi-embedded-helpers-DA4liAIZ.js} +1 -1
  148. package/dist/{pi-embedded-helpers-Bdac0DIf.js → pi-embedded-helpers-Dij3O6ox.js} +5 -5
  149. package/dist/{pi-embedded-helpers-BDI11Fqj.js → pi-embedded-helpers-GaCyI2oH.js} +5 -5
  150. package/dist/{pi-tools.policy-BYklnTNc.js → pi-tools.policy-DRWb_Cax.js} +2 -2
  151. package/dist/{pi-tools.policy-B4NDL7r-.js → pi-tools.policy-DxNwL7Dl.js} +2 -2
  152. package/dist/{plugin-registry-CzWOGG0k.js → plugin-registry-BMFEJ4FA.js} +2 -2
  153. package/dist/{plugin-registry-29yLAS46.js → plugin-registry-wAQeBSeD.js} +2 -2
  154. package/dist/plugin-sdk/agents/session-empty-prune.d.ts +37 -0
  155. package/dist/plugin-sdk/agents/session-transcript-repair.d.ts +8 -0
  156. package/dist/plugin-sdk/{audio-preflight-DSEypXnx.js → audio-preflight-BacDFPyc.js} +5 -5
  157. package/dist/plugin-sdk/{channel-web-DwLIjUen.js → channel-web-Ba27v-Om.js} +7 -7
  158. package/dist/plugin-sdk/{chrome-DC-la42T.js → chrome-BMimuhgP.js} +1 -1
  159. package/dist/plugin-sdk/config/model-profiles.d.ts +7 -0
  160. package/dist/plugin-sdk/config/zod-schema.core.d.ts +2 -0
  161. package/dist/plugin-sdk/config/zod-schema.d.ts +1 -0
  162. package/dist/plugin-sdk/{config-DgwyZd2S.js → config-DdA6JiyD.js} +6 -1
  163. package/dist/plugin-sdk/{deliver-7pgLdSpM.js → deliver-Bxa1-mj5.js} +2 -2
  164. package/dist/plugin-sdk/{image-CqMZSk6f.js → image-aq-JAobP.js} +2 -2
  165. package/dist/plugin-sdk/index.js +17 -17
  166. package/dist/plugin-sdk/{login-DJzS9QT2.js → login-CHgiUvI_.js} +2 -2
  167. package/dist/plugin-sdk/{login-qr-DziBjQY5.js → login-qr-D5vJo1fy.js} +2 -2
  168. package/dist/plugin-sdk/{outbound-DmsEc64Z.js → outbound-CD38Hxn9.js} +1 -1
  169. package/dist/plugin-sdk/{pi-embedded-helpers-C33OSgwG.js → pi-embedded-helpers-BPvzgLtj.js} +5 -5
  170. package/dist/plugin-sdk/{pw-ai-MIepjtIO.js → pw-ai-fdBOQzz5.js} +2 -2
  171. package/dist/plugin-sdk/{replies-Bw1Amxop.js → replies-CW_-4klO.js} +1 -1
  172. package/dist/plugin-sdk/{reply-BxYNpQRu.js → reply-Bok_WQGW.js} +377 -247
  173. package/dist/plugin-sdk/{runner-Bh4NdzRK.js → runner-BQJ7x06O.js} +2 -2
  174. package/dist/plugin-sdk/{send-CENVp2ol.js → send-C4t6h9-o.js} +1 -1
  175. package/dist/plugin-sdk/{send-Bf62p_ul.js → send-Cz_FQ8Ao.js} +1 -1
  176. package/dist/plugin-sdk/{send-D5_J2DiV.js → send-DG6c7BpZ.js} +1 -1
  177. package/dist/plugin-sdk/{send-P1G7c4FN.js → send-HKy51Hz_.js} +1 -1
  178. package/dist/plugin-sdk/{send-Ddy4p4LW.js → send-Xy1L54q4.js} +1 -1
  179. package/dist/plugin-sdk/{session-Z4-R_Top.js → session-BUzIlHr9.js} +1 -1
  180. package/dist/plugin-sdk/{web-DiNM_c37.js → web-BoOAa0Xn.js} +17 -17
  181. package/dist/plugin-sdk/{whatsapp-actions-Bg6DfWkN.js → whatsapp-actions-CZLagx0h.js} +2 -2
  182. package/dist/{plugins-cli-D4bGKnOF.js → plugins-cli-B36YKKla.js} +26 -26
  183. package/dist/{plugins-cli-DZ6arND4.js → plugins-cli-DoJbbST7.js} +27 -27
  184. package/dist/{program-DE9DbHYV.js → program-4f7W2RMs.js} +33 -33
  185. package/dist/{program-context-iI9_njQv.js → program-context-Y4KnAKNT.js} +38 -38
  186. package/dist/{prompt-select-styled-SHa0ZJL9.js → prompt-select-styled-D0sLJ4TD.js} +14 -14
  187. package/dist/{prompt-select-styled-D0ELdY0x.js → prompt-select-styled-Dql_0SI0.js} +14 -14
  188. package/dist/{provider-auth-helpers-EMBbfX3w.js → provider-auth-helpers-CJbHC_mv.js} +2 -2
  189. package/dist/{provider-auth-helpers-BI2k0jlH.js → provider-auth-helpers-GSv3namf.js} +2 -2
  190. package/dist/{push-apns-DyeCPAvI.js → push-apns-giplY7u-.js} +1 -1
  191. package/dist/{push-apns-DcbeaY5y.js → push-apns-sxB8QxSj.js} +1 -1
  192. package/dist/{pw-ai-LB6wkt8h.js → pw-ai-BCSFVeD5.js} +2 -2
  193. package/dist/{pw-ai-sY1BRRsq.js → pw-ai-BO5cSmwD.js} +2 -2
  194. package/dist/{pw-ai-C2z2aMEp.js → pw-ai-DQohWnzT.js} +2 -2
  195. package/dist/{pw-ai-C_7yEh9n.js → pw-ai-pQoxTh-a.js} +2 -2
  196. package/dist/{qr-cli-B-NWpxfN.js → qr-cli-CejYwqsj.js} +1 -1
  197. package/dist/{qr-cli-TaubpmtG.js → qr-cli-XttU2KOR.js} +1 -1
  198. package/dist/{register.agent-D4o7bi_u.js → register.agent-_2tVQLMK.js} +34 -34
  199. package/dist/{register.agent-D-1w3KOa.js → register.agent-vd2BSsyE.js} +32 -32
  200. package/dist/{register.configure-BIczNshG.js → register.configure-BVKwTrz8.js} +37 -37
  201. package/dist/{register.configure-BYCEJg1c.js → register.configure-D-XV6_Nb.js} +36 -36
  202. package/dist/{register.maintenance-k6z5GVrO.js → register.maintenance-BqYR2fop.js} +36 -36
  203. package/dist/{register.maintenance-Syt4oSuk.js → register.maintenance-XySU31jf.js} +34 -34
  204. package/dist/{register.message-Bi7QLNId.js → register.message-CCfWNWs3.js} +26 -26
  205. package/dist/{register.message-BJeeT9xQ.js → register.message-DOyREWdG.js} +27 -27
  206. package/dist/{register.onboard-B_FeHkL-.js → register.onboard-Dy_D_uMj.js} +33 -33
  207. package/dist/{register.onboard-DDbxMjmt.js → register.onboard-zmF-euog.js} +32 -32
  208. package/dist/{register.setup-Cpl67hQ6.js → register.setup-DiGPa1Fw.js} +32 -32
  209. package/dist/{register.setup-CPi3uss4.js → register.setup-cE7gPp2m.js} +33 -33
  210. package/dist/{register.status-health-sessions-DsY8YuEo.js → register.status-health-sessions-DWKL1rkz.js} +29 -29
  211. package/dist/{register.status-health-sessions-CHPN3CNt.js → register.status-health-sessions-ksv1WnIs.js} +31 -31
  212. package/dist/{register.subclis-D5JRuk93.js → register.subclis-Crt_IYK0.js} +28 -28
  213. package/dist/{replies-cMkt1-fW.js → replies-BMqtgBhh.js} +1 -1
  214. package/dist/{replies-CYuZN9PJ.js → replies-Bo49QlAg.js} +1 -1
  215. package/dist/{replies-C2sQt_cX.js → replies-CBS0567j.js} +1 -1
  216. package/dist/{replies-zOTZyd6v.js → replies-CfyMcfoY.js} +1 -1
  217. package/dist/{reply-D55iMWI5.js → reply-CjYJHt_H.js} +388 -258
  218. package/dist/{routes-ClhmdN8I.js → routes-BAZTZNuQ.js} +3 -3
  219. package/dist/{routes-DRkO6iuR.js → routes-CMvgBDOg.js} +3 -3
  220. package/dist/{rpc-DvA01fCj.js → rpc-Co5PQ3IJ.js} +1 -1
  221. package/dist/{rpc-UsQvUYIP.js → rpc-D0FiEinj.js} +1 -1
  222. package/dist/{run-main-BWoPODyq.js → run-main-bOlPbL7t.js} +44 -44
  223. package/dist/{runner-_7xOqQDP.js → runner-B0AbN8wV.js} +2 -2
  224. package/dist/{runner-CtF7EgsD.js → runner-Ct0suQrd.js} +2 -2
  225. package/dist/{runner-D3aZ5p3H.js → runner-DRv0uCK_.js} +3 -3
  226. package/dist/{runner-z_tSZGY5.js → runner-Dd2bbNGV.js} +3 -3
  227. package/dist/{sandbox-rjqN2SHD.js → sandbox-B6N8cV4d.js} +5 -5
  228. package/dist/{sandbox-DrIHYiE6.js → sandbox-DY75ZyJD.js} +5 -5
  229. package/dist/{sandbox-cli-QpZpJ6Hq.js → sandbox-cli-BDM_QM_f.js} +6 -6
  230. package/dist/{sandbox-cli-BiiThMpq.js → sandbox-cli-DwzaNjIJ.js} +6 -6
  231. package/dist/{security-cli-DxNPZzVB.js → security-cli-CG1uSlRK.js} +9 -9
  232. package/dist/{security-cli-s_AbIm-b.js → security-cli-D5BWzqEJ.js} +9 -9
  233. package/dist/{send-C1ptDV-M.js → send-9SapUCg7.js} +1 -1
  234. package/dist/{send-DV8npIWi.js → send-B3RdXvjC.js} +1 -1
  235. package/dist/{send-CVSO0ZdD.js → send-B7HhiTdx.js} +1 -1
  236. package/dist/{send-DryK_KEK.js → send-B986asZ7.js} +1 -1
  237. package/dist/{send-DNJAa7Q_.js → send-B9EinkUl.js} +1 -1
  238. package/dist/{send-De1p8sZA.js → send-BNnv8GtF.js} +1 -1
  239. package/dist/{send-B9pwTYyE.js → send-BhJZ16uV.js} +1 -1
  240. package/dist/{send-B62vYwo8.js → send-Bm4ULEzh.js} +1 -1
  241. package/dist/{send-BJNUY-9E.js → send-BzKHnf3b.js} +1 -1
  242. package/dist/{send-C6jy9sVB.js → send-CC9V8V81.js} +1 -1
  243. package/dist/{send-DK-Jat_i.js → send-CQVnyJyF.js} +1 -1
  244. package/dist/{send-Dx7S4jGp.js → send-CZemAajS.js} +1 -1
  245. package/dist/{send-BTXR3fPR.js → send-DI9Vhnmw.js} +1 -1
  246. package/dist/{send-BvCit35j.js → send-DLWaX69q.js} +1 -1
  247. package/dist/{send-qSITFlVc.js → send-DSnJ503J.js} +1 -1
  248. package/dist/{send-B7MtdeLq.js → send-DVm0du0_.js} +1 -1
  249. package/dist/{send-D8DhbDGm.js → send-DaBsat3L.js} +1 -1
  250. package/dist/{send-iIqnmxNc.js → send-DdLJtOjk.js} +1 -1
  251. package/dist/{send-4MJyhXk5.js → send-DlQtxlG_.js} +1 -1
  252. package/dist/{send-DiYc3Z2y.js → send-RfIXG6-I.js} +1 -1
  253. package/dist/{server-context-C3fvq6h5.js → server-context-CCBZN8a0.js} +5 -5
  254. package/dist/{server-context-CtYkBX0P.js → server-context-DK-T2rBR.js} +5 -5
  255. package/dist/{server-methods-DY-jApXo.js → server-methods-CiwWwj6K.js} +15 -15
  256. package/dist/{server-methods-C4oRmj--.js → server-methods-VimYvcpY.js} +16 -16
  257. package/dist/{server-node-events--9s3cGoR.js → server-node-events-CHmLiFNV.js} +27 -27
  258. package/dist/{server-node-events-Bw6yFsJP.js → server-node-events-DYC45lKC.js} +26 -26
  259. package/dist/{session-XfYb9nxX.js → session-C1cn-CxQ.js} +1 -1
  260. package/dist/{session-BmC1G2OF.js → session-CUeezgP1.js} +1 -1
  261. package/dist/{session-3P44Lx9Z.js → session-DsJGtM7g.js} +1 -1
  262. package/dist/{session-utils-DlQSI-Te.js → session-utils-B8Fif925.js} +3 -3
  263. package/dist/{session-BUTPdQjj.js → session-v_9AVJhH.js} +1 -1
  264. package/dist/{sessions-Dxc5UV-H.js → sessions-Cfa6JEB3.js} +1 -1
  265. package/dist/{sessions-9tWmT3oM.js → sessions-Cpgnq0pA.js} +1 -1
  266. package/dist/{sessions-BL_hivz0.js → sessions-DfbhRBHR.js} +3 -3
  267. package/dist/{shared-DEvSdt0I.js → shared-73T9fyuK.js} +1 -1
  268. package/dist/{shared-DwzDlNQn.js → shared-DdxPzyOH.js} +1 -1
  269. package/dist/{skills-cli-BHJAAvDv.js → skills-cli-DXkx4vNV.js} +1 -1
  270. package/dist/{skills-cli-CES7tX87.js → skills-cli-uEA9KXOO.js} +1 -1
  271. package/dist/{status-DxqgzaIz.js → status-CA5wJHMj.js} +2 -2
  272. package/dist/{status-CfCqG5a6.js → status-DEpM69Pd.js} +9 -9
  273. package/dist/{status-CPQrmN1p.js → status-Dt_MXoNa.js} +2 -2
  274. package/dist/{status-DZHTCKq_.js → status-DxhtJtzE.js} +10 -10
  275. package/dist/{status.update-BhJp4NkS.js → status.update-C2GN8s9C.js} +1 -1
  276. package/dist/{status.update-DqXGFKta.js → status.update-CG0ciGaf.js} +1 -1
  277. package/dist/{subagent-registry-BGKDFTRA.js → subagent-registry-BPwn3Qm7.js} +389 -259
  278. package/dist/{system-cli-BrZGQcZl.js → system-cli-DFZNGx0i.js} +3 -3
  279. package/dist/{system-cli-CjgIC8rh.js → system-cli-Z7uzO8qd.js} +3 -3
  280. package/dist/{systemd-hints-B8AHs8Nn.js → systemd-hints-DT6cDIM2.js} +1 -1
  281. package/dist/{systemd-hints-DUXXob94.js → systemd-hints-xYZbFny_.js} +1 -1
  282. package/dist/{tui-BktCSga7.js → tui-DjPsMdL6.js} +4 -4
  283. package/dist/{tui-CAzxJ9EP.js → tui-DrATGNms.js} +4 -4
  284. package/dist/{tui-cli-AXeYpVcb.js → tui-cli-D19-MCXt.js} +9 -9
  285. package/dist/{tui-cli-Bz3RdHqe.js → tui-cli-pWD_NrUR.js} +9 -9
  286. package/dist/{unified-runner-BhGMOS0G.js → unified-runner-CVkyzT1I.js} +166 -36
  287. package/dist/{update-cli-n_Tkv8N_.js → update-cli-Dh_dfprI.js} +39 -39
  288. package/dist/{update-cli-C8EpxduY.js → update-cli-Dv4c5Gup.js} +37 -37
  289. package/dist/{update-runner-CowTMnrt.js → update-runner-CG_kbbGR.js} +1 -1
  290. package/dist/{update-runner-Tk50GxTW.js → update-runner-MMFI1UZ0.js} +1 -1
  291. package/dist/{web-CMLJq-WC.js → web-BUc-ts5b.js} +16 -16
  292. package/dist/{web-Cz8o-Hc9.js → web-CJk-lv93.js} +16 -16
  293. package/dist/{web-ONk39lyq.js → web-CfVd3Mhp.js} +29 -29
  294. package/dist/{web-BIpIz8vD.js → web-DCBOD-Vj.js} +29 -29
  295. package/dist/{webhooks-cli-v0rfBwU8.js → webhooks-cli-BRxe4uCg.js} +1 -1
  296. package/dist/{webhooks-cli-Da8YhVu4.js → webhooks-cli-CsRZl0_H.js} +1 -1
  297. package/dist/{whatsapp-actions-Cz2qhCrD.js → whatsapp-actions-7YbV2-Fv.js} +2 -2
  298. package/dist/{whatsapp-actions-Ba3KBpGu.js → whatsapp-actions-BylecqEa.js} +2 -2
  299. package/dist/{whatsapp-actions-AEeCOVko.js → whatsapp-actions-ChO_shrk.js} +2 -2
  300. package/dist/{whatsapp-actions-BPn8FtPC.js → whatsapp-actions-mBarFBeS.js} +2 -2
  301. package/dist/{with-timeout-487M8IgO.js → with-timeout-Cgi3TwWN.js} +1 -1
  302. package/dist/{with-timeout-BU7MJQDD.js → with-timeout-CtVdu_1U.js} +1 -1
  303. package/extensions/bluebubbles/package.json +1 -1
  304. package/extensions/copilot-proxy/package.json +1 -1
  305. package/extensions/diagnostics-otel/package.json +1 -1
  306. package/extensions/discord/package.json +1 -1
  307. package/extensions/feishu/package.json +1 -1
  308. package/extensions/google-antigravity-auth/package.json +1 -1
  309. package/extensions/google-gemini-cli-auth/package.json +1 -1
  310. package/extensions/googlechat/package.json +1 -1
  311. package/extensions/imessage/package.json +1 -1
  312. package/extensions/irc/package.json +1 -1
  313. package/extensions/learning-loop/package.json +1 -1
  314. package/extensions/line/package.json +1 -1
  315. package/extensions/llm-task/package.json +1 -1
  316. package/extensions/matrix/CHANGELOG.md +6 -0
  317. package/extensions/matrix/package.json +1 -1
  318. package/extensions/mattermost/package.json +1 -1
  319. package/extensions/memory-core/package.json +1 -1
  320. package/extensions/memory-lancedb/package.json +1 -1
  321. package/extensions/minimax-portal-auth/package.json +1 -1
  322. package/extensions/msteams/CHANGELOG.md +6 -0
  323. package/extensions/msteams/package.json +1 -1
  324. package/extensions/nextcloud-talk/package.json +1 -1
  325. package/extensions/nostr/CHANGELOG.md +6 -0
  326. package/extensions/nostr/package.json +1 -1
  327. package/extensions/open-prose/package.json +1 -1
  328. package/extensions/outlook/package.json +1 -1
  329. package/extensions/pipeline/package.json +1 -1
  330. package/extensions/signal/package.json +1 -1
  331. package/extensions/slack/package.json +1 -1
  332. package/extensions/telegram/package.json +1 -1
  333. package/extensions/tlon/package.json +1 -1
  334. package/extensions/twitch/CHANGELOG.md +6 -0
  335. package/extensions/twitch/package.json +1 -1
  336. package/extensions/voice-call/CHANGELOG.md +6 -0
  337. package/extensions/voice-call/package.json +1 -1
  338. package/extensions/whatsapp/package.json +1 -1
  339. package/extensions/zalo/CHANGELOG.md +6 -0
  340. package/extensions/zalo/package.json +1 -1
  341. package/extensions/zalouser/CHANGELOG.md +6 -0
  342. package/extensions/zalouser/package.json +1 -1
  343. package/package.json +1 -1
@@ -8,8 +8,8 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYu
8
8
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
9
9
  import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
10
10
  import { n as retryAsync } from "./retry-ilSJqnz9.js";
11
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-P1G7c4FN.js";
12
- import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-DgwyZd2S.js";
11
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-HKy51Hz_.js";
12
+ import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-DdA6JiyD.js";
13
13
  import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
14
14
  import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
15
15
  import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-DduIg_Yt.js";
@@ -27,38 +27,38 @@ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel
27
27
  import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
28
28
  import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
29
29
  import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
30
- 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-Ddy4p4LW.js";
30
+ 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-Xy1L54q4.js";
31
31
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
32
32
  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-B7YyMnIi.js";
33
- import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-D5_J2DiV.js";
34
- import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-Bf62p_ul.js";
35
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-Bh4NdzRK.js";
33
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-DG6c7BpZ.js";
34
+ import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-Cz_FQ8Ao.js";
35
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BQJ7x06O.js";
36
36
  import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
37
37
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
38
38
  import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-D-rpF3bM.js";
39
39
  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-B1GeRYlu.js";
40
- import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-DC-la42T.js";
40
+ import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-BMimuhgP.js";
41
41
  import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
42
42
  import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
43
43
  import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
44
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-7pgLdSpM.js";
45
- import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-C33OSgwG.js";
44
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-Bxa1-mj5.js";
45
+ import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-BPvzgLtj.js";
46
46
  import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
47
47
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
48
48
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
49
49
  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-EyuCSUXO.js";
50
50
  import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
52
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-CqMZSk6f.js";
52
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-aq-JAobP.js";
53
53
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
54
54
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, v as runTasksWithConcurrency } from "./sqlite-Cq_7Cg4E.js";
55
55
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
56
56
  import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CJXUXj6F.js";
57
57
  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-C9W8UWBh.js";
58
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-CENVp2ol.js";
58
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-C4t6h9-o.js";
59
59
  import { t as makeProxyFetch } from "./proxy-MquBDehr.js";
60
60
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
61
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Bw1Amxop.js";
61
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CW_-4klO.js";
62
62
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CcR0OJ6f.js";
63
63
  import { t as getActiveWebListener } from "./active-listener-BRYwA2Ic.js";
64
64
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bug27PHS.js";
@@ -15491,7 +15491,7 @@ async function routeReply(params) {
15491
15491
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
15492
15492
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
15493
15493
  try {
15494
- const { deliverOutboundPayloads } = await import("./deliver-7pgLdSpM.js").then((n) => n.n);
15494
+ const { deliverOutboundPayloads } = await import("./deliver-Bxa1-mj5.js").then((n) => n.n);
15495
15495
  return {
15496
15496
  ok: true,
15497
15497
  messageId: (await deliverOutboundPayloads({
@@ -17965,7 +17965,7 @@ async function describeStickerImage(params) {
17965
17965
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
17966
17966
  try {
17967
17967
  const buffer = await fs$1.readFile(imagePath);
17968
- const { describeImageWithModel } = await import("./image-CqMZSk6f.js").then((n) => n.n);
17968
+ const { describeImageWithModel } = await import("./image-aq-JAobP.js").then((n) => n.n);
17969
17969
  return (await describeImageWithModel({
17970
17970
  buffer,
17971
17971
  fileName: "sticker.webp",
@@ -18376,7 +18376,7 @@ function createWhatsAppLoginTool() {
18376
18376
  force: Type.Optional(Type.Boolean())
18377
18377
  }),
18378
18378
  execute: async (_toolCallId, args) => {
18379
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DziBjQY5.js");
18379
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-D5vJo1fy.js");
18380
18380
  if ((args?.action ?? "start") === "wait") {
18381
18381
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
18382
18382
  return {
@@ -20444,7 +20444,7 @@ async function preflightDiscordMessage(params) {
20444
20444
  let preflightTranscript;
20445
20445
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
20446
20446
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
20447
- const { transcribeFirstAudio } = await import("./audio-preflight-DSEypXnx.js");
20447
+ const { transcribeFirstAudio } = await import("./audio-preflight-BacDFPyc.js");
20448
20448
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
20449
20449
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
20450
20450
  ctx: {
@@ -27243,7 +27243,8 @@ const BUILTIN_PROFILES = [
27243
27243
  top_p: .95,
27244
27244
  top_k: 20,
27245
27245
  max_tokens: 16384,
27246
- presence_penalty: 1.5
27246
+ presence_penalty: 1.5,
27247
+ chatTemplateKwargs: { preserve_thinking: true }
27247
27248
  },
27248
27249
  streaming: {
27249
27250
  deltaThrottleMs: 50,
@@ -28033,6 +28034,8 @@ function createModelAwareStreamFn(opts) {
28033
28034
  if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
28034
28035
  if (typeof mergedParams.presence_penalty === "number") injections.presence_penalty = mergedParams.presence_penalty;
28035
28036
  if (typeof mergedParams.frequency_penalty === "number") injections.frequency_penalty = mergedParams.frequency_penalty;
28037
+ const chatTemplateKwargs = mergedParams.chatTemplateKwargs ?? mergedParams.chat_template_kwargs;
28038
+ if (chatTemplateKwargs && typeof chatTemplateKwargs === "object" && !Array.isArray(chatTemplateKwargs)) injections.chat_template_kwargs = chatTemplateKwargs;
28036
28039
  const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
28037
28040
  const isOpenRouter = opts.provider === "openrouter";
28038
28041
  const extraHeaders = {};
@@ -28640,7 +28643,11 @@ function handleMessageUpdate(ctx, evt) {
28640
28643
  emitAgentEvent({
28641
28644
  runId: ctx.params.runId,
28642
28645
  stream: "thinking",
28643
- data: { phase: evtType }
28646
+ data: {
28647
+ phase: evtType,
28648
+ delta: thinkingDelta,
28649
+ content: thinkingContent
28650
+ }
28644
28651
  });
28645
28652
  if (ctx.state.streamReasoning) {
28646
28653
  const partialThinking = extractAssistantThinking(msg);
@@ -30695,6 +30702,338 @@ Use the message tool with buttons:
30695
30702
  [{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
30696
30703
  </plan_mode>`;
30697
30704
 
30705
+ //#endregion
30706
+ //#region src/agents/session-transcript-repair.ts
30707
+ function isToolCallBlock(block) {
30708
+ if (!block || typeof block !== "object") return false;
30709
+ const type = block.type;
30710
+ return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
30711
+ }
30712
+ function hasToolCallInput(block) {
30713
+ const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
30714
+ const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
30715
+ return hasInput || hasArguments;
30716
+ }
30717
+ function hasNonEmptyStringField(value) {
30718
+ return typeof value === "string" && value.trim().length > 0;
30719
+ }
30720
+ function hasToolCallId(block) {
30721
+ return hasNonEmptyStringField(block.id);
30722
+ }
30723
+ function hasToolCallName(block) {
30724
+ return hasNonEmptyStringField(block.name);
30725
+ }
30726
+ function makeMissingToolResult(params) {
30727
+ return {
30728
+ role: "toolResult",
30729
+ toolCallId: params.toolCallId,
30730
+ toolName: params.toolName ?? "unknown",
30731
+ content: [{
30732
+ type: "text",
30733
+ text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
30734
+ }],
30735
+ isError: true,
30736
+ timestamp: Date.now()
30737
+ };
30738
+ }
30739
+ /**
30740
+ * True when an assistant message has no tool calls and only empty/whitespace
30741
+ * text or thinking blocks. This happens when a stream fails before any
30742
+ * content arrives — the blank entry is otherwise persisted and produces
30743
+ * consecutive same-role messages, which strict providers (vLLM) reject with
30744
+ * "role must alternate" errors that poison the session for every future turn.
30745
+ */
30746
+ function isEmptyAssistantMessage(message) {
30747
+ if (!message || typeof message !== "object") return false;
30748
+ const msg = message;
30749
+ if (msg.role !== "assistant") return false;
30750
+ if (!Array.isArray(msg.content) || msg.content.length === 0) return true;
30751
+ for (const block of msg.content) {
30752
+ if (!block || typeof block !== "object") continue;
30753
+ const type = block.type;
30754
+ if (type === "toolCall" || type === "toolUse" || type === "functionCall") return false;
30755
+ if (type === "text") {
30756
+ const text = block.text;
30757
+ if (typeof text === "string" && text.trim().length > 0) return false;
30758
+ continue;
30759
+ }
30760
+ if (type === "thinking") {
30761
+ const thinking = block.thinking;
30762
+ if (typeof thinking === "string" && thinking.trim().length > 0) return false;
30763
+ continue;
30764
+ }
30765
+ return false;
30766
+ }
30767
+ return true;
30768
+ }
30769
+ function stripToolResultDetails(messages) {
30770
+ let touched = false;
30771
+ const out = [];
30772
+ for (const msg of messages) {
30773
+ if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
30774
+ out.push(msg);
30775
+ continue;
30776
+ }
30777
+ if (!("details" in msg)) {
30778
+ out.push(msg);
30779
+ continue;
30780
+ }
30781
+ const { details: _details, ...rest } = msg;
30782
+ touched = true;
30783
+ out.push(rest);
30784
+ }
30785
+ return touched ? out : messages;
30786
+ }
30787
+ function repairToolCallInputs(messages) {
30788
+ let droppedToolCalls = 0;
30789
+ let droppedAssistantMessages = 0;
30790
+ let changed = false;
30791
+ const out = [];
30792
+ for (const msg of messages) {
30793
+ if (!msg || typeof msg !== "object") {
30794
+ out.push(msg);
30795
+ continue;
30796
+ }
30797
+ if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
30798
+ out.push(msg);
30799
+ continue;
30800
+ }
30801
+ const nextContent = [];
30802
+ let droppedInMessage = 0;
30803
+ for (const block of msg.content) {
30804
+ if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
30805
+ droppedToolCalls += 1;
30806
+ droppedInMessage += 1;
30807
+ changed = true;
30808
+ continue;
30809
+ }
30810
+ nextContent.push(block);
30811
+ }
30812
+ if (droppedInMessage > 0) {
30813
+ if (nextContent.length === 0) {
30814
+ droppedAssistantMessages += 1;
30815
+ changed = true;
30816
+ continue;
30817
+ }
30818
+ out.push({
30819
+ ...msg,
30820
+ content: nextContent
30821
+ });
30822
+ continue;
30823
+ }
30824
+ out.push(msg);
30825
+ }
30826
+ return {
30827
+ messages: changed ? out : messages,
30828
+ droppedToolCalls,
30829
+ droppedAssistantMessages
30830
+ };
30831
+ }
30832
+ function sanitizeToolCallInputs(messages) {
30833
+ return repairToolCallInputs(messages).messages;
30834
+ }
30835
+ function sanitizeToolUseResultPairing(messages) {
30836
+ return repairToolUseResultPairing(messages).messages;
30837
+ }
30838
+ function repairToolUseResultPairing(messages) {
30839
+ const out = [];
30840
+ const added = [];
30841
+ const seenToolResultIds = /* @__PURE__ */ new Set();
30842
+ let droppedDuplicateCount = 0;
30843
+ let droppedOrphanCount = 0;
30844
+ let moved = false;
30845
+ let changed = false;
30846
+ const pushToolResult = (msg) => {
30847
+ const id = extractToolResultId(msg);
30848
+ if (id && seenToolResultIds.has(id)) {
30849
+ droppedDuplicateCount += 1;
30850
+ changed = true;
30851
+ return;
30852
+ }
30853
+ if (id) seenToolResultIds.add(id);
30854
+ out.push(msg);
30855
+ };
30856
+ for (let i = 0; i < messages.length; i += 1) {
30857
+ const msg = messages[i];
30858
+ if (!msg || typeof msg !== "object") {
30859
+ out.push(msg);
30860
+ continue;
30861
+ }
30862
+ const role = msg.role;
30863
+ if (role !== "assistant") {
30864
+ if (role !== "toolResult") out.push(msg);
30865
+ else {
30866
+ droppedOrphanCount += 1;
30867
+ changed = true;
30868
+ }
30869
+ continue;
30870
+ }
30871
+ const assistant = msg;
30872
+ const stopReason = assistant.stopReason;
30873
+ if (stopReason === "error" || stopReason === "aborted") {
30874
+ out.push(msg);
30875
+ continue;
30876
+ }
30877
+ const toolCalls = extractToolCallsFromAssistant(assistant);
30878
+ if (toolCalls.length === 0) {
30879
+ out.push(msg);
30880
+ continue;
30881
+ }
30882
+ const toolCallIds = new Set(toolCalls.map((t) => t.id));
30883
+ const spanResultsById = /* @__PURE__ */ new Map();
30884
+ const remainder = [];
30885
+ let j = i + 1;
30886
+ for (; j < messages.length; j += 1) {
30887
+ const next = messages[j];
30888
+ if (!next || typeof next !== "object") {
30889
+ remainder.push(next);
30890
+ continue;
30891
+ }
30892
+ const nextRole = next.role;
30893
+ if (nextRole === "assistant") break;
30894
+ if (nextRole === "toolResult") {
30895
+ const toolResult = next;
30896
+ const id = extractToolResultId(toolResult);
30897
+ if (id && toolCallIds.has(id)) {
30898
+ if (seenToolResultIds.has(id)) {
30899
+ droppedDuplicateCount += 1;
30900
+ changed = true;
30901
+ continue;
30902
+ }
30903
+ if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
30904
+ continue;
30905
+ }
30906
+ }
30907
+ if (nextRole !== "toolResult") remainder.push(next);
30908
+ else {
30909
+ droppedOrphanCount += 1;
30910
+ changed = true;
30911
+ }
30912
+ }
30913
+ out.push(msg);
30914
+ if (spanResultsById.size > 0 && remainder.length > 0) {
30915
+ moved = true;
30916
+ changed = true;
30917
+ }
30918
+ for (const call of toolCalls) {
30919
+ const existing = spanResultsById.get(call.id);
30920
+ if (existing) pushToolResult(existing);
30921
+ else {
30922
+ const missing = makeMissingToolResult({
30923
+ toolCallId: call.id,
30924
+ toolName: call.name
30925
+ });
30926
+ added.push(missing);
30927
+ changed = true;
30928
+ pushToolResult(missing);
30929
+ }
30930
+ }
30931
+ for (const rem of remainder) {
30932
+ if (!rem || typeof rem !== "object") {
30933
+ out.push(rem);
30934
+ continue;
30935
+ }
30936
+ out.push(rem);
30937
+ }
30938
+ i = j - 1;
30939
+ }
30940
+ const changedOrMoved = changed || moved;
30941
+ return {
30942
+ messages: changedOrMoved ? out : messages,
30943
+ added,
30944
+ droppedDuplicateCount,
30945
+ droppedOrphanCount,
30946
+ moved: changedOrMoved
30947
+ };
30948
+ }
30949
+
30950
+ //#endregion
30951
+ //#region src/agents/session-empty-prune.ts
30952
+ /**
30953
+ * Pre-run prune of empty assistant entries from a session JSONL file.
30954
+ *
30955
+ * When a stream fails before any content arrives, pi-coding-agent persists
30956
+ * an assistant message with an empty content array. If this repeats (e.g. a
30957
+ * misconfigured provider fails on every retry), the session ends up with
30958
+ * hundreds of consecutive empty assistant entries. vLLM and other strict
30959
+ * providers then reject the request with a role-ordering error — once the
30960
+ * session is in that state, every future turn fails until the user runs /new.
30961
+ *
30962
+ * This helper runs before SessionManager opens the file, reads the JSONL
30963
+ * line-by-line, filters out any line whose `message` is an empty-content
30964
+ * assistant, and rewrites the file atomically if anything was dropped. The
30965
+ * in-memory SessionManager state and the on-disk file stay consistent.
30966
+ *
30967
+ * The append guard in {@link ./session-tool-result-guard.ts} prevents new
30968
+ * empty entries from being written; this helper retroactively cleans files
30969
+ * that were poisoned before the guard existed.
30970
+ *
30971
+ * @module
30972
+ */
30973
+ async function readSessionFile(sessionFile) {
30974
+ try {
30975
+ return await fs$1.readFile(sessionFile, "utf-8");
30976
+ } catch {
30977
+ return null;
30978
+ }
30979
+ }
30980
+ async function writeAtomically(sessionFile, text) {
30981
+ const dir = path.dirname(sessionFile);
30982
+ const base = path.basename(sessionFile);
30983
+ const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
30984
+ await fs$1.writeFile(tmp, text, "utf-8");
30985
+ await fs$1.rename(tmp, sessionFile);
30986
+ }
30987
+ /**
30988
+ * Remove empty assistant JSONL entries from the session file.
30989
+ *
30990
+ * Parses each line; lines that don't parse are preserved verbatim so we don't
30991
+ * lose unknown data. Only lines that parse into a `{type:"message", message:
30992
+ * <empty-assistant>}` entry are dropped.
30993
+ */
30994
+ async function pruneEmptyAssistantsFromSessionFile(sessionFile) {
30995
+ const raw = await readSessionFile(sessionFile);
30996
+ if (raw === null || raw.length === 0) return {
30997
+ rewrote: false,
30998
+ pruned: 0,
30999
+ unparsable: 0
31000
+ };
31001
+ const lines = raw.split("\n");
31002
+ const kept = [];
31003
+ let pruned = 0;
31004
+ let unparsable = 0;
31005
+ for (const line of lines) {
31006
+ if (line.length === 0) {
31007
+ kept.push(line);
31008
+ continue;
31009
+ }
31010
+ let parsed = null;
31011
+ try {
31012
+ parsed = JSON.parse(line);
31013
+ } catch {
31014
+ unparsable += 1;
31015
+ kept.push(line);
31016
+ continue;
31017
+ }
31018
+ if (parsed?.type === "message" && isEmptyAssistantMessage(parsed.message)) {
31019
+ pruned += 1;
31020
+ continue;
31021
+ }
31022
+ kept.push(line);
31023
+ }
31024
+ if (pruned === 0) return {
31025
+ rewrote: false,
31026
+ pruned: 0,
31027
+ unparsable
31028
+ };
31029
+ await writeAtomically(sessionFile, kept.join("\n"));
31030
+ return {
31031
+ rewrote: true,
31032
+ pruned,
31033
+ unparsable
31034
+ };
31035
+ }
31036
+
30698
31037
  //#endregion
30699
31038
  //#region src/agents/session-file-repair.ts
30700
31039
  function isSessionHeader(entry) {
@@ -30968,221 +31307,6 @@ function sessionLikelyHasOversizedToolResults(params) {
30968
31307
  return false;
30969
31308
  }
30970
31309
 
30971
- //#endregion
30972
- //#region src/agents/session-transcript-repair.ts
30973
- function isToolCallBlock(block) {
30974
- if (!block || typeof block !== "object") return false;
30975
- const type = block.type;
30976
- return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
30977
- }
30978
- function hasToolCallInput(block) {
30979
- const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
30980
- const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
30981
- return hasInput || hasArguments;
30982
- }
30983
- function hasNonEmptyStringField(value) {
30984
- return typeof value === "string" && value.trim().length > 0;
30985
- }
30986
- function hasToolCallId(block) {
30987
- return hasNonEmptyStringField(block.id);
30988
- }
30989
- function hasToolCallName(block) {
30990
- return hasNonEmptyStringField(block.name);
30991
- }
30992
- function makeMissingToolResult(params) {
30993
- return {
30994
- role: "toolResult",
30995
- toolCallId: params.toolCallId,
30996
- toolName: params.toolName ?? "unknown",
30997
- content: [{
30998
- type: "text",
30999
- text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
31000
- }],
31001
- isError: true,
31002
- timestamp: Date.now()
31003
- };
31004
- }
31005
- function stripToolResultDetails(messages) {
31006
- let touched = false;
31007
- const out = [];
31008
- for (const msg of messages) {
31009
- if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
31010
- out.push(msg);
31011
- continue;
31012
- }
31013
- if (!("details" in msg)) {
31014
- out.push(msg);
31015
- continue;
31016
- }
31017
- const { details: _details, ...rest } = msg;
31018
- touched = true;
31019
- out.push(rest);
31020
- }
31021
- return touched ? out : messages;
31022
- }
31023
- function repairToolCallInputs(messages) {
31024
- let droppedToolCalls = 0;
31025
- let droppedAssistantMessages = 0;
31026
- let changed = false;
31027
- const out = [];
31028
- for (const msg of messages) {
31029
- if (!msg || typeof msg !== "object") {
31030
- out.push(msg);
31031
- continue;
31032
- }
31033
- if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
31034
- out.push(msg);
31035
- continue;
31036
- }
31037
- const nextContent = [];
31038
- let droppedInMessage = 0;
31039
- for (const block of msg.content) {
31040
- if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
31041
- droppedToolCalls += 1;
31042
- droppedInMessage += 1;
31043
- changed = true;
31044
- continue;
31045
- }
31046
- nextContent.push(block);
31047
- }
31048
- if (droppedInMessage > 0) {
31049
- if (nextContent.length === 0) {
31050
- droppedAssistantMessages += 1;
31051
- changed = true;
31052
- continue;
31053
- }
31054
- out.push({
31055
- ...msg,
31056
- content: nextContent
31057
- });
31058
- continue;
31059
- }
31060
- out.push(msg);
31061
- }
31062
- return {
31063
- messages: changed ? out : messages,
31064
- droppedToolCalls,
31065
- droppedAssistantMessages
31066
- };
31067
- }
31068
- function sanitizeToolCallInputs(messages) {
31069
- return repairToolCallInputs(messages).messages;
31070
- }
31071
- function sanitizeToolUseResultPairing(messages) {
31072
- return repairToolUseResultPairing(messages).messages;
31073
- }
31074
- function repairToolUseResultPairing(messages) {
31075
- const out = [];
31076
- const added = [];
31077
- const seenToolResultIds = /* @__PURE__ */ new Set();
31078
- let droppedDuplicateCount = 0;
31079
- let droppedOrphanCount = 0;
31080
- let moved = false;
31081
- let changed = false;
31082
- const pushToolResult = (msg) => {
31083
- const id = extractToolResultId(msg);
31084
- if (id && seenToolResultIds.has(id)) {
31085
- droppedDuplicateCount += 1;
31086
- changed = true;
31087
- return;
31088
- }
31089
- if (id) seenToolResultIds.add(id);
31090
- out.push(msg);
31091
- };
31092
- for (let i = 0; i < messages.length; i += 1) {
31093
- const msg = messages[i];
31094
- if (!msg || typeof msg !== "object") {
31095
- out.push(msg);
31096
- continue;
31097
- }
31098
- const role = msg.role;
31099
- if (role !== "assistant") {
31100
- if (role !== "toolResult") out.push(msg);
31101
- else {
31102
- droppedOrphanCount += 1;
31103
- changed = true;
31104
- }
31105
- continue;
31106
- }
31107
- const assistant = msg;
31108
- const stopReason = assistant.stopReason;
31109
- if (stopReason === "error" || stopReason === "aborted") {
31110
- out.push(msg);
31111
- continue;
31112
- }
31113
- const toolCalls = extractToolCallsFromAssistant(assistant);
31114
- if (toolCalls.length === 0) {
31115
- out.push(msg);
31116
- continue;
31117
- }
31118
- const toolCallIds = new Set(toolCalls.map((t) => t.id));
31119
- const spanResultsById = /* @__PURE__ */ new Map();
31120
- const remainder = [];
31121
- let j = i + 1;
31122
- for (; j < messages.length; j += 1) {
31123
- const next = messages[j];
31124
- if (!next || typeof next !== "object") {
31125
- remainder.push(next);
31126
- continue;
31127
- }
31128
- const nextRole = next.role;
31129
- if (nextRole === "assistant") break;
31130
- if (nextRole === "toolResult") {
31131
- const toolResult = next;
31132
- const id = extractToolResultId(toolResult);
31133
- if (id && toolCallIds.has(id)) {
31134
- if (seenToolResultIds.has(id)) {
31135
- droppedDuplicateCount += 1;
31136
- changed = true;
31137
- continue;
31138
- }
31139
- if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
31140
- continue;
31141
- }
31142
- }
31143
- if (nextRole !== "toolResult") remainder.push(next);
31144
- else {
31145
- droppedOrphanCount += 1;
31146
- changed = true;
31147
- }
31148
- }
31149
- out.push(msg);
31150
- if (spanResultsById.size > 0 && remainder.length > 0) {
31151
- moved = true;
31152
- changed = true;
31153
- }
31154
- for (const call of toolCalls) {
31155
- const existing = spanResultsById.get(call.id);
31156
- if (existing) pushToolResult(existing);
31157
- else {
31158
- const missing = makeMissingToolResult({
31159
- toolCallId: call.id,
31160
- toolName: call.name
31161
- });
31162
- added.push(missing);
31163
- changed = true;
31164
- pushToolResult(missing);
31165
- }
31166
- }
31167
- for (const rem of remainder) {
31168
- if (!rem || typeof rem !== "object") {
31169
- out.push(rem);
31170
- continue;
31171
- }
31172
- out.push(rem);
31173
- }
31174
- i = j - 1;
31175
- }
31176
- const changedOrMoved = changed || moved;
31177
- return {
31178
- messages: changedOrMoved ? out : messages,
31179
- added,
31180
- droppedDuplicateCount,
31181
- droppedOrphanCount,
31182
- moved: changedOrMoved
31183
- };
31184
- }
31185
-
31186
31310
  //#endregion
31187
31311
  //#region src/agents/session-tool-result-guard.ts
31188
31312
  const GUARD_TRUNCATION_SUFFIX = "\n\n⚠️ [Content truncated during persistence — original exceeded size limit. Use offset/limit parameters or request specific sections for large content.]";
@@ -31263,6 +31387,10 @@ function installSessionToolResultGuard(sessionManager, opts) {
31263
31387
  const guardedAppend = (message) => {
31264
31388
  let nextMessage = message;
31265
31389
  if (message.role === "assistant") {
31390
+ if (isEmptyAssistantMessage(message)) {
31391
+ if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
31392
+ return;
31393
+ }
31266
31394
  const sanitized = sanitizeToolCallInputs([message]);
31267
31395
  if (sanitized.length === 0) {
31268
31396
  if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
@@ -34591,6 +34719,8 @@ async function runEmbeddedAttempt(params) {
34591
34719
  });
34592
34720
  const versionCheck = await handleSessionVersion(params.sessionFile);
34593
34721
  if (versionCheck.archived) log$7.warn(`session archived: created by ${versionCheck.poisonVersion}, known corruption range → ${versionCheck.archivePath}`);
34722
+ const pruneReport = await pruneEmptyAssistantsFromSessionFile(params.sessionFile);
34723
+ if (pruneReport.rewrote) log$7.warn(`session prune: removed ${pruneReport.pruned} empty assistant entries from ${params.sessionFile}`);
34594
34724
  await prewarmSessionFile(params.sessionFile);
34595
34725
  sessionManager = guardSessionManager(SessionManager.open(params.sessionFile), {
34596
34726
  agentId: sessionAgentId,
@@ -36377,27 +36507,27 @@ async function runAgentTurn(params) {
36377
36507
  function createDefaultDeps() {
36378
36508
  return {
36379
36509
  sendMessageWhatsApp: async (...args) => {
36380
- const { sendMessageWhatsApp } = await import("./web-DiNM_c37.js");
36510
+ const { sendMessageWhatsApp } = await import("./web-BoOAa0Xn.js");
36381
36511
  return await sendMessageWhatsApp(...args);
36382
36512
  },
36383
36513
  sendMessageTelegram: async (...args) => {
36384
- const { sendMessageTelegram } = await import("./send-Bf62p_ul.js").then((n) => n.l);
36514
+ const { sendMessageTelegram } = await import("./send-Cz_FQ8Ao.js").then((n) => n.l);
36385
36515
  return await sendMessageTelegram(...args);
36386
36516
  },
36387
36517
  sendMessageDiscord: async (...args) => {
36388
- const { sendMessageDiscord } = await import("./send-P1G7c4FN.js").then((n) => n.t);
36518
+ const { sendMessageDiscord } = await import("./send-HKy51Hz_.js").then((n) => n.t);
36389
36519
  return await sendMessageDiscord(...args);
36390
36520
  },
36391
36521
  sendMessageSlack: async (...args) => {
36392
- const { sendMessageSlack } = await import("./send-D5_J2DiV.js").then((n) => n.n);
36522
+ const { sendMessageSlack } = await import("./send-DG6c7BpZ.js").then((n) => n.n);
36393
36523
  return await sendMessageSlack(...args);
36394
36524
  },
36395
36525
  sendMessageSignal: async (...args) => {
36396
- const { sendMessageSignal } = await import("./send-CENVp2ol.js").then((n) => n.i);
36526
+ const { sendMessageSignal } = await import("./send-C4t6h9-o.js").then((n) => n.i);
36397
36527
  return await sendMessageSignal(...args);
36398
36528
  },
36399
36529
  sendMessageIMessage: async (...args) => {
36400
- const { sendMessageIMessage } = await import("./send-Ddy4p4LW.js").then((n) => n.n);
36530
+ const { sendMessageIMessage } = await import("./send-Xy1L54q4.js").then((n) => n.n);
36401
36531
  return await sendMessageIMessage(...args);
36402
36532
  }
36403
36533
  };
@@ -46952,7 +47082,7 @@ async function registerSlackMonitorSlashCommands(params) {
46952
47082
  });
46953
47083
  const deliverSlashPayloads = async (replies) => {
46954
47084
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
46955
- import("./replies-Bw1Amxop.js").then((n) => n.r),
47085
+ import("./replies-CW_-4klO.js").then((n) => n.r),
46956
47086
  import("./chunk-jvk9axTQ.js").then((n) => n.s),
46957
47087
  import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
46958
47088
  ]);
@@ -51658,7 +51788,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
51658
51788
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
51659
51789
  let preflightTranscript;
51660
51790
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
51661
- const { transcribeFirstAudio } = await import("./audio-preflight-DSEypXnx.js");
51791
+ const { transcribeFirstAudio } = await import("./audio-preflight-BacDFPyc.js");
51662
51792
  preflightTranscript = await transcribeFirstAudio({
51663
51793
  ctx: {
51664
51794
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -53803,23 +53933,23 @@ let webLoginQrPromise = null;
53803
53933
  let webChannelPromise = null;
53804
53934
  let whatsappActionsPromise = null;
53805
53935
  function loadWebOutbound() {
53806
- webOutboundPromise ??= import("./outbound-DmsEc64Z.js").then((n) => n.t);
53936
+ webOutboundPromise ??= import("./outbound-CD38Hxn9.js").then((n) => n.t);
53807
53937
  return webOutboundPromise;
53808
53938
  }
53809
53939
  function loadWebLogin() {
53810
- webLoginPromise ??= import("./login-DJzS9QT2.js").then((n) => n.n);
53940
+ webLoginPromise ??= import("./login-CHgiUvI_.js").then((n) => n.n);
53811
53941
  return webLoginPromise;
53812
53942
  }
53813
53943
  function loadWebLoginQr() {
53814
- webLoginQrPromise ??= import("./login-qr-DziBjQY5.js");
53944
+ webLoginQrPromise ??= import("./login-qr-D5vJo1fy.js");
53815
53945
  return webLoginQrPromise;
53816
53946
  }
53817
53947
  function loadWebChannel() {
53818
- webChannelPromise ??= import("./web-DiNM_c37.js");
53948
+ webChannelPromise ??= import("./web-BoOAa0Xn.js");
53819
53949
  return webChannelPromise;
53820
53950
  }
53821
53951
  function loadWhatsAppActions() {
53822
- whatsappActionsPromise ??= import("./whatsapp-actions-Bg6DfWkN.js");
53952
+ whatsappActionsPromise ??= import("./whatsapp-actions-CZLagx0h.js");
53823
53953
  return whatsappActionsPromise;
53824
53954
  }
53825
53955
  function createPluginRuntime() {
@@ -78264,7 +78394,7 @@ async function deliverSessionMaintenanceWarning(params) {
78264
78394
  return;
78265
78395
  }
78266
78396
  try {
78267
- const { deliverOutboundPayloads } = await import("./deliver-7pgLdSpM.js").then((n) => n.n);
78397
+ const { deliverOutboundPayloads } = await import("./deliver-Bxa1-mj5.js").then((n) => n.n);
78268
78398
  await deliverOutboundPayloads({
78269
78399
  cfg: params.cfg,
78270
78400
  channel,