winclaw 2026.4.8 → 2026.4.9

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.
Files changed (30) hide show
  1. package/dist/{audio-preflight-BYLUYfqy.js → audio-preflight-BGqZ89hb.js} +4 -4
  2. package/dist/{audio-transcription-runner-CFQlwuzM.js → audio-transcription-runner-DYNg5Naa.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +6 -6
  5. package/dist/bundled/session-memory/handler.js +6 -6
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-Bba_wP3w.js → chrome-CecoPcma.js} +8 -8
  8. package/dist/{deliver-CcdmhwPl.js → deliver-6BwkZx1I.js} +1 -1
  9. package/dist/{deliver-runtime-fehsuhfN.js → deliver-runtime-guJNzNEk.js} +3 -3
  10. package/dist/{deps-send-whatsapp.runtime-DJAsJgdo.js → deps-send-whatsapp.runtime-DDQQmVsc.js} +7 -7
  11. package/dist/{image-BGj83cWk.js → image-f-oAxq2Q.js} +1 -1
  12. package/dist/{image-runtime-Dghm6p6S.js → image-runtime-VBHn-i7b.js} +3 -3
  13. package/dist/llm-slug-generator.js +6 -6
  14. package/dist/{pi-embedded-DVbRjCDp.js → pi-embedded-DOoz8kXI.js} +24 -24
  15. package/dist/{pi-embedded-helpers-BhY3qP27.js → pi-embedded-helpers--Z_8lnOv.js} +3 -3
  16. package/dist/plugin-sdk/googlechat.js +2 -2
  17. package/dist/plugin-sdk/matrix.js +2 -2
  18. package/dist/plugin-sdk/msteams.js +2 -2
  19. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  20. package/dist/plugin-sdk/slack.js +2 -2
  21. package/dist/plugin-sdk/telegram.js +2 -2
  22. package/dist/plugin-sdk/tlon.js +2 -2
  23. package/dist/plugin-sdk/twitch.js +2 -2
  24. package/dist/plugin-sdk/zalo.js +2 -2
  25. package/dist/plugin-sdk/zalouser.js +2 -2
  26. package/dist/{pw-ai-CItsOwdU.js → pw-ai-BPPLea1y.js} +1 -1
  27. package/dist/{slash-dispatch.runtime-Cq4szyy8.js → slash-dispatch.runtime-D4Bt7WUe.js} +6 -6
  28. package/dist/{subagent-registry-runtime-B7duK1wg.js → subagent-registry-runtime-kZEc4AOo.js} +6 -6
  29. package/dist/{web-BwSmiv5n.js → web-C3zdCnqy.js} +6 -6
  30. package/package.json +1 -1
@@ -11,8 +11,8 @@ import "./plugins-DmFEHGuU.js";
11
11
  import "./accounts-DJJqfTqt.js";
12
12
  import "./accounts-BT1b-E5M.js";
13
13
  import "./image-ops-BMWIc9fJ.js";
14
- import "./pi-embedded-helpers-BhY3qP27.js";
15
- import "./chrome-Bba_wP3w.js";
14
+ import "./pi-embedded-helpers--Z_8lnOv.js";
15
+ import "./chrome-CecoPcma.js";
16
16
  import "./frontmatter-rXfmpfX3.js";
17
17
  import "./skills-K-Z-a8ol.js";
18
18
  import "./path-alias-guards-Caq9mLAy.js";
@@ -24,8 +24,8 @@ import "./store-C6_Vn47n.js";
24
24
  import "./accounts-Cnwcfc-c.js";
25
25
  import "./paths-BEplEem3.js";
26
26
  import "./tool-images-W9lm0PY7.js";
27
- import "./image-BGj83cWk.js";
28
- import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-CFQlwuzM.js";
27
+ import "./image-f-oAxq2Q.js";
28
+ import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-DYNg5Naa.js";
29
29
  import "./fetch-BUx01Coa.js";
30
30
  import "./fetch-guard-BgQjNYdV.js";
31
31
  import "./api-key-rotation-BWpi0oED.js";
@@ -4,7 +4,7 @@ import { _ as runExec } from "./workspace--7XQbzUj.js";
4
4
  import { M as resolveApiKeyForProvider, X as loadConfig, at as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, c as normalizeProviderId, ct as resolveIMessageAttachmentRoots, g as normalizeGoogleModelId, ir as resolveWinClawAgentDir, j as requireApiKey, ot as isInboundPathAllowed, st as mergeInboundPathRoots } from "./model-selection-DwP0SZq0.js";
5
5
  import { _ as normalizeChatType } from "./plugins-DmFEHGuU.js";
6
6
  import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-BMWIc9fJ.js";
7
- import { t as describeImageWithModel, w as ensureWinClawModelsJson } from "./image-BGj83cWk.js";
7
+ import { t as describeImageWithModel, w as ensureWinClawModelsJson } from "./image-f-oAxq2Q.js";
8
8
  import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-BUx01Coa.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-Bghlv-lk.js";
10
10
  import { t as fetchWithSsrFGuard } from "./fetch-guard-BgQjNYdV.js";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.4.8",
3
- "commit": "e24031003ecab210bf652ea6a17c34006b55d8ce",
4
- "builtAt": "2026-03-26T14:37:10.308Z"
2
+ "version": "2026.4.9",
3
+ "commit": "d6230cf1c03df23bdfb7cec8e3bb2d9bda8af0ab",
4
+ "builtAt": "2026-03-26T14:54:55.807Z"
5
5
  }
@@ -8,19 +8,19 @@ import "../../github-copilot-token-B2GRi9DU.js";
8
8
  import { a as isGatewayStartupEvent } from "../../legacy-names-YyhpL1aw.js";
9
9
  import "../../thinking-Dfo3AHcK.js";
10
10
  import { n as SILENT_REPLY_TOKEN } from "../../tokens-DXPt0_Ft.js";
11
- import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-DVbRjCDp.js";
11
+ import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-DOoz8kXI.js";
12
12
  import "../../plugins-DmFEHGuU.js";
13
13
  import "../../accounts-DJJqfTqt.js";
14
14
  import "../../send-mAEmNhTy.js";
15
15
  import "../../send-BVwGLS12.js";
16
- import "../../deliver-CcdmhwPl.js";
16
+ import "../../deliver-6BwkZx1I.js";
17
17
  import "../../diagnostic-BqD0CLOw.js";
18
18
  import "../../accounts-BT1b-E5M.js";
19
19
  import "../../image-ops-BMWIc9fJ.js";
20
20
  import "../../send-B_vb0GGP.js";
21
21
  import "../../pi-model-discovery-WhP-6ab6.js";
22
- import { Dt as resolveMainSessionKey, J as updateSessionStore, Tt as resolveAgentMainSessionKey, W as loadSessionStore } from "../../pi-embedded-helpers-BhY3qP27.js";
23
- import "../../chrome-Bba_wP3w.js";
22
+ import { Dt as resolveMainSessionKey, J as updateSessionStore, Tt as resolveAgentMainSessionKey, W as loadSessionStore } from "../../pi-embedded-helpers--Z_8lnOv.js";
23
+ import "../../chrome-CecoPcma.js";
24
24
  import "../../frontmatter-rXfmpfX3.js";
25
25
  import "../../skills-K-Z-a8ol.js";
26
26
  import "../../path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import "../../store-C6_Vn47n.js";
32
32
  import "../../accounts-Cnwcfc-c.js";
33
33
  import { s as resolveStorePath } from "../../paths-BEplEem3.js";
34
34
  import "../../tool-images-W9lm0PY7.js";
35
- import "../../image-BGj83cWk.js";
36
- import "../../audio-transcription-runner-CFQlwuzM.js";
35
+ import "../../image-f-oAxq2Q.js";
36
+ import "../../audio-transcription-runner-DYNg5Naa.js";
37
37
  import "../../fetch-BUx01Coa.js";
38
38
  import "../../fetch-guard-BgQjNYdV.js";
39
39
  import "../../api-key-rotation-BWpi0oED.js";
@@ -8,19 +8,19 @@ import "../../github-copilot-token-B2GRi9DU.js";
8
8
  import "../../legacy-names-YyhpL1aw.js";
9
9
  import "../../thinking-Dfo3AHcK.js";
10
10
  import "../../tokens-DXPt0_Ft.js";
11
- import "../../pi-embedded-DVbRjCDp.js";
11
+ import "../../pi-embedded-DOoz8kXI.js";
12
12
  import "../../plugins-DmFEHGuU.js";
13
13
  import "../../accounts-DJJqfTqt.js";
14
14
  import "../../send-mAEmNhTy.js";
15
15
  import "../../send-BVwGLS12.js";
16
- import "../../deliver-CcdmhwPl.js";
16
+ import "../../deliver-6BwkZx1I.js";
17
17
  import "../../diagnostic-BqD0CLOw.js";
18
18
  import "../../accounts-BT1b-E5M.js";
19
19
  import "../../image-ops-BMWIc9fJ.js";
20
20
  import "../../send-B_vb0GGP.js";
21
21
  import "../../pi-model-discovery-WhP-6ab6.js";
22
- import { ut as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-BhY3qP27.js";
23
- import "../../chrome-Bba_wP3w.js";
22
+ import { ut as hasInterSessionUserProvenance } from "../../pi-embedded-helpers--Z_8lnOv.js";
23
+ import "../../chrome-CecoPcma.js";
24
24
  import "../../frontmatter-rXfmpfX3.js";
25
25
  import "../../skills-K-Z-a8ol.js";
26
26
  import "../../path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import "../../store-C6_Vn47n.js";
32
32
  import "../../accounts-Cnwcfc-c.js";
33
33
  import "../../paths-BEplEem3.js";
34
34
  import "../../tool-images-W9lm0PY7.js";
35
- import "../../image-BGj83cWk.js";
36
- import "../../audio-transcription-runner-CFQlwuzM.js";
35
+ import "../../image-f-oAxq2Q.js";
36
+ import "../../audio-transcription-runner-DYNg5Naa.js";
37
37
  import "../../fetch-BUx01Coa.js";
38
38
  import "../../fetch-guard-BgQjNYdV.js";
39
39
  import "../../api-key-rotation-BWpi0oED.js";
@@ -1 +1 @@
1
- 72b31515743c87ff786c57daa56e2da8f8e3607c6267db064ad0e61e6c5b5776
1
+ 38cd9b4ab453f7487336251f0e90f0668afeb652b652014f8be7f09b6a442bfb
@@ -14,7 +14,7 @@ import { createHmac } from "node:crypto";
14
14
  import net from "node:net";
15
15
  import http, { createServer } from "node:http";
16
16
  import https from "node:https";
17
- import WebSocket$1, { WebSocketServer } from "ws";
17
+ import WebSocket, { WebSocketServer } from "ws";
18
18
  import { Buffer as Buffer$1 } from "node:buffer";
19
19
 
20
20
  //#region src/browser/constants.ts
@@ -593,7 +593,7 @@ async function ensureChromeExtensionRelayServer(opts) {
593
593
  let extensionWs = null;
594
594
  const cdpClients = /* @__PURE__ */ new Set();
595
595
  const connectedTargets = /* @__PURE__ */ new Map();
596
- const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
596
+ const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
597
597
  const hasConnectedTargets = () => connectedTargets.size > 0;
598
598
  let extensionDisconnectCleanupTimer = null;
599
599
  const extensionReconnectWaiters = /* @__PURE__ */ new Set();
@@ -645,7 +645,7 @@ async function ensureChromeExtensionRelayServer(opts) {
645
645
  let nextExtensionId = 1;
646
646
  const sendToExtension = async (payload) => {
647
647
  const ws = extensionWs;
648
- if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
648
+ if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
649
649
  ws.send(JSON.stringify(payload));
650
650
  return await new Promise((resolve, reject) => {
651
651
  const timer = setTimeout(() => {
@@ -662,12 +662,12 @@ async function ensureChromeExtensionRelayServer(opts) {
662
662
  const broadcastToCdpClients = (evt) => {
663
663
  const msg = JSON.stringify(evt);
664
664
  for (const ws of cdpClients) {
665
- if (ws.readyState !== WebSocket$1.OPEN) continue;
665
+ if (ws.readyState !== WebSocket.OPEN) continue;
666
666
  ws.send(msg);
667
667
  }
668
668
  };
669
669
  const sendResponseToCdp = (ws, res) => {
670
- if (ws.readyState !== WebSocket$1.OPEN) return;
670
+ if (ws.readyState !== WebSocket.OPEN) return;
671
671
  ws.send(JSON.stringify(res));
672
672
  };
673
673
  const dropConnectedTargetSession = (sessionId) => {
@@ -921,7 +921,7 @@ async function ensureChromeExtensionRelayServer(opts) {
921
921
  rejectUpgrade(socket, 401, "Unauthorized");
922
922
  return;
923
923
  }
924
- if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
924
+ if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
925
925
  try {
926
926
  extensionWs.terminate();
927
927
  } catch {}
@@ -954,7 +954,7 @@ async function ensureChromeExtensionRelayServer(opts) {
954
954
  clearExtensionDisconnectCleanupTimer();
955
955
  flushExtensionReconnectWaiters(true);
956
956
  const ping = setInterval(() => {
957
- if (ws.readyState !== WebSocket$1.OPEN) return;
957
+ if (ws.readyState !== WebSocket.OPEN) return;
958
958
  ws.send(JSON.stringify({ method: "ping" }));
959
959
  }, 5e3);
960
960
  ws.on("message", (data) => {
@@ -1310,7 +1310,7 @@ function openCdpWebSocket(wsUrl, opts) {
1310
1310
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
1311
1311
  const handshakeTimeoutMs = typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : CDP_WS_HANDSHAKE_TIMEOUT_MS;
1312
1312
  const agent = getDirectAgentForCdp(wsUrl);
1313
- return new WebSocket$1(wsUrl, {
1313
+ return new WebSocket(wsUrl, {
1314
1314
  handshakeTimeout: handshakeTimeoutMs,
1315
1315
  ...Object.keys(headers).length ? { headers } : {},
1316
1316
  ...agent ? { agent } : {}
@@ -8,7 +8,7 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DXPt0_
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DmFEHGuU.js";
9
9
  import { n as generateSecureUuid } from "./secure-random-BEYczWtd.js";
10
10
  import { r as parseTelegramTarget } from "./targets-B5BJmNgG.js";
11
- import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, st as parseInlineDirectives } from "./pi-embedded-helpers-BhY3qP27.js";
11
+ import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, st as parseInlineDirectives } from "./pi-embedded-helpers--Z_8lnOv.js";
12
12
  import { i as getAgentScopedMediaLocalRoots } from "./fetch-BUx01Coa.js";
13
13
  import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-B0XBhuU2.js";
14
14
  import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CsTQiEZn.js";
@@ -10,11 +10,11 @@ import "./thinking-Dfo3AHcK.js";
10
10
  import "./tokens-DXPt0_Ft.js";
11
11
  import "./plugins-DmFEHGuU.js";
12
12
  import "./accounts-DJJqfTqt.js";
13
- import { t as deliverOutboundPayloads } from "./deliver-CcdmhwPl.js";
13
+ import { t as deliverOutboundPayloads } from "./deliver-6BwkZx1I.js";
14
14
  import "./accounts-BT1b-E5M.js";
15
15
  import "./image-ops-BMWIc9fJ.js";
16
- import "./pi-embedded-helpers-BhY3qP27.js";
17
- import "./chrome-Bba_wP3w.js";
16
+ import "./pi-embedded-helpers--Z_8lnOv.js";
17
+ import "./chrome-CecoPcma.js";
18
18
  import "./frontmatter-rXfmpfX3.js";
19
19
  import "./skills-K-Z-a8ol.js";
20
20
  import "./path-alias-guards-Caq9mLAy.js";
@@ -8,19 +8,19 @@ import "./github-copilot-token-B2GRi9DU.js";
8
8
  import "./legacy-names-YyhpL1aw.js";
9
9
  import "./thinking-Dfo3AHcK.js";
10
10
  import "./tokens-DXPt0_Ft.js";
11
- import "./pi-embedded-DVbRjCDp.js";
11
+ import "./pi-embedded-DOoz8kXI.js";
12
12
  import "./plugins-DmFEHGuU.js";
13
13
  import "./accounts-DJJqfTqt.js";
14
14
  import "./send-mAEmNhTy.js";
15
15
  import "./send-BVwGLS12.js";
16
- import "./deliver-CcdmhwPl.js";
16
+ import "./deliver-6BwkZx1I.js";
17
17
  import "./diagnostic-BqD0CLOw.js";
18
18
  import "./accounts-BT1b-E5M.js";
19
19
  import "./image-ops-BMWIc9fJ.js";
20
20
  import "./send-B_vb0GGP.js";
21
21
  import "./pi-model-discovery-WhP-6ab6.js";
22
- import "./pi-embedded-helpers-BhY3qP27.js";
23
- import "./chrome-Bba_wP3w.js";
22
+ import "./pi-embedded-helpers--Z_8lnOv.js";
23
+ import "./chrome-CecoPcma.js";
24
24
  import "./frontmatter-rXfmpfX3.js";
25
25
  import "./skills-K-Z-a8ol.js";
26
26
  import "./path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import "./store-C6_Vn47n.js";
32
32
  import "./accounts-Cnwcfc-c.js";
33
33
  import "./paths-BEplEem3.js";
34
34
  import "./tool-images-W9lm0PY7.js";
35
- import "./image-BGj83cWk.js";
36
- import "./audio-transcription-runner-CFQlwuzM.js";
35
+ import "./image-f-oAxq2Q.js";
36
+ import "./audio-transcription-runner-DYNg5Naa.js";
37
37
  import "./fetch-BUx01Coa.js";
38
38
  import "./fetch-guard-BgQjNYdV.js";
39
39
  import "./api-key-rotation-BWpi0oED.js";
@@ -55,6 +55,6 @@ import "./query-expansion-DnK_9wYg.js";
55
55
  import { t as sendMessageWhatsApp } from "./outbound-DGtKaDDF.js";
56
56
  import "./session-DqCth1od.js";
57
57
  import "./login-CuSCyoEP.js";
58
- import "./web-BwSmiv5n.js";
58
+ import "./web-C3zdCnqy.js";
59
59
 
60
60
  export { sendMessageWhatsApp };
@@ -1,7 +1,7 @@
1
1
  import { g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues } from "./run-with-concurrency-TwJ9k3Q5.js";
2
2
  import { f as isRecord, x as shortenHomeInString } from "./logger-DiK_f06N.js";
3
3
  import { Wn as applyConfigEnvVars, X as loadConfig, _ as normalizeProviders, b as resolveImplicitProviders, ir as resolveWinClawAgentDir, j as requireApiKey, k as getApiKeyForModel, pr as normalizeSecretInput, v as resolveImplicitBedrockProvider, y as resolveImplicitCopilotProvider } from "./model-selection-DwP0SZq0.js";
4
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-BhY3qP27.js";
4
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers--Z_8lnOv.js";
5
5
  import { n as redactToolDetail } from "./redact-DVcfylV9.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
@@ -11,8 +11,8 @@ import "./plugins-DmFEHGuU.js";
11
11
  import "./accounts-DJJqfTqt.js";
12
12
  import "./accounts-BT1b-E5M.js";
13
13
  import "./image-ops-BMWIc9fJ.js";
14
- import "./pi-embedded-helpers-BhY3qP27.js";
15
- import "./chrome-Bba_wP3w.js";
14
+ import "./pi-embedded-helpers--Z_8lnOv.js";
15
+ import "./chrome-CecoPcma.js";
16
16
  import "./frontmatter-rXfmpfX3.js";
17
17
  import "./skills-K-Z-a8ol.js";
18
18
  import "./path-alias-guards-Caq9mLAy.js";
@@ -24,6 +24,6 @@ import "./store-C6_Vn47n.js";
24
24
  import "./accounts-Cnwcfc-c.js";
25
25
  import "./paths-BEplEem3.js";
26
26
  import "./tool-images-W9lm0PY7.js";
27
- import { t as describeImageWithModel } from "./image-BGj83cWk.js";
27
+ import { t as describeImageWithModel } from "./image-f-oAxq2Q.js";
28
28
 
29
29
  export { describeImageWithModel };
@@ -8,19 +8,19 @@ import "./github-copilot-token-B2GRi9DU.js";
8
8
  import "./legacy-names-YyhpL1aw.js";
9
9
  import "./thinking-Dfo3AHcK.js";
10
10
  import "./tokens-DXPt0_Ft.js";
11
- import { t as runEmbeddedPiAgent } from "./pi-embedded-DVbRjCDp.js";
11
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-DOoz8kXI.js";
12
12
  import "./plugins-DmFEHGuU.js";
13
13
  import "./accounts-DJJqfTqt.js";
14
14
  import "./send-mAEmNhTy.js";
15
15
  import "./send-BVwGLS12.js";
16
- import "./deliver-CcdmhwPl.js";
16
+ import "./deliver-6BwkZx1I.js";
17
17
  import "./diagnostic-BqD0CLOw.js";
18
18
  import "./accounts-BT1b-E5M.js";
19
19
  import "./image-ops-BMWIc9fJ.js";
20
20
  import "./send-B_vb0GGP.js";
21
21
  import "./pi-model-discovery-WhP-6ab6.js";
22
- import "./pi-embedded-helpers-BhY3qP27.js";
23
- import "./chrome-Bba_wP3w.js";
22
+ import "./pi-embedded-helpers--Z_8lnOv.js";
23
+ import "./chrome-CecoPcma.js";
24
24
  import "./frontmatter-rXfmpfX3.js";
25
25
  import "./skills-K-Z-a8ol.js";
26
26
  import "./path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import "./store-C6_Vn47n.js";
32
32
  import "./accounts-Cnwcfc-c.js";
33
33
  import "./paths-BEplEem3.js";
34
34
  import "./tool-images-W9lm0PY7.js";
35
- import "./image-BGj83cWk.js";
36
- import "./audio-transcription-runner-CFQlwuzM.js";
35
+ import "./image-f-oAxq2Q.js";
36
+ import "./audio-transcription-runner-DYNg5Naa.js";
37
37
  import "./fetch-BUx01Coa.js";
38
38
  import "./fetch-guard-BgQjNYdV.js";
39
39
  import "./api-key-rotation-BWpi0oED.js";
@@ -13,15 +13,15 @@ import { a as logWebSelfId, h as resolveAccountEntry, i as getWebAuthAgeMs, m as
13
13
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-mAEmNhTy.js";
14
14
  import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-BVwGLS12.js";
15
15
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-BEYczWtd.js";
16
- import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-CcdmhwPl.js";
16
+ import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-6BwkZx1I.js";
17
17
  import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-BqD0CLOw.js";
18
18
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BT1b-E5M.js";
19
19
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-B5BJmNgG.js";
20
20
  import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-BMWIc9fJ.js";
21
21
  import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-B_vb0GGP.js";
22
22
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-WhP-6ab6.js";
23
- import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isTransientHttpError$1, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as setSessionRuntimeModel, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as resolveFreshSessionTotalTokens, T as isFailoverAssistantError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as countToolResults, b as isAuthAssistantError, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as INPUT_PROVENANCE_KIND_VALUES, d as downgradeOpenAIFunctionCallReasoningPairs, dt as normalizeInputProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as jsonUtf8Bytes, g as formatAssistantErrorText, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, kt as resolveConversationLabel, l as extractToolResultId, lt as applyInputProvenanceToUserMessage, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as extractToolCallNames, p as isGoogleModelApi, pt as archiveSessionTranscripts, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as parseInlineDirectives$1, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as hasInterSessionUserProvenance, v as formatRawAssistantErrorForUi, vt as resolveSessionResetType, w as isContextOverflowError, wt as canonicalizeMainSessionAlias, x as isBillingAssistantError, xt as mergeSessionEntry, y as getApiErrorPayloadFingerprint, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-BhY3qP27.js";
24
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-Bba_wP3w.js";
23
+ import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isTransientHttpError$1, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as setSessionRuntimeModel, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as resolveFreshSessionTotalTokens, T as isFailoverAssistantError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as countToolResults, b as isAuthAssistantError, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as INPUT_PROVENANCE_KIND_VALUES, d as downgradeOpenAIFunctionCallReasoningPairs, dt as normalizeInputProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as jsonUtf8Bytes, g as formatAssistantErrorText, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, kt as resolveConversationLabel, l as extractToolResultId, lt as applyInputProvenanceToUserMessage, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as extractToolCallNames, p as isGoogleModelApi, pt as archiveSessionTranscripts, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as parseInlineDirectives$1, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as hasInterSessionUserProvenance, v as formatRawAssistantErrorForUi, vt as resolveSessionResetType, w as isContextOverflowError, wt as canonicalizeMainSessionAlias, x as isBillingAssistantError, xt as mergeSessionEntry, y as getApiErrorPayloadFingerprint, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers--Z_8lnOv.js";
24
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-CecoPcma.js";
25
25
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-K-Z-a8ol.js";
26
26
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Caq9mLAy.js";
27
27
  import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-DVcfylV9.js";
@@ -34,8 +34,8 @@ import { t as resolveIMessageAccount } from "./accounts-Cnwcfc-c.js";
34
34
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BEplEem3.js";
35
35
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-Db-3GZzv.js";
36
36
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-W9lm0PY7.js";
37
- import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureWinClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-BGj83cWk.js";
38
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-CFQlwuzM.js";
37
+ import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureWinClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-f-oAxq2Q.js";
38
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-DYNg5Naa.js";
39
39
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-BUx01Coa.js";
40
40
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Bghlv-lk.js";
41
41
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-BgQjNYdV.js";
@@ -73,7 +73,7 @@ import { EdgeTTS } from "node-edge-tts";
73
73
  import { pipeline } from "node:stream/promises";
74
74
  import { createServer } from "node:http";
75
75
  import { ProxyAgent, fetch as fetch$1 } from "undici";
76
- import WebSocket$1, { WebSocket } from "ws";
76
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
77
77
  import { Buffer as Buffer$1 } from "node:buffer";
78
78
  import { createJiti } from "jiti";
79
79
  import AjvPkg from "ajv";
@@ -8472,7 +8472,7 @@ var GatewayClient = class {
8472
8472
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8473
8473
  });
8474
8474
  }
8475
- this.ws = new WebSocket(url, wsOptions);
8475
+ this.ws = new WebSocket$1(url, wsOptions);
8476
8476
  this.ws.on("open", () => {
8477
8477
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8478
8478
  const tlsError = this.validateTlsFingerprint();
@@ -8668,7 +8668,7 @@ var GatewayClient = class {
8668
8668
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8669
8669
  if (this.connectTimer) clearTimeout(this.connectTimer);
8670
8670
  this.connectTimer = setTimeout(() => {
8671
- if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8671
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8672
8672
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8673
8673
  this.ws?.close(1008, "connect challenge timeout");
8674
8674
  }, connectChallengeTimeoutMs);
@@ -8710,7 +8710,7 @@ var GatewayClient = class {
8710
8710
  return null;
8711
8711
  }
8712
8712
  async request(method, params, opts) {
8713
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8713
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8714
8714
  const id = randomUUID();
8715
8715
  const frame = {
8716
8716
  type: "req",
@@ -10132,7 +10132,7 @@ function normalizeReplyPayload(payload, opts = {}) {
10132
10132
  */
10133
10133
  let deliverRuntimePromise$2 = null;
10134
10134
  function loadDeliverRuntime$2() {
10135
- deliverRuntimePromise$2 ??= import("./deliver-runtime-fehsuhfN.js");
10135
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-guJNzNEk.js");
10136
10136
  return deliverRuntimePromise$2;
10137
10137
  }
10138
10138
  /**
@@ -11419,7 +11419,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11419
11419
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11420
11420
  let subagentRegistryRuntimePromise = null;
11421
11421
  function loadSubagentRegistryRuntime() {
11422
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-B7duK1wg.js");
11422
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-kZEc4AOo.js");
11423
11423
  return subagentRegistryRuntimePromise;
11424
11424
  }
11425
11425
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14748,7 +14748,7 @@ async function runWithConcurrency(tasks, limit) {
14748
14748
  //#region src/media-understanding/echo-transcript.ts
14749
14749
  let deliverRuntimePromise$1 = null;
14750
14750
  function loadDeliverRuntime$1() {
14751
- deliverRuntimePromise$1 ??= import("./deliver-runtime-fehsuhfN.js");
14751
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-guJNzNEk.js");
14752
14752
  return deliverRuntimePromise$1;
14753
14753
  }
14754
14754
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -53037,7 +53037,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
53037
53037
  const log$10 = createSubsystemLogger("session-maintenance-warning");
53038
53038
  let deliverRuntimePromise = null;
53039
53039
  function loadDeliverRuntime() {
53040
- deliverRuntimePromise ??= import("./deliver-runtime-fehsuhfN.js");
53040
+ deliverRuntimePromise ??= import("./deliver-runtime-guJNzNEk.js");
53041
53041
  return deliverRuntimePromise;
53042
53042
  }
53043
53043
  function shouldSendWarning() {
@@ -58014,7 +58014,7 @@ const VISION_PROVIDERS = [
58014
58014
  ];
58015
58015
  let imageRuntimePromise = null;
58016
58016
  function loadImageRuntime() {
58017
- imageRuntimePromise ??= import("./image-runtime-Dghm6p6S.js");
58017
+ imageRuntimePromise ??= import("./image-runtime-VBHn-i7b.js");
58018
58018
  return imageRuntimePromise;
58019
58019
  }
58020
58020
  /**
@@ -60075,7 +60075,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
60075
60075
  hasTypedText
60076
60076
  };
60077
60077
  try {
60078
- const { transcribeFirstAudio } = await import("./audio-preflight-BYLUYfqy.js");
60078
+ const { transcribeFirstAudio } = await import("./audio-preflight-BGqZ89hb.js");
60079
60079
  if (params.abortSignal?.aborted) return {
60080
60080
  hasAudioAttachment,
60081
60081
  hasTypedText
@@ -67469,7 +67469,7 @@ let slackSenderRuntimePromise = null;
67469
67469
  let signalSenderRuntimePromise = null;
67470
67470
  let imessageSenderRuntimePromise = null;
67471
67471
  function loadWhatsAppSenderRuntime() {
67472
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DJAsJgdo.js");
67472
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DDQQmVsc.js");
67473
67473
  return whatsappSenderRuntimePromise;
67474
67474
  }
67475
67475
  function loadTelegramSenderRuntime() {
@@ -71179,7 +71179,7 @@ function createDiscordGatewayPlugin(params) {
71179
71179
  return super.registerClient(client);
71180
71180
  }
71181
71181
  createWebSocket(url) {
71182
- return new WebSocket$1(url, { agent: wsAgent });
71182
+ return new WebSocket(url, { agent: wsAgent });
71183
71183
  }
71184
71184
  }
71185
71185
  return new ProxyGatewayPlugin();
@@ -80315,7 +80315,7 @@ function loadSlashCommandsRuntime() {
80315
80315
  return slashCommandsRuntimePromise;
80316
80316
  }
80317
80317
  function loadSlashDispatchRuntime() {
80318
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-Cq4szyy8.js");
80318
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-D4Bt7WUe.js");
80319
80319
  return slashDispatchRuntimePromise;
80320
80320
  }
80321
80321
  function loadSlashSkillCommandsRuntime() {
@@ -83684,7 +83684,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
83684
83684
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
83685
83685
  let preflightTranscript;
83686
83686
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
83687
- const { transcribeFirstAudio } = await import("./audio-preflight-BYLUYfqy.js");
83687
+ const { transcribeFirstAudio } = await import("./audio-preflight-BGqZ89hb.js");
83688
83688
  preflightTranscript = await transcribeFirstAudio({
83689
83689
  ctx: {
83690
83690
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -86610,7 +86610,7 @@ function loadWebLoginQr() {
86610
86610
  return webLoginQrPromise;
86611
86611
  }
86612
86612
  function loadWebChannel() {
86613
- webChannelPromise ??= import("./web-BwSmiv5n.js");
86613
+ webChannelPromise ??= import("./web-C3zdCnqy.js");
86614
86614
  return webChannelPromise;
86615
86615
  }
86616
86616
  function loadWhatsAppActions() {
@@ -94961,7 +94961,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
94961
94961
  * Throws if the connection is not open.
94962
94962
  */
94963
94963
  send(event) {
94964
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
94964
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
94965
94965
  this.ws.send(JSON.stringify(event));
94966
94966
  }
94967
94967
  /**
@@ -94978,7 +94978,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
94978
94978
  * Returns true if the WebSocket is currently open and ready to send.
94979
94979
  */
94980
94980
  isConnected() {
94981
- return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
94981
+ return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
94982
94982
  }
94983
94983
  /**
94984
94984
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -94988,7 +94988,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
94988
94988
  this._cancelRetryTimer();
94989
94989
  if (this.ws) {
94990
94990
  this.ws.removeAllListeners();
94991
- if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
94991
+ if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
94992
94992
  this.ws = null;
94993
94993
  }
94994
94994
  }
@@ -94998,7 +94998,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
94998
94998
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
94999
94999
  return;
95000
95000
  }
95001
- const socket = new WebSocket$1(this.wsUrl, { headers: {
95001
+ const socket = new WebSocket(this.wsUrl, { headers: {
95002
95002
  Authorization: `Bearer ${this.apiKey}`,
95003
95003
  "OpenAI-Beta": "responses-websocket=v1"
95004
95004
  } });
@@ -9,7 +9,7 @@ import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug
9
9
  import { _ as normalizeChatType, r as normalizeChannelId } from "./plugins-DmFEHGuU.js";
10
10
  import { t as generateSecureToken } from "./secure-random-BEYczWtd.js";
11
11
  import { i as getImageMetadata, m as normalizeMessageChannel, n as buildImageResizeSideGrid, p as listDeliverableMessageChannels, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BMWIc9fJ.js";
12
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_WINCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_WINCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveWinClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchWinClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopWinClawChrome, p as snapshotAria, q as DEFAULT_WINCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-Bba_wP3w.js";
12
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_WINCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_WINCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveWinClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchWinClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopWinClawChrome, p as snapshotAria, q as DEFAULT_WINCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-CecoPcma.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-K-Z-a8ol.js";
14
14
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Caq9mLAy.js";
15
15
  import { n as extractErrorCode, r as formatErrorMessage } from "./errors-ixBzedqV.js";
@@ -1278,7 +1278,7 @@ function isModuleNotFoundError(err) {
1278
1278
  }
1279
1279
  async function loadPwAiModule(mode) {
1280
1280
  try {
1281
- return await import("./pw-ai-CItsOwdU.js");
1281
+ return await import("./pw-ai-BPPLea1y.js");
1282
1282
  } catch (err) {
1283
1283
  if (mode === "soft") return null;
1284
1284
  if (isModuleNotFoundError(err)) return null;
@@ -3644,7 +3644,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3644
3644
  //#region src/browser/server-context.reset.ts
3645
3645
  async function closePlaywrightBrowserConnection() {
3646
3646
  try {
3647
- await (await import("./pw-ai-CItsOwdU.js")).closePlaywrightBrowserConnection();
3647
+ await (await import("./pw-ai-BPPLea1y.js")).closePlaywrightBrowserConnection();
3648
3648
  } catch {}
3649
3649
  }
3650
3650
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveWinClawUserDataDir }) {
@@ -5,7 +5,7 @@ import chalk, { Chalk } from "chalk";
5
5
  import fs from "node:fs";
6
6
  import { Logger } from "tslog";
7
7
  import os from "node:os";
8
- import JSON5 from "json5";
8
+ import json5 from "json5";
9
9
  import { promisify } from "node:util";
10
10
  import { execFile } from "node:child_process";
11
11
  import { getOAuthProviders } from "@mariozechner/pi-ai";
@@ -415,7 +415,7 @@ function readLoggingConfig() {
415
415
  try {
416
416
  if (!fs.existsSync(configPath)) return;
417
417
  const raw = fs.readFileSync(configPath, "utf-8");
418
- const logging = JSON5.parse(raw)?.logging;
418
+ const logging = json5.parse(raw)?.logging;
419
419
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
420
420
  return logging;
421
421
  } catch {
@@ -6,7 +6,7 @@ import chalk, { Chalk } from "chalk";
6
6
  import fs$1 from "node:fs";
7
7
  import { Logger } from "tslog";
8
8
  import os from "node:os";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { format, promisify } from "node:util";
11
11
  import { execFile, spawn } from "node:child_process";
12
12
  import process$1 from "node:process";
@@ -417,7 +417,7 @@ function readLoggingConfig() {
417
417
  try {
418
418
  if (!fs$1.existsSync(configPath)) return;
419
419
  const raw = fs$1.readFileSync(configPath, "utf-8");
420
- const logging = JSON5.parse(raw)?.logging;
420
+ const logging = json5.parse(raw)?.logging;
421
421
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
422
422
  return logging;
423
423
  } catch {
@@ -4,7 +4,7 @@ import fs, { constants } from "node:fs";
4
4
  import os from "node:os";
5
5
  import chalk, { Chalk } from "chalk";
6
6
  import { Logger } from "tslog";
7
- import JSON5 from "json5";
7
+ import json5 from "json5";
8
8
  import { promisify } from "node:util";
9
9
  import fs$1 from "node:fs/promises";
10
10
  import { execFile } from "node:child_process";
@@ -373,7 +373,7 @@ function readLoggingConfig() {
373
373
  try {
374
374
  if (!fs.existsSync(configPath)) return;
375
375
  const raw = fs.readFileSync(configPath, "utf-8");
376
- const logging = JSON5.parse(raw)?.logging;
376
+ const logging = json5.parse(raw)?.logging;
377
377
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
378
378
  return logging;
379
379
  } catch {
@@ -6,7 +6,7 @@ import fs from "node:fs";
6
6
  import os from "node:os";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { format, promisify } from "node:util";
11
11
  import fs$1 from "node:fs/promises";
12
12
  import process$1 from "node:process";
@@ -722,7 +722,7 @@ function readLoggingConfig() {
722
722
  try {
723
723
  if (!fs.existsSync(configPath)) return;
724
724
  const raw = fs.readFileSync(configPath, "utf-8");
725
- const logging = JSON5.parse(raw)?.logging;
725
+ const logging = json5.parse(raw)?.logging;
726
726
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
727
727
  return logging;
728
728
  } catch {
@@ -4,7 +4,7 @@ import chalk, { Chalk } from "chalk";
4
4
  import fs from "node:fs";
5
5
  import { Logger } from "tslog";
6
6
  import os from "node:os";
7
- import json5 from "json5";
7
+ import JSON5 from "json5";
8
8
  import { promisify } from "node:util";
9
9
  import fs$1 from "node:fs/promises";
10
10
  import { execFile, spawn } from "node:child_process";
@@ -758,7 +758,7 @@ function readLoggingConfig() {
758
758
  try {
759
759
  if (!fs.existsSync(configPath)) return;
760
760
  const raw = fs.readFileSync(configPath, "utf-8");
761
- const logging = json5.parse(raw)?.logging;
761
+ const logging = JSON5.parse(raw)?.logging;
762
762
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
763
763
  return logging;
764
764
  } catch {
@@ -4,7 +4,7 @@ import chalk, { Chalk } from "chalk";
4
4
  import fs from "node:fs";
5
5
  import { Logger } from "tslog";
6
6
  import os from "node:os";
7
- import JSON5 from "json5";
7
+ import json5 from "json5";
8
8
  import util, { promisify } from "node:util";
9
9
  import fs$1 from "node:fs/promises";
10
10
  import { execFile, spawn } from "node:child_process";
@@ -770,7 +770,7 @@ function readLoggingConfig() {
770
770
  try {
771
771
  if (!fs.existsSync(configPath)) return;
772
772
  const raw = fs.readFileSync(configPath, "utf-8");
773
- const logging = JSON5.parse(raw)?.logging;
773
+ const logging = json5.parse(raw)?.logging;
774
774
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
775
775
  return logging;
776
776
  } catch {
@@ -6,7 +6,7 @@ import fs from "node:fs";
6
6
  import os from "node:os";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { format, promisify } from "node:util";
11
11
  import { fileURLToPath } from "node:url";
12
12
  import "@aws-sdk/client-bedrock";
@@ -371,7 +371,7 @@ function readLoggingConfig() {
371
371
  try {
372
372
  if (!fs.existsSync(configPath)) return;
373
373
  const raw = fs.readFileSync(configPath, "utf-8");
374
- const logging = JSON5.parse(raw)?.logging;
374
+ const logging = json5.parse(raw)?.logging;
375
375
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
376
376
  return logging;
377
377
  } catch {
@@ -6,7 +6,7 @@ import fs from "node:fs";
6
6
  import os from "node:os";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { promisify } from "node:util";
11
11
  import { fileURLToPath } from "node:url";
12
12
  import "@aws-sdk/client-bedrock";
@@ -368,7 +368,7 @@ function readLoggingConfig() {
368
368
  try {
369
369
  if (!fs.existsSync(configPath)) return;
370
370
  const raw = fs.readFileSync(configPath, "utf-8");
371
- const logging = JSON5.parse(raw)?.logging;
371
+ const logging = json5.parse(raw)?.logging;
372
372
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
373
373
  return logging;
374
374
  } catch {
@@ -6,7 +6,7 @@ import chalk, { Chalk } from "chalk";
6
6
  import fs$1 from "node:fs";
7
7
  import { Logger } from "tslog";
8
8
  import os from "node:os";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { promisify } from "node:util";
11
11
  import { execFile, spawn } from "node:child_process";
12
12
  import process$1 from "node:process";
@@ -414,7 +414,7 @@ function readLoggingConfig() {
414
414
  try {
415
415
  if (!fs$1.existsSync(configPath)) return;
416
416
  const raw = fs$1.readFileSync(configPath, "utf-8");
417
- const logging = JSON5.parse(raw)?.logging;
417
+ const logging = json5.parse(raw)?.logging;
418
418
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
419
419
  return logging;
420
420
  } catch {
@@ -6,7 +6,7 @@ import fs, { constants } from "node:fs";
6
6
  import os from "node:os";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { promisify } from "node:util";
11
11
  import fs$1 from "node:fs/promises";
12
12
  import process$1 from "node:process";
@@ -644,7 +644,7 @@ function readLoggingConfig() {
644
644
  try {
645
645
  if (!fs.existsSync(configPath)) return;
646
646
  const raw = fs.readFileSync(configPath, "utf-8");
647
- const logging = JSON5.parse(raw)?.logging;
647
+ const logging = json5.parse(raw)?.logging;
648
648
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
649
649
  return logging;
650
650
  } catch {
@@ -6,7 +6,7 @@ import "./logger-DiK_f06N.js";
6
6
  import { lr as formatCliCommand } from "./model-selection-DwP0SZq0.js";
7
7
  import "./github-copilot-token-B2GRi9DU.js";
8
8
  import "./legacy-names-YyhpL1aw.js";
9
- import { F as resolveStrictExistingPathsWithinRoot, L as DEFAULT_FILL_FIELD_TYPE, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, k as withNoProxyForCdpUrl, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-Bba_wP3w.js";
9
+ import { F as resolveStrictExistingPathsWithinRoot, L as DEFAULT_FILL_FIELD_TYPE, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, k as withNoProxyForCdpUrl, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-CecoPcma.js";
10
10
  import "./path-alias-guards-Caq9mLAy.js";
11
11
  import "./redact-DVcfylV9.js";
12
12
  import { r as formatErrorMessage } from "./errors-ixBzedqV.js";
@@ -8,19 +8,19 @@ import "./github-copilot-token-B2GRi9DU.js";
8
8
  import "./legacy-names-YyhpL1aw.js";
9
9
  import "./thinking-Dfo3AHcK.js";
10
10
  import "./tokens-DXPt0_Ft.js";
11
- import { I as finalizeInboundContext, S as dispatchReplyWithDispatcher, k as resolveAgentRoute, n as recordInboundSessionMetaSafe, r as deliverSlackSlashReplies, s as createReplyPrefixOptions } from "./pi-embedded-DVbRjCDp.js";
11
+ import { I as finalizeInboundContext, S as dispatchReplyWithDispatcher, k as resolveAgentRoute, n as recordInboundSessionMetaSafe, r as deliverSlackSlashReplies, s as createReplyPrefixOptions } from "./pi-embedded-DOoz8kXI.js";
12
12
  import "./plugins-DmFEHGuU.js";
13
13
  import "./accounts-DJJqfTqt.js";
14
14
  import "./send-mAEmNhTy.js";
15
15
  import "./send-BVwGLS12.js";
16
- import "./deliver-CcdmhwPl.js";
16
+ import "./deliver-6BwkZx1I.js";
17
17
  import "./diagnostic-BqD0CLOw.js";
18
18
  import "./accounts-BT1b-E5M.js";
19
19
  import "./image-ops-BMWIc9fJ.js";
20
20
  import "./send-B_vb0GGP.js";
21
21
  import "./pi-model-discovery-WhP-6ab6.js";
22
- import { kt as resolveConversationLabel } from "./pi-embedded-helpers-BhY3qP27.js";
23
- import "./chrome-Bba_wP3w.js";
22
+ import { kt as resolveConversationLabel } from "./pi-embedded-helpers--Z_8lnOv.js";
23
+ import "./chrome-CecoPcma.js";
24
24
  import "./frontmatter-rXfmpfX3.js";
25
25
  import "./skills-K-Z-a8ol.js";
26
26
  import "./path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import "./store-C6_Vn47n.js";
32
32
  import "./accounts-Cnwcfc-c.js";
33
33
  import "./paths-BEplEem3.js";
34
34
  import "./tool-images-W9lm0PY7.js";
35
- import "./image-BGj83cWk.js";
36
- import "./audio-transcription-runner-CFQlwuzM.js";
35
+ import "./image-f-oAxq2Q.js";
36
+ import "./audio-transcription-runner-DYNg5Naa.js";
37
37
  import "./fetch-BUx01Coa.js";
38
38
  import "./fetch-guard-BgQjNYdV.js";
39
39
  import "./api-key-rotation-BWpi0oED.js";
@@ -8,19 +8,19 @@ import "./github-copilot-token-B2GRi9DU.js";
8
8
  import "./legacy-names-YyhpL1aw.js";
9
9
  import "./thinking-Dfo3AHcK.js";
10
10
  import "./tokens-DXPt0_Ft.js";
11
- import { G as resolveRequesterForChildSession, H as countPendingDescendantRuns, U as countPendingDescendantRunsExcludingRun, V as countActiveDescendantRuns, W as isSubagentSessionRunActive } from "./pi-embedded-DVbRjCDp.js";
11
+ import { G as resolveRequesterForChildSession, H as countPendingDescendantRuns, U as countPendingDescendantRunsExcludingRun, V as countActiveDescendantRuns, W as isSubagentSessionRunActive } from "./pi-embedded-DOoz8kXI.js";
12
12
  import "./plugins-DmFEHGuU.js";
13
13
  import "./accounts-DJJqfTqt.js";
14
14
  import "./send-mAEmNhTy.js";
15
15
  import "./send-BVwGLS12.js";
16
- import "./deliver-CcdmhwPl.js";
16
+ import "./deliver-6BwkZx1I.js";
17
17
  import "./diagnostic-BqD0CLOw.js";
18
18
  import "./accounts-BT1b-E5M.js";
19
19
  import "./image-ops-BMWIc9fJ.js";
20
20
  import "./send-B_vb0GGP.js";
21
21
  import "./pi-model-discovery-WhP-6ab6.js";
22
- import "./pi-embedded-helpers-BhY3qP27.js";
23
- import "./chrome-Bba_wP3w.js";
22
+ import "./pi-embedded-helpers--Z_8lnOv.js";
23
+ import "./chrome-CecoPcma.js";
24
24
  import "./frontmatter-rXfmpfX3.js";
25
25
  import "./skills-K-Z-a8ol.js";
26
26
  import "./path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import "./store-C6_Vn47n.js";
32
32
  import "./accounts-Cnwcfc-c.js";
33
33
  import "./paths-BEplEem3.js";
34
34
  import "./tool-images-W9lm0PY7.js";
35
- import "./image-BGj83cWk.js";
36
- import "./audio-transcription-runner-CFQlwuzM.js";
35
+ import "./image-f-oAxq2Q.js";
36
+ import "./audio-transcription-runner-DYNg5Naa.js";
37
37
  import "./fetch-BUx01Coa.js";
38
38
  import "./fetch-guard-BgQjNYdV.js";
39
39
  import "./api-key-rotation-BWpi0oED.js";
@@ -8,19 +8,19 @@ import "./github-copilot-token-B2GRi9DU.js";
8
8
  import "./legacy-names-YyhpL1aw.js";
9
9
  import { h as resolveChannelGroupRequireMention, m as resolveChannelGroupPolicy } from "./thinking-Dfo3AHcK.js";
10
10
  import "./tokens-DXPt0_Ft.js";
11
- import { A as normalizeGroupActivation, B as normalizeMentionText, C as createInboundDebouncer, D as getReplyFromConfig, E as createDedupeCache, F as enqueueSystemEvent, I as finalizeInboundContext, K as resolveIdentityNamePrefix, L as hasControlCommand, M as computeBackoff, N as sleepWithAbort, O as buildAgentSessionKey, P as formatDurationPrecise, R as shouldComputeCommandAuthorized, T as formatInboundEnvelope, _ as resolveDmGroupAccessWithCommandGate, b as shouldAckReactionForWhatsApp, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, i as resolveInboundSessionEnvelopeContext, j as parseActivationCommand, k as resolveAgentRoute, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, p as resolveDefaultGroupPolicy, q as resolveMessagePrefix, s as createReplyPrefixOptions, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as resolveInboundDebounceMs, x as dispatchReplyWithBufferedBlockDispatcher, y as resolvePinnedMainDmOwnerFromAllowlist, z as buildMentionRegexes } from "./pi-embedded-DVbRjCDp.js";
11
+ import { A as normalizeGroupActivation, B as normalizeMentionText, C as createInboundDebouncer, D as getReplyFromConfig, E as createDedupeCache, F as enqueueSystemEvent, I as finalizeInboundContext, K as resolveIdentityNamePrefix, L as hasControlCommand, M as computeBackoff, N as sleepWithAbort, O as buildAgentSessionKey, P as formatDurationPrecise, R as shouldComputeCommandAuthorized, T as formatInboundEnvelope, _ as resolveDmGroupAccessWithCommandGate, b as shouldAckReactionForWhatsApp, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, i as resolveInboundSessionEnvelopeContext, j as parseActivationCommand, k as resolveAgentRoute, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, p as resolveDefaultGroupPolicy, q as resolveMessagePrefix, s as createReplyPrefixOptions, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as resolveInboundDebounceMs, x as dispatchReplyWithBufferedBlockDispatcher, y as resolvePinnedMainDmOwnerFromAllowlist, z as buildMentionRegexes } from "./pi-embedded-DOoz8kXI.js";
12
12
  import "./plugins-DmFEHGuU.js";
13
13
  import { a as logWebSelfId, c as pickWebChannel, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, r as WA_WEB_AUTH_DIR, u as readWebSelfId } from "./accounts-DJJqfTqt.js";
14
14
  import "./send-mAEmNhTy.js";
15
15
  import "./send-BVwGLS12.js";
16
- import "./deliver-CcdmhwPl.js";
16
+ import "./deliver-6BwkZx1I.js";
17
17
  import "./diagnostic-BqD0CLOw.js";
18
18
  import "./accounts-BT1b-E5M.js";
19
19
  import "./image-ops-BMWIc9fJ.js";
20
20
  import { X as toLocationContext, Y as formatLocationText, et as upsertChannelPairingRequest } from "./send-B_vb0GGP.js";
21
21
  import "./pi-model-discovery-WhP-6ab6.js";
22
- import { At as resolveGroupSessionKey, K as recordSessionMetaFromInbound, W as loadSessionStore, q as updateLastRoute } from "./pi-embedded-helpers-BhY3qP27.js";
23
- import "./chrome-Bba_wP3w.js";
22
+ import { At as resolveGroupSessionKey, K as recordSessionMetaFromInbound, W as loadSessionStore, q as updateLastRoute } from "./pi-embedded-helpers--Z_8lnOv.js";
23
+ import "./chrome-CecoPcma.js";
24
24
  import "./frontmatter-rXfmpfX3.js";
25
25
  import "./skills-K-Z-a8ol.js";
26
26
  import "./path-alias-guards-Caq9mLAy.js";
@@ -32,8 +32,8 @@ import { i as saveMediaBuffer } from "./store-C6_Vn47n.js";
32
32
  import "./accounts-Cnwcfc-c.js";
33
33
  import { s as resolveStorePath } from "./paths-BEplEem3.js";
34
34
  import "./tool-images-W9lm0PY7.js";
35
- import "./image-BGj83cWk.js";
36
- import { h as registerUnhandledRejectionHandler } from "./audio-transcription-runner-CFQlwuzM.js";
35
+ import "./image-f-oAxq2Q.js";
36
+ import { h as registerUnhandledRejectionHandler } from "./audio-transcription-runner-DYNg5Naa.js";
37
37
  import { i as getAgentScopedMediaLocalRoots } from "./fetch-BUx01Coa.js";
38
38
  import "./fetch-guard-BgQjNYdV.js";
39
39
  import "./api-key-rotation-BWpi0oED.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "winclaw",
3
- "version": "2026.4.8",
3
+ "version": "2026.4.9",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/winclaw/winclaw#readme",