@lawpath-tech/openclaw 2026.2.21-18 → 2026.2.21-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.
@@ -14,10 +14,10 @@ import "./model-auth-vtNH8C4P.js";
14
14
  import "./github-copilot-token-Dgb9dAHW.js";
15
15
  import "./pi-model-discovery-DaNAekda.js";
16
16
  import "./message-channel-CHYSjmbr.js";
17
- import "./pi-embedded-helpers-CSE0v99A.js";
17
+ import "./pi-embedded-helpers-Ll4Lztu1.js";
18
18
  import "./config-Du_-inxH.js";
19
19
  import "./manifest-registry-Dhk4A5vb.js";
20
- import "./chrome-Bqbv_ZSj.js";
20
+ import "./chrome-BAv9fEiv.js";
21
21
  import "./frontmatter-CdkBcBAo.js";
22
22
  import "./skills-DSZuhFx9.js";
23
23
  import "./redact-jSxx6Ep2.js";
@@ -28,10 +28,10 @@ import "./thinking-Dg8vKjw_.js";
28
28
  import "./accounts-DFrH9IVU.js";
29
29
  import "./paths-BEAbheM8.js";
30
30
  import "./tool-images-C1rdDr34.js";
31
- import "./image-CxPjVob-.js";
31
+ import "./image-Ci28h-op.js";
32
32
  import "./gemini-auth-A2JaRMHH.js";
33
33
  import "./local-roots-JqlMsAYY.js";
34
- import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-D1eXJZ8T.js";
34
+ import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-ChBxge-W.js";
35
35
 
36
36
  //#region src/media-understanding/audio-preflight.ts
37
37
  /**
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.2.21-18",
3
- "commit": "b121c708793073ba9ed04c96943b7e2d96a89da8",
4
- "builtAt": "2026-03-29T11:56:45.962Z"
2
+ "version": "2026.2.21-19",
3
+ "commit": "612406ec25d5c42a64b54ff512d54b2e7faee200",
4
+ "builtAt": "2026-03-29T12:04:17.491Z"
5
5
  }
@@ -5,7 +5,7 @@ import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "../../agent-sc
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "../../subsystem-BF9jT_Nw.js";
6
6
  import "../../workspace-DYx5Dxtw.js";
7
7
  import { n as SILENT_REPLY_TOKEN } from "../../tokens-B-c56SkM.js";
8
- import { a as createDefaultDeps, i as agentCommand } from "../../pi-embedded-Qfuh9XzI.js";
8
+ import { a as createDefaultDeps, i as agentCommand } from "../../pi-embedded-D7qD6fo-.js";
9
9
  import "../../plugins-DIrNa311.js";
10
10
  import "../../accounts-C8m4ADkw.js";
11
11
  import "../../boolean-B8-BqKGQ.js";
@@ -13,7 +13,7 @@ import "../../command-format-BOHIfoCX.js";
13
13
  import "../../bindings-BKEEBdsb.js";
14
14
  import "../../send-Byt_wJDK.js";
15
15
  import "../../send-BEFzSOoD.js";
16
- import "../../deliver-CKH_FhS0.js";
16
+ import "../../deliver-CLJRPnfx.js";
17
17
  import "../../diagnostic-DriDPU6M.js";
18
18
  import "../../diagnostic-session-state-Bxo4UHOL.js";
19
19
  import "../../accounts-CQT5u65w.js";
@@ -23,10 +23,10 @@ import "../../model-auth-vtNH8C4P.js";
23
23
  import "../../github-copilot-token-Dgb9dAHW.js";
24
24
  import "../../pi-model-discovery-DaNAekda.js";
25
25
  import "../../message-channel-CHYSjmbr.js";
26
- import { H as loadSessionStore, K as updateSessionStore, xt as resolveMainSessionKey, yt as resolveAgentMainSessionKey } from "../../pi-embedded-helpers-CSE0v99A.js";
26
+ import { H as loadSessionStore, K as updateSessionStore, xt as resolveMainSessionKey, yt as resolveAgentMainSessionKey } from "../../pi-embedded-helpers-Ll4Lztu1.js";
27
27
  import "../../config-Du_-inxH.js";
28
28
  import "../../manifest-registry-Dhk4A5vb.js";
29
- import "../../chrome-Bqbv_ZSj.js";
29
+ import "../../chrome-BAv9fEiv.js";
30
30
  import "../../frontmatter-CdkBcBAo.js";
31
31
  import "../../skills-DSZuhFx9.js";
32
32
  import "../../redact-jSxx6Ep2.js";
@@ -37,7 +37,7 @@ import "../../thinking-Dg8vKjw_.js";
37
37
  import "../../accounts-DFrH9IVU.js";
38
38
  import { s as resolveStorePath } from "../../paths-BEAbheM8.js";
39
39
  import "../../tool-images-C1rdDr34.js";
40
- import "../../image-CxPjVob-.js";
40
+ import "../../image-Ci28h-op.js";
41
41
  import "../../reply-prefix-DZrS3Kf7.js";
42
42
  import "../../manager-D7SRrHxT.js";
43
43
  import "../../gemini-auth-A2JaRMHH.js";
@@ -51,7 +51,7 @@ import "../../ir-DJPm0a4k.js";
51
51
  import "../../render-CDCvpfhh.js";
52
52
  import "../../commands-registry-BzlB3qtZ.js";
53
53
  import "../../skill-commands-CqyVDpti.js";
54
- import "../../runner-D1eXJZ8T.js";
54
+ import "../../runner-ChBxge-W.js";
55
55
  import "../../fetch-DtI0mtzx.js";
56
56
  import "../../channel-activity-BgsTqLau.js";
57
57
  import "../../tables-C3clT_iA.js";
@@ -5,7 +5,7 @@ import { s as resolveAgentWorkspaceDir } from "../../agent-scope-DSUeV7-g.js";
5
5
  import { t as createSubsystemLogger } from "../../subsystem-BF9jT_Nw.js";
6
6
  import "../../workspace-DYx5Dxtw.js";
7
7
  import "../../tokens-B-c56SkM.js";
8
- import "../../pi-embedded-Qfuh9XzI.js";
8
+ import "../../pi-embedded-D7qD6fo-.js";
9
9
  import "../../plugins-DIrNa311.js";
10
10
  import "../../accounts-C8m4ADkw.js";
11
11
  import "../../boolean-B8-BqKGQ.js";
@@ -13,7 +13,7 @@ import "../../command-format-BOHIfoCX.js";
13
13
  import "../../bindings-BKEEBdsb.js";
14
14
  import "../../send-Byt_wJDK.js";
15
15
  import "../../send-BEFzSOoD.js";
16
- import "../../deliver-CKH_FhS0.js";
16
+ import "../../deliver-CLJRPnfx.js";
17
17
  import "../../diagnostic-DriDPU6M.js";
18
18
  import "../../diagnostic-session-state-Bxo4UHOL.js";
19
19
  import "../../accounts-CQT5u65w.js";
@@ -23,10 +23,10 @@ import "../../model-auth-vtNH8C4P.js";
23
23
  import "../../github-copilot-token-Dgb9dAHW.js";
24
24
  import "../../pi-model-discovery-DaNAekda.js";
25
25
  import "../../message-channel-CHYSjmbr.js";
26
- import { ct as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-CSE0v99A.js";
26
+ import { ct as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-Ll4Lztu1.js";
27
27
  import "../../config-Du_-inxH.js";
28
28
  import "../../manifest-registry-Dhk4A5vb.js";
29
- import "../../chrome-Bqbv_ZSj.js";
29
+ import "../../chrome-BAv9fEiv.js";
30
30
  import "../../frontmatter-CdkBcBAo.js";
31
31
  import "../../skills-DSZuhFx9.js";
32
32
  import "../../redact-jSxx6Ep2.js";
@@ -37,7 +37,7 @@ import "../../thinking-Dg8vKjw_.js";
37
37
  import "../../accounts-DFrH9IVU.js";
38
38
  import "../../paths-BEAbheM8.js";
39
39
  import "../../tool-images-C1rdDr34.js";
40
- import "../../image-CxPjVob-.js";
40
+ import "../../image-Ci28h-op.js";
41
41
  import "../../reply-prefix-DZrS3Kf7.js";
42
42
  import "../../manager-D7SRrHxT.js";
43
43
  import "../../gemini-auth-A2JaRMHH.js";
@@ -51,7 +51,7 @@ import "../../ir-DJPm0a4k.js";
51
51
  import "../../render-CDCvpfhh.js";
52
52
  import "../../commands-registry-BzlB3qtZ.js";
53
53
  import "../../skill-commands-CqyVDpti.js";
54
- import "../../runner-D1eXJZ8T.js";
54
+ import "../../runner-ChBxge-W.js";
55
55
  import "../../fetch-DtI0mtzx.js";
56
56
  import "../../channel-activity-BgsTqLau.js";
57
57
  import "../../tables-C3clT_iA.js";
@@ -1 +1 @@
1
- c76be7f85817fa0fb70109b016e5f406970d988d2a83c0a45a18ddde99bf1034
1
+ f6bc31526acda9c1cc028a5378737ac05750ad4e309d125fabe39da9749d7f27
@@ -10,7 +10,7 @@ import fs$1 from "node:fs";
10
10
  import { execFileSync, spawn } from "node:child_process";
11
11
  import net from "node:net";
12
12
  import { createServer } from "node:http";
13
- import WebSocket, { WebSocketServer } from "ws";
13
+ import WebSocket$1, { WebSocketServer } from "ws";
14
14
  import { Buffer as Buffer$1 } from "node:buffer";
15
15
 
16
16
  //#region src/browser/constants.ts
@@ -178,7 +178,7 @@ async function ensureChromeExtensionRelayServer(opts) {
178
178
  let nextExtensionId = 1;
179
179
  const sendToExtension = async (payload) => {
180
180
  const ws = extensionWs;
181
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
181
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
182
182
  ws.send(JSON.stringify(payload));
183
183
  return await new Promise((resolve, reject) => {
184
184
  const timer = setTimeout(() => {
@@ -195,12 +195,12 @@ async function ensureChromeExtensionRelayServer(opts) {
195
195
  const broadcastToCdpClients = (evt) => {
196
196
  const msg = JSON.stringify(evt);
197
197
  for (const ws of cdpClients) {
198
- if (ws.readyState !== WebSocket.OPEN) continue;
198
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
199
199
  ws.send(msg);
200
200
  }
201
201
  };
202
202
  const sendResponseToCdp = (ws, res) => {
203
- if (ws.readyState !== WebSocket.OPEN) return;
203
+ if (ws.readyState !== WebSocket$1.OPEN) return;
204
204
  ws.send(JSON.stringify(res));
205
205
  };
206
206
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -425,7 +425,7 @@ async function ensureChromeExtensionRelayServer(opts) {
425
425
  wssExtension.on("connection", (ws) => {
426
426
  extensionWs = ws;
427
427
  const ping = setInterval(() => {
428
- if (ws.readyState !== WebSocket.OPEN) return;
428
+ if (ws.readyState !== WebSocket$1.OPEN) return;
429
429
  ws.send(JSON.stringify({ method: "ping" }));
430
430
  }, 5e3);
431
431
  ws.on("message", (data) => {
@@ -743,7 +743,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
743
743
  }
744
744
  async function withCdpSocket(wsUrl, fn, opts) {
745
745
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
746
- const ws = new WebSocket(wsUrl, {
746
+ const ws = new WebSocket$1(wsUrl, {
747
747
  handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
748
748
  ...Object.keys(headers).length ? { headers } : {}
749
749
  });
@@ -1637,7 +1637,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1637
1637
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1638
1638
  return await new Promise((resolve) => {
1639
1639
  const headers = getHeadersWithAuth(wsUrl);
1640
- const ws = new WebSocket(wsUrl, {
1640
+ const ws = new WebSocket$1(wsUrl, {
1641
1641
  handshakeTimeout: timeoutMs,
1642
1642
  ...Object.keys(headers).length ? { headers } : {}
1643
1643
  });
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, x as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-BF9jT_Nw.js";
6
6
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-B-c56SkM.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DIrNa311.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-CSE0v99A.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-Ll4Lztu1.js";
9
9
  import { d as getChannelDock } from "./thinking-Dg8vKjw_.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-fZrBDWYg.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DpVJE0eA.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { R as shortenHomeInString, k as isRecord } from "./registry-DpeZG5fo.js";
3
3
  import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveOpenClawAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-vtNH8C4P.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-CSE0v99A.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-Ll4Lztu1.js";
6
6
  import { n as loadConfig } from "./config-Du_-inxH.js";
7
7
  import { n as redactToolDetail } from "./redact-jSxx6Ep2.js";
8
8
  import fs from "node:fs/promises";
@@ -4,7 +4,7 @@ import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWork
4
4
  import "./subsystem-BF9jT_Nw.js";
5
5
  import "./workspace-DYx5Dxtw.js";
6
6
  import "./tokens-B-c56SkM.js";
7
- import { t as runEmbeddedPiAgent } from "./pi-embedded-Qfuh9XzI.js";
7
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-D7qD6fo-.js";
8
8
  import "./plugins-DIrNa311.js";
9
9
  import "./accounts-C8m4ADkw.js";
10
10
  import "./boolean-B8-BqKGQ.js";
@@ -12,7 +12,7 @@ import "./command-format-BOHIfoCX.js";
12
12
  import "./bindings-BKEEBdsb.js";
13
13
  import "./send-Byt_wJDK.js";
14
14
  import "./send-BEFzSOoD.js";
15
- import "./deliver-CKH_FhS0.js";
15
+ import "./deliver-CLJRPnfx.js";
16
16
  import "./diagnostic-DriDPU6M.js";
17
17
  import "./diagnostic-session-state-Bxo4UHOL.js";
18
18
  import "./accounts-CQT5u65w.js";
@@ -22,10 +22,10 @@ import "./model-auth-vtNH8C4P.js";
22
22
  import "./github-copilot-token-Dgb9dAHW.js";
23
23
  import "./pi-model-discovery-DaNAekda.js";
24
24
  import "./message-channel-CHYSjmbr.js";
25
- import "./pi-embedded-helpers-CSE0v99A.js";
25
+ import "./pi-embedded-helpers-Ll4Lztu1.js";
26
26
  import "./config-Du_-inxH.js";
27
27
  import "./manifest-registry-Dhk4A5vb.js";
28
- import "./chrome-Bqbv_ZSj.js";
28
+ import "./chrome-BAv9fEiv.js";
29
29
  import "./frontmatter-CdkBcBAo.js";
30
30
  import "./skills-DSZuhFx9.js";
31
31
  import "./redact-jSxx6Ep2.js";
@@ -36,7 +36,7 @@ import "./thinking-Dg8vKjw_.js";
36
36
  import "./accounts-DFrH9IVU.js";
37
37
  import "./paths-BEAbheM8.js";
38
38
  import "./tool-images-C1rdDr34.js";
39
- import "./image-CxPjVob-.js";
39
+ import "./image-Ci28h-op.js";
40
40
  import "./reply-prefix-DZrS3Kf7.js";
41
41
  import "./manager-D7SRrHxT.js";
42
42
  import "./gemini-auth-A2JaRMHH.js";
@@ -50,7 +50,7 @@ import "./ir-DJPm0a4k.js";
50
50
  import "./render-CDCvpfhh.js";
51
51
  import "./commands-registry-BzlB3qtZ.js";
52
52
  import "./skill-commands-CqyVDpti.js";
53
- import "./runner-D1eXJZ8T.js";
53
+ import "./runner-ChBxge-W.js";
54
54
  import "./fetch-DtI0mtzx.js";
55
55
  import "./channel-activity-BgsTqLau.js";
56
56
  import "./tables-C3clT_iA.js";
@@ -13,7 +13,7 @@ import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
13
13
  import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BOHIfoCX.js";
14
14
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-Byt_wJDK.js";
15
15
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, 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 resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BEFzSOoD.js";
16
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CKH_FhS0.js";
16
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CLJRPnfx.js";
17
17
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DriDPU6M.js";
18
18
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
19
19
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CQT5u65w.js";
@@ -23,10 +23,10 @@ import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider
23
23
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Dgb9dAHW.js";
24
24
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
25
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-CHYSjmbr.js";
26
- import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-CSE0v99A.js";
26
+ import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-Ll4Lztu1.js";
27
27
  import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-Du_-inxH.js";
28
28
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-Dhk4A5vb.js";
29
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-Bqbv_ZSj.js";
29
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BAv9fEiv.js";
30
30
  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-DSZuhFx9.js";
31
31
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
32
32
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
@@ -37,7 +37,7 @@ import { t as resolveIMessageAccount } from "./accounts-DFrH9IVU.js";
37
37
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BEAbheM8.js";
38
38
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
39
39
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-C1rdDr34.js";
40
- import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CxPjVob-.js";
40
+ import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-Ci28h-op.js";
41
41
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DZrS3Kf7.js";
42
42
  import { n as resolveMemorySearchConfig } from "./manager-D7SRrHxT.js";
43
43
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-C3XxSzBN.js";
@@ -51,7 +51,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DJPm0a4k.js";
51
51
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BzlB3qtZ.js";
52
52
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CqyVDpti.js";
53
53
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
54
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-D1eXJZ8T.js";
54
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-ChBxge-W.js";
55
55
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtI0mtzx.js";
56
56
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
57
57
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BgsTqLau.js";
@@ -81,7 +81,7 @@ import { EdgeTTS } from "node-edge-tts";
81
81
  import AjvPkg from "ajv";
82
82
  import { createServer } from "node:http";
83
83
  import { ProxyAgent, fetch as fetch$1 } from "undici";
84
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
84
+ import WebSocket$1, { WebSocket } from "ws";
85
85
  import { Buffer as Buffer$1 } from "node:buffer";
86
86
  import { createJiti } from "jiti";
87
87
  import { Type } from "@sinclair/typebox";
@@ -5715,7 +5715,7 @@ var GatewayClient = class {
5715
5715
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5716
5716
  });
5717
5717
  }
5718
- this.ws = new WebSocket$1(url, wsOptions);
5718
+ this.ws = new WebSocket(url, wsOptions);
5719
5719
  this.ws.on("open", () => {
5720
5720
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5721
5721
  const tlsError = this.validateTlsFingerprint();
@@ -5934,7 +5934,7 @@ var GatewayClient = class {
5934
5934
  return null;
5935
5935
  }
5936
5936
  async request(method, params, opts) {
5937
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5937
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5938
5938
  const id = randomUUID();
5939
5939
  const frame = {
5940
5940
  type: "req",
@@ -7198,7 +7198,7 @@ async function routeReply(params) {
7198
7198
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7199
7199
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7200
7200
  try {
7201
- const { deliverOutboundPayloads } = await import("./deliver-CKH_FhS0.js").then((n) => n.n);
7201
+ const { deliverOutboundPayloads } = await import("./deliver-CLJRPnfx.js").then((n) => n.n);
7202
7202
  return {
7203
7203
  ok: true,
7204
7204
  messageId: (await deliverOutboundPayloads({
@@ -41571,7 +41571,7 @@ async function deliverSessionMaintenanceWarning(params) {
41571
41571
  return;
41572
41572
  }
41573
41573
  try {
41574
- const { deliverOutboundPayloads } = await import("./deliver-CKH_FhS0.js").then((n) => n.n);
41574
+ const { deliverOutboundPayloads } = await import("./deliver-CLJRPnfx.js").then((n) => n.n);
41575
41575
  await deliverOutboundPayloads({
41576
41576
  cfg: params.cfg,
41577
41577
  channel,
@@ -45018,7 +45018,7 @@ async function describeStickerImage(params) {
45018
45018
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
45019
45019
  try {
45020
45020
  const buffer = await fs.readFile(imagePath);
45021
- const { describeImageWithModel } = await import("./image-CxPjVob-.js").then((n) => n.n);
45021
+ const { describeImageWithModel } = await import("./image-Ci28h-op.js").then((n) => n.n);
45022
45022
  return (await describeImageWithModel({
45023
45023
  buffer,
45024
45024
  fileName: "sticker.webp",
@@ -47479,7 +47479,7 @@ async function preflightDiscordMessage(params) {
47479
47479
  let preflightTranscript;
47480
47480
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
47481
47481
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
47482
- const { transcribeFirstAudio } = await import("./audio-preflight-CLqoZYgI.js");
47482
+ const { transcribeFirstAudio } = await import("./audio-preflight-omzaYFGD.js");
47483
47483
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
47484
47484
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
47485
47485
  ctx: {
@@ -51485,7 +51485,7 @@ function isVoiceChannelType(type) {
51485
51485
  function createDefaultDeps() {
51486
51486
  return {
51487
51487
  sendMessageWhatsApp: async (...args) => {
51488
- const { sendMessageWhatsApp } = await import("./web-BZ5kM4yO.js");
51488
+ const { sendMessageWhatsApp } = await import("./web-Cs0IP-ZO.js");
51489
51489
  return await sendMessageWhatsApp(...args);
51490
51490
  },
51491
51491
  sendMessageTelegram: async (...args) => {
@@ -54398,7 +54398,7 @@ function createDiscordGatewayPlugin(params) {
54398
54398
  super(options);
54399
54399
  }
54400
54400
  createWebSocket(url) {
54401
- return new WebSocket(url, { agent });
54401
+ return new WebSocket$1(url, { agent });
54402
54402
  }
54403
54403
  }
54404
54404
  return new ProxyGatewayPlugin();
@@ -64671,7 +64671,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
64671
64671
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
64672
64672
  let preflightTranscript;
64673
64673
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
64674
- const { transcribeFirstAudio } = await import("./audio-preflight-CLqoZYgI.js");
64674
+ const { transcribeFirstAudio } = await import("./audio-preflight-omzaYFGD.js");
64675
64675
  preflightTranscript = await transcribeFirstAudio({
64676
64676
  ctx: {
64677
64677
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -66828,7 +66828,7 @@ function loadWebLoginQr() {
66828
66828
  return webLoginQrPromise;
66829
66829
  }
66830
66830
  function loadWebChannel() {
66831
- webChannelPromise ??= import("./web-BZ5kM4yO.js");
66831
+ webChannelPromise ??= import("./web-Cs0IP-ZO.js");
66832
66832
  return webChannelPromise;
66833
66833
  }
66834
66834
  function loadWhatsAppActions() {
@@ -12,7 +12,7 @@ import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n a
12
12
  import { S as isPidAlive, x as resolveProcessScopedMap } from "./model-auth-vtNH8C4P.js";
13
13
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-CHYSjmbr.js";
14
14
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-Du_-inxH.js";
15
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-Bqbv_ZSj.js";
15
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-BAv9fEiv.js";
16
16
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DSZuhFx9.js";
17
17
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BoQgnc8X.js";
18
18
  import { t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
933
933
  }
934
934
  async function loadPwAiModule(mode) {
935
935
  try {
936
- return await import("./pw-ai-D-_aGzdQ.js");
936
+ return await import("./pw-ai-KrN0mqVH.js");
937
937
  } catch (err) {
938
938
  if (mode === "soft") return null;
939
939
  if (isModuleNotFoundError(err)) return null;
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
3473
3473
  const userDataDir = resolveOpenClawUserDataDir(profile.name);
3474
3474
  const profileState = getProfileState();
3475
3475
  if (await isHttpReachable(300) && !profileState.running) try {
3476
- await (await import("./pw-ai-D-_aGzdQ.js")).closePlaywrightBrowserConnection();
3476
+ await (await import("./pw-ai-KrN0mqVH.js")).closePlaywrightBrowserConnection();
3477
3477
  } catch {}
3478
3478
  if (profileState.running) await stopRunningBrowser();
3479
3479
  try {
3480
- await (await import("./pw-ai-D-_aGzdQ.js")).closePlaywrightBrowserConnection();
3480
+ await (await import("./pw-ai-KrN0mqVH.js")).closePlaywrightBrowserConnection();
3481
3481
  } catch {}
3482
3482
  if (!fs$1.existsSync(userDataDir)) return {
3483
3483
  moved: false,
@@ -9,7 +9,7 @@ import "./model-auth-vtNH8C4P.js";
9
9
  import "./github-copilot-token-Dgb9dAHW.js";
10
10
  import "./config-Du_-inxH.js";
11
11
  import "./manifest-registry-Dhk4A5vb.js";
12
- import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-Bqbv_ZSj.js";
12
+ import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-BAv9fEiv.js";
13
13
  import "./redact-jSxx6Ep2.js";
14
14
  import { n as formatErrorMessage } from "./errors-BoQgnc8X.js";
15
15
  import "./ssrf-BTMDZjHT.js";
@@ -4,7 +4,7 @@ import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
4
4
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-BGmpOcey.js";
5
5
  import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveOpenClawAgentDir } from "./model-auth-vtNH8C4P.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-Du_-inxH.js";
7
- import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-CxPjVob-.js";
7
+ import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-Ci28h-op.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-A2JaRMHH.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-JqlMsAYY.js";
@@ -5,7 +5,7 @@ import "./agent-scope-DSUeV7-g.js";
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BF9jT_Nw.js";
6
6
  import "./workspace-DYx5Dxtw.js";
7
7
  import "./tokens-B-c56SkM.js";
8
- import { C as resolveEnvelopeFormatOptions, D as normalizeMentionText, E as buildMentionRegexes, S as formatInboundEnvelope, T as shouldComputeCommandAuthorized, _ as parseActivationCommand, b as createInboundDebouncer, c as DEFAULT_GROUP_HISTORY_LIMIT, d as shouldAckReactionForWhatsApp, f as dispatchReplyWithBufferedBlockDispatcher, g as normalizeGroupActivation, h as getReplyFromConfig, l as buildHistoryContextFromEntries, m as createDedupeCache, n as computeBackoff, o as buildPairingReply, r as sleepWithAbort, s as resolveMentionGating, u as recordPendingHistoryEntryIfEnabled, v as formatDurationPrecise, w as hasControlCommand, x as resolveInboundDebounceMs, y as enqueueSystemEvent } from "./pi-embedded-Qfuh9XzI.js";
8
+ import { C as resolveEnvelopeFormatOptions, D as normalizeMentionText, E as buildMentionRegexes, S as formatInboundEnvelope, T as shouldComputeCommandAuthorized, _ as parseActivationCommand, b as createInboundDebouncer, c as DEFAULT_GROUP_HISTORY_LIMIT, d as shouldAckReactionForWhatsApp, f as dispatchReplyWithBufferedBlockDispatcher, g as normalizeGroupActivation, h as getReplyFromConfig, l as buildHistoryContextFromEntries, m as createDedupeCache, n as computeBackoff, o as buildPairingReply, r as sleepWithAbort, s as resolveMentionGating, u as recordPendingHistoryEntryIfEnabled, v as formatDurationPrecise, w as hasControlCommand, x as resolveInboundDebounceMs, y as enqueueSystemEvent } from "./pi-embedded-D7qD6fo-.js";
9
9
  import "./plugins-DIrNa311.js";
10
10
  import { i as logWebSelfId, l as readWebSelfId, n as WA_WEB_AUTH_DIR, p as webAuthExists, r as getWebAuthAgeMs, s as pickWebChannel, t as resolveWhatsAppAccount } from "./accounts-C8m4ADkw.js";
11
11
  import "./boolean-B8-BqKGQ.js";
@@ -13,7 +13,7 @@ import { t as formatCliCommand } from "./command-format-BOHIfoCX.js";
13
13
  import "./bindings-BKEEBdsb.js";
14
14
  import "./send-Byt_wJDK.js";
15
15
  import "./send-BEFzSOoD.js";
16
- import "./deliver-CKH_FhS0.js";
16
+ import "./deliver-CLJRPnfx.js";
17
17
  import "./diagnostic-DriDPU6M.js";
18
18
  import "./diagnostic-session-state-Bxo4UHOL.js";
19
19
  import "./accounts-CQT5u65w.js";
@@ -23,10 +23,10 @@ import "./model-auth-vtNH8C4P.js";
23
23
  import "./github-copilot-token-Dgb9dAHW.js";
24
24
  import "./pi-model-discovery-DaNAekda.js";
25
25
  import "./message-channel-CHYSjmbr.js";
26
- import { Ct as resolveGroupSessionKey, G as updateLastRoute, H as loadSessionStore, U as readSessionUpdatedAt, W as recordSessionMetaFromInbound } from "./pi-embedded-helpers-CSE0v99A.js";
26
+ import { Ct as resolveGroupSessionKey, G as updateLastRoute, H as loadSessionStore, U as readSessionUpdatedAt, W as recordSessionMetaFromInbound } from "./pi-embedded-helpers-Ll4Lztu1.js";
27
27
  import { n as loadConfig } from "./config-Du_-inxH.js";
28
28
  import "./manifest-registry-Dhk4A5vb.js";
29
- import "./chrome-Bqbv_ZSj.js";
29
+ import "./chrome-BAv9fEiv.js";
30
30
  import "./frontmatter-CdkBcBAo.js";
31
31
  import "./skills-DSZuhFx9.js";
32
32
  import "./redact-jSxx6Ep2.js";
@@ -37,7 +37,7 @@ import { h as resolveChannelGroupRequireMention, m as resolveChannelGroupPolicy
37
37
  import "./accounts-DFrH9IVU.js";
38
38
  import { s as resolveStorePath } from "./paths-BEAbheM8.js";
39
39
  import "./tool-images-C1rdDr34.js";
40
- import "./image-CxPjVob-.js";
40
+ import "./image-Ci28h-op.js";
41
41
  import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-DZrS3Kf7.js";
42
42
  import "./manager-D7SRrHxT.js";
43
43
  import "./gemini-auth-A2JaRMHH.js";
@@ -52,7 +52,7 @@ import "./render-CDCvpfhh.js";
52
52
  import "./commands-registry-BzlB3qtZ.js";
53
53
  import "./skill-commands-CqyVDpti.js";
54
54
  import { t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
55
- import { p as registerUnhandledRejectionHandler } from "./runner-D1eXJZ8T.js";
55
+ import { p as registerUnhandledRejectionHandler } from "./runner-ChBxge-W.js";
56
56
  import "./fetch-DtI0mtzx.js";
57
57
  import { n as recordChannelActivity } from "./channel-activity-BgsTqLau.js";
58
58
  import { t as convertMarkdownTables } from "./tables-C3clT_iA.js";
@@ -123,8 +123,9 @@ export async function generateVoiceResponse(
123
123
 
124
124
  try {
125
125
  console.log(
126
- `[voice-call] Running embedded agent: model=${modelRef} timeout=${timeoutMs}ms session=${sessionId}`,
126
+ `[voice-call] Running embedded agent: model=${modelRef} provider=${provider} timeout=${timeoutMs}ms session=${sessionId} sessionFile=${sessionFile} workspaceDir=${workspaceDir} agentDir=${agentDir}`,
127
127
  );
128
+ const startMs = Date.now();
128
129
  const result = await deps.runEmbeddedPiAgent({
129
130
  sessionId,
130
131
  sessionKey,
@@ -143,10 +144,24 @@ export async function generateVoiceResponse(
143
144
  extraSystemPrompt,
144
145
  agentDir,
145
146
  });
147
+ const elapsedMs = Date.now() - startMs;
146
148
  console.log(
147
- `[voice-call] Embedded agent returned: payloads=${result.payloads?.length ?? 0} aborted=${result.meta?.aborted ?? false}`,
149
+ `[voice-call] Embedded agent returned in ${elapsedMs}ms: payloads=${result.payloads?.length ?? 0} aborted=${result.meta?.aborted ?? false} error=${result.meta?.error ?? "none"} stopReason=${result.meta?.agentMeta?.stopReason ?? "unknown"}`,
148
150
  );
149
151
 
152
+ // Log all payloads for debugging
153
+ if (result.payloads && result.payloads.length > 0) {
154
+ for (const [i, p] of result.payloads.entries()) {
155
+ console.log(
156
+ `[voice-call] payload[${i}]: text=${JSON.stringify(p.text?.slice(0, 200))} isError=${p.isError ?? false}`,
157
+ );
158
+ }
159
+ } else {
160
+ console.warn(`[voice-call] Embedded agent returned ZERO payloads`);
161
+ // Log the full meta for diagnosis
162
+ console.warn(`[voice-call] meta: ${JSON.stringify(result.meta ?? {})}`);
163
+ }
164
+
150
165
  // Extract text from payloads
151
166
  const texts = (result.payloads ?? [])
152
167
  .filter((p) => p.text && !p.isError)
@@ -159,6 +174,12 @@ export async function generateVoiceResponse(
159
174
  return { text: null, error: "Response generation was aborted" };
160
175
  }
161
176
 
177
+ if (!text) {
178
+ console.warn(
179
+ `[voice-call] No usable text extracted from ${result.payloads?.length ?? 0} payloads`,
180
+ );
181
+ }
182
+
162
183
  return { text };
163
184
  } catch (err) {
164
185
  console.error(`[voice-call] Response generation failed:`, err);
@@ -398,15 +398,24 @@ export class VoiceCallWebhookServer {
398
398
 
399
399
  if (result.error) {
400
400
  console.error(`[voice-call] Response generation error: ${result.error}`);
401
+ await this.manager.speak(callId, "Sorry, I hit a snag there. Could you try again?");
401
402
  return;
402
403
  }
403
404
 
404
405
  if (result.text) {
405
406
  console.log(`[voice-call] AI response: "${result.text}"`);
406
407
  await this.manager.speak(callId, result.text);
408
+ } else {
409
+ console.warn(`[voice-call] Empty response for call ${callId} — speaking fallback`);
410
+ await this.manager.speak(callId, "Hmm, I didn't quite get that. Could you say that again?");
407
411
  }
408
412
  } catch (err) {
409
413
  console.error(`[voice-call] Auto-response error:`, err);
414
+ try {
415
+ await this.manager.speak(callId, "Sorry, something went wrong. Give me a moment.");
416
+ } catch {
417
+ // best-effort
418
+ }
410
419
  }
411
420
  }
412
421
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lawpath-tech/openclaw",
3
- "version": "2026.2.21-18",
3
+ "version": "2026.2.21-19",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/openclaw/openclaw#readme",