@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
@@ -11,22 +11,22 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
11
11
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
13
13
  import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BaxDnULz.js";
14
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CEjpAJ8N.js";
15
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Bt4UsVrd.js";
16
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BorDF5OG.js";
14
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-DffO5_WA.js";
15
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BVKK9mIc.js";
16
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-mS1WnuiB.js";
17
17
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-CI0kRQkt.js";
18
18
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
19
19
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CWktKM8a.js";
20
- import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DDrpEKUg.js";
20
+ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-BAM-zeo8.js";
21
21
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-CvJzsyvE.js";
22
- import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-CeL58m55.js";
22
+ import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-Db8I8QVL.js";
23
23
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-C_qUP7p5.js";
24
24
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
25
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-Dz5lr5b0.js";
26
- import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-Dfp-iKzJ.js";
27
- import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-CvuX_y8t.js";
26
+ import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-KIM5SCp6.js";
27
+ import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-Bh5BJYfZ.js";
28
28
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-D0IQ3WuX.js";
29
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DPu6LSX4.js";
29
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DGb_CkF8.js";
30
30
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BFekKL7i.js";
31
31
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
32
32
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
@@ -37,9 +37,9 @@ import { t as resolveIMessageAccount } from "./accounts-qtxJ-6em.js";
37
37
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DLyHUt31.js";
38
38
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
39
39
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-DXB7tqWi.js";
40
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-GHA29jwQ.js";
40
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-DCnQz5jN.js";
41
41
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-XlyuyChD.js";
42
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-BmHL5ETi.js";
42
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-D5ZbBYmN.js";
43
43
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-DRbx2dhW.js";
44
44
  import { n as retryAsync } from "./retry-Cly39XZB.js";
45
45
  import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Be1SwYlW.js";
@@ -48,20 +48,20 @@ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
48
48
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
49
49
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-DMwIh5cS.js";
50
50
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DccrnjsE.js";
51
- import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-C3C4Rv3O.js";
52
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-B64uavY9.js";
51
+ import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-tuRMQmX4.js";
52
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-C2kxEz5h.js";
53
53
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
54
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-v0fS4J7T.js";
54
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-Bzh_L69X.js";
55
55
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bso4i15F.js";
56
56
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
57
57
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CsM_hJ_s.js";
58
58
  import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
59
59
  import { t as convertMarkdownTables } from "./tables-DuZspiBu.js";
60
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Bx04WqH5.js";
61
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-1iB7Rdwp.js";
60
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-BfoI2xoz.js";
61
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-ytd5gZYc.js";
62
62
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CZ-1eqw0.js";
63
63
  import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
64
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DtdP8R93.js";
64
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BVXZDrhw.js";
65
65
  import { t as getActiveWebListener } from "./active-listener-C9r8ZB9m.js";
66
66
  import { createRequire } from "node:module";
67
67
  import * as fs$2 from "node:fs/promises";
@@ -81,7 +81,7 @@ import { EdgeTTS } from "node-edge-tts";
81
81
  import AjvPkg from "ajv";
82
82
  import { createServer } from "node:http";
83
83
  import { ProxyAgent, fetch as fetch$1 } from "undici";
84
- import WebSocket$1, { WebSocket } from "ws";
84
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
85
85
  import { Buffer as Buffer$1 } from "node:buffer";
86
86
  import { createJiti } from "jiti";
87
87
  import { Type } from "@sinclair/typebox";
@@ -3474,7 +3474,7 @@ async function getMemorySearchManager(params) {
3474
3474
  const wrapper = new FallbackMemoryManager({
3475
3475
  primary,
3476
3476
  fallbackFactory: async () => {
3477
- const { MemoryIndexManager } = await import("./manager-BmHL5ETi.js").then((n) => n.t);
3477
+ const { MemoryIndexManager } = await import("./manager-D5ZbBYmN.js").then((n) => n.t);
3478
3478
  return await MemoryIndexManager.get(params);
3479
3479
  }
3480
3480
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3487,7 +3487,7 @@ async function getMemorySearchManager(params) {
3487
3487
  }
3488
3488
  }
3489
3489
  try {
3490
- const { MemoryIndexManager } = await import("./manager-BmHL5ETi.js").then((n) => n.t);
3490
+ const { MemoryIndexManager } = await import("./manager-D5ZbBYmN.js").then((n) => n.t);
3491
3491
  return { manager: await MemoryIndexManager.get(params) };
3492
3492
  } catch (err) {
3493
3493
  return {
@@ -5716,7 +5716,7 @@ var GatewayClient = class {
5716
5716
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5717
5717
  });
5718
5718
  }
5719
- this.ws = new WebSocket(url, wsOptions);
5719
+ this.ws = new WebSocket$1(url, wsOptions);
5720
5720
  this.ws.on("open", () => {
5721
5721
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5722
5722
  const tlsError = this.validateTlsFingerprint();
@@ -5935,7 +5935,7 @@ var GatewayClient = class {
5935
5935
  return null;
5936
5936
  }
5937
5937
  async request(method, params, opts) {
5938
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5938
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5939
5939
  const id = randomUUID();
5940
5940
  const frame = {
5941
5941
  type: "req",
@@ -7201,7 +7201,7 @@ async function routeReply(params) {
7201
7201
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7202
7202
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7203
7203
  try {
7204
- const { deliverOutboundPayloads } = await import("./deliver-BorDF5OG.js").then((n) => n.n);
7204
+ const { deliverOutboundPayloads } = await import("./deliver-mS1WnuiB.js").then((n) => n.n);
7205
7205
  return {
7206
7206
  ok: true,
7207
7207
  messageId: (await deliverOutboundPayloads({
@@ -8999,6 +8999,8 @@ function resolveAgentTimeoutMs(opts) {
8999
8999
  if (overrideSeconds < 0) return defaultMs;
9000
9000
  return clampTimeoutMs(overrideSeconds * 1e3);
9001
9001
  }
9002
+ const modelSeconds = normalizeNumber(opts.modelTimeoutSeconds);
9003
+ if (modelSeconds !== void 0 && modelSeconds > 0) return clampTimeoutMs(modelSeconds * 1e3);
9002
9004
  return defaultMs;
9003
9005
  }
9004
9006
 
@@ -12654,7 +12656,7 @@ async function createModelSelectionState(params) {
12654
12656
  }
12655
12657
  }
12656
12658
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
12657
- const { ensureAuthProfileStore } = await import("./model-auth-CeL58m55.js").then((n) => n.s);
12659
+ const { ensureAuthProfileStore } = await import("./model-auth-Db8I8QVL.js").then((n) => n.s);
12658
12660
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
12659
12661
  const providerKey = normalizeProviderId(provider);
12660
12662
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -21458,8 +21460,8 @@ function buildMemorySection(params) {
21458
21460
  lines.push("");
21459
21461
  return lines;
21460
21462
  }
21461
- function buildUserIdentitySection(ownerLine, isMinimal) {
21462
- if (!ownerLine || isMinimal) return [];
21463
+ function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
21464
+ if (!ownerLine || isMinimal || isCoding) return [];
21463
21465
  return [
21464
21466
  "## Authorized Senders",
21465
21467
  ownerLine,
@@ -21483,8 +21485,8 @@ function buildTimeSection(params) {
21483
21485
  ""
21484
21486
  ];
21485
21487
  }
21486
- function buildReplyTagsSection(isMinimal) {
21487
- if (isMinimal) return [];
21488
+ function buildReplyTagsSection(isMinimal, isCoding) {
21489
+ if (isMinimal || isCoding) return [];
21488
21490
  return [
21489
21491
  "## Reply Tags",
21490
21492
  "To request a native reply/quote on supported surfaces, include one tag in your reply:",
@@ -21497,7 +21499,7 @@ function buildReplyTagsSection(isMinimal) {
21497
21499
  ];
21498
21500
  }
21499
21501
  function buildMessagingSection(params) {
21500
- if (params.isMinimal) return [];
21502
+ if (params.isMinimal || params.isCoding) return [];
21501
21503
  return [
21502
21504
  "## Messaging",
21503
21505
  "- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
@@ -21520,7 +21522,7 @@ function buildMessagingSection(params) {
21520
21522
  ];
21521
21523
  }
21522
21524
  function buildVoiceSection(params) {
21523
- if (params.isMinimal) return [];
21525
+ if (params.isMinimal || params.isCoding) return [];
21524
21526
  const hint = params.ttsHint?.trim();
21525
21527
  if (!hint) return [];
21526
21528
  return [
@@ -21529,6 +21531,71 @@ function buildVoiceSection(params) {
21529
21531
  ""
21530
21532
  ];
21531
21533
  }
21534
+ function buildVerifyYourWorkSection(params) {
21535
+ if (params.isMinimal) return [];
21536
+ const exec = params.execToolName;
21537
+ const read = params.readToolName;
21538
+ return [
21539
+ "## Verify Your Work",
21540
+ [
21541
+ "Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
21542
+ "Skipping verification is the single most common cause of incomplete or broken outputs.",
21543
+ "Treat this section as mandatory for every coding task, not optional polish."
21544
+ ].join(" "),
21545
+ "",
21546
+ "### 1. Re-read the request",
21547
+ [
21548
+ "Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
21549
+ "Extract every discrete requirement, constraint, and preference they stated.",
21550
+ "Write them down internally as a checklist.",
21551
+ "This catches drift: it is easy to start solving a related-but-different problem mid-task."
21552
+ ].join(" "),
21553
+ "",
21554
+ "### 2. Check each requirement against your output",
21555
+ [
21556
+ "Walk through your internal checklist point by point.",
21557
+ "For each requirement, locate the exact lines in your output that satisfy it.",
21558
+ "If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
21559
+ "Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
21560
+ ].join(" "),
21561
+ "",
21562
+ "### 3. Run the code",
21563
+ [
21564
+ `Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
21565
+ "Do not guess whether code works — execute it and observe the result.",
21566
+ "If the code produces errors, fix them and re-run until it succeeds.",
21567
+ "For scripts: run them with representative inputs.",
21568
+ "For libraries/modules: write and execute a minimal smoke test.",
21569
+ "For config files: validate syntax (e.g., json, yaml, toml parsers).",
21570
+ "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."
21571
+ ].join(" "),
21572
+ "",
21573
+ "### 4. Include tests when requested",
21574
+ [
21575
+ "If the user asked for tests, they are a hard requirement — not a nice-to-have.",
21576
+ "Deliver the tests alongside the implementation, not as an afterthought.",
21577
+ "Run the tests and confirm they pass before responding.",
21578
+ "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."
21579
+ ].join(" "),
21580
+ "",
21581
+ "### 5. Self-review",
21582
+ [
21583
+ `After everything above, use ${read} to re-read any files you created or modified.`,
21584
+ "Look at them with fresh eyes as if reviewing someone else's code.",
21585
+ "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).",
21586
+ "If you find problems during self-review, fix them, re-run verification, and only then respond."
21587
+ ].join(" "),
21588
+ "",
21589
+ "### Verification failures",
21590
+ [
21591
+ "If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
21592
+ "Instead, fix the issue silently and re-verify.",
21593
+ "The user should receive working, complete output — not a draft with known issues.",
21594
+ "Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
21595
+ ].join(" "),
21596
+ ""
21597
+ ];
21598
+ }
21532
21599
  function buildDocsSection(params) {
21533
21600
  const docsPath = params.docsPath?.trim();
21534
21601
  if (!docsPath || params.isMinimal) return [];
@@ -21653,6 +21720,7 @@ function buildAgentSystemPrompt(params) {
21653
21720
  const messageChannelOptions = listDeliverableMessageChannels().join("|");
21654
21721
  const promptMode = params.promptMode ?? "full";
21655
21722
  const isMinimal = promptMode === "minimal" || promptMode === "none";
21723
+ const isCoding = promptMode === "coding";
21656
21724
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
21657
21725
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
21658
21726
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -21729,19 +21797,19 @@ function buildAgentSystemPrompt(params) {
21729
21797
  "",
21730
21798
  ...skillsSection,
21731
21799
  ...memorySection,
21732
- hasGateway && !isMinimal ? "## Symi Self-Update" : "",
21733
- hasGateway && !isMinimal ? [
21800
+ hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
21801
+ hasGateway && !isMinimal && !isCoding ? [
21734
21802
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
21735
21803
  "Do not run config.apply or update.run unless the user explicitly requests an update or config change; if it's not explicit, ask first.",
21736
21804
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
21737
21805
  "After restart, Symi pings the last active session automatically."
21738
21806
  ].join("\n") : "",
21739
- hasGateway && !isMinimal ? "" : "",
21807
+ hasGateway && !isMinimal && !isCoding ? "" : "",
21740
21808
  "",
21741
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
21742
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
21743
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
21744
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
21809
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
21810
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
21811
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
21812
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
21745
21813
  userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
21746
21814
  "## Workspace",
21747
21815
  `Your working directory is: ${displayWorkspaceDir}`,
@@ -21749,6 +21817,11 @@ function buildAgentSystemPrompt(params) {
21749
21817
  ...workspaceNotes,
21750
21818
  "",
21751
21819
  ...docsSection,
21820
+ ...buildVerifyYourWorkSection({
21821
+ isMinimal,
21822
+ execToolName,
21823
+ readToolName
21824
+ }),
21752
21825
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
21753
21826
  params.sandboxInfo?.enabled ? [
21754
21827
  "You are running in a sandboxed runtime (tools execute in Docker).",
@@ -21766,14 +21839,15 @@ function buildAgentSystemPrompt(params) {
21766
21839
  params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
21767
21840
  ].filter(Boolean).join("\n") : "",
21768
21841
  params.sandboxInfo?.enabled ? "" : "",
21769
- ...buildUserIdentitySection(ownerLine, isMinimal),
21842
+ ...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
21770
21843
  ...buildTimeSection({ userTimezone }),
21771
21844
  "## Workspace Files (injected)",
21772
21845
  "These user-editable files are loaded by Symi and included below in Project Context.",
21773
21846
  "",
21774
- ...buildReplyTagsSection(isMinimal),
21847
+ ...buildReplyTagsSection(isMinimal, isCoding),
21775
21848
  ...buildMessagingSection({
21776
21849
  isMinimal,
21850
+ isCoding,
21777
21851
  availableTools,
21778
21852
  messageChannelOptions,
21779
21853
  inlineButtonsEnabled,
@@ -21782,6 +21856,7 @@ function buildAgentSystemPrompt(params) {
21782
21856
  }),
21783
21857
  ...buildVoiceSection({
21784
21858
  isMinimal,
21859
+ isCoding,
21785
21860
  ttsHint: params.ttsHint
21786
21861
  })
21787
21862
  ];
@@ -21821,8 +21896,8 @@ function buildAgentSystemPrompt(params) {
21821
21896
  lines.push("");
21822
21897
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
21823
21898
  }
21824
- if (!isMinimal) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
21825
- if (!isMinimal) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
21899
+ 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}`, "");
21900
+ if (!isMinimal && !isCoding) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
21826
21901
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
21827
21902
  return lines.filter(Boolean).join("\n");
21828
21903
  }
@@ -41574,7 +41649,7 @@ async function deliverSessionMaintenanceWarning(params) {
41574
41649
  return;
41575
41650
  }
41576
41651
  try {
41577
- const { deliverOutboundPayloads } = await import("./deliver-BorDF5OG.js").then((n) => n.n);
41652
+ const { deliverOutboundPayloads } = await import("./deliver-mS1WnuiB.js").then((n) => n.n);
41578
41653
  await deliverOutboundPayloads({
41579
41654
  cfg: params.cfg,
41580
41655
  channel,
@@ -42226,9 +42301,12 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
42226
42301
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
42227
42302
  })).dir;
42228
42303
  const agentDir = resolveAgentDir(cfg, agentId);
42304
+ const primaryModelKey = typeof cfg?.agents?.defaults?.model === "object" ? cfg.agents.defaults.model.primary : void 0;
42305
+ const modelTimeoutSeconds = primaryModelKey ? cfg?.agents?.defaults?.models?.[primaryModelKey]?.timeoutSeconds : void 0;
42229
42306
  const timeoutMs = resolveAgentTimeoutMs({
42230
42307
  cfg,
42231
- overrideSeconds: opts?.timeoutOverrideSeconds
42308
+ overrideSeconds: opts?.timeoutOverrideSeconds,
42309
+ modelTimeoutSeconds: modelTimeoutSeconds ?? null
42232
42310
  });
42233
42311
  const configuredTypingSeconds = agentCfg?.typingIntervalSeconds ?? sessionCfg?.typingIntervalSeconds;
42234
42312
  const typingIntervalSeconds = typeof configuredTypingSeconds === "number" ? configuredTypingSeconds : 6;
@@ -45017,7 +45095,7 @@ async function describeStickerImage(params) {
45017
45095
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
45018
45096
  try {
45019
45097
  const buffer = await fs.readFile(imagePath);
45020
- const { describeImageWithModel } = await import("./image-GHA29jwQ.js").then((n) => n.n);
45098
+ const { describeImageWithModel } = await import("./image-DCnQz5jN.js").then((n) => n.n);
45021
45099
  return (await describeImageWithModel({
45022
45100
  buffer,
45023
45101
  fileName: "sticker.webp",
@@ -45440,7 +45518,7 @@ function createWhatsAppLoginTool() {
45440
45518
  force: Type.Optional(Type.Boolean())
45441
45519
  }),
45442
45520
  execute: async (_toolCallId, args) => {
45443
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CzD7_Pru.js");
45521
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CBPis3I2.js");
45444
45522
  if ((args?.action ?? "start") === "wait") {
45445
45523
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
45446
45524
  return {
@@ -47679,7 +47757,7 @@ async function preflightDiscordMessage(params) {
47679
47757
  let preflightTranscript;
47680
47758
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
47681
47759
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
47682
- const { transcribeFirstAudio } = await import("./audio-preflight-mSUx5I34.js");
47760
+ const { transcribeFirstAudio } = await import("./audio-preflight-Djedh6Uc.js");
47683
47761
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
47684
47762
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
47685
47763
  ctx: {
@@ -51685,27 +51763,27 @@ function isVoiceChannelType(type) {
51685
51763
  function createDefaultDeps() {
51686
51764
  return {
51687
51765
  sendMessageWhatsApp: async (...args) => {
51688
- const { sendMessageWhatsApp } = await import("./web-f7lkf_un.js");
51766
+ const { sendMessageWhatsApp } = await import("./web-CQzdHGhF.js");
51689
51767
  return await sendMessageWhatsApp(...args);
51690
51768
  },
51691
51769
  sendMessageTelegram: async (...args) => {
51692
- const { sendMessageTelegram } = await import("./send-DDrpEKUg.js").then((n) => n.l);
51770
+ const { sendMessageTelegram } = await import("./send-BAM-zeo8.js").then((n) => n.l);
51693
51771
  return await sendMessageTelegram(...args);
51694
51772
  },
51695
51773
  sendMessageDiscord: async (...args) => {
51696
- const { sendMessageDiscord } = await import("./send-Bt4UsVrd.js").then((n) => n.t);
51774
+ const { sendMessageDiscord } = await import("./send-BVKK9mIc.js").then((n) => n.t);
51697
51775
  return await sendMessageDiscord(...args);
51698
51776
  },
51699
51777
  sendMessageSlack: async (...args) => {
51700
- const { sendMessageSlack } = await import("./send-CEjpAJ8N.js").then((n) => n.n);
51778
+ const { sendMessageSlack } = await import("./send-DffO5_WA.js").then((n) => n.n);
51701
51779
  return await sendMessageSlack(...args);
51702
51780
  },
51703
51781
  sendMessageSignal: async (...args) => {
51704
- const { sendMessageSignal } = await import("./send-Bx04WqH5.js").then((n) => n.i);
51782
+ const { sendMessageSignal } = await import("./send-BfoI2xoz.js").then((n) => n.i);
51705
51783
  return await sendMessageSignal(...args);
51706
51784
  },
51707
51785
  sendMessageIMessage: async (...args) => {
51708
- const { sendMessageIMessage } = await import("./send-1iB7Rdwp.js").then((n) => n.n);
51786
+ const { sendMessageIMessage } = await import("./send-ytd5gZYc.js").then((n) => n.n);
51709
51787
  return await sendMessageIMessage(...args);
51710
51788
  }
51711
51789
  };
@@ -52185,9 +52263,11 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
52185
52263
  const isSubagentLane = (typeof opts.lane === "string" ? opts.lane.trim() : "") === String(AGENT_LANE_SUBAGENT);
52186
52264
  const timeoutSecondsRaw = opts.timeout !== void 0 ? Number.parseInt(String(opts.timeout), 10) : isSubagentLane ? 0 : void 0;
52187
52265
  if (timeoutSecondsRaw !== void 0 && (Number.isNaN(timeoutSecondsRaw) || timeoutSecondsRaw < 0)) throw new Error("--timeout must be a non-negative integer (seconds; 0 means no timeout)");
52266
+ const primaryModelKey = typeof cfg?.agents?.defaults?.model === "object" ? cfg.agents.defaults.model.primary : void 0;
52188
52267
  const timeoutMs = resolveAgentTimeoutMs({
52189
52268
  cfg,
52190
- overrideSeconds: timeoutSecondsRaw
52269
+ overrideSeconds: timeoutSecondsRaw,
52270
+ modelTimeoutSeconds: (primaryModelKey ? cfg?.agents?.defaults?.models?.[primaryModelKey]?.timeoutSeconds : void 0) ?? null
52191
52271
  });
52192
52272
  const { sessionId, sessionKey, sessionEntry: resolvedSessionEntry, sessionStore, storePath, isNewSession, persistedThinking, persistedVerbose } = resolveSession({
52193
52273
  cfg,
@@ -54589,7 +54669,7 @@ function createDiscordGatewayPlugin(params) {
54589
54669
  super(options);
54590
54670
  }
54591
54671
  createWebSocket(url) {
54592
- return new WebSocket$1(url, { agent });
54672
+ return new WebSocket(url, { agent });
54593
54673
  }
54594
54674
  }
54595
54675
  return new ProxyGatewayPlugin();
@@ -62131,7 +62211,7 @@ function readSlackExternalArgMenuToken(raw) {
62131
62211
  }
62132
62212
  let commandsRegistry;
62133
62213
  async function getCommandsRegistry() {
62134
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-C3C4Rv3O.js").then((n) => n.n);
62214
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-tuRMQmX4.js").then((n) => n.n);
62135
62215
  return commandsRegistry;
62136
62216
  }
62137
62217
  function encodeSlackCommandArgValue(parts) {
@@ -62534,7 +62614,7 @@ async function registerSlackMonitorSlashCommands(params) {
62534
62614
  });
62535
62615
  const deliverSlashPayloads = async (replies) => {
62536
62616
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
62537
- import("./replies-DtdP8R93.js").then((n) => n.r),
62617
+ import("./replies-BVXZDrhw.js").then((n) => n.r),
62538
62618
  import("./chunk-BW5f05BR.js").then((n) => n.s),
62539
62619
  import("./markdown-tables-iMQQZu4Q.js").then((n) => n.t)
62540
62620
  ]);
@@ -62589,7 +62669,7 @@ async function registerSlackMonitorSlashCommands(params) {
62589
62669
  let nativeCommands = [];
62590
62670
  if (nativeEnabled) {
62591
62671
  reg = await getCommandsRegistry();
62592
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-B64uavY9.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62672
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C2kxEz5h.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62593
62673
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
62594
62674
  skillCommands,
62595
62675
  provider: "slack"
@@ -64807,7 +64887,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
64807
64887
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
64808
64888
  let preflightTranscript;
64809
64889
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
64810
- const { transcribeFirstAudio } = await import("./audio-preflight-mSUx5I34.js");
64890
+ const { transcribeFirstAudio } = await import("./audio-preflight-Djedh6Uc.js");
64811
64891
  preflightTranscript = await transcribeFirstAudio({
64812
64892
  ctx: {
64813
64893
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -66952,23 +67032,23 @@ let webLoginQrPromise = null;
66952
67032
  let webChannelPromise = null;
66953
67033
  let whatsappActionsPromise = null;
66954
67034
  function loadWebOutbound() {
66955
- webOutboundPromise ??= import("./outbound-yaYfpPTu.js").then((n) => n.t);
67035
+ webOutboundPromise ??= import("./outbound-Qgo51Q1x.js").then((n) => n.t);
66956
67036
  return webOutboundPromise;
66957
67037
  }
66958
67038
  function loadWebLogin() {
66959
- webLoginPromise ??= import("./login-DNeGXcjV.js").then((n) => n.n);
67039
+ webLoginPromise ??= import("./login-CJf4Gdbq.js").then((n) => n.n);
66960
67040
  return webLoginPromise;
66961
67041
  }
66962
67042
  function loadWebLoginQr() {
66963
- webLoginQrPromise ??= import("./login-qr-CzD7_Pru.js");
67043
+ webLoginQrPromise ??= import("./login-qr-CBPis3I2.js");
66964
67044
  return webLoginQrPromise;
66965
67045
  }
66966
67046
  function loadWebChannel() {
66967
- webChannelPromise ??= import("./web-f7lkf_un.js");
67047
+ webChannelPromise ??= import("./web-CQzdHGhF.js");
66968
67048
  return webChannelPromise;
66969
67049
  }
66970
67050
  function loadWhatsAppActions() {
66971
- whatsappActionsPromise ??= import("./whatsapp-actions-B4YPuD2Q.js");
67051
+ whatsappActionsPromise ??= import("./whatsapp-actions-DfJHCjBV.js");
66972
67052
  return whatsappActionsPromise;
66973
67053
  }
66974
67054
  function createPluginRuntime() {
@@ -72276,7 +72356,7 @@ async function compactEmbeddedPiSessionDirect(params) {
72276
72356
  config: params.config
72277
72357
  });
72278
72358
  const isDefaultAgent = sessionAgentId === defaultAgentId;
72279
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
72359
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
72280
72360
  const docsPath = await resolveSymiDocsPath({
72281
72361
  workspaceDir: effectiveWorkspace,
72282
72362
  argv1: process.argv[1],
@@ -72516,6 +72596,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
72516
72596
  const streamParams = {};
72517
72597
  if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
72518
72598
  if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
72599
+ if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
72600
+ if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
72601
+ if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
72519
72602
  const cacheRetention = resolveCacheRetention(extraParams, provider);
72520
72603
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
72521
72604
  if (Object.keys(streamParams).length === 0) return;
@@ -74844,7 +74927,7 @@ function scorePlanComplexity(prompt) {
74844
74927
  if ([...PLAN_KEYWORDS, ...ANALYSIS_KEYWORDS].some((kw) => lower.includes(kw)) || FILE_PATH_RE.test(prompt)) score += 3;
74845
74928
  }
74846
74929
  const numberedItems = prompt.match(NUMBERED_LIST_RE);
74847
- if (numberedItems && numberedItems.length >= 3) score += 2;
74930
+ if (numberedItems && numberedItems.length >= 6) score += 2;
74848
74931
  for (const kw of PLAN_KEYWORDS) if (lower.includes(kw)) {
74849
74932
  score += 2;
74850
74933
  break;
@@ -74861,7 +74944,7 @@ function scorePlanComplexity(prompt) {
74861
74944
  }
74862
74945
  return score;
74863
74946
  }
74864
- const PLAN_MODE_THRESHOLD = 5;
74947
+ const PLAN_MODE_THRESHOLD = 8;
74865
74948
  /**
74866
74949
  * Determine whether a prompt should trigger plan mode.
74867
74950
  *
@@ -74896,14 +74979,15 @@ function shouldEnterPlanMode(prompt, opts = {}) {
74896
74979
  score: 0
74897
74980
  };
74898
74981
  const score = scorePlanComplexity(trimmed);
74899
- if (score >= PLAN_MODE_THRESHOLD) return {
74982
+ const threshold = opts.threshold ?? PLAN_MODE_THRESHOLD;
74983
+ if (score >= threshold) return {
74900
74984
  enter: true,
74901
- reason: `complexity score ${score} >= ${PLAN_MODE_THRESHOLD}`,
74985
+ reason: `complexity score ${score} >= ${threshold}`,
74902
74986
  score
74903
74987
  };
74904
74988
  return {
74905
74989
  enter: false,
74906
- reason: `complexity score ${score} < ${PLAN_MODE_THRESHOLD}`,
74990
+ reason: `complexity score ${score} < ${threshold}`,
74907
74991
  score
74908
74992
  };
74909
74993
  }
@@ -75796,7 +75880,7 @@ async function runEmbeddedAttempt(params) {
75796
75880
  }
75797
75881
  });
75798
75882
  const isDefaultAgent = sessionAgentId === defaultAgentId;
75799
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
75883
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
75800
75884
  const docsPath = await resolveSymiDocsPath({
75801
75885
  workspaceDir: effectiveWorkspace,
75802
75886
  argv1: process.argv[1],
@@ -76193,7 +76277,8 @@ async function runEmbeddedAttempt(params) {
76193
76277
  {
76194
76278
  const planResult = shouldEnterPlanMode(effectivePrompt, {
76195
76279
  isSubagent: isSubagentSessionKey(params.sessionKey),
76196
- isCron: isCronSessionKey(params.sessionKey)
76280
+ isCron: isCronSessionKey(params.sessionKey),
76281
+ threshold: params.config?.agents?.defaults?.planModeThreshold
76197
76282
  });
76198
76283
  if (planResult.enter) {
76199
76284
  if (planResult.stripped != null) effectivePrompt = planResult.stripped;
@@ -76811,6 +76896,7 @@ async function runEmbeddedPiAgent(params) {
76811
76896
  let lastRunPromptUsage;
76812
76897
  let autoCompactionCount = 0;
76813
76898
  let runLoopIterations = 0;
76899
+ let verificationPassCompleted = false;
76814
76900
  try {
76815
76901
  while (true) {
76816
76902
  if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
@@ -77180,6 +77266,116 @@ async function runEmbeddedPiAgent(params) {
77180
77266
  suppressToolErrorWarnings: params.suppressToolErrorWarnings,
77181
77267
  inlineToolResultsAllowed: false
77182
77268
  });
77269
+ if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
77270
+ const CODE_TOOL_NAMES = new Set([
77271
+ "exec",
77272
+ "bash",
77273
+ "write",
77274
+ "edit",
77275
+ "file_write",
77276
+ "file_edit",
77277
+ "write_file",
77278
+ "edit_file",
77279
+ "create_file",
77280
+ "patch"
77281
+ ]);
77282
+ const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
77283
+ const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
77284
+ if (hasCodeToolUsage || hasCodeBlocks) {
77285
+ verificationPassCompleted = true;
77286
+ log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
77287
+ 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.";
77288
+ try {
77289
+ const verifyAttempt = await runEmbeddedAttempt({
77290
+ sessionId: params.sessionId,
77291
+ sessionKey: params.sessionKey,
77292
+ messageChannel: params.messageChannel,
77293
+ messageProvider: params.messageProvider,
77294
+ agentAccountId: params.agentAccountId,
77295
+ messageTo: params.messageTo,
77296
+ messageThreadId: params.messageThreadId,
77297
+ groupId: params.groupId,
77298
+ groupChannel: params.groupChannel,
77299
+ groupSpace: params.groupSpace,
77300
+ spawnedBy: params.spawnedBy,
77301
+ senderIsOwner: params.senderIsOwner,
77302
+ currentChannelId: params.currentChannelId,
77303
+ currentThreadTs: params.currentThreadTs,
77304
+ replyToMode: params.replyToMode,
77305
+ hasRepliedRef: params.hasRepliedRef,
77306
+ sessionFile: params.sessionFile,
77307
+ workspaceDir: resolvedWorkspace,
77308
+ agentDir,
77309
+ config: params.config,
77310
+ skillsSnapshot: params.skillsSnapshot,
77311
+ prompt: verificationPrompt,
77312
+ images: void 0,
77313
+ disableTools: params.disableTools,
77314
+ provider,
77315
+ modelId,
77316
+ model,
77317
+ authStorage,
77318
+ modelRegistry,
77319
+ agentId: workspaceResolution.agentId,
77320
+ thinkLevel,
77321
+ verboseLevel: params.verboseLevel,
77322
+ reasoningLevel: params.reasoningLevel,
77323
+ toolResultFormat: resolvedToolResultFormat,
77324
+ execOverrides: params.execOverrides,
77325
+ bashElevated: params.bashElevated,
77326
+ timeoutMs: params.timeoutMs,
77327
+ runId: params.runId,
77328
+ abortSignal: params.abortSignal,
77329
+ shouldEmitToolResult: params.shouldEmitToolResult,
77330
+ shouldEmitToolOutput: params.shouldEmitToolOutput,
77331
+ onPartialReply: params.onPartialReply,
77332
+ onAssistantMessageStart: params.onAssistantMessageStart,
77333
+ onBlockReply: params.onBlockReply,
77334
+ onBlockReplyFlush: params.onBlockReplyFlush,
77335
+ blockReplyBreak: params.blockReplyBreak,
77336
+ blockReplyChunking: params.blockReplyChunking,
77337
+ onReasoningStream: params.onReasoningStream,
77338
+ onReasoningEnd: params.onReasoningEnd,
77339
+ onToolResult: params.onToolResult,
77340
+ onAgentEvent: params.onAgentEvent,
77341
+ extraSystemPrompt: params.extraSystemPrompt,
77342
+ inputProvenance: params.inputProvenance,
77343
+ streamParams: params.streamParams,
77344
+ ownerNumbers: params.ownerNumbers,
77345
+ enforceFinalTag: params.enforceFinalTag
77346
+ });
77347
+ const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
77348
+ mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
77349
+ if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
77350
+ const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
77351
+ const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
77352
+ if (verifyHasToolUsage || verifyHasContent) {
77353
+ const verifyPayloads = buildEmbeddedRunPayloads({
77354
+ assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
77355
+ toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
77356
+ lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
77357
+ lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
77358
+ config: params.config,
77359
+ sessionKey: params.sessionKey ?? params.sessionId,
77360
+ provider: activeErrorContext.provider,
77361
+ model: activeErrorContext.model,
77362
+ verboseLevel: params.verboseLevel,
77363
+ reasoningLevel: params.reasoningLevel,
77364
+ toolResultFormat: resolvedToolResultFormat,
77365
+ suppressToolErrorWarnings: params.suppressToolErrorWarnings,
77366
+ inlineToolResultsAllowed: false
77367
+ });
77368
+ if (verifyPayloads.length > 0) {
77369
+ payloads.length = 0;
77370
+ payloads.push(...verifyPayloads);
77371
+ }
77372
+ log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
77373
+ } else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
77374
+ } catch (verifyErr) {
77375
+ log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
77376
+ }
77377
+ }
77378
+ }
77183
77379
  if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
77184
77380
  payloads: [{
77185
77381
  text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",