@symerian/symi 2.2.8 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-tNElYrCH.js → accounts-CI6zQTJj.js} +14 -14
- package/dist/{accounts-qtxJ-6em.js → accounts-CJR8j_Kq.js} +1 -1
- package/dist/{accounts-CWktKM8a.js → accounts-ChTFYj8Q.js} +1 -1
- package/dist/{acp-cli-C39L0DlT.js → acp-cli-Cu4icbJT.js} +2 -2
- package/dist/{acp-cli-C3PXowAr.js → acp-cli-NJzARaHq.js} +2 -2
- package/dist/{active-listener-C9r8ZB9m.js → active-listener-D6sXIjAg.js} +1 -1
- package/dist/{agent-scope-BxoUQqgM.js → agent-scope-Bw1Ed8W9.js} +3 -3
- package/dist/{agents-DbnUoR_W.js → agents-DzuttgJU.js} +7 -7
- package/dist/{agents.config-qyBeLoW5.js → agents.config-2HlZJsR3.js} +1 -1
- package/dist/{agents.config-D4WnZfkE.js → agents.config-CSucty2T.js} +1 -1
- package/dist/{audio-preflight-Cv9Z1hfd.js → audio-preflight-BsfqyC31.js} +29 -29
- package/dist/{audio-preflight-BsS_1f9-.js → audio-preflight-C40mKAp7.js} +5 -5
- package/dist/{audio-preflight-D6xo_ucC.js → audio-preflight-CWnxkaac.js} +11 -11
- package/dist/{audio-preflight-Dx82ytdb.js → audio-preflight-xSDULLAj.js} +11 -11
- package/dist/{audit-F6tyY79q.js → audit-Byo5jCLN.js} +5 -5
- package/dist/{audit-CbxXbquQ.js → audit-CrITRV6w.js} +5 -5
- package/dist/{auth-choice-DYxn5otk.js → auth-choice-ChrEc3cZ.js} +4 -4
- package/dist/{auth-choice-TbOBqNzh.js → auth-choice-Cve09z1a.js} +4 -4
- package/dist/{banner-BGxrGU83.js → banner-BoLflN_R.js} +1 -1
- package/dist/{bindings-B7Ke6LJi.js → bindings-BU2hsBd9.js} +2 -2
- package/dist/{browser-cli-BsdB0_5b.js → browser-cli-BG4qPxpM.js} +3 -3
- package/dist/{browser-cli-CTQX5_tu.js → browser-cli-CPcnnsJJ.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +53 -53
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +53 -53
- package/dist/{call-C7OJzLEL.js → call-BcE47FtD.js} +1 -1
- package/dist/{call-BOIceRVF.js → call-CJaS1iRF.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-CsM_hJ_s.js → channel-activity-C9-gaquj.js} +1 -1
- package/dist/{channel-options-qDtKomWq.js → channel-options-Dkd1WQZx.js} +1 -1
- package/dist/{channel-options-8st4ZPAV.js → channel-options-DqgeO1f6.js} +1 -1
- package/dist/{channel-web-DQusem-l.js → channel-web-CJvDQ5Ea.js} +7 -7
- package/dist/{channels-cli-DZ9QSHcp.js → channels-cli-D0jjOLRb.js} +29 -29
- package/dist/{channels-cli-BfrCgEUI.js → channels-cli-DtqwJZWy.js} +30 -30
- package/dist/{chrome-Bf5N4gMh.js → chrome-CDJYxX5a.js} +8 -8
- package/dist/{chrome-CCN6Uf1O.js → chrome-Dq0bSDVx.js} +1 -1
- package/dist/{chrome-BtuJAYB6.js → chrome-DtPkPq9T.js} +1 -1
- package/dist/{chrome-CQNK4Of4.js → chrome-w3SLcQJF.js} +13 -13
- package/dist/{chunk-BW5f05BR.js → chunk-ClbN9Pqy.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-isTrIFLa.js → cli-CEtg8kql.js} +26 -26
- package/dist/{cli-D484UoYM.js → cli-CHOmeum9.js} +25 -25
- package/dist/{command-format-BaxDnULz.js → command-format-UKHV-j0K.js} +1 -1
- package/dist/{command-registry-D4kcHIMn.js → command-registry-Ba2z3dYq.js} +11 -11
- package/dist/{commands-registry-D7CTCQPm.js → commands-registry-VSmULp-g.js} +4 -4
- package/dist/{completion-cli-CtOpZu6z.js → completion-cli-BgX3MWVU.js} +1 -1
- package/dist/{completion-cli-1m5OvbnB.js → completion-cli-CD-306wt.js} +2 -2
- package/dist/{config-Btm9gODl.js → config-BmV60pPT.js} +28 -0
- package/dist/{config-CkPct-ND.js → config-CHwyw6l5.js} +28 -0
- package/dist/{config-CJigbfdK.js → config-DHBLS1Hl.js} +28 -0
- package/dist/{config-cli-BlpcRRjX.js → config-cli-Cz87-TYh.js} +2 -2
- package/dist/{config-cli-BVbYrdKA.js → config-cli-DAbXVRUL.js} +2 -2
- package/dist/{config-CT6a99bQ.js → config-eEaJddXj.js} +40 -12
- package/dist/{config-guard-Q2nmK4Xy.js → config-guard-BflmO0t7.js} +3 -3
- package/dist/{config-guard-Fe8ddF5U.js → config-guard-CPHvOzsC.js} +2 -2
- package/dist/{config-validation-CqVVl--v.js → config-validation-BITwrsxY.js} +1 -1
- package/dist/{config-validation-DXA9-y5q.js → config-validation-CmimHAES.js} +1 -1
- package/dist/{configure-D4WT6m8B.js → configure-0nrthdSf.js} +10 -10
- package/dist/{configure-C-o6fkN4.js → configure-D45ne4lm.js} +10 -10
- package/dist/{control-service-DWy5T1wZ.js → control-service-Bz7rxLWq.js} +4 -4
- package/dist/{control-service-D2-SfYYP.js → control-service-DEVN6FRR.js} +4 -4
- package/dist/control-ui/css/style.css +1437 -548
- package/dist/control-ui/index.html +912 -652
- package/dist/control-ui/js/app.js +82 -6
- package/dist/control-ui/js/debug.js +55 -0
- package/dist/control-ui/js/gateway.js +11 -0
- package/dist/control-ui/js/models.js +16 -1
- package/dist/control-ui/js/render.js +74 -1
- package/dist/control-ui/js/render.test.js +36 -35
- package/dist/control-ui/js/utils.js +6 -6
- package/dist/{cron-cli-DCjmF5-B.js → cron-cli-BP24xl6n.js} +3 -3
- package/dist/{cron-cli-BXgHvojs.js → cron-cli-DBIlCvp3.js} +3 -3
- package/dist/{daemon-cli-D-Ceof_K.js → daemon-cli-DscwlsKW.js} +6 -6
- package/dist/{daemon-cli-2Xzn9zI0.js → daemon-cli-wWnBIQtk.js} +6 -6
- package/dist/daemon-cli.js +28 -0
- package/dist/{daemon-runtime-DpFImSwP.js → daemon-runtime-2mwX-jqj.js} +1 -1
- package/dist/{daemon-runtime-Co0_hiZm.js → daemon-runtime-CfRwa6qh.js} +1 -1
- package/dist/{deliver-CBVqE05W.js → deliver-BH0l3UKW.js} +2 -2
- package/dist/{deliver-CeOnWRNZ.js → deliver-BmPK91JP.js} +20 -20
- package/dist/{deliver-PKvGnPCv.js → deliver-CXRSdUr1.js} +3 -3
- package/dist/{deliver-CuDHWgo8.js → deliver-CceEhg3d.js} +3 -3
- package/dist/{devices-cli-Sgz97CCh.js → devices-cli-BHiPx2c2.js} +2 -2
- package/dist/{devices-cli-gzdkKCIr.js → devices-cli-Dds-25Ve.js} +2 -2
- package/dist/{diagnostic-CI0kRQkt.js → diagnostic-C3nsWaw3.js} +1 -1
- package/dist/{directory-cli-B7qWiEB9.js → directory-cli-CpUByQew.js} +1 -1
- package/dist/{directory-cli-B3reyWxB.js → directory-cli-D6vlxPje.js} +1 -1
- package/dist/{dns-cli-w2PtF7dQ.js → dns-cli-BEub5qgQ.js} +1 -1
- package/dist/{dns-cli-CAyakH9y.js → dns-cli-Beyzdh3S.js} +1 -1
- package/dist/{doctor-completion-CU32z26S.js → doctor-completion-CcDVOtZ5.js} +1 -1
- package/dist/{doctor-completion-rtRPARP8.js → doctor-completion-CmGtqUHQ.js} +1 -1
- package/dist/{doctor-config-flow-Bvd_Aoem.js → doctor-config-flow-CA3eiKhd.js} +2 -2
- package/dist/{doctor-config-flow-q1cK5vqE.js → doctor-config-flow-QnaBd8kL.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BGR981x_.js → exec-approvals-cli--zyXYrNY.js} +4 -4
- package/dist/{exec-approvals-cli-qL61CX5W.js → exec-approvals-cli-BliRl8VB.js} +4 -4
- package/dist/extensionAPI.js +13 -13
- package/dist/{frontmatter-C_bv_0P8.js → frontmatter-DPlG6yha.js} +2 -2
- package/dist/{gateway-cli-dxsgPoqI.js → gateway-cli-BVN31fwu.js} +135 -45
- package/dist/{gateway-cli-D9tJexeo.js → gateway-cli-DajX3Pye.js} +134 -44
- package/dist/{gateway-rpc-o-EndnYx.js → gateway-rpc-BxkKeCZ0.js} +1 -1
- package/dist/{gateway-rpc-DjjmZ7bN.js → gateway-rpc-DfZSz5JF.js} +1 -1
- package/dist/{gemini-auth-CdSPHuLl.js → gemini-auth-CF48hUR9.js} +1 -1
- package/dist/{github-copilot-token-C_qUP7p5.js → github-copilot-token-DJqsJ2-r.js} +7 -7
- package/dist/{glass-ui-ws-BvSaDLuk.js → glass-ui-ws-CQG6acJl.js} +34 -34
- package/dist/{glass-ui-ws-BxliIaQO.js → glass-ui-ws-Z1IOT6Vc.js} +33 -33
- package/dist/{health-BpVkd1NR.js → health-D9eQW7fJ.js} +5 -5
- package/dist/{health-6atzBDlL.js → health-f056vLGT.js} +5 -5
- package/dist/{hooks-cli-BdV4KLxW.js → hooks-cli-CW-IRS72.js} +27 -27
- package/dist/{hooks-cli-A0zhogYG.js → hooks-cli-hJ4euq2R.js} +26 -26
- package/dist/{image-Crdjqg8r.js → image-CHzdaNJ4.js} +2 -2
- package/dist/{image-CAI2RIyk.js → image-CO4meYzg.js} +2 -2
- package/dist/{image-Bf75JOg6.js → image-D9uvDTrc.js} +2 -2
- package/dist/{image-ops-CvJzsyvE.js → image-ops-S8-8dAhx.js} +1 -1
- package/dist/{image-CAUuNGNO.js → image-rZ4x9VS9.js} +4 -4
- package/dist/index.js +34 -34
- package/dist/{ir-DccrnjsE.js → ir-CbFUkv_T.js} +4 -4
- package/dist/{lifecycle-core-S8m0j4NY.js → lifecycle-core-D6LYXpFj.js} +2 -2
- package/dist/{lifecycle-core-D7Ye5Yes.js → lifecycle-core-DIBHfMOL.js} +2 -2
- package/dist/llm-slug-generator.js +53 -53
- package/dist/{local-roots-DMwIh5cS.js → local-roots-C7OCYACU.js} +5 -5
- package/dist/{login-Bw5pRDS9.js → login-B8uiUAnV.js} +7 -7
- package/dist/{login-Cy0xKkFK.js → login-XprgoYoQ.js} +2 -2
- package/dist/{login-CLDr2P2d.js → login-dIlDkG4X.js} +2 -2
- package/dist/{login-qr-UgF5nhwc.js → login-qr-CIZk8uKX.js} +12 -12
- package/dist/{login-qr-B1vLxxOr.js → login-qr-CUErSLXH.js} +2 -2
- package/dist/{login-qr-x-m9V4_i.js → login-qr-CqPpNO1y.js} +2 -2
- package/dist/{login-qr-CJ3r_moH.js → login-qr-pbXdFORv.js} +2 -2
- package/dist/{login-CrnzK7Rc.js → login-tFW8qUTU.js} +2 -2
- package/dist/{logs-cli-DJIwkEZN.js → logs-cli-Du8FCgKK.js} +3 -3
- package/dist/{logs-cli-DoSU6ypE.js → logs-cli-xOzIPrHm.js} +3 -3
- package/dist/{manager-D_LwXbc6.js → manager-BoLr3xR_.js} +13 -13
- package/dist/{manifest-registry-D0IQ3WuX.js → manifest-registry-CneMHk0N.js} +19 -19
- package/dist/{markdown-tables-iMQQZu4Q.js → markdown-tables-DSHvnTLx.js} +1 -1
- package/dist/{memory-cli-B1eBVFD2.js → memory-cli-C2SWDd8g.js} +1 -1
- package/dist/{memory-cli-DKU7WTEa.js → memory-cli-Ca5r9AUb.js} +1 -1
- package/dist/{message-channel-Dz5lr5b0.js → message-channel-DbsRltF2.js} +1 -1
- package/dist/{model-auth-DK43VicI.js → model-auth-CwOuTuXl.js} +9 -9
- package/dist/{model-catalog-D2Q4fkGC.js → model-catalog-CqCsARJX.js} +2 -2
- package/dist/{model-catalog-67tJywj6.js → model-catalog-DvBJ8pMD.js} +3 -3
- package/dist/{model-picker-Cv_lMtfR.js → model-picker-D5nCutGW.js} +2 -2
- package/dist/{model-picker-C5-xr7Au.js → model-picker-Ddo3jHe-.js} +2 -2
- package/dist/{models-cli-BIM5pEpQ.js → models-cli-B2ticsCM.js} +29 -29
- package/dist/{models-cli-DlUDMBlo.js → models-cli-D9bG44Ao.js} +29 -29
- package/dist/{models-config--wR0kLo6.js → models-config-CCMpqFyr.js} +1 -1
- package/dist/{models-config-CZKT8W0M.js → models-config-qyOXrOli.js} +1 -1
- package/dist/{models-CBEZc-xT.js → models-nO_t1uzp.js} +8 -8
- package/dist/{node-cli-D8nG9EDD.js → node-cli-C_G-Q3h-.js} +9 -9
- package/dist/{node-cli-DGmvLskU.js → node-cli-DSEhcjUV.js} +9 -9
- package/dist/{nodes-cli-B058F0sZ.js → nodes-cli-BIPA9B8G.js} +3 -3
- package/dist/{nodes-cli-BZ5aitST.js → nodes-cli-BcnuJajV.js} +3 -3
- package/dist/{onboard-BXp3rpw1.js → onboard-BDbpfrZj.js} +7 -7
- package/dist/{onboard-DXEF3bw2.js → onboard-BtZ9WqhJ.js} +7 -7
- package/dist/{onboard-channels-OKIylMMu.js → onboard-channels-CHE8nfNA.js} +1 -1
- package/dist/{onboard-channels-qLCTzt3v.js → onboard-channels-HubyUVjT.js} +1 -1
- package/dist/{onboard-custom-BiDvzYz-.js → onboard-custom-C7O-zfQ1.js} +2 -2
- package/dist/{onboard-custom-Bcifi3N2.js → onboard-custom-DdWPfzJO.js} +2 -2
- package/dist/{onboard-helpers-DHgVt6rY.js → onboard-helpers-ZmZYzlq3.js} +2 -2
- package/dist/{onboard-helpers-Cammg0Xb.js → onboard-helpers-_pit1NZW.js} +2 -2
- package/dist/{onboard-remote-BnOKv_rG.js → onboard-remote-R1g6st9i.js} +1 -1
- package/dist/{onboard-remote-CPI1Dsgo.js → onboard-remote-zUjD7UtM.js} +1 -1
- package/dist/{onboard-skills-5R6rRZiZ.js → onboard-skills-BB0YhUmF.js} +1 -1
- package/dist/{onboard-skills-LkCNrrQL.js → onboard-skills-ByO_wSN5.js} +1 -1
- package/dist/{onboarding-HJJedJ3u.js → onboarding-DtP0sps0.js} +10 -10
- package/dist/{onboarding-m_e9LePg.js → onboarding-eVb5gvwo.js} +10 -10
- package/dist/{onboarding.finalize-CbjQ-91D.js → onboarding.finalize-CetxPTxL.js} +31 -31
- package/dist/{onboarding.finalize-CGVAc5-e.js → onboarding.finalize-D8035U2E.js} +33 -33
- package/dist/{onboarding.gateway-config-BOUh5scQ.js → onboarding.gateway-config-BQFO9a_h.js} +4 -4
- package/dist/{onboarding.gateway-config-xF_Hfx5r.js → onboarding.gateway-config-CJUgDC6Y.js} +4 -4
- package/dist/{outbound-DzTvHYT8.js → outbound-3MZ12YrQ.js} +1 -1
- package/dist/{outbound-DHZ4Sktx.js → outbound-DB5Zus0-.js} +1 -1
- package/dist/{outbound-attachment-DjNDa3zn.js → outbound-attachment-Co2diKdP.js} +2 -2
- package/dist/{outbound-DeJ-MyLv.js → outbound-drXCcH8D.js} +1 -1
- package/dist/{outbound-GuMlcXXN.js → outbound-opDNxv-l.js} +7 -7
- package/dist/{pairing-cli-BunHc86C.js → pairing-cli-CBLfGvqW.js} +1 -1
- package/dist/{pairing-cli-DNAQqsxT.js → pairing-cli-CQRAnpvm.js} +1 -1
- package/dist/{paths-DLyHUt31.js → paths-Cb87-LzP.js} +1 -1
- package/dist/{paths-Cce4PUkG.js → paths-CySxpNhH.js} +5 -5
- package/dist/{pi-auth-json-0SYBFZTt.js → pi-auth-json-DPWPoruO.js} +8 -8
- package/dist/{pi-auth-json-C3yexKNU.js → pi-auth-json-DayrlDg_.js} +1 -1
- package/dist/{pi-embedded-Cd7Gd0Am.js → pi-embedded-BY-dBus2.js} +250 -39
- package/dist/{pi-embedded-C4Cb6hc3.js → pi-embedded-Dc3muKtS.js} +374 -163
- package/dist/{pi-embedded-helpers-B86ZS0eB.js → pi-embedded-helpers-B2z46qeM.js} +52 -52
- package/dist/{pi-embedded-helpers-UsrsQKwr.js → pi-embedded-helpers-CNPyv_ax.js} +1 -1
- package/dist/{pi-embedded-helpers-B2k8Fh9T.js → pi-embedded-helpers-DE9h5GAu.js} +1 -1
- package/dist/{pi-embedded-helpers-xjO9noTy.js → pi-embedded-helpers-lgx_U5KS.js} +5 -5
- package/dist/{pi-tools.policy-DKHZCIA2.js → pi-tools.policy-CIDBbw6x.js} +2 -2
- package/dist/{pi-tools.policy-CwzwRugl.js → pi-tools.policy-De00gPXt.js} +2 -2
- package/dist/{plugin-registry-DOEhQFQJ.js → plugin-registry-CuoX8mar.js} +2 -2
- package/dist/{plugin-registry-D0iAVBbj.js → plugin-registry-fxcvycGr.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-B8X7BvQ5.js → audio-preflight-DoQQKlxa.js} +5 -5
- package/dist/plugin-sdk/{channel-web-B92UQWLf.js → channel-web-CV1KLtZh.js} +7 -7
- package/dist/plugin-sdk/{chrome-DxJPopF7.js → chrome-C7c_0I5M.js} +1 -1
- package/dist/plugin-sdk/config/model-profiles-builtin.d.ts +9 -0
- package/dist/plugin-sdk/config/model-profiles.d.ts +56 -0
- package/dist/plugin-sdk/config/resolve-model-profile.d.ts +15 -0
- package/dist/plugin-sdk/config/types.models.d.ts +28 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +54 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +27 -0
- package/dist/plugin-sdk/{config-B0SemGqU.js → config-DDkdiUOR.js} +28 -0
- package/dist/plugin-sdk/{deliver-C51eaClJ.js → deliver-BUns_L9e.js} +2 -2
- package/dist/plugin-sdk/{image-VGrV0d09.js → image-BOYy0Ump.js} +2 -2
- package/dist/plugin-sdk/index.js +17 -17
- package/dist/plugin-sdk/{login-CG8p5_rW.js → login-Bh3DZPam.js} +2 -2
- package/dist/plugin-sdk/{login-qr-buvA9Dp8.js → login-qr-DbR7odSr.js} +2 -2
- package/dist/plugin-sdk/{outbound-LqNDFLO5.js → outbound-rF6G8Xpr.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-IkpqVZZa.js → pi-embedded-helpers-BveUP4hk.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-CjPImm6b.js → pw-ai-DjGUsee-.js} +2 -2
- package/dist/plugin-sdk/{replies-BLMuwbVf.js → replies-fI39rPGa.js} +1 -1
- package/dist/plugin-sdk/{reply-BS99Apig.js → reply-C4mijdMZ.js} +246 -35
- package/dist/plugin-sdk/{runner-pmvwohi9.js → runner-BVqnEfNe.js} +2 -2
- package/dist/plugin-sdk/{send-D8Zs62CE.js → send-BHbXh8Ly.js} +1 -1
- package/dist/plugin-sdk/{send-DOXV-BQw.js → send-BMfJIhCk.js} +1 -1
- package/dist/plugin-sdk/{send-BinD92v_.js → send-BtANzsAo.js} +1 -1
- package/dist/plugin-sdk/{send-cUp3Bf9t.js → send-Bxdu6ZZy.js} +1 -1
- package/dist/plugin-sdk/{send-BOrHNGsc.js → send-D6LMZJ_h.js} +1 -1
- package/dist/plugin-sdk/{session-B0bWB4Wf.js → session-kI0tzViQ.js} +1 -1
- package/dist/plugin-sdk/{web-CF79DBe3.js → web-B17UUsjm.js} +17 -17
- package/dist/plugin-sdk/{whatsapp-actions-Bp33E4JW.js → whatsapp-actions-CcBzDuL-.js} +2 -2
- package/dist/{plugins-DQYI3Fr-.js → plugins-C4C9637U.js} +9 -9
- package/dist/{plugins-cli-6nKHKPj8.js → plugins-cli-4OqSGHp-.js} +26 -26
- package/dist/{plugins-cli-DU06_0f6.js → plugins-cli-BbE_Qnlk.js} +27 -27
- package/dist/{program-D1icw1T9.js → program-DkXOdfM2.js} +33 -33
- package/dist/{program-context-Bqybavvo.js → program-context-0bDxGpMx.js} +38 -38
- package/dist/{prompt-select-styled-DptZ40df.js → prompt-select-styled-DJkRn30j.js} +14 -14
- package/dist/{prompt-select-styled-Cj3jTVJJ.js → prompt-select-styled-_6KbTFXs.js} +14 -14
- package/dist/{provider-auth-helpers-CDnMFdFw.js → provider-auth-helpers-Bnkj4QXS.js} +2 -2
- package/dist/{provider-auth-helpers-BVSJctmE.js → provider-auth-helpers-BpVAdwK_.js} +2 -2
- package/dist/{push-apns-DtKC_-eP.js → push-apns-C0wMP1XU.js} +1 -1
- package/dist/{push-apns-CpUJIlI7.js → push-apns-EKnCwrqK.js} +1 -1
- package/dist/{pw-ai-DgDn1s1W.js → pw-ai-CbyO1fbh.js} +2 -2
- package/dist/{pw-ai-C2hGnRfL.js → pw-ai-De-KR9_s.js} +2 -2
- package/dist/{pw-ai-CsvxsEwI.js → pw-ai-DqL87js3.js} +2 -2
- package/dist/{pw-ai-BcniFyZm.js → pw-ai-PiQUncix.js} +11 -11
- package/dist/{qmd-manager-QHUP-_em.js → qmd-manager-DdZh9PHs.js} +7 -7
- package/dist/{qr-cli-Deyb-bdE.js → qr-cli-jd9LdZpq.js} +1 -1
- package/dist/{qr-cli-DvDQ233a.js → qr-cli-mgnfD5ce.js} +1 -1
- package/dist/{register.agent-DesQbi0N.js → register.agent-B0S1CJEx.js} +32 -32
- package/dist/{register.agent-DszKb7kT.js → register.agent-B48Vf_DK.js} +34 -34
- package/dist/{register.configure-CPZ2pkCL.js → register.configure-Drr3E9OG.js} +36 -36
- package/dist/{register.configure-CiHbtNBW.js → register.configure-Wyv7vb24.js} +37 -37
- package/dist/{register.maintenance-BBjwt-34.js → register.maintenance-Cmf17EW0.js} +34 -34
- package/dist/{register.maintenance-hUQ3a2-X.js → register.maintenance-TgjAQ4E0.js} +36 -36
- package/dist/{register.message-BZ_faykn.js → register.message-BcsPnPvW.js} +26 -26
- package/dist/{register.message-BJG43ey1.js → register.message-Dwv2puIB.js} +27 -27
- package/dist/{register.onboard-CtDGWgek.js → register.onboard-BDGaSyq2.js} +32 -32
- package/dist/{register.onboard-BuvppItf.js → register.onboard-C8w7_w93.js} +33 -33
- package/dist/{register.setup-09FZm-3U.js → register.setup-CMGSNKXS.js} +33 -33
- package/dist/{register.setup-CK_rXwht.js → register.setup-CiEuZOlI.js} +32 -32
- package/dist/{register.status-health-sessions-CYBXZfzw.js → register.status-health-sessions-C8p0uINc.js} +29 -29
- package/dist/{register.status-health-sessions-Dq1GhVZd.js → register.status-health-sessions-zKjmZyOs.js} +31 -31
- package/dist/{register.subclis-oaqsIg7c.js → register.subclis-CofZE_pt.js} +28 -28
- package/dist/{registry-CK4e9hn8.js → registry-DP24za6g.js} +17 -17
- package/dist/{replies-CVeSBasT.js → replies-DO80zq73.js} +1 -1
- package/dist/{replies-9jiCJtyj.js → replies-DpPvWiGF.js} +3 -3
- package/dist/{replies-Dfqu9AXG.js → replies-ZYtI9jr0.js} +1 -1
- package/dist/{replies-ByiY6ZyB.js → replies-vgss3_QA.js} +1 -1
- package/dist/{reply-BnAPNcvn.js → reply-SBi_U7P7.js} +258 -47
- package/dist/{reply-prefix-XlyuyChD.js → reply-prefix-CtL0omgM.js} +1 -1
- package/dist/{resolve-route-CZ-1eqw0.js → resolve-route-BVikmvWO.js} +4 -4
- package/dist/{retry-Cly39XZB.js → retry-dGG-MbxL.js} +1 -1
- package/dist/{routes-br_73dY_.js → routes-BFw2-yAN.js} +3 -3
- package/dist/{routes-BZCzIvY1.js → routes-Ba9CUQ8M.js} +3 -3
- package/dist/{rpc-CbirYKS1.js → rpc-BfhojW8g.js} +1 -1
- package/dist/{rpc-BsIk35AA.js → rpc-BjLadgzu.js} +1 -1
- package/dist/{run-main-g9-g4T_a.js → run-main-BJaDO3WW.js} +44 -44
- package/dist/{runner-BPcjrrjx.js → runner-BORIO-D3.js} +3 -3
- package/dist/{runner-M7hSmkG1.js → runner-CCSMfQee.js} +9 -9
- package/dist/{runner-Iw-AU75D.js → runner-CUglpiFP.js} +3 -3
- package/dist/{runner-DFFbD4Jj.js → runner-DUBExAb5.js} +2 -2
- package/dist/{sandbox-C9zB9HTn.js → sandbox-BFzSUT19.js} +5 -5
- package/dist/{sandbox-BnivFdOs.js → sandbox-C-T6hOMv.js} +5 -5
- package/dist/{sandbox-cli-6RGP0CNN.js → sandbox-cli-BllVdQzR.js} +6 -6
- package/dist/{sandbox-cli-Dl8IMlpe.js → sandbox-cli-Cj5__-gh.js} +6 -6
- package/dist/{security-cli-BHG6kV1z.js → security-cli-BFLtWWHy.js} +9 -9
- package/dist/{security-cli-CtgTAznE.js → security-cli-Dmb1k47A.js} +9 -9
- package/dist/{send-uxuOCFdA.js → send-BArQpbtx.js} +1 -1
- package/dist/{send-C1DE47RQ.js → send-C1IYd3g7.js} +1 -1
- package/dist/{send-CdxBNofn.js → send-C4Ucr8ep.js} +1 -1
- package/dist/{send-Z6uznj5j.js → send-CHEOWVc8.js} +6 -6
- package/dist/{send-DB2tDd9M.js → send-CPF8hSFp.js} +1 -1
- package/dist/{send-DKvfyTNM.js → send-CR5fRDgW.js} +1 -1
- package/dist/{send-CU_BDzc0.js → send-CXxQ_f7L.js} +1 -1
- package/dist/{send-CkYljROn.js → send-CY8oqBFg.js} +1 -1
- package/dist/{send-Bf-tLRDW.js → send-CZr1hVHY.js} +1 -1
- package/dist/{send-DP6zL1r4.js → send-CukP8Vq4.js} +1 -1
- package/dist/{send-DKB9atcf.js → send-Cutb0ZDY.js} +1 -1
- package/dist/{send-DoiQ-lVY.js → send-D-hWrHoH.js} +1 -1
- package/dist/{send-rirP23D6.js → send-DK_pm_7l.js} +1 -1
- package/dist/{send-Dv5K7btg.js → send-DTTtmhjA.js} +1 -1
- package/dist/{send-DUWSrao-.js → send-DXW6mdgR.js} +1 -1
- package/dist/{send-KhJZHqoK.js → send-DbcLJb0P.js} +7 -7
- package/dist/{send-B2c8xd6F.js → send-DeEosX8F.js} +18 -18
- package/dist/{send-Dp3_Z9LN.js → send-DwKJK3sM.js} +10 -10
- package/dist/{send-Bv3GF77o.js → send-tanEMpHN.js} +1 -1
- package/dist/{send-IjhsR55j.js → send-zSarozV2.js} +6 -6
- package/dist/{server-context-Bn72icrR.js → server-context-CEpFjqSk.js} +5 -5
- package/dist/{server-context-BogDcclm.js → server-context-H24IFajW.js} +5 -5
- package/dist/{server-methods-CYVVBHwG.js → server-methods-Cm6W01ne.js} +15 -15
- package/dist/{server-methods-1TVNg0k5.js → server-methods-CyFB3XQf.js} +16 -16
- package/dist/{server-node-events-CPTRFOMY.js → server-node-events-Bhgt3xLw.js} +26 -26
- package/dist/{server-node-events-Cvqw-9rw.js → server-node-events-CX1plxJz.js} +27 -27
- package/dist/{session-CRf_exZ0.js → session-Ckw7cXeP.js} +1 -1
- package/dist/{session-eZHBxAr-.js → session-DIBTkyvE.js} +1 -1
- package/dist/{session-BvpMfKh-.js → session-DV1MNlbV.js} +8 -8
- package/dist/{session-C4z7523K.js → session-DtMfLMdP.js} +1 -1
- package/dist/{session-utils-D5F7F--L.js → session-utils-Bka9dR4m.js} +3 -3
- package/dist/{sessions-Cb4Hj78H.js → sessions-CJXnZVjR.js} +1 -1
- package/dist/{sessions-B2cR2hug.js → sessions-DgYpBvse.js} +1 -1
- package/dist/{sessions-DHCZbuoQ.js → sessions-WBoXk-Ag.js} +3 -3
- package/dist/{shared-zPQArNFi.js → shared-D8K9MkWg.js} +1 -1
- package/dist/{shared-CxsYh_6Q.js → shared-Knv1hy6h.js} +1 -1
- package/dist/{skill-commands-BJMb_psG.js → skill-commands-D610IKhm.js} +9 -9
- package/dist/{skills-cli-urhcJuu8.js → skills-cli-BZTBLQTt.js} +1 -1
- package/dist/{skills-cli-XmXhTH3z.js → skills-cli-CkTGL9dR.js} +1 -1
- package/dist/{skills-BFekKL7i.js → skills-o5WVqM4V.js} +21 -21
- package/dist/{sqlite-DRbx2dhW.js → sqlite-6H6Zw1cs.js} +4 -4
- package/dist/{status-B7VIwi53.js → status-BBpD_1pG.js} +10 -10
- package/dist/{status-CDpLvmFd.js → status-BdmYV3_x.js} +2 -2
- package/dist/{status-CCrlpUEA.js → status-CwXg8OO1.js} +9 -9
- package/dist/{status-BS3y9HjF.js → status-U_1mE-yc.js} +2 -2
- package/dist/{status.update-D8lzj5TK.js → status.update-DbmZz0Aq.js} +1 -1
- package/dist/{status.update-Cu6R3wwz.js → status.update-DtwCUTf-.js} +1 -1
- package/dist/{store-C0wvOkae.js → store-vVE6N2mH.js} +2 -2
- package/dist/{subagent-registry-BSgPGZxs.js → subagent-registry-Du9P0G2U.js} +259 -48
- package/dist/{subsystem-Bs9YvKLa.js → subsystem-DgpxyDQ_.js} +1 -1
- package/dist/{system-cli-BXvpbG10.js → system-cli-D_EIZpBm.js} +3 -3
- package/dist/{system-cli-CD1cvYkc.js → system-cli-UMsMEurS.js} +3 -3
- package/dist/{systemd-hints-Cn-fd1AF.js → systemd-hints-BR6gChwm.js} +1 -1
- package/dist/{systemd-hints-BMl55p2_.js → systemd-hints-sQipWGd1.js} +1 -1
- package/dist/{tables-DuZspiBu.js → tables-BIWsCKXJ.js} +1 -1
- package/dist/{target-errors-Be1SwYlW.js → target-errors-DyItGyW9.js} +2 -2
- package/dist/{thinking-CdlENGRW.js → thinking-Ni0HF-w6.js} +5 -5
- package/dist/{tokens-H1H1LiSQ.js → tokens-c_SLAkVb.js} +1 -1
- package/dist/{tool-images-DXB7tqWi.js → tool-images-DBCfXdli.js} +2 -2
- package/dist/{tool-loop-detection-Cs8_HCsx.js → tool-loop-detection-Bbc9OPFR.js} +3 -3
- package/dist/{tui-OUhw8eT1.js → tui-BJB80muc.js} +4 -4
- package/dist/{tui-DJefgPwz.js → tui-CriznorL.js} +4 -4
- package/dist/{tui-cli-_ohekmDR.js → tui-cli-C7Q9lK8Q.js} +9 -9
- package/dist/{tui-cli-C-CoSVeQ.js → tui-cli-CSIdfCTR.js} +9 -9
- package/dist/{update-cli-DL3Tb3b0.js → update-cli-DJzF_9UX.js} +37 -37
- package/dist/{update-cli-C8sM6pAA.js → update-cli-_45TJ3hZ.js} +39 -39
- package/dist/{update-runner-ChoWv-od.js → update-runner-8Ac4bJ1w.js} +1 -1
- package/dist/{update-runner-Dm7EwGFW.js → update-runner-BSQFv9b6.js} +1 -1
- package/dist/{web-sQrQA6or.js → web-BZSI7b07.js} +29 -29
- package/dist/{web-0w8t_r2B.js → web-BqRsq6mP.js} +57 -57
- package/dist/{web-UEqiaso9.js → web-C1Zn8_qW.js} +16 -16
- package/dist/{web-VbydcdAk.js → web-w-vV1rCZ.js} +29 -29
- package/dist/{webhooks-cli-B8gdUXw-.js → webhooks-cli-ChiCyIaD.js} +1 -1
- package/dist/{webhooks-cli-DpiLQ_-A.js → webhooks-cli-cD58DWAE.js} +1 -1
- package/dist/{whatsapp-actions-DrReF5st.js → whatsapp-actions-C8nNH4ax.js} +2 -2
- package/dist/{whatsapp-actions-xolxich-.js → whatsapp-actions-DbcsdOH3.js} +2 -2
- package/dist/{whatsapp-actions-D_KIOhRu.js → whatsapp-actions-DvhI5-DC.js} +2 -2
- package/dist/{whatsapp-actions-BVZaCecm.js → whatsapp-actions-oRQjcdQe.js} +23 -23
- package/dist/{with-timeout-vknUanNX.js → with-timeout-Di0nddLY.js} +1 -1
- package/dist/{with-timeout-DIHZxCIl.js → with-timeout-gmK6RciS.js} +1 -1
- package/dist/{workspace-wAaHI8-5.js → workspace-CbvamIU6.js} +6 -6
- package/docs/reference/templates/CONFIG-SCHEMA.md +173 -0
- package/docs/reference/templates/SYMICORE.md +24 -0
- package/package.json +1 -1
|
@@ -27,7 +27,11 @@ let watchdogTimer = null; // fires if no activity for WATCHDOG_MS
|
|
|
27
27
|
let elapsedTimer = null; // ticks every second to show run duration
|
|
28
28
|
let activityStart = 0; // timestamp of when current run began
|
|
29
29
|
let elapsedBaseText = ""; // base sub-text for the elapsed display
|
|
30
|
-
|
|
30
|
+
let WATCHDOG_MS = 300000; // 300 seconds of silence → failure (profile-overridable)
|
|
31
|
+
|
|
32
|
+
// ── Model profile state (updated via "profile" gateway event) ────
|
|
33
|
+
let activeProfile = null;
|
|
34
|
+
const _seenMessageIds = new Set(); // dedup guard for reconnect replays (future)
|
|
31
35
|
|
|
32
36
|
// ── Utility ───────────────────────────────────────────────────────
|
|
33
37
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
@@ -509,8 +513,10 @@ function handleGatewayEvent(event) {
|
|
|
509
513
|
return;
|
|
510
514
|
}
|
|
511
515
|
|
|
512
|
-
// Handle agent lifecycle/tool events — these prove the agent is alive
|
|
513
|
-
|
|
516
|
+
// Handle agent lifecycle/tool events — these prove the agent is alive.
|
|
517
|
+
// No isStreaming guard: agent events must be processed even before the
|
|
518
|
+
// first text delta arrives (critical for Gemma/vLLM tool-use phases).
|
|
519
|
+
if (event.event === "agent") {
|
|
514
520
|
const a = event.payload;
|
|
515
521
|
if (a) {
|
|
516
522
|
// Any agent event resets the watchdog — the agent is working
|
|
@@ -552,6 +558,22 @@ function handleGatewayEvent(event) {
|
|
|
552
558
|
armWatchdog();
|
|
553
559
|
}
|
|
554
560
|
|
|
561
|
+
// Log to debug panel if available
|
|
562
|
+
if (typeof window.logDebugEvent === "function") {
|
|
563
|
+
window.logDebugEvent(p.state, p);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
// Handle "thinking" state broadcast from gateway (agent started processing)
|
|
567
|
+
if (p.state === "thinking") {
|
|
568
|
+
if (!isStreaming) {
|
|
569
|
+
return; // Ignore stale thinking events
|
|
570
|
+
}
|
|
571
|
+
setAgentStatus("thinking");
|
|
572
|
+
showWorkingIndicator();
|
|
573
|
+
armWatchdog();
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
|
|
555
577
|
if (p.state === "delta") {
|
|
556
578
|
// Route heartbeat/symipulse deltas to dedicated panel
|
|
557
579
|
if (p.isHeartbeat) {
|
|
@@ -624,7 +646,29 @@ function handleGatewayEvent(event) {
|
|
|
624
646
|
if (typeof window.closeLiveThinking === "function") {
|
|
625
647
|
window.closeLiveThinking();
|
|
626
648
|
}
|
|
627
|
-
|
|
649
|
+
// If final arrives with message content but no prior deltas (burst response),
|
|
650
|
+
// render the full message directly instead of closing an empty stream bubble.
|
|
651
|
+
if (!streamBubble && p.message) {
|
|
652
|
+
const finalText = extractText(p.message?.content ?? p.message);
|
|
653
|
+
if (finalText && finalText.trim()) {
|
|
654
|
+
if (thinkingEl) {
|
|
655
|
+
thinkingEl.remove();
|
|
656
|
+
thinkingEl = null;
|
|
657
|
+
}
|
|
658
|
+
const rendered = window.renderMessage({
|
|
659
|
+
role: "assistant",
|
|
660
|
+
content: p.message.content ?? [{ type: "text", text: finalText }],
|
|
661
|
+
timestamp: p.message.timestamp ?? Date.now(),
|
|
662
|
+
});
|
|
663
|
+
if (rendered) {
|
|
664
|
+
responseArea.appendChild(rendered);
|
|
665
|
+
window.applyHighlighting(rendered);
|
|
666
|
+
responseArea.scrollTop = responseArea.scrollHeight;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
} else {
|
|
670
|
+
closeStreamBubble(window.activeModelId || "unknown model");
|
|
671
|
+
}
|
|
628
672
|
setAgentStatus("done");
|
|
629
673
|
// Sync sub-agent count from server and conditionally hide working indicator
|
|
630
674
|
if (typeof p.activeSubagentCount === "number") {
|
|
@@ -719,10 +763,17 @@ function setAgentStatus(key) {
|
|
|
719
763
|
}
|
|
720
764
|
|
|
721
765
|
// ── Elapsed timer management ──────────────────────────────────
|
|
722
|
-
if (key === "
|
|
766
|
+
if (key === "waiting") {
|
|
767
|
+
// For burst-style models (Gemma/vLLM), arm watchdog immediately on send
|
|
768
|
+
// so the user gets feedback if the model never responds.
|
|
769
|
+
if (activeProfile?.ui?.armWatchdogOnSend !== false) {
|
|
770
|
+
armWatchdog();
|
|
771
|
+
}
|
|
772
|
+
startElapsedTimer("Sending to agent");
|
|
773
|
+
} else if (key === "thinking") {
|
|
723
774
|
// Start elapsed timer and watchdog when processing begins
|
|
724
775
|
armWatchdog();
|
|
725
|
-
|
|
776
|
+
elapsedBaseText = "Reasoning through request";
|
|
726
777
|
} else if (key === "streaming") {
|
|
727
778
|
// Transition from thinking → streaming: keep watchdog running (will be
|
|
728
779
|
// reset on each delta), switch elapsed timer base text
|
|
@@ -1015,6 +1066,31 @@ document.getElementById("prompt-bar").addEventListener("click", (e) => {
|
|
|
1015
1066
|
}
|
|
1016
1067
|
});
|
|
1017
1068
|
|
|
1069
|
+
// ── Model profile listener ────────────────────────────────────────
|
|
1070
|
+
window.addEventListener("symi:profile-changed", (e) => {
|
|
1071
|
+
activeProfile = e.detail;
|
|
1072
|
+
WATCHDOG_MS = activeProfile?.ui?.watchdogMs ?? 300000;
|
|
1073
|
+
|
|
1074
|
+
// Update model label in header if present
|
|
1075
|
+
const modelLabel = document.getElementById("active-model-label");
|
|
1076
|
+
if (modelLabel) {
|
|
1077
|
+
modelLabel.textContent = activeProfile?.label ?? "";
|
|
1078
|
+
}
|
|
1079
|
+
const modelBadge = document.getElementById("model-badge");
|
|
1080
|
+
if (modelBadge) {
|
|
1081
|
+
modelBadge.textContent = activeProfile?.ui?.badge ?? "";
|
|
1082
|
+
}
|
|
1083
|
+
|
|
1084
|
+
console.log(
|
|
1085
|
+
"[app] profile updated:",
|
|
1086
|
+
activeProfile?.label,
|
|
1087
|
+
"watchdog:",
|
|
1088
|
+
WATCHDOG_MS,
|
|
1089
|
+
"armOnSend:",
|
|
1090
|
+
activeProfile?.ui?.armWatchdogOnSend,
|
|
1091
|
+
);
|
|
1092
|
+
});
|
|
1093
|
+
|
|
1018
1094
|
// ── Gateway setup ──────────────────────────────────────────────────
|
|
1019
1095
|
const gateway = new SymiGateway();
|
|
1020
1096
|
window.gateway = gateway;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// ── Debug Panel — real-time event log for Glass UI ───────────────────
|
|
2
|
+
// Shows every WebSocket event with timestamp, type, and payload summary.
|
|
3
|
+
// Collapsible. Capped at 200 entries. Hidden by default, toggled via Shift+D.
|
|
4
|
+
|
|
5
|
+
(function () {
|
|
6
|
+
const MAX_DEBUG_ENTRIES = 200;
|
|
7
|
+
let debugContainer = null;
|
|
8
|
+
|
|
9
|
+
window.initDebugPanel = function () {
|
|
10
|
+
debugContainer = document.getElementById("debug-panel-entries");
|
|
11
|
+
|
|
12
|
+
document.addEventListener("keydown", function (e) {
|
|
13
|
+
if (e.shiftKey && e.key === "D") {
|
|
14
|
+
const panel = document.getElementById("debug-panel");
|
|
15
|
+
if (panel) {
|
|
16
|
+
panel.classList.toggle("collapsed");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
window.logDebugEvent = function (event, payload) {
|
|
23
|
+
if (!debugContainer) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const entry = document.createElement("div");
|
|
27
|
+
entry.className = "debug-entry";
|
|
28
|
+
var time = new Date().toLocaleTimeString("en-US", { hour12: false });
|
|
29
|
+
var summary = "";
|
|
30
|
+
try {
|
|
31
|
+
summary =
|
|
32
|
+
typeof payload === "object"
|
|
33
|
+
? JSON.stringify(payload).slice(0, 120)
|
|
34
|
+
: String(payload).slice(0, 120);
|
|
35
|
+
} catch {
|
|
36
|
+
summary = "[unserializable]";
|
|
37
|
+
}
|
|
38
|
+
entry.textContent = time + " [" + event + "] " + summary;
|
|
39
|
+
debugContainer.prepend(entry);
|
|
40
|
+
|
|
41
|
+
// Cap entries
|
|
42
|
+
while (debugContainer.children.length > MAX_DEBUG_ENTRIES) {
|
|
43
|
+
debugContainer.removeChild(debugContainer.lastChild);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Auto-init when DOM is ready
|
|
48
|
+
if (document.readyState === "loading") {
|
|
49
|
+
document.addEventListener("DOMContentLoaded", function () {
|
|
50
|
+
window.initDebugPanel();
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
window.initDebugPanel();
|
|
54
|
+
}
|
|
55
|
+
})();
|
|
@@ -156,6 +156,17 @@ class SymiGateway extends EventTarget {
|
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
if (type === "profile") {
|
|
160
|
+
// Model profile broadcast — apply to Glass UI immediately
|
|
161
|
+
if (msg.payload?.profile) {
|
|
162
|
+
window.activeModelProfile = msg.payload.profile;
|
|
163
|
+
window.dispatchEvent(
|
|
164
|
+
new CustomEvent("symi:profile-changed", { detail: msg.payload.profile }),
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
|
|
159
170
|
if (type === "rpc.response") {
|
|
160
171
|
const pending = this._pending.get(msg.id);
|
|
161
172
|
if (pending) {
|
|
@@ -63,7 +63,8 @@
|
|
|
63
63
|
}),
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
statusEl.textContent = "
|
|
66
|
+
statusEl.textContent = "applied";
|
|
67
|
+
// Profile will arrive via WebSocket "profile" event after reload
|
|
67
68
|
} catch (err) {
|
|
68
69
|
console.warn("[models] switch failed:", err.message);
|
|
69
70
|
statusEl.textContent = "switch failed";
|
|
@@ -71,6 +72,20 @@
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
// Listen for profile broadcasts to update status text
|
|
76
|
+
window.addEventListener("symi:profile-changed", (e) => {
|
|
77
|
+
const profile = e.detail;
|
|
78
|
+
if (profile?.label) {
|
|
79
|
+
statusEl.textContent = profile.label;
|
|
80
|
+
// Clear after 3s
|
|
81
|
+
setTimeout(() => {
|
|
82
|
+
if (statusEl.textContent === profile.label) {
|
|
83
|
+
statusEl.textContent = "";
|
|
84
|
+
}
|
|
85
|
+
}, 3000);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
74
89
|
buttons.forEach((btn) => {
|
|
75
90
|
btn.addEventListener("click", () => switchModel(btn.dataset.model));
|
|
76
91
|
});
|
|
@@ -288,6 +288,62 @@ window.copyCode = async (btn) => {
|
|
|
288
288
|
} catch {}
|
|
289
289
|
};
|
|
290
290
|
|
|
291
|
+
// ── Model token stripping (defense-in-depth for server-side filter) ──
|
|
292
|
+
const ALWAYS_STRIP_TOKENS = [
|
|
293
|
+
/<\|channel>\w*/gi,
|
|
294
|
+
/<channel\|>/gi,
|
|
295
|
+
/<start_of_turn>(?:model|user)?/gi,
|
|
296
|
+
/<end_of_turn>/gi,
|
|
297
|
+
/<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/gi,
|
|
298
|
+
/^\s*<bos>\s*/gim,
|
|
299
|
+
];
|
|
300
|
+
|
|
301
|
+
function stripModelTokensClient(text) {
|
|
302
|
+
let cleaned = text;
|
|
303
|
+
|
|
304
|
+
// Always strip known control tokens (defense in depth)
|
|
305
|
+
for (const re of ALWAYS_STRIP_TOKENS) {
|
|
306
|
+
re.lastIndex = 0;
|
|
307
|
+
cleaned = cleaned.replace(re, "");
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Profile-specific patterns on top
|
|
311
|
+
const profile = window.activeModelProfile;
|
|
312
|
+
if (profile?.filters?.stripPatterns?.length) {
|
|
313
|
+
for (const pat of profile.filters.stripPatterns) {
|
|
314
|
+
try {
|
|
315
|
+
cleaned = cleaned.replace(new RegExp(pat, "gi"), "");
|
|
316
|
+
} catch {
|
|
317
|
+
/* skip invalid patterns */
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
return cleaned;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// ── Self-reflection monologue filter ─────────────────────────────────
|
|
326
|
+
const MONOLOGUE_PATTERNS = [
|
|
327
|
+
/^I have not yet (?:successfully )?fulfilled/i,
|
|
328
|
+
/^Current Status:\s*\n/i,
|
|
329
|
+
/^Plan to fix:/i,
|
|
330
|
+
/^Address requirements:/i,
|
|
331
|
+
/^Let me (?:check|assess|evaluate) (?:my|the) (?:progress|status)/i,
|
|
332
|
+
/^(?:Task|Goal) (?:Status|Progress|Assessment):/i,
|
|
333
|
+
/^I (?:need to|should|must) (?:now |next )?(?:verify|check|confirm|assess)/i,
|
|
334
|
+
/^Verification:.*(?:failed|passed|pending)/i,
|
|
335
|
+
/^Self-assessment:/i,
|
|
336
|
+
];
|
|
337
|
+
|
|
338
|
+
function isInternalMonologue(text) {
|
|
339
|
+
const profile = window.activeModelProfile;
|
|
340
|
+
if (profile?.filters?.suppressMonologue !== true) {
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
const trimmed = text.trim();
|
|
344
|
+
return MONOLOGUE_PATTERNS.some((re) => re.test(trimmed));
|
|
345
|
+
}
|
|
346
|
+
|
|
291
347
|
// ── Markdown renderer ─────────────────────────────────────────────────
|
|
292
348
|
function renderMarkdown(text) {
|
|
293
349
|
if (!text) {
|
|
@@ -363,7 +419,12 @@ function renderBlock(block) {
|
|
|
363
419
|
// ── Plain text with markdown ──────────────────────────────────────
|
|
364
420
|
case "text": {
|
|
365
421
|
el.className = "msg-text";
|
|
366
|
-
|
|
422
|
+
const rawText = block.text ?? "";
|
|
423
|
+
const stripped = stripModelTokensClient(rawText);
|
|
424
|
+
if (!stripped.trim()) {
|
|
425
|
+
break; // Empty after stripping — skip
|
|
426
|
+
}
|
|
427
|
+
el.innerHTML = renderMarkdown(stripped);
|
|
367
428
|
break;
|
|
368
429
|
}
|
|
369
430
|
|
|
@@ -744,6 +805,18 @@ window.renderMessage = function (message) {
|
|
|
744
805
|
return null;
|
|
745
806
|
}
|
|
746
807
|
|
|
808
|
+
// Internal monologue filter — route Gemma self-reflection to Reasoning Panel
|
|
809
|
+
if (!isUser && isInternalMonologue(_msgText)) {
|
|
810
|
+
if (typeof window.appendToReasoningPanel === "function") {
|
|
811
|
+
window.appendToReasoningPanel({
|
|
812
|
+
type: "thinking",
|
|
813
|
+
thinking: _msgText,
|
|
814
|
+
_source: "monologue-filter",
|
|
815
|
+
});
|
|
816
|
+
}
|
|
817
|
+
return null;
|
|
818
|
+
}
|
|
819
|
+
|
|
747
820
|
// Plugin context messages (e.g. "[Outlook 365] Not connected...")
|
|
748
821
|
if (role === "user" && /^\[.+\]\s+(Not connected|Connected as)\b/i.test(_msgText)) {
|
|
749
822
|
if (typeof window.appendToReasoningPanel === "function") {
|
|
@@ -4,60 +4,61 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
// Mock minimal browser environment
|
|
7
|
-
const escHtml = (s) =>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
const escHtml = (s) =>
|
|
8
|
+
String(s ?? "")
|
|
9
|
+
.replace(/&/g, "&")
|
|
10
|
+
.replace(/</g, "<")
|
|
11
|
+
.replace(/>/g, ">")
|
|
12
|
+
.replace(/"/g, """)
|
|
13
|
+
.replace(/'/g, "'");
|
|
13
14
|
|
|
14
15
|
// Test cases for XSS prevention
|
|
15
16
|
// Key insight: we check that < and > are escaped, which neutralizes ALL HTML injection
|
|
16
17
|
const xssTestCases = [
|
|
17
18
|
{
|
|
18
|
-
name:
|
|
19
|
+
name: "Script tag in inline code - angle brackets escaped",
|
|
19
20
|
input: '<script>alert("XSS")</script>',
|
|
20
|
-
mustNotContain:
|
|
21
|
-
mustContain:
|
|
21
|
+
mustNotContain: "<script>", // Raw < must be escaped
|
|
22
|
+
mustContain: "<script>",
|
|
22
23
|
},
|
|
23
24
|
{
|
|
24
|
-
name:
|
|
25
|
+
name: "Image tag XSS - angle brackets escaped",
|
|
25
26
|
input: '<img src=x onerror="alert(1)">',
|
|
26
|
-
mustNotContain:
|
|
27
|
-
mustContain:
|
|
27
|
+
mustNotContain: "<img", // Raw < must be escaped
|
|
28
|
+
mustContain: "<img",
|
|
28
29
|
},
|
|
29
30
|
{
|
|
30
|
-
name:
|
|
31
|
+
name: "Quotes escaped to prevent attribute injection",
|
|
31
32
|
input: '" onclick="alert(1)"',
|
|
32
|
-
mustNotContain: null,
|
|
33
|
-
mustContain:
|
|
33
|
+
mustNotContain: null, // All content is safe inside escaped code
|
|
34
|
+
mustContain: """, // Double quotes must be escaped
|
|
34
35
|
},
|
|
35
36
|
{
|
|
36
|
-
name:
|
|
37
|
-
input:
|
|
38
|
-
mustContain:
|
|
37
|
+
name: "HTML entities double-escaped",
|
|
38
|
+
input: "& < >",
|
|
39
|
+
mustContain: "&amp;",
|
|
39
40
|
},
|
|
40
41
|
{
|
|
41
|
-
name:
|
|
42
|
+
name: "Single quotes escaped",
|
|
42
43
|
input: "it's a test",
|
|
43
|
-
mustContain:
|
|
44
|
+
mustContain: "'",
|
|
44
45
|
},
|
|
45
46
|
{
|
|
46
|
-
name:
|
|
47
|
-
input:
|
|
48
|
-
mustContain:
|
|
47
|
+
name: "Normal code unchanged semantically",
|
|
48
|
+
input: "const x = 1;",
|
|
49
|
+
mustContain: "const x = 1;",
|
|
49
50
|
},
|
|
50
51
|
{
|
|
51
|
-
name:
|
|
52
|
+
name: "SVG XSS vector blocked",
|
|
52
53
|
input: '<svg onload="alert(1)">',
|
|
53
|
-
mustNotContain:
|
|
54
|
-
mustContain:
|
|
54
|
+
mustNotContain: "<svg",
|
|
55
|
+
mustContain: "<svg",
|
|
55
56
|
},
|
|
56
57
|
{
|
|
57
|
-
name:
|
|
58
|
-
input:
|
|
59
|
-
mustNotContain:
|
|
60
|
-
mustContain:
|
|
58
|
+
name: "Nested script blocked",
|
|
59
|
+
input: "<<script>script>alert(1)<</script>/script>",
|
|
60
|
+
mustNotContain: "<script",
|
|
61
|
+
mustContain: "<",
|
|
61
62
|
},
|
|
62
63
|
];
|
|
63
64
|
|
|
@@ -67,7 +68,7 @@ function renderCodespan(text) {
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
// Run tests
|
|
70
|
-
console.log(
|
|
71
|
+
console.log("Glass UI render.js Security Tests\n" + "=".repeat(40) + "\n");
|
|
71
72
|
|
|
72
73
|
let passed = 0;
|
|
73
74
|
let failed = 0;
|
|
@@ -94,18 +95,18 @@ for (const tc of xssTestCases) {
|
|
|
94
95
|
console.log(`✗ ${tc.name}`);
|
|
95
96
|
console.log(` Input: ${tc.input}`);
|
|
96
97
|
console.log(` Output: ${result}`);
|
|
97
|
-
errors.forEach(e => console.log(` Error: ${e}`));
|
|
98
|
+
errors.forEach((e) => console.log(` Error: ${e}`));
|
|
98
99
|
failed++;
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
|
|
102
|
-
console.log(
|
|
103
|
+
console.log("\n" + "=".repeat(40));
|
|
103
104
|
console.log(`Results: ${passed} passed, ${failed} failed`);
|
|
104
105
|
|
|
105
106
|
if (failed > 0) {
|
|
106
|
-
console.log(
|
|
107
|
+
console.log("\n❌ XSS vulnerability detected!");
|
|
107
108
|
process.exit(1);
|
|
108
109
|
} else {
|
|
109
|
-
console.log(
|
|
110
|
+
console.log("\n✅ All XSS tests passed - inline code is properly escaped");
|
|
110
111
|
process.exit(0);
|
|
111
112
|
}
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* @returns {string} HTML-safe string
|
|
9
9
|
*/
|
|
10
10
|
function escHtml(t) {
|
|
11
|
-
return String(t ??
|
|
12
|
-
.replace(/&/g,
|
|
13
|
-
.replace(/</g,
|
|
14
|
-
.replace(/>/g,
|
|
15
|
-
.replace(/"/g,
|
|
16
|
-
.replace(/'/g,
|
|
11
|
+
return String(t ?? "")
|
|
12
|
+
.replace(/&/g, "&")
|
|
13
|
+
.replace(/</g, "<")
|
|
14
|
+
.replace(/>/g, ">")
|
|
15
|
+
.replace(/"/g, """)
|
|
16
|
+
.replace(/'/g, "'");
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -5,9 +5,9 @@ import "./exec-CBKBIMpA.js";
|
|
|
5
5
|
import "./agent-scope-D-jRCY0d.js";
|
|
6
6
|
import "./github-copilot-token-DuFIqfeC.js";
|
|
7
7
|
import "./manifest-registry-Czr39pxG.js";
|
|
8
|
-
import "./config-
|
|
8
|
+
import "./config-DHBLS1Hl.js";
|
|
9
9
|
import "./client-DMBZpU6X.js";
|
|
10
|
-
import "./call-
|
|
10
|
+
import "./call-BcE47FtD.js";
|
|
11
11
|
import "./message-channel-C9dERklz.js";
|
|
12
12
|
import "./pairing-token-Byh6drgn.js";
|
|
13
13
|
import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
|
|
@@ -18,7 +18,7 @@ import { n as formatDurationHuman } from "./format-duration-BOC0O2XQ.js";
|
|
|
18
18
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CQar2eKe.js";
|
|
19
19
|
import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
|
|
20
20
|
import "./progress-BAHiAaDW.js";
|
|
21
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
21
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DfZSz5JF.js";
|
|
22
22
|
import { n as parsePositiveIntOrUndefined } from "./helpers-ITexi1_a.js";
|
|
23
23
|
|
|
24
24
|
//#region src/cli/cron-cli/shared.ts
|
|
@@ -10,21 +10,21 @@ 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-
|
|
13
|
+
import "./config-CHwyw6l5.js";
|
|
14
14
|
import "./manifest-registry-C4BxOMWX.js";
|
|
15
15
|
import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
|
|
16
16
|
import "./accounts-DDuIpcln.js";
|
|
17
17
|
import "./bindings-DFaVVCsf.js";
|
|
18
18
|
import "./logging-w5jq5901.js";
|
|
19
19
|
import "./client-CQSyCS4M.js";
|
|
20
|
-
import "./call-
|
|
20
|
+
import "./call-CJaS1iRF.js";
|
|
21
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-
|
|
27
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BxkKeCZ0.js";
|
|
28
28
|
|
|
29
29
|
//#region src/cli/cron-cli/shared.ts
|
|
30
30
|
const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
|
|
@@ -4,22 +4,22 @@ 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-
|
|
7
|
+
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-CHwyw6l5.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
11
|
import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
|
|
12
|
-
import { n as callGateway } from "./call-
|
|
12
|
+
import { n as callGateway } from "./call-CJaS1iRF.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-
|
|
15
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-ZmZYzlq3.js";
|
|
16
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-
|
|
19
|
+
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
|
|
20
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-
|
|
22
|
-
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-
|
|
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-D6LYXpFj.js";
|
|
22
|
+
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-BR6gChwm.js";
|
|
23
23
|
import { t as parsePort } from "./parse-port-Vm8F7Kus.js";
|
|
24
24
|
import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
|
|
25
25
|
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CllGjsWo.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { At as getResolvedLoggerSettings, Dt as theme, Et as isRich, Tt as colorize, Ut as resolveGatewayPort, Wt as resolveIsNixMode, Yt as resolveStateDir, _ as defaultRuntime, lt as shortenHomePath, zt as resolveConfigPath } from "./entry.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
|
|
4
|
-
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-
|
|
5
|
-
import { n as callGateway } from "./call-
|
|
4
|
+
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-DHBLS1Hl.js";
|
|
5
|
+
import { n as callGateway } from "./call-BcE47FtD.js";
|
|
6
6
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
|
|
7
7
|
import { l as resolveGatewayBindHost } from "./net-DZ5Ayk-W.js";
|
|
8
8
|
import { n as pickPrimaryTailnetIPv4 } from "./tailnet-Cmumpn76.js";
|
|
@@ -11,13 +11,13 @@ import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXb
|
|
|
11
11
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CPeVoSXJ.js";
|
|
12
12
|
import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
|
|
13
13
|
import { n as withProgress } from "./progress-BAHiAaDW.js";
|
|
14
|
-
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-
|
|
14
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-_pit1NZW.js";
|
|
15
15
|
import { n as isWSLEnv } from "./wsl-jdLWdiKy.js";
|
|
16
16
|
import { n as inheritOptionFromParent } from "./command-options-6wdtBBWB.js";
|
|
17
|
-
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-
|
|
17
|
+
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CfRwa6qh.js";
|
|
18
18
|
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
|
|
19
|
-
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-
|
|
20
|
-
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-
|
|
19
|
+
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-DIBHfMOL.js";
|
|
20
|
+
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-sQipWGd1.js";
|
|
21
21
|
import { t as parsePort } from "./parse-port-BQ0_YQqL.js";
|
|
22
22
|
import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
|
|
23
23
|
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-t04OgGMk.js";
|
package/dist/daemon-cli.js
CHANGED
|
@@ -5017,9 +5017,37 @@ const BedrockDiscoverySchema = z.object({
|
|
|
5017
5017
|
defaultContextWindow: z.number().int().positive().optional(),
|
|
5018
5018
|
defaultMaxTokens: z.number().int().positive().optional()
|
|
5019
5019
|
}).strict().optional();
|
|
5020
|
+
const ModelProfileSchema = z.object({
|
|
5021
|
+
match: z.union([z.string().min(1), z.array(z.string().min(1))]),
|
|
5022
|
+
label: z.string().optional(),
|
|
5023
|
+
params: z.object({
|
|
5024
|
+
temperature: z.number().min(0).max(2).optional(),
|
|
5025
|
+
top_p: z.number().min(0).max(1).optional(),
|
|
5026
|
+
top_k: z.number().int().nonnegative().optional(),
|
|
5027
|
+
max_tokens: z.number().int().positive().optional(),
|
|
5028
|
+
stop: z.array(z.string()).optional()
|
|
5029
|
+
}).strict().optional(),
|
|
5030
|
+
streaming: z.object({
|
|
5031
|
+
deltaThrottleMs: z.number().int().nonnegative().optional(),
|
|
5032
|
+
flushOnFinal: z.boolean().optional(),
|
|
5033
|
+
chunkPattern: z.union([z.literal("token"), z.literal("burst")]).optional()
|
|
5034
|
+
}).strict().optional(),
|
|
5035
|
+
filters: z.object({
|
|
5036
|
+
stripPatterns: z.array(z.string()).optional(),
|
|
5037
|
+
suppressMonologue: z.boolean().optional(),
|
|
5038
|
+
hasStructuredThinking: z.boolean().optional()
|
|
5039
|
+
}).strict().optional(),
|
|
5040
|
+
promptAdditions: z.array(z.string()).optional(),
|
|
5041
|
+
ui: z.object({
|
|
5042
|
+
badge: z.string().optional(),
|
|
5043
|
+
watchdogMs: z.number().int().min(1e3).optional(),
|
|
5044
|
+
armWatchdogOnSend: z.boolean().optional()
|
|
5045
|
+
}).strict().optional()
|
|
5046
|
+
}).strict();
|
|
5020
5047
|
const ModelsConfigSchema = z.object({
|
|
5021
5048
|
mode: z.union([z.literal("merge"), z.literal("replace")]).optional(),
|
|
5022
5049
|
providers: z.record(z.string(), ModelProviderSchema).optional(),
|
|
5050
|
+
profiles: z.array(ModelProfileSchema).optional(),
|
|
5023
5051
|
bedrockDiscovery: BedrockDiscoverySchema
|
|
5024
5052
|
}).strict().optional();
|
|
5025
5053
|
const GroupChatSchema = z.object({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
|
|
2
|
-
import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-
|
|
2
|
+
import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-CHwyw6l5.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";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
|
|
2
|
-
import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-
|
|
2
|
+
import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-DHBLS1Hl.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-CPeVoSXJ.js";
|
|
4
4
|
import { n as isSupportedNodeVersion } from "./runtime-guard-D7waq_Ho.js";
|
|
5
5
|
import { execFile } from "node:child_process";
|