@symerian/symi 3.4.0 → 3.4.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 (320) hide show
  1. package/dist/{agent-D4GA9G6b.js → agent-BgGJEKk4.js} +11 -11
  2. package/dist/{agent-CEYVMKqC.js → agent-CDUpwXQX.js} +10 -10
  3. package/dist/{agents-Bh3R6D2o.js → agents-Dx_B11LV.js} +8 -8
  4. package/dist/{audit-DdRmmIE-.js → audit-BRI7EaSZ.js} +11 -11
  5. package/dist/{audit-BzlpUi7R.js → audit-FMN4BTKc.js} +11 -11
  6. package/dist/{auth-choice-EyD891pg.js → auth-choice-Ar8WHnyN.js} +6 -6
  7. package/dist/{auth-choice-DY9j2BCn.js → auth-choice-BJgf7XV6.js} +6 -6
  8. package/dist/{auth-choice-options-BBYiPleR.js → auth-choice-options-B5NLwpLs.js} +1 -1
  9. package/dist/{auth-choice-options-C5b4PCvw.js → auth-choice-options-EWUh0VM6.js} +1 -1
  10. package/dist/{auth-choice-prompt-D8GvjOBX.js → auth-choice-prompt-BkTmN4sy.js} +1 -1
  11. package/dist/{auth-choice-prompt-DBfm0y9l.js → auth-choice-prompt-CXcrToaB.js} +1 -1
  12. package/dist/{banner-DAGLXnYN.js → banner-C1DH2kVa.js} +1 -1
  13. package/dist/{browser-cli-YS3EqU78.js → browser-cli-BdYqssco.js} +4 -4
  14. package/dist/{browser-cli-BH_i0QVr.js → browser-cli-C6G2Ql9l.js} +4 -4
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +12 -12
  17. package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
  18. package/dist/bundled/session-memory/handler.js +11 -11
  19. package/dist/{call-uEbo7Orp.js → call-CbF18cyd.js} +1 -1
  20. package/dist/{call-BDC211Sd.js → call-Dy_T6f6d.js} +1 -1
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{catalog-D2QxJOn1.js → catalog-CJzUbDcX.js} +2 -2
  23. package/dist/{catalog-BEREnWaa.js → catalog-CSgSg5Gp.js} +2 -2
  24. package/dist/{channel-options-Dr3Iu_Yn.js → channel-options-BMZyRh5E.js} +2 -2
  25. package/dist/{channel-options-2P4SZQZY.js → channel-options-D2lzRM-e.js} +2 -2
  26. package/dist/{channels-cli-Bxq-od6o.js → channels-cli-CjQ8Rfpv.js} +35 -35
  27. package/dist/{channels-cli-BwAPAj2_.js → channels-cli-DFN6N0Vp.js} +34 -34
  28. package/dist/{chrome-Dw6r3c_L.js → chrome-BWQSyLHT.js} +1 -1
  29. package/dist/{chrome-DvbQQ7qH.js → chrome-BxWRyWC_.js} +1 -1
  30. package/dist/{chrome-Cwdu25B-.js → chrome-CbVmSQ7D.js} +1 -1
  31. package/dist/{chrome-DfmXP1Xa.js → chrome-D5UEEo4y.js} +1 -1
  32. package/dist/{cli-BCcQWANT.js → cli-BI2hMJ3x.js} +26 -26
  33. package/dist/{cli-6ogm9wuW.js → cli-CpmVizCT.js} +27 -27
  34. package/dist/{command-registry-BBgjrvGs.js → command-registry-CwnRHggJ.js} +11 -11
  35. package/dist/{completion-cli-B_lEJpoO.js → completion-cli-Cyueakwc.js} +1 -1
  36. package/dist/{completion-cli-DgR7QC7W.js → completion-cli-DwN2HXNn.js} +2 -2
  37. package/dist/{config-CVMQkipH.js → config-Cw7uo7Dh.js} +2 -2
  38. package/dist/{config-C5Ztbpa2.js → config-MU0QT0xu.js} +2 -2
  39. package/dist/{config-cli-AEQbHSmK.js → config-cli-C2Nwn4ID.js} +3 -3
  40. package/dist/{config-cli-Vl7Xxk-9.js → config-cli-zMpHOTSD.js} +3 -3
  41. package/dist/{config-guard-DiNrx0Cz.js → config-guard-B2j-KuUQ.js} +2 -2
  42. package/dist/{config-guard-IIOwDwXX.js → config-guard-VJr2yVm_.js} +6 -6
  43. package/dist/{config-validation-CmSRTlVT.js → config-validation-BkJh21Ko.js} +1 -1
  44. package/dist/{config-validation-sGgKL2lH.js → config-validation-MUkEKwbD.js} +1 -1
  45. package/dist/{configure-BbpI3Lrz.js → configure-2zKlA3cu.js} +15 -15
  46. package/dist/{configure-BLL4bVXO.js → configure-Bh0-A3hM.js} +15 -15
  47. package/dist/{control-service-Bew5Jq9S.js → control-service-BTydj9Kk.js} +4 -4
  48. package/dist/{control-service-wnEr9eCS.js → control-service-D1aZqS0Q.js} +4 -4
  49. package/dist/{cron-cli-PyIF_pI1.js → cron-cli-5souN2YC.js} +4 -4
  50. package/dist/{cron-cli-vlseqDwZ.js → cron-cli-Ch8MwxYs.js} +4 -4
  51. package/dist/{daemon-cli-BQJGtFBH.js → daemon-cli-AVJLjFd5.js} +6 -6
  52. package/dist/{daemon-cli-CYQDp0HS.js → daemon-cli-DbwmIQAj.js} +6 -6
  53. package/dist/daemon-cli.js +1 -2
  54. package/dist/{daemon-runtime-CCIiGZsG.js → daemon-runtime-CkBw3gG5.js} +1 -1
  55. package/dist/{daemon-runtime-DGcALfeE.js → daemon-runtime-DDwhgI7i.js} +1 -1
  56. package/dist/{deliver-DnF5-Jn0.js → deliver-BBoTRer2.js} +6 -6
  57. package/dist/{deliver-CKAEloz3.js → deliver-BX3IOm7k.js} +1 -1
  58. package/dist/{deliver-CHtzqhdE.js → deliver-Cl2fWxx4.js} +1 -1
  59. package/dist/{deliver-CtSoKpd9.js → deliver-VAsFQe0w.js} +6 -6
  60. package/dist/{deps-CkEuUibi.js → deps-BCywDAi0.js} +1 -1
  61. package/dist/{devices-cli-DHjCb6xx.js → devices-cli-BXaodSI7.js} +3 -3
  62. package/dist/{devices-cli-DuV6VLMa.js → devices-cli-ZiU2HGbP.js} +3 -3
  63. package/dist/{directory-cli-Cj3zj4zt.js → directory-cli-DJnKldBM.js} +2 -2
  64. package/dist/{directory-cli-B6BW3AGE.js → directory-cli-cK6CHm4W.js} +2 -2
  65. package/dist/{dns-cli-BpLjriTN.js → dns-cli-D6uc55C9.js} +2 -2
  66. package/dist/{dns-cli-Jd9gJc0T.js → dns-cli-LhrwMgGE.js} +2 -2
  67. package/dist/{docs-cli-D2hhvfad.js → docs-cli-CFklWCND.js} +3 -3
  68. package/dist/{docs-cli--T-77Ujn.js → docs-cli-DjQ3SvBq.js} +3 -3
  69. package/dist/{doctor-completion-o02Kanxp.js → doctor-completion-B9khF9iy.js} +1 -1
  70. package/dist/{doctor-completion-DaXTGUhV.js → doctor-completion-DLMAxB2b.js} +1 -1
  71. package/dist/{doctor-config-flow-QPIo58ud.js → doctor-config-flow-BayEnbIy.js} +3 -3
  72. package/dist/{doctor-config-flow-Bdc03rxx.js → doctor-config-flow-j1iK-0XV.js} +3 -3
  73. package/dist/entry.js +1 -1
  74. package/dist/{exec-approvals-cli-CJW8VyEa.js → exec-approvals-cli-BI9yAGI5.js} +5 -5
  75. package/dist/{exec-approvals-cli-DKRhv0JO.js → exec-approvals-cli-DqWFmApk.js} +5 -5
  76. package/dist/extensionAPI.js +9 -9
  77. package/dist/{frontmatter-B8duUx_6.js → frontmatter-B4levtVg.js} +1 -1
  78. package/dist/{frontmatter-B6IdJ7UK.js → frontmatter-CHu3sfCM.js} +1 -1
  79. package/dist/{frontmatter-BzAaXBfE.js → frontmatter-CwO0i5Q7.js} +1 -1
  80. package/dist/{gateway-cli-CKbm9ikc.js → gateway-cli-05LQa0LN.js} +9630 -284
  81. package/dist/{gateway-cli-uZu6GsIz.js → gateway-cli-CUiAKfCT.js} +9629 -283
  82. package/dist/{gateway-rpc-BnGjn5ao.js → gateway-rpc-B5_ZCiHW.js} +1 -1
  83. package/dist/{gateway-rpc-BuXF5p-F.js → gateway-rpc-RZAJMB1i.js} +1 -1
  84. package/dist/{gmail-setup-utils-DjIM4-F9.js → gmail-setup-utils-C5QXoiTl.js} +1 -1
  85. package/dist/{gmail-setup-utils-D5G00y8h.js → gmail-setup-utils-DO0-mXYp.js} +1 -1
  86. package/dist/{health-DrjeJzLE.js → health-D2CsIdFz.js} +3 -3
  87. package/dist/{health-D41l07BM.js → health-DnOYGIFp.js} +3 -3
  88. package/dist/{hooks-cli-BWp12-sQ.js → hooks-cli-BERKc4aw.js} +30 -30
  89. package/dist/{hooks-cli-CqiK6DE3.js → hooks-cli-C6XdXNdl.js} +31 -31
  90. package/dist/{hooks-status-C-tHI7ZM.js → hooks-status-BQAuzmwT.js} +2 -2
  91. package/dist/{hooks-status-DLHEahg_.js → hooks-status-DGjgoBZt.js} +2 -2
  92. package/dist/index.js +33 -33
  93. package/dist/{installs-CLp95gcX.js → installs-DhSLZRT7.js} +2 -2
  94. package/dist/{installs-D0_bsQwa.js → installs-cPraL4Dg.js} +2 -2
  95. package/dist/legacy-names-BFZfXujv.js +6 -0
  96. package/dist/{legacy-names-C0hZiM-7.js → legacy-names-Catogrri.js} +2 -4
  97. package/dist/{lifecycle-core-BhmX7dfP.js → lifecycle-core-B9_prcP5.js} +2 -2
  98. package/dist/{lifecycle-core-flVPkttM.js → lifecycle-core-Dark4HHr.js} +2 -2
  99. package/dist/llm-slug-generator.js +11 -11
  100. package/dist/{logs-cli-DLktVEgU.js → logs-cli-BuaYoENt.js} +4 -4
  101. package/dist/{logs-cli-BgLHN6qm.js → logs-cli-Dg7J424l.js} +4 -4
  102. package/dist/{manager-BU8KmNG0.js → manager-1b5V7lDX.js} +1 -1
  103. package/dist/{manager-DJHy2EAm.js → manager-BQJivzx9.js} +1 -1
  104. package/dist/{manager-CF2y6wbp.js → manager-GRHfrG3p.js} +1 -1
  105. package/dist/{manager-Uwh87iKi.js → manager-tYTYy-pH.js} +1 -1
  106. package/dist/{manifest-registry-DsTUFMvZ.js → manifest-registry-C0nJ3Ja3.js} +1 -1
  107. package/dist/{manifest-registry-BV_2TbGz.js → manifest-registry-CAWGTwb5.js} +2 -4
  108. package/dist/{manifest-registry-BshGdYwm.js → manifest-registry-DJcKcUQ9.js} +1 -1
  109. package/dist/{manifest-registry-D7Qup2Vq.js → manifest-registry-D_LsBSyt.js} +1 -1
  110. package/dist/{memory-cQSSricw.js → memory-CjpS9o50.js} +4 -4
  111. package/dist/{memory-gSw5eshw.js → memory-ZiPonhHz.js} +4 -4
  112. package/dist/{memory-cli-DIchyZJ2.js → memory-cli-B5TU8zxX.js} +3 -3
  113. package/dist/{memory-cli-DXS73nCX.js → memory-cli-CbV91o_X.js} +3 -3
  114. package/dist/{model-catalog-BKCEeOYV.js → model-catalog-Ba4R_zVe.js} +2 -2
  115. package/dist/{model-catalog-DiG_T-Hd.js → model-catalog-De1c8o1y.js} +2 -2
  116. package/dist/{model-picker-Ba0aPjVG.js → model-picker-CjVFmtQf.js} +2 -2
  117. package/dist/{model-picker-Cj3P3dRc.js → model-picker-DAOOfQUH.js} +2 -2
  118. package/dist/{models-CcT56XMM.js → models-EthIDORJ.js} +13 -13
  119. package/dist/{models-cli-BGBn_XQb.js → models-cli-BzP7r0Pr.js} +34 -34
  120. package/dist/{models-cli-C7vX8wrK.js → models-cli-DSW-aLCj.js} +33 -33
  121. package/dist/{models-config-of-BhU9a.js → models-config-C-VjjDXg.js} +1 -1
  122. package/dist/{models-config-T55qUOQH.js → models-config-C2OLw8vc.js} +1 -1
  123. package/dist/{node-cli-P6Bd4azz.js → node-cli-SMqarSas.js} +12 -12
  124. package/dist/{node-cli-6nSZg2Ag.js → node-cli-dAjmpFFQ.js} +12 -12
  125. package/dist/{nodes-cli-CxlfnpiJ.js → nodes-cli-Bavn0Wq1.js} +4 -4
  126. package/dist/{nodes-cli-CNbL0FQP.js → nodes-cli-BpG8jU6q.js} +4 -4
  127. package/dist/{onboard-C5Ivk_7_.js → onboard-DbjF9LIj.js} +13 -13
  128. package/dist/{onboard-CG9scrQx.js → onboard-Yx5pWXot.js} +13 -13
  129. package/dist/{onboard-channels-Br6c8ho-.js → onboard-channels-D1ThqeIv.js} +4 -4
  130. package/dist/{onboard-channels-B6_L4dD7.js → onboard-channels-LkgOp2vs.js} +4 -4
  131. package/dist/{onboard-custom-C--9q1aw.js → onboard-custom-BD_6SIA8.js} +2 -2
  132. package/dist/{onboard-custom-CdIFCex3.js → onboard-custom-Dmv0zr-6.js} +2 -2
  133. package/dist/{onboard-helpers-DU7-6FKZ.js → onboard-helpers-C5YryU1N.js} +2 -2
  134. package/dist/{onboard-helpers-KK8MYq1e.js → onboard-helpers-DpIB1xVU.js} +2 -2
  135. package/dist/{onboard-hooks-CP54Px40.js → onboard-hooks-DDANBk-9.js} +3 -3
  136. package/dist/{onboard-hooks-Dn62HF2k.js → onboard-hooks-DotvaUqG.js} +3 -3
  137. package/dist/{onboard-remote-BNgEcJhQ.js → onboard-remote-DR9mcFjZ.js} +1 -1
  138. package/dist/{onboard-remote-BCG6Pa34.js → onboard-remote-MlK-zjua.js} +1 -1
  139. package/dist/{onboard-skills-Dl9x6Ewy.js → onboard-skills-5rA5bRSG.js} +3 -3
  140. package/dist/{onboard-skills-BMZQWj72.js → onboard-skills-BFebcdsU.js} +3 -3
  141. package/dist/{onboarding-BDfOQl6b.js → onboarding-B4y_mt01.js} +15 -15
  142. package/dist/{onboarding-CsBNx5v8.js → onboarding-BIOnPknC.js} +15 -15
  143. package/dist/{onboarding.finalize-CLPOjrbG.js → onboarding.finalize-CdYyVsOB.js} +20 -20
  144. package/dist/{onboarding.finalize-Dnw20wa-.js → onboarding.finalize-DvuthtW0.js} +21 -21
  145. package/dist/{onboarding.gateway-config-D-SDWyuX.js → onboarding.gateway-config-BzM2v2U5.js} +6 -6
  146. package/dist/{onboarding.gateway-config-BRSy-1P9.js → onboarding.gateway-config-DC9fM10t.js} +6 -6
  147. package/dist/{openai-model-default-BVPmAuXK.js → openai-model-default-CSl0PZzK.js} +1 -1
  148. package/dist/{openai-model-default-CDDFpxUr.js → openai-model-default-DYlS_J2T.js} +1 -1
  149. package/dist/{outbound-send-deps-EMcNAOK3.js → outbound-send-deps-CBRh4LsL.js} +1 -1
  150. package/dist/{pairing-cli-BlH0ZFgu.js → pairing-cli-D1zyMuRV.js} +2 -2
  151. package/dist/{pairing-cli-B3N7sSmL.js → pairing-cli-MwIIeBee.js} +2 -2
  152. package/dist/{pi-embedded-DE2UILhi.js → pi-embedded-BvMMjrvj.js} +17 -21
  153. package/dist/{pi-embedded-helpers-Ak7hKJEV.js → pi-embedded-helpers-BbBfO9m_.js} +1 -1
  154. package/dist/{pi-embedded-helpers-B-A6e4jw.js → pi-embedded-helpers-D4cxQiPr.js} +1 -1
  155. package/dist/{pi-tools.policy-BUY9pOhW.js → pi-tools.policy--USPnaLr.js} +2 -2
  156. package/dist/{pi-tools.policy-B3nP1-Zp.js → pi-tools.policy-NmG0EGEY.js} +2 -2
  157. package/dist/{plugin-auto-enable-CNDA103e.js → plugin-auto-enable-D2TNEv3x.js} +1 -1
  158. package/dist/{plugin-auto-enable-CF_vB-_e.js → plugin-auto-enable-DSliW8o4.js} +1 -1
  159. package/dist/{plugin-registry-C02Ztbi2.js → plugin-registry-5aIoUu-O.js} +2 -2
  160. package/dist/{plugin-registry-D2YgQFB0.js → plugin-registry-B0d7w7Tq.js} +2 -2
  161. package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +0 -4
  162. package/dist/plugin-sdk/compat/legacy-names.d.ts +0 -5
  163. package/dist/plugin-sdk/config/types.messages.d.ts +1 -8
  164. package/dist/plugin-sdk/config/types.symi.d.ts +1 -2
  165. package/dist/plugin-sdk/gateway/outbound-filter.d.ts +1 -7
  166. package/dist/plugin-sdk/index.js +7 -8
  167. package/dist/{plugins-cli-vVBp7ZxP.js → plugins-cli-DMCWSACj.js} +31 -31
  168. package/dist/{plugins-cli-Ba3CBKt4.js → plugins-cli-DNMBwSsv.js} +30 -30
  169. package/dist/{program-CUvzxNJ4.js → program-DKmohZYs.js} +36 -36
  170. package/dist/{program-context-4FxfWCCw.js → program-context-BHCqXp7K.js} +38 -38
  171. package/dist/{prompt-select-styled-DTaKuS6l.js → prompt-select-styled-CJ7vyifz.js} +20 -21
  172. package/dist/{prompt-select-styled-vwMhoP-U.js → prompt-select-styled-DIpkZ3Py.js} +20 -21
  173. package/dist/{provider-auth-helpers-Bu5Q-WC_.js → provider-auth-helpers-MMYRbW_U.js} +4 -4
  174. package/dist/{provider-auth-helpers-WUtMTKoJ.js → provider-auth-helpers-rT0mj3Rg.js} +4 -4
  175. package/dist/{push-apns-D6zky4hI.js → push-apns-KHQGzTcZ.js} +1 -1
  176. package/dist/{push-apns-CnfKExbf.js → push-apns-qCbh6Vhl.js} +1 -1
  177. package/dist/{pw-ai-DJ_8OOoJ.js → pw-ai-CNOE7SUx.js} +3 -3
  178. package/dist/{pw-ai-BpKRTux4.js → pw-ai-CyCnG_Kj.js} +3 -3
  179. package/dist/{pw-ai-CNPSgxuq.js → pw-ai-DuPDo_Ia.js} +3 -3
  180. package/dist/{pw-ai-DQ1ckkue.js → pw-ai-HU-K9Kp6.js} +3 -3
  181. package/dist/{qr-cli-DLAxaM_N.js → qr-cli-Bv4zF-WM.js} +2 -2
  182. package/dist/{qr-cli-BjgtEKM0.js → qr-cli-Cc3gulVb.js} +2 -2
  183. package/dist/{redact-identifier-DvxxnBnB.js → redact-identifier-QYENCXvy.js} +1 -1
  184. package/dist/{register.agent-B5s0F98B.js → register.agent-BWcxonR9.js} +45 -45
  185. package/dist/{register.agent-BtVDiH_r.js → register.agent-D3QRjMQA.js} +44 -44
  186. package/dist/{register.configure-CD7DAbZQ.js → register.configure-BlCCtcgW.js} +49 -49
  187. package/dist/{register.configure-NZcXrNuS.js → register.configure-D0T0kOp7.js} +50 -50
  188. package/dist/{register.maintenance-DIkEIl8R.js → register.maintenance-BH0tQsKC.js} +45 -45
  189. package/dist/{register.maintenance-jTTn3oMK.js → register.maintenance-C-U8Vjdk.js} +43 -43
  190. package/dist/{register.message-DEa450JY.js → register.message-BJEu7jXo.js} +29 -29
  191. package/dist/{register.message-Cm77gd0W.js → register.message-C3dCPjVc.js} +29 -29
  192. package/dist/{register.onboard-5TEaQi6x.js → register.onboard-B_WCIG9n.js} +19 -19
  193. package/dist/{register.onboard-DAMmTKhy.js → register.onboard-CcvZY9rS.js} +19 -19
  194. package/dist/{register.setup-DCwJ-ZlR.js → register.setup-CLFM22gp.js} +18 -18
  195. package/dist/{register.setup-B7PRYzpb.js → register.setup-CXojM7PS.js} +18 -18
  196. package/dist/{register.status-health-sessions-BXjn8VnY.js → register.status-health-sessions-4dxLj6hJ.js} +27 -27
  197. package/dist/{register.status-health-sessions-h8DNZ6hd.js → register.status-health-sessions-DAraoWwd.js} +25 -25
  198. package/dist/{register.subclis-BDIT6N_V.js → register.subclis-4IO5JLGL.js} +28 -28
  199. package/dist/{replies-R4bX9dTZ.js → replies-CH1VlYZQ.js} +1 -1
  200. package/dist/{replies-BnGR-qet.js → replies-CjSfYK97.js} +1 -1
  201. package/dist/{replies-BE5ZprKO.js → replies-DIWartyA.js} +1 -1
  202. package/dist/{replies--JRoxSNQ.js → replies-t5bPemnD.js} +1 -1
  203. package/dist/{routes-Czff-g7s.js → routes-CTOYLhQ1.js} +3 -3
  204. package/dist/{routes-BFcVAVwZ.js → routes-CWYyvbxi.js} +3 -3
  205. package/dist/{rpc-Dv5VElqW.js → rpc-BLUOZg0H.js} +1 -1
  206. package/dist/{rpc-DyGMGnDM.js → rpc-DLfjbTSu.js} +1 -1
  207. package/dist/{run-main-DTZupTas.js → run-main-dgWHEHSR.js} +47 -47
  208. package/dist/{sandbox-Yk0sGNnf.js → sandbox-B6P9-J8g.js} +6 -6
  209. package/dist/{sandbox-W71753dA.js → sandbox-CpZmnHRC.js} +6 -6
  210. package/dist/{sandbox-cli-XK1CujoA.js → sandbox-cli-DtbM64tR.js} +9 -9
  211. package/dist/{sandbox-cli-xejs3DAe.js → sandbox-cli-bOFig9Jd.js} +9 -9
  212. package/dist/{scan-paths-ppKrtZ9U.js → scan-paths-BVaXDn8b.js} +2 -4
  213. package/dist/{security-cli-D72O3Drj.js → security-cli-C7LBaB0e.js} +14 -14
  214. package/dist/{security-cli-C0OL3r1u.js → security-cli-CnNnxSRu.js} +14 -14
  215. package/dist/{send-BIeRhWqk.js → send-6IYv-yRp.js} +1 -1
  216. package/dist/{send-Bw1MYrkS.js → send-C3ZXgOXw.js} +1 -1
  217. package/dist/{send-D9mx56JE.js → send-zbkImdk9.js} +1 -1
  218. package/dist/{server-context-D1WDO10m.js → server-context-Dytgl6ZD.js} +5 -5
  219. package/dist/{server-context-BxbXmmz7.js → server-context-Vd9sEFb9.js} +5 -5
  220. package/dist/{server-node-events-CV6-B9Hg.js → server-node-events-BH4-UlAH.js} +30 -30
  221. package/dist/{server-node-events-x9VKUipR.js → server-node-events-CY5_aNdi.js} +30 -30
  222. package/dist/{update-runner-CAdnmZZ6.js → session-dirs-6atzU47U.js} +16 -2
  223. package/dist/{update-runner-BtZbVAdv.js → session-dirs-CFEdAT4Z.js} +16 -2
  224. package/dist/{session-utils-CZAshAsv.js → session-utils-CJfEkQQQ.js} +3 -3
  225. package/dist/{session-utils-BgILIwNf.js → session-utils-NOQiGgMD.js} +3 -3
  226. package/dist/{sessions-C_xvI21O.js → sessions-B7Of0Rqm.js} +1 -1
  227. package/dist/{sessions-TVtiVSw4.js → sessions-BHrlpR92.js} +1 -1
  228. package/dist/{sessions-DKoFrAAL.js → sessions-Chjdz1Gx.js} +3 -3
  229. package/dist/{shared-iK9UaK0Y.js → shared-B-64oefu.js} +1 -1
  230. package/dist/{shared-CPD46OzN.js → shared-BmS-LOw8.js} +1 -1
  231. package/dist/{skill-commands-CWvBRsds.js → skill-commands-5QB5E8bv.js} +2 -2
  232. package/dist/{skill-commands-DlbnDTRO.js → skill-commands-C5n7FeDJ.js} +1 -1
  233. package/dist/{skill-commands-Dy8IDORU.js → skill-commands-CcCCVblU.js} +2 -2
  234. package/dist/{skill-commands-5-5JJtVf.js → skill-commands-sTJFg5lz.js} +1 -1
  235. package/dist/{skill-scanner-DkITukAS.js → skill-scanner-CuoStu03.js} +1 -1
  236. package/dist/{skill-scanner-qMQf6-FN.js → skill-scanner-YF2jR4RY.js} +1 -1
  237. package/dist/{skills-B3e5S0iU.js → skills-BP6p7GnN.js} +2 -2
  238. package/dist/{skills-DL8DjveU.js → skills-Bmjf5nFv.js} +2 -2
  239. package/dist/{skills-CSykGHmk.js → skills-Bn0f9KTL.js} +1 -1
  240. package/dist/{skills-D0hw3721.js → skills-DaU_5XvP.js} +2 -2
  241. package/dist/{skills-cli-BZvDZu8v.js → skills-cli-CGPerRcN.js} +6 -6
  242. package/dist/{skills-cli-BeJZwWJF.js → skills-cli-DbhEEC78.js} +6 -6
  243. package/dist/{skills-install-C9uT4MR2.js → skills-install-DLUMpiCC.js} +3 -3
  244. package/dist/{skills-install-BMhIk6vI.js → skills-install-Q5hgZITy.js} +3 -3
  245. package/dist/{skills-remote-Vz1dbWNB.js → skills-remote-CqwR3Zvp.js} +1 -1
  246. package/dist/{skills-remote-Dv9T079m.js → skills-remote-DHfuS68n.js} +1 -1
  247. package/dist/{skills-status-CaEDEfYZ.js → skills-status-01KNlWUS.js} +2 -2
  248. package/dist/{skills-status-Dx3Lf5iU.js → skills-status-BNDqwHkP.js} +2 -2
  249. package/dist/{ssrf-B09I40bf.js → ssrf-BzPY2FrA.js} +1 -1
  250. package/dist/{ssrf-BEXdgoWo.js → ssrf-CJor4ewC.js} +1 -1
  251. package/dist/{status-JhT3liK_.js → status-C6HwMPLx.js} +2 -2
  252. package/dist/{status-DMNL9Ga5.js → status-CJ4x2gHu.js} +13 -13
  253. package/dist/{status-BZHeQGF_.js → status-CeaJlVQK.js} +2 -2
  254. package/dist/{status-DRtu03r8.js → status-dHYcVtbb.js} +14 -14
  255. package/dist/{status.update-D3Q9PDtb.js → status.update-iWEAq6bt.js} +1 -1
  256. package/dist/{status.update-BOb9rNG9.js → status.update-lna4Lub4.js} +1 -1
  257. package/dist/{subagent-registry-B9IxZkG5.js → subagent-registry-BbQL79Gk.js} +34 -38
  258. package/dist/{synthesis-DZT5Fkc5.js → synthesis-DcGTICel.js} +9 -9
  259. package/dist/{synthesis-BPwzKPQT.js → synthesis-DiPl8Usv.js} +27 -27
  260. package/dist/{synthesis-B8Nvwbp_.js → synthesis-DvSl5w4K.js} +26 -26
  261. package/dist/{synthesis--06mqRPn.js → synthesis-Q30uczDF.js} +11 -11
  262. package/dist/{system-cli-B1eB5FoT.js → system-cli-C9uTFA4c.js} +4 -4
  263. package/dist/{system-cli-D74xDNa8.js → system-cli-DKMfh71A.js} +4 -4
  264. package/dist/{systemd-hints-DDaidHXa.js → systemd-hints-DQKA3tTS.js} +1 -1
  265. package/dist/{systemd-hints-B0aT2ugu.js → systemd-hints-RoqMZFFM.js} +1 -1
  266. package/dist/{tui-C_cCiruf.js → tui-C_yv1hvy.js} +4 -4
  267. package/dist/{tui-CQAhT9c1.js → tui-DeVQrlt9.js} +4 -4
  268. package/dist/{tui-cli-CwbuVeHU.js → tui-cli-3EAQXwu7.js} +12 -12
  269. package/dist/{tui-cli-71uMNJfy.js → tui-cli-D7wYLESM.js} +12 -12
  270. package/dist/{unified-runner-quh_mYPi.js → unified-runner-CSn91cbr.js} +19 -23
  271. package/dist/{unified-runner-CMsoxWFP.js → unified-runner-CjFXehHb.js} +33 -37
  272. package/dist/{update-BvDXKE6K.js → update-CE8nDV7s.js} +2 -2
  273. package/dist/{update-JtKX2Yl3.js → update-CbkItCeC.js} +2 -2
  274. package/dist/{update-cli-dSJwPmKQ.js → update-cli-BN4_mr6c.js} +51 -51
  275. package/dist/{update-cli-Bg728CPt.js → update-cli-CUGTzKWo.js} +49 -49
  276. package/dist/{webhooks-cli-C4_gK-VO.js → webhooks-cli-B2_nrbvn.js} +5 -5
  277. package/dist/{webhooks-cli-CdWRzSWK.js → webhooks-cli-CoIL1D4T.js} +5 -5
  278. package/dist/{with-timeout-Uhem6WU4.js → with-timeout-BhDKgIeU.js} +1 -1
  279. package/dist/{with-timeout-C_GTWqlF.js → with-timeout-COajnkmj.js} +1 -1
  280. package/dist/{workspace-DHzBY6qe.js → workspace-2m2BLIbx.js} +2 -2
  281. package/dist/{workspace-B_xyjOdv.js → workspace-CxAs2tsz.js} +2 -2
  282. package/package.json +1 -1
  283. package/dist/glass-ui-ws-CagpHsSJ.js +0 -341
  284. package/dist/glass-ui-ws-DLs3LNTG.js +0 -346
  285. package/dist/legacy-names-sghWmXe3.js +0 -8
  286. package/dist/server-methods-CMznpteR.js +0 -9432
  287. package/dist/server-methods-SRD683d-.js +0 -9434
  288. package/dist/session-dirs-Chh7bBGo.js +0 -18
  289. package/dist/session-dirs-Sl_x6tjD.js +0 -18
  290. /package/dist/{agents.config-D1nFwU81.js → agents.config-CuasVG0i.js} +0 -0
  291. /package/dist/{agents.config-D7cHU-OU.js → agents.config-gkq5o5Hy.js} +0 -0
  292. /package/dist/{auth-choice-legacy-CsjluQCN.js → auth-choice-legacy-DlTku0W1.js} +0 -0
  293. /package/dist/{auth-choice-legacy-D9WcUI_J.js → auth-choice-legacy-y8ZXjhDq.js} +0 -0
  294. /package/dist/{auth-token-Brb1Askz.js → auth-token-2yjfGFTo.js} +0 -0
  295. /package/dist/{auth-token-SebYuqfR.js → auth-token-C8wKZLJM.js} +0 -0
  296. /package/dist/{consolidate-D1GUJ5qq.js → consolidate-CTKMVS1l.js} +0 -0
  297. /package/dist/{consolidate-7Usm-b2g.js → consolidate-DhJ5sq5p.js} +0 -0
  298. /package/dist/{dm-policy-shared-CSF4Tw_F.js → dm-policy-shared-BcYwq7H9.js} +0 -0
  299. /package/dist/{dm-policy-shared-5HLej1br.js → dm-policy-shared-BzGFEhLb.js} +0 -0
  300. /package/dist/{format-BGzoTHhD.js → format-CUJQOEUj.js} +0 -0
  301. /package/dist/{format-C-0EAOjI.js → format-Cj8gNX2r.js} +0 -0
  302. /package/dist/{health-format-39e76m9p.js → health-format-BQdYy0nL.js} +0 -0
  303. /package/dist/{health-format-DaP03FBk.js → health-format-OIqaDZ2V.js} +0 -0
  304. /package/dist/{ipv4-CfVqgiTN.js → ipv4-CFw4fYIH.js} +0 -0
  305. /package/dist/{ipv4-DK4xoUQ-.js → ipv4-DBwTCOBu.js} +0 -0
  306. /package/dist/{logging-B96FQvnn.js → logging-BA2NbxMy.js} +0 -0
  307. /package/dist/{logging-BeA4q4J_.js → logging-Dt9kBzoO.js} +0 -0
  308. /package/dist/{model-param-b-B34yvxBN.js → model-param-b-CErLzOT8.js} +0 -0
  309. /package/dist/{model-param-b-CmgmcGoJ.js → model-param-b-DnsFCAGo.js} +0 -0
  310. /package/dist/{node-service-DDDCEDdv.js → node-service-B7zf4WFE.js} +0 -0
  311. /package/dist/{node-service-tPO_yUk7.js → node-service-DLCN3Pek.js} +0 -0
  312. /package/dist/{onboard-config-Barp7MT9.js → onboard-config-CIBKQuYV.js} +0 -0
  313. /package/dist/{onboard-config-DQkZqcyq.js → onboard-config-D6L72_zg.js} +0 -0
  314. /package/dist/{outbound-send-deps-BpziI1pC.js → outbound-send-deps-pzO0D6kV.js} +0 -0
  315. /package/dist/{ports-BAzQoIw0.js → ports-B3NnaSHu.js} +0 -0
  316. /package/dist/{qmd-manager-358OTDns.js → qmd-manager-CAQYVZT8.js} +0 -0
  317. /package/dist/{qmd-manager--kGuC39q.js → qmd-manager-CX0jtKS5.js} +0 -0
  318. /package/dist/{system-run-command-QikSIqYG.js → system-run-command-XG1_P_la.js} +0 -0
  319. /package/dist/{systemd-linger-PqG8iGCt.js → systemd-linger-CWJhsBBY.js} +0 -0
  320. /package/dist/{systemd-linger-BM4qvprK.js → systemd-linger-CoyAJEZx.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-BU8jVQFM.js";
2
- import { a as isPathInsideWithRealpath, n as MANIFEST_KEY } from "./legacy-names-C0hZiM-7.js";
3
- import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-B6IdJ7UK.js";
2
+ import { a as isPathInsideWithRealpath, n as MANIFEST_KEY } from "./legacy-names-Catogrri.js";
3
+ import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-CHu3sfCM.js";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.4.0",
3
+ "version": "3.4.1",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",
@@ -1,341 +0,0 @@
1
- import "./auth-profiles-Bs5D0GUv.js";
2
- import "./exec-B6oWJSJW.js";
3
- import "./agent-scope-B6p555mP.js";
4
- import "./github-copilot-token-a6a53zx_.js";
5
- import "./pi-auth-json-CUZ7IgY7.js";
6
- import "./model-DgN15006.js";
7
- import "./pi-model-discovery-Do3xMEtM.js";
8
- import "./frontmatter-B8duUx_6.js";
9
- import "./skills-B3e5S0iU.js";
10
- import "./manifest-registry-BshGdYwm.js";
11
- import "./skills-status-CaEDEfYZ.js";
12
- import { i as loadConfig } from "./config-CVMQkipH.js";
13
- import "./client-CAz5aPpp.js";
14
- import "./call-BDC211Sd.js";
15
- import "./message-channel-CNPAq1Tl.js";
16
- import "./pairing-token-Bnr7QjVF.js";
17
- import { M as resolveModelProfile } from "./subagent-registry-B9IxZkG5.js";
18
- import "./sessions-TVtiVSw4.js";
19
- import "./plugins-Bq-Msc8Z.js";
20
- import "./send-Bw1MYrkS.js";
21
- import "./with-timeout-Uhem6WU4.js";
22
- import "./deliver-CHtzqhdE.js";
23
- import "./diagnostic-BevbDWGa.js";
24
- import "./diagnostic-session-state-Zw87xFym.js";
25
- import "./pi-embedded-helpers-Ak7hKJEV.js";
26
- import "./sandbox-Yk0sGNnf.js";
27
- import "./chrome-DvbQQ7qH.js";
28
- import "./tailscale-BsA0YClX.js";
29
- import "./auth-DIdzV4_r.js";
30
- import "./server-context-BxbXmmz7.js";
31
- import "./routes-BFcVAVwZ.js";
32
- import "./redact-KvsGzUFH.js";
33
- import "./errors-TVUWuVoP.js";
34
- import "./fs-safe-DzJT_iD4.js";
35
- import "./paths-CsQkeUQ3.js";
36
- import "./ssrf-jKt8PSDl.js";
37
- import "./image-ops-CZPSKxgE.js";
38
- import "./ports-Cv4kt1bT.js";
39
- import "./trash-CF1G530Y.js";
40
- import "./dock-Cq5LxV1L.js";
41
- import "./paths-CNexk5_o.js";
42
- import "./thinking-BDh5LPh-.js";
43
- import "./models-config-T55qUOQH.js";
44
- import "./reply-prefix-B7pYEiW_.js";
45
- import "./memory-cQSSricw.js";
46
- import "./manager-Uwh87iKi.js";
47
- import "./sqlite-l3CZYU6t.js";
48
- import "./chunk-BySyfaEr.js";
49
- import "./markdown-tables-CCOfinlW.js";
50
- import "./fetch-guard--i1VgM2O.js";
51
- import "./local-roots-Bk3321gv.js";
52
- import "./commands-CHkx0oTl.js";
53
- import "./commands-registry-Bccp0eH5.js";
54
- import "./tool-display-wSdT0Ynz.js";
55
- import "./tokens-K3kGchJA.js";
56
- import "./skills-remote-Dv9T079m.js";
57
- import "./redact-identifier-DvxxnBnB.js";
58
- import "./workspace-dirs-23IYtZj2.js";
59
- import "./model-catalog-BKCEeOYV.js";
60
- import "./session-utils-CZAshAsv.js";
61
- import "./skill-commands-Dy8IDORU.js";
62
- import "./pairing-store-CtBnCGHZ.js";
63
- import "./exec-approvals-B8n8es8o.js";
64
- import "./nodes-screen-Bkq2kswx.js";
65
- import "./session-cost-usage-Cj3vd7lZ.js";
66
- import "./control-service-Bew5Jq9S.js";
67
- import "./stagger-C2kEx8j9.js";
68
- import "./channel-selection-p35DYzAL.js";
69
- import "./delivery-queue-nheCYaMd.js";
70
- import "./bindings-D3NmzRPM.js";
71
- import "./resolve-route-DNKcB7Q9.js";
72
- import "./links-Db3Rw0Tg.js";
73
- import "./cli-utils-BqMwAlgf.js";
74
- import "./help-format-DbbIlOje.js";
75
- import "./progress-C4ck6JXh.js";
76
- import "./memory-cli-DXS73nCX.js";
77
- import "./logging-D0L9TWhE.js";
78
- import "./replies-BE5ZprKO.js";
79
- import "./pi-tools.policy-BUY9pOhW.js";
80
- import "./catalog-D2QxJOn1.js";
81
- import "./prompt-style-Z2ZizQap.js";
82
- import "./install-safe-path-BiJP_bOf.js";
83
- import "./skill-scanner-DkITukAS.js";
84
- import "./channels-status-issues-GSsGZvfn.js";
85
- import "./runtime-guard-p4-FMx0l.js";
86
- import "./onboard-helpers-DU7-6FKZ.js";
87
- import "./systemd-p_nEAkHC.js";
88
- import "./service-BIixwO-v.js";
89
- import "./diagnostics-DELEpbg2.js";
90
- import "./table-CSEp22Mk.js";
91
- import "./audit-BzlpUi7R.js";
92
- import "./status-DRtu03r8.js";
93
- import "./health-DrjeJzLE.js";
94
- import "./outbound-send-deps-EMcNAOK3.js";
95
- import "./control-ui-assets-B5BrwGRs.js";
96
- import "./update-check-C1JNxsic.js";
97
- import { n as handleGatewayRequest } from "./server-methods-CMznpteR.js";
98
- import "./push-apns-CnfKExbf.js";
99
- import "./agent-CEYVMKqC.js";
100
- import "./agents.config-D7cHU-OU.js";
101
- import "./dm-policy-shared-CSF4Tw_F.js";
102
- import "./node-service-DDDCEDdv.js";
103
- import "./status.update-BOb9rNG9.js";
104
- import "./skills-install-BMhIk6vI.js";
105
- import "./update-runner-CAdnmZZ6.js";
106
-
107
- //#region src/gateway/glass-ui-ws.ts
108
- const SESSION_KEY = "agent:main:main";
109
- /** Synthetic client used for all glass-ui bridge requests. */
110
- const GLASS_UI_CLIENT = { connect: {
111
- minProtocol: 3,
112
- maxProtocol: 3,
113
- client: {
114
- id: "symi-glass-ui-bridge",
115
- version: "1.0.0",
116
- platform: "server",
117
- mode: "webchat"
118
- },
119
- role: "operator",
120
- scopes: ["operator.admin"],
121
- caps: [],
122
- auth: {},
123
- userAgent: "symi-glass-ui-bridge/1.0.0",
124
- locale: "en-US"
125
- } };
126
- function isWebchatConnect() {
127
- return true;
128
- }
129
- function safeSend(ws, data) {
130
- try {
131
- if (ws.readyState === ws.OPEN) ws.send(JSON.stringify(data));
132
- } catch {}
133
- }
134
- function createGlassUiBridge(opts) {
135
- const { wss, context, extraHandlers, onBroadcast } = opts;
136
- const browserClients = /* @__PURE__ */ new Map();
137
- let broadcastSeq = 0;
138
- function broadcastToBrowsers(msg, seq) {
139
- for (const [, state] of browserClients) {
140
- if (seq <= state.lastBroadcastSeq) continue;
141
- state.lastBroadcastSeq = seq;
142
- safeSend(state.ws, msg);
143
- }
144
- }
145
- const broadcastUnsub = onBroadcast((event, payload) => {
146
- broadcastSeq++;
147
- const seq = broadcastSeq;
148
- if (event === "chat") broadcastToBrowsers({
149
- type: "chat",
150
- payload,
151
- _seq: seq
152
- }, seq);
153
- else if (event === "agent") broadcastToBrowsers({
154
- type: "agent",
155
- payload,
156
- _seq: seq
157
- }, seq);
158
- else if (event === "subagent") broadcastToBrowsers({
159
- type: "subagent",
160
- payload,
161
- _seq: seq
162
- }, seq);
163
- else if (event === "profile") broadcastToBrowsers({
164
- type: "profile",
165
- payload,
166
- _seq: seq
167
- }, seq);
168
- });
169
- /** Dispatch an RPC method through the gateway's internal handler. */
170
- async function dispatchRpc(method, params) {
171
- return new Promise((resolve) => {
172
- const req = {
173
- type: "req",
174
- id: "glass-bridge",
175
- method,
176
- params
177
- };
178
- const respond = (ok, payload, error) => {
179
- resolve({
180
- ok,
181
- payload,
182
- error
183
- });
184
- };
185
- handleGatewayRequest({
186
- req,
187
- client: GLASS_UI_CLIENT,
188
- isWebchatConnect,
189
- respond,
190
- context,
191
- extraHandlers
192
- });
193
- });
194
- }
195
- async function loadAndSendHistory(ws, attempt = 1) {
196
- const maxAttempts = 3;
197
- try {
198
- const result = await dispatchRpc("chat.history", { sessionKey: SESSION_KEY });
199
- if (result.ok) {
200
- const payload = result.payload;
201
- safeSend(ws, {
202
- type: "history",
203
- messages: payload.messages ?? [],
204
- total: payload.total ?? 0,
205
- hasMore: payload.hasMore ?? false,
206
- startIndex: payload.startIndex ?? 0
207
- });
208
- } else if (attempt < maxAttempts) setTimeout(() => void loadAndSendHistory(ws, attempt + 1), 1500 * attempt);
209
- else safeSend(ws, {
210
- type: "history",
211
- messages: [],
212
- total: 0,
213
- hasMore: false,
214
- startIndex: 0,
215
- error: "history.unavailable",
216
- recoverable: true
217
- });
218
- } catch {
219
- if (attempt < maxAttempts) setTimeout(() => void loadAndSendHistory(ws, attempt + 1), 1500 * attempt);
220
- else safeSend(ws, {
221
- type: "history",
222
- messages: [],
223
- total: 0,
224
- hasMore: false,
225
- startIndex: 0,
226
- error: "history.unavailable",
227
- recoverable: true
228
- });
229
- }
230
- }
231
- function sendInitialProfile(ws) {
232
- try {
233
- const cfg = loadConfig();
234
- const modelId = cfg.agents?.defaults?.model?.primary;
235
- if (!modelId) return;
236
- safeSend(ws, {
237
- type: "profile",
238
- payload: {
239
- event: "profile",
240
- profile: resolveModelProfile(modelId, cfg.models?.profiles),
241
- modelId
242
- }
243
- });
244
- } catch {}
245
- }
246
- wss.on("connection", (ws) => {
247
- browserClients.set(ws, {
248
- ws,
249
- lastBroadcastSeq: broadcastSeq
250
- });
251
- safeSend(ws, {
252
- type: "status",
253
- connected: true
254
- });
255
- sendInitialProfile(ws);
256
- loadAndSendHistory(ws);
257
- ws.on("message", (data) => {
258
- let msg;
259
- try {
260
- const text = Buffer.isBuffer(data) ? data.toString("utf8") : data instanceof ArrayBuffer ? Buffer.from(data).toString("utf8") : Array.isArray(data) ? Buffer.concat(data).toString("utf8") : "";
261
- msg = JSON.parse(text);
262
- } catch {
263
- return;
264
- }
265
- const type = msg.type;
266
- if (type === "chat.send") {
267
- (async () => {
268
- try {
269
- await dispatchRpc("chat.send", {
270
- sessionKey: SESSION_KEY,
271
- message: msg.message,
272
- idempotencyKey: crypto.randomUUID()
273
- });
274
- } catch (err) {
275
- safeSend(ws, {
276
- type: "error",
277
- message: String(err)
278
- });
279
- }
280
- })();
281
- return;
282
- }
283
- if (type === "chat.abort") {
284
- (async () => {
285
- try {
286
- const params = { sessionKey: SESSION_KEY };
287
- if (msg.runId) params.runId = msg.runId;
288
- await dispatchRpc("chat.abort", params);
289
- } catch (err) {
290
- safeSend(ws, {
291
- type: "error",
292
- message: String(err)
293
- });
294
- }
295
- })();
296
- return;
297
- }
298
- if (type === "rpc") {
299
- const rpcId = msg.id;
300
- const method = msg.method;
301
- const params = msg.params ?? {};
302
- (async () => {
303
- try {
304
- const result = await dispatchRpc(method, params);
305
- safeSend(ws, {
306
- type: "rpc.response",
307
- id: rpcId,
308
- ok: result.ok,
309
- payload: result.payload,
310
- error: result.error
311
- });
312
- } catch (err) {
313
- safeSend(ws, {
314
- type: "rpc.response",
315
- id: rpcId,
316
- ok: false,
317
- error: { message: String(err) }
318
- });
319
- }
320
- })();
321
- return;
322
- }
323
- });
324
- ws.on("close", () => {
325
- browserClients.delete(ws);
326
- });
327
- ws.on("error", () => {
328
- browserClients.delete(ws);
329
- });
330
- });
331
- return () => {
332
- broadcastUnsub();
333
- for (const [, state] of browserClients) try {
334
- state.ws.close();
335
- } catch {}
336
- browserClients.clear();
337
- };
338
- }
339
-
340
- //#endregion
341
- export { createGlassUiBridge };
@@ -1,346 +0,0 @@
1
- import { wn as resolveModelProfile } from "./unified-runner-CMsoxWFP.js";
2
- import "./registry-DKJLAPDB.js";
3
- import "./paths-BSzKwaxE.js";
4
- import "./utils-BU8jVQFM.js";
5
- import "./subsystem-CtH6J8AV.js";
6
- import "./auth-profiles-BFSVvFKy.js";
7
- import "./exec-DKyLtSjm.js";
8
- import "./agent-scope-DIjW66iO.js";
9
- import "./github-copilot-token-BTNK6Tcd.js";
10
- import "./boolean-Wzu0-e0P.js";
11
- import "./env-B97Ms861.js";
12
- import "./pi-embedded-helpers-B-A6e4jw.js";
13
- import { i as loadConfig } from "./config-C5Ztbpa2.js";
14
- import "./manifest-registry-D7Qup2Vq.js";
15
- import "./sandbox-W71753dA.js";
16
- import "./chrome-DfmXP1Xa.js";
17
- import "./tailscale-D7dC-5EX.js";
18
- import "./auth-BbwD4lRX.js";
19
- import "./server-context-D1WDO10m.js";
20
- import "./frontmatter-B6IdJ7UK.js";
21
- import "./skills-DL8DjveU.js";
22
- import "./routes-Czff-g7s.js";
23
- import "./redact-CSc_2Nka.js";
24
- import "./errors-Z-WkF18Q.js";
25
- import "./fs-safe-B6nMaZqV.js";
26
- import "./paths-Dc6A9_vI.js";
27
- import "./ssrf-CC9kEPCT.js";
28
- import "./image-ops-C-gIIp7Q.js";
29
- import "./ports-DqxP-bXz.js";
30
- import "./trash-BjVrPcAx.js";
31
- import "./sessions-C_xvI21O.js";
32
- import "./dock-CnGWTXL4.js";
33
- import "./message-channel-C_V8IAYx.js";
34
- import "./plugins-DuuHorqi.js";
35
- import "./send-D9mx56JE.js";
36
- import "./paths-CJcw9nbZ.js";
37
- import "./thinking-177f26eg.js";
38
- import "./tokens-BKbemuIk.js";
39
- import "./deliver-CKAEloz3.js";
40
- import "./diagnostic-CwF3MnBL.js";
41
- import "./diagnostic-session-state-I4x9gPY4.js";
42
- import "./models-config-of-BhU9a.js";
43
- import "./pi-auth-json-SHGGQzOL.js";
44
- import "./session-cost-usage-DYcv40ss.js";
45
- import "./session-utils-BgILIwNf.js";
46
- import "./with-timeout-C_GTWqlF.js";
47
- import "./reply-prefix-BOdARKaY.js";
48
- import "./memory-gSw5eshw.js";
49
- import "./manager-DJHy2EAm.js";
50
- import "./sqlite-DBEvS-Ne.js";
51
- import "./chunk-DQGU0F8t.js";
52
- import "./markdown-tables-GTLvbzuR.js";
53
- import "./fetch-guard-DG6T0ZdL.js";
54
- import "./local-roots-BnDnugq3.js";
55
- import "./commands-B3UrgxIz.js";
56
- import "./commands-registry-BNCcZy2y.js";
57
- import "./client-ZZqt0H0-.js";
58
- import "./call-uEbo7Orp.js";
59
- import "./pairing-token-CURbSHdi.js";
60
- import "./tool-display-Dr6VaTg5.js";
61
- import "./skills-remote-Vz1dbWNB.js";
62
- import "./workspace-dirs-D5OnUmvw.js";
63
- import "./pi-model-discovery-DdkUSfiI.js";
64
- import "./model-catalog-DiG_T-Hd.js";
65
- import "./skill-commands-CWvBRsds.js";
66
- import "./pairing-store-BGf29nPx.js";
67
- import "./exec-approvals-CZOc8M5w.js";
68
- import "./nodes-screen-JELuBMBi.js";
69
- import "./control-service-wnEr9eCS.js";
70
- import "./stagger-BhvnarfO.js";
71
- import "./channel-selection-BvIcXQLj.js";
72
- import "./delivery-queue-DDs84baU.js";
73
- import "./bindings-9LSA3Jr1.js";
74
- import "./resolve-route-CRWE36h5.js";
75
- import "./links-CSaUKNKm.js";
76
- import "./cli-utils-CX1oQ81G.js";
77
- import "./help-format-BI_G2p1e.js";
78
- import "./progress-CyPyGCDn.js";
79
- import "./memory-cli-DIchyZJ2.js";
80
- import "./logging-B5YNzZB9.js";
81
- import "./replies--JRoxSNQ.js";
82
- import "./pi-tools.policy-B3nP1-Zp.js";
83
- import "./model-BRcKPW49.js";
84
- import "./deps-CkEuUibi.js";
85
- import "./runtime-guard-BZ3_1QqS.js";
86
- import "./catalog-BEREnWaa.js";
87
- import "./skills-status-Dx3Lf5iU.js";
88
- import "./prompt-style-Cad0BDRS.js";
89
- import "./install-safe-path-CQXx3s9R.js";
90
- import "./skill-scanner-qMQf6-FN.js";
91
- import "./channels-status-issues-DC8vgOMo.js";
92
- import "./onboard-helpers-KK8MYq1e.js";
93
- import "./systemd-9LEEqibe.js";
94
- import "./service-AP9pR9R5.js";
95
- import "./diagnostics-DxdqTfpW.js";
96
- import "./table-DkAQzCOR.js";
97
- import "./audit-DdRmmIE-.js";
98
- import "./status-DMNL9Ga5.js";
99
- import "./health-D41l07BM.js";
100
- import "./control-ui-assets-DUhvOLUL.js";
101
- import "./update-check-CZxZhEXr.js";
102
- import { n as handleGatewayRequest } from "./server-methods-SRD683d-.js";
103
- import "./push-apns-D6zky4hI.js";
104
- import "./agent-D4GA9G6b.js";
105
- import "./agents.config-D1nFwU81.js";
106
- import "./dm-policy-shared-5HLej1br.js";
107
- import "./node-service-tPO_yUk7.js";
108
- import "./status.update-D3Q9PDtb.js";
109
- import "./skills-install-C9uT4MR2.js";
110
- import "./update-runner-BtZbVAdv.js";
111
-
112
- //#region src/gateway/glass-ui-ws.ts
113
- const SESSION_KEY = "agent:main:main";
114
- /** Synthetic client used for all glass-ui bridge requests. */
115
- const GLASS_UI_CLIENT = { connect: {
116
- minProtocol: 3,
117
- maxProtocol: 3,
118
- client: {
119
- id: "symi-glass-ui-bridge",
120
- version: "1.0.0",
121
- platform: "server",
122
- mode: "webchat"
123
- },
124
- role: "operator",
125
- scopes: ["operator.admin"],
126
- caps: [],
127
- auth: {},
128
- userAgent: "symi-glass-ui-bridge/1.0.0",
129
- locale: "en-US"
130
- } };
131
- function isWebchatConnect() {
132
- return true;
133
- }
134
- function safeSend(ws, data) {
135
- try {
136
- if (ws.readyState === ws.OPEN) ws.send(JSON.stringify(data));
137
- } catch {}
138
- }
139
- function createGlassUiBridge(opts) {
140
- const { wss, context, extraHandlers, onBroadcast } = opts;
141
- const browserClients = /* @__PURE__ */ new Map();
142
- let broadcastSeq = 0;
143
- function broadcastToBrowsers(msg, seq) {
144
- for (const [, state] of browserClients) {
145
- if (seq <= state.lastBroadcastSeq) continue;
146
- state.lastBroadcastSeq = seq;
147
- safeSend(state.ws, msg);
148
- }
149
- }
150
- const broadcastUnsub = onBroadcast((event, payload) => {
151
- broadcastSeq++;
152
- const seq = broadcastSeq;
153
- if (event === "chat") broadcastToBrowsers({
154
- type: "chat",
155
- payload,
156
- _seq: seq
157
- }, seq);
158
- else if (event === "agent") broadcastToBrowsers({
159
- type: "agent",
160
- payload,
161
- _seq: seq
162
- }, seq);
163
- else if (event === "subagent") broadcastToBrowsers({
164
- type: "subagent",
165
- payload,
166
- _seq: seq
167
- }, seq);
168
- else if (event === "profile") broadcastToBrowsers({
169
- type: "profile",
170
- payload,
171
- _seq: seq
172
- }, seq);
173
- });
174
- /** Dispatch an RPC method through the gateway's internal handler. */
175
- async function dispatchRpc(method, params) {
176
- return new Promise((resolve) => {
177
- const req = {
178
- type: "req",
179
- id: "glass-bridge",
180
- method,
181
- params
182
- };
183
- const respond = (ok, payload, error) => {
184
- resolve({
185
- ok,
186
- payload,
187
- error
188
- });
189
- };
190
- handleGatewayRequest({
191
- req,
192
- client: GLASS_UI_CLIENT,
193
- isWebchatConnect,
194
- respond,
195
- context,
196
- extraHandlers
197
- });
198
- });
199
- }
200
- async function loadAndSendHistory(ws, attempt = 1) {
201
- const maxAttempts = 3;
202
- try {
203
- const result = await dispatchRpc("chat.history", { sessionKey: SESSION_KEY });
204
- if (result.ok) {
205
- const payload = result.payload;
206
- safeSend(ws, {
207
- type: "history",
208
- messages: payload.messages ?? [],
209
- total: payload.total ?? 0,
210
- hasMore: payload.hasMore ?? false,
211
- startIndex: payload.startIndex ?? 0
212
- });
213
- } else if (attempt < maxAttempts) setTimeout(() => void loadAndSendHistory(ws, attempt + 1), 1500 * attempt);
214
- else safeSend(ws, {
215
- type: "history",
216
- messages: [],
217
- total: 0,
218
- hasMore: false,
219
- startIndex: 0,
220
- error: "history.unavailable",
221
- recoverable: true
222
- });
223
- } catch {
224
- if (attempt < maxAttempts) setTimeout(() => void loadAndSendHistory(ws, attempt + 1), 1500 * attempt);
225
- else safeSend(ws, {
226
- type: "history",
227
- messages: [],
228
- total: 0,
229
- hasMore: false,
230
- startIndex: 0,
231
- error: "history.unavailable",
232
- recoverable: true
233
- });
234
- }
235
- }
236
- function sendInitialProfile(ws) {
237
- try {
238
- const cfg = loadConfig();
239
- const modelId = cfg.agents?.defaults?.model?.primary;
240
- if (!modelId) return;
241
- safeSend(ws, {
242
- type: "profile",
243
- payload: {
244
- event: "profile",
245
- profile: resolveModelProfile(modelId, cfg.models?.profiles),
246
- modelId
247
- }
248
- });
249
- } catch {}
250
- }
251
- wss.on("connection", (ws) => {
252
- browserClients.set(ws, {
253
- ws,
254
- lastBroadcastSeq: broadcastSeq
255
- });
256
- safeSend(ws, {
257
- type: "status",
258
- connected: true
259
- });
260
- sendInitialProfile(ws);
261
- loadAndSendHistory(ws);
262
- ws.on("message", (data) => {
263
- let msg;
264
- try {
265
- const text = Buffer.isBuffer(data) ? data.toString("utf8") : data instanceof ArrayBuffer ? Buffer.from(data).toString("utf8") : Array.isArray(data) ? Buffer.concat(data).toString("utf8") : "";
266
- msg = JSON.parse(text);
267
- } catch {
268
- return;
269
- }
270
- const type = msg.type;
271
- if (type === "chat.send") {
272
- (async () => {
273
- try {
274
- await dispatchRpc("chat.send", {
275
- sessionKey: SESSION_KEY,
276
- message: msg.message,
277
- idempotencyKey: crypto.randomUUID()
278
- });
279
- } catch (err) {
280
- safeSend(ws, {
281
- type: "error",
282
- message: String(err)
283
- });
284
- }
285
- })();
286
- return;
287
- }
288
- if (type === "chat.abort") {
289
- (async () => {
290
- try {
291
- const params = { sessionKey: SESSION_KEY };
292
- if (msg.runId) params.runId = msg.runId;
293
- await dispatchRpc("chat.abort", params);
294
- } catch (err) {
295
- safeSend(ws, {
296
- type: "error",
297
- message: String(err)
298
- });
299
- }
300
- })();
301
- return;
302
- }
303
- if (type === "rpc") {
304
- const rpcId = msg.id;
305
- const method = msg.method;
306
- const params = msg.params ?? {};
307
- (async () => {
308
- try {
309
- const result = await dispatchRpc(method, params);
310
- safeSend(ws, {
311
- type: "rpc.response",
312
- id: rpcId,
313
- ok: result.ok,
314
- payload: result.payload,
315
- error: result.error
316
- });
317
- } catch (err) {
318
- safeSend(ws, {
319
- type: "rpc.response",
320
- id: rpcId,
321
- ok: false,
322
- error: { message: String(err) }
323
- });
324
- }
325
- })();
326
- return;
327
- }
328
- });
329
- ws.on("close", () => {
330
- browserClients.delete(ws);
331
- });
332
- ws.on("error", () => {
333
- browserClients.delete(ws);
334
- });
335
- });
336
- return () => {
337
- broadcastUnsub();
338
- for (const [, state] of browserClients) try {
339
- state.ws.close();
340
- } catch {}
341
- browserClients.clear();
342
- };
343
- }
344
-
345
- //#endregion
346
- export { createGlassUiBridge };