@symerian/symi 2.2.8 → 2.3.1

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 (361) hide show
  1. package/dist/{accounts-tNElYrCH.js → accounts-CI6zQTJj.js} +14 -14
  2. package/dist/{accounts-qtxJ-6em.js → accounts-CJR8j_Kq.js} +1 -1
  3. package/dist/{accounts-CWktKM8a.js → accounts-ChTFYj8Q.js} +1 -1
  4. package/dist/{acp-cli-C39L0DlT.js → acp-cli-Cu4icbJT.js} +2 -2
  5. package/dist/{acp-cli-C3PXowAr.js → acp-cli-NJzARaHq.js} +2 -2
  6. package/dist/{active-listener-C9r8ZB9m.js → active-listener-D6sXIjAg.js} +1 -1
  7. package/dist/{agent-scope-BxoUQqgM.js → agent-scope-Bw1Ed8W9.js} +3 -3
  8. package/dist/{agents-DbnUoR_W.js → agents-DzuttgJU.js} +7 -7
  9. package/dist/{agents.config-qyBeLoW5.js → agents.config-2HlZJsR3.js} +1 -1
  10. package/dist/{agents.config-D4WnZfkE.js → agents.config-CSucty2T.js} +1 -1
  11. package/dist/{audio-preflight-Cv9Z1hfd.js → audio-preflight-BsfqyC31.js} +29 -29
  12. package/dist/{audio-preflight-BsS_1f9-.js → audio-preflight-C40mKAp7.js} +5 -5
  13. package/dist/{audio-preflight-D6xo_ucC.js → audio-preflight-CWnxkaac.js} +11 -11
  14. package/dist/{audio-preflight-Dx82ytdb.js → audio-preflight-xSDULLAj.js} +11 -11
  15. package/dist/{audit-F6tyY79q.js → audit-Byo5jCLN.js} +5 -5
  16. package/dist/{audit-CbxXbquQ.js → audit-CrITRV6w.js} +5 -5
  17. package/dist/{auth-choice-DYxn5otk.js → auth-choice-ChrEc3cZ.js} +4 -4
  18. package/dist/{auth-choice-TbOBqNzh.js → auth-choice-Cve09z1a.js} +4 -4
  19. package/dist/{banner-BGxrGU83.js → banner-BoLflN_R.js} +1 -1
  20. package/dist/{bindings-B7Ke6LJi.js → bindings-BU2hsBd9.js} +2 -2
  21. package/dist/{browser-cli-BsdB0_5b.js → browser-cli-BG4qPxpM.js} +3 -3
  22. package/dist/{browser-cli-CTQX5_tu.js → browser-cli-CPcnnsJJ.js} +3 -3
  23. package/dist/build-info.json +3 -3
  24. package/dist/bundled/boot-md/handler.js +53 -53
  25. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  26. package/dist/bundled/command-logger/handler.js +1 -1
  27. package/dist/bundled/session-memory/handler.js +53 -53
  28. package/dist/{call-C7OJzLEL.js → call-BcE47FtD.js} +1 -1
  29. package/dist/{call-BOIceRVF.js → call-CJaS1iRF.js} +1 -1
  30. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  31. package/dist/{channel-activity-CsM_hJ_s.js → channel-activity-C9-gaquj.js} +1 -1
  32. package/dist/{channel-options-qDtKomWq.js → channel-options-Dkd1WQZx.js} +1 -1
  33. package/dist/{channel-options-8st4ZPAV.js → channel-options-DqgeO1f6.js} +1 -1
  34. package/dist/{channel-web-DQusem-l.js → channel-web-CJvDQ5Ea.js} +7 -7
  35. package/dist/{channels-cli-DZ9QSHcp.js → channels-cli-D0jjOLRb.js} +29 -29
  36. package/dist/{channels-cli-BfrCgEUI.js → channels-cli-DtqwJZWy.js} +30 -30
  37. package/dist/{chrome-Bf5N4gMh.js → chrome-CDJYxX5a.js} +8 -8
  38. package/dist/{chrome-CCN6Uf1O.js → chrome-Dq0bSDVx.js} +1 -1
  39. package/dist/{chrome-BtuJAYB6.js → chrome-DtPkPq9T.js} +1 -1
  40. package/dist/{chrome-CQNK4Of4.js → chrome-w3SLcQJF.js} +13 -13
  41. package/dist/{chunk-BW5f05BR.js → chunk-ClbN9Pqy.js} +1 -1
  42. package/dist/cli/daemon-cli.js +1 -1
  43. package/dist/{cli-isTrIFLa.js → cli-CEtg8kql.js} +26 -26
  44. package/dist/{cli-D484UoYM.js → cli-CHOmeum9.js} +25 -25
  45. package/dist/{command-format-BaxDnULz.js → command-format-UKHV-j0K.js} +1 -1
  46. package/dist/{command-registry-D4kcHIMn.js → command-registry-Ba2z3dYq.js} +11 -11
  47. package/dist/{commands-registry-D7CTCQPm.js → commands-registry-VSmULp-g.js} +4 -4
  48. package/dist/{completion-cli-CtOpZu6z.js → completion-cli-BgX3MWVU.js} +1 -1
  49. package/dist/{completion-cli-1m5OvbnB.js → completion-cli-CD-306wt.js} +2 -2
  50. package/dist/{config-Btm9gODl.js → config-BmV60pPT.js} +28 -0
  51. package/dist/{config-CkPct-ND.js → config-CHwyw6l5.js} +28 -0
  52. package/dist/{config-CJigbfdK.js → config-DHBLS1Hl.js} +28 -0
  53. package/dist/{config-cli-BlpcRRjX.js → config-cli-Cz87-TYh.js} +2 -2
  54. package/dist/{config-cli-BVbYrdKA.js → config-cli-DAbXVRUL.js} +2 -2
  55. package/dist/{config-CT6a99bQ.js → config-eEaJddXj.js} +40 -12
  56. package/dist/{config-guard-Q2nmK4Xy.js → config-guard-BflmO0t7.js} +3 -3
  57. package/dist/{config-guard-Fe8ddF5U.js → config-guard-CPHvOzsC.js} +2 -2
  58. package/dist/{config-validation-CqVVl--v.js → config-validation-BITwrsxY.js} +1 -1
  59. package/dist/{config-validation-DXA9-y5q.js → config-validation-CmimHAES.js} +1 -1
  60. package/dist/{configure-D4WT6m8B.js → configure-0nrthdSf.js} +10 -10
  61. package/dist/{configure-C-o6fkN4.js → configure-D45ne4lm.js} +10 -10
  62. package/dist/{control-service-DWy5T1wZ.js → control-service-Bz7rxLWq.js} +4 -4
  63. package/dist/{control-service-D2-SfYYP.js → control-service-DEVN6FRR.js} +4 -4
  64. package/dist/control-ui/css/style.css +1437 -548
  65. package/dist/control-ui/index.html +912 -652
  66. package/dist/control-ui/js/app.js +82 -6
  67. package/dist/control-ui/js/debug.js +55 -0
  68. package/dist/control-ui/js/gateway.js +11 -0
  69. package/dist/control-ui/js/models.js +16 -1
  70. package/dist/control-ui/js/render.js +74 -1
  71. package/dist/control-ui/js/render.test.js +36 -35
  72. package/dist/control-ui/js/utils.js +6 -6
  73. package/dist/{cron-cli-DCjmF5-B.js → cron-cli-BP24xl6n.js} +3 -3
  74. package/dist/{cron-cli-BXgHvojs.js → cron-cli-DBIlCvp3.js} +3 -3
  75. package/dist/{daemon-cli-D-Ceof_K.js → daemon-cli-DscwlsKW.js} +6 -6
  76. package/dist/{daemon-cli-2Xzn9zI0.js → daemon-cli-wWnBIQtk.js} +6 -6
  77. package/dist/daemon-cli.js +28 -0
  78. package/dist/{daemon-runtime-DpFImSwP.js → daemon-runtime-2mwX-jqj.js} +1 -1
  79. package/dist/{daemon-runtime-Co0_hiZm.js → daemon-runtime-CfRwa6qh.js} +1 -1
  80. package/dist/{deliver-CBVqE05W.js → deliver-BH0l3UKW.js} +2 -2
  81. package/dist/{deliver-CeOnWRNZ.js → deliver-BmPK91JP.js} +20 -20
  82. package/dist/{deliver-PKvGnPCv.js → deliver-CXRSdUr1.js} +3 -3
  83. package/dist/{deliver-CuDHWgo8.js → deliver-CceEhg3d.js} +3 -3
  84. package/dist/{devices-cli-Sgz97CCh.js → devices-cli-BHiPx2c2.js} +2 -2
  85. package/dist/{devices-cli-gzdkKCIr.js → devices-cli-Dds-25Ve.js} +2 -2
  86. package/dist/{diagnostic-CI0kRQkt.js → diagnostic-C3nsWaw3.js} +1 -1
  87. package/dist/{directory-cli-B7qWiEB9.js → directory-cli-CpUByQew.js} +1 -1
  88. package/dist/{directory-cli-B3reyWxB.js → directory-cli-D6vlxPje.js} +1 -1
  89. package/dist/{dns-cli-w2PtF7dQ.js → dns-cli-BEub5qgQ.js} +1 -1
  90. package/dist/{dns-cli-CAyakH9y.js → dns-cli-Beyzdh3S.js} +1 -1
  91. package/dist/{doctor-completion-CU32z26S.js → doctor-completion-CcDVOtZ5.js} +1 -1
  92. package/dist/{doctor-completion-rtRPARP8.js → doctor-completion-CmGtqUHQ.js} +1 -1
  93. package/dist/{doctor-config-flow-Bvd_Aoem.js → doctor-config-flow-CA3eiKhd.js} +2 -2
  94. package/dist/{doctor-config-flow-q1cK5vqE.js → doctor-config-flow-QnaBd8kL.js} +2 -2
  95. package/dist/entry.js +1 -1
  96. package/dist/{exec-approvals-cli-BGR981x_.js → exec-approvals-cli--zyXYrNY.js} +4 -4
  97. package/dist/{exec-approvals-cli-qL61CX5W.js → exec-approvals-cli-BliRl8VB.js} +4 -4
  98. package/dist/extensionAPI.js +13 -13
  99. package/dist/{frontmatter-C_bv_0P8.js → frontmatter-DPlG6yha.js} +2 -2
  100. package/dist/{gateway-cli-dxsgPoqI.js → gateway-cli-BVN31fwu.js} +135 -45
  101. package/dist/{gateway-cli-D9tJexeo.js → gateway-cli-DajX3Pye.js} +134 -44
  102. package/dist/{gateway-rpc-o-EndnYx.js → gateway-rpc-BxkKeCZ0.js} +1 -1
  103. package/dist/{gateway-rpc-DjjmZ7bN.js → gateway-rpc-DfZSz5JF.js} +1 -1
  104. package/dist/{gemini-auth-CdSPHuLl.js → gemini-auth-CF48hUR9.js} +1 -1
  105. package/dist/{github-copilot-token-C_qUP7p5.js → github-copilot-token-DJqsJ2-r.js} +7 -7
  106. package/dist/{glass-ui-ws-BvSaDLuk.js → glass-ui-ws-CQG6acJl.js} +34 -34
  107. package/dist/{glass-ui-ws-BxliIaQO.js → glass-ui-ws-Z1IOT6Vc.js} +33 -33
  108. package/dist/{health-BpVkd1NR.js → health-D9eQW7fJ.js} +5 -5
  109. package/dist/{health-6atzBDlL.js → health-f056vLGT.js} +5 -5
  110. package/dist/{hooks-cli-BdV4KLxW.js → hooks-cli-CW-IRS72.js} +27 -27
  111. package/dist/{hooks-cli-A0zhogYG.js → hooks-cli-hJ4euq2R.js} +26 -26
  112. package/dist/{image-Crdjqg8r.js → image-CHzdaNJ4.js} +2 -2
  113. package/dist/{image-CAI2RIyk.js → image-CO4meYzg.js} +2 -2
  114. package/dist/{image-Bf75JOg6.js → image-D9uvDTrc.js} +2 -2
  115. package/dist/{image-ops-CvJzsyvE.js → image-ops-S8-8dAhx.js} +1 -1
  116. package/dist/{image-CAUuNGNO.js → image-rZ4x9VS9.js} +4 -4
  117. package/dist/index.js +34 -34
  118. package/dist/{ir-DccrnjsE.js → ir-CbFUkv_T.js} +4 -4
  119. package/dist/{lifecycle-core-S8m0j4NY.js → lifecycle-core-D6LYXpFj.js} +2 -2
  120. package/dist/{lifecycle-core-D7Ye5Yes.js → lifecycle-core-DIBHfMOL.js} +2 -2
  121. package/dist/llm-slug-generator.js +53 -53
  122. package/dist/{local-roots-DMwIh5cS.js → local-roots-C7OCYACU.js} +5 -5
  123. package/dist/{login-Bw5pRDS9.js → login-B8uiUAnV.js} +7 -7
  124. package/dist/{login-Cy0xKkFK.js → login-XprgoYoQ.js} +2 -2
  125. package/dist/{login-CLDr2P2d.js → login-dIlDkG4X.js} +2 -2
  126. package/dist/{login-qr-UgF5nhwc.js → login-qr-CIZk8uKX.js} +12 -12
  127. package/dist/{login-qr-B1vLxxOr.js → login-qr-CUErSLXH.js} +2 -2
  128. package/dist/{login-qr-x-m9V4_i.js → login-qr-CqPpNO1y.js} +2 -2
  129. package/dist/{login-qr-CJ3r_moH.js → login-qr-pbXdFORv.js} +2 -2
  130. package/dist/{login-CrnzK7Rc.js → login-tFW8qUTU.js} +2 -2
  131. package/dist/{logs-cli-DJIwkEZN.js → logs-cli-Du8FCgKK.js} +3 -3
  132. package/dist/{logs-cli-DoSU6ypE.js → logs-cli-xOzIPrHm.js} +3 -3
  133. package/dist/{manager-D_LwXbc6.js → manager-BoLr3xR_.js} +13 -13
  134. package/dist/{manifest-registry-D0IQ3WuX.js → manifest-registry-CneMHk0N.js} +19 -19
  135. package/dist/{markdown-tables-iMQQZu4Q.js → markdown-tables-DSHvnTLx.js} +1 -1
  136. package/dist/{memory-cli-B1eBVFD2.js → memory-cli-C2SWDd8g.js} +1 -1
  137. package/dist/{memory-cli-DKU7WTEa.js → memory-cli-Ca5r9AUb.js} +1 -1
  138. package/dist/{message-channel-Dz5lr5b0.js → message-channel-DbsRltF2.js} +1 -1
  139. package/dist/{model-auth-DK43VicI.js → model-auth-CwOuTuXl.js} +9 -9
  140. package/dist/{model-catalog-D2Q4fkGC.js → model-catalog-CqCsARJX.js} +2 -2
  141. package/dist/{model-catalog-67tJywj6.js → model-catalog-DvBJ8pMD.js} +3 -3
  142. package/dist/{model-picker-Cv_lMtfR.js → model-picker-D5nCutGW.js} +2 -2
  143. package/dist/{model-picker-C5-xr7Au.js → model-picker-Ddo3jHe-.js} +2 -2
  144. package/dist/{models-cli-BIM5pEpQ.js → models-cli-B2ticsCM.js} +29 -29
  145. package/dist/{models-cli-DlUDMBlo.js → models-cli-D9bG44Ao.js} +29 -29
  146. package/dist/{models-config--wR0kLo6.js → models-config-CCMpqFyr.js} +1 -1
  147. package/dist/{models-config-CZKT8W0M.js → models-config-qyOXrOli.js} +1 -1
  148. package/dist/{models-CBEZc-xT.js → models-nO_t1uzp.js} +8 -8
  149. package/dist/{node-cli-D8nG9EDD.js → node-cli-C_G-Q3h-.js} +9 -9
  150. package/dist/{node-cli-DGmvLskU.js → node-cli-DSEhcjUV.js} +9 -9
  151. package/dist/{nodes-cli-B058F0sZ.js → nodes-cli-BIPA9B8G.js} +3 -3
  152. package/dist/{nodes-cli-BZ5aitST.js → nodes-cli-BcnuJajV.js} +3 -3
  153. package/dist/{onboard-BXp3rpw1.js → onboard-BDbpfrZj.js} +7 -7
  154. package/dist/{onboard-DXEF3bw2.js → onboard-BtZ9WqhJ.js} +7 -7
  155. package/dist/{onboard-channels-OKIylMMu.js → onboard-channels-CHE8nfNA.js} +1 -1
  156. package/dist/{onboard-channels-qLCTzt3v.js → onboard-channels-HubyUVjT.js} +1 -1
  157. package/dist/{onboard-custom-BiDvzYz-.js → onboard-custom-C7O-zfQ1.js} +2 -2
  158. package/dist/{onboard-custom-Bcifi3N2.js → onboard-custom-DdWPfzJO.js} +2 -2
  159. package/dist/{onboard-helpers-DHgVt6rY.js → onboard-helpers-ZmZYzlq3.js} +2 -2
  160. package/dist/{onboard-helpers-Cammg0Xb.js → onboard-helpers-_pit1NZW.js} +2 -2
  161. package/dist/{onboard-remote-BnOKv_rG.js → onboard-remote-R1g6st9i.js} +1 -1
  162. package/dist/{onboard-remote-CPI1Dsgo.js → onboard-remote-zUjD7UtM.js} +1 -1
  163. package/dist/{onboard-skills-5R6rRZiZ.js → onboard-skills-BB0YhUmF.js} +1 -1
  164. package/dist/{onboard-skills-LkCNrrQL.js → onboard-skills-ByO_wSN5.js} +1 -1
  165. package/dist/{onboarding-HJJedJ3u.js → onboarding-DtP0sps0.js} +10 -10
  166. package/dist/{onboarding-m_e9LePg.js → onboarding-eVb5gvwo.js} +10 -10
  167. package/dist/{onboarding.finalize-CbjQ-91D.js → onboarding.finalize-CetxPTxL.js} +31 -31
  168. package/dist/{onboarding.finalize-CGVAc5-e.js → onboarding.finalize-D8035U2E.js} +33 -33
  169. package/dist/{onboarding.gateway-config-BOUh5scQ.js → onboarding.gateway-config-BQFO9a_h.js} +4 -4
  170. package/dist/{onboarding.gateway-config-xF_Hfx5r.js → onboarding.gateway-config-CJUgDC6Y.js} +4 -4
  171. package/dist/{outbound-DzTvHYT8.js → outbound-3MZ12YrQ.js} +1 -1
  172. package/dist/{outbound-DHZ4Sktx.js → outbound-DB5Zus0-.js} +1 -1
  173. package/dist/{outbound-attachment-DjNDa3zn.js → outbound-attachment-Co2diKdP.js} +2 -2
  174. package/dist/{outbound-DeJ-MyLv.js → outbound-drXCcH8D.js} +1 -1
  175. package/dist/{outbound-GuMlcXXN.js → outbound-opDNxv-l.js} +7 -7
  176. package/dist/{pairing-cli-BunHc86C.js → pairing-cli-CBLfGvqW.js} +1 -1
  177. package/dist/{pairing-cli-DNAQqsxT.js → pairing-cli-CQRAnpvm.js} +1 -1
  178. package/dist/{paths-DLyHUt31.js → paths-Cb87-LzP.js} +1 -1
  179. package/dist/{paths-Cce4PUkG.js → paths-CySxpNhH.js} +5 -5
  180. package/dist/{pi-auth-json-0SYBFZTt.js → pi-auth-json-DPWPoruO.js} +8 -8
  181. package/dist/{pi-auth-json-C3yexKNU.js → pi-auth-json-DayrlDg_.js} +1 -1
  182. package/dist/{pi-embedded-Cd7Gd0Am.js → pi-embedded-BY-dBus2.js} +250 -39
  183. package/dist/{pi-embedded-C4Cb6hc3.js → pi-embedded-Dc3muKtS.js} +374 -163
  184. package/dist/{pi-embedded-helpers-B86ZS0eB.js → pi-embedded-helpers-B2z46qeM.js} +52 -52
  185. package/dist/{pi-embedded-helpers-UsrsQKwr.js → pi-embedded-helpers-CNPyv_ax.js} +1 -1
  186. package/dist/{pi-embedded-helpers-B2k8Fh9T.js → pi-embedded-helpers-DE9h5GAu.js} +1 -1
  187. package/dist/{pi-embedded-helpers-xjO9noTy.js → pi-embedded-helpers-lgx_U5KS.js} +5 -5
  188. package/dist/{pi-tools.policy-DKHZCIA2.js → pi-tools.policy-CIDBbw6x.js} +2 -2
  189. package/dist/{pi-tools.policy-CwzwRugl.js → pi-tools.policy-De00gPXt.js} +2 -2
  190. package/dist/{plugin-registry-DOEhQFQJ.js → plugin-registry-CuoX8mar.js} +2 -2
  191. package/dist/{plugin-registry-D0iAVBbj.js → plugin-registry-fxcvycGr.js} +2 -2
  192. package/dist/plugin-sdk/{audio-preflight-B8X7BvQ5.js → audio-preflight-DoQQKlxa.js} +5 -5
  193. package/dist/plugin-sdk/{channel-web-B92UQWLf.js → channel-web-CV1KLtZh.js} +7 -7
  194. package/dist/plugin-sdk/{chrome-DxJPopF7.js → chrome-C7c_0I5M.js} +1 -1
  195. package/dist/plugin-sdk/config/model-profiles-builtin.d.ts +9 -0
  196. package/dist/plugin-sdk/config/model-profiles.d.ts +56 -0
  197. package/dist/plugin-sdk/config/resolve-model-profile.d.ts +15 -0
  198. package/dist/plugin-sdk/config/types.models.d.ts +28 -0
  199. package/dist/plugin-sdk/config/zod-schema.core.d.ts +54 -0
  200. package/dist/plugin-sdk/config/zod-schema.d.ts +27 -0
  201. package/dist/plugin-sdk/{config-B0SemGqU.js → config-DDkdiUOR.js} +28 -0
  202. package/dist/plugin-sdk/{deliver-C51eaClJ.js → deliver-BUns_L9e.js} +2 -2
  203. package/dist/plugin-sdk/{image-VGrV0d09.js → image-BOYy0Ump.js} +2 -2
  204. package/dist/plugin-sdk/index.js +17 -17
  205. package/dist/plugin-sdk/{login-CG8p5_rW.js → login-Bh3DZPam.js} +2 -2
  206. package/dist/plugin-sdk/{login-qr-buvA9Dp8.js → login-qr-DbR7odSr.js} +2 -2
  207. package/dist/plugin-sdk/{outbound-LqNDFLO5.js → outbound-rF6G8Xpr.js} +1 -1
  208. package/dist/plugin-sdk/{pi-embedded-helpers-IkpqVZZa.js → pi-embedded-helpers-BveUP4hk.js} +5 -5
  209. package/dist/plugin-sdk/{pw-ai-CjPImm6b.js → pw-ai-DjGUsee-.js} +2 -2
  210. package/dist/plugin-sdk/{replies-BLMuwbVf.js → replies-fI39rPGa.js} +1 -1
  211. package/dist/plugin-sdk/{reply-BS99Apig.js → reply-C4mijdMZ.js} +246 -35
  212. package/dist/plugin-sdk/{runner-pmvwohi9.js → runner-BVqnEfNe.js} +2 -2
  213. package/dist/plugin-sdk/{send-D8Zs62CE.js → send-BHbXh8Ly.js} +1 -1
  214. package/dist/plugin-sdk/{send-DOXV-BQw.js → send-BMfJIhCk.js} +1 -1
  215. package/dist/plugin-sdk/{send-BinD92v_.js → send-BtANzsAo.js} +1 -1
  216. package/dist/plugin-sdk/{send-cUp3Bf9t.js → send-Bxdu6ZZy.js} +1 -1
  217. package/dist/plugin-sdk/{send-BOrHNGsc.js → send-D6LMZJ_h.js} +1 -1
  218. package/dist/plugin-sdk/{session-B0bWB4Wf.js → session-kI0tzViQ.js} +1 -1
  219. package/dist/plugin-sdk/{web-CF79DBe3.js → web-B17UUsjm.js} +17 -17
  220. package/dist/plugin-sdk/{whatsapp-actions-Bp33E4JW.js → whatsapp-actions-CcBzDuL-.js} +2 -2
  221. package/dist/{plugins-DQYI3Fr-.js → plugins-C4C9637U.js} +9 -9
  222. package/dist/{plugins-cli-6nKHKPj8.js → plugins-cli-4OqSGHp-.js} +26 -26
  223. package/dist/{plugins-cli-DU06_0f6.js → plugins-cli-BbE_Qnlk.js} +27 -27
  224. package/dist/{program-D1icw1T9.js → program-DkXOdfM2.js} +33 -33
  225. package/dist/{program-context-Bqybavvo.js → program-context-0bDxGpMx.js} +38 -38
  226. package/dist/{prompt-select-styled-DptZ40df.js → prompt-select-styled-DJkRn30j.js} +14 -14
  227. package/dist/{prompt-select-styled-Cj3jTVJJ.js → prompt-select-styled-_6KbTFXs.js} +14 -14
  228. package/dist/{provider-auth-helpers-CDnMFdFw.js → provider-auth-helpers-Bnkj4QXS.js} +2 -2
  229. package/dist/{provider-auth-helpers-BVSJctmE.js → provider-auth-helpers-BpVAdwK_.js} +2 -2
  230. package/dist/{push-apns-DtKC_-eP.js → push-apns-C0wMP1XU.js} +1 -1
  231. package/dist/{push-apns-CpUJIlI7.js → push-apns-EKnCwrqK.js} +1 -1
  232. package/dist/{pw-ai-DgDn1s1W.js → pw-ai-CbyO1fbh.js} +2 -2
  233. package/dist/{pw-ai-C2hGnRfL.js → pw-ai-De-KR9_s.js} +2 -2
  234. package/dist/{pw-ai-CsvxsEwI.js → pw-ai-DqL87js3.js} +2 -2
  235. package/dist/{pw-ai-BcniFyZm.js → pw-ai-PiQUncix.js} +11 -11
  236. package/dist/{qmd-manager-QHUP-_em.js → qmd-manager-DdZh9PHs.js} +7 -7
  237. package/dist/{qr-cli-Deyb-bdE.js → qr-cli-jd9LdZpq.js} +1 -1
  238. package/dist/{qr-cli-DvDQ233a.js → qr-cli-mgnfD5ce.js} +1 -1
  239. package/dist/{register.agent-DesQbi0N.js → register.agent-B0S1CJEx.js} +32 -32
  240. package/dist/{register.agent-DszKb7kT.js → register.agent-B48Vf_DK.js} +34 -34
  241. package/dist/{register.configure-CPZ2pkCL.js → register.configure-Drr3E9OG.js} +36 -36
  242. package/dist/{register.configure-CiHbtNBW.js → register.configure-Wyv7vb24.js} +37 -37
  243. package/dist/{register.maintenance-BBjwt-34.js → register.maintenance-Cmf17EW0.js} +34 -34
  244. package/dist/{register.maintenance-hUQ3a2-X.js → register.maintenance-TgjAQ4E0.js} +36 -36
  245. package/dist/{register.message-BZ_faykn.js → register.message-BcsPnPvW.js} +26 -26
  246. package/dist/{register.message-BJG43ey1.js → register.message-Dwv2puIB.js} +27 -27
  247. package/dist/{register.onboard-CtDGWgek.js → register.onboard-BDGaSyq2.js} +32 -32
  248. package/dist/{register.onboard-BuvppItf.js → register.onboard-C8w7_w93.js} +33 -33
  249. package/dist/{register.setup-09FZm-3U.js → register.setup-CMGSNKXS.js} +33 -33
  250. package/dist/{register.setup-CK_rXwht.js → register.setup-CiEuZOlI.js} +32 -32
  251. package/dist/{register.status-health-sessions-CYBXZfzw.js → register.status-health-sessions-C8p0uINc.js} +29 -29
  252. package/dist/{register.status-health-sessions-Dq1GhVZd.js → register.status-health-sessions-zKjmZyOs.js} +31 -31
  253. package/dist/{register.subclis-oaqsIg7c.js → register.subclis-CofZE_pt.js} +28 -28
  254. package/dist/{registry-CK4e9hn8.js → registry-DP24za6g.js} +17 -17
  255. package/dist/{replies-CVeSBasT.js → replies-DO80zq73.js} +1 -1
  256. package/dist/{replies-9jiCJtyj.js → replies-DpPvWiGF.js} +3 -3
  257. package/dist/{replies-Dfqu9AXG.js → replies-ZYtI9jr0.js} +1 -1
  258. package/dist/{replies-ByiY6ZyB.js → replies-vgss3_QA.js} +1 -1
  259. package/dist/{reply-BnAPNcvn.js → reply-SBi_U7P7.js} +258 -47
  260. package/dist/{reply-prefix-XlyuyChD.js → reply-prefix-CtL0omgM.js} +1 -1
  261. package/dist/{resolve-route-CZ-1eqw0.js → resolve-route-BVikmvWO.js} +4 -4
  262. package/dist/{retry-Cly39XZB.js → retry-dGG-MbxL.js} +1 -1
  263. package/dist/{routes-br_73dY_.js → routes-BFw2-yAN.js} +3 -3
  264. package/dist/{routes-BZCzIvY1.js → routes-Ba9CUQ8M.js} +3 -3
  265. package/dist/{rpc-CbirYKS1.js → rpc-BfhojW8g.js} +1 -1
  266. package/dist/{rpc-BsIk35AA.js → rpc-BjLadgzu.js} +1 -1
  267. package/dist/{run-main-g9-g4T_a.js → run-main-BJaDO3WW.js} +44 -44
  268. package/dist/{runner-BPcjrrjx.js → runner-BORIO-D3.js} +3 -3
  269. package/dist/{runner-M7hSmkG1.js → runner-CCSMfQee.js} +9 -9
  270. package/dist/{runner-Iw-AU75D.js → runner-CUglpiFP.js} +3 -3
  271. package/dist/{runner-DFFbD4Jj.js → runner-DUBExAb5.js} +2 -2
  272. package/dist/{sandbox-C9zB9HTn.js → sandbox-BFzSUT19.js} +5 -5
  273. package/dist/{sandbox-BnivFdOs.js → sandbox-C-T6hOMv.js} +5 -5
  274. package/dist/{sandbox-cli-6RGP0CNN.js → sandbox-cli-BllVdQzR.js} +6 -6
  275. package/dist/{sandbox-cli-Dl8IMlpe.js → sandbox-cli-Cj5__-gh.js} +6 -6
  276. package/dist/{security-cli-BHG6kV1z.js → security-cli-BFLtWWHy.js} +9 -9
  277. package/dist/{security-cli-CtgTAznE.js → security-cli-Dmb1k47A.js} +9 -9
  278. package/dist/{send-uxuOCFdA.js → send-BArQpbtx.js} +1 -1
  279. package/dist/{send-C1DE47RQ.js → send-C1IYd3g7.js} +1 -1
  280. package/dist/{send-CdxBNofn.js → send-C4Ucr8ep.js} +1 -1
  281. package/dist/{send-Z6uznj5j.js → send-CHEOWVc8.js} +6 -6
  282. package/dist/{send-DB2tDd9M.js → send-CPF8hSFp.js} +1 -1
  283. package/dist/{send-DKvfyTNM.js → send-CR5fRDgW.js} +1 -1
  284. package/dist/{send-CU_BDzc0.js → send-CXxQ_f7L.js} +1 -1
  285. package/dist/{send-CkYljROn.js → send-CY8oqBFg.js} +1 -1
  286. package/dist/{send-Bf-tLRDW.js → send-CZr1hVHY.js} +1 -1
  287. package/dist/{send-DP6zL1r4.js → send-CukP8Vq4.js} +1 -1
  288. package/dist/{send-DKB9atcf.js → send-Cutb0ZDY.js} +1 -1
  289. package/dist/{send-DoiQ-lVY.js → send-D-hWrHoH.js} +1 -1
  290. package/dist/{send-rirP23D6.js → send-DK_pm_7l.js} +1 -1
  291. package/dist/{send-Dv5K7btg.js → send-DTTtmhjA.js} +1 -1
  292. package/dist/{send-DUWSrao-.js → send-DXW6mdgR.js} +1 -1
  293. package/dist/{send-KhJZHqoK.js → send-DbcLJb0P.js} +7 -7
  294. package/dist/{send-B2c8xd6F.js → send-DeEosX8F.js} +18 -18
  295. package/dist/{send-Dp3_Z9LN.js → send-DwKJK3sM.js} +10 -10
  296. package/dist/{send-Bv3GF77o.js → send-tanEMpHN.js} +1 -1
  297. package/dist/{send-IjhsR55j.js → send-zSarozV2.js} +6 -6
  298. package/dist/{server-context-Bn72icrR.js → server-context-CEpFjqSk.js} +5 -5
  299. package/dist/{server-context-BogDcclm.js → server-context-H24IFajW.js} +5 -5
  300. package/dist/{server-methods-CYVVBHwG.js → server-methods-Cm6W01ne.js} +15 -15
  301. package/dist/{server-methods-1TVNg0k5.js → server-methods-CyFB3XQf.js} +16 -16
  302. package/dist/{server-node-events-CPTRFOMY.js → server-node-events-Bhgt3xLw.js} +26 -26
  303. package/dist/{server-node-events-Cvqw-9rw.js → server-node-events-CX1plxJz.js} +27 -27
  304. package/dist/{session-CRf_exZ0.js → session-Ckw7cXeP.js} +1 -1
  305. package/dist/{session-eZHBxAr-.js → session-DIBTkyvE.js} +1 -1
  306. package/dist/{session-BvpMfKh-.js → session-DV1MNlbV.js} +8 -8
  307. package/dist/{session-C4z7523K.js → session-DtMfLMdP.js} +1 -1
  308. package/dist/{session-utils-D5F7F--L.js → session-utils-Bka9dR4m.js} +3 -3
  309. package/dist/{sessions-Cb4Hj78H.js → sessions-CJXnZVjR.js} +1 -1
  310. package/dist/{sessions-B2cR2hug.js → sessions-DgYpBvse.js} +1 -1
  311. package/dist/{sessions-DHCZbuoQ.js → sessions-WBoXk-Ag.js} +3 -3
  312. package/dist/{shared-zPQArNFi.js → shared-D8K9MkWg.js} +1 -1
  313. package/dist/{shared-CxsYh_6Q.js → shared-Knv1hy6h.js} +1 -1
  314. package/dist/{skill-commands-BJMb_psG.js → skill-commands-D610IKhm.js} +9 -9
  315. package/dist/{skills-cli-urhcJuu8.js → skills-cli-BZTBLQTt.js} +1 -1
  316. package/dist/{skills-cli-XmXhTH3z.js → skills-cli-CkTGL9dR.js} +1 -1
  317. package/dist/{skills-BFekKL7i.js → skills-o5WVqM4V.js} +21 -21
  318. package/dist/{sqlite-DRbx2dhW.js → sqlite-6H6Zw1cs.js} +4 -4
  319. package/dist/{status-B7VIwi53.js → status-BBpD_1pG.js} +10 -10
  320. package/dist/{status-CDpLvmFd.js → status-BdmYV3_x.js} +2 -2
  321. package/dist/{status-CCrlpUEA.js → status-CwXg8OO1.js} +9 -9
  322. package/dist/{status-BS3y9HjF.js → status-U_1mE-yc.js} +2 -2
  323. package/dist/{status.update-D8lzj5TK.js → status.update-DbmZz0Aq.js} +1 -1
  324. package/dist/{status.update-Cu6R3wwz.js → status.update-DtwCUTf-.js} +1 -1
  325. package/dist/{store-C0wvOkae.js → store-vVE6N2mH.js} +2 -2
  326. package/dist/{subagent-registry-BSgPGZxs.js → subagent-registry-Du9P0G2U.js} +259 -48
  327. package/dist/{subsystem-Bs9YvKLa.js → subsystem-DgpxyDQ_.js} +1 -1
  328. package/dist/{system-cli-BXvpbG10.js → system-cli-D_EIZpBm.js} +3 -3
  329. package/dist/{system-cli-CD1cvYkc.js → system-cli-UMsMEurS.js} +3 -3
  330. package/dist/{systemd-hints-Cn-fd1AF.js → systemd-hints-BR6gChwm.js} +1 -1
  331. package/dist/{systemd-hints-BMl55p2_.js → systemd-hints-sQipWGd1.js} +1 -1
  332. package/dist/{tables-DuZspiBu.js → tables-BIWsCKXJ.js} +1 -1
  333. package/dist/{target-errors-Be1SwYlW.js → target-errors-DyItGyW9.js} +2 -2
  334. package/dist/{thinking-CdlENGRW.js → thinking-Ni0HF-w6.js} +5 -5
  335. package/dist/{tokens-H1H1LiSQ.js → tokens-c_SLAkVb.js} +1 -1
  336. package/dist/{tool-images-DXB7tqWi.js → tool-images-DBCfXdli.js} +2 -2
  337. package/dist/{tool-loop-detection-Cs8_HCsx.js → tool-loop-detection-Bbc9OPFR.js} +3 -3
  338. package/dist/{tui-OUhw8eT1.js → tui-BJB80muc.js} +4 -4
  339. package/dist/{tui-DJefgPwz.js → tui-CriznorL.js} +4 -4
  340. package/dist/{tui-cli-_ohekmDR.js → tui-cli-C7Q9lK8Q.js} +9 -9
  341. package/dist/{tui-cli-C-CoSVeQ.js → tui-cli-CSIdfCTR.js} +9 -9
  342. package/dist/{update-cli-DL3Tb3b0.js → update-cli-DJzF_9UX.js} +37 -37
  343. package/dist/{update-cli-C8sM6pAA.js → update-cli-_45TJ3hZ.js} +39 -39
  344. package/dist/{update-runner-ChoWv-od.js → update-runner-8Ac4bJ1w.js} +1 -1
  345. package/dist/{update-runner-Dm7EwGFW.js → update-runner-BSQFv9b6.js} +1 -1
  346. package/dist/{web-sQrQA6or.js → web-BZSI7b07.js} +29 -29
  347. package/dist/{web-0w8t_r2B.js → web-BqRsq6mP.js} +57 -57
  348. package/dist/{web-UEqiaso9.js → web-C1Zn8_qW.js} +16 -16
  349. package/dist/{web-VbydcdAk.js → web-w-vV1rCZ.js} +29 -29
  350. package/dist/{webhooks-cli-B8gdUXw-.js → webhooks-cli-ChiCyIaD.js} +1 -1
  351. package/dist/{webhooks-cli-DpiLQ_-A.js → webhooks-cli-cD58DWAE.js} +1 -1
  352. package/dist/{whatsapp-actions-DrReF5st.js → whatsapp-actions-C8nNH4ax.js} +2 -2
  353. package/dist/{whatsapp-actions-xolxich-.js → whatsapp-actions-DbcsdOH3.js} +2 -2
  354. package/dist/{whatsapp-actions-D_KIOhRu.js → whatsapp-actions-DvhI5-DC.js} +2 -2
  355. package/dist/{whatsapp-actions-BVZaCecm.js → whatsapp-actions-oRQjcdQe.js} +23 -23
  356. package/dist/{with-timeout-vknUanNX.js → with-timeout-Di0nddLY.js} +1 -1
  357. package/dist/{with-timeout-DIHZxCIl.js → with-timeout-gmK6RciS.js} +1 -1
  358. package/dist/{workspace-wAaHI8-5.js → workspace-CbvamIU6.js} +6 -6
  359. package/docs/reference/templates/CONFIG-SCHEMA.md +173 -0
  360. package/docs/reference/templates/SYMICORE.md +24 -0
  361. package/package.json +1 -1
@@ -14,34 +14,34 @@ import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
14
14
  import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
15
15
  import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
16
16
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-aT-I_DTX.js";
17
- import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as createDiscordClient, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-Bf-tLRDW.js";
18
- import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CkPct-ND.js";
17
+ import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as createDiscordClient, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-CZr1hVHY.js";
18
+ import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CHwyw6l5.js";
19
19
  import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-C4BxOMWX.js";
20
20
  import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
21
21
  import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
22
22
  import { n as resolveConversationLabel } from "./conversation-label-Bn5j3lUT.js";
23
23
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CmmmT8IP.js";
24
- import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-Iw-AU75D.js";
25
- import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-Bf75JOg6.js";
26
- import { t as ensureSymiModelsJson } from "./models-config-CZKT8W0M.js";
24
+ import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CUglpiFP.js";
25
+ import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-D9uvDTrc.js";
26
+ import { t as ensureSymiModelsJson } from "./models-config-qyOXrOli.js";
27
27
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-4uUnLc3n.js";
28
- import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-UsrsQKwr.js";
29
- import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-BnivFdOs.js";
30
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BtuJAYB6.js";
31
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-Bn72icrR.js";
28
+ import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-CNPyv_ax.js";
29
+ import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-C-T6hOMv.js";
30
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DtPkPq9T.js";
31
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CEpFjqSk.js";
32
32
  import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-6jdJQ5ZL.js";
33
33
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BF3TeRH2.js";
34
34
  import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BBm9fwuG.js";
35
35
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
36
36
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-1OJMSAUX.js";
37
37
  import { n as getMediaDir, r as saveMediaBuffer } from "./store-r1DJSDq-.js";
38
- import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-B2cR2hug.js";
38
+ import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-DgYpBvse.js";
39
39
  import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-BhS32F6E.js";
40
40
  import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-DKDeQZF0.js";
41
41
  import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
42
42
  import { t as resolveIMessageAccount } from "./accounts-bK-Yqdwx.js";
43
43
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DyJN4_vR.js";
44
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-DB2tDd9M.js";
44
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CPF8hSFp.js";
45
45
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CyhzMxFA.js";
46
46
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-BzbXHcaD.js";
47
47
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DdnTeoR1.js";
@@ -51,16 +51,16 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Db3d
51
51
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
52
52
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
53
53
  import { v as runTasksWithConcurrency } from "./sqlite-Dx3J_aSE.js";
54
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-67tJywj6.js";
54
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DvBJ8pMD.js";
55
55
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-BuceUQDl.js";
56
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-DIHZxCIl.js";
57
- import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-CuDHWgo8.js";
56
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-gmK6RciS.js";
57
+ import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-CceEhg3d.js";
58
58
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DjBRPfu9.js";
59
59
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJyKP.js";
60
- import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-DKB9atcf.js";
60
+ import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-Cutb0ZDY.js";
61
61
  import { a as buildModelAliasLines, n as resolveModel } from "./model-tWhwnFf8.js";
62
62
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
63
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-DKU7WTEa.js";
63
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-Ca5r9AUb.js";
64
64
  import { i as resolveMemorySearchConfig } from "./manager-D4LJSRyZ.js";
65
65
  import { n as retryAsync } from "./retry-BoS4e4X_.js";
66
66
  import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-7AvoVa10.js";
@@ -70,22 +70,22 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DZam9q5M.js";
70
70
  import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-BNLCWX6e.js";
71
71
  import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-BT0-zzs3.js";
72
72
  import { Mt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CQSyCS4M.js";
73
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BOIceRVF.js";
73
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CJaS1iRF.js";
74
74
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
75
75
  import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
76
76
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
77
77
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DTNGXEzX.js";
78
78
  import { t as convertMarkdownTables } from "./tables-BEzT0Da4.js";
79
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-Bv3GF77o.js";
79
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-tanEMpHN.js";
80
80
  import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-CK726Dzq.js";
81
81
  import { t as makeProxyFetch } from "./proxy-DU7W9XSc.js";
82
82
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-D0B0Uo-I.js";
83
83
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BMoTaVAH.js";
84
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ByiY6ZyB.js";
84
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-vgss3_QA.js";
85
85
  import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-Cxw-jNxU.js";
86
86
  import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-BG4AXrGN.js";
87
- import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-CU_BDzc0.js";
88
- import { r as detectBinary } from "./onboard-helpers-DHgVt6rY.js";
87
+ import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-CXxQ_f7L.js";
88
+ import { r as detectBinary } from "./onboard-helpers-ZmZYzlq3.js";
89
89
  import { t as resolvePairingIdLabel } from "./pairing-labels-2S6x2UoV.js";
90
90
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BzKEDn0q.js";
91
91
  import { t as getActiveWebListener } from "./active-listener-kvXhlgwu.js";
@@ -93,8 +93,8 @@ import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExe
93
93
  import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-VBGXKdLk.js";
94
94
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CN8o4Vi3.js";
95
95
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BiwOFDEK.js";
96
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-DKHZCIA2.js";
97
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DWy5T1wZ.js";
96
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-CIDBbw6x.js";
97
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Bz7rxLWq.js";
98
98
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BUClb97_.js";
99
99
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-C8_BLnaW.js";
100
100
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DuWs0Aak.js";
@@ -10415,7 +10415,7 @@ async function routeReply(params) {
10415
10415
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10416
10416
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10417
10417
  try {
10418
- const { deliverOutboundPayloads } = await import("./deliver-CuDHWgo8.js").then((n) => n.n);
10418
+ const { deliverOutboundPayloads } = await import("./deliver-CceEhg3d.js").then((n) => n.n);
10419
10419
  return {
10420
10420
  ok: true,
10421
10421
  messageId: (await deliverOutboundPayloads({
@@ -12965,7 +12965,7 @@ async function describeStickerImage(params) {
12965
12965
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
12966
12966
  try {
12967
12967
  const buffer = await fs$1.readFile(imagePath);
12968
- const { describeImageWithModel } = await import("./image-Bf75JOg6.js").then((n) => n.n);
12968
+ const { describeImageWithModel } = await import("./image-D9uvDTrc.js").then((n) => n.n);
12969
12969
  return (await describeImageWithModel({
12970
12970
  buffer,
12971
12971
  fileName: "sticker.webp",
@@ -13388,7 +13388,7 @@ function createWhatsAppLoginTool() {
13388
13388
  force: Type.Optional(Type.Boolean())
13389
13389
  }),
13390
13390
  execute: async (_toolCallId, args) => {
13391
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CJ3r_moH.js");
13391
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-pbXdFORv.js");
13392
13392
  if ((args?.action ?? "start") === "wait") {
13393
13393
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
13394
13394
  return {
@@ -15604,7 +15604,7 @@ async function preflightDiscordMessage(params) {
15604
15604
  let preflightTranscript;
15605
15605
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
15606
15606
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
15607
- const { transcribeFirstAudio } = await import("./audio-preflight-D6xo_ucC.js");
15607
+ const { transcribeFirstAudio } = await import("./audio-preflight-CWnxkaac.js");
15608
15608
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
15609
15609
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
15610
15610
  ctx: {
@@ -22374,27 +22374,27 @@ async function runWithImageModelFallback(params) {
22374
22374
  function createDefaultDeps() {
22375
22375
  return {
22376
22376
  sendMessageWhatsApp: async (...args) => {
22377
- const { sendMessageWhatsApp } = await import("./web-sQrQA6or.js");
22377
+ const { sendMessageWhatsApp } = await import("./web-BZSI7b07.js");
22378
22378
  return await sendMessageWhatsApp(...args);
22379
22379
  },
22380
22380
  sendMessageTelegram: async (...args) => {
22381
- const { sendMessageTelegram } = await import("./send-DKB9atcf.js").then((n) => n.l);
22381
+ const { sendMessageTelegram } = await import("./send-Cutb0ZDY.js").then((n) => n.l);
22382
22382
  return await sendMessageTelegram(...args);
22383
22383
  },
22384
22384
  sendMessageDiscord: async (...args) => {
22385
- const { sendMessageDiscord } = await import("./send-Bf-tLRDW.js").then((n) => n.t);
22385
+ const { sendMessageDiscord } = await import("./send-CZr1hVHY.js").then((n) => n.t);
22386
22386
  return await sendMessageDiscord(...args);
22387
22387
  },
22388
22388
  sendMessageSlack: async (...args) => {
22389
- const { sendMessageSlack } = await import("./send-DB2tDd9M.js").then((n) => n.n);
22389
+ const { sendMessageSlack } = await import("./send-CPF8hSFp.js").then((n) => n.n);
22390
22390
  return await sendMessageSlack(...args);
22391
22391
  },
22392
22392
  sendMessageSignal: async (...args) => {
22393
- const { sendMessageSignal } = await import("./send-Bv3GF77o.js").then((n) => n.i);
22393
+ const { sendMessageSignal } = await import("./send-tanEMpHN.js").then((n) => n.i);
22394
22394
  return await sendMessageSignal(...args);
22395
22395
  },
22396
22396
  sendMessageIMessage: async (...args) => {
22397
- const { sendMessageIMessage } = await import("./send-CU_BDzc0.js").then((n) => n.n);
22397
+ const { sendMessageIMessage } = await import("./send-CXxQ_f7L.js").then((n) => n.n);
22398
22398
  return await sendMessageIMessage(...args);
22399
22399
  }
22400
22400
  };
@@ -33947,7 +33947,7 @@ async function registerSlackMonitorSlashCommands(params) {
33947
33947
  });
33948
33948
  const deliverSlashPayloads = async (replies) => {
33949
33949
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
33950
- import("./replies-ByiY6ZyB.js").then((n) => n.r),
33950
+ import("./replies-vgss3_QA.js").then((n) => n.r),
33951
33951
  import("./chunk-1dhPX1NK.js").then((n) => n.s),
33952
33952
  import("./markdown-tables-CEbN0fEm.js").then((n) => n.t)
33953
33953
  ]);
@@ -38771,7 +38771,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
38771
38771
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
38772
38772
  let preflightTranscript;
38773
38773
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
38774
- const { transcribeFirstAudio } = await import("./audio-preflight-D6xo_ucC.js");
38774
+ const { transcribeFirstAudio } = await import("./audio-preflight-CWnxkaac.js");
38775
38775
  preflightTranscript = await transcribeFirstAudio({
38776
38776
  ctx: {
38777
38777
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -40925,23 +40925,23 @@ let webLoginQrPromise = null;
40925
40925
  let webChannelPromise = null;
40926
40926
  let whatsappActionsPromise = null;
40927
40927
  function loadWebOutbound() {
40928
- webOutboundPromise ??= import("./outbound-DHZ4Sktx.js").then((n) => n.t);
40928
+ webOutboundPromise ??= import("./outbound-DB5Zus0-.js").then((n) => n.t);
40929
40929
  return webOutboundPromise;
40930
40930
  }
40931
40931
  function loadWebLogin() {
40932
- webLoginPromise ??= import("./login-CLDr2P2d.js").then((n) => n.n);
40932
+ webLoginPromise ??= import("./login-dIlDkG4X.js").then((n) => n.n);
40933
40933
  return webLoginPromise;
40934
40934
  }
40935
40935
  function loadWebLoginQr() {
40936
- webLoginQrPromise ??= import("./login-qr-CJ3r_moH.js");
40936
+ webLoginQrPromise ??= import("./login-qr-pbXdFORv.js");
40937
40937
  return webLoginQrPromise;
40938
40938
  }
40939
40939
  function loadWebChannel() {
40940
- webChannelPromise ??= import("./web-sQrQA6or.js");
40940
+ webChannelPromise ??= import("./web-BZSI7b07.js");
40941
40941
  return webChannelPromise;
40942
40942
  }
40943
40943
  function loadWhatsAppActions() {
40944
- whatsappActionsPromise ??= import("./whatsapp-actions-xolxich-.js");
40944
+ whatsappActionsPromise ??= import("./whatsapp-actions-DbcsdOH3.js");
40945
40945
  return whatsappActionsPromise;
40946
40946
  }
40947
40947
  function createPluginRuntime() {
@@ -56845,6 +56845,7 @@ function guardSessionManager(sessionManager, opts) {
56845
56845
 
56846
56846
  //#endregion
56847
56847
  //#region src/agents/transcript-policy.ts
56848
+ const GEMMA_MODEL_HINTS = ["gemma", "redsand/"];
56848
56849
  const MISTRAL_MODEL_HINTS = [
56849
56850
  "mistral",
56850
56851
  "mixtral",
@@ -56873,6 +56874,12 @@ function isAnthropicApi(modelApi, provider) {
56873
56874
  if (modelApi === "anthropic-messages") return true;
56874
56875
  return normalizeProviderId(provider ?? "") === "anthropic";
56875
56876
  }
56877
+ function isGemmaModel(params) {
56878
+ if (normalizeProviderId(params.provider ?? "") === "redsand") return true;
56879
+ const modelId = (params.modelId ?? "").toLowerCase();
56880
+ if (!modelId) return false;
56881
+ return GEMMA_MODEL_HINTS.some((hint) => modelId.includes(hint));
56882
+ }
56876
56883
  function isMistralModel(params) {
56877
56884
  if (normalizeProviderId(params.provider ?? "") === "mistral") return true;
56878
56885
  const modelId = (params.modelId ?? "").toLowerCase();
@@ -56889,6 +56896,10 @@ function resolveTranscriptPolicy(params) {
56889
56896
  provider,
56890
56897
  modelId
56891
56898
  });
56899
+ const isGemma = isGemmaModel({
56900
+ provider,
56901
+ modelId
56902
+ });
56892
56903
  const isOpenRouterGemini = (provider === "openrouter" || provider === "opencode") && modelId.toLowerCase().includes("gemini");
56893
56904
  const isAntigravityClaudeModel = isAntigravityClaude({
56894
56905
  api: params.modelApi,
@@ -56896,13 +56907,13 @@ function resolveTranscriptPolicy(params) {
56896
56907
  modelId
56897
56908
  });
56898
56909
  const dropThinkingBlocks = provider === "github-copilot" && modelId.toLowerCase().includes("claude");
56899
- const needsNonImageSanitize = isGoogle || isAnthropic || isMistral || isOpenRouterGemini;
56900
- const sanitizeToolCallIds = isGoogle || isMistral || isAnthropic;
56910
+ const needsNonImageSanitize = isGoogle || isAnthropic || isMistral || isOpenRouterGemini || isGemma;
56911
+ const sanitizeToolCallIds = isGoogle || isMistral || isAnthropic || isGemma;
56901
56912
  return {
56902
56913
  sanitizeMode: isOpenAi ? "images-only" : needsNonImageSanitize ? "full" : "images-only",
56903
56914
  sanitizeToolCallIds: !isOpenAi && sanitizeToolCallIds,
56904
56915
  toolCallIdMode: isMistral ? "strict9" : sanitizeToolCallIds ? "strict" : void 0,
56905
- repairToolUseResultPairing: !isOpenAi && (isGoogle || isAnthropic),
56916
+ repairToolUseResultPairing: !isOpenAi && (isGoogle || isAnthropic || isGemma),
56906
56917
  preserveSignatures: isAntigravityClaudeModel,
56907
56918
  sanitizeThoughtSignatures: isOpenAi ? void 0 : isOpenRouterGemini ? {
56908
56919
  allowBase64Only: true,
@@ -59018,6 +59029,162 @@ async function compactEmbeddedPiSession(params) {
59018
59029
  return enqueueCommandInLane(sessionLane, () => enqueueGlobal(async () => compactEmbeddedPiSessionDirect(params)));
59019
59030
  }
59020
59031
 
59032
+ //#endregion
59033
+ //#region src/config/model-profiles-builtin.ts
59034
+ /**
59035
+ * Built-in model profiles. Ordered from most-specific to least-specific so
59036
+ * that `resolveModelProfile` can return the first match.
59037
+ *
59038
+ * Order matters: "ollama/" must precede "gemma" because model IDs like
59039
+ * "ollama/gemma4:31b-128k" contain both substrings.
59040
+ */
59041
+ const BUILTIN_PROFILES = [
59042
+ {
59043
+ match: ["ollama/"],
59044
+ label: "Ollama Local",
59045
+ params: {
59046
+ temperature: 1,
59047
+ top_p: .95,
59048
+ top_k: 64,
59049
+ max_tokens: 4096,
59050
+ stop: ["<end_of_turn>", "<eos>"]
59051
+ },
59052
+ streaming: {
59053
+ deltaThrottleMs: 50,
59054
+ flushOnFinal: true,
59055
+ chunkPattern: "burst"
59056
+ },
59057
+ filters: {
59058
+ stripPatterns: [
59059
+ "<\\|channel>\\w*",
59060
+ "<channel\\|>",
59061
+ "<start_of_turn>(?:model|user)?",
59062
+ "<end_of_turn>"
59063
+ ],
59064
+ suppressMonologue: true,
59065
+ hasStructuredThinking: false
59066
+ },
59067
+ promptAdditions: ["You are running locally via Ollama. Do not output raw control tokens or internal monologue. Send brief progress updates on long tasks."],
59068
+ ui: {
59069
+ badge: "Local",
59070
+ watchdogMs: 9e5,
59071
+ armWatchdogOnSend: true
59072
+ }
59073
+ },
59074
+ {
59075
+ match: ["anthropic/", "claude-"],
59076
+ label: "Claude",
59077
+ params: {
59078
+ temperature: 1,
59079
+ top_p: 1,
59080
+ max_tokens: 8192
59081
+ },
59082
+ streaming: {
59083
+ deltaThrottleMs: 150,
59084
+ flushOnFinal: false,
59085
+ chunkPattern: "token"
59086
+ },
59087
+ filters: {
59088
+ stripPatterns: [],
59089
+ suppressMonologue: false,
59090
+ hasStructuredThinking: true
59091
+ },
59092
+ promptAdditions: [],
59093
+ ui: {
59094
+ badge: "API",
59095
+ watchdogMs: 3e5,
59096
+ armWatchdogOnSend: false
59097
+ }
59098
+ },
59099
+ {
59100
+ match: ["gemma", "redsand/"],
59101
+ label: "Gemma 4",
59102
+ params: {
59103
+ temperature: 1,
59104
+ top_p: .95,
59105
+ top_k: 64,
59106
+ max_tokens: 4096,
59107
+ stop: ["<end_of_turn>", "<eos>"]
59108
+ },
59109
+ streaming: {
59110
+ deltaThrottleMs: 50,
59111
+ flushOnFinal: true,
59112
+ chunkPattern: "burst"
59113
+ },
59114
+ filters: {
59115
+ stripPatterns: [
59116
+ "<\\|channel>\\w*",
59117
+ "<channel\\|>",
59118
+ "<start_of_turn>(?:model|user)?",
59119
+ "<end_of_turn>",
59120
+ "<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
59121
+ "^\\s*<bos>\\s*"
59122
+ ],
59123
+ suppressMonologue: true,
59124
+ hasStructuredThinking: false
59125
+ },
59126
+ promptAdditions: [
59127
+ "You are running as Gemma 4 via vLLM. Important behavioral rules:",
59128
+ "- Never output raw control tokens, channel tags, or turn markers in your responses.",
59129
+ "- Never display internal status checks, plans, or self-assessments. Your visible output should only be conversational responses and final results.",
59130
+ "- When working on multi-step tasks, send a brief one-line status update every 30-60 seconds so the user knows you are active.",
59131
+ "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
59132
+ "- Do not use <|channel>thought or similar syntax. If you need to reason, do so silently."
59133
+ ],
59134
+ ui: {
59135
+ badge: "CoreWeave",
59136
+ watchdogMs: 6e5,
59137
+ armWatchdogOnSend: true
59138
+ }
59139
+ }
59140
+ ];
59141
+
59142
+ //#endregion
59143
+ //#region src/config/resolve-model-profile.ts
59144
+ /** Default profile returned when no match is found. */
59145
+ const FALLBACK_PROFILE = {
59146
+ match: "*",
59147
+ label: "Generic",
59148
+ params: {
59149
+ temperature: 1,
59150
+ max_tokens: 4096
59151
+ },
59152
+ streaming: {
59153
+ deltaThrottleMs: 150,
59154
+ flushOnFinal: true,
59155
+ chunkPattern: "burst"
59156
+ },
59157
+ filters: {
59158
+ stripPatterns: [],
59159
+ suppressMonologue: false,
59160
+ hasStructuredThinking: false
59161
+ },
59162
+ promptAdditions: [],
59163
+ ui: {
59164
+ watchdogMs: 3e5,
59165
+ armWatchdogOnSend: true
59166
+ }
59167
+ };
59168
+ /**
59169
+ * Resolve the active model profile for a given model ID.
59170
+ *
59171
+ * Resolution order:
59172
+ * 1. User-defined profiles (from `models.profiles` in symi.json)
59173
+ * 2. Built-in profiles ({@link BUILTIN_PROFILES})
59174
+ * 3. Fallback "Generic" profile
59175
+ *
59176
+ * Matching is case-insensitive prefix/substring against the model ID.
59177
+ */
59178
+ function resolveModelProfile(modelId, userProfiles) {
59179
+ const id = modelId.toLowerCase();
59180
+ const allProfiles = [...userProfiles ?? [], ...BUILTIN_PROFILES];
59181
+ for (const profile of allProfiles) {
59182
+ const patterns = Array.isArray(profile.match) ? profile.match : [profile.match];
59183
+ for (const pattern of patterns) if (id.startsWith(pattern.toLowerCase()) || id.includes(pattern.toLowerCase())) return profile;
59184
+ }
59185
+ return FALLBACK_PROFILE;
59186
+ }
59187
+
59021
59188
  //#endregion
59022
59189
  //#region src/agents/pi-embedded-runner/extra-params.ts
59023
59190
  const OPENROUTER_APP_HEADERS = {
@@ -59037,7 +59204,9 @@ const OPENAI_RESPONSES_PROVIDERS = new Set(["openai"]);
59037
59204
  function resolveExtraParams(params) {
59038
59205
  const modelKey = `${params.provider}/${params.modelId}`;
59039
59206
  const modelConfig = params.cfg?.agents?.defaults?.models?.[modelKey];
59040
- return modelConfig?.params ? { ...modelConfig.params } : void 0;
59207
+ if (modelConfig?.params) return { ...modelConfig.params };
59208
+ const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
59209
+ if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
59041
59210
  }
59042
59211
  /**
59043
59212
  * Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
@@ -59067,6 +59236,7 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
59067
59236
  if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
59068
59237
  if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
59069
59238
  if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
59239
+ if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
59070
59240
  if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
59071
59241
  const cacheRetention = resolveCacheRetention(extraParams, provider);
59072
59242
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
@@ -59195,6 +59365,42 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
59195
59365
  });
59196
59366
  };
59197
59367
  }
59368
+ const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
59369
+ const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
59370
+ function isVllmOrGemmaProvider(provider, modelId, cfg) {
59371
+ const lower = `${provider}/${modelId}`.toLowerCase();
59372
+ if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
59373
+ const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
59374
+ return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
59375
+ }
59376
+ /**
59377
+ * Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
59378
+ * 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
59379
+ * 2. Inject Gemma stop sequences if none are set
59380
+ * 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
59381
+ */
59382
+ function createVllmCompatWrapper(baseStreamFn, extraParams) {
59383
+ const underlying = baseStreamFn ?? streamSimple;
59384
+ const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
59385
+ return (model, context, options) => {
59386
+ const originalOnPayload = options?.onPayload;
59387
+ return underlying(model, context, {
59388
+ ...options,
59389
+ onPayload: (payload) => {
59390
+ if (payload && typeof payload === "object") {
59391
+ const p = payload;
59392
+ if (p.max_completion_tokens && !p.max_tokens) {
59393
+ p.max_tokens = p.max_completion_tokens;
59394
+ delete p.max_completion_tokens;
59395
+ }
59396
+ if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
59397
+ delete p.store;
59398
+ }
59399
+ originalOnPayload?.(payload);
59400
+ }
59401
+ });
59402
+ };
59403
+ }
59198
59404
  /**
59199
59405
  * Apply extra params (like temperature) to an agent's streamFn.
59200
59406
  * Also adds OpenRouter app attribution headers when using the OpenRouter provider.
@@ -59229,6 +59435,10 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
59229
59435
  agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
59230
59436
  }
59231
59437
  }
59438
+ if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
59439
+ log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
59440
+ agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
59441
+ }
59232
59442
  agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
59233
59443
  }
59234
59444
 
@@ -62438,7 +62648,8 @@ async function runEmbeddedAttempt(params) {
62438
62648
  skillsPrompt,
62439
62649
  tools
62440
62650
  });
62441
- const systemPromptText = createSystemPromptOverride(appendPrompt)();
62651
+ const modelProfile = resolveModelProfile(params.modelId ?? "", params.config?.models?.profiles);
62652
+ const systemPromptText = createSystemPromptOverride(appendPrompt + (modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : ""))();
62442
62653
  const sessionLock = await acquireSessionWriteLock({
62443
62654
  sessionFile: params.sessionFile,
62444
62655
  maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
@@ -71469,7 +71680,7 @@ async function deliverSessionMaintenanceWarning(params) {
71469
71680
  return;
71470
71681
  }
71471
71682
  try {
71472
- const { deliverOutboundPayloads } = await import("./deliver-CuDHWgo8.js").then((n) => n.n);
71683
+ const { deliverOutboundPayloads } = await import("./deliver-CceEhg3d.js").then((n) => n.n);
71473
71684
  await deliverOutboundPayloads({
71474
71685
  cfg: params.cfg,
71475
71686
  channel,
@@ -72326,4 +72537,4 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
72326
72537
  }
72327
72538
 
72328
72539
  //#endregion
72329
- export { normalizeOptionalText as $, OPENAI_TTS_VOICES as $n, buildSafeExternalPrompt as $t, resetDirectoryCache as A, listDescendantRunsForRequester as An, normalizeMimeList as Ar, agentCommand as At, consumeRestartSentinel as B, resolveUserTimezone as Bn, resolveSendPolicy as Bt, pruneLegacyStoreKeys as C, isAbortTrigger as Cn, peekSystemEvents as Cr, resolveUsageProviderId as Ct, ensureOutboundSessionEntry as D, countActiveDescendantRuns as Dn, DEFAULT_INPUT_TIMEOUT_MS as Dr, requestBodyErrorToText as Dt, runMessageAction as E, normalizeMentionText as En, DEFAULT_INPUT_MAX_REDIRECTS as Er, readJsonBodyWithLimit as Et, isGatewaySigusr1RestartExternallyAllowed as F, clearAgentRunContext as Fn, resolveHeartbeatSenderContext as Ft, trimLogTail as G, resolveTtsAutoMode as Gn, setCliSessionId as Gt, formatRestartSentinelMessage as H, isTtsEnabled as Hn, createOutboundSendDeps$1 as Ht, markGatewaySigusr1RestartHandled as I, emitAgentEvent as In, resolveOutboundTarget as It, normalizeCronJobCreate as J, resolveTtsProviderOrder as Jn, describeFailoverError as Jt, writeRestartSentinel as K, resolveTtsConfig as Kn, runCliAgent as Kt, scheduleGatewaySigusr1Restart as L, getAgentRunContext as Ln, resolveSessionDeliveryTarget as Lt, consumeGatewaySigusr1RestartAuthorization as M, subagent_registry_exports as Mn, estimateBase64DecodedBytes as Mr, resolveAgentDeliveryPlan as Mt, deferGatewayRestartUntilIdle as N, runSubagentAnnounceFlow as Nn, resolveAgentTimeoutMs as Nr, resolveAgentOutboundTarget as Nt, resolveOutboundSessionRoute as O, countActiveRunsForSession as On, extractFileContentFromSource as Or, computeBackoff as Ot, emitGatewayRestart as P, readLatestAssistantReply as Pn, resolveHeartbeatDeliveryTarget as Pt, normalizeOptionalSessionKey as Q, OPENAI_TTS_MODELS as Qn, parseIdentityMarkdown as Qt, setGatewaySigusr1RestartPolicy as R, onAgentEvent as Rn, createOutboundSendDeps as Rt, loadSessionEntry as S, shouldComputeCommandAuthorized as Sn, peekSystemEventEntries as Sr, formatUsageWindowSummary as St, resolveSessionModelRef as T, buildMentionRegexes as Tn, DEFAULT_INPUT_IMAGE_MIMES as Tr, handleSlackHttpRequest as Tt, readRestartSentinel as U, isTtsProviderConfigured as Un, runWithModelFallback as Ut, formatDoctorNonInteractiveHint as V, getTtsProvider as Vn, createDefaultDeps as Vt, summarizeRestartSentinel as W, resolveTtsApiKey as Wn, getCliSessionId as Wt, inferLegacyName as X, setTtsProvider as Xn, identityHasValues as Xt, normalizeCronJobPatch as Y, setTtsEnabled as Yn, resolveAgentAvatar as Yt, normalizeOptionalAgentId as Z, textToSpeech as Zn, loadAgentIdentityFromWorkspace as Zt, canonicalizeSpawnedByForAgent as _, resolveInboundDebounceMs as _n, applyModelOverrideToSessionEntry as _r, deleteTelegramUpdateOffset as _t, buildChannelSummary as a, resolveMentionGating as an, waitForActiveTasks as ar, stripLegacyDeliveryFields as at, listSessionsFromStore as b, formatZonedTimestamp as bn, enqueueSystemEvent as br, loadProviderUsageSummary as bt, clearSessionQueues as c, recordPendingHistoryEntryIfEnabled as cn, DEFAULT_HEARTBEAT_EVERY as cr, applyBrowserProxyPaths as ct, getActiveEmbeddedRunCount as d, provider_dispatcher_exports as dn, stripHeartbeatToken as dr, requestHeartbeatNow as dt, detectSuspiciousPatterns as en, getActiveTaskCount as er, normalizePayloadToSystemText as et, waitForEmbeddedPiRunEnd as f, dispatchInboundMessage as fn, lookupContextTokens as fr, setHeartbeatWakeHandler as ft, resolveAnnounceTargetFromKey as g, createInboundDebouncer as gn, formatRemainingShort as gr, loadSymiPlugins as gt, createSymiTools as h, createDedupeCache as hn, buildAuthHealthSummary as hr, createPluginLoaderLogger as ht, resolveCronStyleNow as i, buildPairingReply as in, setCommandLaneConcurrency as ir, hasLegacyDeliveryHints as it, CHANNEL_MESSAGE_ACTION_NAMES as j, listSubagentRunsForRequester as jn, resolveInputFileLimits as jr, resolveSessionKeyForRequest as jt, formatTargetDisplay as k, initSubagentRegistry as kn, extractImageContentFromSource as kr, sleepWithAbort as kt, runEmbeddedPiAgent as l, shouldAckReactionForWhatsApp as ln, isHeartbeatContentEffectivelyEmpty as lr, persistBrowserProxyFiles as lt, buildDefaultToolPolicyPipelineSteps as m, getTotalPendingReplies as mn, DEFAULT_OAUTH_WARN_MS as mr, getPluginToolMeta as mt, BARE_SESSION_RESET_PROMPT as n, isExternalHookSession as nn, getTotalQueueSize as nr, migrateLegacyCronPayload as nt, buildChannelAccountSnapshot as o, DEFAULT_GROUP_HISTORY_LIMIT as on, CommandLane as or, CHANNEL_TARGETS_DESCRIPTION as ot, applyToolPolicyPipeline as p, createReplyDispatcher as pn, maskApiKey as pr, resolveHeartbeatReasonKind as pt, normalizeHttpWebhookUrl as q, resolveTtsPrefsPath as qn, sha256HexPrefix as qt, appendCronStyleCurrentTimeLine as r, unbindThreadBindingsBySessionKey as rn, resetAllLanes as rr, buildDeliveryFromLegacyPayload as rt, formatChannelAllowFrom as s, buildHistoryContextFromEntries as sn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as sr, CHANNEL_TARGET_DESCRIPTION as st, getReplyFromConfig as t, getHookType as tn, getQueueSize as tr, normalizeRequiredName as tt, abortEmbeddedPiRun as u, dispatchReplyWithBufferedBlockDispatcher as un, resolveHeartbeatPrompt as ur, sniffMimeFromBase64 as ut, classifySessionKey as v, formatInboundEnvelope as vn, applyVerboseOverride as vr, normalizeGroupActivation as vt, resolveGatewaySessionStoreTarget as w, stopSubagentsForRequester as wn, DEFAULT_INPUT_IMAGE_MAX_BYTES as wr, resolveCommitHash as wt, loadCombinedSessionStoreForGateway as x, hasControlCommand as xn, isSystemEventContextChanged as xr, formatUsageReportLines as xt, listAgentsForGateway as y, resolveEnvelopeFormatOptions as yn, parseVerboseOverride as yr, parseActivationCommand as yt, setPreRestartDeferralCheck as z, registerAgentRunContext as zn, normalizeSendPolicy as zt };
72540
+ export { normalizeOptionalSessionKey as $, OPENAI_TTS_MODELS as $n, parseIdentityMarkdown as $t, formatTargetDisplay as A, initSubagentRegistry as An, extractImageContentFromSource as Ar, sleepWithAbort as At, setPreRestartDeferralCheck as B, registerAgentRunContext as Bn, normalizeSendPolicy as Bt, loadSessionEntry as C, shouldComputeCommandAuthorized as Cn, peekSystemEventEntries as Cr, formatUsageWindowSummary as Ct, runMessageAction as D, normalizeMentionText as Dn, DEFAULT_INPUT_MAX_REDIRECTS as Dr, readJsonBodyWithLimit as Dt, resolveSessionModelRef as E, buildMentionRegexes as En, DEFAULT_INPUT_IMAGE_MIMES as Er, handleSlackHttpRequest as Et, emitGatewayRestart as F, readLatestAssistantReply as Fn, resolveHeartbeatDeliveryTarget as Ft, summarizeRestartSentinel as G, resolveTtsApiKey as Gn, getCliSessionId as Gt, formatDoctorNonInteractiveHint as H, getTtsProvider as Hn, createDefaultDeps as Ht, isGatewaySigusr1RestartExternallyAllowed as I, clearAgentRunContext as In, resolveHeartbeatSenderContext as It, normalizeHttpWebhookUrl as J, resolveTtsPrefsPath as Jn, sha256HexPrefix as Jt, trimLogTail as K, resolveTtsAutoMode as Kn, setCliSessionId as Kt, markGatewaySigusr1RestartHandled as L, emitAgentEvent as Ln, resolveOutboundTarget as Lt, CHANNEL_MESSAGE_ACTION_NAMES as M, listSubagentRunsForRequester as Mn, resolveInputFileLimits as Mr, resolveSessionKeyForRequest as Mt, consumeGatewaySigusr1RestartAuthorization as N, subagent_registry_exports as Nn, estimateBase64DecodedBytes as Nr, resolveAgentDeliveryPlan as Nt, ensureOutboundSessionEntry as O, countActiveDescendantRuns as On, DEFAULT_INPUT_TIMEOUT_MS as Or, requestBodyErrorToText as Ot, deferGatewayRestartUntilIdle as P, runSubagentAnnounceFlow as Pn, resolveAgentTimeoutMs as Pr, resolveAgentOutboundTarget as Pt, normalizeOptionalAgentId as Q, textToSpeech as Qn, loadAgentIdentityFromWorkspace as Qt, scheduleGatewaySigusr1Restart as R, getAgentRunContext as Rn, resolveSessionDeliveryTarget as Rt, loadCombinedSessionStoreForGateway as S, hasControlCommand as Sn, isSystemEventContextChanged as Sr, formatUsageReportLines as St, resolveGatewaySessionStoreTarget as T, stopSubagentsForRequester as Tn, DEFAULT_INPUT_IMAGE_MAX_BYTES as Tr, resolveCommitHash as Tt, formatRestartSentinelMessage as U, isTtsEnabled as Un, createOutboundSendDeps$1 as Ut, consumeRestartSentinel as V, resolveUserTimezone as Vn, resolveSendPolicy as Vt, readRestartSentinel as W, isTtsProviderConfigured as Wn, runWithModelFallback as Wt, normalizeCronJobPatch as X, setTtsEnabled as Xn, resolveAgentAvatar as Xt, normalizeCronJobCreate as Y, resolveTtsProviderOrder as Yn, describeFailoverError as Yt, inferLegacyName as Z, setTtsProvider as Zn, identityHasValues as Zt, resolveAnnounceTargetFromKey as _, createInboundDebouncer as _n, formatRemainingShort as _r, loadSymiPlugins as _t, buildChannelSummary as a, buildPairingReply as an, setCommandLaneConcurrency as ar, hasLegacyDeliveryHints as at, listAgentsForGateway as b, resolveEnvelopeFormatOptions as bn, parseVerboseOverride as br, parseActivationCommand as bt, clearSessionQueues as c, buildHistoryContextFromEntries as cn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as cr, CHANNEL_TARGET_DESCRIPTION as ct, getActiveEmbeddedRunCount as d, dispatchReplyWithBufferedBlockDispatcher as dn, resolveHeartbeatPrompt as dr, sniffMimeFromBase64 as dt, buildSafeExternalPrompt as en, OPENAI_TTS_VOICES as er, normalizeOptionalText as et, waitForEmbeddedPiRunEnd as f, provider_dispatcher_exports as fn, stripHeartbeatToken as fr, requestHeartbeatNow as ft, createSymiTools as g, createDedupeCache as gn, buildAuthHealthSummary as gr, createPluginLoaderLogger as gt, buildDefaultToolPolicyPipelineSteps as h, getTotalPendingReplies as hn, DEFAULT_OAUTH_WARN_MS as hr, getPluginToolMeta as ht, resolveCronStyleNow as i, unbindThreadBindingsBySessionKey as in, resetAllLanes as ir, buildDeliveryFromLegacyPayload as it, resetDirectoryCache as j, listDescendantRunsForRequester as jn, normalizeMimeList as jr, agentCommand as jt, resolveOutboundSessionRoute as k, countActiveRunsForSession as kn, extractFileContentFromSource as kr, computeBackoff as kt, runEmbeddedPiAgent as l, recordPendingHistoryEntryIfEnabled as ln, DEFAULT_HEARTBEAT_EVERY as lr, applyBrowserProxyPaths as lt, applyToolPolicyPipeline as m, createReplyDispatcher as mn, maskApiKey as mr, resolveHeartbeatReasonKind as mt, BARE_SESSION_RESET_PROMPT as n, getHookType as nn, getQueueSize as nr, normalizeRequiredName as nt, buildChannelAccountSnapshot as o, resolveMentionGating as on, waitForActiveTasks as or, stripLegacyDeliveryFields as ot, resolveModelProfile as p, dispatchInboundMessage as pn, lookupContextTokens as pr, setHeartbeatWakeHandler as pt, writeRestartSentinel as q, resolveTtsConfig as qn, runCliAgent as qt, appendCronStyleCurrentTimeLine as r, isExternalHookSession as rn, getTotalQueueSize as rr, migrateLegacyCronPayload as rt, formatChannelAllowFrom as s, DEFAULT_GROUP_HISTORY_LIMIT as sn, CommandLane as sr, CHANNEL_TARGETS_DESCRIPTION as st, getReplyFromConfig as t, detectSuspiciousPatterns as tn, getActiveTaskCount as tr, normalizePayloadToSystemText as tt, abortEmbeddedPiRun as u, shouldAckReactionForWhatsApp as un, isHeartbeatContentEffectivelyEmpty as ur, persistBrowserProxyFiles as ut, canonicalizeSpawnedByForAgent as v, resolveInboundDebounceMs as vn, applyModelOverrideToSessionEntry as vr, deleteTelegramUpdateOffset as vt, pruneLegacyStoreKeys as w, isAbortTrigger as wn, peekSystemEvents as wr, resolveUsageProviderId as wt, listSessionsFromStore as x, formatZonedTimestamp as xn, enqueueSystemEvent as xr, loadProviderUsageSummary as xt, classifySessionKey as y, formatInboundEnvelope as yn, applyVerboseOverride as yr, normalizeGroupActivation as yt, setGatewaySigusr1RestartPolicy as z, onAgentEvent as zn, createOutboundSendDeps as zt };
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveAgentConfig } from "./agent-scope-BxoUQqgM.js";
2
+ import { n as resolveAgentConfig } from "./agent-scope-Bw1Ed8W9.js";
3
3
 
4
4
  //#region src/agents/identity.ts
5
5
  const DEFAULT_ACK_REACTION = "👀";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
4
- import { c as resolveDefaultAgentId } from "./agent-scope-BxoUQqgM.js";
5
- import { y as logDebug } from "./workspace-wAaHI8-5.js";
3
+ import { Z as shouldLogVerbose } from "./registry-DP24za6g.js";
4
+ import { c as resolveDefaultAgentId } from "./agent-scope-Bw1Ed8W9.js";
5
+ import { y as logDebug } from "./workspace-CbvamIU6.js";
6
6
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
7
- import { t as listBindings } from "./bindings-B7Ke6LJi.js";
7
+ import { t as listBindings } from "./bindings-BU2hsBd9.js";
8
8
 
9
9
  //#region src/routing/resolve-route.ts
10
10
  var resolve_route_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { B as sleep } from "./registry-CK4e9hn8.js";
1
+ import { B as sleep } from "./registry-DP24za6g.js";
2
2
 
3
3
  //#region src/infra/retry.ts
4
4
  const DEFAULT_RETRY_CONFIG = {