@termix-it/cryptoclaw 1.0.4 → 1.0.5

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 (122) hide show
  1. package/README.md +21 -5
  2. package/dist/{audio-preflight-_6ttSHmt.js → audio-preflight-DmX89zeN.js} +4 -4
  3. package/dist/{audio-transcription-runner-CR_2AH5G.js → audio-transcription-runner-DjCJFIGl.js} +1 -1
  4. package/dist/build-info.json +3 -3
  5. package/dist/bundled/boot-md/handler.js +6 -6
  6. package/dist/bundled/session-memory/handler.js +6 -6
  7. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  8. package/dist/{chrome-CXIrNn6H.js → chrome-HNJ5Np77.js} +8 -8
  9. package/dist/{deliver-BFJn3-fC.js → deliver-CExblvFE.js} +1 -1
  10. package/dist/{deliver-runtime-Bw0VKYNI.js → deliver-runtime-BJU4v7t5.js} +3 -3
  11. package/dist/{deps-send-whatsapp.runtime-ChcUz7xZ.js → deps-send-whatsapp.runtime-DWsx1vI_.js} +7 -7
  12. package/dist/{image-BI9ZrRUQ.js → image-XS6PINIE.js} +1 -1
  13. package/dist/{image-runtime-CPYGXqpg.js → image-runtime-nOUladfh.js} +3 -3
  14. package/dist/llm-slug-generator.js +6 -6
  15. package/dist/{pi-embedded--j-vyCUK.js → pi-embedded-BRzys1F7.js} +24 -24
  16. package/dist/{pi-embedded-helpers-CNzY8t5q.js → pi-embedded-helpers-Dc63NlxD.js} +3 -3
  17. package/dist/plugin-sdk/{accounts-DCJygCEu.js → accounts-BO6eVvIk.js} +2 -2
  18. package/dist/plugin-sdk/{accounts-CGsBZitB.js → accounts-CfCelvuS.js} +2 -2
  19. package/dist/plugin-sdk/{accounts-OQhwq095.js → accounts-D8HzIleM.js} +3 -3
  20. package/dist/plugin-sdk/{active-listener-B3uuO0hs.js → active-listener-MfT2Dfk_.js} +2 -2
  21. package/dist/plugin-sdk/{api-key-rotation-BtsbePHg.js → api-key-rotation-CGkG2TdX.js} +2 -2
  22. package/dist/plugin-sdk/{audio-preflight-AU7gChXe.js → audio-preflight-C5aEkQA7.js} +26 -26
  23. package/dist/plugin-sdk/{audio-transcription-runner-HEBuWWAy.js → audio-transcription-runner-CByI6S2h.js} +11 -11
  24. package/dist/plugin-sdk/{audit-membership-runtime-DvBMQsDC.js → audit-membership-runtime-BpoX61hv.js} +2 -2
  25. package/dist/plugin-sdk/{channel-activity-DyI7jd_J.js → channel-activity-CBnzERF5.js} +3 -3
  26. package/dist/plugin-sdk/{channel-web-3rQke4lb.js → channel-web-Camrgn9Y.js} +18 -18
  27. package/dist/plugin-sdk/{chrome-6Sk7pLY6.js → chrome-sBjdgZ5F.js} +6 -6
  28. package/dist/plugin-sdk/{commands-registry-CrUYTcEC.js → commands-registry-Ba7pk4Ta.js} +4 -4
  29. package/dist/plugin-sdk/{common-DGsZt0BZ.js → common-0gnzU6l1.js} +2 -2
  30. package/dist/plugin-sdk/{config-Dhw5h35s.js → config-D5DQfSMn.js} +7 -7
  31. package/dist/plugin-sdk/{deliver-BY-NHTcM.js → deliver-C4PPp4UX.js} +10 -10
  32. package/dist/plugin-sdk/deliver-runtime-BEDNR6MJ.js +32 -0
  33. package/dist/plugin-sdk/deps-send-discord.runtime-C1PlirFk.js +23 -0
  34. package/dist/plugin-sdk/deps-send-imessage.runtime-DNY09ba8.js +22 -0
  35. package/dist/plugin-sdk/deps-send-signal.runtime-B3BJZMQw.js +21 -0
  36. package/dist/plugin-sdk/deps-send-slack.runtime-DpTjKhX1.js +19 -0
  37. package/dist/plugin-sdk/deps-send-telegram.runtime-Ddp3k4bN.js +24 -0
  38. package/dist/plugin-sdk/deps-send-whatsapp.runtime-UC-3al_B.js +57 -0
  39. package/dist/plugin-sdk/{diagnostic-CtKfuST-.js → diagnostic-OpNk6rpy.js} +2 -2
  40. package/dist/plugin-sdk/{errors-B2jpHiod.js → errors-Cn3JyiMn.js} +1 -1
  41. package/dist/plugin-sdk/{fetch-guard-CFw9w93V.js → fetch-guard-Djhxeh6F.js} +2 -2
  42. package/dist/plugin-sdk/{fs-safe-D51tGdcB.js → fs-safe-B1CdzxMU.js} +3 -3
  43. package/dist/plugin-sdk/{image-DJPbGAeM.js → image-CwJbQyj6.js} +6 -6
  44. package/dist/plugin-sdk/{image-ops-CYGIIp7B.js → image-ops-C6_PnsHU.js} +2 -2
  45. package/dist/plugin-sdk/image-runtime-Dduz79Jm.js +25 -0
  46. package/dist/plugin-sdk/{ir-DUaFgyfF.js → ir-CveiIg5T.js} +7 -7
  47. package/dist/plugin-sdk/{local-roots-DPoYqwGy.js → local-roots-BU9pDzPT.js} +4 -4
  48. package/dist/plugin-sdk/{logger-Bl138Nx7.js → logger-Dj4IX2UB.js} +2 -2
  49. package/dist/plugin-sdk/{login-DWWzbOcy.js → login-CcqeqBu0.js} +4 -4
  50. package/dist/plugin-sdk/{login-qr-BJzd9BYx.js → login-qr-DA7TCczl.js} +5 -5
  51. package/dist/plugin-sdk/{manager-kvjCsbh-.js → manager-CJspWlod.js} +8 -8
  52. package/dist/plugin-sdk/manager-runtime-CcDuKcL3.js +15 -0
  53. package/dist/plugin-sdk/{outbound-lNvDJeBz.js → outbound-Dfl6t4_i.js} +5 -5
  54. package/dist/plugin-sdk/{outbound-attachment-DQAafXn8.js → outbound-attachment-BG_O2YgC.js} +2 -2
  55. package/dist/plugin-sdk/{path-alias-guards-CoYTMiOE.js → path-alias-guards-C-nlHZJ5.js} +1 -1
  56. package/dist/plugin-sdk/{paths-D764z9IH.js → paths-BTYNazdG.js} +1 -1
  57. package/dist/plugin-sdk/{pi-embedded-helpers-BiF7I8hC.js → pi-embedded-helpers-Jj0ybrpG.js} +16 -16
  58. package/dist/plugin-sdk/{pi-model-discovery-BZmrv91u.js → pi-model-discovery-D_O1PWhS.js} +1 -1
  59. package/dist/plugin-sdk/pi-model-discovery-runtime-CgCuSp4o.js +8 -0
  60. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DVX22Rkt.js → pi-tools.before-tool-call.runtime-BHvn7UqF.js} +4 -4
  61. package/dist/plugin-sdk/{plugins-BQBprVuu.js → plugins-DA7pP5dp.js} +4 -4
  62. package/dist/plugin-sdk/{proxy-env-ClmIANMV.js → proxy-env--jKoUvSq.js} +1 -1
  63. package/dist/plugin-sdk/{proxy-fetch-C-fXKPD2.js → proxy-fetch-rtc8GmoB.js} +1 -1
  64. package/dist/plugin-sdk/{pw-ai-1li4c5a7.js → pw-ai-4w6gEw9_.js} +9 -9
  65. package/dist/plugin-sdk/{qmd-manager-1COW5fC7.js → qmd-manager-CLFLkfXW.js} +7 -7
  66. package/dist/plugin-sdk/{query-expansion-BcKMYGvP.js → query-expansion-C7kzB0Xa.js} +4 -4
  67. package/dist/plugin-sdk/{redact-C3rEm8A0.js → redact-CBwV828t.js} +1 -1
  68. package/dist/plugin-sdk/{reply-BMhUA5WB.js → reply-CWB5iDDe.js} +73 -73
  69. package/dist/plugin-sdk/{resolve-outbound-target-DzBSTXS5.js → resolve-outbound-target-4FJ3k4-0.js} +2 -2
  70. package/dist/plugin-sdk/{run-with-concurrency-CuSLxX3g.js → run-with-concurrency-Cq53ODkG.js} +1 -1
  71. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-CBdNprU2.js +10 -0
  72. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DJk9RY4Z.js +19 -0
  73. package/dist/plugin-sdk/{send-CvRudyW3.js → send-BA1Qi3mp.js} +6 -6
  74. package/dist/plugin-sdk/{send-COSo_L1u.js → send-BitUV_gH.js} +13 -13
  75. package/dist/plugin-sdk/{send-hDY3onGp.js → send-BniZypKV.js} +8 -8
  76. package/dist/plugin-sdk/{send-DB-60Msd.js → send-C_-TpLLe.js} +7 -7
  77. package/dist/plugin-sdk/{send-eAODLWdR.js → send-DZpoWNap.js} +5 -5
  78. package/dist/plugin-sdk/{session-C0s_0CGs.js → session-CqJc4lFX.js} +3 -3
  79. package/dist/plugin-sdk/signal.js +2 -2
  80. package/dist/plugin-sdk/{skill-commands-D9OuggWL.js → skill-commands-BgOojXk-.js} +4 -4
  81. package/dist/plugin-sdk/{skills-CV7pZMXS.js → skills-DiUnGRgw.js} +6 -6
  82. package/dist/plugin-sdk/slash-commands.runtime-BKVp7-z6.js +13 -0
  83. package/dist/plugin-sdk/slash-dispatch.runtime-CtUAEJtN.js +52 -0
  84. package/dist/plugin-sdk/slash-skill-commands.runtime-Du7AGDaV.js +16 -0
  85. package/dist/plugin-sdk/{store-QO7iGajx.js → store-DcImhEzi.js} +2 -2
  86. package/dist/plugin-sdk/subagent-registry-runtime-BkYg4qeD.js +52 -0
  87. package/dist/plugin-sdk/{tables-CfbETQOG.js → tables-injYpabh.js} +1 -1
  88. package/dist/plugin-sdk/{thinking-s9W2mlGh.js → thinking-BD1Xt4YG.js} +7 -7
  89. package/dist/plugin-sdk/{tokens-DMbd3-Ct.js → tokens-D2fpVQt3.js} +1 -1
  90. package/dist/plugin-sdk/{tool-images-2uaYTd7D.js → tool-images-D5NJxNog.js} +2 -2
  91. package/dist/plugin-sdk/web-a-YsDYgy.js +56 -0
  92. package/dist/plugin-sdk/{whatsapp-actions-Bw9bC72n.js → whatsapp-actions-Zdo-gL1s.js} +17 -17
  93. package/dist/plugin-sdk/whatsapp.js +50 -50
  94. package/dist/{pw-ai-CuA0BkwK.js → pw-ai-BYLaFCcQ.js} +1 -1
  95. package/dist/{slash-dispatch.runtime-DGex1-6v.js → slash-dispatch.runtime-BP2D7cZ8.js} +6 -6
  96. package/dist/{subagent-registry-runtime-DUQVA-gN.js → subagent-registry-runtime-DDIUIA48.js} +6 -6
  97. package/dist/{web-BlqPhzy5.js → web-Drf25Yd-.js} +6 -6
  98. package/package.json +9 -9
  99. package/skills/binance-address-info/SKILL.md +75 -0
  100. package/skills/binance-market-rank/SKILL.md +118 -0
  101. package/skills/binance-meme-rush/SKILL.md +108 -0
  102. package/skills/binance-spot/SKILL.md +158 -0
  103. package/skills/binance-token-audit/SKILL.md +81 -0
  104. package/skills/binance-token-info/SKILL.md +112 -0
  105. package/skills/binance-trading-signal/SKILL.md +84 -0
  106. package/dist/plugin-sdk/deliver-runtime-3zydbKGf.js +0 -32
  107. package/dist/plugin-sdk/deps-send-discord.runtime-CT4Za_tX.js +0 -23
  108. package/dist/plugin-sdk/deps-send-imessage.runtime-BGNmg99V.js +0 -22
  109. package/dist/plugin-sdk/deps-send-signal.runtime-DI3j6n83.js +0 -21
  110. package/dist/plugin-sdk/deps-send-slack.runtime-Bpsc574S.js +0 -19
  111. package/dist/plugin-sdk/deps-send-telegram.runtime-DIXdFk2A.js +0 -24
  112. package/dist/plugin-sdk/deps-send-whatsapp.runtime-PFhn0IIR.js +0 -57
  113. package/dist/plugin-sdk/image-runtime-DvTR_k2A.js +0 -25
  114. package/dist/plugin-sdk/manager-runtime-xEKyekyY.js +0 -15
  115. package/dist/plugin-sdk/pi-model-discovery-runtime-1hhBydi5.js +0 -8
  116. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-0y9M2JQr.js +0 -10
  117. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-G14X8iMC.js +0 -19
  118. package/dist/plugin-sdk/slash-commands.runtime-DMTbx7Tn.js +0 -13
  119. package/dist/plugin-sdk/slash-dispatch.runtime-D-Sbk7S8.js +0 -52
  120. package/dist/plugin-sdk/slash-skill-commands.runtime-DXdAjUOe.js +0 -16
  121. package/dist/plugin-sdk/subagent-registry-runtime-BRsstI9w.js +0 -52
  122. package/dist/plugin-sdk/web-C4htBVBv.js +0 -56
package/README.md CHANGED
@@ -5,6 +5,22 @@
5
5
  [![npm version](https://img.shields.io/npm/v/@termix-it/cryptoclaw?style=for-the-badge)](https://www.npmjs.com/package/@termix-it/cryptoclaw)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge)](LICENSE)
7
7
 
8
+ ## Official Binance Skills Integration
9
+
10
+ CryptoClaw proudly integrates the official Binance Skills Hub — 7 native skills powered by Binance's Web3 and CEX infrastructure, giving your AI assistant direct access to Binance market data, trading, and on-chain intelligence.
11
+
12
+ Thanks to [@binance](https://github.com/binance) for building and open-sourcing the [Binance Skills Hub](https://github.com/binance/binance-skills-hub). 🙌
13
+
14
+ | Skill | Description |
15
+ |-------|-------------|
16
+ | `binance-spot` | CEX spot trading — place orders, manage accounts, 60+ endpoints |
17
+ | `binance-market-rank` | Trending tokens, smart money inflow, social hype, PnL leaderboard |
18
+ | `binance-token-info` | Token search, metadata, real-time market data, candlestick charts |
19
+ | `binance-token-audit` | Security audit — detect honeypots, rug pulls, malicious contracts |
20
+ | `binance-trading-signal` | Smart Money on-chain buy/sell signals on BSC & Solana |
21
+ | `binance-address-info` | Query any wallet's token holdings and portfolio across chains |
22
+ | `binance-meme-rush` | Real-time meme token launchpad tracking and trending narratives |
23
+
8
24
  ## What is CryptoClaw?
9
25
 
10
26
  CryptoClaw is an AI-powered crypto assistant that runs locally in your terminal. It connects to the messaging channels you already use and helps you manage wallets, interact with DeFi protocols, track NFTs, and execute multi-chain operations — all through natural language.
@@ -49,13 +65,13 @@ cryptoclaw channels status
49
65
 
50
66
  ## Supported Chains
51
67
 
52
- | Chain | Status |
53
- |-------|--------|
68
+ | Chain | Status |
69
+ | -------- | --------- |
54
70
  | Ethereum | Supported |
55
- | Solana | Supported |
56
- | Base | Supported |
71
+ | Solana | Supported |
72
+ | Base | Supported |
57
73
  | Arbitrum | Supported |
58
- | Polygon | Supported |
74
+ | Polygon | Supported |
59
75
 
60
76
  ## Supported Channels
61
77
 
@@ -12,8 +12,8 @@ import "./plugins-DBkX-V6R.js";
12
12
  import "./accounts-BLfGSTTQ.js";
13
13
  import "./accounts-Dt59VmPe.js";
14
14
  import "./image-ops-ChaTXg5i.js";
15
- import "./pi-embedded-helpers-CNzY8t5q.js";
16
- import "./chrome-CXIrNn6H.js";
15
+ import "./pi-embedded-helpers-Dc63NlxD.js";
16
+ import "./chrome-HNJ5Np77.js";
17
17
  import "./frontmatter-Dn68lQ_o.js";
18
18
  import "./skills-OI1KPfGe.js";
19
19
  import "./path-alias-guards-BfOFxARa.js";
@@ -25,8 +25,8 @@ import "./store-B1AWPmNF.js";
25
25
  import "./accounts-BCWrb_kQ.js";
26
26
  import "./paths-CZ0nrg7g.js";
27
27
  import "./tool-images-PZo0DcO2.js";
28
- import "./image-BI9ZrRUQ.js";
29
- import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-CR_2AH5G.js";
28
+ import "./image-XS6PINIE.js";
29
+ import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-DjCJFIGl.js";
30
30
  import "./fetch-C_Dvxwo-.js";
31
31
  import "./fetch-guard-De2c-A0w.js";
32
32
  import "./api-key-rotation-D2kYeIQQ.js";
@@ -4,7 +4,7 @@ import { _ as runExec } from "./workspace-Thv5xKBi.js";
4
4
  import { M as resolveApiKeyForProvider, X as loadConfig, at as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, c as normalizeProviderId, ct as resolveIMessageAttachmentRoots, g as normalizeGoogleModelId, j as requireApiKey, ot as isInboundPathAllowed, rr as resolveOpenClawAgentDir, st as mergeInboundPathRoots } from "./model-selection-CecWmBpu.js";
5
5
  import { _ as normalizeChatType } from "./plugins-DBkX-V6R.js";
6
6
  import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-ChaTXg5i.js";
7
- import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-BI9ZrRUQ.js";
7
+ import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-XS6PINIE.js";
8
8
  import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-C_Dvxwo-.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-CSrVj6X7.js";
10
10
  import { t as fetchWithSsrFGuard } from "./fetch-guard-De2c-A0w.js";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.4",
3
- "commit": "75d5d2e04350b061d9793b3bf77fae1eb5a59bc1",
4
- "builtAt": "2026-03-06T08:47:20.516Z"
2
+ "version": "1.0.5",
3
+ "commit": "8dc4671effcc2a00f36ff6d9662646a262bc21a1",
4
+ "builtAt": "2026-03-06T08:56:10.376Z"
5
5
  }
@@ -10,19 +10,19 @@ import "../../github-copilot-token-DDa7O18e.js";
10
10
  import { a as isGatewayStartupEvent } from "../../legacy-names-BAiRv0I2.js";
11
11
  import "../../thinking-CPVJ1bGB.js";
12
12
  import { n as SILENT_REPLY_TOKEN } from "../../tokens-DxcVnNVJ.js";
13
- import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded--j-vyCUK.js";
13
+ import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-BRzys1F7.js";
14
14
  import "../../plugins-DBkX-V6R.js";
15
15
  import "../../accounts-BLfGSTTQ.js";
16
16
  import "../../send-B186cJBK.js";
17
17
  import "../../send-C7fVX3Aa.js";
18
- import "../../deliver-BFJn3-fC.js";
18
+ import "../../deliver-CExblvFE.js";
19
19
  import "../../diagnostic-kVA702dh.js";
20
20
  import "../../accounts-Dt59VmPe.js";
21
21
  import "../../image-ops-ChaTXg5i.js";
22
22
  import "../../send-MX_Rfded.js";
23
23
  import "../../pi-model-discovery-CTFYQaxY.js";
24
- import { Dt as resolveMainSessionKey, J as updateSessionStore, Tt as resolveAgentMainSessionKey, W as loadSessionStore } from "../../pi-embedded-helpers-CNzY8t5q.js";
25
- import "../../chrome-CXIrNn6H.js";
24
+ import { Dt as resolveMainSessionKey, J as updateSessionStore, Tt as resolveAgentMainSessionKey, W as loadSessionStore } from "../../pi-embedded-helpers-Dc63NlxD.js";
25
+ import "../../chrome-HNJ5Np77.js";
26
26
  import "../../frontmatter-Dn68lQ_o.js";
27
27
  import "../../skills-OI1KPfGe.js";
28
28
  import "../../path-alias-guards-BfOFxARa.js";
@@ -34,8 +34,8 @@ import "../../store-B1AWPmNF.js";
34
34
  import "../../accounts-BCWrb_kQ.js";
35
35
  import { s as resolveStorePath } from "../../paths-CZ0nrg7g.js";
36
36
  import "../../tool-images-PZo0DcO2.js";
37
- import "../../image-BI9ZrRUQ.js";
38
- import "../../audio-transcription-runner-CR_2AH5G.js";
37
+ import "../../image-XS6PINIE.js";
38
+ import "../../audio-transcription-runner-DjCJFIGl.js";
39
39
  import "../../fetch-C_Dvxwo-.js";
40
40
  import "../../fetch-guard-De2c-A0w.js";
41
41
  import "../../api-key-rotation-D2kYeIQQ.js";
@@ -10,19 +10,19 @@ import "../../github-copilot-token-DDa7O18e.js";
10
10
  import "../../legacy-names-BAiRv0I2.js";
11
11
  import "../../thinking-CPVJ1bGB.js";
12
12
  import "../../tokens-DxcVnNVJ.js";
13
- import "../../pi-embedded--j-vyCUK.js";
13
+ import "../../pi-embedded-BRzys1F7.js";
14
14
  import "../../plugins-DBkX-V6R.js";
15
15
  import "../../accounts-BLfGSTTQ.js";
16
16
  import "../../send-B186cJBK.js";
17
17
  import "../../send-C7fVX3Aa.js";
18
- import "../../deliver-BFJn3-fC.js";
18
+ import "../../deliver-CExblvFE.js";
19
19
  import "../../diagnostic-kVA702dh.js";
20
20
  import "../../accounts-Dt59VmPe.js";
21
21
  import "../../image-ops-ChaTXg5i.js";
22
22
  import "../../send-MX_Rfded.js";
23
23
  import "../../pi-model-discovery-CTFYQaxY.js";
24
- import { dt as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-CNzY8t5q.js";
25
- import "../../chrome-CXIrNn6H.js";
24
+ import { dt as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-Dc63NlxD.js";
25
+ import "../../chrome-HNJ5Np77.js";
26
26
  import "../../frontmatter-Dn68lQ_o.js";
27
27
  import "../../skills-OI1KPfGe.js";
28
28
  import "../../path-alias-guards-BfOFxARa.js";
@@ -34,8 +34,8 @@ import "../../store-B1AWPmNF.js";
34
34
  import "../../accounts-BCWrb_kQ.js";
35
35
  import "../../paths-CZ0nrg7g.js";
36
36
  import "../../tool-images-PZo0DcO2.js";
37
- import "../../image-BI9ZrRUQ.js";
38
- import "../../audio-transcription-runner-CR_2AH5G.js";
37
+ import "../../image-XS6PINIE.js";
38
+ import "../../audio-transcription-runner-DjCJFIGl.js";
39
39
  import "../../fetch-C_Dvxwo-.js";
40
40
  import "../../fetch-guard-De2c-A0w.js";
41
41
  import "../../api-key-rotation-D2kYeIQQ.js";
@@ -1 +1 @@
1
- 0035d00a29acba71fe89cad9d54300b196bd7502e1c6d85ee589f6c482afb434
1
+ 090c4058bf6f338afd612ace8f9231de9073faae5d47430a8049ef77e276eb76
@@ -14,7 +14,7 @@ import { createHmac } from "node:crypto";
14
14
  import net from "node:net";
15
15
  import http, { createServer } from "node:http";
16
16
  import https from "node:https";
17
- import WebSocket, { WebSocketServer } from "ws";
17
+ import WebSocket$1, { WebSocketServer } from "ws";
18
18
  import { Buffer as Buffer$1 } from "node:buffer";
19
19
 
20
20
  //#region src/browser/constants.ts
@@ -593,7 +593,7 @@ async function ensureChromeExtensionRelayServer(opts) {
593
593
  let extensionWs = null;
594
594
  const cdpClients = /* @__PURE__ */ new Set();
595
595
  const connectedTargets = /* @__PURE__ */ new Map();
596
- const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
596
+ const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
597
597
  const hasConnectedTargets = () => connectedTargets.size > 0;
598
598
  let extensionDisconnectCleanupTimer = null;
599
599
  const extensionReconnectWaiters = /* @__PURE__ */ new Set();
@@ -645,7 +645,7 @@ async function ensureChromeExtensionRelayServer(opts) {
645
645
  let nextExtensionId = 1;
646
646
  const sendToExtension = async (payload) => {
647
647
  const ws = extensionWs;
648
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
648
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
649
649
  ws.send(JSON.stringify(payload));
650
650
  return await new Promise((resolve, reject) => {
651
651
  const timer = setTimeout(() => {
@@ -662,12 +662,12 @@ async function ensureChromeExtensionRelayServer(opts) {
662
662
  const broadcastToCdpClients = (evt) => {
663
663
  const msg = JSON.stringify(evt);
664
664
  for (const ws of cdpClients) {
665
- if (ws.readyState !== WebSocket.OPEN) continue;
665
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
666
666
  ws.send(msg);
667
667
  }
668
668
  };
669
669
  const sendResponseToCdp = (ws, res) => {
670
- if (ws.readyState !== WebSocket.OPEN) return;
670
+ if (ws.readyState !== WebSocket$1.OPEN) return;
671
671
  ws.send(JSON.stringify(res));
672
672
  };
673
673
  const dropConnectedTargetSession = (sessionId) => {
@@ -921,7 +921,7 @@ async function ensureChromeExtensionRelayServer(opts) {
921
921
  rejectUpgrade(socket, 401, "Unauthorized");
922
922
  return;
923
923
  }
924
- if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
924
+ if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
925
925
  try {
926
926
  extensionWs.terminate();
927
927
  } catch {}
@@ -954,7 +954,7 @@ async function ensureChromeExtensionRelayServer(opts) {
954
954
  clearExtensionDisconnectCleanupTimer();
955
955
  flushExtensionReconnectWaiters(true);
956
956
  const ping = setInterval(() => {
957
- if (ws.readyState !== WebSocket.OPEN) return;
957
+ if (ws.readyState !== WebSocket$1.OPEN) return;
958
958
  ws.send(JSON.stringify({ method: "ping" }));
959
959
  }, 5e3);
960
960
  ws.on("message", (data) => {
@@ -1310,7 +1310,7 @@ function openCdpWebSocket(wsUrl, opts) {
1310
1310
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
1311
1311
  const handshakeTimeoutMs = typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : CDP_WS_HANDSHAKE_TIMEOUT_MS;
1312
1312
  const agent = getDirectAgentForCdp(wsUrl);
1313
- return new WebSocket(wsUrl, {
1313
+ return new WebSocket$1(wsUrl, {
1314
1314
  handshakeTimeout: handshakeTimeoutMs,
1315
1315
  ...Object.keys(headers).length ? { headers } : {},
1316
1316
  ...agent ? { agent } : {}
@@ -8,7 +8,7 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DxcVnN
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DBkX-V6R.js";
9
9
  import { n as generateSecureUuid } from "./secure-random-xpZo1jCG.js";
10
10
  import { r as parseTelegramTarget } from "./targets-yNvvUZit.js";
11
- import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, ct as parseInlineDirectives, i as isMessagingToolDuplicate } from "./pi-embedded-helpers-CNzY8t5q.js";
11
+ import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, ct as parseInlineDirectives, i as isMessagingToolDuplicate } from "./pi-embedded-helpers-Dc63NlxD.js";
12
12
  import { i as getAgentScopedMediaLocalRoots } from "./fetch-C_Dvxwo-.js";
13
13
  import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-08dII-cl.js";
14
14
  import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-Bv1bYz85.js";
@@ -11,11 +11,11 @@ import "./thinking-CPVJ1bGB.js";
11
11
  import "./tokens-DxcVnNVJ.js";
12
12
  import "./plugins-DBkX-V6R.js";
13
13
  import "./accounts-BLfGSTTQ.js";
14
- import { t as deliverOutboundPayloads } from "./deliver-BFJn3-fC.js";
14
+ import { t as deliverOutboundPayloads } from "./deliver-CExblvFE.js";
15
15
  import "./accounts-Dt59VmPe.js";
16
16
  import "./image-ops-ChaTXg5i.js";
17
- import "./pi-embedded-helpers-CNzY8t5q.js";
18
- import "./chrome-CXIrNn6H.js";
17
+ import "./pi-embedded-helpers-Dc63NlxD.js";
18
+ import "./chrome-HNJ5Np77.js";
19
19
  import "./frontmatter-Dn68lQ_o.js";
20
20
  import "./skills-OI1KPfGe.js";
21
21
  import "./path-alias-guards-BfOFxARa.js";
@@ -9,19 +9,19 @@ import "./github-copilot-token-DDa7O18e.js";
9
9
  import "./legacy-names-BAiRv0I2.js";
10
10
  import "./thinking-CPVJ1bGB.js";
11
11
  import "./tokens-DxcVnNVJ.js";
12
- import "./pi-embedded--j-vyCUK.js";
12
+ import "./pi-embedded-BRzys1F7.js";
13
13
  import "./plugins-DBkX-V6R.js";
14
14
  import "./accounts-BLfGSTTQ.js";
15
15
  import "./send-B186cJBK.js";
16
16
  import "./send-C7fVX3Aa.js";
17
- import "./deliver-BFJn3-fC.js";
17
+ import "./deliver-CExblvFE.js";
18
18
  import "./diagnostic-kVA702dh.js";
19
19
  import "./accounts-Dt59VmPe.js";
20
20
  import "./image-ops-ChaTXg5i.js";
21
21
  import "./send-MX_Rfded.js";
22
22
  import "./pi-model-discovery-CTFYQaxY.js";
23
- import "./pi-embedded-helpers-CNzY8t5q.js";
24
- import "./chrome-CXIrNn6H.js";
23
+ import "./pi-embedded-helpers-Dc63NlxD.js";
24
+ import "./chrome-HNJ5Np77.js";
25
25
  import "./frontmatter-Dn68lQ_o.js";
26
26
  import "./skills-OI1KPfGe.js";
27
27
  import "./path-alias-guards-BfOFxARa.js";
@@ -33,8 +33,8 @@ import "./store-B1AWPmNF.js";
33
33
  import "./accounts-BCWrb_kQ.js";
34
34
  import "./paths-CZ0nrg7g.js";
35
35
  import "./tool-images-PZo0DcO2.js";
36
- import "./image-BI9ZrRUQ.js";
37
- import "./audio-transcription-runner-CR_2AH5G.js";
36
+ import "./image-XS6PINIE.js";
37
+ import "./audio-transcription-runner-DjCJFIGl.js";
38
38
  import "./fetch-C_Dvxwo-.js";
39
39
  import "./fetch-guard-De2c-A0w.js";
40
40
  import "./api-key-rotation-D2kYeIQQ.js";
@@ -56,6 +56,6 @@ import "./query-expansion-C4Jm5bwm.js";
56
56
  import { t as sendMessageWhatsApp } from "./outbound-sNa9-var.js";
57
57
  import "./session-1Yl8Frr-.js";
58
58
  import "./login-CIGbOUov.js";
59
- import "./web-BlqPhzy5.js";
59
+ import "./web-Drf25Yd-.js";
60
60
 
61
61
  export { sendMessageWhatsApp };
@@ -1,7 +1,7 @@
1
1
  import { g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues } from "./run-with-concurrency-Nt31vJUG.js";
2
2
  import { _ as shortenHomeInString, c as isRecord } from "./utils-D2oM4XHm.js";
3
3
  import { Un as applyConfigEnvVars, X as loadConfig, _ as normalizeProviders, b as resolveImplicitProviders, fr as normalizeSecretInput, j as requireApiKey, k as getApiKeyForModel, rr as resolveOpenClawAgentDir, v as resolveImplicitBedrockProvider, y as resolveImplicitCopilotProvider } from "./model-selection-CecWmBpu.js";
4
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-CNzY8t5q.js";
4
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-Dc63NlxD.js";
5
5
  import { n as redactToolDetail } from "./redact-BXURioma.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
@@ -12,8 +12,8 @@ import "./plugins-DBkX-V6R.js";
12
12
  import "./accounts-BLfGSTTQ.js";
13
13
  import "./accounts-Dt59VmPe.js";
14
14
  import "./image-ops-ChaTXg5i.js";
15
- import "./pi-embedded-helpers-CNzY8t5q.js";
16
- import "./chrome-CXIrNn6H.js";
15
+ import "./pi-embedded-helpers-Dc63NlxD.js";
16
+ import "./chrome-HNJ5Np77.js";
17
17
  import "./frontmatter-Dn68lQ_o.js";
18
18
  import "./skills-OI1KPfGe.js";
19
19
  import "./path-alias-guards-BfOFxARa.js";
@@ -25,6 +25,6 @@ import "./store-B1AWPmNF.js";
25
25
  import "./accounts-BCWrb_kQ.js";
26
26
  import "./paths-CZ0nrg7g.js";
27
27
  import "./tool-images-PZo0DcO2.js";
28
- import { t as describeImageWithModel } from "./image-BI9ZrRUQ.js";
28
+ import { t as describeImageWithModel } from "./image-XS6PINIE.js";
29
29
 
30
30
  export { describeImageWithModel };
@@ -9,19 +9,19 @@ import "./github-copilot-token-DDa7O18e.js";
9
9
  import "./legacy-names-BAiRv0I2.js";
10
10
  import "./thinking-CPVJ1bGB.js";
11
11
  import "./tokens-DxcVnNVJ.js";
12
- import { t as runEmbeddedPiAgent } from "./pi-embedded--j-vyCUK.js";
12
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-BRzys1F7.js";
13
13
  import "./plugins-DBkX-V6R.js";
14
14
  import "./accounts-BLfGSTTQ.js";
15
15
  import "./send-B186cJBK.js";
16
16
  import "./send-C7fVX3Aa.js";
17
- import "./deliver-BFJn3-fC.js";
17
+ import "./deliver-CExblvFE.js";
18
18
  import "./diagnostic-kVA702dh.js";
19
19
  import "./accounts-Dt59VmPe.js";
20
20
  import "./image-ops-ChaTXg5i.js";
21
21
  import "./send-MX_Rfded.js";
22
22
  import "./pi-model-discovery-CTFYQaxY.js";
23
- import "./pi-embedded-helpers-CNzY8t5q.js";
24
- import "./chrome-CXIrNn6H.js";
23
+ import "./pi-embedded-helpers-Dc63NlxD.js";
24
+ import "./chrome-HNJ5Np77.js";
25
25
  import "./frontmatter-Dn68lQ_o.js";
26
26
  import "./skills-OI1KPfGe.js";
27
27
  import "./path-alias-guards-BfOFxARa.js";
@@ -33,8 +33,8 @@ import "./store-B1AWPmNF.js";
33
33
  import "./accounts-BCWrb_kQ.js";
34
34
  import "./paths-CZ0nrg7g.js";
35
35
  import "./tool-images-PZo0DcO2.js";
36
- import "./image-BI9ZrRUQ.js";
37
- import "./audio-transcription-runner-CR_2AH5G.js";
36
+ import "./image-XS6PINIE.js";
37
+ import "./audio-transcription-runner-DjCJFIGl.js";
38
38
  import "./fetch-C_Dvxwo-.js";
39
39
  import "./fetch-guard-De2c-A0w.js";
40
40
  import "./api-key-rotation-D2kYeIQQ.js";
@@ -16,15 +16,15 @@ import { a as logWebSelfId, h as resolveAccountEntry, i as getWebAuthAgeMs, m as
16
16
  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-B186cJBK.js";
17
17
  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-C7fVX3Aa.js";
18
18
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-xpZo1jCG.js";
19
- import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-BFJn3-fC.js";
19
+ import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-CExblvFE.js";
20
20
  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-kVA702dh.js";
21
21
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-Dt59VmPe.js";
22
22
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-yNvvUZit.js";
23
23
  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-ChaTXg5i.js";
24
24
  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-MX_Rfded.js";
25
25
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CTFYQaxY.js";
26
- import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isTransientHttpError, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as setSessionRuntimeModel, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as resolveFreshSessionTotalTokens, T as isFailoverAssistantError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as isAuthAssistantError, 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 formatAssistantErrorText, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, 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 formatRawAssistantErrorForUi, vt as resolveSessionResetType, w as isContextOverflowError, wt as canonicalizeMainSessionAlias, x as isBillingAssistantError, xt as mergeSessionEntry, y as getApiErrorPayloadFingerprint, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-CNzY8t5q.js";
27
- 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-CXIrNn6H.js";
26
+ import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isTransientHttpError, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as setSessionRuntimeModel, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as resolveFreshSessionTotalTokens, T as isFailoverAssistantError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as isAuthAssistantError, 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 formatAssistantErrorText, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, 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 formatRawAssistantErrorForUi, vt as resolveSessionResetType, w as isContextOverflowError, wt as canonicalizeMainSessionAlias, x as isBillingAssistantError, xt as mergeSessionEntry, y as getApiErrorPayloadFingerprint, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-Dc63NlxD.js";
27
+ 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-HNJ5Np77.js";
28
28
  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-OI1KPfGe.js";
29
29
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BfOFxARa.js";
30
30
  import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-BXURioma.js";
@@ -38,8 +38,8 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
38
38
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-Db-3GZzv.js";
39
39
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-PZo0DcO2.js";
40
40
  import { i as withNormalizedTimestamp, n as resolveUserTimeFormat, r as resolveUserTimezone, t as formatUserTime } from "./date-time-Ce6oKo3v.js";
41
- 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-BI9ZrRUQ.js";
42
- 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-CR_2AH5G.js";
41
+ 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-XS6PINIE.js";
42
+ 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-DjCJFIGl.js";
43
43
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-C_Dvxwo-.js";
44
44
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CSrVj6X7.js";
45
45
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-De2c-A0w.js";
@@ -76,7 +76,7 @@ import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, Setting
76
76
  import { EdgeTTS } from "node-edge-tts";
77
77
  import { createServer } from "node:http";
78
78
  import { ProxyAgent, fetch as fetch$1 } from "undici";
79
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
79
+ import WebSocket$1, { WebSocket } from "ws";
80
80
  import { Buffer as Buffer$1 } from "node:buffer";
81
81
  import { createJiti } from "jiti";
82
82
  import AjvPkg from "ajv";
@@ -8100,7 +8100,7 @@ var GatewayClient = class {
8100
8100
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8101
8101
  });
8102
8102
  }
8103
- this.ws = new WebSocket$1(url, wsOptions);
8103
+ this.ws = new WebSocket(url, wsOptions);
8104
8104
  this.ws.on("open", () => {
8105
8105
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8106
8106
  const tlsError = this.validateTlsFingerprint();
@@ -8296,7 +8296,7 @@ var GatewayClient = class {
8296
8296
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8297
8297
  if (this.connectTimer) clearTimeout(this.connectTimer);
8298
8298
  this.connectTimer = setTimeout(() => {
8299
- if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8299
+ if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8300
8300
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8301
8301
  this.ws?.close(1008, "connect challenge timeout");
8302
8302
  }, connectChallengeTimeoutMs);
@@ -8338,7 +8338,7 @@ var GatewayClient = class {
8338
8338
  return null;
8339
8339
  }
8340
8340
  async request(method, params, opts) {
8341
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8341
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8342
8342
  const id = randomUUID();
8343
8343
  const frame = {
8344
8344
  type: "req",
@@ -9760,7 +9760,7 @@ function normalizeReplyPayload(payload, opts = {}) {
9760
9760
  */
9761
9761
  let deliverRuntimePromise$2 = null;
9762
9762
  function loadDeliverRuntime$2() {
9763
- deliverRuntimePromise$2 ??= import("./deliver-runtime-Bw0VKYNI.js");
9763
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-BJU4v7t5.js");
9764
9764
  return deliverRuntimePromise$2;
9765
9765
  }
9766
9766
  /**
@@ -11048,7 +11048,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11048
11048
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11049
11049
  let subagentRegistryRuntimePromise = null;
11050
11050
  function loadSubagentRegistryRuntime() {
11051
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DUQVA-gN.js");
11051
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DDIUIA48.js");
11052
11052
  return subagentRegistryRuntimePromise;
11053
11053
  }
11054
11054
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14402,7 +14402,7 @@ async function runWithConcurrency(tasks, limit) {
14402
14402
  //#region src/media-understanding/echo-transcript.ts
14403
14403
  let deliverRuntimePromise$1 = null;
14404
14404
  function loadDeliverRuntime$1() {
14405
- deliverRuntimePromise$1 ??= import("./deliver-runtime-Bw0VKYNI.js");
14405
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-BJU4v7t5.js");
14406
14406
  return deliverRuntimePromise$1;
14407
14407
  }
14408
14408
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -50786,7 +50786,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
50786
50786
  const log$10 = createSubsystemLogger("session-maintenance-warning");
50787
50787
  let deliverRuntimePromise = null;
50788
50788
  function loadDeliverRuntime() {
50789
- deliverRuntimePromise ??= import("./deliver-runtime-Bw0VKYNI.js");
50789
+ deliverRuntimePromise ??= import("./deliver-runtime-BJU4v7t5.js");
50790
50790
  return deliverRuntimePromise;
50791
50791
  }
50792
50792
  function shouldSendWarning() {
@@ -55743,7 +55743,7 @@ const VISION_PROVIDERS = [
55743
55743
  ];
55744
55744
  let imageRuntimePromise = null;
55745
55745
  function loadImageRuntime() {
55746
- imageRuntimePromise ??= import("./image-runtime-CPYGXqpg.js");
55746
+ imageRuntimePromise ??= import("./image-runtime-nOUladfh.js");
55747
55747
  return imageRuntimePromise;
55748
55748
  }
55749
55749
  /**
@@ -57736,7 +57736,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
57736
57736
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
57737
57737
  let transcript;
57738
57738
  if (needsPreflightTranscription) try {
57739
- const { transcribeFirstAudio } = await import("./audio-preflight-_6ttSHmt.js");
57739
+ const { transcribeFirstAudio } = await import("./audio-preflight-DmX89zeN.js");
57740
57740
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
57741
57741
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
57742
57742
  ctx: {
@@ -64996,7 +64996,7 @@ let slackSenderRuntimePromise = null;
64996
64996
  let signalSenderRuntimePromise = null;
64997
64997
  let imessageSenderRuntimePromise = null;
64998
64998
  function loadWhatsAppSenderRuntime() {
64999
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-ChcUz7xZ.js");
64999
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DWsx1vI_.js");
65000
65000
  return whatsappSenderRuntimePromise;
65001
65001
  }
65002
65002
  function loadTelegramSenderRuntime() {
@@ -68706,7 +68706,7 @@ function createDiscordGatewayPlugin(params) {
68706
68706
  return super.registerClient(client);
68707
68707
  }
68708
68708
  createWebSocket(url) {
68709
- return new WebSocket(url, { agent: wsAgent });
68709
+ return new WebSocket$1(url, { agent: wsAgent });
68710
68710
  }
68711
68711
  }
68712
68712
  return new ProxyGatewayPlugin();
@@ -77761,7 +77761,7 @@ function loadSlashCommandsRuntime() {
77761
77761
  return slashCommandsRuntimePromise;
77762
77762
  }
77763
77763
  function loadSlashDispatchRuntime() {
77764
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DGex1-6v.js");
77764
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-BP2D7cZ8.js");
77765
77765
  return slashDispatchRuntimePromise;
77766
77766
  }
77767
77767
  function loadSlashSkillCommandsRuntime() {
@@ -81130,7 +81130,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
81130
81130
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
81131
81131
  let preflightTranscript;
81132
81132
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
81133
- const { transcribeFirstAudio } = await import("./audio-preflight-_6ttSHmt.js");
81133
+ const { transcribeFirstAudio } = await import("./audio-preflight-DmX89zeN.js");
81134
81134
  preflightTranscript = await transcribeFirstAudio({
81135
81135
  ctx: {
81136
81136
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -84030,7 +84030,7 @@ function loadWebLoginQr() {
84030
84030
  return webLoginQrPromise;
84031
84031
  }
84032
84032
  function loadWebChannel() {
84033
- webChannelPromise ??= import("./web-BlqPhzy5.js");
84033
+ webChannelPromise ??= import("./web-Drf25Yd-.js");
84034
84034
  return webChannelPromise;
84035
84035
  }
84036
84036
  function loadWhatsAppActions() {
@@ -92119,7 +92119,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92119
92119
  * Throws if the connection is not open.
92120
92120
  */
92121
92121
  send(event) {
92122
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
92122
+ 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"})`);
92123
92123
  this.ws.send(JSON.stringify(event));
92124
92124
  }
92125
92125
  /**
@@ -92136,7 +92136,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92136
92136
  * Returns true if the WebSocket is currently open and ready to send.
92137
92137
  */
92138
92138
  isConnected() {
92139
- return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
92139
+ return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
92140
92140
  }
92141
92141
  /**
92142
92142
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -92146,7 +92146,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92146
92146
  this._cancelRetryTimer();
92147
92147
  if (this.ws) {
92148
92148
  this.ws.removeAllListeners();
92149
- if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
92149
+ if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
92150
92150
  this.ws = null;
92151
92151
  }
92152
92152
  }
@@ -92156,7 +92156,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92156
92156
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
92157
92157
  return;
92158
92158
  }
92159
- const socket = new WebSocket(this.wsUrl, { headers: {
92159
+ const socket = new WebSocket$1(this.wsUrl, { headers: {
92160
92160
  Authorization: `Bearer ${this.apiKey}`,
92161
92161
  "OpenAI-Beta": "responses-websocket=v1"
92162
92162
  } });
@@ -11,7 +11,7 @@ import { d as getChannelDock, o as normalizeThinkLevel, v as normalizeHyphenSlug
11
11
  import { _ as normalizeChatType, r as normalizeChannelId } from "./plugins-DBkX-V6R.js";
12
12
  import { t as generateSecureToken } from "./secure-random-xpZo1jCG.js";
13
13
  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-ChaTXg5i.js";
14
- 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-CXIrNn6H.js";
14
+ 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-HNJ5Np77.js";
15
15
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-OI1KPfGe.js";
16
16
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BfOFxARa.js";
17
17
  import { n as extractErrorCode, r as formatErrorMessage } from "./errors-C1YF712P.js";
@@ -1280,7 +1280,7 @@ function isModuleNotFoundError(err) {
1280
1280
  }
1281
1281
  async function loadPwAiModule(mode) {
1282
1282
  try {
1283
- return await import("./pw-ai-CuA0BkwK.js");
1283
+ return await import("./pw-ai-BYLaFCcQ.js");
1284
1284
  } catch (err) {
1285
1285
  if (mode === "soft") return null;
1286
1286
  if (isModuleNotFoundError(err)) return null;
@@ -3646,7 +3646,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3646
3646
  //#region src/browser/server-context.reset.ts
3647
3647
  async function closePlaywrightBrowserConnection() {
3648
3648
  try {
3649
- await (await import("./pw-ai-CuA0BkwK.js")).closePlaywrightBrowserConnection();
3649
+ await (await import("./pw-ai-BYLaFCcQ.js")).closePlaywrightBrowserConnection();
3650
3650
  } catch {}
3651
3651
  }
3652
3652
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {