@hanzo/bot 2026.3.8 → 2026.3.10

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 (161) hide show
  1. package/dist/{audio-preflight-D_s-peid.js → audio-preflight-BnfuyvxO.js} +4 -4
  2. package/dist/{audio-preflight-BEc8i-bS.js → audio-preflight-CpAXC_Ct.js} +4 -4
  3. package/dist/{audio-transcription-runner-X1KzI7dF.js → audio-transcription-runner-CAOjjGxN.js} +1 -1
  4. package/dist/{audio-transcription-runner-BePCnZfw.js → audio-transcription-runner-GcMnO6sT.js} +1 -1
  5. package/dist/build-info.json +3 -3
  6. package/dist/bundled/boot-md/handler.js +6 -6
  7. package/dist/bundled/session-memory/handler.js +6 -6
  8. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  9. package/dist/{chrome-B24-8NDM.js → chrome--CFg5C_H.js} +8 -8
  10. package/dist/{chrome-C7OwLtx9.js → chrome-jCt9JCU8.js} +8 -8
  11. package/dist/{cloud-connect-CknfBF39.js → cloud-connect-6kdj8st_.js} +1 -1
  12. package/dist/{deliver-D8dBbzpu.js → deliver-BVtVDxwX.js} +1 -1
  13. package/dist/{deliver-DudaV86i.js → deliver-DmfS4khs.js} +1 -1
  14. package/dist/{deliver-runtime-C76IMU4W.js → deliver-runtime-G0G5orrZ.js} +3 -3
  15. package/dist/{deliver-runtime-qDmQqiF-.js → deliver-runtime-PxJvVUhh.js} +3 -3
  16. package/dist/{deps-send-whatsapp.runtime-Cv_awFtm.js → deps-send-whatsapp.runtime-8bLqjmui.js} +7 -7
  17. package/dist/{deps-send-whatsapp.runtime-Cq-TLsJw.js → deps-send-whatsapp.runtime-CrzuaVhC.js} +7 -7
  18. package/dist/entry.js +15 -8
  19. package/dist/extensionAPI.js +6 -6
  20. package/dist/{image-nUHQF6BX.js → image-BdZcUz8M.js} +1 -1
  21. package/dist/{image-BOybyCis.js → image-DSK1hSSV.js} +1 -1
  22. package/dist/{image-runtime-B5M_-diF.js → image-runtime-ueqmfx1a.js} +3 -3
  23. package/dist/{image-runtime-y4msd5bn.js → image-runtime-xqxW2PQA.js} +3 -3
  24. package/dist/llm-slug-generator.js +6 -6
  25. package/dist/{local-launch-C2RER-G3.js → local-launch-BJpBAIR5.js} +37 -33
  26. package/dist/{pi-embedded-BHXPs-Ix.js → pi-embedded-DBn841N-.js} +24 -24
  27. package/dist/{pi-embedded-DvWHP6Nn.js → pi-embedded-DYc6emwb.js} +24 -24
  28. package/dist/{pi-embedded-helpers-xIXwvwuE.js → pi-embedded-helpers-BtnBVL-4.js} +3 -3
  29. package/dist/{pi-embedded-helpers-Ck1qEeMH.js → pi-embedded-helpers-DLm1Mtr2.js} +3 -3
  30. package/dist/plugin-sdk/accounts-B8qv93DH.js +35 -0
  31. package/dist/plugin-sdk/accounts-D2p8t4UO.js +288 -0
  32. package/dist/plugin-sdk/accounts-D96D1U9M.js +46 -0
  33. package/dist/plugin-sdk/active-listener-Mha1rAbh.js +50 -0
  34. package/dist/plugin-sdk/api-key-rotation-D0aZfxXH.js +181 -0
  35. package/dist/plugin-sdk/audio-preflight-D3y8mHJa.js +69 -0
  36. package/dist/plugin-sdk/audio-transcription-runner-j0mQXKSH.js +2205 -0
  37. package/dist/plugin-sdk/audit-membership-runtime-D-Ni2WDc.js +58 -0
  38. package/dist/plugin-sdk/channel-activity-VpA3MxPb.js +94 -0
  39. package/dist/plugin-sdk/channel-web-BP3vDdim.js +2256 -0
  40. package/dist/plugin-sdk/chrome-5jJIDTj0.js +2447 -0
  41. package/dist/plugin-sdk/commands-registry-BVKCdwN_.js +1125 -0
  42. package/dist/plugin-sdk/config-CudVTZDi.js +18200 -0
  43. package/dist/plugin-sdk/deliver-4NrmrRKu.js +1744 -0
  44. package/dist/plugin-sdk/deliver-runtime-CB4wXMTH.js +32 -0
  45. package/dist/plugin-sdk/deps-send-discord.runtime-Di8ELKED.js +23 -0
  46. package/dist/plugin-sdk/deps-send-imessage.runtime-CWWtApbz.js +22 -0
  47. package/dist/plugin-sdk/deps-send-signal.runtime-C6BGyoIY.js +21 -0
  48. package/dist/plugin-sdk/deps-send-slack.runtime-DgtITBuc.js +19 -0
  49. package/dist/plugin-sdk/deps-send-telegram.runtime-DyY4XRxh.js +24 -0
  50. package/dist/plugin-sdk/deps-send-whatsapp.runtime-LKiQNFcF.js +57 -0
  51. package/dist/plugin-sdk/diagnostic-DCPixRez.js +319 -0
  52. package/dist/plugin-sdk/errors-D5bA02--.js +54 -0
  53. package/dist/plugin-sdk/fetch-guard-n0LVdzZL.js +156 -0
  54. package/dist/plugin-sdk/fs-safe-IQ0H7rVD.js +352 -0
  55. package/dist/plugin-sdk/image-n-R2HcNg.js +2314 -0
  56. package/dist/plugin-sdk/image-ops-BpYDXC6N.js +584 -0
  57. package/dist/plugin-sdk/image-runtime-CbCl82B8.js +25 -0
  58. package/dist/plugin-sdk/index.js +50 -50
  59. package/dist/plugin-sdk/ir-DsMX3GcS.js +1296 -0
  60. package/dist/plugin-sdk/local-roots-DR-lR22p.js +186 -0
  61. package/dist/plugin-sdk/logger-2A0UE34q.js +1163 -0
  62. package/dist/plugin-sdk/login-CxFTtHEi.js +57 -0
  63. package/dist/plugin-sdk/login-qr-BCkrf1Zx.js +320 -0
  64. package/dist/plugin-sdk/manager-ClUgSFkG.js +3943 -0
  65. package/dist/plugin-sdk/manager-runtime-MWzYCRyH.js +15 -0
  66. package/dist/plugin-sdk/outbound-Dqs8L8QW.js +212 -0
  67. package/dist/plugin-sdk/outbound-attachment-CPfpUcdI.js +19 -0
  68. package/dist/plugin-sdk/path-alias-guards-LILr7Hrs.js +43 -0
  69. package/dist/plugin-sdk/paths-CfGmXu9A.js +166 -0
  70. package/dist/plugin-sdk/pi-embedded-helpers-CeC8GbRi.js +9731 -0
  71. package/dist/plugin-sdk/pi-model-discovery-DycOMKYh.js +134 -0
  72. package/dist/plugin-sdk/pi-model-discovery-runtime-C64BYe5F.js +8 -0
  73. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C-HNtPSw.js +354 -0
  74. package/dist/plugin-sdk/plugins-2gQWMmUN.js +1205 -0
  75. package/dist/plugin-sdk/proxy-fetch-sX3-xzX1.js +38 -0
  76. package/dist/plugin-sdk/pw-ai-D7FTxM3C.js +1938 -0
  77. package/dist/plugin-sdk/qmd-manager-Da3Jq30m.js +1608 -0
  78. package/dist/plugin-sdk/query-expansion-B5Z0In1U.js +1014 -0
  79. package/dist/plugin-sdk/redact-85H1J7mo.js +319 -0
  80. package/dist/plugin-sdk/reply-DmCyOPxV.js +102224 -0
  81. package/dist/plugin-sdk/resolve-outbound-target-y0Sp7gsM.js +40 -0
  82. package/dist/plugin-sdk/run-with-concurrency-CFRxflYW.js +1994 -0
  83. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-fgm84Rdh.js +10 -0
  84. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DpMuLd_h.js +19 -0
  85. package/dist/plugin-sdk/send-BQvcPd54.js +3135 -0
  86. package/dist/plugin-sdk/send-Bplfz7UW.js +540 -0
  87. package/dist/plugin-sdk/send-C8gdhoLP.js +414 -0
  88. package/dist/plugin-sdk/send-CTOVZqmi.js +2602 -0
  89. package/dist/plugin-sdk/send-Cld7xlxq.js +503 -0
  90. package/dist/plugin-sdk/session-D4k86ARy.js +169 -0
  91. package/dist/plugin-sdk/signal.js +2 -2
  92. package/dist/plugin-sdk/skill-commands-BfHvtJx2.js +353 -0
  93. package/dist/plugin-sdk/skills-BrE5Yb5o.js +1428 -0
  94. package/dist/plugin-sdk/slash-commands.runtime-UpSrdY-a.js +13 -0
  95. package/dist/plugin-sdk/slash-dispatch.runtime-C-Ymizf2.js +52 -0
  96. package/dist/plugin-sdk/slash-skill-commands.runtime-Bb9wo3w0.js +16 -0
  97. package/dist/plugin-sdk/ssrf-CbvrROKN.js +202 -0
  98. package/dist/plugin-sdk/store-8XS_isi_.js +81 -0
  99. package/dist/plugin-sdk/subagent-registry-runtime-Cl3jJKM1.js +52 -0
  100. package/dist/plugin-sdk/tables-BhfDBQ58.js +55 -0
  101. package/dist/plugin-sdk/target-errors-0DW3k-Ae.js +195 -0
  102. package/dist/plugin-sdk/thinking-DE2FCBnv.js +1209 -0
  103. package/dist/plugin-sdk/tokens-C2tJ8uXs.js +52 -0
  104. package/dist/plugin-sdk/tool-images-B1I6LEp7.js +274 -0
  105. package/dist/plugin-sdk/web-BHzDLmns.js +56 -0
  106. package/dist/plugin-sdk/whatsapp-actions-BoAH0BAS.js +80 -0
  107. package/dist/{pw-ai-DweqbnMJ.js → pw-ai-C-Sy12jT.js} +1 -1
  108. package/dist/{pw-ai-DsYmOxCp.js → pw-ai-pJMhS79V.js} +1 -1
  109. package/dist/{run-main-CgFUs81l.js → run-main-JI9-1g4u.js} +2 -2
  110. package/dist/{slash-dispatch.runtime-D28-UnsO.js → slash-dispatch.runtime-DLP2IeNv.js} +6 -6
  111. package/dist/{slash-dispatch.runtime-DzpJjr3K.js → slash-dispatch.runtime-Vp6IDoCc.js} +6 -6
  112. package/dist/{subagent-registry-runtime-a7xfwPB8.js → subagent-registry-runtime-BlAI3eqU.js} +6 -6
  113. package/dist/{subagent-registry-runtime-Bt-LYyrB.js → subagent-registry-runtime-COKZwsHd.js} +6 -6
  114. package/dist/{web-CREcqhe9.js → web-BEuMJbx-.js} +6 -6
  115. package/dist/{web-IBqHOVI2.js → web-BvId86u4.js} +6 -6
  116. package/extensions/acpx/package.json +1 -1
  117. package/extensions/bluebubbles/package.json +1 -1
  118. package/extensions/ci-fix-loop/package.json +1 -1
  119. package/extensions/continuous-learning/package.json +1 -1
  120. package/extensions/copilot-proxy/package.json +1 -1
  121. package/extensions/diagnostics-otel/package.json +1 -1
  122. package/extensions/diffs/package.json +1 -1
  123. package/extensions/discord/package.json +1 -1
  124. package/extensions/feishu/package.json +1 -1
  125. package/extensions/flow/package.json +1 -1
  126. package/extensions/google-antigravity-auth/package.json +1 -1
  127. package/extensions/google-gemini-cli-auth/package.json +1 -1
  128. package/extensions/googlechat/package.json +1 -1
  129. package/extensions/imessage/package.json +1 -1
  130. package/extensions/irc/package.json +1 -1
  131. package/extensions/line/package.json +1 -1
  132. package/extensions/llm-task/package.json +1 -1
  133. package/extensions/lobster/package.json +1 -1
  134. package/extensions/matrix/CHANGELOG.md +10 -0
  135. package/extensions/matrix/package.json +1 -1
  136. package/extensions/mattermost/package.json +1 -1
  137. package/extensions/memory-core/package.json +1 -1
  138. package/extensions/memory-lancedb/package.json +1 -1
  139. package/extensions/minimax-portal-auth/package.json +1 -1
  140. package/extensions/msteams/CHANGELOG.md +10 -0
  141. package/extensions/msteams/package.json +1 -1
  142. package/extensions/nextcloud-talk/package.json +1 -1
  143. package/extensions/nostr/CHANGELOG.md +10 -0
  144. package/extensions/nostr/package.json +1 -1
  145. package/extensions/open-prose/package.json +1 -1
  146. package/extensions/self-improvement/package.json +1 -1
  147. package/extensions/signal/package.json +1 -1
  148. package/extensions/slack/package.json +1 -1
  149. package/extensions/synology-chat/package.json +1 -1
  150. package/extensions/telegram/package.json +1 -1
  151. package/extensions/tlon/package.json +1 -1
  152. package/extensions/twitch/CHANGELOG.md +10 -0
  153. package/extensions/twitch/package.json +1 -1
  154. package/extensions/voice-call/CHANGELOG.md +10 -0
  155. package/extensions/voice-call/package.json +1 -1
  156. package/extensions/whatsapp/package.json +1 -1
  157. package/extensions/zalo/CHANGELOG.md +10 -0
  158. package/extensions/zalo/package.json +1 -1
  159. package/extensions/zalouser/CHANGELOG.md +10 -0
  160. package/extensions/zalouser/package.json +1 -1
  161. package/package.json +2 -1
@@ -44,27 +44,24 @@ import { randomUUID } from "node:crypto";
44
44
  *
45
45
  * Flow:
46
46
  * 1. Write config with gateway.mode = "local"
47
- * 2. Start the gateway server (HTTP + WS on port 18789)
48
- * 3. Connect to wss://gw.hanzo.bot as a remote node
47
+ * 2. Start the gateway server (HTTP + WS on port 18789) with no auth (loopback-only)
48
+ * 3. Attempt cloud registration on wss://gw.hanzo.bot (non-blocking)
49
49
  * 4. Open the Control UI in the user's browser
50
50
  * 5. Keep running until Ctrl+C
51
51
  */
52
52
  const CLOUD_GATEWAY_URL = "wss://gw.hanzo.bot";
53
- const PLAYGROUND_NODES_URL = "https://app.hanzo.bot/nodes";
54
- const PLAYGROUND_URL = "https://app.hanzo.bot/playground";
55
53
  const DEFAULT_PORT = 18789;
56
54
  async function launchLocal(params) {
57
55
  const { accessToken } = params;
58
56
  await writeConfigFile({
59
57
  gateway: {
60
58
  mode: "local",
61
- bind: "loopback",
62
- auth: { mode: "token" }
59
+ bind: "loopback"
63
60
  },
64
61
  agents: { defaults: { workspace: path.join(os.homedir(), ".hanzo", "bot", "workspace") } }
65
62
  });
66
63
  console.log("\n Starting local gateway...\n");
67
- const [{ startGatewayServer }, { GatewayClient }, { runGatewayLoop }, { getMachineDisplayName }, { loadOrCreateDeviceIdentity }, { VERSION }, { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES }, { NODE_SYSTEM_RUN_COMMANDS, NODE_EXEC_APPROVALS_COMMANDS, NODE_BROWSER_PROXY_COMMAND }, { defaultRuntime }] = await Promise.all([
64
+ const [{ startGatewayServer }, { GatewayClient }, { runGatewayLoop }, { getMachineDisplayName }, { loadOrCreateDeviceIdentity }, { VERSION }, { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES }, { NODE_SYSTEM_RUN_COMMANDS, NODE_EXEC_APPROVALS_COMMANDS }, { defaultRuntime }] = await Promise.all([
68
65
  import("./server-CG9eco0N.js").then((n) => n.t),
69
66
  import("./client-Bvvecv3V.js").then((n) => n.n),
70
67
  import("./run-loop-Zvh_699t.js").then((n) => n.n),
@@ -83,36 +80,43 @@ async function launchLocal(params) {
83
80
  runtime: defaultRuntime,
84
81
  lockPort: port,
85
82
  start: async () => {
86
- const server = await startGatewayServer(port, { bind: "loopback" });
87
- new GatewayClient({
88
- url: CLOUD_GATEWAY_URL,
89
- token: accessToken,
90
- instanceId: nodeId,
91
- clientName: GATEWAY_CLIENT_NAMES.NODE_HOST,
92
- clientDisplayName: displayName,
93
- clientVersion: VERSION,
94
- platform: process.platform,
95
- mode: GATEWAY_CLIENT_MODES.NODE,
96
- role: "node",
97
- scopes: [],
98
- caps: ["system"],
99
- commands: [...NODE_SYSTEM_RUN_COMMANDS, ...NODE_EXEC_APPROVALS_COMMANDS],
100
- deviceIdentity: loadOrCreateDeviceIdentity(),
101
- onConnectError: (err) => {
102
- console.error(` Cloud gateway connect failed: ${err.message}`);
103
- },
104
- onClose: (code, reason) => {
105
- console.error(` Cloud gateway closed (${code}): ${reason}`);
106
- }
107
- }).start();
83
+ const server = await startGatewayServer(port, {
84
+ bind: "loopback",
85
+ auth: { mode: "none" }
86
+ });
108
87
  try {
109
88
  await openUrl(`http://127.0.0.1:${port}/`);
110
89
  } catch {}
111
90
  console.log(` Gateway running on http://127.0.0.1:${port}/`);
112
- console.log(` Connected to Hanzo Cloud as "${displayName}"\n`);
113
- console.log(` View your node: ${PLAYGROUND_NODES_URL}`);
114
- console.log(` Open Playground: ${PLAYGROUND_URL}\n`);
115
- console.log(" Press Ctrl+C to disconnect.\n");
91
+ console.log(` Control UI opened in your browser.\n`);
92
+ let cloudConnected = false;
93
+ try {
94
+ new GatewayClient({
95
+ url: CLOUD_GATEWAY_URL,
96
+ token: accessToken,
97
+ instanceId: nodeId,
98
+ clientName: GATEWAY_CLIENT_NAMES.NODE_HOST,
99
+ clientDisplayName: displayName,
100
+ clientVersion: VERSION,
101
+ platform: process.platform,
102
+ mode: GATEWAY_CLIENT_MODES.NODE,
103
+ role: "node",
104
+ scopes: [],
105
+ caps: ["system"],
106
+ commands: [...NODE_SYSTEM_RUN_COMMANDS, ...NODE_EXEC_APPROVALS_COMMANDS],
107
+ deviceIdentity: loadOrCreateDeviceIdentity(),
108
+ onConnectError: (_err) => {
109
+ if (!cloudConnected) {
110
+ console.log(" Cloud Playground registration unavailable — running in local-only mode.");
111
+ console.log(" (Your bot works locally; Playground visibility will be added in a future update.)\n");
112
+ }
113
+ },
114
+ onClose: (_code, _reason) => {
115
+ cloudConnected = false;
116
+ }
117
+ }).start();
118
+ } catch {}
119
+ console.log(" Press Ctrl+C to stop the gateway.\n");
116
120
  return server;
117
121
  }
118
122
  });
@@ -14,15 +14,15 @@ import { C as createDiscordActionGate, E as normalizeDiscordToken, S as inspectD
14
14
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BrlM68Dd.js";
15
15
  import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-CKIMBFLs.js";
16
16
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CXrBi7Jq.js";
17
- import { A as joinPresentTextSegments, C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-D8dBbzpu.js";
17
+ import { A as joinPresentTextSegments, C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-BVtVDxwX.js";
18
18
  import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-D1IbJfJM.js";
19
19
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-C_LXSS3x.js";
20
20
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-BiE9e9-P.js";
21
21
  import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-C-QWxnVw.js";
22
22
  import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-Cp6dmr2f.js";
23
23
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Cucu_uXw.js";
24
- import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isRawApiErrorPayload, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCloudCodeAssistFormatError, Ct as setSessionRuntimeModel, D as isFailoverErrorMessage, Dt as resolveMainSessionKey, E as isFailoverAssistantError, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageDimensionError, Mt as resolveSessionLockMaxHoldFromTimeout, N as parseImageSizeError, Nt as createBrowserRouteContext, O as isLikelyContextOverflowError, Ot as deriveSessionMetaPatch, P as sanitizeUserFacingText, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isBillingAssistantError, St as resolveFreshSessionTotalTokens, T as isContextOverflowError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatAssistantErrorText, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as getApiErrorPayloadFingerprint, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as parseInlineDirectives$1, d as downgradeOpenAIFunctionCallReasoningPairs, dt as hasInterSessionUserProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as normalizeInputProvenance, g as classifyFailoverReasonFromHttpStatus, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as isTransientHttpError, jt as acquireSessionWriteLock, k as isRateLimitAssistantError, kt as resolveConversationLabel, l as extractToolResultId, lt as INPUT_PROVENANCE_KIND_VALUES, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as countToolResults, p as isGoogleModelApi, pt as jsonUtf8Bytes, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as extractToolCallNames, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as applyInputProvenanceToUserMessage, v as formatBillingErrorMessage, vt as resolveSessionResetType, w as isCompactionFailureError, wt as canonicalizeMainSessionAlias, x as isAuthAssistantError, xt as mergeSessionEntry, y as formatRawAssistantErrorForUi, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-xIXwvwuE.js";
25
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-C7OwLtx9.js";
24
+ import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isRawApiErrorPayload, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCloudCodeAssistFormatError, Ct as setSessionRuntimeModel, D as isFailoverErrorMessage, Dt as resolveMainSessionKey, E as isFailoverAssistantError, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageDimensionError, Mt as resolveSessionLockMaxHoldFromTimeout, N as parseImageSizeError, Nt as createBrowserRouteContext, O as isLikelyContextOverflowError, Ot as deriveSessionMetaPatch, P as sanitizeUserFacingText, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isBillingAssistantError, St as resolveFreshSessionTotalTokens, T as isContextOverflowError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatAssistantErrorText, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as getApiErrorPayloadFingerprint, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as parseInlineDirectives$1, d as downgradeOpenAIFunctionCallReasoningPairs, dt as hasInterSessionUserProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as normalizeInputProvenance, g as classifyFailoverReasonFromHttpStatus, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as isTransientHttpError, jt as acquireSessionWriteLock, k as isRateLimitAssistantError, kt as resolveConversationLabel, l as extractToolResultId, lt as INPUT_PROVENANCE_KIND_VALUES, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as countToolResults, p as isGoogleModelApi, pt as jsonUtf8Bytes, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as extractToolCallNames, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as applyInputProvenanceToUserMessage, v as formatBillingErrorMessage, vt as resolveSessionResetType, w as isCompactionFailureError, wt as canonicalizeMainSessionAlias, x as isAuthAssistantError, xt as mergeSessionEntry, y as formatRawAssistantErrorForUi, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-BtnBVL-4.js";
25
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-jCt9JCU8.js";
26
26
  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-BDJUqEFI.js";
27
27
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BCv18tKc.js";
28
28
  import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-DqlKR0-n.js";
@@ -35,8 +35,8 @@ import { t as resolveIMessageAccount } from "./accounts-B4Cft76I.js";
35
35
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-l8GkNRRD.js";
36
36
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-uYL2gEou.js";
37
37
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-D9pdW1gE.js";
38
- import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-BOybyCis.js";
39
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-X1KzI7dF.js";
38
+ import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-DSK1hSSV.js";
39
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-CAOjjGxN.js";
40
40
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-C6doVJxZ.js";
41
41
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Wgx3OXYj.js";
42
42
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-C-neMX4E.js";
@@ -74,7 +74,7 @@ import { EdgeTTS } from "node-edge-tts";
74
74
  import * as net$1 from "node:net";
75
75
  import { createServer } from "node:http";
76
76
  import { Agent, EnvHttpProxyAgent, ProxyAgent, fetch as fetch$1, getGlobalDispatcher, setGlobalDispatcher } from "undici";
77
- import WebSocket$1, { WebSocket } from "ws";
77
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
78
78
  import { Buffer as Buffer$1 } from "node:buffer";
79
79
  import { createJiti } from "jiti";
80
80
  import AjvPkg from "ajv";
@@ -8508,7 +8508,7 @@ var GatewayClient = class {
8508
8508
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8509
8509
  });
8510
8510
  }
8511
- this.ws = new WebSocket(url, wsOptions);
8511
+ this.ws = new WebSocket$1(url, wsOptions);
8512
8512
  this.ws.on("open", () => {
8513
8513
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8514
8514
  const tlsError = this.validateTlsFingerprint();
@@ -8704,7 +8704,7 @@ var GatewayClient = class {
8704
8704
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8705
8705
  if (this.connectTimer) clearTimeout(this.connectTimer);
8706
8706
  this.connectTimer = setTimeout(() => {
8707
- if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8707
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8708
8708
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8709
8709
  this.ws?.close(1008, "connect challenge timeout");
8710
8710
  }, connectChallengeTimeoutMs);
@@ -8746,7 +8746,7 @@ var GatewayClient = class {
8746
8746
  return null;
8747
8747
  }
8748
8748
  async request(method, params, opts) {
8749
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8749
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8750
8750
  const id = randomUUID();
8751
8751
  const frame = {
8752
8752
  type: "req",
@@ -10165,7 +10165,7 @@ function normalizeReplyPayload(payload, opts = {}) {
10165
10165
  //#region src/auto-reply/reply/route-reply.ts
10166
10166
  let deliverRuntimePromise$2 = null;
10167
10167
  function loadDeliverRuntime$2() {
10168
- deliverRuntimePromise$2 ??= import("./deliver-runtime-C76IMU4W.js");
10168
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-G0G5orrZ.js");
10169
10169
  return deliverRuntimePromise$2;
10170
10170
  }
10171
10171
  /**
@@ -11454,7 +11454,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11454
11454
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11455
11455
  let subagentRegistryRuntimePromise = null;
11456
11456
  function loadSubagentRegistryRuntime() {
11457
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-Bt-LYyrB.js");
11457
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-COKZwsHd.js");
11458
11458
  return subagentRegistryRuntimePromise;
11459
11459
  }
11460
11460
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14973,7 +14973,7 @@ async function runWithConcurrency(tasks, limit) {
14973
14973
  //#region src/media-understanding/echo-transcript.ts
14974
14974
  let deliverRuntimePromise$1 = null;
14975
14975
  function loadDeliverRuntime$1() {
14976
- deliverRuntimePromise$1 ??= import("./deliver-runtime-C76IMU4W.js");
14976
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-G0G5orrZ.js");
14977
14977
  return deliverRuntimePromise$1;
14978
14978
  }
14979
14979
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -53447,7 +53447,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
53447
53447
  const log$10 = createSubsystemLogger("session-maintenance-warning");
53448
53448
  let deliverRuntimePromise = null;
53449
53449
  function loadDeliverRuntime() {
53450
- deliverRuntimePromise ??= import("./deliver-runtime-C76IMU4W.js");
53450
+ deliverRuntimePromise ??= import("./deliver-runtime-G0G5orrZ.js");
53451
53451
  return deliverRuntimePromise;
53452
53452
  }
53453
53453
  function shouldSendWarning() {
@@ -58544,7 +58544,7 @@ const VISION_PROVIDERS = [
58544
58544
  ];
58545
58545
  let imageRuntimePromise = null;
58546
58546
  function loadImageRuntime() {
58547
- imageRuntimePromise ??= import("./image-runtime-y4msd5bn.js");
58547
+ imageRuntimePromise ??= import("./image-runtime-xqxW2PQA.js");
58548
58548
  return imageRuntimePromise;
58549
58549
  }
58550
58550
  /**
@@ -62748,7 +62748,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
62748
62748
  hasTypedText
62749
62749
  };
62750
62750
  try {
62751
- const { transcribeFirstAudio } = await import("./audio-preflight-BEc8i-bS.js");
62751
+ const { transcribeFirstAudio } = await import("./audio-preflight-CpAXC_Ct.js");
62752
62752
  if (params.abortSignal?.aborted) return {
62753
62753
  hasAudioAttachment,
62754
62754
  hasTypedText
@@ -68410,7 +68410,7 @@ let slackSenderRuntimePromise = null;
68410
68410
  let signalSenderRuntimePromise = null;
68411
68411
  let imessageSenderRuntimePromise = null;
68412
68412
  function loadWhatsAppSenderRuntime() {
68413
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-Cv_awFtm.js");
68413
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-8bLqjmui.js");
68414
68414
  return whatsappSenderRuntimePromise;
68415
68415
  }
68416
68416
  function loadTelegramSenderRuntime() {
@@ -72122,7 +72122,7 @@ function createDiscordGatewayPlugin(params) {
72122
72122
  return super.registerClient(client);
72123
72123
  }
72124
72124
  createWebSocket(url) {
72125
- return new WebSocket$1(url, { agent: wsAgent });
72125
+ return new WebSocket(url, { agent: wsAgent });
72126
72126
  }
72127
72127
  }
72128
72128
  return new ProxyGatewayPlugin();
@@ -81297,7 +81297,7 @@ function loadSlashCommandsRuntime() {
81297
81297
  return slashCommandsRuntimePromise;
81298
81298
  }
81299
81299
  function loadSlashDispatchRuntime() {
81300
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-D28-UnsO.js");
81300
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DLP2IeNv.js");
81301
81301
  return slashDispatchRuntimePromise;
81302
81302
  }
81303
81303
  function loadSlashSkillCommandsRuntime() {
@@ -84751,7 +84751,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
84751
84751
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
84752
84752
  let preflightTranscript;
84753
84753
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
84754
- const { transcribeFirstAudio } = await import("./audio-preflight-BEc8i-bS.js");
84754
+ const { transcribeFirstAudio } = await import("./audio-preflight-CpAXC_Ct.js");
84755
84755
  preflightTranscript = await transcribeFirstAudio({
84756
84756
  ctx: {
84757
84757
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -87757,7 +87757,7 @@ function loadWebLoginQr() {
87757
87757
  return webLoginQrPromise;
87758
87758
  }
87759
87759
  function loadWebChannel() {
87760
- webChannelPromise ??= import("./web-CREcqhe9.js");
87760
+ webChannelPromise ??= import("./web-BEuMJbx-.js");
87761
87761
  return webChannelPromise;
87762
87762
  }
87763
87763
  function loadWhatsAppActions() {
@@ -96552,7 +96552,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96552
96552
  * Throws if the connection is not open.
96553
96553
  */
96554
96554
  send(event) {
96555
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
96555
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
96556
96556
  this.ws.send(JSON.stringify(event));
96557
96557
  }
96558
96558
  /**
@@ -96569,7 +96569,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96569
96569
  * Returns true if the WebSocket is currently open and ready to send.
96570
96570
  */
96571
96571
  isConnected() {
96572
- return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
96572
+ return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
96573
96573
  }
96574
96574
  /**
96575
96575
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -96579,7 +96579,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96579
96579
  this._cancelRetryTimer();
96580
96580
  if (this.ws) {
96581
96581
  this.ws.removeAllListeners();
96582
- if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
96582
+ if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
96583
96583
  this.ws = null;
96584
96584
  }
96585
96585
  }
@@ -96589,7 +96589,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96589
96589
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
96590
96590
  return;
96591
96591
  }
96592
- const socket = new WebSocket$1(this.wsUrl, { headers: {
96592
+ const socket = new WebSocket(this.wsUrl, { headers: {
96593
96593
  Authorization: `Bearer ${this.apiKey}`,
96594
96594
  "OpenAI-Beta": "responses-websocket=v1"
96595
96595
  } });
@@ -11,15 +11,15 @@ import { C as createDiscordActionGate, E as normalizeDiscordToken, S as inspectD
11
11
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-AXsMHyHL.js";
12
12
  import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-DrSesnuy.js";
13
13
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-D68-1Hhs.js";
14
- import { A as joinPresentTextSegments, C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-DudaV86i.js";
14
+ import { A as joinPresentTextSegments, C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-DmfS4khs.js";
15
15
  import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-DV5ugeTF.js";
16
16
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CGE0qwJa.js";
17
17
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-D1wBrTyc.js";
18
18
  import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-CZyK9ORn.js";
19
19
  import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-B9qE3uV_.js";
20
20
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-zcOSFl9m.js";
21
- import { $ as deliveryContextFromSession, $t as matchesAnyGlobPattern, A as isRawApiErrorPayload, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCloudCodeAssistFormatError, Ct as resolveFreshSessionTotalTokens, D as isFailoverErrorMessage, Dt as resolveMainSessionKey, E as isFailoverAssistantError, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateLastRoute, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageDimensionError, Mt as resolveSessionLockMaxHoldFromTimeout, N as parseImageSizeError, Nt as createBrowserRouteContext, O as isLikelyContextOverflowError, Ot as deriveSessionMetaPatch, P as sanitizeUserFacingText, Pt as registerBrowserRoutes, Q as resolveCacheTtlMs$1, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isBillingAssistantError, St as mergeSessionEntry, T as isContextOverflowError, Tt as canonicalizeMainSessionAlias, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as updateSessionStoreEntry, Xt as normalizeToolName, Y as updateSessionStore, Yt as expandToolGroups, Z as isCacheEnabled, Zt as resolveToolProfilePolicy, _ as formatAssistantErrorText, _t as resolveChannelResetConfig, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as archiveSessionTranscripts, b as getApiErrorPayloadFingerprint, bt as resolveThreadFlag, c as extractToolCallsFromAssistant, ct as extractToolCallNames, d as downgradeOpenAIFunctionCallReasoningPairs, dt as applyInputProvenanceToUserMessage, en as buildBootstrapContextFiles, et as deliveryContextKey, f as downgradeOpenAIReasoningBlocks, ft as hasInterSessionUserProvenance, g as classifyFailoverReasonFromHttpStatus, gt as evaluateSessionFreshness, h as classifyFailoverReason, ht as resolveSessionKey, in as resolveBootstrapTotalMaxChars, it as normalizeAccountId$3, j as isTransientHttpError, jt as acquireSessionWriteLock, k as isRateLimitAssistantError, kt as resolveConversationLabel, l as extractToolResultId, lt as parseInlineDirectives$1, m as BILLING_ERROR_USER_MESSAGE, mt as jsonUtf8Bytes, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeDeliveryContext, o as normalizeTextForComparison, ot as capArrayByJsonBytes, p as isGoogleModelApi, pt as normalizeInputProvenance, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeSessionDeliveryFields, s as sanitizeSessionMessagesImages, st as countToolResults, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as mergeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as INPUT_PROVENANCE_KIND_VALUES, v as formatBillingErrorMessage, vt as resolveSessionResetPolicy, w as isCompactionFailureError, wt as setSessionRuntimeModel, x as isAuthAssistantError, xt as DEFAULT_RESET_TRIGGERS, y as formatRawAssistantErrorForUi, yt as resolveSessionResetType, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-Ck1qEeMH.js";
22
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-B24-8NDM.js";
21
+ import { $ as deliveryContextFromSession, $t as matchesAnyGlobPattern, A as isRawApiErrorPayload, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCloudCodeAssistFormatError, Ct as resolveFreshSessionTotalTokens, D as isFailoverErrorMessage, Dt as resolveMainSessionKey, E as isFailoverAssistantError, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateLastRoute, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageDimensionError, Mt as resolveSessionLockMaxHoldFromTimeout, N as parseImageSizeError, Nt as createBrowserRouteContext, O as isLikelyContextOverflowError, Ot as deriveSessionMetaPatch, P as sanitizeUserFacingText, Pt as registerBrowserRoutes, Q as resolveCacheTtlMs$1, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isBillingAssistantError, St as mergeSessionEntry, T as isContextOverflowError, Tt as canonicalizeMainSessionAlias, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as updateSessionStoreEntry, Xt as normalizeToolName, Y as updateSessionStore, Yt as expandToolGroups, Z as isCacheEnabled, Zt as resolveToolProfilePolicy, _ as formatAssistantErrorText, _t as resolveChannelResetConfig, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as archiveSessionTranscripts, b as getApiErrorPayloadFingerprint, bt as resolveThreadFlag, c as extractToolCallsFromAssistant, ct as extractToolCallNames, d as downgradeOpenAIFunctionCallReasoningPairs, dt as applyInputProvenanceToUserMessage, en as buildBootstrapContextFiles, et as deliveryContextKey, f as downgradeOpenAIReasoningBlocks, ft as hasInterSessionUserProvenance, g as classifyFailoverReasonFromHttpStatus, gt as evaluateSessionFreshness, h as classifyFailoverReason, ht as resolveSessionKey, in as resolveBootstrapTotalMaxChars, it as normalizeAccountId$3, j as isTransientHttpError, jt as acquireSessionWriteLock, k as isRateLimitAssistantError, kt as resolveConversationLabel, l as extractToolResultId, lt as parseInlineDirectives$1, m as BILLING_ERROR_USER_MESSAGE, mt as jsonUtf8Bytes, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeDeliveryContext, o as normalizeTextForComparison, ot as capArrayByJsonBytes, p as isGoogleModelApi, pt as normalizeInputProvenance, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeSessionDeliveryFields, s as sanitizeSessionMessagesImages, st as countToolResults, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as mergeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as INPUT_PROVENANCE_KIND_VALUES, v as formatBillingErrorMessage, vt as resolveSessionResetPolicy, w as isCompactionFailureError, wt as setSessionRuntimeModel, x as isAuthAssistantError, xt as DEFAULT_RESET_TRIGGERS, y as formatRawAssistantErrorForUi, yt as resolveSessionResetType, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-DLm1Mtr2.js";
22
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome--CFg5C_H.js";
23
23
  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-CrM4sG5V.js";
24
24
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CJ-rXOZR.js";
25
25
  import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-BYyl-Ec1.js";
@@ -32,8 +32,8 @@ import { t as resolveIMessageAccount } from "./accounts-BAQCqsoB.js";
32
32
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BtoBqtXI.js";
33
33
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-UAKcGiUQ.js";
34
34
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CH22eok3.js";
35
- import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-nUHQF6BX.js";
36
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-BePCnZfw.js";
35
+ import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-BdZcUz8M.js";
36
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-GcMnO6sT.js";
37
37
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-R5LnsL8v.js";
38
38
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-B_Wivh-n.js";
39
39
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CFgB2KTx.js";
@@ -71,7 +71,7 @@ import { EdgeTTS } from "node-edge-tts";
71
71
  import * as net$1 from "node:net";
72
72
  import { createServer } from "node:http";
73
73
  import { Agent, EnvHttpProxyAgent, ProxyAgent, fetch as fetch$1, getGlobalDispatcher, setGlobalDispatcher } from "undici";
74
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
74
+ import WebSocket$1, { WebSocket } from "ws";
75
75
  import { Buffer as Buffer$1 } from "node:buffer";
76
76
  import { createJiti } from "jiti";
77
77
  import AjvPkg from "ajv";
@@ -8505,7 +8505,7 @@ var GatewayClient = class {
8505
8505
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8506
8506
  });
8507
8507
  }
8508
- this.ws = new WebSocket$1(url, wsOptions);
8508
+ this.ws = new WebSocket(url, wsOptions);
8509
8509
  this.ws.on("open", () => {
8510
8510
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8511
8511
  const tlsError = this.validateTlsFingerprint();
@@ -8701,7 +8701,7 @@ var GatewayClient = class {
8701
8701
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8702
8702
  if (this.connectTimer) clearTimeout(this.connectTimer);
8703
8703
  this.connectTimer = setTimeout(() => {
8704
- if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8704
+ if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8705
8705
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8706
8706
  this.ws?.close(1008, "connect challenge timeout");
8707
8707
  }, connectChallengeTimeoutMs);
@@ -8743,7 +8743,7 @@ var GatewayClient = class {
8743
8743
  return null;
8744
8744
  }
8745
8745
  async request(method, params, opts) {
8746
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8746
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8747
8747
  const id = randomUUID();
8748
8748
  const frame = {
8749
8749
  type: "req",
@@ -10162,7 +10162,7 @@ function normalizeReplyPayload(payload, opts = {}) {
10162
10162
  //#region src/auto-reply/reply/route-reply.ts
10163
10163
  let deliverRuntimePromise$2 = null;
10164
10164
  function loadDeliverRuntime$2() {
10165
- deliverRuntimePromise$2 ??= import("./deliver-runtime-qDmQqiF-.js");
10165
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-PxJvVUhh.js");
10166
10166
  return deliverRuntimePromise$2;
10167
10167
  }
10168
10168
  /**
@@ -11451,7 +11451,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11451
11451
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11452
11452
  let subagentRegistryRuntimePromise = null;
11453
11453
  function loadSubagentRegistryRuntime() {
11454
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-a7xfwPB8.js");
11454
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-BlAI3eqU.js");
11455
11455
  return subagentRegistryRuntimePromise;
11456
11456
  }
11457
11457
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14970,7 +14970,7 @@ async function runWithConcurrency(tasks, limit) {
14970
14970
  //#region src/media-understanding/echo-transcript.ts
14971
14971
  let deliverRuntimePromise$1 = null;
14972
14972
  function loadDeliverRuntime$1() {
14973
- deliverRuntimePromise$1 ??= import("./deliver-runtime-qDmQqiF-.js");
14973
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-PxJvVUhh.js");
14974
14974
  return deliverRuntimePromise$1;
14975
14975
  }
14976
14976
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -53444,7 +53444,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
53444
53444
  const log$10 = createSubsystemLogger("session-maintenance-warning");
53445
53445
  let deliverRuntimePromise = null;
53446
53446
  function loadDeliverRuntime() {
53447
- deliverRuntimePromise ??= import("./deliver-runtime-qDmQqiF-.js");
53447
+ deliverRuntimePromise ??= import("./deliver-runtime-PxJvVUhh.js");
53448
53448
  return deliverRuntimePromise;
53449
53449
  }
53450
53450
  function shouldSendWarning() {
@@ -58541,7 +58541,7 @@ const VISION_PROVIDERS = [
58541
58541
  ];
58542
58542
  let imageRuntimePromise = null;
58543
58543
  function loadImageRuntime() {
58544
- imageRuntimePromise ??= import("./image-runtime-B5M_-diF.js");
58544
+ imageRuntimePromise ??= import("./image-runtime-ueqmfx1a.js");
58545
58545
  return imageRuntimePromise;
58546
58546
  }
58547
58547
  /**
@@ -62745,7 +62745,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
62745
62745
  hasTypedText
62746
62746
  };
62747
62747
  try {
62748
- const { transcribeFirstAudio } = await import("./audio-preflight-D_s-peid.js");
62748
+ const { transcribeFirstAudio } = await import("./audio-preflight-BnfuyvxO.js");
62749
62749
  if (params.abortSignal?.aborted) return {
62750
62750
  hasAudioAttachment,
62751
62751
  hasTypedText
@@ -68407,7 +68407,7 @@ let slackSenderRuntimePromise = null;
68407
68407
  let signalSenderRuntimePromise = null;
68408
68408
  let imessageSenderRuntimePromise = null;
68409
68409
  function loadWhatsAppSenderRuntime() {
68410
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-Cq-TLsJw.js");
68410
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-CrzuaVhC.js");
68411
68411
  return whatsappSenderRuntimePromise;
68412
68412
  }
68413
68413
  function loadTelegramSenderRuntime() {
@@ -72113,7 +72113,7 @@ function createDiscordGatewayPlugin(params) {
72113
72113
  return super.registerClient(client);
72114
72114
  }
72115
72115
  createWebSocket(url) {
72116
- return new WebSocket(url, { agent: wsAgent });
72116
+ return new WebSocket$1(url, { agent: wsAgent });
72117
72117
  }
72118
72118
  }
72119
72119
  return new ProxyGatewayPlugin();
@@ -81288,7 +81288,7 @@ function loadSlashCommandsRuntime() {
81288
81288
  return slashCommandsRuntimePromise;
81289
81289
  }
81290
81290
  function loadSlashDispatchRuntime() {
81291
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DzpJjr3K.js");
81291
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-Vp6IDoCc.js");
81292
81292
  return slashDispatchRuntimePromise;
81293
81293
  }
81294
81294
  function loadSlashSkillCommandsRuntime() {
@@ -84742,7 +84742,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
84742
84742
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
84743
84743
  let preflightTranscript;
84744
84744
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
84745
- const { transcribeFirstAudio } = await import("./audio-preflight-D_s-peid.js");
84745
+ const { transcribeFirstAudio } = await import("./audio-preflight-BnfuyvxO.js");
84746
84746
  preflightTranscript = await transcribeFirstAudio({
84747
84747
  ctx: {
84748
84748
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -87748,7 +87748,7 @@ function loadWebLoginQr() {
87748
87748
  return webLoginQrPromise;
87749
87749
  }
87750
87750
  function loadWebChannel() {
87751
- webChannelPromise ??= import("./web-IBqHOVI2.js");
87751
+ webChannelPromise ??= import("./web-BvId86u4.js");
87752
87752
  return webChannelPromise;
87753
87753
  }
87754
87754
  function loadWhatsAppActions() {
@@ -96543,7 +96543,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96543
96543
  * Throws if the connection is not open.
96544
96544
  */
96545
96545
  send(event) {
96546
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
96546
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
96547
96547
  this.ws.send(JSON.stringify(event));
96548
96548
  }
96549
96549
  /**
@@ -96560,7 +96560,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96560
96560
  * Returns true if the WebSocket is currently open and ready to send.
96561
96561
  */
96562
96562
  isConnected() {
96563
- return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
96563
+ return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
96564
96564
  }
96565
96565
  /**
96566
96566
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -96570,7 +96570,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96570
96570
  this._cancelRetryTimer();
96571
96571
  if (this.ws) {
96572
96572
  this.ws.removeAllListeners();
96573
- if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
96573
+ if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
96574
96574
  this.ws = null;
96575
96575
  }
96576
96576
  }
@@ -96580,7 +96580,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
96580
96580
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
96581
96581
  return;
96582
96582
  }
96583
- const socket = new WebSocket(this.wsUrl, { headers: {
96583
+ const socket = new WebSocket$1(this.wsUrl, { headers: {
96584
96584
  Authorization: `Bearer ${this.apiKey}`,
96585
96585
  "OpenAI-Beta": "responses-websocket=v1"
96586
96586
  } });
@@ -9,7 +9,7 @@ import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug
9
9
  import { r as normalizeChannelId, x as normalizeChatType } from "./plugins-YJZX7mvv.js";
10
10
  import { t as generateSecureToken } from "./secure-random-CXrBi7Jq.js";
11
11
  import { i as getImageMetadata, m as normalizeMessageChannel, n as buildImageResizeSideGrid, p as listDeliverableMessageChannels, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-C-QWxnVw.js";
12
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-C7OwLtx9.js";
12
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-jCt9JCU8.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BDJUqEFI.js";
14
14
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BCv18tKc.js";
15
15
  import { n as extractErrorCode, r as formatErrorMessage } from "./errors-CHd6Q-vF.js";
@@ -1353,7 +1353,7 @@ function isModuleNotFoundError(err) {
1353
1353
  }
1354
1354
  async function loadPwAiModule(mode) {
1355
1355
  try {
1356
- return await import("./pw-ai-DsYmOxCp.js");
1356
+ return await import("./pw-ai-pJMhS79V.js");
1357
1357
  } catch (err) {
1358
1358
  if (mode === "soft") return null;
1359
1359
  if (isModuleNotFoundError(err)) return null;
@@ -3719,7 +3719,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3719
3719
  //#region src/browser/server-context.reset.ts
3720
3720
  async function closePlaywrightBrowserConnection() {
3721
3721
  try {
3722
- await (await import("./pw-ai-DsYmOxCp.js")).closePlaywrightBrowserConnection();
3722
+ await (await import("./pw-ai-pJMhS79V.js")).closePlaywrightBrowserConnection();
3723
3723
  } catch {}
3724
3724
  }
3725
3725
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {
@@ -6,7 +6,7 @@ import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug
6
6
  import { r as normalizeChannelId, x as normalizeChatType } from "./plugins-DRylFNZC.js";
7
7
  import { t as generateSecureToken } from "./secure-random-D68-1Hhs.js";
8
8
  import { i as getImageMetadata, m as normalizeMessageChannel, n as buildImageResizeSideGrid, p as listDeliverableMessageChannels, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-CZyK9ORn.js";
9
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-B24-8NDM.js";
9
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome--CFg5C_H.js";
10
10
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CrM4sG5V.js";
11
11
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CJ-rXOZR.js";
12
12
  import { n as extractErrorCode, r as formatErrorMessage } from "./errors-LUTSBF6A.js";
@@ -1350,7 +1350,7 @@ function isModuleNotFoundError(err) {
1350
1350
  }
1351
1351
  async function loadPwAiModule(mode) {
1352
1352
  try {
1353
- return await import("./pw-ai-DweqbnMJ.js");
1353
+ return await import("./pw-ai-C-Sy12jT.js");
1354
1354
  } catch (err) {
1355
1355
  if (mode === "soft") return null;
1356
1356
  if (isModuleNotFoundError(err)) return null;
@@ -3716,7 +3716,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3716
3716
  //#region src/browser/server-context.reset.ts
3717
3717
  async function closePlaywrightBrowserConnection() {
3718
3718
  try {
3719
- await (await import("./pw-ai-DweqbnMJ.js")).closePlaywrightBrowserConnection();
3719
+ await (await import("./pw-ai-C-Sy12jT.js")).closePlaywrightBrowserConnection();
3720
3720
  } catch {}
3721
3721
  }
3722
3722
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {