@symerian/symi 2.6.35 → 2.6.37
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/{acp-cli-NJzARaHq.js → acp-cli-EqE2uipx.js} +2 -2
- package/dist/{acp-cli-Cu4icbJT.js → acp-cli-gr5XIPZf.js} +2 -2
- package/dist/{agents-BIAaMNSb.js → agents-BDKvA-fr.js} +5 -5
- package/dist/{agents.config-BKjYekzK.js → agents.config-DP7J1Yxi.js} +1 -1
- package/dist/{agents.config-BDtgUDFp.js → agents.config-SvdnvFsa.js} +1 -1
- package/dist/{audio-preflight-CWnxkaac.js → audio-preflight-COe9clRU.js} +2 -2
- package/dist/{audit-Byo5jCLN.js → audit-Cgd5-Y7W.js} +2 -2
- package/dist/{audit-CrITRV6w.js → audit-DCDNPsGr.js} +2 -2
- package/dist/{auth-choice-Cw2rldnf.js → auth-choice-CinzPjY5.js} +4 -4
- package/dist/{auth-choice-C7BrC95t.js → auth-choice-DeTIgQiQ.js} +2 -2
- package/dist/{banner-DCF8IifK.js → banner-DlzlZSHv.js} +1 -1
- package/dist/{browser-cli-CPcnnsJJ.js → browser-cli-Dun4KSp2.js} +3 -3
- package/dist/{browser-cli-BG4qPxpM.js → browser-cli-FNGt_E96.js} +3 -3
- 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-CJaS1iRF.js → call-CFhGTNtt.js} +1 -1
- package/dist/{call-BcE47FtD.js → call-DIDhYlsx.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BaC3G5sc.js → channel-options-38j3QjH3.js} +1 -1
- package/dist/{channel-options-DHSRuD2s.js → channel-options-D7Lp2WmW.js} +1 -1
- package/dist/{channel-web-YXrZZHRE.js → channel-web-DoJWvCSG.js} +2 -2
- package/dist/{channels-cli-CfMJGgBp.js → channels-cli-CMMBVrwz.js} +7 -7
- package/dist/{channels-cli-DODlfOu4.js → channels-cli-DmvAljR1.js} +9 -9
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-CSlDsUKl.js → cli-Cd4B5FyU.js} +6 -6
- package/dist/{cli-CVqXnzze.js → cli-D9LYX6lB.js} +4 -4
- package/dist/{client-DMBZpU6X.js → client-T3qcxXru.js} +6 -1
- package/dist/{client-CQSyCS4M.js → client-jI1oE0_k.js} +6 -1
- package/dist/{command-registry-CrYpGtIt.js → command-registry-CARx8WBf.js} +10 -10
- package/dist/{completion-cli-GqPGf3Kq.js → completion-cli-DCO3bMjl.js} +2 -2
- package/dist/{completion-cli-BmYBAxqM.js → completion-cli-LYcBopv1.js} +1 -1
- package/dist/{config-cli-BxSBpwuL.js → config-cli-9rTAv29s.js} +1 -1
- package/dist/{config-cli-BjXnB1c7.js → config-cli-BCiQhEoA.js} +1 -1
- package/dist/{configure-De-0b4bB.js → configure-BeKcXpvL.js} +6 -6
- package/dist/{configure-CIFt3G-c.js → configure-RmJWWP1i.js} +8 -8
- package/dist/control-ui/css/style.css +104 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/control-ui/js/app.js +45 -0
- package/dist/control-ui/js/history.js +38 -0
- package/dist/control-ui/js/menu.js +38 -30
- package/dist/control-ui/js/settings.js +166 -2
- package/dist/{cron-cli-BP24xl6n.js → cron-cli-C-gg6wfO.js} +3 -3
- package/dist/{cron-cli-DBIlCvp3.js → cron-cli-KYTOQ6d9.js} +3 -3
- package/dist/{daemon-cli-wWnBIQtk.js → daemon-cli-0RLS-CwL.js} +2 -2
- package/dist/{daemon-cli-DscwlsKW.js → daemon-cli-CJJ8Vueq.js} +2 -2
- package/dist/daemon-cli.js +5 -0
- package/dist/{devices-cli-BHiPx2c2.js → devices-cli-CI2TOoP1.js} +2 -2
- package/dist/{devices-cli-Dds-25Ve.js → devices-cli-j0f38zcG.js} +2 -2
- package/dist/{doctor-completion-CL0NHlCA.js → doctor-completion-BlysSk9e.js} +1 -1
- package/dist/{doctor-completion-4SDl6ZEA.js → doctor-completion-CfPhNCUx.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BliRl8VB.js → exec-approvals-cli-2BfYmO4M.js} +4 -4
- package/dist/{exec-approvals-cli--zyXYrNY.js → exec-approvals-cli-wesKZNXl.js} +4 -4
- package/dist/extensionAPI.js +1 -1
- package/dist/{gateway-cli-D98LL9Yi.js → gateway-cli-B1AI4M7v.js} +17 -16
- package/dist/{gateway-cli-CqHk7Nfm.js → gateway-cli-D2MuH-Vj.js} +15 -14
- package/dist/{gateway-rpc-BxkKeCZ0.js → gateway-rpc-5aGm8LwU.js} +1 -1
- package/dist/{gateway-rpc-DfZSz5JF.js → gateway-rpc-BkB6xEaM.js} +1 -1
- package/dist/{glass-ui-ws-z-ryIbt7.js → glass-ui-ws-cB1R6KOh.js} +13 -13
- package/dist/{glass-ui-ws-vx0iMfPn.js → glass-ui-ws-xbRlW2Pz.js} +11 -11
- package/dist/{health-BNxdveY8.js → health-By4_Yu9p.js} +2 -2
- package/dist/{health-pFcca1cU.js → health-DjUN4OFC.js} +2 -2
- package/dist/{hooks-cli-DefzmbZl.js → hooks-cli-BENuuN6Y.js} +7 -7
- package/dist/{hooks-cli-Dqe7WVzD.js → hooks-cli-CGrOzATb.js} +5 -5
- package/dist/index.js +11 -11
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{logs-cli-xOzIPrHm.js → logs-cli-C0FZokFv.js} +3 -3
- package/dist/{logs-cli-Du8FCgKK.js → logs-cli-Dvs8e7u9.js} +3 -3
- package/dist/{model-catalog-DvBJ8pMD.js → model-catalog-DsFLN-ua.js} +1 -1
- package/dist/{model-picker-Ddo3jHe-.js → model-picker-BzIRY_aM.js} +1 -1
- package/dist/{models-c9cOxxrP.js → models-D1mOj_fd.js} +3 -3
- package/dist/{models-cli-BhOA86hd.js → models-cli-Blg1YDNe.js} +6 -6
- package/dist/{models-cli-Cosjljgg.js → models-cli-DhanAXLt.js} +8 -8
- package/dist/{node-cli-DSEhcjUV.js → node-cli-C4b1vFcY.js} +1 -1
- package/dist/{node-cli-C_G-Q3h-.js → node-cli-DUi87xSB.js} +1 -1
- package/dist/{nodes-cli-BIPA9B8G.js → nodes-cli-alQ9Bv_-.js} +3 -3
- package/dist/{nodes-cli-BcnuJajV.js → nodes-cli-wgJi8nLG.js} +3 -3
- package/dist/{onboard-DzfTelta.js → onboard-BKl9tvd9.js} +5 -5
- package/dist/{onboard-Cy_CK0Ng.js → onboard-DIjwRWbY.js} +3 -3
- package/dist/{onboard-channels-BjUx6cZ7.js → onboard-channels-CW1DBHfJ.js} +1 -1
- package/dist/{onboard-channels-BAEFSSqU.js → onboard-channels-wd_fR_EA.js} +1 -1
- package/dist/{onboard-custom-C7O-zfQ1.js → onboard-custom-BPvHqbtj.js} +1 -1
- package/dist/{onboard-helpers-ZmZYzlq3.js → onboard-helpers-Ci50bfCW.js} +1 -1
- package/dist/{onboard-helpers-_pit1NZW.js → onboard-helpers-DASpwgat.js} +1 -1
- package/dist/{onboard-remote-zUjD7UtM.js → onboard-remote-I9QVs0MQ.js} +1 -1
- package/dist/{onboard-remote-R1g6st9i.js → onboard-remote-xXi061GI.js} +1 -1
- package/dist/{onboard-skills-ByO_wSN5.js → onboard-skills-Bn2T6lze.js} +1 -1
- package/dist/{onboard-skills-BB0YhUmF.js → onboard-skills-DX7L1thH.js} +1 -1
- package/dist/{onboarding-B9RTmYiC.js → onboarding-Ban5B7QD.js} +9 -9
- package/dist/{onboarding-CerjrLp1.js → onboarding-DnhVdzx6.js} +7 -7
- package/dist/{onboarding.finalize-CGGB37q-.js → onboarding.finalize-QCZDp4AW.js} +10 -10
- package/dist/{onboarding.finalize-CLQL7PKW.js → onboarding.finalize-YbnkoDuN.js} +11 -11
- package/dist/{onboarding.gateway-config-CJUgDC6Y.js → onboarding.gateway-config-CJU7Hzrn.js} +3 -3
- package/dist/{onboarding.gateway-config-BQFO9a_h.js → onboarding.gateway-config-D6SN3HBb.js} +3 -3
- package/dist/{pi-auth-json-DayrlDg_.js → pi-auth-json-DhTX6MBO.js} +1 -1
- package/dist/{pi-embedded-CziuxRtW.js → pi-embedded-DG6dQt8v.js} +7 -2
- package/dist/{plugin-registry-Ls_YGsWz.js → plugin-registry-BdvMB68i.js} +1 -1
- package/dist/{plugin-registry-BkFixq63.js → plugin-registry-DfODDpUe.js} +1 -1
- package/dist/plugin-sdk/{channel-web-D4P9MkFu.js → channel-web-DHcmAnVa.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +6 -2
- package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +4 -0
- package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +2 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-BVs4oalQ.js → reply-CeoL_D-u.js} +7 -2
- package/dist/plugin-sdk/{web-DiQTcviv.js → web-qmzvsQZn.js} +2 -2
- package/dist/{plugins-cli-CJLJsr_L.js → plugins-cli-DMxHIMNz.js} +5 -5
- package/dist/{plugins-cli-DXiakDnC.js → plugins-cli-Dcd56Auo.js} +7 -7
- package/dist/{program-B6KpKryX.js → program-CK6pb4lq.js} +10 -10
- package/dist/{program-context-Dm-BSkOd.js → program-context-0dr-H7wo.js} +29 -29
- package/dist/{prompt-select-styled-Dk8_YofB.js → prompt-select-styled-Bi9q87ml.js} +7 -7
- package/dist/{prompt-select-styled-DszNP9MV.js → prompt-select-styled-uYsTGG3x.js} +6 -6
- package/dist/{provider-auth-helpers-Bi5oeREh.js → provider-auth-helpers-BC24Uzzu.js} +1 -1
- package/dist/{provider-auth-helpers-B_Rtgt-w.js → provider-auth-helpers-BUorkQUD.js} +1 -1
- package/dist/{push-apns-BzIW-JHE.js → push-apns-BQckoz9S.js} +1 -1
- package/dist/{push-apns-Bmd6SdxC.js → push-apns-BwHZ2F7j.js} +1 -1
- package/dist/{register.agent-Vc2Bu3J4.js → register.agent-Ffw952Cm.js} +11 -11
- package/dist/{register.agent-kKtKgmcO.js → register.agent-wv_0IcpN.js} +9 -9
- package/dist/{register.configure-BnNPTLBI.js → register.configure-BMkj8T9e.js} +15 -15
- package/dist/{register.configure-D-o-geWg.js → register.configure-BTKXkVgp.js} +11 -11
- package/dist/{register.maintenance-jMmXJ1NK.js → register.maintenance-CRu_hm_x.js} +11 -11
- package/dist/{register.maintenance-0L5VAVCA.js → register.maintenance-D1xEYvHY.js} +12 -12
- package/dist/{register.message-CdCHhVND.js → register.message-DD5LEq6t.js} +5 -5
- package/dist/{register.message-C9zVQOWl.js → register.message-f-91gZI8.js} +7 -7
- package/dist/{register.onboard-pKq2v5Fh.js → register.onboard-BRTil6DH.js} +11 -11
- package/dist/{register.onboard-BN7J8vyx.js → register.onboard-BetMbk4D.js} +7 -7
- package/dist/{register.setup-J_GQSh-T.js → register.setup-C0XLhwPd.js} +11 -11
- package/dist/{register.setup-BKYxHrcB.js → register.setup-DX01Qmwr.js} +7 -7
- package/dist/{register.status-health-sessions-BLA4yUC4.js → register.status-health-sessions-CMF93G-p.js} +7 -7
- package/dist/{register.status-health-sessions-BtGRpngz.js → register.status-health-sessions-Dqh15XbO.js} +9 -9
- package/dist/{register.subclis-DcBHO9E8.js → register.subclis-D_HoHaB7.js} +20 -20
- package/dist/{reply-C68F3IMq.js → reply-CMb-m0ZJ.js} +9 -9
- package/dist/{rpc-BjLadgzu.js → rpc--E7i90bk.js} +1 -1
- package/dist/{rpc-BfhojW8g.js → rpc-_E0CZJKf.js} +1 -1
- package/dist/{run-main-DkcjdsAo.js → run-main-e6LI0zRf.js} +17 -17
- package/dist/{runner-CUglpiFP.js → runner-BSzJIT-z.js} +1 -1
- package/dist/{security-cli-BFLtWWHy.js → security-cli-BSZ1_9R3.js} +3 -3
- package/dist/{security-cli-Dmb1k47A.js → security-cli-KxA9AZ3q.js} +3 -3
- package/dist/{server-methods-B4IR7jcD.js → server-methods-CZJHMB_M.js} +102 -11
- package/dist/{server-methods-n5oCz2e0.js → server-methods-D5X0JrXg.js} +102 -11
- package/dist/{server-node-events-C3hHerD3.js → server-node-events-BpNyybGF.js} +5 -5
- package/dist/{server-node-events---jWWBKN.js → server-node-events-Cu_8g2ws.js} +7 -7
- package/dist/{status-8CbQSAEF.js → status-C2iQbl7T.js} +1 -1
- package/dist/{status-CwhHbhUv.js → status-CL1xQrpW.js} +5 -5
- package/dist/{status-ITRlj7e_.js → status-CXib3MSE.js} +5 -5
- package/dist/{status-ClvXAaHZ.js → status-iJUy8byq.js} +1 -1
- package/dist/{subagent-registry-BXI3DyAX.js → subagent-registry-Cdiios3w.js} +5 -5
- package/dist/{system-cli-UMsMEurS.js → system-cli-C4A3Udil.js} +3 -3
- package/dist/{system-cli-D_EIZpBm.js → system-cli-CECNjZdB.js} +3 -3
- package/dist/{tui-BJB80muc.js → tui-2nWOvxxE.js} +2 -2
- package/dist/{tui-CriznorL.js → tui-D14a9N3F.js} +2 -2
- package/dist/{tui-cli-C7Q9lK8Q.js → tui-cli-B-Nl_8uj.js} +3 -3
- package/dist/{tui-cli-CSIdfCTR.js → tui-cli-Bg4YuRSd.js} +3 -3
- package/dist/{unified-runner-Di5Ca6mo.js → unified-runner-dSVvVx1y.js} +7 -2
- package/dist/{update-cli-JS-KTMc8.js → update-cli-B5q0ErXF.js} +12 -12
- package/dist/{update-cli-B0H4ITiR.js → update-cli-CSWxJ-hA.js} +13 -13
- package/dist/{update-runner-C17bqGvO.js → update-runner-BB5A0jnW.js} +1 -1
- package/dist/{update-runner-e_ChofHM.js → update-runner-jvpPI7iP.js} +1 -1
- package/dist/{web-Dr9gUjHz.js → web-BsEbA9Ur.js} +4 -4
- package/dist/{web-BTiGD3po.js → web-BuHFfZp7.js} +1 -1
- package/dist/{web-B3oyGSBx.js → web-DDmkA8-N.js} +1 -1
- package/dist/{web-Cih6rPbV.js → web-DsdmLxAP.js} +7 -7
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { an as getPrimaryCommand, cn as hasHelpOrVersion } from "./entry.js";
|
|
3
|
-
import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-
|
|
3
|
+
import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-D_HoHaB7.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/program/command-registry.ts
|
|
6
6
|
var command_registry_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -22,7 +22,7 @@ const coreEntries = [
|
|
|
22
22
|
hasSubcommands: false
|
|
23
23
|
}],
|
|
24
24
|
register: async ({ program }) => {
|
|
25
|
-
(await import("./register.setup-
|
|
25
|
+
(await import("./register.setup-DX01Qmwr.js")).registerSetupCommand(program);
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
{
|
|
@@ -32,7 +32,7 @@ const coreEntries = [
|
|
|
32
32
|
hasSubcommands: false
|
|
33
33
|
}],
|
|
34
34
|
register: async ({ program }) => {
|
|
35
|
-
(await import("./register.onboard-
|
|
35
|
+
(await import("./register.onboard-BetMbk4D.js")).registerOnboardCommand(program);
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
{
|
|
@@ -42,7 +42,7 @@ const coreEntries = [
|
|
|
42
42
|
hasSubcommands: false
|
|
43
43
|
}],
|
|
44
44
|
register: async ({ program }) => {
|
|
45
|
-
(await import("./register.configure-
|
|
45
|
+
(await import("./register.configure-BTKXkVgp.js")).registerConfigureCommand(program);
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -52,7 +52,7 @@ const coreEntries = [
|
|
|
52
52
|
hasSubcommands: true
|
|
53
53
|
}],
|
|
54
54
|
register: async ({ program }) => {
|
|
55
|
-
(await import("./config-cli-
|
|
55
|
+
(await import("./config-cli-BCiQhEoA.js")).registerConfigCli(program);
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
{
|
|
@@ -79,7 +79,7 @@ const coreEntries = [
|
|
|
79
79
|
}
|
|
80
80
|
],
|
|
81
81
|
register: async ({ program }) => {
|
|
82
|
-
(await import("./register.maintenance-
|
|
82
|
+
(await import("./register.maintenance-CRu_hm_x.js")).registerMaintenanceCommands(program);
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
{
|
|
@@ -89,7 +89,7 @@ const coreEntries = [
|
|
|
89
89
|
hasSubcommands: true
|
|
90
90
|
}],
|
|
91
91
|
register: async ({ program, ctx }) => {
|
|
92
|
-
(await import("./register.message-
|
|
92
|
+
(await import("./register.message-DD5LEq6t.js")).registerMessageCommands(program, ctx);
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
{
|
|
@@ -113,7 +113,7 @@ const coreEntries = [
|
|
|
113
113
|
hasSubcommands: true
|
|
114
114
|
}],
|
|
115
115
|
register: async ({ program, ctx }) => {
|
|
116
|
-
(await import("./register.agent-
|
|
116
|
+
(await import("./register.agent-wv_0IcpN.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
119
|
{
|
|
@@ -135,7 +135,7 @@ const coreEntries = [
|
|
|
135
135
|
}
|
|
136
136
|
],
|
|
137
137
|
register: async ({ program }) => {
|
|
138
|
-
(await import("./register.status-health-sessions-
|
|
138
|
+
(await import("./register.status-health-sessions-CMF93G-p.js")).registerStatusHealthSessionsCommands(program);
|
|
139
139
|
}
|
|
140
140
|
},
|
|
141
141
|
{
|
|
@@ -145,7 +145,7 @@ const coreEntries = [
|
|
|
145
145
|
hasSubcommands: true
|
|
146
146
|
}],
|
|
147
147
|
register: async ({ program }) => {
|
|
148
|
-
(await import("./browser-cli-
|
|
148
|
+
(await import("./browser-cli-Dun4KSp2.js")).registerBrowserCli(program);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { Yt as resolveStateDir, l as routeLogsToStderr, nt as pathExists } from "./entry.js";
|
|
3
|
-
import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-
|
|
4
|
-
import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-
|
|
3
|
+
import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-D_HoHaB7.js";
|
|
4
|
+
import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-CARx8WBf.js";
|
|
5
5
|
import { t as getProgramContext } from "./program-context-CqzR_m-7.js";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
|
|
3
3
|
import { h as pathExists } from "./utils-B-0b9bGM.js";
|
|
4
4
|
import { i as routeLogsToStderr } from "./subsystem-D9vIQve0.js";
|
|
5
|
-
import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-
|
|
5
|
+
import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-0dr-H7wo.js";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import fs from "node:fs/promises";
|
|
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
|
|
|
206
206
|
}
|
|
207
207
|
function registerConfigCli(program) {
|
|
208
208
|
const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
209
|
-
const { configureCommandFromSectionsArg } = await import("./configure-
|
|
209
|
+
const { configureCommandFromSectionsArg } = await import("./configure-RmJWWP1i.js").then((n) => n.t);
|
|
210
210
|
await configureCommandFromSectionsArg(opts.section, defaultRuntime);
|
|
211
211
|
});
|
|
212
212
|
cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
|
|
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
|
|
|
201
201
|
}
|
|
202
202
|
function registerConfigCli(program) {
|
|
203
203
|
const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
204
|
-
const { configureCommandFromSectionsArg } = await import("./configure-
|
|
204
|
+
const { configureCommandFromSectionsArg } = await import("./configure-BeKcXpvL.js").then((n) => n.t);
|
|
205
205
|
await configureCommandFromSectionsArg(opts.section, defaultRuntime);
|
|
206
206
|
});
|
|
207
207
|
cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
|
|
@@ -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-DASpwgat.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-CW1DBHfJ.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-CfRwa6qh.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-By4_Yu9p.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-DeTIgQiQ.js";
|
|
22
22
|
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-D5nCutGW.js";
|
|
23
23
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DA_LW52P.js";
|
|
24
24
|
import { a as promptCustomApiConfig } from "./onboard-custom-DdWPfzJO.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-xXi061GI.js";
|
|
28
|
+
import { n as setupSkills } from "./onboard-skills-Bn2T6lze.js";
|
|
29
29
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
30
30
|
|
|
31
31
|
//#region src/commands/configure.shared.ts
|
|
@@ -8,26 +8,26 @@ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } fr
|
|
|
8
8
|
import { a as findTailscaleBinary } from "./tailscale-D5dKabOc.js";
|
|
9
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-Ci50bfCW.js";
|
|
12
12
|
import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-8JqOYj0q.js";
|
|
13
13
|
import { t as note$1 } from "./note-DeHoW7xO.js";
|
|
14
14
|
import { t as WizardCancelledError } from "./prompts-Xu2Sveka.js";
|
|
15
15
|
import { t as createClackPrompter } from "./clack-prompter-B7pN13HV.js";
|
|
16
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
16
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-wd_fR_EA.js";
|
|
17
17
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
|
|
18
18
|
import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
|
|
19
|
-
import { r as healthCommand } from "./health-
|
|
19
|
+
import { r as healthCommand } from "./health-DjUN4OFC.js";
|
|
20
20
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
|
|
21
21
|
import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
|
|
22
22
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BLzEBA1v.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-
|
|
23
|
+
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-CinzPjY5.js";
|
|
24
|
+
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-BzIRY_aM.js";
|
|
25
25
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-aQ75ZlXY.js";
|
|
26
|
-
import { a as promptCustomApiConfig } from "./onboard-custom-
|
|
26
|
+
import { a as promptCustomApiConfig } from "./onboard-custom-BPvHqbtj.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-CxY-xbsH.js";
|
|
28
28
|
import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.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-I9QVs0MQ.js";
|
|
30
|
+
import { n as setupSkills } from "./onboard-skills-DX7L1thH.js";
|
|
31
31
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
32
32
|
|
|
33
33
|
//#region src/commands/configure.shared.ts
|
|
@@ -2816,6 +2816,29 @@ body {
|
|
|
2816
2816
|
border: 1px solid rgba(139, 92, 246, 0.2);
|
|
2817
2817
|
}
|
|
2818
2818
|
|
|
2819
|
+
/* ── Load session button ──────────────────────────────────────────────── */
|
|
2820
|
+
.history-load-btn {
|
|
2821
|
+
margin-top: 8px;
|
|
2822
|
+
padding: 5px 14px;
|
|
2823
|
+
height: 28px;
|
|
2824
|
+
width: 100%;
|
|
2825
|
+
background: rgba(0, 212, 255, 0.08);
|
|
2826
|
+
border: 1px solid rgba(0, 212, 255, 0.2);
|
|
2827
|
+
border-radius: 6px;
|
|
2828
|
+
color: rgba(0, 212, 255, 0.8);
|
|
2829
|
+
font-family: var(--font-mono);
|
|
2830
|
+
font-size: 10px;
|
|
2831
|
+
font-weight: 600;
|
|
2832
|
+
letter-spacing: 0.08em;
|
|
2833
|
+
cursor: pointer;
|
|
2834
|
+
transition: all 0.15s;
|
|
2835
|
+
}
|
|
2836
|
+
.history-load-btn:hover {
|
|
2837
|
+
background: rgba(0, 212, 255, 0.15);
|
|
2838
|
+
border-color: rgba(0, 212, 255, 0.4);
|
|
2839
|
+
color: rgba(0, 212, 255, 1);
|
|
2840
|
+
}
|
|
2841
|
+
|
|
2819
2842
|
/* ── Archive viewer banner ──────────────────────────────────────────── */
|
|
2820
2843
|
.archive-banner {
|
|
2821
2844
|
display: flex;
|
|
@@ -3448,6 +3471,87 @@ body {
|
|
|
3448
3471
|
color: rgba(255, 255, 255, 0.3);
|
|
3449
3472
|
}
|
|
3450
3473
|
|
|
3474
|
+
/* ══════════════════════════════════════════════════════════════════════
|
|
3475
|
+
DATA CARDS — used by generic RPC panels (Overview, Channels, etc.)
|
|
3476
|
+
══════════════════════════════════════════════════════════════════════ */
|
|
3477
|
+
|
|
3478
|
+
.data-card {
|
|
3479
|
+
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
3480
|
+
border-radius: 8px;
|
|
3481
|
+
margin-bottom: 8px;
|
|
3482
|
+
overflow: hidden;
|
|
3483
|
+
transition: border-color 0.15s;
|
|
3484
|
+
}
|
|
3485
|
+
.data-card:hover {
|
|
3486
|
+
border-color: rgba(255, 255, 255, 0.1);
|
|
3487
|
+
}
|
|
3488
|
+
|
|
3489
|
+
.data-card-header {
|
|
3490
|
+
display: flex;
|
|
3491
|
+
align-items: center;
|
|
3492
|
+
gap: 8px;
|
|
3493
|
+
padding: 10px 14px;
|
|
3494
|
+
background: rgba(255, 255, 255, 0.02);
|
|
3495
|
+
font-family: var(--font-mono);
|
|
3496
|
+
font-size: 12px;
|
|
3497
|
+
font-weight: 600;
|
|
3498
|
+
color: var(--accent-cyan);
|
|
3499
|
+
letter-spacing: 0.03em;
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3502
|
+
.data-card-badge {
|
|
3503
|
+
font-size: 9px;
|
|
3504
|
+
padding: 1px 6px;
|
|
3505
|
+
border-radius: 4px;
|
|
3506
|
+
background: rgba(0, 212, 255, 0.1);
|
|
3507
|
+
border: 1px solid rgba(0, 212, 255, 0.2);
|
|
3508
|
+
color: rgba(0, 212, 255, 0.7);
|
|
3509
|
+
letter-spacing: 0.06em;
|
|
3510
|
+
}
|
|
3511
|
+
|
|
3512
|
+
.data-card-row {
|
|
3513
|
+
display: flex;
|
|
3514
|
+
align-items: baseline;
|
|
3515
|
+
gap: 12px;
|
|
3516
|
+
padding: 5px 14px;
|
|
3517
|
+
font-family: var(--font-mono);
|
|
3518
|
+
font-size: 11px;
|
|
3519
|
+
line-height: 1.6;
|
|
3520
|
+
border-top: 1px solid rgba(255, 255, 255, 0.03);
|
|
3521
|
+
}
|
|
3522
|
+
.data-card-row:first-child {
|
|
3523
|
+
border-top: none;
|
|
3524
|
+
}
|
|
3525
|
+
|
|
3526
|
+
.data-card-label {
|
|
3527
|
+
color: rgba(255, 255, 255, 0.5);
|
|
3528
|
+
flex-shrink: 0;
|
|
3529
|
+
min-width: 100px;
|
|
3530
|
+
max-width: 200px;
|
|
3531
|
+
overflow: hidden;
|
|
3532
|
+
text-overflow: ellipsis;
|
|
3533
|
+
white-space: nowrap;
|
|
3534
|
+
}
|
|
3535
|
+
|
|
3536
|
+
.data-card-value {
|
|
3537
|
+
color: rgba(255, 255, 255, 0.75);
|
|
3538
|
+
word-break: break-all;
|
|
3539
|
+
flex: 1;
|
|
3540
|
+
min-width: 0;
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3543
|
+
.data-card-inline {
|
|
3544
|
+
display: flex;
|
|
3545
|
+
align-items: baseline;
|
|
3546
|
+
gap: 12px;
|
|
3547
|
+
padding: 8px 14px;
|
|
3548
|
+
font-family: var(--font-mono);
|
|
3549
|
+
font-size: 11px;
|
|
3550
|
+
border: 1px solid rgba(255, 255, 255, 0.04);
|
|
3551
|
+
border-radius: 6px;
|
|
3552
|
+
margin-bottom: 4px;
|
|
3553
|
+
}
|
|
3554
|
+
|
|
3451
3555
|
/* ══════════════════════════════════════════════════════════════════════
|
|
3452
3556
|
DEBUG PANEL
|
|
3453
3557
|
══════════════════════════════════════════════════════════════════════ */
|
|
@@ -697,7 +697,7 @@
|
|
|
697
697
|
<!-- ── Page Navigation Overlay ──────────────────────────────────── -->
|
|
698
698
|
<div class="page-overlay" id="page-overlay" aria-hidden="true">
|
|
699
699
|
<div class="page-overlay-header">
|
|
700
|
-
<button class="page-back-btn" id="page-back-btn" title="Back to
|
|
700
|
+
<button class="page-back-btn" id="page-back-btn" title="Back to menu">
|
|
701
701
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none">
|
|
702
702
|
<path
|
|
703
703
|
d="M19 12H5M5 12l7-7M5 12l7 7"
|
|
@@ -707,7 +707,7 @@
|
|
|
707
707
|
stroke-linejoin="round"
|
|
708
708
|
/>
|
|
709
709
|
</svg>
|
|
710
|
-
<span>
|
|
710
|
+
<span>Menu</span>
|
|
711
711
|
</button>
|
|
712
712
|
<span class="page-overlay-title" id="page-overlay-title"></span>
|
|
713
713
|
<a
|
|
@@ -1181,6 +1181,51 @@ window.addEventListener("symi:profile-changed", (e) => {
|
|
|
1181
1181
|
});
|
|
1182
1182
|
|
|
1183
1183
|
// ── Gateway setup ──────────────────────────────────────────────────
|
|
1184
|
+
// ── Session reload (called after session restore from history drawer) ──
|
|
1185
|
+
window.reloadSession = async function () {
|
|
1186
|
+
feedCache.clear();
|
|
1187
|
+
responseArea.innerHTML = "";
|
|
1188
|
+
responseArea.prepend(loadMoreSentinel);
|
|
1189
|
+
historyStartIndex = 0;
|
|
1190
|
+
historyHasMore = false;
|
|
1191
|
+
updateLoadMoreSentinel();
|
|
1192
|
+
if (typeof window.clearReasoningPanel === "function") {
|
|
1193
|
+
window.clearReasoningPanel();
|
|
1194
|
+
}
|
|
1195
|
+
if (typeof window.clearSymipulsePanel === "function") {
|
|
1196
|
+
window.clearSymipulsePanel();
|
|
1197
|
+
}
|
|
1198
|
+
setAgentStatus("idle");
|
|
1199
|
+
activeSubagentCount = 0;
|
|
1200
|
+
hideWorkingIndicator();
|
|
1201
|
+
|
|
1202
|
+
// Show restored indicator
|
|
1203
|
+
const restored = document.createElement("div");
|
|
1204
|
+
restored.className = "session-cleared";
|
|
1205
|
+
restored.innerHTML = `
|
|
1206
|
+
<div class="session-cleared-icon">◈</div>
|
|
1207
|
+
<div class="session-cleared-text">SESSION RESTORED</div>
|
|
1208
|
+
`;
|
|
1209
|
+
responseArea.appendChild(restored);
|
|
1210
|
+
|
|
1211
|
+
// Load history from the restored session
|
|
1212
|
+
try {
|
|
1213
|
+
const result = await gateway.rpc("chat.history", { sessionKey: window.SESSION_KEY });
|
|
1214
|
+
if (result?.messages) {
|
|
1215
|
+
renderHistory(result.messages);
|
|
1216
|
+
}
|
|
1217
|
+
} catch (err) {
|
|
1218
|
+
console.error("[app] Failed to load restored session history:", err);
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
// Remove indicator after a pause
|
|
1222
|
+
setTimeout(() => {
|
|
1223
|
+
restored.style.transition = "opacity 0.4s ease";
|
|
1224
|
+
restored.style.opacity = "0";
|
|
1225
|
+
setTimeout(() => restored.remove(), 420);
|
|
1226
|
+
}, 1500);
|
|
1227
|
+
};
|
|
1228
|
+
|
|
1184
1229
|
const gateway = new SymiGateway();
|
|
1185
1230
|
window.gateway = gateway;
|
|
1186
1231
|
|
|
@@ -91,6 +91,19 @@
|
|
|
91
91
|
`;
|
|
92
92
|
|
|
93
93
|
item.addEventListener("click", () => loadTranscript(s.file, when));
|
|
94
|
+
|
|
95
|
+
// "Load Session" button for archived sessions
|
|
96
|
+
if (s.isArchived) {
|
|
97
|
+
const loadBtn = document.createElement("button");
|
|
98
|
+
loadBtn.className = "history-load-btn";
|
|
99
|
+
loadBtn.textContent = "Load Session";
|
|
100
|
+
loadBtn.addEventListener("click", (e) => {
|
|
101
|
+
e.stopPropagation(); // don't open the transcript viewer
|
|
102
|
+
void restoreSession(s.file);
|
|
103
|
+
});
|
|
104
|
+
item.appendChild(loadBtn);
|
|
105
|
+
}
|
|
106
|
+
|
|
94
107
|
drawerBody.appendChild(item);
|
|
95
108
|
}
|
|
96
109
|
}
|
|
@@ -165,6 +178,31 @@
|
|
|
165
178
|
openDrawer();
|
|
166
179
|
});
|
|
167
180
|
|
|
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
|
+
|
|
168
206
|
// ── Helpers ───────────────────────────────────────────────────────────
|
|
169
207
|
function extractMsgText(msg) {
|
|
170
208
|
if (typeof msg.content === "string") {
|
|
@@ -132,9 +132,11 @@ function onOverlayKey(e) {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
document
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
document.querySelector("body > .page-overlay #page-back-btn")?.addEventListener("click", () => {
|
|
136
|
+
// Go back to the menu instead of closing everything
|
|
137
|
+
closePageOverlay();
|
|
138
|
+
openMenu();
|
|
139
|
+
});
|
|
138
140
|
|
|
139
141
|
// ── Item routing ──────────────────────────────────────────────────────────────
|
|
140
142
|
// Page display names (mapped from the menu item text)
|
|
@@ -153,13 +155,38 @@ const PAGE_NAMES = {
|
|
|
153
155
|
"/logs": "Logs",
|
|
154
156
|
};
|
|
155
157
|
|
|
156
|
-
//
|
|
157
|
-
const
|
|
158
|
+
// All internal pages rendered natively (no iframe)
|
|
159
|
+
const NATIVE_PAGES = {
|
|
160
|
+
"/overview": "overview",
|
|
161
|
+
"/channels": "channels",
|
|
162
|
+
"/instances": "instances",
|
|
163
|
+
"/sessions": "sessions",
|
|
164
|
+
"/usage": "usage",
|
|
165
|
+
"/cron": "cron",
|
|
166
|
+
"/agents": "agents",
|
|
167
|
+
"/skills": "skills",
|
|
168
|
+
"/nodes": "nodes",
|
|
158
169
|
"/config": "config",
|
|
159
170
|
"/debug": "debug",
|
|
160
171
|
"/logs": "logs",
|
|
161
172
|
};
|
|
162
173
|
|
|
174
|
+
function openNativePage(pageName, pageKey) {
|
|
175
|
+
if (window.closeNativeSettings) {
|
|
176
|
+
window.closeNativeSettings();
|
|
177
|
+
}
|
|
178
|
+
getPageTitle().textContent = pageName.toUpperCase();
|
|
179
|
+
getPagePopoutBtn().style.display = "none";
|
|
180
|
+
getPageFrame().style.display = "none";
|
|
181
|
+
overlayIsOpen = true;
|
|
182
|
+
getPageOverlay().classList.add("open");
|
|
183
|
+
getPageOverlay().setAttribute("aria-hidden", "false");
|
|
184
|
+
document.addEventListener("keydown", onOverlayKey);
|
|
185
|
+
if (window.openNativeSettings) {
|
|
186
|
+
window.openNativeSettings(pageKey);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
163
190
|
document.querySelectorAll(".cmd-item[data-href]").forEach((item) => {
|
|
164
191
|
item.addEventListener("click", (e) => {
|
|
165
192
|
e.preventDefault();
|
|
@@ -167,7 +194,6 @@ document.querySelectorAll(".cmd-item[data-href]").forEach((item) => {
|
|
|
167
194
|
|
|
168
195
|
if (href === "#chat") {
|
|
169
196
|
closeMenu();
|
|
170
|
-
// Close native settings if open
|
|
171
197
|
if (window.closeNativeSettings) {
|
|
172
198
|
window.closeNativeSettings();
|
|
173
199
|
}
|
|
@@ -175,41 +201,23 @@ document.querySelectorAll(".cmd-item[data-href]").forEach((item) => {
|
|
|
175
201
|
return;
|
|
176
202
|
}
|
|
177
203
|
|
|
178
|
-
//
|
|
204
|
+
// Internal pages rendered natively
|
|
179
205
|
if (href.includes("127.0.0.1:18789")) {
|
|
180
206
|
let pathname = "/";
|
|
181
207
|
try {
|
|
182
208
|
pathname = new URL(href).pathname;
|
|
183
209
|
} catch {}
|
|
184
210
|
|
|
185
|
-
const
|
|
186
|
-
if (
|
|
187
|
-
const pageName = PAGE_NAMES[pathname] ?? "
|
|
211
|
+
const pageKey = NATIVE_PAGES[pathname];
|
|
212
|
+
if (pageKey) {
|
|
213
|
+
const pageName = PAGE_NAMES[pathname] ?? "Page";
|
|
188
214
|
closeMenu();
|
|
189
|
-
|
|
190
|
-
getPageTitle().textContent = pageName.toUpperCase();
|
|
191
|
-
getPagePopoutBtn().style.display = "none";
|
|
192
|
-
getPageFrame().style.display = "none";
|
|
193
|
-
overlayIsOpen = true;
|
|
194
|
-
getPageOverlay().classList.add("open");
|
|
195
|
-
getPageOverlay().setAttribute("aria-hidden", "false");
|
|
196
|
-
document.addEventListener("keydown", onOverlayKey);
|
|
197
|
-
window.openNativeSettings(nativePage);
|
|
215
|
+
openNativePage(pageName, pageKey);
|
|
198
216
|
return;
|
|
199
217
|
}
|
|
200
|
-
|
|
201
|
-
// Other standard UI pages → open in the page overlay iframe
|
|
202
|
-
let pageName = item.querySelector(".cmd-item-name")?.textContent ?? "Page";
|
|
203
|
-
try {
|
|
204
|
-
const parsed = new URL(href);
|
|
205
|
-
pageName = PAGE_NAMES[parsed.pathname] ?? pageName;
|
|
206
|
-
} catch {}
|
|
207
|
-
closeMenu();
|
|
208
|
-
openPageOverlay(pageName, href);
|
|
209
|
-
return;
|
|
210
218
|
}
|
|
211
219
|
|
|
212
|
-
//
|
|
220
|
+
// External links open in new tab
|
|
213
221
|
window.open(href, "_blank", "noopener");
|
|
214
222
|
closeMenu();
|
|
215
223
|
});
|