@symerian/symi 2.0.16 → 2.0.18

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 (357) hide show
  1. package/dist/{acp-cli-CSX62tsS.js → acp-cli-Cp81ShIC.js} +3 -3
  2. package/dist/{acp-cli-CrfY9UHo.js → acp-cli-h36Zuriy.js} +3 -3
  3. package/dist/{agents-CP6mOf0j.js → agents-B2jtcp_Y.js} +8 -8
  4. package/dist/{agents.config-CFps8Krs.js → agents.config-ButbIjGA.js} +1 -1
  5. package/dist/{agents.config-Da5XukaM.js → agents.config-DTJxgmnd.js} +1 -1
  6. package/dist/{api-key-rotation-BukD0zzl.js → api-key-rotation-De1ivBc0.js} +1 -1
  7. package/dist/{audio-preflight-DRQD_nt1.js → audio-preflight-B_VLZd_F.js} +7 -7
  8. package/dist/{audio-preflight-CQ5_RYEe.js → audio-preflight-CSix46JB.js} +13 -13
  9. package/dist/{audio-preflight-DSeaWZZW.js → audio-preflight-DGpde3Ae.js} +13 -13
  10. package/dist/{audio-preflight-Cq4C-m27.js → audio-preflight-k4jOy8Bo.js} +7 -7
  11. package/dist/{audit-Do2bVss3.js → audit-BbhuQjTl.js} +7 -7
  12. package/dist/{audit-x_SzU263.js → audit-BmuBsZal.js} +7 -7
  13. package/dist/{auth-choice-CZ9ugRNS.js → auth-choice-BMHb00f1.js} +7 -7
  14. package/dist/{auth-choice-za414gQg.js → auth-choice-Du7VUK1p.js} +7 -7
  15. package/dist/{auth-profiles-BD22fK4p.js → auth-profiles-Cs3GPB03.js} +6 -2
  16. package/dist/{auth-token-CNnt7guc.js → auth-token-CbDExtp_.js} +1 -1
  17. package/dist/{auth-token-BrlnZiCq.js → auth-token-DdkoxDu3.js} +1 -1
  18. package/dist/{banner-DHgxDWv_.js → banner-BoFDxo1X.js} +1 -1
  19. package/dist/{browser-cli-BydQRa6Z.js → browser-cli-Bu0BnRct.js} +4 -4
  20. package/dist/{browser-cli-Bz2dcSy1.js → browser-cli-DEnpvEPP.js} +4 -4
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +18 -18
  23. package/dist/bundled/session-memory/handler.js +18 -18
  24. package/dist/{call-BVw7l9v8.js → call-6AGLOo_A.js} +1 -1
  25. package/dist/{call-CJYWtIM9.js → call-TvMa4u8t.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-options-D7RdZp1E.js → channel-options-BzQJoPFc.js} +1 -1
  28. package/dist/{channel-options-BCZol8_4.js → channel-options-D1K0w33c.js} +1 -1
  29. package/dist/{channel-web-Dki5eEiP.js → channel-web-NaWX5pUl.js} +8 -8
  30. package/dist/{channels-cli-CwliXNUk.js → channels-cli-BGX2AX0X.js} +38 -38
  31. package/dist/{channels-cli-CILkYyG3.js → channels-cli-KVy9GUcY.js} +39 -39
  32. package/dist/{chrome-BgIDB_SH.js → chrome-CaijV4gw.js} +1 -1
  33. package/dist/{chrome-D9OwvWm7.js → chrome-Cgiw9tI6.js} +1 -1
  34. package/dist/{chrome-h6BnL8Lp.js → chrome-DX-9I4dn.js} +1 -1
  35. package/dist/{chrome-LmEyZdbC.js → chrome-DrxNYzTD.js} +1 -1
  36. package/dist/cli/daemon-cli.js +1 -1
  37. package/dist/{cli-aAOs92a8.js → cli-DAaNQKv7.js} +33 -33
  38. package/dist/{cli-CLHi2LEP.js → cli-MBTHCM04.js} +34 -34
  39. package/dist/{command-registry-OHfvK1Oq.js → command-registry-DRHBO07P.js} +11 -11
  40. package/dist/{commands-registry-DyWjIe7d.js → commands-registry-B_V42ZiZ.js} +1 -1
  41. package/dist/{commands-registry-Copoizgv.js → commands-registry-DN93gKlx.js} +1 -1
  42. package/dist/{commands-registry-uo2OKqdL.js → commands-registry-nK_mZXUN.js} +1 -1
  43. package/dist/{commands-registry-C3C4Rv3O.js → commands-registry-tuRMQmX4.js} +1 -1
  44. package/dist/{completion-cli-DSHmAUFN.js → completion-cli-By9Hj91p.js} +1 -1
  45. package/dist/{completion-cli-D7iBY_Z-.js → completion-cli-E2HmAubG.js} +2 -2
  46. package/dist/{config-BjGo9GnL.js → config-BUHRlrbS.js} +5 -2
  47. package/dist/{config-amjzHiWZ.js → config-COvlkain.js} +5 -2
  48. package/dist/{config-DM0K7qC1.js → config-C_1uZzwy.js} +5 -2
  49. package/dist/{config-Dgn_cL29.js → config-DB5jMj3Z.js} +5 -2
  50. package/dist/{config-cli-CcbYdW1-.js → config-cli-DaV2gvHS.js} +3 -3
  51. package/dist/{config-cli-BlusBXAA.js → config-cli-gvLM_Jmx.js} +3 -3
  52. package/dist/{config-guard-BpQn1MKk.js → config-guard-CP12zw3r.js} +2 -2
  53. package/dist/{config-guard-Cnu2qssk.js → config-guard-DLAUq-eu.js} +5 -5
  54. package/dist/{config-validation-BHjDr-an.js → config-validation-BdUdtuuI.js} +1 -1
  55. package/dist/{config-validation-pVfqbrLy.js → config-validation-CJNWEllT.js} +1 -1
  56. package/dist/{configure-CJf-vDqN.js → configure-BPdAIpJb.js} +11 -11
  57. package/dist/{configure-rrxn5n5n.js → configure-DjRUXJNv.js} +11 -11
  58. package/dist/{control-service-DVFF3PrV.js → control-service-CwdjvhxE.js} +4 -4
  59. package/dist/{control-service-DMz_CcLi.js → control-service-D670V6cS.js} +4 -4
  60. package/dist/control-ui/js/app.js +79 -0
  61. package/dist/control-ui/js/render.js +39 -0
  62. package/dist/{cron-cli-CMb8Tfrd.js → cron-cli-BVdg2ZHh.js} +4 -4
  63. package/dist/{cron-cli-B9s3FO4y.js → cron-cli-CWybZWLu.js} +4 -4
  64. package/dist/{daemon-cli-DY782AjS.js → daemon-cli-A0V_cYcw.js} +6 -6
  65. package/dist/{daemon-cli-duUjaj82.js → daemon-cli-BSKnv95o.js} +6 -6
  66. package/dist/daemon-cli.js +4 -1
  67. package/dist/{daemon-runtime-B38pOixq.js → daemon-runtime-BgbGrT3P.js} +1 -1
  68. package/dist/{daemon-runtime-CjgoCPLb.js → daemon-runtime-DtGPdsmL.js} +1 -1
  69. package/dist/{deliver-DONp5mgd.js → deliver-CUJWonlP.js} +3 -3
  70. package/dist/{deliver-B3UoBZdC.js → deliver-DXVMhb3A.js} +2 -2
  71. package/dist/{deliver-2Y_F_0yh.js → deliver-sMuSzZX6.js} +3 -3
  72. package/dist/{deliver-CZF9f8aC.js → deliver-wRQauy5B.js} +2 -2
  73. package/dist/{devices-cli-Ch8p42OS.js → devices-cli-Bwg8gUuS.js} +3 -3
  74. package/dist/{devices-cli-Cahrr6Rd.js → devices-cli-DBDevKR4.js} +3 -3
  75. package/dist/{directory-cli-B0H80BMR.js → directory-cli-2W4B1Ct_.js} +2 -2
  76. package/dist/{directory-cli-DH9ww80p.js → directory-cli-B9wwg8xg.js} +2 -2
  77. package/dist/{dm-policy-shared-BovJdm5T.js → dm-policy-shared-CvHrO6D_.js} +1 -1
  78. package/dist/{dm-policy-shared-DckBYBwg.js → dm-policy-shared-flFO0wFg.js} +1 -1
  79. package/dist/{dns-cli-CVMQnrzw.js → dns-cli-Dc8SoCMN.js} +2 -2
  80. package/dist/{dns-cli-Lzt29-Zu.js → dns-cli-go7hrLbV.js} +2 -2
  81. package/dist/{doctor-completion-B6R-Um0m.js → doctor-completion-CJ6GgqdP.js} +1 -1
  82. package/dist/{doctor-completion-Db9Ka2VX.js → doctor-completion-cGUMfSWW.js} +1 -1
  83. package/dist/{doctor-config-flow-C_56SUPO.js → doctor-config-flow-CSyqq_3u.js} +3 -3
  84. package/dist/{doctor-config-flow-B150h841.js → doctor-config-flow-DpVhYkFY.js} +3 -3
  85. package/dist/entry.js +1 -1
  86. package/dist/{exec-approvals-cli-CSTHY6Vs.js → exec-approvals-cli-Bc7-sWEN.js} +5 -5
  87. package/dist/{exec-approvals-cli-lduNEUnu.js → exec-approvals-cli-NGv-JYZx.js} +5 -5
  88. package/dist/extensionAPI.js +18 -18
  89. package/dist/{gateway-cli-VZ3pwSh3.js → gateway-cli-BACTzHef.js} +52 -52
  90. package/dist/{gateway-cli-DVzEvDKA.js → gateway-cli-DIUZJz3l.js} +51 -51
  91. package/dist/{gateway-rpc-BTXPWO6j.js → gateway-rpc-CzQ2-09T.js} +1 -1
  92. package/dist/{gateway-rpc-Cx0HPjI7.js → gateway-rpc-DijKM-l5.js} +1 -1
  93. package/dist/{gemini-auth-7AWT6JXV.js → gemini-auth-2cinXFeY.js} +1 -1
  94. package/dist/{gemini-auth-BHSrr2_B.js → gemini-auth-DmWoaMTb.js} +1 -1
  95. package/dist/{gemini-auth-K6vg8B5c.js → gemini-auth-DtBB7-5F.js} +1 -1
  96. package/dist/{glass-ui-ws-CAm9wWND.js → glass-ui-ws-BBYLD-43.js} +43 -43
  97. package/dist/{glass-ui-ws-DmPVzO59.js → glass-ui-ws-DMW9fQLQ.js} +42 -42
  98. package/dist/{health-CnH3J7xA.js → health-BIgxejdY.js} +5 -5
  99. package/dist/{health-CYZdOaco.js → health-D9sE5ymK.js} +5 -5
  100. package/dist/{hooks-cli-CHMoGB4O.js → hooks-cli-DnvETK6m.js} +34 -34
  101. package/dist/{hooks-cli-C7tb9Ef0.js → hooks-cli-EthBM_qY.js} +35 -35
  102. package/dist/{image-RFofsrof.js → image-Bf_jHnTg.js} +3 -3
  103. package/dist/{image-B4LY9KFw.js → image-CEcLOmLW.js} +3 -3
  104. package/dist/{image-DrZEJQwQ.js → image-DCArHTqR.js} +3 -3
  105. package/dist/{image-DOnOTocl.js → image-Kl1J-62v.js} +3 -3
  106. package/dist/index.js +42 -42
  107. package/dist/{lifecycle-core-De5BcVI4.js → lifecycle-core-fFRFJvPD.js} +2 -2
  108. package/dist/{lifecycle-core-BYV6-zd8.js → lifecycle-core-pG9T1o7U.js} +2 -2
  109. package/dist/llm-slug-generator.js +18 -18
  110. package/dist/{login-BH17fJ5L.js → login-BwU6oNNU.js} +2 -2
  111. package/dist/{login-BG_7eJLu.js → login-CM1U-ARd.js} +2 -2
  112. package/dist/{login-CXSct1EH.js → login-CvotLxMc.js} +2 -2
  113. package/dist/{login-BZYFLDxo.js → login-J-hL4MZQ.js} +2 -2
  114. package/dist/{login-qr-BLmEvZVj.js → login-qr-CADWVR1b.js} +3 -3
  115. package/dist/{login-qr-zVpxocbF.js → login-qr-CW01jgLl.js} +3 -3
  116. package/dist/{login-qr-DoNfx43Q.js → login-qr-CiPw9ee6.js} +3 -3
  117. package/dist/{login-qr-9OQSnm5L.js → login-qr-_FriwsNr.js} +3 -3
  118. package/dist/{logs-cli-Cvhx1c0V.js → logs-cli-DPaTYFru.js} +4 -4
  119. package/dist/{logs-cli-DUzUCojZ.js → logs-cli-mM7GM-9Q.js} +4 -4
  120. package/dist/{manager-oiX42wby.js → manager-Cw42HtQ7.js} +136 -19
  121. package/dist/{manager-C_DoJrcP.js → manager-D0d-bOOe.js} +136 -19
  122. package/dist/{manager-B5EXdBQV.js → manager-D5ZbBYmN.js} +136 -19
  123. package/dist/{manager-CYHgFXd8.js → manager-DqkRhYYl.js} +136 -19
  124. package/dist/{memory-cli-D4J9SO7Z.js → memory-cli-C7w-I03k.js} +206 -3
  125. package/dist/{memory-cli-BhnOq4Ev.js → memory-cli-Pp2xuPKC.js} +206 -3
  126. package/dist/{model-CLebVu_U.js → model-ApXxvnzl.js} +1 -1
  127. package/dist/{model-DaukLY-k.js → model-DDV7HL-B.js} +1 -1
  128. package/dist/{model-auth-CeL58m55.js → model-auth-Db8I8QVL.js} +6 -2
  129. package/dist/{model-catalog-Dj5pIc1G.js → model-catalog-61-kKlKu.js} +4 -4
  130. package/dist/{model-catalog-CX8kAHv8.js → model-catalog-QboGjwLO.js} +4 -4
  131. package/dist/{model-picker-ay4NPk8S.js → model-picker-CSnZDydf.js} +3 -3
  132. package/dist/{model-picker-CDXdeNr-.js → model-picker-iDZTbvXk.js} +3 -3
  133. package/dist/{model-selection-Csawd2_i.js → model-selection-BBrZnKDw.js} +6 -2
  134. package/dist/{model-selection--4t4F87n.js → model-selection-DBPwoBvb.js} +6 -2
  135. package/dist/{models-wHzbWyGd.js → models-B_oSANn2.js} +14 -14
  136. package/dist/{models-cli-CTptBZ1_.js → models-cli-CzdeeUpE.js} +40 -40
  137. package/dist/{models-cli-xt0_lwNn.js → models-cli-u62LAXdh.js} +39 -39
  138. package/dist/{models-config-u4va9_AO.js → models-config-BTd2aHYU.js} +2 -2
  139. package/dist/{models-config-Cb41NmVa.js → models-config-CMJN_5Vh.js} +2 -2
  140. package/dist/{node-cli-BhCoxgBf.js → node-cli-BEvFRkYC.js} +10 -10
  141. package/dist/{node-cli-C8scjTTR.js → node-cli-BQyxhqF5.js} +10 -10
  142. package/dist/{nodes-cli-DvFB1bRc.js → nodes-cli-C2hHbQ47.js} +4 -4
  143. package/dist/{nodes-cli-BHnGJEDY.js → nodes-cli-FbzJ-7tA.js} +4 -4
  144. package/dist/{onboard-CLT8dKkn.js → onboard-CwNzqMn1.js} +10 -10
  145. package/dist/{onboard-CqrqIyTw.js → onboard-DcBV5QjY.js} +10 -10
  146. package/dist/{onboard-channels-B1qEMRuK.js → onboard-channels-C0wtv2Cp.js} +2 -2
  147. package/dist/{onboard-channels-Dq99OYWi.js → onboard-channels-C79jGR3_.js} +2 -2
  148. package/dist/{onboard-custom-BKR6vm2R.js → onboard-custom-CwTH9Yg-.js} +3 -3
  149. package/dist/{onboard-custom-BPHkLBMT.js → onboard-custom-adn6IG8i.js} +3 -3
  150. package/dist/{onboard-helpers-Dsr4zKCb.js → onboard-helpers-Bt2zwkKD.js} +2 -2
  151. package/dist/{onboard-helpers-CYxzQfe5.js → onboard-helpers-CKM-mWPH.js} +2 -2
  152. package/dist/{onboard-remote-d48SMpNw.js → onboard-remote-C-4NSq0W.js} +1 -1
  153. package/dist/{onboard-remote-3c_muVej.js → onboard-remote-P6H-x_vQ.js} +1 -1
  154. package/dist/{onboard-skills-2HJIpm3O.js → onboard-skills-C9ZAlUR6.js} +2 -2
  155. package/dist/{onboard-skills-b_chEkYH.js → onboard-skills-DlbXWPzM.js} +2 -2
  156. package/dist/{onboarding-yfMTHyHB.js → onboarding-C2vTobUO.js} +11 -11
  157. package/dist/{onboarding-Bs82247P.js → onboarding-CT_P8dE6.js} +11 -11
  158. package/dist/{onboarding.finalize-QC0g7ZLU.js → onboarding.finalize-BdeyH2Eh.js} +39 -39
  159. package/dist/{onboarding.finalize-DkZuXXiU.js → onboarding.finalize-DPQDvxEp.js} +41 -41
  160. package/dist/{onboarding.gateway-config-BkXJPv7f.js → onboarding.gateway-config-DKVcVoUF.js} +5 -5
  161. package/dist/{onboarding.gateway-config-stm3z82Y.js → onboarding.gateway-config-IqmHGk2A.js} +5 -5
  162. package/dist/{openai-model-default-DF334-MD.js → openai-model-default-BMY_YH9P.js} +2 -2
  163. package/dist/{openai-model-default-DJwRgrAC.js → openai-model-default-l66tU27B.js} +2 -2
  164. package/dist/{outbound-Cedd_yui.js → outbound-0ici4ICv.js} +1 -1
  165. package/dist/{outbound-BNMysnJ1.js → outbound-BEumB8qs.js} +1 -1
  166. package/dist/{outbound-Bv4FdtnF.js → outbound-CzuytbQ5.js} +1 -1
  167. package/dist/{outbound-DfOF58G2.js → outbound-DTZdWgeZ.js} +1 -1
  168. package/dist/{pairing-cli-7_4ayuXX.js → pairing-cli-CUu3LyX0.js} +4 -4
  169. package/dist/{pairing-cli-B7oA36Ke.js → pairing-cli-D_9vmECc.js} +4 -4
  170. package/dist/{pairing-labels-B-WwqJ-z.js → pairing-labels-Ca15tgVV.js} +1 -1
  171. package/dist/{pairing-labels-sIj1ZLt-.js → pairing-labels-D_XOc2nT.js} +1 -1
  172. package/dist/{pairing-store-CFwkjcA5.js → pairing-store-DdUVpKvp.js} +1 -1
  173. package/dist/{pairing-store-CicZMhK8.js → pairing-store-cjckhuQX.js} +1 -1
  174. package/dist/{pi-auth-json-BNhcohVK.js → pi-auth-json-BJB80_DY.js} +1 -1
  175. package/dist/{pi-auth-json-DV2ruNQM.js → pi-auth-json-BqB9Z6Gg.js} +1 -1
  176. package/dist/{pi-auth-json-B83DuyYZ.js → pi-auth-json-Bzpuls50.js} +2 -2
  177. package/dist/{pi-auth-json-CNgAAznq.js → pi-auth-json-etIDtHw9.js} +1 -1
  178. package/dist/{pi-embedded-DDe6lqPs.js → pi-embedded-DUUw7-tO.js} +448 -60
  179. package/dist/{pi-embedded-B3nbPN60.js → pi-embedded-DmUwEsG1.js} +448 -60
  180. package/dist/{pi-embedded-helpers-kB5lBgXk.js → pi-embedded-helpers-CLip13MP.js} +6 -6
  181. package/dist/{pi-embedded-helpers-CgxKWHj9.js → pi-embedded-helpers-D57pDra0.js} +1 -1
  182. package/dist/{pi-embedded-helpers--yFTAWwW.js → pi-embedded-helpers-D9Rvkx8A.js} +6 -6
  183. package/dist/{pi-embedded-helpers-ueCT6VlS.js → pi-embedded-helpers-f7cnM8BN.js} +1 -1
  184. package/dist/{pi-tools.policy-T6Z5F-_n.js → pi-tools.policy-BV1RWUnE.js} +2 -2
  185. package/dist/{pi-tools.policy-DPmdlOwE.js → pi-tools.policy-BegHNtNO.js} +2 -2
  186. package/dist/{plugin-auto-enable-D4BRdbII.js → plugin-auto-enable-B-WfJQ_3.js} +1 -1
  187. package/dist/{plugin-auto-enable-DdvlcMuw.js → plugin-auto-enable-CdctkFTt.js} +1 -1
  188. package/dist/{plugin-registry-DWJeC9bW.js → plugin-registry-C80itc6t.js} +2 -2
  189. package/dist/{plugin-registry-SCI1BVkI.js → plugin-registry-DrYURaBs.js} +2 -2
  190. package/dist/plugin-sdk/agents/memory-search.d.ts +2 -2
  191. package/dist/plugin-sdk/agents/synthetic-models.d.ts +1 -1
  192. package/dist/plugin-sdk/agents/system-prompt.d.ts +2 -1
  193. package/dist/plugin-sdk/{api-key-rotation-Qy7QGV8_.js → api-key-rotation-DNKq8sDG.js} +1 -1
  194. package/dist/plugin-sdk/{audio-preflight-CpYjfwrA.js → audio-preflight-D5K2YgFn.js} +7 -7
  195. package/dist/plugin-sdk/{channel-web-BUTyAx0r.js → channel-web-Bkv0U1ox.js} +7 -7
  196. package/dist/plugin-sdk/{chrome-BFy_lpld.js → chrome-DJ6LIeRu.js} +1 -1
  197. package/dist/plugin-sdk/{commands-registry-CvppXodz.js → commands-registry-un-LmdXo.js} +1 -1
  198. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +2 -0
  199. package/dist/plugin-sdk/config/types.tools.d.ts +2 -2
  200. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +3 -2
  201. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +4 -4
  202. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +5 -4
  203. package/dist/plugin-sdk/config/zod-schema.d.ts +5 -4
  204. package/dist/plugin-sdk/{config-Do1-fcaS.js → config-8u0WDlgj.js} +5 -2
  205. package/dist/plugin-sdk/{deliver-BwnrMlHO.js → deliver-Bip_mCNI.js} +2 -2
  206. package/dist/plugin-sdk/{image-k_W1USVr.js → image-DX2HTDUY.js} +3 -3
  207. package/dist/plugin-sdk/index.js +22 -22
  208. package/dist/plugin-sdk/{login-DPofXJE3.js → login-CKLot2mH.js} +2 -2
  209. package/dist/plugin-sdk/{login-qr-CNatqAUv.js → login-qr-DOVV9TXm.js} +3 -3
  210. package/dist/plugin-sdk/{manager-DnoXj4EG.js → manager-BItSTruD.js} +136 -19
  211. package/dist/plugin-sdk/memory/embeddings-ollama.d.ts +27 -0
  212. package/dist/plugin-sdk/memory/embeddings.d.ts +4 -1
  213. package/dist/plugin-sdk/memory/manager-sync-ops.d.ts +1 -1
  214. package/dist/plugin-sdk/memory/manager.d.ts +1 -1
  215. package/dist/plugin-sdk/{model-selection-D6J2MZsj.js → model-selection-aEd_4vFO.js} +6 -2
  216. package/dist/plugin-sdk/{outbound-w5v_6nFD.js → outbound-uamhXJrA.js} +1 -1
  217. package/dist/plugin-sdk/{pi-auth-json-BmWuNdJA.js → pi-auth-json-FyiScmI7.js} +1 -1
  218. package/dist/plugin-sdk/{pi-embedded-helpers-Cs2-_EpL.js → pi-embedded-helpers-JY-1kHdk.js} +6 -6
  219. package/dist/plugin-sdk/{pw-ai-BoitXk7j.js → pw-ai-BG29-fkq.js} +3 -3
  220. package/dist/plugin-sdk/{replies-BU-tUT8j.js → replies-B1pTxZOl.js} +1 -1
  221. package/dist/plugin-sdk/{reply-CjWIATx5.js → reply-B576Fhv8.js} +446 -58
  222. package/dist/plugin-sdk/{runner-Br1179I4.js → runner-BL2UhCUB.js} +5 -5
  223. package/dist/plugin-sdk/{send-Ts2lINh9.js → send-CARqECtw.js} +1 -1
  224. package/dist/plugin-sdk/{send-CE6VxWke.js → send-CJEdtrU7.js} +1 -1
  225. package/dist/plugin-sdk/{send-P8PiZ2Os.js → send-DnSED91h.js} +2 -2
  226. package/dist/plugin-sdk/{send-Dkyi5g1U.js → send-e3xSJ8To.js} +1 -1
  227. package/dist/plugin-sdk/{send-BaLZTKkj.js → send-oZqyXIiB.js} +1 -1
  228. package/dist/plugin-sdk/{session-Bwdr4g-M.js → session-CzQVSJF5.js} +1 -1
  229. package/dist/plugin-sdk/{skill-commands-NTPqO_az.js → skill-commands-Cwps3qpb.js} +1 -1
  230. package/dist/plugin-sdk/{web-C1q3B85D.js → web-mZ4uDhBl.js} +22 -22
  231. package/dist/plugin-sdk/{whatsapp-actions-Di-yCTCj.js → whatsapp-actions-1-Mp-KwB.js} +3 -3
  232. package/dist/{plugins-cli-D2GDnmKk.js → plugins-cli-Cv9eBXlW.js} +34 -34
  233. package/dist/{plugins-cli-QSrupxLG.js → plugins-cli-Dnq6iHh8.js} +35 -35
  234. package/dist/{program-context-CIOqtCr8.js → program-context-D_OS2K8H.js} +38 -38
  235. package/dist/{program-7hcHnpYu.js → program-iimCXTOX.js} +41 -41
  236. package/dist/{prompt-select-styled-DpVAhv1V.js → prompt-select-styled-B1V6teLm.js} +17 -17
  237. package/dist/{prompt-select-styled-DC-k-kBQ.js → prompt-select-styled-BHDOHzSI.js} +17 -17
  238. package/dist/{provider-auth-helpers-BGhm_DOe.js → provider-auth-helpers-nXDpwc0f.js} +4 -4
  239. package/dist/{provider-auth-helpers-DvwmlisW.js → provider-auth-helpers-ozVqcIrR.js} +4 -4
  240. package/dist/{push-apns-CiOx7dgB.js → push-apns-BZ7FEmsK.js} +1 -1
  241. package/dist/{push-apns-BZu5OVg5.js → push-apns-Dmo8BBk4.js} +1 -1
  242. package/dist/{pw-ai-CQzJmf8V.js → pw-ai-3nNWe272.js} +3 -3
  243. package/dist/{pw-ai-CAkn033M.js → pw-ai-BUH9Ew6q.js} +3 -3
  244. package/dist/{pw-ai-C_C5as1t.js → pw-ai-DQuj9c2U.js} +3 -3
  245. package/dist/{pw-ai-CdaTpZo1.js → pw-ai-DhirpjMU.js} +3 -3
  246. package/dist/{qr-cli-Diq_Rb3t.js → qr-cli-CGS8DyNl.js} +2 -2
  247. package/dist/{qr-cli-DlVBiDQm.js → qr-cli-CHnzhKoc.js} +2 -2
  248. package/dist/{register.agent-CDD5Z9Fj.js → register.agent-BOuUXJJS.js} +43 -43
  249. package/dist/{register.agent-Ds6PkEYl.js → register.agent-DYzV2wmB.js} +45 -45
  250. package/dist/{register.configure-COyj6XWC.js → register.configure-C4oljj3F.js} +47 -47
  251. package/dist/{register.configure-CBRYdCX2.js → register.configure-CHvDZtU1.js} +48 -48
  252. package/dist/{register.maintenance-DwHXDl_N.js → register.maintenance-DIylvylR.js} +44 -44
  253. package/dist/{register.maintenance-CyJQDrP0.js → register.maintenance-DhprP_dA.js} +46 -46
  254. package/dist/{register.message-BNe6-SJE.js → register.message-B9SgsGyt.js} +35 -35
  255. package/dist/{register.message-CvQ7LEYe.js → register.message-DF4_1evm.js} +34 -34
  256. package/dist/{register.onboard-BxxfWU46.js → register.onboard-CdwNCs_L.js} +42 -42
  257. package/dist/{register.onboard-CuRnx0wV.js → register.onboard-DOJyYmJS.js} +43 -43
  258. package/dist/{register.setup-qmcQQ6EM.js → register.setup-0Due7c9e.js} +43 -43
  259. package/dist/{register.setup-B4rO_Fld.js → register.setup-DxV_KIbP.js} +42 -42
  260. package/dist/{register.status-health-sessions-CQ0_UB_j.js → register.status-health-sessions-C584c9tm.js} +38 -38
  261. package/dist/{register.status-health-sessions-4OEVg4h6.js → register.status-health-sessions-D1tqd_k_.js} +40 -40
  262. package/dist/{register.subclis-68XcQ3ao.js → register.subclis-DuON_fJu.js} +28 -28
  263. package/dist/{replies-QloQerhz.js → replies-BXYTRk0Z.js} +1 -1
  264. package/dist/{replies-D9V19U2-.js → replies-Bhx469BX.js} +1 -1
  265. package/dist/{replies-CTKReSzx.js → replies-BnmCXHdE.js} +1 -1
  266. package/dist/{replies-DqdOBkTB.js → replies-UxER0fi1.js} +1 -1
  267. package/dist/{reply-DI3kOl7x.js → reply-BzqL_47o.js} +257 -70
  268. package/dist/{routes-qIyRWgzF.js → routes-DH3bW8wF.js} +3 -3
  269. package/dist/{routes-BYphcpth.js → routes-lbqRkIBb.js} +3 -3
  270. package/dist/{rpc-CvzWzHjS.js → rpc-BkvZNT-M.js} +1 -1
  271. package/dist/{rpc-DfC0wvv1.js → rpc-DYXJGfFr.js} +1 -1
  272. package/dist/{run-main-DiJI5-hU.js → run-main-CcFCZNx_.js} +53 -53
  273. package/dist/{runner-DOvsNiYz.js → runner-BHZy2rvh.js} +5 -5
  274. package/dist/{runner-BXN4KYDK.js → runner-CNY0hwm-.js} +5 -5
  275. package/dist/{runner-VHq3quQZ.js → runner-CplzHJ1b.js} +5 -5
  276. package/dist/{runner-uDZlTCm2.js → runner-Cu0qqBIE.js} +5 -5
  277. package/dist/{sandbox-rMmahr2s.js → sandbox-B0QOR7Cn.js} +5 -5
  278. package/dist/{sandbox-cli-C90jqh9l.js → sandbox-cli-CPkB96x-.js} +7 -7
  279. package/dist/{sandbox-cli-Duc05KL9.js → sandbox-cli-DAY7EbKl.js} +7 -7
  280. package/dist/{sandbox-CbuJolk2.js → sandbox-psIl5_gT.js} +5 -5
  281. package/dist/{security-cli-BTcKFy-k.js → security-cli-Bolpxy60.js} +12 -12
  282. package/dist/{security-cli-BPqLtK8x.js → security-cli-C2ZKf8ET.js} +12 -12
  283. package/dist/{send-BVZGeP2r.js → send-8dFVpIIg.js} +1 -1
  284. package/dist/{send-CHOArYFe.js → send-BPqK6C8h.js} +1 -1
  285. package/dist/{send-D0dzPf6g.js → send-BVRNZ9hM.js} +1 -1
  286. package/dist/{send-CzE5UKr-.js → send-BbscKwuU.js} +1 -1
  287. package/dist/{send-Do-0Kcmv.js → send-Bj2SQQVP.js} +1 -1
  288. package/dist/{send-BeASPkFg.js → send-Bj3PJmrF.js} +1 -1
  289. package/dist/{send-De_WCeGZ.js → send-Bv-112XA.js} +1 -1
  290. package/dist/{send-BH09HKsX.js → send-C8fjzstb.js} +1 -1
  291. package/dist/{send-mi3NHnwI.js → send-C8ohJBK5.js} +2 -2
  292. package/dist/{send-BsocounR.js → send-CIvsJpdo.js} +2 -2
  293. package/dist/{send-BVw7fCyL.js → send-CUhH6I6A.js} +1 -1
  294. package/dist/{send-3YM-aarb.js → send-CWrxWRjz.js} +1 -1
  295. package/dist/{send-CYfaZNZ4.js → send-Ci0uVV_k.js} +1 -1
  296. package/dist/{send-C7u4_H5t.js → send-Ci3UEBVK.js} +1 -1
  297. package/dist/{send-hNornLoH.js → send-CzxMGZc_.js} +2 -2
  298. package/dist/{send-DEWzWqfZ.js → send-DEcC_kQP.js} +1 -1
  299. package/dist/{send-D16XtYvC.js → send-DPKghOxz.js} +1 -1
  300. package/dist/{send-D3M6pMr5.js → send-DZbplWNh.js} +1 -1
  301. package/dist/{send-D_yJMeJa.js → send-DiBs_eJc.js} +2 -2
  302. package/dist/{send-B18gkuvz.js → send-FW1P3D82.js} +1 -1
  303. package/dist/{server-context-bMIwnOnH.js → server-context-AHh7m1PV.js} +5 -5
  304. package/dist/{server-context-DG2dIhAy.js → server-context-cw7ha2ct.js} +5 -5
  305. package/dist/{server-methods-DnTo3Oou.js → server-methods-BriHyeA7.js} +17 -17
  306. package/dist/{server-methods-B_JpD0c-.js → server-methods-CJ7xa1ot.js} +18 -18
  307. package/dist/{server-node-events-IlWB4f_P.js → server-node-events-CCId0gGy.js} +34 -34
  308. package/dist/{server-node-events-t5pGPXLD.js → server-node-events-_q8duhVi.js} +35 -35
  309. package/dist/{session-BeJq-MLE.js → session-B4Bibpie.js} +1 -1
  310. package/dist/{session-T0JXlYWe.js → session-D4FMCkcS.js} +1 -1
  311. package/dist/{session-BjcsCwgz.js → session-Dw3zM2St.js} +1 -1
  312. package/dist/{session-BkVBeAkg.js → session-lD2CnIWX.js} +1 -1
  313. package/dist/{session-utils-Cdv2Qaq2.js → session-utils-DySzoW4O.js} +4 -4
  314. package/dist/{sessions-CX93jXmG.js → sessions-BVbSbD60.js} +4 -4
  315. package/dist/{sessions-DJAxaVI7.js → sessions-CRTZnttk.js} +2 -2
  316. package/dist/{sessions-BEyCtqBB.js → sessions-L4e356Ra.js} +2 -2
  317. package/dist/{shared-CMw4odDH.js → shared-DZ9YCnZC.js} +2 -2
  318. package/dist/{shared-CLXhDldI.js → shared-oaw6SrnD.js} +2 -2
  319. package/dist/{skill-commands-CWySL97a.js → skill-commands-BlfEmZ8t.js} +1 -1
  320. package/dist/{skill-commands-B64uavY9.js → skill-commands-C2kxEz5h.js} +1 -1
  321. package/dist/{skill-commands-DrFCB9F9.js → skill-commands-CSBmZ_di.js} +1 -1
  322. package/dist/{skill-commands-DWcJOIzP.js → skill-commands-C_ZNSYNS.js} +1 -1
  323. package/dist/{skills-cli-DIx7YItN.js → skills-cli-D9gvgM58.js} +2 -2
  324. package/dist/{skills-cli-CQ7XQ4Kn.js → skills-cli-DBVcmBEp.js} +2 -2
  325. package/dist/{status-s1Tp-jVl.js → status-BUX2e6T-.js} +11 -11
  326. package/dist/{status-cWLYsK8x.js → status-C6UoBmkd.js} +2 -2
  327. package/dist/{status-BXQGCrxj.js → status-DJDE9f6i.js} +12 -12
  328. package/dist/{status-kOpLSgWJ.js → status-oObYVZk-.js} +2 -2
  329. package/dist/{status.update-DlaskfTr.js → status.update-CbAFtv61.js} +1 -1
  330. package/dist/{status.update-BXs3adtg.js → status.update-qDyKo2AJ.js} +1 -1
  331. package/dist/{subagent-registry-XHBZsH3Q.js → subagent-registry-BmP1Rhns.js} +258 -71
  332. package/dist/{system-cli-DPNDYRBr.js → system-cli-DpluDf4c.js} +4 -4
  333. package/dist/{system-cli-D10NhXw1.js → system-cli-gtr03ReO.js} +4 -4
  334. package/dist/{systemd-hints-Bm2H1erP.js → systemd-hints-Bmr_bzjF.js} +1 -1
  335. package/dist/{systemd-hints-BBPT8Use.js → systemd-hints-CnG98ooq.js} +1 -1
  336. package/dist/{tui-pvq_HI-q.js → tui-DnLFki4B.js} +16 -7
  337. package/dist/{tui-4d-MyU6O.js → tui-UMEqttti.js} +16 -7
  338. package/dist/{tui-cli-BsSKYVE3.js → tui-cli-ChVrbXQ7.js} +11 -11
  339. package/dist/{tui-cli-9uTZZ13F.js → tui-cli-DaL5S2ce.js} +11 -11
  340. package/dist/{update-cli-B3VC_mrH.js → update-cli-Bxb34ox7.js} +49 -49
  341. package/dist/{update-cli-_1YRH17q.js → update-cli-C-zL3WoC.js} +47 -47
  342. package/dist/{update-runner-Dsc1_XOK.js → update-runner-D9rjTCpa.js} +1 -1
  343. package/dist/{update-runner-DBbX4Iin.js → update-runner-rav9ZMjZ.js} +1 -1
  344. package/dist/{web-JIG-oxRW.js → web-4xYayj1G.js} +37 -37
  345. package/dist/{web-DjgeLZ5l.js → web-BS91XHKA.js} +21 -21
  346. package/dist/{web-DzjJ_iNt.js → web-DlKbVYgh.js} +37 -37
  347. package/dist/{web-CmZZsoMg.js → web-OmlhMCcZ.js} +21 -21
  348. package/dist/{webhooks-cli-B0Crq2Ec.js → webhooks-cli-BxXpx8Hu.js} +2 -2
  349. package/dist/{webhooks-cli-CLIdArAE.js → webhooks-cli-CvbEWtdd.js} +2 -2
  350. package/dist/{whatsapp-actions-Jfx4zcwv.js → whatsapp-actions-7xW0TEHg.js} +3 -3
  351. package/dist/{whatsapp-actions-B821AFp-.js → whatsapp-actions-B3zu-BhB.js} +3 -3
  352. package/dist/{whatsapp-actions-BL7tCNC_.js → whatsapp-actions-BWERIEcF.js} +3 -3
  353. package/dist/{whatsapp-actions-BIjGyW3T.js → whatsapp-actions-DAFOi466.js} +3 -3
  354. package/dist/{with-timeout-Cj_xUxo6.js → with-timeout-C6nbJrH1.js} +1 -1
  355. package/dist/{with-timeout-BeA4Jxcl.js → with-timeout-CNkLG3QR.js} +1 -1
  356. package/docs/reference/templates/SYMIPULSE.md +23 -1
  357. package/package.json +1 -1
@@ -11,22 +11,22 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
11
11
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
13
13
  import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BaxDnULz.js";
14
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CHOArYFe.js";
15
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-D3M6pMr5.js";
16
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-B3UoBZdC.js";
14
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BPqK6C8h.js";
15
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DZbplWNh.js";
16
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-DXVMhb3A.js";
17
17
  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-CI0kRQkt.js";
18
18
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
19
19
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CWktKM8a.js";
20
- import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-D_yJMeJa.js";
20
+ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DiBs_eJc.js";
21
21
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-CvJzsyvE.js";
22
- import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-CeL58m55.js";
22
+ import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-Db8I8QVL.js";
23
23
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-C_qUP7p5.js";
24
24
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
25
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-Dz5lr5b0.js";
26
- import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-kB5lBgXk.js";
27
- import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-DM0K7qC1.js";
26
+ import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-CLip13MP.js";
27
+ import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-C_1uZzwy.js";
28
28
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-D0IQ3WuX.js";
29
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-LmEyZdbC.js";
29
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DrxNYzTD.js";
30
30
  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-BFekKL7i.js";
31
31
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
32
32
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
@@ -37,9 +37,9 @@ import { t as resolveIMessageAccount } from "./accounts-qtxJ-6em.js";
37
37
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DLyHUt31.js";
38
38
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
39
39
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-DXB7tqWi.js";
40
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-RFofsrof.js";
40
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-Bf_jHnTg.js";
41
41
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-XlyuyChD.js";
42
- import { n as resolveMemorySearchConfig } from "./manager-B5EXdBQV.js";
42
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-D5ZbBYmN.js";
43
43
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-DRbx2dhW.js";
44
44
  import { n as retryAsync } from "./retry-Cly39XZB.js";
45
45
  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-Be1SwYlW.js";
@@ -48,20 +48,20 @@ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
48
48
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
49
49
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-DMwIh5cS.js";
50
50
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DccrnjsE.js";
51
- 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-C3C4Rv3O.js";
52
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-B64uavY9.js";
51
+ 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-tuRMQmX4.js";
52
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-C2kxEz5h.js";
53
53
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
54
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-DOvsNiYz.js";
54
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-BHZy2rvh.js";
55
55
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bso4i15F.js";
56
56
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
57
57
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CsM_hJ_s.js";
58
58
  import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
59
59
  import { t as convertMarkdownTables } from "./tables-DuZspiBu.js";
60
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CzE5UKr-.js";
61
- 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-BeASPkFg.js";
60
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-BbscKwuU.js";
61
+ 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-Bj3PJmrF.js";
62
62
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CZ-1eqw0.js";
63
63
  import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
64
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-D9V19U2-.js";
64
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Bhx469BX.js";
65
65
  import { t as getActiveWebListener } from "./active-listener-C9r8ZB9m.js";
66
66
  import { createRequire } from "node:module";
67
67
  import * as fs$2 from "node:fs/promises";
@@ -3474,7 +3474,7 @@ async function getMemorySearchManager(params) {
3474
3474
  const wrapper = new FallbackMemoryManager({
3475
3475
  primary,
3476
3476
  fallbackFactory: async () => {
3477
- const { MemoryIndexManager } = await import("./manager-B5EXdBQV.js").then((n) => n.t);
3477
+ const { MemoryIndexManager } = await import("./manager-D5ZbBYmN.js").then((n) => n.t);
3478
3478
  return await MemoryIndexManager.get(params);
3479
3479
  }
3480
3480
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3487,7 +3487,7 @@ async function getMemorySearchManager(params) {
3487
3487
  }
3488
3488
  }
3489
3489
  try {
3490
- const { MemoryIndexManager } = await import("./manager-B5EXdBQV.js").then((n) => n.t);
3490
+ const { MemoryIndexManager } = await import("./manager-D5ZbBYmN.js").then((n) => n.t);
3491
3491
  return { manager: await MemoryIndexManager.get(params) };
3492
3492
  } catch (err) {
3493
3493
  return {
@@ -7201,7 +7201,7 @@ async function routeReply(params) {
7201
7201
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7202
7202
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7203
7203
  try {
7204
- const { deliverOutboundPayloads } = await import("./deliver-B3UoBZdC.js").then((n) => n.n);
7204
+ const { deliverOutboundPayloads } = await import("./deliver-DXVMhb3A.js").then((n) => n.n);
7205
7205
  return {
7206
7206
  ok: true,
7207
7207
  messageId: (await deliverOutboundPayloads({
@@ -12654,7 +12654,7 @@ async function createModelSelectionState(params) {
12654
12654
  }
12655
12655
  }
12656
12656
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
12657
- const { ensureAuthProfileStore } = await import("./model-auth-CeL58m55.js").then((n) => n.s);
12657
+ const { ensureAuthProfileStore } = await import("./model-auth-Db8I8QVL.js").then((n) => n.s);
12658
12658
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
12659
12659
  const providerKey = normalizeProviderId(provider);
12660
12660
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -14225,7 +14225,7 @@ function ensureNestedObject(root, path) {
14225
14225
  }
14226
14226
  return current;
14227
14227
  }
14228
- function setNestedValue(root, path, value) {
14228
+ function setNestedValue$1(root, path, value) {
14229
14229
  if (path.length === 0) return;
14230
14230
  if (path.length === 1) {
14231
14231
  root[path[0]] = value;
@@ -14559,7 +14559,7 @@ const handleAllowlistCommand = async (params, allowTextCommands) => {
14559
14559
  }
14560
14560
  if (configChanged) {
14561
14561
  if (next.length === 0) deleteNestedValue(target, allowlistPath);
14562
- else setNestedValue(target, allowlistPath, next);
14562
+ else setNestedValue$1(target, allowlistPath, next);
14563
14563
  if (scope === "dm" && (channelId === "slack" || channelId === "discord")) deleteNestedValue(target, ["dm", "allowFrom"]);
14564
14564
  }
14565
14565
  if (configChanged) {
@@ -21458,8 +21458,8 @@ function buildMemorySection(params) {
21458
21458
  lines.push("");
21459
21459
  return lines;
21460
21460
  }
21461
- function buildUserIdentitySection(ownerLine, isMinimal) {
21462
- if (!ownerLine || isMinimal) return [];
21461
+ function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
21462
+ if (!ownerLine || isMinimal || isCoding) return [];
21463
21463
  return [
21464
21464
  "## Authorized Senders",
21465
21465
  ownerLine,
@@ -21483,8 +21483,8 @@ function buildTimeSection(params) {
21483
21483
  ""
21484
21484
  ];
21485
21485
  }
21486
- function buildReplyTagsSection(isMinimal) {
21487
- if (isMinimal) return [];
21486
+ function buildReplyTagsSection(isMinimal, isCoding) {
21487
+ if (isMinimal || isCoding) return [];
21488
21488
  return [
21489
21489
  "## Reply Tags",
21490
21490
  "To request a native reply/quote on supported surfaces, include one tag in your reply:",
@@ -21497,7 +21497,7 @@ function buildReplyTagsSection(isMinimal) {
21497
21497
  ];
21498
21498
  }
21499
21499
  function buildMessagingSection(params) {
21500
- if (params.isMinimal) return [];
21500
+ if (params.isMinimal || params.isCoding) return [];
21501
21501
  return [
21502
21502
  "## Messaging",
21503
21503
  "- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
@@ -21520,7 +21520,7 @@ function buildMessagingSection(params) {
21520
21520
  ];
21521
21521
  }
21522
21522
  function buildVoiceSection(params) {
21523
- if (params.isMinimal) return [];
21523
+ if (params.isMinimal || params.isCoding) return [];
21524
21524
  const hint = params.ttsHint?.trim();
21525
21525
  if (!hint) return [];
21526
21526
  return [
@@ -21529,6 +21529,71 @@ function buildVoiceSection(params) {
21529
21529
  ""
21530
21530
  ];
21531
21531
  }
21532
+ function buildVerifyYourWorkSection(params) {
21533
+ if (params.isMinimal) return [];
21534
+ const exec = params.execToolName;
21535
+ const read = params.readToolName;
21536
+ return [
21537
+ "## Verify Your Work",
21538
+ [
21539
+ "Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
21540
+ "Skipping verification is the single most common cause of incomplete or broken outputs.",
21541
+ "Treat this section as mandatory for every coding task, not optional polish."
21542
+ ].join(" "),
21543
+ "",
21544
+ "### 1. Re-read the request",
21545
+ [
21546
+ "Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
21547
+ "Extract every discrete requirement, constraint, and preference they stated.",
21548
+ "Write them down internally as a checklist.",
21549
+ "This catches drift: it is easy to start solving a related-but-different problem mid-task."
21550
+ ].join(" "),
21551
+ "",
21552
+ "### 2. Check each requirement against your output",
21553
+ [
21554
+ "Walk through your internal checklist point by point.",
21555
+ "For each requirement, locate the exact lines in your output that satisfy it.",
21556
+ "If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
21557
+ "Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
21558
+ ].join(" "),
21559
+ "",
21560
+ "### 3. Run the code",
21561
+ [
21562
+ `Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
21563
+ "Do not guess whether code works — execute it and observe the result.",
21564
+ "If the code produces errors, fix them and re-run until it succeeds.",
21565
+ "For scripts: run them with representative inputs.",
21566
+ "For libraries/modules: write and execute a minimal smoke test.",
21567
+ "For config files: validate syntax (e.g., json, yaml, toml parsers).",
21568
+ "If execution is genuinely impossible (no runtime available, user explicitly said not to run), state that you were unable to verify execution and explain why."
21569
+ ].join(" "),
21570
+ "",
21571
+ "### 4. Include tests when requested",
21572
+ [
21573
+ "If the user asked for tests, they are a hard requirement — not a nice-to-have.",
21574
+ "Deliver the tests alongside the implementation, not as an afterthought.",
21575
+ "Run the tests and confirm they pass before responding.",
21576
+ "If the user did not explicitly ask for tests but the change is non-trivial, consider whether a test would catch a regression and offer one."
21577
+ ].join(" "),
21578
+ "",
21579
+ "### 5. Self-review",
21580
+ [
21581
+ `After everything above, use ${read} to re-read any files you created or modified.`,
21582
+ "Look at them with fresh eyes as if reviewing someone else's code.",
21583
+ "Check for: typos, missing imports, unused variables, inconsistent naming, hardcoded values that should be configurable, incomplete error handling, and security issues (exposed secrets, injection vectors, missing input validation).",
21584
+ "If you find problems during self-review, fix them, re-run verification, and only then respond."
21585
+ ].join(" "),
21586
+ "",
21587
+ "### Verification failures",
21588
+ [
21589
+ "If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
21590
+ "Instead, fix the issue silently and re-verify.",
21591
+ "The user should receive working, complete output — not a draft with known issues.",
21592
+ "Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
21593
+ ].join(" "),
21594
+ ""
21595
+ ];
21596
+ }
21532
21597
  function buildDocsSection(params) {
21533
21598
  const docsPath = params.docsPath?.trim();
21534
21599
  if (!docsPath || params.isMinimal) return [];
@@ -21653,6 +21718,7 @@ function buildAgentSystemPrompt(params) {
21653
21718
  const messageChannelOptions = listDeliverableMessageChannels().join("|");
21654
21719
  const promptMode = params.promptMode ?? "full";
21655
21720
  const isMinimal = promptMode === "minimal" || promptMode === "none";
21721
+ const isCoding = promptMode === "coding";
21656
21722
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
21657
21723
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
21658
21724
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -21729,19 +21795,19 @@ function buildAgentSystemPrompt(params) {
21729
21795
  "",
21730
21796
  ...skillsSection,
21731
21797
  ...memorySection,
21732
- hasGateway && !isMinimal ? "## Symi Self-Update" : "",
21733
- hasGateway && !isMinimal ? [
21798
+ hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
21799
+ hasGateway && !isMinimal && !isCoding ? [
21734
21800
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
21735
21801
  "Do not run config.apply or update.run unless the user explicitly requests an update or config change; if it's not explicit, ask first.",
21736
21802
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
21737
21803
  "After restart, Symi pings the last active session automatically."
21738
21804
  ].join("\n") : "",
21739
- hasGateway && !isMinimal ? "" : "",
21805
+ hasGateway && !isMinimal && !isCoding ? "" : "",
21740
21806
  "",
21741
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
21742
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
21743
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
21744
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
21807
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
21808
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
21809
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
21810
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
21745
21811
  userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
21746
21812
  "## Workspace",
21747
21813
  `Your working directory is: ${displayWorkspaceDir}`,
@@ -21749,6 +21815,11 @@ function buildAgentSystemPrompt(params) {
21749
21815
  ...workspaceNotes,
21750
21816
  "",
21751
21817
  ...docsSection,
21818
+ ...buildVerifyYourWorkSection({
21819
+ isMinimal,
21820
+ execToolName,
21821
+ readToolName
21822
+ }),
21752
21823
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
21753
21824
  params.sandboxInfo?.enabled ? [
21754
21825
  "You are running in a sandboxed runtime (tools execute in Docker).",
@@ -21766,14 +21837,15 @@ function buildAgentSystemPrompt(params) {
21766
21837
  params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
21767
21838
  ].filter(Boolean).join("\n") : "",
21768
21839
  params.sandboxInfo?.enabled ? "" : "",
21769
- ...buildUserIdentitySection(ownerLine, isMinimal),
21840
+ ...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
21770
21841
  ...buildTimeSection({ userTimezone }),
21771
21842
  "## Workspace Files (injected)",
21772
21843
  "These user-editable files are loaded by Symi and included below in Project Context.",
21773
21844
  "",
21774
- ...buildReplyTagsSection(isMinimal),
21845
+ ...buildReplyTagsSection(isMinimal, isCoding),
21775
21846
  ...buildMessagingSection({
21776
21847
  isMinimal,
21848
+ isCoding,
21777
21849
  availableTools,
21778
21850
  messageChannelOptions,
21779
21851
  inlineButtonsEnabled,
@@ -21782,6 +21854,7 @@ function buildAgentSystemPrompt(params) {
21782
21854
  }),
21783
21855
  ...buildVoiceSection({
21784
21856
  isMinimal,
21857
+ isCoding,
21785
21858
  ttsHint: params.ttsHint
21786
21859
  })
21787
21860
  ];
@@ -21821,8 +21894,8 @@ function buildAgentSystemPrompt(params) {
21821
21894
  lines.push("");
21822
21895
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
21823
21896
  }
21824
- if (!isMinimal) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
21825
- if (!isMinimal) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
21897
+ if (!isMinimal && !isCoding) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
21898
+ if (!isMinimal && !isCoding) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
21826
21899
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
21827
21900
  return lines.filter(Boolean).join("\n");
21828
21901
  }
@@ -41574,7 +41647,7 @@ async function deliverSessionMaintenanceWarning(params) {
41574
41647
  return;
41575
41648
  }
41576
41649
  try {
41577
- const { deliverOutboundPayloads } = await import("./deliver-B3UoBZdC.js").then((n) => n.n);
41650
+ const { deliverOutboundPayloads } = await import("./deliver-DXVMhb3A.js").then((n) => n.n);
41578
41651
  await deliverOutboundPayloads({
41579
41652
  cfg: params.cfg,
41580
41653
  channel,
@@ -45017,7 +45090,7 @@ async function describeStickerImage(params) {
45017
45090
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
45018
45091
  try {
45019
45092
  const buffer = await fs.readFile(imagePath);
45020
- const { describeImageWithModel } = await import("./image-RFofsrof.js").then((n) => n.n);
45093
+ const { describeImageWithModel } = await import("./image-Bf_jHnTg.js").then((n) => n.n);
45021
45094
  return (await describeImageWithModel({
45022
45095
  buffer,
45023
45096
  fileName: "sticker.webp",
@@ -45440,7 +45513,7 @@ function createWhatsAppLoginTool() {
45440
45513
  force: Type.Optional(Type.Boolean())
45441
45514
  }),
45442
45515
  execute: async (_toolCallId, args) => {
45443
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-9OQSnm5L.js");
45516
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-_FriwsNr.js");
45444
45517
  if ((args?.action ?? "start") === "wait") {
45445
45518
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
45446
45519
  return {
@@ -46166,6 +46239,207 @@ function registerMemoryCli(program) {
46166
46239
  }
46167
46240
  });
46168
46241
  });
46242
+ memory.command("setup").description("Auto-detect and configure the best embedding provider").option("--agent <id>", "Agent id (default: default agent)").option("--dry-run", "Show what would be configured without writing", false).option("--verbose", "Verbose logging", false).action(async (opts) => {
46243
+ setVerbose(Boolean(opts.verbose));
46244
+ await runMemorySetup(opts);
46245
+ });
46246
+ }
46247
+ async function detectEmbeddingProviders(cfg) {
46248
+ const detected = [];
46249
+ const ollamaProbe = await probeOllamaEmbeddingModels(resolveOllamaBaseUrl(cfg));
46250
+ if (ollamaProbe && ollamaProbe.models.length > 0) detected.push({
46251
+ id: "ollama",
46252
+ model: ollamaProbe.models[0],
46253
+ baseUrl: ollamaProbe.baseUrl,
46254
+ reason: `Ollama at ${ollamaProbe.baseUrl} — ${ollamaProbe.models[0]}`
46255
+ });
46256
+ for (const remote of [
46257
+ {
46258
+ id: "openai",
46259
+ envKey: "OPENAI_API_KEY",
46260
+ defaultModel: "text-embedding-3-small"
46261
+ },
46262
+ {
46263
+ id: "gemini",
46264
+ envKey: "GEMINI_API_KEY",
46265
+ defaultModel: "gemini-embedding-001"
46266
+ },
46267
+ {
46268
+ id: "voyage",
46269
+ envKey: "VOYAGE_API_KEY",
46270
+ defaultModel: "voyage-4-large"
46271
+ }
46272
+ ]) {
46273
+ const envValue = process.env[remote.envKey]?.trim();
46274
+ let hasKey = Boolean(envValue);
46275
+ if (!hasKey) try {
46276
+ const resolved = await resolveApiKeyForProvider({
46277
+ provider: remote.id,
46278
+ cfg
46279
+ });
46280
+ hasKey = Boolean(resolved?.apiKey);
46281
+ } catch {}
46282
+ if (hasKey) detected.push({
46283
+ id: remote.id,
46284
+ model: remote.defaultModel,
46285
+ reason: `${remote.id} — API key found`
46286
+ });
46287
+ }
46288
+ return detected;
46289
+ }
46290
+ function setNestedValue(obj, path, value) {
46291
+ let current = obj;
46292
+ for (let i = 0; i < path.length - 1; i++) {
46293
+ const key = path[i];
46294
+ if (current[key] === void 0 || typeof current[key] !== "object" || current[key] === null) current[key] = {};
46295
+ current = current[key];
46296
+ }
46297
+ current[path[path.length - 1]] = value;
46298
+ }
46299
+ async function runMemorySetup(opts) {
46300
+ const rich = isRich();
46301
+ const heading = (text) => colorize(rich, theme.heading, text);
46302
+ const success = (text) => colorize(rich, theme.success, text);
46303
+ const warn = (text) => colorize(rich, theme.warn, text);
46304
+ const info = (text) => colorize(rich, theme.info, text);
46305
+ const muted = (text) => colorize(rich, theme.muted, text);
46306
+ const cfg = loadConfig();
46307
+ const agentId = resolveAgent(cfg, opts.agent);
46308
+ defaultRuntime.log(heading("Detecting embedding providers..."));
46309
+ defaultRuntime.log("");
46310
+ const detected = await detectEmbeddingProviders(cfg);
46311
+ const ollamaBase = resolveOllamaBaseUrl(cfg);
46312
+ const ollamaFound = detected.some((d) => d.id === "ollama");
46313
+ const openaiFound = detected.some((d) => d.id === "openai");
46314
+ const geminiFound = detected.some((d) => d.id === "gemini");
46315
+ const voyageFound = detected.some((d) => d.id === "voyage");
46316
+ if (ollamaFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "ollama").reason}`);
46317
+ else defaultRuntime.log(` ${warn("✗")} Ollama — not reachable at ${ollamaBase} or no embedding models`);
46318
+ if (openaiFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "openai").reason}`);
46319
+ else defaultRuntime.log(` ${warn("✗")} OpenAI — no API key`);
46320
+ if (geminiFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "gemini").reason}`);
46321
+ else defaultRuntime.log(` ${warn("✗")} Gemini — no API key`);
46322
+ if (voyageFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "voyage").reason}`);
46323
+ else defaultRuntime.log(` ${warn("✗")} Voyage — no API key`);
46324
+ defaultRuntime.log("");
46325
+ if (detected.length === 0) {
46326
+ defaultRuntime.error("No embedding providers detected.");
46327
+ defaultRuntime.error("");
46328
+ defaultRuntime.error("To fix, do one of:");
46329
+ defaultRuntime.error(" - Install Ollama and pull an embedding model: ollama pull nomic-embed-text");
46330
+ defaultRuntime.error(" - Set OPENAI_API_KEY environment variable");
46331
+ defaultRuntime.error(" - Set GEMINI_API_KEY or VOYAGE_API_KEY environment variable");
46332
+ process.exitCode = 1;
46333
+ return;
46334
+ }
46335
+ const best = detected[0];
46336
+ defaultRuntime.log(`${heading("Configuring:")} ${info(best.id)} (${best.model})`);
46337
+ if (opts.dryRun) {
46338
+ defaultRuntime.log(muted(" (dry run — no changes written)"));
46339
+ const configProvider = best.id === "ollama" ? "openai" : best.id;
46340
+ defaultRuntime.log(` provider = ${info(configProvider)}${best.id === "ollama" ? muted(" (via Ollama)") : ""}`);
46341
+ defaultRuntime.log(` model = ${info(best.model)}`);
46342
+ if (best.baseUrl) {
46343
+ const configUrl = best.id === "ollama" ? `${best.baseUrl}/v1` : best.baseUrl;
46344
+ defaultRuntime.log(` remote.baseUrl = ${info(configUrl)}`);
46345
+ }
46346
+ return;
46347
+ }
46348
+ const snapshot = await readConfigFileSnapshot();
46349
+ const next = structuredClone(snapshot.resolved);
46350
+ const memPath = [
46351
+ "agents",
46352
+ "defaults",
46353
+ "memorySearch"
46354
+ ];
46355
+ setNestedValue(next, [...memPath, "enabled"], true);
46356
+ setNestedValue(next, [...memPath, "sources"], ["memory", "sessions"]);
46357
+ if (best.id === "ollama" && best.baseUrl) {
46358
+ setNestedValue(next, [...memPath, "provider"], "openai");
46359
+ setNestedValue(next, [...memPath, "model"], best.model);
46360
+ setNestedValue(next, [
46361
+ ...memPath,
46362
+ "remote",
46363
+ "baseUrl"
46364
+ ], `${best.baseUrl}/v1`);
46365
+ setNestedValue(next, [
46366
+ ...memPath,
46367
+ "remote",
46368
+ "apiKey"
46369
+ ], "ollama-local");
46370
+ } else {
46371
+ setNestedValue(next, [...memPath, "provider"], best.id);
46372
+ setNestedValue(next, [...memPath, "model"], best.model);
46373
+ if (best.baseUrl) setNestedValue(next, [
46374
+ ...memPath,
46375
+ "remote",
46376
+ "baseUrl"
46377
+ ], best.baseUrl);
46378
+ }
46379
+ await writeConfigFile(next);
46380
+ defaultRuntime.log(` ${success("✓")} Updated symi.json`);
46381
+ defaultRuntime.log("");
46382
+ defaultRuntime.log(heading("Indexing memory files..."));
46383
+ const freshCfg = loadConfig();
46384
+ let indexOk = false;
46385
+ await withMemoryManagerForAgent({
46386
+ cfg: freshCfg,
46387
+ agentId,
46388
+ run: async (manager) => {
46389
+ const syncFn = manager.sync ? manager.sync.bind(manager) : void 0;
46390
+ if (!syncFn) {
46391
+ defaultRuntime.log(warn(" Memory backend does not support indexing."));
46392
+ return;
46393
+ }
46394
+ try {
46395
+ await withProgressTotals({
46396
+ label: "Indexing memory…",
46397
+ total: 0
46398
+ }, async (update, progress) => {
46399
+ await syncFn({
46400
+ reason: "cli",
46401
+ force: true,
46402
+ progress: (syncUpdate) => {
46403
+ update({
46404
+ completed: syncUpdate.completed,
46405
+ total: syncUpdate.total,
46406
+ label: syncUpdate.label
46407
+ });
46408
+ if (syncUpdate.label) progress.setLabel(syncUpdate.label);
46409
+ }
46410
+ });
46411
+ });
46412
+ const status = manager.status();
46413
+ defaultRuntime.log(` ${success("✓")} ${status.files ?? 0} files → ${status.chunks ?? 0} chunks` + (status.vector?.dims ? ` (${status.vector.dims}-dim vectors)` : ""));
46414
+ indexOk = true;
46415
+ } catch (err) {
46416
+ defaultRuntime.error(` ${warn("✗")} Index failed: ${formatErrorMessage(err)}`);
46417
+ }
46418
+ }
46419
+ });
46420
+ if (!indexOk) {
46421
+ process.exitCode = 1;
46422
+ return;
46423
+ }
46424
+ defaultRuntime.log("");
46425
+ defaultRuntime.log(heading("Verifying search..."));
46426
+ await withMemoryManagerForAgent({
46427
+ cfg: freshCfg,
46428
+ agentId,
46429
+ run: async (manager) => {
46430
+ try {
46431
+ const results = await manager.search("test memory verification", { maxResults: 3 });
46432
+ defaultRuntime.log(` ${success("✓")} Test query returned ${results.length} results` + (results.length > 0 ? ` (score ${results[results.length - 1].score.toFixed(2)}–${results[0].score.toFixed(2)})` : ""));
46433
+ } catch (err) {
46434
+ defaultRuntime.log(` ${warn("✗")} Search verification failed: ${formatErrorMessage(err)}`);
46435
+ process.exitCode = 1;
46436
+ return;
46437
+ }
46438
+ }
46439
+ });
46440
+ defaultRuntime.log("");
46441
+ defaultRuntime.log(success("Memory system is fully operational."));
46442
+ defaultRuntime.log(muted("Restart the gateway to apply: systemctl --user restart symi-gateway"));
46169
46443
  }
46170
46444
 
46171
46445
  //#endregion
@@ -47478,7 +47752,7 @@ async function preflightDiscordMessage(params) {
47478
47752
  let preflightTranscript;
47479
47753
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
47480
47754
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
47481
- const { transcribeFirstAudio } = await import("./audio-preflight-DRQD_nt1.js");
47755
+ const { transcribeFirstAudio } = await import("./audio-preflight-B_VLZd_F.js");
47482
47756
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
47483
47757
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
47484
47758
  ctx: {
@@ -51484,27 +51758,27 @@ function isVoiceChannelType(type) {
51484
51758
  function createDefaultDeps() {
51485
51759
  return {
51486
51760
  sendMessageWhatsApp: async (...args) => {
51487
- const { sendMessageWhatsApp } = await import("./web-CmZZsoMg.js");
51761
+ const { sendMessageWhatsApp } = await import("./web-OmlhMCcZ.js");
51488
51762
  return await sendMessageWhatsApp(...args);
51489
51763
  },
51490
51764
  sendMessageTelegram: async (...args) => {
51491
- const { sendMessageTelegram } = await import("./send-D_yJMeJa.js").then((n) => n.l);
51765
+ const { sendMessageTelegram } = await import("./send-DiBs_eJc.js").then((n) => n.l);
51492
51766
  return await sendMessageTelegram(...args);
51493
51767
  },
51494
51768
  sendMessageDiscord: async (...args) => {
51495
- const { sendMessageDiscord } = await import("./send-D3M6pMr5.js").then((n) => n.t);
51769
+ const { sendMessageDiscord } = await import("./send-DZbplWNh.js").then((n) => n.t);
51496
51770
  return await sendMessageDiscord(...args);
51497
51771
  },
51498
51772
  sendMessageSlack: async (...args) => {
51499
- const { sendMessageSlack } = await import("./send-CHOArYFe.js").then((n) => n.n);
51773
+ const { sendMessageSlack } = await import("./send-BPqK6C8h.js").then((n) => n.n);
51500
51774
  return await sendMessageSlack(...args);
51501
51775
  },
51502
51776
  sendMessageSignal: async (...args) => {
51503
- const { sendMessageSignal } = await import("./send-CzE5UKr-.js").then((n) => n.i);
51777
+ const { sendMessageSignal } = await import("./send-BbscKwuU.js").then((n) => n.i);
51504
51778
  return await sendMessageSignal(...args);
51505
51779
  },
51506
51780
  sendMessageIMessage: async (...args) => {
51507
- const { sendMessageIMessage } = await import("./send-BeASPkFg.js").then((n) => n.n);
51781
+ const { sendMessageIMessage } = await import("./send-Bj3PJmrF.js").then((n) => n.n);
51508
51782
  return await sendMessageIMessage(...args);
51509
51783
  }
51510
51784
  };
@@ -61930,7 +62204,7 @@ function readSlackExternalArgMenuToken(raw) {
61930
62204
  }
61931
62205
  let commandsRegistry;
61932
62206
  async function getCommandsRegistry() {
61933
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-C3C4Rv3O.js").then((n) => n.n);
62207
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-tuRMQmX4.js").then((n) => n.n);
61934
62208
  return commandsRegistry;
61935
62209
  }
61936
62210
  function encodeSlackCommandArgValue(parts) {
@@ -62333,7 +62607,7 @@ async function registerSlackMonitorSlashCommands(params) {
62333
62607
  });
62334
62608
  const deliverSlashPayloads = async (replies) => {
62335
62609
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
62336
- import("./replies-D9V19U2-.js").then((n) => n.r),
62610
+ import("./replies-Bhx469BX.js").then((n) => n.r),
62337
62611
  import("./chunk-BW5f05BR.js").then((n) => n.s),
62338
62612
  import("./markdown-tables-iMQQZu4Q.js").then((n) => n.t)
62339
62613
  ]);
@@ -62388,7 +62662,7 @@ async function registerSlackMonitorSlashCommands(params) {
62388
62662
  let nativeCommands = [];
62389
62663
  if (nativeEnabled) {
62390
62664
  reg = await getCommandsRegistry();
62391
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-B64uavY9.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62665
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C2kxEz5h.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62392
62666
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
62393
62667
  skillCommands,
62394
62668
  provider: "slack"
@@ -64606,7 +64880,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
64606
64880
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
64607
64881
  let preflightTranscript;
64608
64882
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
64609
- const { transcribeFirstAudio } = await import("./audio-preflight-DRQD_nt1.js");
64883
+ const { transcribeFirstAudio } = await import("./audio-preflight-B_VLZd_F.js");
64610
64884
  preflightTranscript = await transcribeFirstAudio({
64611
64885
  ctx: {
64612
64886
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -66751,23 +67025,23 @@ let webLoginQrPromise = null;
66751
67025
  let webChannelPromise = null;
66752
67026
  let whatsappActionsPromise = null;
66753
67027
  function loadWebOutbound() {
66754
- webOutboundPromise ??= import("./outbound-Cedd_yui.js").then((n) => n.t);
67028
+ webOutboundPromise ??= import("./outbound-0ici4ICv.js").then((n) => n.t);
66755
67029
  return webOutboundPromise;
66756
67030
  }
66757
67031
  function loadWebLogin() {
66758
- webLoginPromise ??= import("./login-BG_7eJLu.js").then((n) => n.n);
67032
+ webLoginPromise ??= import("./login-CM1U-ARd.js").then((n) => n.n);
66759
67033
  return webLoginPromise;
66760
67034
  }
66761
67035
  function loadWebLoginQr() {
66762
- webLoginQrPromise ??= import("./login-qr-9OQSnm5L.js");
67036
+ webLoginQrPromise ??= import("./login-qr-_FriwsNr.js");
66763
67037
  return webLoginQrPromise;
66764
67038
  }
66765
67039
  function loadWebChannel() {
66766
- webChannelPromise ??= import("./web-CmZZsoMg.js");
67040
+ webChannelPromise ??= import("./web-OmlhMCcZ.js");
66767
67041
  return webChannelPromise;
66768
67042
  }
66769
67043
  function loadWhatsAppActions() {
66770
- whatsappActionsPromise ??= import("./whatsapp-actions-BL7tCNC_.js");
67044
+ whatsappActionsPromise ??= import("./whatsapp-actions-BWERIEcF.js");
66771
67045
  return whatsappActionsPromise;
66772
67046
  }
66773
67047
  function createPluginRuntime() {
@@ -72075,7 +72349,7 @@ async function compactEmbeddedPiSessionDirect(params) {
72075
72349
  config: params.config
72076
72350
  });
72077
72351
  const isDefaultAgent = sessionAgentId === defaultAgentId;
72078
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
72352
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
72079
72353
  const docsPath = await resolveSymiDocsPath({
72080
72354
  workspaceDir: effectiveWorkspace,
72081
72355
  argv1: process.argv[1],
@@ -72315,6 +72589,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
72315
72589
  const streamParams = {};
72316
72590
  if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
72317
72591
  if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
72592
+ if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
72593
+ if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
72594
+ if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
72318
72595
  const cacheRetention = resolveCacheRetention(extraParams, provider);
72319
72596
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
72320
72597
  if (Object.keys(streamParams).length === 0) return;
@@ -75595,7 +75872,7 @@ async function runEmbeddedAttempt(params) {
75595
75872
  }
75596
75873
  });
75597
75874
  const isDefaultAgent = sessionAgentId === defaultAgentId;
75598
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
75875
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
75599
75876
  const docsPath = await resolveSymiDocsPath({
75600
75877
  workspaceDir: effectiveWorkspace,
75601
75878
  argv1: process.argv[1],
@@ -76610,6 +76887,7 @@ async function runEmbeddedPiAgent(params) {
76610
76887
  let lastRunPromptUsage;
76611
76888
  let autoCompactionCount = 0;
76612
76889
  let runLoopIterations = 0;
76890
+ let verificationPassCompleted = false;
76613
76891
  try {
76614
76892
  while (true) {
76615
76893
  if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
@@ -76979,6 +77257,116 @@ async function runEmbeddedPiAgent(params) {
76979
77257
  suppressToolErrorWarnings: params.suppressToolErrorWarnings,
76980
77258
  inlineToolResultsAllowed: false
76981
77259
  });
77260
+ if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
77261
+ const CODE_TOOL_NAMES = new Set([
77262
+ "exec",
77263
+ "bash",
77264
+ "write",
77265
+ "edit",
77266
+ "file_write",
77267
+ "file_edit",
77268
+ "write_file",
77269
+ "edit_file",
77270
+ "create_file",
77271
+ "patch"
77272
+ ]);
77273
+ const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
77274
+ const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
77275
+ if (hasCodeToolUsage || hasCodeBlocks) {
77276
+ verificationPassCompleted = true;
77277
+ log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
77278
+ const verificationPrompt = "Review your response against the original user request. Check: (1) Did you address every requirement? (2) Did you include tests if requested? (3) Did you run and verify the code works? If you missed anything, fix it now. If everything looks correct, briefly confirm.";
77279
+ try {
77280
+ const verifyAttempt = await runEmbeddedAttempt({
77281
+ sessionId: params.sessionId,
77282
+ sessionKey: params.sessionKey,
77283
+ messageChannel: params.messageChannel,
77284
+ messageProvider: params.messageProvider,
77285
+ agentAccountId: params.agentAccountId,
77286
+ messageTo: params.messageTo,
77287
+ messageThreadId: params.messageThreadId,
77288
+ groupId: params.groupId,
77289
+ groupChannel: params.groupChannel,
77290
+ groupSpace: params.groupSpace,
77291
+ spawnedBy: params.spawnedBy,
77292
+ senderIsOwner: params.senderIsOwner,
77293
+ currentChannelId: params.currentChannelId,
77294
+ currentThreadTs: params.currentThreadTs,
77295
+ replyToMode: params.replyToMode,
77296
+ hasRepliedRef: params.hasRepliedRef,
77297
+ sessionFile: params.sessionFile,
77298
+ workspaceDir: resolvedWorkspace,
77299
+ agentDir,
77300
+ config: params.config,
77301
+ skillsSnapshot: params.skillsSnapshot,
77302
+ prompt: verificationPrompt,
77303
+ images: void 0,
77304
+ disableTools: params.disableTools,
77305
+ provider,
77306
+ modelId,
77307
+ model,
77308
+ authStorage,
77309
+ modelRegistry,
77310
+ agentId: workspaceResolution.agentId,
77311
+ thinkLevel,
77312
+ verboseLevel: params.verboseLevel,
77313
+ reasoningLevel: params.reasoningLevel,
77314
+ toolResultFormat: resolvedToolResultFormat,
77315
+ execOverrides: params.execOverrides,
77316
+ bashElevated: params.bashElevated,
77317
+ timeoutMs: params.timeoutMs,
77318
+ runId: params.runId,
77319
+ abortSignal: params.abortSignal,
77320
+ shouldEmitToolResult: params.shouldEmitToolResult,
77321
+ shouldEmitToolOutput: params.shouldEmitToolOutput,
77322
+ onPartialReply: params.onPartialReply,
77323
+ onAssistantMessageStart: params.onAssistantMessageStart,
77324
+ onBlockReply: params.onBlockReply,
77325
+ onBlockReplyFlush: params.onBlockReplyFlush,
77326
+ blockReplyBreak: params.blockReplyBreak,
77327
+ blockReplyChunking: params.blockReplyChunking,
77328
+ onReasoningStream: params.onReasoningStream,
77329
+ onReasoningEnd: params.onReasoningEnd,
77330
+ onToolResult: params.onToolResult,
77331
+ onAgentEvent: params.onAgentEvent,
77332
+ extraSystemPrompt: params.extraSystemPrompt,
77333
+ inputProvenance: params.inputProvenance,
77334
+ streamParams: params.streamParams,
77335
+ ownerNumbers: params.ownerNumbers,
77336
+ enforceFinalTag: params.enforceFinalTag
77337
+ });
77338
+ const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
77339
+ mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
77340
+ if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
77341
+ const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
77342
+ const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
77343
+ if (verifyHasToolUsage || verifyHasContent) {
77344
+ const verifyPayloads = buildEmbeddedRunPayloads({
77345
+ assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
77346
+ toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
77347
+ lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
77348
+ lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
77349
+ config: params.config,
77350
+ sessionKey: params.sessionKey ?? params.sessionId,
77351
+ provider: activeErrorContext.provider,
77352
+ model: activeErrorContext.model,
77353
+ verboseLevel: params.verboseLevel,
77354
+ reasoningLevel: params.reasoningLevel,
77355
+ toolResultFormat: resolvedToolResultFormat,
77356
+ suppressToolErrorWarnings: params.suppressToolErrorWarnings,
77357
+ inlineToolResultsAllowed: false
77358
+ });
77359
+ if (verifyPayloads.length > 0) {
77360
+ payloads.length = 0;
77361
+ payloads.push(...verifyPayloads);
77362
+ }
77363
+ log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
77364
+ } else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
77365
+ } catch (verifyErr) {
77366
+ log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
77367
+ }
77368
+ }
77369
+ }
76982
77370
  if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
76983
77371
  payloads: [{
76984
77372
  text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",