@symerian/symi 2.0.17 → 2.0.19

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 (352) hide show
  1. package/dist/{acp-cli-SgZGC8og.js → acp-cli-bbOWOXnN.js} +3 -3
  2. package/dist/{acp-cli-DqQjT50N.js → acp-cli-sXld4yJl.js} +3 -3
  3. package/dist/{agents-C4_0TzXm.js → agents-CENGwpKH.js} +8 -8
  4. package/dist/{agents.config-Bneyaqn6.js → agents.config-CgNflQtq.js} +1 -1
  5. package/dist/{agents.config-D9Ufj9CE.js → agents.config-WhJPXBWO.js} +1 -1
  6. package/dist/{api-key-rotation-BukD0zzl.js → api-key-rotation-De1ivBc0.js} +1 -1
  7. package/dist/{audio-preflight-BiAp3Hvj.js → audio-preflight-BxuYnm6k.js} +7 -7
  8. package/dist/{audio-preflight-Cpsd8C3J.js → audio-preflight-DCHBMKWE.js} +13 -13
  9. package/dist/{audio-preflight-mSUx5I34.js → audio-preflight-Djedh6Uc.js} +7 -7
  10. package/dist/{audio-preflight-5w1q1hWh.js → audio-preflight-USnUISOE.js} +13 -13
  11. package/dist/{audit-BCHYqYge.js → audit-DpqAVLn7.js} +7 -7
  12. package/dist/{audit-FH7mu_3g.js → audit-Dxa-KhrA.js} +7 -7
  13. package/dist/{auth-choice-B8qrETy7.js → auth-choice-BdZAR0l8.js} +7 -7
  14. package/dist/{auth-choice-5u4JonD1.js → auth-choice-upc_PcJy.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-BE8pGhkj.js} +1 -1
  19. package/dist/{browser-cli-Cmyh_mQi.js → browser-cli-8URbjVyN.js} +4 -4
  20. package/dist/{browser-cli-n1RQ8OQs.js → browser-cli-DQ0DQymk.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-B-p451Eo.js} +1 -1
  25. package/dist/{call-C30ffTSt.js → call-Cspuh_Jh.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-options-BBDX9s3H.js → channel-options-BPQpyMzn.js} +1 -1
  28. package/dist/{channel-options-CxOu5Gvn.js → channel-options-DEmvgalQ.js} +1 -1
  29. package/dist/{channel-web-DxSaM7GA.js → channel-web-Djcjl6S4.js} +8 -8
  30. package/dist/{channels-cli-CvtvmTOx.js → channels-cli-Cps6htRW.js} +39 -39
  31. package/dist/{channels-cli-CB6lWL72.js → channels-cli-Dn9ahV_w.js} +38 -38
  32. package/dist/{chrome-1cQdPKbv.js → chrome-BUUMKYz7.js} +8 -8
  33. package/dist/{chrome-CPwj5x24.js → chrome-Chj8uCZN.js} +1 -1
  34. package/dist/{chrome-DPu6LSX4.js → chrome-DGb_CkF8.js} +8 -8
  35. package/dist/{chrome-CUsfMVUk.js → chrome-XQjc7KSW.js} +1 -1
  36. package/dist/cli/daemon-cli.js +1 -1
  37. package/dist/{cli-CU_pJKCD.js → cli-Df__rsHc.js} +33 -33
  38. package/dist/{cli-cDOiHmL7.js → cli-atR7r3t-.js} +34 -34
  39. package/dist/{command-registry-D1zcgjTn.js → command-registry-Yv0ZBYYd.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-C8TsFimX.js → completion-cli-BCDS6oHd.js} +2 -2
  45. package/dist/{completion-cli-DWcx6gc6.js → completion-cli-Bw-2RaGe.js} +1 -1
  46. package/dist/{config-BLe0R4JX.js → config-BMStjqdp.js} +5 -2
  47. package/dist/{config-CvuX_y8t.js → config-Bh5BJYfZ.js} +5 -2
  48. package/dist/{config-ClXqj_D1.js → config-Crs8V2FU.js} +5 -2
  49. package/dist/{config-DehS9e5w.js → config-CxnbOYs8.js} +5 -2
  50. package/dist/{config-cli-DcjOWFbW.js → config-cli-BK-o9KUV.js} +3 -3
  51. package/dist/{config-cli-CEp26CMt.js → config-cli-CQJtnjeK.js} +3 -3
  52. package/dist/{config-guard-CGgFpviD.js → config-guard-CNwpT-bm.js} +5 -5
  53. package/dist/{config-guard-Ix_EcPkt.js → config-guard-DvNDqIJp.js} +2 -2
  54. package/dist/{config-validation-Ct_myZSl.js → config-validation-D0ku5PSk.js} +1 -1
  55. package/dist/{config-validation-BQnULegl.js → config-validation-g8v4CRxO.js} +1 -1
  56. package/dist/{configure-DbqI2Bgi.js → configure-D1fWVt_Z.js} +11 -11
  57. package/dist/{configure-B3aYKtwN.js → configure-D6i9bdDN.js} +11 -11
  58. package/dist/{control-service-CZ8lXYgi.js → control-service-B7EmYYFH.js} +4 -4
  59. package/dist/{control-service-DI1Do6Nn.js → control-service-BwrQoUMh.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-D-nqfPZ5.js} +4 -4
  63. package/dist/{cron-cli-BH6kt3EZ.js → cron-cli-D9nGEQiu.js} +4 -4
  64. package/dist/{daemon-cli-BuOGkn7L.js → daemon-cli-DJR87xEg.js} +6 -6
  65. package/dist/{daemon-cli-CweZn-1O.js → daemon-cli-l5oXLo3n.js} +6 -6
  66. package/dist/daemon-cli.js +4 -1
  67. package/dist/{daemon-runtime-D1K-9VEC.js → daemon-runtime-BkVgNwLi.js} +1 -1
  68. package/dist/{daemon-runtime-C1t_OfMD.js → daemon-runtime-D4sIbUkl.js} +1 -1
  69. package/dist/{deliver-D8xILUUI.js → deliver-8_lPbrcf.js} +2 -2
  70. package/dist/{deliver-CIc_l0o6.js → deliver-8jOk1f3v.js} +3 -3
  71. package/dist/{deliver-DqqfC-g1.js → deliver-C0Azi_cK.js} +3 -3
  72. package/dist/{deliver-BorDF5OG.js → deliver-mS1WnuiB.js} +2 -2
  73. package/dist/{devices-cli-BE5ZzcA7.js → devices-cli-CaK3Ausk.js} +3 -3
  74. package/dist/{devices-cli-BUdOf8m2.js → devices-cli-V6vhbLKq.js} +3 -3
  75. package/dist/{directory-cli-BBdctcDF.js → directory-cli-BmNzLgXc.js} +2 -2
  76. package/dist/{directory-cli-DQHIn9um.js → directory-cli-Cd9lchia.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-BEOWeAGR.js} +2 -2
  80. package/dist/{dns-cli-6H_E37de.js → dns-cli-mH-jPqkH.js} +2 -2
  81. package/dist/{doctor-completion-CAdewURI.js → doctor-completion-CCRu96-k.js} +1 -1
  82. package/dist/{doctor-completion-CXUM27y3.js → doctor-completion-DblWjsvi.js} +1 -1
  83. package/dist/{doctor-config-flow-CthAM9my.js → doctor-config-flow-Dd6-lC3V.js} +3 -3
  84. package/dist/{doctor-config-flow-BWD9G2UQ.js → doctor-config-flow-Dpnvu5A2.js} +3 -3
  85. package/dist/entry.js +1 -1
  86. package/dist/{exec-approvals-cli-CjU3pZzx.js → exec-approvals-cli-Dlf9s8ne.js} +5 -5
  87. package/dist/{exec-approvals-cli-CYKHeoEA.js → exec-approvals-cli-lDvry8Xq.js} +5 -5
  88. package/dist/extensionAPI.js +18 -18
  89. package/dist/{gateway-cli-n-kmAuP8.js → gateway-cli-B7kUZfUu.js} +51 -51
  90. package/dist/{gateway-cli-Bs96hk7L.js → gateway-cli-CaelVnat.js} +52 -52
  91. package/dist/{gateway-rpc-CTqBFfgd.js → gateway-rpc-CCYQR5Bz.js} +1 -1
  92. package/dist/{gateway-rpc-0C2uJScX.js → gateway-rpc-aJiLRbJG.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-mIHlWvBv.js → glass-ui-ws-CMCfE_8I.js} +42 -42
  97. package/dist/{glass-ui-ws-DFYRIWTO.js → glass-ui-ws-CzHgG5_-.js} +43 -43
  98. package/dist/{health-gsbXEgFI.js → health-C8krNwSF.js} +5 -5
  99. package/dist/{health-CpbZDInE.js → health-CiMUQ2KG.js} +5 -5
  100. package/dist/{hooks-cli-iVG6fkFc.js → hooks-cli-C8fq5oKx.js} +34 -34
  101. package/dist/{hooks-cli-SJWnM2SY.js → hooks-cli-CYHfc5jB.js} +35 -35
  102. package/dist/{image-DrkD-6sg.js → image-BTLvoV0e.js} +3 -3
  103. package/dist/{image-DIzd7Gw9.js → image-CNYGLoQl.js} +3 -3
  104. package/dist/{image-GHA29jwQ.js → image-DCnQz5jN.js} +3 -3
  105. package/dist/{image-DWOvY8sR.js → image-bJzFwVE3.js} +3 -3
  106. package/dist/index.js +42 -42
  107. package/dist/{lifecycle-core-CPLYFbS4.js → lifecycle-core-C7fyJOuN.js} +2 -2
  108. package/dist/{lifecycle-core-CE8aXuLe.js → lifecycle-core-f8oPRRaQ.js} +2 -2
  109. package/dist/llm-slug-generator.js +18 -18
  110. package/dist/{login-BcCF4noU.js → login-BZsZO9ST.js} +2 -2
  111. package/dist/{login-_Ynqrjet.js → login-C2C1yAD8.js} +2 -2
  112. package/dist/{login-DNeGXcjV.js → login-CJf4Gdbq.js} +2 -2
  113. package/dist/{login-C5eMLg1G.js → login-DTkUG4Mp.js} +2 -2
  114. package/dist/{login-qr-DjXNemMm.js → login-qr-BSm4xrHW.js} +3 -3
  115. package/dist/{login-qr-E4YwhoPt.js → login-qr-C4uL0W0C.js} +3 -3
  116. package/dist/{login-qr-CzD7_Pru.js → login-qr-CBPis3I2.js} +3 -3
  117. package/dist/{login-qr-CYEYc0Vo.js → login-qr-rvsxQT5p.js} +3 -3
  118. package/dist/{logs-cli-CIQ4qmRW.js → logs-cli-9__MsacS.js} +4 -4
  119. package/dist/{logs-cli-BLp5AOM0.js → logs-cli-DJJ4_QXv.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-D5iikkSG.js} +5 -5
  125. package/dist/{memory-cli-BUoM-v1-.js → memory-cli-OWL3A7_N.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-Dq60dweH.js} +4 -4
  130. package/dist/{model-catalog-DZbVIJnH.js → model-catalog-jhBOlBYp.js} +4 -4
  131. package/dist/{model-picker-BJBeaNrK.js → model-picker-Bsyh5aNH.js} +3 -3
  132. package/dist/{model-picker-DUl7Gvdh.js → model-picker-C1U-Jt0h.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-Cyr_kMKD.js} +14 -14
  136. package/dist/{models-cli-DEQCqsfo.js → models-cli-Ds0-bgOC.js} +39 -39
  137. package/dist/{models-cli-CB2zHB3Q.js → models-cli-H_wXDrQs.js} +40 -40
  138. package/dist/{models-config-DT09Fas0.js → models-config-CjPV5JrE.js} +2 -2
  139. package/dist/{models-config-BH6-rmtt.js → models-config-vcoi9QfD.js} +2 -2
  140. package/dist/{node-cli-BnZT8tc-.js → node-cli-B9nJomOA.js} +10 -10
  141. package/dist/{node-cli-znp1IPL2.js → node-cli-DHVafAR8.js} +10 -10
  142. package/dist/{nodes-cli-C8L5ablK.js → nodes-cli-CyVFmnaa.js} +4 -4
  143. package/dist/{nodes-cli-D3bHqKX1.js → nodes-cli-fvPbfbB4.js} +4 -4
  144. package/dist/{onboard-Dz7lPFv1.js → onboard-B-lQ356l.js} +10 -10
  145. package/dist/{onboard-B725u5vG.js → onboard-BSMzd6sG.js} +10 -10
  146. package/dist/{onboard-channels-DjG2jZUq.js → onboard-channels-C_p8450m.js} +2 -2
  147. package/dist/{onboard-channels-DPb8R8S3.js → onboard-channels-CfoFMyCh.js} +2 -2
  148. package/dist/{onboard-custom-CFqoXgjd.js → onboard-custom-CpKrCcyH.js} +3 -3
  149. package/dist/{onboard-custom-in5WChfX.js → onboard-custom-DsPk-82B.js} +3 -3
  150. package/dist/{onboard-helpers-BmDQMRZ7.js → onboard-helpers-C9emwuya.js} +2 -2
  151. package/dist/{onboard-helpers-_sSsfEAa.js → onboard-helpers-DIAvDwi8.js} +2 -2
  152. package/dist/{onboard-remote-BeAAhzmD.js → onboard-remote-CJrAdmgq.js} +1 -1
  153. package/dist/{onboard-remote-CBEIs-Ew.js → onboard-remote-DQu1ERap.js} +1 -1
  154. package/dist/{onboard-skills-EVFmwR8Q.js → onboard-skills-BC-T_r3T.js} +2 -2
  155. package/dist/{onboard-skills-Bx_OM5v0.js → onboard-skills-CtX6zH5x.js} +2 -2
  156. package/dist/{onboarding-D-FQIiBn.js → onboarding-CCO17f35.js} +11 -11
  157. package/dist/{onboarding-qxWeXuGM.js → onboarding-CEg1sg-w.js} +11 -11
  158. package/dist/{onboarding.finalize-D_gWQwW0.js → onboarding.finalize-B0eG7XwQ.js} +39 -39
  159. package/dist/{onboarding.finalize-DJTQnGkJ.js → onboarding.finalize-CD7SmwyJ.js} +41 -41
  160. package/dist/{onboarding.gateway-config-r7VeJWM7.js → onboarding.gateway-config-Cr1fFG05.js} +5 -5
  161. package/dist/{onboarding.gateway-config-Boplq1Mn.js → onboarding.gateway-config-GDMTEWcW.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-DRslTBga.js → outbound-DXyOHKUR.js} +1 -1
  165. package/dist/{outbound-DPCAcHLQ.js → outbound-DYyGKxSZ.js} +1 -1
  166. package/dist/{outbound-yaYfpPTu.js → outbound-Qgo51Q1x.js} +1 -1
  167. package/dist/{outbound-B_cf2WkB.js → outbound-btxNyARe.js} +1 -1
  168. package/dist/{pairing-cli-DOMZSDiT.js → pairing-cli-DC6MUFHZ.js} +4 -4
  169. package/dist/{pairing-cli-DFgfVeeY.js → pairing-cli-m3BrxJoY.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-Do26xypW.js → pi-auth-json-Ba2dEWAH.js} +2 -2
  176. package/dist/{pi-auth-json-DV2ruNQM.js → pi-auth-json-BqB9Z6Gg.js} +1 -1
  177. package/dist/{pi-auth-json-CNgAAznq.js → pi-auth-json-etIDtHw9.js} +1 -1
  178. package/dist/{pi-embedded-BINp4yHJ.js → pi-embedded-BR587DfN.js} +266 -70
  179. package/dist/{pi-embedded-C6BUGEuF.js → pi-embedded-CyEM9NzS.js} +266 -70
  180. package/dist/{pi-embedded-helpers-jynCNZsb.js → pi-embedded-helpers-BflbNBBD.js} +1 -1
  181. package/dist/{pi-embedded-helpers-BDwdFGX-.js → pi-embedded-helpers-CAtkZb8c.js} +6 -6
  182. package/dist/{pi-embedded-helpers-Dfp-iKzJ.js → pi-embedded-helpers-KIM5SCp6.js} +6 -6
  183. package/dist/{pi-embedded-helpers-Cs0TgOaH.js → pi-embedded-helpers-XJw27Ryb.js} +1 -1
  184. package/dist/{pi-tools.policy-eb_uvOQV.js → pi-tools.policy-BJ7mumw5.js} +2 -2
  185. package/dist/{pi-tools.policy-vws0LV7U.js → pi-tools.policy-P1akpJL8.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-CAuOLe4u.js} +2 -2
  189. package/dist/{plugin-registry-D1cKRWYQ.js → plugin-registry-gJKyJBN5.js} +2 -2
  190. package/dist/plugin-sdk/agents/plan-mode.d.ts +2 -1
  191. package/dist/plugin-sdk/agents/synthetic-models.d.ts +1 -1
  192. package/dist/plugin-sdk/agents/system-prompt.d.ts +2 -1
  193. package/dist/plugin-sdk/agents/timeout.d.ts +1 -0
  194. package/dist/plugin-sdk/{api-key-rotation-Qy7QGV8_.js → api-key-rotation-DNKq8sDG.js} +1 -1
  195. package/dist/plugin-sdk/{audio-preflight-CdG1OBN2.js → audio-preflight-BLIDrYdM.js} +7 -7
  196. package/dist/plugin-sdk/{channel-web-DFVIpsZB.js → channel-web-CmlTJ7hK.js} +7 -7
  197. package/dist/plugin-sdk/{chrome-XyjVFCkY.js → chrome-DZFDAzW-.js} +1 -1
  198. package/dist/plugin-sdk/{commands-registry-CvppXodz.js → commands-registry-un-LmdXo.js} +1 -1
  199. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +6 -0
  200. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +3 -0
  201. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +3 -0
  202. package/dist/plugin-sdk/config/zod-schema.d.ts +3 -0
  203. package/dist/plugin-sdk/{config-DG32gDDp.js → config-E1hS2lFY.js} +5 -2
  204. package/dist/plugin-sdk/{deliver-BdbnTrPD.js → deliver-DedoujTw.js} +2 -2
  205. package/dist/plugin-sdk/{image-B4_TBNqR.js → image-BTkmcfWM.js} +3 -3
  206. package/dist/plugin-sdk/index.js +22 -22
  207. package/dist/plugin-sdk/{login-Dey5tDpn.js → login-DsV1n99g.js} +2 -2
  208. package/dist/plugin-sdk/{login-qr-Tx8z1frn.js → login-qr-BXuSdbtI.js} +3 -3
  209. package/dist/plugin-sdk/{manager-RdPsBbBU.js → manager-BItSTruD.js} +2 -2
  210. package/dist/plugin-sdk/{model-selection-D6J2MZsj.js → model-selection-aEd_4vFO.js} +6 -2
  211. package/dist/plugin-sdk/{outbound-BpzsDbEV.js → outbound-2GErJr9p.js} +1 -1
  212. package/dist/plugin-sdk/{pi-auth-json-BmWuNdJA.js → pi-auth-json-FyiScmI7.js} +1 -1
  213. package/dist/plugin-sdk/{pi-embedded-helpers-OWtoPEg8.js → pi-embedded-helpers-ClMAnIcK.js} +6 -6
  214. package/dist/plugin-sdk/{pw-ai-OhVopvbb.js → pw-ai-DgQXeoga.js} +3 -3
  215. package/dist/plugin-sdk/{replies-DiFTMGgM.js → replies-DgHmcQJm.js} +1 -1
  216. package/dist/plugin-sdk/{reply-v8ed4JLy.js → reply-ByXRSx6U.js} +262 -66
  217. package/dist/plugin-sdk/{runner-BUXsfUip.js → runner-BZyapZ82.js} +5 -5
  218. package/dist/plugin-sdk/{send-CGSsrvd1.js → send-BRY1rgHy.js} +2 -2
  219. package/dist/plugin-sdk/{send-BXvJJUV_.js → send-BeLrD_W8.js} +1 -1
  220. package/dist/plugin-sdk/{send-BbFwAS_k.js → send-BmtFyMcr.js} +1 -1
  221. package/dist/plugin-sdk/{send-Drdgnfr_.js → send-BnQuSlC7.js} +1 -1
  222. package/dist/plugin-sdk/{send-DXcq1jzH.js → send-pZOlfgD0.js} +1 -1
  223. package/dist/plugin-sdk/{session-CX5KhlOe.js → session-Bjd4Dl7q.js} +1 -1
  224. package/dist/plugin-sdk/{skill-commands-NTPqO_az.js → skill-commands-Cwps3qpb.js} +1 -1
  225. package/dist/plugin-sdk/{web-DfIRv_Mx.js → web-C0VbV0vu.js} +22 -22
  226. package/dist/plugin-sdk/{whatsapp-actions-Dh6Y2fu9.js → whatsapp-actions-ydkRfuPg.js} +3 -3
  227. package/dist/{plugins-cli-ClY_BPg9.js → plugins-cli-BgXKqvpz.js} +34 -34
  228. package/dist/{plugins-cli-UmtKEuxj.js → plugins-cli-wo480wui.js} +35 -35
  229. package/dist/{program-CNsuYlJt.js → program-Ce64EM2F.js} +41 -41
  230. package/dist/{program-context-C2XeNCxI.js → program-context-D1Aj6Hxo.js} +38 -38
  231. package/dist/{prompt-select-styled-CiYSpQIf.js → prompt-select-styled-DLBGvEup.js} +17 -17
  232. package/dist/{prompt-select-styled-CgsYQqlJ.js → prompt-select-styled-DWgtQk76.js} +17 -17
  233. package/dist/{provider-auth-helpers-XIYHuUnj.js → provider-auth-helpers-CVi3VrsV.js} +4 -4
  234. package/dist/{provider-auth-helpers-CVAbJckC.js → provider-auth-helpers-fgQMn0eD.js} +4 -4
  235. package/dist/{push-apns-9q7Pl5I0.js → push-apns-CckLJBvV.js} +1 -1
  236. package/dist/{push-apns-6y-7OuAU.js → push-apns-kn7d-4VV.js} +1 -1
  237. package/dist/{pw-ai-C9noP7iN.js → pw-ai-5o71PJ5h.js} +3 -3
  238. package/dist/{pw-ai-BdNmRxEw.js → pw-ai-C3t2kdhc.js} +3 -3
  239. package/dist/{pw-ai-BfUWg8Eh.js → pw-ai-D-O0LOKC.js} +3 -3
  240. package/dist/{pw-ai-Dnh_iopr.js → pw-ai-I8AbpqgG.js} +3 -3
  241. package/dist/{qr-cli-BbRZOhwI.js → qr-cli-DC0qgjHf.js} +2 -2
  242. package/dist/{qr-cli-Cac34dCs.js → qr-cli-iTQlujHe.js} +2 -2
  243. package/dist/{register.agent-Ys85zXmm.js → register.agent-B94MeV3Q.js} +43 -43
  244. package/dist/{register.agent-DmLJVv4N.js → register.agent-uEXUpxgu.js} +45 -45
  245. package/dist/{register.configure-DYuK1UkU.js → register.configure-Bv85zqz8.js} +48 -48
  246. package/dist/{register.configure-BwmAY5TF.js → register.configure-tHkhp6vI.js} +47 -47
  247. package/dist/{register.maintenance-BQa25CA8.js → register.maintenance-BICJkK4r.js} +46 -46
  248. package/dist/{register.maintenance-625En1kE.js → register.maintenance-DaW01sHo.js} +44 -44
  249. package/dist/{register.message-DKeM6mQo.js → register.message-7Or0MY88.js} +34 -34
  250. package/dist/{register.message-CDpK3rbI.js → register.message-CSCfumTM.js} +35 -35
  251. package/dist/{register.onboard-CbvkWFq5.js → register.onboard-DgC3S144.js} +42 -42
  252. package/dist/{register.onboard-DtMjj81J.js → register.onboard-oEy-BwfU.js} +43 -43
  253. package/dist/{register.setup-DdX4Ahvt.js → register.setup-BnpJJOV4.js} +42 -42
  254. package/dist/{register.setup-BHhLns2f.js → register.setup-hrp8DAVZ.js} +43 -43
  255. package/dist/{register.status-health-sessions-D1KvwnF9.js → register.status-health-sessions-BfLJEzMU.js} +38 -38
  256. package/dist/{register.status-health-sessions-CqMFel_o.js → register.status-health-sessions-njnukBAU.js} +40 -40
  257. package/dist/{register.subclis-su5EMHvC.js → register.subclis-DEYBaz-Z.js} +28 -28
  258. package/dist/{replies-DqyX2Vln.js → replies-B5Jh0OCP.js} +1 -1
  259. package/dist/{replies-DtdP8R93.js → replies-BVXZDrhw.js} +1 -1
  260. package/dist/{replies-zeeuLUij.js → replies-CHirod5x.js} +1 -1
  261. package/dist/{replies-Dzc6eCFS.js → replies-Cyt5jQaT.js} +1 -1
  262. package/dist/{reply-DyFibFiG.js → reply-77x5WoQH.js} +274 -78
  263. package/dist/{routes-CEjKic_-.js → routes-BtsprtPx.js} +3 -3
  264. package/dist/{routes-B7FWIw81.js → routes-D5iYXgsO.js} +3 -3
  265. package/dist/{rpc-CV10Y2YL.js → rpc-CjvivzOg.js} +1 -1
  266. package/dist/{rpc-CR9IjVRa.js → rpc-lMWCuyRt.js} +1 -1
  267. package/dist/{run-main-CRPU46XB.js → run-main-DNA2le87.js} +53 -53
  268. package/dist/{runner-BkANJiWS.js → runner-3kD2Hk1w.js} +5 -5
  269. package/dist/{runner-v0fS4J7T.js → runner-Bzh_L69X.js} +5 -5
  270. package/dist/{runner-CTglx_CV.js → runner-_npJ-cn9.js} +5 -5
  271. package/dist/{runner-w5reqY02.js → runner-b_ibT3sW.js} +5 -5
  272. package/dist/{sandbox-DTzJlbvf.js → sandbox-BBGJMpXR.js} +5 -5
  273. package/dist/{sandbox-BpIrSDhl.js → sandbox-CPR0wRyk.js} +5 -5
  274. package/dist/{sandbox-cli-R_ZOY_KC.js → sandbox-cli-BgCrevMy.js} +7 -7
  275. package/dist/{sandbox-cli-B4VN_9mV.js → sandbox-cli-CHOc4ElC.js} +7 -7
  276. package/dist/{security-cli-BMB3kCFA.js → security-cli-B7YKQ6Nh.js} +12 -12
  277. package/dist/{security-cli-DmpyxTgQ.js → security-cli-iW-aIZ15.js} +12 -12
  278. package/dist/{send-DVLEgg9H.js → send--qdaLm4C.js} +1 -1
  279. package/dist/{send-CRWQglv9.js → send-B26isft5.js} +1 -1
  280. package/dist/{send-DDrpEKUg.js → send-BAM-zeo8.js} +2 -2
  281. package/dist/{send-Bt4UsVrd.js → send-BVKK9mIc.js} +1 -1
  282. package/dist/{send-Bx04WqH5.js → send-BfoI2xoz.js} +1 -1
  283. package/dist/{send-hJthT6M_.js → send-Btgfdf6H.js} +1 -1
  284. package/dist/{send-tDTl6xgz.js → send-BxkOVx17.js} +2 -2
  285. package/dist/{send-CC2vm0xU.js → send-C1fiVl-C.js} +1 -1
  286. package/dist/{send-BLT3lTZy.js → send-C7DzVT6I.js} +1 -1
  287. package/dist/{send-BbV4XqMl.js → send-CNZ2iT1h.js} +1 -1
  288. package/dist/{send-CQzO_Tg0.js → send-CboqahSN.js} +2 -2
  289. package/dist/{send-DyK4u4yH.js → send-DVNiZsde.js} +1 -1
  290. package/dist/{send-CZ18Xq5n.js → send-DXw0_dn5.js} +1 -1
  291. package/dist/{send-CEjpAJ8N.js → send-DffO5_WA.js} +1 -1
  292. package/dist/{send-BXiiQprI.js → send-Dfohx1Dj.js} +1 -1
  293. package/dist/{send-EQ1insgp.js → send-Dfum4W06.js} +1 -1
  294. package/dist/{send-CltKx_vS.js → send-QGcGaA1o.js} +2 -2
  295. package/dist/{send-BR3reUOE.js → send-TtpoiB7G.js} +1 -1
  296. package/dist/{send-Dm4UYQsf.js → send-sS-DxRJV.js} +1 -1
  297. package/dist/{send-1iB7Rdwp.js → send-ytd5gZYc.js} +1 -1
  298. package/dist/{server-context-DbcjnRHG.js → server-context-CZZZ5S6q.js} +5 -5
  299. package/dist/{server-context-BcjcQhiM.js → server-context-DiCxB7wV.js} +5 -5
  300. package/dist/{server-methods-U_lDP83A.js → server-methods-DgHyPneM.js} +21 -18
  301. package/dist/{server-methods-56m79WbR.js → server-methods-alycWcYE.js} +22 -19
  302. package/dist/{server-node-events-DpGswbj8.js → server-node-events-B5dFQdac.js} +34 -34
  303. package/dist/{server-node-events-Q9J_E8Ce.js → server-node-events-BkIo___r.js} +35 -35
  304. package/dist/{session-1Q4kg4xp.js → session-BFbJf357.js} +1 -1
  305. package/dist/{session-C86mCuOs.js → session-BdWP3apT.js} +1 -1
  306. package/dist/{session-BvXsNdtA.js → session-CiCHQ3Ah.js} +1 -1
  307. package/dist/{session-B4JR6zUJ.js → session-Dg44BpS1.js} +1 -1
  308. package/dist/{session-utils-CFvGKxdu.js → session-utils-Cs-nCi4-.js} +4 -4
  309. package/dist/{sessions-B3nP13Fw.js → sessions-BF3cJslT.js} +2 -2
  310. package/dist/{sessions-BdeJp6uY.js → sessions-C_c07viS.js} +2 -2
  311. package/dist/{sessions-m60NabL_.js → sessions-RYattOnc.js} +4 -4
  312. package/dist/{shared-mv9M8Mzc.js → shared-BmGIQ5oj.js} +2 -2
  313. package/dist/{shared-sOiAK5kN.js → shared-Dg2JustZ.js} +2 -2
  314. package/dist/{skill-commands-CWySL97a.js → skill-commands-BlfEmZ8t.js} +1 -1
  315. package/dist/{skill-commands-B64uavY9.js → skill-commands-C2kxEz5h.js} +1 -1
  316. package/dist/{skill-commands-DrFCB9F9.js → skill-commands-CSBmZ_di.js} +1 -1
  317. package/dist/{skill-commands-DWcJOIzP.js → skill-commands-C_ZNSYNS.js} +1 -1
  318. package/dist/{skills-cli-B7FG8Ft4.js → skills-cli-D9N3SSqr.js} +2 -2
  319. package/dist/{skills-cli-DVTw-NM0.js → skills-cli-G_0fvsIb.js} +2 -2
  320. package/dist/{status-D4KjZ3qi.js → status-D-gXM4AZ.js} +11 -11
  321. package/dist/{status-BNmYNm1S.js → status-T4y8IdyW.js} +2 -2
  322. package/dist/{status-DIYjr2wp.js → status-s0Mudh8o.js} +2 -2
  323. package/dist/{status-DbXRbJqY.js → status-yh81t6sL.js} +12 -12
  324. package/dist/{status.update-DKLvc9EH.js → status.update-9QVNoqzS.js} +1 -1
  325. package/dist/{status.update-CbXOcYqG.js → status.update-DAK4tN-2.js} +1 -1
  326. package/dist/{subagent-registry-Ct3GvWVn.js → subagent-registry-newoxfzs.js} +275 -79
  327. package/dist/{system-cli-B_KTvR0v.js → system-cli-B0oAtepa.js} +4 -4
  328. package/dist/{system-cli-9b3AzE_M.js → system-cli-kixN2BmA.js} +4 -4
  329. package/dist/{systemd-hints-BE7qhp3n.js → systemd-hints-BPRCUlOg.js} +1 -1
  330. package/dist/{systemd-hints-D_u4AuIu.js → systemd-hints-CRzDDf1-.js} +1 -1
  331. package/dist/{tui-oo_JjD-G.js → tui-CwMmsLXs.js} +16 -7
  332. package/dist/{tui-BViOdgFZ.js → tui-PZpjjXWo.js} +16 -7
  333. package/dist/{tui-cli-DKQz32oa.js → tui-cli-CU2JJJI9.js} +11 -11
  334. package/dist/{tui-cli-B97jQaQp.js → tui-cli-PTM4Eps5.js} +11 -11
  335. package/dist/{update-cli-Dhk0Yxsm.js → update-cli-B1dB4WdO.js} +47 -47
  336. package/dist/{update-cli-C9S00L1E.js → update-cli-BQdfZeXu.js} +49 -49
  337. package/dist/{update-runner-DBZOvTzN.js → update-runner-DKzlPMRC.js} +1 -1
  338. package/dist/{update-runner-BnIIcsqA.js → update-runner-HJhfkubt.js} +1 -1
  339. package/dist/{web-mXHyxR_l.js → web-BnH0qf_8.js} +21 -21
  340. package/dist/{web-f7lkf_un.js → web-CQzdHGhF.js} +21 -21
  341. package/dist/{web-8NQJ75ip.js → web-CScA06_W.js} +37 -37
  342. package/dist/{web-5uLk4OEM.js → web-DTIV3Lgo.js} +37 -37
  343. package/dist/{webhooks-cli-BLi_usfE.js → webhooks-cli-B97uWTaD.js} +2 -2
  344. package/dist/{webhooks-cli-Dz9n2L0-.js → webhooks-cli-CAHebfVz.js} +2 -2
  345. package/dist/{whatsapp-actions-ChtHuvdU.js → whatsapp-actions-BgiS8DUJ.js} +3 -3
  346. package/dist/{whatsapp-actions-6S6PNs2p.js → whatsapp-actions-BsVCZeLO.js} +3 -3
  347. package/dist/{whatsapp-actions-B4YPuD2Q.js → whatsapp-actions-DfJHCjBV.js} +3 -3
  348. package/dist/{whatsapp-actions-M8kjDd9l.js → whatsapp-actions-xhdGIJBd.js} +3 -3
  349. package/dist/{with-timeout-2zPYOOzh.js → with-timeout-C0euAxXp.js} +1 -1
  350. package/dist/{with-timeout-gaHpaiis.js → with-timeout-CiGZZ4b2.js} +1 -1
  351. package/docs/reference/templates/SYMIPULSE.md +1 -0
  352. 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-CxnbOYs8.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-B-p451Eo.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-BF3cJslT.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-Btgfdf6H.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-Dfohx1Dj.js";
28
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-C0euAxXp.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-8jOk1f3v.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-CboqahSN.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-XJw27Ryb.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-CPR0wRyk.js";
37
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-Chj8uCZN.js";
38
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CZZZ5S6q.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-CjPV5JrE.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-OWL3A7_N.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-bJzFwVE3.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-b_ibT3sW.js";
70
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-Dq60dweH.js";
71
+ import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-Cs-nCi4-.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-B7EmYYFH.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-C7DzVT6I.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-B26isft5.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-B5Jh0OCP.js";
94
+ import { r as detectBinary } from "./onboard-helpers-C9emwuya.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-P1akpJL8.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";
@@ -5426,6 +5426,8 @@ function resolveAgentTimeoutMs(opts) {
5426
5426
  if (overrideSeconds < 0) return defaultMs;
5427
5427
  return clampTimeoutMs(overrideSeconds * 1e3);
5428
5428
  }
5429
+ const modelSeconds = normalizeNumber(opts.modelTimeoutSeconds);
5430
+ if (modelSeconds !== void 0 && modelSeconds > 0) return clampTimeoutMs(modelSeconds * 1e3);
5429
5431
  return defaultMs;
5430
5432
  }
5431
5433
 
@@ -7605,7 +7607,7 @@ async function createModelSelectionState(params) {
7605
7607
  }
7606
7608
  }
7607
7609
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
7608
- const { ensureAuthProfileStore } = await import("./auth-profiles-BD22fK4p.js").then((n) => n.t);
7610
+ const { ensureAuthProfileStore } = await import("./auth-profiles-Cs3GPB03.js").then((n) => n.t);
7609
7611
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
7610
7612
  const providerKey = normalizeProviderId(provider);
7611
7613
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -14695,8 +14697,8 @@ function buildMemorySection(params) {
14695
14697
  lines.push("");
14696
14698
  return lines;
14697
14699
  }
14698
- function buildUserIdentitySection(ownerLine, isMinimal) {
14699
- if (!ownerLine || isMinimal) return [];
14700
+ function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
14701
+ if (!ownerLine || isMinimal || isCoding) return [];
14700
14702
  return [
14701
14703
  "## Authorized Senders",
14702
14704
  ownerLine,
@@ -14720,8 +14722,8 @@ function buildTimeSection(params) {
14720
14722
  ""
14721
14723
  ];
14722
14724
  }
14723
- function buildReplyTagsSection(isMinimal) {
14724
- if (isMinimal) return [];
14725
+ function buildReplyTagsSection(isMinimal, isCoding) {
14726
+ if (isMinimal || isCoding) return [];
14725
14727
  return [
14726
14728
  "## Reply Tags",
14727
14729
  "To request a native reply/quote on supported surfaces, include one tag in your reply:",
@@ -14734,7 +14736,7 @@ function buildReplyTagsSection(isMinimal) {
14734
14736
  ];
14735
14737
  }
14736
14738
  function buildMessagingSection(params) {
14737
- if (params.isMinimal) return [];
14739
+ if (params.isMinimal || params.isCoding) return [];
14738
14740
  return [
14739
14741
  "## Messaging",
14740
14742
  "- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
@@ -14757,7 +14759,7 @@ function buildMessagingSection(params) {
14757
14759
  ];
14758
14760
  }
14759
14761
  function buildVoiceSection(params) {
14760
- if (params.isMinimal) return [];
14762
+ if (params.isMinimal || params.isCoding) return [];
14761
14763
  const hint = params.ttsHint?.trim();
14762
14764
  if (!hint) return [];
14763
14765
  return [
@@ -14766,6 +14768,71 @@ function buildVoiceSection(params) {
14766
14768
  ""
14767
14769
  ];
14768
14770
  }
14771
+ function buildVerifyYourWorkSection(params) {
14772
+ if (params.isMinimal) return [];
14773
+ const exec = params.execToolName;
14774
+ const read = params.readToolName;
14775
+ return [
14776
+ "## Verify Your Work",
14777
+ [
14778
+ "Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
14779
+ "Skipping verification is the single most common cause of incomplete or broken outputs.",
14780
+ "Treat this section as mandatory for every coding task, not optional polish."
14781
+ ].join(" "),
14782
+ "",
14783
+ "### 1. Re-read the request",
14784
+ [
14785
+ "Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
14786
+ "Extract every discrete requirement, constraint, and preference they stated.",
14787
+ "Write them down internally as a checklist.",
14788
+ "This catches drift: it is easy to start solving a related-but-different problem mid-task."
14789
+ ].join(" "),
14790
+ "",
14791
+ "### 2. Check each requirement against your output",
14792
+ [
14793
+ "Walk through your internal checklist point by point.",
14794
+ "For each requirement, locate the exact lines in your output that satisfy it.",
14795
+ "If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
14796
+ "Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
14797
+ ].join(" "),
14798
+ "",
14799
+ "### 3. Run the code",
14800
+ [
14801
+ `Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
14802
+ "Do not guess whether code works — execute it and observe the result.",
14803
+ "If the code produces errors, fix them and re-run until it succeeds.",
14804
+ "For scripts: run them with representative inputs.",
14805
+ "For libraries/modules: write and execute a minimal smoke test.",
14806
+ "For config files: validate syntax (e.g., json, yaml, toml parsers).",
14807
+ "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."
14808
+ ].join(" "),
14809
+ "",
14810
+ "### 4. Include tests when requested",
14811
+ [
14812
+ "If the user asked for tests, they are a hard requirement — not a nice-to-have.",
14813
+ "Deliver the tests alongside the implementation, not as an afterthought.",
14814
+ "Run the tests and confirm they pass before responding.",
14815
+ "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."
14816
+ ].join(" "),
14817
+ "",
14818
+ "### 5. Self-review",
14819
+ [
14820
+ `After everything above, use ${read} to re-read any files you created or modified.`,
14821
+ "Look at them with fresh eyes as if reviewing someone else's code.",
14822
+ "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).",
14823
+ "If you find problems during self-review, fix them, re-run verification, and only then respond."
14824
+ ].join(" "),
14825
+ "",
14826
+ "### Verification failures",
14827
+ [
14828
+ "If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
14829
+ "Instead, fix the issue silently and re-verify.",
14830
+ "The user should receive working, complete output — not a draft with known issues.",
14831
+ "Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
14832
+ ].join(" "),
14833
+ ""
14834
+ ];
14835
+ }
14769
14836
  function buildDocsSection(params) {
14770
14837
  const docsPath = params.docsPath?.trim();
14771
14838
  if (!docsPath || params.isMinimal) return [];
@@ -14890,6 +14957,7 @@ function buildAgentSystemPrompt(params) {
14890
14957
  const messageChannelOptions = listDeliverableMessageChannels().join("|");
14891
14958
  const promptMode = params.promptMode ?? "full";
14892
14959
  const isMinimal = promptMode === "minimal" || promptMode === "none";
14960
+ const isCoding = promptMode === "coding";
14893
14961
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
14894
14962
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
14895
14963
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -14966,19 +15034,19 @@ function buildAgentSystemPrompt(params) {
14966
15034
  "",
14967
15035
  ...skillsSection,
14968
15036
  ...memorySection,
14969
- hasGateway && !isMinimal ? "## Symi Self-Update" : "",
14970
- hasGateway && !isMinimal ? [
15037
+ hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
15038
+ hasGateway && !isMinimal && !isCoding ? [
14971
15039
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
14972
15040
  "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
15041
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
14974
15042
  "After restart, Symi pings the last active session automatically."
14975
15043
  ].join("\n") : "",
14976
- hasGateway && !isMinimal ? "" : "",
15044
+ hasGateway && !isMinimal && !isCoding ? "" : "",
14977
15045
  "",
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 ? "" : "",
15046
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
15047
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
15048
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
15049
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
14982
15050
  userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
14983
15051
  "## Workspace",
14984
15052
  `Your working directory is: ${displayWorkspaceDir}`,
@@ -14986,6 +15054,11 @@ function buildAgentSystemPrompt(params) {
14986
15054
  ...workspaceNotes,
14987
15055
  "",
14988
15056
  ...docsSection,
15057
+ ...buildVerifyYourWorkSection({
15058
+ isMinimal,
15059
+ execToolName,
15060
+ readToolName
15061
+ }),
14989
15062
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
14990
15063
  params.sandboxInfo?.enabled ? [
14991
15064
  "You are running in a sandboxed runtime (tools execute in Docker).",
@@ -15003,14 +15076,15 @@ function buildAgentSystemPrompt(params) {
15003
15076
  params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
15004
15077
  ].filter(Boolean).join("\n") : "",
15005
15078
  params.sandboxInfo?.enabled ? "" : "",
15006
- ...buildUserIdentitySection(ownerLine, isMinimal),
15079
+ ...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
15007
15080
  ...buildTimeSection({ userTimezone }),
15008
15081
  "## Workspace Files (injected)",
15009
15082
  "These user-editable files are loaded by Symi and included below in Project Context.",
15010
15083
  "",
15011
- ...buildReplyTagsSection(isMinimal),
15084
+ ...buildReplyTagsSection(isMinimal, isCoding),
15012
15085
  ...buildMessagingSection({
15013
15086
  isMinimal,
15087
+ isCoding,
15014
15088
  availableTools,
15015
15089
  messageChannelOptions,
15016
15090
  inlineButtonsEnabled,
@@ -15019,6 +15093,7 @@ function buildAgentSystemPrompt(params) {
15019
15093
  }),
15020
15094
  ...buildVoiceSection({
15021
15095
  isMinimal,
15096
+ isCoding,
15022
15097
  ttsHint: params.ttsHint
15023
15098
  })
15024
15099
  ];
@@ -15058,8 +15133,8 @@ function buildAgentSystemPrompt(params) {
15058
15133
  lines.push("");
15059
15134
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
15060
15135
  }
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.", "");
15136
+ 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}`, "");
15137
+ 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
15138
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
15064
15139
  return lines.filter(Boolean).join("\n");
15065
15140
  }
@@ -20290,7 +20365,7 @@ async function routeReply(params) {
20290
20365
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
20291
20366
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
20292
20367
  try {
20293
- const { deliverOutboundPayloads } = await import("./deliver-CIc_l0o6.js").then((n) => n.n);
20368
+ const { deliverOutboundPayloads } = await import("./deliver-8jOk1f3v.js").then((n) => n.n);
20294
20369
  return {
20295
20370
  ok: true,
20296
20371
  messageId: (await deliverOutboundPayloads({
@@ -34848,7 +34923,7 @@ async function deliverSessionMaintenanceWarning(params) {
34848
34923
  return;
34849
34924
  }
34850
34925
  try {
34851
- const { deliverOutboundPayloads } = await import("./deliver-CIc_l0o6.js").then((n) => n.n);
34926
+ const { deliverOutboundPayloads } = await import("./deliver-8jOk1f3v.js").then((n) => n.n);
34852
34927
  await deliverOutboundPayloads({
34853
34928
  cfg: params.cfg,
34854
34929
  channel,
@@ -35500,9 +35575,12 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
35500
35575
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
35501
35576
  })).dir;
35502
35577
  const agentDir = resolveAgentDir(cfg, agentId);
35578
+ const primaryModelKey = typeof cfg?.agents?.defaults?.model === "object" ? cfg.agents.defaults.model.primary : void 0;
35579
+ const modelTimeoutSeconds = primaryModelKey ? cfg?.agents?.defaults?.models?.[primaryModelKey]?.timeoutSeconds : void 0;
35503
35580
  const timeoutMs = resolveAgentTimeoutMs({
35504
35581
  cfg,
35505
- overrideSeconds: opts?.timeoutOverrideSeconds
35582
+ overrideSeconds: opts?.timeoutOverrideSeconds,
35583
+ modelTimeoutSeconds: modelTimeoutSeconds ?? null
35506
35584
  });
35507
35585
  const configuredTypingSeconds = agentCfg?.typingIntervalSeconds ?? sessionCfg?.typingIntervalSeconds;
35508
35586
  const typingIntervalSeconds = typeof configuredTypingSeconds === "number" ? configuredTypingSeconds : 6;
@@ -38299,7 +38377,7 @@ async function describeStickerImage(params) {
38299
38377
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
38300
38378
  try {
38301
38379
  const buffer = await fs$1.readFile(imagePath);
38302
- const { describeImageWithModel } = await import("./image-DWOvY8sR.js").then((n) => n.n);
38380
+ const { describeImageWithModel } = await import("./image-bJzFwVE3.js").then((n) => n.n);
38303
38381
  return (await describeImageWithModel({
38304
38382
  buffer,
38305
38383
  fileName: "sticker.webp",
@@ -38722,7 +38800,7 @@ function createWhatsAppLoginTool() {
38722
38800
  force: Type.Optional(Type.Boolean())
38723
38801
  }),
38724
38802
  execute: async (_toolCallId, args) => {
38725
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CYEYc0Vo.js");
38803
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-rvsxQT5p.js");
38726
38804
  if ((args?.action ?? "start") === "wait") {
38727
38805
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
38728
38806
  return {
@@ -40098,7 +40176,7 @@ async function preflightDiscordMessage(params) {
40098
40176
  let preflightTranscript;
40099
40177
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
40100
40178
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
40101
- const { transcribeFirstAudio } = await import("./audio-preflight-5w1q1hWh.js");
40179
+ const { transcribeFirstAudio } = await import("./audio-preflight-USnUISOE.js");
40102
40180
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
40103
40181
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
40104
40182
  ctx: {
@@ -44104,27 +44182,27 @@ function isVoiceChannelType(type) {
44104
44182
  function createDefaultDeps() {
44105
44183
  return {
44106
44184
  sendMessageWhatsApp: async (...args) => {
44107
- const { sendMessageWhatsApp } = await import("./web-8NQJ75ip.js");
44185
+ const { sendMessageWhatsApp } = await import("./web-CScA06_W.js");
44108
44186
  return await sendMessageWhatsApp(...args);
44109
44187
  },
44110
44188
  sendMessageTelegram: async (...args) => {
44111
- const { sendMessageTelegram } = await import("./send-CQzO_Tg0.js").then((n) => n.l);
44189
+ const { sendMessageTelegram } = await import("./send-CboqahSN.js").then((n) => n.l);
44112
44190
  return await sendMessageTelegram(...args);
44113
44191
  },
44114
44192
  sendMessageDiscord: async (...args) => {
44115
- const { sendMessageDiscord } = await import("./send-BXiiQprI.js").then((n) => n.t);
44193
+ const { sendMessageDiscord } = await import("./send-Dfohx1Dj.js").then((n) => n.t);
44116
44194
  return await sendMessageDiscord(...args);
44117
44195
  },
44118
44196
  sendMessageSlack: async (...args) => {
44119
- const { sendMessageSlack } = await import("./send-hJthT6M_.js").then((n) => n.n);
44197
+ const { sendMessageSlack } = await import("./send-Btgfdf6H.js").then((n) => n.n);
44120
44198
  return await sendMessageSlack(...args);
44121
44199
  },
44122
44200
  sendMessageSignal: async (...args) => {
44123
- const { sendMessageSignal } = await import("./send-BLT3lTZy.js").then((n) => n.i);
44201
+ const { sendMessageSignal } = await import("./send-C7DzVT6I.js").then((n) => n.i);
44124
44202
  return await sendMessageSignal(...args);
44125
44203
  },
44126
44204
  sendMessageIMessage: async (...args) => {
44127
- const { sendMessageIMessage } = await import("./send-CRWQglv9.js").then((n) => n.n);
44205
+ const { sendMessageIMessage } = await import("./send-B26isft5.js").then((n) => n.n);
44128
44206
  return await sendMessageIMessage(...args);
44129
44207
  }
44130
44208
  };
@@ -44614,9 +44692,11 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
44614
44692
  const isSubagentLane = (typeof opts.lane === "string" ? opts.lane.trim() : "") === String(AGENT_LANE_SUBAGENT);
44615
44693
  const timeoutSecondsRaw = opts.timeout !== void 0 ? Number.parseInt(String(opts.timeout), 10) : isSubagentLane ? 0 : void 0;
44616
44694
  if (timeoutSecondsRaw !== void 0 && (Number.isNaN(timeoutSecondsRaw) || timeoutSecondsRaw < 0)) throw new Error("--timeout must be a non-negative integer (seconds; 0 means no timeout)");
44695
+ const primaryModelKey = typeof cfg?.agents?.defaults?.model === "object" ? cfg.agents.defaults.model.primary : void 0;
44617
44696
  const timeoutMs = resolveAgentTimeoutMs({
44618
44697
  cfg,
44619
- overrideSeconds: timeoutSecondsRaw
44698
+ overrideSeconds: timeoutSecondsRaw,
44699
+ modelTimeoutSeconds: (primaryModelKey ? cfg?.agents?.defaults?.models?.[primaryModelKey]?.timeoutSeconds : void 0) ?? null
44620
44700
  });
44621
44701
  const { sessionId, sessionKey, sessionEntry: resolvedSessionEntry, sessionStore, storePath, isNewSession, persistedThinking, persistedVerbose } = resolveSession({
44622
44702
  cfg,
@@ -54575,7 +54655,7 @@ function readSlackExternalArgMenuToken(raw) {
54575
54655
  }
54576
54656
  let commandsRegistry;
54577
54657
  async function getCommandsRegistry() {
54578
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-uo2OKqdL.js").then((n) => n.n);
54658
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-nK_mZXUN.js").then((n) => n.n);
54579
54659
  return commandsRegistry;
54580
54660
  }
54581
54661
  function encodeSlackCommandArgValue(parts) {
@@ -54978,7 +55058,7 @@ async function registerSlackMonitorSlashCommands(params) {
54978
55058
  });
54979
55059
  const deliverSlashPayloads = async (replies) => {
54980
55060
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
54981
- import("./replies-DqyX2Vln.js").then((n) => n.r),
55061
+ import("./replies-B5Jh0OCP.js").then((n) => n.r),
54982
55062
  import("./chunk-CQyUJNtc.js").then((n) => n.s),
54983
55063
  import("./markdown-tables-D82z_Ahc.js").then((n) => n.t)
54984
55064
  ]);
@@ -55033,7 +55113,7 @@ async function registerSlackMonitorSlashCommands(params) {
55033
55113
  let nativeCommands = [];
55034
55114
  if (nativeEnabled) {
55035
55115
  reg = await getCommandsRegistry();
55036
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CWySL97a.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
55116
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BlfEmZ8t.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
55037
55117
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
55038
55118
  skillCommands,
55039
55119
  provider: "slack"
@@ -57251,7 +57331,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
57251
57331
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
57252
57332
  let preflightTranscript;
57253
57333
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
57254
- const { transcribeFirstAudio } = await import("./audio-preflight-5w1q1hWh.js");
57334
+ const { transcribeFirstAudio } = await import("./audio-preflight-USnUISOE.js");
57255
57335
  preflightTranscript = await transcribeFirstAudio({
57256
57336
  ctx: {
57257
57337
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -59405,23 +59485,23 @@ let webLoginQrPromise = null;
59405
59485
  let webChannelPromise = null;
59406
59486
  let whatsappActionsPromise = null;
59407
59487
  function loadWebOutbound() {
59408
- webOutboundPromise ??= import("./outbound-B_cf2WkB.js").then((n) => n.t);
59488
+ webOutboundPromise ??= import("./outbound-btxNyARe.js").then((n) => n.t);
59409
59489
  return webOutboundPromise;
59410
59490
  }
59411
59491
  function loadWebLogin() {
59412
- webLoginPromise ??= import("./login-C5eMLg1G.js").then((n) => n.n);
59492
+ webLoginPromise ??= import("./login-DTkUG4Mp.js").then((n) => n.n);
59413
59493
  return webLoginPromise;
59414
59494
  }
59415
59495
  function loadWebLoginQr() {
59416
- webLoginQrPromise ??= import("./login-qr-CYEYc0Vo.js");
59496
+ webLoginQrPromise ??= import("./login-qr-rvsxQT5p.js");
59417
59497
  return webLoginQrPromise;
59418
59498
  }
59419
59499
  function loadWebChannel() {
59420
- webChannelPromise ??= import("./web-8NQJ75ip.js");
59500
+ webChannelPromise ??= import("./web-CScA06_W.js");
59421
59501
  return webChannelPromise;
59422
59502
  }
59423
59503
  function loadWhatsAppActions() {
59424
- whatsappActionsPromise ??= import("./whatsapp-actions-ChtHuvdU.js");
59504
+ whatsappActionsPromise ??= import("./whatsapp-actions-BgiS8DUJ.js");
59425
59505
  return whatsappActionsPromise;
59426
59506
  }
59427
59507
  function createPluginRuntime() {
@@ -64511,7 +64591,7 @@ async function compactEmbeddedPiSessionDirect(params) {
64511
64591
  config: params.config
64512
64592
  });
64513
64593
  const isDefaultAgent = sessionAgentId === defaultAgentId;
64514
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
64594
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
64515
64595
  const docsPath = await resolveSymiDocsPath({
64516
64596
  workspaceDir: effectiveWorkspace,
64517
64597
  argv1: process.argv[1],
@@ -64751,6 +64831,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
64751
64831
  const streamParams = {};
64752
64832
  if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
64753
64833
  if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
64834
+ if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
64835
+ if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
64836
+ if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
64754
64837
  const cacheRetention = resolveCacheRetention(extraParams, provider);
64755
64838
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
64756
64839
  if (Object.keys(streamParams).length === 0) return;
@@ -67079,7 +67162,7 @@ function scorePlanComplexity(prompt) {
67079
67162
  if ([...PLAN_KEYWORDS, ...ANALYSIS_KEYWORDS].some((kw) => lower.includes(kw)) || FILE_PATH_RE.test(prompt)) score += 3;
67080
67163
  }
67081
67164
  const numberedItems = prompt.match(NUMBERED_LIST_RE);
67082
- if (numberedItems && numberedItems.length >= 3) score += 2;
67165
+ if (numberedItems && numberedItems.length >= 6) score += 2;
67083
67166
  for (const kw of PLAN_KEYWORDS) if (lower.includes(kw)) {
67084
67167
  score += 2;
67085
67168
  break;
@@ -67096,7 +67179,7 @@ function scorePlanComplexity(prompt) {
67096
67179
  }
67097
67180
  return score;
67098
67181
  }
67099
- const PLAN_MODE_THRESHOLD = 5;
67182
+ const PLAN_MODE_THRESHOLD = 8;
67100
67183
  /**
67101
67184
  * Determine whether a prompt should trigger plan mode.
67102
67185
  *
@@ -67131,14 +67214,15 @@ function shouldEnterPlanMode(prompt, opts = {}) {
67131
67214
  score: 0
67132
67215
  };
67133
67216
  const score = scorePlanComplexity(trimmed);
67134
- if (score >= PLAN_MODE_THRESHOLD) return {
67217
+ const threshold = opts.threshold ?? PLAN_MODE_THRESHOLD;
67218
+ if (score >= threshold) return {
67135
67219
  enter: true,
67136
- reason: `complexity score ${score} >= ${PLAN_MODE_THRESHOLD}`,
67220
+ reason: `complexity score ${score} >= ${threshold}`,
67137
67221
  score
67138
67222
  };
67139
67223
  return {
67140
67224
  enter: false,
67141
- reason: `complexity score ${score} < ${PLAN_MODE_THRESHOLD}`,
67225
+ reason: `complexity score ${score} < ${threshold}`,
67142
67226
  score
67143
67227
  };
67144
67228
  }
@@ -68034,7 +68118,7 @@ async function runEmbeddedAttempt(params) {
68034
68118
  }
68035
68119
  });
68036
68120
  const isDefaultAgent = sessionAgentId === defaultAgentId;
68037
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
68121
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
68038
68122
  const docsPath = await resolveSymiDocsPath({
68039
68123
  workspaceDir: effectiveWorkspace,
68040
68124
  argv1: process.argv[1],
@@ -68431,7 +68515,8 @@ async function runEmbeddedAttempt(params) {
68431
68515
  {
68432
68516
  const planResult = shouldEnterPlanMode(effectivePrompt, {
68433
68517
  isSubagent: isSubagentSessionKey(params.sessionKey),
68434
- isCron: isCronSessionKey(params.sessionKey)
68518
+ isCron: isCronSessionKey(params.sessionKey),
68519
+ threshold: params.config?.agents?.defaults?.planModeThreshold
68435
68520
  });
68436
68521
  if (planResult.enter) {
68437
68522
  if (planResult.stripped != null) effectivePrompt = planResult.stripped;
@@ -69049,6 +69134,7 @@ async function runEmbeddedPiAgent(params) {
69049
69134
  let lastRunPromptUsage;
69050
69135
  let autoCompactionCount = 0;
69051
69136
  let runLoopIterations = 0;
69137
+ let verificationPassCompleted = false;
69052
69138
  try {
69053
69139
  while (true) {
69054
69140
  if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
@@ -69418,6 +69504,116 @@ async function runEmbeddedPiAgent(params) {
69418
69504
  suppressToolErrorWarnings: params.suppressToolErrorWarnings,
69419
69505
  inlineToolResultsAllowed: false
69420
69506
  });
69507
+ if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
69508
+ const CODE_TOOL_NAMES = new Set([
69509
+ "exec",
69510
+ "bash",
69511
+ "write",
69512
+ "edit",
69513
+ "file_write",
69514
+ "file_edit",
69515
+ "write_file",
69516
+ "edit_file",
69517
+ "create_file",
69518
+ "patch"
69519
+ ]);
69520
+ const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
69521
+ const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
69522
+ if (hasCodeToolUsage || hasCodeBlocks) {
69523
+ verificationPassCompleted = true;
69524
+ log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
69525
+ 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.";
69526
+ try {
69527
+ const verifyAttempt = await runEmbeddedAttempt({
69528
+ sessionId: params.sessionId,
69529
+ sessionKey: params.sessionKey,
69530
+ messageChannel: params.messageChannel,
69531
+ messageProvider: params.messageProvider,
69532
+ agentAccountId: params.agentAccountId,
69533
+ messageTo: params.messageTo,
69534
+ messageThreadId: params.messageThreadId,
69535
+ groupId: params.groupId,
69536
+ groupChannel: params.groupChannel,
69537
+ groupSpace: params.groupSpace,
69538
+ spawnedBy: params.spawnedBy,
69539
+ senderIsOwner: params.senderIsOwner,
69540
+ currentChannelId: params.currentChannelId,
69541
+ currentThreadTs: params.currentThreadTs,
69542
+ replyToMode: params.replyToMode,
69543
+ hasRepliedRef: params.hasRepliedRef,
69544
+ sessionFile: params.sessionFile,
69545
+ workspaceDir: resolvedWorkspace,
69546
+ agentDir,
69547
+ config: params.config,
69548
+ skillsSnapshot: params.skillsSnapshot,
69549
+ prompt: verificationPrompt,
69550
+ images: void 0,
69551
+ disableTools: params.disableTools,
69552
+ provider,
69553
+ modelId,
69554
+ model,
69555
+ authStorage,
69556
+ modelRegistry,
69557
+ agentId: workspaceResolution.agentId,
69558
+ thinkLevel,
69559
+ verboseLevel: params.verboseLevel,
69560
+ reasoningLevel: params.reasoningLevel,
69561
+ toolResultFormat: resolvedToolResultFormat,
69562
+ execOverrides: params.execOverrides,
69563
+ bashElevated: params.bashElevated,
69564
+ timeoutMs: params.timeoutMs,
69565
+ runId: params.runId,
69566
+ abortSignal: params.abortSignal,
69567
+ shouldEmitToolResult: params.shouldEmitToolResult,
69568
+ shouldEmitToolOutput: params.shouldEmitToolOutput,
69569
+ onPartialReply: params.onPartialReply,
69570
+ onAssistantMessageStart: params.onAssistantMessageStart,
69571
+ onBlockReply: params.onBlockReply,
69572
+ onBlockReplyFlush: params.onBlockReplyFlush,
69573
+ blockReplyBreak: params.blockReplyBreak,
69574
+ blockReplyChunking: params.blockReplyChunking,
69575
+ onReasoningStream: params.onReasoningStream,
69576
+ onReasoningEnd: params.onReasoningEnd,
69577
+ onToolResult: params.onToolResult,
69578
+ onAgentEvent: params.onAgentEvent,
69579
+ extraSystemPrompt: params.extraSystemPrompt,
69580
+ inputProvenance: params.inputProvenance,
69581
+ streamParams: params.streamParams,
69582
+ ownerNumbers: params.ownerNumbers,
69583
+ enforceFinalTag: params.enforceFinalTag
69584
+ });
69585
+ const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
69586
+ mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
69587
+ if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
69588
+ const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
69589
+ const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
69590
+ if (verifyHasToolUsage || verifyHasContent) {
69591
+ const verifyPayloads = buildEmbeddedRunPayloads({
69592
+ assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
69593
+ toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
69594
+ lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
69595
+ lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
69596
+ config: params.config,
69597
+ sessionKey: params.sessionKey ?? params.sessionId,
69598
+ provider: activeErrorContext.provider,
69599
+ model: activeErrorContext.model,
69600
+ verboseLevel: params.verboseLevel,
69601
+ reasoningLevel: params.reasoningLevel,
69602
+ toolResultFormat: resolvedToolResultFormat,
69603
+ suppressToolErrorWarnings: params.suppressToolErrorWarnings,
69604
+ inlineToolResultsAllowed: false
69605
+ });
69606
+ if (verifyPayloads.length > 0) {
69607
+ payloads.length = 0;
69608
+ payloads.push(...verifyPayloads);
69609
+ }
69610
+ log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
69611
+ } else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
69612
+ } catch (verifyErr) {
69613
+ log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
69614
+ }
69615
+ }
69616
+ }
69421
69617
  if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
69422
69618
  payloads: [{
69423
69619
  text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",