@symerian/symi 2.0.17 → 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 (350) hide show
  1. package/dist/{acp-cli-DqQjT50N.js → acp-cli-Cp81ShIC.js} +3 -3
  2. package/dist/{acp-cli-SgZGC8og.js → acp-cli-h36Zuriy.js} +3 -3
  3. package/dist/{agents-C4_0TzXm.js → agents-B2jtcp_Y.js} +8 -8
  4. package/dist/{agents.config-D9Ufj9CE.js → agents.config-ButbIjGA.js} +1 -1
  5. package/dist/{agents.config-Bneyaqn6.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-mSUx5I34.js → audio-preflight-B_VLZd_F.js} +7 -7
  8. package/dist/{audio-preflight-Cpsd8C3J.js → audio-preflight-CSix46JB.js} +13 -13
  9. package/dist/{audio-preflight-5w1q1hWh.js → audio-preflight-DGpde3Ae.js} +13 -13
  10. package/dist/{audio-preflight-BiAp3Hvj.js → audio-preflight-k4jOy8Bo.js} +7 -7
  11. package/dist/{audit-BCHYqYge.js → audit-BbhuQjTl.js} +7 -7
  12. package/dist/{audit-FH7mu_3g.js → audit-BmuBsZal.js} +7 -7
  13. package/dist/{auth-choice-B8qrETy7.js → auth-choice-BMHb00f1.js} +7 -7
  14. package/dist/{auth-choice-5u4JonD1.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-CufnkY4K.js → banner-BoFDxo1X.js} +1 -1
  19. package/dist/{browser-cli-n1RQ8OQs.js → browser-cli-Bu0BnRct.js} +4 -4
  20. package/dist/{browser-cli-Cmyh_mQi.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-BKOIc76f.js → call-6AGLOo_A.js} +1 -1
  25. package/dist/{call-C30ffTSt.js → call-TvMa4u8t.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-options-BBDX9s3H.js → channel-options-BzQJoPFc.js} +1 -1
  28. package/dist/{channel-options-CxOu5Gvn.js → channel-options-D1K0w33c.js} +1 -1
  29. package/dist/{channel-web-DxSaM7GA.js → channel-web-NaWX5pUl.js} +8 -8
  30. package/dist/{channels-cli-CB6lWL72.js → channels-cli-BGX2AX0X.js} +38 -38
  31. package/dist/{channels-cli-CvtvmTOx.js → channels-cli-KVy9GUcY.js} +39 -39
  32. package/dist/{chrome-CPwj5x24.js → chrome-CaijV4gw.js} +1 -1
  33. package/dist/{chrome-CUsfMVUk.js → chrome-Cgiw9tI6.js} +1 -1
  34. package/dist/{chrome-1cQdPKbv.js → chrome-DX-9I4dn.js} +1 -1
  35. package/dist/{chrome-DPu6LSX4.js → chrome-DrxNYzTD.js} +8 -8
  36. package/dist/cli/daemon-cli.js +1 -1
  37. package/dist/{cli-CU_pJKCD.js → cli-DAaNQKv7.js} +33 -33
  38. package/dist/{cli-cDOiHmL7.js → cli-MBTHCM04.js} +34 -34
  39. package/dist/{command-registry-D1zcgjTn.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-DWcx6gc6.js → completion-cli-By9Hj91p.js} +1 -1
  45. package/dist/{completion-cli-C8TsFimX.js → completion-cli-E2HmAubG.js} +2 -2
  46. package/dist/{config-ClXqj_D1.js → config-BUHRlrbS.js} +2 -1
  47. package/dist/{config-DehS9e5w.js → config-COvlkain.js} +2 -1
  48. package/dist/{config-CvuX_y8t.js → config-C_1uZzwy.js} +2 -1
  49. package/dist/{config-BLe0R4JX.js → config-DB5jMj3Z.js} +2 -1
  50. package/dist/{config-cli-CEp26CMt.js → config-cli-DaV2gvHS.js} +3 -3
  51. package/dist/{config-cli-DcjOWFbW.js → config-cli-gvLM_Jmx.js} +3 -3
  52. package/dist/{config-guard-Ix_EcPkt.js → config-guard-CP12zw3r.js} +2 -2
  53. package/dist/{config-guard-CGgFpviD.js → config-guard-DLAUq-eu.js} +5 -5
  54. package/dist/{config-validation-BQnULegl.js → config-validation-BdUdtuuI.js} +1 -1
  55. package/dist/{config-validation-Ct_myZSl.js → config-validation-CJNWEllT.js} +1 -1
  56. package/dist/{configure-DbqI2Bgi.js → configure-BPdAIpJb.js} +11 -11
  57. package/dist/{configure-B3aYKtwN.js → configure-DjRUXJNv.js} +11 -11
  58. package/dist/{control-service-CZ8lXYgi.js → control-service-CwdjvhxE.js} +4 -4
  59. package/dist/{control-service-DI1Do6Nn.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-NJy3v3Eb.js → cron-cli-BVdg2ZHh.js} +4 -4
  63. package/dist/{cron-cli-BH6kt3EZ.js → cron-cli-CWybZWLu.js} +4 -4
  64. package/dist/{daemon-cli-CweZn-1O.js → daemon-cli-A0V_cYcw.js} +6 -6
  65. package/dist/{daemon-cli-BuOGkn7L.js → daemon-cli-BSKnv95o.js} +6 -6
  66. package/dist/daemon-cli.js +1 -0
  67. package/dist/{daemon-runtime-C1t_OfMD.js → daemon-runtime-BgbGrT3P.js} +1 -1
  68. package/dist/{daemon-runtime-D1K-9VEC.js → daemon-runtime-DtGPdsmL.js} +1 -1
  69. package/dist/{deliver-CIc_l0o6.js → deliver-CUJWonlP.js} +3 -3
  70. package/dist/{deliver-BorDF5OG.js → deliver-DXVMhb3A.js} +2 -2
  71. package/dist/{deliver-DqqfC-g1.js → deliver-sMuSzZX6.js} +3 -3
  72. package/dist/{deliver-D8xILUUI.js → deliver-wRQauy5B.js} +2 -2
  73. package/dist/{devices-cli-BE5ZzcA7.js → devices-cli-Bwg8gUuS.js} +3 -3
  74. package/dist/{devices-cli-BUdOf8m2.js → devices-cli-DBDevKR4.js} +3 -3
  75. package/dist/{directory-cli-DQHIn9um.js → directory-cli-2W4B1Ct_.js} +2 -2
  76. package/dist/{directory-cli-BBdctcDF.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-mCiUyfvk.js → dns-cli-Dc8SoCMN.js} +2 -2
  80. package/dist/{dns-cli-6H_E37de.js → dns-cli-go7hrLbV.js} +2 -2
  81. package/dist/{doctor-completion-CXUM27y3.js → doctor-completion-CJ6GgqdP.js} +1 -1
  82. package/dist/{doctor-completion-CAdewURI.js → doctor-completion-cGUMfSWW.js} +1 -1
  83. package/dist/{doctor-config-flow-CthAM9my.js → doctor-config-flow-CSyqq_3u.js} +3 -3
  84. package/dist/{doctor-config-flow-BWD9G2UQ.js → doctor-config-flow-DpVhYkFY.js} +3 -3
  85. package/dist/entry.js +1 -1
  86. package/dist/{exec-approvals-cli-CYKHeoEA.js → exec-approvals-cli-Bc7-sWEN.js} +5 -5
  87. package/dist/{exec-approvals-cli-CjU3pZzx.js → exec-approvals-cli-NGv-JYZx.js} +5 -5
  88. package/dist/extensionAPI.js +18 -18
  89. package/dist/{gateway-cli-Bs96hk7L.js → gateway-cli-BACTzHef.js} +52 -52
  90. package/dist/{gateway-cli-n-kmAuP8.js → gateway-cli-DIUZJz3l.js} +51 -51
  91. package/dist/{gateway-rpc-CTqBFfgd.js → gateway-rpc-CzQ2-09T.js} +1 -1
  92. package/dist/{gateway-rpc-0C2uJScX.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-DFYRIWTO.js → glass-ui-ws-BBYLD-43.js} +43 -43
  97. package/dist/{glass-ui-ws-mIHlWvBv.js → glass-ui-ws-DMW9fQLQ.js} +42 -42
  98. package/dist/{health-gsbXEgFI.js → health-BIgxejdY.js} +5 -5
  99. package/dist/{health-CpbZDInE.js → health-D9sE5ymK.js} +5 -5
  100. package/dist/{hooks-cli-iVG6fkFc.js → hooks-cli-DnvETK6m.js} +34 -34
  101. package/dist/{hooks-cli-SJWnM2SY.js → hooks-cli-EthBM_qY.js} +35 -35
  102. package/dist/{image-GHA29jwQ.js → image-Bf_jHnTg.js} +3 -3
  103. package/dist/{image-DWOvY8sR.js → image-CEcLOmLW.js} +3 -3
  104. package/dist/{image-DIzd7Gw9.js → image-DCArHTqR.js} +3 -3
  105. package/dist/{image-DrkD-6sg.js → image-Kl1J-62v.js} +3 -3
  106. package/dist/index.js +42 -42
  107. package/dist/{lifecycle-core-CPLYFbS4.js → lifecycle-core-fFRFJvPD.js} +2 -2
  108. package/dist/{lifecycle-core-CE8aXuLe.js → lifecycle-core-pG9T1o7U.js} +2 -2
  109. package/dist/llm-slug-generator.js +18 -18
  110. package/dist/{login-C5eMLg1G.js → login-BwU6oNNU.js} +2 -2
  111. package/dist/{login-DNeGXcjV.js → login-CM1U-ARd.js} +2 -2
  112. package/dist/{login-BcCF4noU.js → login-CvotLxMc.js} +2 -2
  113. package/dist/{login-_Ynqrjet.js → login-J-hL4MZQ.js} +2 -2
  114. package/dist/{login-qr-E4YwhoPt.js → login-qr-CADWVR1b.js} +3 -3
  115. package/dist/{login-qr-CYEYc0Vo.js → login-qr-CW01jgLl.js} +3 -3
  116. package/dist/{login-qr-DjXNemMm.js → login-qr-CiPw9ee6.js} +3 -3
  117. package/dist/{login-qr-CzD7_Pru.js → login-qr-_FriwsNr.js} +3 -3
  118. package/dist/{logs-cli-CIQ4qmRW.js → logs-cli-DPaTYFru.js} +4 -4
  119. package/dist/{logs-cli-BLp5AOM0.js → logs-cli-mM7GM-9Q.js} +4 -4
  120. package/dist/{manager-oQJvFR6J.js → manager-Cw42HtQ7.js} +2 -2
  121. package/dist/{manager-Oiy1uHsu.js → manager-D0d-bOOe.js} +2 -2
  122. package/dist/{manager-BmHL5ETi.js → manager-D5ZbBYmN.js} +2 -2
  123. package/dist/{manager-CPQ2pEj3.js → manager-DqkRhYYl.js} +2 -2
  124. package/dist/{memory-cli-CGRSXKeF.js → memory-cli-C7w-I03k.js} +5 -5
  125. package/dist/{memory-cli-BUoM-v1-.js → memory-cli-Pp2xuPKC.js} +5 -5
  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-sW2MkIv9.js → model-catalog-61-kKlKu.js} +4 -4
  130. package/dist/{model-catalog-DZbVIJnH.js → model-catalog-QboGjwLO.js} +4 -4
  131. package/dist/{model-picker-BJBeaNrK.js → model-picker-CSnZDydf.js} +3 -3
  132. package/dist/{model-picker-DUl7Gvdh.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-LtuCAbk5.js → models-B_oSANn2.js} +14 -14
  136. package/dist/{models-cli-CB2zHB3Q.js → models-cli-CzdeeUpE.js} +40 -40
  137. package/dist/{models-cli-DEQCqsfo.js → models-cli-u62LAXdh.js} +39 -39
  138. package/dist/{models-config-BH6-rmtt.js → models-config-BTd2aHYU.js} +2 -2
  139. package/dist/{models-config-DT09Fas0.js → models-config-CMJN_5Vh.js} +2 -2
  140. package/dist/{node-cli-znp1IPL2.js → node-cli-BEvFRkYC.js} +10 -10
  141. package/dist/{node-cli-BnZT8tc-.js → node-cli-BQyxhqF5.js} +10 -10
  142. package/dist/{nodes-cli-D3bHqKX1.js → nodes-cli-C2hHbQ47.js} +4 -4
  143. package/dist/{nodes-cli-C8L5ablK.js → nodes-cli-FbzJ-7tA.js} +4 -4
  144. package/dist/{onboard-B725u5vG.js → onboard-CwNzqMn1.js} +10 -10
  145. package/dist/{onboard-Dz7lPFv1.js → onboard-DcBV5QjY.js} +10 -10
  146. package/dist/{onboard-channels-DPb8R8S3.js → onboard-channels-C0wtv2Cp.js} +2 -2
  147. package/dist/{onboard-channels-DjG2jZUq.js → onboard-channels-C79jGR3_.js} +2 -2
  148. package/dist/{onboard-custom-CFqoXgjd.js → onboard-custom-CwTH9Yg-.js} +3 -3
  149. package/dist/{onboard-custom-in5WChfX.js → onboard-custom-adn6IG8i.js} +3 -3
  150. package/dist/{onboard-helpers-BmDQMRZ7.js → onboard-helpers-Bt2zwkKD.js} +2 -2
  151. package/dist/{onboard-helpers-_sSsfEAa.js → onboard-helpers-CKM-mWPH.js} +2 -2
  152. package/dist/{onboard-remote-CBEIs-Ew.js → onboard-remote-C-4NSq0W.js} +1 -1
  153. package/dist/{onboard-remote-BeAAhzmD.js → onboard-remote-P6H-x_vQ.js} +1 -1
  154. package/dist/{onboard-skills-EVFmwR8Q.js → onboard-skills-C9ZAlUR6.js} +2 -2
  155. package/dist/{onboard-skills-Bx_OM5v0.js → onboard-skills-DlbXWPzM.js} +2 -2
  156. package/dist/{onboarding-qxWeXuGM.js → onboarding-C2vTobUO.js} +11 -11
  157. package/dist/{onboarding-D-FQIiBn.js → onboarding-CT_P8dE6.js} +11 -11
  158. package/dist/{onboarding.finalize-D_gWQwW0.js → onboarding.finalize-BdeyH2Eh.js} +39 -39
  159. package/dist/{onboarding.finalize-DJTQnGkJ.js → onboarding.finalize-DPQDvxEp.js} +41 -41
  160. package/dist/{onboarding.gateway-config-r7VeJWM7.js → onboarding.gateway-config-DKVcVoUF.js} +5 -5
  161. package/dist/{onboarding.gateway-config-Boplq1Mn.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-yaYfpPTu.js → outbound-0ici4ICv.js} +1 -1
  165. package/dist/{outbound-DRslTBga.js → outbound-BEumB8qs.js} +1 -1
  166. package/dist/{outbound-B_cf2WkB.js → outbound-CzuytbQ5.js} +1 -1
  167. package/dist/{outbound-DPCAcHLQ.js → outbound-DTZdWgeZ.js} +1 -1
  168. package/dist/{pairing-cli-DOMZSDiT.js → pairing-cli-CUu3LyX0.js} +4 -4
  169. package/dist/{pairing-cli-DFgfVeeY.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-Do26xypW.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-BINp4yHJ.js → pi-embedded-DUUw7-tO.js} +249 -62
  179. package/dist/{pi-embedded-C6BUGEuF.js → pi-embedded-DmUwEsG1.js} +245 -58
  180. package/dist/{pi-embedded-helpers-Dfp-iKzJ.js → pi-embedded-helpers-CLip13MP.js} +6 -6
  181. package/dist/{pi-embedded-helpers-Cs0TgOaH.js → pi-embedded-helpers-D57pDra0.js} +1 -1
  182. package/dist/{pi-embedded-helpers-BDwdFGX-.js → pi-embedded-helpers-D9Rvkx8A.js} +6 -6
  183. package/dist/{pi-embedded-helpers-jynCNZsb.js → pi-embedded-helpers-f7cnM8BN.js} +1 -1
  184. package/dist/{pi-tools.policy-vws0LV7U.js → pi-tools.policy-BV1RWUnE.js} +2 -2
  185. package/dist/{pi-tools.policy-eb_uvOQV.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-C61W5IWr.js → plugin-registry-C80itc6t.js} +2 -2
  189. package/dist/{plugin-registry-D1cKRWYQ.js → plugin-registry-DrYURaBs.js} +2 -2
  190. package/dist/plugin-sdk/agents/synthetic-models.d.ts +1 -1
  191. package/dist/plugin-sdk/agents/system-prompt.d.ts +2 -1
  192. package/dist/plugin-sdk/{api-key-rotation-Qy7QGV8_.js → api-key-rotation-DNKq8sDG.js} +1 -1
  193. package/dist/plugin-sdk/{audio-preflight-CdG1OBN2.js → audio-preflight-D5K2YgFn.js} +7 -7
  194. package/dist/plugin-sdk/{channel-web-DFVIpsZB.js → channel-web-Bkv0U1ox.js} +7 -7
  195. package/dist/plugin-sdk/{chrome-XyjVFCkY.js → chrome-DJ6LIeRu.js} +1 -1
  196. package/dist/plugin-sdk/{commands-registry-CvppXodz.js → commands-registry-un-LmdXo.js} +1 -1
  197. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +2 -0
  198. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +1 -0
  199. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
  200. package/dist/plugin-sdk/config/zod-schema.d.ts +1 -0
  201. package/dist/plugin-sdk/{config-DG32gDDp.js → config-8u0WDlgj.js} +2 -1
  202. package/dist/plugin-sdk/{deliver-BdbnTrPD.js → deliver-Bip_mCNI.js} +2 -2
  203. package/dist/plugin-sdk/{image-B4_TBNqR.js → image-DX2HTDUY.js} +3 -3
  204. package/dist/plugin-sdk/index.js +22 -22
  205. package/dist/plugin-sdk/{login-Dey5tDpn.js → login-CKLot2mH.js} +2 -2
  206. package/dist/plugin-sdk/{login-qr-Tx8z1frn.js → login-qr-DOVV9TXm.js} +3 -3
  207. package/dist/plugin-sdk/{manager-RdPsBbBU.js → manager-BItSTruD.js} +2 -2
  208. package/dist/plugin-sdk/{model-selection-D6J2MZsj.js → model-selection-aEd_4vFO.js} +6 -2
  209. package/dist/plugin-sdk/{outbound-BpzsDbEV.js → outbound-uamhXJrA.js} +1 -1
  210. package/dist/plugin-sdk/{pi-auth-json-BmWuNdJA.js → pi-auth-json-FyiScmI7.js} +1 -1
  211. package/dist/plugin-sdk/{pi-embedded-helpers-OWtoPEg8.js → pi-embedded-helpers-JY-1kHdk.js} +6 -6
  212. package/dist/plugin-sdk/{pw-ai-OhVopvbb.js → pw-ai-BG29-fkq.js} +3 -3
  213. package/dist/plugin-sdk/{replies-DiFTMGgM.js → replies-B1pTxZOl.js} +1 -1
  214. package/dist/plugin-sdk/{reply-v8ed4JLy.js → reply-B576Fhv8.js} +245 -58
  215. package/dist/plugin-sdk/{runner-BUXsfUip.js → runner-BL2UhCUB.js} +5 -5
  216. package/dist/plugin-sdk/{send-DXcq1jzH.js → send-CARqECtw.js} +1 -1
  217. package/dist/plugin-sdk/{send-Drdgnfr_.js → send-CJEdtrU7.js} +1 -1
  218. package/dist/plugin-sdk/{send-CGSsrvd1.js → send-DnSED91h.js} +2 -2
  219. package/dist/plugin-sdk/{send-BXvJJUV_.js → send-e3xSJ8To.js} +1 -1
  220. package/dist/plugin-sdk/{send-BbFwAS_k.js → send-oZqyXIiB.js} +1 -1
  221. package/dist/plugin-sdk/{session-CX5KhlOe.js → session-CzQVSJF5.js} +1 -1
  222. package/dist/plugin-sdk/{skill-commands-NTPqO_az.js → skill-commands-Cwps3qpb.js} +1 -1
  223. package/dist/plugin-sdk/{web-DfIRv_Mx.js → web-mZ4uDhBl.js} +22 -22
  224. package/dist/plugin-sdk/{whatsapp-actions-Dh6Y2fu9.js → whatsapp-actions-1-Mp-KwB.js} +3 -3
  225. package/dist/{plugins-cli-ClY_BPg9.js → plugins-cli-Cv9eBXlW.js} +34 -34
  226. package/dist/{plugins-cli-UmtKEuxj.js → plugins-cli-Dnq6iHh8.js} +35 -35
  227. package/dist/{program-context-C2XeNCxI.js → program-context-D_OS2K8H.js} +38 -38
  228. package/dist/{program-CNsuYlJt.js → program-iimCXTOX.js} +41 -41
  229. package/dist/{prompt-select-styled-CiYSpQIf.js → prompt-select-styled-B1V6teLm.js} +17 -17
  230. package/dist/{prompt-select-styled-CgsYQqlJ.js → prompt-select-styled-BHDOHzSI.js} +17 -17
  231. package/dist/{provider-auth-helpers-CVAbJckC.js → provider-auth-helpers-nXDpwc0f.js} +4 -4
  232. package/dist/{provider-auth-helpers-XIYHuUnj.js → provider-auth-helpers-ozVqcIrR.js} +4 -4
  233. package/dist/{push-apns-6y-7OuAU.js → push-apns-BZ7FEmsK.js} +1 -1
  234. package/dist/{push-apns-9q7Pl5I0.js → push-apns-Dmo8BBk4.js} +1 -1
  235. package/dist/{pw-ai-BdNmRxEw.js → pw-ai-3nNWe272.js} +3 -3
  236. package/dist/{pw-ai-Dnh_iopr.js → pw-ai-BUH9Ew6q.js} +3 -3
  237. package/dist/{pw-ai-BfUWg8Eh.js → pw-ai-DQuj9c2U.js} +3 -3
  238. package/dist/{pw-ai-C9noP7iN.js → pw-ai-DhirpjMU.js} +3 -3
  239. package/dist/{qr-cli-Cac34dCs.js → qr-cli-CGS8DyNl.js} +2 -2
  240. package/dist/{qr-cli-BbRZOhwI.js → qr-cli-CHnzhKoc.js} +2 -2
  241. package/dist/{register.agent-Ys85zXmm.js → register.agent-BOuUXJJS.js} +43 -43
  242. package/dist/{register.agent-DmLJVv4N.js → register.agent-DYzV2wmB.js} +45 -45
  243. package/dist/{register.configure-BwmAY5TF.js → register.configure-C4oljj3F.js} +47 -47
  244. package/dist/{register.configure-DYuK1UkU.js → register.configure-CHvDZtU1.js} +48 -48
  245. package/dist/{register.maintenance-625En1kE.js → register.maintenance-DIylvylR.js} +44 -44
  246. package/dist/{register.maintenance-BQa25CA8.js → register.maintenance-DhprP_dA.js} +46 -46
  247. package/dist/{register.message-CDpK3rbI.js → register.message-B9SgsGyt.js} +35 -35
  248. package/dist/{register.message-DKeM6mQo.js → register.message-DF4_1evm.js} +34 -34
  249. package/dist/{register.onboard-CbvkWFq5.js → register.onboard-CdwNCs_L.js} +42 -42
  250. package/dist/{register.onboard-DtMjj81J.js → register.onboard-DOJyYmJS.js} +43 -43
  251. package/dist/{register.setup-BHhLns2f.js → register.setup-0Due7c9e.js} +43 -43
  252. package/dist/{register.setup-DdX4Ahvt.js → register.setup-DxV_KIbP.js} +42 -42
  253. package/dist/{register.status-health-sessions-D1KvwnF9.js → register.status-health-sessions-C584c9tm.js} +38 -38
  254. package/dist/{register.status-health-sessions-CqMFel_o.js → register.status-health-sessions-D1tqd_k_.js} +40 -40
  255. package/dist/{register.subclis-su5EMHvC.js → register.subclis-DuON_fJu.js} +28 -28
  256. package/dist/{replies-zeeuLUij.js → replies-BXYTRk0Z.js} +1 -1
  257. package/dist/{replies-DtdP8R93.js → replies-Bhx469BX.js} +1 -1
  258. package/dist/{replies-DqyX2Vln.js → replies-BnmCXHdE.js} +1 -1
  259. package/dist/{replies-Dzc6eCFS.js → replies-UxER0fi1.js} +1 -1
  260. package/dist/{reply-DyFibFiG.js → reply-BzqL_47o.js} +257 -70
  261. package/dist/{routes-CEjKic_-.js → routes-DH3bW8wF.js} +3 -3
  262. package/dist/{routes-B7FWIw81.js → routes-lbqRkIBb.js} +3 -3
  263. package/dist/{rpc-CV10Y2YL.js → rpc-BkvZNT-M.js} +1 -1
  264. package/dist/{rpc-CR9IjVRa.js → rpc-DYXJGfFr.js} +1 -1
  265. package/dist/{run-main-CRPU46XB.js → run-main-CcFCZNx_.js} +53 -53
  266. package/dist/{runner-v0fS4J7T.js → runner-BHZy2rvh.js} +5 -5
  267. package/dist/{runner-w5reqY02.js → runner-CNY0hwm-.js} +5 -5
  268. package/dist/{runner-BkANJiWS.js → runner-CplzHJ1b.js} +5 -5
  269. package/dist/{runner-CTglx_CV.js → runner-Cu0qqBIE.js} +5 -5
  270. package/dist/{sandbox-DTzJlbvf.js → sandbox-B0QOR7Cn.js} +5 -5
  271. package/dist/{sandbox-cli-B4VN_9mV.js → sandbox-cli-CPkB96x-.js} +7 -7
  272. package/dist/{sandbox-cli-R_ZOY_KC.js → sandbox-cli-DAY7EbKl.js} +7 -7
  273. package/dist/{sandbox-BpIrSDhl.js → sandbox-psIl5_gT.js} +5 -5
  274. package/dist/{security-cli-DmpyxTgQ.js → security-cli-Bolpxy60.js} +12 -12
  275. package/dist/{security-cli-BMB3kCFA.js → security-cli-C2ZKf8ET.js} +12 -12
  276. package/dist/{send-CC2vm0xU.js → send-8dFVpIIg.js} +1 -1
  277. package/dist/{send-CEjpAJ8N.js → send-BPqK6C8h.js} +1 -1
  278. package/dist/{send-CZ18Xq5n.js → send-BVRNZ9hM.js} +1 -1
  279. package/dist/{send-Bx04WqH5.js → send-BbscKwuU.js} +1 -1
  280. package/dist/{send-Dm4UYQsf.js → send-Bj2SQQVP.js} +1 -1
  281. package/dist/{send-1iB7Rdwp.js → send-Bj3PJmrF.js} +1 -1
  282. package/dist/{send-BbV4XqMl.js → send-Bv-112XA.js} +1 -1
  283. package/dist/{send-CRWQglv9.js → send-C8fjzstb.js} +1 -1
  284. package/dist/{send-CltKx_vS.js → send-C8ohJBK5.js} +2 -2
  285. package/dist/{send-tDTl6xgz.js → send-CIvsJpdo.js} +2 -2
  286. package/dist/{send-BLT3lTZy.js → send-CUhH6I6A.js} +1 -1
  287. package/dist/{send-BR3reUOE.js → send-CWrxWRjz.js} +1 -1
  288. package/dist/{send-BXiiQprI.js → send-Ci0uVV_k.js} +1 -1
  289. package/dist/{send-hJthT6M_.js → send-Ci3UEBVK.js} +1 -1
  290. package/dist/{send-CQzO_Tg0.js → send-CzxMGZc_.js} +2 -2
  291. package/dist/{send-DyK4u4yH.js → send-DEcC_kQP.js} +1 -1
  292. package/dist/{send-DVLEgg9H.js → send-DPKghOxz.js} +1 -1
  293. package/dist/{send-Bt4UsVrd.js → send-DZbplWNh.js} +1 -1
  294. package/dist/{send-DDrpEKUg.js → send-DiBs_eJc.js} +2 -2
  295. package/dist/{send-EQ1insgp.js → send-FW1P3D82.js} +1 -1
  296. package/dist/{server-context-DbcjnRHG.js → server-context-AHh7m1PV.js} +5 -5
  297. package/dist/{server-context-BcjcQhiM.js → server-context-cw7ha2ct.js} +5 -5
  298. package/dist/{server-methods-U_lDP83A.js → server-methods-BriHyeA7.js} +17 -17
  299. package/dist/{server-methods-56m79WbR.js → server-methods-CJ7xa1ot.js} +18 -18
  300. package/dist/{server-node-events-DpGswbj8.js → server-node-events-CCId0gGy.js} +34 -34
  301. package/dist/{server-node-events-Q9J_E8Ce.js → server-node-events-_q8duhVi.js} +35 -35
  302. package/dist/{session-BvXsNdtA.js → session-B4Bibpie.js} +1 -1
  303. package/dist/{session-C86mCuOs.js → session-D4FMCkcS.js} +1 -1
  304. package/dist/{session-1Q4kg4xp.js → session-Dw3zM2St.js} +1 -1
  305. package/dist/{session-B4JR6zUJ.js → session-lD2CnIWX.js} +1 -1
  306. package/dist/{session-utils-CFvGKxdu.js → session-utils-DySzoW4O.js} +4 -4
  307. package/dist/{sessions-m60NabL_.js → sessions-BVbSbD60.js} +4 -4
  308. package/dist/{sessions-B3nP13Fw.js → sessions-CRTZnttk.js} +2 -2
  309. package/dist/{sessions-BdeJp6uY.js → sessions-L4e356Ra.js} +2 -2
  310. package/dist/{shared-mv9M8Mzc.js → shared-DZ9YCnZC.js} +2 -2
  311. package/dist/{shared-sOiAK5kN.js → shared-oaw6SrnD.js} +2 -2
  312. package/dist/{skill-commands-CWySL97a.js → skill-commands-BlfEmZ8t.js} +1 -1
  313. package/dist/{skill-commands-B64uavY9.js → skill-commands-C2kxEz5h.js} +1 -1
  314. package/dist/{skill-commands-DrFCB9F9.js → skill-commands-CSBmZ_di.js} +1 -1
  315. package/dist/{skill-commands-DWcJOIzP.js → skill-commands-C_ZNSYNS.js} +1 -1
  316. package/dist/{skills-cli-DVTw-NM0.js → skills-cli-D9gvgM58.js} +2 -2
  317. package/dist/{skills-cli-B7FG8Ft4.js → skills-cli-DBVcmBEp.js} +2 -2
  318. package/dist/{status-D4KjZ3qi.js → status-BUX2e6T-.js} +11 -11
  319. package/dist/{status-DIYjr2wp.js → status-C6UoBmkd.js} +2 -2
  320. package/dist/{status-DbXRbJqY.js → status-DJDE9f6i.js} +12 -12
  321. package/dist/{status-BNmYNm1S.js → status-oObYVZk-.js} +2 -2
  322. package/dist/{status.update-DKLvc9EH.js → status.update-CbAFtv61.js} +1 -1
  323. package/dist/{status.update-CbXOcYqG.js → status.update-qDyKo2AJ.js} +1 -1
  324. package/dist/{subagent-registry-Ct3GvWVn.js → subagent-registry-BmP1Rhns.js} +258 -71
  325. package/dist/{system-cli-B_KTvR0v.js → system-cli-DpluDf4c.js} +4 -4
  326. package/dist/{system-cli-9b3AzE_M.js → system-cli-gtr03ReO.js} +4 -4
  327. package/dist/{systemd-hints-D_u4AuIu.js → systemd-hints-Bmr_bzjF.js} +1 -1
  328. package/dist/{systemd-hints-BE7qhp3n.js → systemd-hints-CnG98ooq.js} +1 -1
  329. package/dist/{tui-BViOdgFZ.js → tui-DnLFki4B.js} +16 -7
  330. package/dist/{tui-oo_JjD-G.js → tui-UMEqttti.js} +16 -7
  331. package/dist/{tui-cli-B97jQaQp.js → tui-cli-ChVrbXQ7.js} +11 -11
  332. package/dist/{tui-cli-DKQz32oa.js → tui-cli-DaL5S2ce.js} +11 -11
  333. package/dist/{update-cli-C9S00L1E.js → update-cli-Bxb34ox7.js} +49 -49
  334. package/dist/{update-cli-Dhk0Yxsm.js → update-cli-C-zL3WoC.js} +47 -47
  335. package/dist/{update-runner-DBZOvTzN.js → update-runner-D9rjTCpa.js} +1 -1
  336. package/dist/{update-runner-BnIIcsqA.js → update-runner-rav9ZMjZ.js} +1 -1
  337. package/dist/{web-5uLk4OEM.js → web-4xYayj1G.js} +37 -37
  338. package/dist/{web-mXHyxR_l.js → web-BS91XHKA.js} +21 -21
  339. package/dist/{web-8NQJ75ip.js → web-DlKbVYgh.js} +37 -37
  340. package/dist/{web-f7lkf_un.js → web-OmlhMCcZ.js} +21 -21
  341. package/dist/{webhooks-cli-BLi_usfE.js → webhooks-cli-BxXpx8Hu.js} +2 -2
  342. package/dist/{webhooks-cli-Dz9n2L0-.js → webhooks-cli-CvbEWtdd.js} +2 -2
  343. package/dist/{whatsapp-actions-M8kjDd9l.js → whatsapp-actions-7xW0TEHg.js} +3 -3
  344. package/dist/{whatsapp-actions-ChtHuvdU.js → whatsapp-actions-B3zu-BhB.js} +3 -3
  345. package/dist/{whatsapp-actions-B4YPuD2Q.js → whatsapp-actions-BWERIEcF.js} +3 -3
  346. package/dist/{whatsapp-actions-6S6PNs2p.js → whatsapp-actions-DAFOi466.js} +3 -3
  347. package/dist/{with-timeout-2zPYOOzh.js → with-timeout-C6nbJrH1.js} +1 -1
  348. package/dist/{with-timeout-gaHpaiis.js → with-timeout-CNkLG3QR.js} +1 -1
  349. package/docs/reference/templates/SYMIPULSE.md +1 -0
  350. package/package.json +1 -1
@@ -8,40 +8,40 @@ import { C as createInternalHookEvent, T as triggerInternalHook, _ as clearPlugi
8
8
  import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
9
9
  import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
10
10
  import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentModelPrimary, r as resolveAgentConfig, s as resolveAgentSkillsFilter, u as resolveEffectiveModelFallbacks, w as filterBootstrapFilesForSession } from "./agent-scope-CgUHAtCo.js";
11
- import { At as ensureAuthProfileStore, Bt as normalizeSecretInput, Et as markAuthProfileGood, Ft as resolveSymiAgentDir, G as getCustomProviderApiKey, Gt as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, It as withFileLock, K as requireApiKey, Kt as DEFAULT_PROVIDER, Pt as resolveAuthStorePathForDisplay, Q as getShellPathFromLoginShell, Tt as listProfilesForProvider, U as createOllamaStreamFn, Vt as resolveAuthProfileDisplayLabel, W as getApiKeyForModel, Wt as DEFAULT_CONTEXT_TOKENS, X as resolveModelAuthMode, Y as resolveEnvApiKey, c as normalizeModelRef$2, et as resolveShellEnvFallbackTimeoutMs, ft as resolveAuthProfileOrder, g as resolveModelRefFromString, gt as markAuthProfileUsed, ht as markAuthProfileFailure, i as findNormalizedProviderValue, l as normalizeProviderId, m as resolveDefaultModelForAgent, mt as isProfileInCooldown, n as buildConfiguredAllowlistKeys, o as isCliProvider, p as resolveConfiguredModelRef, pt as getSoonestCooldownExpiry, q as resolveApiKeyForProvider, r as buildModelAliasIndex, s as modelKey, t as buildAllowedModelSet, u as parseModelRef, v as resolveSubagentSpawnModelSelection, vt as resolveApiKeyForProfile, wt as dedupeProfileIds, y as resolveThinkingDefault } from "./model-selection-Csawd2_i.js";
11
+ import { At as ensureAuthProfileStore, Bt as normalizeSecretInput, Et as markAuthProfileGood, Ft as resolveSymiAgentDir, G as getCustomProviderApiKey, Gt as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, It as withFileLock, K as requireApiKey, Kt as DEFAULT_PROVIDER, Pt as resolveAuthStorePathForDisplay, Q as getShellPathFromLoginShell, Tt as listProfilesForProvider, U as createOllamaStreamFn, Vt as resolveAuthProfileDisplayLabel, W as getApiKeyForModel, Wt as DEFAULT_CONTEXT_TOKENS, X as resolveModelAuthMode, Y as resolveEnvApiKey, c as normalizeModelRef$2, et as resolveShellEnvFallbackTimeoutMs, ft as resolveAuthProfileOrder, g as resolveModelRefFromString, gt as markAuthProfileUsed, ht as markAuthProfileFailure, i as findNormalizedProviderValue, l as normalizeProviderId, m as resolveDefaultModelForAgent, mt as isProfileInCooldown, n as buildConfiguredAllowlistKeys, o as isCliProvider, p as resolveConfiguredModelRef, pt as getSoonestCooldownExpiry, q as resolveApiKeyForProvider, r as buildModelAliasIndex, s as modelKey, t as buildAllowedModelSet, u as parseModelRef, v as resolveSubagentSpawnModelSelection, vt as resolveApiKeyForProfile, wt as dedupeProfileIds, y as resolveThinkingDefault } from "./model-selection-BBrZnKDw.js";
12
12
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DAu1a6BX.js";
13
13
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
14
14
  import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
15
15
  import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
16
16
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-aT-I_DTX.js";
17
- import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, 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 createDiscordClient, 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 resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-CC2vm0xU.js";
18
- import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-BLe0R4JX.js";
17
+ import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, 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 createDiscordClient, 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 resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-8dFVpIIg.js";
18
+ import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-DB5jMj3Z.js";
19
19
  import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-C4BxOMWX.js";
20
20
  import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
21
21
  import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
22
22
  import { n as resolveConversationLabel } from "./conversation-label-Bn5j3lUT.js";
23
23
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CmmmT8IP.js";
24
- import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-BkANJiWS.js";
25
- import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-DIzd7Gw9.js";
26
- import { t as ensureSymiModelsJson } from "./models-config-BH6-rmtt.js";
24
+ import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CplzHJ1b.js";
25
+ import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-DCArHTqR.js";
26
+ import { t as ensureSymiModelsJson } from "./models-config-BTd2aHYU.js";
27
27
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-4uUnLc3n.js";
28
- import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-jynCNZsb.js";
29
- import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-DTzJlbvf.js";
30
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CUsfMVUk.js";
31
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-BcjcQhiM.js";
28
+ import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-f7cnM8BN.js";
29
+ import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-B0QOR7Cn.js";
30
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-Cgiw9tI6.js";
31
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-cw7ha2ct.js";
32
32
  import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-6jdJQ5ZL.js";
33
33
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BF3TeRH2.js";
34
34
  import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BBm9fwuG.js";
35
35
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
36
36
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-1OJMSAUX.js";
37
37
  import { n as getMediaDir, r as saveMediaBuffer } from "./store-r1DJSDq-.js";
38
- import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-BdeJp6uY.js";
38
+ import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-L4e356Ra.js";
39
39
  import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-BhS32F6E.js";
40
40
  import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-DKDeQZF0.js";
41
41
  import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
42
42
  import { t as resolveIMessageAccount } from "./accounts-bK-Yqdwx.js";
43
43
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DyJN4_vR.js";
44
- 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-BR3reUOE.js";
44
+ 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-CWrxWRjz.js";
45
45
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CyhzMxFA.js";
46
46
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-BzbXHcaD.js";
47
47
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DdnTeoR1.js";
@@ -51,50 +51,50 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Db3d
51
51
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
52
52
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
53
53
  import { v as runTasksWithConcurrency } from "./sqlite-Dx3J_aSE.js";
54
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DZbVIJnH.js";
54
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-QboGjwLO.js";
55
55
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-BuceUQDl.js";
56
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-gaHpaiis.js";
57
- import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, 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 parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-DqqfC-g1.js";
56
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-CNkLG3QR.js";
57
+ import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, 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 parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-sMuSzZX6.js";
58
58
  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-DjBRPfu9.js";
59
59
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJyKP.js";
60
- import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-tDTl6xgz.js";
61
- import { a as buildModelAliasLines, n as resolveModel } from "./model-CLebVu_U.js";
60
+ import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-CIvsJpdo.js";
61
+ import { a as buildModelAliasLines, n as resolveModel } from "./model-ApXxvnzl.js";
62
62
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
63
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-CGRSXKeF.js";
64
- import { i as resolveMemorySearchConfig } from "./manager-Oiy1uHsu.js";
63
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-C7w-I03k.js";
64
+ import { i as resolveMemorySearchConfig } from "./manager-D0d-bOOe.js";
65
65
  import { n as retryAsync } from "./retry-BoS4e4X_.js";
66
66
  import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-7AvoVa10.js";
67
67
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-1dhPX1NK.js";
68
68
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CEbN0fEm.js";
69
69
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DZam9q5M.js";
70
70
  import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-BNLCWX6e.js";
71
- import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-DyWjIe7d.js";
71
+ import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-B_V42ZiZ.js";
72
72
  import { Mt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CQSyCS4M.js";
73
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-C30ffTSt.js";
73
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-TvMa4u8t.js";
74
74
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
75
75
  import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
76
76
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
77
77
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DTNGXEzX.js";
78
78
  import { t as convertMarkdownTables } from "./tables-BEzT0Da4.js";
79
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-DyK4u4yH.js";
80
- import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-CFwkjcA5.js";
79
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-DEcC_kQP.js";
80
+ import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-DdUVpKvp.js";
81
81
  import { t as makeProxyFetch } from "./proxy-DU7W9XSc.js";
82
82
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-D0B0Uo-I.js";
83
83
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BMoTaVAH.js";
84
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-zeeuLUij.js";
85
- import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-DrFCB9F9.js";
84
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BXYTRk0Z.js";
85
+ import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-CSBmZ_di.js";
86
86
  import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-BG4AXrGN.js";
87
- import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-EQ1insgp.js";
88
- import { r as detectBinary } from "./onboard-helpers-_sSsfEAa.js";
89
- import { t as resolvePairingIdLabel } from "./pairing-labels-B-WwqJ-z.js";
87
+ import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-FW1P3D82.js";
88
+ import { r as detectBinary } from "./onboard-helpers-CKM-mWPH.js";
89
+ import { t as resolvePairingIdLabel } from "./pairing-labels-Ca15tgVV.js";
90
90
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BzKEDn0q.js";
91
91
  import { t as getActiveWebListener } from "./active-listener-kvXhlgwu.js";
92
92
  import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExecApprovals, f as resolveExecApprovalsFromFile, g as resolveSafeBins, h as evaluateShellAllowlist, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval, y as buildSafeBinsShellCommand } from "./exec-approvals-Kn31mBcW.js";
93
93
  import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-VBGXKdLk.js";
94
94
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CN8o4Vi3.js";
95
95
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BiwOFDEK.js";
96
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-eb_uvOQV.js";
97
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DI1Do6Nn.js";
96
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BegHNtNO.js";
97
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-D670V6cS.js";
98
98
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BUClb97_.js";
99
99
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-C8_BLnaW.js";
100
100
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DuWs0Aak.js";
@@ -2891,7 +2891,7 @@ async function createModelSelectionState(params) {
2891
2891
  }
2892
2892
  }
2893
2893
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
2894
- const { ensureAuthProfileStore } = await import("./model-selection-Csawd2_i.js").then((n) => n.dt);
2894
+ const { ensureAuthProfileStore } = await import("./model-selection-BBrZnKDw.js").then((n) => n.dt);
2895
2895
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
2896
2896
  const providerKey = normalizeProviderId(provider);
2897
2897
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -10413,7 +10413,7 @@ async function routeReply(params) {
10413
10413
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10414
10414
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10415
10415
  try {
10416
- const { deliverOutboundPayloads } = await import("./deliver-DqqfC-g1.js").then((n) => n.n);
10416
+ const { deliverOutboundPayloads } = await import("./deliver-sMuSzZX6.js").then((n) => n.n);
10417
10417
  return {
10418
10418
  ok: true,
10419
10419
  messageId: (await deliverOutboundPayloads({
@@ -12963,7 +12963,7 @@ async function describeStickerImage(params) {
12963
12963
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
12964
12964
  try {
12965
12965
  const buffer = await fs$1.readFile(imagePath);
12966
- const { describeImageWithModel } = await import("./image-DIzd7Gw9.js").then((n) => n.n);
12966
+ const { describeImageWithModel } = await import("./image-DCArHTqR.js").then((n) => n.n);
12967
12967
  return (await describeImageWithModel({
12968
12968
  buffer,
12969
12969
  fileName: "sticker.webp",
@@ -13386,7 +13386,7 @@ function createWhatsAppLoginTool() {
13386
13386
  force: Type.Optional(Type.Boolean())
13387
13387
  }),
13388
13388
  execute: async (_toolCallId, args) => {
13389
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DjXNemMm.js");
13389
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CiPw9ee6.js");
13390
13390
  if ((args?.action ?? "start") === "wait") {
13391
13391
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
13392
13392
  return {
@@ -15602,7 +15602,7 @@ async function preflightDiscordMessage(params) {
15602
15602
  let preflightTranscript;
15603
15603
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
15604
15604
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
15605
- const { transcribeFirstAudio } = await import("./audio-preflight-Cpsd8C3J.js");
15605
+ const { transcribeFirstAudio } = await import("./audio-preflight-CSix46JB.js");
15606
15606
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
15607
15607
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
15608
15608
  ctx: {
@@ -20900,8 +20900,8 @@ function buildMemorySection(params) {
20900
20900
  lines.push("");
20901
20901
  return lines;
20902
20902
  }
20903
- function buildUserIdentitySection(ownerLine, isMinimal) {
20904
- if (!ownerLine || isMinimal) return [];
20903
+ function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
20904
+ if (!ownerLine || isMinimal || isCoding) return [];
20905
20905
  return [
20906
20906
  "## Authorized Senders",
20907
20907
  ownerLine,
@@ -20925,8 +20925,8 @@ function buildTimeSection(params) {
20925
20925
  ""
20926
20926
  ];
20927
20927
  }
20928
- function buildReplyTagsSection(isMinimal) {
20929
- if (isMinimal) return [];
20928
+ function buildReplyTagsSection(isMinimal, isCoding) {
20929
+ if (isMinimal || isCoding) return [];
20930
20930
  return [
20931
20931
  "## Reply Tags",
20932
20932
  "To request a native reply/quote on supported surfaces, include one tag in your reply:",
@@ -20939,7 +20939,7 @@ function buildReplyTagsSection(isMinimal) {
20939
20939
  ];
20940
20940
  }
20941
20941
  function buildMessagingSection(params) {
20942
- if (params.isMinimal) return [];
20942
+ if (params.isMinimal || params.isCoding) return [];
20943
20943
  return [
20944
20944
  "## Messaging",
20945
20945
  "- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
@@ -20962,7 +20962,7 @@ function buildMessagingSection(params) {
20962
20962
  ];
20963
20963
  }
20964
20964
  function buildVoiceSection(params) {
20965
- if (params.isMinimal) return [];
20965
+ if (params.isMinimal || params.isCoding) return [];
20966
20966
  const hint = params.ttsHint?.trim();
20967
20967
  if (!hint) return [];
20968
20968
  return [
@@ -20971,6 +20971,71 @@ function buildVoiceSection(params) {
20971
20971
  ""
20972
20972
  ];
20973
20973
  }
20974
+ function buildVerifyYourWorkSection(params) {
20975
+ if (params.isMinimal) return [];
20976
+ const exec = params.execToolName;
20977
+ const read = params.readToolName;
20978
+ return [
20979
+ "## Verify Your Work",
20980
+ [
20981
+ "Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
20982
+ "Skipping verification is the single most common cause of incomplete or broken outputs.",
20983
+ "Treat this section as mandatory for every coding task, not optional polish."
20984
+ ].join(" "),
20985
+ "",
20986
+ "### 1. Re-read the request",
20987
+ [
20988
+ "Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
20989
+ "Extract every discrete requirement, constraint, and preference they stated.",
20990
+ "Write them down internally as a checklist.",
20991
+ "This catches drift: it is easy to start solving a related-but-different problem mid-task."
20992
+ ].join(" "),
20993
+ "",
20994
+ "### 2. Check each requirement against your output",
20995
+ [
20996
+ "Walk through your internal checklist point by point.",
20997
+ "For each requirement, locate the exact lines in your output that satisfy it.",
20998
+ "If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
20999
+ "Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
21000
+ ].join(" "),
21001
+ "",
21002
+ "### 3. Run the code",
21003
+ [
21004
+ `Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
21005
+ "Do not guess whether code works — execute it and observe the result.",
21006
+ "If the code produces errors, fix them and re-run until it succeeds.",
21007
+ "For scripts: run them with representative inputs.",
21008
+ "For libraries/modules: write and execute a minimal smoke test.",
21009
+ "For config files: validate syntax (e.g., json, yaml, toml parsers).",
21010
+ "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."
21011
+ ].join(" "),
21012
+ "",
21013
+ "### 4. Include tests when requested",
21014
+ [
21015
+ "If the user asked for tests, they are a hard requirement — not a nice-to-have.",
21016
+ "Deliver the tests alongside the implementation, not as an afterthought.",
21017
+ "Run the tests and confirm they pass before responding.",
21018
+ "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."
21019
+ ].join(" "),
21020
+ "",
21021
+ "### 5. Self-review",
21022
+ [
21023
+ `After everything above, use ${read} to re-read any files you created or modified.`,
21024
+ "Look at them with fresh eyes as if reviewing someone else's code.",
21025
+ "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).",
21026
+ "If you find problems during self-review, fix them, re-run verification, and only then respond."
21027
+ ].join(" "),
21028
+ "",
21029
+ "### Verification failures",
21030
+ [
21031
+ "If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
21032
+ "Instead, fix the issue silently and re-verify.",
21033
+ "The user should receive working, complete output — not a draft with known issues.",
21034
+ "Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
21035
+ ].join(" "),
21036
+ ""
21037
+ ];
21038
+ }
20974
21039
  function buildDocsSection(params) {
20975
21040
  const docsPath = params.docsPath?.trim();
20976
21041
  if (!docsPath || params.isMinimal) return [];
@@ -21095,6 +21160,7 @@ function buildAgentSystemPrompt(params) {
21095
21160
  const messageChannelOptions = listDeliverableMessageChannels().join("|");
21096
21161
  const promptMode = params.promptMode ?? "full";
21097
21162
  const isMinimal = promptMode === "minimal" || promptMode === "none";
21163
+ const isCoding = promptMode === "coding";
21098
21164
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
21099
21165
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
21100
21166
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -21171,19 +21237,19 @@ function buildAgentSystemPrompt(params) {
21171
21237
  "",
21172
21238
  ...skillsSection,
21173
21239
  ...memorySection,
21174
- hasGateway && !isMinimal ? "## Symi Self-Update" : "",
21175
- hasGateway && !isMinimal ? [
21240
+ hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
21241
+ hasGateway && !isMinimal && !isCoding ? [
21176
21242
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
21177
21243
  "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.",
21178
21244
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
21179
21245
  "After restart, Symi pings the last active session automatically."
21180
21246
  ].join("\n") : "",
21181
- hasGateway && !isMinimal ? "" : "",
21247
+ hasGateway && !isMinimal && !isCoding ? "" : "",
21182
21248
  "",
21183
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
21184
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
21185
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
21186
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
21249
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
21250
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
21251
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
21252
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
21187
21253
  userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
21188
21254
  "## Workspace",
21189
21255
  `Your working directory is: ${displayWorkspaceDir}`,
@@ -21191,6 +21257,11 @@ function buildAgentSystemPrompt(params) {
21191
21257
  ...workspaceNotes,
21192
21258
  "",
21193
21259
  ...docsSection,
21260
+ ...buildVerifyYourWorkSection({
21261
+ isMinimal,
21262
+ execToolName,
21263
+ readToolName
21264
+ }),
21194
21265
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
21195
21266
  params.sandboxInfo?.enabled ? [
21196
21267
  "You are running in a sandboxed runtime (tools execute in Docker).",
@@ -21208,14 +21279,15 @@ function buildAgentSystemPrompt(params) {
21208
21279
  params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
21209
21280
  ].filter(Boolean).join("\n") : "",
21210
21281
  params.sandboxInfo?.enabled ? "" : "",
21211
- ...buildUserIdentitySection(ownerLine, isMinimal),
21282
+ ...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
21212
21283
  ...buildTimeSection({ userTimezone }),
21213
21284
  "## Workspace Files (injected)",
21214
21285
  "These user-editable files are loaded by Symi and included below in Project Context.",
21215
21286
  "",
21216
- ...buildReplyTagsSection(isMinimal),
21287
+ ...buildReplyTagsSection(isMinimal, isCoding),
21217
21288
  ...buildMessagingSection({
21218
21289
  isMinimal,
21290
+ isCoding,
21219
21291
  availableTools,
21220
21292
  messageChannelOptions,
21221
21293
  inlineButtonsEnabled,
@@ -21224,6 +21296,7 @@ function buildAgentSystemPrompt(params) {
21224
21296
  }),
21225
21297
  ...buildVoiceSection({
21226
21298
  isMinimal,
21299
+ isCoding,
21227
21300
  ttsHint: params.ttsHint
21228
21301
  })
21229
21302
  ];
@@ -21263,8 +21336,8 @@ function buildAgentSystemPrompt(params) {
21263
21336
  lines.push("");
21264
21337
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
21265
21338
  }
21266
- 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}`, "");
21267
- 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.", "");
21339
+ 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}`, "");
21340
+ 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.", "");
21268
21341
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
21269
21342
  return lines.filter(Boolean).join("\n");
21270
21343
  }
@@ -22291,27 +22364,27 @@ async function runWithImageModelFallback(params) {
22291
22364
  function createDefaultDeps() {
22292
22365
  return {
22293
22366
  sendMessageWhatsApp: async (...args) => {
22294
- const { sendMessageWhatsApp } = await import("./web-5uLk4OEM.js");
22367
+ const { sendMessageWhatsApp } = await import("./web-4xYayj1G.js");
22295
22368
  return await sendMessageWhatsApp(...args);
22296
22369
  },
22297
22370
  sendMessageTelegram: async (...args) => {
22298
- const { sendMessageTelegram } = await import("./send-tDTl6xgz.js").then((n) => n.l);
22371
+ const { sendMessageTelegram } = await import("./send-CIvsJpdo.js").then((n) => n.l);
22299
22372
  return await sendMessageTelegram(...args);
22300
22373
  },
22301
22374
  sendMessageDiscord: async (...args) => {
22302
- const { sendMessageDiscord } = await import("./send-CC2vm0xU.js").then((n) => n.t);
22375
+ const { sendMessageDiscord } = await import("./send-8dFVpIIg.js").then((n) => n.t);
22303
22376
  return await sendMessageDiscord(...args);
22304
22377
  },
22305
22378
  sendMessageSlack: async (...args) => {
22306
- const { sendMessageSlack } = await import("./send-BR3reUOE.js").then((n) => n.n);
22379
+ const { sendMessageSlack } = await import("./send-CWrxWRjz.js").then((n) => n.n);
22307
22380
  return await sendMessageSlack(...args);
22308
22381
  },
22309
22382
  sendMessageSignal: async (...args) => {
22310
- const { sendMessageSignal } = await import("./send-DyK4u4yH.js").then((n) => n.i);
22383
+ const { sendMessageSignal } = await import("./send-DEcC_kQP.js").then((n) => n.i);
22311
22384
  return await sendMessageSignal(...args);
22312
22385
  },
22313
22386
  sendMessageIMessage: async (...args) => {
22314
- const { sendMessageIMessage } = await import("./send-EQ1insgp.js").then((n) => n.n);
22387
+ const { sendMessageIMessage } = await import("./send-FW1P3D82.js").then((n) => n.n);
22315
22388
  return await sendMessageIMessage(...args);
22316
22389
  }
22317
22390
  };
@@ -33458,7 +33531,7 @@ function readSlackExternalArgMenuToken(raw) {
33458
33531
  }
33459
33532
  let commandsRegistry;
33460
33533
  async function getCommandsRegistry() {
33461
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DyWjIe7d.js").then((n) => n.n);
33534
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-B_V42ZiZ.js").then((n) => n.n);
33462
33535
  return commandsRegistry;
33463
33536
  }
33464
33537
  function encodeSlackCommandArgValue(parts) {
@@ -33861,7 +33934,7 @@ async function registerSlackMonitorSlashCommands(params) {
33861
33934
  });
33862
33935
  const deliverSlashPayloads = async (replies) => {
33863
33936
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
33864
- import("./replies-zeeuLUij.js").then((n) => n.r),
33937
+ import("./replies-BXYTRk0Z.js").then((n) => n.r),
33865
33938
  import("./chunk-1dhPX1NK.js").then((n) => n.s),
33866
33939
  import("./markdown-tables-CEbN0fEm.js").then((n) => n.t)
33867
33940
  ]);
@@ -33916,7 +33989,7 @@ async function registerSlackMonitorSlashCommands(params) {
33916
33989
  let nativeCommands = [];
33917
33990
  if (nativeEnabled) {
33918
33991
  reg = await getCommandsRegistry();
33919
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DrFCB9F9.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
33992
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CSBmZ_di.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
33920
33993
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
33921
33994
  skillCommands,
33922
33995
  provider: "slack"
@@ -38685,7 +38758,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
38685
38758
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
38686
38759
  let preflightTranscript;
38687
38760
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
38688
- const { transcribeFirstAudio } = await import("./audio-preflight-Cpsd8C3J.js");
38761
+ const { transcribeFirstAudio } = await import("./audio-preflight-CSix46JB.js");
38689
38762
  preflightTranscript = await transcribeFirstAudio({
38690
38763
  ctx: {
38691
38764
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -40839,23 +40912,23 @@ let webLoginQrPromise = null;
40839
40912
  let webChannelPromise = null;
40840
40913
  let whatsappActionsPromise = null;
40841
40914
  function loadWebOutbound() {
40842
- webOutboundPromise ??= import("./outbound-DPCAcHLQ.js").then((n) => n.t);
40915
+ webOutboundPromise ??= import("./outbound-DTZdWgeZ.js").then((n) => n.t);
40843
40916
  return webOutboundPromise;
40844
40917
  }
40845
40918
  function loadWebLogin() {
40846
- webLoginPromise ??= import("./login-BcCF4noU.js").then((n) => n.n);
40919
+ webLoginPromise ??= import("./login-CvotLxMc.js").then((n) => n.n);
40847
40920
  return webLoginPromise;
40848
40921
  }
40849
40922
  function loadWebLoginQr() {
40850
- webLoginQrPromise ??= import("./login-qr-DjXNemMm.js");
40923
+ webLoginQrPromise ??= import("./login-qr-CiPw9ee6.js");
40851
40924
  return webLoginQrPromise;
40852
40925
  }
40853
40926
  function loadWebChannel() {
40854
- webChannelPromise ??= import("./web-5uLk4OEM.js");
40927
+ webChannelPromise ??= import("./web-4xYayj1G.js");
40855
40928
  return webChannelPromise;
40856
40929
  }
40857
40930
  function loadWhatsAppActions() {
40858
- whatsappActionsPromise ??= import("./whatsapp-actions-M8kjDd9l.js");
40931
+ whatsappActionsPromise ??= import("./whatsapp-actions-7xW0TEHg.js");
40859
40932
  return whatsappActionsPromise;
40860
40933
  }
40861
40934
  function createPluginRuntime() {
@@ -58738,7 +58811,7 @@ async function compactEmbeddedPiSessionDirect(params) {
58738
58811
  config: params.config
58739
58812
  });
58740
58813
  const isDefaultAgent = sessionAgentId === defaultAgentId;
58741
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
58814
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
58742
58815
  const docsPath = await resolveSymiDocsPath({
58743
58816
  workspaceDir: effectiveWorkspace,
58744
58817
  argv1: process.argv[1],
@@ -58978,6 +59051,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
58978
59051
  const streamParams = {};
58979
59052
  if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
58980
59053
  if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
59054
+ if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
59055
+ if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
59056
+ if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
58981
59057
  const cacheRetention = resolveCacheRetention(extraParams, provider);
58982
59058
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
58983
59059
  if (Object.keys(streamParams).length === 0) return;
@@ -62261,7 +62337,7 @@ async function runEmbeddedAttempt(params) {
62261
62337
  }
62262
62338
  });
62263
62339
  const isDefaultAgent = sessionAgentId === defaultAgentId;
62264
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
62340
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
62265
62341
  const docsPath = await resolveSymiDocsPath({
62266
62342
  workspaceDir: effectiveWorkspace,
62267
62343
  argv1: process.argv[1],
@@ -63276,6 +63352,7 @@ async function runEmbeddedPiAgent(params) {
63276
63352
  let lastRunPromptUsage;
63277
63353
  let autoCompactionCount = 0;
63278
63354
  let runLoopIterations = 0;
63355
+ let verificationPassCompleted = false;
63279
63356
  try {
63280
63357
  while (true) {
63281
63358
  if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
@@ -63645,6 +63722,116 @@ async function runEmbeddedPiAgent(params) {
63645
63722
  suppressToolErrorWarnings: params.suppressToolErrorWarnings,
63646
63723
  inlineToolResultsAllowed: false
63647
63724
  });
63725
+ if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
63726
+ const CODE_TOOL_NAMES = new Set([
63727
+ "exec",
63728
+ "bash",
63729
+ "write",
63730
+ "edit",
63731
+ "file_write",
63732
+ "file_edit",
63733
+ "write_file",
63734
+ "edit_file",
63735
+ "create_file",
63736
+ "patch"
63737
+ ]);
63738
+ const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
63739
+ const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
63740
+ if (hasCodeToolUsage || hasCodeBlocks) {
63741
+ verificationPassCompleted = true;
63742
+ log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
63743
+ 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.";
63744
+ try {
63745
+ const verifyAttempt = await runEmbeddedAttempt({
63746
+ sessionId: params.sessionId,
63747
+ sessionKey: params.sessionKey,
63748
+ messageChannel: params.messageChannel,
63749
+ messageProvider: params.messageProvider,
63750
+ agentAccountId: params.agentAccountId,
63751
+ messageTo: params.messageTo,
63752
+ messageThreadId: params.messageThreadId,
63753
+ groupId: params.groupId,
63754
+ groupChannel: params.groupChannel,
63755
+ groupSpace: params.groupSpace,
63756
+ spawnedBy: params.spawnedBy,
63757
+ senderIsOwner: params.senderIsOwner,
63758
+ currentChannelId: params.currentChannelId,
63759
+ currentThreadTs: params.currentThreadTs,
63760
+ replyToMode: params.replyToMode,
63761
+ hasRepliedRef: params.hasRepliedRef,
63762
+ sessionFile: params.sessionFile,
63763
+ workspaceDir: resolvedWorkspace,
63764
+ agentDir,
63765
+ config: params.config,
63766
+ skillsSnapshot: params.skillsSnapshot,
63767
+ prompt: verificationPrompt,
63768
+ images: void 0,
63769
+ disableTools: params.disableTools,
63770
+ provider,
63771
+ modelId,
63772
+ model,
63773
+ authStorage,
63774
+ modelRegistry,
63775
+ agentId: workspaceResolution.agentId,
63776
+ thinkLevel,
63777
+ verboseLevel: params.verboseLevel,
63778
+ reasoningLevel: params.reasoningLevel,
63779
+ toolResultFormat: resolvedToolResultFormat,
63780
+ execOverrides: params.execOverrides,
63781
+ bashElevated: params.bashElevated,
63782
+ timeoutMs: params.timeoutMs,
63783
+ runId: params.runId,
63784
+ abortSignal: params.abortSignal,
63785
+ shouldEmitToolResult: params.shouldEmitToolResult,
63786
+ shouldEmitToolOutput: params.shouldEmitToolOutput,
63787
+ onPartialReply: params.onPartialReply,
63788
+ onAssistantMessageStart: params.onAssistantMessageStart,
63789
+ onBlockReply: params.onBlockReply,
63790
+ onBlockReplyFlush: params.onBlockReplyFlush,
63791
+ blockReplyBreak: params.blockReplyBreak,
63792
+ blockReplyChunking: params.blockReplyChunking,
63793
+ onReasoningStream: params.onReasoningStream,
63794
+ onReasoningEnd: params.onReasoningEnd,
63795
+ onToolResult: params.onToolResult,
63796
+ onAgentEvent: params.onAgentEvent,
63797
+ extraSystemPrompt: params.extraSystemPrompt,
63798
+ inputProvenance: params.inputProvenance,
63799
+ streamParams: params.streamParams,
63800
+ ownerNumbers: params.ownerNumbers,
63801
+ enforceFinalTag: params.enforceFinalTag
63802
+ });
63803
+ const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
63804
+ mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
63805
+ if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
63806
+ const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
63807
+ const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
63808
+ if (verifyHasToolUsage || verifyHasContent) {
63809
+ const verifyPayloads = buildEmbeddedRunPayloads({
63810
+ assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
63811
+ toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
63812
+ lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
63813
+ lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
63814
+ config: params.config,
63815
+ sessionKey: params.sessionKey ?? params.sessionId,
63816
+ provider: activeErrorContext.provider,
63817
+ model: activeErrorContext.model,
63818
+ verboseLevel: params.verboseLevel,
63819
+ reasoningLevel: params.reasoningLevel,
63820
+ toolResultFormat: resolvedToolResultFormat,
63821
+ suppressToolErrorWarnings: params.suppressToolErrorWarnings,
63822
+ inlineToolResultsAllowed: false
63823
+ });
63824
+ if (verifyPayloads.length > 0) {
63825
+ payloads.length = 0;
63826
+ payloads.push(...verifyPayloads);
63827
+ }
63828
+ log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
63829
+ } else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
63830
+ } catch (verifyErr) {
63831
+ log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
63832
+ }
63833
+ }
63834
+ }
63648
63835
  if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
63649
63836
  payloads: [{
63650
63837
  text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",
@@ -71173,7 +71360,7 @@ async function deliverSessionMaintenanceWarning(params) {
71173
71360
  return;
71174
71361
  }
71175
71362
  try {
71176
- const { deliverOutboundPayloads } = await import("./deliver-DqqfC-g1.js").then((n) => n.n);
71363
+ const { deliverOutboundPayloads } = await import("./deliver-sMuSzZX6.js").then((n) => n.n);
71177
71364
  await deliverOutboundPayloads({
71178
71365
  cfg: params.cfg,
71179
71366
  channel,