@symerian/symi 2.8.9 → 2.8.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 (234) hide show
  1. package/dist/{agents-BBb3pG_r.js → agents-BbVxJTp2.js} +4 -4
  2. package/dist/{agents.config-DDAd-KmU.js → agents.config-DckCExUX.js} +1 -1
  3. package/dist/{agents.config-C1tHX61N.js → agents.config-LE2JxgiS.js} +1 -1
  4. package/dist/{audio-preflight-C6vpFnOG.js → audio-preflight-NdNUAZ0y.js} +4 -4
  5. package/dist/{audio-preflight-Cb-T0r6e.js → audio-preflight-rjCWpcfE.js} +4 -4
  6. package/dist/{auth-choice-FY48Z00U.js → auth-choice-DnKOB8Gs.js} +1 -1
  7. package/dist/{auth-choice-DPNcCrz1.js → auth-choice-j1FEYnxv.js} +1 -1
  8. package/dist/{banner-yIuMuNbm.js → banner-BFr8n0of.js} +1 -1
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +7 -7
  11. package/dist/bundled/session-memory/handler.js +7 -7
  12. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  13. package/dist/{channel-options-C_9TyM7R.js → channel-options-BtmFCQOB.js} +1 -1
  14. package/dist/{channel-options-C5SLfyqk.js → channel-options-DrBxsMlw.js} +1 -1
  15. package/dist/{channel-web-ByaqLmaZ.js → channel-web-YgdajAXX.js} +1 -1
  16. package/dist/{channels-cli-CSnENSPd.js → channels-cli-ChS_nQcP.js} +6 -6
  17. package/dist/{channels-cli-Ca41AO96.js → channels-cli-fYbw-4gz.js} +6 -6
  18. package/dist/{chrome-B14NNyfm.js → chrome-BUT--ob3.js} +7 -7
  19. package/dist/{chrome-ROtrXlNs.js → chrome-C08Z0XAa.js} +7 -7
  20. package/dist/{cli-BO8YhTtM.js → cli-CA4qcSFY.js} +3 -3
  21. package/dist/{cli-ZZzj67hW.js → cli-NfoZJEPh.js} +3 -3
  22. package/dist/{command-registry-BsNZfjVV.js → command-registry-BZfKQQev.js} +10 -10
  23. package/dist/{completion-cli-D8C9e5yz.js → completion-cli-B1JkGibL.js} +2 -2
  24. package/dist/{completion-cli-xJudxU14.js → completion-cli-B4YP0Otu.js} +1 -1
  25. package/dist/{config-cli-CihWekyc.js → config-cli-CgC3xSoL.js} +1 -1
  26. package/dist/{config-cli-BNZy4xXJ.js → config-cli-Dm2QMcwn.js} +1 -1
  27. package/dist/{configure-BB_JMk-P.js → configure-COCCg2tV.js} +3 -3
  28. package/dist/{configure-pkgSrqbn.js → configure-DiDXmX3E.js} +3 -3
  29. package/dist/{deliver-D0bWiRCg.js → deliver-B_Q_nWJV.js} +1 -1
  30. package/dist/{deliver-B0OUq6RP.js → deliver-qUx-eLKt.js} +1 -1
  31. package/dist/{doctor-completion-BH1bgb64.js → doctor-completion-CjlRDZow.js} +1 -1
  32. package/dist/{doctor-completion-CCoTNGGO.js → doctor-completion-CophMO9P.js} +1 -1
  33. package/dist/entry.js +1 -1
  34. package/dist/extensionAPI.js +7 -7
  35. package/dist/{gateway-cli-BWz3feID.js → gateway-cli-CAPtJ_VJ.js} +11 -11
  36. package/dist/{gateway-cli-CvWQxaZ9.js → gateway-cli-Dlcx0rsS.js} +11 -11
  37. package/dist/{glass-ui-ws-BRKLiUgG.js → glass-ui-ws-GEiZsdru.js} +9 -9
  38. package/dist/{glass-ui-ws-BvKAGzsP.js → glass-ui-ws-hIgOh0Ub.js} +9 -9
  39. package/dist/{health-C-B-3prj.js → health-BAjSATWA.js} +1 -1
  40. package/dist/{health-DlRTgD3e.js → health-D-0xOxV8.js} +1 -1
  41. package/dist/{hooks-cli-CApedXJB.js → hooks-cli-BaoCFIbQ.js} +4 -4
  42. package/dist/{hooks-cli-oulDpg7g.js → hooks-cli-ZZaM2xfC.js} +4 -4
  43. package/dist/{image-BuVL0jHI.js → image-C6rCON9L.js} +1 -1
  44. package/dist/{image-MNvheU8U.js → image-tzIqIuKx.js} +1 -1
  45. package/dist/index.js +8 -8
  46. package/dist/llm-slug-generator.js +7 -7
  47. package/dist/{manager-BuJDqgQD.js → manager-B5JWZL0E.js} +1 -1
  48. package/dist/{manager-D_NVh5nU.js → manager-BpvcDr-7.js} +1 -1
  49. package/dist/{manager-DfbiNFMG.js → manager-BxJ9BhQe.js} +1 -1
  50. package/dist/{manager-C6236YLp.js → manager-DUuPE1N1.js} +1 -1
  51. package/dist/{memory-cli-j-HcbP06.js → memory-cli-BQZ0rTKC.js} +3 -3
  52. package/dist/{memory-cli-CMd2wNuE.js → memory-cli-r-ulsUBa.js} +3 -3
  53. package/dist/{models-CWWcJjaU.js → models-B1__62Qo.js} +2 -2
  54. package/dist/{models-cli-CTNMdFcR.js → models-cli-BGpB4PAp.js} +4 -4
  55. package/dist/{models-cli-BdTd0wN8.js → models-cli-Ch-4PBud.js} +5 -5
  56. package/dist/{onboard-Bv5Rqw-y.js → onboard-Bub0X2iR.js} +2 -2
  57. package/dist/{onboard-B5BiUZky.js → onboard-CNiwcGJT.js} +2 -2
  58. package/dist/{onboard-channels-Nos59voI.js → onboard-channels-BgA4i9TU.js} +1 -1
  59. package/dist/{onboard-channels-B2HQSE5z.js → onboard-channels-CYlZtWF6.js} +1 -1
  60. package/dist/{onboarding-bijJvCX1.js → onboarding-CvK25SU5.js} +3 -3
  61. package/dist/{onboarding-B-MPWoFm.js → onboarding-DFNiU6QZ.js} +3 -3
  62. package/dist/{onboarding.finalize-CzajeRFW.js → onboarding.finalize-CvXSAjuU.js} +8 -8
  63. package/dist/{onboarding.finalize-2-PkjV7g.js → onboarding.finalize-_r8l4FJ1.js} +7 -7
  64. package/dist/{pi-embedded-rV_lAelt.js → pi-embedded-HSRJqesT.js} +47 -19
  65. package/dist/{pi-embedded-helpers-TcYQOZAY.js → pi-embedded-helpers-DjSdA5BG.js} +4 -4
  66. package/dist/{pi-embedded-helpers-D1_Sab0M.js → pi-embedded-helpers-P13adotN.js} +4 -4
  67. package/dist/{plugin-registry-y33YD86y.js → plugin-registry-Chvg6kT0.js} +1 -1
  68. package/dist/{plugin-registry-nbnWVfl0.js → plugin-registry-DEKq3ti3.js} +1 -1
  69. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  70. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  71. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  72. package/dist/plugin-sdk/{active-listener-DYjn3fML.js → active-listener-CJuvR4C2.js} +1 -1
  73. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  74. package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +7 -0
  75. package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +6 -0
  76. package/dist/plugin-sdk/agents/unified-runner.d.ts +8 -0
  77. package/dist/plugin-sdk/{api-key-rotation-DGJZ8SVa.js → api-key-rotation-CBsLb_4V.js} +1 -1
  78. package/dist/plugin-sdk/{audio-preflight-CiVw8470.js → audio-preflight-DucGa8w7.js} +24 -24
  79. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  80. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  81. package/dist/plugin-sdk/{channel-web-CHStB91Z.js → channel-web-CfaamthT.js} +22 -22
  82. package/dist/plugin-sdk/{chrome-CEqfiEs0.js → chrome-D9kN9org.js} +3 -3
  83. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  84. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  85. package/dist/plugin-sdk/{commands-registry-BhW_oGNt.js → commands-registry-BuYpmEx-.js} +4 -4
  86. package/dist/plugin-sdk/{config-Ckum15iC.js → config-BzupW6LN.js} +9 -9
  87. package/dist/plugin-sdk/{consolidate-COuTEt4Z.js → consolidate-CafShdsH.js} +2 -2
  88. package/dist/plugin-sdk/{deliver-B8Y2t-RH.js → deliver-CKgFosI5.js} +10 -10
  89. package/dist/plugin-sdk/{diagnostic-BR07buTm.js → diagnostic-_oc91gNi.js} +1 -1
  90. package/dist/plugin-sdk/{image-CCmNHDV0.js → image-DFyINnvE.js} +4 -4
  91. package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
  92. package/dist/plugin-sdk/index.js +54 -54
  93. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  94. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  95. package/dist/plugin-sdk/{login-g_rQAcuM.js → login-K1YB_7-t.js} +7 -7
  96. package/dist/plugin-sdk/{login-qr-BOUmLSY3.js → login-qr-lMl_OqDj.js} +9 -9
  97. package/dist/plugin-sdk/{manager-lG0ZXd77.js → manager-B3jEviU1.js} +9 -9
  98. package/dist/plugin-sdk/{manifest-registry-BRx4JDK0.js → manifest-registry-hy3Bn-r9.js} +1 -1
  99. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  100. package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
  101. package/dist/plugin-sdk/{model-selection-Bbs4XGPG.js → model-selection-CtVwtb6y.js} +4 -4
  102. package/dist/plugin-sdk/{outbound-BVhSNFy0.js → outbound-DW3cqlQW.js} +7 -7
  103. package/dist/plugin-sdk/{outbound-attachment-B56R1Wi4.js → outbound-attachment-D7ME_Kib.js} +2 -2
  104. package/dist/plugin-sdk/{pi-auth-json-CB2bV0Jd.js → pi-auth-json-DiyK6bgV.js} +1 -1
  105. package/dist/plugin-sdk/{pi-embedded-helpers-dd3G9Hfi.js → pi-embedded-helpers-BL7ZRhGv.js} +17 -17
  106. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  107. package/dist/plugin-sdk/{pw-ai-BXeOYCz_.js → pw-ai-B3T0mTHr.js} +8 -8
  108. package/dist/plugin-sdk/{qmd-manager-wIr8qz2n.js → qmd-manager-BlUikj9s.js} +4 -4
  109. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  110. package/dist/plugin-sdk/{replies-CQ4szNhV.js → replies-BR2TPTVW.js} +3 -3
  111. package/dist/plugin-sdk/{reply-CNsK2I6u.js → reply-DWwxgBtH.js} +106 -78
  112. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  113. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  114. package/dist/plugin-sdk/{resolve-route-CWfcnhza.js → resolve-route-CHQ7BTlU.js} +3 -3
  115. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  116. package/dist/plugin-sdk/{runner-BuxCHv_O.js → runner-BhifC1J_.js} +9 -9
  117. package/dist/plugin-sdk/{send-fNRDT21N.js → send-BP5pSPaZ.js} +6 -6
  118. package/dist/plugin-sdk/{send-BtO-7fHs.js → send-CGhw9mO3.js} +6 -6
  119. package/dist/plugin-sdk/{send-CKXzQuXo.js → send-DLO_yV5_.js} +10 -10
  120. package/dist/plugin-sdk/{send-Djq5IPRa.js → send-ZhAe1nXO.js} +10 -10
  121. package/dist/plugin-sdk/{send-XSuwT1PC.js → send-jsofmTfJ.js} +7 -7
  122. package/dist/plugin-sdk/{session-ARbcLHE9.js → session-BfyK_04G.js} +4 -4
  123. package/dist/plugin-sdk/{skill-commands-yzJVuTIW.js → skill-commands-DEfqC_kJ.js} +5 -5
  124. package/dist/plugin-sdk/{skills-BfsaS1F9.js → skills-C9DbB-Kp.js} +7 -7
  125. package/dist/plugin-sdk/{sqlite-A3wGzttn.js → sqlite-CmVrFEYD.js} +1 -1
  126. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  127. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  128. package/dist/plugin-sdk/{synthesis-CpVfnSo_.js → synthesis-C_u94H_P.js} +49 -49
  129. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  130. package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
  131. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  132. package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
  133. package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
  134. package/dist/plugin-sdk/{tool-loop-detection-gmtzSlNZ.js → tool-loop-detection-DseOlBug.js} +2 -2
  135. package/dist/plugin-sdk/web-DFvYfej5.js +66 -0
  136. package/dist/plugin-sdk/{whatsapp-actions-B_1l8JMU.js → whatsapp-actions-eTefsWhW.js} +21 -21
  137. package/dist/{plugins-cli-9vI7CQW6.js → plugins-cli-Cd99p333.js} +4 -4
  138. package/dist/{plugins-cli-MgRgt7Mu.js → plugins-cli-QZlpLtva.js} +4 -4
  139. package/dist/{program-ZdHXnGOg.js → program-DtyqJT55.js} +9 -9
  140. package/dist/{program-context-DW4w1oN0.js → program-context-D0rHgaWi.js} +18 -18
  141. package/dist/{prompt-select-styled-DV-m7tR8.js → prompt-select-styled-DqjIswKp.js} +6 -6
  142. package/dist/{prompt-select-styled-v1DITP5B.js → prompt-select-styled-Dw0GkMPo.js} +6 -6
  143. package/dist/{provider-auth-helpers-4eBjBsnM.js → provider-auth-helpers-DCEiDG3X.js} +1 -1
  144. package/dist/{provider-auth-helpers-Dr_EyLaO.js → provider-auth-helpers-KFQclkJT.js} +1 -1
  145. package/dist/{push-apns-D4X5TtMo.js → push-apns-CB_8WzQ9.js} +1 -1
  146. package/dist/{push-apns-69s0P1E4.js → push-apns-tfhjtI57.js} +1 -1
  147. package/dist/{pw-ai-40Jf9QIb.js → pw-ai-CQtaPvM8.js} +1 -1
  148. package/dist/{pw-ai-DWkC5eGA.js → pw-ai-CeWN4iD9.js} +1 -1
  149. package/dist/{register.agent-6nMG0iFQ.js → register.agent--QTUjLu9.js} +7 -7
  150. package/dist/{register.agent-Buw0POPK.js → register.agent-i2wi1-vo.js} +8 -8
  151. package/dist/{register.configure-CPHixRQq.js → register.configure-B9JysEK8.js} +8 -8
  152. package/dist/{register.configure-D0QJaqhS.js → register.configure-ByJcC9t4.js} +8 -8
  153. package/dist/{register.maintenance-BQMas0kZ.js → register.maintenance-D67PVhC5.js} +9 -9
  154. package/dist/{register.maintenance-DwfbaiTo.js → register.maintenance-TB5RRHQv.js} +10 -10
  155. package/dist/{register.message-B2iknN6N.js → register.message-DT_TqsFl.js} +4 -4
  156. package/dist/{register.message-B-dikPUk.js → register.message-G6-UeGON.js} +4 -4
  157. package/dist/{register.onboard-B9dopYMP.js → register.onboard-BPcP1dJD.js} +6 -6
  158. package/dist/{register.onboard-DS6BEUmj.js → register.onboard-jbp1Eeea.js} +6 -6
  159. package/dist/{register.setup-C53KVYBZ.js → register.setup-D4QeCLuQ.js} +6 -6
  160. package/dist/{register.setup-wBotANvt.js → register.setup-Le3LEqeh.js} +6 -6
  161. package/dist/{register.status-health-sessions-B_OUXi_q.js → register.status-health-sessions-B03EDfwZ.js} +5 -5
  162. package/dist/{register.status-health-sessions-DXdy2sDv.js → register.status-health-sessions-BACExyrd.js} +5 -5
  163. package/dist/{register.subclis-DolrpDXL.js → register.subclis-CTnvwrsP.js} +9 -9
  164. package/dist/{reply-BwSt9FgY.js → reply-C5VU6T-F.js} +32 -4
  165. package/dist/{run-main-qTPeKPnd.js → run-main-DmgESA-W.js} +17 -17
  166. package/dist/{runner-ecX1WzDt.js → runner-D633VT13.js} +1 -1
  167. package/dist/{runner-DFuAePEr.js → runner-Dpjulwnm.js} +1 -1
  168. package/dist/{server-methods-BGlmZerh.js → server-methods-EJZ_r3g7.js} +38 -14
  169. package/dist/{server-methods-D-X3f0JZ.js → server-methods-kM6zF8qf.js} +38 -14
  170. package/dist/{server-node-events-DYspYAsS.js → server-node-events-BM-APRHy.js} +4 -4
  171. package/dist/{server-node-events-VMWi_q_4.js → server-node-events-ZgCh4sCg.js} +4 -4
  172. package/dist/{status-D4IpFPfd.js → status-BhQk3JSz.js} +1 -1
  173. package/dist/{status-Ciil-4CY.js → status-C_gwgMp4.js} +3 -3
  174. package/dist/{status-CpK9Je7o.js → status-Nf53o222.js} +1 -1
  175. package/dist/{status-BIqQY-EW.js → status-WMQ2CpbK.js} +3 -3
  176. package/dist/{subagent-registry-CA3olOuQ.js → subagent-registry-BCWbFTGF.js} +32 -4
  177. package/dist/{synthesis-tkINNn_o.js → synthesis-CJIAYDoU.js} +3 -3
  178. package/dist/{synthesis-C7vG3X0z.js → synthesis-CWsrtigA.js} +7 -7
  179. package/dist/{synthesis-DhWAXhL7.js → synthesis-DIKBPZgB.js} +3 -3
  180. package/dist/{synthesis-UdetU7yM.js → synthesis-VfWtSYrv.js} +7 -7
  181. package/dist/{unified-runner-BdNmAHcK.js → unified-runner-yPBTU4xt.js} +47 -19
  182. package/dist/{update-cli-DwEwrSKF.js → update-cli-NRTVUdGw.js} +10 -10
  183. package/dist/{update-cli-Bv0gFXOf.js → update-cli-sTB4AuZ6.js} +9 -9
  184. package/dist/{update-runner-yfcQ1dWZ.js → update-runner-BQJSshFU.js} +1 -1
  185. package/dist/{update-runner-BR5qByxw.js → update-runner-DG5x7t--.js} +1 -1
  186. package/dist/{web-BQN_t3ZP.js → web-D9_FatXM.js} +7 -7
  187. package/dist/{web-BD0BGw7V.js → web-Dpfsnk-b.js} +3 -3
  188. package/dist/{web-Cuozfpq6.js → web-TVVa5EDS.js} +4 -4
  189. package/dist/{web-DlA-lLM7.js → web-eJWNRwV5.js} +7 -7
  190. package/docs/reference/templates/AGENTS.md +14 -0
  191. package/extensions/bluebubbles/package.json +1 -1
  192. package/extensions/copilot-proxy/package.json +1 -1
  193. package/extensions/diagnostics-otel/package.json +1 -1
  194. package/extensions/discord/package.json +1 -1
  195. package/extensions/feishu/package.json +1 -1
  196. package/extensions/google-antigravity-auth/package.json +1 -1
  197. package/extensions/google-gemini-cli-auth/package.json +1 -1
  198. package/extensions/googlechat/package.json +1 -1
  199. package/extensions/imessage/package.json +1 -1
  200. package/extensions/irc/package.json +1 -1
  201. package/extensions/learning-loop/package.json +1 -1
  202. package/extensions/line/package.json +1 -1
  203. package/extensions/llm-task/package.json +1 -1
  204. package/extensions/matrix/CHANGELOG.md +12 -0
  205. package/extensions/matrix/package.json +1 -1
  206. package/extensions/mattermost/package.json +1 -1
  207. package/extensions/memory-core/package.json +1 -1
  208. package/extensions/memory-lancedb/package.json +1 -1
  209. package/extensions/minimax-portal-auth/package.json +1 -1
  210. package/extensions/msteams/CHANGELOG.md +12 -0
  211. package/extensions/msteams/package.json +1 -1
  212. package/extensions/nextcloud-talk/package.json +1 -1
  213. package/extensions/nostr/CHANGELOG.md +12 -0
  214. package/extensions/nostr/package.json +1 -1
  215. package/extensions/open-prose/package.json +1 -1
  216. package/extensions/outlook/index.ts +69 -5
  217. package/extensions/outlook/package.json +1 -1
  218. package/extensions/outlook/src/store.ts +118 -11
  219. package/extensions/pipeline/package.json +1 -1
  220. package/extensions/signal/package.json +1 -1
  221. package/extensions/slack/package.json +1 -1
  222. package/extensions/telegram/package.json +1 -1
  223. package/extensions/tlon/package.json +1 -1
  224. package/extensions/twitch/CHANGELOG.md +12 -0
  225. package/extensions/twitch/package.json +1 -1
  226. package/extensions/voice-call/CHANGELOG.md +12 -0
  227. package/extensions/voice-call/package.json +1 -1
  228. package/extensions/whatsapp/package.json +1 -1
  229. package/extensions/zalo/CHANGELOG.md +12 -0
  230. package/extensions/zalo/package.json +1 -1
  231. package/extensions/zalouser/CHANGELOG.md +12 -0
  232. package/extensions/zalouser/package.json +1 -1
  233. package/package.json +1 -1
  234. package/dist/plugin-sdk/web-CN3FvHT9.js +0 -66
@@ -14,7 +14,7 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
14
14
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
15
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-BaBv1rAU.js";
16
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-DLVrnezL.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-D0bWiRCg.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-B_Q_nWJV.js";
18
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-Kbl70eCP.js";
19
19
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
20
20
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
@@ -22,10 +22,10 @@ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normali
22
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
23
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
24
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-TcYQOZAY.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-DjSdA5BG.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-BAVNLbja.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-DWdYdchb.js";
28
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B14NNyfm.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BUT--ob3.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-XEbTRNYL.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";
@@ -36,8 +36,8 @@ 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
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-MNvheU8U.js";
40
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-BuJDqgQD.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-tzIqIuKx.js";
40
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-B5JWZL0E.js";
41
41
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
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-Dm716SF3.js";
@@ -49,7 +49,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-0kwEfxD4.js";
49
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-ke7KirEH.js";
50
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-CSF7Poen.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CgGv6nTy.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-DFuAePEr.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-Dpjulwnm.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-WLZaC77l.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BaoETsQI.js";
55
55
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-6tM-GK.js";
@@ -80,7 +80,7 @@ import { EdgeTTS } from "node-edge-tts";
80
80
  import AjvPkg from "ajv";
81
81
  import { createServer } from "node:http";
82
82
  import { ProxyAgent, fetch as fetch$1 } from "undici";
83
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
83
+ import WebSocket$1, { WebSocket } from "ws";
84
84
  import { Buffer as Buffer$1 } from "node:buffer";
85
85
  import { createJiti } from "jiti";
86
86
  import { Type } from "@sinclair/typebox";
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
3473
3473
  const wrapper = new FallbackMemoryManager({
3474
3474
  primary,
3475
3475
  fallbackFactory: async () => {
3476
- const { MemoryIndexManager } = await import("./manager-BuJDqgQD.js").then((n) => n.n);
3476
+ const { MemoryIndexManager } = await import("./manager-B5JWZL0E.js").then((n) => n.n);
3477
3477
  return await MemoryIndexManager.get(params);
3478
3478
  }
3479
3479
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
3486
3486
  }
3487
3487
  }
3488
3488
  try {
3489
- const { MemoryIndexManager } = await import("./manager-BuJDqgQD.js").then((n) => n.n);
3489
+ const { MemoryIndexManager } = await import("./manager-B5JWZL0E.js").then((n) => n.n);
3490
3490
  return { manager: await MemoryIndexManager.get(params) };
3491
3491
  } catch (err) {
3492
3492
  return {
@@ -5818,7 +5818,7 @@ var GatewayClient = class {
5818
5818
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5819
5819
  });
5820
5820
  }
5821
- this.ws = new WebSocket$1(url, wsOptions);
5821
+ this.ws = new WebSocket(url, wsOptions);
5822
5822
  this.ws.on("open", () => {
5823
5823
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5824
5824
  const tlsError = this.validateTlsFingerprint();
@@ -6037,7 +6037,7 @@ var GatewayClient = class {
6037
6037
  return null;
6038
6038
  }
6039
6039
  async request(method, params, opts) {
6040
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
6040
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
6041
6041
  const id = randomUUID();
6042
6042
  const frame = {
6043
6043
  type: "req",
@@ -7304,7 +7304,7 @@ async function routeReply(params) {
7304
7304
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7305
7305
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7306
7306
  try {
7307
- const { deliverOutboundPayloads } = await import("./deliver-D0bWiRCg.js").then((n) => n.n);
7307
+ const { deliverOutboundPayloads } = await import("./deliver-B_Q_nWJV.js").then((n) => n.n);
7308
7308
  return {
7309
7309
  ok: true,
7310
7310
  messageId: (await deliverOutboundPayloads({
@@ -47049,6 +47049,7 @@ async function runEmbeddedAttempt(params) {
47049
47049
  let aborted = Boolean(params.abortSignal?.aborted);
47050
47050
  let timedOut = false;
47051
47051
  let timedOutDuringCompaction = false;
47052
+ let circuitBreakerAborted = false;
47052
47053
  const getAbortReason = (signal) => "reason" in signal ? signal.reason : void 0;
47053
47054
  const makeTimeoutAbortReason = () => {
47054
47055
  const err = /* @__PURE__ */ new Error("request timed out");
@@ -47150,6 +47151,20 @@ async function runEmbeddedAttempt(params) {
47150
47151
  if (consecutiveToolErrors >= TOOL_ERROR_ABORT_THRESHOLD) {
47151
47152
  const toolName = typeof evt.data?.name === "string" ? evt.data.name : "unknown";
47152
47153
  log$5.error(`Agent-loop circuit breaker: ${consecutiveToolErrors} consecutive tool errors (last: ${toolName}). Aborting run ${params.runId}.`);
47154
+ const breakerNotice = `I hit ${consecutiveToolErrors} consecutive tool errors (last: \`${toolName}\`). The files or resources I was looking for may not exist where I expected. Let me try answering without tools.`;
47155
+ try {
47156
+ emitAgentEvent({
47157
+ runId: params.runId,
47158
+ stream: "assistant",
47159
+ data: {
47160
+ text: breakerNotice,
47161
+ delta: breakerNotice
47162
+ }
47163
+ });
47164
+ } catch (err) {
47165
+ log$5.warn(`circuit breaker: synthetic notice emit failed: ${String(err)}`);
47166
+ }
47167
+ circuitBreakerAborted = true;
47153
47168
  abortRun(false, /* @__PURE__ */ new Error(`${consecutiveToolErrors} consecutive tool errors. The model may be generating corrupted tool arguments. Run aborted to prevent infinite loop.`));
47154
47169
  } else if (consecutiveToolErrors === TOOL_ERROR_WARN_THRESHOLD) {
47155
47170
  const toolName = typeof evt.data?.name === "string" ? evt.data.name : "unknown";
@@ -47467,6 +47482,7 @@ async function runEmbeddedAttempt(params) {
47467
47482
  aborted,
47468
47483
  timedOut,
47469
47484
  timedOutDuringCompaction,
47485
+ circuitBreakerAborted,
47470
47486
  promptError,
47471
47487
  sessionIdUsed,
47472
47488
  systemPromptReport,
@@ -48397,6 +48413,7 @@ async function runEmbeddedPiAgent(params) {
48397
48413
  durationMs: Date.now() - started,
48398
48414
  agentMeta,
48399
48415
  aborted,
48416
+ circuitBreakerAborted: attempt.circuitBreakerAborted,
48400
48417
  systemPromptReport: attempt.systemPromptReport
48401
48418
  },
48402
48419
  didSendViaMessagingTool: attempt.didSendViaMessagingTool,
@@ -48425,6 +48442,7 @@ async function runEmbeddedPiAgent(params) {
48425
48442
  durationMs: Date.now() - started,
48426
48443
  agentMeta,
48427
48444
  aborted,
48445
+ circuitBreakerAborted: attempt.circuitBreakerAborted,
48428
48446
  systemPromptReport: attempt.systemPromptReport,
48429
48447
  stopReason: attempt.clientToolCall ? "tool_calls" : void 0,
48430
48448
  pendingToolCalls: attempt.clientToolCall ? [{
@@ -48621,6 +48639,16 @@ async function runAgentTurn(params) {
48621
48639
  throw err;
48622
48640
  }
48623
48641
  result = result;
48642
+ if (result.meta.circuitBreakerAborted && !params._circuitBreakerRetried) {
48643
+ const continuationPrompt = "(Your previous turn aborted after several consecutive tool errors because the tool calls kept failing. For THIS turn: answer the user's original question directly using your existing knowledge and the conversation history above. Do NOT attempt any tool calls — they are disabled in this turn and will not work. If you truly cannot answer without tool access, say so clearly and explain what information you would have needed.)";
48644
+ return runAgentTurn({
48645
+ ...params,
48646
+ runId: randomUUID(),
48647
+ prompt: continuationPrompt,
48648
+ disableTools: true,
48649
+ _circuitBreakerRetried: true
48650
+ });
48651
+ }
48624
48652
  const responseText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
48625
48653
  const resolvedProvider = fallbackProvider ?? result.meta.agentMeta?.provider ?? params.provider ?? "";
48626
48654
  const resolvedModel = fallbackModel ?? result.meta.agentMeta?.model ?? params.modelId ?? "";
@@ -51260,7 +51288,7 @@ async function deliverSessionMaintenanceWarning(params) {
51260
51288
  return;
51261
51289
  }
51262
51290
  try {
51263
- const { deliverOutboundPayloads } = await import("./deliver-D0bWiRCg.js").then((n) => n.n);
51291
+ const { deliverOutboundPayloads } = await import("./deliver-B_Q_nWJV.js").then((n) => n.n);
51264
51292
  await deliverOutboundPayloads({
51265
51293
  cfg: params.cfg,
51266
51294
  channel,
@@ -54706,7 +54734,7 @@ async function describeStickerImage(params) {
54706
54734
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54707
54735
  try {
54708
54736
  const buffer = await fs$1.readFile(imagePath);
54709
- const { describeImageWithModel } = await import("./image-MNvheU8U.js").then((n) => n.n);
54737
+ const { describeImageWithModel } = await import("./image-tzIqIuKx.js").then((n) => n.n);
54710
54738
  return (await describeImageWithModel({
54711
54739
  buffer,
54712
54740
  fileName: "sticker.webp",
@@ -57455,7 +57483,7 @@ async function preflightDiscordMessage(params) {
57455
57483
  let preflightTranscript;
57456
57484
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
57457
57485
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
57458
- const { transcribeFirstAudio } = await import("./audio-preflight-C6vpFnOG.js");
57486
+ const { transcribeFirstAudio } = await import("./audio-preflight-NdNUAZ0y.js");
57459
57487
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
57460
57488
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
57461
57489
  ctx: {
@@ -61238,7 +61266,7 @@ function isVoiceChannelType(type) {
61238
61266
  function createDefaultDeps() {
61239
61267
  return {
61240
61268
  sendMessageWhatsApp: async (...args) => {
61241
- const { sendMessageWhatsApp } = await import("./web-DlA-lLM7.js");
61269
+ const { sendMessageWhatsApp } = await import("./web-eJWNRwV5.js");
61242
61270
  return await sendMessageWhatsApp(...args);
61243
61271
  },
61244
61272
  sendMessageTelegram: async (...args) => {
@@ -64143,7 +64171,7 @@ function createDiscordGatewayPlugin(params) {
64143
64171
  super(options);
64144
64172
  }
64145
64173
  createWebSocket(url) {
64146
- return new WebSocket(url, { agent });
64174
+ return new WebSocket$1(url, { agent });
64147
64175
  }
64148
64176
  }
64149
64177
  return new ProxyGatewayPlugin();
@@ -74361,7 +74389,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
74361
74389
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
74362
74390
  let preflightTranscript;
74363
74391
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
74364
- const { transcribeFirstAudio } = await import("./audio-preflight-C6vpFnOG.js");
74392
+ const { transcribeFirstAudio } = await import("./audio-preflight-NdNUAZ0y.js");
74365
74393
  preflightTranscript = await transcribeFirstAudio({
74366
74394
  ctx: {
74367
74395
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -76518,7 +76546,7 @@ function loadWebLoginQr() {
76518
76546
  return webLoginQrPromise;
76519
76547
  }
76520
76548
  function loadWebChannel() {
76521
- webChannelPromise ??= import("./web-DlA-lLM7.js");
76549
+ webChannelPromise ??= import("./web-eJWNRwV5.js");
76522
76550
  return webChannelPromise;
76523
76551
  }
76524
76552
  function loadWhatsAppActions() {
@@ -10,7 +10,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
10
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
11
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BQINJQIT.js";
12
12
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BAVNLbja.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-B14NNyfm.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-BUT--ob3.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-XEbTRNYL.js";
15
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
16
16
  import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -938,7 +938,7 @@ function isModuleNotFoundError(err) {
938
938
  }
939
939
  async function loadPwAiModule(mode) {
940
940
  try {
941
- return await import("./pw-ai-40Jf9QIb.js");
941
+ return await import("./pw-ai-CQtaPvM8.js");
942
942
  } catch (err) {
943
943
  if (mode === "soft") return null;
944
944
  if (isModuleNotFoundError(err)) return null;
@@ -3478,11 +3478,11 @@ function createProfileContext(opts, profile) {
3478
3478
  const userDataDir = resolveSymiUserDataDir(profile.name);
3479
3479
  const profileState = getProfileState();
3480
3480
  if (await isHttpReachable(300) && !profileState.running) try {
3481
- await (await import("./pw-ai-40Jf9QIb.js")).closePlaywrightBrowserConnection();
3481
+ await (await import("./pw-ai-CQtaPvM8.js")).closePlaywrightBrowserConnection();
3482
3482
  } catch {}
3483
3483
  if (profileState.running) await stopRunningBrowser();
3484
3484
  try {
3485
- await (await import("./pw-ai-40Jf9QIb.js")).closePlaywrightBrowserConnection();
3485
+ await (await import("./pw-ai-CQtaPvM8.js")).closePlaywrightBrowserConnection();
3486
3486
  } catch {}
3487
3487
  if (!fs.existsSync(userDataDir)) return {
3488
3488
  moved: false,
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-C
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BkZ9HOKT.js";
12
- 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-ROtrXlNs.js";
12
+ 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-C08Z0XAa.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CXxrn_e2.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
@@ -940,7 +940,7 @@ function isModuleNotFoundError(err) {
940
940
  }
941
941
  async function loadPwAiModule(mode) {
942
942
  try {
943
- return await import("./pw-ai-DWkC5eGA.js");
943
+ return await import("./pw-ai-CeWN4iD9.js");
944
944
  } catch (err) {
945
945
  if (mode === "soft") return null;
946
946
  if (isModuleNotFoundError(err)) return null;
@@ -3480,11 +3480,11 @@ function createProfileContext(opts, profile) {
3480
3480
  const userDataDir = resolveSymiUserDataDir(profile.name);
3481
3481
  const profileState = getProfileState();
3482
3482
  if (await isHttpReachable(300) && !profileState.running) try {
3483
- await (await import("./pw-ai-DWkC5eGA.js")).closePlaywrightBrowserConnection();
3483
+ await (await import("./pw-ai-CeWN4iD9.js")).closePlaywrightBrowserConnection();
3484
3484
  } catch {}
3485
3485
  if (profileState.running) await stopRunningBrowser();
3486
3486
  try {
3487
- await (await import("./pw-ai-DWkC5eGA.js")).closePlaywrightBrowserConnection();
3487
+ await (await import("./pw-ai-CeWN4iD9.js")).closePlaywrightBrowserConnection();
3488
3488
  } catch {}
3489
3489
  if (!fs.existsSync(userDataDir)) return {
3490
3490
  moved: false,
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { i as loadConfig } from "./config-DXt3pc08.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-CA3olOuQ.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-BCWbFTGF.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ft as loadSymiPlugins } from "./reply-BwSt9FgY.js";
2
+ import { ft as loadSymiPlugins } from "./reply-C5VU6T-F.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,8 +1,8 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { a as resolveOAuthDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry-D0xTnUWt.js";
4
- import { i as defaultRuntime } from "./subsystem-B2uDN3TV.js";
5
- import { t as formatCliCommand } from "./command-format-GKSevep4.js";
3
+ import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry--_pGht6S.js";
4
+ import { i as defaultRuntime } from "./subsystem-Coz2AgU8.js";
5
+ import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
6
6
  import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import fs$1 from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -1,5 +1,5 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID } from "./session-key-C_0eELjb.js";
2
- import { t as formatCliCommand } from "./command-format-GKSevep4.js";
2
+ import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
3
3
 
4
4
  //#region src/web/active-listener.ts
5
5
  const listeners = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  import { _ as isCronSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-C_0eELjb.js";
2
2
  import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, U as danger, W as info, Y as shouldLogVerbose, Z as warn, j as pathExists, nt as getLogger, q as logVerboseConsole } from "./registry-D0xTnUWt.js";
4
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
3
+ import { P as resolveUserPath, U as danger, W as info, Y as shouldLogVerbose, Z as warn, j as pathExists, nt as getLogger, q as logVerboseConsole } from "./registry--_pGht6S.js";
4
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -20,6 +20,13 @@ export type EmbeddedRunAttemptResult = {
20
20
  timedOut: boolean;
21
21
  /** True if the timeout occurred while compaction was in progress or pending. */
22
22
  timedOutDuringCompaction: boolean;
23
+ /**
24
+ * True when the abort was triggered specifically by the consecutive-tool-error
25
+ * circuit breaker in attempt.ts. Distinguishes this abort kind from user
26
+ * aborts and timeouts so `runAgentTurn` can auto-retry the run with tools
27
+ * disabled instead of returning a silent empty result to the caller.
28
+ */
29
+ circuitBreakerAborted: boolean;
23
30
  promptError: unknown;
24
31
  sessionIdUsed: string;
25
32
  systemPromptReport?: SessionSystemPromptReport;
@@ -32,6 +32,12 @@ export type EmbeddedPiRunMeta = {
32
32
  durationMs: number;
33
33
  agentMeta?: EmbeddedPiAgentMeta;
34
34
  aborted?: boolean;
35
+ /**
36
+ * True when the abort was triggered by the consecutive-tool-error circuit
37
+ * breaker in attempt.ts. Observed by `runAgentTurn` to decide whether to
38
+ * schedule a no-tool recovery retry.
39
+ */
40
+ circuitBreakerAborted?: boolean;
35
41
  systemPromptReport?: SessionSystemPromptReport;
36
42
  error?: {
37
43
  kind: "context_overflow" | "compaction_failure" | "role_ordering" | "image_size" | "retry_limit";
@@ -81,6 +81,14 @@ export interface AgentTurnParams {
81
81
  symipulseMs?: number;
82
82
  /** Retry once on transient HTTP errors (502/521) with 2.5s delay. */
83
83
  retryOnTransientError?: boolean;
84
+ /**
85
+ * @internal Set by `runAgentTurn` when it recurses into itself to recover
86
+ * from a tool-error circuit-breaker abort with tools disabled. Prevents
87
+ * infinite recursion — a second circuit-breaker event in the retry turn
88
+ * (which shouldn't happen since tools are off) is surfaced as-is instead
89
+ * of triggering another retry.
90
+ */
91
+ _circuitBreakerRetried?: boolean;
84
92
  channel?: ChannelContext;
85
93
  callbacks?: AgentTurnCallbacks;
86
94
  }
@@ -1,4 +1,4 @@
1
- import { c as normalizeProviderId } from "./model-selection-Bbs4XGPG.js";
1
+ import { c as normalizeProviderId } from "./model-selection-CtVwtb6y.js";
2
2
  import { n as formatErrorMessage } from "./errors-Bv8oZiTO.js";
3
3
 
4
4
  //#region src/infra/gemini-auth.ts
@@ -1,34 +1,34 @@
1
- import "./accounts-Ddm33hQm.js";
1
+ import "./accounts-D9zGZU5t.js";
2
2
  import "./paths-DR2yt_mP.js";
3
3
  import "./github-copilot-token-D9X2phUj.js";
4
- import "./plugins-BNByVCIH.js";
5
- import { K as logVerbose, Y as shouldLogVerbose } from "./registry-D0xTnUWt.js";
6
- import "./config-Ckum15iC.js";
7
- import "./subsystem-B2uDN3TV.js";
8
- import "./command-format-GKSevep4.js";
9
- import "./model-selection-Bbs4XGPG.js";
10
- import "./agent-scope-CYYpcO9W.js";
11
- import "./manifest-registry-BRx4JDK0.js";
4
+ import "./plugins-BbAvhC25.js";
5
+ import { K as logVerbose, Y as shouldLogVerbose } from "./registry--_pGht6S.js";
6
+ import "./config-BzupW6LN.js";
7
+ import "./subsystem-Coz2AgU8.js";
8
+ import "./command-format-DSdvQ_M5.js";
9
+ import "./model-selection-CtVwtb6y.js";
10
+ import "./agent-scope-C3gMMKCU.js";
11
+ import "./manifest-registry-hy3Bn-r9.js";
12
12
  import "./redact-DPnDWsnT.js";
13
13
  import "./errors-Bv8oZiTO.js";
14
- import "./image-ops-BlQR__MN.js";
14
+ import "./image-ops-Bnp6LXEx.js";
15
15
  import "./ssrf-DKZ8eBrk.js";
16
- import "./local-roots-BHLNSI8U.js";
17
- import "./message-channel-COTAJzHd.js";
18
- import "./bindings-C7hRtgYW.js";
19
- import "./tool-images-HJ2sfZDV.js";
20
- import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-BuxCHv_O.js";
21
- import "./skills-BfsaS1F9.js";
22
- import "./chrome-CEqfiEs0.js";
23
- import "./thinking-CXqf7WTe.js";
24
- import "./accounts-s-AdhXVR.js";
25
- import "./accounts-BtaOa4z_.js";
26
- import "./pi-embedded-helpers-dd3G9Hfi.js";
16
+ import "./local-roots-Ckk1QfzI.js";
17
+ import "./message-channel-BdI5Ra9S.js";
18
+ import "./bindings-BbwoUGPx.js";
19
+ import "./tool-images-D7Lno-TE.js";
20
+ import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-BhifC1J_.js";
21
+ import "./skills-C9DbB-Kp.js";
22
+ import "./chrome-D9kN9org.js";
23
+ import "./thinking-DCNUIAHY.js";
24
+ import "./accounts-Dtszw3Zn.js";
25
+ import "./accounts-BToL3HlP.js";
26
+ import "./pi-embedded-helpers-BL7ZRhGv.js";
27
27
  import "./paths-A0xdf3yk.js";
28
- import "./store-BdrNabcU.js";
29
- import "./image-CCmNHDV0.js";
28
+ import "./store-Do3t33-c.js";
29
+ import "./image-DFyINnvE.js";
30
30
  import "./pi-model-discovery-LbcEa65a.js";
31
- import "./api-key-rotation-DGJZ8SVa.js";
31
+ import "./api-key-rotation-CBsLb_4V.js";
32
32
 
33
33
  //#region src/media-understanding/audio-preflight.ts
34
34
  /**
@@ -1,6 +1,6 @@
1
1
  import { p as normalizeAccountId, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
- import { s as normalizeChatChannelId } from "./registry-D0xTnUWt.js";
3
- import { c as resolveDefaultAgentId } from "./agent-scope-CYYpcO9W.js";
2
+ import { s as normalizeChatChannelId } from "./registry--_pGht6S.js";
3
+ import { c as resolveDefaultAgentId } from "./agent-scope-C3gMMKCU.js";
4
4
 
5
5
  //#region src/routing/bindings.ts
6
6
  function normalizeBindingChannelId(raw) {
@@ -1,4 +1,4 @@
1
- import { n as retryAsync, t as resolveRetryConfig } from "./retry-CwQ_iIj8.js";
1
+ import { n as retryAsync, t as resolveRetryConfig } from "./retry-ilSJqnz9.js";
2
2
  import { n as formatErrorMessage } from "./errors-Bv8oZiTO.js";
3
3
  import { RateLimitError } from "@buape/carbon";
4
4
 
@@ -1,28 +1,28 @@
1
1
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
- import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-Ddm33hQm.js";
3
- import { D as enqueueSystemEvent, G as shouldAckReactionForWhatsApp, K as resolveMentionGating, X as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildHistoryContextFromEntries, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as computeBackoff, d as buildPairingReply, f as formatDurationPrecise, g as resolveInboundDebounceMs, gt as createDedupeCache, h as createInboundDebouncer, it as normalizeMentionText, l as sleepWithAbort, n as normalizeGroupActivation, nt as recordPendingHistoryEntryIfEnabled, p as dispatchReplyWithBufferedBlockDispatcher, r as parseActivationCommand, rt as buildMentionRegexes, t as getReplyFromConfig, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./reply-CNsK2I6u.js";
4
- import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry-D0xTnUWt.js";
5
- import { n as loadConfig } from "./config-Ckum15iC.js";
6
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
7
- import { t as formatCliCommand } from "./command-format-GKSevep4.js";
8
- import { n as recordChannelActivity } from "./channel-activity-DoC1xtDu.js";
9
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-BHLNSI8U.js";
10
- import { a as loadWebMedia } from "./ir-BJ6BHE5b.js";
11
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-Dw2XBYXv.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-BoYFajMu.js";
13
- import { t as convertMarkdownTables } from "./tables-DNwXwNFa.js";
14
- import { G as readChannelAllowFromStore, J as upsertChannelPairingRequest, K as readChannelAllowFromStoreSync, nt as toLocationContext, tt as formatLocationText } from "./send-CKXzQuXo.js";
15
- import { f as registerUnhandledRejectionHandler } from "./runner-BuxCHv_O.js";
16
- import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-uxfMZW4p.js";
17
- import { F as resolveChannelGroupRequireMention, P as resolveChannelGroupPolicy } from "./thinking-CXqf7WTe.js";
18
- import { Xt as resolveGroupSessionKey, _t as updateLastRoute, gt as recordSessionMetaFromInbound, ht as readSessionUpdatedAt, mt as loadSessionStore } from "./pi-embedded-helpers-dd3G9Hfi.js";
2
+ import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
3
+ import { D as enqueueSystemEvent, G as shouldAckReactionForWhatsApp, K as resolveMentionGating, X as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildHistoryContextFromEntries, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as computeBackoff, d as buildPairingReply, f as formatDurationPrecise, g as resolveInboundDebounceMs, gt as createDedupeCache, h as createInboundDebouncer, it as normalizeMentionText, l as sleepWithAbort, n as normalizeGroupActivation, nt as recordPendingHistoryEntryIfEnabled, p as dispatchReplyWithBufferedBlockDispatcher, r as parseActivationCommand, rt as buildMentionRegexes, t as getReplyFromConfig, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./reply-DWwxgBtH.js";
4
+ import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
5
+ import { n as loadConfig } from "./config-BzupW6LN.js";
6
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
7
+ import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
8
+ import { n as recordChannelActivity } from "./channel-activity-Ji7f0gqq.js";
9
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
10
+ import { a as loadWebMedia } from "./ir-Fb3qpcis.js";
11
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-jvk9axTQ.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
13
+ import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
14
+ import { G as readChannelAllowFromStore, J as upsertChannelPairingRequest, K as readChannelAllowFromStoreSync, nt as toLocationContext, tt as formatLocationText } from "./send-DLO_yV5_.js";
15
+ import { f as registerUnhandledRejectionHandler } from "./runner-BhifC1J_.js";
16
+ import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-BHuV5t70.js";
17
+ import { F as resolveChannelGroupRequireMention, P as resolveChannelGroupPolicy } from "./thinking-DCNUIAHY.js";
18
+ import { Xt as resolveGroupSessionKey, _t as updateLastRoute, gt as recordSessionMetaFromInbound, ht as readSessionUpdatedAt, mt as loadSessionStore } from "./pi-embedded-helpers-BL7ZRhGv.js";
19
19
  import { s as resolveStorePath } from "./paths-A0xdf3yk.js";
20
- import { i as saveMediaBuffer } from "./store-BdrNabcU.js";
20
+ import { i as saveMediaBuffer } from "./store-Do3t33-c.js";
21
21
  import { t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
22
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CWfcnhza.js";
23
- import { r as setActiveWebListener } from "./active-listener-DYjn3fML.js";
24
- import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-BVhSNFy0.js";
25
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-ARbcLHE9.js";
22
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CHQ7BTlU.js";
23
+ import { r as setActiveWebListener } from "./active-listener-CJuvR4C2.js";
24
+ import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-DW3cqlQW.js";
25
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BfyK_04G.js";
26
26
  import { randomUUID } from "node:crypto";
27
27
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
28
28
 
@@ -1,6 +1,6 @@
1
- import { b as CONFIG_DIR } from "./registry-D0xTnUWt.js";
2
- import { n as loadConfig } from "./config-Ckum15iC.js";
3
- import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
1
+ import { b as CONFIG_DIR } from "./registry--_pGht6S.js";
2
+ import { n as loadConfig } from "./config-BzupW6LN.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
4
4
  import { i as isErrno } from "./errors-Bv8oZiTO.js";
5
5
  import { s as resolvePinnedHostnameWithPolicy } from "./ssrf-DKZ8eBrk.js";
6
6
  import fs from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
3
- import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-COTAJzHd.js";
3
+ import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-BdI5Ra9S.js";
4
4
 
5
5
  //#region src/markdown/fences.ts
6
6
  function parseFenceSpans(buffer) {
@@ -1,4 +1,4 @@
1
- import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/utils/boolean.ts