@symerian/symi 2.7.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-Cd816n6l.js → accounts-DDuIpcln.js} +7 -7
- package/dist/{accounts-mN_EcgxC.js → accounts-DyJN4_vR.js} +1 -1
- package/dist/{accounts-CokRskCl.js → accounts-bK-Yqdwx.js} +1 -1
- package/dist/{acp-cli-COzlJi3B.js → acp-cli-B2f0qBiM.js} +6 -6
- package/dist/{acp-cli-BLUeUUA5.js → acp-cli-D-9rzaOI.js} +2 -2
- package/dist/{agent-scope-BRwEc2pG.js → agent-scope-CgUHAtCo.js} +18 -18
- package/dist/{agents-Cu2bthAX.js → agents-Z8ruJPz2.js} +5 -5
- package/dist/{agents.config-Dib8Uo2P.js → agents.config-B9BZoM2m.js} +2 -2
- package/dist/{agents.config-5PTwsijs.js → agents.config-C951ocyh.js} +1 -1
- package/dist/{api-key-rotation-CEr3lKih.js → api-key-rotation-CzuPlV2t.js} +1 -1
- package/dist/{audio-preflight-mj-z_vQ6.js → audio-preflight-CIiS5cfP.js} +28 -28
- package/dist/{audio-preflight-DD18zIZd.js → audio-preflight-HILy3i0m.js} +4 -4
- package/dist/{audit-Djfdh06o.js → audit-BgdM9XZl.js} +23 -23
- package/dist/{audit-BjI_Yyr5.js → audit-xSagQWH8.js} +2 -2
- package/dist/{auth-choice-CmSUU3t8.js → auth-choice-BmYi6pBy.js} +8 -8
- package/dist/{auth-choice-5gul6jy2.js → auth-choice-D_VfXxhG.js} +2 -2
- package/dist/{auth-token-83A2btbE.js → auth-token-Cay2jwzn.js} +1 -1
- package/dist/{banner-B4vQpMIJ.js → banner-Bucr6qZ5.js} +1 -1
- package/dist/{bindings-ChzePa8q.js → bindings-DFaVVCsf.js} +1 -1
- package/dist/{browser-cli-kDUw45Y0.js → browser-cli-Bc_JVdTj.js} +3 -3
- package/dist/{browser-cli-BTD0NlrA.js → browser-cli-Dr0yx7-7.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/{call-tmHtVCkn.js → call-CX0cs106.js} +9 -9
- package/dist/{call-DKi-hnaF.js → call-DeCQ2DhS.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DVf4CJIu.js → channel-options-BMDryXHq.js} +1 -1
- package/dist/{channel-options-DsWGc55A.js → channel-options-z8-WeZyO.js} +2 -2
- package/dist/{channel-selection-DaJDux-Q.js → channel-selection-V2xDgw16.js} +1 -1
- package/dist/{channel-web-vGC-WJXi.js → channel-web-D_YxZAHT.js} +17 -17
- package/dist/{channels-cli-CSv05N3q.js → channels-cli-397NgC51.js} +7 -7
- package/dist/{channels-cli-COayA28A.js → channels-cli-CV7_JUru.js} +76 -76
- package/dist/{channels-status-issues-B_PI3nEE.js → channels-status-issues-CJ0Vb_9z.js} +1 -1
- package/dist/{chrome-BxwUEWrH.js → chrome-CiOKaTN-.js} +7 -7
- package/dist/{chrome-CSJzpT9Z.js → chrome-DU2ZysN3.js} +2 -2
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-B-g79xPe.js → cli-4XU7pNlM.js} +4 -4
- package/dist/{cli-DJjOxip6.js → cli-Dq95udFO.js} +63 -63
- package/dist/{client-Bj_vTpri.js → client-B8xmq-Pw.js} +14 -2
- package/dist/{client-T3qcxXru.js → client-qUlxXXVJ.js} +13 -1
- package/dist/{command-registry-BvpLfzl7.js → command-registry-yRiaU4-n.js} +10 -10
- package/dist/{commands-CtocZ4Lg.js → commands-BNLCWX6e.js} +1 -1
- package/dist/{commands-registry-BZ0ZSQpM.js → commands-registry-BT0-zzs3.js} +3 -3
- package/dist/{completion-cli-CfRZ-7QF.js → completion-cli-DrQai9KM.js} +2 -2
- package/dist/{completion-cli-DtQcXg1N.js → completion-cli-_aqxDQoz.js} +12 -12
- package/dist/{config-tNauHpdq.js → config-Dz95lSBW.js} +2 -2
- package/dist/{config-cli-DL2RdfLM.js → config-cli-CMymzmrI.js} +1 -1
- package/dist/{config-cli-D9Z78raJ.js → config-cli-EdmbBExA.js} +4 -4
- package/dist/{config-guard-4oRmpR0a.js → config-guard-CEkSg4hl.js} +12 -12
- package/dist/{config-validation-BoDWiwe3.js → config-validation-HDVDlMSV.js} +1 -1
- package/dist/{configure-jDpF8lmx.js → configure-DRMAIBBf.js} +15 -15
- package/dist/{configure-Dq4f8WPa.js → configure-DkFujfiY.js} +6 -6
- package/dist/{control-service-BBnhN7aZ.js → control-service-BYKXzY4f.js} +4 -4
- package/dist/control-ui/css/style.css +128 -0
- package/dist/control-ui/js/history.js +233 -85
- package/dist/{control-ui-assets-6n-YayeS.js → control-ui-assets-B7moDVHX.js} +1 -1
- package/dist/{cron-cli-D165ecaj.js → cron-cli-BHxfvWeT.js} +10 -10
- package/dist/{cron-cli-QCTdVZuP.js → cron-cli-DacyI1Pw.js} +3 -3
- package/dist/{daemon-cli-BccZzUb0.js → daemon-cli-BLhFbih0.js} +11 -11
- package/dist/{daemon-cli-DhJYEAoL.js → daemon-cli-BxKtiouf.js} +2 -2
- package/dist/daemon-cli.js +12 -0
- package/dist/{daemon-runtime-u01h46bE.js → daemon-runtime-mE1b-Q48.js} +10 -10
- package/dist/{deliver-BYdNAEqj.js → deliver-B4KZ6-oZ.js} +7 -7
- package/dist/{deliver-DtuY4Wgl.js → deliver-D6IcPfbt.js} +1 -1
- package/dist/{devices-cli-BNG-fvdl.js → devices-cli-1kiO08aL.js} +2 -2
- package/dist/{devices-cli-D0N71nqX.js → devices-cli-B8Q8AzbX.js} +6 -6
- package/dist/{diagnostics-BrUo0gqs.js → diagnostics-BRwihzJG.js} +5 -5
- package/dist/{directory-cli-aj7aXIBM.js → directory-cli-KgsAVTA0.js} +7 -7
- package/dist/{dm-policy-shared-epgkayyq.js → dm-policy-shared-DlDAGtZL.js} +2 -2
- package/dist/{dns-cli-Dit09wbu.js → dns-cli-Cwr92Aiq.js} +3 -3
- package/dist/{dock-BYiRZSgZ.js → dock-BhS32F6E.js} +4 -4
- package/dist/{docs-cli-CyWGMA-e.js → docs-cli-qE-blOLC.js} +1 -1
- package/dist/{doctor-completion-Ccb83Wl5.js → doctor-completion-BbrsQOW-.js} +2 -2
- package/dist/{doctor-completion-oQemZItC.js → doctor-completion-Cx-AR_dB.js} +1 -1
- package/dist/{doctor-config-flow-BXmHd2bb.js → doctor-config-flow-iIzSEQxb.js} +10 -10
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-CmndFjEA.js → exec-approvals-cli-BRx2oxs5.js} +4 -4
- package/dist/{exec-approvals-cli-CZ-iTtNO.js → exec-approvals-cli-Cj6Z-vxL.js} +13 -13
- package/dist/extensionAPI.js +6 -6
- package/dist/{fs-safe-CTDvb1DF.js → fs-safe-CUjO1ca2.js} +6 -6
- package/dist/{gateway-cli-C1zPKZ7B.js → gateway-cli-C7JTXqby.js} +269 -175
- package/dist/{gateway-cli-zbVm1MBQ.js → gateway-cli-CaaX65eF.js} +169 -75
- package/dist/{gateway-rpc-BMdVa3QV.js → gateway-rpc-BWTK7g8B.js} +1 -1
- package/dist/{gateway-rpc-B1Wzoj99.js → gateway-rpc-WM-HXUbl.js} +1 -1
- package/dist/{glass-ui-ws-D3tAmqKX.js → glass-ui-ws-BI81Lh6Z.js} +83 -83
- package/dist/{glass-ui-ws-CvUFd4C6.js → glass-ui-ws-jAbqZVc9.js} +11 -11
- package/dist/{health-o847FIt1.js → health-B1nih5LD.js} +13 -13
- package/dist/{health-DQEqLYg1.js → health-CsTxt66a.js} +2 -2
- package/dist/{hooks-cli-sYjbF4I6.js → hooks-cli-BhxMFkKe.js} +77 -77
- package/dist/{hooks-cli-D_UW9fc8.js → hooks-cli-CIlvtt2M.js} +5 -5
- package/dist/{image-lCS3o9xj.js → image-BWmcNF8N.js} +3 -3
- package/dist/{image-lp19FlzF.js → image-D7Fl08gG.js} +1 -1
- package/dist/{image-ops-DYbDWaIA.js → image-ops-1OJMSAUX.js} +10 -10
- package/dist/index.js +73 -73
- package/dist/{inspect-CNYyHVfH.js → inspect-CvbbCuoa.js} +4 -4
- package/dist/{install-safe-path-D3mg1DMG.js → install-safe-path-D3Uz77u7.js} +11 -11
- package/dist/{installs-CYTVYWH_.js → installs-DQcRVF1U.js} +10 -10
- package/dist/{ir-Dt4hOzxG.js → ir-DZam9q5M.js} +6 -6
- package/dist/{lifecycle-core-DxmxQdhS.js → lifecycle-core-C4HzGXA1.js} +5 -5
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{local-roots-BBeKX7PX.js → local-roots-aAFLQGkY.js} +2 -2
- package/dist/{login-CnjdNmGD.js → login-DODfJ3Dn.js} +3 -3
- package/dist/{login-qr-DUf6CM0M.js → login-qr-CBRxijIg.js} +5 -5
- package/dist/{logs-cli-DtlrLf7u.js → logs-cli-BZV7dq_U.js} +3 -3
- package/dist/{logs-cli-BVd6h2-Q.js → logs-cli-DyCcDkRs.js} +7 -7
- package/dist/{manager-C1CfGzZ2.js → manager-D4LJSRyZ.js} +13 -13
- package/dist/{markdown-tables-ZwP14ydw.js → markdown-tables-CEbN0fEm.js} +1 -1
- package/dist/{memory-cli-DhkRAIdT.js → memory-cli-DDumUksr.js} +14 -14
- package/dist/{model-catalog-CvbwxWuC.js → model-catalog-8Son0J4O.js} +4 -4
- package/dist/{model-picker-C2MqloOs.js → model-picker-CAm2Bftd.js} +3 -3
- package/dist/{model-selection-X1oLh3CE.js → model-selection-CyFvYcRt.js} +9 -9
- package/dist/{model-CeeOcylL.js → model-tWhwnFf8.js} +1 -1
- package/dist/{models-Zol34e73.js → models-DhMe2rzL.js} +3 -3
- package/dist/{models-cli-DnMUzr15.js → models-cli-DKM5sCQM.js} +72 -72
- package/dist/{models-cli-BzcEA9oa.js → models-cli-Dewg24W2.js} +6 -6
- package/dist/{models-config-CEMioDUi.js → models-config-CFFjJPe7.js} +7 -7
- package/dist/{node-cli-BVJid4L_.js → node-cli-4eMRkmrw.js} +28 -28
- package/dist/{node-cli-eHn9-YfJ.js → node-cli-Dfs0UmnJ.js} +1 -1
- package/dist/{node-service-CXzMs782.js → node-service-CD47Qpf1.js} +1 -1
- package/dist/{nodes-cli-Ct4M7JOe.js → nodes-cli-BKb61OjH.js} +3 -3
- package/dist/{nodes-cli-BN2Nslim.js → nodes-cli-DxfP9DIz.js} +10 -10
- package/dist/{nodes-screen-Cd49cSPb.js → nodes-screen-8Bq7DiSa.js} +4 -4
- package/dist/{npm-registry-spec-DchndI6P.js → npm-registry-spec-C0CPT3vr.js} +9 -9
- package/dist/{onboard-CSseK0Co.js → onboard-C6XtdirM.js} +13 -13
- package/dist/{onboard-CxOT_xD4.js → onboard-CVfE-Bjj.js} +3 -3
- package/dist/{onboard-channels-D-lh_Vh1.js → onboard-channels-8ynJSZL6.js} +1 -1
- package/dist/{onboard-channels-CUlITipG.js → onboard-channels-ChxtmhFY.js} +5 -5
- package/dist/{onboard-custom-DTcLdtA9.js → onboard-custom-XiomtQr7.js} +3 -3
- package/dist/{onboard-helpers-CdPNw25E.js → onboard-helpers-CueJ7O_B.js} +8 -8
- package/dist/{onboard-helpers-BBtPmJEe.js → onboard-helpers-PpGrZIGw.js} +1 -1
- package/dist/{onboard-hooks-C_2_jpWg.js → onboard-hooks-C3ok8kqB.js} +1 -1
- package/dist/{onboard-remote-v6QMnyJD.js → onboard-remote-Cd9kIiSG.js} +1 -1
- package/dist/{onboard-remote-D-B4EiOE.js → onboard-remote-DCdpB2HH.js} +1 -1
- package/dist/{onboard-skills-BDCzVjxb.js → onboard-skills-CC2CV5Er.js} +1 -1
- package/dist/{onboard-skills-CQtkRP20.js → onboard-skills-DRICcBwa.js} +4 -4
- package/dist/{onboarding-Dn5agNG_.js → onboarding-Dg6nx_ph.js} +13 -13
- package/dist/{onboarding-DktESmTv.js → onboarding-fN3GGyiv.js} +7 -7
- package/dist/{onboarding.finalize-Bm-1Kdnh.js → onboarding.finalize--MZAe4B0.js} +10 -10
- package/dist/{onboarding.finalize-CTIZ1zvV.js → onboarding.finalize-CBE2mBQQ.js} +75 -75
- package/dist/{onboarding.gateway-config-CwnQkyO0.js → onboarding.gateway-config-DTWQ-Bqq.js} +14 -14
- package/dist/{onboarding.gateway-config-B9zGPfCl.js → onboarding.gateway-config-Dj68bVBt.js} +3 -3
- package/dist/{openai-model-default-4kBA1_78.js → openai-model-default-WqcGxyFM.js} +2 -2
- package/dist/{outbound-attachment-Qfh5dlsg.js → outbound-attachment-Bw-c5Cdp.js} +2 -2
- package/dist/{outbound-_Ir3M05f.js → outbound-wnv03tb3.js} +4 -4
- package/dist/{pairing-cli-C8UXBJ_A.js → pairing-cli-DSM82gJG.js} +8 -8
- package/dist/{pairing-labels-Dxb898X5.js → pairing-labels-DyXoD1DS.js} +1 -1
- package/dist/{pairing-store-B8ktu-6j.js → pairing-store-CK726Dzq.js} +2 -2
- package/dist/{pairing-token-AV-MMfVE.js → pairing-token-CX3NN_qj.js} +7 -7
- package/dist/{paths-CT6jsi4E.js → paths-BBm9fwuG.js} +1 -1
- package/dist/{pi-auth-json-FpfHyEcu.js → pi-auth-json-zHckislA.js} +5 -5
- package/dist/{pi-embedded-CYDMb5q0.js → pi-embedded-BzS693I1.js} +28 -16
- package/dist/{pi-embedded-helpers-Bs4eMaNo.js → pi-embedded-helpers-BgdB5kvy.js} +6 -6
- package/dist/{pi-embedded-helpers-Dij3O6ox.js → pi-embedded-helpers-DXAoe1Bx.js} +4 -4
- package/dist/{pi-tools.policy-BBxnqCay.js → pi-tools.policy-DRWb_Cax.js} +4 -4
- package/dist/{plugin-auto-enable-DwIrzVOA.js → plugin-auto-enable-CP0nONRL.js} +2 -2
- package/dist/{plugin-registry-CJGPW1-k.js → plugin-registry-Bzz7mUyl.js} +1 -1
- package/dist/{plugin-registry-d0oZLl6y.js → plugin-registry-SUa2FFIj.js} +3 -3
- package/dist/plugin-sdk/{channel-web-Dm-CzA1O.js → channel-web-DRabhx1e.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +13 -2
- package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +11 -0
- package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +4 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-4HEU7aDS.js → reply-Cw3shPk2.js} +14 -2
- package/dist/plugin-sdk/{web-Cclb7FTq.js → web-CH43nBP0.js} +2 -2
- package/dist/{plugins-BAyxWQSz.js → plugins-DKDeQZF0.js} +2 -2
- package/dist/{plugins-cli-CL0tzkMo.js → plugins-cli-DwtoU3xk.js} +5 -5
- package/dist/{plugins-cli-BWgjIJQL.js → plugins-cli-qG50__1A.js} +72 -72
- package/dist/{ports-OZQlocB7.js → ports-BOmtxoTv.js} +2 -2
- package/dist/{ports-u9lWy2Jt.js → ports-DtW62rqS.js} +1 -1
- package/dist/{program-BHjH97Q_.js → program-BDspObZY.js} +10 -10
- package/dist/{program-context-CXZHSZ4D.js → program-context-BqUFQnhR.js} +39 -39
- package/dist/{prompt-select-styled-BUFEoSlM.js → prompt-select-styled-C7DydfxH.js} +38 -38
- package/dist/{prompt-select-styled-D8LXSUR7.js → prompt-select-styled-CRUuzDrg.js} +6 -6
- package/dist/{provider-auth-helpers-BFHctF2f.js → provider-auth-helpers-CEYCb2mJ.js} +1 -1
- package/dist/{provider-auth-helpers-CeAbh3lv.js → provider-auth-helpers-D60nbSLq.js} +5 -5
- package/dist/{push-apns-BylbQyP9.js → push-apns-B5txhDVi.js} +1 -1
- package/dist/{push-apns-DqFdzIkc.js → push-apns-CoG1P_P0.js} +4 -4
- package/dist/{pw-ai-BO5cSmwD.js → pw-ai-CANiWpMA.js} +1 -1
- package/dist/{pw-ai-CfrnAHwA.js → pw-ai-DQohWnzT.js} +7 -7
- package/dist/{qmd-manager-DUNbG4Qr.js → qmd-manager-CCUK1xoc.js} +18 -18
- package/dist/{qr-cli-BZYa2gvF.js → qr-cli-CejYwqsj.js} +3 -3
- package/dist/{register.agent-DxAqRAt3.js → register.agent-BY_Df_Me.js} +9 -9
- package/dist/{register.agent-bzSGKS-l.js → register.agent-CopGIf9e.js} +82 -82
- package/dist/{register.configure-WS1nlSp8.js → register.configure-Bu_XKu7Z.js} +11 -11
- package/dist/register.configure-CoYQhQBT.js +148 -0
- package/dist/{register.maintenance-B1QcUr38.js → register.maintenance-4Q3E_gqv.js} +85 -85
- package/dist/{register.maintenance-D_qMTrgD.js → register.maintenance-DhnICgeT.js} +11 -11
- package/dist/{register.message-zu3HGGff.js → register.message-DZCCEK01.js} +5 -5
- package/dist/{register.message-CJF8gLAN.js → register.message-dd1xYBZT.js} +64 -64
- package/dist/{register.onboard-CswoaT7q.js → register.onboard-Bfz-EJGb.js} +75 -75
- package/dist/{register.onboard-9dwNqCe6.js → register.onboard-e8L_UxR4.js} +7 -7
- package/dist/{register.setup-CvomtGGu.js → register.setup-C5CZKKAB.js} +78 -78
- package/dist/{register.setup-TcjUu6HC.js → register.setup-DuU3Ywi-.js} +7 -7
- package/dist/{register.status-health-sessions-CM1SX81r.js → register.status-health-sessions-Dvj4mlom.js} +7 -7
- package/dist/{register.status-health-sessions-CQMvbwr6.js → register.status-health-sessions-jeiqtgl7.js} +76 -76
- package/dist/{register.subclis-CVQASXaL.js → register.subclis-DD6G0dov.js} +20 -20
- package/dist/{replies-Dy92jzrz.js → replies-BMqtgBhh.js} +1 -1
- package/dist/{reply-CpNWtuU4.js → reply-XaXqDK9F.js} +139 -139
- package/dist/{reply-prefix-BLOOs1aW.js → reply-prefix-CE2YmmsD.js} +1 -1
- package/dist/{resolve-route-BcnaXYvh.js → resolve-route-BMoTaVAH.js} +2 -2
- package/dist/{routes-CVwRcA9D.js → routes-BAZTZNuQ.js} +8 -8
- package/dist/{rpc-CZFfee1J.js → rpc-N1nf_c1A.js} +1 -1
- package/dist/{rpc-D0FiEinj.js → rpc-QHo-8pCM.js} +1 -1
- package/dist/{run-main-Dq6tfDry.js → run-main-BrUOBCsG.js} +17 -17
- package/dist/{runner-Ct0suQrd.js → runner-BS9gGL5i.js} +1 -1
- package/dist/{runner-BAVs-p6Z.js → runner-DRv0uCK_.js} +20 -20
- package/dist/{sandbox-HZ_uilsn.js → sandbox-B6N8cV4d.js} +18 -18
- package/dist/{sandbox-cli-wZtiyo8g.js → sandbox-cli-DwzaNjIJ.js} +20 -20
- package/dist/{security-cli-BESmRIrl.js → security-cli-B-4J6enu.js} +36 -36
- package/dist/{security-cli-CG1uSlRK.js → security-cli-CSMUEGPK.js} +3 -3
- package/dist/{send-DsSI8z3F.js → send-9SapUCg7.js} +6 -6
- package/dist/{send-DT-5buW5.js → send-B3RdXvjC.js} +6 -6
- package/dist/{send-JWV62VbW.js → send-Bm4ULEzh.js} +6 -6
- package/dist/{send-BVBCh27_.js → send-CQVnyJyF.js} +13 -13
- package/dist/{send-CXFTeD_J.js → send-DVm0du0_.js} +4 -4
- package/dist/{server-context-VlF1_hYj.js → server-context-CCBZN8a0.js} +5 -5
- package/dist/{server-methods-B0pdetGJ.js → server-methods-0ksPFnev.js} +441 -124
- package/dist/{server-methods-IBEaQXPX.js → server-methods-Bu1RjLe6.js} +484 -167
- package/dist/{server-node-events-CyDj7Txd.js → server-node-events-DCbzFyQF.js} +5 -5
- package/dist/{server-node-events-BACmfyjo.js → server-node-events-DZAN3hWE.js} +64 -64
- package/dist/{service-D80PyJxB.js → service-osK70kTZ.js} +15 -15
- package/dist/{session-6Qyc4cBQ.js → session-DsJGtM7g.js} +2 -2
- package/dist/{session-dirs-DPzjjra2.js → session-dirs-Dgz7kkUM.js} +2 -2
- package/dist/{sessions-jTAGYjWl.js → sessions-Cpgnq0pA.js} +13 -13
- package/dist/{shared-BfhtOZAz.js → shared-73T9fyuK.js} +3 -3
- package/dist/{shared-BV7WhIkY.js → shared-DnmJ0ABB.js} +1 -1
- package/dist/{skill-commands-ZXbEITKi.js → skill-commands-Cxw-jNxU.js} +5 -5
- package/dist/{skill-scanner-w3DJvw1Q.js → skill-scanner-hMtQbWPV.js} +5 -5
- package/dist/{skills-DqQUtOph.js → skills-6jdJQ5ZL.js} +4 -4
- package/dist/{skills-cli-D3lePXkf.js → skills-cli-DXkx4vNV.js} +7 -7
- package/dist/{skills-install-HGYidhrv.js → skills-install-CWVdJkLn.js} +3 -3
- package/dist/{skills-status-Cjsh8we0.js → skills-status-C3ptXwnh.js} +1 -1
- package/dist/{sqlite-BV5ILFtC.js → sqlite-Dx3J_aSE.js} +12 -12
- package/dist/{status-DzHL-eVu.js → status-CiHkFbIh.js} +3 -3
- package/dist/{status-nzJEZmNT.js → status-DOTlXdcN.js} +25 -25
- package/dist/{status-DUeTrQSz.js → status-IWqSLXLR.js} +1 -1
- package/dist/{status-BJtbD-cG.js → status-qkmUAeWo.js} +5 -5
- package/dist/{status.update-TlYwuzTa.js → status.update-CG0ciGaf.js} +3 -3
- package/dist/{store-DvtcmOKj.js → store-r1DJSDq-.js} +5 -5
- package/dist/{subagent-registry-CzS4CfnV.js → subagent-registry-DCoU9xIE.js} +5 -5
- package/dist/{symi-root-MF6_6SCS.js → symi-root-CrGJbkzf.js} +2 -2
- package/dist/{system-cli-C2yhGP4C.js → system-cli-DY7ov1OT.js} +7 -7
- package/dist/{system-cli-Z7uzO8qd.js → system-cli-LFURKpwS.js} +3 -3
- package/dist/{systemd-CevHlgD4.js → systemd-DT6SbCim.js} +5 -5
- package/dist/{systemd-hints-DmgRnw1L.js → systemd-hints-xYZbFny_.js} +6 -6
- package/dist/{systemd-linger-ScxQ1_H4.js → systemd-linger-DCskIKcx.js} +1 -1
- package/dist/{tables-C38rzF6E.js → tables-BEzT0Da4.js} +1 -1
- package/dist/{target-errors-CCz79CmV.js → target-errors-7AvoVa10.js} +4 -4
- package/dist/{tool-images-B-pqX3nX.js → tool-images-DvUBlqjX.js} +1 -1
- package/dist/{tui-D2MOx3Kx.js → tui-BH7JwqvB.js} +7 -7
- package/dist/{tui-DrATGNms.js → tui-C_5HG495.js} +2 -2
- package/dist/{tui-cli-D19-MCXt.js → tui-cli-B65PKZMj.js} +3 -3
- package/dist/{tui-cli-B2ii7u23.js → tui-cli-CJnfmuxq.js} +28 -28
- package/dist/{unified-runner-BtO3UQSd.js → unified-runner-CApgXtVC.js} +14 -2
- package/dist/{update-Don6XTH9.js → update-Ya0e-JnM.js} +3 -3
- package/dist/{update-check-DCo5RtKp.js → update-check-7EzEjSzb.js} +5 -5
- package/dist/{update-cli-gKtjyXlD.js → update-cli-D5_jTEJv.js} +95 -95
- package/dist/{update-cli-DRODEMSI.js → update-cli-Dxb3pUyu.js} +12 -12
- package/dist/{update-runner-JcdOHr71.js → update-runner-BhVsdpxm.js} +1 -1
- package/dist/{update-runner-AsKAxe31.js → update-runner-FhW6n-Nv.js} +15 -15
- package/dist/{web-BIzWZFiN.js → web-ConlA_Ch.js} +4 -4
- package/dist/{web-DGo16lWn.js → web-CthDLVSz.js} +1 -1
- package/dist/{web-DKwOxo8E.js → web-Db_-ahjX.js} +6 -6
- package/dist/web-Dpb_tv_j.js +110 -0
- package/dist/{webhooks-cli-DbnQ2BVE.js → webhooks-cli-BRxe4uCg.js} +4 -4
- package/dist/{whatsapp-actions-CqXxtCoj.js → whatsapp-actions-ChO_shrk.js} +15 -15
- package/dist/{with-timeout-Cm5EhxG_.js → with-timeout-CtVdu_1U.js} +1 -1
- package/dist/{workspace-dirs-DKu48umx.js → workspace-dirs-GpkFi6Kw.js} +1 -1
- package/dist/{wsl-xNOi_Ch8.js → wsl-q8spwrME.js} +2 -2
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/register.configure-Boyfir72.js +0 -148
- package/dist/web-sefqR11J.js +0 -110
|
@@ -2,32 +2,32 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
|
|
3
3
|
import { S as shortenHomePath, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
5
|
-
import { At as ensureAuthProfileStore } from "./model-selection-
|
|
5
|
+
import { At as ensureAuthProfileStore } from "./model-selection-CyFvYcRt.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-COaS-S7B.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-Dz95lSBW.js";
|
|
8
8
|
import { a as findTailscaleBinary } from "./tailscale-D5dKabOc.js";
|
|
9
|
-
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-
|
|
9
|
+
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
|
|
10
10
|
import { n as withProgress } from "./progress-jIePzvGA.js";
|
|
11
|
-
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-
|
|
11
|
+
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-CueJ7O_B.js";
|
|
12
12
|
import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-CnkMpSXt.js";
|
|
13
13
|
import { t as note$1 } from "./note-DQ9BvHF2.js";
|
|
14
14
|
import { t as WizardCancelledError } from "./prompts-CfOu9uZi.js";
|
|
15
15
|
import { t as createClackPrompter } from "./clack-prompter-DMuVyYP2.js";
|
|
16
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
17
|
-
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-
|
|
18
|
-
import { t as resolveGatewayService } from "./service-
|
|
19
|
-
import { r as healthCommand } from "./health-
|
|
20
|
-
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-
|
|
16
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-ChxtmhFY.js";
|
|
17
|
+
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-mE1b-Q48.js";
|
|
18
|
+
import { t as resolveGatewayService } from "./service-osK70kTZ.js";
|
|
19
|
+
import { r as healthCommand } from "./health-B1nih5LD.js";
|
|
20
|
+
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B7moDVHX.js";
|
|
21
21
|
import { n as logConfigUpdated } from "./logging-KpicI3yD.js";
|
|
22
22
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-Cn6U3t8O.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-BmYi6pBy.js";
|
|
24
|
+
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-CAm2Bftd.js";
|
|
25
|
+
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DCskIKcx.js";
|
|
26
|
+
import { a as promptCustomApiConfig } from "./onboard-custom-XiomtQr7.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-CjlyK5jc.js";
|
|
28
28
|
import { t as formatHealthCheckFailure } from "./health-format-DRCaak6L.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-Cd9kIiSG.js";
|
|
30
|
+
import { n as setupSkills } from "./onboard-skills-DRICcBwa.js";
|
|
31
31
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
32
32
|
|
|
33
33
|
//#region src/commands/configure.shared.ts
|
|
@@ -6,26 +6,26 @@ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } fr
|
|
|
6
6
|
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
|
|
7
7
|
import { a as findTailscaleBinary } from "./tailscale-CbbvYNVw.js";
|
|
8
8
|
import { n as withProgress } from "./progress-BAHiAaDW.js";
|
|
9
|
-
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-
|
|
9
|
+
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-PpGrZIGw.js";
|
|
10
10
|
import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-DwCXob2h.js";
|
|
11
11
|
import { t as note$1 } from "./note-DDecZomM.js";
|
|
12
12
|
import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
|
|
13
13
|
import { t as createClackPrompter } from "./clack-prompter-B1aVoXd5.js";
|
|
14
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
14
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-8ynJSZL6.js";
|
|
15
15
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CVFg-ZmT.js";
|
|
16
16
|
import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
|
|
17
|
-
import { r as healthCommand } from "./health-
|
|
17
|
+
import { r as healthCommand } from "./health-CsTxt66a.js";
|
|
18
18
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
|
|
19
19
|
import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
|
|
20
20
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-DVcYPG2v.js";
|
|
21
|
-
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-
|
|
21
|
+
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-D_VfXxhG.js";
|
|
22
22
|
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-Casgrpw3.js";
|
|
23
23
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DA_LW52P.js";
|
|
24
24
|
import { a as promptCustomApiConfig } from "./onboard-custom-CQOMQkfS.js";
|
|
25
25
|
import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-B-xy96ST.js";
|
|
26
26
|
import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
|
|
27
|
-
import { n as promptRemoteGatewayConfig } from "./onboard-remote-
|
|
28
|
-
import { n as setupSkills } from "./onboard-skills-
|
|
27
|
+
import { n as promptRemoteGatewayConfig } from "./onboard-remote-DCdpB2HH.js";
|
|
28
|
+
import { n as setupSkills } from "./onboard-skills-CC2CV5Er.js";
|
|
29
29
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
30
30
|
|
|
31
31
|
//#region src/commands/configure.shared.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.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-Dz95lSBW.js";
|
|
4
|
+
import { x as ensureChromeExtensionRelayServer } from "./chrome-DU2ZysN3.js";
|
|
5
|
+
import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-CCBZN8a0.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-DQohWnzT.js")).closePlaywrightBrowserConnection();
|
|
84
84
|
} catch {}
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -5374,3 +5374,131 @@ body {
|
|
|
5374
5374
|
opacity: 0.7;
|
|
5375
5375
|
font-family: inherit;
|
|
5376
5376
|
}
|
|
5377
|
+
|
|
5378
|
+
/* ═══════════════════════════════════════════════════════════════════════
|
|
5379
|
+
2.7.1 — History modal rework: CURRENT/PAST/ARCHIVED badges, favourite
|
|
5380
|
+
star, two-stage delete button, section headings.
|
|
5381
|
+
═══════════════════════════════════════════════════════════════════════ */
|
|
5382
|
+
|
|
5383
|
+
/* Section heading above a group of rows */
|
|
5384
|
+
.history-section-heading {
|
|
5385
|
+
font-family: var(--font-mono);
|
|
5386
|
+
font-size: 10px;
|
|
5387
|
+
font-weight: 700;
|
|
5388
|
+
letter-spacing: 0.15em;
|
|
5389
|
+
color: rgba(255, 255, 255, 0.35);
|
|
5390
|
+
padding: 12px 14px 6px;
|
|
5391
|
+
text-transform: uppercase;
|
|
5392
|
+
}
|
|
5393
|
+
|
|
5394
|
+
/* Row accent for CURRENT (green, as per "live is exactly one") */
|
|
5395
|
+
.history-session-item.history-session-current {
|
|
5396
|
+
border-left: 2px solid var(--accent-green, #10b981);
|
|
5397
|
+
background: rgba(16, 185, 129, 0.04);
|
|
5398
|
+
}
|
|
5399
|
+
|
|
5400
|
+
.history-session-header {
|
|
5401
|
+
display: flex;
|
|
5402
|
+
align-items: center;
|
|
5403
|
+
gap: 8px;
|
|
5404
|
+
margin-bottom: 4px;
|
|
5405
|
+
}
|
|
5406
|
+
|
|
5407
|
+
/* Badges — CURRENT (green), PAST (cyan), ARCHIVED (violet) */
|
|
5408
|
+
.history-session-badge.badge-current {
|
|
5409
|
+
background: rgba(16, 185, 129, 0.15);
|
|
5410
|
+
color: rgba(16, 185, 129, 1);
|
|
5411
|
+
border: 1px solid rgba(16, 185, 129, 0.3);
|
|
5412
|
+
}
|
|
5413
|
+
.history-session-badge.badge-past {
|
|
5414
|
+
background: rgba(0, 212, 255, 0.12);
|
|
5415
|
+
color: var(--accent-cyan);
|
|
5416
|
+
border: 1px solid rgba(0, 212, 255, 0.25);
|
|
5417
|
+
}
|
|
5418
|
+
.history-session-badge.badge-archived {
|
|
5419
|
+
background: rgba(139, 92, 246, 0.1);
|
|
5420
|
+
color: rgba(139, 92, 246, 0.7);
|
|
5421
|
+
border: 1px solid rgba(139, 92, 246, 0.2);
|
|
5422
|
+
}
|
|
5423
|
+
|
|
5424
|
+
/* Favourite star */
|
|
5425
|
+
.history-fav-btn {
|
|
5426
|
+
background: transparent;
|
|
5427
|
+
border: none;
|
|
5428
|
+
padding: 0 4px;
|
|
5429
|
+
font-size: 18px;
|
|
5430
|
+
line-height: 1;
|
|
5431
|
+
cursor: pointer;
|
|
5432
|
+
color: rgba(255, 255, 255, 0.25);
|
|
5433
|
+
transition: color 0.15s;
|
|
5434
|
+
}
|
|
5435
|
+
.history-fav-btn:hover {
|
|
5436
|
+
color: rgba(255, 215, 0, 0.6);
|
|
5437
|
+
}
|
|
5438
|
+
.history-fav-btn.active {
|
|
5439
|
+
color: rgba(255, 215, 0, 0.95);
|
|
5440
|
+
}
|
|
5441
|
+
|
|
5442
|
+
/* Row actions row */
|
|
5443
|
+
.history-session-actions {
|
|
5444
|
+
display: flex;
|
|
5445
|
+
gap: 8px;
|
|
5446
|
+
margin-top: 8px;
|
|
5447
|
+
}
|
|
5448
|
+
.history-session-actions .history-load-btn {
|
|
5449
|
+
margin-top: 0;
|
|
5450
|
+
flex: 1;
|
|
5451
|
+
}
|
|
5452
|
+
.history-session-actions .history-delete-btn {
|
|
5453
|
+
margin-top: 0;
|
|
5454
|
+
padding: 5px 14px;
|
|
5455
|
+
height: 28px;
|
|
5456
|
+
background: rgba(239, 68, 68, 0.06);
|
|
5457
|
+
border: 1px solid rgba(239, 68, 68, 0.2);
|
|
5458
|
+
border-radius: 6px;
|
|
5459
|
+
color: rgba(239, 68, 68, 0.75);
|
|
5460
|
+
font-family: var(--font-mono);
|
|
5461
|
+
font-size: 10px;
|
|
5462
|
+
font-weight: 600;
|
|
5463
|
+
letter-spacing: 0.08em;
|
|
5464
|
+
cursor: pointer;
|
|
5465
|
+
transition: all 0.15s;
|
|
5466
|
+
}
|
|
5467
|
+
.history-session-actions .history-delete-btn:hover {
|
|
5468
|
+
background: rgba(239, 68, 68, 0.12);
|
|
5469
|
+
color: rgba(239, 68, 68, 1);
|
|
5470
|
+
}
|
|
5471
|
+
.history-session-actions .history-delete-btn.armed {
|
|
5472
|
+
background: rgba(239, 68, 68, 0.2);
|
|
5473
|
+
color: rgba(255, 255, 255, 1);
|
|
5474
|
+
border-color: rgba(239, 68, 68, 0.6);
|
|
5475
|
+
animation: delete-armed-pulse 1s ease-in-out infinite;
|
|
5476
|
+
}
|
|
5477
|
+
.history-session-actions .history-delete-btn:disabled {
|
|
5478
|
+
opacity: 0.5;
|
|
5479
|
+
cursor: wait;
|
|
5480
|
+
}
|
|
5481
|
+
|
|
5482
|
+
@keyframes delete-armed-pulse {
|
|
5483
|
+
0%,
|
|
5484
|
+
100% {
|
|
5485
|
+
box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4);
|
|
5486
|
+
}
|
|
5487
|
+
50% {
|
|
5488
|
+
box-shadow: 0 0 0 4px rgba(239, 68, 68, 0);
|
|
5489
|
+
}
|
|
5490
|
+
}
|
|
5491
|
+
|
|
5492
|
+
/* Informational footer for the CURRENT row (replaces action buttons). */
|
|
5493
|
+
.history-session-current-note {
|
|
5494
|
+
margin-top: 8px;
|
|
5495
|
+
padding: 6px 10px;
|
|
5496
|
+
font-family: var(--font-mono);
|
|
5497
|
+
font-size: 10px;
|
|
5498
|
+
letter-spacing: 0.05em;
|
|
5499
|
+
color: rgba(16, 185, 129, 0.75);
|
|
5500
|
+
background: rgba(16, 185, 129, 0.05);
|
|
5501
|
+
border: 1px dashed rgba(16, 185, 129, 0.2);
|
|
5502
|
+
border-radius: 4px;
|
|
5503
|
+
text-align: center;
|
|
5504
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// ── Session History Browser ────────────────────────────────────────────
|
|
2
|
-
// Provides the history drawer: list past sessions, browse archived
|
|
2
|
+
// Provides the history drawer: list past sessions, browse archived
|
|
3
|
+
// transcripts, favourite/delete/load. Exactly one row is ever CURRENT;
|
|
4
|
+
// all others are loadable past sessions.
|
|
3
5
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
4
6
|
|
|
5
7
|
"use strict";
|
|
@@ -15,7 +17,8 @@
|
|
|
15
17
|
|
|
16
18
|
let isOpen = false;
|
|
17
19
|
let toastTimer = null;
|
|
18
|
-
let __viewingFile = null;
|
|
20
|
+
let __viewingFile = null;
|
|
21
|
+
const DELETE_CONFIRM_MS = 5000;
|
|
19
22
|
|
|
20
23
|
// ── Open / close ──────────────────────────────────────────────────────
|
|
21
24
|
function openDrawer() {
|
|
@@ -48,10 +51,15 @@
|
|
|
48
51
|
drawerBody.innerHTML = '<div class="history-loading">Loading sessions…</div>';
|
|
49
52
|
__viewingFile = null;
|
|
50
53
|
|
|
54
|
+
const currentKey = window.SESSION_KEY ?? "agent:main:main";
|
|
55
|
+
const url = "/api/sessions?currentKey=" + encodeURIComponent(currentKey);
|
|
56
|
+
|
|
51
57
|
let sessions;
|
|
52
58
|
try {
|
|
53
|
-
const res = await fetch(
|
|
54
|
-
|
|
59
|
+
const res = await fetch(url);
|
|
60
|
+
const payload = await res.json();
|
|
61
|
+
// Response shape: { sessions: [...] } (2.7.1+)
|
|
62
|
+
sessions = Array.isArray(payload?.sessions) ? payload.sessions : [];
|
|
55
63
|
} catch {
|
|
56
64
|
drawerBody.innerHTML = '<div class="history-empty">Failed to load sessions.</div>';
|
|
57
65
|
return;
|
|
@@ -62,52 +70,216 @@
|
|
|
62
70
|
return;
|
|
63
71
|
}
|
|
64
72
|
|
|
73
|
+
// Group rows: CURRENT / FAVOURITES / RECENT
|
|
74
|
+
const current = sessions.filter((s) => s.kind === "current");
|
|
75
|
+
const favourites = sessions.filter((s) => s.kind !== "current" && s.favorited);
|
|
76
|
+
const recent = sessions.filter((s) => s.kind !== "current" && !s.favorited);
|
|
77
|
+
|
|
65
78
|
drawerBody.innerHTML = "";
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
79
|
+
|
|
80
|
+
if (current.length > 0) {
|
|
81
|
+
drawerBody.appendChild(renderSection("CURRENT", current));
|
|
82
|
+
}
|
|
83
|
+
if (favourites.length > 0) {
|
|
84
|
+
drawerBody.appendChild(renderSection("★ FAVOURITES", favourites));
|
|
85
|
+
}
|
|
86
|
+
if (recent.length > 0) {
|
|
87
|
+
drawerBody.appendChild(renderSection("RECENT", recent));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function renderSection(title, rows) {
|
|
92
|
+
const section = document.createElement("section");
|
|
93
|
+
section.className = "history-section";
|
|
94
|
+
const heading = document.createElement("div");
|
|
95
|
+
heading.className = "history-section-heading";
|
|
96
|
+
heading.textContent = title;
|
|
97
|
+
section.appendChild(heading);
|
|
98
|
+
for (const row of rows) {
|
|
99
|
+
section.appendChild(renderRow(row));
|
|
100
|
+
}
|
|
101
|
+
return section;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function renderRow(row) {
|
|
105
|
+
const item = document.createElement("div");
|
|
106
|
+
item.className = "history-session-item history-session-" + row.kind;
|
|
107
|
+
|
|
108
|
+
const badge = BADGE[row.kind] ?? BADGE.past;
|
|
109
|
+
const when = formatTimestamp(row.lastActivity);
|
|
110
|
+
const preview = row.preview
|
|
111
|
+
? escHtml(row.preview) + (row.preview.length >= 80 ? "…" : "")
|
|
112
|
+
: '<em style="opacity:0.5">No messages</em>';
|
|
113
|
+
|
|
114
|
+
// Current-session footer is informational — no buttons needed.
|
|
115
|
+
const footerHtml =
|
|
116
|
+
row.kind === "current"
|
|
117
|
+
? `<div class="history-session-current-note">◉ You're chatting in this session right now</div>`
|
|
118
|
+
: `<footer class="history-session-actions">
|
|
119
|
+
${row.canLoad ? `<button class="history-load-btn">Load Session</button>` : ""}
|
|
120
|
+
${row.canDelete ? `<button class="history-delete-btn">Delete</button>` : ""}
|
|
121
|
+
</footer>`;
|
|
122
|
+
|
|
123
|
+
item.innerHTML = `
|
|
124
|
+
<header class="history-session-header">
|
|
125
|
+
<button class="history-fav-btn ${row.favorited ? "active" : ""}"
|
|
126
|
+
aria-pressed="${row.favorited ? "true" : "false"}"
|
|
127
|
+
aria-label="${row.favorited ? "Unfavourite" : "Favourite"} session"
|
|
128
|
+
title="${row.favorited ? "Unfavourite" : "Favourite"}">★</button>
|
|
129
|
+
<span class="history-session-badge ${badge.className}">${badge.label}</span>
|
|
130
|
+
<span class="history-session-date">${escHtml(when)}</span>
|
|
131
|
+
</header>
|
|
132
|
+
<div class="history-session-meta">
|
|
133
|
+
<span class="history-session-count">${row.msgCount} msgs · ${fmtSize(row.size)}</span>
|
|
134
|
+
</div>
|
|
135
|
+
<div class="history-session-preview">${preview}</div>
|
|
136
|
+
${footerHtml}
|
|
137
|
+
`;
|
|
138
|
+
|
|
139
|
+
// Body-click behaviour varies by kind:
|
|
140
|
+
// - CURRENT: close the drawer (user is already viewing this session
|
|
141
|
+
// in the main feed — no point opening a transcript preview).
|
|
142
|
+
// - PAST / ARCHIVED: open the transcript viewer.
|
|
143
|
+
item.addEventListener("click", (e) => {
|
|
144
|
+
const target = e.target;
|
|
145
|
+
if (target instanceof Element && target.closest("button")) {
|
|
146
|
+
return; // button click handled below
|
|
105
147
|
}
|
|
148
|
+
if (row.kind === "current") {
|
|
149
|
+
closeDrawer();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
void loadTranscript(row.file, when);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
const favBtn = item.querySelector(".history-fav-btn");
|
|
156
|
+
favBtn?.addEventListener("click", async (e) => {
|
|
157
|
+
e.stopPropagation();
|
|
158
|
+
await toggleFavorite(row, favBtn);
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
const loadBtn = item.querySelector(".history-load-btn");
|
|
162
|
+
loadBtn?.addEventListener("click", async (e) => {
|
|
163
|
+
e.stopPropagation();
|
|
164
|
+
await loadRow(row);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
const deleteBtn = item.querySelector(".history-delete-btn");
|
|
168
|
+
if (deleteBtn instanceof HTMLButtonElement) {
|
|
169
|
+
wireTwoStageDelete(deleteBtn, () => deleteRow(row));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return item;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const BADGE = {
|
|
176
|
+
current: { label: "CURRENT", className: "badge-current" },
|
|
177
|
+
past: { label: "PAST", className: "badge-past" },
|
|
178
|
+
archived: { label: "ARCHIVED", className: "badge-archived" },
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
// ── Actions ───────────────────────────────────────────────────────────
|
|
106
182
|
|
|
107
|
-
|
|
183
|
+
async function toggleFavorite(row, favBtn) {
|
|
184
|
+
if (!window.gateway?.connected) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const next = !row.favorited;
|
|
188
|
+
try {
|
|
189
|
+
await window.gateway.rpc("sessions.favoriteFile", {
|
|
190
|
+
file: row.file,
|
|
191
|
+
favorited: next,
|
|
192
|
+
});
|
|
193
|
+
row.favorited = next;
|
|
194
|
+
favBtn.classList.toggle("active", next);
|
|
195
|
+
favBtn.setAttribute("aria-pressed", next ? "true" : "false");
|
|
196
|
+
// Re-render to move the row between FAVOURITES and RECENT sections.
|
|
197
|
+
void loadSessionList();
|
|
198
|
+
} catch (err) {
|
|
199
|
+
console.warn("[history] favorite toggle failed", err);
|
|
108
200
|
}
|
|
109
201
|
}
|
|
110
202
|
|
|
203
|
+
async function loadRow(row) {
|
|
204
|
+
if (!window.gateway?.connected) {
|
|
205
|
+
alert("Gateway not connected.");
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
drawerBody.innerHTML = '<div class="history-loading">Loading session…</div>';
|
|
209
|
+
try {
|
|
210
|
+
await window.gateway.rpc("sessions.adoptFile", {
|
|
211
|
+
key: window.SESSION_KEY,
|
|
212
|
+
targetFile: row.file,
|
|
213
|
+
});
|
|
214
|
+
closeDrawer();
|
|
215
|
+
if (typeof window.reloadSession === "function") {
|
|
216
|
+
window.reloadSession();
|
|
217
|
+
}
|
|
218
|
+
} catch (err) {
|
|
219
|
+
drawerBody.innerHTML =
|
|
220
|
+
'<div class="history-empty">Load failed: ' +
|
|
221
|
+
escHtml(err?.message ?? String(err)) +
|
|
222
|
+
"</div>";
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
async function deleteRow(row) {
|
|
227
|
+
if (!window.gateway?.connected) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
try {
|
|
231
|
+
if (row.kind === "past" && row.sessionKey) {
|
|
232
|
+
// Archives the transcript via `sessions.delete` — the file becomes
|
|
233
|
+
// an ARCHIVED row in the next list refresh. Reversible.
|
|
234
|
+
await window.gateway.rpc("sessions.delete", {
|
|
235
|
+
key: row.sessionKey,
|
|
236
|
+
deleteTranscript: true,
|
|
237
|
+
});
|
|
238
|
+
} else {
|
|
239
|
+
// Archived files (or orphan live files): permanent deletion.
|
|
240
|
+
await window.gateway.rpc("sessions.deleteFile", { file: row.file });
|
|
241
|
+
}
|
|
242
|
+
await loadSessionList();
|
|
243
|
+
} catch (err) {
|
|
244
|
+
console.warn("[history] delete failed", err);
|
|
245
|
+
alert("Delete failed: " + (err?.message ?? String(err)));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Wire a Delete button as a two-stage confirm. First click arms it with
|
|
251
|
+
* "Really delete?" for DELETE_CONFIRM_MS; second click within the window
|
|
252
|
+
* runs the action. Auto-reverts if the user walks away.
|
|
253
|
+
*/
|
|
254
|
+
function wireTwoStageDelete(btn, run) {
|
|
255
|
+
let armed = false;
|
|
256
|
+
let armTimer = null;
|
|
257
|
+
const originalLabel = btn.textContent;
|
|
258
|
+
btn.addEventListener("click", (e) => {
|
|
259
|
+
e.stopPropagation();
|
|
260
|
+
if (!armed) {
|
|
261
|
+
armed = true;
|
|
262
|
+
btn.textContent = "Really delete?";
|
|
263
|
+
btn.classList.add("armed");
|
|
264
|
+
if (armTimer) {
|
|
265
|
+
clearTimeout(armTimer);
|
|
266
|
+
}
|
|
267
|
+
armTimer = setTimeout(() => {
|
|
268
|
+
armed = false;
|
|
269
|
+
btn.textContent = originalLabel;
|
|
270
|
+
btn.classList.remove("armed");
|
|
271
|
+
}, DELETE_CONFIRM_MS);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
clearTimeout(armTimer);
|
|
275
|
+
armed = false;
|
|
276
|
+
btn.disabled = true;
|
|
277
|
+
btn.textContent = "Deleting…";
|
|
278
|
+
btn.classList.remove("armed");
|
|
279
|
+
void run();
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
|
|
111
283
|
// ── Transcript viewer ─────────────────────────────────────────────────
|
|
112
284
|
async function loadTranscript(file, label) {
|
|
113
285
|
__viewingFile = file;
|
|
@@ -125,7 +297,6 @@
|
|
|
125
297
|
|
|
126
298
|
drawerBody.innerHTML = "";
|
|
127
299
|
|
|
128
|
-
// Banner
|
|
129
300
|
const banner = document.createElement("div");
|
|
130
301
|
banner.className = "archive-banner";
|
|
131
302
|
banner.innerHTML = `
|
|
@@ -135,7 +306,6 @@
|
|
|
135
306
|
drawerBody.appendChild(banner);
|
|
136
307
|
drawerBody.querySelector("#archive-back-btn").addEventListener("click", loadSessionList);
|
|
137
308
|
|
|
138
|
-
// Messages container
|
|
139
309
|
const container = document.createElement("div");
|
|
140
310
|
container.className = "history-transcript";
|
|
141
311
|
|
|
@@ -146,13 +316,11 @@
|
|
|
146
316
|
for (const msg of relevant) {
|
|
147
317
|
const el = document.createElement("div");
|
|
148
318
|
el.className = `history-msg ${msg.role}`;
|
|
149
|
-
|
|
150
319
|
const roleLabel = msg.role === "user" ? "YOU" : "SYMI";
|
|
151
320
|
const text = extractMsgText(msg);
|
|
152
321
|
if (!text.trim()) {
|
|
153
322
|
continue;
|
|
154
323
|
}
|
|
155
|
-
|
|
156
324
|
el.innerHTML = `
|
|
157
325
|
<div class="history-msg-role ${msg.role}">${roleLabel}</div>
|
|
158
326
|
<div class="history-msg-text">${escHtml(text)}</div>
|
|
@@ -178,31 +346,6 @@
|
|
|
178
346
|
openDrawer();
|
|
179
347
|
});
|
|
180
348
|
|
|
181
|
-
// ── Session restore ────────────────────────────────────────────────────
|
|
182
|
-
async function restoreSession(file) {
|
|
183
|
-
if (!window.gateway?.connected) {
|
|
184
|
-
alert("Gateway not connected.");
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
drawerBody.innerHTML = '<div class="history-loading">Restoring session…</div>';
|
|
189
|
-
|
|
190
|
-
try {
|
|
191
|
-
await window.gateway.rpc("sessions.restore", {
|
|
192
|
-
key: window.SESSION_KEY,
|
|
193
|
-
targetFile: file,
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
// Close drawer and reload the chat with the restored session
|
|
197
|
-
closeDrawer();
|
|
198
|
-
if (typeof window.reloadSession === "function") {
|
|
199
|
-
window.reloadSession();
|
|
200
|
-
}
|
|
201
|
-
} catch (err) {
|
|
202
|
-
drawerBody.innerHTML = `<div class="history-empty">Restore failed: ${escHtml(err.message)}</div>`;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
349
|
// ── Helpers ───────────────────────────────────────────────────────────
|
|
207
350
|
function extractMsgText(msg) {
|
|
208
351
|
if (typeof msg.content === "string") {
|
|
@@ -227,22 +370,27 @@
|
|
|
227
370
|
}
|
|
228
371
|
|
|
229
372
|
function formatTimestamp(iso) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
return d.toLocaleString("en-US", {
|
|
233
|
-
month: "short",
|
|
234
|
-
day: "numeric",
|
|
235
|
-
year: "numeric",
|
|
236
|
-
hour: "2-digit",
|
|
237
|
-
minute: "2-digit",
|
|
238
|
-
hour12: true,
|
|
239
|
-
});
|
|
240
|
-
} catch {
|
|
241
|
-
return iso;
|
|
373
|
+
if (!iso) {
|
|
374
|
+
return "Unknown";
|
|
242
375
|
}
|
|
376
|
+
const d = new Date(iso);
|
|
377
|
+
if (Number.isNaN(d.getTime())) {
|
|
378
|
+
return "Unknown";
|
|
379
|
+
}
|
|
380
|
+
return d.toLocaleString("en-US", {
|
|
381
|
+
month: "short",
|
|
382
|
+
day: "numeric",
|
|
383
|
+
year: "numeric",
|
|
384
|
+
hour: "2-digit",
|
|
385
|
+
minute: "2-digit",
|
|
386
|
+
hour12: true,
|
|
387
|
+
});
|
|
243
388
|
}
|
|
244
389
|
|
|
245
390
|
function fmtSize(bytes) {
|
|
391
|
+
if (typeof bytes !== "number" || !Number.isFinite(bytes) || bytes < 0) {
|
|
392
|
+
return "0B";
|
|
393
|
+
}
|
|
246
394
|
if (bytes < 1024) {
|
|
247
395
|
return `${bytes}B`;
|
|
248
396
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-
|
|
1
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
2
2
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
3
3
|
import { t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|