@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
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { $t as triggerInternalHook, A as normalizeChannelId, B as getPluginCommandSpecs, C as CHAT_CHANNEL_ORDER, Dt as theme, G as clampInt, H as matchPluginCommand, I as createPluginRegistry, It as STATE_DIR, L as normalizePluginHttpPath, Mt as normalizeLogLevel, N as requireActivePluginRegistry, Nt as resolvePreferredSymiTmpDir, Ot as getChildLogger, P as setActivePluginRegistry, Q as isRecord$1, R as clearPluginCommands, St as shouldLogVerbose, U as CONFIG_DIR, Ut as resolveGatewayPort, V as listPluginCommands, X as escapeRegExp, Yt as resolveStateDir, Zt as createInternalHookEvent, _ as defaultRuntime, a as parseBooleanValue$1, ct as shortenHomeInString, dt as sliceUtf16Safe, g as createNonExitingRuntime, ht as danger, k as normalizeAnyChannelId, lt as shortenHomePath, mt as isPlainObject, n as isTruthyEnvValue, o as createSubsystemLogger, ot as resolveUserPath, pn as resolveRequiredHomeDir, pt as truncateUtf16Safe, tt as normalizeE164, ut as sleep$1, w as DEFAULT_CHAT_CHANNEL, wt as warn, yt as logVerbose, z as executePluginCommand } from "./entry.js";
3
- import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, E as withFileLock, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$2, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, P as isCliProvider, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, c as resolveApiKeyForProfile, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, m as dedupeProfileIds, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-BD22fK4p.js";
3
+ import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, E as withFileLock, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$2, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, P as isCliProvider, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, c as resolveApiKeyForProfile, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, m as dedupeProfileIds, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-Cs3GPB03.js";
4
4
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
5
5
  import { C as resolveThreadParentSessionKey, S as parseAgentSessionKey, _ as getSubagentDepth, b as isCronSessionKey, c as normalizeMainKey, d as sanitizeAgentId, h as normalizeAccountId$2, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isAcpSessionKey, x as isSubagentSessionKey } from "./session-key-DjZ7Z1hW.js";
6
6
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
@@ -8,34 +8,34 @@ import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWit
8
8
  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-D-jRCY0d.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DuFIqfeC.js";
10
10
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-anX686I1.js";
11
- import { a as buildModelAliasLines, n as resolveModel } from "./model-DaukLY-k.js";
11
+ import { a as buildModelAliasLines, n as resolveModel } from "./model-DDV7HL-B.js";
12
12
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Do3xMEtM.js";
13
13
  import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
14
14
  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-hAdgFdrv.js";
15
15
  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-Czr39pxG.js";
16
- 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-DehS9e5w.js";
16
+ 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-COvlkain.js";
17
17
  import { Mt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-DMBZpU6X.js";
18
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BKOIc76f.js";
18
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-6AGLOo_A.js";
19
19
  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-C9dERklz.js";
20
20
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
21
- import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-B3nP13Fw.js";
21
+ import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-CRTZnttk.js";
22
22
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Csntmwwn.js";
23
23
  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-CwSlLxM8.js";
24
24
  import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-D9ITgITj.js";
25
25
  import { t as normalizeChatType } from "./chat-type-CeFzWU-6.js";
26
- 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-hJthT6M_.js";
27
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BXiiQprI.js";
28
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-2zPYOOzh.js";
29
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CIc_l0o6.js";
26
+ 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-Ci3UEBVK.js";
27
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Ci0uVV_k.js";
28
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-C6nbJrH1.js";
29
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CUJWonlP.js";
30
30
  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-Ci8Xsc_Y.js";
31
31
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CIjIGxEE.js";
32
32
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D1eLj5t8.js";
33
- import { A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-CQzO_Tg0.js";
33
+ import { A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-CzxMGZc_.js";
34
34
  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-CUkaZz2F.js";
35
- 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-Cs0TgOaH.js";
36
- 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-BpIrSDhl.js";
37
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CPwj5x24.js";
38
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DbcjnRHG.js";
35
+ 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-D57pDra0.js";
36
+ 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-psIl5_gT.js";
37
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CaijV4gw.js";
38
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-AHh7m1PV.js";
39
39
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Ba_ROWsq.js";
40
40
  import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-OWKu4tXF.js";
41
41
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Ixuyn7h8.js";
@@ -47,10 +47,10 @@ import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveS
47
47
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-D5O01TlD.js";
48
48
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CVLISeRT.js";
49
49
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
50
- import { t as ensureSymiModelsJson } from "./models-config-DT09Fas0.js";
50
+ import { t as ensureSymiModelsJson } from "./models-config-CMJN_5Vh.js";
51
51
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
52
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BUoM-v1-.js";
53
- import { i as resolveMemorySearchConfig } from "./manager-CPQ2pEj3.js";
52
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-Pp2xuPKC.js";
53
+ import { i as resolveMemorySearchConfig } from "./manager-DqkRhYYl.js";
54
54
  import { g as runTasksWithConcurrency } from "./sqlite-CQGamAhm.js";
55
55
  import { n as retryAsync } from "./retry-C4Q_VPOo.js";
56
56
  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-whPRf4c9.js";
@@ -61,16 +61,16 @@ import { t as fetchWithSsrFGuard } from "./fetch-guard-Dp7VnmeK.js";
61
61
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-CpUKTvDW.js";
62
62
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-D-flMHhr.js";
63
63
  import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CkrIpKCc.js";
64
- 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-uo2OKqdL.js";
65
- import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, y as stripReasoningTagsFromText } from "./image-DWOvY8sR.js";
64
+ 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-nK_mZXUN.js";
65
+ import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, y as stripReasoningTagsFromText } from "./image-CEcLOmLW.js";
66
66
  import { n as resolveToolDisplay } from "./tool-display-CXwOC-qw.js";
67
67
  import { n as formatTimeAgo } from "./format-relative-DX-rh76l.js";
68
68
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-72dOKfLG.js";
69
- 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-w5reqY02.js";
70
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-sW2MkIv9.js";
71
- import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-CFvGKxdu.js";
72
- 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-CWySL97a.js";
73
- import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-CicZMhK8.js";
69
+ 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-CNY0hwm-.js";
70
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-61-kKlKu.js";
71
+ import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-DySzoW4O.js";
72
+ 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-BlfEmZ8t.js";
73
+ import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-cjckhuQX.js";
74
74
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BhFkwlZW.js";
75
75
  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-BhFq_Iv9.js";
76
76
  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-DrIN-j3C.js";
@@ -82,19 +82,19 @@ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChan
82
82
  import { n as normalizePollInput } from "./polls-DXeUmcgz.js";
83
83
  import { t as convertMarkdownTables } from "./tables-CXWwq-Md.js";
84
84
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CPeVoSXJ.js";
85
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CZ8lXYgi.js";
85
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CwdjvhxE.js";
86
86
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CQar2eKe.js";
87
87
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BzfEFyPn.js";
88
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-BLT3lTZy.js";
89
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-CRWQglv9.js";
88
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CUhH6I6A.js";
89
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-C8fjzstb.js";
90
90
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CjnIuTqX.js";
91
91
  import { t as parseTimeoutMs } from "./parse-timeout-zNJBr1fY.js";
92
92
  import { t as makeProxyFetch } from "./proxy-DL3MD6-P.js";
93
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DqyX2Vln.js";
94
- import { r as detectBinary } from "./onboard-helpers-BmDQMRZ7.js";
95
- import { t as resolvePairingIdLabel } from "./pairing-labels-sIj1ZLt-.js";
93
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BnmCXHdE.js";
94
+ import { r as detectBinary } from "./onboard-helpers-Bt2zwkKD.js";
95
+ import { t as resolvePairingIdLabel } from "./pairing-labels-D_XOc2nT.js";
96
96
  import { t as getActiveWebListener } from "./active-listener-De1JhR4W.js";
97
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-vws0LV7U.js";
97
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BV1RWUnE.js";
98
98
  import { createRequire } from "node:module";
99
99
  import { execFileSync, spawn, spawnSync } from "node:child_process";
100
100
  import os, { homedir } from "node:os";
@@ -7605,7 +7605,7 @@ async function createModelSelectionState(params) {
7605
7605
  }
7606
7606
  }
7607
7607
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
7608
- const { ensureAuthProfileStore } = await import("./auth-profiles-BD22fK4p.js").then((n) => n.t);
7608
+ const { ensureAuthProfileStore } = await import("./auth-profiles-Cs3GPB03.js").then((n) => n.t);
7609
7609
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
7610
7610
  const providerKey = normalizeProviderId(provider);
7611
7611
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -14695,8 +14695,8 @@ function buildMemorySection(params) {
14695
14695
  lines.push("");
14696
14696
  return lines;
14697
14697
  }
14698
- function buildUserIdentitySection(ownerLine, isMinimal) {
14699
- if (!ownerLine || isMinimal) return [];
14698
+ function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
14699
+ if (!ownerLine || isMinimal || isCoding) return [];
14700
14700
  return [
14701
14701
  "## Authorized Senders",
14702
14702
  ownerLine,
@@ -14720,8 +14720,8 @@ function buildTimeSection(params) {
14720
14720
  ""
14721
14721
  ];
14722
14722
  }
14723
- function buildReplyTagsSection(isMinimal) {
14724
- if (isMinimal) return [];
14723
+ function buildReplyTagsSection(isMinimal, isCoding) {
14724
+ if (isMinimal || isCoding) return [];
14725
14725
  return [
14726
14726
  "## Reply Tags",
14727
14727
  "To request a native reply/quote on supported surfaces, include one tag in your reply:",
@@ -14734,7 +14734,7 @@ function buildReplyTagsSection(isMinimal) {
14734
14734
  ];
14735
14735
  }
14736
14736
  function buildMessagingSection(params) {
14737
- if (params.isMinimal) return [];
14737
+ if (params.isMinimal || params.isCoding) return [];
14738
14738
  return [
14739
14739
  "## Messaging",
14740
14740
  "- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
@@ -14757,7 +14757,7 @@ function buildMessagingSection(params) {
14757
14757
  ];
14758
14758
  }
14759
14759
  function buildVoiceSection(params) {
14760
- if (params.isMinimal) return [];
14760
+ if (params.isMinimal || params.isCoding) return [];
14761
14761
  const hint = params.ttsHint?.trim();
14762
14762
  if (!hint) return [];
14763
14763
  return [
@@ -14766,6 +14766,71 @@ function buildVoiceSection(params) {
14766
14766
  ""
14767
14767
  ];
14768
14768
  }
14769
+ function buildVerifyYourWorkSection(params) {
14770
+ if (params.isMinimal) return [];
14771
+ const exec = params.execToolName;
14772
+ const read = params.readToolName;
14773
+ return [
14774
+ "## Verify Your Work",
14775
+ [
14776
+ "Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
14777
+ "Skipping verification is the single most common cause of incomplete or broken outputs.",
14778
+ "Treat this section as mandatory for every coding task, not optional polish."
14779
+ ].join(" "),
14780
+ "",
14781
+ "### 1. Re-read the request",
14782
+ [
14783
+ "Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
14784
+ "Extract every discrete requirement, constraint, and preference they stated.",
14785
+ "Write them down internally as a checklist.",
14786
+ "This catches drift: it is easy to start solving a related-but-different problem mid-task."
14787
+ ].join(" "),
14788
+ "",
14789
+ "### 2. Check each requirement against your output",
14790
+ [
14791
+ "Walk through your internal checklist point by point.",
14792
+ "For each requirement, locate the exact lines in your output that satisfy it.",
14793
+ "If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
14794
+ "Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
14795
+ ].join(" "),
14796
+ "",
14797
+ "### 3. Run the code",
14798
+ [
14799
+ `Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
14800
+ "Do not guess whether code works — execute it and observe the result.",
14801
+ "If the code produces errors, fix them and re-run until it succeeds.",
14802
+ "For scripts: run them with representative inputs.",
14803
+ "For libraries/modules: write and execute a minimal smoke test.",
14804
+ "For config files: validate syntax (e.g., json, yaml, toml parsers).",
14805
+ "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."
14806
+ ].join(" "),
14807
+ "",
14808
+ "### 4. Include tests when requested",
14809
+ [
14810
+ "If the user asked for tests, they are a hard requirement — not a nice-to-have.",
14811
+ "Deliver the tests alongside the implementation, not as an afterthought.",
14812
+ "Run the tests and confirm they pass before responding.",
14813
+ "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."
14814
+ ].join(" "),
14815
+ "",
14816
+ "### 5. Self-review",
14817
+ [
14818
+ `After everything above, use ${read} to re-read any files you created or modified.`,
14819
+ "Look at them with fresh eyes as if reviewing someone else's code.",
14820
+ "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).",
14821
+ "If you find problems during self-review, fix them, re-run verification, and only then respond."
14822
+ ].join(" "),
14823
+ "",
14824
+ "### Verification failures",
14825
+ [
14826
+ "If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
14827
+ "Instead, fix the issue silently and re-verify.",
14828
+ "The user should receive working, complete output — not a draft with known issues.",
14829
+ "Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
14830
+ ].join(" "),
14831
+ ""
14832
+ ];
14833
+ }
14769
14834
  function buildDocsSection(params) {
14770
14835
  const docsPath = params.docsPath?.trim();
14771
14836
  if (!docsPath || params.isMinimal) return [];
@@ -14890,6 +14955,7 @@ function buildAgentSystemPrompt(params) {
14890
14955
  const messageChannelOptions = listDeliverableMessageChannels().join("|");
14891
14956
  const promptMode = params.promptMode ?? "full";
14892
14957
  const isMinimal = promptMode === "minimal" || promptMode === "none";
14958
+ const isCoding = promptMode === "coding";
14893
14959
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
14894
14960
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
14895
14961
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -14966,19 +15032,19 @@ function buildAgentSystemPrompt(params) {
14966
15032
  "",
14967
15033
  ...skillsSection,
14968
15034
  ...memorySection,
14969
- hasGateway && !isMinimal ? "## Symi Self-Update" : "",
14970
- hasGateway && !isMinimal ? [
15035
+ hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
15036
+ hasGateway && !isMinimal && !isCoding ? [
14971
15037
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
14972
15038
  "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.",
14973
15039
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
14974
15040
  "After restart, Symi pings the last active session automatically."
14975
15041
  ].join("\n") : "",
14976
- hasGateway && !isMinimal ? "" : "",
15042
+ hasGateway && !isMinimal && !isCoding ? "" : "",
14977
15043
  "",
14978
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
14979
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
14980
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
14981
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
15044
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
15045
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
15046
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
15047
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
14982
15048
  userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
14983
15049
  "## Workspace",
14984
15050
  `Your working directory is: ${displayWorkspaceDir}`,
@@ -14986,6 +15052,11 @@ function buildAgentSystemPrompt(params) {
14986
15052
  ...workspaceNotes,
14987
15053
  "",
14988
15054
  ...docsSection,
15055
+ ...buildVerifyYourWorkSection({
15056
+ isMinimal,
15057
+ execToolName,
15058
+ readToolName
15059
+ }),
14989
15060
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
14990
15061
  params.sandboxInfo?.enabled ? [
14991
15062
  "You are running in a sandboxed runtime (tools execute in Docker).",
@@ -15003,14 +15074,15 @@ function buildAgentSystemPrompt(params) {
15003
15074
  params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
15004
15075
  ].filter(Boolean).join("\n") : "",
15005
15076
  params.sandboxInfo?.enabled ? "" : "",
15006
- ...buildUserIdentitySection(ownerLine, isMinimal),
15077
+ ...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
15007
15078
  ...buildTimeSection({ userTimezone }),
15008
15079
  "## Workspace Files (injected)",
15009
15080
  "These user-editable files are loaded by Symi and included below in Project Context.",
15010
15081
  "",
15011
- ...buildReplyTagsSection(isMinimal),
15082
+ ...buildReplyTagsSection(isMinimal, isCoding),
15012
15083
  ...buildMessagingSection({
15013
15084
  isMinimal,
15085
+ isCoding,
15014
15086
  availableTools,
15015
15087
  messageChannelOptions,
15016
15088
  inlineButtonsEnabled,
@@ -15019,6 +15091,7 @@ function buildAgentSystemPrompt(params) {
15019
15091
  }),
15020
15092
  ...buildVoiceSection({
15021
15093
  isMinimal,
15094
+ isCoding,
15022
15095
  ttsHint: params.ttsHint
15023
15096
  })
15024
15097
  ];
@@ -15058,8 +15131,8 @@ function buildAgentSystemPrompt(params) {
15058
15131
  lines.push("");
15059
15132
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
15060
15133
  }
15061
- 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}`, "");
15062
- 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.", "");
15134
+ 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}`, "");
15135
+ 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.", "");
15063
15136
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
15064
15137
  return lines.filter(Boolean).join("\n");
15065
15138
  }
@@ -20290,7 +20363,7 @@ async function routeReply(params) {
20290
20363
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
20291
20364
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
20292
20365
  try {
20293
- const { deliverOutboundPayloads } = await import("./deliver-CIc_l0o6.js").then((n) => n.n);
20366
+ const { deliverOutboundPayloads } = await import("./deliver-CUJWonlP.js").then((n) => n.n);
20294
20367
  return {
20295
20368
  ok: true,
20296
20369
  messageId: (await deliverOutboundPayloads({
@@ -34848,7 +34921,7 @@ async function deliverSessionMaintenanceWarning(params) {
34848
34921
  return;
34849
34922
  }
34850
34923
  try {
34851
- const { deliverOutboundPayloads } = await import("./deliver-CIc_l0o6.js").then((n) => n.n);
34924
+ const { deliverOutboundPayloads } = await import("./deliver-CUJWonlP.js").then((n) => n.n);
34852
34925
  await deliverOutboundPayloads({
34853
34926
  cfg: params.cfg,
34854
34927
  channel,
@@ -38299,7 +38372,7 @@ async function describeStickerImage(params) {
38299
38372
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
38300
38373
  try {
38301
38374
  const buffer = await fs$1.readFile(imagePath);
38302
- const { describeImageWithModel } = await import("./image-DWOvY8sR.js").then((n) => n.n);
38375
+ const { describeImageWithModel } = await import("./image-CEcLOmLW.js").then((n) => n.n);
38303
38376
  return (await describeImageWithModel({
38304
38377
  buffer,
38305
38378
  fileName: "sticker.webp",
@@ -38722,7 +38795,7 @@ function createWhatsAppLoginTool() {
38722
38795
  force: Type.Optional(Type.Boolean())
38723
38796
  }),
38724
38797
  execute: async (_toolCallId, args) => {
38725
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CYEYc0Vo.js");
38798
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CW01jgLl.js");
38726
38799
  if ((args?.action ?? "start") === "wait") {
38727
38800
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
38728
38801
  return {
@@ -40098,7 +40171,7 @@ async function preflightDiscordMessage(params) {
40098
40171
  let preflightTranscript;
40099
40172
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
40100
40173
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
40101
- const { transcribeFirstAudio } = await import("./audio-preflight-5w1q1hWh.js");
40174
+ const { transcribeFirstAudio } = await import("./audio-preflight-DGpde3Ae.js");
40102
40175
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
40103
40176
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
40104
40177
  ctx: {
@@ -44104,27 +44177,27 @@ function isVoiceChannelType(type) {
44104
44177
  function createDefaultDeps() {
44105
44178
  return {
44106
44179
  sendMessageWhatsApp: async (...args) => {
44107
- const { sendMessageWhatsApp } = await import("./web-8NQJ75ip.js");
44180
+ const { sendMessageWhatsApp } = await import("./web-DlKbVYgh.js");
44108
44181
  return await sendMessageWhatsApp(...args);
44109
44182
  },
44110
44183
  sendMessageTelegram: async (...args) => {
44111
- const { sendMessageTelegram } = await import("./send-CQzO_Tg0.js").then((n) => n.l);
44184
+ const { sendMessageTelegram } = await import("./send-CzxMGZc_.js").then((n) => n.l);
44112
44185
  return await sendMessageTelegram(...args);
44113
44186
  },
44114
44187
  sendMessageDiscord: async (...args) => {
44115
- const { sendMessageDiscord } = await import("./send-BXiiQprI.js").then((n) => n.t);
44188
+ const { sendMessageDiscord } = await import("./send-Ci0uVV_k.js").then((n) => n.t);
44116
44189
  return await sendMessageDiscord(...args);
44117
44190
  },
44118
44191
  sendMessageSlack: async (...args) => {
44119
- const { sendMessageSlack } = await import("./send-hJthT6M_.js").then((n) => n.n);
44192
+ const { sendMessageSlack } = await import("./send-Ci3UEBVK.js").then((n) => n.n);
44120
44193
  return await sendMessageSlack(...args);
44121
44194
  },
44122
44195
  sendMessageSignal: async (...args) => {
44123
- const { sendMessageSignal } = await import("./send-BLT3lTZy.js").then((n) => n.i);
44196
+ const { sendMessageSignal } = await import("./send-CUhH6I6A.js").then((n) => n.i);
44124
44197
  return await sendMessageSignal(...args);
44125
44198
  },
44126
44199
  sendMessageIMessage: async (...args) => {
44127
- const { sendMessageIMessage } = await import("./send-CRWQglv9.js").then((n) => n.n);
44200
+ const { sendMessageIMessage } = await import("./send-C8fjzstb.js").then((n) => n.n);
44128
44201
  return await sendMessageIMessage(...args);
44129
44202
  }
44130
44203
  };
@@ -54575,7 +54648,7 @@ function readSlackExternalArgMenuToken(raw) {
54575
54648
  }
54576
54649
  let commandsRegistry;
54577
54650
  async function getCommandsRegistry() {
54578
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-uo2OKqdL.js").then((n) => n.n);
54651
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-nK_mZXUN.js").then((n) => n.n);
54579
54652
  return commandsRegistry;
54580
54653
  }
54581
54654
  function encodeSlackCommandArgValue(parts) {
@@ -54978,7 +55051,7 @@ async function registerSlackMonitorSlashCommands(params) {
54978
55051
  });
54979
55052
  const deliverSlashPayloads = async (replies) => {
54980
55053
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
54981
- import("./replies-DqyX2Vln.js").then((n) => n.r),
55054
+ import("./replies-BnmCXHdE.js").then((n) => n.r),
54982
55055
  import("./chunk-CQyUJNtc.js").then((n) => n.s),
54983
55056
  import("./markdown-tables-D82z_Ahc.js").then((n) => n.t)
54984
55057
  ]);
@@ -55033,7 +55106,7 @@ async function registerSlackMonitorSlashCommands(params) {
55033
55106
  let nativeCommands = [];
55034
55107
  if (nativeEnabled) {
55035
55108
  reg = await getCommandsRegistry();
55036
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CWySL97a.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
55109
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BlfEmZ8t.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
55037
55110
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
55038
55111
  skillCommands,
55039
55112
  provider: "slack"
@@ -57251,7 +57324,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
57251
57324
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
57252
57325
  let preflightTranscript;
57253
57326
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
57254
- const { transcribeFirstAudio } = await import("./audio-preflight-5w1q1hWh.js");
57327
+ const { transcribeFirstAudio } = await import("./audio-preflight-DGpde3Ae.js");
57255
57328
  preflightTranscript = await transcribeFirstAudio({
57256
57329
  ctx: {
57257
57330
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -59405,23 +59478,23 @@ let webLoginQrPromise = null;
59405
59478
  let webChannelPromise = null;
59406
59479
  let whatsappActionsPromise = null;
59407
59480
  function loadWebOutbound() {
59408
- webOutboundPromise ??= import("./outbound-B_cf2WkB.js").then((n) => n.t);
59481
+ webOutboundPromise ??= import("./outbound-CzuytbQ5.js").then((n) => n.t);
59409
59482
  return webOutboundPromise;
59410
59483
  }
59411
59484
  function loadWebLogin() {
59412
- webLoginPromise ??= import("./login-C5eMLg1G.js").then((n) => n.n);
59485
+ webLoginPromise ??= import("./login-BwU6oNNU.js").then((n) => n.n);
59413
59486
  return webLoginPromise;
59414
59487
  }
59415
59488
  function loadWebLoginQr() {
59416
- webLoginQrPromise ??= import("./login-qr-CYEYc0Vo.js");
59489
+ webLoginQrPromise ??= import("./login-qr-CW01jgLl.js");
59417
59490
  return webLoginQrPromise;
59418
59491
  }
59419
59492
  function loadWebChannel() {
59420
- webChannelPromise ??= import("./web-8NQJ75ip.js");
59493
+ webChannelPromise ??= import("./web-DlKbVYgh.js");
59421
59494
  return webChannelPromise;
59422
59495
  }
59423
59496
  function loadWhatsAppActions() {
59424
- whatsappActionsPromise ??= import("./whatsapp-actions-ChtHuvdU.js");
59497
+ whatsappActionsPromise ??= import("./whatsapp-actions-B3zu-BhB.js");
59425
59498
  return whatsappActionsPromise;
59426
59499
  }
59427
59500
  function createPluginRuntime() {
@@ -64511,7 +64584,7 @@ async function compactEmbeddedPiSessionDirect(params) {
64511
64584
  config: params.config
64512
64585
  });
64513
64586
  const isDefaultAgent = sessionAgentId === defaultAgentId;
64514
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
64587
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
64515
64588
  const docsPath = await resolveSymiDocsPath({
64516
64589
  workspaceDir: effectiveWorkspace,
64517
64590
  argv1: process.argv[1],
@@ -64751,6 +64824,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
64751
64824
  const streamParams = {};
64752
64825
  if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
64753
64826
  if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
64827
+ if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
64828
+ if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
64829
+ if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
64754
64830
  const cacheRetention = resolveCacheRetention(extraParams, provider);
64755
64831
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
64756
64832
  if (Object.keys(streamParams).length === 0) return;
@@ -68034,7 +68110,7 @@ async function runEmbeddedAttempt(params) {
68034
68110
  }
68035
68111
  });
68036
68112
  const isDefaultAgent = sessionAgentId === defaultAgentId;
68037
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
68113
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
68038
68114
  const docsPath = await resolveSymiDocsPath({
68039
68115
  workspaceDir: effectiveWorkspace,
68040
68116
  argv1: process.argv[1],
@@ -69049,6 +69125,7 @@ async function runEmbeddedPiAgent(params) {
69049
69125
  let lastRunPromptUsage;
69050
69126
  let autoCompactionCount = 0;
69051
69127
  let runLoopIterations = 0;
69128
+ let verificationPassCompleted = false;
69052
69129
  try {
69053
69130
  while (true) {
69054
69131
  if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
@@ -69418,6 +69495,116 @@ async function runEmbeddedPiAgent(params) {
69418
69495
  suppressToolErrorWarnings: params.suppressToolErrorWarnings,
69419
69496
  inlineToolResultsAllowed: false
69420
69497
  });
69498
+ if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
69499
+ const CODE_TOOL_NAMES = new Set([
69500
+ "exec",
69501
+ "bash",
69502
+ "write",
69503
+ "edit",
69504
+ "file_write",
69505
+ "file_edit",
69506
+ "write_file",
69507
+ "edit_file",
69508
+ "create_file",
69509
+ "patch"
69510
+ ]);
69511
+ const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
69512
+ const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
69513
+ if (hasCodeToolUsage || hasCodeBlocks) {
69514
+ verificationPassCompleted = true;
69515
+ log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
69516
+ 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.";
69517
+ try {
69518
+ const verifyAttempt = await runEmbeddedAttempt({
69519
+ sessionId: params.sessionId,
69520
+ sessionKey: params.sessionKey,
69521
+ messageChannel: params.messageChannel,
69522
+ messageProvider: params.messageProvider,
69523
+ agentAccountId: params.agentAccountId,
69524
+ messageTo: params.messageTo,
69525
+ messageThreadId: params.messageThreadId,
69526
+ groupId: params.groupId,
69527
+ groupChannel: params.groupChannel,
69528
+ groupSpace: params.groupSpace,
69529
+ spawnedBy: params.spawnedBy,
69530
+ senderIsOwner: params.senderIsOwner,
69531
+ currentChannelId: params.currentChannelId,
69532
+ currentThreadTs: params.currentThreadTs,
69533
+ replyToMode: params.replyToMode,
69534
+ hasRepliedRef: params.hasRepliedRef,
69535
+ sessionFile: params.sessionFile,
69536
+ workspaceDir: resolvedWorkspace,
69537
+ agentDir,
69538
+ config: params.config,
69539
+ skillsSnapshot: params.skillsSnapshot,
69540
+ prompt: verificationPrompt,
69541
+ images: void 0,
69542
+ disableTools: params.disableTools,
69543
+ provider,
69544
+ modelId,
69545
+ model,
69546
+ authStorage,
69547
+ modelRegistry,
69548
+ agentId: workspaceResolution.agentId,
69549
+ thinkLevel,
69550
+ verboseLevel: params.verboseLevel,
69551
+ reasoningLevel: params.reasoningLevel,
69552
+ toolResultFormat: resolvedToolResultFormat,
69553
+ execOverrides: params.execOverrides,
69554
+ bashElevated: params.bashElevated,
69555
+ timeoutMs: params.timeoutMs,
69556
+ runId: params.runId,
69557
+ abortSignal: params.abortSignal,
69558
+ shouldEmitToolResult: params.shouldEmitToolResult,
69559
+ shouldEmitToolOutput: params.shouldEmitToolOutput,
69560
+ onPartialReply: params.onPartialReply,
69561
+ onAssistantMessageStart: params.onAssistantMessageStart,
69562
+ onBlockReply: params.onBlockReply,
69563
+ onBlockReplyFlush: params.onBlockReplyFlush,
69564
+ blockReplyBreak: params.blockReplyBreak,
69565
+ blockReplyChunking: params.blockReplyChunking,
69566
+ onReasoningStream: params.onReasoningStream,
69567
+ onReasoningEnd: params.onReasoningEnd,
69568
+ onToolResult: params.onToolResult,
69569
+ onAgentEvent: params.onAgentEvent,
69570
+ extraSystemPrompt: params.extraSystemPrompt,
69571
+ inputProvenance: params.inputProvenance,
69572
+ streamParams: params.streamParams,
69573
+ ownerNumbers: params.ownerNumbers,
69574
+ enforceFinalTag: params.enforceFinalTag
69575
+ });
69576
+ const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
69577
+ mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
69578
+ if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
69579
+ const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
69580
+ const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
69581
+ if (verifyHasToolUsage || verifyHasContent) {
69582
+ const verifyPayloads = buildEmbeddedRunPayloads({
69583
+ assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
69584
+ toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
69585
+ lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
69586
+ lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
69587
+ config: params.config,
69588
+ sessionKey: params.sessionKey ?? params.sessionId,
69589
+ provider: activeErrorContext.provider,
69590
+ model: activeErrorContext.model,
69591
+ verboseLevel: params.verboseLevel,
69592
+ reasoningLevel: params.reasoningLevel,
69593
+ toolResultFormat: resolvedToolResultFormat,
69594
+ suppressToolErrorWarnings: params.suppressToolErrorWarnings,
69595
+ inlineToolResultsAllowed: false
69596
+ });
69597
+ if (verifyPayloads.length > 0) {
69598
+ payloads.length = 0;
69599
+ payloads.push(...verifyPayloads);
69600
+ }
69601
+ log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
69602
+ } else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
69603
+ } catch (verifyErr) {
69604
+ log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
69605
+ }
69606
+ }
69607
+ }
69421
69608
  if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
69422
69609
  payloads: [{
69423
69610
  text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",