@symerian/symi 2.7.3 → 2.7.5
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-K-s65jbB.js → audio-preflight-COaFw917.js} +4 -4
- package/dist/{audio-preflight-HILy3i0m.js → audio-preflight-DD18zIZd.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-CiOKaTN-.js → chrome-BxwUEWrH.js} +7 -7
- package/dist/{chrome-BYOhnxTr.js → chrome-CbA-qnhp.js} +7 -7
- package/dist/control-ui/css/style.css +0 -94
- package/dist/control-ui/js/history.js +33 -48
- package/dist/{deliver-C1HRkzPJ.js → deliver-C7NePF9Z.js} +1 -1
- package/dist/{deliver-D6IcPfbt.js → deliver-DtuY4Wgl.js} +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{image-CbyTdMd5.js → image-C3ugMkb5.js} +1 -1
- package/dist/{image-D7Fl08gG.js → image-lp19FlzF.js} +1 -1
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{pi-embedded-BzS693I1.js → pi-embedded-Ckr9dJ_g.js} +16 -16
- package/dist/{pi-embedded-helpers-GaCyI2oH.js → pi-embedded-helpers-BgRcgoC9.js} +4 -4
- package/dist/{pi-embedded-helpers-DXAoe1Bx.js → pi-embedded-helpers-Dij3O6ox.js} +4 -4
- package/dist/{pw-ai-pQoxTh-a.js → pw-ai--LDjnyuN.js} +1 -1
- package/dist/{pw-ai-CANiWpMA.js → pw-ai-BO5cSmwD.js} +1 -1
- package/dist/{runner-BS9gGL5i.js → runner-Ct0suQrd.js} +1 -1
- package/dist/{runner-B0AbN8wV.js → runner-cJ3m-bxK.js} +1 -1
- package/dist/{unified-runner-d5RKhmX1.js → unified-runner-CApgXtVC.js} +16 -16
- package/dist/{web-Db_-ahjX.js → web-C_jJEyUH.js} +6 -6
- package/dist/{web-D8KjxNeZ.js → web-CthDLVSz.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 +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
|
@@ -8,10 +8,10 @@ import "./auth-profiles-q3HjbboY.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-BgRcgoC9.js";
|
|
12
12
|
import "./config-B6OxYMgn.js";
|
|
13
13
|
import "./manifest-registry-yb7sAlu4.js";
|
|
14
|
-
import "./chrome-
|
|
14
|
+
import "./chrome-CbA-qnhp.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-C3ugMkb5.js";
|
|
31
31
|
import "./pi-model-discovery-CuZX_Q4t.js";
|
|
32
32
|
import "./gemini-auth-BkLFtndu.js";
|
|
33
33
|
import "./local-roots-Se92wAN5.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-cJ3m-bxK.js";
|
|
35
35
|
|
|
36
36
|
//#region src/media-understanding/audio-preflight.ts
|
|
37
37
|
/**
|
|
@@ -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-Dij3O6ox.js";
|
|
16
16
|
import "./config-BUTI-mUZ.js";
|
|
17
17
|
import "./manifest-registry-D-mTF1cj.js";
|
|
18
|
-
import "./chrome-
|
|
18
|
+
import "./chrome-BxwUEWrH.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-lp19FlzF.js";
|
|
29
29
|
import "./gemini-auth-ClVyOv9p.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-Ct0suQrd.js";
|
|
32
32
|
|
|
33
33
|
//#region src/media-understanding/audio-preflight.ts
|
|
34
34
|
/**
|
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-CApgXtVC.js";
|
|
8
8
|
import { s as resolveStorePath } from "../../paths-CbQV9WEg.js";
|
|
9
9
|
import "../../auth-profiles-q3HjbboY.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-BgRcgoC9.js";
|
|
14
14
|
import "../../config-B6OxYMgn.js";
|
|
15
15
|
import "../../manifest-registry-yb7sAlu4.js";
|
|
16
|
-
import "../../chrome-
|
|
16
|
+
import "../../chrome-CbA-qnhp.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-DI9Vhnmw.js";
|
|
32
32
|
import "../../send-BNnv8GtF.js";
|
|
33
33
|
import "../../tool-images-SqqWIT22.js";
|
|
34
|
-
import "../../deliver-
|
|
34
|
+
import "../../deliver-C7NePF9Z.js";
|
|
35
35
|
import "../../diagnostic-CQiU0O8b.js";
|
|
36
36
|
import "../../diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import "../../image-
|
|
37
|
+
import "../../image-C3ugMkb5.js";
|
|
38
38
|
import "../../pi-auth-json-CCaxCywz.js";
|
|
39
39
|
import { n as SILENT_REPLY_TOKEN } from "../../tokens-W0JzCJJM.js";
|
|
40
40
|
import "../../send-DaBsat3L.js";
|
|
@@ -51,7 +51,7 @@ import "../../local-roots-Se92wAN5.js";
|
|
|
51
51
|
import "../../ir-JAy_3A3B.js";
|
|
52
52
|
import "../../render-DwEu-aCr.js";
|
|
53
53
|
import "../../commands-registry-BSvi46KZ.js";
|
|
54
|
-
import "../../runner-
|
|
54
|
+
import "../../runner-cJ3m-bxK.js";
|
|
55
55
|
import "../../skill-commands-BiPrghRt.js";
|
|
56
56
|
import "../../fetch-Dnti0cFs.js";
|
|
57
57
|
import "../../channel-activity-D-kw83R0.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-CApgXtVC.js";
|
|
8
8
|
import "../../paths-CbQV9WEg.js";
|
|
9
9
|
import "../../auth-profiles-q3HjbboY.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-BgRcgoC9.js";
|
|
14
14
|
import "../../config-B6OxYMgn.js";
|
|
15
15
|
import "../../manifest-registry-yb7sAlu4.js";
|
|
16
|
-
import "../../chrome-
|
|
16
|
+
import "../../chrome-CbA-qnhp.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-DI9Vhnmw.js";
|
|
32
32
|
import "../../send-BNnv8GtF.js";
|
|
33
33
|
import "../../tool-images-SqqWIT22.js";
|
|
34
|
-
import "../../deliver-
|
|
34
|
+
import "../../deliver-C7NePF9Z.js";
|
|
35
35
|
import "../../diagnostic-CQiU0O8b.js";
|
|
36
36
|
import "../../diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import "../../image-
|
|
37
|
+
import "../../image-C3ugMkb5.js";
|
|
38
38
|
import "../../pi-auth-json-CCaxCywz.js";
|
|
39
39
|
import "../../tokens-W0JzCJJM.js";
|
|
40
40
|
import "../../send-DaBsat3L.js";
|
|
@@ -51,7 +51,7 @@ import "../../local-roots-Se92wAN5.js";
|
|
|
51
51
|
import "../../ir-JAy_3A3B.js";
|
|
52
52
|
import "../../render-DwEu-aCr.js";
|
|
53
53
|
import "../../commands-registry-BSvi46KZ.js";
|
|
54
|
-
import "../../runner-
|
|
54
|
+
import "../../runner-cJ3m-bxK.js";
|
|
55
55
|
import "../../skill-commands-BiPrghRt.js";
|
|
56
56
|
import "../../fetch-Dnti0cFs.js";
|
|
57
57
|
import "../../channel-activity-D-kw83R0.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1c8cc415c6f6b398d23552856205e0dd0ac89ed82b3a7162ec68f8a360ee7d05
|
|
@@ -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
|
});
|
|
@@ -5489,97 +5489,3 @@ body {
|
|
|
5489
5489
|
}
|
|
5490
5490
|
}
|
|
5491
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
|
-
}
|
|
5505
|
-
|
|
5506
|
-
/* "↺ Return to previous session" banner — top of drawer, one-click undo
|
|
5507
|
-
of the last Load action when a recent .reset.* archive exists. */
|
|
5508
|
-
.history-return-banner {
|
|
5509
|
-
display: flex;
|
|
5510
|
-
align-items: center;
|
|
5511
|
-
justify-content: space-between;
|
|
5512
|
-
gap: 12px;
|
|
5513
|
-
margin: 10px 12px;
|
|
5514
|
-
padding: 12px 14px;
|
|
5515
|
-
background: linear-gradient(
|
|
5516
|
-
135deg,
|
|
5517
|
-
rgba(0, 212, 255, 0.08) 0%,
|
|
5518
|
-
rgba(139, 92, 246, 0.08) 100%
|
|
5519
|
-
);
|
|
5520
|
-
border: 1px solid rgba(0, 212, 255, 0.25);
|
|
5521
|
-
border-radius: 8px;
|
|
5522
|
-
}
|
|
5523
|
-
|
|
5524
|
-
.history-return-label {
|
|
5525
|
-
display: flex;
|
|
5526
|
-
align-items: center;
|
|
5527
|
-
gap: 10px;
|
|
5528
|
-
flex: 1;
|
|
5529
|
-
min-width: 0;
|
|
5530
|
-
}
|
|
5531
|
-
|
|
5532
|
-
.history-return-arrow {
|
|
5533
|
-
font-size: 20px;
|
|
5534
|
-
color: var(--accent-cyan);
|
|
5535
|
-
line-height: 1;
|
|
5536
|
-
}
|
|
5537
|
-
|
|
5538
|
-
.history-return-text {
|
|
5539
|
-
flex: 1;
|
|
5540
|
-
min-width: 0;
|
|
5541
|
-
}
|
|
5542
|
-
|
|
5543
|
-
.history-return-title {
|
|
5544
|
-
font-family: var(--font-mono);
|
|
5545
|
-
font-size: 11px;
|
|
5546
|
-
font-weight: 700;
|
|
5547
|
-
letter-spacing: 0.08em;
|
|
5548
|
-
color: rgba(255, 255, 255, 0.95);
|
|
5549
|
-
text-transform: uppercase;
|
|
5550
|
-
}
|
|
5551
|
-
|
|
5552
|
-
.history-return-preview {
|
|
5553
|
-
font-size: 11px;
|
|
5554
|
-
color: rgba(255, 255, 255, 0.5);
|
|
5555
|
-
margin-top: 2px;
|
|
5556
|
-
white-space: nowrap;
|
|
5557
|
-
overflow: hidden;
|
|
5558
|
-
text-overflow: ellipsis;
|
|
5559
|
-
}
|
|
5560
|
-
|
|
5561
|
-
.history-return-btn {
|
|
5562
|
-
padding: 6px 14px;
|
|
5563
|
-
height: 30px;
|
|
5564
|
-
background: rgba(0, 212, 255, 0.15);
|
|
5565
|
-
border: 1px solid rgba(0, 212, 255, 0.35);
|
|
5566
|
-
border-radius: 6px;
|
|
5567
|
-
color: rgba(0, 212, 255, 1);
|
|
5568
|
-
font-family: var(--font-mono);
|
|
5569
|
-
font-size: 10px;
|
|
5570
|
-
font-weight: 700;
|
|
5571
|
-
letter-spacing: 0.08em;
|
|
5572
|
-
cursor: pointer;
|
|
5573
|
-
transition: all 0.15s;
|
|
5574
|
-
flex-shrink: 0;
|
|
5575
|
-
}
|
|
5576
|
-
|
|
5577
|
-
.history-return-btn:hover {
|
|
5578
|
-
background: rgba(0, 212, 255, 0.25);
|
|
5579
|
-
border-color: rgba(0, 212, 255, 0.55);
|
|
5580
|
-
}
|
|
5581
|
-
|
|
5582
|
-
.history-return-btn:disabled {
|
|
5583
|
-
opacity: 0.6;
|
|
5584
|
-
cursor: wait;
|
|
5585
|
-
}
|
|
@@ -75,25 +75,21 @@
|
|
|
75
75
|
const favourites = sessions.filter((s) => s.kind !== "current" && s.favorited);
|
|
76
76
|
const recent = sessions.filter((s) => s.kind !== "current" && !s.favorited);
|
|
77
77
|
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
// one-click
|
|
81
|
-
// and want to go back" flow.
|
|
78
|
+
// Newest `.reset.*` archive with content — this becomes the target of
|
|
79
|
+
// the Load Session button on the CURRENT row, giving the user a
|
|
80
|
+
// one-click path back to the session they just left.
|
|
82
81
|
const returnCandidate = findReturnCandidate(sessions);
|
|
83
82
|
|
|
84
83
|
drawerBody.innerHTML = "";
|
|
85
84
|
|
|
86
|
-
if (returnCandidate) {
|
|
87
|
-
drawerBody.appendChild(renderReturnBanner(returnCandidate));
|
|
88
|
-
}
|
|
89
85
|
if (current.length > 0) {
|
|
90
|
-
drawerBody.appendChild(renderSection("CURRENT", current));
|
|
86
|
+
drawerBody.appendChild(renderSection("CURRENT", current, returnCandidate));
|
|
91
87
|
}
|
|
92
88
|
if (favourites.length > 0) {
|
|
93
|
-
drawerBody.appendChild(renderSection("★ FAVOURITES", favourites));
|
|
89
|
+
drawerBody.appendChild(renderSection("★ FAVOURITES", favourites, null));
|
|
94
90
|
}
|
|
95
91
|
if (recent.length > 0) {
|
|
96
|
-
drawerBody.appendChild(renderSection("RECENT", recent));
|
|
92
|
+
drawerBody.appendChild(renderSection("RECENT", recent, null));
|
|
97
93
|
}
|
|
98
94
|
}
|
|
99
95
|
|
|
@@ -127,33 +123,7 @@
|
|
|
127
123
|
return candidates[0];
|
|
128
124
|
}
|
|
129
125
|
|
|
130
|
-
function
|
|
131
|
-
const banner = document.createElement("div");
|
|
132
|
-
banner.className = "history-return-banner";
|
|
133
|
-
const when = formatTimestamp(row.archivedAt ?? row.lastActivity);
|
|
134
|
-
const preview = row.preview
|
|
135
|
-
? escHtml(row.preview).slice(0, 60) + (row.preview.length > 60 ? "…" : "")
|
|
136
|
-
: "(no messages)";
|
|
137
|
-
banner.innerHTML = `
|
|
138
|
-
<div class="history-return-label">
|
|
139
|
-
<span class="history-return-arrow">↺</span>
|
|
140
|
-
<div class="history-return-text">
|
|
141
|
-
<div class="history-return-title">Return to previous session</div>
|
|
142
|
-
<div class="history-return-preview">${preview} · ${escHtml(when)}</div>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
<button class="history-return-btn" type="button">Load</button>
|
|
146
|
-
`;
|
|
147
|
-
const btn = banner.querySelector(".history-return-btn");
|
|
148
|
-
btn.addEventListener("click", async () => {
|
|
149
|
-
btn.disabled = true;
|
|
150
|
-
btn.textContent = "Loading…";
|
|
151
|
-
await loadRow(row);
|
|
152
|
-
});
|
|
153
|
-
return banner;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function renderSection(title, rows) {
|
|
126
|
+
function renderSection(title, rows, returnCandidate) {
|
|
157
127
|
const section = document.createElement("section");
|
|
158
128
|
section.className = "history-section";
|
|
159
129
|
const heading = document.createElement("div");
|
|
@@ -161,12 +131,15 @@
|
|
|
161
131
|
heading.textContent = title;
|
|
162
132
|
section.appendChild(heading);
|
|
163
133
|
for (const row of rows) {
|
|
164
|
-
|
|
134
|
+
// Pass the return candidate through only for the CURRENT row — it
|
|
135
|
+
// drives the row's Load Session button (which returns the user to
|
|
136
|
+
// their previous session). Other rows use their own row data.
|
|
137
|
+
section.appendChild(renderRow(row, row.kind === "current" ? returnCandidate : null));
|
|
165
138
|
}
|
|
166
139
|
return section;
|
|
167
140
|
}
|
|
168
141
|
|
|
169
|
-
function renderRow(row) {
|
|
142
|
+
function renderRow(row, returnCandidate) {
|
|
170
143
|
const item = document.createElement("div");
|
|
171
144
|
item.className = "history-session-item history-session-" + row.kind;
|
|
172
145
|
|
|
@@ -176,14 +149,21 @@
|
|
|
176
149
|
? escHtml(row.preview) + (row.preview.length >= 80 ? "…" : "")
|
|
177
150
|
: '<em style="opacity:0.5">No messages</em>';
|
|
178
151
|
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
152
|
+
// CURRENT row's Load Session button targets the most-recent .reset.*
|
|
153
|
+
// archive (returnCandidate). Non-current rows use their own file.
|
|
154
|
+
let footerHtml;
|
|
155
|
+
if (row.kind === "current") {
|
|
156
|
+
footerHtml = returnCandidate
|
|
157
|
+
? `<footer class="history-session-actions">
|
|
158
|
+
<button class="history-load-btn" data-return="1">Load Session</button>
|
|
159
|
+
</footer>`
|
|
160
|
+
: "";
|
|
161
|
+
} else {
|
|
162
|
+
footerHtml = `<footer class="history-session-actions">
|
|
163
|
+
${row.canLoad ? `<button class="history-load-btn">Load Session</button>` : ""}
|
|
164
|
+
${row.canDelete ? `<button class="history-delete-btn">Delete</button>` : ""}
|
|
165
|
+
</footer>`;
|
|
166
|
+
}
|
|
187
167
|
|
|
188
168
|
item.innerHTML = `
|
|
189
169
|
<header class="history-session-header">
|
|
@@ -226,7 +206,12 @@
|
|
|
226
206
|
const loadBtn = item.querySelector(".history-load-btn");
|
|
227
207
|
loadBtn?.addEventListener("click", async (e) => {
|
|
228
208
|
e.stopPropagation();
|
|
229
|
-
|
|
209
|
+
// On the CURRENT row, Load Session loads the most-recent archive
|
|
210
|
+
// (returnCandidate). On PAST/ARCHIVED rows, it loads that row.
|
|
211
|
+
const target = loadBtn.getAttribute("data-return") === "1" ? returnCandidate : row;
|
|
212
|
+
if (target) {
|
|
213
|
+
await loadRow(target);
|
|
214
|
+
}
|
|
230
215
|
});
|
|
231
216
|
|
|
232
217
|
const deleteBtn = item.querySelector(".history-delete-btn");
|
|
@@ -3,7 +3,7 @@ import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
|
|
|
3
3
|
import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
|
|
4
4
|
import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-DYq1AYOv.js";
|
|
5
5
|
import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
6
|
-
import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-
|
|
6
|
+
import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BgRcgoC9.js";
|
|
7
7
|
import { d as getChannelDock } from "./thinking-BprCy23Z.js";
|
|
8
8
|
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BzmbgY7s.js";
|
|
9
9
|
import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-W0JzCJJM.js";
|
|
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
|
|
|
5
5
|
import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
|
|
6
6
|
import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Cn6drXx2.js";
|
|
7
7
|
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-71oIavrF.js";
|
|
8
|
-
import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-
|
|
8
|
+
import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-Dij3O6ox.js";
|
|
9
9
|
import { d as getChannelDock } from "./thinking-W85Rb32m.js";
|
|
10
10
|
import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-DTMTDXwE.js";
|
|
11
11
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
|
package/dist/extensionAPI.js
CHANGED
|
@@ -7,13 +7,13 @@ import { a as resolveAgentIdentity } from "./reply-prefix-K_J_nfgx.js";
|
|
|
7
7
|
import "./github-copilot-token-BbsJ0Qbo.js";
|
|
8
8
|
import "./env-CQ_DQOwT.js";
|
|
9
9
|
import "./tokens-Cn6drXx2.js";
|
|
10
|
-
import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-
|
|
10
|
+
import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-Ckr9dJ_g.js";
|
|
11
11
|
import "./plugins-71oIavrF.js";
|
|
12
12
|
import "./accounts-DDEyGwby.js";
|
|
13
13
|
import "./bindings-DYVakimr.js";
|
|
14
14
|
import "./send-BzKHnf3b.js";
|
|
15
15
|
import "./send-RfIXG6-I.js";
|
|
16
|
-
import "./deliver-
|
|
16
|
+
import "./deliver-DtuY4Wgl.js";
|
|
17
17
|
import "./diagnostic-D0xmLpej.js";
|
|
18
18
|
import "./diagnostic-session-state-C1vRJs5w.js";
|
|
19
19
|
import "./accounts-8zZqL37v.js";
|
|
@@ -21,10 +21,10 @@ import "./send-B986asZ7.js";
|
|
|
21
21
|
import "./image-ops-ByaQt43P.js";
|
|
22
22
|
import "./pi-model-discovery-j5tVLINv.js";
|
|
23
23
|
import "./message-channel-BQINJQIT.js";
|
|
24
|
-
import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-
|
|
24
|
+
import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-Dij3O6ox.js";
|
|
25
25
|
import "./config-BUTI-mUZ.js";
|
|
26
26
|
import "./manifest-registry-D-mTF1cj.js";
|
|
27
|
-
import "./chrome-
|
|
27
|
+
import "./chrome-BxwUEWrH.js";
|
|
28
28
|
import "./skills-BNpGMnp-.js";
|
|
29
29
|
import "./redact-1NGYV_8p.js";
|
|
30
30
|
import "./errors-CPfngF0S.js";
|
|
@@ -34,7 +34,7 @@ import "./thinking-W85Rb32m.js";
|
|
|
34
34
|
import "./accounts-DImOt9jX.js";
|
|
35
35
|
import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DkMamAQ-.js";
|
|
36
36
|
import "./tool-images-ChC2CXaN.js";
|
|
37
|
-
import "./image-
|
|
37
|
+
import "./image-lp19FlzF.js";
|
|
38
38
|
import "./manager-CgLdpXXM.js";
|
|
39
39
|
import "./gemini-auth-ClVyOv9p.js";
|
|
40
40
|
import "./sqlite-BNh23mUR.js";
|
|
@@ -47,7 +47,7 @@ import "./ir-F0moAwIl.js";
|
|
|
47
47
|
import "./render-B1VqYyvo.js";
|
|
48
48
|
import "./commands-registry-DYoNKo_h.js";
|
|
49
49
|
import "./skill-commands-D8RiKDh0.js";
|
|
50
|
-
import "./runner-
|
|
50
|
+
import "./runner-Ct0suQrd.js";
|
|
51
51
|
import "./fetch-DtLn7YU3.js";
|
|
52
52
|
import "./channel-activity-D9q-fIPB.js";
|
|
53
53
|
import "./tables-COnZ169v.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { R as shortenHomeInString, k as isRecord } from "./registry-DYq1AYOv.js";
|
|
3
3
|
import { L as getApiKeyForModel, M as resolveImplicitBedrockProvider, N as resolveImplicitCopilotProvider, P as resolveImplicitProviders, W as normalizeSecretInput, et as resolveSymiAgentDir, j as normalizeProviders, z as requireApiKey } from "./auth-profiles-q3HjbboY.js";
|
|
4
|
-
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-
|
|
4
|
+
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-BgRcgoC9.js";
|
|
5
5
|
import { n as loadConfig } from "./config-B6OxYMgn.js";
|
|
6
6
|
import { n as redactToolDetail } from "./redact-BDMXB06K.js";
|
|
7
7
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { D as isRecord, I as shortenHomeInString } from "./registry-BhoUuugi.js";
|
|
3
3
|
import { G as resolveSymiAgentDir, S as getApiKeyForModel, X as normalizeSecretInput, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-B8QKPmTL.js";
|
|
4
4
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
|
|
5
|
-
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-
|
|
5
|
+
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-Dij3O6ox.js";
|
|
6
6
|
import { n as loadConfig } from "./config-BUTI-mUZ.js";
|
|
7
7
|
import { n as redactToolDetail } from "./redact-1NGYV_8p.js";
|
|
8
8
|
import path from "node:path";
|
|
@@ -3,16 +3,16 @@ import "./registry-DYq1AYOv.js";
|
|
|
3
3
|
import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CpEJ0B88.js";
|
|
4
4
|
import "./subsystem-BjyjJF-d.js";
|
|
5
5
|
import "./workspace-DscDraUb.js";
|
|
6
|
-
import { t as runAgentTurn } from "./unified-runner-
|
|
6
|
+
import { t as runAgentTurn } from "./unified-runner-CApgXtVC.js";
|
|
7
7
|
import "./paths-CbQV9WEg.js";
|
|
8
8
|
import "./auth-profiles-q3HjbboY.js";
|
|
9
9
|
import "./env-BDXYbTKj.js";
|
|
10
10
|
import "./github-copilot-token-cCYzSU9h.js";
|
|
11
11
|
import "./boolean-CE7i9tBR.js";
|
|
12
|
-
import "./pi-embedded-helpers-
|
|
12
|
+
import "./pi-embedded-helpers-BgRcgoC9.js";
|
|
13
13
|
import "./config-B6OxYMgn.js";
|
|
14
14
|
import "./manifest-registry-yb7sAlu4.js";
|
|
15
|
-
import "./chrome-
|
|
15
|
+
import "./chrome-CbA-qnhp.js";
|
|
16
16
|
import "./frontmatter-CTR5f_Ez.js";
|
|
17
17
|
import "./skills-Bs0AW1g3.js";
|
|
18
18
|
import "./redact-BDMXB06K.js";
|
|
@@ -30,10 +30,10 @@ import "./bindings-BsHoBLIE.js";
|
|
|
30
30
|
import "./send-DI9Vhnmw.js";
|
|
31
31
|
import "./send-BNnv8GtF.js";
|
|
32
32
|
import "./tool-images-SqqWIT22.js";
|
|
33
|
-
import "./deliver-
|
|
33
|
+
import "./deliver-C7NePF9Z.js";
|
|
34
34
|
import "./diagnostic-CQiU0O8b.js";
|
|
35
35
|
import "./diagnostic-session-state-Zw87xFym.js";
|
|
36
|
-
import "./image-
|
|
36
|
+
import "./image-C3ugMkb5.js";
|
|
37
37
|
import "./pi-auth-json-CCaxCywz.js";
|
|
38
38
|
import "./tokens-W0JzCJJM.js";
|
|
39
39
|
import "./send-DaBsat3L.js";
|
|
@@ -50,7 +50,7 @@ import "./local-roots-Se92wAN5.js";
|
|
|
50
50
|
import "./ir-JAy_3A3B.js";
|
|
51
51
|
import "./render-DwEu-aCr.js";
|
|
52
52
|
import "./commands-registry-BSvi46KZ.js";
|
|
53
|
-
import "./runner-
|
|
53
|
+
import "./runner-cJ3m-bxK.js";
|
|
54
54
|
import "./skill-commands-BiPrghRt.js";
|
|
55
55
|
import "./fetch-Dnti0cFs.js";
|
|
56
56
|
import "./channel-activity-D-kw83R0.js";
|