@symerian/symi 3.5.28 → 3.5.30
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/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-DNssqQJs.js → chrome-3jl2ulOE.js} +7 -7
- package/dist/control-ui/css/style.css +58 -24
- package/dist/{deliver-q23ar_Pm.js → deliver-f3cIWxXT.js} +4 -4
- package/dist/extensionAPI.js +4 -4
- package/dist/{manager-NDn8AFhr.js → manager-DogrTmEo.js} +1 -1
- package/dist/{pi-embedded-V-5MAZNb.js → pi-embedded-DdoLFoXg.js} +10 -10
- package/dist/{pw-ai-v__CyAlM.js → pw-ai-DOAsQ5NX.js} +1 -1
- package/dist/{synthesis-BfVWACNx.js → synthesis-Cggd0_wq.js} +4 -4
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/package.json +1 -1
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
00290700f4d365ddae900c64b6bf347009972f71c748b3b22b5075832f35b846
|
|
@@ -9,7 +9,7 @@ import fs$1 from "node:fs/promises";
|
|
|
9
9
|
import { execFileSync, spawn } from "node:child_process";
|
|
10
10
|
import net from "node:net";
|
|
11
11
|
import { createServer } from "node:http";
|
|
12
|
-
import WebSocket
|
|
12
|
+
import WebSocket, { WebSocketServer } from "ws";
|
|
13
13
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
14
14
|
|
|
15
15
|
//#region src/browser/constants.ts
|
|
@@ -177,7 +177,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
177
177
|
let nextExtensionId = 1;
|
|
178
178
|
const sendToExtension = async (payload) => {
|
|
179
179
|
const ws = extensionWs;
|
|
180
|
-
if (!ws || ws.readyState !== WebSocket
|
|
180
|
+
if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
|
|
181
181
|
ws.send(JSON.stringify(payload));
|
|
182
182
|
return await new Promise((resolve, reject) => {
|
|
183
183
|
const timer = setTimeout(() => {
|
|
@@ -194,12 +194,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
194
194
|
const broadcastToCdpClients = (evt) => {
|
|
195
195
|
const msg = JSON.stringify(evt);
|
|
196
196
|
for (const ws of cdpClients) {
|
|
197
|
-
if (ws.readyState !== WebSocket
|
|
197
|
+
if (ws.readyState !== WebSocket.OPEN) continue;
|
|
198
198
|
ws.send(msg);
|
|
199
199
|
}
|
|
200
200
|
};
|
|
201
201
|
const sendResponseToCdp = (ws, res) => {
|
|
202
|
-
if (ws.readyState !== WebSocket
|
|
202
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
203
203
|
ws.send(JSON.stringify(res));
|
|
204
204
|
};
|
|
205
205
|
const ensureTargetEventsForClient = (ws, mode) => {
|
|
@@ -424,7 +424,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
424
424
|
wssExtension.on("connection", (ws) => {
|
|
425
425
|
extensionWs = ws;
|
|
426
426
|
const ping = setInterval(() => {
|
|
427
|
-
if (ws.readyState !== WebSocket
|
|
427
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
428
428
|
ws.send(JSON.stringify({ method: "ping" }));
|
|
429
429
|
}, 5e3);
|
|
430
430
|
ws.on("message", (data) => {
|
|
@@ -742,7 +742,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
|
|
|
742
742
|
}
|
|
743
743
|
async function withCdpSocket(wsUrl, fn, opts) {
|
|
744
744
|
const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
|
|
745
|
-
const ws = new WebSocket
|
|
745
|
+
const ws = new WebSocket(wsUrl, {
|
|
746
746
|
handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
|
|
747
747
|
...Object.keys(headers).length ? { headers } : {}
|
|
748
748
|
});
|
|
@@ -1636,7 +1636,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
|
|
|
1636
1636
|
async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
|
|
1637
1637
|
return await new Promise((resolve) => {
|
|
1638
1638
|
const headers = getHeadersWithAuth(wsUrl);
|
|
1639
|
-
const ws = new WebSocket
|
|
1639
|
+
const ws = new WebSocket(wsUrl, {
|
|
1640
1640
|
handshakeTimeout: timeoutMs,
|
|
1641
1641
|
...Object.keys(headers).length ? { headers } : {}
|
|
1642
1642
|
});
|
|
@@ -853,23 +853,24 @@ body {
|
|
|
853
853
|
the now-removed reasoning panel up into the header row, where it
|
|
854
854
|
still pulses on agent activity (app.js:840-845 untouched, single id
|
|
855
855
|
continues to bind that semantic). */
|
|
856
|
-
/* Stage C.4 (3.5.25)
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
856
|
+
/* Stage C.4 (3.5.25) + Stage D.3 (3.5.30) revision: the symframe is
|
|
857
|
+
a grid container (rows: header / stack / footer) sized to fill its
|
|
858
|
+
metrics-col flex parent. The two key sizing primitives:
|
|
859
|
+
- flex: 1 1 0 + min-height: 0 on the symframe itself ensures the
|
|
860
|
+
grid container has a *definite* height inside the flex column
|
|
861
|
+
parent. Without this, `height: 100%` was unreliable across
|
|
862
|
+
browsers + modes (modes 2-4 overflow report from 3.5.29).
|
|
863
|
+
- minmax(0, 1fr) on the flex middle row (instead of plain 1fr)
|
|
864
|
+
explicitly allows the row to shrink below its content size,
|
|
865
|
+
which lets the substrate / cards container's overflow-y: auto
|
|
866
|
+
reliably engage instead of pushing the parent.
|
|
867
|
+
Combined: every mode reliably bounds to the column. */
|
|
868
868
|
.symframe {
|
|
869
869
|
display: grid;
|
|
870
|
-
grid-template-rows: auto 1fr auto;
|
|
870
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
871
871
|
gap: 8px;
|
|
872
|
-
|
|
872
|
+
flex: 1 1 0;
|
|
873
|
+
min-height: 0;
|
|
873
874
|
overflow: hidden;
|
|
874
875
|
}
|
|
875
876
|
.symframe-header {
|
|
@@ -1084,7 +1085,10 @@ body {
|
|
|
1084
1085
|
foreground card takes the visual stage. If a focusedId is set, the
|
|
1085
1086
|
matching card gets a cyan halo + others fade out. */
|
|
1086
1087
|
.symframe[data-mode="focus"] {
|
|
1087
|
-
|
|
1088
|
+
/* Stage D.3: minmax(0, 1fr) so the middle row can shrink below
|
|
1089
|
+
content size and the cards container's overflow-y: auto engages
|
|
1090
|
+
instead of expanding the row. */
|
|
1091
|
+
grid-template-rows: auto minmax(0, 1fr) 0;
|
|
1088
1092
|
}
|
|
1089
1093
|
.symframe[data-mode="focus"] .symframe-awaiting {
|
|
1090
1094
|
display: none;
|
|
@@ -1111,24 +1115,45 @@ body {
|
|
|
1111
1115
|
them, so we use a generic "the card whose id matches" pattern via
|
|
1112
1116
|
:has() (when supported) plus a fallback class added by JS. */
|
|
1113
1117
|
.symframe[data-mode="focus"] .symframe-card-focused {
|
|
1118
|
+
/* Stage D.2: dropped `transform: scale(1.02)` — the scaled render
|
|
1119
|
+
area extends beyond the card's layout box and can leak past the
|
|
1120
|
+
cards container's overflow boundary. The halo + cyan border are
|
|
1121
|
+
plenty of focus signal on their own. */
|
|
1114
1122
|
opacity: 1 !important;
|
|
1115
1123
|
box-shadow:
|
|
1116
1124
|
0 0 24px rgba(0, 212, 255, 0.35),
|
|
1117
1125
|
inset 0 1px 0 rgba(255, 255, 255, 0.06),
|
|
1118
1126
|
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1119
1127
|
border-color: var(--accent-cyan) !important;
|
|
1120
|
-
transform: scale(1.02);
|
|
1121
|
-
transform-origin: center;
|
|
1122
1128
|
transition:
|
|
1123
1129
|
box-shadow 0.4s ease,
|
|
1124
|
-
border-color 0.4s ease
|
|
1125
|
-
transform 0.4s ease;
|
|
1130
|
+
border-color 0.4s ease;
|
|
1126
1131
|
}
|
|
1127
1132
|
|
|
1128
1133
|
/* Awaiting mode: footer dominant; cards collapse to title strips;
|
|
1129
|
-
substrate dims to a status band.
|
|
1134
|
+
substrate dims to a status band.
|
|
1135
|
+
|
|
1136
|
+
Stage D.2 fix (3.5.29): the original Stage D rules removed
|
|
1137
|
+
max-height on .symframe-awaiting and .awaiting-list to let the
|
|
1138
|
+
footer dominate — but with `display: flex; flex-direction: column`
|
|
1139
|
+
on .symframe-awaiting, the internal flex children (header / list /
|
|
1140
|
+
button) couldn't size correctly: the list had no flex-grow so it
|
|
1141
|
+
stayed at intrinsic content size, and the footer grew past its
|
|
1142
|
+
grid cell when the list was long. The list's content overflowed
|
|
1143
|
+
the column via the cascade.
|
|
1144
|
+
|
|
1145
|
+
The fix: keep .symframe-awaiting capped at 80% of the column
|
|
1146
|
+
(was max-height: 40% in Stage C.4 — bumped for the awaiting mode
|
|
1147
|
+
posture), and turn .awaiting-list into a flex: 1 0 0 child that
|
|
1148
|
+
scrolls internally when its content exceeds the now-larger footer.
|
|
1149
|
+
*/
|
|
1130
1150
|
.symframe[data-mode="awaiting"] {
|
|
1131
|
-
|
|
1151
|
+
/* Stage D.3: minmax(0, 1fr) on substrate so it can shrink (and
|
|
1152
|
+
scroll internally) when awaiting takes most of the column.
|
|
1153
|
+
`auto` on the footer row + max-height: 80% on .symframe-awaiting
|
|
1154
|
+
bounds it; `overflow: hidden` on the footer clips any overflow
|
|
1155
|
+
from its inner list (which has its own overflow-y: auto). */
|
|
1156
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
1132
1157
|
}
|
|
1133
1158
|
.symframe[data-mode="awaiting"] .symframe-substrate {
|
|
1134
1159
|
opacity: 0.35;
|
|
@@ -1145,19 +1170,28 @@ body {
|
|
|
1145
1170
|
display: none;
|
|
1146
1171
|
}
|
|
1147
1172
|
.symframe[data-mode="awaiting"] .symframe-awaiting {
|
|
1148
|
-
|
|
1173
|
+
/* Bump from C.4's 40% baseline cap to 80% so the footer can be
|
|
1174
|
+
"dominant" without exceeding the column. The `overflow: hidden`
|
|
1175
|
+
from C.4 still clips any overflow from misbehaving children. */
|
|
1176
|
+
max-height: 80%;
|
|
1149
1177
|
background: rgba(0, 212, 255, 0.04);
|
|
1150
1178
|
border-radius: 10px;
|
|
1151
1179
|
margin-top: 8px;
|
|
1152
1180
|
}
|
|
1153
1181
|
.symframe[data-mode="awaiting"] .awaiting-list {
|
|
1182
|
+
/* The footer is now sized larger than baseline. Let the list flex
|
|
1183
|
+
to fill it AND scroll internally if items exceed the cell. */
|
|
1154
1184
|
max-height: none;
|
|
1185
|
+
flex: 1 1 0;
|
|
1186
|
+
min-height: 0;
|
|
1155
1187
|
}
|
|
1156
1188
|
|
|
1157
1189
|
/* Quiet mode: only the substrate breathes. Cards + AWAITING hidden.
|
|
1158
|
-
This is the "deep think" or "nothing to surface" posture.
|
|
1190
|
+
This is the "deep think" or "nothing to surface" posture.
|
|
1191
|
+
Stage D.3: minmax(0, 1fr) so the substrate can shrink below
|
|
1192
|
+
content size and scroll internally. */
|
|
1159
1193
|
.symframe[data-mode="quiet"] {
|
|
1160
|
-
grid-template-rows: auto 1fr;
|
|
1194
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
1161
1195
|
}
|
|
1162
1196
|
.symframe[data-mode="quiet"] .symframe-cards,
|
|
1163
1197
|
.symframe[data-mode="quiet"] .symframe-awaiting {
|
|
@@ -9,7 +9,7 @@ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CZ_mYw
|
|
|
9
9
|
import { _ as listDeliverableMessageChannels, c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, v as normalizeMessageChannel } from "./chunk-CAZujdOi.js";
|
|
10
10
|
import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-BCSnhba8.js";
|
|
11
11
|
import { t as parseBooleanValue } from "./boolean-BW6OTjPi.js";
|
|
12
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
12
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-3jl2ulOE.js";
|
|
13
13
|
import { t as formatCliCommand } from "./command-format-DPd9RN2g.js";
|
|
14
14
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DO7WNsVJ.js";
|
|
15
15
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BEU7IHU6.js";
|
|
@@ -1331,7 +1331,7 @@ function isModuleNotFoundError(err) {
|
|
|
1331
1331
|
}
|
|
1332
1332
|
async function loadPwAiModule(mode) {
|
|
1333
1333
|
try {
|
|
1334
|
-
return await import("./pw-ai-
|
|
1334
|
+
return await import("./pw-ai-DOAsQ5NX.js");
|
|
1335
1335
|
} catch (err) {
|
|
1336
1336
|
if (mode === "soft") return null;
|
|
1337
1337
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3928,11 +3928,11 @@ function createProfileContext(opts, profile) {
|
|
|
3928
3928
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3929
3929
|
const profileState = getProfileState();
|
|
3930
3930
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3931
|
-
await (await import("./pw-ai-
|
|
3931
|
+
await (await import("./pw-ai-DOAsQ5NX.js")).closePlaywrightBrowserConnection();
|
|
3932
3932
|
} catch {}
|
|
3933
3933
|
if (profileState.running) await stopRunningBrowser();
|
|
3934
3934
|
try {
|
|
3935
|
-
await (await import("./pw-ai-
|
|
3935
|
+
await (await import("./pw-ai-DOAsQ5NX.js")).closePlaywrightBrowserConnection();
|
|
3936
3936
|
} catch {}
|
|
3937
3937
|
if (!fs.existsSync(userDataDir)) return {
|
|
3938
3938
|
moved: false,
|
package/dist/extensionAPI.js
CHANGED
|
@@ -6,8 +6,8 @@ import { _ as DEFAULT_PROVIDER, g as DEFAULT_MODEL, p as resolveThinkingDefault
|
|
|
6
6
|
import { a as resolveAgentIdentity } from "./reply-prefix-i-FPYcoQ.js";
|
|
7
7
|
import "./plugins-CZ_mYwXq.js";
|
|
8
8
|
import "./replies-0nzkXt6o.js";
|
|
9
|
-
import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-
|
|
10
|
-
import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-
|
|
9
|
+
import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-DdoLFoXg.js";
|
|
10
|
+
import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-f3cIWxXT.js";
|
|
11
11
|
import "./diagnostic-BdRnGknC.js";
|
|
12
12
|
import "./diagnostic-session-state-DpxCUzoM.js";
|
|
13
13
|
import "./chunk-CAZujdOi.js";
|
|
@@ -16,14 +16,14 @@ import "./ssrf-BCSnhba8.js";
|
|
|
16
16
|
import "./boolean-BW6OTjPi.js";
|
|
17
17
|
import "./shell-env-DgjeObDZ.js";
|
|
18
18
|
import "./manifest-registry-CAWGTwb5.js";
|
|
19
|
-
import "./chrome-
|
|
19
|
+
import "./chrome-3jl2ulOE.js";
|
|
20
20
|
import "./skills-DO7WNsVJ.js";
|
|
21
21
|
import "./redact-DSOAcWMe.js";
|
|
22
22
|
import "./errors-BEU7IHU6.js";
|
|
23
23
|
import "./tokens-yWO1wD7Z.js";
|
|
24
24
|
import "./thinking-DgjGxdSP.js";
|
|
25
25
|
import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-BsT3BvfH.js";
|
|
26
|
-
import "./manager-
|
|
26
|
+
import "./manager-DogrTmEo.js";
|
|
27
27
|
import "./github-copilot-token-dYUr1mDQ.js";
|
|
28
28
|
import "./sqlite-D8iYC_CU.js";
|
|
29
29
|
import "./markdown-tables-jQzXAsf3.js";
|
|
@@ -4449,7 +4449,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
|
|
|
4449
4449
|
* to bypass the min-interval guard (CLI use).
|
|
4450
4450
|
*/
|
|
4451
4451
|
async runL3CycleIfDue(params) {
|
|
4452
|
-
const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CwJCvaOH.js"), import("./synthesis-
|
|
4452
|
+
const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CwJCvaOH.js"), import("./synthesis-Cggd0_wq.js")]);
|
|
4453
4453
|
const synthesize = createSynthesizer({
|
|
4454
4454
|
cfg: this.cfg,
|
|
4455
4455
|
agentId: this.agentId,
|
|
@@ -9,7 +9,7 @@ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as reso
|
|
|
9
9
|
import { t as normalizeChatType } from "./chat-type-Acj2OK2p.js";
|
|
10
10
|
import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-CZ_mYwXq.js";
|
|
11
11
|
import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-0nzkXt6o.js";
|
|
12
|
-
import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-
|
|
12
|
+
import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-f3cIWxXT.js";
|
|
13
13
|
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BdRnGknC.js";
|
|
14
14
|
import { n as getDiagnosticSessionState } from "./diagnostic-session-state-DpxCUzoM.js";
|
|
15
15
|
import { S as GATEWAY_CLIENT_NAMES, _ as listDeliverableMessageChannels, a as chunkText, b as GATEWAY_CLIENT_IDS, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as normalizeMessageChannel, x as GATEWAY_CLIENT_MODES, y as resolveGatewayMessageChannel } from "./chunk-CAZujdOi.js";
|
|
@@ -18,7 +18,7 @@ import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _
|
|
|
18
18
|
import { t as parseBooleanValue } from "./boolean-BW6OTjPi.js";
|
|
19
19
|
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-DgjeObDZ.js";
|
|
20
20
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-CAWGTwb5.js";
|
|
21
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
21
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-3jl2ulOE.js";
|
|
22
22
|
import { n as resolveCliName, t as formatCliCommand } from "./command-format-DPd9RN2g.js";
|
|
23
23
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-DO7WNsVJ.js";
|
|
24
24
|
import { n as redactToolDetail } from "./redact-DSOAcWMe.js";
|
|
@@ -29,7 +29,7 @@ import { n as resolveConversationLabel } from "./conversation-label-DTTqF8gH.js"
|
|
|
29
29
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BsT3BvfH.js";
|
|
30
30
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.js";
|
|
31
31
|
import { n as saveJsonFile, t as loadJsonFile } from "./json-file-B7D44OOV.js";
|
|
32
|
-
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-
|
|
32
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-DogrTmEo.js";
|
|
33
33
|
import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-dYUr1mDQ.js";
|
|
34
34
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Ce-sg7EN.js";
|
|
35
35
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-jQzXAsf3.js";
|
|
@@ -53,7 +53,7 @@ import { fileURLToPath } from "node:url";
|
|
|
53
53
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
54
54
|
import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
|
|
55
55
|
import AjvPkg from "ajv";
|
|
56
|
-
import { WebSocket } from "ws";
|
|
56
|
+
import { WebSocket as WebSocket$1 } from "ws";
|
|
57
57
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
58
58
|
import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
|
|
59
59
|
import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";
|
|
@@ -3390,7 +3390,7 @@ async function getMemorySearchManager(params) {
|
|
|
3390
3390
|
const wrapper = new FallbackMemoryManager({
|
|
3391
3391
|
primary,
|
|
3392
3392
|
fallbackFactory: async () => {
|
|
3393
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3393
|
+
const { MemoryIndexManager } = await import("./manager-DogrTmEo.js").then((n) => n.t);
|
|
3394
3394
|
return await MemoryIndexManager.get(params);
|
|
3395
3395
|
}
|
|
3396
3396
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3403,7 +3403,7 @@ async function getMemorySearchManager(params) {
|
|
|
3403
3403
|
}
|
|
3404
3404
|
}
|
|
3405
3405
|
try {
|
|
3406
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3406
|
+
const { MemoryIndexManager } = await import("./manager-DogrTmEo.js").then((n) => n.t);
|
|
3407
3407
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3408
3408
|
} catch (err) {
|
|
3409
3409
|
return {
|
|
@@ -5968,7 +5968,7 @@ var GatewayClient = class {
|
|
|
5968
5968
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5969
5969
|
});
|
|
5970
5970
|
}
|
|
5971
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
5971
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
5972
5972
|
this.ws.on("open", () => {
|
|
5973
5973
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5974
5974
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -6187,7 +6187,7 @@ var GatewayClient = class {
|
|
|
6187
6187
|
return null;
|
|
6188
6188
|
}
|
|
6189
6189
|
async request(method, params, opts) {
|
|
6190
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
6190
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
6191
6191
|
const id = randomUUID();
|
|
6192
6192
|
const frame = {
|
|
6193
6193
|
type: "req",
|
|
@@ -7137,7 +7137,7 @@ async function routeReply(params) {
|
|
|
7137
7137
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7138
7138
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7139
7139
|
try {
|
|
7140
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7140
|
+
const { deliverOutboundPayloads } = await import("./deliver-f3cIWxXT.js").then((n) => n.n);
|
|
7141
7141
|
return {
|
|
7142
7142
|
ok: true,
|
|
7143
7143
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -42334,7 +42334,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
42334
42334
|
return;
|
|
42335
42335
|
}
|
|
42336
42336
|
try {
|
|
42337
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
42337
|
+
const { deliverOutboundPayloads } = await import("./deliver-f3cIWxXT.js").then((n) => n.n);
|
|
42338
42338
|
await deliverOutboundPayloads({
|
|
42339
42339
|
cfg: params.cfg,
|
|
42340
42340
|
channel,
|
|
@@ -7,7 +7,7 @@ import "./ssrf-BCSnhba8.js";
|
|
|
7
7
|
import "./boolean-BW6OTjPi.js";
|
|
8
8
|
import "./shell-env-DgjeObDZ.js";
|
|
9
9
|
import "./manifest-registry-CAWGTwb5.js";
|
|
10
|
-
import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-
|
|
10
|
+
import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-3jl2ulOE.js";
|
|
11
11
|
import { t as formatCliCommand } from "./command-format-DPd9RN2g.js";
|
|
12
12
|
import "./redact-DSOAcWMe.js";
|
|
13
13
|
import { n as formatErrorMessage } from "./errors-BEU7IHU6.js";
|
|
@@ -6,8 +6,8 @@ import "./model-selection-BisYvTBb.js";
|
|
|
6
6
|
import "./reply-prefix-i-FPYcoQ.js";
|
|
7
7
|
import "./plugins-CZ_mYwXq.js";
|
|
8
8
|
import "./replies-0nzkXt6o.js";
|
|
9
|
-
import { n as runAgentTurn } from "./pi-embedded-
|
|
10
|
-
import "./deliver-
|
|
9
|
+
import { n as runAgentTurn } from "./pi-embedded-DdoLFoXg.js";
|
|
10
|
+
import "./deliver-f3cIWxXT.js";
|
|
11
11
|
import "./diagnostic-BdRnGknC.js";
|
|
12
12
|
import "./diagnostic-session-state-DpxCUzoM.js";
|
|
13
13
|
import "./chunk-CAZujdOi.js";
|
|
@@ -16,14 +16,14 @@ import "./ssrf-BCSnhba8.js";
|
|
|
16
16
|
import "./boolean-BW6OTjPi.js";
|
|
17
17
|
import "./shell-env-DgjeObDZ.js";
|
|
18
18
|
import "./manifest-registry-CAWGTwb5.js";
|
|
19
|
-
import "./chrome-
|
|
19
|
+
import "./chrome-3jl2ulOE.js";
|
|
20
20
|
import "./skills-DO7WNsVJ.js";
|
|
21
21
|
import "./redact-DSOAcWMe.js";
|
|
22
22
|
import "./errors-BEU7IHU6.js";
|
|
23
23
|
import "./tokens-yWO1wD7Z.js";
|
|
24
24
|
import "./thinking-DgjGxdSP.js";
|
|
25
25
|
import "./paths-BsT3BvfH.js";
|
|
26
|
-
import "./manager-
|
|
26
|
+
import "./manager-DogrTmEo.js";
|
|
27
27
|
import "./github-copilot-token-dYUr1mDQ.js";
|
|
28
28
|
import "./sqlite-D8iYC_CU.js";
|
|
29
29
|
import "./markdown-tables-jQzXAsf3.js";
|