@symerian/symi 2.8.13 → 2.8.14

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 (295) hide show
  1. package/dist/{accounts-BuZxOb3B.js → accounts-Bsg6r6H7.js} +1 -1
  2. package/dist/{accounts-BRw8yhIW.js → accounts-BsgY6sda.js} +21 -21
  3. package/dist/{accounts-3dCrO3oZ.js → accounts-wWWkC0JH.js} +1 -1
  4. package/dist/{active-listener-BVZOh2T1.js → active-listener-AVNn5_U9.js} +1 -1
  5. package/dist/{agent-scope-CpEJ0B88.js → agent-scope-Cpm7a9ss.js} +3 -3
  6. package/dist/{agents-CgCg4syn.js → agents-DlAvDWxz.js} +4 -4
  7. package/dist/{agents.config-BnPC7uct.js → agents.config-BKKMbeeE.js} +1 -1
  8. package/dist/{agents.config-DqWxpgkX.js → agents.config-Dd-11klq.js} +1 -1
  9. package/dist/{audio-preflight-NdNUAZ0y.js → audio-preflight-C6vpFnOG.js} +4 -4
  10. package/dist/{audio-preflight-Cb-T0r6e.js → audio-preflight-rrz8KyHd.js} +29 -29
  11. package/dist/{audit-Bi9Je9FZ.js → audit-BhCJV2l6.js} +1 -1
  12. package/dist/{audit-Oa5dsn5p.js → audit-CB97BqHJ.js} +1 -1
  13. package/dist/{auth-choice-BKwypsnS.js → auth-choice-C6woT6k2.js} +1 -1
  14. package/dist/{auth-choice-BIlBt2d0.js → auth-choice-CRQRPwQt.js} +1 -1
  15. package/dist/{auth-profiles-C2vj6htZ.js → auth-profiles-BzB_Exeq.js} +17 -17
  16. package/dist/{banner-CX5CuLWQ.js → banner-DrNha2_N.js} +1 -1
  17. package/dist/{bindings-BsHoBLIE.js → bindings-xcRox9xM.js} +2 -2
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +54 -54
  20. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  21. package/dist/bundled/command-logger/handler.js +1 -1
  22. package/dist/bundled/session-memory/handler.js +54 -54
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{channel-activity-D8QD7GoV.js → channel-activity-CzHaIUAp.js} +1 -1
  25. package/dist/{channel-options-mUKQVJQl.js → channel-options-D8q9En4T.js} +1 -1
  26. package/dist/{channel-options-7y9EuPLO.js → channel-options-DYy2sCfN.js} +1 -1
  27. package/dist/{channel-web-Dldh4zVI.js → channel-web-CRBU4eZk.js} +1 -1
  28. package/dist/{channels-cli-Dz9vV1KL.js → channels-cli-BUk43hHR.js} +7 -7
  29. package/dist/{channels-cli-Q6Q8LokG.js → channels-cli-Dk3kUw9A.js} +7 -7
  30. package/dist/{chrome-ROtrXlNs.js → chrome-B14NNyfm.js} +5 -5
  31. package/dist/{chrome-BUT--ob3.js → chrome-DwXnykXR.js} +23 -23
  32. package/dist/{chunk-BRe1o4Af.js → chunk-BcxcL1U3.js} +1 -1
  33. package/dist/{cli-DMsLCQbO.js → cli-5gWsnsB7.js} +4 -4
  34. package/dist/{cli-D4WYEtu4.js → cli-DjZzJy3t.js} +4 -4
  35. package/dist/{command-registry-cEqGIx4b.js → command-registry-LjFltTU9.js} +10 -10
  36. package/dist/{commands-registry-DxbSTLNQ.js → commands-registry-ByGkL6hs.js} +4 -4
  37. package/dist/{completion-cli-Bw0jbNaG.js → completion-cli-BVTGy8th.js} +1 -1
  38. package/dist/{completion-cli-C5GCKfKT.js → completion-cli-Cf6fYZWL.js} +2 -2
  39. package/dist/{config-BkZ9HOKT.js → config-C4WnAd-c.js} +17 -17
  40. package/dist/{config-cli-DP0hP7WR.js → config-cli-C7DIbGxx.js} +1 -1
  41. package/dist/{config-cli-DgHooQ4_.js → config-cli-EgWrCemi.js} +1 -1
  42. package/dist/{configure-OUiXvgMg.js → configure-B67uIawm.js} +3 -3
  43. package/dist/{configure-BQUkaPdS.js → configure-Bk-snuxh.js} +3 -3
  44. package/dist/{consolidate-07QMweFF.js → consolidate-DRtVvG2U.js} +4 -4
  45. package/dist/{deliver-B_Q_nWJV.js → deliver-D0bWiRCg.js} +1 -1
  46. package/dist/{deliver-B0OUq6RP.js → deliver-SLYAWE19.js} +20 -20
  47. package/dist/{diagnostic-BUcR3Meg.js → diagnostic-DTkZsRNM.js} +1 -1
  48. package/dist/{doctor-completion-DlKvncR9.js → doctor-completion-By066O3p.js} +1 -1
  49. package/dist/{doctor-completion-BSMAyCq_.js → doctor-completion-lE_33xaY.js} +1 -1
  50. package/dist/entry.js +1 -1
  51. package/dist/{env-BDXYbTKj.js → env-CB65jmJQ.js} +1 -1
  52. package/dist/extensionAPI.js +7 -7
  53. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CT1M0pRK.js} +4 -4
  54. package/dist/{gateway-cli-BlRNLVfU.js → gateway-cli-C6uT2x34.js} +13 -13
  55. package/dist/{gateway-cli-NI7W2QxR.js → gateway-cli-DqEgqVKC.js} +13 -13
  56. package/dist/{gemini-auth-BefM10YB.js → gemini-auth-D80BsXr2.js} +1 -1
  57. package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
  58. package/dist/{glass-ui-ws-BBkFBsKB.js → glass-ui-ws-77TY57IO.js} +11 -11
  59. package/dist/{glass-ui-ws-DxrESDzy.js → glass-ui-ws-CLAUHeZR.js} +11 -11
  60. package/dist/{health-fOu0S75U.js → health-2jkjZxY8.js} +1 -1
  61. package/dist/{health-D4vU-wV-.js → health-CvMHgR-L.js} +1 -1
  62. package/dist/{hooks-cli-BdgnXYmw.js → hooks-cli-CRZySOiz.js} +5 -5
  63. package/dist/{hooks-cli-DdSggQYs.js → hooks-cli-DSaezFsD.js} +5 -5
  64. package/dist/{image-BuVL0jHI.js → image-BHF_fnIp.js} +4 -4
  65. package/dist/{image-tzIqIuKx.js → image-MNvheU8U.js} +1 -1
  66. package/dist/{plugin-sdk/image-ops-BlQR__MN.js → image-ops-CY7v6vvp.js} +17 -17
  67. package/dist/index.js +9 -9
  68. package/dist/{internal-DjnxpF_K.js → internal-FNqguZSK.js} +11 -11
  69. package/dist/{ir-7tMVY7D_.js → ir-D6MiJpAy.js} +4 -4
  70. package/dist/llm-slug-generator.js +54 -54
  71. package/dist/{local-roots-ClipCZ9s.js → local-roots-tcdaIEhh.js} +5 -5
  72. package/dist/{login-D4rZWBXe.js → login-D4ZkmSrY.js} +7 -7
  73. package/dist/{login-qr-DdAVHOEC.js → login-qr-C9ftIq3n.js} +12 -12
  74. package/dist/{manager-DRrGn88w.js → manager-BtWtmpxN.js} +1 -1
  75. package/dist/{manager-syNf_ZrI.js → manager-DDELj5o9.js} +1 -1
  76. package/dist/{manager-TOeH0D8K.js → manager-DrmlegR2.js} +1 -1
  77. package/dist/{manager-_RGWWymD.js → manager-DxCmjSfP.js} +24 -24
  78. package/dist/{manifest-registry-CBCGTsIb.js → manifest-registry-BvGv6lp9.js} +19 -19
  79. package/dist/{markdown-tables-x2Xe2UXh.js → markdown-tables-CE-qSMGB.js} +1 -1
  80. package/dist/{memory-cli-0jm-n36m.js → memory-cli-ENCASZJk.js} +3 -3
  81. package/dist/{memory-cli-BSOOwpt1.js → memory-cli-Qgbcxvuf.js} +3 -3
  82. package/dist/{plugin-sdk/message-channel-COTAJzHd.js → message-channel-lwVT8QjK.js} +1 -1
  83. package/dist/{models-sGeWQOmg.js → models-COhUz7M9.js} +2 -2
  84. package/dist/{models-cli-CtkoEyh3.js → models-cli-CCxYcF4R.js} +5 -5
  85. package/dist/{models-cli-DV-J1cm0.js → models-cli-CYvXBvmZ.js} +6 -6
  86. package/dist/{onboard-FeTHeA1y.js → onboard-CQNUYBIp.js} +2 -2
  87. package/dist/{onboard-channels-DpZkjldS.js → onboard-channels-9erx07qe.js} +1 -1
  88. package/dist/{onboard-channels-D8bDJYPc.js → onboard-channels-CWw8G-6n.js} +1 -1
  89. package/dist/{onboard-CWBYuaCm.js → onboard-fVpLVnwg.js} +2 -2
  90. package/dist/{onboarding-BsPnnH5g.js → onboarding-CtEiH9WG.js} +3 -3
  91. package/dist/{onboarding-c2qhwP0x.js → onboarding-D-OIkDwZ.js} +3 -3
  92. package/dist/{onboarding.finalize-7St3fmk2.js → onboarding.finalize-BY3HNjX4.js} +9 -9
  93. package/dist/{onboarding.finalize-id9EHg1P.js → onboarding.finalize-DTbpLV-T.js} +8 -8
  94. package/dist/{outbound-Zmd7UyQH.js → outbound-C6Gm22UF.js} +7 -7
  95. package/dist/{outbound-attachment-DeCnZT-8.js → outbound-attachment-BWyKV1Gy.js} +2 -2
  96. package/dist/paths-CYmyCDsE.js +212 -0
  97. package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
  98. package/dist/{pi-auth-json-RXOlh8ar.js → pi-auth-json-Bv1NzJdR.js} +1 -1
  99. package/dist/{pi-embedded-DCBB1_SC.js → pi-embedded-CdOdQw2i.js} +278 -23
  100. package/dist/{pi-embedded-helpers-D1_Sab0M.js → pi-embedded-helpers-DwQ9wJeT.js} +73 -73
  101. package/dist/{pi-embedded-helpers-DjSdA5BG.js → pi-embedded-helpers-TcYQOZAY.js} +4 -4
  102. package/dist/{pi-tools.policy-BZrM6a-w.js → pi-tools.policy-Bx5zp45n.js} +2 -0
  103. package/dist/{pi-tools.policy-QIVWAVVI.js → pi-tools.policy-o0ytjRqu.js} +2 -0
  104. package/dist/{plugin-registry-BJSfTT8c.js → plugin-registry-BrJ0-qlu.js} +1 -1
  105. package/dist/{plugin-registry-Cy1kfzAy.js → plugin-registry-Cuc8ORuR.js} +1 -1
  106. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  107. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  108. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  109. package/dist/plugin-sdk/{active-listener-DYjn3fML.js → active-listener-CJuvR4C2.js} +1 -1
  110. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  111. package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +7 -0
  112. package/dist/plugin-sdk/agents/tools/task-tool.d.ts +7 -0
  113. package/dist/plugin-sdk/{api-key-rotation-DGJZ8SVa.js → api-key-rotation-CBsLb_4V.js} +1 -1
  114. package/dist/plugin-sdk/{audio-preflight-CiVw8470.js → audio-preflight-DucGa8w7.js} +24 -24
  115. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  116. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  117. package/dist/plugin-sdk/{channel-web-BSDjZSwm.js → channel-web-t8UOP6Zu.js} +22 -22
  118. package/dist/plugin-sdk/{chrome-CEqfiEs0.js → chrome-D9kN9org.js} +3 -3
  119. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  120. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  121. package/dist/plugin-sdk/{commands-registry-BhW_oGNt.js → commands-registry-BuYpmEx-.js} +4 -4
  122. package/dist/plugin-sdk/{config-Ckum15iC.js → config-BzupW6LN.js} +9 -9
  123. package/dist/plugin-sdk/{consolidate-COuTEt4Z.js → consolidate-CafShdsH.js} +2 -2
  124. package/dist/plugin-sdk/{deliver-B8Y2t-RH.js → deliver-CKgFosI5.js} +10 -10
  125. package/dist/plugin-sdk/{diagnostic-BR07buTm.js → diagnostic-_oc91gNi.js} +1 -1
  126. package/dist/plugin-sdk/{image-CCmNHDV0.js → image-DFyINnvE.js} +4 -4
  127. package/dist/{image-ops-C7CauEK8.js → plugin-sdk/image-ops-Bnp6LXEx.js} +2 -2
  128. package/dist/plugin-sdk/index.js +54 -54
  129. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  130. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  131. package/dist/plugin-sdk/{login-g_rQAcuM.js → login-K1YB_7-t.js} +7 -7
  132. package/dist/plugin-sdk/{login-qr-BOUmLSY3.js → login-qr-lMl_OqDj.js} +9 -9
  133. package/dist/plugin-sdk/{manager-B9GigLWj.js → manager-BPm5oefC.js} +9 -9
  134. package/dist/plugin-sdk/{manifest-registry-BRx4JDK0.js → manifest-registry-hy3Bn-r9.js} +1 -1
  135. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  136. package/dist/{message-channel-OlFBYAw8.js → plugin-sdk/message-channel-BdI5Ra9S.js} +1 -1
  137. package/dist/plugin-sdk/{model-selection-Bbs4XGPG.js → model-selection-CtVwtb6y.js} +4 -4
  138. package/dist/plugin-sdk/{outbound-BVhSNFy0.js → outbound-DW3cqlQW.js} +7 -7
  139. package/dist/plugin-sdk/{outbound-attachment-B56R1Wi4.js → outbound-attachment-D7ME_Kib.js} +2 -2
  140. package/dist/plugin-sdk/{pi-auth-json-CB2bV0Jd.js → pi-auth-json-DiyK6bgV.js} +1 -1
  141. package/dist/plugin-sdk/{pi-embedded-helpers-dd3G9Hfi.js → pi-embedded-helpers-BL7ZRhGv.js} +17 -17
  142. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  143. package/dist/plugin-sdk/{pw-ai-BXeOYCz_.js → pw-ai-B3T0mTHr.js} +8 -8
  144. package/dist/plugin-sdk/{qmd-manager-wIr8qz2n.js → qmd-manager-BlUikj9s.js} +4 -4
  145. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  146. package/dist/plugin-sdk/{replies-CQ4szNhV.js → replies-BR2TPTVW.js} +3 -3
  147. package/dist/plugin-sdk/{reply-DD8z_dUW.js → reply-BKAHTugL.js} +337 -82
  148. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  149. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  150. package/dist/plugin-sdk/{resolve-route-CWfcnhza.js → resolve-route-CHQ7BTlU.js} +3 -3
  151. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  152. package/dist/plugin-sdk/{runner-BuxCHv_O.js → runner-BhifC1J_.js} +9 -9
  153. package/dist/plugin-sdk/{send-fNRDT21N.js → send-BP5pSPaZ.js} +6 -6
  154. package/dist/plugin-sdk/{send-BtO-7fHs.js → send-CGhw9mO3.js} +6 -6
  155. package/dist/plugin-sdk/{send-CKXzQuXo.js → send-DLO_yV5_.js} +10 -10
  156. package/dist/plugin-sdk/{send-Djq5IPRa.js → send-ZhAe1nXO.js} +10 -10
  157. package/dist/plugin-sdk/{send-XSuwT1PC.js → send-jsofmTfJ.js} +7 -7
  158. package/dist/plugin-sdk/{session-ARbcLHE9.js → session-BfyK_04G.js} +4 -4
  159. package/dist/plugin-sdk/{skill-commands-yzJVuTIW.js → skill-commands-DEfqC_kJ.js} +5 -5
  160. package/dist/plugin-sdk/{skills-BfsaS1F9.js → skills-C9DbB-Kp.js} +7 -7
  161. package/dist/plugin-sdk/{sqlite-A3wGzttn.js → sqlite-CmVrFEYD.js} +1 -1
  162. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  163. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  164. package/dist/plugin-sdk/{synthesis-Dv5GwSky.js → synthesis-CVF7Fwhd.js} +49 -49
  165. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  166. package/dist/{target-errors-DeJTztcq.js → plugin-sdk/target-errors-B7YyMnIi.js} +2 -2
  167. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  168. package/dist/{tokens-W0JzCJJM.js → plugin-sdk/tokens-CWMflosr.js} +1 -1
  169. package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
  170. package/dist/plugin-sdk/{tool-loop-detection-gmtzSlNZ.js → tool-loop-detection-DseOlBug.js} +2 -2
  171. package/dist/plugin-sdk/web-D0DsmFvw.js +66 -0
  172. package/dist/plugin-sdk/{whatsapp-actions-B_1l8JMU.js → whatsapp-actions-eTefsWhW.js} +21 -21
  173. package/dist/{plugins-cli-6UYkZBH0.js → plugins-cli-BDalhI46.js} +5 -5
  174. package/dist/{plugins-cli-DPetEhfv.js → plugins-cli-DFmriy-c.js} +5 -5
  175. package/dist/{plugins-BzmbgY7s.js → plugins-v8k1XVOy.js} +9 -9
  176. package/dist/{program-CVy9LVoS.js → program-DKh41c2a.js} +10 -10
  177. package/dist/{program-context-CBI6gIf-.js → program-context-Cq7pqOrw.js} +19 -19
  178. package/dist/{prompt-select-styled-BlXl_Qf7.js → prompt-select-styled-BFCAZLwK.js} +6 -6
  179. package/dist/{prompt-select-styled-Bv675D48.js → prompt-select-styled-DvvSE_ni.js} +6 -6
  180. package/dist/{provider-auth-helpers-RUQD5XAm.js → provider-auth-helpers-B-LkDxxi.js} +1 -1
  181. package/dist/{provider-auth-helpers-BB1lhCy5.js → provider-auth-helpers-DXppgV1l.js} +1 -1
  182. package/dist/{push-apns-Cr-a1KBt.js → push-apns-DCA47WA5.js} +1 -1
  183. package/dist/{push-apns-rPetW5cI.js → push-apns-DvudhEAb.js} +1 -1
  184. package/dist/{pw-ai-CQtaPvM8.js → pw-ai-40Jf9QIb.js} +1 -1
  185. package/dist/{pw-ai-DWkC5eGA.js → pw-ai-XGqnSWju.js} +11 -11
  186. package/dist/{qmd-manager-BXkbA8Y9.js → qmd-manager-CbRJhonG.js} +8 -8
  187. package/dist/{register.agent-DKDwNHQi.js → register.agent-_BV5KyFb.js} +9 -9
  188. package/dist/{register.agent-j6OlKEU-.js → register.agent-aFj_SMi3.js} +8 -8
  189. package/dist/{register.configure-CopgSygi.js → register.configure-CvOoD5gE.js} +9 -9
  190. package/dist/{register.configure-BgIXIq9d.js → register.configure-Dx0Uhmlz.js} +9 -9
  191. package/dist/{register.maintenance-DjaGkVtr.js → register.maintenance-BuZpoSik.js} +10 -10
  192. package/dist/{register.maintenance-BKsCM6NG.js → register.maintenance-CMeJR7DG.js} +11 -11
  193. package/dist/{register.message-C3oHvmdl.js → register.message-qysZPg3G.js} +5 -5
  194. package/dist/{register.message-bxhUcSyj.js → register.message-xxGePuRC.js} +5 -5
  195. package/dist/{register.onboard-DijWH8Vd.js → register.onboard-1MP2I0q4.js} +7 -7
  196. package/dist/{register.onboard-D0DHcb20.js → register.onboard-D4Aow7Gc.js} +7 -7
  197. package/dist/{register.setup-XlCTnTm_.js → register.setup-BT74aXzA.js} +7 -7
  198. package/dist/{register.setup-CrFzd94c.js → register.setup-DzliKkWh.js} +7 -7
  199. package/dist/{register.status-health-sessions-VwvDWUxZ.js → register.status-health-sessions-B3K2gZ72.js} +7 -7
  200. package/dist/{register.status-health-sessions-AWCg_uLf.js → register.status-health-sessions-D7VYZlrU.js} +7 -7
  201. package/dist/{register.subclis-Bw8k5Z5C.js → register.subclis-BCy0IDRv.js} +10 -10
  202. package/dist/{registry-DYq1AYOv.js → registry-X6fUE0K7.js} +19 -19
  203. package/dist/{replies-CUWXgyx2.js → replies-86F3PldM.js} +3 -3
  204. package/dist/{reply-D7_t00Jt.js → reply-Dg1ZU3DZ.js} +262 -9
  205. package/dist/{reply-prefix-CvEIl6_d.js → reply-prefix-CI_IdwqH.js} +1 -1
  206. package/dist/{resolve-route-Jy5dFY67.js → resolve-route-BgSuN9c6.js} +4 -4
  207. package/dist/{retry-B-y5suGA.js → retry-4oEAHckB.js} +1 -1
  208. package/dist/{run-main-7BEaNeDG.js → run-main-OS2aFAJ2.js} +18 -18
  209. package/dist/{runner-ecX1WzDt.js → runner-B5oNTtgf.js} +22 -22
  210. package/dist/{runner-Dpjulwnm.js → runner-DFuAePEr.js} +1 -1
  211. package/dist/{security-cli-BpnzAB5_.js → security-cli-BadXDWTh.js} +2 -2
  212. package/dist/{security-cli-D9WEiEjD.js → security-cli-D5y28-RH.js} +2 -2
  213. package/dist/{send-DFtnbzqy.js → send-ASDB3AzC.js} +7 -7
  214. package/dist/{send-Bb4it0te.js → send-BTfqlrYd.js} +18 -18
  215. package/dist/{send-C0QjmPaf.js → send-CSydU49L.js} +10 -10
  216. package/dist/{send-Cpk3Ti6-.js → send-Du-IfSne.js} +6 -6
  217. package/dist/{send-BKo1T3HF.js → send-cCTQjuOZ.js} +6 -6
  218. package/dist/{server-methods-CTeJHJSZ.js → server-methods-BszFAkbJ.js} +8 -8
  219. package/dist/{server-methods-FQ-PqiVC.js → server-methods-D_iKJ-sj.js} +8 -8
  220. package/dist/{server-node-events-BqvcHbuK.js → server-node-events-CENHuAVz.js} +5 -5
  221. package/dist/{server-node-events-Z7epDloV.js → server-node-events-uBu3XOjd.js} +5 -5
  222. package/dist/{session-BTeY6Gn2.js → session-D8qLj_xN.js} +8 -8
  223. package/dist/{skill-commands-DG2lcozb.js → skill-commands-BcOduw6G.js} +16 -16
  224. package/dist/{skills-CXxrn_e2.js → skills-BrYDT4Jr.js} +24 -24
  225. package/dist/{sqlite-BN_hIcmu.js → sqlite-P-gMg7fi.js} +3 -3
  226. package/dist/{status-CKROJwI2.js → status-BvbJavmh.js} +1 -1
  227. package/dist/{status-DLFbpd9v.js → status-CA0mUJld.js} +4 -4
  228. package/dist/{status-DMigoL7q.js → status-CBnCPUMG.js} +4 -4
  229. package/dist/{status-x7WCSVhG.js → status-DJAeKN4G.js} +1 -1
  230. package/dist/{store-01F_JM7O.js → store-Ceagbc4L.js} +6 -6
  231. package/dist/{subagent-registry-BvP8AGdE.js → subagent-registry-C1OyZl-M.js} +262 -9
  232. package/dist/{subsystem-BjyjJF-d.js → subsystem-CzXhCdeY.js} +1 -1
  233. package/dist/{synthesis-DgQz6kPf.js → synthesis-DNTyB7JY.js} +7 -7
  234. package/dist/{synthesis-E4flT91F.js → synthesis-DuqSkHEr.js} +54 -54
  235. package/dist/{synthesis-DDId6n26.js → synthesis-brHrnNF2.js} +4 -4
  236. package/dist/{synthesis-By7KPUAm.js → synthesis-z5B41p_r.js} +4 -4
  237. package/dist/{tables-DoG-pFrf.js → tables-qbCoZrYA.js} +1 -1
  238. package/dist/{plugin-sdk/target-errors-Paro1BjP.js → target-errors-uNitqCCT.js} +2 -2
  239. package/dist/{thinking-BprCy23Z.js → thinking-BV7SCNJP.js} +5 -5
  240. package/dist/{plugin-sdk/tokens-bC3UVmVH.js → tokens-Bl5R3wPD.js} +1 -1
  241. package/dist/{tool-images-SqqWIT22.js → tool-images-JxNglLSr.js} +2 -2
  242. package/dist/{tool-loop-detection-Dj9h1ogr.js → tool-loop-detection-dfE771kg.js} +3 -3
  243. package/dist/{unified-runner-DaSb-TsZ.js → unified-runner-Czg3pdBc.js} +488 -233
  244. package/dist/{update-cli-D0relAZw.js → update-cli-0lyGyl31.js} +11 -11
  245. package/dist/{update-cli-C5H6DkNM.js → update-cli-CIzkVfmj.js} +10 -10
  246. package/dist/{update-runner-D99V_zHX.js → update-runner-D7-LDziQ.js} +1 -1
  247. package/dist/{update-runner-B_yVOk8Z.js → update-runner-aYPcKYAN.js} +1 -1
  248. package/dist/{web-BBz1kF_9.js → web-B90A99YU.js} +58 -58
  249. package/dist/{web-Bdebat5l.js → web-BJ5dUZso.js} +5 -5
  250. package/dist/{web-BQh2S6oq.js → web-CN7wnU7w.js} +4 -4
  251. package/dist/{web-CiYoJfrl.js → web-Wk1ay1eQ.js} +7 -7
  252. package/dist/{whatsapp-actions-DmVpLXmh.js → whatsapp-actions-llk0IUn2.js} +23 -23
  253. package/dist/{workspace-DscDraUb.js → workspace-CywO4ayZ.js} +27 -27
  254. package/extensions/bluebubbles/package.json +1 -1
  255. package/extensions/copilot-proxy/package.json +1 -1
  256. package/extensions/diagnostics-otel/package.json +1 -1
  257. package/extensions/discord/package.json +1 -1
  258. package/extensions/feishu/package.json +1 -1
  259. package/extensions/google-antigravity-auth/package.json +1 -1
  260. package/extensions/google-gemini-cli-auth/package.json +1 -1
  261. package/extensions/googlechat/package.json +1 -1
  262. package/extensions/imessage/package.json +1 -1
  263. package/extensions/irc/package.json +1 -1
  264. package/extensions/learning-loop/package.json +1 -1
  265. package/extensions/line/package.json +1 -1
  266. package/extensions/llm-task/package.json +1 -1
  267. package/extensions/matrix/CHANGELOG.md +6 -0
  268. package/extensions/matrix/package.json +1 -1
  269. package/extensions/mattermost/package.json +1 -1
  270. package/extensions/memory-core/package.json +1 -1
  271. package/extensions/memory-lancedb/package.json +1 -1
  272. package/extensions/minimax-portal-auth/package.json +1 -1
  273. package/extensions/msteams/CHANGELOG.md +6 -0
  274. package/extensions/msteams/package.json +1 -1
  275. package/extensions/nextcloud-talk/package.json +1 -1
  276. package/extensions/nostr/CHANGELOG.md +6 -0
  277. package/extensions/nostr/package.json +1 -1
  278. package/extensions/open-prose/package.json +1 -1
  279. package/extensions/outlook/package.json +1 -1
  280. package/extensions/pipeline/package.json +1 -1
  281. package/extensions/signal/package.json +1 -1
  282. package/extensions/slack/package.json +1 -1
  283. package/extensions/telegram/package.json +1 -1
  284. package/extensions/tlon/package.json +1 -1
  285. package/extensions/twitch/CHANGELOG.md +6 -0
  286. package/extensions/twitch/package.json +1 -1
  287. package/extensions/voice-call/CHANGELOG.md +6 -0
  288. package/extensions/voice-call/package.json +1 -1
  289. package/extensions/whatsapp/package.json +1 -1
  290. package/extensions/zalo/CHANGELOG.md +6 -0
  291. package/extensions/zalo/package.json +1 -1
  292. package/extensions/zalouser/CHANGELOG.md +6 -0
  293. package/extensions/zalouser/package.json +1 -1
  294. package/package.json +1 -1
  295. package/dist/plugin-sdk/web-CmKqZEsX.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-B_Q_nWJV.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";
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-DjSdA5BG.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";
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-BUT--ob3.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B14NNyfm.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-tzIqIuKx.js";
40
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-DRrGn88w.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-BtWtmpxN.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-Dpjulwnm.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";
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$1, { WebSocket } from "ws";
83
+ import WebSocket, { WebSocket as WebSocket$1 } 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-DRrGn88w.js").then((n) => n.n);
3476
+ const { MemoryIndexManager } = await import("./manager-BtWtmpxN.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-DRrGn88w.js").then((n) => n.n);
3489
+ const { MemoryIndexManager } = await import("./manager-BtWtmpxN.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(url, wsOptions);
5821
+ this.ws = new WebSocket$1(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.OPEN) throw new Error("gateway not connected");
6040
+ if (!this.ws || this.ws.readyState !== WebSocket$1.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-B_Q_nWJV.js").then((n) => n.n);
7307
+ const { deliverOutboundPayloads } = await import("./deliver-D0bWiRCg.js").then((n) => n.n);
7308
7308
  return {
7309
7309
  ok: true,
7310
7310
  messageId: (await deliverOutboundPayloads({
@@ -17618,7 +17618,7 @@ async function resolveSandboxWorkdir(params) {
17618
17618
  };
17619
17619
  }
17620
17620
  }
17621
- function resolveWorkdir(workdir, warnings) {
17621
+ function resolveWorkdir$1(workdir, warnings) {
17622
17622
  const fallback = safeCwd() ?? homedir();
17623
17623
  try {
17624
17624
  if (statSync(workdir).isDirectory()) return workdir;
@@ -18760,7 +18760,7 @@ function createExecTool(defaults) {
18760
18760
  });
18761
18761
  workdir = resolved.hostWorkdir;
18762
18762
  containerWorkdir = resolved.containerWorkdir;
18763
- } else workdir = resolveWorkdir(rawWorkdir, warnings);
18763
+ } else workdir = resolveWorkdir$1(rawWorkdir, warnings);
18764
18764
  const baseEnv = coerceEnv(process.env);
18765
18765
  if (host !== "sandbox" && params.env) validateHostEnv(params.env);
18766
18766
  const mergedEnv = params.env ? {
@@ -36661,6 +36661,254 @@ function createSubagentsTool(opts) {
36661
36661
  };
36662
36662
  }
36663
36663
 
36664
+ //#endregion
36665
+ //#region src/agents/tools/task-tool.ts
36666
+ /**
36667
+ * Long-task management tools (task_list, task_cancel).
36668
+ *
36669
+ * Companions to the detach-task pattern in skills/long-task. The detach
36670
+ * script writes task-<id>.{pid,cmd,started,log,status} state files into
36671
+ * the agent's workspace; these tools read and act on those files so the
36672
+ * agent can answer "what's running?" and kill a task without needing
36673
+ * shell access.
36674
+ *
36675
+ * task-id allow-list mirrors detach-task.sh: 1–60 chars from
36676
+ * [a-zA-Z0-9._-], must not start with '.' or '-'. Diverging would let the
36677
+ * agent kill processes it never spawned via path traversal.
36678
+ */
36679
+ const TASK_FILE_PREFIX = "task-";
36680
+ const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
36681
+ const TASK_FILE_SUFFIXES = [
36682
+ ".pid",
36683
+ ".status",
36684
+ ".started",
36685
+ ".cmd",
36686
+ ".log"
36687
+ ];
36688
+ const ALLOWED_SIGNALS = new Set([
36689
+ "SIGTERM",
36690
+ "SIGINT",
36691
+ "SIGHUP",
36692
+ "SIGQUIT",
36693
+ "SIGKILL",
36694
+ "SIGUSR1",
36695
+ "SIGUSR2"
36696
+ ]);
36697
+ const TaskListSchema = Type.Object({ workdir: Type.Optional(Type.String()) });
36698
+ const TaskCancelSchema = Type.Object({
36699
+ taskId: Type.String(),
36700
+ workdir: Type.Optional(Type.String()),
36701
+ signal: Type.Optional(Type.String())
36702
+ });
36703
+ function normaliseSignal(input) {
36704
+ if (!input) return "SIGTERM";
36705
+ const upper = input.trim().toUpperCase();
36706
+ const candidate = upper.startsWith("SIG") ? upper : `SIG${upper}`;
36707
+ if (ALLOWED_SIGNALS.has(candidate)) return candidate;
36708
+ throw new Error(`Unsupported signal: ${input}. Allowed: TERM, INT, HUP, QUIT, KILL, USR1, USR2.`);
36709
+ }
36710
+ function isPidAlive(pid) {
36711
+ try {
36712
+ process.kill(pid, 0);
36713
+ return true;
36714
+ } catch (err) {
36715
+ if (err.code === "EPERM") return true;
36716
+ return false;
36717
+ }
36718
+ }
36719
+ async function safeRead(filePath) {
36720
+ try {
36721
+ return (await fs.promises.readFile(filePath, "utf8")).trim();
36722
+ } catch {
36723
+ return null;
36724
+ }
36725
+ }
36726
+ function resolveWorkdir(deps, override) {
36727
+ const raw = override?.trim();
36728
+ if (!raw) return deps.workspaceDir;
36729
+ if (!path.isAbsolute(raw)) throw new Error(`workdir must be an absolute path (got: ${raw})`);
36730
+ return raw;
36731
+ }
36732
+ async function readTaskInfo(workdir, id) {
36733
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
36734
+ const [pidText, status, started, cmd] = await Promise.all([
36735
+ safeRead(pidPath),
36736
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`)),
36737
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
36738
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`))
36739
+ ]);
36740
+ let pid = null;
36741
+ if (pidText) {
36742
+ const parsed = Number.parseInt(pidText, 10);
36743
+ if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
36744
+ }
36745
+ return {
36746
+ id,
36747
+ pid,
36748
+ alive: pid !== null && isPidAlive(pid),
36749
+ status: status ?? "missing",
36750
+ started,
36751
+ cmd,
36752
+ pidPath,
36753
+ statusPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`),
36754
+ logPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`)
36755
+ };
36756
+ }
36757
+ function createTaskListTool(deps) {
36758
+ return {
36759
+ label: "Task List",
36760
+ name: "task_list",
36761
+ description: `List long-running detached tasks in the agent's workspace.
36762
+
36763
+ Globs task-<id>.{pid,status,started,cmd,log} files, reads their state, and
36764
+ checks each PID's liveness. Use this to find the task-id of a running
36765
+ detach-task before calling task_cancel, or to answer "what's running right
36766
+ now?" without re-asking the user.
36767
+
36768
+ Returns: { workdir, tasks: [{ id, pid, alive, status, started, cmd, pidPath, statusPath, logPath }] }.
36769
+ Tasks whose .pid file is missing are still listed (alive=false, pid=null) so
36770
+ the agent can spot orphan state files.`,
36771
+ parameters: TaskListSchema,
36772
+ execute: async (_toolCallId, args) => {
36773
+ const override = readStringParam(args, "workdir");
36774
+ let workdir;
36775
+ try {
36776
+ workdir = resolveWorkdir(deps, override);
36777
+ } catch (err) {
36778
+ return jsonResult({
36779
+ workdir: override ?? deps.workspaceDir,
36780
+ tasks: [],
36781
+ error: err instanceof Error ? err.message : String(err)
36782
+ });
36783
+ }
36784
+ let entries;
36785
+ try {
36786
+ entries = await fs.promises.readdir(workdir);
36787
+ } catch (err) {
36788
+ if (err.code === "ENOENT") return jsonResult({
36789
+ workdir,
36790
+ tasks: []
36791
+ });
36792
+ return jsonResult({
36793
+ workdir,
36794
+ tasks: [],
36795
+ error: err instanceof Error ? err.message : String(err)
36796
+ });
36797
+ }
36798
+ const taskIds = /* @__PURE__ */ new Set();
36799
+ for (const entry of entries) {
36800
+ if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
36801
+ for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
36802
+ const id = entry.slice(5, -suffix.length);
36803
+ if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
36804
+ break;
36805
+ }
36806
+ }
36807
+ const tasks = await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id)));
36808
+ return jsonResult({
36809
+ workdir,
36810
+ tasks
36811
+ });
36812
+ }
36813
+ };
36814
+ }
36815
+ function createTaskCancelTool(deps) {
36816
+ return {
36817
+ label: "Task Cancel",
36818
+ name: "task_cancel",
36819
+ description: `Send a signal (default SIGTERM) to a running detached task.
36820
+
36821
+ Reads task-<id>.pid in the workdir, validates the recorded PID is alive,
36822
+ and sends the signal via process.kill. The task's TERM/INT/HUP trap will
36823
+ write an "aborted" status before exiting, so a follow-up task_list call
36824
+ sees the canonical end state.
36825
+
36826
+ task-id must match the same allow-list as detach-task.sh: 1–60 chars from
36827
+ [a-zA-Z0-9._-], no leading '.' or '-'. signal accepts TERM (default), INT,
36828
+ HUP, QUIT, KILL, USR1, USR2 — with or without the "SIG" prefix.
36829
+
36830
+ Returns: { ok, taskId, pid, sentSignal, alreadyDead?, error? }.`,
36831
+ parameters: TaskCancelSchema,
36832
+ execute: async (_toolCallId, args) => {
36833
+ const params = args;
36834
+ const taskId = readStringParam(params, "taskId", { required: true });
36835
+ if (!TASK_ID_RE.test(taskId)) return jsonResult({
36836
+ ok: false,
36837
+ taskId,
36838
+ error: "taskId must be 1–60 chars from [a-zA-Z0-9._-] and must not start with '.' or '-'."
36839
+ });
36840
+ const override = readStringParam(params, "workdir");
36841
+ let workdir;
36842
+ try {
36843
+ workdir = resolveWorkdir(deps, override);
36844
+ } catch (err) {
36845
+ return jsonResult({
36846
+ ok: false,
36847
+ taskId,
36848
+ error: err instanceof Error ? err.message : String(err)
36849
+ });
36850
+ }
36851
+ const signalRaw = readStringParam(params, "signal");
36852
+ let signal;
36853
+ try {
36854
+ signal = normaliseSignal(signalRaw);
36855
+ } catch (err) {
36856
+ return jsonResult({
36857
+ ok: false,
36858
+ taskId,
36859
+ error: err instanceof Error ? err.message : String(err)
36860
+ });
36861
+ }
36862
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${taskId}.pid`);
36863
+ let pidText;
36864
+ try {
36865
+ pidText = (await fs.promises.readFile(pidPath, "utf8")).trim();
36866
+ } catch (err) {
36867
+ if (err.code === "ENOENT") return jsonResult({
36868
+ ok: false,
36869
+ taskId,
36870
+ error: `no pid file at ${pidPath} — task is unknown or already cleaned up`
36871
+ });
36872
+ return jsonResult({
36873
+ ok: false,
36874
+ taskId,
36875
+ error: err instanceof Error ? err.message : String(err)
36876
+ });
36877
+ }
36878
+ const pid = Number.parseInt(pidText, 10);
36879
+ if (!Number.isFinite(pid) || pid <= 0) return jsonResult({
36880
+ ok: false,
36881
+ taskId,
36882
+ error: `pid file at ${pidPath} did not contain a positive integer`
36883
+ });
36884
+ if (!isPidAlive(pid)) return jsonResult({
36885
+ ok: false,
36886
+ taskId,
36887
+ pid,
36888
+ alreadyDead: true,
36889
+ error: "process is no longer running"
36890
+ });
36891
+ try {
36892
+ process.kill(pid, signal);
36893
+ } catch (err) {
36894
+ return jsonResult({
36895
+ ok: false,
36896
+ taskId,
36897
+ pid,
36898
+ sentSignal: signal,
36899
+ error: err instanceof Error ? err.message : String(err)
36900
+ });
36901
+ }
36902
+ return jsonResult({
36903
+ ok: true,
36904
+ taskId,
36905
+ pid,
36906
+ sentSignal: signal
36907
+ });
36908
+ }
36909
+ };
36910
+ }
36911
+
36664
36912
  //#endregion
36665
36913
  //#region src/agents/tools/tts-tool.ts
36666
36914
  const TtsToolSchema = Type.Object({
@@ -37961,6 +38209,8 @@ function createSymiTools(options) {
37961
38209
  config: options?.config
37962
38210
  }),
37963
38211
  createCronTool({ agentSessionKey: options?.agentSessionKey }),
38212
+ createTaskListTool({ workspaceDir }),
38213
+ createTaskCancelTool({ workspaceDir }),
37964
38214
  ...messageTool ? [messageTool] : [],
37965
38215
  createTtsTool({
37966
38216
  agentChannel: options?.agentChannel,
@@ -45761,6 +46011,7 @@ async function resolveDetachScriptPath(params) {
45761
46011
  return cachedScriptPath;
45762
46012
  }
45763
46013
  async function buildLongTaskPromptSuffix(params) {
46014
+ if (params.cronEnabled === false) return "";
45764
46015
  const scriptPath = await resolveDetachScriptPath(params);
45765
46016
  if (!scriptPath) return "";
45766
46017
  return "\n\n" + [
@@ -45780,7 +46031,8 @@ async function buildLongTaskPromptSuffix(params) {
45780
46031
  " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
45781
46032
  " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
45782
46033
  " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
45783
- " • Never leave stale monitors running after the task finishes."
46034
+ " • Never leave stale monitors running after the task finishes.",
46035
+ "- Inspecting and killing tasks: use `task_list` to enumerate detached tasks in the workspace (returns id/pid/alive/status/started for each), and `task_cancel` with `taskId` (and optional `signal`, default SIGTERM) to terminate a running task. Prefer these over raw `kill`/`ps` exec calls — they share the detach script's task-id allow-list and report alreadyDead cleanly."
45784
46036
  ].join("\n");
45785
46037
  }
45786
46038
 
@@ -46838,7 +47090,8 @@ async function runEmbeddedAttempt(params) {
46838
47090
  const longTaskSuffix = await buildLongTaskPromptSuffix({
46839
47091
  argv1: process.argv[1],
46840
47092
  cwd: process.cwd(),
46841
- moduleUrl: import.meta.url
47093
+ moduleUrl: import.meta.url,
47094
+ cronEnabled: process.env.SYMI_SKIP_CRON !== "1" && params.config?.cron?.enabled !== false
46842
47095
  });
46843
47096
  const emailCapabilitySuffix = buildEmailCapabilityPromptSuffix();
46844
47097
  const systemPromptText = createSystemPromptOverride(appendPrompt + longTaskSuffix + emailCapabilitySuffix + profilePromptSuffix)();
@@ -51285,7 +51538,7 @@ async function deliverSessionMaintenanceWarning(params) {
51285
51538
  return;
51286
51539
  }
51287
51540
  try {
51288
- const { deliverOutboundPayloads } = await import("./deliver-B_Q_nWJV.js").then((n) => n.n);
51541
+ const { deliverOutboundPayloads } = await import("./deliver-D0bWiRCg.js").then((n) => n.n);
51289
51542
  await deliverOutboundPayloads({
51290
51543
  cfg: params.cfg,
51291
51544
  channel,
@@ -54731,7 +54984,7 @@ async function describeStickerImage(params) {
54731
54984
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54732
54985
  try {
54733
54986
  const buffer = await fs$1.readFile(imagePath);
54734
- const { describeImageWithModel } = await import("./image-tzIqIuKx.js").then((n) => n.n);
54987
+ const { describeImageWithModel } = await import("./image-MNvheU8U.js").then((n) => n.n);
54735
54988
  return (await describeImageWithModel({
54736
54989
  buffer,
54737
54990
  fileName: "sticker.webp",
@@ -57480,7 +57733,7 @@ async function preflightDiscordMessage(params) {
57480
57733
  let preflightTranscript;
57481
57734
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
57482
57735
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
57483
- const { transcribeFirstAudio } = await import("./audio-preflight-NdNUAZ0y.js");
57736
+ const { transcribeFirstAudio } = await import("./audio-preflight-C6vpFnOG.js");
57484
57737
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
57485
57738
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
57486
57739
  ctx: {
@@ -61263,7 +61516,7 @@ function isVoiceChannelType(type) {
61263
61516
  function createDefaultDeps() {
61264
61517
  return {
61265
61518
  sendMessageWhatsApp: async (...args) => {
61266
- const { sendMessageWhatsApp } = await import("./web-CiYoJfrl.js");
61519
+ const { sendMessageWhatsApp } = await import("./web-Wk1ay1eQ.js");
61267
61520
  return await sendMessageWhatsApp(...args);
61268
61521
  },
61269
61522
  sendMessageTelegram: async (...args) => {
@@ -64168,7 +64421,7 @@ function createDiscordGatewayPlugin(params) {
64168
64421
  super(options);
64169
64422
  }
64170
64423
  createWebSocket(url) {
64171
- return new WebSocket$1(url, { agent });
64424
+ return new WebSocket(url, { agent });
64172
64425
  }
64173
64426
  }
64174
64427
  return new ProxyGatewayPlugin();
@@ -74386,7 +74639,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
74386
74639
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
74387
74640
  let preflightTranscript;
74388
74641
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
74389
- const { transcribeFirstAudio } = await import("./audio-preflight-NdNUAZ0y.js");
74642
+ const { transcribeFirstAudio } = await import("./audio-preflight-C6vpFnOG.js");
74390
74643
  preflightTranscript = await transcribeFirstAudio({
74391
74644
  ctx: {
74392
74645
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -76543,7 +76796,7 @@ function loadWebLoginQr() {
76543
76796
  return webLoginQrPromise;
76544
76797
  }
76545
76798
  function loadWebChannel() {
76546
- webChannelPromise ??= import("./web-CiYoJfrl.js");
76799
+ webChannelPromise ??= import("./web-Wk1ay1eQ.js");
76547
76800
  return webChannelPromise;
76548
76801
  }
76549
76802
  function loadWhatsAppActions() {
@@ -77853,6 +78106,8 @@ const SUBAGENT_TOOL_DENY_ALWAYS = [
77853
78106
  "whatsapp_login",
77854
78107
  "session_status",
77855
78108
  "cron",
78109
+ "task_list",
78110
+ "task_cancel",
77856
78111
  "memory_search",
77857
78112
  "memory_get",
77858
78113
  "memory_pin",