@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
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
4
- import { $ as normalizeOptionalText, $t as buildSafeExternalPrompt, A as resetDirectoryCache, An as listDescendantRunsForRequester, Ar as normalizeMimeList, At as agentCommand, B as consumeRestartSentinel, Dn as countActiveDescendantRuns, Dr as DEFAULT_INPUT_TIMEOUT_MS, Dt as requestBodyErrorToText, Er as DEFAULT_INPUT_MAX_REDIRECTS, Et as readJsonBodyWithLimit, F as isGatewaySigusr1RestartExternallyAllowed, Fn as clearAgentRunContext, Gt as setCliSessionId, H as formatRestartSentinelMessage, I as markGatewaySigusr1RestartHandled, In as emitAgentEvent, It as resolveOutboundTarget, Kt as runCliAgent, Ln as getAgentRunContext, Lt as resolveSessionDeliveryTarget, M as consumeGatewaySigusr1RestartAuthorization, N as deferGatewayRestartUntilIdle, Nn as runSubagentAnnounceFlow, Nr as resolveAgentTimeoutMs, O as resolveOutboundSessionRoute, On as countActiveRunsForSession, Or as extractFileContentFromSource, Ot as computeBackoff, P as emitGatewayRestart, Pn as readLatestAssistantReply, Q as normalizeOptionalSessionKey, R as setGatewaySigusr1RestartPolicy, Rn as onAgentEvent, Rt as createOutboundSendDeps, S as loadSessionEntry, Tr as DEFAULT_INPUT_IMAGE_MIMES, Tt as handleSlackHttpRequest, Ut as runWithModelFallback, Vt as createDefaultDeps, W as summarizeRestartSentinel, Wt as getCliSessionId, X as inferLegacyName, Yt as resolveAgentAvatar, Z as normalizeOptionalAgentId, ar as waitForActiveTasks, at as stripLegacyDeliveryFields, br as enqueueSystemEvent, d as getActiveEmbeddedRunCount, dr as stripHeartbeatToken, dt as requestHeartbeatNow, en as detectSuspiciousPatterns, er as getActiveTaskCount, et as normalizePayloadToSystemText, fr as lookupContextTokens, g as resolveAnnounceTargetFromKey, gt as loadSymiPlugins, h as createSymiTools, i as resolveCronStyleNow, ir as setCommandLaneConcurrency, it as hasLegacyDeliveryHints, jr as resolveInputFileLimits, kn as initSubagentRegistry, kr as extractImageContentFromSource, kt as sleepWithAbort, l as runEmbeddedPiAgent, m as buildDefaultToolPolicyPipelineSteps, mn as getTotalPendingReplies, mt as getPluginToolMeta, nn as isExternalHookSession, nr as getTotalQueueSize, nt as migrateLegacyCronPayload, or as CommandLane, p as applyToolPolicyPipeline, q as normalizeHttpWebhookUrl, rr as resetAllLanes, rt as buildDeliveryFromLegacyPayload, sn as buildHistoryContextFromEntries, sr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, tn as getHookType, tt as normalizeRequiredName, wr as DEFAULT_INPUT_IMAGE_MAX_BYTES, z as setPreRestartDeferralCheck, zn as registerAgentRunContext } from "./reply-BnAPNcvn.js";
4
+ import { $ as normalizeOptionalSessionKey, An as initSubagentRegistry, Ar as extractImageContentFromSource, At as sleepWithAbort, B as setPreRestartDeferralCheck, Bn as registerAgentRunContext, C as loadSessionEntry, Dr as DEFAULT_INPUT_MAX_REDIRECTS, Dt as readJsonBodyWithLimit, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as handleSlackHttpRequest, F as emitGatewayRestart, Fn as readLatestAssistantReply, G as summarizeRestartSentinel, Gt as getCliSessionId, Ht as createDefaultDeps, I as isGatewaySigusr1RestartExternallyAllowed, In as clearAgentRunContext, J as normalizeHttpWebhookUrl, Kt as setCliSessionId, L as markGatewaySigusr1RestartHandled, Ln as emitAgentEvent, Lt as resolveOutboundTarget, Mr as resolveInputFileLimits, N as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, Ot as requestBodyErrorToText, P as deferGatewayRestartUntilIdle, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Q as normalizeOptionalAgentId, Rn as getAgentRunContext, Rt as resolveSessionDeliveryTarget, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, U as formatRestartSentinelMessage, V as consumeRestartSentinel, Wt as runWithModelFallback, Xt as resolveAgentAvatar, Z as inferLegacyName, _ as resolveAnnounceTargetFromKey, _t as loadSymiPlugins, ar as setCommandLaneConcurrency, at as hasLegacyDeliveryHints, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as getActiveEmbeddedRunCount, en as buildSafeExternalPrompt, et as normalizeOptionalText, fr as stripHeartbeatToken, ft as requestHeartbeatNow, g as createSymiTools, h as buildDefaultToolPolicyPipelineSteps, hn as getTotalPendingReplies, ht as getPluginToolMeta, i as resolveCronStyleNow, ir as resetAllLanes, it as buildDeliveryFromLegacyPayload, j as resetDirectoryCache, jn as listDescendantRunsForRequester, jr as normalizeMimeList, jt as agentCommand, k as resolveOutboundSessionRoute, kn as countActiveRunsForSession, kr as extractFileContentFromSource, kt as computeBackoff, l as runEmbeddedPiAgent, m as applyToolPolicyPipeline, nn as getHookType, nt as normalizeRequiredName, or as waitForActiveTasks, ot as stripLegacyDeliveryFields, p as resolveModelProfile, pr as lookupContextTokens, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, rt as migrateLegacyCronPayload, sr as CommandLane, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as normalizePayloadToSystemText, xr as enqueueSystemEvent, z as setGatewaySigusr1RestartPolicy, zn as onAgentEvent, zt as createOutboundSendDeps } from "./reply-SBi_U7P7.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, w as registerInternalHook } from "./registry-Cja8eT7G.js";
@@ -14,26 +14,26 @@ import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
14
14
  import "./boolean-BsqeuxE6.js";
15
15
  import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
16
16
  import { _ as normalizeGatewayClientMode, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient } from "./message-channel-aT-I_DTX.js";
17
- import "./send-Bf-tLRDW.js";
18
- import { B as resolveAgentMaxConcurrent, C as parseDurationMs, H as VERSION, U as resolveRuntimeServiceVersion, V as resolveSubagentMaxConcurrent, i as loadConfig, l as writeConfigFile, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-CkPct-ND.js";
17
+ import "./send-CZr1hVHY.js";
18
+ import { B as resolveAgentMaxConcurrent, C as parseDurationMs, H as VERSION, U as resolveRuntimeServiceVersion, V as resolveSubagentMaxConcurrent, i as loadConfig, l as writeConfigFile, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-CHwyw6l5.js";
19
19
  import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-C4BxOMWX.js";
20
20
  import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
21
- import { d as registerUnhandledRejectionHandler } from "./runner-Iw-AU75D.js";
22
- import "./image-Bf75JOg6.js";
23
- import "./models-config-CZKT8W0M.js";
21
+ import { d as registerUnhandledRejectionHandler } from "./runner-CUglpiFP.js";
22
+ import "./image-D9uvDTrc.js";
23
+ import "./models-config-qyOXrOli.js";
24
24
  import "./pi-model-discovery-4uUnLc3n.js";
25
- import "./pi-embedded-helpers-UsrsQKwr.js";
26
- import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-BnivFdOs.js";
27
- import "./chrome-BtuJAYB6.js";
25
+ import "./pi-embedded-helpers-CNPyv_ax.js";
26
+ import { S as resolveToolProfilePolicy, _ as collectExplicitAllowlist, b as mergeAlsoAllowPolicy } from "./sandbox-C-T6hOMv.js";
27
+ import "./chrome-DtPkPq9T.js";
28
28
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-D5dKabOc.js";
29
29
  import { t as safeEqualSecret } from "./secret-equal-D7A3Bol7.js";
30
30
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-B2SPYrh4.js";
31
31
  import { a as isTrustedProxyAddress, d as resolveGatewayListenHosts, f as resolveHostName, l as resolveClientIp, n as isLoopbackAddress, o as isValidIPv4, r as isLoopbackHost, s as normalizeHostHeader, t as rawDataToString, u as resolveGatewayBindHost } from "./ws-C7EXRv8z.js";
32
32
  import { a as resolveGatewayAuth, c as createAuthRateLimiter, i as isLocalDirectRequest, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, t as assertGatewayAuthConfigured } from "./auth-B741uFtk.js";
33
- import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-Bn72icrR.js";
33
+ import { g as mergeGatewayTailscaleConfig, h as ensureGatewayStartupAuth } from "./server-context-CEpFjqSk.js";
34
34
  import { d as hasBinary } from "./frontmatter-DWQhtOo7.js";
35
35
  import { r as buildWorkspaceSkillSnapshot } from "./skills-6jdJQ5ZL.js";
36
- import "./routes-BZCzIvY1.js";
36
+ import "./routes-Ba9CUQ8M.js";
37
37
  import "./redact-f-Q-hFt_.js";
38
38
  import { a as isErrno, n as formatErrorMessage } from "./errors-BF3TeRH2.js";
39
39
  import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CUjO1ca2.js";
@@ -43,7 +43,7 @@ import { c as detectMime } from "./image-ops-1OJMSAUX.js";
43
43
  import "./store-r1DJSDq-.js";
44
44
  import { a as inspectPortUsage, r as ensurePortAvailable, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
45
45
  import "./trash-DcMh1i4B.js";
46
- import { B as resolveAgentMainSessionKey, H as resolveMainSessionKey, M as evaluateSessionFreshness, P as resolveSessionResetPolicy, U as resolveMainSessionKeyFromConfig, Y as cleanStaleLockFiles, _ as mergeDeliveryContext, d as updateSessionStore, h as deliveryContextFromSession, n as parseSessionThreadInfo, o as loadSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-B2cR2hug.js";
46
+ import { B as resolveAgentMainSessionKey, H as resolveMainSessionKey, M as evaluateSessionFreshness, P as resolveSessionResetPolicy, U as resolveMainSessionKeyFromConfig, Y as cleanStaleLockFiles, _ as mergeDeliveryContext, d as updateSessionStore, h as deliveryContextFromSession, n as parseSessionThreadInfo, o as loadSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-DgYpBvse.js";
47
47
  import "./dock-BhS32F6E.js";
48
48
  import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
49
49
  import { n as resolveWhatsAppAccount } from "./accounts-DDuIpcln.js";
@@ -51,7 +51,7 @@ import "./accounts-bK-Yqdwx.js";
51
51
  import "./accounts-DyJN4_vR.js";
52
52
  import { t as buildChannelAccountBindings } from "./bindings-DFaVVCsf.js";
53
53
  import "./logging-w5jq5901.js";
54
- import "./send-DB2tDd9M.js";
54
+ import "./send-CPF8hSFp.js";
55
55
  import { c as resolveStorePath, i as resolveSessionTranscriptPath } from "./paths-CyhzMxFA.js";
56
56
  import "./tool-images-DvUBlqjX.js";
57
57
  import "./tool-display-D8N3rsYt.js";
@@ -59,16 +59,16 @@ import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
59
59
  import "./api-key-rotation-CzuPlV2t.js";
60
60
  import "./local-roots-aAFLQGkY.js";
61
61
  import "./sqlite-Dx3J_aSE.js";
62
- import { n as loadModelCatalog } from "./model-catalog-67tJywj6.js";
62
+ import { n as loadModelCatalog } from "./model-catalog-DvBJ8pMD.js";
63
63
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BuceUQDl.js";
64
- import { r as getMachineDisplayName } from "./with-timeout-DIHZxCIl.js";
65
- import { C as getGlobalHookRunner, T as runGlobalGatewayStopSafely, t as deliverOutboundPayloads } from "./deliver-CuDHWgo8.js";
64
+ import { r as getMachineDisplayName } from "./with-timeout-gmK6RciS.js";
65
+ import { C as getGlobalHookRunner, T as runGlobalGatewayStopSafely, t as deliverOutboundPayloads } from "./deliver-CceEhg3d.js";
66
66
  import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-DjBRPfu9.js";
67
67
  import "./diagnostic-session-state-CUslJyKP.js";
68
- import "./send-DKB9atcf.js";
68
+ import "./send-Cutb0ZDY.js";
69
69
  import "./model-tWhwnFf8.js";
70
70
  import { a as resolveAgentIdentity } from "./reply-prefix-CE2YmmsD.js";
71
- import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-DKU7WTEa.js";
71
+ import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-Ca5r9AUb.js";
72
72
  import { i as resolveMemorySearchConfig } from "./manager-D4LJSRyZ.js";
73
73
  import "./retry-BoS4e4X_.js";
74
74
  import { a as ToolInputError } from "./target-errors-7AvoVa10.js";
@@ -79,12 +79,12 @@ import "./render-CXDO_kgw.js";
79
79
  import { r as isRestartEnabled } from "./commands-BNLCWX6e.js";
80
80
  import "./commands-registry-BT0-zzs3.js";
81
81
  import { At as ErrorCodes, Ft as approveDevicePairing, Gt as updatePairedDeviceMetadata, It as ensureDeviceToken, Kt as verifyDeviceToken, Lt as getPairedDevice, Pt as buildDeviceAuthPayload, Qt as verifyDeviceSignature, R as validateExecApprovalRequestParams, Vt as requestDevicePairing, Yt as deriveDeviceIdFromPublicKey, Zt as normalizeDevicePublicKeyBase64Url, at as validateRequestFrame, jt as errorShape, kt as PROTOCOL_VERSION, n as formatValidationErrors, qt as roleScopesAllow, w as validateConnectParams, z as validateExecApprovalResolveParams } from "./client-CQSyCS4M.js";
82
- import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-BOIceRVF.js";
82
+ import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-CJaS1iRF.js";
83
83
  import "./pairing-token-CX3NN_qj.js";
84
84
  import "./channel-activity-BOiuJS3t.js";
85
85
  import "./fetch-DTNGXEzX.js";
86
86
  import "./tables-BEzT0Da4.js";
87
- import "./send-Bv3GF77o.js";
87
+ import "./send-tanEMpHN.js";
88
88
  import { a as readChannelAllowFromStoreSync } from "./pairing-store-CK726Dzq.js";
89
89
  import "./proxy-DU7W9XSc.js";
90
90
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
@@ -92,21 +92,21 @@ import { n as runCommandWithRuntime } from "./cli-utils-DN_hM6ov.js";
92
92
  import { t as formatHelpExamples } from "./help-format-B_-M23wP.js";
93
93
  import { n as withProgress } from "./progress-jIePzvGA.js";
94
94
  import "./resolve-route-BMoTaVAH.js";
95
- import "./replies-ByiY6ZyB.js";
95
+ import "./replies-vgss3_QA.js";
96
96
  import { S as registerSkillsChangeListener, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, l as refreshRemoteBinsForConnectedNodes, o as getRemoteSkillEligibility, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion } from "./skill-commands-Cxw-jNxU.js";
97
97
  import "./workspace-dirs-GpkFi6Kw.js";
98
98
  import "./outbound-attachment-D_QuKi8U.js";
99
99
  import "./delivery-queue-Df1uodAG.js";
100
100
  import { c as hasNonzeroUsage, s as deriveSessionTotalTokens } from "./session-cost-usage-BG4AXrGN.js";
101
- import "./send-CU_BDzc0.js";
102
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-DHgVt6rY.js";
101
+ import "./send-CXxQ_f7L.js";
102
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-ZmZYzlq3.js";
103
103
  import "./prompt-style-8JqOYj0q.js";
104
104
  import "./pairing-labels-2S6x2UoV.js";
105
105
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-BzKEDn0q.js";
106
106
  import { t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-Kn31mBcW.js";
107
107
  import "./nodes-screen-VBGXKdLk.js";
108
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-DKHZCIA2.js";
109
- import "./control-service-DWy5T1wZ.js";
108
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-CIDBbw6x.js";
109
+ import "./control-service-Bz7rxLWq.js";
110
110
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BUClb97_.js";
111
111
  import { n as resolveMessageChannelSelection } from "./channel-selection-DuWs0Aak.js";
112
112
  import { i as onHeartbeatEvent, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-U4BL57eQ.js";
@@ -122,33 +122,33 @@ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BzX1uAKy.js";
122
122
  import "./install-safe-path-tCLiMpmO.js";
123
123
  import "./skill-scanner-CLs8u6vQ.js";
124
124
  import "./channels-status-issues-B_kBkl_u.js";
125
- import "./daemon-runtime-DpFImSwP.js";
125
+ import "./daemon-runtime-2mwX-jqj.js";
126
126
  import "./systemd-riq8uNJQ.js";
127
127
  import "./service-Cl74hx8J.js";
128
- import "./lifecycle-core-S8m0j4NY.js";
129
- import "./systemd-hints-Cn-fd1AF.js";
128
+ import "./lifecycle-core-D6LYXpFj.js";
129
+ import "./systemd-hints-BR6gChwm.js";
130
130
  import { t as parsePort$1 } from "./parse-port-Vm8F7Kus.js";
131
- import { n as addGatewayServiceCommands } from "./daemon-cli-D-Ceof_K.js";
131
+ import { n as addGatewayServiceCommands } from "./daemon-cli-DscwlsKW.js";
132
132
  import "./diagnostics-BAMlsVVX.js";
133
133
  import "./table-BTgkRafz.js";
134
134
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DzLerlJb.js";
135
135
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BJvwnR5z.js";
136
- import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CbxXbquQ.js";
136
+ import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CrITRV6w.js";
137
137
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BHTF5p0X.js";
138
- import { r as pickGatewaySelfPresence } from "./status-CCrlpUEA.js";
139
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-6atzBDlL.js";
138
+ import { r as pickGatewaySelfPresence } from "./status-CwXg8OO1.js";
139
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-f056vLGT.js";
140
140
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
141
141
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
142
- import { t as runOnboardingWizard } from "./onboarding-m_e9LePg.js";
143
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-CYVVBHwG.js";
144
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CpUJIlI7.js";
142
+ import { t as runOnboardingWizard } from "./onboarding-eVb5gvwo.js";
143
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-Cm6W01ne.js";
144
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-EKnCwrqK.js";
145
145
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Bv0M7ka7.js";
146
- import "./agents.config-qyBeLoW5.js";
146
+ import "./agents.config-2HlZJsR3.js";
147
147
  import "./dm-policy-shared-Bh3TbexU.js";
148
148
  import "./node-service-Cxz4e-Qd.js";
149
- import "./status.update-Cu6R3wwz.js";
149
+ import "./status.update-DtwCUTf-.js";
150
150
  import "./skills-install-D67isO1L.js";
151
- import "./update-runner-Dm7EwGFW.js";
151
+ import "./update-runner-BSQFv9b6.js";
152
152
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
153
153
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
154
154
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -1862,6 +1862,42 @@ function createChannelManager(opts) {
1862
1862
  };
1863
1863
  }
1864
1864
 
1865
+ //#endregion
1866
+ //#region src/agents/model-token-filter.ts
1867
+ /**
1868
+ * Strips model-specific control tokens from streamed text.
1869
+ *
1870
+ * Used both server-side (in the streaming pipeline) and by the Glass UI
1871
+ * (as a defense-in-depth fallback). The patterns here cover tokens known
1872
+ * to leak from Gemma 4 / vLLM; Claude output is left untouched.
1873
+ */
1874
+ const GEMMA_TOKEN_PATTERNS = [
1875
+ /<\|channel>\w*/g,
1876
+ /<channel\|>/g,
1877
+ /<start_of_turn>(?:model|user)?/g,
1878
+ /<end_of_turn>/g,
1879
+ /<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
1880
+ /^\s*<bos>\s*/gm
1881
+ ];
1882
+ const GEMMA_MODEL_HINTS = ["gemma", "redsand/"];
1883
+ function isGemmaModel(modelId) {
1884
+ const lower = modelId.toLowerCase();
1885
+ return GEMMA_MODEL_HINTS.some((hint) => lower.includes(hint));
1886
+ }
1887
+ /**
1888
+ * Strip known control tokens from text. Only applies to Gemma-family models;
1889
+ * other models pass through unchanged.
1890
+ */
1891
+ function stripModelTokens(text, modelId) {
1892
+ if (!text || !isGemmaModel(modelId)) return text;
1893
+ let result = text;
1894
+ for (const re of GEMMA_TOKEN_PATTERNS) {
1895
+ re.lastIndex = 0;
1896
+ result = result.replace(re, "");
1897
+ }
1898
+ return result;
1899
+ }
1900
+
1865
1901
  //#endregion
1866
1902
  //#region src/gateway/server-chat.ts
1867
1903
  function resolveHeartbeatAckMaxChars$1() {
@@ -1956,17 +1992,20 @@ function createChatRunState() {
1956
1992
  const registry = createChatRunRegistry();
1957
1993
  const buffers = /* @__PURE__ */ new Map();
1958
1994
  const deltaSentAt = /* @__PURE__ */ new Map();
1995
+ const pendingDeltaText = /* @__PURE__ */ new Map();
1959
1996
  const abortedRuns = /* @__PURE__ */ new Map();
1960
1997
  const clear = () => {
1961
1998
  registry.clear();
1962
1999
  buffers.clear();
1963
2000
  deltaSentAt.clear();
2001
+ pendingDeltaText.clear();
1964
2002
  abortedRuns.clear();
1965
2003
  };
1966
2004
  return {
1967
2005
  registry,
1968
2006
  buffers,
1969
2007
  deltaSentAt,
2008
+ pendingDeltaText,
1970
2009
  abortedRuns,
1971
2010
  clear
1972
2011
  };
@@ -2015,10 +2054,21 @@ function createToolEventRecipientRegistry() {
2015
2054
  function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSession, agentRunSeq, chatRunState, resolveSessionKeyForRun, clearAgentRunContext, toolEventRecipients }) {
2016
2055
  const emitChatDelta = (sessionKey, clientRunId, sourceRunId, seq, text) => {
2017
2056
  if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return;
2018
- chatRunState.buffers.set(clientRunId, text);
2057
+ let resolvedModelId;
2058
+ try {
2059
+ resolvedModelId = loadConfig().agents?.defaults?.model?.primary ?? void 0;
2060
+ } catch {}
2061
+ const cleanedText = resolvedModelId ? stripModelTokens(text, resolvedModelId) : text;
2062
+ chatRunState.buffers.set(clientRunId, cleanedText);
2019
2063
  if (shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) return;
2020
2064
  const now = Date.now();
2021
- if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) return;
2065
+ if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) {
2066
+ chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + cleanedText);
2067
+ return;
2068
+ }
2069
+ const buffered = chatRunState.pendingDeltaText.get(clientRunId) ?? "";
2070
+ chatRunState.pendingDeltaText.delete(clientRunId);
2071
+ const fullText = buffered + cleanedText;
2022
2072
  chatRunState.deltaSentAt.set(clientRunId, now);
2023
2073
  const payload = {
2024
2074
  runId: clientRunId,
@@ -2030,7 +2080,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2030
2080
  role: "assistant",
2031
2081
  content: [{
2032
2082
  type: "text",
2033
- text
2083
+ text: fullText
2034
2084
  }],
2035
2085
  timestamp: now
2036
2086
  }
@@ -2039,6 +2089,27 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2039
2089
  nodeSendToSession(sessionKey, "chat", payload);
2040
2090
  };
2041
2091
  const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
2092
+ const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2093
+ if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
2094
+ const flushPayload = {
2095
+ runId: clientRunId,
2096
+ sessionKey,
2097
+ seq,
2098
+ state: "delta",
2099
+ ...resolveHeartbeatContext(clientRunId, sourceRunId)?.isHeartbeat ? { isHeartbeat: true } : {},
2100
+ message: {
2101
+ role: "assistant",
2102
+ content: [{
2103
+ type: "text",
2104
+ text: remainingDelta
2105
+ }],
2106
+ timestamp: Date.now()
2107
+ }
2108
+ };
2109
+ broadcast("chat", flushPayload);
2110
+ nodeSendToSession(sessionKey, "chat", flushPayload);
2111
+ }
2112
+ chatRunState.pendingDeltaText.delete(clientRunId);
2042
2113
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2043
2114
  runId: clientRunId,
2044
2115
  sourceRunId,
@@ -2141,6 +2212,14 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2141
2212
  if (recipients && recipients.size > 0) broadcastToConnIds("agent", toolPayload, recipients);
2142
2213
  } else broadcast("agent", agentPayload);
2143
2214
  const lifecyclePhase = evt.stream === "lifecycle" && typeof evt.data?.phase === "string" ? evt.data.phase : null;
2215
+ if (lifecyclePhase === "start" && sessionKey && !isAborted) {
2216
+ if (!resolveHeartbeatContext(clientRunId, evt.runId)?.isHeartbeat) broadcast("chat", {
2217
+ runId: clientRunId,
2218
+ sessionKey,
2219
+ seq: evt.seq,
2220
+ state: "thinking"
2221
+ });
2222
+ }
2144
2223
  if (lifecyclePhase && sessionKey && sessionKey.includes(":subagent:")) {
2145
2224
  if (lifecyclePhase === "start") broadcast("subagent", {
2146
2225
  phase: "started",
@@ -6410,7 +6489,7 @@ function normalizeAgentPayload(payload) {
6410
6489
  async function startBrowserControlServerIfEnabled() {
6411
6490
  if (isTruthyEnvValue(process.env.SYMI_SKIP_BROWSER_CONTROL_SERVER)) return null;
6412
6491
  const override = process.env.SYMI_BROWSER_CONTROL_MODULE?.trim();
6413
- const mod = override ? await import(override) : await import("./control-service-DWy5T1wZ.js").then((n) => n.t);
6492
+ const mod = override ? await import(override) : await import("./control-service-Bz7rxLWq.js").then((n) => n.t);
6414
6493
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
6415
6494
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
6416
6495
  if (!start) return null;
@@ -6469,6 +6548,17 @@ function createGatewayReloadHandlers(params) {
6469
6548
  setCommandLaneConcurrency(CommandLane.Cron, nextConfig.cron?.maxConcurrentRuns ?? 1);
6470
6549
  setCommandLaneConcurrency(CommandLane.Main, resolveAgentMaxConcurrent(nextConfig));
6471
6550
  setCommandLaneConcurrency(CommandLane.Subagent, resolveSubagentMaxConcurrent(nextConfig));
6551
+ const newModelPrimary = nextConfig.agents?.defaults?.model?.primary;
6552
+ if (newModelPrimary && newModelPrimary !== state.lastModelPrimary) {
6553
+ const profile = resolveModelProfile(newModelPrimary, nextConfig.models?.profiles);
6554
+ params.broadcast("profile", {
6555
+ event: "profile",
6556
+ profile,
6557
+ modelId: newModelPrimary
6558
+ });
6559
+ params.logReload.info(`model profile broadcast: ${profile.label} for ${newModelPrimary}`);
6560
+ nextState.lastModelPrimary = newModelPrimary;
6561
+ }
6472
6562
  if (plan.hotReasons.length > 0) params.logReload.info(`config hot reload applied (${plan.hotReasons.join(", ")})`);
6473
6563
  else if (plan.noopPaths.length > 0) params.logReload.info(`config change applied (dynamic reads: ${plan.noopPaths.join(", ")})`);
6474
6564
  params.setState(nextState);
@@ -11577,7 +11667,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11577
11667
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
11578
11668
  if (!minimalTestGateway) (async () => {
11579
11669
  const { recoverPendingDeliveries } = await import("./delivery-queue-Df1uodAG.js").then((n) => n.n);
11580
- const { deliverOutboundPayloads } = await import("./deliver-CuDHWgo8.js").then((n) => n.n);
11670
+ const { deliverOutboundPayloads } = await import("./deliver-CceEhg3d.js").then((n) => n.n);
11581
11671
  await recoverPendingDeliveries({
11582
11672
  deliver: deliverOutboundPayloads,
11583
11673
  log: log.child("delivery-recovery"),
@@ -11650,7 +11740,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11650
11740
  });
11651
11741
  let glassUiBridgeCleanup = null;
11652
11742
  if (!minimalTestGateway) {
11653
- const { createGlassUiBridge } = await import("./glass-ui-ws-BxliIaQO.js");
11743
+ const { createGlassUiBridge } = await import("./glass-ui-ws-Z1IOT6Vc.js");
11654
11744
  glassUiBridgeCleanup = createGlassUiBridge({
11655
11745
  wss: glassUiWss,
11656
11746
  context: gatewayRequestContext,
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
2
- import { n as callGateway } from "./call-BOIceRVF.js";
2
+ import { n as callGateway } from "./call-CJaS1iRF.js";
3
3
  import { n as withProgress } from "./progress-jIePzvGA.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts
@@ -1,4 +1,4 @@
1
- import { n as callGateway } from "./call-C7OJzLEL.js";
1
+ import { n as callGateway } from "./call-BcE47FtD.js";
2
2
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
3
3
  import { n as withProgress } from "./progress-BAHiAaDW.js";
4
4
 
@@ -1,4 +1,4 @@
1
- import { A as normalizeProviderId } from "./model-auth-DK43VicI.js";
1
+ import { A as normalizeProviderId } from "./model-auth-CwOuTuXl.js";
2
2
  import { n as formatErrorMessage } from "./errors-BoQgnc8X.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
2
+ import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
4
+ import fsSync from "node:fs";
5
5
 
6
6
  //#region src/infra/json-file.ts
7
7
  function loadJsonFile(pathname) {
8
8
  try {
9
- if (!fs.existsSync(pathname)) return;
10
- const raw = fs.readFileSync(pathname, "utf8");
9
+ if (!fsSync.existsSync(pathname)) return;
10
+ const raw = fsSync.readFileSync(pathname, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return;
@@ -15,12 +15,12 @@ function loadJsonFile(pathname) {
15
15
  }
16
16
  function saveJsonFile(pathname, data) {
17
17
  const dir = path.dirname(pathname);
18
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, {
18
+ if (!fsSync.existsSync(dir)) fsSync.mkdirSync(dir, {
19
19
  recursive: true,
20
20
  mode: 448
21
21
  });
22
- fs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
- fs.chmodSync(pathname, 384);
22
+ fsSync.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
+ fsSync.chmodSync(pathname, 384);
24
24
  }
25
25
 
26
26
  //#endregion
@@ -8,34 +8,34 @@ import "./frontmatter-B8duUx_6.js";
8
8
  import "./skills-hAdgFdrv.js";
9
9
  import "./manifest-registry-Czr39pxG.js";
10
10
  import "./skills-status-DKXJ-tbi.js";
11
- import "./config-CJigbfdK.js";
11
+ import "./config-DHBLS1Hl.js";
12
12
  import "./client-DMBZpU6X.js";
13
- import "./call-C7OJzLEL.js";
13
+ import "./call-BcE47FtD.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-BSgPGZxs.js";
17
- import "./sessions-Cb4Hj78H.js";
16
+ import "./subagent-registry-Du9P0G2U.js";
17
+ import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
20
20
  import "./accounts-D9ITgITj.js";
21
21
  import "./bindings-DlWb_Kaq.js";
22
22
  import "./logging-CFvkxgcX.js";
23
- import "./send-DP6zL1r4.js";
24
- import "./send-Dv5K7btg.js";
25
- import "./with-timeout-vknUanNX.js";
26
- import "./deliver-PKvGnPCv.js";
23
+ import "./send-CukP8Vq4.js";
24
+ import "./send-DTTtmhjA.js";
25
+ import "./with-timeout-Di0nddLY.js";
26
+ import "./deliver-CXRSdUr1.js";
27
27
  import "./diagnostic-Ci8Xsc_Y.js";
28
28
  import "./diagnostic-session-state-CIjIGxEE.js";
29
29
  import "./accounts-D1eLj5t8.js";
30
- import "./send-DKvfyTNM.js";
30
+ import "./send-CR5fRDgW.js";
31
31
  import "./image-ops-CUkaZz2F.js";
32
- import "./pi-embedded-helpers-B2k8Fh9T.js";
33
- import "./sandbox-C9zB9HTn.js";
34
- import "./chrome-CCN6Uf1O.js";
32
+ import "./pi-embedded-helpers-DE9h5GAu.js";
33
+ import "./sandbox-BFzSUT19.js";
34
+ import "./chrome-Dq0bSDVx.js";
35
35
  import "./tailscale-CbbvYNVw.js";
36
36
  import "./auth-BfDMhFAj.js";
37
- import "./server-context-BogDcclm.js";
38
- import "./routes-br_73dY_.js";
37
+ import "./server-context-H24IFajW.js";
38
+ import "./routes-BFw2-yAN.js";
39
39
  import "./redact-B40lik2B.js";
40
40
  import "./errors-Ba_ROWsq.js";
41
41
  import "./fs-safe-CERgjtot.js";
@@ -49,9 +49,9 @@ import "./accounts-D51FXYdA.js";
49
49
  import "./paths-DNdWAq7b.js";
50
50
  import "./tool-images-CVLISeRT.js";
51
51
  import "./thinking-8sKPnzpp.js";
52
- import "./models-config--wR0kLo6.js";
52
+ import "./models-config-CCMpqFyr.js";
53
53
  import "./reply-prefix-BUN71nd5.js";
54
- import "./memory-cli-B1eBVFD2.js";
54
+ import "./memory-cli-C2SWDd8g.js";
55
55
  import "./manager-Vb2F7vQq.js";
56
56
  import "./gemini-auth-CgCIvUpe.js";
57
57
  import "./sqlite-CQGamAhm.js";
@@ -65,11 +65,11 @@ import "./ir-D-flMHhr.js";
65
65
  import "./render-e7fENCYH.js";
66
66
  import "./commands-CkrIpKCc.js";
67
67
  import "./commands-registry-D1K_inhv.js";
68
- import "./image-CAI2RIyk.js";
68
+ import "./image-CO4meYzg.js";
69
69
  import "./tool-display-CXwOC-qw.js";
70
- import "./runner-BPcjrrjx.js";
71
- import "./model-catalog-D2Q4fkGC.js";
72
- import "./session-utils-D5F7F--L.js";
70
+ import "./runner-BORIO-D3.js";
71
+ import "./model-catalog-CqCsARJX.js";
72
+ import "./session-utils-Bka9dR4m.js";
73
73
  import "./skill-commands-C8BcwE33.js";
74
74
  import "./workspace-dirs-CPNL2Acu.js";
75
75
  import "./pairing-store-vpO8vXVN.js";
@@ -79,24 +79,24 @@ import "./nodes-screen-DrIN-j3C.js";
79
79
  import "./session-cost-usage-C-v6E-Lz.js";
80
80
  import "./channel-activity-myOnmDZi.js";
81
81
  import "./tables-CXWwq-Md.js";
82
- import "./control-service-D2-SfYYP.js";
82
+ import "./control-service-DEVN6FRR.js";
83
83
  import "./stagger-CQar2eKe.js";
84
84
  import "./channel-selection-BzfEFyPn.js";
85
- import "./send-CkYljROn.js";
85
+ import "./send-CY8oqBFg.js";
86
86
  import "./outbound-attachment-BdnE7M6k.js";
87
87
  import "./delivery-queue-CzNZXd1M.js";
88
- import "./send-rirP23D6.js";
88
+ import "./send-DK_pm_7l.js";
89
89
  import "./resolve-route-CjnIuTqX.js";
90
90
  import "./proxy-DL3MD6-P.js";
91
91
  import "./links-DlWpl9Yv.js";
92
92
  import "./cli-utils-CCaEbxAz.js";
93
93
  import "./help-format-B0pWGnZs.js";
94
94
  import "./progress-BAHiAaDW.js";
95
- import "./replies-CVeSBasT.js";
96
- import "./onboard-helpers-Cammg0Xb.js";
95
+ import "./replies-DO80zq73.js";
96
+ import "./onboard-helpers-_pit1NZW.js";
97
97
  import "./prompt-style-DwCXob2h.js";
98
98
  import "./pairing-labels-D1HDboV2.js";
99
- import "./pi-tools.policy-CwzwRugl.js";
99
+ import "./pi-tools.policy-De00gPXt.js";
100
100
  import "./dangerous-tools-B8QrxStA.js";
101
101
  import "./catalog-DLQFKucJ.js";
102
102
  import "./install-safe-path-BK8js28D.js";
@@ -107,19 +107,19 @@ import "./systemd-DlMdyFDY.js";
107
107
  import "./service-Cm9j9WzQ.js";
108
108
  import "./diagnostics-CS1ov_hH.js";
109
109
  import "./table-D01d2GuY.js";
110
- import "./audit-F6tyY79q.js";
111
- import "./status-B7VIwi53.js";
112
- import "./health-BpVkd1NR.js";
110
+ import "./audit-Byo5jCLN.js";
111
+ import "./status-BBpD_1pG.js";
112
+ import "./health-D9eQW7fJ.js";
113
113
  import "./control-ui-assets-BseSWee1.js";
114
114
  import "./update-check-ZdimP1aU.js";
115
- import { n as handleGatewayRequest } from "./server-methods-1TVNg0k5.js";
116
- import "./push-apns-DtKC_-eP.js";
117
- import "./agents.config-D4WnZfkE.js";
115
+ import { n as handleGatewayRequest } from "./server-methods-CyFB3XQf.js";
116
+ import "./push-apns-C0wMP1XU.js";
117
+ import "./agents.config-CSucty2T.js";
118
118
  import "./dm-policy-shared-DJ-61hCT.js";
119
119
  import "./node-service-fcZExd22.js";
120
- import "./status.update-D8lzj5TK.js";
120
+ import "./status.update-DbmZz0Aq.js";
121
121
  import "./skills-install-1ZdwGTnh.js";
122
- import "./update-runner-ChoWv-od.js";
122
+ import "./update-runner-8Ac4bJ1w.js";
123
123
 
124
124
  //#region src/gateway/glass-ui-ws.ts
125
125
  const SESSION_KEY = "agent:main:main";