@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
@@ -8,11 +8,11 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYu
8
8
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
9
9
  import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
10
10
  import { n as retryAsync } from "./retry-ilSJqnz9.js";
11
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BXvJJUV_.js";
12
- import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-DG32gDDp.js";
11
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BeLrD_W8.js";
12
+ import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-E1hS2lFY.js";
13
13
  import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
14
14
  import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
15
- import { A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, G as normalizeSecretInput, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_MODEL, K as resolveAuthProfileDisplayLabel, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, Q as resolveShellEnvFallbackTimeoutMs, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as getShellPathFromLoginShell, Y as DEFAULT_PROVIDER, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-D6J2MZsj.js";
15
+ import { A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, G as normalizeSecretInput, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_MODEL, K as resolveAuthProfileDisplayLabel, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, Q as resolveShellEnvFallbackTimeoutMs, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as getShellPathFromLoginShell, Y as DEFAULT_PROVIDER, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-aEd_4vFO.js";
16
16
  import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
17
17
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-B3ugY9-f.js";
18
18
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Bv8oZiTO.js";
@@ -27,38 +27,38 @@ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel
27
27
  import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
28
28
  import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
29
29
  import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
30
- 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-DXcq1jzH.js";
30
+ 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-pZOlfgD0.js";
31
31
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
32
32
  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-B7YyMnIi.js";
33
- import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-BbFwAS_k.js";
34
- import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-CGSsrvd1.js";
35
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BUXsfUip.js";
33
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-BmtFyMcr.js";
34
+ import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-BRY1rgHy.js";
35
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BZyapZ82.js";
36
36
  import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
37
37
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
38
- import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-NTPqO_az.js";
38
+ import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-Cwps3qpb.js";
39
39
  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-B1GeRYlu.js";
40
- import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-XyjVFCkY.js";
40
+ import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-DZFDAzW-.js";
41
41
  import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
42
42
  import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
43
43
  import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
44
- import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-BdbnTrPD.js";
45
- import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-OWtoPEg8.js";
44
+ import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-DedoujTw.js";
45
+ import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-ClMAnIcK.js";
46
46
  import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
47
47
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
48
48
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
49
49
  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-mFf4i4G9.js";
50
50
  import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
52
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-B4_TBNqR.js";
52
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-BTkmcfWM.js";
53
53
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
54
54
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, v as runTasksWithConcurrency } from "./sqlite-Cq_7Cg4E.js";
55
55
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
56
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-RdPsBbBU.js";
57
- 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-CvppXodz.js";
58
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-Drdgnfr_.js";
56
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-BItSTruD.js";
57
+ 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-un-LmdXo.js";
58
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BnQuSlC7.js";
59
59
  import { t as makeProxyFetch } from "./proxy-MquBDehr.js";
60
60
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
61
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DiFTMGgM.js";
61
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DgHmcQJm.js";
62
62
  import { t as getActiveWebListener } from "./active-listener-bEk__wbB.js";
63
63
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CBq0jVRw.js";
64
64
  import { createRequire } from "node:module";
@@ -5570,6 +5570,8 @@ function resolveAgentTimeoutMs(opts) {
5570
5570
  if (overrideSeconds < 0) return defaultMs;
5571
5571
  return clampTimeoutMs(overrideSeconds * 1e3);
5572
5572
  }
5573
+ const modelSeconds = normalizeNumber(opts.modelTimeoutSeconds);
5574
+ if (modelSeconds !== void 0 && modelSeconds > 0) return clampTimeoutMs(modelSeconds * 1e3);
5573
5575
  return defaultMs;
5574
5576
  }
5575
5577
 
@@ -7790,7 +7792,7 @@ async function createModelSelectionState(params) {
7790
7792
  }
7791
7793
  }
7792
7794
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
7793
- const { ensureAuthProfileStore } = await import("./model-selection-D6J2MZsj.js").then((n) => n.O);
7795
+ const { ensureAuthProfileStore } = await import("./model-selection-aEd_4vFO.js").then((n) => n.O);
7794
7796
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
7795
7797
  const providerKey = normalizeProviderId(provider);
7796
7798
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -11554,7 +11556,7 @@ async function getMemorySearchManager(params) {
11554
11556
  const wrapper = new FallbackMemoryManager({
11555
11557
  primary,
11556
11558
  fallbackFactory: async () => {
11557
- const { MemoryIndexManager } = await import("./manager-RdPsBbBU.js").then((n) => n.t);
11559
+ const { MemoryIndexManager } = await import("./manager-BItSTruD.js").then((n) => n.t);
11558
11560
  return await MemoryIndexManager.get(params);
11559
11561
  }
11560
11562
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -11567,7 +11569,7 @@ async function getMemorySearchManager(params) {
11567
11569
  }
11568
11570
  }
11569
11571
  try {
11570
- const { MemoryIndexManager } = await import("./manager-RdPsBbBU.js").then((n) => n.t);
11572
+ const { MemoryIndexManager } = await import("./manager-BItSTruD.js").then((n) => n.t);
11571
11573
  return { manager: await MemoryIndexManager.get(params) };
11572
11574
  } catch (err) {
11573
11575
  return {
@@ -15483,7 +15485,7 @@ async function routeReply(params) {
15483
15485
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
15484
15486
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
15485
15487
  try {
15486
- const { deliverOutboundPayloads } = await import("./deliver-BdbnTrPD.js").then((n) => n.n);
15488
+ const { deliverOutboundPayloads } = await import("./deliver-DedoujTw.js").then((n) => n.n);
15487
15489
  return {
15488
15490
  ok: true,
15489
15491
  messageId: (await deliverOutboundPayloads({
@@ -17957,7 +17959,7 @@ async function describeStickerImage(params) {
17957
17959
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
17958
17960
  try {
17959
17961
  const buffer = await fs$1.readFile(imagePath);
17960
- const { describeImageWithModel } = await import("./image-B4_TBNqR.js").then((n) => n.n);
17962
+ const { describeImageWithModel } = await import("./image-BTkmcfWM.js").then((n) => n.n);
17961
17963
  return (await describeImageWithModel({
17962
17964
  buffer,
17963
17965
  fileName: "sticker.webp",
@@ -18368,7 +18370,7 @@ function createWhatsAppLoginTool() {
18368
18370
  force: Type.Optional(Type.Boolean())
18369
18371
  }),
18370
18372
  execute: async (_toolCallId, args) => {
18371
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-Tx8z1frn.js");
18373
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BXuSdbtI.js");
18372
18374
  if ((args?.action ?? "start") === "wait") {
18373
18375
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
18374
18376
  return {
@@ -20436,7 +20438,7 @@ async function preflightDiscordMessage(params) {
20436
20438
  let preflightTranscript;
20437
20439
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
20438
20440
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
20439
- const { transcribeFirstAudio } = await import("./audio-preflight-CdG1OBN2.js");
20441
+ const { transcribeFirstAudio } = await import("./audio-preflight-BLIDrYdM.js");
20440
20442
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
20441
20443
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
20442
20444
  ctx: {
@@ -25645,8 +25647,8 @@ function buildMemorySection(params) {
25645
25647
  lines.push("");
25646
25648
  return lines;
25647
25649
  }
25648
- function buildUserIdentitySection(ownerLine, isMinimal) {
25649
- if (!ownerLine || isMinimal) return [];
25650
+ function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
25651
+ if (!ownerLine || isMinimal || isCoding) return [];
25650
25652
  return [
25651
25653
  "## Authorized Senders",
25652
25654
  ownerLine,
@@ -25670,8 +25672,8 @@ function buildTimeSection(params) {
25670
25672
  ""
25671
25673
  ];
25672
25674
  }
25673
- function buildReplyTagsSection(isMinimal) {
25674
- if (isMinimal) return [];
25675
+ function buildReplyTagsSection(isMinimal, isCoding) {
25676
+ if (isMinimal || isCoding) return [];
25675
25677
  return [
25676
25678
  "## Reply Tags",
25677
25679
  "To request a native reply/quote on supported surfaces, include one tag in your reply:",
@@ -25684,7 +25686,7 @@ function buildReplyTagsSection(isMinimal) {
25684
25686
  ];
25685
25687
  }
25686
25688
  function buildMessagingSection(params) {
25687
- if (params.isMinimal) return [];
25689
+ if (params.isMinimal || params.isCoding) return [];
25688
25690
  return [
25689
25691
  "## Messaging",
25690
25692
  "- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
@@ -25707,7 +25709,7 @@ function buildMessagingSection(params) {
25707
25709
  ];
25708
25710
  }
25709
25711
  function buildVoiceSection(params) {
25710
- if (params.isMinimal) return [];
25712
+ if (params.isMinimal || params.isCoding) return [];
25711
25713
  const hint = params.ttsHint?.trim();
25712
25714
  if (!hint) return [];
25713
25715
  return [
@@ -25716,6 +25718,71 @@ function buildVoiceSection(params) {
25716
25718
  ""
25717
25719
  ];
25718
25720
  }
25721
+ function buildVerifyYourWorkSection(params) {
25722
+ if (params.isMinimal) return [];
25723
+ const exec = params.execToolName;
25724
+ const read = params.readToolName;
25725
+ return [
25726
+ "## Verify Your Work",
25727
+ [
25728
+ "Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
25729
+ "Skipping verification is the single most common cause of incomplete or broken outputs.",
25730
+ "Treat this section as mandatory for every coding task, not optional polish."
25731
+ ].join(" "),
25732
+ "",
25733
+ "### 1. Re-read the request",
25734
+ [
25735
+ "Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
25736
+ "Extract every discrete requirement, constraint, and preference they stated.",
25737
+ "Write them down internally as a checklist.",
25738
+ "This catches drift: it is easy to start solving a related-but-different problem mid-task."
25739
+ ].join(" "),
25740
+ "",
25741
+ "### 2. Check each requirement against your output",
25742
+ [
25743
+ "Walk through your internal checklist point by point.",
25744
+ "For each requirement, locate the exact lines in your output that satisfy it.",
25745
+ "If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
25746
+ "Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
25747
+ ].join(" "),
25748
+ "",
25749
+ "### 3. Run the code",
25750
+ [
25751
+ `Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
25752
+ "Do not guess whether code works — execute it and observe the result.",
25753
+ "If the code produces errors, fix them and re-run until it succeeds.",
25754
+ "For scripts: run them with representative inputs.",
25755
+ "For libraries/modules: write and execute a minimal smoke test.",
25756
+ "For config files: validate syntax (e.g., json, yaml, toml parsers).",
25757
+ "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."
25758
+ ].join(" "),
25759
+ "",
25760
+ "### 4. Include tests when requested",
25761
+ [
25762
+ "If the user asked for tests, they are a hard requirement — not a nice-to-have.",
25763
+ "Deliver the tests alongside the implementation, not as an afterthought.",
25764
+ "Run the tests and confirm they pass before responding.",
25765
+ "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."
25766
+ ].join(" "),
25767
+ "",
25768
+ "### 5. Self-review",
25769
+ [
25770
+ `After everything above, use ${read} to re-read any files you created or modified.`,
25771
+ "Look at them with fresh eyes as if reviewing someone else's code.",
25772
+ "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).",
25773
+ "If you find problems during self-review, fix them, re-run verification, and only then respond."
25774
+ ].join(" "),
25775
+ "",
25776
+ "### Verification failures",
25777
+ [
25778
+ "If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
25779
+ "Instead, fix the issue silently and re-verify.",
25780
+ "The user should receive working, complete output — not a draft with known issues.",
25781
+ "Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
25782
+ ].join(" "),
25783
+ ""
25784
+ ];
25785
+ }
25719
25786
  function buildDocsSection(params) {
25720
25787
  const docsPath = params.docsPath?.trim();
25721
25788
  if (!docsPath || params.isMinimal) return [];
@@ -25840,6 +25907,7 @@ function buildAgentSystemPrompt(params) {
25840
25907
  const messageChannelOptions = listDeliverableMessageChannels().join("|");
25841
25908
  const promptMode = params.promptMode ?? "full";
25842
25909
  const isMinimal = promptMode === "minimal" || promptMode === "none";
25910
+ const isCoding = promptMode === "coding";
25843
25911
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
25844
25912
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
25845
25913
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -25916,19 +25984,19 @@ function buildAgentSystemPrompt(params) {
25916
25984
  "",
25917
25985
  ...skillsSection,
25918
25986
  ...memorySection,
25919
- hasGateway && !isMinimal ? "## Symi Self-Update" : "",
25920
- hasGateway && !isMinimal ? [
25987
+ hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
25988
+ hasGateway && !isMinimal && !isCoding ? [
25921
25989
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
25922
25990
  "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.",
25923
25991
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
25924
25992
  "After restart, Symi pings the last active session automatically."
25925
25993
  ].join("\n") : "",
25926
- hasGateway && !isMinimal ? "" : "",
25994
+ hasGateway && !isMinimal && !isCoding ? "" : "",
25927
25995
  "",
25928
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
25929
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
25930
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
25931
- params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
25996
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
25997
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
25998
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
25999
+ params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
25932
26000
  userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
25933
26001
  "## Workspace",
25934
26002
  `Your working directory is: ${displayWorkspaceDir}`,
@@ -25936,6 +26004,11 @@ function buildAgentSystemPrompt(params) {
25936
26004
  ...workspaceNotes,
25937
26005
  "",
25938
26006
  ...docsSection,
26007
+ ...buildVerifyYourWorkSection({
26008
+ isMinimal,
26009
+ execToolName,
26010
+ readToolName
26011
+ }),
25939
26012
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
25940
26013
  params.sandboxInfo?.enabled ? [
25941
26014
  "You are running in a sandboxed runtime (tools execute in Docker).",
@@ -25953,14 +26026,15 @@ function buildAgentSystemPrompt(params) {
25953
26026
  params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
25954
26027
  ].filter(Boolean).join("\n") : "",
25955
26028
  params.sandboxInfo?.enabled ? "" : "",
25956
- ...buildUserIdentitySection(ownerLine, isMinimal),
26029
+ ...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
25957
26030
  ...buildTimeSection({ userTimezone }),
25958
26031
  "## Workspace Files (injected)",
25959
26032
  "These user-editable files are loaded by Symi and included below in Project Context.",
25960
26033
  "",
25961
- ...buildReplyTagsSection(isMinimal),
26034
+ ...buildReplyTagsSection(isMinimal, isCoding),
25962
26035
  ...buildMessagingSection({
25963
26036
  isMinimal,
26037
+ isCoding,
25964
26038
  availableTools,
25965
26039
  messageChannelOptions,
25966
26040
  inlineButtonsEnabled,
@@ -25969,6 +26043,7 @@ function buildAgentSystemPrompt(params) {
25969
26043
  }),
25970
26044
  ...buildVoiceSection({
25971
26045
  isMinimal,
26046
+ isCoding,
25972
26047
  ttsHint: params.ttsHint
25973
26048
  })
25974
26049
  ];
@@ -26008,8 +26083,8 @@ function buildAgentSystemPrompt(params) {
26008
26083
  lines.push("");
26009
26084
  for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
26010
26085
  }
26011
- 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}`, "");
26012
- 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.", "");
26086
+ 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}`, "");
26087
+ 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.", "");
26013
26088
  lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
26014
26089
  return lines.filter(Boolean).join("\n");
26015
26090
  }
@@ -27036,27 +27111,27 @@ async function runWithImageModelFallback(params) {
27036
27111
  function createDefaultDeps() {
27037
27112
  return {
27038
27113
  sendMessageWhatsApp: async (...args) => {
27039
- const { sendMessageWhatsApp } = await import("./web-DfIRv_Mx.js");
27114
+ const { sendMessageWhatsApp } = await import("./web-C0VbV0vu.js");
27040
27115
  return await sendMessageWhatsApp(...args);
27041
27116
  },
27042
27117
  sendMessageTelegram: async (...args) => {
27043
- const { sendMessageTelegram } = await import("./send-CGSsrvd1.js").then((n) => n.l);
27118
+ const { sendMessageTelegram } = await import("./send-BRY1rgHy.js").then((n) => n.l);
27044
27119
  return await sendMessageTelegram(...args);
27045
27120
  },
27046
27121
  sendMessageDiscord: async (...args) => {
27047
- const { sendMessageDiscord } = await import("./send-BXvJJUV_.js").then((n) => n.t);
27122
+ const { sendMessageDiscord } = await import("./send-BeLrD_W8.js").then((n) => n.t);
27048
27123
  return await sendMessageDiscord(...args);
27049
27124
  },
27050
27125
  sendMessageSlack: async (...args) => {
27051
- const { sendMessageSlack } = await import("./send-BbFwAS_k.js").then((n) => n.n);
27126
+ const { sendMessageSlack } = await import("./send-BmtFyMcr.js").then((n) => n.n);
27052
27127
  return await sendMessageSlack(...args);
27053
27128
  },
27054
27129
  sendMessageSignal: async (...args) => {
27055
- const { sendMessageSignal } = await import("./send-Drdgnfr_.js").then((n) => n.i);
27130
+ const { sendMessageSignal } = await import("./send-BnQuSlC7.js").then((n) => n.i);
27056
27131
  return await sendMessageSignal(...args);
27057
27132
  },
27058
27133
  sendMessageIMessage: async (...args) => {
27059
- const { sendMessageIMessage } = await import("./send-DXcq1jzH.js").then((n) => n.n);
27134
+ const { sendMessageIMessage } = await import("./send-pZOlfgD0.js").then((n) => n.n);
27060
27135
  return await sendMessageIMessage(...args);
27061
27136
  }
27062
27137
  };
@@ -27734,9 +27809,11 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
27734
27809
  const isSubagentLane = (typeof opts.lane === "string" ? opts.lane.trim() : "") === String(AGENT_LANE_SUBAGENT);
27735
27810
  const timeoutSecondsRaw = opts.timeout !== void 0 ? Number.parseInt(String(opts.timeout), 10) : isSubagentLane ? 0 : void 0;
27736
27811
  if (timeoutSecondsRaw !== void 0 && (Number.isNaN(timeoutSecondsRaw) || timeoutSecondsRaw < 0)) throw new Error("--timeout must be a non-negative integer (seconds; 0 means no timeout)");
27812
+ const primaryModelKey = typeof cfg?.agents?.defaults?.model === "object" ? cfg.agents.defaults.model.primary : void 0;
27737
27813
  const timeoutMs = resolveAgentTimeoutMs({
27738
27814
  cfg,
27739
- overrideSeconds: timeoutSecondsRaw
27815
+ overrideSeconds: timeoutSecondsRaw,
27816
+ modelTimeoutSeconds: (primaryModelKey ? cfg?.agents?.defaults?.models?.[primaryModelKey]?.timeoutSeconds : void 0) ?? null
27740
27817
  });
27741
27818
  const { sessionId, sessionKey, sessionEntry: resolvedSessionEntry, sessionStore, storePath, isNewSession, persistedThinking, persistedVerbose } = resolveSession({
27742
27819
  cfg,
@@ -37263,7 +37340,7 @@ function readSlackExternalArgMenuToken(raw) {
37263
37340
  }
37264
37341
  let commandsRegistry;
37265
37342
  async function getCommandsRegistry() {
37266
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CvppXodz.js").then((n) => n.n);
37343
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-un-LmdXo.js").then((n) => n.n);
37267
37344
  return commandsRegistry;
37268
37345
  }
37269
37346
  function encodeSlackCommandArgValue(parts) {
@@ -37666,7 +37743,7 @@ async function registerSlackMonitorSlashCommands(params) {
37666
37743
  });
37667
37744
  const deliverSlashPayloads = async (replies) => {
37668
37745
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
37669
- import("./replies-DiFTMGgM.js").then((n) => n.r),
37746
+ import("./replies-DgHmcQJm.js").then((n) => n.r),
37670
37747
  import("./chunk-jvk9axTQ.js").then((n) => n.s),
37671
37748
  import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
37672
37749
  ]);
@@ -37721,7 +37798,7 @@ async function registerSlackMonitorSlashCommands(params) {
37721
37798
  let nativeCommands = [];
37722
37799
  if (nativeEnabled) {
37723
37800
  reg = await getCommandsRegistry();
37724
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-NTPqO_az.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
37801
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Cwps3qpb.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
37725
37802
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
37726
37803
  skillCommands,
37727
37804
  provider: "slack"
@@ -42502,7 +42579,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
42502
42579
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
42503
42580
  let preflightTranscript;
42504
42581
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
42505
- const { transcribeFirstAudio } = await import("./audio-preflight-CdG1OBN2.js");
42582
+ const { transcribeFirstAudio } = await import("./audio-preflight-BLIDrYdM.js");
42506
42583
  preflightTranscript = await transcribeFirstAudio({
42507
42584
  ctx: {
42508
42585
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -44647,23 +44724,23 @@ let webLoginQrPromise = null;
44647
44724
  let webChannelPromise = null;
44648
44725
  let whatsappActionsPromise = null;
44649
44726
  function loadWebOutbound() {
44650
- webOutboundPromise ??= import("./outbound-BpzsDbEV.js").then((n) => n.t);
44727
+ webOutboundPromise ??= import("./outbound-2GErJr9p.js").then((n) => n.t);
44651
44728
  return webOutboundPromise;
44652
44729
  }
44653
44730
  function loadWebLogin() {
44654
- webLoginPromise ??= import("./login-Dey5tDpn.js").then((n) => n.n);
44731
+ webLoginPromise ??= import("./login-DsV1n99g.js").then((n) => n.n);
44655
44732
  return webLoginPromise;
44656
44733
  }
44657
44734
  function loadWebLoginQr() {
44658
- webLoginQrPromise ??= import("./login-qr-Tx8z1frn.js");
44735
+ webLoginQrPromise ??= import("./login-qr-BXuSdbtI.js");
44659
44736
  return webLoginQrPromise;
44660
44737
  }
44661
44738
  function loadWebChannel() {
44662
- webChannelPromise ??= import("./web-DfIRv_Mx.js");
44739
+ webChannelPromise ??= import("./web-C0VbV0vu.js");
44663
44740
  return webChannelPromise;
44664
44741
  }
44665
44742
  function loadWhatsAppActions() {
44666
- whatsappActionsPromise ??= import("./whatsapp-actions-Dh6Y2fu9.js");
44743
+ whatsappActionsPromise ??= import("./whatsapp-actions-ydkRfuPg.js");
44667
44744
  return whatsappActionsPromise;
44668
44745
  }
44669
44746
  function createPluginRuntime() {
@@ -63906,7 +63983,7 @@ async function compactEmbeddedPiSessionDirect(params) {
63906
63983
  config: params.config
63907
63984
  });
63908
63985
  const isDefaultAgent = sessionAgentId === defaultAgentId;
63909
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
63986
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
63910
63987
  const docsPath = await resolveSymiDocsPath({
63911
63988
  workspaceDir: effectiveWorkspace,
63912
63989
  argv1: process.argv[1],
@@ -64146,6 +64223,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
64146
64223
  const streamParams = {};
64147
64224
  if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
64148
64225
  if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
64226
+ if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
64227
+ if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
64228
+ if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
64149
64229
  const cacheRetention = resolveCacheRetention(extraParams, provider);
64150
64230
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
64151
64231
  if (Object.keys(streamParams).length === 0) return;
@@ -66474,7 +66554,7 @@ function scorePlanComplexity(prompt) {
66474
66554
  if ([...PLAN_KEYWORDS, ...ANALYSIS_KEYWORDS].some((kw) => lower.includes(kw)) || FILE_PATH_RE.test(prompt)) score += 3;
66475
66555
  }
66476
66556
  const numberedItems = prompt.match(NUMBERED_LIST_RE);
66477
- if (numberedItems && numberedItems.length >= 3) score += 2;
66557
+ if (numberedItems && numberedItems.length >= 6) score += 2;
66478
66558
  for (const kw of PLAN_KEYWORDS) if (lower.includes(kw)) {
66479
66559
  score += 2;
66480
66560
  break;
@@ -66491,7 +66571,7 @@ function scorePlanComplexity(prompt) {
66491
66571
  }
66492
66572
  return score;
66493
66573
  }
66494
- const PLAN_MODE_THRESHOLD = 5;
66574
+ const PLAN_MODE_THRESHOLD = 8;
66495
66575
  /**
66496
66576
  * Determine whether a prompt should trigger plan mode.
66497
66577
  *
@@ -66526,14 +66606,15 @@ function shouldEnterPlanMode(prompt, opts = {}) {
66526
66606
  score: 0
66527
66607
  };
66528
66608
  const score = scorePlanComplexity(trimmed);
66529
- if (score >= PLAN_MODE_THRESHOLD) return {
66609
+ const threshold = opts.threshold ?? PLAN_MODE_THRESHOLD;
66610
+ if (score >= threshold) return {
66530
66611
  enter: true,
66531
- reason: `complexity score ${score} >= ${PLAN_MODE_THRESHOLD}`,
66612
+ reason: `complexity score ${score} >= ${threshold}`,
66532
66613
  score
66533
66614
  };
66534
66615
  return {
66535
66616
  enter: false,
66536
- reason: `complexity score ${score} < ${PLAN_MODE_THRESHOLD}`,
66617
+ reason: `complexity score ${score} < ${threshold}`,
66537
66618
  score
66538
66619
  };
66539
66620
  }
@@ -67426,7 +67507,7 @@ async function runEmbeddedAttempt(params) {
67426
67507
  }
67427
67508
  });
67428
67509
  const isDefaultAgent = sessionAgentId === defaultAgentId;
67429
- const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
67510
+ const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
67430
67511
  const docsPath = await resolveSymiDocsPath({
67431
67512
  workspaceDir: effectiveWorkspace,
67432
67513
  argv1: process.argv[1],
@@ -67823,7 +67904,8 @@ async function runEmbeddedAttempt(params) {
67823
67904
  {
67824
67905
  const planResult = shouldEnterPlanMode(effectivePrompt, {
67825
67906
  isSubagent: isSubagentSessionKey(params.sessionKey),
67826
- isCron: isCronSessionKey(params.sessionKey)
67907
+ isCron: isCronSessionKey(params.sessionKey),
67908
+ threshold: params.config?.agents?.defaults?.planModeThreshold
67827
67909
  });
67828
67910
  if (planResult.enter) {
67829
67911
  if (planResult.stripped != null) effectivePrompt = planResult.stripped;
@@ -68441,6 +68523,7 @@ async function runEmbeddedPiAgent(params) {
68441
68523
  let lastRunPromptUsage;
68442
68524
  let autoCompactionCount = 0;
68443
68525
  let runLoopIterations = 0;
68526
+ let verificationPassCompleted = false;
68444
68527
  try {
68445
68528
  while (true) {
68446
68529
  if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
@@ -68810,6 +68893,116 @@ async function runEmbeddedPiAgent(params) {
68810
68893
  suppressToolErrorWarnings: params.suppressToolErrorWarnings,
68811
68894
  inlineToolResultsAllowed: false
68812
68895
  });
68896
+ if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
68897
+ const CODE_TOOL_NAMES = new Set([
68898
+ "exec",
68899
+ "bash",
68900
+ "write",
68901
+ "edit",
68902
+ "file_write",
68903
+ "file_edit",
68904
+ "write_file",
68905
+ "edit_file",
68906
+ "create_file",
68907
+ "patch"
68908
+ ]);
68909
+ const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
68910
+ const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
68911
+ if (hasCodeToolUsage || hasCodeBlocks) {
68912
+ verificationPassCompleted = true;
68913
+ log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
68914
+ 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.";
68915
+ try {
68916
+ const verifyAttempt = await runEmbeddedAttempt({
68917
+ sessionId: params.sessionId,
68918
+ sessionKey: params.sessionKey,
68919
+ messageChannel: params.messageChannel,
68920
+ messageProvider: params.messageProvider,
68921
+ agentAccountId: params.agentAccountId,
68922
+ messageTo: params.messageTo,
68923
+ messageThreadId: params.messageThreadId,
68924
+ groupId: params.groupId,
68925
+ groupChannel: params.groupChannel,
68926
+ groupSpace: params.groupSpace,
68927
+ spawnedBy: params.spawnedBy,
68928
+ senderIsOwner: params.senderIsOwner,
68929
+ currentChannelId: params.currentChannelId,
68930
+ currentThreadTs: params.currentThreadTs,
68931
+ replyToMode: params.replyToMode,
68932
+ hasRepliedRef: params.hasRepliedRef,
68933
+ sessionFile: params.sessionFile,
68934
+ workspaceDir: resolvedWorkspace,
68935
+ agentDir,
68936
+ config: params.config,
68937
+ skillsSnapshot: params.skillsSnapshot,
68938
+ prompt: verificationPrompt,
68939
+ images: void 0,
68940
+ disableTools: params.disableTools,
68941
+ provider,
68942
+ modelId,
68943
+ model,
68944
+ authStorage,
68945
+ modelRegistry,
68946
+ agentId: workspaceResolution.agentId,
68947
+ thinkLevel,
68948
+ verboseLevel: params.verboseLevel,
68949
+ reasoningLevel: params.reasoningLevel,
68950
+ toolResultFormat: resolvedToolResultFormat,
68951
+ execOverrides: params.execOverrides,
68952
+ bashElevated: params.bashElevated,
68953
+ timeoutMs: params.timeoutMs,
68954
+ runId: params.runId,
68955
+ abortSignal: params.abortSignal,
68956
+ shouldEmitToolResult: params.shouldEmitToolResult,
68957
+ shouldEmitToolOutput: params.shouldEmitToolOutput,
68958
+ onPartialReply: params.onPartialReply,
68959
+ onAssistantMessageStart: params.onAssistantMessageStart,
68960
+ onBlockReply: params.onBlockReply,
68961
+ onBlockReplyFlush: params.onBlockReplyFlush,
68962
+ blockReplyBreak: params.blockReplyBreak,
68963
+ blockReplyChunking: params.blockReplyChunking,
68964
+ onReasoningStream: params.onReasoningStream,
68965
+ onReasoningEnd: params.onReasoningEnd,
68966
+ onToolResult: params.onToolResult,
68967
+ onAgentEvent: params.onAgentEvent,
68968
+ extraSystemPrompt: params.extraSystemPrompt,
68969
+ inputProvenance: params.inputProvenance,
68970
+ streamParams: params.streamParams,
68971
+ ownerNumbers: params.ownerNumbers,
68972
+ enforceFinalTag: params.enforceFinalTag
68973
+ });
68974
+ const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
68975
+ mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
68976
+ if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
68977
+ const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
68978
+ const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
68979
+ if (verifyHasToolUsage || verifyHasContent) {
68980
+ const verifyPayloads = buildEmbeddedRunPayloads({
68981
+ assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
68982
+ toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
68983
+ lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
68984
+ lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
68985
+ config: params.config,
68986
+ sessionKey: params.sessionKey ?? params.sessionId,
68987
+ provider: activeErrorContext.provider,
68988
+ model: activeErrorContext.model,
68989
+ verboseLevel: params.verboseLevel,
68990
+ reasoningLevel: params.reasoningLevel,
68991
+ toolResultFormat: resolvedToolResultFormat,
68992
+ suppressToolErrorWarnings: params.suppressToolErrorWarnings,
68993
+ inlineToolResultsAllowed: false
68994
+ });
68995
+ if (verifyPayloads.length > 0) {
68996
+ payloads.length = 0;
68997
+ payloads.push(...verifyPayloads);
68998
+ }
68999
+ log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
69000
+ } else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
69001
+ } catch (verifyErr) {
69002
+ log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
69003
+ }
69004
+ }
69005
+ }
68813
69006
  if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
68814
69007
  payloads: [{
68815
69008
  text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",
@@ -76724,7 +76917,7 @@ async function deliverSessionMaintenanceWarning(params) {
76724
76917
  return;
76725
76918
  }
76726
76919
  try {
76727
- const { deliverOutboundPayloads } = await import("./deliver-BdbnTrPD.js").then((n) => n.n);
76920
+ const { deliverOutboundPayloads } = await import("./deliver-DedoujTw.js").then((n) => n.n);
76728
76921
  await deliverOutboundPayloads({
76729
76922
  cfg: params.cfg,
76730
76923
  channel,
@@ -77376,9 +77569,12 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
77376
77569
  ensureBootstrapFiles: !agentCfg?.skipBootstrap && !isFastTestEnv
77377
77570
  })).dir;
77378
77571
  const agentDir = resolveAgentDir(cfg, agentId);
77572
+ const primaryModelKey = typeof cfg?.agents?.defaults?.model === "object" ? cfg.agents.defaults.model.primary : void 0;
77573
+ const modelTimeoutSeconds = primaryModelKey ? cfg?.agents?.defaults?.models?.[primaryModelKey]?.timeoutSeconds : void 0;
77379
77574
  const timeoutMs = resolveAgentTimeoutMs({
77380
77575
  cfg,
77381
- overrideSeconds: opts?.timeoutOverrideSeconds
77576
+ overrideSeconds: opts?.timeoutOverrideSeconds,
77577
+ modelTimeoutSeconds: modelTimeoutSeconds ?? null
77382
77578
  });
77383
77579
  const configuredTypingSeconds = agentCfg?.typingIntervalSeconds ?? sessionCfg?.typingIntervalSeconds;
77384
77580
  const typingIntervalSeconds = typeof configuredTypingSeconds === "number" ? configuredTypingSeconds : 6;