@fuhuome/openclawbot-online 2026.2.18 → 2026.2.19

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 (96) hide show
  1. package/dist/{audio-preflight-CyHdY8Z5.js → audio-preflight-BalmZRcH.js} +4 -4
  2. package/dist/{audio-preflight-dMwmJCin.js → audio-preflight-DC-pEqVV.js} +4 -4
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +7 -7
  5. package/dist/bundled/session-memory/handler.js +6 -6
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-BV9AEHrZ.js → chrome-B93eZyyX.js} +7 -7
  8. package/dist/{chrome-COq9U_w_.js → chrome-DpL_cP3o.js} +7 -7
  9. package/dist/{deliver-BDGogq3a.js → deliver-BKYbU0oX.js} +1 -1
  10. package/dist/{deliver-nGHybBtV.js → deliver-C6HvbVCJ.js} +1 -1
  11. package/dist/extensionAPI.js +6 -6
  12. package/dist/{image-fCRnaf0J.js → image-DEpdqAE9.js} +1 -1
  13. package/dist/{image-B78Jx9qG.js → image-gnkNU6DU.js} +1 -1
  14. package/dist/llm-slug-generator.js +6 -6
  15. package/dist/{pi-embedded-DKqSz39c.js → pi-embedded-CcSZTBlA.js} +15 -15
  16. package/dist/{pi-embedded-CTa5VHvP.js → pi-embedded-DNQT4VLy.js} +15 -15
  17. package/dist/{pi-embedded-helpers-Cf6BCIzY.js → pi-embedded-helpers-B3hccOks.js} +4 -4
  18. package/dist/{pi-embedded-helpers-SQOypRTZ.js → pi-embedded-helpers-BAFrKOY7.js} +4 -4
  19. package/dist/{pw-ai-DWq4kNly.js → pw-ai-BhVoQ5f4.js} +1 -1
  20. package/dist/{pw-ai-CDd0DWxd.js → pw-ai-gh3P2dp6.js} +1 -1
  21. package/dist/{runner-ODT_HBEK.js → runner-Bmh3RTVY.js} +1 -1
  22. package/dist/{runner-HPc0dqrQ.js → runner-mVyYB7ii.js} +1 -1
  23. package/dist/{web-DmI5EQ27.js → web-DWoyOyFX.js} +6 -6
  24. package/dist/{web-7m9YKkZ5.js → web-e_0uO5TX.js} +6 -6
  25. package/extensions/bluebubbles/node_modules/.bin/{openclaw → openclawbot-online} +2 -2
  26. package/extensions/copilot-proxy/node_modules/.bin/{openclaw → openclawbot-online} +2 -2
  27. package/extensions/diagnostics-otel/node_modules/.bin/{openclaw → openclawbot-online} +2 -2
  28. package/extensions/discord/node_modules/.bin/{openclaw → openclawbot-online} +2 -2
  29. package/extensions/feishu/node_modules/.bin/openclawbot-online +21 -0
  30. package/extensions/google-antigravity-auth/node_modules/.bin/openclawbot-online +21 -0
  31. package/extensions/google-gemini-cli-auth/node_modules/.bin/openclawbot-online +21 -0
  32. package/extensions/googlechat/node_modules/.bin/openclawbot-online +21 -0
  33. package/extensions/imessage/node_modules/.bin/openclawbot-online +21 -0
  34. package/extensions/irc/node_modules/.bin/openclawbot-online +21 -0
  35. package/extensions/line/node_modules/.bin/openclawbot-online +21 -0
  36. package/extensions/llm-task/node_modules/.bin/openclawbot-online +21 -0
  37. package/extensions/lobster/node_modules/.bin/openclawbot-online +21 -0
  38. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  39. package/extensions/matrix/node_modules/.bin/openclawbot-online +21 -0
  40. package/extensions/mattermost/node_modules/.bin/openclawbot-online +21 -0
  41. package/extensions/memory-core/node_modules/.bin/openclawbot-online +21 -0
  42. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  43. package/extensions/memory-lancedb/node_modules/.bin/openclawbot-online +21 -0
  44. package/extensions/minimax-portal-auth/node_modules/.bin/openclawbot-online +21 -0
  45. package/extensions/msteams/node_modules/.bin/openclawbot-online +21 -0
  46. package/extensions/nextcloud-talk/node_modules/.bin/openclawbot-online +21 -0
  47. package/extensions/nostr/node_modules/.bin/openclawbot-online +21 -0
  48. package/extensions/open-prose/node_modules/.bin/openclawbot-online +21 -0
  49. package/extensions/signal/node_modules/.bin/openclawbot-online +21 -0
  50. package/extensions/slack/node_modules/.bin/openclawbot-online +21 -0
  51. package/extensions/telegram/node_modules/.bin/openclawbot-online +21 -0
  52. package/extensions/tlon/node_modules/.bin/openclawbot-online +21 -0
  53. package/extensions/twitch/node_modules/.bin/openclawbot-online +21 -0
  54. package/extensions/voice-call/node_modules/.bin/openclawbot-online +21 -0
  55. package/extensions/whatsapp/node_modules/.bin/openclawbot-online +21 -0
  56. package/extensions/zalo/node_modules/.bin/openclawbot-online +21 -0
  57. package/extensions/zalouser/node_modules/.bin/openclawbot-online +21 -0
  58. package/package.json +2 -2
  59. package/skills/GITHUB-RECORD-MANAGE.md +448 -0
  60. package/skills/MCKINSEY_REPORT_REPO_SKILL.md +586 -0
  61. package/skills/cloudflare-browser/SKILL.md +99 -0
  62. package/skills/cloudflare-browser/scripts/cdp-client.js +152 -0
  63. package/skills/cloudflare-browser/scripts/screenshot.js +108 -0
  64. package/skills/cloudflare-browser/scripts/video.js +156 -0
  65. package/skills/github-trending-skill.md +78 -0
  66. package/skills/github-triple-backup/SKILL.md +203 -0
  67. package/skills/mckinsey-product-analyzer-enhanced-SKILL.md +83 -0
  68. package/skills/npm-publish/SKILL.md +569 -0
  69. package/skills/web-search/SKILL.md +292 -0
  70. package/extensions/feishu/node_modules/.bin/openclaw +0 -21
  71. package/extensions/google-antigravity-auth/node_modules/.bin/openclaw +0 -21
  72. package/extensions/google-gemini-cli-auth/node_modules/.bin/openclaw +0 -21
  73. package/extensions/googlechat/node_modules/.bin/openclaw +0 -21
  74. package/extensions/imessage/node_modules/.bin/openclaw +0 -21
  75. package/extensions/irc/node_modules/.bin/openclaw +0 -21
  76. package/extensions/line/node_modules/.bin/openclaw +0 -21
  77. package/extensions/llm-task/node_modules/.bin/openclaw +0 -21
  78. package/extensions/lobster/node_modules/.bin/openclaw +0 -21
  79. package/extensions/matrix/node_modules/.bin/openclaw +0 -21
  80. package/extensions/mattermost/node_modules/.bin/openclaw +0 -21
  81. package/extensions/memory-core/node_modules/.bin/openclaw +0 -21
  82. package/extensions/memory-lancedb/node_modules/.bin/openclaw +0 -21
  83. package/extensions/minimax-portal-auth/node_modules/.bin/openclaw +0 -21
  84. package/extensions/msteams/node_modules/.bin/openclaw +0 -21
  85. package/extensions/nextcloud-talk/node_modules/.bin/openclaw +0 -21
  86. package/extensions/nostr/node_modules/.bin/openclaw +0 -21
  87. package/extensions/open-prose/node_modules/.bin/openclaw +0 -21
  88. package/extensions/signal/node_modules/.bin/openclaw +0 -21
  89. package/extensions/slack/node_modules/.bin/openclaw +0 -21
  90. package/extensions/telegram/node_modules/.bin/openclaw +0 -21
  91. package/extensions/tlon/node_modules/.bin/openclaw +0 -21
  92. package/extensions/twitch/node_modules/.bin/openclaw +0 -21
  93. package/extensions/voice-call/node_modules/.bin/openclaw +0 -21
  94. package/extensions/whatsapp/node_modules/.bin/openclaw +0 -21
  95. package/extensions/zalo/node_modules/.bin/openclaw +0 -21
  96. package/extensions/zalouser/node_modules/.bin/openclaw +0 -21
@@ -5,15 +5,15 @@ import "./model-selection-CiuArG_p.js";
5
5
  import "./github-copilot-token-CogCZKvg.js";
6
6
  import "./image-ops-Dh97_2kv.js";
7
7
  import "./config-C-ntI_H2.js";
8
- import "./pi-embedded-helpers-SQOypRTZ.js";
8
+ import "./pi-embedded-helpers-BAFrKOY7.js";
9
9
  import "./pi-model-discovery-DWTTaAgY.js";
10
- import "./chrome-BV9AEHrZ.js";
10
+ import "./chrome-B93eZyyX.js";
11
11
  import "./paths-CplGo16s.js";
12
12
  import "./tool-images-BZyf6LVv.js";
13
- import "./image-B78Jx9qG.js";
13
+ import "./image-gnkNU6DU.js";
14
14
  import "./redact-DO22U0Pj.js";
15
15
  import "./fetch-BNXMik6k.js";
16
- import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-HPc0dqrQ.js";
16
+ import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-mVyYB7ii.js";
17
17
 
18
18
  //#region src/media-understanding/audio-preflight.ts
19
19
  /**
@@ -8,16 +8,16 @@ import "./model-auth-BydmNGsf.js";
8
8
  import "./config-B1Lak1hu.js";
9
9
  import "./github-copilot-token-BNgUAEQd.js";
10
10
  import "./pi-model-discovery-Cexg1XRf.js";
11
- import "./pi-embedded-helpers-Cf6BCIzY.js";
12
- import "./chrome-COq9U_w_.js";
11
+ import "./pi-embedded-helpers-B3hccOks.js";
12
+ import "./chrome-DpL_cP3o.js";
13
13
  import "./frontmatter-Uu27Y56g.js";
14
14
  import "./store-vCSHC3DB.js";
15
15
  import "./paths-IeeQXC3x.js";
16
16
  import "./tool-images-8IRWR1Yu.js";
17
- import "./image-fCRnaf0J.js";
17
+ import "./image-DEpdqAE9.js";
18
18
  import "./redact-DcuzVizL.js";
19
19
  import "./fetch-CsbYB0fw.js";
20
- import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-ODT_HBEK.js";
20
+ import { a as runCapability, l as isAudioAttachment, n as createMediaAttachmentCache, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-Bmh3RTVY.js";
21
21
 
22
22
  //#region src/media-understanding/audio-preflight.ts
23
23
  /**
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.2.18",
3
- "commit": "eb4517a5c513b5e17bf08d34d6425105102ac45e",
4
- "builtAt": "2026-02-18T19:18:41.394Z"
2
+ "version": "2026.2.19",
3
+ "commit": null,
4
+ "builtAt": "2026-02-18T20:00:23.756Z"
5
5
  }
@@ -2,8 +2,8 @@ import "../../paths-WqPh06On.js";
2
2
  import { E as resolveAgentIdFromSessionKey, T as normalizeMainKey, l as ensureAgentWorkspace, w as normalizeAgentId } from "../../workspace-DY6tZu_v.js";
3
3
  import { _ as DEFAULT_CHAT_CHANNEL, d as defaultRuntime, l as createSubsystemLogger } from "../../exec-BYmAah2Z.js";
4
4
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds } from "../../agent-scope-BHgvkv-M.js";
5
- import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads, w as SILENT_REPLY_TOKEN } from "../../deliver-BDGogq3a.js";
6
- import { A as getSkillsSnapshotVersion, G as resolveAgentTimeoutMs, J as clearAgentRunContext, K as AGENT_LANE_NESTED, M as clearSessionAuthProfileOverride, N as applyModelOverrideToSessionEntry, O as resolveSendPolicy, P as applyVerboseOverride, T as hasNonzeroUsage, X as registerAgentRunContext, Y as emitAgentEvent, b as resolveSessionDeliveryTarget, g as runCliAgent, h as setCliSessionId, j as lookupContextTokens, k as getRemoteSkillEligibility, m as getCliSessionId, t as runEmbeddedPiAgent, w as deriveSessionTotalTokens, x as runWithModelFallback, y as resolveOutboundTarget } from "../../pi-embedded-CTa5VHvP.js";
5
+ import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads, w as SILENT_REPLY_TOKEN } from "../../deliver-BKYbU0oX.js";
6
+ import { A as getSkillsSnapshotVersion, G as resolveAgentTimeoutMs, J as clearAgentRunContext, K as AGENT_LANE_NESTED, M as clearSessionAuthProfileOverride, N as applyModelOverrideToSessionEntry, O as resolveSendPolicy, P as applyVerboseOverride, T as hasNonzeroUsage, X as registerAgentRunContext, Y as emitAgentEvent, b as resolveSessionDeliveryTarget, g as runCliAgent, h as setCliSessionId, j as lookupContextTokens, k as getRemoteSkillEligibility, m as getCliSessionId, t as runEmbeddedPiAgent, w as deriveSessionTotalTokens, x as runWithModelFallback, y as resolveOutboundTarget } from "../../pi-embedded-DNQT4VLy.js";
7
7
  import { F as getChannelPlugin, L as normalizeChannelId, b as resolveMessageChannel, f as INTERNAL_MESSAGE_CHANNEL, h as isInternalMessageChannel, m as isGatewayMessageChannel, p as isDeliverableMessageChannel, v as normalizeMessageChannel } from "../../image-ops-BClRhMv_.js";
8
8
  import "../../boolean-Bb19hm9Y.js";
9
9
  import { C as modelKey, E as resolveConfiguredModelRef, L as DEFAULT_CONTEXT_TOKENS, R as DEFAULT_MODEL, S as isCliProvider, h as ensureAuthProfileStore, k as resolveThinkingDefault, y as buildAllowedModelSet, z as DEFAULT_PROVIDER } from "../../model-auth-BydmNGsf.js";
@@ -14,13 +14,13 @@ import "../../send-CZOitdH_.js";
14
14
  import "../../send-BpHgBCht.js";
15
15
  import "../../github-copilot-token-BNgUAEQd.js";
16
16
  import "../../pi-model-discovery-Cexg1XRf.js";
17
- import { It as buildWorkspaceSkillSnapshot, J as loadSessionStore, Q as updateSessionStore, a as formatXHighModelHint, d as normalizeVerboseLevel, dt as resolveChannelResetConfig, ft as resolveSessionResetPolicy, i as formatThinkingLevels, l as normalizeThinkLevel, lt as resolveSessionKey, p as supportsXHighThinking, pt as resolveSessionResetType, st as normalizeAccountId, ut as evaluateSessionFreshness, vt as resolveExplicitAgentSessionKey, yt as resolveMainSessionKey } from "../../pi-embedded-helpers-Cf6BCIzY.js";
18
- import "../../chrome-COq9U_w_.js";
17
+ import { It as buildWorkspaceSkillSnapshot, J as loadSessionStore, Q as updateSessionStore, a as formatXHighModelHint, d as normalizeVerboseLevel, dt as resolveChannelResetConfig, ft as resolveSessionResetPolicy, i as formatThinkingLevels, l as normalizeThinkLevel, lt as resolveSessionKey, p as supportsXHighThinking, pt as resolveSessionResetType, st as normalizeAccountId, ut as evaluateSessionFreshness, vt as resolveExplicitAgentSessionKey, yt as resolveMainSessionKey } from "../../pi-embedded-helpers-B3hccOks.js";
18
+ import "../../chrome-DpL_cP3o.js";
19
19
  import "../../frontmatter-Uu27Y56g.js";
20
20
  import "../../store-vCSHC3DB.js";
21
21
  import { n as resolveSessionFilePath, s as resolveStorePath } from "../../paths-IeeQXC3x.js";
22
22
  import "../../tool-images-8IRWR1Yu.js";
23
- import "../../image-fCRnaf0J.js";
23
+ import "../../image-DEpdqAE9.js";
24
24
  import "../../manager-DWPBf2i7.js";
25
25
  import "../../sqlite-CyA_NN7Z.js";
26
26
  import "../../retry-BVBBRVE1.js";
@@ -29,7 +29,7 @@ import "../../common-D4cLHlE7.js";
29
29
  import "../../ir-CA-QjcUA.js";
30
30
  import "../../fetch-CsbYB0fw.js";
31
31
  import "../../render-CiikiGbn.js";
32
- import { s as loadModelCatalog } from "../../runner-ODT_HBEK.js";
32
+ import { s as loadModelCatalog } from "../../runner-Bmh3RTVY.js";
33
33
  import "../../send-DFB3bhBl.js";
34
34
  import "../../send-NMDQYHPk.js";
35
35
  import "../../channel-activity-BfMc-blq.js";
@@ -42,7 +42,7 @@ import crypto from "node:crypto";
42
42
  function createDefaultDeps() {
43
43
  return {
44
44
  sendMessageWhatsApp: async (...args) => {
45
- const { sendMessageWhatsApp } = await import("../../web-DmI5EQ27.js");
45
+ const { sendMessageWhatsApp } = await import("../../web-DWoyOyFX.js");
46
46
  return await sendMessageWhatsApp(...args);
47
47
  },
48
48
  sendMessageTelegram: async (...args) => {
@@ -2,8 +2,8 @@ import { s as resolveStateDir } from "../../paths-WqPh06On.js";
2
2
  import { E as resolveAgentIdFromSessionKey } from "../../workspace-DY6tZu_v.js";
3
3
  import { l as createSubsystemLogger } from "../../exec-BYmAah2Z.js";
4
4
  import { s as resolveAgentWorkspaceDir } from "../../agent-scope-BHgvkv-M.js";
5
- import "../../deliver-BDGogq3a.js";
6
- import { Z as hasInterSessionUserProvenance } from "../../pi-embedded-CTa5VHvP.js";
5
+ import "../../deliver-BKYbU0oX.js";
6
+ import { Z as hasInterSessionUserProvenance } from "../../pi-embedded-DNQT4VLy.js";
7
7
  import "../../image-ops-BClRhMv_.js";
8
8
  import "../../boolean-Bb19hm9Y.js";
9
9
  import "../../model-auth-BydmNGsf.js";
@@ -13,13 +13,13 @@ import "../../send-CZOitdH_.js";
13
13
  import "../../send-BpHgBCht.js";
14
14
  import "../../github-copilot-token-BNgUAEQd.js";
15
15
  import "../../pi-model-discovery-Cexg1XRf.js";
16
- import "../../pi-embedded-helpers-Cf6BCIzY.js";
17
- import "../../chrome-COq9U_w_.js";
16
+ import "../../pi-embedded-helpers-B3hccOks.js";
17
+ import "../../chrome-DpL_cP3o.js";
18
18
  import "../../frontmatter-Uu27Y56g.js";
19
19
  import "../../store-vCSHC3DB.js";
20
20
  import "../../paths-IeeQXC3x.js";
21
21
  import "../../tool-images-8IRWR1Yu.js";
22
- import "../../image-fCRnaf0J.js";
22
+ import "../../image-DEpdqAE9.js";
23
23
  import "../../manager-DWPBf2i7.js";
24
24
  import "../../sqlite-CyA_NN7Z.js";
25
25
  import "../../retry-BVBBRVE1.js";
@@ -28,7 +28,7 @@ import "../../common-D4cLHlE7.js";
28
28
  import "../../ir-CA-QjcUA.js";
29
29
  import "../../fetch-CsbYB0fw.js";
30
30
  import "../../render-CiikiGbn.js";
31
- import "../../runner-ODT_HBEK.js";
31
+ import "../../runner-Bmh3RTVY.js";
32
32
  import "../../send-DFB3bhBl.js";
33
33
  import "../../send-NMDQYHPk.js";
34
34
  import "../../channel-activity-BfMc-blq.js";
@@ -1 +1 @@
1
- d9294ba113392b42f7063352bca4578d39e4179104173967a451c24039bfc60a
1
+ 0e653ef36852ea0b7bb212739e4ef02e648693f3856b52a3c1dddbbd111b824a
@@ -8,7 +8,7 @@ import { execFileSync, spawn } from "node:child_process";
8
8
  import { randomBytes } from "node:crypto";
9
9
  import net from "node:net";
10
10
  import { createServer } from "node:http";
11
- import WebSocket$1, { WebSocketServer } from "ws";
11
+ import WebSocket, { WebSocketServer } from "ws";
12
12
  import { Buffer as Buffer$1 } from "node:buffer";
13
13
 
14
14
  //#region src/browser/constants.ts
@@ -172,7 +172,7 @@ async function ensureChromeExtensionRelayServer(opts) {
172
172
  let nextExtensionId = 1;
173
173
  const sendToExtension = async (payload) => {
174
174
  const ws = extensionWs;
175
- if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
175
+ if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
176
176
  ws.send(JSON.stringify(payload));
177
177
  return await new Promise((resolve, reject) => {
178
178
  const timer = setTimeout(() => {
@@ -189,12 +189,12 @@ async function ensureChromeExtensionRelayServer(opts) {
189
189
  const broadcastToCdpClients = (evt) => {
190
190
  const msg = JSON.stringify(evt);
191
191
  for (const ws of cdpClients) {
192
- if (ws.readyState !== WebSocket$1.OPEN) continue;
192
+ if (ws.readyState !== WebSocket.OPEN) continue;
193
193
  ws.send(msg);
194
194
  }
195
195
  };
196
196
  const sendResponseToCdp = (ws, res) => {
197
- if (ws.readyState !== WebSocket$1.OPEN) return;
197
+ if (ws.readyState !== WebSocket.OPEN) return;
198
198
  ws.send(JSON.stringify(res));
199
199
  };
200
200
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -414,7 +414,7 @@ async function ensureChromeExtensionRelayServer(opts) {
414
414
  wssExtension.on("connection", (ws) => {
415
415
  extensionWs = ws;
416
416
  const ping = setInterval(() => {
417
- if (ws.readyState !== WebSocket$1.OPEN) return;
417
+ if (ws.readyState !== WebSocket.OPEN) return;
418
418
  ws.send(JSON.stringify({ method: "ping" }));
419
419
  }, 5e3);
420
420
  ws.on("message", (data) => {
@@ -711,7 +711,7 @@ async function fetchJson(url, timeoutMs = 1500, init) {
711
711
  }
712
712
  async function withCdpSocket(wsUrl, fn, opts) {
713
713
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
714
- const ws = new WebSocket$1(wsUrl, {
714
+ const ws = new WebSocket(wsUrl, {
715
715
  handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
716
716
  ...Object.keys(headers).length ? { headers } : {}
717
717
  });
@@ -1566,7 +1566,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1566
1566
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1567
1567
  return await new Promise((resolve) => {
1568
1568
  const headers = getHeadersWithAuth(wsUrl);
1569
- const ws = new WebSocket$1(wsUrl, {
1569
+ const ws = new WebSocket(wsUrl, {
1570
1570
  handshakeTimeout: timeoutMs,
1571
1571
  ...Object.keys(headers).length ? { headers } : {}
1572
1572
  });
@@ -8,7 +8,7 @@ import { execFileSync, spawn } from "node:child_process";
8
8
  import { randomBytes } from "node:crypto";
9
9
  import net from "node:net";
10
10
  import { createServer } from "node:http";
11
- import WebSocket, { WebSocketServer } from "ws";
11
+ import WebSocket$1, { WebSocketServer } from "ws";
12
12
  import { Buffer as Buffer$1 } from "node:buffer";
13
13
 
14
14
  //#region src/browser/constants.ts
@@ -172,7 +172,7 @@ async function ensureChromeExtensionRelayServer(opts) {
172
172
  let nextExtensionId = 1;
173
173
  const sendToExtension = async (payload) => {
174
174
  const ws = extensionWs;
175
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
175
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
176
176
  ws.send(JSON.stringify(payload));
177
177
  return await new Promise((resolve, reject) => {
178
178
  const timer = setTimeout(() => {
@@ -189,12 +189,12 @@ async function ensureChromeExtensionRelayServer(opts) {
189
189
  const broadcastToCdpClients = (evt) => {
190
190
  const msg = JSON.stringify(evt);
191
191
  for (const ws of cdpClients) {
192
- if (ws.readyState !== WebSocket.OPEN) continue;
192
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
193
193
  ws.send(msg);
194
194
  }
195
195
  };
196
196
  const sendResponseToCdp = (ws, res) => {
197
- if (ws.readyState !== WebSocket.OPEN) return;
197
+ if (ws.readyState !== WebSocket$1.OPEN) return;
198
198
  ws.send(JSON.stringify(res));
199
199
  };
200
200
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -414,7 +414,7 @@ async function ensureChromeExtensionRelayServer(opts) {
414
414
  wssExtension.on("connection", (ws) => {
415
415
  extensionWs = ws;
416
416
  const ping = setInterval(() => {
417
- if (ws.readyState !== WebSocket.OPEN) return;
417
+ if (ws.readyState !== WebSocket$1.OPEN) return;
418
418
  ws.send(JSON.stringify({ method: "ping" }));
419
419
  }, 5e3);
420
420
  ws.on("message", (data) => {
@@ -711,7 +711,7 @@ async function fetchJson(url, timeoutMs = 1500, init) {
711
711
  }
712
712
  async function withCdpSocket(wsUrl, fn, opts) {
713
713
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
714
- const ws = new WebSocket(wsUrl, {
714
+ const ws = new WebSocket$1(wsUrl, {
715
715
  handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
716
716
  ...Object.keys(headers).length ? { headers } : {}
717
717
  });
@@ -1566,7 +1566,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1566
1566
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1567
1567
  return await new Promise((resolve) => {
1568
1568
  const headers = getHeadersWithAuth(wsUrl);
1569
- const ws = new WebSocket(wsUrl, {
1569
+ const ws = new WebSocket$1(wsUrl, {
1570
1570
  handshakeTimeout: timeoutMs,
1571
1571
  ...Object.keys(headers).length ? { headers } : {}
1572
1572
  });
@@ -3,7 +3,7 @@ import { s as resolveStateDir } from "./paths-WqPh06On.js";
3
3
  import { C as normalizeAccountId$1 } from "./workspace-DY6tZu_v.js";
4
4
  import { A as escapeRegExp, S as getActivePluginRegistry, l as createSubsystemLogger } from "./exec-BYmAah2Z.js";
5
5
  import { F as getChannelPlugin, L as normalizeChannelId } from "./image-ops-BClRhMv_.js";
6
- import { K as appendAssistantMessageToSessionTranscript, m as isMessagingToolDuplicate, q as resolveMirroredTranscriptText, xt as getChannelDock } from "./pi-embedded-helpers-Cf6BCIzY.js";
6
+ import { K as appendAssistantMessageToSessionTranscript, m as isMessagingToolDuplicate, q as resolveMirroredTranscriptText, xt as getChannelDock } from "./pi-embedded-helpers-B3hccOks.js";
7
7
  import { _ as parseFenceSpans, c as chunkByParagraph, m as resolveTextChunkLimit, o as resolveMarkdownTableMode, p as resolveChunkMode, u as chunkMarkdownTextWithMode } from "./ir-CA-QjcUA.js";
8
8
  import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-DFB3bhBl.js";
9
9
  import path from "node:path";
@@ -4,7 +4,7 @@ import { j as normalizeAccountId$1 } from "./agent-scope-D-8aOoNv.js";
4
4
  import { k as escapeRegExp, l as createSubsystemLogger, x as getActivePluginRegistry } from "./exec-B57SA7gZ.js";
5
5
  import { I as normalizeChannelId, N as mediaKindFromMime, P as getChannelPlugin } from "./image-ops-Dh97_2kv.js";
6
6
  import { n as loadConfig } from "./config-C-ntI_H2.js";
7
- import { K as appendAssistantMessageToSessionTranscript, Nt as saveMediaBuffer, bt as getChannelDock, ln as resolveSignalAccount, m as isMessagingToolDuplicate, q as resolveMirroredTranscriptText } from "./pi-embedded-helpers-SQOypRTZ.js";
7
+ import { K as appendAssistantMessageToSessionTranscript, Nt as saveMediaBuffer, bt as getChannelDock, ln as resolveSignalAccount, m as isMessagingToolDuplicate, q as resolveMirroredTranscriptText } from "./pi-embedded-helpers-BAFrKOY7.js";
8
8
  import { _ as parseFenceSpans, c as chunkByParagraph, i as loadWebMedia, m as resolveTextChunkLimit, n as markdownToIR, o as resolveMarkdownTableMode, p as resolveChunkMode, t as chunkMarkdownIR, u as chunkMarkdownTextWithMode } from "./ir-DLFA4Gbl.js";
9
9
  import { a as fetchWithTimeout, i as bindAbortRelay } from "./fetch-BNXMik6k.js";
10
10
  import path from "node:path";
@@ -2,17 +2,17 @@ import "./paths-BJLxvjdu.js";
2
2
  import { r as resolveAgentDir, s as resolveAgentWorkspaceDir, y as ensureAgentWorkspace } from "./agent-scope-D-8aOoNv.js";
3
3
  import "./exec-B57SA7gZ.js";
4
4
  import { J as DEFAULT_PROVIDER, d as resolveThinkingDefault, q as DEFAULT_MODEL } from "./model-selection-CiuArG_p.js";
5
- import { F as resolveAgentIdentity, N as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-DKqSz39c.js";
5
+ import { F as resolveAgentIdentity, N as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-CcSZTBlA.js";
6
6
  import "./github-copilot-token-CogCZKvg.js";
7
- import "./deliver-nGHybBtV.js";
7
+ import "./deliver-C6HvbVCJ.js";
8
8
  import "./image-ops-Dh97_2kv.js";
9
9
  import "./config-C-ntI_H2.js";
10
- import { J as loadSessionStore, Z as saveSessionStore } from "./pi-embedded-helpers-SQOypRTZ.js";
10
+ import { J as loadSessionStore, Z as saveSessionStore } from "./pi-embedded-helpers-BAFrKOY7.js";
11
11
  import "./pi-model-discovery-DWTTaAgY.js";
12
- import "./chrome-BV9AEHrZ.js";
12
+ import "./chrome-B93eZyyX.js";
13
13
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-CplGo16s.js";
14
14
  import "./tool-images-BZyf6LVv.js";
15
- import "./image-B78Jx9qG.js";
15
+ import "./image-gnkNU6DU.js";
16
16
  import "./manager-YzBdtUP2.js";
17
17
  import "./sqlite-DHxUSv0Q.js";
18
18
  import "./redact-DO22U0Pj.js";
@@ -20,6 +20,6 @@ import "./common-CgOwion4.js";
20
20
  import "./ir-DLFA4Gbl.js";
21
21
  import "./fetch-BNXMik6k.js";
22
22
  import "./active-listener-Sr2eLjbE.js";
23
- import "./runner-HPc0dqrQ.js";
23
+ import "./runner-mVyYB7ii.js";
24
24
 
25
25
  export { DEFAULT_MODEL, DEFAULT_PROVIDER, ensureAgentWorkspace, loadSessionStore, resolveAgentDir, resolveAgentIdentity, resolveAgentTimeoutMs, resolveAgentWorkspaceDir, resolveSessionFilePath, resolveStorePath, resolveThinkingDefault, runEmbeddedPiAgent, saveSessionStore };
@@ -3,7 +3,7 @@ import { H as shortenHomeInString, N as isRecord } from "./exec-BYmAah2Z.js";
3
3
  import { M as resolveImplicitBedrockProvider, N as resolveImplicitCopilotProvider, P as resolveImplicitProviders, V as normalizeSecretInput, _ as resolveOpenClawAgentDir, j as normalizeProviders, r as requireApiKey, t as getApiKeyForModel } from "./model-auth-BydmNGsf.js";
4
4
  import { n as loadConfig } from "./config-B1Lak1hu.js";
5
5
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Cexg1XRf.js";
6
- import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-Cf6BCIzY.js";
6
+ import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-B3hccOks.js";
7
7
  import { n as redactToolDetail } from "./redact-DcuzVizL.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as isRecord, V as shortenHomeInString } from "./exec-B57SA7gZ.js";
3
3
  import { H as resolveOpenClawAgentDir, W as normalizeSecretInput, g as resolveImplicitProviders, h as resolveImplicitCopilotProvider, m as resolveImplicitBedrockProvider, p as normalizeProviders, x as requireApiKey, y as getApiKeyForModel } from "./model-selection-CiuArG_p.js";
4
4
  import { n as loadConfig } from "./config-C-ntI_H2.js";
5
- import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-SQOypRTZ.js";
5
+ import { V as sanitizeUserFacingText } from "./pi-embedded-helpers-BAFrKOY7.js";
6
6
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DWTTaAgY.js";
7
7
  import { n as redactToolDetail } from "./redact-DO22U0Pj.js";
8
8
  import path from "node:path";
@@ -2,8 +2,8 @@ import "./paths-WqPh06On.js";
2
2
  import "./workspace-DY6tZu_v.js";
3
3
  import "./exec-BYmAah2Z.js";
4
4
  import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BHgvkv-M.js";
5
- import "./deliver-BDGogq3a.js";
6
- import { t as runEmbeddedPiAgent } from "./pi-embedded-CTa5VHvP.js";
5
+ import "./deliver-BKYbU0oX.js";
6
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-DNQT4VLy.js";
7
7
  import "./image-ops-BClRhMv_.js";
8
8
  import "./boolean-Bb19hm9Y.js";
9
9
  import "./model-auth-BydmNGsf.js";
@@ -13,13 +13,13 @@ import "./send-CZOitdH_.js";
13
13
  import "./send-BpHgBCht.js";
14
14
  import "./github-copilot-token-BNgUAEQd.js";
15
15
  import "./pi-model-discovery-Cexg1XRf.js";
16
- import "./pi-embedded-helpers-Cf6BCIzY.js";
17
- import "./chrome-COq9U_w_.js";
16
+ import "./pi-embedded-helpers-B3hccOks.js";
17
+ import "./chrome-DpL_cP3o.js";
18
18
  import "./frontmatter-Uu27Y56g.js";
19
19
  import "./store-vCSHC3DB.js";
20
20
  import "./paths-IeeQXC3x.js";
21
21
  import "./tool-images-8IRWR1Yu.js";
22
- import "./image-fCRnaf0J.js";
22
+ import "./image-DEpdqAE9.js";
23
23
  import "./manager-DWPBf2i7.js";
24
24
  import "./sqlite-CyA_NN7Z.js";
25
25
  import "./retry-BVBBRVE1.js";
@@ -28,7 +28,7 @@ import "./common-D4cLHlE7.js";
28
28
  import "./ir-CA-QjcUA.js";
29
29
  import "./fetch-CsbYB0fw.js";
30
30
  import "./render-CiikiGbn.js";
31
- import "./runner-ODT_HBEK.js";
31
+ import "./runner-Bmh3RTVY.js";
32
32
  import "./send-DFB3bhBl.js";
33
33
  import "./send-NMDQYHPk.js";
34
34
  import "./channel-activity-BfMc-blq.js";
@@ -4,17 +4,17 @@ import { $ as warn, A as formatTerminalLink, B as safeParseJson, C as setActiveP
4
4
  import { A as isTruthyEnvValue, B as ensureAuthProfileStore, C as resolveEnvApiKey, D as resolveShellEnvFallbackTimeoutMs, F as markAuthProfileFailure, G as resolveAuthProfileDisplayLabel, H as resolveOpenClawAgentDir, I as markAuthProfileUsed, J as DEFAULT_PROVIDER, K as DEFAULT_CONTEXT_TOKENS, L as resolveApiKeyForProfile, N as resolveAuthProfileOrder, P as isProfileInCooldown, R as listProfilesForProvider, S as resolveApiKeyForProvider, T as getShellPathFromLoginShell, U as withFileLock$1, V as resolveAuthStorePathForDisplay, W as normalizeSecretInput, _ as OLLAMA_NATIVE_BASE_URL, a as modelKey, b as getCustomProviderApiKey, c as resolveConfiguredModelRef, d as resolveThinkingDefault, i as isCliProvider, j as parseBooleanValue$1, l as resolveDefaultModelForAgent, n as buildConfiguredAllowlistKeys, o as normalizeProviderId, q as DEFAULT_MODEL, r as buildModelAliasIndex, t as buildAllowedModelSet, u as resolveModelRefFromString, v as createOllamaStreamFn, w as resolveModelAuthMode, x as requireApiKey, y as getApiKeyForModel, z as markAuthProfileGood } from "./model-selection-CiuArG_p.js";
5
5
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-CogCZKvg.js";
6
6
  import { n as resolveCliName, t as formatCliCommand } from "./command-format-qUVxzqYm.js";
7
- import { A as isSilentReplyText, C as parseInlineDirectives$1, D as initializeGlobalHookRunner, E as getGlobalHookRunner, O as HEARTBEAT_TOKEN, S as splitMediaFromOutput, T as wrapFetchWithAbortSignal, _ as buildTargetResolverSignature, a as applyReplyThreading, b as throwIfAborted, c as shouldSuppressMessagingToolReplies, d as sendMessageSignal, f as sendReadReceiptSignal, g as streamSignalEvents, h as signalRpcRequest, i as applyReplyTagsToPayload, k as SILENT_REPLY_TOKEN, l as createReplyToModeFilterForChannel, m as signalCheck, o as filterMessagingToolDuplicates, p as sendTypingSignal, r as normalizeReplyPayloadsForDelivery, s as isRenderablePayload, t as deliverOutboundPayloads, u as resolveReplyToMode, v as normalizeChannelTargetInput, w as resolveFetch, x as parseReplyDirectives, y as normalizeTargetForProvider } from "./deliver-nGHybBtV.js";
7
+ import { A as isSilentReplyText, C as parseInlineDirectives$1, D as initializeGlobalHookRunner, E as getGlobalHookRunner, O as HEARTBEAT_TOKEN, S as splitMediaFromOutput, T as wrapFetchWithAbortSignal, _ as buildTargetResolverSignature, a as applyReplyThreading, b as throwIfAborted, c as shouldSuppressMessagingToolReplies, d as sendMessageSignal, f as sendReadReceiptSignal, g as streamSignalEvents, h as signalRpcRequest, i as applyReplyTagsToPayload, k as SILENT_REPLY_TOKEN, l as createReplyToModeFilterForChannel, m as signalCheck, o as filterMessagingToolDuplicates, p as sendTypingSignal, r as normalizeReplyPayloadsForDelivery, s as isRenderablePayload, t as deliverOutboundPayloads, u as resolveReplyToMode, v as normalizeChannelTargetInput, w as resolveFetch, x as parseReplyDirectives, y as normalizeTargetForProvider } from "./deliver-C6HvbVCJ.js";
8
8
  import { A as normalizeMimeType$1, B as listTelegramAccountIds, C as detectMime, D as isAudioFileName, E as imageMimeFromFormat, F as listChannelPlugins, H as resolveTelegramToken, I as normalizeChannelId$1, J as normalizeChatType, K as resolveSlackAppToken, L as isWhatsAppGroupJid, N as mediaKindFromMime, O as isGifMedia, P as getChannelPlugin, R as normalizeWhatsAppTarget, S as GATEWAY_CLIENT_NAMES, T as getFileExtension, U as listBindings, V as resolveTelegramAccount, W as resolveSlackAccount, X as resolveDiscordAccount, Y as listEnabledDiscordAccounts, Z as normalizeDiscordToken, _ as normalizeMessageChannel, a as resizeToJpeg, b as GATEWAY_CLIENT_IDS, f as INTERNAL_MESSAGE_CHANNEL, g as listDeliverableMessageChannels, h as isMarkdownCapableMessageChannel, j as MAX_IMAGE_BYTES, l as isBlockedHostname, m as isInternalMessageChannel, n as getImageMetadata, o as SsrFBlockedError, p as isDeliverableMessageChannel, q as resolveSlackBotToken, u as isPrivateIpAddress, v as resolveGatewayMessageChannel, w as extensionForMime, x as GATEWAY_CLIENT_MODES, y as resolveMessageChannel, z as listEnabledTelegramAccounts } from "./image-ops-Dh97_2kv.js";
9
9
  import { A as resolveAgentMaxConcurrent, C as setConfigOverride, D as setConfigValueAtPath, E as parseConfigPath, F as logWebSelfId, I as logoutWeb, M as resolveWhatsAppAccount, O as unsetConfigValueAtPath, P as getWebAuthAgeMs, S as resetConfigOverrides, T as getConfigValueAtPath, U as webAuthExists, _ as applyTestPluginDefaults, a as writeConfigFile, b as resolveMemorySlotDecision, c as TELEGRAM_COMMAND_NAME_PATTERN, d as parseDurationMs, f as validateJsonSchemaValue, i as resolveConfigSnapshotHash, j as VERSION, k as isSafeExecutableValue, l as normalizeTelegramCommandName, m as discoverOpenClawPlugins, n as loadConfig, o as validateConfigObjectWithPlugins, p as loadPluginManifestRegistry, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as normalizePluginsConfig, w as unsetConfigOverride, x as getConfigOverrides, y as resolveEnableState, z as readWebSelfId } from "./config-C-ntI_H2.js";
10
- import { $ as updateSessionStore, $t as expandPolicyWithPluginGroups, A as isCompactionFailureError, At as resolveBrowserConfig, B as parseImageSizeError, Bt as resolveSkillsPromptForRun, C as formatAssistantErrorText, Ct as resolveChannelGroupPolicy, D as isAuthAssistantError, Dt as resolveGroupSessionKey, E as getApiErrorPayloadFingerprint, Et as resolveConversationLabel, F as isRateLimitAssistantError, Ft as resolvePathsWithinRoot, G as extractDeliveryInfo, Gt as applySkillEnvOverrides, H as ensureSandboxWorkspaceForSession, Ht as assertMediaNotDataUrl, I as isRawApiErrorPayload, It as getBridgeAuthForPort, J as loadSessionStore, Jt as resolveBrowserControlAuth, K as appendAssistantMessageToSessionTranscript, Kt as applySkillEnvOverridesFromSnapshot, L as isTimeoutErrorMessage, Lt as buildWorkspaceSkillCommandSpecs, M as isFailoverAssistantError, Mt as getMediaDir, N as isFailoverErrorMessage, Nt as saveMediaBuffer, O as isBillingAssistantError, Ot as createBrowserRouteContext, P as isLikelyContextOverflowError, Pt as DEFAULT_UPLOAD_DIR, Q as updateLastRoute, Qt as collectExplicitAllowlist, R as isTransientHttpError, Rt as buildWorkspaceSkillSnapshot, S as classifyFailoverReason, St as resolveIMessageAccount, T as formatRawAssistantErrorForUi, Tt as resolveChannelGroupToolsPolicy, U as resolveSandboxContext, Ut as assertSandboxPath, V as sanitizeUserFacingText, Vt as resolvePluginSkillDirs, W as resolveSandboxRuntimeStatus, Wt as resolveSandboxedMediaSource, X as recordSessionMetaFromInbound, Xt as applyOwnerOnlyToolPolicy, Y as readSessionUpdatedAt, Yt as resolveSandboxConfigForAgent, Zt as buildPluginToolGroups, _ as sanitizeSessionMessagesImages, _t as canonicalizeMainSessionAlias, a as formatXHighModelHint, an as ensureSessionHeader, at as mergeDeliveryContext, b as isGoogleModelApi, bt as getChannelDock, c as normalizeReasoningLevel, cn as listEnabledSignalAccounts, ct as acquireSessionWriteLock, d as normalizeVerboseLevel, dt as resolveChannelResetConfig, en as expandToolGroups, et as updateSessionStoreEntry, f as resolveResponseUsageMode, ft as resolveSessionResetPolicy, g as normalizeTextForComparison, gt as resolveFreshSessionTotalTokens, h as isMessagingToolDuplicateNormalized, ht as DEFAULT_RESET_TRIGGERS, i as formatThinkingLevels, in as buildBootstrapContextFiles, it as deliveryContextKey, j as isContextOverflowError, jt as resolveProfile, k as isCloudCodeAssistFormatError, kt as registerBrowserRoutes, l as normalizeThinkLevel, ln as resolveSignalAccount, lt as resolveSessionKey$1, mt as resolveThreadFlag, n as validateGeminiTurns, nn as resolveToolProfilePolicy, nt as resolveCacheTtlMs$1, o as listThinkingLevels, on as resolveBootstrapMaxChars, ot as normalizeDeliveryContext, p as supportsXHighThinking, pt as resolveSessionResetType, qt as ensureBrowserControlAuth, r as pickFallbackThinkingLevel, rn as stripPluginOnlyAllowlist, rt as deliveryContextFromSession, s as normalizeElevatedLevel, sn as sanitizeGoogleTurnOrdering, st as normalizeSessionDeliveryFields, t as validateAnthropicTurns, tn as normalizeToolName, tt as isCacheEnabled, u as normalizeUsageDisplay, ut as evaluateSessionFreshness, v as downgradeOpenAIReasoningBlocks, vt as resolveMainSessionKey, w as formatBillingErrorMessage, wt as resolveChannelGroupRequireMention, x as BILLING_ERROR_USER_MESSAGE, xt as listChannelDocks, y as isAntigravityClaude, yt as deriveSessionMetaPatch, z as parseImageDimensionError, zt as loadWorkspaceSkillEntries } from "./pi-embedded-helpers-SQOypRTZ.js";
10
+ import { $ as updateSessionStore, $t as expandPolicyWithPluginGroups, A as isCompactionFailureError, At as resolveBrowserConfig, B as parseImageSizeError, Bt as resolveSkillsPromptForRun, C as formatAssistantErrorText, Ct as resolveChannelGroupPolicy, D as isAuthAssistantError, Dt as resolveGroupSessionKey, E as getApiErrorPayloadFingerprint, Et as resolveConversationLabel, F as isRateLimitAssistantError, Ft as resolvePathsWithinRoot, G as extractDeliveryInfo, Gt as applySkillEnvOverrides, H as ensureSandboxWorkspaceForSession, Ht as assertMediaNotDataUrl, I as isRawApiErrorPayload, It as getBridgeAuthForPort, J as loadSessionStore, Jt as resolveBrowserControlAuth, K as appendAssistantMessageToSessionTranscript, Kt as applySkillEnvOverridesFromSnapshot, L as isTimeoutErrorMessage, Lt as buildWorkspaceSkillCommandSpecs, M as isFailoverAssistantError, Mt as getMediaDir, N as isFailoverErrorMessage, Nt as saveMediaBuffer, O as isBillingAssistantError, Ot as createBrowserRouteContext, P as isLikelyContextOverflowError, Pt as DEFAULT_UPLOAD_DIR, Q as updateLastRoute, Qt as collectExplicitAllowlist, R as isTransientHttpError, Rt as buildWorkspaceSkillSnapshot, S as classifyFailoverReason, St as resolveIMessageAccount, T as formatRawAssistantErrorForUi, Tt as resolveChannelGroupToolsPolicy, U as resolveSandboxContext, Ut as assertSandboxPath, V as sanitizeUserFacingText, Vt as resolvePluginSkillDirs, W as resolveSandboxRuntimeStatus, Wt as resolveSandboxedMediaSource, X as recordSessionMetaFromInbound, Xt as applyOwnerOnlyToolPolicy, Y as readSessionUpdatedAt, Yt as resolveSandboxConfigForAgent, Zt as buildPluginToolGroups, _ as sanitizeSessionMessagesImages, _t as canonicalizeMainSessionAlias, a as formatXHighModelHint, an as ensureSessionHeader, at as mergeDeliveryContext, b as isGoogleModelApi, bt as getChannelDock, c as normalizeReasoningLevel, cn as listEnabledSignalAccounts, ct as acquireSessionWriteLock, d as normalizeVerboseLevel, dt as resolveChannelResetConfig, en as expandToolGroups, et as updateSessionStoreEntry, f as resolveResponseUsageMode, ft as resolveSessionResetPolicy, g as normalizeTextForComparison, gt as resolveFreshSessionTotalTokens, h as isMessagingToolDuplicateNormalized, ht as DEFAULT_RESET_TRIGGERS, i as formatThinkingLevels, in as buildBootstrapContextFiles, it as deliveryContextKey, j as isContextOverflowError, jt as resolveProfile, k as isCloudCodeAssistFormatError, kt as registerBrowserRoutes, l as normalizeThinkLevel, ln as resolveSignalAccount, lt as resolveSessionKey$1, mt as resolveThreadFlag, n as validateGeminiTurns, nn as resolveToolProfilePolicy, nt as resolveCacheTtlMs$1, o as listThinkingLevels, on as resolveBootstrapMaxChars, ot as normalizeDeliveryContext, p as supportsXHighThinking, pt as resolveSessionResetType, qt as ensureBrowserControlAuth, r as pickFallbackThinkingLevel, rn as stripPluginOnlyAllowlist, rt as deliveryContextFromSession, s as normalizeElevatedLevel, sn as sanitizeGoogleTurnOrdering, st as normalizeSessionDeliveryFields, t as validateAnthropicTurns, tn as normalizeToolName, tt as isCacheEnabled, u as normalizeUsageDisplay, ut as evaluateSessionFreshness, v as downgradeOpenAIReasoningBlocks, vt as resolveMainSessionKey, w as formatBillingErrorMessage, wt as resolveChannelGroupRequireMention, x as BILLING_ERROR_USER_MESSAGE, xt as listChannelDocks, y as isAntigravityClaude, yt as deriveSessionMetaPatch, z as parseImageDimensionError, zt as loadWorkspaceSkillEntries } from "./pi-embedded-helpers-BAFrKOY7.js";
11
11
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DWTTaAgY.js";
12
- import { S as pickPrimaryTailnetIPv4, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as ensureChromeExtensionRelayServer, x as pickPrimaryLanIPv4, y as rawDataToString } from "./chrome-BV9AEHrZ.js";
12
+ import { S as pickPrimaryTailnetIPv4, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, _ as ensureChromeExtensionRelayServer, x as pickPrimaryLanIPv4, y as rawDataToString } from "./chrome-B93eZyyX.js";
13
13
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-B8y79jwX.js";
14
14
  import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath } from "./paths-CplGo16s.js";
15
15
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BiU0SOrl.js";
16
16
  import { n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-BZyf6LVv.js";
17
- import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as ensureOpenClawModelsJson, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractAssistantThinking, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as resolveToolDisplay, y as stripReasoningTagsFromText } from "./image-B78Jx9qG.js";
17
+ import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as ensureOpenClawModelsJson, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractAssistantThinking, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as resolveToolDisplay, y as stripReasoningTagsFromText } from "./image-gnkNU6DU.js";
18
18
  import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-YzBdtUP2.js";
19
19
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-DHxUSv0Q.js";
20
20
  import { t as redactSensitiveText } from "./redact-DO22U0Pj.js";
@@ -22,7 +22,7 @@ import { a as readNumberParam, c as readStringOrNumberParam, i as jsonResult, l
22
22
  import { _ as parseFenceSpans, a as loadWebMediaRaw, d as chunkText, f as chunkTextWithMode, g as isSafeFenceBreak, h as findFenceSpanAt, i as loadWebMedia, l as chunkMarkdownText, m as resolveTextChunkLimit, n as markdownToIR, o as resolveMarkdownTableMode, p as resolveChunkMode, s as chunkByNewline, t as chunkMarkdownIR, u as chunkMarkdownTextWithMode } from "./ir-DLFA4Gbl.js";
23
23
  import { a as fetchWithTimeout, i as bindAbortRelay, n as fetchRemoteMedia, r as fetchWithSsrFGuard } from "./fetch-BNXMik6k.js";
24
24
  import { a as normalizePollDurationHours, i as convertMarkdownTables, o as normalizePollInput, s as renderMarkdownWithMarkers, t as getActiveWebListener } from "./active-listener-Sr2eLjbE.js";
25
- import { _ as applyTemplate, a as runCapability, c as modelSupportsVision, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as findModelInCatalog, p as resolveTimeoutMs$1, r as normalizeMediaAttachments, s as loadModelCatalog, t as buildProviderRegistry, u as resolveAttachmentKind } from "./runner-HPc0dqrQ.js";
25
+ import { _ as applyTemplate, a as runCapability, c as modelSupportsVision, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as findModelInCatalog, p as resolveTimeoutMs$1, r as normalizeMediaAttachments, s as loadModelCatalog, t as buildProviderRegistry, u as resolveAttachmentKind } from "./runner-mVyYB7ii.js";
26
26
  import { createRequire } from "node:module";
27
27
  import * as path$1 from "node:path";
28
28
  import path from "node:path";
@@ -44,7 +44,7 @@ import * as net$1 from "node:net";
44
44
  import net from "node:net";
45
45
  import { createServer } from "node:http";
46
46
  import { ProxyAgent, fetch as fetch$1 } from "undici";
47
- import WebSocket$1, { WebSocket } from "ws";
47
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
48
48
  import { Buffer as Buffer$1 } from "node:buffer";
49
49
  import { createJiti } from "jiti";
50
50
  import { Type } from "@sinclair/typebox";
@@ -7683,7 +7683,7 @@ var GatewayClient = class {
7683
7683
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
7684
7684
  });
7685
7685
  }
7686
- this.ws = new WebSocket(url, wsOptions);
7686
+ this.ws = new WebSocket$1(url, wsOptions);
7687
7687
  this.ws.on("open", () => {
7688
7688
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
7689
7689
  const tlsError = this.validateTlsFingerprint();
@@ -7891,7 +7891,7 @@ var GatewayClient = class {
7891
7891
  return null;
7892
7892
  }
7893
7893
  async request(method, params, opts) {
7894
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
7894
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
7895
7895
  const id = randomUUID();
7896
7896
  const frame = {
7897
7897
  type: "req",
@@ -8813,7 +8813,7 @@ async function routeReply(params) {
8813
8813
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
8814
8814
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
8815
8815
  try {
8816
- const { deliverOutboundPayloads } = await import("./deliver-nGHybBtV.js").then((n) => n.n);
8816
+ const { deliverOutboundPayloads } = await import("./deliver-C6HvbVCJ.js").then((n) => n.n);
8817
8817
  return {
8818
8818
  ok: true,
8819
8819
  messageId: (await deliverOutboundPayloads({
@@ -38855,7 +38855,7 @@ async function deliverSessionMaintenanceWarning(params) {
38855
38855
  return;
38856
38856
  }
38857
38857
  try {
38858
- const { deliverOutboundPayloads } = await import("./deliver-nGHybBtV.js").then((n) => n.n);
38858
+ const { deliverOutboundPayloads } = await import("./deliver-C6HvbVCJ.js").then((n) => n.n);
38859
38859
  await deliverOutboundPayloads({
38860
38860
  cfg: params.cfg,
38861
38861
  channel,
@@ -44342,7 +44342,7 @@ async function describeStickerImage(params) {
44342
44342
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
44343
44343
  try {
44344
44344
  const buffer = await fs$1.readFile(imagePath);
44345
- const { describeImageWithModel } = await import("./image-B78Jx9qG.js").then((n) => n.n);
44345
+ const { describeImageWithModel } = await import("./image-gnkNU6DU.js").then((n) => n.n);
44346
44346
  return (await describeImageWithModel({
44347
44347
  buffer,
44348
44348
  fileName: "sticker.webp",
@@ -46481,7 +46481,7 @@ async function preflightDiscordMessage(params) {
46481
46481
  let preflightTranscript;
46482
46482
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
46483
46483
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
46484
- const { transcribeFirstAudio } = await import("./audio-preflight-CyHdY8Z5.js");
46484
+ const { transcribeFirstAudio } = await import("./audio-preflight-BalmZRcH.js");
46485
46485
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
46486
46486
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
46487
46487
  ctx: {
@@ -49052,7 +49052,7 @@ function createDiscordGatewayPlugin(params) {
49052
49052
  super(options);
49053
49053
  }
49054
49054
  createWebSocket(url) {
49055
- return new WebSocket$1(url, { agent });
49055
+ return new WebSocket(url, { agent });
49056
49056
  }
49057
49057
  }
49058
49058
  return new ProxyGatewayPlugin();
@@ -57467,7 +57467,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
57467
57467
  let preflightTranscript;
57468
57468
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
57469
57469
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
57470
- const { transcribeFirstAudio } = await import("./audio-preflight-CyHdY8Z5.js");
57470
+ const { transcribeFirstAudio } = await import("./audio-preflight-BalmZRcH.js");
57471
57471
  preflightTranscript = await transcribeFirstAudio({
57472
57472
  ctx: {
57473
57473
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -59496,7 +59496,7 @@ function loadWebLoginQr() {
59496
59496
  return webLoginQrPromise;
59497
59497
  }
59498
59498
  function loadWebChannel() {
59499
- webChannelPromise ??= import("./web-7m9YKkZ5.js");
59499
+ webChannelPromise ??= import("./web-e_0uO5TX.js");
59500
59500
  return webChannelPromise;
59501
59501
  }
59502
59502
  function loadWhatsAppActions() {