@symerian/symi 3.5.26 → 3.5.28
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/{agent-CoHzNs_e.js → agent-BsRYHa15.js} +18 -18
- package/dist/{agent-CB5yb-7V.js → agent-TRt_SsAW.js} +1 -1
- package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
- package/dist/{agents-DtRd3yEb.js → agents-7qMp2MWu.js} +2 -2
- package/dist/{agents.config-DA0ISLi7.js → agents.config-B7sNDvhz.js} +1 -1
- package/dist/{audit-CuwXq_EA.js → audit-C_3fAFeS.js} +20 -20
- package/dist/{auth-choice-5SLfZiQ7.js → auth-choice-C8lwYiEQ.js} +1 -1
- package/dist/{auth-choice-DKRHawfp.js → auth-choice-DcB72YWZ.js} +11 -11
- package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
- package/dist/{auth-token-fgnCQEHT.js → auth-token-Cr28IDKY.js} +3 -3
- package/dist/{banner-B_P_FrmA.js → banner-B5Hv4rlk.js} +1 -1
- package/dist/{browser-cli-BI81RlI8.js → browser-cli-D6xFqw9w.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +4 -4
- package/dist/{call-xUpyZDH4.js → call-AZ9vNhST.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-vjcKi2yl.js → channel-options-DOzFci6h.js} +1 -1
- package/dist/{channel-options-8NGYZjfd.js → channel-options-ZkruGuHl.js} +1 -1
- package/dist/{channels-cli-Bx90nSmB.js → channels-cli-CEz9LILV.js} +7 -7
- package/dist/{channels-cli-CfBFa-VO.js → channels-cli-DMShhX0d.js} +57 -57
- package/dist/{chrome-38OnGyuN.js → chrome-DJChpTwP.js} +2 -2
- package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
- package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
- package/dist/{cli-qf0qK7oi.js → cli-Byovb_j5.js} +45 -45
- package/dist/{cli-DHG9iZJi.js → cli-MDHkESMC.js} +4 -4
- package/dist/{client-DiPa71im.js → client-DH75FlQF.js} +1 -1
- package/dist/{command-registry-DBbzZvh6.js → command-registry-Dzj-Uz5N.js} +10 -10
- package/dist/{commands-registry-CwXsDVuO.js → commands-registry-Ca5hh7nh.js} +1 -1
- package/dist/{completion-cli-Ddfrnilx.js → completion-cli-CsJ2f_fk.js} +12 -12
- package/dist/{completion-cli-DoQrkCAd.js → completion-cli-vAwL_uEK.js} +2 -2
- package/dist/{config-BngIfn5l.js → config-B4jkreCN.js} +2 -2
- package/dist/{config-cli-9a5qBcdo.js → config-cli-CqqCDyf0.js} +1 -1
- package/dist/{config-cli-JVGYyfYA.js → config-cli-cmea_Z-A.js} +4 -4
- package/dist/{config-guard-DStz4_V2.js → config-guard-BRm3RiOi.js} +6 -6
- package/dist/{config-validation-Dxj9LRzr.js → config-validation-Cdyg1BZB.js} +1 -1
- package/dist/{configure-ryB8EvyP.js → configure-BEPKQuJj.js} +2 -2
- package/dist/{configure-Bqz2Hvnf.js → configure-DymrZd1n.js} +14 -14
- package/dist/{consolidate-CO32_TEx.js → consolidate-DymnvvYm.js} +6 -6
- package/dist/{control-service-CUreKVeY.js → control-service-D8kKOts5.js} +4 -4
- package/dist/control-ui/css/style.css +274 -0
- package/dist/control-ui/index.html +14 -0
- package/dist/control-ui/js/symframe-bidirectional.js +210 -0
- package/dist/{control-ui-assets-B8B9z_Ll.js → control-ui-assets-CJQ97d4u.js} +1 -1
- package/dist/{cost-cli-D-ssjcRF.js → cost-cli-DWiVCOCx.js} +3 -3
- package/dist/{cron-cli-pZ_7Wzhj.js → cron-cli-VH_t2D1o.js} +7 -7
- package/dist/{daemon-cli-BDzcfcu_.js → daemon-cli-3PFXkheJ.js} +11 -11
- package/dist/{daemon-runtime-CKn0wmCk.js → daemon-runtime-DlQla_dA.js} +10 -10
- package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
- package/dist/{deliver-CWMFmMCv.js → deliver-lTZLIQqf.js} +2 -2
- package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
- package/dist/{deps-CdibsPMx.js → deps-Bf9dt2UO.js} +1 -1
- package/dist/{devices-cli-BIZbo_Pt.js → devices-cli-Bhi1rWnT.js} +6 -6
- package/dist/{diagnostics-CYkqD5lP.js → diagnostics-DlZODdRf.js} +5 -5
- package/dist/{directory-cli-giqTe8Yg.js → directory-cli-Bm5QYEo-.js} +3 -3
- package/dist/{dm-policy-shared-B61_yf6G.js → dm-policy-shared-CeFt0nch.js} +1 -1
- package/dist/{dns-cli-Dssz4RqF.js → dns-cli-CubLq4j9.js} +3 -3
- package/dist/{docs-cli-Ct1STieY.js → docs-cli-PS8m1er7.js} +1 -1
- package/dist/{doctor-completion-Bk55g4MP.js → doctor-completion--phnyAqO.js} +1 -1
- package/dist/{doctor-completion-eh7aImCx.js → doctor-completion-BY72G6-l.js} +2 -2
- package/dist/{doctor-config-flow-ljVnQJjo.js → doctor-config-flow-C52W1uUK.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-B2UY9dZC.js → exec-approvals-cli-xTOKcyZh.js} +13 -13
- package/dist/extensionAPI.js +4 -4
- package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
- package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
- package/dist/{gateway-cli-BwPy7u0B.js → gateway-cli-BVpyqk_H.js} +98 -98
- package/dist/{gateway-cli-BGMVOW2G.js → gateway-cli-Bo80TSkq.js} +10 -10
- package/dist/{gateway-rpc-DmFOiGIJ.js → gateway-rpc-C6lKFbor.js} +1 -1
- package/dist/{glass-ui-ws-Z-W33_mF.js → glass-ui-ws-BK5qk7-_.js} +8 -8
- package/dist/{glass-ui-ws-CwOiILiY.js → glass-ui-ws-CrmnRYxe.js} +67 -67
- package/dist/{health-Bc1wmAO5.js → health-7UqIGG8U.js} +4 -4
- package/dist/{hooks-cli-DOjHV2fF.js → hooks-cli-CjklMDuK.js} +59 -59
- package/dist/{hooks-cli-Bn6x6Jnj.js → hooks-cli-CqmTdxT6.js} +5 -5
- package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
- package/dist/index.js +52 -52
- package/dist/{inspect-DzYUb_Dl.js → inspect-CGKsaVZ4.js} +4 -4
- package/dist/{install-safe-path-BrpA09f2.js → install-safe-path-B2JrFspY.js} +11 -11
- package/dist/{installs-bnDlOSq2.js → installs-D890uIIW.js} +10 -10
- package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
- package/dist/{lifecycle-core-cSR_xiIO.js → lifecycle-core-wFwnK_mD.js} +5 -5
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
- package/dist/{logs-cli-CYFlhj51.js → logs-cli-BTU7zrkU.js} +7 -7
- package/dist/{manager-DuWp0CTD.js → manager-CL767Sv9.js} +15 -15
- package/dist/{manager-BHddoe4T.js → manager-NDn8AFhr.js} +1 -1
- package/dist/{manager-DH00nlW8.js → manager-XfNxjaX5.js} +1 -1
- package/dist/{manager-F0-SHT1B.js → manager-fgUC_sHR.js} +1 -1
- package/dist/{memory-C02Znuee.js → memory-CTf9MdBg.js} +2 -2
- package/dist/{memory-fFc7GGPZ.js → memory-DOl2l2AS.js} +5 -5
- package/dist/{memory-cli-BnBKckEk.js → memory-cli-B9_Vfaow.js} +12 -12
- package/dist/{memory-cli-083UJtVJ.js → memory-cli-CA5PbH9y.js} +2 -2
- package/dist/{model-Cwbcw-km.js → model-MUMSB_7d.js} +1 -1
- package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
- package/dist/{model-catalog-BWurV7gl.js → model-catalog-IWi6-nY9.js} +3 -3
- package/dist/{model-picker-Dpkr5xBW.js → model-picker-Cf6UgQEh.js} +5 -5
- package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
- package/dist/{models-Bh_frCup.js → models-DgiBOeVH.js} +2 -2
- package/dist/{models-cli-DVdb_TUS.js → models-cli-B7gTrlgn.js} +55 -55
- package/dist/{models-cli-BhBu4Dwm.js → models-cli-BHN3bt0f.js} +6 -6
- package/dist/{models-config-DlXge3Sd.js → models-config-B5Xxy-c-.js} +8 -8
- package/dist/{node-cli-B0ePfMUr.js → node-cli-CWbA6YCw.js} +27 -27
- package/dist/{node-service-Cc18m-uk.js → node-service-BH08wY5j.js} +1 -1
- package/dist/{nodes-cli-L0gy-26E.js → nodes-cli-BfHcv62i.js} +10 -10
- package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
- package/dist/{npm-registry-spec-C-muP97-.js → npm-registry-spec-DTqn-NXZ.js} +9 -9
- package/dist/{onboard-D6GZ2t-L.js → onboard-BNdKimpG.js} +15 -15
- package/dist/{onboard-BSxqEQfo.js → onboard-DGp6mHJD.js} +1 -1
- package/dist/{onboard-channels-BkR3MKMp.js → onboard-channels-DSBWRjSp.js} +1 -1
- package/dist/{onboard-channels-DVS9vciR.js → onboard-channels-Dhb-28-_.js} +4 -4
- package/dist/{onboard-custom-DnDrvxSg.js → onboard-custom-BcRYreNG.js} +3 -3
- package/dist/{onboard-helpers-CJlheOSJ.js → onboard-helpers-7IGQ8nAM.js} +8 -8
- package/dist/{onboard-hooks-D9jHwImb.js → onboard-hooks-2SCajRKc.js} +1 -1
- package/dist/{onboard-remote-CVZ8l58S.js → onboard-remote-Dr75eqOQ.js} +1 -1
- package/dist/{onboard-skills-MgcaLiE6.js → onboard-skills-uO7HZwjc.js} +3 -3
- package/dist/{onboarding-D-mzwQ_f.js → onboarding-BG23DuS1.js} +12 -12
- package/dist/{onboarding-CrCGoZ4H.js → onboarding-MPSU9pXd.js} +3 -3
- package/dist/{onboarding.finalize-BYzduVFA.js → onboarding.finalize-B-mxzJ08.js} +4 -4
- package/dist/{onboarding.finalize-DBFL76p0.js → onboarding.finalize-Cv20GyNt.js} +31 -31
- package/dist/{onboarding.gateway-config-BCDgsFl8.js → onboarding.gateway-config-CkP7K4EN.js} +8 -8
- package/dist/{openai-model-default-De-UAjwg.js → openai-model-default-BkuuK-Di.js} +2 -2
- package/dist/{pairing-cli-CBMMCNnx.js → pairing-cli-Rsae0KnN.js} +5 -5
- package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
- package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
- package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
- package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
- package/dist/{pi-embedded-DGnpyHm-.js → pi-embedded-V-5MAZNb.js} +11 -10
- package/dist/{pi-embedded-helpers-j1JrlsI0.js → pi-embedded-helpers-D-OFjhdI.js} +6 -6
- package/dist/{pi-tools.policy-CvAqjEH9.js → pi-tools.policy-H2t-Xkfc.js} +3 -3
- package/dist/{plugin-auto-enable-BXSJTxI7.js → plugin-auto-enable-DJBhDIMq.js} +1 -1
- package/dist/{plugin-registry-KP94aK4z.js → plugin-registry-CBV_Y6Dj.js} +3 -3
- package/dist/{plugin-registry-B74FBx4U.js → plugin-registry-c3Skr0q9.js} +1 -1
- package/dist/{plugins-cli-Cmf3kRf5.js → plugins-cli-8Jo1X8SU.js} +5 -5
- package/dist/{plugins-cli-B4ljapU5.js → plugins-cli-Dl7-FSCq.js} +54 -54
- package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
- package/dist/{ports-Bi3V_3n9.js → ports-r7LBic2V.js} +1 -1
- package/dist/{program-CGuYYumL.js → program-D-LYHEvk.js} +10 -10
- package/dist/{program-context-BzqGUxMS.js → program-context-BpeLcVUB.js} +40 -40
- package/dist/{prompt-select-styled-BVkRteee.js → prompt-select-styled-Ceih9wkY.js} +38 -38
- package/dist/{prompt-select-styled-b752FPLG.js → prompt-select-styled-ZWxB2Odf.js} +4 -4
- package/dist/{provider-auth-helpers-C6GjAO-s.js → provider-auth-helpers-BCejcf5o.js} +6 -6
- package/dist/{provider-auth-helpers-BKveYcEH.js → provider-auth-helpers-BdvW7eau.js} +1 -1
- package/dist/{push-apns-HNg0rTkI.js → push-apns-D4iLNyBo.js} +1 -1
- package/dist/{push-apns-CbbWM63o.js → push-apns-HQd5hCpM.js} +4 -4
- package/dist/{pw-ai-CP5pn3eU.js → pw-ai-BiBvIJzd.js} +7 -7
- package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
- package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
- package/dist/{qmd-manager-Dxyue7B1.js → qmd-manager-C8-M4Pru.js} +19 -19
- package/dist/{qr-cli-DHw6muwK.js → qr-cli-1sCVaPcF.js} +3 -3
- package/dist/{register.agent-DbPYGG3u.js → register.agent-DoUbqZIu.js} +9 -9
- package/dist/{register.agent-DhS2lmWo.js → register.agent-zwVEiCHs.js} +67 -67
- package/dist/{register.configure-ChjzXxh8.js → register.configure-CSe8Rlda.js} +70 -70
- package/dist/{register.configure-B0M15y31.js → register.configure-jBKvvOnk.js} +8 -8
- package/dist/{register.maintenance-bzLNOqch.js → register.maintenance-BdikNAV1.js} +9 -9
- package/dist/{register.maintenance-frHWf6Xs.js → register.maintenance-royLmVA2.js} +67 -67
- package/dist/{register.message-Bfukmte_.js → register.message-C1H5Vcnb.js} +5 -5
- package/dist/{register.message-DWB4eVII.js → register.message-C_0uLdYn.js} +47 -47
- package/dist/{register.onboard-4P8ud4Sw.js → register.onboard-DTLtb0SN.js} +25 -25
- package/dist/{register.onboard-CDsSVoFI.js → register.onboard-DnMRUtnl.js} +2 -2
- package/dist/{register.setup-Bp8rYeRx.js → register.setup-B9sjRH7l.js} +2 -2
- package/dist/{register.setup-D0I7sEGc.js → register.setup-KA8Cs3HJ.js} +28 -28
- package/dist/{register.status-health-sessions-69Gigo_H.js → register.status-health-sessions-B_jcsH3c.js} +41 -41
- package/dist/{register.status-health-sessions-DE2db_Uo.js → register.status-health-sessions-BwiKHLEj.js} +3 -3
- package/dist/{register.subclis-QXO75pUm.js → register.subclis-B_V8vNI0.js} +9 -9
- package/dist/{replies-B_3j7R_Q.js → replies-CbXXjn9X.js} +1 -1
- package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
- package/dist/{resolve-route-Du0VftVs.js → resolve-route-C1IIA6kH.js} +1 -1
- package/dist/{routes-BwTUoI5h.js → routes-ivqbutvM.js} +10 -10
- package/dist/{rpc-DTqyJZKO.js → rpc-B1czfnym.js} +1 -1
- package/dist/{run-main-MD8Z8ydF.js → run-main-DhgQtxI0.js} +17 -17
- package/dist/{sandbox-CZGTCone.js → sandbox-BkznAPKO.js} +18 -18
- package/dist/{sandbox-cli-DEtGT_4y.js → sandbox-cli-Bb9cBtBH.js} +13 -13
- package/dist/{security-cli-iJpHPABF.js → security-cli-l59T6lAJ.js} +29 -29
- package/dist/{send-CxjvucMO.js → send-B0jHSNMF.js} +7 -7
- package/dist/{server-context-DXdk410X.js → server-context-ChcbJgNo.js} +5 -5
- package/dist/{server-methods-DHWxmfIu.js → server-methods-6-10RyMD.js} +60 -60
- package/dist/{server-methods-DTkVQH8Q.js → server-methods-Bdz-OwQ4.js} +7 -7
- package/dist/{server-node-events-C0smPxrR.js → server-node-events-B3Yey3h9.js} +6 -6
- package/dist/{server-node-events-DHSiqnRS.js → server-node-events-C4giIb7q.js} +48 -48
- package/dist/{service-CRZoXO_n.js → service-e6MzlLCd.js} +15 -15
- package/dist/{session-dirs-a00Ad2SO.js → session-dirs-C9E2G0yZ.js} +2 -2
- package/dist/{session-utils-CJhcRx3E.js → session-utils-Cs1jlD-q.js} +14 -14
- package/dist/{sessions-BCc3THTm.js → sessions-Dxf5Kjig.js} +10 -10
- package/dist/{shared-C39SiDDJ.js → shared-1xPo9ygd.js} +1 -1
- package/dist/{shared-Dh-O8nRd.js → shared-COtpr3Ad.js} +3 -3
- package/dist/{skill-commands-DWvXs3lz.js → skill-commands-DDGGlq68.js} +4 -4
- package/dist/{skill-scanner-CIlHPszT.js → skill-scanner-BCgVcIwi.js} +5 -5
- package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
- package/dist/{skills-cli-CD9s3cgm.js → skills-cli-B-7TY-vS.js} +7 -7
- package/dist/{skills-install-BTa9IuQ6.js → skills-install-Dwzsjoc8.js} +3 -3
- package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
- package/dist/{skills-status-DLnCHUZ2.js → skills-status-BKX1PjCc.js} +1 -1
- package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
- package/dist/{status-DUbs9rVu.js → status-BRUIJsUm.js} +3 -3
- package/dist/{status-OTYFx93W.js → status-B_CQpjQ9.js} +1 -1
- package/dist/{status-ISN-LC9F.js → status-CCAO6ZHm.js} +23 -23
- package/dist/{status-BEZotN01.js → status-D_0593yR.js} +1 -1
- package/dist/{status.update-CKfyV6zw.js → status.update-DGJi0OLl.js} +3 -3
- package/dist/{subagent-registry-CVhLz4p3.js → subagent-registry-D8BIWG9Q.js} +4 -3
- package/dist/{symframe-cli-CPE5nxuJ.js → symframe-cli-BVmRLRid.js} +9 -9
- package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
- package/dist/{synthesis-C1mZnGqD.js → synthesis-BfVWACNx.js} +4 -4
- package/dist/{synthesis-DkHCk0El.js → synthesis-CV94EuT_.js} +45 -45
- package/dist/{synthesis-CDPVZw2P.js → synthesis-D6pnRAxI.js} +4 -4
- package/dist/{synthesis-RhT991Ni.js → synthesis-qvteT0Ti.js} +4 -4
- package/dist/{system-cli-nWJwLo85.js → system-cli-Du1GEeoO.js} +7 -7
- package/dist/{systemd-CsoVnIbM.js → systemd-CUIM0n5P.js} +5 -5
- package/dist/{systemd-hints-QISwLlFU.js → systemd-hints-CsrzMCTD.js} +6 -6
- package/dist/{systemd-linger-BnhuRdbt.js → systemd-linger-BzYk7A6M.js} +1 -1
- package/dist/{tui-ZL7IGA7l.js → tui-B2MY6Mj2.js} +7 -7
- package/dist/{tui-cli-CEpMtmhP.js → tui-cli-BMEnosW9.js} +19 -19
- package/dist/{unified-runner-CsadjpQa.js → unified-runner-CtSJoaGS.js} +102 -101
- package/dist/{unified-runner-Cppo8O8z.js → unified-runner-H3Qh_NZO.js} +11 -10
- package/dist/{update-check-u6Jgr1cz.js → update-check-BCL_K7kx.js} +5 -5
- package/dist/{update-cli-48-Nah-Y.js → update-cli-BrryYmFA.js} +77 -77
- package/dist/{update-cli-D9g9s187.js → update-cli-CUos9qgT.js} +9 -9
- package/dist/{update-runner-G2YgEATs.js → update-runner-BLV8SI96.js} +15 -15
- package/dist/{update-Cb0Fmxic.js → update-yYduAjKd.js} +3 -3
- package/dist/{webhooks-cli-DjUITimx.js → webhooks-cli-D5k-Y2A8.js} +4 -4
- package/dist/{with-timeout-CLrF-Yr_.js → with-timeout-DPR4A2dx.js} +1 -1
- package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
- package/dist/{wsl-DTi7eX-V.js → wsl-CglTdtlb.js} +2 -2
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
|
|
3
3
|
import { c as escapeRegExp } from "./utils-CTPsqyE_.js";
|
|
4
|
-
import { C as DEFAULT_MODEL, m as resolveConfiguredModelRef, w as DEFAULT_PROVIDER } from "./model-selection-
|
|
4
|
+
import { C as DEFAULT_MODEL, m as resolveConfiguredModelRef, w as DEFAULT_PROVIDER } from "./model-selection-7wdmO-Iw.js";
|
|
5
5
|
import { n as listChannelDocks } from "./dock-hF45sewN.js";
|
|
6
6
|
import { i as listThinkingLevels } from "./thinking-COroyVA5.js";
|
|
7
7
|
import { t as isCommandFlagEnabled } from "./commands-DUzLGgEZ.js";
|
|
@@ -2,10 +2,10 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
|
|
3
3
|
import { f as pathExists } from "./utils-CTPsqyE_.js";
|
|
4
4
|
import { i as routeLogsToStderr } from "./subsystem-CHbO_DkH.js";
|
|
5
|
-
import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-
|
|
5
|
+
import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-BpeLcVUB.js";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import os from "node:os";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
9
|
import { Option } from "commander";
|
|
10
10
|
|
|
11
11
|
//#region src/cli/completion-cli.ts
|
|
@@ -62,11 +62,11 @@ function getCompletionScript(shell, program) {
|
|
|
62
62
|
}
|
|
63
63
|
async function writeCompletionCache(params) {
|
|
64
64
|
const cacheDir = resolveCompletionCacheDir();
|
|
65
|
-
await
|
|
65
|
+
await fs.mkdir(cacheDir, { recursive: true });
|
|
66
66
|
for (const shell of params.shells) {
|
|
67
67
|
const script = getCompletionScript(shell, params.program);
|
|
68
68
|
const targetPath = resolveCompletionCachePath(shell, params.binName);
|
|
69
|
-
await
|
|
69
|
+
await fs.writeFile(targetPath, script, "utf-8");
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
function formatCompletionSourceLine(shell, binName, cachePath) {
|
|
@@ -124,7 +124,7 @@ async function isCompletionInstalled(shell, binName = "symi") {
|
|
|
124
124
|
if (!await pathExists(profilePath)) return false;
|
|
125
125
|
const cachePathCandidate = resolveCompletionCachePath(shell, binName);
|
|
126
126
|
const cachedPath = await pathExists(cachePathCandidate) ? cachePathCandidate : null;
|
|
127
|
-
return (await
|
|
127
|
+
return (await fs.readFile(profilePath, "utf-8")).split("\n").some((line) => isCompletionProfileHeader(line) || isCompletionProfileLine(line, binName, cachedPath));
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
130
|
* Check if the profile uses the slow dynamic completion pattern.
|
|
@@ -134,7 +134,7 @@ async function usesSlowDynamicCompletion(shell, binName = "symi") {
|
|
|
134
134
|
const profilePath = getShellProfilePath(shell);
|
|
135
135
|
if (!await pathExists(profilePath)) return false;
|
|
136
136
|
const cachePath = resolveCompletionCachePath(shell, binName);
|
|
137
|
-
const lines = (await
|
|
137
|
+
const lines = (await fs.readFile(profilePath, "utf-8")).split("\n");
|
|
138
138
|
for (const line of lines) if (isSlowDynamicCompletionLine(line, binName) && !line.includes(cachePath)) return true;
|
|
139
139
|
return false;
|
|
140
140
|
}
|
|
@@ -183,7 +183,7 @@ async function installCompletion(shell, yes, binName = "symi") {
|
|
|
183
183
|
} else if (shell === "bash") {
|
|
184
184
|
profilePath = path.join(home, ".bashrc");
|
|
185
185
|
try {
|
|
186
|
-
await
|
|
186
|
+
await fs.access(profilePath);
|
|
187
187
|
} catch {
|
|
188
188
|
profilePath = path.join(home, ".bash_profile");
|
|
189
189
|
}
|
|
@@ -197,13 +197,13 @@ async function installCompletion(shell, yes, binName = "symi") {
|
|
|
197
197
|
}
|
|
198
198
|
try {
|
|
199
199
|
try {
|
|
200
|
-
await
|
|
200
|
+
await fs.access(profilePath);
|
|
201
201
|
} catch {
|
|
202
202
|
if (!yes) console.warn(`Profile not found at ${profilePath}. Created a new one.`);
|
|
203
|
-
await
|
|
204
|
-
await
|
|
203
|
+
await fs.mkdir(path.dirname(profilePath), { recursive: true });
|
|
204
|
+
await fs.writeFile(profilePath, "", "utf-8");
|
|
205
205
|
}
|
|
206
|
-
const update = updateCompletionProfile(await
|
|
206
|
+
const update = updateCompletionProfile(await fs.readFile(profilePath, "utf-8"), binName, cachePath, sourceLine);
|
|
207
207
|
if (!update.changed) {
|
|
208
208
|
if (!yes) console.log(`Completion already installed in ${profilePath}`);
|
|
209
209
|
return;
|
|
@@ -212,7 +212,7 @@ async function installCompletion(shell, yes, binName = "symi") {
|
|
|
212
212
|
const action = update.hadExisting ? "Updating" : "Installing";
|
|
213
213
|
console.log(`${action} completion in ${profilePath}...`);
|
|
214
214
|
}
|
|
215
|
-
await
|
|
215
|
+
await fs.writeFile(profilePath, update.next, "utf-8");
|
|
216
216
|
if (!yes) console.log(`Completion installed. Restart your shell or run: source ${profilePath}`);
|
|
217
217
|
} catch (err) {
|
|
218
218
|
console.error(`Failed to install completion: ${err}`);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { Mt as pathExists, l as routeLogsToStderr, yt as resolveStateDir } from "./entry.js";
|
|
3
|
-
import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-
|
|
4
|
-
import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-
|
|
3
|
+
import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-B_V8vNI0.js";
|
|
4
|
+
import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-Dzj-Uz5N.js";
|
|
5
5
|
import { t as getProgramContext } from "./program-context-B_0V80zV.js";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
@@ -3,8 +3,8 @@ import { t as CHANNEL_IDS } from "./registry-Sbac4a4z.js";
|
|
|
3
3
|
import { _ as resolveStateDir, a as resolveCanonicalConfigPath, b as resolveRequiredHomeDir, c as resolveDefaultConfigCandidates, d as resolveIsNixMode, f as resolveLegacyStateDir, g as resolveOAuthPath, h as resolveOAuthDir, i as isNixMode, l as resolveGatewayLockDir, m as resolveNewStateDir, n as DEFAULT_GATEWAY_PORT, o as resolveConfigPath, p as resolveLegacyStateDirs, r as STATE_DIR, s as resolveConfigPathCandidate, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-By0XjHBk.js";
|
|
4
4
|
import { S as isPlainObject$1, h as resolveUserPath, p as resolveConfigDir, u as isRecord } from "./utils-CTPsqyE_.js";
|
|
5
5
|
import { o as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-DUSb7CCb.js";
|
|
6
|
-
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-
|
|
7
|
-
import { S as DEFAULT_CONTEXT_TOKENS, d as parseModelRef } from "./model-selection-
|
|
6
|
+
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
|
|
7
|
+
import { S as DEFAULT_CONTEXT_TOKENS, d as parseModelRef } from "./model-selection-7wdmO-Iw.js";
|
|
8
8
|
import { a as shouldDeferShellEnvFallback, i as resolveShellEnvFallbackTimeoutMs, o as shouldEnableShellEnvFallback, r as loadShellEnvFallback } from "./shell-env-Dc3iU7HK.js";
|
|
9
9
|
import { d as resolveEnableState, f as resolveMemorySlotDecision, g as normalizeEnvVarKey, h as isDangerousHostEnvVarName, n as loadPluginManifestRegistry, u as normalizePluginsConfig } from "./manifest-registry-D1MLZEjS.js";
|
|
10
10
|
import { i as isPathInside } from "./legacy-names-BQ9vKISY.js";
|
|
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
|
|
|
201
201
|
}
|
|
202
202
|
function registerConfigCli(program) {
|
|
203
203
|
const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
204
|
-
const { configureCommandFromSectionsArg } = await import("./configure-
|
|
204
|
+
const { configureCommandFromSectionsArg } = await import("./configure-BEPKQuJj.js").then((n) => n.t);
|
|
205
205
|
await configureCommandFromSectionsArg(opts.section, defaultRuntime);
|
|
206
206
|
});
|
|
207
207
|
cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
|
|
@@ -4,9 +4,9 @@ import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
|
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
6
6
|
import "./exec-DuYbft0z.js";
|
|
7
|
-
import "./agent-scope-
|
|
8
|
-
import "./model-selection-
|
|
9
|
-
import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-
|
|
7
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
8
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
9
|
+
import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
|
|
10
10
|
import "./boolean-CbZoNRMn.js";
|
|
11
11
|
import "./env-BRnPI9sO.js";
|
|
12
12
|
import "./shell-env-Dc3iU7HK.js";
|
|
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
|
|
|
206
206
|
}
|
|
207
207
|
function registerConfigCli(program) {
|
|
208
208
|
const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
209
|
-
const { configureCommandFromSectionsArg } = await import("./configure-
|
|
209
|
+
const { configureCommandFromSectionsArg } = await import("./configure-DymrZd1n.js").then((n) => n.t);
|
|
210
210
|
await configureCommandFromSectionsArg(opts.section, defaultRuntime);
|
|
211
211
|
});
|
|
212
212
|
cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
|
|
@@ -4,14 +4,14 @@ import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
|
|
|
4
4
|
import "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
6
6
|
import "./exec-DuYbft0z.js";
|
|
7
|
-
import "./agent-scope-
|
|
8
|
-
import "./model-selection-
|
|
9
|
-
import { o as readConfigFileSnapshot } from "./config-
|
|
7
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
8
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
9
|
+
import { o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
|
|
10
10
|
import "./boolean-CbZoNRMn.js";
|
|
11
11
|
import "./env-BRnPI9sO.js";
|
|
12
12
|
import "./shell-env-Dc3iU7HK.js";
|
|
13
13
|
import "./manifest-registry-D1MLZEjS.js";
|
|
14
|
-
import "./sessions-
|
|
14
|
+
import "./sessions-Dxf5Kjig.js";
|
|
15
15
|
import "./dock-hF45sewN.js";
|
|
16
16
|
import "./message-channel-DgjXWzf-.js";
|
|
17
17
|
import "./plugins-CF5skkHh.js";
|
|
@@ -20,8 +20,8 @@ import { c as shouldMigrateStateFromPath } from "./argv-D6PT4jl6.js";
|
|
|
20
20
|
import "./catalog-BptA-dUv.js";
|
|
21
21
|
import "./prompt-style-olk5zI5k.js";
|
|
22
22
|
import "./note-D9FXI2qW.js";
|
|
23
|
-
import "./plugin-auto-enable-
|
|
24
|
-
import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-
|
|
23
|
+
import "./plugin-auto-enable-DJBhDIMq.js";
|
|
24
|
+
import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-C52W1uUK.js";
|
|
25
25
|
|
|
26
26
|
//#region src/cli/program/config-guard.ts
|
|
27
27
|
const ALLOWED_INVALID_COMMANDS = new Set([
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
2
|
-
import { o as readConfigFileSnapshot } from "./config-
|
|
2
|
+
import { o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
|
|
3
3
|
|
|
4
4
|
//#region src/commands/config-validation.ts
|
|
5
5
|
async function requireValidConfigSnapshot(runtime) {
|
|
@@ -10,7 +10,7 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
|
|
|
10
10
|
import { t as note$1 } from "./note-BIAQpZxi.js";
|
|
11
11
|
import { t as WizardCancelledError } from "./prompts-D4yOwSll.js";
|
|
12
12
|
import { t as createClackPrompter } from "./clack-prompter-BMQT37oC.js";
|
|
13
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
13
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-DSBWRjSp.js";
|
|
14
14
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-AkgOtHR6.js";
|
|
15
15
|
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-t7tI9KSA.js";
|
|
16
16
|
import { t as resolveGatewayService } from "./service-DYpU1ajf.js";
|
|
@@ -18,7 +18,7 @@ import { r as healthCommand } from "./health-Dkwuq8ta.js";
|
|
|
18
18
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dnz69KRU.js";
|
|
19
19
|
import { n as logConfigUpdated } from "./logging-Ev3fNJEG.js";
|
|
20
20
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-D6A5uuj3.js";
|
|
21
|
-
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-
|
|
21
|
+
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-C8lwYiEQ.js";
|
|
22
22
|
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-DvP8ViSf.js";
|
|
23
23
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-CctFkWNE.js";
|
|
24
24
|
import { a as promptCustomApiConfig } from "./onboard-custom-CfKvdcJ5.js";
|
|
@@ -2,9 +2,9 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-By0XjHBk.js";
|
|
3
3
|
import { h as resolveUserPath, v as shortenHomePath } from "./utils-CTPsqyE_.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
|
-
import { b as ensureAuthProfileStore } from "./auth-profiles-
|
|
5
|
+
import { b as ensureAuthProfileStore } from "./auth-profiles-Ce7R_25e.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
7
|
-
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./config-
|
|
7
|
+
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
|
|
8
8
|
import { a as findTailscaleBinary } from "./tailscale-DpKBMIvx.js";
|
|
9
9
|
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
|
|
10
10
|
import { n as withProgress } from "./progress-swt2y17x.js";
|
|
@@ -12,22 +12,22 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
|
|
|
12
12
|
import { t as note$1 } from "./note-D9FXI2qW.js";
|
|
13
13
|
import { t as WizardCancelledError } from "./prompts-CNzp9M83.js";
|
|
14
14
|
import { t as createClackPrompter } from "./clack-prompter-BpcKjPIh.js";
|
|
15
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
16
|
-
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-
|
|
17
|
-
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-
|
|
18
|
-
import { t as resolveGatewayService } from "./service-
|
|
19
|
-
import { r as healthCommand } from "./health-
|
|
20
|
-
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-
|
|
15
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Dhb-28-_.js";
|
|
16
|
+
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DlQla_dA.js";
|
|
17
|
+
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-7IGQ8nAM.js";
|
|
18
|
+
import { t as resolveGatewayService } from "./service-e6MzlLCd.js";
|
|
19
|
+
import { r as healthCommand } from "./health-7UqIGG8U.js";
|
|
20
|
+
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CJQ97d4u.js";
|
|
21
21
|
import { n as logConfigUpdated } from "./logging-DDnP1BTp.js";
|
|
22
22
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BAFfYZeR.js";
|
|
23
|
-
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-
|
|
24
|
-
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-
|
|
25
|
-
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-
|
|
26
|
-
import { a as promptCustomApiConfig } from "./onboard-custom-
|
|
23
|
+
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-DcB72YWZ.js";
|
|
24
|
+
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-Cf6UgQEh.js";
|
|
25
|
+
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BzYk7A6M.js";
|
|
26
|
+
import { a as promptCustomApiConfig } from "./onboard-custom-BcRYreNG.js";
|
|
27
27
|
import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-C_NtZ3JP.js";
|
|
28
28
|
import { t as formatHealthCheckFailure } from "./health-format-Bxg84_f4.js";
|
|
29
|
-
import { n as promptRemoteGatewayConfig } from "./onboard-remote-
|
|
30
|
-
import { n as setupSkills } from "./onboard-skills-
|
|
29
|
+
import { n as promptRemoteGatewayConfig } from "./onboard-remote-Dr75eqOQ.js";
|
|
30
|
+
import { n as setupSkills } from "./onboard-skills-uO7HZwjc.js";
|
|
31
31
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
32
32
|
|
|
33
33
|
//#region src/commands/configure.shared.ts
|
|
@@ -2,10 +2,10 @@ import "./registry-Sbac4a4z.js";
|
|
|
2
2
|
import "./paths-By0XjHBk.js";
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
5
|
-
import { l as parseEmbedding, r as cosineSimilarity } from "./internal-
|
|
5
|
+
import { l as parseEmbedding, r as cosineSimilarity } from "./internal-DVCddhhN.js";
|
|
6
6
|
import crypto from "node:crypto";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
9
|
|
|
10
10
|
//#region src/memory/consolidate.ts
|
|
11
11
|
const log = createSubsystemLogger("memory/consolidate");
|
|
@@ -346,7 +346,7 @@ async function stagePromote(params) {
|
|
|
346
346
|
};
|
|
347
347
|
const now = params.now ?? Date.now();
|
|
348
348
|
const memoryDir = path.join(params.workspaceDir, "memory");
|
|
349
|
-
await
|
|
349
|
+
await fs.mkdir(memoryDir, { recursive: true }).catch(() => {});
|
|
350
350
|
const corePath = path.join(memoryDir, "symi-core.md");
|
|
351
351
|
const beliefsPath = path.join(memoryDir, "symi-beliefs.md");
|
|
352
352
|
params.db.prepare(`UPDATE chunks SET promoted_to = NULL WHERE promoted_to = ?`).run(SYMI_CORE_PATH);
|
|
@@ -386,7 +386,7 @@ async function stagePromote(params) {
|
|
|
386
386
|
sections: sectionLines,
|
|
387
387
|
now
|
|
388
388
|
});
|
|
389
|
-
await
|
|
389
|
+
await fs.writeFile(corePath, symiCoreContent, "utf-8");
|
|
390
390
|
const merged = mergeBeliefs({
|
|
391
391
|
existing: await readExistingBeliefs(beliefsPath),
|
|
392
392
|
fresh: params.synthesizedBeliefs ?? [],
|
|
@@ -396,7 +396,7 @@ async function stagePromote(params) {
|
|
|
396
396
|
beliefs: merged,
|
|
397
397
|
now
|
|
398
398
|
});
|
|
399
|
-
await
|
|
399
|
+
await fs.writeFile(beliefsPath, symiBeliefsContent, "utf-8");
|
|
400
400
|
log.debug("consolidate.promote", {
|
|
401
401
|
promoted,
|
|
402
402
|
sections: CORE_SECTIONS.length,
|
|
@@ -596,7 +596,7 @@ function mergeBeliefs(params) {
|
|
|
596
596
|
return [...byHash.values()].toSorted((a, b) => b.confidence - a.confidence).slice(0, params.cap);
|
|
597
597
|
}
|
|
598
598
|
async function readExistingBeliefs(filePath) {
|
|
599
|
-
const content = await
|
|
599
|
+
const content = await fs.readFile(filePath, "utf-8").catch(() => "");
|
|
600
600
|
if (!content) return [];
|
|
601
601
|
const out = [];
|
|
602
602
|
for (const rawLine of content.split("\n")) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
3
|
-
import { i as loadConfig } from "./config-
|
|
4
|
-
import { x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
5
|
-
import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-
|
|
3
|
+
import { i as loadConfig } from "./config-B4jkreCN.js";
|
|
4
|
+
import { x as ensureChromeExtensionRelayServer } from "./chrome-DJChpTwP.js";
|
|
5
|
+
import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-ChcbJgNo.js";
|
|
6
6
|
|
|
7
7
|
//#region src/browser/server-lifecycle.ts
|
|
8
8
|
async function ensureExtensionRelayForProfiles(params) {
|
|
@@ -80,7 +80,7 @@ async function stopBrowserControlService() {
|
|
|
80
80
|
});
|
|
81
81
|
state = null;
|
|
82
82
|
try {
|
|
83
|
-
await (await import("./pw-ai-
|
|
83
|
+
await (await import("./pw-ai-BiBvIJzd.js")).closePlaywrightBrowserConnection();
|
|
84
84
|
} catch {}
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -961,6 +961,121 @@ body {
|
|
|
961
961
|
color: var(--text);
|
|
962
962
|
}
|
|
963
963
|
|
|
964
|
+
/* ── Stage E (3.5.28): considering button ─────────────────────── */
|
|
965
|
+
/* "What are you considering?" — clicking dwells every weighing card
|
|
966
|
+
AND adds .considering-weighing to #symframe (CSS below) which dims
|
|
967
|
+
non-weighing cards for the duration. */
|
|
968
|
+
.considering-btn {
|
|
969
|
+
margin-left: 4px;
|
|
970
|
+
padding: 2px 7px;
|
|
971
|
+
font-size: 11px;
|
|
972
|
+
line-height: 1;
|
|
973
|
+
font-family: var(--font-mono);
|
|
974
|
+
color: #f5b73a; /* amber — same hue as weighing intent */
|
|
975
|
+
background: transparent;
|
|
976
|
+
border: 1px solid rgba(245, 183, 58, 0.32);
|
|
977
|
+
border-radius: 8px;
|
|
978
|
+
cursor: pointer;
|
|
979
|
+
transition:
|
|
980
|
+
background 0.15s ease,
|
|
981
|
+
border-color 0.15s ease,
|
|
982
|
+
transform 0.15s ease;
|
|
983
|
+
}
|
|
984
|
+
.considering-btn:hover {
|
|
985
|
+
background: rgba(245, 183, 58, 0.12);
|
|
986
|
+
border-color: #f5b73a;
|
|
987
|
+
}
|
|
988
|
+
.considering-btn:active {
|
|
989
|
+
transform: scale(0.95);
|
|
990
|
+
}
|
|
991
|
+
/* Brief red flash when clicked while no weighing cards exist —
|
|
992
|
+
tells the user "I have nothing to surface here." */
|
|
993
|
+
.considering-btn.considering-empty {
|
|
994
|
+
animation: considering-empty-pulse 0.8s ease-out;
|
|
995
|
+
}
|
|
996
|
+
@keyframes considering-empty-pulse {
|
|
997
|
+
0%,
|
|
998
|
+
100% {
|
|
999
|
+
border-color: rgba(245, 183, 58, 0.32);
|
|
1000
|
+
}
|
|
1001
|
+
50% {
|
|
1002
|
+
border-color: rgba(244, 114, 182, 0.6);
|
|
1003
|
+
background: rgba(244, 114, 182, 0.1);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
/* While considering-weighing is active, dim non-weighing cards so the
|
|
1007
|
+
weighing ones (now pulsing from dwell) stand out. */
|
|
1008
|
+
.symframe.considering-weighing .symframe-card-dynamic:not([data-intent="weighing"]) {
|
|
1009
|
+
opacity: 0.32;
|
|
1010
|
+
filter: blur(1px);
|
|
1011
|
+
transition:
|
|
1012
|
+
opacity 0.4s ease,
|
|
1013
|
+
filter 0.4s ease;
|
|
1014
|
+
}
|
|
1015
|
+
.symframe.considering-weighing .symframe-substrate {
|
|
1016
|
+
opacity: 0.45;
|
|
1017
|
+
transition: opacity 0.4s ease;
|
|
1018
|
+
}
|
|
1019
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1020
|
+
.considering-btn.considering-empty {
|
|
1021
|
+
animation: none;
|
|
1022
|
+
}
|
|
1023
|
+
.symframe.considering-weighing .symframe-card-dynamic:not([data-intent="weighing"]) {
|
|
1024
|
+
transition: opacity 0.2s ease;
|
|
1025
|
+
filter: none;
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
/* ── Stage E (3.5.28): mention-binding spans ──────────────────── */
|
|
1030
|
+
/* When an assistant chat message contains `[panel:<card-id>]`, the
|
|
1031
|
+
mention-binding scanner replaces the literal text with a clickable
|
|
1032
|
+
.panel-ref span showing the card's title. Clicking the span dwells
|
|
1033
|
+
the referenced card (cyan border pulse). */
|
|
1034
|
+
.panel-ref {
|
|
1035
|
+
display: inline;
|
|
1036
|
+
color: var(--accent-cyan);
|
|
1037
|
+
border-bottom: 1px dashed currentColor;
|
|
1038
|
+
cursor: pointer;
|
|
1039
|
+
font-weight: 500;
|
|
1040
|
+
padding: 0 2px;
|
|
1041
|
+
border-radius: 3px;
|
|
1042
|
+
transition:
|
|
1043
|
+
background 0.15s ease,
|
|
1044
|
+
border-bottom-style 0.15s ease;
|
|
1045
|
+
}
|
|
1046
|
+
.panel-ref::before {
|
|
1047
|
+
content: "↗ ";
|
|
1048
|
+
font-size: 0.85em;
|
|
1049
|
+
opacity: 0.7;
|
|
1050
|
+
}
|
|
1051
|
+
.panel-ref:hover {
|
|
1052
|
+
background: rgba(0, 212, 255, 0.12);
|
|
1053
|
+
border-bottom-style: solid;
|
|
1054
|
+
}
|
|
1055
|
+
/* Orphan reference — the card is no longer in the panel. Subdued so
|
|
1056
|
+
the user sees the link works but the card isn't currently here. */
|
|
1057
|
+
.panel-ref.panel-ref-orphan {
|
|
1058
|
+
color: var(--text-dim);
|
|
1059
|
+
opacity: 0.7;
|
|
1060
|
+
}
|
|
1061
|
+
.panel-ref.panel-ref-orphan::before {
|
|
1062
|
+
content: "↗ ";
|
|
1063
|
+
}
|
|
1064
|
+
/* Click-miss flash: a brief pink tint signals "I tried to dwell but
|
|
1065
|
+
that card isn't currently registered." */
|
|
1066
|
+
.panel-ref.panel-ref-miss {
|
|
1067
|
+
animation: panel-ref-miss-pulse 1s ease-out;
|
|
1068
|
+
}
|
|
1069
|
+
@keyframes panel-ref-miss-pulse {
|
|
1070
|
+
0%,
|
|
1071
|
+
100% {
|
|
1072
|
+
background: rgba(0, 212, 255, 0.12);
|
|
1073
|
+
}
|
|
1074
|
+
50% {
|
|
1075
|
+
background: rgba(244, 114, 182, 0.22);
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
|
|
964
1079
|
/* ── Per-mode layout overrides ───────────────────────────────── */
|
|
965
1080
|
/* Default (ambient): inherits the base .symframe grid above —
|
|
966
1081
|
auto / 1fr / auto rows. No override needed. */
|
|
@@ -1656,6 +1771,165 @@ body {
|
|
|
1656
1771
|
box-shadow: 0 0 8px rgba(0, 212, 255, 0.18);
|
|
1657
1772
|
}
|
|
1658
1773
|
|
|
1774
|
+
/* ── Stage D.1 (3.5.27): intent-aware visual treatment ──────────── */
|
|
1775
|
+
/* The data-intent attribute has been on every card since Stage A but
|
|
1776
|
+
was metadata only. Stage D.1 makes the agent's mental categorization
|
|
1777
|
+
visible: each intent gets a distinct color stripe running down the
|
|
1778
|
+
left edge of the card + a small corner ribbon at the top-left with
|
|
1779
|
+
the intent label. Some intents add subtle behavior (producing
|
|
1780
|
+
pulses; drafted emphasizes action buttons; reference desaturates).
|
|
1781
|
+
|
|
1782
|
+
No JS changes — purely a CSS layer on top of the existing
|
|
1783
|
+
.symframe-card-dynamic[data-intent="..."] hook. */
|
|
1784
|
+
|
|
1785
|
+
/* Base treatment shared across all intents: the left stripe is via
|
|
1786
|
+
inset box-shadow so it doesn't disturb the card's border-radius.
|
|
1787
|
+
The ribbon is via ::before pseudo-element at the top-left corner.
|
|
1788
|
+
Cards without data-intent (legacy / pre-Stage-A pushes) get neither. */
|
|
1789
|
+
|
|
1790
|
+
.symframe-card-dynamic[data-intent]::before {
|
|
1791
|
+
content: attr(data-intent);
|
|
1792
|
+
position: absolute;
|
|
1793
|
+
top: 0;
|
|
1794
|
+
left: 0;
|
|
1795
|
+
padding: 2px 8px 2px 6px;
|
|
1796
|
+
font-family: var(--font-mono);
|
|
1797
|
+
font-size: 8px;
|
|
1798
|
+
font-weight: 700;
|
|
1799
|
+
letter-spacing: 0.14em;
|
|
1800
|
+
text-transform: uppercase;
|
|
1801
|
+
background: rgba(0, 0, 0, 0.55);
|
|
1802
|
+
border-radius: 10px 0 6px 0;
|
|
1803
|
+
border-right: 1px solid currentColor;
|
|
1804
|
+
border-bottom: 1px solid currentColor;
|
|
1805
|
+
pointer-events: none;
|
|
1806
|
+
z-index: 2;
|
|
1807
|
+
opacity: 0.85;
|
|
1808
|
+
}
|
|
1809
|
+
/* Reset the base card-padding so the ribbon hugs the corner */
|
|
1810
|
+
.symframe-card-dynamic[data-intent] {
|
|
1811
|
+
/* Slight top padding so the ribbon doesn't crowd the title */
|
|
1812
|
+
padding-top: 22px;
|
|
1813
|
+
}
|
|
1814
|
+
|
|
1815
|
+
/* holding — cyan; working memory */
|
|
1816
|
+
.symframe-card-dynamic[data-intent="holding"] {
|
|
1817
|
+
box-shadow:
|
|
1818
|
+
inset 3px 0 0 0 rgba(0, 212, 255, 0.65),
|
|
1819
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1820
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1821
|
+
}
|
|
1822
|
+
.symframe-card-dynamic[data-intent="holding"]::before {
|
|
1823
|
+
color: var(--accent-cyan);
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
/* weighing — amber; an option under consideration */
|
|
1827
|
+
.symframe-card-dynamic[data-intent="weighing"] {
|
|
1828
|
+
box-shadow:
|
|
1829
|
+
inset 3px 0 0 0 #f5b73a,
|
|
1830
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1831
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1832
|
+
}
|
|
1833
|
+
.symframe-card-dynamic[data-intent="weighing"]::before {
|
|
1834
|
+
color: #f5b73a;
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
/* producing — green; actively drafting, slow pulse on the stripe */
|
|
1838
|
+
.symframe-card-dynamic[data-intent="producing"] {
|
|
1839
|
+
animation: intent-producing-pulse 2.6s ease-in-out infinite;
|
|
1840
|
+
}
|
|
1841
|
+
@keyframes intent-producing-pulse {
|
|
1842
|
+
0%,
|
|
1843
|
+
100% {
|
|
1844
|
+
box-shadow:
|
|
1845
|
+
inset 3px 0 0 0 rgba(52, 211, 153, 0.55),
|
|
1846
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1847
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1848
|
+
}
|
|
1849
|
+
50% {
|
|
1850
|
+
box-shadow:
|
|
1851
|
+
inset 3px 0 0 0 rgba(52, 211, 153, 1),
|
|
1852
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1853
|
+
0 4px 12px rgba(0, 0, 0, 0.25),
|
|
1854
|
+
0 0 14px rgba(52, 211, 153, 0.2);
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1857
|
+
.symframe-card-dynamic[data-intent="producing"]::before {
|
|
1858
|
+
content: "● producing";
|
|
1859
|
+
color: #34d399;
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
/* drafted — violet; finished artifact ready for user review */
|
|
1863
|
+
.symframe-card-dynamic[data-intent="drafted"] {
|
|
1864
|
+
box-shadow:
|
|
1865
|
+
inset 3px 0 0 0 #8b5cf6,
|
|
1866
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1867
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1868
|
+
}
|
|
1869
|
+
.symframe-card-dynamic[data-intent="drafted"]::before {
|
|
1870
|
+
color: #8b5cf6;
|
|
1871
|
+
}
|
|
1872
|
+
/* Emphasize action buttons on drafted cards — these cards exist to
|
|
1873
|
+
be acted on (Send / Copy / Open). Make the buttons more clickable. */
|
|
1874
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action {
|
|
1875
|
+
border-color: rgba(139, 92, 246, 0.55);
|
|
1876
|
+
color: var(--text);
|
|
1877
|
+
font-weight: 600;
|
|
1878
|
+
}
|
|
1879
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action:hover {
|
|
1880
|
+
background: rgba(139, 92, 246, 0.12);
|
|
1881
|
+
border-color: #8b5cf6;
|
|
1882
|
+
}
|
|
1883
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action-primary {
|
|
1884
|
+
background: rgba(139, 92, 246, 0.22);
|
|
1885
|
+
border-color: #8b5cf6;
|
|
1886
|
+
color: var(--text);
|
|
1887
|
+
}
|
|
1888
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action-primary:hover {
|
|
1889
|
+
background: rgba(139, 92, 246, 0.32);
|
|
1890
|
+
box-shadow: 0 0 10px rgba(139, 92, 246, 0.25);
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
/* reference — muted gray; passive read-only context */
|
|
1894
|
+
.symframe-card-dynamic[data-intent="reference"] {
|
|
1895
|
+
box-shadow:
|
|
1896
|
+
inset 3px 0 0 0 rgba(255, 255, 255, 0.22),
|
|
1897
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1898
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1899
|
+
opacity: 0.88;
|
|
1900
|
+
filter: saturate(0.75);
|
|
1901
|
+
}
|
|
1902
|
+
.symframe-card-dynamic[data-intent="reference"]::before {
|
|
1903
|
+
color: var(--text-dim);
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1906
|
+
/* awaiting — if a card is mistakenly pushed with this intent (it
|
|
1907
|
+
belongs in the AWAITING footer, not the foreground), flag with a
|
|
1908
|
+
pink stripe and a "→ footer" hint so the user/agent notices the
|
|
1909
|
+
miscategorization. */
|
|
1910
|
+
.symframe-card-dynamic[data-intent="awaiting"] {
|
|
1911
|
+
box-shadow:
|
|
1912
|
+
inset 3px 0 0 0 rgba(244, 114, 182, 0.55),
|
|
1913
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1914
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1915
|
+
}
|
|
1916
|
+
.symframe-card-dynamic[data-intent="awaiting"]::before {
|
|
1917
|
+
content: "awaiting → footer";
|
|
1918
|
+
color: rgba(244, 114, 182, 0.85);
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
/* Reduced-motion: skip the producing pulse but keep the static
|
|
1922
|
+
green stripe so the intent is still visible. */
|
|
1923
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1924
|
+
.symframe-card-dynamic[data-intent="producing"] {
|
|
1925
|
+
animation: none;
|
|
1926
|
+
box-shadow:
|
|
1927
|
+
inset 3px 0 0 0 rgba(52, 211, 153, 0.75),
|
|
1928
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1929
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1659
1933
|
/* ── Phase 4: type-specific body renderers ───────────────────────── */
|
|
1660
1934
|
|
|
1661
1935
|
/* Text + markdown: inherit from .symframe-card-body. Add minimal
|
|
@@ -242,6 +242,19 @@
|
|
|
242
242
|
<button type="button" class="mode-auto" id="mode-auto" hidden title="Release to agent">
|
|
243
243
|
AUTO
|
|
244
244
|
</button>
|
|
245
|
+
<!-- Stage E (3.5.28): "what are you considering?" — clicking -->
|
|
246
|
+
<!-- this dwells every weighing card and dims non-weighing cards -->
|
|
247
|
+
<!-- for ~5s. Direct visual answer to "what options is the agent -->
|
|
248
|
+
<!-- holding open right now?" -->
|
|
249
|
+
<button
|
|
250
|
+
type="button"
|
|
251
|
+
class="considering-btn"
|
|
252
|
+
id="considering-btn"
|
|
253
|
+
title="What are you considering? (highlights weighing cards)"
|
|
254
|
+
aria-label="Highlight weighing cards"
|
|
255
|
+
>
|
|
256
|
+
⚖
|
|
257
|
+
</button>
|
|
245
258
|
</div>
|
|
246
259
|
<div class="symframe-sub">window into the agent's mind</div>
|
|
247
260
|
</div>
|
|
@@ -1029,5 +1042,6 @@
|
|
|
1029
1042
|
<script src="js/symframe-substrate.js"></script>
|
|
1030
1043
|
<script src="js/symframe-awaiting.js"></script>
|
|
1031
1044
|
<script src="js/symframe-modes.js"></script>
|
|
1045
|
+
<script src="js/symframe-bidirectional.js"></script>
|
|
1032
1046
|
</body>
|
|
1033
1047
|
</html>
|