@symerian/symi 2.6.35 → 2.6.36
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/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
- package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-DHTaS5U1.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
- package/dist/{chrome-DkaXoP36.js → chrome-DYZwl5Gv.js} +7 -7
- package/dist/control-ui/css/style.css +81 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/control-ui/js/menu.js +38 -30
- package/dist/control-ui/js/settings.js +166 -2
- package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
- package/dist/{deliver-C46-vyqg.js → deliver-dODxSv3b.js} +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{image-CuzFLQWC.js → image-CXu8W39c.js} +1 -1
- package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
- package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-pubKo8HQ.js} +4 -4
- package/dist/{pi-embedded-CziuxRtW.js → pi-embedded-liyRigX2.js} +16 -16
- package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
- package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
- package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
- package/dist/plugin-sdk/{active-listener-BXYeALs0.js → active-listener-bEk__wbB.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
- package/dist/plugin-sdk/{api-key-rotation-D_sMvI5W.js → api-key-rotation-CVBMpnPc.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-VpItkiy3.js → audio-preflight-DoQQKlxa.js} +24 -24
- package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
- package/dist/plugin-sdk/{channel-web-D4P9MkFu.js → channel-web-CP1OgJFj.js} +22 -22
- package/dist/plugin-sdk/{chrome-B7RdxmJ0.js → chrome-C7c_0I5M.js} +3 -3
- package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
- package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-COIaslGl.js → commands-registry-CQFbmUMs.js} +4 -4
- package/dist/plugin-sdk/{config-KlTNfkFF.js → config-DDkdiUOR.js} +9 -9
- package/dist/plugin-sdk/{deliver-BZ99UKQq.js → deliver-BZ6iNLl7.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-05pm5Rxi.js → diagnostic-mFf4i4G9.js} +1 -1
- package/dist/plugin-sdk/{image-CLOPx7yW.js → image-BOYy0Ump.js} +4 -4
- package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
- package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
- package/dist/plugin-sdk/{login-DQMXuxOk.js → login-Bh3DZPam.js} +7 -7
- package/dist/plugin-sdk/{login-qr-BjVZSoCi.js → login-qr-DbR7odSr.js} +9 -9
- package/dist/plugin-sdk/{manager-CBSBFuFz.js → manager-DckktAQ3.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-B3ugY9-f.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
- package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
- package/dist/plugin-sdk/{model-selection-CsbEfrS0.js → model-selection-OpU8HN50.js} +4 -4
- package/dist/plugin-sdk/{outbound-attachment-CnslKL38.js → outbound-attachment-DnVQfTG2.js} +2 -2
- package/dist/plugin-sdk/{outbound-B0e8KdaR.js → outbound-rF6G8Xpr.js} +7 -7
- package/dist/plugin-sdk/{pi-auth-json-qWi7ZIYV.js → pi-auth-json-CJk8t14T.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-CW630epe.js → pi-embedded-helpers-BveUP4hk.js} +17 -17
- package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-CnbPIPY9.js → pw-ai-DjGUsee-.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-CH0XbIHf.js → qmd-manager-mjKcdwVr.js} +4 -4
- package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
- package/dist/plugin-sdk/{replies-LLcQL3w6.js → replies-fI39rPGa.js} +3 -3
- package/dist/plugin-sdk/{reply-BVs4oalQ.js → reply-CBkEQFTX.js} +78 -78
- package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
- package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
- package/dist/plugin-sdk/{runner-CGBT7tgF.js → runner-BVqnEfNe.js} +9 -9
- package/dist/plugin-sdk/{send-C5h_YxNb.js → send-BHbXh8Ly.js} +7 -7
- package/dist/plugin-sdk/{send-pYqe432l.js → send-BMfJIhCk.js} +6 -6
- package/dist/plugin-sdk/{send-B2CEnVLL.js → send-BtANzsAo.js} +6 -6
- package/dist/plugin-sdk/{send-CjOBB3Vo.js → send-Bxdu6ZZy.js} +10 -10
- package/dist/plugin-sdk/{send-CRsR8-vO.js → send-D6LMZJ_h.js} +10 -10
- package/dist/plugin-sdk/{session-BsOrxiMj.js → session-kI0tzViQ.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-ff_01_r3.js → skill-commands-DCNXVERE.js} +5 -5
- package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-B1GeRYlu.js} +7 -7
- package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
- package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
- package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
- package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
- package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
- package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
- package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
- package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-at_K42K7.js → tool-loop-detection-DU5sTIKg.js} +2 -2
- package/dist/plugin-sdk/web-CId35Am_.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-DfseosPO.js → whatsapp-actions-CcBzDuL-.js} +21 -21
- package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
- package/dist/{pw-ai-m0mj2KWK.js → pw-ai-B5asscAD.js} +1 -1
- package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
- package/dist/{runner-CU9l0uJh.js → runner-WAG0M5s9.js} +1 -1
- package/dist/{unified-runner-Di5Ca6mo.js → unified-runner-Dy2eq7ZO.js} +16 -16
- package/dist/{web-BTiGD3po.js → web-8YLJpHFc.js} +6 -6
- package/dist/{web-B3oyGSBx.js → web-CP9nUIj0.js} +6 -6
- 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 +6 -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 +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -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 +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/plugin-sdk/web-DiQTcviv.js +0 -65
|
@@ -12,10 +12,10 @@ import "./accounts-8zZqL37v.js";
|
|
|
12
12
|
import "./image-ops-ByaQt43P.js";
|
|
13
13
|
import "./pi-model-discovery-j5tVLINv.js";
|
|
14
14
|
import "./message-channel-BQINJQIT.js";
|
|
15
|
-
import "./pi-embedded-helpers-
|
|
15
|
+
import "./pi-embedded-helpers-B8kqLWns.js";
|
|
16
16
|
import "./config-BmV60pPT.js";
|
|
17
17
|
import "./manifest-registry-D-mTF1cj.js";
|
|
18
|
-
import "./chrome-
|
|
18
|
+
import "./chrome-D2SKJnR7.js";
|
|
19
19
|
import "./skills-BNpGMnp-.js";
|
|
20
20
|
import "./redact-1NGYV_8p.js";
|
|
21
21
|
import "./errors-CPfngF0S.js";
|
|
@@ -25,10 +25,10 @@ import "./thinking-W85Rb32m.js";
|
|
|
25
25
|
import "./accounts-DImOt9jX.js";
|
|
26
26
|
import "./paths-DkMamAQ-.js";
|
|
27
27
|
import "./tool-images-ChC2CXaN.js";
|
|
28
|
-
import "./image-
|
|
28
|
+
import "./image-DcpMiprB.js";
|
|
29
29
|
import "./gemini-auth-CSlZZ1Pw.js";
|
|
30
30
|
import "./local-roots-CC8jiKDk.js";
|
|
31
|
-
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-
|
|
31
|
+
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-BcQ0sF9T.js";
|
|
32
32
|
|
|
33
33
|
//#region src/media-understanding/audio-preflight.ts
|
|
34
34
|
/**
|
|
@@ -8,10 +8,10 @@ import "./auth-profiles-DdK1Hxaa.js";
|
|
|
8
8
|
import "./env-BDXYbTKj.js";
|
|
9
9
|
import "./github-copilot-token-cCYzSU9h.js";
|
|
10
10
|
import "./boolean-CE7i9tBR.js";
|
|
11
|
-
import "./pi-embedded-helpers-
|
|
11
|
+
import "./pi-embedded-helpers-pubKo8HQ.js";
|
|
12
12
|
import "./config-5SdHIcHU.js";
|
|
13
13
|
import "./manifest-registry-yb7sAlu4.js";
|
|
14
|
-
import "./chrome-
|
|
14
|
+
import "./chrome-DYZwl5Gv.js";
|
|
15
15
|
import "./frontmatter-CTR5f_Ez.js";
|
|
16
16
|
import "./skills-Bs0AW1g3.js";
|
|
17
17
|
import "./redact-BDMXB06K.js";
|
|
@@ -27,11 +27,11 @@ import "./accounts-3dCrO3oZ.js";
|
|
|
27
27
|
import "./accounts-BuZxOb3B.js";
|
|
28
28
|
import "./bindings-BsHoBLIE.js";
|
|
29
29
|
import "./tool-images-SqqWIT22.js";
|
|
30
|
-
import "./image-
|
|
30
|
+
import "./image-CXu8W39c.js";
|
|
31
31
|
import "./pi-model-discovery-Bv5YDJc8.js";
|
|
32
32
|
import "./gemini-auth-Dy12ZAH3.js";
|
|
33
33
|
import "./local-roots-DhZz0Ybs.js";
|
|
34
|
-
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-
|
|
34
|
+
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-WAG0M5s9.js";
|
|
35
35
|
|
|
36
36
|
//#region src/media-understanding/audio-preflight.ts
|
|
37
37
|
/**
|
package/dist/build-info.json
CHANGED
|
@@ -4,16 +4,16 @@ import { b as isGatewayStartupEvent } from "../../registry-DYq1AYOv.js";
|
|
|
4
4
|
import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "../../agent-scope-CpEJ0B88.js";
|
|
5
5
|
import { r as defaultRuntime, t as createSubsystemLogger } from "../../subsystem-BjyjJF-d.js";
|
|
6
6
|
import "../../workspace-DscDraUb.js";
|
|
7
|
-
import { a as createDefaultDeps, i as agentCommand } from "../../unified-runner-
|
|
7
|
+
import { a as createDefaultDeps, i as agentCommand } from "../../unified-runner-Dy2eq7ZO.js";
|
|
8
8
|
import { s as resolveStorePath } from "../../paths-CbQV9WEg.js";
|
|
9
9
|
import "../../auth-profiles-DdK1Hxaa.js";
|
|
10
10
|
import "../../env-BDXYbTKj.js";
|
|
11
11
|
import "../../github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import "../../boolean-CE7i9tBR.js";
|
|
13
|
-
import { H as loadSessionStore, K as updateSessionStore, xt as resolveMainSessionKey, yt as resolveAgentMainSessionKey } from "../../pi-embedded-helpers-
|
|
13
|
+
import { H as loadSessionStore, K as updateSessionStore, xt as resolveMainSessionKey, yt as resolveAgentMainSessionKey } from "../../pi-embedded-helpers-pubKo8HQ.js";
|
|
14
14
|
import "../../config-5SdHIcHU.js";
|
|
15
15
|
import "../../manifest-registry-yb7sAlu4.js";
|
|
16
|
-
import "../../chrome-
|
|
16
|
+
import "../../chrome-DYZwl5Gv.js";
|
|
17
17
|
import "../../frontmatter-CTR5f_Ez.js";
|
|
18
18
|
import "../../skills-Bs0AW1g3.js";
|
|
19
19
|
import "../../redact-BDMXB06K.js";
|
|
@@ -31,10 +31,10 @@ import "../../bindings-BsHoBLIE.js";
|
|
|
31
31
|
import "../../send-CVMyYPQw.js";
|
|
32
32
|
import "../../send-CvhXrdgS.js";
|
|
33
33
|
import "../../tool-images-SqqWIT22.js";
|
|
34
|
-
import "../../deliver-
|
|
34
|
+
import "../../deliver-dODxSv3b.js";
|
|
35
35
|
import "../../diagnostic-rPhsBoZz.js";
|
|
36
36
|
import "../../diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import "../../image-
|
|
37
|
+
import "../../image-CXu8W39c.js";
|
|
38
38
|
import { n as SILENT_REPLY_TOKEN } from "../../tokens-Bux9Y_xD.js";
|
|
39
39
|
import "../../send-DYj_o4_F.js";
|
|
40
40
|
import "../../pi-model-discovery-Bv5YDJc8.js";
|
|
@@ -50,7 +50,7 @@ import "../../local-roots-DhZz0Ybs.js";
|
|
|
50
50
|
import "../../ir-CTiz95Vb.js";
|
|
51
51
|
import "../../render-CDCvpfhh.js";
|
|
52
52
|
import "../../commands-registry-Bfc7Uz0o.js";
|
|
53
|
-
import "../../runner-
|
|
53
|
+
import "../../runner-WAG0M5s9.js";
|
|
54
54
|
import "../../skill-commands-DcVwOafC.js";
|
|
55
55
|
import "../../fetch-Bso4i15F.js";
|
|
56
56
|
import "../../channel-activity-B6G1jnQT.js";
|
|
@@ -4,16 +4,16 @@ import "../../registry-DYq1AYOv.js";
|
|
|
4
4
|
import { s as resolveAgentWorkspaceDir } from "../../agent-scope-CpEJ0B88.js";
|
|
5
5
|
import { t as createSubsystemLogger } from "../../subsystem-BjyjJF-d.js";
|
|
6
6
|
import "../../workspace-DscDraUb.js";
|
|
7
|
-
import "../../unified-runner-
|
|
7
|
+
import "../../unified-runner-Dy2eq7ZO.js";
|
|
8
8
|
import "../../paths-CbQV9WEg.js";
|
|
9
9
|
import "../../auth-profiles-DdK1Hxaa.js";
|
|
10
10
|
import "../../env-BDXYbTKj.js";
|
|
11
11
|
import "../../github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import "../../boolean-CE7i9tBR.js";
|
|
13
|
-
import { ct as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-
|
|
13
|
+
import { ct as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-pubKo8HQ.js";
|
|
14
14
|
import "../../config-5SdHIcHU.js";
|
|
15
15
|
import "../../manifest-registry-yb7sAlu4.js";
|
|
16
|
-
import "../../chrome-
|
|
16
|
+
import "../../chrome-DYZwl5Gv.js";
|
|
17
17
|
import "../../frontmatter-CTR5f_Ez.js";
|
|
18
18
|
import "../../skills-Bs0AW1g3.js";
|
|
19
19
|
import "../../redact-BDMXB06K.js";
|
|
@@ -31,10 +31,10 @@ import "../../bindings-BsHoBLIE.js";
|
|
|
31
31
|
import "../../send-CVMyYPQw.js";
|
|
32
32
|
import "../../send-CvhXrdgS.js";
|
|
33
33
|
import "../../tool-images-SqqWIT22.js";
|
|
34
|
-
import "../../deliver-
|
|
34
|
+
import "../../deliver-dODxSv3b.js";
|
|
35
35
|
import "../../diagnostic-rPhsBoZz.js";
|
|
36
36
|
import "../../diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import "../../image-
|
|
37
|
+
import "../../image-CXu8W39c.js";
|
|
38
38
|
import "../../tokens-Bux9Y_xD.js";
|
|
39
39
|
import "../../send-DYj_o4_F.js";
|
|
40
40
|
import "../../pi-model-discovery-Bv5YDJc8.js";
|
|
@@ -50,7 +50,7 @@ import "../../local-roots-DhZz0Ybs.js";
|
|
|
50
50
|
import "../../ir-CTiz95Vb.js";
|
|
51
51
|
import "../../render-CDCvpfhh.js";
|
|
52
52
|
import "../../commands-registry-Bfc7Uz0o.js";
|
|
53
|
-
import "../../runner-
|
|
53
|
+
import "../../runner-WAG0M5s9.js";
|
|
54
54
|
import "../../skill-commands-DcVwOafC.js";
|
|
55
55
|
import "../../fetch-Bso4i15F.js";
|
|
56
56
|
import "../../channel-activity-B6G1jnQT.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
069f2e12db644f2dbd8ce402192d6a6a79eca04d1bc02e3ff08a8fea377f2458
|
|
@@ -10,7 +10,7 @@ import fs$1 from "node:fs/promises";
|
|
|
10
10
|
import { execFileSync, spawn } from "node:child_process";
|
|
11
11
|
import net from "node:net";
|
|
12
12
|
import { createServer } from "node:http";
|
|
13
|
-
import WebSocket
|
|
13
|
+
import WebSocket, { WebSocketServer } from "ws";
|
|
14
14
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
15
15
|
|
|
16
16
|
//#region src/browser/constants.ts
|
|
@@ -178,7 +178,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
178
178
|
let nextExtensionId = 1;
|
|
179
179
|
const sendToExtension = async (payload) => {
|
|
180
180
|
const ws = extensionWs;
|
|
181
|
-
if (!ws || ws.readyState !== WebSocket
|
|
181
|
+
if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
|
|
182
182
|
ws.send(JSON.stringify(payload));
|
|
183
183
|
return await new Promise((resolve, reject) => {
|
|
184
184
|
const timer = setTimeout(() => {
|
|
@@ -195,12 +195,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
195
195
|
const broadcastToCdpClients = (evt) => {
|
|
196
196
|
const msg = JSON.stringify(evt);
|
|
197
197
|
for (const ws of cdpClients) {
|
|
198
|
-
if (ws.readyState !== WebSocket
|
|
198
|
+
if (ws.readyState !== WebSocket.OPEN) continue;
|
|
199
199
|
ws.send(msg);
|
|
200
200
|
}
|
|
201
201
|
};
|
|
202
202
|
const sendResponseToCdp = (ws, res) => {
|
|
203
|
-
if (ws.readyState !== WebSocket
|
|
203
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
204
204
|
ws.send(JSON.stringify(res));
|
|
205
205
|
};
|
|
206
206
|
const ensureTargetEventsForClient = (ws, mode) => {
|
|
@@ -425,7 +425,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
425
425
|
wssExtension.on("connection", (ws) => {
|
|
426
426
|
extensionWs = ws;
|
|
427
427
|
const ping = setInterval(() => {
|
|
428
|
-
if (ws.readyState !== WebSocket
|
|
428
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
429
429
|
ws.send(JSON.stringify({ method: "ping" }));
|
|
430
430
|
}, 5e3);
|
|
431
431
|
ws.on("message", (data) => {
|
|
@@ -743,7 +743,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
|
|
|
743
743
|
}
|
|
744
744
|
async function withCdpSocket(wsUrl, fn, opts) {
|
|
745
745
|
const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
|
|
746
|
-
const ws = new WebSocket
|
|
746
|
+
const ws = new WebSocket(wsUrl, {
|
|
747
747
|
handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
|
|
748
748
|
...Object.keys(headers).length ? { headers } : {}
|
|
749
749
|
});
|
|
@@ -1637,7 +1637,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
|
|
|
1637
1637
|
async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
|
|
1638
1638
|
return await new Promise((resolve) => {
|
|
1639
1639
|
const headers = getHeadersWithAuth(wsUrl);
|
|
1640
|
-
const ws = new WebSocket
|
|
1640
|
+
const ws = new WebSocket(wsUrl, {
|
|
1641
1641
|
handshakeTimeout: timeoutMs,
|
|
1642
1642
|
...Object.keys(headers).length ? { headers } : {}
|
|
1643
1643
|
});
|
|
@@ -10,7 +10,7 @@ import fs$1 from "node:fs/promises";
|
|
|
10
10
|
import { execFileSync, spawn } from "node:child_process";
|
|
11
11
|
import net from "node:net";
|
|
12
12
|
import { createServer } from "node:http";
|
|
13
|
-
import WebSocket
|
|
13
|
+
import WebSocket, { WebSocketServer } from "ws";
|
|
14
14
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
15
15
|
|
|
16
16
|
//#region src/browser/constants.ts
|
|
@@ -178,7 +178,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
178
178
|
let nextExtensionId = 1;
|
|
179
179
|
const sendToExtension = async (payload) => {
|
|
180
180
|
const ws = extensionWs;
|
|
181
|
-
if (!ws || ws.readyState !== WebSocket
|
|
181
|
+
if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
|
|
182
182
|
ws.send(JSON.stringify(payload));
|
|
183
183
|
return await new Promise((resolve, reject) => {
|
|
184
184
|
const timer = setTimeout(() => {
|
|
@@ -195,12 +195,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
195
195
|
const broadcastToCdpClients = (evt) => {
|
|
196
196
|
const msg = JSON.stringify(evt);
|
|
197
197
|
for (const ws of cdpClients) {
|
|
198
|
-
if (ws.readyState !== WebSocket
|
|
198
|
+
if (ws.readyState !== WebSocket.OPEN) continue;
|
|
199
199
|
ws.send(msg);
|
|
200
200
|
}
|
|
201
201
|
};
|
|
202
202
|
const sendResponseToCdp = (ws, res) => {
|
|
203
|
-
if (ws.readyState !== WebSocket
|
|
203
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
204
204
|
ws.send(JSON.stringify(res));
|
|
205
205
|
};
|
|
206
206
|
const ensureTargetEventsForClient = (ws, mode) => {
|
|
@@ -425,7 +425,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
425
425
|
wssExtension.on("connection", (ws) => {
|
|
426
426
|
extensionWs = ws;
|
|
427
427
|
const ping = setInterval(() => {
|
|
428
|
-
if (ws.readyState !== WebSocket
|
|
428
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
429
429
|
ws.send(JSON.stringify({ method: "ping" }));
|
|
430
430
|
}, 5e3);
|
|
431
431
|
ws.on("message", (data) => {
|
|
@@ -743,7 +743,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
|
|
|
743
743
|
}
|
|
744
744
|
async function withCdpSocket(wsUrl, fn, opts) {
|
|
745
745
|
const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
|
|
746
|
-
const ws = new WebSocket
|
|
746
|
+
const ws = new WebSocket(wsUrl, {
|
|
747
747
|
handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
|
|
748
748
|
...Object.keys(headers).length ? { headers } : {}
|
|
749
749
|
});
|
|
@@ -1637,7 +1637,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
|
|
|
1637
1637
|
async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
|
|
1638
1638
|
return await new Promise((resolve) => {
|
|
1639
1639
|
const headers = getHeadersWithAuth(wsUrl);
|
|
1640
|
-
const ws = new WebSocket
|
|
1640
|
+
const ws = new WebSocket(wsUrl, {
|
|
1641
1641
|
handshakeTimeout: timeoutMs,
|
|
1642
1642
|
...Object.keys(headers).length ? { headers } : {}
|
|
1643
1643
|
});
|
|
@@ -3448,6 +3448,87 @@ body {
|
|
|
3448
3448
|
color: rgba(255, 255, 255, 0.3);
|
|
3449
3449
|
}
|
|
3450
3450
|
|
|
3451
|
+
/* ══════════════════════════════════════════════════════════════════════
|
|
3452
|
+
DATA CARDS — used by generic RPC panels (Overview, Channels, etc.)
|
|
3453
|
+
══════════════════════════════════════════════════════════════════════ */
|
|
3454
|
+
|
|
3455
|
+
.data-card {
|
|
3456
|
+
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
3457
|
+
border-radius: 8px;
|
|
3458
|
+
margin-bottom: 8px;
|
|
3459
|
+
overflow: hidden;
|
|
3460
|
+
transition: border-color 0.15s;
|
|
3461
|
+
}
|
|
3462
|
+
.data-card:hover {
|
|
3463
|
+
border-color: rgba(255, 255, 255, 0.1);
|
|
3464
|
+
}
|
|
3465
|
+
|
|
3466
|
+
.data-card-header {
|
|
3467
|
+
display: flex;
|
|
3468
|
+
align-items: center;
|
|
3469
|
+
gap: 8px;
|
|
3470
|
+
padding: 10px 14px;
|
|
3471
|
+
background: rgba(255, 255, 255, 0.02);
|
|
3472
|
+
font-family: var(--font-mono);
|
|
3473
|
+
font-size: 12px;
|
|
3474
|
+
font-weight: 600;
|
|
3475
|
+
color: var(--accent-cyan);
|
|
3476
|
+
letter-spacing: 0.03em;
|
|
3477
|
+
}
|
|
3478
|
+
|
|
3479
|
+
.data-card-badge {
|
|
3480
|
+
font-size: 9px;
|
|
3481
|
+
padding: 1px 6px;
|
|
3482
|
+
border-radius: 4px;
|
|
3483
|
+
background: rgba(0, 212, 255, 0.1);
|
|
3484
|
+
border: 1px solid rgba(0, 212, 255, 0.2);
|
|
3485
|
+
color: rgba(0, 212, 255, 0.7);
|
|
3486
|
+
letter-spacing: 0.06em;
|
|
3487
|
+
}
|
|
3488
|
+
|
|
3489
|
+
.data-card-row {
|
|
3490
|
+
display: flex;
|
|
3491
|
+
align-items: baseline;
|
|
3492
|
+
gap: 12px;
|
|
3493
|
+
padding: 5px 14px;
|
|
3494
|
+
font-family: var(--font-mono);
|
|
3495
|
+
font-size: 11px;
|
|
3496
|
+
line-height: 1.6;
|
|
3497
|
+
border-top: 1px solid rgba(255, 255, 255, 0.03);
|
|
3498
|
+
}
|
|
3499
|
+
.data-card-row:first-child {
|
|
3500
|
+
border-top: none;
|
|
3501
|
+
}
|
|
3502
|
+
|
|
3503
|
+
.data-card-label {
|
|
3504
|
+
color: rgba(255, 255, 255, 0.5);
|
|
3505
|
+
flex-shrink: 0;
|
|
3506
|
+
min-width: 100px;
|
|
3507
|
+
max-width: 200px;
|
|
3508
|
+
overflow: hidden;
|
|
3509
|
+
text-overflow: ellipsis;
|
|
3510
|
+
white-space: nowrap;
|
|
3511
|
+
}
|
|
3512
|
+
|
|
3513
|
+
.data-card-value {
|
|
3514
|
+
color: rgba(255, 255, 255, 0.75);
|
|
3515
|
+
word-break: break-all;
|
|
3516
|
+
flex: 1;
|
|
3517
|
+
min-width: 0;
|
|
3518
|
+
}
|
|
3519
|
+
|
|
3520
|
+
.data-card-inline {
|
|
3521
|
+
display: flex;
|
|
3522
|
+
align-items: baseline;
|
|
3523
|
+
gap: 12px;
|
|
3524
|
+
padding: 8px 14px;
|
|
3525
|
+
font-family: var(--font-mono);
|
|
3526
|
+
font-size: 11px;
|
|
3527
|
+
border: 1px solid rgba(255, 255, 255, 0.04);
|
|
3528
|
+
border-radius: 6px;
|
|
3529
|
+
margin-bottom: 4px;
|
|
3530
|
+
}
|
|
3531
|
+
|
|
3451
3532
|
/* ══════════════════════════════════════════════════════════════════════
|
|
3452
3533
|
DEBUG PANEL
|
|
3453
3534
|
══════════════════════════════════════════════════════════════════════ */
|
|
@@ -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
|
|
@@ -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
|
});
|