@symerian/symi 2.0.0 → 2.0.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 (383) hide show
  1. package/dist/{accounts-Cd816n6l.js → accounts-DDuIpcln.js} +7 -7
  2. package/dist/{accounts-mN_EcgxC.js → accounts-DyJN4_vR.js} +1 -1
  3. package/dist/{accounts-CokRskCl.js → accounts-bK-Yqdwx.js} +1 -1
  4. package/dist/{acp-cli-o_sLVYUf.js → acp-cli-D54IzOnz.js} +6 -6
  5. package/dist/{agent-scope-BRwEc2pG.js → agent-scope-CgUHAtCo.js} +18 -18
  6. package/dist/{agents-fpLHaNi7.js → agents-DtoHlMPd.js} +4 -4
  7. package/dist/{agents.config-CsSO3wVx.js → agents.config-D42lZLmR.js} +1 -1
  8. package/dist/{agents.config-p7Y2nZHi.js → agents.config-DnUOlYlU.js} +2 -2
  9. package/dist/{api-key-rotation-Dbby3dlf.js → api-key-rotation-Do8JQqVN.js} +1 -1
  10. package/dist/{audio-preflight-79KNH7Tf.js → audio-preflight-CERzpj2b.js} +28 -28
  11. package/dist/{audio-preflight-DL5FZnXU.js → audio-preflight-Idsf-ZfU.js} +4 -4
  12. package/dist/{audit-BUu82PFi.js → audit-D8C59yOo.js} +23 -23
  13. package/dist/{auth-choice-CeNB3tht.js → auth-choice-C9otuJPA.js} +1 -1
  14. package/dist/{auth-choice-C5XKksbt.js → auth-choice-D5BDSGnl.js} +8 -8
  15. package/dist/{auth-token-D4sEkR38.js → auth-token-BszpreVL.js} +1 -1
  16. package/dist/{banner-Cf1EZP4s.js → banner-CF7C3krf.js} +1 -1
  17. package/dist/{bindings-ChzePa8q.js → bindings-DFaVVCsf.js} +1 -1
  18. package/dist/{browser-cli-VNgWKTmy.js → browser-cli-Bys7B4nj.js} +9 -9
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +6 -6
  21. package/dist/bundled/session-memory/handler.js +6 -6
  22. package/dist/{call-DiLX2POZ.js → call-DAcmbtXf.js} +9 -9
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{channel-options-cu6Y_a_F.js → channel-options-Csa-TtDi.js} +1 -1
  25. package/dist/{channel-options-B6UQDEaE.js → channel-options-DzhTX3wl.js} +2 -2
  26. package/dist/{channel-selection-DjfBv8kq.js → channel-selection-DuWs0Aak.js} +1 -1
  27. package/dist/{channel-web-Bi-6I1-W.js → channel-web-CjvCBPqU.js} +17 -17
  28. package/dist/{channels-cli-Bd5O4SA9.js → channels-cli-DDN_16Kv.js} +4 -4
  29. package/dist/{channels-cli-JCLUuFxJ.js → channels-cli-KlwkjyCS.js} +75 -75
  30. package/dist/{channels-status-issues-BoH1ZJPN.js → channels-status-issues-B_kBkl_u.js} +1 -1
  31. package/dist/{chrome-DuXtddnV.js → chrome-CVy4cA98.js} +7 -7
  32. package/dist/{chrome-CR4GU_ji.js → chrome-w5VRy_4h.js} +2 -2
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-CDZec5HA.js → cli-B5hVys4U.js} +62 -62
  35. package/dist/{cli-nHMrloEB.js → cli-DJI_OS4-.js} +1 -1
  36. package/dist/{client-CIYHP9fS.js → client-Cnoh7nRo.js} +1 -1
  37. package/dist/{command-registry-DXb1lS7l.js → command-registry-DnZXmfQw.js} +9 -9
  38. package/dist/{commands-CtocZ4Lg.js → commands-BNLCWX6e.js} +1 -1
  39. package/dist/{commands-registry-BmO4ALva.js → commands-registry-FQYB6b0c.js} +3 -3
  40. package/dist/{completion-cli-BzDe-5CO.js → completion-cli-DCxqBDYi.js} +2 -2
  41. package/dist/{completion-cli-CZ0-L0Nx.js → completion-cli-DQL62fp3.js} +12 -12
  42. package/dist/{config-AVc1QpRD.js → config-HatzmzSF.js} +2 -2
  43. package/dist/{config-cli-BfsG-zzV.js → config-cli-BZ9IeSYB.js} +1 -1
  44. package/dist/{config-cli-BIUaw73M.js → config-cli-gykd9rl1.js} +4 -4
  45. package/dist/{config-guard-CPd-_Sug.js → config-guard-B_Oo29C_.js} +12 -12
  46. package/dist/{config-validation-QuKOX6cx.js → config-validation-DWRbfhqx.js} +1 -1
  47. package/dist/{configure-C1JhrX_n.js → configure-DaF95oCr.js} +3 -3
  48. package/dist/{configure-DpG3ItSi.js → configure-awU0fYIM.js} +15 -15
  49. package/dist/{control-service-CT6Tc8zz.js → control-service-su7ltHXJ.js} +4 -4
  50. package/dist/control-ui/css/revert-red-theme.md +141 -0
  51. package/dist/control-ui/css/style.css +23 -54
  52. package/dist/control-ui/css/style.css.backup-2026-03-03-162525 +3546 -0
  53. package/dist/control-ui/css/style.css.backup-before-red-2026-03-03-162525 +3546 -0
  54. package/dist/control-ui/css/style.css.backup-before-red-theme-2026-03-03-162530 +3546 -0
  55. package/dist/control-ui/css/style.css.red-theme +2999 -0
  56. package/dist/control-ui/index.html +5 -18
  57. package/dist/control-ui/js/app.js +1 -1
  58. package/dist/control-ui/js/models.js +35 -108
  59. package/dist/{control-ui-assets-DqGziq7x.js → control-ui-assets-Z947tKLt.js} +1 -1
  60. package/dist/{cron-cli-Dkt9uaVz.js → cron-cli-EwYM3Zhw.js} +10 -10
  61. package/dist/{daemon-cli-CK9BhScf.js → daemon-cli-gSfOKrXx.js} +11 -11
  62. package/dist/{daemon-runtime-CbWCEgFq.js → daemon-runtime-CNFxAJWo.js} +10 -10
  63. package/dist/{deliver-D7lL85xc.js → deliver-Ds9HRkSS.js} +1 -1
  64. package/dist/{deliver-BRZABn2h.js → deliver-Dt-RE3Vx.js} +7 -7
  65. package/dist/{devices-cli-Dt2dSPNN.js → devices-cli-B4Ml0nPd.js} +6 -6
  66. package/dist/{diagnostics-D2yUMZN1.js → diagnostics-BAMlsVVX.js} +5 -5
  67. package/dist/{directory-cli-Bd0yqzdX.js → directory-cli-Dr1AuGU_.js} +7 -7
  68. package/dist/{dm-policy-shared-BbBnj9fh.js → dm-policy-shared-B7mF98WG.js} +2 -2
  69. package/dist/{dns-cli-C8-wE4jg.js → dns-cli-BMuYSI5H.js} +3 -3
  70. package/dist/{dock-BYiRZSgZ.js → dock-BhS32F6E.js} +4 -4
  71. package/dist/{docs-cli-BfPfHTDs.js → docs-cli-BpnEOtJi.js} +1 -1
  72. package/dist/{doctor-completion-EiZoSgwZ.js → doctor-completion-CWxrDfTf.js} +2 -2
  73. package/dist/{doctor-completion-BUt4HQxm.js → doctor-completion-Dsc3BTPh.js} +1 -1
  74. package/dist/{doctor-config-flow-DVeRf3Nb.js → doctor-config-flow-CqkfYH5g.js} +10 -10
  75. package/dist/entry.js +1 -1
  76. package/dist/{exec-approvals-cli-_9YulN2v.js → exec-approvals-cli-Bjc1fnXd.js} +13 -13
  77. package/dist/extensionAPI.js +1 -1
  78. package/dist/{fs-safe-CTDvb1DF.js → fs-safe-CUjO1ca2.js} +6 -6
  79. package/dist/{gateway-cli-CEO3mZTr.js → gateway-cli-DE-6Dcty.js} +13 -10
  80. package/dist/{gateway-cli-BRuCMLHC.js → gateway-cli-ZjP8i4av.js} +117 -114
  81. package/dist/{gateway-rpc-CPJvpktM.js → gateway-rpc-fojfvlNM.js} +1 -1
  82. package/dist/{glass-ui-ws-BDGgl8ub.js → glass-ui-ws-D421doEO.js} +7 -7
  83. package/dist/{glass-ui-ws-DZBGtG3l.js → glass-ui-ws-DVJ8Jbb_.js} +82 -82
  84. package/dist/{health-JCH1-7ZC.js → health-6eO44S1z.js} +13 -13
  85. package/dist/{health-DOpwYIk9.js → health-Cg5ISkwP.js} +1 -1
  86. package/dist/{hooks-cli-C_swzA-Q.js → hooks-cli-CSudu0uW.js} +76 -76
  87. package/dist/{hooks-cli-8E0NEcp2.js → hooks-cli-DrJLLgya.js} +2 -2
  88. package/dist/{image-CMI-9eRz.js → image-BCpwZwMs.js} +3 -3
  89. package/dist/{image-Bw9ZjAgJ.js → image-CFJ6w7mA.js} +1 -1
  90. package/dist/{image-ops-DYbDWaIA.js → image-ops-1OJMSAUX.js} +10 -10
  91. package/dist/index.js +72 -72
  92. package/dist/{inspect-ZJkNX0WL.js → inspect-CllGjsWo.js} +4 -4
  93. package/dist/{install-safe-path-Qqr_t_tH.js → install-safe-path-tCLiMpmO.js} +11 -11
  94. package/dist/{installs-O9KlRu9h.js → installs-C1Cebk97.js} +10 -10
  95. package/dist/{ir-Dt4hOzxG.js → ir-DZam9q5M.js} +6 -6
  96. package/dist/{lifecycle-core-DJ99Nuea.js → lifecycle-core-D7yri0lq.js} +5 -5
  97. package/dist/llm-slug-generator.js +6 -6
  98. package/dist/{local-roots-BBeKX7PX.js → local-roots-aAFLQGkY.js} +2 -2
  99. package/dist/{login-BbKZ2DjB.js → login-DPZJ0dn5.js} +3 -3
  100. package/dist/{login-qr-DUMFnnHO.js → login-qr-1SS_KLmy.js} +5 -5
  101. package/dist/{logs-cli-Q9BjHa6r.js → logs-cli-DTv4zx9B.js} +7 -7
  102. package/dist/{manager-CMwIsp1s.js → manager-azRNiI63.js} +13 -13
  103. package/dist/{markdown-tables-ZwP14ydw.js → markdown-tables-CEbN0fEm.js} +1 -1
  104. package/dist/{memory-cli-BmVxmjsP.js → memory-cli-BbOD_MAm.js} +12 -12
  105. package/dist/{model-yOMXet9g.js → model-BqEwE-J2.js} +1 -1
  106. package/dist/{model-catalog-B2O_f8W3.js → model-catalog-DchCrtU_.js} +4 -4
  107. package/dist/{model-picker-Cza4RjM6.js → model-picker-kP9-zhYa.js} +3 -3
  108. package/dist/{model-selection-B7KLlkW9.js → model-selection-Bna6Ea2G.js} +9 -9
  109. package/dist/{models-DiSEm28S.js → models-BTRkvFtl.js} +2 -2
  110. package/dist/{models-cli-BNzrvtSd.js → models-cli-D2fJlrQk.js} +3 -3
  111. package/dist/{models-cli-mXtcSXES.js → models-cli-Dj8cNWRT.js} +72 -72
  112. package/dist/{models-config-BBYpnDiI.js → models-config-ClFXUp6F.js} +7 -7
  113. package/dist/{node-cli-0V_HpLpl.js → node-cli-NQpg02gK.js} +28 -28
  114. package/dist/{node-service-CJygtY5M.js → node-service-Cxz4e-Qd.js} +1 -1
  115. package/dist/{nodes-cli-CCcfRy8f.js → nodes-cli-Bb4xaKGj.js} +10 -10
  116. package/dist/{nodes-screen-C99kfE1u.js → nodes-screen-VBGXKdLk.js} +4 -4
  117. package/dist/{npm-registry-spec-DR_at_Hp.js → npm-registry-spec-C2JDdSZS.js} +9 -9
  118. package/dist/{onboard-L0M0Ovnd.js → onboard-CHEs4ExE.js} +2 -2
  119. package/dist/{onboard-t2R-9vg-.js → onboard-CK01iMWd.js} +13 -13
  120. package/dist/{onboard-channels-DUaPDyrm.js → onboard-channels-DRFYxuUu.js} +1 -1
  121. package/dist/{onboard-channels-C7WU9Iin.js → onboard-channels-wh9lIrOV.js} +5 -5
  122. package/dist/{onboard-custom-DPVbOEea.js → onboard-custom-CRCl78Cb.js} +3 -3
  123. package/dist/{onboard-helpers-KDMJj8FR.js → onboard-helpers-y4rvYrnW.js} +8 -8
  124. package/dist/{onboard-hooks-lsws7g2s.js → onboard-hooks-BAA8CoVv.js} +1 -1
  125. package/dist/{onboard-remote-BlAZ1eIO.js → onboard-remote-Jm1aS7bY.js} +1 -1
  126. package/dist/{onboard-skills-B_rjyFsX.js → onboard-skills-Cs350j4k.js} +4 -4
  127. package/dist/{onboarding-DXwjpA2U.js → onboarding-Bp1mnjrX.js} +13 -13
  128. package/dist/{onboarding-B70JwisU.js → onboarding-lUewk1wX.js} +3 -3
  129. package/dist/{onboarding.finalize-7Hj0Ns8P.js → onboarding.finalize-CMRmP9Gh.js} +6 -6
  130. package/dist/{onboarding.finalize-CfqZ4VMN.js → onboarding.finalize-CZdoYQ4E.js} +74 -74
  131. package/dist/{onboarding.gateway-config-DTociuRL.js → onboarding.gateway-config-BKBdInKw.js} +14 -14
  132. package/dist/{openai-model-default-qa2VGxV5.js → openai-model-default-VfhQkucT.js} +2 -2
  133. package/dist/{outbound-4_NH93LY.js → outbound-Bgf3-Xjf.js} +4 -4
  134. package/dist/{outbound-attachment-D62E0xDI.js → outbound-attachment-D_QuKi8U.js} +2 -2
  135. package/dist/{pairing-cli-BjylEroj.js → pairing-cli-DGZ81nF1.js} +8 -8
  136. package/dist/{pairing-labels-BTnwVbGk.js → pairing-labels-DqKysvKw.js} +1 -1
  137. package/dist/{pairing-store-GiI_Y6RI.js → pairing-store-BCNzdZKM.js} +2 -2
  138. package/dist/{pairing-token-AV-MMfVE.js → pairing-token-CX3NN_qj.js} +7 -7
  139. package/dist/{paths-CT6jsi4E.js → paths-BBm9fwuG.js} +1 -1
  140. package/dist/{pi-auth-json-B1BvsF_W.js → pi-auth-json-CZfGGhvs.js} +3 -3
  141. package/dist/{pi-embedded-DocZDkTo.js → pi-embedded-CS0wnHwK.js} +2 -11
  142. package/dist/{pi-embedded-D7ha4Og0.js → pi-embedded-_CVXk_1W.js} +16 -25
  143. package/dist/{pi-embedded-helpers-CMPwkzmk.js → pi-embedded-helpers-Ccv1YvCu.js} +4 -4
  144. package/dist/{pi-embedded-helpers-CwBUNbtz.js → pi-embedded-helpers-DTf21kBI.js} +6 -6
  145. package/dist/{pi-tools.policy-UOvl9TC5.js → pi-tools.policy-DzNBR_23.js} +4 -4
  146. package/dist/{plugin-auto-enable-DDZK_Dlb.js → plugin-auto-enable-DLa2EY7E.js} +2 -2
  147. package/dist/{plugin-registry-CdtWBNpp.js → plugin-registry-BbbgHAaN.js} +1 -1
  148. package/dist/{plugin-registry-CORXKvoW.js → plugin-registry-UAY71aAp.js} +3 -3
  149. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  150. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  151. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  152. package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
  153. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  154. package/dist/plugin-sdk/{api-key-rotation-BYeOYbFa.js → api-key-rotation-Q2dih0d4.js} +1 -1
  155. package/dist/plugin-sdk/{audio-preflight-ZgYHV7zZ.js → audio-preflight-B3jftH89.js} +24 -24
  156. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  157. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  158. package/dist/plugin-sdk/{channel-web-DMrXbXuB.js → channel-web-cl9GZI67.js} +22 -22
  159. package/dist/plugin-sdk/{chrome-aebG-57z.js → chrome-Dm5lVW6S.js} +3 -3
  160. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  161. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  162. package/dist/plugin-sdk/{commands-registry-C-40_AnX.js → commands-registry-CPpEN9Mp.js} +4 -4
  163. package/dist/plugin-sdk/{config-_mfvrqyn.js → config-BVu4isPG.js} +9 -9
  164. package/dist/plugin-sdk/{deliver-CjfwhaL4.js → deliver-DSY1Ey3q.js} +10 -10
  165. package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
  166. package/dist/plugin-sdk/{image-BPKGNrho.js → image-GJ7myokS.js} +4 -4
  167. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  168. package/dist/plugin-sdk/index.js +53 -53
  169. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  170. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  171. package/dist/plugin-sdk/{login-D7FDUOk4.js → login-O6IizOR2.js} +7 -7
  172. package/dist/plugin-sdk/{login-qr-T2-V0Xzo.js → login-qr-_OTg1XmP.js} +9 -9
  173. package/dist/plugin-sdk/{manager-BQMAFDKV.js → manager-DBUFLDPF.js} +8 -8
  174. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
  175. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  176. package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
  177. package/dist/plugin-sdk/{model-selection-SoQVut2b.js → model-selection-DltSbjiW.js} +4 -4
  178. package/dist/plugin-sdk/{outbound-D6-dgoHk.js → outbound-CR8e3Z2m.js} +7 -7
  179. package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
  180. package/dist/plugin-sdk/{pi-auth-json-BcG0RJ5m.js → pi-auth-json-BZWLIjB8.js} +5 -5
  181. package/dist/plugin-sdk/{pi-embedded-helpers-CoCKvCMg.js → pi-embedded-helpers-DP6QavXU.js} +17 -17
  182. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  183. package/dist/plugin-sdk/{pw-ai-BtL_6nSQ.js → pw-ai--FUGpHYZ.js} +8 -8
  184. package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
  185. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  186. package/dist/plugin-sdk/{replies-DBhVchqS.js → replies-CbaarhX4.js} +3 -3
  187. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  188. package/dist/plugin-sdk/{reply-BAGhI0bM.js → reply-z8of-Etj.js} +78 -87
  189. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  190. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  191. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  192. package/dist/plugin-sdk/{runner-DI-v2QPz.js → runner-AJx8kwC8.js} +9 -9
  193. package/dist/plugin-sdk/{send-BXEvd9GG.js → send-B0ms2T8N.js} +6 -6
  194. package/dist/plugin-sdk/{send-BqfAkEXB.js → send-BqkPr3tk.js} +10 -10
  195. package/dist/plugin-sdk/{send-_NtbikAq.js → send-CQTQU2QA.js} +10 -10
  196. package/dist/plugin-sdk/{send-OeTV33Hw.js → send-CVgqxLOA.js} +6 -6
  197. package/dist/plugin-sdk/{send-BMFLy4AN.js → send-Czife03a.js} +7 -7
  198. package/dist/plugin-sdk/{session-fs4fyz3Q.js → session-Cj83K_4Y.js} +4 -4
  199. package/dist/plugin-sdk/{skill-commands-BHGE8qj7.js → skill-commands-BLr3yT6A.js} +5 -5
  200. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
  201. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  202. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  203. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  204. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  205. package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
  206. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  207. package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
  208. package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
  209. package/dist/plugin-sdk/{tool-loop-detection-edmW8ZiF.js → tool-loop-detection-BVA6fax-.js} +2 -2
  210. package/dist/plugin-sdk/web-C3pizhFX.js +65 -0
  211. package/dist/plugin-sdk/{whatsapp-actions-BYyVUqQU.js → whatsapp-actions-nsnM4jgj.js} +21 -21
  212. package/dist/{plugins-BAyxWQSz.js → plugins-DKDeQZF0.js} +2 -2
  213. package/dist/{plugins-cli-CbYY2c02.js → plugins-cli-EwQ7OW8w.js} +2 -2
  214. package/dist/{plugins-cli-DZ6_6_9N.js → plugins-cli-XdoAm0EH.js} +71 -71
  215. package/dist/{ports-OZQlocB7.js → ports-BOmtxoTv.js} +2 -2
  216. package/dist/{ports-b36gHZbA.js → ports-BX0kKI0g.js} +1 -1
  217. package/dist/{program-C4255SbF.js → program-BU_8y1Dg.js} +7 -7
  218. package/dist/{program-context-CTjApG6i.js → program-context-wuhwrRCO.js} +39 -39
  219. package/dist/{prompt-select-styled-BwJ6oDuF.js → prompt-select-styled-C1ztGQs1.js} +4 -4
  220. package/dist/{prompt-select-styled-C9kVFhhN.js → prompt-select-styled-D1BkIe_s.js} +38 -38
  221. package/dist/{provider-auth-helpers-BhWko9CW.js → provider-auth-helpers-_5rSLUts.js} +1 -1
  222. package/dist/{provider-auth-helpers-Dh0Y9gRH.js → provider-auth-helpers-tpyE_YMw.js} +5 -5
  223. package/dist/{push-apns-Bc01EVHz.js → push-apns-CIcS3If1.js} +1 -1
  224. package/dist/{push-apns-CKA1Hybl.js → push-apns-zJAWgDEO.js} +4 -4
  225. package/dist/{pw-ai-DQ6HUvz0.js → pw-ai-COyYEUif.js} +1 -1
  226. package/dist/{pw-ai-jDxCE_me.js → pw-ai-hxKJoLPO.js} +7 -7
  227. package/dist/{qmd-manager-BP2r8b1D.js → qmd-manager-D85GJrir.js} +18 -18
  228. package/dist/{qr-cli-CqfILKdq.js → qr-cli-BevlQ0yQ.js} +3 -3
  229. package/dist/{register.agent-CjihKrgr.js → register.agent-DNcdFB4H.js} +81 -81
  230. package/dist/{register.agent-vJQWUB2a.js → register.agent-brAf6Dmv.js} +6 -6
  231. package/dist/register.configure-C76yU3JC.js +147 -0
  232. package/dist/{register.configure-CWkzQGtI.js → register.configure-DoJEj5YT.js} +6 -6
  233. package/dist/{register.maintenance-BIw99tAg.js → register.maintenance-CW2OCHRX.js} +8 -8
  234. package/dist/{register.maintenance-DSJfxKOM.js → register.maintenance-DYfYvEU8.js} +84 -84
  235. package/dist/{register.message-DYzHnVIl.js → register.message-CJZ0ZuHF.js} +2 -2
  236. package/dist/{register.message-Clc--Yw5.js → register.message-syMzQfo-.js} +63 -63
  237. package/dist/{register.onboard-BfUOVNll.js → register.onboard-DzZn1ZmN.js} +74 -74
  238. package/dist/{register.onboard-BHtw8kJf.js → register.onboard-dZyRfR6-.js} +4 -4
  239. package/dist/{register.setup-GFxvFYnK.js → register.setup-BbkD_3y3.js} +77 -77
  240. package/dist/{register.setup-DgSaVc_m.js → register.setup-XCPDMOgg.js} +4 -4
  241. package/dist/{register.status-health-sessions-BI-s8t9j.js → register.status-health-sessions-87LTzh7r.js} +3 -3
  242. package/dist/{register.status-health-sessions-D9SHcVWG.js → register.status-health-sessions-CPg2ES9O.js} +75 -75
  243. package/dist/{register.subclis-CY89gBXc.js → register.subclis-Bvb5TNzX.js} +9 -9
  244. package/dist/{replies-F62kkRDY.js → replies-Bqmvo_Kt.js} +1 -1
  245. package/dist/{reply-3UdAtBno.js → reply-D-tI2-6J.js} +131 -140
  246. package/dist/{reply-prefix-BLOOs1aW.js → reply-prefix-CE2YmmsD.js} +1 -1
  247. package/dist/{resolve-route-BcnaXYvh.js → resolve-route-BMoTaVAH.js} +2 -2
  248. package/dist/{routes-Byuu6IFb.js → routes-BTqP9I0j.js} +8 -8
  249. package/dist/{rpc-W2LE3Gsn.js → rpc-BWLVOOnl.js} +1 -1
  250. package/dist/{run-main-D1u34xwJ.js → run-main-Bt2x9hbu.js} +14 -14
  251. package/dist/{runner-BjY_9Mjp.js → runner-5jm68DaT.js} +20 -20
  252. package/dist/{runner-Duym_W6W.js → runner-D8jpl5qu.js} +1 -1
  253. package/dist/{sandbox-CZNPhRvt.js → sandbox-CI3HOlhZ.js} +18 -18
  254. package/dist/{sandbox-cli-DGr5ZbkP.js → sandbox-cli-XsQ7ytlP.js} +20 -20
  255. package/dist/{security-cli-sPaHQYwq.js → security-cli-CjP-MfW-.js} +36 -36
  256. package/dist/{send-Bq3a_Wnm.js → send-B6F9anOj.js} +6 -6
  257. package/dist/{send-D-WljKDl.js → send-Bdb6djZT.js} +6 -6
  258. package/dist/{send-BOpWKMA3.js → send-C-yyCp3G.js} +4 -4
  259. package/dist/{send-hUOxOHuS.js → send-CRQMds8q.js} +13 -13
  260. package/dist/{send-C-hO5d22.js → send-DCDHTHlP.js} +6 -6
  261. package/dist/{server-context-BvLdcVwk.js → server-context-XZaMhvsO.js} +5 -5
  262. package/dist/{server-methods-BJCrhJnd.js → server-methods-9BRiIiUB.js} +54 -54
  263. package/dist/{server-methods-D6_yT-Bb.js → server-methods-BaOFruL6.js} +7 -7
  264. package/dist/{server-node-events-CykWrHaN.js → server-node-events-CCOXKW9s.js} +63 -63
  265. package/dist/{server-node-events-tdraRFjy.js → server-node-events-DDEX2ugG.js} +2 -2
  266. package/dist/{service--qMN5DPm.js → service-Cl74hx8J.js} +15 -15
  267. package/dist/{session-CkpNcCi1.js → session-pB1anvds.js} +2 -2
  268. package/dist/{sessions-F_WFgwcy.js → sessions-Dg88xE66.js} +13 -13
  269. package/dist/{shared-Dj1vNdZR.js → shared-B811_S8D.js} +3 -3
  270. package/dist/{shared-Jm_QdQJQ.js → shared-BJvwnR5z.js} +1 -1
  271. package/dist/{skill-commands-CWFq0coF.js → skill-commands-D23OFeRU.js} +5 -5
  272. package/dist/{skill-scanner-CXg9eeyc.js → skill-scanner-CLs8u6vQ.js} +5 -5
  273. package/dist/{skills-DqQUtOph.js → skills-6jdJQ5ZL.js} +4 -4
  274. package/dist/{skills-cli-ZvR57mAe.js → skills-cli-Cr0T5ExG.js} +7 -7
  275. package/dist/{skills-install-DjcTy3CT.js → skills-install-D67isO1L.js} +3 -3
  276. package/dist/{skills-status-DS-NZQiq.js → skills-status-CURJKnyY.js} +1 -1
  277. package/dist/{sqlite-BV5ILFtC.js → sqlite-Dx3J_aSE.js} +12 -12
  278. package/dist/{status-P2xe2kB8.js → status-B_fSdR2z.js} +3 -3
  279. package/dist/{status-DpNpFHi8.js → status-Bhj6pODg.js} +2 -2
  280. package/dist/{status-bDX6eJeC.js → status-CHtXaQCL.js} +25 -25
  281. package/dist/{status-UTAzB6AW.js → status-DWYUBGDM.js} +1 -1
  282. package/dist/{status.update-FbG5gTPn.js → status.update-6yjKgcLs.js} +3 -3
  283. package/dist/{store-DvtcmOKj.js → store-r1DJSDq-.js} +5 -5
  284. package/dist/{subagent-registry-DW6V21LB.js → subagent-registry-C-rk8Ynb.js} +2 -11
  285. package/dist/{symi-root-MF6_6SCS.js → symi-root-CrGJbkzf.js} +2 -2
  286. package/dist/{system-cli-B13bcVd7.js → system-cli-D2Gy1uM8.js} +11 -11
  287. package/dist/{systemd-hints-CLsHKdY5.js → systemd-hints-TBjNlcr6.js} +6 -6
  288. package/dist/{systemd-linger-BXwqn1jL.js → systemd-linger-aQ75ZlXY.js} +1 -1
  289. package/dist/{systemd-AhJEsmIk.js → systemd-riq8uNJQ.js} +5 -5
  290. package/dist/{tables-C38rzF6E.js → tables-BEzT0Da4.js} +1 -1
  291. package/dist/{target-errors-CCz79CmV.js → target-errors-7AvoVa10.js} +4 -4
  292. package/dist/{tool-images-B-pqX3nX.js → tool-images-DvUBlqjX.js} +1 -1
  293. package/dist/{tui-9seSCxc3.js → tui-DdPONk1f.js} +7 -7
  294. package/dist/{tui-cli-DN4upjYg.js → tui-cli-BIUejAgV.js} +28 -28
  295. package/dist/{update-check-C0oYCI89.js → update-check-CtckACbb.js} +5 -5
  296. package/dist/{update-cli-BV-ydVs4.js → update-cli-BLezElt_.js} +8 -8
  297. package/dist/{update-cli-KxZVK_fV.js → update-cli-CCaYK9Sf.js} +94 -94
  298. package/dist/{update-runner-Bk1Dw23-.js → update-runner-Bq1u14RR.js} +1 -1
  299. package/dist/{update-runner-BU1pNjNR.js → update-runner-f9lbrrpe.js} +15 -15
  300. package/dist/{update-Df4sEKtI.js → update-rw7wJwHd.js} +3 -3
  301. package/dist/web-BJBlI9ZQ.js +109 -0
  302. package/dist/{web-CqNKJLiq.js → web-BzQURzi7.js} +1 -1
  303. package/dist/{web-CH5VMs5G.js → web-CP0DJI7i.js} +1 -1
  304. package/dist/{web-C9daLT-M.js → web-S8BbWMEn.js} +6 -6
  305. package/dist/{webhooks-cli-WXHppPGP.js → webhooks-cli-EjU4sMB6.js} +4 -4
  306. package/dist/{whatsapp-actions-CZxAV_jP.js → whatsapp-actions-CXbFvHGB.js} +15 -15
  307. package/dist/{with-timeout-B4dUX-ZK.js → with-timeout-CB59LniF.js} +1 -1
  308. package/dist/{workspace-dirs-DKu48umx.js → workspace-dirs-GpkFi6Kw.js} +1 -1
  309. package/dist/{wsl-BbXxnokd.js → wsl-C4424szg.js} +2 -2
  310. package/extensions/bluebubbles/node_modules/.bin/symi +4 -4
  311. package/extensions/bluebubbles/package.json +1 -1
  312. package/extensions/copilot-proxy/node_modules/.bin/symi +4 -4
  313. package/extensions/copilot-proxy/package.json +1 -1
  314. package/extensions/diagnostics-otel/node_modules/.bin/acorn +2 -2
  315. package/extensions/diagnostics-otel/node_modules/.bin/symi +4 -4
  316. package/extensions/diagnostics-otel/package.json +1 -1
  317. package/extensions/discord/node_modules/.bin/symi +4 -4
  318. package/extensions/discord/package.json +1 -1
  319. package/extensions/feishu/node_modules/.bin/symi +4 -4
  320. package/extensions/feishu/package.json +1 -1
  321. package/extensions/google-antigravity-auth/node_modules/.bin/symi +4 -4
  322. package/extensions/google-antigravity-auth/package.json +1 -1
  323. package/extensions/google-gemini-cli-auth/node_modules/.bin/symi +4 -4
  324. package/extensions/google-gemini-cli-auth/package.json +1 -1
  325. package/extensions/googlechat/node_modules/.bin/symi +4 -4
  326. package/extensions/googlechat/package.json +2 -2
  327. package/extensions/imessage/node_modules/.bin/symi +4 -4
  328. package/extensions/imessage/package.json +1 -1
  329. package/extensions/irc/node_modules/.bin/symi +4 -4
  330. package/extensions/irc/package.json +1 -1
  331. package/extensions/learning-loop/node_modules/.bin/symi +21 -0
  332. package/extensions/learning-loop/package.json +2 -2
  333. package/extensions/line/node_modules/.bin/symi +4 -4
  334. package/extensions/line/package.json +1 -1
  335. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  336. package/extensions/matrix/node_modules/.bin/symi +4 -4
  337. package/extensions/matrix/package.json +1 -1
  338. package/extensions/mattermost/node_modules/.bin/symi +4 -4
  339. package/extensions/mattermost/package.json +1 -1
  340. package/extensions/memory-core/node_modules/.bin/symi +4 -4
  341. package/extensions/memory-core/package.json +2 -2
  342. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +2 -2
  343. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  344. package/extensions/memory-lancedb/node_modules/.bin/symi +4 -4
  345. package/extensions/memory-lancedb/package.json +1 -1
  346. package/extensions/minimax-portal-auth/node_modules/.bin/symi +4 -4
  347. package/extensions/minimax-portal-auth/package.json +1 -1
  348. package/extensions/msteams/node_modules/.bin/symi +4 -4
  349. package/extensions/msteams/package.json +1 -1
  350. package/extensions/nextcloud-talk/node_modules/.bin/symi +4 -4
  351. package/extensions/nextcloud-talk/package.json +1 -1
  352. package/extensions/nostr/node_modules/.bin/symi +4 -4
  353. package/extensions/nostr/node_modules/.bin/tsc +2 -2
  354. package/extensions/nostr/node_modules/.bin/tsserver +2 -2
  355. package/extensions/nostr/package.json +1 -1
  356. package/extensions/signal/node_modules/.bin/symi +4 -4
  357. package/extensions/signal/package.json +1 -1
  358. package/extensions/slack/node_modules/.bin/symi +4 -4
  359. package/extensions/slack/package.json +1 -1
  360. package/extensions/telegram/node_modules/.bin/symi +4 -4
  361. package/extensions/telegram/package.json +1 -1
  362. package/extensions/tlon/node_modules/.bin/symi +4 -4
  363. package/extensions/tlon/package.json +1 -1
  364. package/extensions/twitch/node_modules/.bin/symi +4 -4
  365. package/extensions/twitch/package.json +1 -1
  366. package/extensions/voice-call/node_modules/.bin/symi +4 -4
  367. package/extensions/voice-call/package.json +1 -1
  368. package/extensions/whatsapp/node_modules/.bin/symi +4 -4
  369. package/extensions/whatsapp/package.json +1 -1
  370. package/extensions/zalo/node_modules/.bin/symi +4 -4
  371. package/extensions/zalo/package.json +1 -1
  372. package/extensions/zalouser/node_modules/.bin/symi +4 -4
  373. package/extensions/zalouser/package.json +1 -1
  374. package/package.json +1 -2
  375. package/CHANGELOG.md +0 -2520
  376. package/LICENSE +0 -21
  377. package/dist/control-ui/vendor/highlight.css +0 -96
  378. package/dist/control-ui/vendor/highlight.min.js +0 -1244
  379. package/dist/control-ui/vendor/marked.min.js +0 -69
  380. package/dist/plugin-sdk/web-CxcoX0Wr.js +0 -65
  381. package/dist/register.configure-Bb7LY0Z4.js +0 -147
  382. package/dist/session-dirs-D3qlvucD.js +0 -18
  383. package/dist/web-BCk_WT8d.js +0 -109
@@ -210,24 +210,11 @@
210
210
 
211
211
  <div class="glass-panel" id="model-routing-panel">
212
212
  <div class="panel-label">MODEL ROUTING</div>
213
- <div class="model-row active-model">
214
- <div class="model-icon">✦</div>
215
- <div class="model-info">
216
- <div class="model-name" id="model-primary-label">--</div>
217
- <div class="model-sub" id="model-primary-sub">LOADING</div>
218
- </div>
219
- </div>
220
- <div class="model-select-wrap" id="model-select-wrap">
221
- <select id="model-select" class="model-select"></select>
222
- </div>
223
- <div class="divider"></div>
224
- <div class="model-row">
225
- <div class="model-icon dim">◈</div>
226
- <div class="model-info">
227
- <div class="model-name dim" id="model-subagent-label">--</div>
228
- <div class="model-sub" id="model-subagent-sub">SUBAGENTS</div>
229
- </div>
213
+ <div class="model-toggle" id="model-toggle">
214
+ <button class="model-toggle-btn" id="toggle-local">Local</button>
215
+ <button class="model-toggle-btn" id="toggle-api">API</button>
230
216
  </div>
217
+ <div class="model-status" id="model-status">loading…</div>
231
218
  </div>
232
219
 
233
220
  <!-- Scheduling Panel -->
@@ -599,7 +586,7 @@
599
586
  <select class="subagent-form-select" id="subagent-model">
600
587
  <option value="">Default</option>
601
588
  <option value="anthropic/claude-sonnet-4-6">Claude Sonnet 4.6</option>
602
- <option value="ollama/glm-4.7-flash:latest">GLM 4.7 Flash</option>
589
+ <option value="ollama/gpt-oss:120b">GPT-OSS 120B</option>
603
590
  <option value="ollama/qwen2.5:32b">Qwen 2.5 32B</option>
604
591
  </select>
605
592
  </div>
@@ -344,7 +344,7 @@ let asoDoneTimer = null;
344
344
 
345
345
  const ASO_STATES = {
346
346
  idle: { state: "idle", label: "STANDBY", sub: "Awaiting your prompt" },
347
- waiting: { state: "waiting", label: "WAITING", sub: "Sending to Symi\u2026" },
347
+ waiting: { state: "waiting", label: "WAITING", sub: "Sending to Landman\u2026" },
348
348
  thinking: { state: "thinking", label: "PROCESSING", sub: "Reasoning through request" },
349
349
  streaming: { state: "streaming", label: "RESPONDING", sub: "Generating response" },
350
350
  done: { state: "done", label: "COMPLETE", sub: "Response ready" },
@@ -1,122 +1,53 @@
1
- // ── Model Routing Panel ───────────────────────────────────────────────
2
- // Fetches live config + model catalog from the gateway, populates a
3
- // dropdown for switching the primary model, and displays the current
4
- // subagent model as read-only.
1
+ // ── Model Routing Toggle ─────────────────────────────────────────────
2
+ // Two-state toggle: Local (ollama) API (anthropic)
5
3
 
6
4
  (function () {
7
- const primaryLabel = document.getElementById("model-primary-label");
8
- const primarySub = document.getElementById("model-primary-sub");
9
- const subagentLabel = document.getElementById("model-subagent-label");
10
- const subagentSub = document.getElementById("model-subagent-sub");
11
- const selectEl = document.getElementById("model-select");
5
+ const MODELS = {
6
+ local: "ollama/gpt-oss:120b",
7
+ api: "anthropic/claude-sonnet-4-6",
8
+ };
12
9
 
13
- if (!selectEl) {
10
+ const btnLocal = document.getElementById("toggle-local");
11
+ const btnApi = document.getElementById("toggle-api");
12
+ const statusEl = document.getElementById("model-status");
13
+
14
+ if (!btnLocal || !btnApi) {
14
15
  return;
15
16
  }
16
17
 
17
- let currentHash = null; // baseHash for config.patch concurrency
18
-
19
- // ── Helpers ──────────────────────────────────────────────────────
20
- function displayName(entry) {
21
- return entry.name || entry.id.split("/").pop();
22
- }
18
+ let currentHash = null;
23
19
 
24
- function providerLabel(provider) {
25
- return (provider || "unknown").toUpperCase();
20
+ function setActive(which) {
21
+ btnLocal.classList.toggle("active", which === "local");
22
+ btnApi.classList.toggle("active", which === "api");
26
23
  }
27
24
 
28
- function shortId(id) {
29
- // Strip provider prefix: "anthropic/claude-sonnet-4-6" → "claude-sonnet-4-6"
30
- const idx = id.indexOf("/");
31
- return idx >= 0 ? id.slice(idx + 1) : id;
32
- }
33
-
34
- // ── Load config + models on connect ──────────────────────────────
35
25
  async function init() {
36
26
  try {
37
- const [cfg, catalog] = await Promise.all([
38
- window.gateway.rpc("config.get", {}),
39
- window.gateway.rpc("models.list", {}),
40
- ]);
41
-
27
+ const cfg = await window.gateway.rpc("config.get", {});
42
28
  currentHash = cfg.hash || null;
43
-
44
29
  const primaryId = cfg.config?.agents?.defaults?.model?.primary || "";
45
- const subagentId = cfg.config?.agents?.defaults?.subagents?.model || "";
46
30
 
47
- // Update primary display
48
- const models = catalog.models || [];
49
- const primaryEntry = models.find((m) => m.id === primaryId);
50
- primaryLabel.textContent = primaryEntry
51
- ? displayName(primaryEntry)
52
- : shortId(primaryId) || "--";
53
- primarySub.textContent = primaryId
54
- ? "PRIMARY · " + providerLabel(primaryEntry?.provider || primaryId.split("/")[0])
55
- : "NOT SET";
56
-
57
- // Update subagent display
58
- const subEntry = models.find((m) => m.id === subagentId);
59
- subagentLabel.textContent = subEntry ? displayName(subEntry) : shortId(subagentId) || "--";
60
- subagentSub.textContent = subagentId
61
- ? "SUBAGENTS · " + providerLabel(subEntry?.provider || subagentId.split("/")[0])
62
- : "SUBAGENTS";
63
-
64
- // Populate dropdown grouped by provider
65
- populateSelect(models, primaryId);
31
+ if (primaryId === MODELS.local) {
32
+ setActive("local");
33
+ } else if (primaryId === MODELS.api) {
34
+ setActive("api");
35
+ } else {
36
+ setActive("");
37
+ }
38
+ statusEl.textContent = "";
66
39
  } catch (err) {
67
40
  console.warn("[models] init failed:", err.message);
68
- primaryLabel.textContent = "Error";
69
- primarySub.textContent = "COULD NOT LOAD";
70
- }
71
- }
72
-
73
- function populateSelect(models, currentId) {
74
- selectEl.innerHTML = "";
75
-
76
- // Group by provider
77
- const groups = {};
78
- for (const m of models) {
79
- const prov = m.provider || "unknown";
80
- if (!groups[prov]) {
81
- groups[prov] = [];
82
- }
83
- groups[prov].push(m);
84
- }
85
-
86
- // Sort providers alphabetically so Anthropic comes before Ollama
87
- const sortedProviders = Object.keys(groups).toSorted();
88
-
89
- for (const prov of sortedProviders) {
90
- const optgroup = document.createElement("optgroup");
91
- optgroup.label = providerLabel(prov);
92
-
93
- for (const m of groups[prov]) {
94
- const opt = document.createElement("option");
95
- opt.value = m.id;
96
- opt.textContent = displayName(m);
97
- if (m.id === currentId) {
98
- opt.selected = true;
99
- }
100
- optgroup.appendChild(opt);
101
- }
102
- selectEl.appendChild(optgroup);
41
+ statusEl.textContent = "error loading";
103
42
  }
104
43
  }
105
44
 
106
- // ── Handle model switch ──────────────────────────────────────────
107
- selectEl.addEventListener("change", async () => {
108
- const newId = selectEl.value;
109
- if (!newId) {
110
- return;
111
- }
112
-
113
- // Optimistic UI update
114
- const selectedOpt = selectEl.options[selectEl.selectedIndex];
115
- primaryLabel.textContent = selectedOpt.textContent;
116
- primarySub.textContent = "SWITCHING...";
45
+ async function switchModel(which) {
46
+ const newId = MODELS[which];
47
+ setActive(which);
48
+ statusEl.textContent = "switching…";
117
49
 
118
50
  try {
119
- // Re-fetch config to get fresh hash before patching
120
51
  const freshCfg = await window.gateway.rpc("config.get", {});
121
52
  currentHash = freshCfg.hash;
122
53
 
@@ -127,22 +58,18 @@
127
58
  }),
128
59
  });
129
60
 
130
- primarySub.textContent = "RESTARTING...";
131
-
132
- // Gateway will restart via SIGUSR1 — the WebSocket will reconnect
133
- // and init() will be called again on the next 'gateway:connected'
61
+ statusEl.textContent = "restarting…";
134
62
  } catch (err) {
135
63
  console.warn("[models] switch failed:", err.message);
136
- primarySub.textContent = "SWITCH FAILED";
137
- // Re-init to restore correct state
64
+ statusEl.textContent = "switch failed";
138
65
  setTimeout(init, 1500);
139
66
  }
140
- });
67
+ }
141
68
 
142
- // ── Wire up ──────────────────────────────────────────────────────
143
- window.addEventListener("gateway:connected", () => init());
69
+ btnLocal.addEventListener("click", () => switchModel("local"));
70
+ btnApi.addEventListener("click", () => switchModel("api"));
144
71
 
145
- // If gateway is already connected when this script loads
72
+ window.addEventListener("gateway:connected", () => init());
146
73
  if (window.gateway && window.gateway.connected) {
147
74
  void init();
148
75
  }
@@ -1,4 +1,4 @@
1
- import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-MF6_6SCS.js";
1
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
4
4
  import { fileURLToPath } from "node:url";
@@ -4,27 +4,27 @@ import { d as sanitizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import "./registry-Cja8eT7G.js";
5
5
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
6
6
  import "./exec-CWkblSrI.js";
7
- import "./agent-scope-BRwEc2pG.js";
8
- import "./model-selection-B7KLlkW9.js";
7
+ import "./agent-scope-CgUHAtCo.js";
8
+ import "./model-selection-Bna6Ea2G.js";
9
9
  import "./github-copilot-token-DAu1a6BX.js";
10
10
  import "./boolean-BsqeuxE6.js";
11
11
  import "./env-DPCHYPeH.js";
12
12
  import "./message-channel-aT-I_DTX.js";
13
- import "./config-AVc1QpRD.js";
13
+ import "./config-HatzmzSF.js";
14
14
  import "./manifest-registry-C4BxOMWX.js";
15
- import { n as listChannelPlugins } from "./plugins-BAyxWQSz.js";
16
- import "./accounts-Cd816n6l.js";
17
- import "./bindings-ChzePa8q.js";
15
+ import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
16
+ import "./accounts-DDuIpcln.js";
17
+ import "./bindings-DFaVVCsf.js";
18
18
  import "./logging-w5jq5901.js";
19
- import "./client-CIYHP9fS.js";
20
- import "./call-DiLX2POZ.js";
21
- import "./pairing-token-AV-MMfVE.js";
19
+ import "./client-Cnoh7nRo.js";
20
+ import "./call-DAcmbtXf.js";
21
+ import "./pairing-token-CX3NN_qj.js";
22
22
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
23
23
  import "./progress-jIePzvGA.js";
24
24
  import { n as formatDurationHuman } from "./format-duration-D0B0Uo-I.js";
25
25
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-BUClb97_.js";
26
26
  import { n as parsePositiveIntOrUndefined } from "./helpers-By2rxBQ5.js";
27
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CPJvpktM.js";
27
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-fojfvlNM.js";
28
28
 
29
29
  //#region src/cli/cron-cli/shared.ts
30
30
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -4,25 +4,25 @@ import { B as theme, R as colorize, S as shortenHomePath, U as getResolvedLogger
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
7
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-AVc1QpRD.js";
7
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-HatzmzSF.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
9
9
  import { u as resolveGatewayBindHost } from "./ws-C7EXRv8z.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-B741uFtk.js";
11
- import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-OZQlocB7.js";
12
- import { n as callGateway } from "./call-DiLX2POZ.js";
11
+ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
12
+ import { n as callGateway } from "./call-DAcmbtXf.js";
13
13
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
14
14
  import { n as withProgress } from "./progress-jIePzvGA.js";
15
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-KDMJj8FR.js";
16
- import { n as isWSLEnv } from "./wsl-BbXxnokd.js";
15
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-y4rvYrnW.js";
16
+ import { n as isWSLEnv } from "./wsl-C4424szg.js";
17
17
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-C8_BLnaW.js";
18
18
  import { n as inheritOptionFromParent } from "./command-options-BtDai3oC.js";
19
- import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CbWCEgFq.js";
20
- import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service--qMN5DPm.js";
21
- import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-DJ99Nuea.js";
22
- import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-CLsHKdY5.js";
19
+ import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CNFxAJWo.js";
20
+ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cl74hx8J.js";
21
+ import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-D7yri0lq.js";
22
+ import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-TBjNlcr6.js";
23
23
  import { t as parsePort } from "./parse-port-Vm8F7Kus.js";
24
- import { t as readLastGatewayErrorLine } from "./diagnostics-D2yUMZN1.js";
25
- import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-ZJkNX0WL.js";
24
+ import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
25
+ import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CllGjsWo.js";
26
26
 
27
27
  //#region src/cli/daemon-cli/install.ts
28
28
  async function runDaemonInstall(opts) {
@@ -1,10 +1,10 @@
1
1
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
2
- import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-AVc1QpRD.js";
2
+ import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-HatzmzSF.js";
3
3
  import { a as NODE_SERVICE_MARKER, c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, g as resolveNodeWindowsTaskName, h as resolveNodeSystemdServiceName, i as NODE_SERVICE_KIND, m as resolveNodeLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, o as NODE_WINDOWS_TASK_SCRIPT_NAME, r as GATEWAY_SERVICE_MARKER } from "./constants-C8_BLnaW.js";
4
4
  import { n as isSupportedNodeVersion } from "./runtime-guard-B37eizu-.js";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
- import fsPromises from "node:fs/promises";
7
+ import fs from "node:fs/promises";
8
8
  import { execFile } from "node:child_process";
9
9
  import { promisify } from "node:util";
10
10
 
@@ -23,23 +23,23 @@ async function resolveCliEntrypointPathForService() {
23
23
  const normalized = path.resolve(argv1);
24
24
  const resolvedPath = await resolveRealpathSafe(normalized);
25
25
  if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(resolvedPath)) {
26
- await fsPromises.access(resolvedPath);
26
+ await fs.access(resolvedPath);
27
27
  if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(normalized) && normalized !== resolvedPath) try {
28
- await fsPromises.access(normalized);
28
+ await fs.access(normalized);
29
29
  return normalized;
30
30
  } catch {}
31
31
  return resolvedPath;
32
32
  }
33
33
  const distCandidates = buildDistCandidates(resolvedPath, normalized);
34
34
  for (const candidate of distCandidates) try {
35
- await fsPromises.access(candidate);
35
+ await fs.access(candidate);
36
36
  return candidate;
37
37
  } catch {}
38
38
  throw new Error(`Cannot find built CLI at ${distCandidates.join(" or ")}. Run "pnpm build" first, or use dev mode.`);
39
39
  }
40
40
  async function resolveRealpathSafe(inputPath) {
41
41
  try {
42
- return await fsPromises.realpath(inputPath);
42
+ return await fs.realpath(inputPath);
43
43
  } catch {
44
44
  return inputPath;
45
45
  }
@@ -99,7 +99,7 @@ async function resolveBinaryPath(binary) {
99
99
  try {
100
100
  const resolved = execFileSync(cmd, [binary], { encoding: "utf8" }).trim().split(/\r?\n/)[0]?.trim();
101
101
  if (!resolved) throw new Error("empty");
102
- await fsPromises.access(resolved);
102
+ await fs.access(resolved);
103
103
  return resolved;
104
104
  } catch {
105
105
  if (binary === "bun") throw new Error("Bun not found in PATH. Install bun: https://bun.sh");
@@ -118,7 +118,7 @@ async function resolveCliProgramArguments(params) {
118
118
  if (params.dev) {
119
119
  const repoRoot = resolveRepoRootForDev();
120
120
  const devCliPath = path.join(repoRoot, "src", "index.ts");
121
- await fsPromises.access(devCliPath);
121
+ await fs.access(devCliPath);
122
122
  return {
123
123
  programArguments: [
124
124
  isBunRuntime(execPath) ? execPath : await resolveBunPath(),
@@ -146,7 +146,7 @@ async function resolveCliProgramArguments(params) {
146
146
  }
147
147
  const repoRoot = resolveRepoRootForDev();
148
148
  const devCliPath = path.join(repoRoot, "src", "index.ts");
149
- await fsPromises.access(devCliPath);
149
+ await fs.access(devCliPath);
150
150
  if (isBunRuntime(execPath)) return {
151
151
  programArguments: [
152
152
  execPath,
@@ -259,7 +259,7 @@ function isSystemNodePath(nodePath, env = process.env, platform = process.platfo
259
259
  async function resolveSystemNodePath(env = process.env, platform = process.platform) {
260
260
  const candidates = buildSystemNodeCandidates(env, platform);
261
261
  for (const candidate of candidates) try {
262
- await fsPromises.access(candidate);
262
+ await fs.access(candidate);
263
263
  return candidate;
264
264
  } catch {}
265
265
  return null;
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, x as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
6
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-H1H1LiSQ.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DQYI3Fr-.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-CMPwkzmk.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-Ccv1YvCu.js";
9
9
  import { d as getChannelDock } from "./thinking-CdlENGRW.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BW5f05BR.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
@@ -2,15 +2,15 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as normalizeOptionalAccountId, h as normalizeAccountId } from "./session-key-DCt45XZa.js";
3
3
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-CwBUNbtz.js";
6
- import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-F_WFgwcy.js";
7
- import { t as getChannelDock } from "./dock-BYiRZSgZ.js";
8
- import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BAyxWQSz.js";
9
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-BBeKX7PX.js";
5
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DTf21kBI.js";
6
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-Dg88xE66.js";
7
+ import { t as getChannelDock } from "./dock-BhS32F6E.js";
8
+ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
9
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
10
10
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BuceUQDl.js";
11
11
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-1dhPX1NK.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-ZwP14ydw.js";
13
- import { a as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-Bq3a_Wnm.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-CEbN0fEm.js";
13
+ import { a as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-B6F9anOj.js";
14
14
  import { i as failDelivery, r as enqueueDelivery, t as ackDelivery } from "./delivery-queue-Df1uodAG.js";
15
15
 
16
16
  //#region src/plugins/hooks.ts
@@ -3,18 +3,18 @@ import { B as theme } from "./utils-B-0b9bGM.js";
3
3
  import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
- import "./agent-scope-BRwEc2pG.js";
7
- import "./model-selection-B7KLlkW9.js";
6
+ import "./agent-scope-CgUHAtCo.js";
7
+ import "./model-selection-Bna6Ea2G.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
11
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
12
- import "./config-AVc1QpRD.js";
12
+ import "./config-HatzmzSF.js";
13
13
  import "./manifest-registry-C4BxOMWX.js";
14
14
  import { r as isLoopbackHost } from "./ws-C7EXRv8z.js";
15
- import { Ft as approveDevicePairing, Rt as listDevicePairing, Wt as summarizeDeviceTokens } from "./client-CIYHP9fS.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DiLX2POZ.js";
17
- import "./pairing-token-AV-MMfVE.js";
15
+ import { Ft as approveDevicePairing, Rt as listDevicePairing, Wt as summarizeDeviceTokens } from "./client-Cnoh7nRo.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DAcmbtXf.js";
17
+ import "./pairing-token-CX3NN_qj.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
20
20
  import { t as renderTable } from "./table-BTgkRafz.js";
@@ -1,5 +1,5 @@
1
- import { s as resolveGatewayLogPaths } from "./service--qMN5DPm.js";
2
- import fsPromises from "node:fs/promises";
1
+ import { s as resolveGatewayLogPaths } from "./service-Cl74hx8J.js";
2
+ import fs from "node:fs/promises";
3
3
 
4
4
  //#region src/daemon/diagnostics.ts
5
5
  const GATEWAY_LOG_ERROR_PATTERNS = [
@@ -11,7 +11,7 @@ const GATEWAY_LOG_ERROR_PATTERNS = [
11
11
  ];
12
12
  async function readLastLogLine(filePath) {
13
13
  try {
14
- const lines = (await fsPromises.readFile(filePath, "utf8")).split(/\r?\n/).map((line) => line.trim());
14
+ const lines = (await fs.readFile(filePath, "utf8")).split(/\r?\n/).map((line) => line.trim());
15
15
  for (let i = lines.length - 1; i >= 0; i -= 1) if (lines[i]) return lines[i];
16
16
  return null;
17
17
  } catch {
@@ -20,8 +20,8 @@ async function readLastLogLine(filePath) {
20
20
  }
21
21
  async function readLastGatewayErrorLine(env) {
22
22
  const { stdoutPath, stderrPath } = resolveGatewayLogPaths(env);
23
- const stderrRaw = await fsPromises.readFile(stderrPath, "utf8").catch(() => "");
24
- const stdoutRaw = await fsPromises.readFile(stdoutPath, "utf8").catch(() => "");
23
+ const stderrRaw = await fs.readFile(stderrPath, "utf8").catch(() => "");
24
+ const stdoutRaw = await fs.readFile(stdoutPath, "utf8").catch(() => "");
25
25
  const lines = [...stderrRaw.split(/\r?\n/), ...stdoutRaw.split(/\r?\n/)].map((line) => line.trim());
26
26
  for (let i = lines.length - 1; i >= 0; i -= 1) {
27
27
  const line = lines[i];
@@ -3,21 +3,21 @@ import { B as theme, O as danger } from "./utils-B-0b9bGM.js";
3
3
  import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
- import "./agent-scope-BRwEc2pG.js";
7
- import "./model-selection-B7KLlkW9.js";
6
+ import "./agent-scope-CgUHAtCo.js";
7
+ import "./model-selection-Bna6Ea2G.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
- import { i as loadConfig } from "./config-AVc1QpRD.js";
12
+ import { i as loadConfig } from "./config-HatzmzSF.js";
13
13
  import "./manifest-registry-C4BxOMWX.js";
14
- import { t as getChannelPlugin } from "./plugins-BAyxWQSz.js";
15
- import "./accounts-Cd816n6l.js";
16
- import "./bindings-ChzePa8q.js";
14
+ import { t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
15
+ import "./accounts-DDuIpcln.js";
16
+ import "./bindings-DFaVVCsf.js";
17
17
  import "./logging-w5jq5901.js";
18
18
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
19
19
  import { t as formatHelpExamples } from "./help-format-B_-M23wP.js";
20
- import { n as resolveMessageChannelSelection } from "./channel-selection-DjfBv8kq.js";
20
+ import { n as resolveMessageChannelSelection } from "./channel-selection-DuWs0Aak.js";
21
21
  import { t as resolveChannelDefaultAccountId } from "./helpers-BcGbMZD1.js";
22
22
  import { t as renderTable } from "./table-BTgkRafz.js";
23
23
 
@@ -1,5 +1,5 @@
1
- import { l as normalizeStringEntries } from "./dock-BYiRZSgZ.js";
2
- import { i as readChannelAllowFromStore } from "./pairing-store-GiI_Y6RI.js";
1
+ import { l as normalizeStringEntries } from "./dock-BhS32F6E.js";
2
+ import { i as readChannelAllowFromStore } from "./pairing-store-BCNzdZKM.js";
3
3
 
4
4
  //#region src/security/dm-policy-shared.ts
5
5
  async function resolveDmAllowState(params) {
@@ -3,12 +3,12 @@ import { B as theme } from "./utils-B-0b9bGM.js";
3
3
  import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
- import "./agent-scope-BRwEc2pG.js";
7
- import "./model-selection-B7KLlkW9.js";
6
+ import "./agent-scope-CgUHAtCo.js";
7
+ import "./model-selection-Bna6Ea2G.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
- import { i as loadConfig } from "./config-AVc1QpRD.js";
11
+ import { i as loadConfig } from "./config-HatzmzSF.js";
12
12
  import "./manifest-registry-C4BxOMWX.js";
13
13
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-B2SPYrh4.js";
14
14
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
@@ -1,10 +1,10 @@
1
1
  import { l as escapeRegExp, m as normalizeE164 } from "./utils-B-0b9bGM.js";
2
2
  import { h as normalizeAccountId } from "./session-key-DCt45XZa.js";
3
3
  import { f as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER, o as getChatChannelMeta } from "./registry-Cja8eT7G.js";
4
- import { f as resolveSlackAccount, o as normalizeWhatsAppTarget, p as resolveSlackReplyToMode, u as resolveTelegramAccount, v as resolveDiscordAccount } from "./plugins-BAyxWQSz.js";
5
- import { n as resolveWhatsAppAccount } from "./accounts-Cd816n6l.js";
6
- import { t as resolveIMessageAccount } from "./accounts-CokRskCl.js";
7
- import { n as resolveSignalAccount } from "./accounts-mN_EcgxC.js";
4
+ import { f as resolveSlackAccount, o as normalizeWhatsAppTarget, p as resolveSlackReplyToMode, u as resolveTelegramAccount, v as resolveDiscordAccount } from "./plugins-DKDeQZF0.js";
5
+ import { n as resolveWhatsAppAccount } from "./accounts-DDuIpcln.js";
6
+ import { t as resolveIMessageAccount } from "./accounts-bK-Yqdwx.js";
7
+ import { n as resolveSignalAccount } from "./accounts-DyJN4_vR.js";
8
8
 
9
9
  //#region src/shared/string-normalization.ts
10
10
  function normalizeStringEntries(list) {
@@ -7,7 +7,7 @@ import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
7
7
  import "./boolean-BsqeuxE6.js";
8
8
  import "./manifest-registry-C4BxOMWX.js";
9
9
  import { d as hasBinary } from "./frontmatter-DWQhtOo7.js";
10
- import "./skills-DqQUtOph.js";
10
+ import "./skills-6jdJQ5ZL.js";
11
11
  import "./redact-f-Q-hFt_.js";
12
12
  import "./errors-BF3TeRH2.js";
13
13
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
@@ -1,7 +1,7 @@
1
- import { t as resolveSymiPackageRoot } from "./symi-root-MF6_6SCS.js";
1
+ import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DeHoW7xO.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CZ0-L0Nx.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DQL62fp3.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BzDe-5CO.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DCxqBDYi.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7