@symerian/symi 3.5.20 → 3.5.22
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-D0Z4r5fr.js → agent-DgVWcnlD.js} +1 -1
- package/dist/{agent-DCDT-MPE.js → agent-NT0EKnK_.js} +18 -18
- package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
- package/dist/{agents-CdkBeP0d.js → agents-Dlcpc1K3.js} +3 -3
- package/dist/{agents.config-B7sNDvhz.js → agents.config-DA0ISLi7.js} +1 -1
- package/dist/{audit-B7deV4Lp.js → audit-CPloCzEZ.js} +2 -2
- package/dist/{audit-BCStg-Hv.js → audit-CXIXYDRx.js} +20 -20
- package/dist/{auth-choice-BIGcxSzP.js → auth-choice--DymOp5O.js} +2 -2
- package/dist/{auth-choice-B3DU-aBr.js → auth-choice-BtXIQPTU.js} +11 -11
- package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
- package/dist/{auth-token-Cr28IDKY.js → auth-token-fgnCQEHT.js} +3 -3
- package/dist/{banner-ChNdzPjD.js → banner-CY_9VW7E.js} +1 -1
- package/dist/{browser-cli-C9xaKW8l.js → browser-cli-C5VVk6C9.js} +3 -3
- package/dist/{browser-cli-BTg8SVs-.js → browser-cli-DOTM7UBC.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/{call-BccaLPi8.js → call-Bpjj5p7I.js} +9 -9
- package/dist/{call-DZg43vv8.js → call-C2urR5Fj.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CUptVX8c.js → channel-options-XRJiHUm5.js} +1 -1
- package/dist/{channel-options-LLmAnD_L.js → channel-options-rFgJaKzJ.js} +1 -1
- package/dist/{channels-cli-xoromnio.js → channels-cli-CQ4M05oy.js} +57 -57
- package/dist/{channels-cli-B0OQvVUL.js → channels-cli-QMHCRAb5.js} +9 -9
- package/dist/{chrome-DJChpTwP.js → chrome-38OnGyuN.js} +2 -2
- package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
- package/dist/{cli-C7v-sID8.js → cli-B-uoiYP2.js} +45 -45
- package/dist/{cli-CMNR7ULk.js → cli-BafqEuaj.js} +6 -6
- package/dist/{client-k0MT6NBw.js → client-CTrfpKT3.js} +7 -2
- package/dist/{client-DCxeV1bw.js → client-yVTJ5jx5.js} +6 -1
- package/dist/{command-registry-CXcvXjUR.js → command-registry-CLm8TAH3.js} +11 -11
- package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
- package/dist/{completion-cli-DJ1YCeSg.js → completion-cli-Cn_81QBb.js} +12 -12
- package/dist/{completion-cli-B1Fg6Lmg.js → completion-cli-DOBXkVwG.js} +2 -2
- package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
- package/dist/{config-cli-D5DlWt6T.js → config-cli-B1cPkJ4p.js} +4 -4
- package/dist/{config-cli-CQ1FAvY_.js → config-cli-BgHYqFH1.js} +1 -1
- package/dist/{config-guard-BRm3RiOi.js → config-guard-DStz4_V2.js} +6 -6
- package/dist/{config-validation-Cdyg1BZB.js → config-validation-Dxj9LRzr.js} +1 -1
- package/dist/{configure-bhJB2Dti.js → configure-C7zmSgvC.js} +14 -14
- package/dist/{configure-DG1lf0Ld.js → configure-DmzM0S7L.js} +6 -6
- package/dist/{consolidate-DymnvvYm.js → consolidate-CO32_TEx.js} +6 -6
- package/dist/{control-service-D8kKOts5.js → control-service-CUreKVeY.js} +4 -4
- package/dist/control-ui/css/style.css +281 -0
- package/dist/control-ui/index.html +45 -115
- package/dist/control-ui/js/scheduling.js +85 -224
- package/dist/control-ui/js/subagents.js +78 -394
- package/dist/control-ui/js/symframe-awaiting.js +306 -0
- package/dist/control-ui/js/symframe-pin-store.js +104 -0
- package/dist/control-ui/js/symframe-substrate.js +11 -7
- package/dist/control-ui/js/symframe.js +250 -30
- package/dist/{control-ui-assets-CJQ97d4u.js → control-ui-assets-B8B9z_Ll.js} +1 -1
- package/dist/{cost-cli-DWiVCOCx.js → cost-cli-D-ssjcRF.js} +3 -3
- package/dist/{cron-cli-8RaBr1CM.js → cron-cli-BNBs3zue.js} +3 -3
- package/dist/{cron-cli-fW3wtftG.js → cron-cli-otPeKxmi.js} +7 -7
- package/dist/{daemon-cli-Y6clFgva.js → daemon-cli-DDqeG2nd.js} +2 -2
- package/dist/{daemon-cli-0EiZTQ2A.js → daemon-cli-qDdMg615.js} +11 -11
- package/dist/daemon-cli.js +6 -1
- package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
- package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
- package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
- package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
- package/dist/{devices-cli-C2gQTsB0.js → devices-cli-BJ3rVWOw.js} +2 -2
- package/dist/{devices-cli-DfiSkZ7k.js → devices-cli-DDPwF2Nx.js} +6 -6
- package/dist/{diagnostics-DlZODdRf.js → diagnostics-CYkqD5lP.js} +5 -5
- package/dist/{directory-cli-Bm5QYEo-.js → directory-cli-giqTe8Yg.js} +3 -3
- package/dist/{dm-policy-shared-CeFt0nch.js → dm-policy-shared-B61_yf6G.js} +1 -1
- package/dist/{dns-cli-CubLq4j9.js → dns-cli-Dssz4RqF.js} +3 -3
- package/dist/{docs-cli-PS8m1er7.js → docs-cli-Ct1STieY.js} +1 -1
- package/dist/{doctor-completion-CfF0J8fs.js → doctor-completion-CL7MyXlo.js} +2 -2
- package/dist/{doctor-completion-ScxFfN93.js → doctor-completion-k0HiL05o.js} +1 -1
- package/dist/{doctor-config-flow-C52W1uUK.js → doctor-config-flow-ljVnQJjo.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Cl-vWA1q.js → exec-approvals-cli-Cau1vPQI.js} +4 -4
- package/dist/{exec-approvals-cli-BaKWIf56.js → exec-approvals-cli-DsBoQu5H.js} +13 -13
- package/dist/extensionAPI.js +4 -4
- package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
- package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
- package/dist/{gateway-cli-kq5EWlnF.js → gateway-cli-DG_2YZ8B.js} +98 -98
- package/dist/{gateway-cli-CK-5nguV.js → gateway-cli-DgmGygc6.js} +16 -16
- package/dist/{gateway-rpc-Bzg_TTKP.js → gateway-rpc-Kv0-8W2E.js} +1 -1
- package/dist/{gateway-rpc-D12UaJS5.js → gateway-rpc-gaoD882s.js} +1 -1
- package/dist/{glass-ui-ws-B6p0iPsO.js → glass-ui-ws-Bof7krDJ.js} +67 -67
- package/dist/{glass-ui-ws-CVr0_1gT.js → glass-ui-ws-Dl45d7eU.js} +13 -13
- package/dist/{health-CPU9rQGj.js → health-CMbUI4aN.js} +4 -4
- package/dist/{health-CJb2CYtg.js → health-znS85U-F.js} +1 -1
- package/dist/{hooks-cli-DbgVZaP4.js → hooks-cli-Cb9BzCOY.js} +7 -7
- package/dist/{hooks-cli-13HCu5Xs.js → hooks-cli-Cgjor7F-.js} +59 -59
- package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
- package/dist/index.js +52 -52
- package/dist/{inspect-CGKsaVZ4.js → inspect-DzYUb_Dl.js} +4 -4
- package/dist/{install-safe-path-B2JrFspY.js → install-safe-path-BrpA09f2.js} +11 -11
- package/dist/{installs-D890uIIW.js → installs-bnDlOSq2.js} +10 -10
- package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
- package/dist/{lifecycle-core-wFwnK_mD.js → lifecycle-core-cSR_xiIO.js} +5 -5
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
- package/dist/{logs-cli-R16VTptK.js → logs-cli-Kr145PO_.js} +7 -7
- package/dist/{logs-cli-CQeK5fn7.js → logs-cli-LiAjkog2.js} +3 -3
- package/dist/{manager-CxFs8Z_F.js → manager-CceVgXHV.js} +1 -1
- package/dist/{manager-B2SWSuad.js → manager-DDynl084.js} +1 -1
- package/dist/{manager-CHLdCC6u.js → manager-DG6PODgu.js} +15 -15
- package/dist/{manager-LPPGAsqn.js → manager-qrAOWmHt.js} +1 -1
- package/dist/{memory-DFpqcIst.js → memory-A2D5e8dL.js} +2 -2
- package/dist/{memory-DavRjdTi.js → memory-BFnx3v3_.js} +5 -5
- package/dist/{memory-cli-DZnq3S6s.js → memory-cli-1zjVJITN.js} +2 -2
- package/dist/{memory-cli-B-Cp1Sb1.js → memory-cli-CHNghdrm.js} +12 -12
- package/dist/{model-MUMSB_7d.js → model-Cwbcw-km.js} +1 -1
- package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
- package/dist/{model-catalog-IWi6-nY9.js → model-catalog-BWurV7gl.js} +3 -3
- package/dist/{model-picker-Cf6UgQEh.js → model-picker-Dpkr5xBW.js} +5 -5
- package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
- package/dist/{models-Cht7Mzvs.js → models-BYev6YAG.js} +3 -3
- package/dist/{models-cli-B_motPDX.js → models-cli-BbK8HMKa.js} +55 -55
- package/dist/{models-cli-DXswzgUR.js → models-cli-Fa5r1QYP.js} +9 -9
- package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
- package/dist/{node-cli-D-gsjRXY.js → node-cli-BPnBosC4.js} +27 -27
- package/dist/{node-cli-VmKhIXuP.js → node-cli-Cv7x1gGu.js} +1 -1
- package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
- package/dist/{nodes-cli-BMvxQGCp.js → nodes-cli-CN_m6PO5.js} +10 -10
- package/dist/{nodes-cli-D199d74o.js → nodes-cli-DaHOBbd4.js} +3 -3
- package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
- package/dist/{npm-registry-spec-DTqn-NXZ.js → npm-registry-spec-C-muP97-.js} +9 -9
- package/dist/{onboard-DFJcbABp.js → onboard-B2IcTMv-.js} +15 -15
- package/dist/{onboard-CdRA8BRG.js → onboard-D-m6WTZl.js} +3 -3
- package/dist/{onboard-channels-fadyQGBK.js → onboard-channels-Z-Jkrk5-.js} +1 -1
- package/dist/{onboard-channels-Ca7ZFQ2Y.js → onboard-channels-wfGO5Zlh.js} +4 -4
- package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
- package/dist/{onboard-helpers-CQBpac8h.js → onboard-helpers-BKejzolA.js} +8 -8
- package/dist/{onboard-helpers-BcLPSb5N.js → onboard-helpers-Dhr98nj8.js} +1 -1
- package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
- package/dist/{onboard-remote-Bo3tpC9N.js → onboard-remote-DZdMxd1Q.js} +1 -1
- package/dist/{onboard-remote-BWK5Ths4.js → onboard-remote-y3ZmP90U.js} +1 -1
- package/dist/{onboard-skills-BLl8HPJO.js → onboard-skills-2SUv-W7i.js} +1 -1
- package/dist/{onboard-skills-DvacccqZ.js → onboard-skills-BFhHfrt9.js} +3 -3
- package/dist/{onboarding-ojb2rFkA.js → onboarding-BckHLQMV.js} +7 -7
- package/dist/{onboarding-BywueA1d.js → onboarding-DqlPV372.js} +12 -12
- package/dist/{onboarding.finalize-DdxBQpUU.js → onboarding.finalize-Bwjv3jew.js} +31 -31
- package/dist/{onboarding.finalize-DHvlZi9G.js → onboarding.finalize-CbH_ShIW.js} +9 -9
- package/dist/{onboarding.gateway-config-DPBNWNV6.js → onboarding.gateway-config-CiRo9EMt.js} +8 -8
- package/dist/{onboarding.gateway-config-ZK9517uR.js → onboarding.gateway-config-sNSeEykB.js} +3 -3
- package/dist/{openai-model-default-BkuuK-Di.js → openai-model-default-De-UAjwg.js} +2 -2
- package/dist/{pairing-cli-Rsae0KnN.js → pairing-cli-CBMMCNnx.js} +5 -5
- package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
- package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
- package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
- package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
- package/dist/{pi-embedded-Da0QRlM0.js → pi-embedded-CviuByGd.js} +32 -16
- package/dist/{pi-embedded-helpers-D-OFjhdI.js → pi-embedded-helpers-j1JrlsI0.js} +6 -6
- package/dist/{pi-tools.policy-H2t-Xkfc.js → pi-tools.policy-CvAqjEH9.js} +3 -3
- package/dist/{plugin-auto-enable-DJBhDIMq.js → plugin-auto-enable-BXSJTxI7.js} +1 -1
- package/dist/{plugin-registry-tG7NXc3Y.js → plugin-registry-B43UosQh.js} +3 -3
- package/dist/{plugin-registry-Tlmjr-LX.js → plugin-registry-CS4WgHbu.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -1
- package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +18 -6
- package/dist/{plugins-cli-CRKD8aho.js → plugins-cli-BV2wbjfI.js} +54 -54
- package/dist/{plugins-cli-Cm0G_-Y5.js → plugins-cli-BY42hyHP.js} +7 -7
- package/dist/{ports-r7LBic2V.js → ports-Bi3V_3n9.js} +1 -1
- package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
- package/dist/{program-DEmAlwmD.js → program-P9F1DxBa.js} +12 -12
- package/dist/{program-context-DRCRbDpu.js → program-context-BmXxHUKe.js} +40 -40
- package/dist/{prompt-select-styled-pomsR-zf.js → prompt-select-styled-B2ah467m.js} +7 -7
- package/dist/{prompt-select-styled-B41Tx9aC.js → prompt-select-styled-BlQZX6pK.js} +38 -38
- package/dist/{provider-auth-helpers-rKWs_r7a.js → provider-auth-helpers-Bgb_Bfp9.js} +1 -1
- package/dist/{provider-auth-helpers-CdQwOam7.js → provider-auth-helpers-WLwb6tL4.js} +6 -6
- package/dist/{push-apns-eCM0qmrY.js → push-apns-CBGvXev_.js} +4 -4
- package/dist/{push-apns-CZPUHftn.js → push-apns-DnSCjFu7.js} +1 -1
- package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
- package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
- package/dist/{qmd-manager-C8-M4Pru.js → qmd-manager-Dxyue7B1.js} +19 -19
- package/dist/{qr-cli-1sCVaPcF.js → qr-cli-DHw6muwK.js} +3 -3
- package/dist/{register.agent-BQPvYYdn.js → register.agent-BuEcmVg0.js} +12 -12
- package/dist/{register.agent-N1hoqMFR.js → register.agent-CXdTiqyP.js} +67 -67
- package/dist/{register.configure-BHHZ44xB.js → register.configure-DVcn-gCO.js} +70 -70
- package/dist/{register.configure-BAc3P4Z-.js → register.configure-YDKJ-KQg.js} +14 -14
- package/dist/{register.maintenance-lX0a3Hzl.js → register.maintenance-BiGvpEj-.js} +13 -13
- package/dist/{register.maintenance-DDgy5Iyy.js → register.maintenance-cpspl8D6.js} +67 -67
- package/dist/{register.message-Br-IH_0z.js → register.message-BIuLbESM.js} +7 -7
- package/dist/{register.message-B4lDhHpE.js → register.message-BjcYy5UG.js} +47 -47
- package/dist/{register.onboard-B-GoYJIc.js → register.onboard-C4vIASed.js} +6 -6
- package/dist/{register.onboard-Bv0s2_KV.js → register.onboard-D4RN92s2.js} +25 -25
- package/dist/{register.setup-DQ6KLkAI.js → register.setup-BvoXF0xl.js} +28 -28
- package/dist/{register.setup-4lNdC98i.js → register.setup-D-Jt2e1d.js} +6 -6
- package/dist/{register.status-health-sessions-Cg7bK5K2.js → register.status-health-sessions-BY9hMD1s.js} +8 -8
- package/dist/{register.status-health-sessions-ByGn71_M.js → register.status-health-sessions-DjDvCXBn.js} +41 -41
- package/dist/{register.subclis-FMlcLBX0.js → register.subclis-Cibmeapc.js} +20 -20
- package/dist/{replies-CbXXjn9X.js → replies-B_3j7R_Q.js} +1 -1
- package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
- package/dist/{resolve-route-C1IIA6kH.js → resolve-route-Du0VftVs.js} +1 -1
- package/dist/{routes-ivqbutvM.js → routes-BwTUoI5h.js} +10 -10
- package/dist/{rpc-Dk1Az_d8.js → rpc-BnAKPQDB.js} +1 -1
- package/dist/{rpc-JAmDaTYt.js → rpc-CwxSZZOx.js} +1 -1
- package/dist/{run-main-DSyeVDsT.js → run-main-BhEQjKtM.js} +20 -20
- package/dist/{sandbox-BkznAPKO.js → sandbox-CZGTCone.js} +18 -18
- package/dist/{sandbox-cli-Bb9cBtBH.js → sandbox-cli-DEtGT_4y.js} +13 -13
- package/dist/{security-cli-DmgGLP83.js → security-cli-CS-ZT1LE.js} +3 -3
- package/dist/{security-cli-D47LQbpf.js → security-cli-DJd7Fcdy.js} +29 -29
- package/dist/{send-B0jHSNMF.js → send-CxjvucMO.js} +7 -7
- package/dist/{server-context-ChcbJgNo.js → server-context-DXdk410X.js} +5 -5
- package/dist/{server-methods-DGBBt49x.js → server-methods-CWxr5b-w.js} +19 -13
- package/dist/{server-methods-BkHB2MOW.js → server-methods-DfVfzYqq.js} +68 -62
- package/dist/{server-node-events-C186LRm0.js → server-node-events-B0yC6hi1.js} +48 -48
- package/dist/{server-node-events-D-Akk3uq.js → server-node-events-ClDEcUTJ.js} +8 -8
- package/dist/{service-e6MzlLCd.js → service-CRZoXO_n.js} +15 -15
- package/dist/{session-dirs-C9E2G0yZ.js → session-dirs-a00Ad2SO.js} +2 -2
- package/dist/{session-utils-Cs1jlD-q.js → session-utils-CJhcRx3E.js} +14 -14
- package/dist/{sessions-Dxf5Kjig.js → sessions-BCc3THTm.js} +10 -10
- package/dist/{shared-1xPo9ygd.js → shared-C39SiDDJ.js} +1 -1
- package/dist/{shared-COtpr3Ad.js → shared-Dh-O8nRd.js} +3 -3
- package/dist/{skill-commands-DDGGlq68.js → skill-commands-DWvXs3lz.js} +4 -4
- package/dist/{skill-scanner-BCgVcIwi.js → skill-scanner-CIlHPszT.js} +5 -5
- package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
- package/dist/{skills-cli-B-7TY-vS.js → skills-cli-CD9s3cgm.js} +7 -7
- package/dist/{skills-install-Dwzsjoc8.js → skills-install-BTa9IuQ6.js} +3 -3
- package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
- package/dist/{skills-status-BKX1PjCc.js → skills-status-DLnCHUZ2.js} +1 -1
- package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
- package/dist/{status-CFgCSaDq.js → status-BWxLtb3D.js} +23 -23
- package/dist/{status-poPDyC8O.js → status-Doq8T1zj.js} +3 -3
- package/dist/{status-Bahhq7OQ.js → status-K1k4g3Ai.js} +1 -1
- package/dist/{status-D9LC5P_Y.js → status-ojZB_Lrf.js} +5 -5
- package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
- package/dist/{subagent-registry-V2o45tIn.js → subagent-registry-BOt7g9hn.js} +21 -10
- package/dist/{symframe-cli-bxdpivve.js → symframe-cli-CrUtJw_7.js} +31 -7
- package/dist/{symframe-cli-ppdMo15M.js → symframe-cli-D1CtN3pf.js} +37 -13
- package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
- package/dist/{synthesis-B2EyHFXy.js → synthesis-BIQLrbys.js} +6 -6
- package/dist/{synthesis-C2WbvLOI.js → synthesis-D91XE0n4.js} +2 -2
- package/dist/{synthesis-DGau1ONT.js → synthesis-DuP2d469.js} +4 -4
- package/dist/{synthesis-CPSq83PP.js → synthesis-VZNnlUTf.js} +45 -45
- package/dist/{system-cli-nPyjUPBH.js → system-cli-CvN-Wq9U.js} +3 -3
- package/dist/{system-cli-BroqLjZ6.js → system-cli-r7WJj0Xh.js} +7 -7
- package/dist/{systemd-CUIM0n5P.js → systemd-CsoVnIbM.js} +5 -5
- package/dist/{systemd-hints-CsrzMCTD.js → systemd-hints-QISwLlFU.js} +6 -6
- package/dist/{systemd-linger-BzYk7A6M.js → systemd-linger-BnhuRdbt.js} +1 -1
- package/dist/{tui-Bp9k5skv.js → tui-BxgdImL_.js} +2 -2
- package/dist/{tui-DzROrE20.js → tui-J7Jxp-FF.js} +7 -7
- package/dist/{tui-cli-BHBF8O-3.js → tui-cli-DR48dU_C.js} +19 -19
- package/dist/{tui-cli-Dv4hBFdc.js → tui-cli-DqvgN5ng.js} +3 -3
- package/dist/{unified-runner-CIQIkbvi.js → unified-runner-CdJx7yN8.js} +25 -9
- package/dist/{unified-runner-CduaBH_0.js → unified-runner-DXjH-prv.js} +117 -106
- package/dist/{update-yYduAjKd.js → update-Cb0Fmxic.js} +3 -3
- package/dist/{update-check-BCL_K7kx.js → update-check-u6Jgr1cz.js} +5 -5
- package/dist/{update-cli-WcLxjBiY.js → update-cli-CKpjWtlv.js} +77 -77
- package/dist/{update-cli-BKnHBe8a.js → update-cli-Dn6QQZLd.js} +14 -14
- package/dist/{update-runner-BLV8SI96.js → update-runner-G2YgEATs.js} +15 -15
- package/dist/{webhooks-cli-D5k-Y2A8.js → webhooks-cli-DjUITimx.js} +4 -4
- package/dist/{with-timeout-DPR4A2dx.js → with-timeout-CLrF-Yr_.js} +1 -1
- package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
- package/dist/{wsl-CglTdtlb.js → wsl-DTi7eX-V.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
|
@@ -60,7 +60,13 @@
|
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
62
|
const total = cards.size;
|
|
63
|
-
|
|
63
|
+
// Stage C.1: blank when no cards (the static "2 cards" default
|
|
64
|
+
// was confusing post-Stage-B/C when the panel often has 0 cards).
|
|
65
|
+
if (total === 0) {
|
|
66
|
+
countEl.textContent = "";
|
|
67
|
+
} else {
|
|
68
|
+
countEl.textContent = total === 1 ? "1 card" : `${total} cards`;
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
// ── Per-type body renderers ──
|
|
@@ -358,7 +364,21 @@
|
|
|
358
364
|
const titleSpan = document.createElement("span");
|
|
359
365
|
titleSpan.textContent = card.title || "";
|
|
360
366
|
header.appendChild(titleSpan);
|
|
361
|
-
|
|
367
|
+
// Stage C: pin glyph for pinned cards. Click toggles unpin.
|
|
368
|
+
if (card.pinned) {
|
|
369
|
+
const pinGlyph = document.createElement("button");
|
|
370
|
+
pinGlyph.className = "symframe-card-pin";
|
|
371
|
+
pinGlyph.type = "button";
|
|
372
|
+
pinGlyph.setAttribute("aria-label", "Unpin");
|
|
373
|
+
pinGlyph.title = "Pinned — click to unpin";
|
|
374
|
+
pinGlyph.textContent = "📌";
|
|
375
|
+
pinGlyph.addEventListener("click", (e) => {
|
|
376
|
+
e.preventDefault();
|
|
377
|
+
e.stopPropagation();
|
|
378
|
+
unpin(card.id);
|
|
379
|
+
});
|
|
380
|
+
header.appendChild(pinGlyph);
|
|
381
|
+
} else if (card.dismissable && !card.sticky) {
|
|
362
382
|
const dismiss = document.createElement("button");
|
|
363
383
|
dismiss.className = "symframe-card-dismiss";
|
|
364
384
|
dismiss.type = "button";
|
|
@@ -535,6 +555,12 @@
|
|
|
535
555
|
* Remove a card from the registry + DOM. Sticky cards refuse removal
|
|
536
556
|
* unless force=true is passed (defensive — the system panels really
|
|
537
557
|
* shouldn't disappear via stray API calls).
|
|
558
|
+
*
|
|
559
|
+
* Stage C: pinned cards behave like sticky for the user-side dismiss
|
|
560
|
+
* button (× hidden in the header) but `remove` still drops them when
|
|
561
|
+
* called — the pin survives in localStorage and the card re-appears
|
|
562
|
+
* on the next reload. To actually drop a pinned card permanently,
|
|
563
|
+
* the agent / user must unpin first.
|
|
538
564
|
*/
|
|
539
565
|
function remove(id, force = false) {
|
|
540
566
|
const entry = cards.get(id);
|
|
@@ -553,40 +579,205 @@
|
|
|
553
579
|
return true;
|
|
554
580
|
}
|
|
555
581
|
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
582
|
+
// ── Stage C: dwell / release / recall / pin / unpin ────────────────
|
|
583
|
+
// The CRUD vocabulary (add/update/remove) treats the panel as a
|
|
584
|
+
// notification list. These verbs treat it as a mind-window: cards
|
|
585
|
+
// can be foregrounded ("dwell"), softly let go of ("release"),
|
|
586
|
+
// brought back ("recall"), or persisted across sessions ("pin").
|
|
587
|
+
|
|
588
|
+
const RECENTLY_RELEASED_MAX = 10;
|
|
589
|
+
/** @type {Array<{id:string, card:object, releasedAt:number}>} */
|
|
590
|
+
const recentlyReleased = [];
|
|
591
|
+
|
|
592
|
+
/**
|
|
593
|
+
* Pull a card to the top of the stack with a brief cyan border pulse.
|
|
594
|
+
* Implementation: prepend the element (newest-first stack order
|
|
595
|
+
* normally has it there if it was just added, but for older cards
|
|
596
|
+
* this lifts them up), then add a `dwelling` class for a 600ms
|
|
597
|
+
* CSS pulse animation. Sticky cards aren't reordered (they live at
|
|
598
|
+
* the anchored end of the stack by design).
|
|
599
|
+
*/
|
|
600
|
+
function dwell(id) {
|
|
601
|
+
const entry = cards.get(id);
|
|
602
|
+
if (!entry) {
|
|
603
|
+
console.warn(`[symframe] dwell: unknown id ${id}`);
|
|
604
|
+
return false;
|
|
605
|
+
}
|
|
606
|
+
if (!entry.element) {
|
|
607
|
+
console.warn(`[symframe] dwell: card ${id} has no element`);
|
|
608
|
+
return false;
|
|
609
|
+
}
|
|
610
|
+
if (!entry.sticky) {
|
|
611
|
+
// Re-prepend to bring to top of ephemeral stack.
|
|
612
|
+
container.prepend(entry.element);
|
|
613
|
+
}
|
|
614
|
+
entry.element.classList.remove("symframe-dwelling");
|
|
615
|
+
// Re-flow so the animation restarts even on repeated dwell calls.
|
|
616
|
+
void entry.element.offsetWidth;
|
|
617
|
+
entry.element.classList.add("symframe-dwelling");
|
|
618
|
+
setTimeout(() => entry.element?.classList.remove("symframe-dwelling"), 700);
|
|
619
|
+
return true;
|
|
559
620
|
}
|
|
560
621
|
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
{
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
const
|
|
622
|
+
/**
|
|
623
|
+
* Soft-dismiss a card. Animated fade + scale; on animation end the
|
|
624
|
+
* element is removed from the registry and DOM. Unlike `remove`,
|
|
625
|
+
* `release` records the card in a session ring buffer so `recall(id)`
|
|
626
|
+
* can bring it back. Sticky cards refuse release without force=true.
|
|
627
|
+
*/
|
|
628
|
+
function release(id, force = false) {
|
|
629
|
+
const entry = cards.get(id);
|
|
630
|
+
if (!entry) {
|
|
631
|
+
return false;
|
|
632
|
+
}
|
|
633
|
+
if (entry.sticky && !force) {
|
|
634
|
+
console.warn(`[symframe] release: refusing sticky card '${id}' without force=true`);
|
|
635
|
+
return false;
|
|
636
|
+
}
|
|
637
|
+
// Snapshot for recall (strip the live DOM element)
|
|
638
|
+
const snapshot = { ...entry };
|
|
639
|
+
delete snapshot.element;
|
|
640
|
+
recentlyReleased.unshift({
|
|
641
|
+
id,
|
|
642
|
+
card: snapshot,
|
|
643
|
+
releasedAt: Date.now(),
|
|
644
|
+
});
|
|
645
|
+
if (recentlyReleased.length > RECENTLY_RELEASED_MAX) {
|
|
646
|
+
recentlyReleased.length = RECENTLY_RELEASED_MAX;
|
|
647
|
+
}
|
|
648
|
+
// Animate then drop
|
|
649
|
+
const el = entry.element;
|
|
578
650
|
if (el) {
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
651
|
+
el.classList.add("symframe-releasing");
|
|
652
|
+
const cleanup = () => {
|
|
653
|
+
cards.delete(id);
|
|
654
|
+
if (el.parentElement === container) {
|
|
655
|
+
el.remove();
|
|
656
|
+
}
|
|
657
|
+
updateCount();
|
|
658
|
+
};
|
|
659
|
+
// Fail-safe: drop after the CSS transition window even if the
|
|
660
|
+
// transitionend event doesn't fire (browser bug, reduced motion).
|
|
661
|
+
const handle = setTimeout(cleanup, 900);
|
|
662
|
+
el.addEventListener(
|
|
663
|
+
"transitionend",
|
|
664
|
+
() => {
|
|
665
|
+
clearTimeout(handle);
|
|
666
|
+
cleanup();
|
|
667
|
+
},
|
|
668
|
+
{ once: true },
|
|
669
|
+
);
|
|
670
|
+
} else {
|
|
671
|
+
cards.delete(id);
|
|
672
|
+
updateCount();
|
|
673
|
+
}
|
|
674
|
+
return true;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* Re-summon a recently-released card from the session ring buffer.
|
|
679
|
+
* Calling `recall(id)` without an id recalls the most-recent release.
|
|
680
|
+
* If the id isn't in the buffer or the card already exists, no-op.
|
|
681
|
+
*/
|
|
682
|
+
function recall(id) {
|
|
683
|
+
const recordIdx = id
|
|
684
|
+
? recentlyReleased.findIndex((r) => r.id === id)
|
|
685
|
+
: recentlyReleased.length > 0
|
|
686
|
+
? 0
|
|
687
|
+
: -1;
|
|
688
|
+
if (recordIdx < 0) {
|
|
689
|
+
console.warn(`[symframe] recall: nothing to recall${id ? ` for id ${id}` : ""}`);
|
|
690
|
+
return false;
|
|
691
|
+
}
|
|
692
|
+
const [record] = recentlyReleased.splice(recordIdx, 1);
|
|
693
|
+
if (cards.has(record.id)) {
|
|
694
|
+
// Already restored elsewhere — no-op.
|
|
695
|
+
return false;
|
|
696
|
+
}
|
|
697
|
+
add(record.card);
|
|
698
|
+
return true;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/** Snapshot of recently-released cards (most-recent first). */
|
|
702
|
+
function listRecentlyReleased() {
|
|
703
|
+
return recentlyReleased.slice();
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
/**
|
|
707
|
+
* Pin a card to localStorage so it survives reload + /new. Idempotent
|
|
708
|
+
* on id. The card is marked `pinned: true` so the dismiss button is
|
|
709
|
+
* hidden. Calling pin on an unknown id is a no-op.
|
|
710
|
+
*/
|
|
711
|
+
function pin(id) {
|
|
712
|
+
const entry = cards.get(id);
|
|
713
|
+
if (!entry) {
|
|
714
|
+
console.warn(`[symframe] pin: unknown id ${id}`);
|
|
715
|
+
return false;
|
|
716
|
+
}
|
|
717
|
+
if (typeof window.symframePinStore?.pin !== "function") {
|
|
718
|
+
console.warn("[symframe] pin: pin-store unavailable");
|
|
719
|
+
return false;
|
|
586
720
|
}
|
|
721
|
+
const snapshot = { ...entry };
|
|
722
|
+
delete snapshot.element;
|
|
723
|
+
snapshot.pinned = true;
|
|
724
|
+
snapshot.dismissable = false;
|
|
725
|
+
window.symframePinStore.pin(snapshot);
|
|
726
|
+
// Update live entry so the chrome reflects the pin (no dismiss btn,
|
|
727
|
+
// pin glyph in header).
|
|
728
|
+
entry.pinned = true;
|
|
729
|
+
entry.dismissable = false;
|
|
730
|
+
if (entry.element) {
|
|
731
|
+
const newEl = renderCardElement(entry);
|
|
732
|
+
entry.element.replaceWith(newEl);
|
|
733
|
+
entry.element = newEl;
|
|
734
|
+
}
|
|
735
|
+
return true;
|
|
587
736
|
}
|
|
588
737
|
|
|
589
|
-
|
|
738
|
+
/** Inverse of pin. Removes from localStorage; does NOT drop the card. */
|
|
739
|
+
function unpin(id) {
|
|
740
|
+
const entry = cards.get(id);
|
|
741
|
+
if (typeof window.symframePinStore?.unpin === "function") {
|
|
742
|
+
window.symframePinStore.unpin(id);
|
|
743
|
+
}
|
|
744
|
+
if (entry) {
|
|
745
|
+
entry.pinned = false;
|
|
746
|
+
entry.dismissable = true;
|
|
747
|
+
if (entry.element) {
|
|
748
|
+
const newEl = renderCardElement(entry);
|
|
749
|
+
entry.element.replaceWith(newEl);
|
|
750
|
+
entry.element = newEl;
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
return true;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
/** Snapshot of all registered cards. */
|
|
757
|
+
function list() {
|
|
758
|
+
return Array.from(cards.values());
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
// Sticky-panel auto-registration was removed in Stage C (3.5.21):
|
|
762
|
+
// SUBAGENTS and SCHEDULING moved to the AWAITING footer, and REASONING
|
|
763
|
+
// became the substrate in Stage B (3.5.20). The `register()` API
|
|
764
|
+
// remains exposed via window.symframe.register for any future caller
|
|
765
|
+
// that wants to track a non-registry-managed DOM element as a card.
|
|
766
|
+
|
|
767
|
+
window.symframe = {
|
|
768
|
+
add,
|
|
769
|
+
update,
|
|
770
|
+
remove,
|
|
771
|
+
list,
|
|
772
|
+
register,
|
|
773
|
+
// Stage C — attention verbs
|
|
774
|
+
dwell,
|
|
775
|
+
release,
|
|
776
|
+
recall,
|
|
777
|
+
pin,
|
|
778
|
+
unpin,
|
|
779
|
+
listRecentlyReleased,
|
|
780
|
+
};
|
|
590
781
|
|
|
591
782
|
// Phase 3: server-pushed cards. The gateway's `symframe` broadcast is
|
|
592
783
|
// re-emitted as a window-level CustomEvent by gateway.js — subscribe
|
|
@@ -594,6 +785,8 @@
|
|
|
594
785
|
// chat.symframe.push RPC: { action, id?, card?, force? }.
|
|
595
786
|
// Stage A: `force` flows through to update/remove so the agent (via
|
|
596
787
|
// display_artifact) and the CLI can override the sticky-card guard.
|
|
788
|
+
// Stage C: new verbs (dwell / release / recall / pin / unpin) route
|
|
789
|
+
// alongside the existing CRUD trio.
|
|
597
790
|
window.addEventListener("symi:symframe", (e) => {
|
|
598
791
|
const payload = e.detail;
|
|
599
792
|
if (!payload || typeof payload !== "object") {
|
|
@@ -606,6 +799,33 @@
|
|
|
606
799
|
update(payload.id, payload.card, force);
|
|
607
800
|
} else if (payload.action === "remove" && payload.id) {
|
|
608
801
|
remove(payload.id, force);
|
|
802
|
+
} else if (payload.action === "dwell" && payload.id) {
|
|
803
|
+
dwell(payload.id);
|
|
804
|
+
} else if (payload.action === "release" && payload.id) {
|
|
805
|
+
release(payload.id, force);
|
|
806
|
+
} else if (payload.action === "recall") {
|
|
807
|
+
recall(payload.id);
|
|
808
|
+
} else if (payload.action === "pin" && payload.id) {
|
|
809
|
+
pin(payload.id);
|
|
810
|
+
} else if (payload.action === "unpin" && payload.id) {
|
|
811
|
+
unpin(payload.id);
|
|
609
812
|
}
|
|
610
813
|
});
|
|
814
|
+
|
|
815
|
+
// Stage C: restore pinned cards from localStorage on boot. Pinned
|
|
816
|
+
// cards are user-curated state and survive reload, /new, and gateway
|
|
817
|
+
// reconnect. Each pin is a snapshot; the registry re-adds it as a
|
|
818
|
+
// dynamic card with pinned=true (no dismiss button).
|
|
819
|
+
if (typeof window.symframePinStore?.list === "function") {
|
|
820
|
+
try {
|
|
821
|
+
const pinned = window.symframePinStore.list();
|
|
822
|
+
for (const record of pinned) {
|
|
823
|
+
if (record?.card && !cards.has(record.id)) {
|
|
824
|
+
add({ ...record.card, pinned: true, dismissable: false });
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
} catch (err) {
|
|
828
|
+
console.warn("[symframe] failed to restore pinned cards:", err);
|
|
829
|
+
}
|
|
830
|
+
}
|
|
611
831
|
})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
2
|
-
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-
|
|
2
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.js";
|
|
3
3
|
import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import path from "node:path";
|
|
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
|
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import "./exec-DuYbft0z.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./model-selection-
|
|
8
|
-
import { i as loadConfig } from "./config-
|
|
6
|
+
import "./agent-scope-Bnsyyeci.js";
|
|
7
|
+
import "./model-selection-CCTzD29o.js";
|
|
8
|
+
import { i as loadConfig } from "./config-BngIfn5l.js";
|
|
9
9
|
import "./boolean-CbZoNRMn.js";
|
|
10
10
|
import "./env-BRnPI9sO.js";
|
|
11
11
|
import "./shell-env-Dc3iU7HK.js";
|
|
@@ -6,8 +6,8 @@ import "./model-selection-CMx1evaF.js";
|
|
|
6
6
|
import "./manifest-registry-CVLmi8rz.js";
|
|
7
7
|
import "./config-D7TcU4qN.js";
|
|
8
8
|
import "./shell-env-CTYaxUs_.js";
|
|
9
|
-
import "./client-
|
|
10
|
-
import "./call-
|
|
9
|
+
import "./client-yVTJ5jx5.js";
|
|
10
|
+
import "./call-C2urR5Fj.js";
|
|
11
11
|
import "./message-channel-DXToSaWK.js";
|
|
12
12
|
import "./pairing-token-B-OTYROz.js";
|
|
13
13
|
import { n as listChannelPlugins } from "./plugins-BsEhWvLn.js";
|
|
@@ -15,7 +15,7 @@ import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
|
|
|
15
15
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DUVGiPYV.js";
|
|
16
16
|
import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
|
|
17
17
|
import "./progress-CI19Xh3z.js";
|
|
18
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
18
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Kv0-8W2E.js";
|
|
19
19
|
import { n as parsePositiveIntOrUndefined } from "./helpers-CKQ7JYPP.js";
|
|
20
20
|
|
|
21
21
|
//#region src/cli/cron-cli/shared.ts
|
|
@@ -4,24 +4,24 @@ import "./utils-CTPsqyE_.js";
|
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import { u as sanitizeAgentId } from "./session-key-DUSb7CCb.js";
|
|
6
6
|
import "./exec-DuYbft0z.js";
|
|
7
|
-
import "./agent-scope-
|
|
8
|
-
import "./model-selection-
|
|
9
|
-
import "./config-
|
|
7
|
+
import "./agent-scope-Bnsyyeci.js";
|
|
8
|
+
import "./model-selection-CCTzD29o.js";
|
|
9
|
+
import "./config-BngIfn5l.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
14
|
import "./message-channel-DgjXWzf-.js";
|
|
15
15
|
import { n as listChannelPlugins } from "./plugins-CF5skkHh.js";
|
|
16
|
-
import "./client-
|
|
17
|
-
import "./call-
|
|
18
|
-
import "./pairing-token-
|
|
16
|
+
import "./client-CTrfpKT3.js";
|
|
17
|
+
import "./call-Bpjj5p7I.js";
|
|
18
|
+
import "./pairing-token-B703A1U3.js";
|
|
19
19
|
import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
|
|
20
20
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DQs772BN.js";
|
|
21
21
|
import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
22
22
|
import "./progress-swt2y17x.js";
|
|
23
23
|
import { n as parsePositiveIntOrUndefined } from "./helpers-B_p8ul9t.js";
|
|
24
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
24
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-gaoD882s.js";
|
|
25
25
|
|
|
26
26
|
//#region src/cli/cron-cli/shared.ts
|
|
27
27
|
const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { Q as theme, Rt as shortenHomePath, X as colorize, Z as isRich, _ as defaultRuntime, ct as resolveConfigPath, ft as resolveGatewayPort, pt as resolveIsNixMode, tt as getResolvedLoggerSettings, yt as resolveStateDir } from "./entry.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-B3nkKRhC.js";
|
|
4
4
|
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-D7TcU4qN.js";
|
|
5
|
-
import { n as callGateway } from "./call-
|
|
5
|
+
import { n as callGateway } from "./call-C2urR5Fj.js";
|
|
6
6
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
|
|
7
7
|
import { l as resolveGatewayBindHost } from "./net-TZUXtwGR.js";
|
|
8
8
|
import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
|
|
@@ -13,7 +13,7 @@ import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
|
|
|
13
13
|
import { n as withProgress } from "./progress-CI19Xh3z.js";
|
|
14
14
|
import { n as inheritOptionFromParent } from "./command-options-BFvvecvU.js";
|
|
15
15
|
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-AkgOtHR6.js";
|
|
16
|
-
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-
|
|
16
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-Dhr98nj8.js";
|
|
17
17
|
import { n as isWSLEnv } from "./wsl-DMA0sTvh.js";
|
|
18
18
|
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-DYpU1ajf.js";
|
|
19
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-YmWzkN43.js";
|
|
@@ -4,26 +4,26 @@ import { _ as resolveStateDir, d as resolveIsNixMode, o as resolveConfigPath, u
|
|
|
4
4
|
import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
|
|
5
5
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.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-BngIfn5l.js";
|
|
8
8
|
import { n as pickPrimaryTailnetIPv4 } from "./tailnet-XKACsamF.js";
|
|
9
9
|
import { u as resolveGatewayBindHost } from "./ws-C7Ktmt-R.js";
|
|
10
10
|
import { a as resolveGatewayAuth } from "./auth-Bkx-QuRN.js";
|
|
11
|
-
import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-
|
|
11
|
+
import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-CB_Iu83U.js";
|
|
12
12
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
|
|
13
|
-
import { n as callGateway } from "./call-
|
|
13
|
+
import { n as callGateway } from "./call-Bpjj5p7I.js";
|
|
14
14
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
|
|
15
15
|
import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
16
16
|
import { n as withProgress } from "./progress-swt2y17x.js";
|
|
17
17
|
import { n as inheritOptionFromParent } from "./command-options-DDDwkB9t.js";
|
|
18
|
-
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-
|
|
19
|
-
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-
|
|
20
|
-
import { n as isWSLEnv } from "./wsl-
|
|
21
|
-
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-
|
|
22
|
-
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-
|
|
23
|
-
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-
|
|
18
|
+
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CKn0wmCk.js";
|
|
19
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-BKejzolA.js";
|
|
20
|
+
import { n as isWSLEnv } from "./wsl-DTi7eX-V.js";
|
|
21
|
+
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-CRZoXO_n.js";
|
|
22
|
+
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-cSR_xiIO.js";
|
|
23
|
+
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-QISwLlFU.js";
|
|
24
24
|
import { t as parsePort } from "./parse-port-CMRD6fhd.js";
|
|
25
|
-
import { t as readLastGatewayErrorLine } from "./diagnostics-
|
|
26
|
-
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-
|
|
25
|
+
import { t as readLastGatewayErrorLine } from "./diagnostics-CYkqD5lP.js";
|
|
26
|
+
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-DzYUb_Dl.js";
|
|
27
27
|
|
|
28
28
|
//#region src/cli/daemon-cli/install.ts
|
|
29
29
|
async function runDaemonInstall(opts) {
|
package/dist/daemon-cli.js
CHANGED
|
@@ -9623,7 +9623,12 @@ const ChatSymframePushParamsSchema = Type.Object({
|
|
|
9623
9623
|
action: Type.Union([
|
|
9624
9624
|
Type.Literal("add"),
|
|
9625
9625
|
Type.Literal("update"),
|
|
9626
|
-
Type.Literal("remove")
|
|
9626
|
+
Type.Literal("remove"),
|
|
9627
|
+
Type.Literal("dwell"),
|
|
9628
|
+
Type.Literal("release"),
|
|
9629
|
+
Type.Literal("recall"),
|
|
9630
|
+
Type.Literal("pin"),
|
|
9631
|
+
Type.Literal("unpin")
|
|
9627
9632
|
]),
|
|
9628
9633
|
id: Type.Optional(NonEmptyString),
|
|
9629
9634
|
force: Type.Optional(Type.Boolean()),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
2
|
-
import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-
|
|
2
|
+
import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-BngIfn5l.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-BLIhifCJ.js";
|
|
4
4
|
import { n as isSupportedNodeVersion } from "./runtime-guard-CWA00ZXa.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import { promisify } from "node:util";
|
|
8
|
-
import
|
|
8
|
+
import fsPromises from "node:fs/promises";
|
|
9
9
|
import { execFile } from "node:child_process";
|
|
10
10
|
|
|
11
11
|
//#region src/daemon/program-args.ts
|
|
@@ -23,23 +23,23 @@ async function resolveCliEntrypointPathForService() {
|
|
|
23
23
|
const normalized = path.resolve(argv1);
|
|
24
24
|
const resolvedPath = await resolveRealpathSafe(normalized);
|
|
25
25
|
if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(resolvedPath)) {
|
|
26
|
-
await
|
|
26
|
+
await fsPromises.access(resolvedPath);
|
|
27
27
|
if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(normalized) && normalized !== resolvedPath) try {
|
|
28
|
-
await
|
|
28
|
+
await fsPromises.access(normalized);
|
|
29
29
|
return normalized;
|
|
30
30
|
} catch {}
|
|
31
31
|
return resolvedPath;
|
|
32
32
|
}
|
|
33
33
|
const distCandidates = buildDistCandidates(resolvedPath, normalized);
|
|
34
34
|
for (const candidate of distCandidates) try {
|
|
35
|
-
await
|
|
35
|
+
await fsPromises.access(candidate);
|
|
36
36
|
return candidate;
|
|
37
37
|
} catch {}
|
|
38
38
|
throw new Error(`Cannot find built CLI at ${distCandidates.join(" or ")}. Run "pnpm build" first, or use dev mode.`);
|
|
39
39
|
}
|
|
40
40
|
async function resolveRealpathSafe(inputPath) {
|
|
41
41
|
try {
|
|
42
|
-
return await
|
|
42
|
+
return await fsPromises.realpath(inputPath);
|
|
43
43
|
} catch {
|
|
44
44
|
return inputPath;
|
|
45
45
|
}
|
|
@@ -99,7 +99,7 @@ async function resolveBinaryPath(binary) {
|
|
|
99
99
|
try {
|
|
100
100
|
const resolved = execFileSync(cmd, [binary], { encoding: "utf8" }).trim().split(/\r?\n/)[0]?.trim();
|
|
101
101
|
if (!resolved) throw new Error("empty");
|
|
102
|
-
await
|
|
102
|
+
await fsPromises.access(resolved);
|
|
103
103
|
return resolved;
|
|
104
104
|
} catch {
|
|
105
105
|
if (binary === "bun") throw new Error("Bun not found in PATH. Install bun: https://bun.sh");
|
|
@@ -118,7 +118,7 @@ async function resolveCliProgramArguments(params) {
|
|
|
118
118
|
if (params.dev) {
|
|
119
119
|
const repoRoot = resolveRepoRootForDev();
|
|
120
120
|
const devCliPath = path.join(repoRoot, "src", "index.ts");
|
|
121
|
-
await
|
|
121
|
+
await fsPromises.access(devCliPath);
|
|
122
122
|
return {
|
|
123
123
|
programArguments: [
|
|
124
124
|
isBunRuntime(execPath) ? execPath : await resolveBunPath(),
|
|
@@ -146,7 +146,7 @@ async function resolveCliProgramArguments(params) {
|
|
|
146
146
|
}
|
|
147
147
|
const repoRoot = resolveRepoRootForDev();
|
|
148
148
|
const devCliPath = path.join(repoRoot, "src", "index.ts");
|
|
149
|
-
await
|
|
149
|
+
await fsPromises.access(devCliPath);
|
|
150
150
|
if (isBunRuntime(execPath)) return {
|
|
151
151
|
programArguments: [
|
|
152
152
|
execPath,
|
|
@@ -259,7 +259,7 @@ function isSystemNodePath(nodePath, env = process.env, platform = process.platfo
|
|
|
259
259
|
async function resolveSystemNodePath(env = process.env, platform = process.platform) {
|
|
260
260
|
const candidates = buildSystemNodeCandidates(env, platform);
|
|
261
261
|
for (const candidate of candidates) try {
|
|
262
|
-
await
|
|
262
|
+
await fsPromises.access(candidate);
|
|
263
263
|
return candidate;
|
|
264
264
|
} catch {}
|
|
265
265
|
return null;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { H as createInternalHookEvent, W as triggerInternalHook, d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
4
|
-
import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-
|
|
4
|
+
import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BCc3THTm.js";
|
|
5
5
|
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
|
|
6
6
|
import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-0yh2UnJq.js";
|
|
7
7
|
import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BxfKjCUx.js";
|
|
8
|
-
import { t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
8
|
+
import { t as getAgentScopedMediaLocalRoots } from "./local-roots-2Jb79HZ8.js";
|
|
9
9
|
import { i as failDelivery, r as enqueueDelivery, t as ackDelivery } from "./delivery-queue-OAc7hsIs.js";
|
|
10
10
|
|
|
11
11
|
//#region src/plugins/hooks.ts
|
|
@@ -9,7 +9,7 @@ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CZ_mYw
|
|
|
9
9
|
import { _ as listDeliverableMessageChannels, c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, v as normalizeMessageChannel } from "./chunk-CAZujdOi.js";
|
|
10
10
|
import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-BCSnhba8.js";
|
|
11
11
|
import { t as parseBooleanValue } from "./boolean-BW6OTjPi.js";
|
|
12
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
12
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DNssqQJs.js";
|
|
13
13
|
import { t as formatCliCommand } from "./command-format-DPd9RN2g.js";
|
|
14
14
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DO7WNsVJ.js";
|
|
15
15
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BEU7IHU6.js";
|
|
@@ -1331,7 +1331,7 @@ function isModuleNotFoundError(err) {
|
|
|
1331
1331
|
}
|
|
1332
1332
|
async function loadPwAiModule(mode) {
|
|
1333
1333
|
try {
|
|
1334
|
-
return await import("./pw-ai-
|
|
1334
|
+
return await import("./pw-ai-v__CyAlM.js");
|
|
1335
1335
|
} catch (err) {
|
|
1336
1336
|
if (mode === "soft") return null;
|
|
1337
1337
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3928,11 +3928,11 @@ function createProfileContext(opts, profile) {
|
|
|
3928
3928
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3929
3929
|
const profileState = getProfileState();
|
|
3930
3930
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3931
|
-
await (await import("./pw-ai-
|
|
3931
|
+
await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
|
|
3932
3932
|
} catch {}
|
|
3933
3933
|
if (profileState.running) await stopRunningBrowser();
|
|
3934
3934
|
try {
|
|
3935
|
-
await (await import("./pw-ai-
|
|
3935
|
+
await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
|
|
3936
3936
|
} catch {}
|
|
3937
3937
|
if (!fs.existsSync(userDataDir)) return {
|
|
3938
3938
|
moved: false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/cli/deps.ts
|
|
2
2
|
function createDefaultDeps() {
|
|
3
3
|
return { sendMessageSlack: async (...args) => {
|
|
4
|
-
const { sendMessageSlack } = await import("./send-
|
|
4
|
+
const { sendMessageSlack } = await import("./send-CxjvucMO.js").then((n) => n.n);
|
|
5
5
|
return await sendMessageSlack(...args);
|
|
6
6
|
} };
|
|
7
7
|
}
|
|
@@ -5,8 +5,8 @@ import "./model-selection-CMx1evaF.js";
|
|
|
5
5
|
import "./manifest-registry-CVLmi8rz.js";
|
|
6
6
|
import "./config-D7TcU4qN.js";
|
|
7
7
|
import "./shell-env-CTYaxUs_.js";
|
|
8
|
-
import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-
|
|
9
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
8
|
+
import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-yVTJ5jx5.js";
|
|
9
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C2urR5Fj.js";
|
|
10
10
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
|
|
11
11
|
import "./pairing-token-B-OTYROz.js";
|
|
12
12
|
import { n as isLoopbackHost } from "./net-TZUXtwGR.js";
|