@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
@@ -1,73 +1,73 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-C_0eELjb.js";
3
- import { c as logoutWeb, f as readWebSelfId, g as webAuthExists, o as getWebAuthAgeMs, r as resolveWhatsAppAccount, s as logWebSelfId } from "./accounts-Ddm33hQm.js";
3
+ import { c as logoutWeb, f as readWebSelfId, g as webAuthExists, o as getWebAuthAgeMs, r as resolveWhatsAppAccount, s as logWebSelfId } from "./accounts-D9zGZU5t.js";
4
4
  import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
5
5
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-D9X2phUj.js";
6
- import { A as resolveSlackBotToken, C as resolveTelegramToken, D as resolveSlackAccount, F as resolveDiscordAccount, I as normalizeDiscordToken, N as listEnabledDiscordAccounts, S as resolveTelegramAccount, _ as normalizeWhatsAppTarget, b as listTelegramAccountIds, g as isWhatsAppGroupJid, h as resolveSlackChannelId, j as createDiscordActionGate, k as resolveSlackAppToken, m as parseSlackTarget, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as createTelegramActionGate, y as listEnabledTelegramAccounts } from "./plugins-BNByVCIH.js";
6
+ import { A as resolveSlackBotToken, C as resolveTelegramToken, D as resolveSlackAccount, F as resolveDiscordAccount, I as normalizeDiscordToken, N as listEnabledDiscordAccounts, S as resolveTelegramAccount, _ as normalizeWhatsAppTarget, b as listTelegramAccountIds, g as isWhatsAppGroupJid, h as resolveSlackChannelId, j as createDiscordActionGate, k as resolveSlackAppToken, m as parseSlackTarget, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as createTelegramActionGate, y as listEnabledTelegramAccounts } from "./plugins-BbAvhC25.js";
7
7
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYuW7LE.js";
8
8
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
9
- import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry-D0xTnUWt.js";
10
- import { n as retryAsync } from "./retry-CwQ_iIj8.js";
11
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Djq5IPRa.js";
12
- import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-Ckum15iC.js";
13
- import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
14
- import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-GKSevep4.js";
15
- import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-Bbs4XGPG.js";
16
- import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-CYYpcO9W.js";
17
- 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-BRx4JDK0.js";
9
+ import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
10
+ import { n as retryAsync } from "./retry-ilSJqnz9.js";
11
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-ZhAe1nXO.js";
12
+ import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-BzupW6LN.js";
13
+ import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
14
+ import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
15
+ import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-CtVwtb6y.js";
16
+ import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
17
+ 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-hy3Bn-r9.js";
18
18
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Bv8oZiTO.js";
19
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-DoC1xtDu.js";
19
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-Ji7f0gqq.js";
20
20
  import { n as normalizePollInput } from "./polls-3WJMd-G-.js";
21
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-BlQR__MN.js";
21
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-Bnp6LXEx.js";
22
22
  import { a as isBlockedHostnameOrIp, c as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DKZ8eBrk.js";
23
- import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BHLNSI8U.js";
24
- import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-BJ6BHE5b.js";
25
- import { a as chunkText, c as resolveChunkMode, d as findFenceSpanAt, f as isSafeFenceBreak, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, p as parseFenceSpans, r as chunkMarkdownText, t as chunkByNewline } from "./chunk-Dw2XBYXv.js";
26
- 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-COTAJzHd.js";
23
+ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
24
+ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-Fb3qpcis.js";
25
+ import { a as chunkText, c as resolveChunkMode, d as findFenceSpanAt, f as isSafeFenceBreak, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, p as parseFenceSpans, r as chunkMarkdownText, t as chunkByNewline } from "./chunk-jvk9axTQ.js";
26
+ 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-BdI5Ra9S.js";
27
27
  import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
28
- import { n as resolveMarkdownTableMode } from "./markdown-tables-BoYFajMu.js";
29
- import { t as convertMarkdownTables } from "./tables-DNwXwNFa.js";
30
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-XSuwT1PC.js";
31
- import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-HJ2sfZDV.js";
32
- import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Paro1BjP.js";
33
- import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-fNRDT21N.js";
34
- import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-CKXzQuXo.js";
35
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BuxCHv_O.js";
36
- import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-uxfMZW4p.js";
37
- import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-bC3UVmVH.js";
38
- import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-yzJVuTIW.js";
39
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BfsaS1F9.js";
40
- import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-CEqfiEs0.js";
41
- import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-CXqf7WTe.js";
42
- import { r as resolveIMessageAccount } from "./accounts-s-AdhXVR.js";
43
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BtaOa4z_.js";
44
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-B8Y2t-RH.js";
45
- import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-dd3G9Hfi.js";
28
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
29
+ import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
30
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-jsofmTfJ.js";
31
+ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
32
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-B7YyMnIi.js";
33
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-BP5pSPaZ.js";
34
+ import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-DLO_yV5_.js";
35
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BhifC1J_.js";
36
+ import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
37
+ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
38
+ import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-DEfqC_kJ.js";
39
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-C9DbB-Kp.js";
40
+ import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-D9kN9org.js";
41
+ import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
42
+ import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
43
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
44
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CKgFosI5.js";
45
+ import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-BL7ZRhGv.js";
46
46
  import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
47
47
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
48
48
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
49
- 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-BR07buTm.js";
50
- import { i as saveMediaBuffer, r as getMediaDir } from "./store-BdrNabcU.js";
49
+ import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-_oc91gNi.js";
50
+ import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
52
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-CCmNHDV0.js";
52
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-DFyINnvE.js";
53
53
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
54
54
  import { c as normalizeExtraMemoryPaths, m as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Qi-tyvHh.js";
55
55
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
56
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-B9GigLWj.js";
57
- import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BhW_oGNt.js";
58
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BtO-7fHs.js";
56
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-BPm5oefC.js";
57
+ import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BuYpmEx-.js";
58
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-CGhw9mO3.js";
59
59
  import { t as makeProxyFetch } from "./proxy-D27OUbrW.js";
60
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CWfcnhza.js";
61
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CQ4szNhV.js";
62
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CB2bV0Jd.js";
63
- import { t as getActiveWebListener } from "./active-listener-DYjn3fML.js";
60
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CHQ7BTlU.js";
61
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BR2TPTVW.js";
62
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DiyK6bgV.js";
63
+ import { t as getActiveWebListener } from "./active-listener-CJuvR4C2.js";
64
64
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CP722fTK.js";
65
65
  import { createRequire } from "node:module";
66
66
  import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
67
67
  import * as path$1 from "node:path";
68
68
  import path from "node:path";
69
69
  import os, { homedir } from "node:os";
70
- import JSON5 from "json5";
70
+ import json5 from "json5";
71
71
  import { ApplicationCommandOptionType, ButtonStyle, ChannelType, PermissionFlagsBits, Routes, StickerFormatType } from "discord-api-types/v10";
72
72
  import { Button, ChannelSelectMenu, ChannelType as ChannelType$1, Client, Command, CommandWithSubcommands, Container, MentionableSelectMenu, MessageCreateListener, MessageReactionAddListener, MessageReactionRemoveListener, MessageType, Modal, PresenceUpdateListener, ReadyListener, RoleSelectMenu, Row, Separator, StringSelectMenu, TextDisplay, UserSelectMenu, serializePayload } from "@buape/carbon";
73
73
  import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
@@ -7811,7 +7811,7 @@ async function createModelSelectionState(params) {
7811
7811
  }
7812
7812
  }
7813
7813
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
7814
- const { ensureAuthProfileStore } = await import("./model-selection-Bbs4XGPG.js").then((n) => n.O);
7814
+ const { ensureAuthProfileStore } = await import("./model-selection-CtVwtb6y.js").then((n) => n.O);
7815
7815
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
7816
7816
  const providerKey = normalizeProviderId(provider);
7817
7817
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -11563,7 +11563,7 @@ async function getMemorySearchManager(params) {
11563
11563
  if (cached) return { manager: cached };
11564
11564
  }
11565
11565
  try {
11566
- const { QmdMemoryManager } = await import("./qmd-manager-wIr8qz2n.js");
11566
+ const { QmdMemoryManager } = await import("./qmd-manager-BlUikj9s.js");
11567
11567
  const primary = await QmdMemoryManager.create({
11568
11568
  cfg: params.cfg,
11569
11569
  agentId: params.agentId,
@@ -11575,7 +11575,7 @@ async function getMemorySearchManager(params) {
11575
11575
  const wrapper = new FallbackMemoryManager({
11576
11576
  primary,
11577
11577
  fallbackFactory: async () => {
11578
- const { MemoryIndexManager } = await import("./manager-B9GigLWj.js").then((n) => n.n);
11578
+ const { MemoryIndexManager } = await import("./manager-BPm5oefC.js").then((n) => n.n);
11579
11579
  return await MemoryIndexManager.get(params);
11580
11580
  }
11581
11581
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -11588,7 +11588,7 @@ async function getMemorySearchManager(params) {
11588
11588
  }
11589
11589
  }
11590
11590
  try {
11591
- const { MemoryIndexManager } = await import("./manager-B9GigLWj.js").then((n) => n.n);
11591
+ const { MemoryIndexManager } = await import("./manager-BPm5oefC.js").then((n) => n.n);
11592
11592
  return { manager: await MemoryIndexManager.get(params) };
11593
11593
  } catch (err) {
11594
11594
  return {
@@ -12733,7 +12733,7 @@ function normalizeSessionKey(value) {
12733
12733
  function readSessionStore(storePath) {
12734
12734
  try {
12735
12735
  const raw = fs.readFileSync(storePath, "utf-8");
12736
- const parsed = JSON5.parse(raw);
12736
+ const parsed = json5.parse(raw);
12737
12737
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
12738
12738
  } catch {}
12739
12739
  return {};
@@ -15590,7 +15590,7 @@ async function routeReply(params) {
15590
15590
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
15591
15591
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
15592
15592
  try {
15593
- const { deliverOutboundPayloads } = await import("./deliver-B8Y2t-RH.js").then((n) => n.n);
15593
+ const { deliverOutboundPayloads } = await import("./deliver-CKgFosI5.js").then((n) => n.n);
15594
15594
  return {
15595
15595
  ok: true,
15596
15596
  messageId: (await deliverOutboundPayloads({
@@ -18064,7 +18064,7 @@ async function describeStickerImage(params) {
18064
18064
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
18065
18065
  try {
18066
18066
  const buffer = await fs$1.readFile(imagePath);
18067
- const { describeImageWithModel } = await import("./image-CCmNHDV0.js").then((n) => n.n);
18067
+ const { describeImageWithModel } = await import("./image-DFyINnvE.js").then((n) => n.n);
18068
18068
  return (await describeImageWithModel({
18069
18069
  buffer,
18070
18070
  fileName: "sticker.webp",
@@ -18475,7 +18475,7 @@ function createWhatsAppLoginTool() {
18475
18475
  force: Type.Optional(Type.Boolean())
18476
18476
  }),
18477
18477
  execute: async (_toolCallId, args) => {
18478
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BOUmLSY3.js");
18478
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-lMl_OqDj.js");
18479
18479
  if ((args?.action ?? "start") === "wait") {
18480
18480
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
18481
18481
  return {
@@ -20630,7 +20630,7 @@ async function preflightDiscordMessage(params) {
20630
20630
  let preflightTranscript;
20631
20631
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
20632
20632
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
20633
- const { transcribeFirstAudio } = await import("./audio-preflight-CiVw8470.js");
20633
+ const { transcribeFirstAudio } = await import("./audio-preflight-DucGa8w7.js");
20634
20634
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
20635
20635
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
20636
20636
  ctx: {
@@ -30271,7 +30271,7 @@ async function recordLoopOutcome(args) {
30271
30271
  if (!args.ctx?.sessionKey) return;
30272
30272
  try {
30273
30273
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Wd5tNeQG.js").then((n) => n.n);
30274
- const { recordToolCallOutcome } = await import("./tool-loop-detection-gmtzSlNZ.js");
30274
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-DseOlBug.js");
30275
30275
  recordToolCallOutcome(getDiagnosticSessionState({
30276
30276
  sessionKey: args.ctx.sessionKey,
30277
30277
  sessionId: args.ctx?.agentId
@@ -30292,8 +30292,8 @@ async function runBeforeToolCallHook(args) {
30292
30292
  const params = args.params;
30293
30293
  if (args.ctx?.sessionKey) {
30294
30294
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Wd5tNeQG.js").then((n) => n.n);
30295
- const { logToolLoopAction } = await import("./diagnostic-BR07buTm.js").then((n) => n.n);
30296
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-gmtzSlNZ.js");
30295
+ const { logToolLoopAction } = await import("./diagnostic-_oc91gNi.js").then((n) => n.n);
30296
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-DseOlBug.js");
30297
30297
  const sessionState = getDiagnosticSessionState({
30298
30298
  sessionKey: args.ctx.sessionKey,
30299
30299
  sessionId: args.ctx?.agentId
@@ -33902,6 +33902,7 @@ async function resolveDetachScriptPath(params) {
33902
33902
  return cachedScriptPath;
33903
33903
  }
33904
33904
  async function buildLongTaskPromptSuffix(params) {
33905
+ if (params.cronEnabled === false) return "";
33905
33906
  const scriptPath = await resolveDetachScriptPath(params);
33906
33907
  if (!scriptPath) return "";
33907
33908
  return "\n\n" + [
@@ -33921,7 +33922,8 @@ async function buildLongTaskPromptSuffix(params) {
33921
33922
  " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
33922
33923
  " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
33923
33924
  " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
33924
- " • Never leave stale monitors running after the task finishes."
33925
+ " • Never leave stale monitors running after the task finishes.",
33926
+ "- 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."
33925
33927
  ].join("\n");
33926
33928
  }
33927
33929
 
@@ -34991,7 +34993,8 @@ async function runEmbeddedAttempt(params) {
34991
34993
  const longTaskSuffix = await buildLongTaskPromptSuffix({
34992
34994
  argv1: process.argv[1],
34993
34995
  cwd: process.cwd(),
34994
- moduleUrl: import.meta.url
34996
+ moduleUrl: import.meta.url,
34997
+ cronEnabled: process.env.SYMI_SKIP_CRON !== "1" && params.config?.cron?.enabled !== false
34995
34998
  });
34996
34999
  const emailCapabilitySuffix = buildEmailCapabilityPromptSuffix();
34997
35000
  const systemPromptText = createSystemPromptOverride(appendPrompt + longTaskSuffix + emailCapabilitySuffix + profilePromptSuffix)();
@@ -36835,27 +36838,27 @@ async function runAgentTurn(params) {
36835
36838
  function createDefaultDeps() {
36836
36839
  return {
36837
36840
  sendMessageWhatsApp: async (...args) => {
36838
- const { sendMessageWhatsApp } = await import("./web-CmKqZEsX.js");
36841
+ const { sendMessageWhatsApp } = await import("./web-D0DsmFvw.js");
36839
36842
  return await sendMessageWhatsApp(...args);
36840
36843
  },
36841
36844
  sendMessageTelegram: async (...args) => {
36842
- const { sendMessageTelegram } = await import("./send-CKXzQuXo.js").then((n) => n.l);
36845
+ const { sendMessageTelegram } = await import("./send-DLO_yV5_.js").then((n) => n.l);
36843
36846
  return await sendMessageTelegram(...args);
36844
36847
  },
36845
36848
  sendMessageDiscord: async (...args) => {
36846
- const { sendMessageDiscord } = await import("./send-Djq5IPRa.js").then((n) => n.t);
36849
+ const { sendMessageDiscord } = await import("./send-ZhAe1nXO.js").then((n) => n.t);
36847
36850
  return await sendMessageDiscord(...args);
36848
36851
  },
36849
36852
  sendMessageSlack: async (...args) => {
36850
- const { sendMessageSlack } = await import("./send-fNRDT21N.js").then((n) => n.n);
36853
+ const { sendMessageSlack } = await import("./send-BP5pSPaZ.js").then((n) => n.n);
36851
36854
  return await sendMessageSlack(...args);
36852
36855
  },
36853
36856
  sendMessageSignal: async (...args) => {
36854
- const { sendMessageSignal } = await import("./send-BtO-7fHs.js").then((n) => n.i);
36857
+ const { sendMessageSignal } = await import("./send-CGhw9mO3.js").then((n) => n.i);
36855
36858
  return await sendMessageSignal(...args);
36856
36859
  },
36857
36860
  sendMessageIMessage: async (...args) => {
36858
- const { sendMessageIMessage } = await import("./send-XSuwT1PC.js").then((n) => n.n);
36861
+ const { sendMessageIMessage } = await import("./send-jsofmTfJ.js").then((n) => n.n);
36859
36862
  return await sendMessageIMessage(...args);
36860
36863
  }
36861
36864
  };
@@ -47007,7 +47010,7 @@ function readSlackExternalArgMenuToken(raw) {
47007
47010
  }
47008
47011
  let commandsRegistry;
47009
47012
  async function getCommandsRegistry() {
47010
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BhW_oGNt.js").then((n) => n.n);
47013
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BuYpmEx-.js").then((n) => n.n);
47011
47014
  return commandsRegistry;
47012
47015
  }
47013
47016
  function encodeSlackCommandArgValue(parts) {
@@ -47349,11 +47352,11 @@ async function registerSlackMonitorSlashCommands(params) {
47349
47352
  const channelName = channelInfo?.name;
47350
47353
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
47351
47354
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
47352
- import("./resolve-route-CWfcnhza.js").then((n) => n.r),
47355
+ import("./resolve-route-CHQ7BTlU.js").then((n) => n.r),
47353
47356
  import("./inbound-context-D5EzMeL_.js").then((n) => n.n),
47354
47357
  Promise.resolve().then(() => provider_dispatcher_exports)
47355
47358
  ]);
47356
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-yNSj43Jt.js").then((n) => n.t), import("./reply-prefix-uxfMZW4p.js").then((n) => n.r)]);
47359
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-yNSj43Jt.js").then((n) => n.t), import("./reply-prefix-BHuV5t70.js").then((n) => n.r)]);
47357
47360
  const route = resolveAgentRoute({
47358
47361
  cfg,
47359
47362
  channel: "slack",
@@ -47410,9 +47413,9 @@ async function registerSlackMonitorSlashCommands(params) {
47410
47413
  });
47411
47414
  const deliverSlashPayloads = async (replies) => {
47412
47415
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
47413
- import("./replies-CQ4szNhV.js").then((n) => n.r),
47414
- import("./chunk-Dw2XBYXv.js").then((n) => n.s),
47415
- import("./markdown-tables-BoYFajMu.js").then((n) => n.t)
47416
+ import("./replies-BR2TPTVW.js").then((n) => n.r),
47417
+ import("./chunk-jvk9axTQ.js").then((n) => n.s),
47418
+ import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
47416
47419
  ]);
47417
47420
  await deliverSlackSlashReplies({
47418
47421
  replies,
@@ -47465,7 +47468,7 @@ async function registerSlackMonitorSlashCommands(params) {
47465
47468
  let nativeCommands = [];
47466
47469
  if (nativeEnabled) {
47467
47470
  reg = await getCommandsRegistry();
47468
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-yzJVuTIW.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
47471
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DEfqC_kJ.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
47469
47472
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
47470
47473
  skillCommands,
47471
47474
  provider: "slack"
@@ -52116,7 +52119,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
52116
52119
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
52117
52120
  let preflightTranscript;
52118
52121
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
52119
- const { transcribeFirstAudio } = await import("./audio-preflight-CiVw8470.js");
52122
+ const { transcribeFirstAudio } = await import("./audio-preflight-DucGa8w7.js");
52120
52123
  preflightTranscript = await transcribeFirstAudio({
52121
52124
  ctx: {
52122
52125
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -54261,23 +54264,23 @@ let webLoginQrPromise = null;
54261
54264
  let webChannelPromise = null;
54262
54265
  let whatsappActionsPromise = null;
54263
54266
  function loadWebOutbound() {
54264
- webOutboundPromise ??= import("./outbound-BVhSNFy0.js").then((n) => n.t);
54267
+ webOutboundPromise ??= import("./outbound-DW3cqlQW.js").then((n) => n.t);
54265
54268
  return webOutboundPromise;
54266
54269
  }
54267
54270
  function loadWebLogin() {
54268
- webLoginPromise ??= import("./login-g_rQAcuM.js").then((n) => n.n);
54271
+ webLoginPromise ??= import("./login-K1YB_7-t.js").then((n) => n.n);
54269
54272
  return webLoginPromise;
54270
54273
  }
54271
54274
  function loadWebLoginQr() {
54272
- webLoginQrPromise ??= import("./login-qr-BOUmLSY3.js");
54275
+ webLoginQrPromise ??= import("./login-qr-lMl_OqDj.js");
54273
54276
  return webLoginQrPromise;
54274
54277
  }
54275
54278
  function loadWebChannel() {
54276
- webChannelPromise ??= import("./web-CmKqZEsX.js");
54279
+ webChannelPromise ??= import("./web-D0DsmFvw.js");
54277
54280
  return webChannelPromise;
54278
54281
  }
54279
54282
  function loadWhatsAppActions() {
54280
- whatsappActionsPromise ??= import("./whatsapp-actions-B_1l8JMU.js");
54283
+ whatsappActionsPromise ??= import("./whatsapp-actions-eTefsWhW.js");
54281
54284
  return whatsappActionsPromise;
54282
54285
  }
54283
54286
  function createPluginRuntime() {
@@ -57540,7 +57543,7 @@ async function resolveSandboxWorkdir(params) {
57540
57543
  };
57541
57544
  }
57542
57545
  }
57543
- function resolveWorkdir(workdir, warnings) {
57546
+ function resolveWorkdir$1(workdir, warnings) {
57544
57547
  const fallback = safeCwd() ?? homedir();
57545
57548
  try {
57546
57549
  if (statSync(workdir).isDirectory()) return workdir;
@@ -58682,7 +58685,7 @@ function createExecTool(defaults) {
58682
58685
  });
58683
58686
  workdir = resolved.hostWorkdir;
58684
58687
  containerWorkdir = resolved.containerWorkdir;
58685
- } else workdir = resolveWorkdir(rawWorkdir, warnings);
58688
+ } else workdir = resolveWorkdir$1(rawWorkdir, warnings);
58686
58689
  const baseEnv = coerceEnv(process.env);
58687
58690
  if (host !== "sandbox" && params.env) validateHostEnv(params.env);
58688
58691
  const mergedEnv = params.env ? {
@@ -59596,6 +59599,8 @@ const SUBAGENT_TOOL_DENY_ALWAYS = [
59596
59599
  "whatsapp_login",
59597
59600
  "session_status",
59598
59601
  "cron",
59602
+ "task_list",
59603
+ "task_cancel",
59599
59604
  "memory_search",
59600
59605
  "memory_get",
59601
59606
  "memory_pin",
@@ -68665,6 +68670,254 @@ function createSubagentsTool(opts) {
68665
68670
  };
68666
68671
  }
68667
68672
 
68673
+ //#endregion
68674
+ //#region src/agents/tools/task-tool.ts
68675
+ /**
68676
+ * Long-task management tools (task_list, task_cancel).
68677
+ *
68678
+ * Companions to the detach-task pattern in skills/long-task. The detach
68679
+ * script writes task-<id>.{pid,cmd,started,log,status} state files into
68680
+ * the agent's workspace; these tools read and act on those files so the
68681
+ * agent can answer "what's running?" and kill a task without needing
68682
+ * shell access.
68683
+ *
68684
+ * task-id allow-list mirrors detach-task.sh: 1–60 chars from
68685
+ * [a-zA-Z0-9._-], must not start with '.' or '-'. Diverging would let the
68686
+ * agent kill processes it never spawned via path traversal.
68687
+ */
68688
+ const TASK_FILE_PREFIX = "task-";
68689
+ const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
68690
+ const TASK_FILE_SUFFIXES = [
68691
+ ".pid",
68692
+ ".status",
68693
+ ".started",
68694
+ ".cmd",
68695
+ ".log"
68696
+ ];
68697
+ const ALLOWED_SIGNALS = new Set([
68698
+ "SIGTERM",
68699
+ "SIGINT",
68700
+ "SIGHUP",
68701
+ "SIGQUIT",
68702
+ "SIGKILL",
68703
+ "SIGUSR1",
68704
+ "SIGUSR2"
68705
+ ]);
68706
+ const TaskListSchema = Type.Object({ workdir: Type.Optional(Type.String()) });
68707
+ const TaskCancelSchema = Type.Object({
68708
+ taskId: Type.String(),
68709
+ workdir: Type.Optional(Type.String()),
68710
+ signal: Type.Optional(Type.String())
68711
+ });
68712
+ function normaliseSignal(input) {
68713
+ if (!input) return "SIGTERM";
68714
+ const upper = input.trim().toUpperCase();
68715
+ const candidate = upper.startsWith("SIG") ? upper : `SIG${upper}`;
68716
+ if (ALLOWED_SIGNALS.has(candidate)) return candidate;
68717
+ throw new Error(`Unsupported signal: ${input}. Allowed: TERM, INT, HUP, QUIT, KILL, USR1, USR2.`);
68718
+ }
68719
+ function isPidAlive(pid) {
68720
+ try {
68721
+ process.kill(pid, 0);
68722
+ return true;
68723
+ } catch (err) {
68724
+ if (err.code === "EPERM") return true;
68725
+ return false;
68726
+ }
68727
+ }
68728
+ async function safeRead(filePath) {
68729
+ try {
68730
+ return (await fs.promises.readFile(filePath, "utf8")).trim();
68731
+ } catch {
68732
+ return null;
68733
+ }
68734
+ }
68735
+ function resolveWorkdir(deps, override) {
68736
+ const raw = override?.trim();
68737
+ if (!raw) return deps.workspaceDir;
68738
+ if (!path.isAbsolute(raw)) throw new Error(`workdir must be an absolute path (got: ${raw})`);
68739
+ return raw;
68740
+ }
68741
+ async function readTaskInfo(workdir, id) {
68742
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
68743
+ const [pidText, status, started, cmd] = await Promise.all([
68744
+ safeRead(pidPath),
68745
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`)),
68746
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
68747
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`))
68748
+ ]);
68749
+ let pid = null;
68750
+ if (pidText) {
68751
+ const parsed = Number.parseInt(pidText, 10);
68752
+ if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
68753
+ }
68754
+ return {
68755
+ id,
68756
+ pid,
68757
+ alive: pid !== null && isPidAlive(pid),
68758
+ status: status ?? "missing",
68759
+ started,
68760
+ cmd,
68761
+ pidPath,
68762
+ statusPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`),
68763
+ logPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`)
68764
+ };
68765
+ }
68766
+ function createTaskListTool(deps) {
68767
+ return {
68768
+ label: "Task List",
68769
+ name: "task_list",
68770
+ description: `List long-running detached tasks in the agent's workspace.
68771
+
68772
+ Globs task-<id>.{pid,status,started,cmd,log} files, reads their state, and
68773
+ checks each PID's liveness. Use this to find the task-id of a running
68774
+ detach-task before calling task_cancel, or to answer "what's running right
68775
+ now?" without re-asking the user.
68776
+
68777
+ Returns: { workdir, tasks: [{ id, pid, alive, status, started, cmd, pidPath, statusPath, logPath }] }.
68778
+ Tasks whose .pid file is missing are still listed (alive=false, pid=null) so
68779
+ the agent can spot orphan state files.`,
68780
+ parameters: TaskListSchema,
68781
+ execute: async (_toolCallId, args) => {
68782
+ const override = readStringParam(args, "workdir");
68783
+ let workdir;
68784
+ try {
68785
+ workdir = resolveWorkdir(deps, override);
68786
+ } catch (err) {
68787
+ return jsonResult({
68788
+ workdir: override ?? deps.workspaceDir,
68789
+ tasks: [],
68790
+ error: err instanceof Error ? err.message : String(err)
68791
+ });
68792
+ }
68793
+ let entries;
68794
+ try {
68795
+ entries = await fs.promises.readdir(workdir);
68796
+ } catch (err) {
68797
+ if (err.code === "ENOENT") return jsonResult({
68798
+ workdir,
68799
+ tasks: []
68800
+ });
68801
+ return jsonResult({
68802
+ workdir,
68803
+ tasks: [],
68804
+ error: err instanceof Error ? err.message : String(err)
68805
+ });
68806
+ }
68807
+ const taskIds = /* @__PURE__ */ new Set();
68808
+ for (const entry of entries) {
68809
+ if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
68810
+ for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
68811
+ const id = entry.slice(5, -suffix.length);
68812
+ if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
68813
+ break;
68814
+ }
68815
+ }
68816
+ const tasks = await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id)));
68817
+ return jsonResult({
68818
+ workdir,
68819
+ tasks
68820
+ });
68821
+ }
68822
+ };
68823
+ }
68824
+ function createTaskCancelTool(deps) {
68825
+ return {
68826
+ label: "Task Cancel",
68827
+ name: "task_cancel",
68828
+ description: `Send a signal (default SIGTERM) to a running detached task.
68829
+
68830
+ Reads task-<id>.pid in the workdir, validates the recorded PID is alive,
68831
+ and sends the signal via process.kill. The task's TERM/INT/HUP trap will
68832
+ write an "aborted" status before exiting, so a follow-up task_list call
68833
+ sees the canonical end state.
68834
+
68835
+ task-id must match the same allow-list as detach-task.sh: 1–60 chars from
68836
+ [a-zA-Z0-9._-], no leading '.' or '-'. signal accepts TERM (default), INT,
68837
+ HUP, QUIT, KILL, USR1, USR2 — with or without the "SIG" prefix.
68838
+
68839
+ Returns: { ok, taskId, pid, sentSignal, alreadyDead?, error? }.`,
68840
+ parameters: TaskCancelSchema,
68841
+ execute: async (_toolCallId, args) => {
68842
+ const params = args;
68843
+ const taskId = readStringParam(params, "taskId", { required: true });
68844
+ if (!TASK_ID_RE.test(taskId)) return jsonResult({
68845
+ ok: false,
68846
+ taskId,
68847
+ error: "taskId must be 1–60 chars from [a-zA-Z0-9._-] and must not start with '.' or '-'."
68848
+ });
68849
+ const override = readStringParam(params, "workdir");
68850
+ let workdir;
68851
+ try {
68852
+ workdir = resolveWorkdir(deps, override);
68853
+ } catch (err) {
68854
+ return jsonResult({
68855
+ ok: false,
68856
+ taskId,
68857
+ error: err instanceof Error ? err.message : String(err)
68858
+ });
68859
+ }
68860
+ const signalRaw = readStringParam(params, "signal");
68861
+ let signal;
68862
+ try {
68863
+ signal = normaliseSignal(signalRaw);
68864
+ } catch (err) {
68865
+ return jsonResult({
68866
+ ok: false,
68867
+ taskId,
68868
+ error: err instanceof Error ? err.message : String(err)
68869
+ });
68870
+ }
68871
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${taskId}.pid`);
68872
+ let pidText;
68873
+ try {
68874
+ pidText = (await fs.promises.readFile(pidPath, "utf8")).trim();
68875
+ } catch (err) {
68876
+ if (err.code === "ENOENT") return jsonResult({
68877
+ ok: false,
68878
+ taskId,
68879
+ error: `no pid file at ${pidPath} — task is unknown or already cleaned up`
68880
+ });
68881
+ return jsonResult({
68882
+ ok: false,
68883
+ taskId,
68884
+ error: err instanceof Error ? err.message : String(err)
68885
+ });
68886
+ }
68887
+ const pid = Number.parseInt(pidText, 10);
68888
+ if (!Number.isFinite(pid) || pid <= 0) return jsonResult({
68889
+ ok: false,
68890
+ taskId,
68891
+ error: `pid file at ${pidPath} did not contain a positive integer`
68892
+ });
68893
+ if (!isPidAlive(pid)) return jsonResult({
68894
+ ok: false,
68895
+ taskId,
68896
+ pid,
68897
+ alreadyDead: true,
68898
+ error: "process is no longer running"
68899
+ });
68900
+ try {
68901
+ process.kill(pid, signal);
68902
+ } catch (err) {
68903
+ return jsonResult({
68904
+ ok: false,
68905
+ taskId,
68906
+ pid,
68907
+ sentSignal: signal,
68908
+ error: err instanceof Error ? err.message : String(err)
68909
+ });
68910
+ }
68911
+ return jsonResult({
68912
+ ok: true,
68913
+ taskId,
68914
+ pid,
68915
+ sentSignal: signal
68916
+ });
68917
+ }
68918
+ };
68919
+ }
68920
+
68668
68921
  //#endregion
68669
68922
  //#region src/agents/tools/tts-tool.ts
68670
68923
  const TtsToolSchema = Type.Object({
@@ -69965,6 +70218,8 @@ function createSymiTools(options) {
69965
70218
  config: options?.config
69966
70219
  }),
69967
70220
  createCronTool({ agentSessionKey: options?.agentSessionKey }),
70221
+ createTaskListTool({ workspaceDir }),
70222
+ createTaskCancelTool({ workspaceDir }),
69968
70223
  ...messageTool ? [messageTool] : [],
69969
70224
  createTtsTool({
69970
70225
  agentChannel: options?.agentChannel,
@@ -78756,7 +79011,7 @@ async function deliverSessionMaintenanceWarning(params) {
78756
79011
  return;
78757
79012
  }
78758
79013
  try {
78759
- const { deliverOutboundPayloads } = await import("./deliver-B8Y2t-RH.js").then((n) => n.n);
79014
+ const { deliverOutboundPayloads } = await import("./deliver-CKgFosI5.js").then((n) => n.n);
78760
79015
  await deliverOutboundPayloads({
78761
79016
  cfg: params.cfg,
78762
79017
  channel,