openclaw 2026.2.23-beta.1 → 2026.2.23
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.
- package/CHANGELOG.md +7 -7
- package/dist/{audio-preflight-Co0omL5v.js → audio-preflight-C61PUPM0.js} +4 -4
- package/dist/{audio-preflight-D-OLTVr9.js → audio-preflight-X172w-u4.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-Bgt6MwLo.js → chrome-C8Z3qDom.js} +9 -9
- package/dist/{chrome-j8n4RCAx.js → chrome-D5YOyhL2.js} +9 -9
- package/dist/{deliver-DMSXRVHA.js → deliver-B2A1_Ib0.js} +1 -1
- package/dist/{deliver-BHbS7MPi.js → deliver-i_F6aUuX.js} +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{image-CBCiUR7E.js → image-Bwz7k77z.js} +1 -1
- package/dist/{image-C3Y2REz9.js → image-D9XRntUA.js} +1 -1
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{pi-embedded-CV53eKpr.js → pi-embedded-54x4PM3A.js} +17 -17
- package/dist/{pi-embedded-lyna_bRo.js → pi-embedded-CWNyms-S.js} +17 -17
- package/dist/{pi-embedded-helpers-ABBMCQ4Q.js → pi-embedded-helpers-BdkmD3wR.js} +4 -4
- package/dist/{pi-embedded-helpers-DyYgf00n.js → pi-embedded-helpers-BxjDtTSD.js} +4 -4
- package/dist/{pw-ai-Cb0QMSLC.js → pw-ai-BZWA5N2u.js} +1 -1
- package/dist/{pw-ai-C5oON0ec.js → pw-ai-ByboTZko.js} +1 -1
- package/dist/{runner-RETaennS.js → runner-Bb2G1wrS.js} +1 -1
- package/dist/{runner-9rrQ3leQ.js → runner-yC0M8vBa.js} +1 -1
- package/dist/{web-CsipiksP.js → web-CeLmpXQ6.js} +6 -6
- package/dist/{web-BUqAGSJX.js → web-Cnqp8qkz.js} +6 -6
- package/docs/reference/prompt-caching.md +4 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,8 @@ Docs: https://docs.openclaw.ai
|
|
|
12
12
|
### Changes
|
|
13
13
|
|
|
14
14
|
- Subagents/Sessions: add `agents.defaults.subagents.runTimeoutSeconds` so `sessions_spawn` can inherit a configurable default timeout when the tool call omits `runTimeoutSeconds` (unset remains `0`, meaning no timeout). (#24594) Thanks @mitchmcalister.
|
|
15
|
+
- Config/Kilo Gateway: Kilo provider flow now surfaces an updated list of models. (#24921) thanks @gumadeiras.
|
|
16
|
+
- Auto-reply/Abort shortcuts: expand standalone stop phrases (`stop openclaw`, `stop action`, `stop run`, `stop agent`, `please stop`, and related variants) and accept trailing punctuation (for example `STOP OPENCLAW!!!`) so emergency stop messages are caught more reliably.
|
|
15
17
|
|
|
16
18
|
### Fixes
|
|
17
19
|
|
|
@@ -35,7 +37,6 @@ Docs: https://docs.openclaw.ai
|
|
|
35
37
|
- WhatsApp/Auto-reply: send only final payloads to WhatsApp, suppress tool/block payload leakage (reasoning/thinking), and force block streaming off for WhatsApp dispatch so final-only delivery cannot cause silent turns. (#24962) Thanks @SidQin-cyber.
|
|
36
38
|
- Channels/Reasoning: suppress reasoning/thinking payload segments in the shared channel dispatch path so non-Telegram channels (including WhatsApp and Web) no longer emit internal reasoning blocks as user-visible replies. (#24991) Thanks @stakeswky.
|
|
37
39
|
- Discord/Reasoning: suppress reasoning/thinking-only payload blocks from Discord delivery output. (#24969)
|
|
38
|
-
- Auto-reply/Abort shortcuts: expand standalone stop phrases (`stop openclaw`, `stop action`, `stop run`, `stop agent`, `please stop`, and related variants) and accept trailing punctuation (for example `STOP OPENCLAW!!!`) so emergency stop messages are caught more reliably.
|
|
39
40
|
- WhatsApp/DM routing: only update main-session last-route state when DM traffic is bound to the main session, preserving isolated `dmScope` routing. (#24949) Thanks @kevinWangSheng.
|
|
40
41
|
- WhatsApp/Access control: honor `selfChatMode` in inbound access-control checks. (#24738)
|
|
41
42
|
- WhatsApp/Logging: redact outbound recipient identifiers in WhatsApp outbound + heartbeat logs and remove message/poll preview text from those log lines. (#24980) Thanks @coygeek.
|
|
@@ -51,7 +52,6 @@ Docs: https://docs.openclaw.ai
|
|
|
51
52
|
- Sessions/Reasoning: persist `reasoningLevel: "off"` explicitly instead of deleting it so session overrides survive patch/update flows. (#24406, #24559)
|
|
52
53
|
- Cron/Isolated sessions: use full prompt mode for isolated cron runs so skills/extensions are available during cron execution. (#24944)
|
|
53
54
|
- Synology Chat/Webhooks: deregister stale webhook routes before re-registering on channel restart to prevent duplicate route handling. (#24971)
|
|
54
|
-
- Config/Kilo Gateway: Kilo provider flow now surfaces an updated list of models. (#24921) thanks @gumadeiras.
|
|
55
55
|
- Plugins/Config: use plugin manifest `id` (instead of npm package name) for config entry keys so plugin settings stay bound correctly. (#24796)
|
|
56
56
|
- Plugins/Config schema: support legacy plugin schemas without `toJSONSchema()` by falling back to permissive object schema generation. (#24933) Thanks @pandego.
|
|
57
57
|
- Gateway/Prompt builder: safely extract text from mixed content arrays when assembling prompts to avoid malformed prompt payloads. (#24946)
|
|
@@ -68,7 +68,7 @@ Docs: https://docs.openclaw.ai
|
|
|
68
68
|
- Infra/Windows TOCTOU: handle Windows `dev=0` edge cases in same-file identity checks. (#24939)
|
|
69
69
|
- Exec/Bash tools: clamp poll sleep duration to non-negative values in process polling loops. (#24889)
|
|
70
70
|
|
|
71
|
-
## 2026.2.23
|
|
71
|
+
## 2026.2.23
|
|
72
72
|
|
|
73
73
|
### Changes
|
|
74
74
|
|
|
@@ -77,6 +77,10 @@ Docs: https://docs.openclaw.ai
|
|
|
77
77
|
- Docs/Prompt caching: add a dedicated prompt-caching reference covering `cacheRetention`, per-agent `params` merge precedence, Bedrock/OpenRouter behavior, and cache-ttl + heartbeat tuning. Thanks @svenssonaxel.
|
|
78
78
|
- Gateway/HTTP security headers: add optional `gateway.http.securityHeaders.strictTransportSecurity` support to emit `Strict-Transport-Security` for direct HTTPS deployments, with runtime wiring, validation, tests, and hardening docs.
|
|
79
79
|
- Sessions/Cron: harden session maintenance with `openclaw sessions cleanup`, per-agent store targeting, disk-budget controls (`session.maintenance.maxDiskBytes` / `highWaterBytes`), and safer transcript/archive cleanup + run-log retention behavior. (#24753) thanks @gumadeiras.
|
|
80
|
+
- Tools/web_search: add `provider: "kimi"` (Moonshot) support with key/config schema wiring and a corrected two-step `$web_search` tool flow that echoes tool results before final synthesis, including citation extraction from search results. (#16616, #18822) Thanks @adshine.
|
|
81
|
+
- Media understanding/Video: add a native Moonshot video provider and include Moonshot in auto video key detection, plus refactor video execution to honor `entry/config/provider` baseUrl+header precedence (matching audio behavior). (#12063) Thanks @xiaoyaner0201.
|
|
82
|
+
- Agents/Config: support per-agent `params` overrides merged on top of model defaults (including `cacheRetention`) so mixed-traffic agents can tune cache behavior independently. (#17470, #17112) Thanks @rrenamed.
|
|
83
|
+
- Agents/Bootstrap: cache bootstrap file snapshots per session key and clear them on session reset/delete, reducing prompt-cache invalidations from in-session `AGENTS.md`/`MEMORY.md` writes. (#22220) Thanks @anisoptera.
|
|
80
84
|
|
|
81
85
|
### Breaking
|
|
82
86
|
|
|
@@ -88,8 +92,6 @@ Docs: https://docs.openclaw.ai
|
|
|
88
92
|
- Tests/Vitest: tier local parallel worker defaults by host memory, keep gateway serial by default on non-high-memory hosts, and document a low-profile fallback command for memory-constrained land/gate runs to prevent local OOMs. (#24719) Thanks @ngutman.
|
|
89
93
|
- WhatsApp/Group policy: fix `groupAllowFrom` sender filtering when `groupPolicy: "allowlist"` is set without explicit `groups` — previously all group messages were blocked even for allowlisted senders. (#24670)
|
|
90
94
|
- Agents/Context pruning: extend `cache-ttl` eligibility to Moonshot/Kimi and ZAI/GLM providers (including OpenRouter model refs), so `contextPruning.mode: "cache-ttl"` is no longer silently skipped for those sessions. (#24497) Thanks @lailoo.
|
|
91
|
-
- Tools/web_search: add `provider: "kimi"` (Moonshot) support with key/config schema wiring and a corrected two-step `$web_search` tool flow that echoes tool results before final synthesis, including citation extraction from search results. (#16616, #18822) Thanks @adshine.
|
|
92
|
-
- Media understanding/Video: add a native Moonshot video provider and include Moonshot in auto video key detection, plus refactor video execution to honor `entry/config/provider` baseUrl+header precedence (matching audio behavior). (#12063) Thanks @xiaoyaner0201.
|
|
93
95
|
- Doctor/Memory: query gateway-side default-agent memory embedding readiness during `openclaw doctor` (instead of inferring from generic gateway health), and warn when the gateway memory probe is unavailable or not ready while keeping `openclaw configure` remediation guidance. (#22327) thanks @therk.
|
|
94
96
|
- Sessions/Store: canonicalize inbound mixed-case session keys for metadata and route updates, and migrate legacy case-variant entries to a single lowercase key to prevent duplicate sessions and missing TUI/WebUI history. (#9561) Thanks @hillghost86.
|
|
95
97
|
- Telegram/Reactions: soft-fail reaction action errors (policy/token/emoji/API), accept snake_case `message_id`, and fallback to inbound message-id context when explicit `messageId` is omitted so DM reactions stay stable without regeneration loops. (#20236, #21001) Thanks @PeterShanxin and @vincentkoc.
|
|
@@ -101,8 +103,6 @@ Docs: https://docs.openclaw.ai
|
|
|
101
103
|
- Agents/Compaction: pass `agentDir` into manual `/compact` command runs so compaction auth/profile resolution stays scoped to the active agent. (#24133) thanks @Glucksberg.
|
|
102
104
|
- Agents/Compaction: pass model metadata through the embedded runtime so safeguard summarization can run when `ctx.model` is unavailable, avoiding repeated `"Summary unavailable due to context limits"` fallback summaries. (#3479) Thanks @battman21, @hanxiao and @vincentkoc.
|
|
103
105
|
- Agents/Compaction: cancel safeguard compaction when summary generation cannot run (missing model/API key or summarization failure), preserving history instead of truncating to fallback `"Summary unavailable"` text. (#10711) Thanks @DukeDeSouth and @vincentkoc.
|
|
104
|
-
- Agents/Config: support per-agent `params` overrides merged on top of model defaults (including `cacheRetention`) so mixed-traffic agents can tune cache behavior independently. (#17470, #17112) Thanks @rrenamed.
|
|
105
|
-
- Agents/Bootstrap: cache bootstrap file snapshots per session key and clear them on session reset/delete, reducing prompt-cache invalidations from in-session `AGENTS.md`/`MEMORY.md` writes. (#22220) Thanks @anisoptera.
|
|
106
106
|
- Agents/Tools: make `session_status` read transcript-derived usage mid-turn and tail-read session logs for cache-aware context reporting without full-log scans. (#22387) Thanks @1ucian.
|
|
107
107
|
- Agents/Overflow: detect additional provider context-overflow error shapes (including `input length` + `max_tokens` exceed-context variants) so failures route through compaction/recovery paths instead of leaking raw provider errors to users. (#9951) Thanks @echoVic and @Glucksberg.
|
|
108
108
|
- Agents/Overflow: add Chinese context-overflow pattern detection in `isContextOverflowError` so localized provider errors route through overflow recovery paths. (#22855) Thanks @Clawborn.
|
|
@@ -11,11 +11,11 @@ import "./accounts-cIBPf9IB.js";
|
|
|
11
11
|
import "./image-ops-CUmS__96.js";
|
|
12
12
|
import "./pi-model-discovery-DaNAekda.js";
|
|
13
13
|
import "./message-channel-BTrsc2pw.js";
|
|
14
|
-
import "./pi-embedded-helpers-
|
|
14
|
+
import "./pi-embedded-helpers-BxjDtTSD.js";
|
|
15
15
|
import "./config-Brd46Xc7.js";
|
|
16
16
|
import "./manifest-registry-nhWIJO2d.js";
|
|
17
17
|
import "./dock-RaNO1LM5.js";
|
|
18
|
-
import "./chrome-
|
|
18
|
+
import "./chrome-C8Z3qDom.js";
|
|
19
19
|
import "./ssrf-ueWxHyi3.js";
|
|
20
20
|
import "./skills-DCqTXQZl.js";
|
|
21
21
|
import "./redact-CP9noGXi.js";
|
|
@@ -26,11 +26,11 @@ import "./accounts-ru--5lJj.js";
|
|
|
26
26
|
import "./paths-DbuO2gD6.js";
|
|
27
27
|
import "./tool-images-BRXaNmBZ.js";
|
|
28
28
|
import "./thinking-ZaPrKXBc.js";
|
|
29
|
-
import "./image-
|
|
29
|
+
import "./image-Bwz7k77z.js";
|
|
30
30
|
import "./gemini-auth-Cg8dT8ZL.js";
|
|
31
31
|
import "./fetch-guard-B6-u0qUc.js";
|
|
32
32
|
import "./local-roots-B9aqyKN_.js";
|
|
33
|
-
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-
|
|
33
|
+
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-yC0M8vBa.js";
|
|
34
34
|
|
|
35
35
|
//#region src/media-understanding/audio-preflight.ts
|
|
36
36
|
/**
|
|
@@ -13,11 +13,11 @@ import "./accounts-Ci-FogVD.js";
|
|
|
13
13
|
import "./image-ops-DR7iVy0X.js";
|
|
14
14
|
import "./pi-model-discovery-C-yOXpma.js";
|
|
15
15
|
import "./message-channel-NXidGUO7.js";
|
|
16
|
-
import "./pi-embedded-helpers-
|
|
16
|
+
import "./pi-embedded-helpers-BdkmD3wR.js";
|
|
17
17
|
import "./config-DvUlTmaK.js";
|
|
18
18
|
import "./manifest-registry-DARtGCWp.js";
|
|
19
19
|
import "./dock-Devv97xs.js";
|
|
20
|
-
import "./chrome-
|
|
20
|
+
import "./chrome-D5YOyhL2.js";
|
|
21
21
|
import "./ssrf-BM54dmk8.js";
|
|
22
22
|
import "./frontmatter-CYyVkHva.js";
|
|
23
23
|
import "./skills-DOKat65v.js";
|
|
@@ -29,11 +29,11 @@ import "./accounts-DKYigdEx.js";
|
|
|
29
29
|
import "./paths-CLWDvYDE.js";
|
|
30
30
|
import "./tool-images-DeM5viPH.js";
|
|
31
31
|
import "./thinking-CJoHneR6.js";
|
|
32
|
-
import "./image-
|
|
32
|
+
import "./image-D9XRntUA.js";
|
|
33
33
|
import "./gemini-auth-DejNVJue.js";
|
|
34
34
|
import "./fetch-guard-Diq4wbzK.js";
|
|
35
35
|
import "./local-roots-DS-8ZE_B.js";
|
|
36
|
-
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-
|
|
36
|
+
import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-Bb2G1wrS.js";
|
|
37
37
|
|
|
38
38
|
//#region src/media-understanding/audio-preflight.ts
|
|
39
39
|
/**
|
package/dist/build-info.json
CHANGED
|
@@ -8,13 +8,13 @@ import "../../github-copilot-token-BkwQAVvU.js";
|
|
|
8
8
|
import "../../env-Bw45uydv.js";
|
|
9
9
|
import "../../boolean-mcn6kL0s.js";
|
|
10
10
|
import { n as SILENT_REPLY_TOKEN } from "../../tokens-BLlPaiD5.js";
|
|
11
|
-
import { a as createDefaultDeps, i as agentCommand } from "../../pi-embedded-
|
|
11
|
+
import { a as createDefaultDeps, i as agentCommand } from "../../pi-embedded-54x4PM3A.js";
|
|
12
12
|
import "../../plugins-BlRpkhyC.js";
|
|
13
13
|
import "../../accounts-CxYlEftx.js";
|
|
14
14
|
import "../../bindings-BCOutV7A.js";
|
|
15
15
|
import "../../send-BF8QfC--.js";
|
|
16
16
|
import "../../send-CBl-cFHi.js";
|
|
17
|
-
import "../../deliver-
|
|
17
|
+
import "../../deliver-i_F6aUuX.js";
|
|
18
18
|
import "../../diagnostic-D_de7-KX.js";
|
|
19
19
|
import "../../diagnostic-session-state-C0Sxjfox.js";
|
|
20
20
|
import "../../accounts-Ci-FogVD.js";
|
|
@@ -22,11 +22,11 @@ import "../../send-BEnRshK8.js";
|
|
|
22
22
|
import "../../image-ops-DR7iVy0X.js";
|
|
23
23
|
import "../../pi-model-discovery-C-yOXpma.js";
|
|
24
24
|
import "../../message-channel-NXidGUO7.js";
|
|
25
|
-
import "../../pi-embedded-helpers-
|
|
25
|
+
import "../../pi-embedded-helpers-BdkmD3wR.js";
|
|
26
26
|
import "../../config-DvUlTmaK.js";
|
|
27
27
|
import "../../manifest-registry-DARtGCWp.js";
|
|
28
28
|
import "../../dock-Devv97xs.js";
|
|
29
|
-
import "../../chrome-
|
|
29
|
+
import "../../chrome-D5YOyhL2.js";
|
|
30
30
|
import "../../ssrf-BM54dmk8.js";
|
|
31
31
|
import "../../frontmatter-CYyVkHva.js";
|
|
32
32
|
import "../../skills-DOKat65v.js";
|
|
@@ -38,7 +38,7 @@ import "../../accounts-DKYigdEx.js";
|
|
|
38
38
|
import { l as resolveStorePath } from "../../paths-CLWDvYDE.js";
|
|
39
39
|
import "../../tool-images-DeM5viPH.js";
|
|
40
40
|
import "../../thinking-CJoHneR6.js";
|
|
41
|
-
import "../../image-
|
|
41
|
+
import "../../image-D9XRntUA.js";
|
|
42
42
|
import "../../reply-prefix-Cha4QN8H.js";
|
|
43
43
|
import "../../manager-DkvrfiWy.js";
|
|
44
44
|
import "../../gemini-auth-DejNVJue.js";
|
|
@@ -53,7 +53,7 @@ import "../../ir-DQn3JpQE.js";
|
|
|
53
53
|
import "../../render-loap2gRq.js";
|
|
54
54
|
import "../../commands-registry-CclRtEXd.js";
|
|
55
55
|
import "../../skill-commands-6qLPyery.js";
|
|
56
|
-
import "../../runner-
|
|
56
|
+
import "../../runner-Bb2G1wrS.js";
|
|
57
57
|
import "../../fetch-CSgvhNYZ.js";
|
|
58
58
|
import "../../channel-activity-mEN8_E9p.js";
|
|
59
59
|
import "../../tables-DV7HmexJ.js";
|
|
@@ -8,13 +8,13 @@ import "../../github-copilot-token-BkwQAVvU.js";
|
|
|
8
8
|
import "../../env-Bw45uydv.js";
|
|
9
9
|
import "../../boolean-mcn6kL0s.js";
|
|
10
10
|
import "../../tokens-BLlPaiD5.js";
|
|
11
|
-
import "../../pi-embedded-
|
|
11
|
+
import "../../pi-embedded-54x4PM3A.js";
|
|
12
12
|
import "../../plugins-BlRpkhyC.js";
|
|
13
13
|
import "../../accounts-CxYlEftx.js";
|
|
14
14
|
import "../../bindings-BCOutV7A.js";
|
|
15
15
|
import "../../send-BF8QfC--.js";
|
|
16
16
|
import "../../send-CBl-cFHi.js";
|
|
17
|
-
import "../../deliver-
|
|
17
|
+
import "../../deliver-i_F6aUuX.js";
|
|
18
18
|
import "../../diagnostic-D_de7-KX.js";
|
|
19
19
|
import "../../diagnostic-session-state-C0Sxjfox.js";
|
|
20
20
|
import "../../accounts-Ci-FogVD.js";
|
|
@@ -22,11 +22,11 @@ import "../../send-BEnRshK8.js";
|
|
|
22
22
|
import "../../image-ops-DR7iVy0X.js";
|
|
23
23
|
import "../../pi-model-discovery-C-yOXpma.js";
|
|
24
24
|
import "../../message-channel-NXidGUO7.js";
|
|
25
|
-
import "../../pi-embedded-helpers-
|
|
25
|
+
import "../../pi-embedded-helpers-BdkmD3wR.js";
|
|
26
26
|
import "../../config-DvUlTmaK.js";
|
|
27
27
|
import "../../manifest-registry-DARtGCWp.js";
|
|
28
28
|
import "../../dock-Devv97xs.js";
|
|
29
|
-
import "../../chrome-
|
|
29
|
+
import "../../chrome-D5YOyhL2.js";
|
|
30
30
|
import "../../ssrf-BM54dmk8.js";
|
|
31
31
|
import "../../frontmatter-CYyVkHva.js";
|
|
32
32
|
import "../../skills-DOKat65v.js";
|
|
@@ -38,7 +38,7 @@ import "../../accounts-DKYigdEx.js";
|
|
|
38
38
|
import "../../paths-CLWDvYDE.js";
|
|
39
39
|
import "../../tool-images-DeM5viPH.js";
|
|
40
40
|
import "../../thinking-CJoHneR6.js";
|
|
41
|
-
import "../../image-
|
|
41
|
+
import "../../image-D9XRntUA.js";
|
|
42
42
|
import "../../reply-prefix-Cha4QN8H.js";
|
|
43
43
|
import "../../manager-DkvrfiWy.js";
|
|
44
44
|
import "../../gemini-auth-DejNVJue.js";
|
|
@@ -53,7 +53,7 @@ import "../../ir-DQn3JpQE.js";
|
|
|
53
53
|
import "../../render-loap2gRq.js";
|
|
54
54
|
import "../../commands-registry-CclRtEXd.js";
|
|
55
55
|
import "../../skill-commands-6qLPyery.js";
|
|
56
|
-
import "../../runner-
|
|
56
|
+
import "../../runner-Bb2G1wrS.js";
|
|
57
57
|
import "../../fetch-CSgvhNYZ.js";
|
|
58
58
|
import "../../channel-activity-mEN8_E9p.js";
|
|
59
59
|
import "../../tables-DV7HmexJ.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4a4c90c6369093d1497053162e671adc83d3e94dc59a94ed6160bc0b11e9dc2a
|
|
@@ -10,7 +10,7 @@ import { execFileSync, spawn } from "node:child_process";
|
|
|
10
10
|
import { createHmac } from "node:crypto";
|
|
11
11
|
import net from "node:net";
|
|
12
12
|
import { createServer } from "node:http";
|
|
13
|
-
import WebSocket, { WebSocketServer } from "ws";
|
|
13
|
+
import WebSocket$1, { WebSocketServer } from "ws";
|
|
14
14
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
15
15
|
|
|
16
16
|
//#region src/browser/constants.ts
|
|
@@ -196,12 +196,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
196
196
|
let extensionWs = null;
|
|
197
197
|
const cdpClients = /* @__PURE__ */ new Set();
|
|
198
198
|
const connectedTargets = /* @__PURE__ */ new Map();
|
|
199
|
-
const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
|
|
199
|
+
const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
|
|
200
200
|
const pendingExtension = /* @__PURE__ */ new Map();
|
|
201
201
|
let nextExtensionId = 1;
|
|
202
202
|
const sendToExtension = async (payload) => {
|
|
203
203
|
const ws = extensionWs;
|
|
204
|
-
if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
|
|
204
|
+
if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
|
|
205
205
|
ws.send(JSON.stringify(payload));
|
|
206
206
|
return await new Promise((resolve, reject) => {
|
|
207
207
|
const timer = setTimeout(() => {
|
|
@@ -218,12 +218,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
218
218
|
const broadcastToCdpClients = (evt) => {
|
|
219
219
|
const msg = JSON.stringify(evt);
|
|
220
220
|
for (const ws of cdpClients) {
|
|
221
|
-
if (ws.readyState !== WebSocket.OPEN) continue;
|
|
221
|
+
if (ws.readyState !== WebSocket$1.OPEN) continue;
|
|
222
222
|
ws.send(msg);
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
225
|
const sendResponseToCdp = (ws, res) => {
|
|
226
|
-
if (ws.readyState !== WebSocket.OPEN) return;
|
|
226
|
+
if (ws.readyState !== WebSocket$1.OPEN) return;
|
|
227
227
|
ws.send(JSON.stringify(res));
|
|
228
228
|
};
|
|
229
229
|
const ensureTargetEventsForClient = (ws, mode) => {
|
|
@@ -401,7 +401,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
401
401
|
rejectUpgrade(socket, 409, "Extension already connected");
|
|
402
402
|
return;
|
|
403
403
|
}
|
|
404
|
-
if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
|
|
404
|
+
if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
|
|
405
405
|
try {
|
|
406
406
|
extensionWs.terminate();
|
|
407
407
|
} catch {}
|
|
@@ -432,7 +432,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
432
432
|
wssExtension.on("connection", (ws) => {
|
|
433
433
|
extensionWs = ws;
|
|
434
434
|
const ping = setInterval(() => {
|
|
435
|
-
if (ws.readyState !== WebSocket.OPEN) return;
|
|
435
|
+
if (ws.readyState !== WebSocket$1.OPEN) return;
|
|
436
436
|
ws.send(JSON.stringify({ method: "ping" }));
|
|
437
437
|
}, 5e3);
|
|
438
438
|
ws.on("message", (data) => {
|
|
@@ -762,7 +762,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
|
|
|
762
762
|
}
|
|
763
763
|
async function withCdpSocket(wsUrl, fn, opts) {
|
|
764
764
|
const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
|
|
765
|
-
const ws = new WebSocket(wsUrl, {
|
|
765
|
+
const ws = new WebSocket$1(wsUrl, {
|
|
766
766
|
handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
|
|
767
767
|
...Object.keys(headers).length ? { headers } : {}
|
|
768
768
|
});
|
|
@@ -1681,7 +1681,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
|
|
|
1681
1681
|
async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
|
|
1682
1682
|
return await new Promise((resolve) => {
|
|
1683
1683
|
const headers = getHeadersWithAuth(wsUrl);
|
|
1684
|
-
const ws = new WebSocket(wsUrl, {
|
|
1684
|
+
const ws = new WebSocket$1(wsUrl, {
|
|
1685
1685
|
handshakeTimeout: timeoutMs,
|
|
1686
1686
|
...Object.keys(headers).length ? { headers } : {}
|
|
1687
1687
|
});
|
|
@@ -10,7 +10,7 @@ import { execFileSync, spawn } from "node:child_process";
|
|
|
10
10
|
import { createHmac } from "node:crypto";
|
|
11
11
|
import net from "node:net";
|
|
12
12
|
import { createServer } from "node:http";
|
|
13
|
-
import WebSocket
|
|
13
|
+
import WebSocket, { WebSocketServer } from "ws";
|
|
14
14
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
15
15
|
|
|
16
16
|
//#region src/browser/constants.ts
|
|
@@ -196,12 +196,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
196
196
|
let extensionWs = null;
|
|
197
197
|
const cdpClients = /* @__PURE__ */ new Set();
|
|
198
198
|
const connectedTargets = /* @__PURE__ */ new Map();
|
|
199
|
-
const extensionConnected = () => extensionWs?.readyState === WebSocket
|
|
199
|
+
const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
|
|
200
200
|
const pendingExtension = /* @__PURE__ */ new Map();
|
|
201
201
|
let nextExtensionId = 1;
|
|
202
202
|
const sendToExtension = async (payload) => {
|
|
203
203
|
const ws = extensionWs;
|
|
204
|
-
if (!ws || ws.readyState !== WebSocket
|
|
204
|
+
if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
|
|
205
205
|
ws.send(JSON.stringify(payload));
|
|
206
206
|
return await new Promise((resolve, reject) => {
|
|
207
207
|
const timer = setTimeout(() => {
|
|
@@ -218,12 +218,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
218
218
|
const broadcastToCdpClients = (evt) => {
|
|
219
219
|
const msg = JSON.stringify(evt);
|
|
220
220
|
for (const ws of cdpClients) {
|
|
221
|
-
if (ws.readyState !== WebSocket
|
|
221
|
+
if (ws.readyState !== WebSocket.OPEN) continue;
|
|
222
222
|
ws.send(msg);
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
225
|
const sendResponseToCdp = (ws, res) => {
|
|
226
|
-
if (ws.readyState !== WebSocket
|
|
226
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
227
227
|
ws.send(JSON.stringify(res));
|
|
228
228
|
};
|
|
229
229
|
const ensureTargetEventsForClient = (ws, mode) => {
|
|
@@ -401,7 +401,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
401
401
|
rejectUpgrade(socket, 409, "Extension already connected");
|
|
402
402
|
return;
|
|
403
403
|
}
|
|
404
|
-
if (extensionWs && extensionWs.readyState !== WebSocket
|
|
404
|
+
if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
|
|
405
405
|
try {
|
|
406
406
|
extensionWs.terminate();
|
|
407
407
|
} catch {}
|
|
@@ -432,7 +432,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
432
432
|
wssExtension.on("connection", (ws) => {
|
|
433
433
|
extensionWs = ws;
|
|
434
434
|
const ping = setInterval(() => {
|
|
435
|
-
if (ws.readyState !== WebSocket
|
|
435
|
+
if (ws.readyState !== WebSocket.OPEN) return;
|
|
436
436
|
ws.send(JSON.stringify({ method: "ping" }));
|
|
437
437
|
}, 5e3);
|
|
438
438
|
ws.on("message", (data) => {
|
|
@@ -762,7 +762,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
|
|
|
762
762
|
}
|
|
763
763
|
async function withCdpSocket(wsUrl, fn, opts) {
|
|
764
764
|
const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
|
|
765
|
-
const ws = new WebSocket
|
|
765
|
+
const ws = new WebSocket(wsUrl, {
|
|
766
766
|
handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
|
|
767
767
|
...Object.keys(headers).length ? { headers } : {}
|
|
768
768
|
});
|
|
@@ -1681,7 +1681,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
|
|
|
1681
1681
|
async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
|
|
1682
1682
|
return await new Promise((resolve) => {
|
|
1683
1683
|
const headers = getHeadersWithAuth(wsUrl);
|
|
1684
|
-
const ws = new WebSocket
|
|
1684
|
+
const ws = new WebSocket(wsUrl, {
|
|
1685
1685
|
handshakeTimeout: timeoutMs,
|
|
1686
1686
|
...Object.keys(headers).length ? { headers } : {}
|
|
1687
1687
|
});
|
|
@@ -5,7 +5,7 @@ import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./sess
|
|
|
5
5
|
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DcXIijvb.js";
|
|
6
6
|
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-YwGWnhQE.js";
|
|
7
7
|
import { n as generateSecureUuid } from "./secure-random-D7Pne8Yn.js";
|
|
8
|
-
import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-
|
|
8
|
+
import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-BxjDtTSD.js";
|
|
9
9
|
import { t as getChannelDock } from "./dock-RaNO1LM5.js";
|
|
10
10
|
import { E as parseInlineDirectives, a as resolveMirroredTranscriptText, i as appendAssistantMessageToSessionTranscript } from "./sessions-RdMA_tth.js";
|
|
11
11
|
import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-B7GhqBPV.js";
|
|
@@ -5,7 +5,7 @@ import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./sess
|
|
|
5
5
|
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BLlPaiD5.js";
|
|
6
6
|
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BlRpkhyC.js";
|
|
7
7
|
import { n as generateSecureUuid } from "./secure-random-faWesvBQ.js";
|
|
8
|
-
import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-
|
|
8
|
+
import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-BdkmD3wR.js";
|
|
9
9
|
import { t as getChannelDock } from "./dock-Devv97xs.js";
|
|
10
10
|
import { T as parseInlineDirectives, a as resolveMirroredTranscriptText, i as appendAssistantMessageToSessionTranscript } from "./sessions-BiWBZ-uj.js";
|
|
11
11
|
import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BK8T_RCs.js";
|
package/dist/extensionAPI.js
CHANGED
|
@@ -6,13 +6,13 @@ import { a as resolveAgentIdentity } from "./reply-prefix-zbMt2YLP.js";
|
|
|
6
6
|
import "./github-copilot-token-D8k4aAom.js";
|
|
7
7
|
import "./env-DC7b5MnK.js";
|
|
8
8
|
import "./tokens-DcXIijvb.js";
|
|
9
|
-
import { A as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-
|
|
9
|
+
import { A as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-CWNyms-S.js";
|
|
10
10
|
import "./plugins-YwGWnhQE.js";
|
|
11
11
|
import "./accounts-DvzTPeU9.js";
|
|
12
12
|
import "./bindings-oW5ZqVhx.js";
|
|
13
13
|
import "./send-BNm6G6BO.js";
|
|
14
14
|
import "./send-DvIuJV-e.js";
|
|
15
|
-
import "./deliver-
|
|
15
|
+
import "./deliver-B2A1_Ib0.js";
|
|
16
16
|
import "./diagnostic-Cvpy6jbf.js";
|
|
17
17
|
import "./diagnostic-session-state-Bu3E4Enn.js";
|
|
18
18
|
import "./accounts-cIBPf9IB.js";
|
|
@@ -20,11 +20,11 @@ import "./send-DwWUQXIX.js";
|
|
|
20
20
|
import "./image-ops-CUmS__96.js";
|
|
21
21
|
import "./pi-model-discovery-DaNAekda.js";
|
|
22
22
|
import "./message-channel-BTrsc2pw.js";
|
|
23
|
-
import "./pi-embedded-helpers-
|
|
23
|
+
import "./pi-embedded-helpers-BxjDtTSD.js";
|
|
24
24
|
import "./config-Brd46Xc7.js";
|
|
25
25
|
import "./manifest-registry-nhWIJO2d.js";
|
|
26
26
|
import "./dock-RaNO1LM5.js";
|
|
27
|
-
import "./chrome-
|
|
27
|
+
import "./chrome-C8Z3qDom.js";
|
|
28
28
|
import "./ssrf-ueWxHyi3.js";
|
|
29
29
|
import "./skills-DCqTXQZl.js";
|
|
30
30
|
import "./redact-CP9noGXi.js";
|
|
@@ -35,7 +35,7 @@ import "./accounts-ru--5lJj.js";
|
|
|
35
35
|
import { l as resolveStorePath, r as resolveSessionFilePath } from "./paths-DbuO2gD6.js";
|
|
36
36
|
import "./tool-images-BRXaNmBZ.js";
|
|
37
37
|
import "./thinking-ZaPrKXBc.js";
|
|
38
|
-
import "./image-
|
|
38
|
+
import "./image-Bwz7k77z.js";
|
|
39
39
|
import "./manager-gAWsC5kd.js";
|
|
40
40
|
import "./gemini-auth-Cg8dT8ZL.js";
|
|
41
41
|
import "./fetch-guard-B6-u0qUc.js";
|
|
@@ -49,7 +49,7 @@ import "./ir-DgX2oDXm.js";
|
|
|
49
49
|
import "./render-DwEu-aCr.js";
|
|
50
50
|
import "./commands-registry-B_AT3YGB.js";
|
|
51
51
|
import "./skill-commands-Ba2LNVnK.js";
|
|
52
|
-
import "./runner-
|
|
52
|
+
import "./runner-yC0M8vBa.js";
|
|
53
53
|
import "./fetch-BBHdHnVe.js";
|
|
54
54
|
import "./channel-activity-Dyv8T9R5.js";
|
|
55
55
|
import "./tables-WfvRFaDH.js";
|
|
@@ -3,7 +3,7 @@ import { N as resolveAgentModelFallbackValues, P as resolveAgentModelPrimaryValu
|
|
|
3
3
|
import { A as isRecord, z as shortenHomeInString } from "./subsystem-n4tSscKk.js";
|
|
4
4
|
import { C as getApiKeyForModel, T as requireApiKey, X as resolveOpenClawAgentDir, _ as normalizeProviders, b as resolveImplicitProviders, et as normalizeSecretInput, v as resolveImplicitBedrockProvider, y as resolveImplicitCopilotProvider } from "./model-selection-DDLFzohK.js";
|
|
5
5
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
6
|
-
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-
|
|
6
|
+
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-BxjDtTSD.js";
|
|
7
7
|
import { n as loadConfig } from "./config-Brd46Xc7.js";
|
|
8
8
|
import { n as redactToolDetail } from "./redact-CP9noGXi.js";
|
|
9
9
|
import path from "node:path";
|
|
@@ -3,7 +3,7 @@ import { h as resolveAgentModelPrimaryValue, m as resolveAgentModelFallbackValue
|
|
|
3
3
|
import { A as isRecord, z as shortenHomeInString } from "./subsystem-BoKOAh1n.js";
|
|
4
4
|
import { C as getApiKeyForModel, T as requireApiKey, X as resolveOpenClawAgentDir, _ as normalizeProviders, b as resolveImplicitProviders, et as normalizeSecretInput, v as resolveImplicitBedrockProvider, y as resolveImplicitCopilotProvider } from "./model-selection-B5NjONwE.js";
|
|
5
5
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-C-yOXpma.js";
|
|
6
|
-
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-
|
|
6
|
+
import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-BdkmD3wR.js";
|
|
7
7
|
import { n as loadConfig } from "./config-DvUlTmaK.js";
|
|
8
8
|
import { n as redactToolDetail } from "./redact-C_vdZ7-E.js";
|
|
9
9
|
import fs from "node:fs/promises";
|
|
@@ -7,13 +7,13 @@ import "./github-copilot-token-BkwQAVvU.js";
|
|
|
7
7
|
import "./env-Bw45uydv.js";
|
|
8
8
|
import "./boolean-mcn6kL0s.js";
|
|
9
9
|
import "./tokens-BLlPaiD5.js";
|
|
10
|
-
import { t as runEmbeddedPiAgent } from "./pi-embedded-
|
|
10
|
+
import { t as runEmbeddedPiAgent } from "./pi-embedded-54x4PM3A.js";
|
|
11
11
|
import "./plugins-BlRpkhyC.js";
|
|
12
12
|
import "./accounts-CxYlEftx.js";
|
|
13
13
|
import "./bindings-BCOutV7A.js";
|
|
14
14
|
import "./send-BF8QfC--.js";
|
|
15
15
|
import "./send-CBl-cFHi.js";
|
|
16
|
-
import "./deliver-
|
|
16
|
+
import "./deliver-i_F6aUuX.js";
|
|
17
17
|
import "./diagnostic-D_de7-KX.js";
|
|
18
18
|
import "./diagnostic-session-state-C0Sxjfox.js";
|
|
19
19
|
import "./accounts-Ci-FogVD.js";
|
|
@@ -21,11 +21,11 @@ import "./send-BEnRshK8.js";
|
|
|
21
21
|
import "./image-ops-DR7iVy0X.js";
|
|
22
22
|
import "./pi-model-discovery-C-yOXpma.js";
|
|
23
23
|
import "./message-channel-NXidGUO7.js";
|
|
24
|
-
import "./pi-embedded-helpers-
|
|
24
|
+
import "./pi-embedded-helpers-BdkmD3wR.js";
|
|
25
25
|
import "./config-DvUlTmaK.js";
|
|
26
26
|
import "./manifest-registry-DARtGCWp.js";
|
|
27
27
|
import "./dock-Devv97xs.js";
|
|
28
|
-
import "./chrome-
|
|
28
|
+
import "./chrome-D5YOyhL2.js";
|
|
29
29
|
import "./ssrf-BM54dmk8.js";
|
|
30
30
|
import "./frontmatter-CYyVkHva.js";
|
|
31
31
|
import "./skills-DOKat65v.js";
|
|
@@ -37,7 +37,7 @@ import "./accounts-DKYigdEx.js";
|
|
|
37
37
|
import "./paths-CLWDvYDE.js";
|
|
38
38
|
import "./tool-images-DeM5viPH.js";
|
|
39
39
|
import "./thinking-CJoHneR6.js";
|
|
40
|
-
import "./image-
|
|
40
|
+
import "./image-D9XRntUA.js";
|
|
41
41
|
import "./reply-prefix-Cha4QN8H.js";
|
|
42
42
|
import "./manager-DkvrfiWy.js";
|
|
43
43
|
import "./gemini-auth-DejNVJue.js";
|
|
@@ -52,7 +52,7 @@ import "./ir-DQn3JpQE.js";
|
|
|
52
52
|
import "./render-loap2gRq.js";
|
|
53
53
|
import "./commands-registry-CclRtEXd.js";
|
|
54
54
|
import "./skill-commands-6qLPyery.js";
|
|
55
|
-
import "./runner-
|
|
55
|
+
import "./runner-Bb2G1wrS.js";
|
|
56
56
|
import "./fetch-CSgvhNYZ.js";
|
|
57
57
|
import "./channel-activity-mEN8_E9p.js";
|
|
58
58
|
import "./tables-DV7HmexJ.js";
|
|
@@ -16,7 +16,7 @@ import { t as normalizeChatType } from "./chat-type-C4pAlbsI.js";
|
|
|
16
16
|
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BF8QfC--.js";
|
|
17
17
|
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CBl-cFHi.js";
|
|
18
18
|
import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-faWesvBQ.js";
|
|
19
|
-
import { S as initializeGlobalHookRunner, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, x as getGlobalHookRunner, y as parseReplyDirectives } from "./deliver-
|
|
19
|
+
import { S as initializeGlobalHookRunner, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, x as getGlobalHookRunner, y as parseReplyDirectives } from "./deliver-i_F6aUuX.js";
|
|
20
20
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-D_de7-KX.js";
|
|
21
21
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C0Sxjfox.js";
|
|
22
22
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-Ci-FogVD.js";
|
|
@@ -24,11 +24,11 @@ import { $ as getPairingAdapter, A as extractTelegramLocation, B as normalizeAll
|
|
|
24
24
|
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-DR7iVy0X.js";
|
|
25
25
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-C-yOXpma.js";
|
|
26
26
|
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-NXidGUO7.js";
|
|
27
|
-
import { $ as mergeAlsoAllowPolicy, A as isTransientHttpError, B as resolveProfile, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as resolveSandboxContext, G as resolveBrowserControlAuth, H as resolveExistingPathsWithinRoot, I as resolveSandboxRuntimeStatus, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as createBrowserRouteContext, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as ensureSandboxWorkspaceForSession, Q as expandPolicyWithPluginGroups, R as registerBrowserRoutes, S as isCompactionFailureError, T as isFailoverErrorMessage, U as getBridgeAuthForPort, V as DEFAULT_UPLOAD_DIR, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isBillingAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIReasoningBlocks, et as stripPluginOnlyAllowlist, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, it as compileGlobPatterns, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as classifyFailoverReason, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as BILLING_ERROR_USER_MESSAGE, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError, z as resolveBrowserConfig } from "./pi-embedded-helpers-
|
|
27
|
+
import { $ as mergeAlsoAllowPolicy, A as isTransientHttpError, B as resolveProfile, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as resolveSandboxContext, G as resolveBrowserControlAuth, H as resolveExistingPathsWithinRoot, I as resolveSandboxRuntimeStatus, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as createBrowserRouteContext, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as ensureSandboxWorkspaceForSession, Q as expandPolicyWithPluginGroups, R as registerBrowserRoutes, S as isCompactionFailureError, T as isFailoverErrorMessage, U as getBridgeAuthForPort, V as DEFAULT_UPLOAD_DIR, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isBillingAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIReasoningBlocks, et as stripPluginOnlyAllowlist, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, it as compileGlobPatterns, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as classifyFailoverReason, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as BILLING_ERROR_USER_MESSAGE, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError, z as resolveBrowserConfig } from "./pi-embedded-helpers-BdkmD3wR.js";
|
|
28
28
|
import { $ as resolveSafeBinProfiles, A as parseConfigPath, B as splitCommandChain, C as isSupportedLocalAvatarExtension, D as setConfigOverride, E as resetConfigOverrides, F as normalizeTrustedSafeBinDirs, G as extractShellWrapperInlineCommand, H as matchAllowlist, I as validateSafeBinArgv, J as unwrapKnownDispatchWrapperInvocation, K as isDispatchWrapperExecutable, L as analyzeShellCommand, M as unsetConfigValueAtPath, N as getTrustedSafeBinDirs, O as unsetConfigOverride, P as isTrustedSafeBinPath, Q as normalizeSafeBinProfileFixtures, R as buildEnforcedShellCommand, S as isPathWithinRoot, T as getConfigOverrides, U as resolveAllowlistCandidatePath, V as DEFAULT_SAFE_BINS, W as resolveCommandResolutionFromArgv, X as splitShellArgs, Y as unwrapKnownShellMultiplexerInvocation, Z as SAFE_BIN_PROFILES, _ as parseDurationMs, a as resolveConfigSnapshotHash, b as isAvatarDataUrl, c as TELEGRAM_COMMAND_NAME_PATTERN, ct as VERSION, et as isSafeExecutableValue, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, it as resolveSlackStreamingMode, j as setConfigValueAtPath, k as getConfigValueAtPath, l as normalizeTelegramCommandName, lt as resolveOwnerDisplaySetting, m as resolveIMessageAttachmentRoots, n as loadConfig, nt as resolveDiscordPreviewStreamMode, o as writeConfigFile, ot as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, q as isShellWrapperExecutable, r as readConfigFileSnapshot, rt as resolveSlackNativeStreaming, s as validateConfigObjectWithPlugins, st as resolveAgentMaxConcurrent, tt as mapStreamingModeToSlackLegacyDraftStreamMode, u as resolveTelegramCustomCommands, w as validateJsonSchemaValue, x as isAvatarHttpUrl, y as AVATAR_MAX_BYTES, z as isWindowsPlatform } from "./config-DvUlTmaK.js";
|
|
29
29
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEffectiveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-DARtGCWp.js";
|
|
30
30
|
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, o as resolveChannelGroupToolsPolicy, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-Devv97xs.js";
|
|
31
|
-
import { E as isSecureWebSocketUrl, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, w as rawDataToString } from "./chrome-
|
|
31
|
+
import { E as isSecureWebSocketUrl, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, w as rawDataToString } from "./chrome-D5YOyhL2.js";
|
|
32
32
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BM54dmk8.js";
|
|
33
33
|
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-DOKat65v.js";
|
|
34
34
|
import { r as compileSafeRegex, t as redactSensitiveText } from "./redact-C_vdZ7-E.js";
|
|
@@ -41,7 +41,7 @@ import { a as resolveSessionTranscriptPath, c as resolveSessionTranscriptsDirFor
|
|
|
41
41
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-BtNd-j6q.js";
|
|
42
42
|
import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-DeM5viPH.js";
|
|
43
43
|
import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-CJoHneR6.js";
|
|
44
|
-
import { C as extractTextFromChatContent, S as isInsideCode, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, w as ensureOpenClawModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-
|
|
44
|
+
import { C as extractTextFromChatContent, S as isInsideCode, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, w as ensureOpenClawModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-D9XRntUA.js";
|
|
45
45
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-Cha4QN8H.js";
|
|
46
46
|
import { n as resolveMemorySearchConfig } from "./manager-DkvrfiWy.js";
|
|
47
47
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DwuL9y6C.js";
|
|
@@ -56,7 +56,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DQn3JpQE.js";
|
|
|
56
56
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-CclRtEXd.js";
|
|
57
57
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-6qLPyery.js";
|
|
58
58
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-3RiUKgll.js";
|
|
59
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
59
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-Bb2G1wrS.js";
|
|
60
60
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CSgvhNYZ.js";
|
|
61
61
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CA97QrJY.js";
|
|
62
62
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-mEN8_E9p.js";
|
|
@@ -86,7 +86,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
86
86
|
import AjvPkg from "ajv";
|
|
87
87
|
import { createServer } from "node:http";
|
|
88
88
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
89
|
-
import WebSocket
|
|
89
|
+
import WebSocket, { WebSocket as WebSocket$1 } from "ws";
|
|
90
90
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
91
91
|
import { createJiti } from "jiti";
|
|
92
92
|
import { Type } from "@sinclair/typebox";
|
|
@@ -6234,7 +6234,7 @@ var GatewayClient = class {
|
|
|
6234
6234
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
6235
6235
|
});
|
|
6236
6236
|
}
|
|
6237
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
6237
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
6238
6238
|
this.ws.on("open", () => {
|
|
6239
6239
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
6240
6240
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -6426,7 +6426,7 @@ var GatewayClient = class {
|
|
|
6426
6426
|
const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
|
|
6427
6427
|
if (this.connectTimer) clearTimeout(this.connectTimer);
|
|
6428
6428
|
this.connectTimer = setTimeout(() => {
|
|
6429
|
-
if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
|
|
6429
|
+
if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
|
|
6430
6430
|
this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
|
|
6431
6431
|
this.ws?.close(1008, "connect challenge timeout");
|
|
6432
6432
|
}, connectChallengeTimeoutMs);
|
|
@@ -6468,7 +6468,7 @@ var GatewayClient = class {
|
|
|
6468
6468
|
return null;
|
|
6469
6469
|
}
|
|
6470
6470
|
async request(method, params, opts) {
|
|
6471
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
6471
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
6472
6472
|
const id = randomUUID();
|
|
6473
6473
|
const frame = {
|
|
6474
6474
|
type: "req",
|
|
@@ -7768,7 +7768,7 @@ async function routeReply(params) {
|
|
|
7768
7768
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7769
7769
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7770
7770
|
try {
|
|
7771
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7771
|
+
const { deliverOutboundPayloads } = await import("./deliver-i_F6aUuX.js").then((n) => n.n);
|
|
7772
7772
|
return {
|
|
7773
7773
|
ok: true,
|
|
7774
7774
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -41729,7 +41729,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41729
41729
|
return;
|
|
41730
41730
|
}
|
|
41731
41731
|
try {
|
|
41732
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41732
|
+
const { deliverOutboundPayloads } = await import("./deliver-i_F6aUuX.js").then((n) => n.n);
|
|
41733
41733
|
await deliverOutboundPayloads({
|
|
41734
41734
|
cfg: params.cfg,
|
|
41735
41735
|
channel,
|
|
@@ -45248,7 +45248,7 @@ async function describeStickerImage(params) {
|
|
|
45248
45248
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45249
45249
|
try {
|
|
45250
45250
|
const buffer = await fs.readFile(imagePath);
|
|
45251
|
-
const { describeImageWithModel } = await import("./image-
|
|
45251
|
+
const { describeImageWithModel } = await import("./image-D9XRntUA.js").then((n) => n.n);
|
|
45252
45252
|
return (await describeImageWithModel({
|
|
45253
45253
|
buffer,
|
|
45254
45254
|
fileName: "sticker.webp",
|
|
@@ -47835,7 +47835,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47835
47835
|
let preflightTranscript;
|
|
47836
47836
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47837
47837
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47838
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47838
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-X172w-u4.js");
|
|
47839
47839
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47840
47840
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47841
47841
|
ctx: {
|
|
@@ -51914,7 +51914,7 @@ function createOutboundSendDepsFromCliSource(deps) {
|
|
|
51914
51914
|
function createDefaultDeps() {
|
|
51915
51915
|
return {
|
|
51916
51916
|
sendMessageWhatsApp: async (...args) => {
|
|
51917
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51917
|
+
const { sendMessageWhatsApp } = await import("./web-Cnqp8qkz.js");
|
|
51918
51918
|
return await sendMessageWhatsApp(...args);
|
|
51919
51919
|
},
|
|
51920
51920
|
sendMessageTelegram: async (...args) => {
|
|
@@ -54853,7 +54853,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
54853
54853
|
super(options);
|
|
54854
54854
|
}
|
|
54855
54855
|
createWebSocket(url) {
|
|
54856
|
-
return new WebSocket
|
|
54856
|
+
return new WebSocket(url, { agent });
|
|
54857
54857
|
}
|
|
54858
54858
|
}
|
|
54859
54859
|
return new ProxyGatewayPlugin();
|
|
@@ -65347,7 +65347,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
65347
65347
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
65348
65348
|
let preflightTranscript;
|
|
65349
65349
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
65350
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
65350
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-X172w-u4.js");
|
|
65351
65351
|
preflightTranscript = await transcribeFirstAudio({
|
|
65352
65352
|
ctx: {
|
|
65353
65353
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -67703,7 +67703,7 @@ function loadWebLoginQr() {
|
|
|
67703
67703
|
return webLoginQrPromise;
|
|
67704
67704
|
}
|
|
67705
67705
|
function loadWebChannel() {
|
|
67706
|
-
webChannelPromise ??= import("./web-
|
|
67706
|
+
webChannelPromise ??= import("./web-Cnqp8qkz.js");
|
|
67707
67707
|
return webChannelPromise;
|
|
67708
67708
|
}
|
|
67709
67709
|
function loadWhatsAppActions() {
|
|
@@ -15,7 +15,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
|
15
15
|
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BNm6G6BO.js";
|
|
16
16
|
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DvIuJV-e.js";
|
|
17
17
|
import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-D7Pne8Yn.js";
|
|
18
|
-
import { S as initializeGlobalHookRunner, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, x as getGlobalHookRunner, y as parseReplyDirectives } from "./deliver-
|
|
18
|
+
import { S as initializeGlobalHookRunner, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, x as getGlobalHookRunner, y as parseReplyDirectives } from "./deliver-B2A1_Ib0.js";
|
|
19
19
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Cvpy6jbf.js";
|
|
20
20
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bu3E4Enn.js";
|
|
21
21
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-cIBPf9IB.js";
|
|
@@ -23,11 +23,11 @@ import { $ as getPairingAdapter, A as extractTelegramLocation, B as normalizeAll
|
|
|
23
23
|
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-CUmS__96.js";
|
|
24
24
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
25
25
|
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BTrsc2pw.js";
|
|
26
|
-
import { $ as mergeAlsoAllowPolicy, A as isTransientHttpError, B as resolveProfile, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as resolveSandboxContext, G as resolveBrowserControlAuth, H as resolveExistingPathsWithinRoot, I as resolveSandboxRuntimeStatus, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as createBrowserRouteContext, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as ensureSandboxWorkspaceForSession, Q as expandPolicyWithPluginGroups, R as registerBrowserRoutes, S as isCompactionFailureError, T as isFailoverErrorMessage, U as getBridgeAuthForPort, V as DEFAULT_UPLOAD_DIR, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isBillingAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIReasoningBlocks, et as stripPluginOnlyAllowlist, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, it as compileGlobPatterns, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as classifyFailoverReason, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as BILLING_ERROR_USER_MESSAGE, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError, z as resolveBrowserConfig } from "./pi-embedded-helpers-
|
|
26
|
+
import { $ as mergeAlsoAllowPolicy, A as isTransientHttpError, B as resolveProfile, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as resolveSandboxContext, G as resolveBrowserControlAuth, H as resolveExistingPathsWithinRoot, I as resolveSandboxRuntimeStatus, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as createBrowserRouteContext, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as ensureSandboxWorkspaceForSession, Q as expandPolicyWithPluginGroups, R as registerBrowserRoutes, S as isCompactionFailureError, T as isFailoverErrorMessage, U as getBridgeAuthForPort, V as DEFAULT_UPLOAD_DIR, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isBillingAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIReasoningBlocks, et as stripPluginOnlyAllowlist, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, it as compileGlobPatterns, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as classifyFailoverReason, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as BILLING_ERROR_USER_MESSAGE, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError, z as resolveBrowserConfig } from "./pi-embedded-helpers-BxjDtTSD.js";
|
|
27
27
|
import { $ as resolveSafeBinProfiles, A as parseConfigPath, B as splitCommandChain, C as isSupportedLocalAvatarExtension, D as setConfigOverride, E as resetConfigOverrides, F as normalizeTrustedSafeBinDirs, G as extractShellWrapperInlineCommand, H as matchAllowlist, I as validateSafeBinArgv, J as unwrapKnownDispatchWrapperInvocation, K as isDispatchWrapperExecutable, L as analyzeShellCommand, M as unsetConfigValueAtPath, N as getTrustedSafeBinDirs, O as unsetConfigOverride, P as isTrustedSafeBinPath, Q as normalizeSafeBinProfileFixtures, R as buildEnforcedShellCommand, S as isPathWithinRoot, T as getConfigOverrides, U as resolveAllowlistCandidatePath, V as DEFAULT_SAFE_BINS, W as resolveCommandResolutionFromArgv, X as splitShellArgs, Y as unwrapKnownShellMultiplexerInvocation, Z as SAFE_BIN_PROFILES, _ as parseDurationMs, a as resolveConfigSnapshotHash, b as isAvatarDataUrl, c as TELEGRAM_COMMAND_NAME_PATTERN, ct as VERSION, et as isSafeExecutableValue, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, it as resolveSlackStreamingMode, j as setConfigValueAtPath, k as getConfigValueAtPath, l as normalizeTelegramCommandName, lt as resolveOwnerDisplaySetting, m as resolveIMessageAttachmentRoots, n as loadConfig, nt as resolveDiscordPreviewStreamMode, o as writeConfigFile, ot as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, q as isShellWrapperExecutable, r as readConfigFileSnapshot, rt as resolveSlackNativeStreaming, s as validateConfigObjectWithPlugins, st as resolveAgentMaxConcurrent, tt as mapStreamingModeToSlackLegacyDraftStreamMode, u as resolveTelegramCustomCommands, w as validateJsonSchemaValue, x as isAvatarHttpUrl, y as AVATAR_MAX_BYTES, z as isWindowsPlatform } from "./config-Brd46Xc7.js";
|
|
28
28
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEffectiveEnableState, n as discoverOpenClawPlugins, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-nhWIJO2d.js";
|
|
29
29
|
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, o as resolveChannelGroupToolsPolicy, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-RaNO1LM5.js";
|
|
30
|
-
import { E as isSecureWebSocketUrl, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, w as rawDataToString } from "./chrome-
|
|
30
|
+
import { E as isSecureWebSocketUrl, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, w as rawDataToString } from "./chrome-C8Z3qDom.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-ueWxHyi3.js";
|
|
32
32
|
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-DCqTXQZl.js";
|
|
33
33
|
import { r as compileSafeRegex, t as redactSensitiveText } from "./redact-CP9noGXi.js";
|
|
@@ -40,7 +40,7 @@ import { a as resolveSessionTranscriptPath, c as resolveSessionTranscriptsDirFor
|
|
|
40
40
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
|
|
41
41
|
import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-BRXaNmBZ.js";
|
|
42
42
|
import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-ZaPrKXBc.js";
|
|
43
|
-
import { C as extractTextFromChatContent, S as isInsideCode, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, w as ensureOpenClawModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-
|
|
43
|
+
import { C as extractTextFromChatContent, S as isInsideCode, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, w as ensureOpenClawModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-Bwz7k77z.js";
|
|
44
44
|
import { n as resolveMemorySearchConfig } from "./manager-gAWsC5kd.js";
|
|
45
45
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-O8zj7G_z.js";
|
|
46
46
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-B6-u0qUc.js";
|
|
@@ -54,7 +54,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DgX2oDXm.js";
|
|
|
54
54
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-B_AT3YGB.js";
|
|
55
55
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-Ba2LNVnK.js";
|
|
56
56
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CQ0kI7S3.js";
|
|
57
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
57
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-yC0M8vBa.js";
|
|
58
58
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BBHdHnVe.js";
|
|
59
59
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BGS2SHjF.js";
|
|
60
60
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-Dyv8T9R5.js";
|
|
@@ -84,7 +84,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
84
84
|
import AjvPkg from "ajv";
|
|
85
85
|
import { createServer } from "node:http";
|
|
86
86
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
87
|
-
import WebSocket, { WebSocket
|
|
87
|
+
import WebSocket$1, { WebSocket } from "ws";
|
|
88
88
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
89
89
|
import { createJiti } from "jiti";
|
|
90
90
|
import { Type } from "@sinclair/typebox";
|
|
@@ -6232,7 +6232,7 @@ var GatewayClient = class {
|
|
|
6232
6232
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
6233
6233
|
});
|
|
6234
6234
|
}
|
|
6235
|
-
this.ws = new WebSocket
|
|
6235
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
6236
6236
|
this.ws.on("open", () => {
|
|
6237
6237
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
6238
6238
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -6424,7 +6424,7 @@ var GatewayClient = class {
|
|
|
6424
6424
|
const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
|
|
6425
6425
|
if (this.connectTimer) clearTimeout(this.connectTimer);
|
|
6426
6426
|
this.connectTimer = setTimeout(() => {
|
|
6427
|
-
if (this.connectSent || this.ws?.readyState !== WebSocket
|
|
6427
|
+
if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
|
|
6428
6428
|
this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
|
|
6429
6429
|
this.ws?.close(1008, "connect challenge timeout");
|
|
6430
6430
|
}, connectChallengeTimeoutMs);
|
|
@@ -6466,7 +6466,7 @@ var GatewayClient = class {
|
|
|
6466
6466
|
return null;
|
|
6467
6467
|
}
|
|
6468
6468
|
async request(method, params, opts) {
|
|
6469
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
6469
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
6470
6470
|
const id = randomUUID();
|
|
6471
6471
|
const frame = {
|
|
6472
6472
|
type: "req",
|
|
@@ -7766,7 +7766,7 @@ async function routeReply(params) {
|
|
|
7766
7766
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7767
7767
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7768
7768
|
try {
|
|
7769
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7769
|
+
const { deliverOutboundPayloads } = await import("./deliver-B2A1_Ib0.js").then((n) => n.n);
|
|
7770
7770
|
return {
|
|
7771
7771
|
ok: true,
|
|
7772
7772
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -41727,7 +41727,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41727
41727
|
return;
|
|
41728
41728
|
}
|
|
41729
41729
|
try {
|
|
41730
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41730
|
+
const { deliverOutboundPayloads } = await import("./deliver-B2A1_Ib0.js").then((n) => n.n);
|
|
41731
41731
|
await deliverOutboundPayloads({
|
|
41732
41732
|
cfg: params.cfg,
|
|
41733
41733
|
channel,
|
|
@@ -45246,7 +45246,7 @@ async function describeStickerImage(params) {
|
|
|
45246
45246
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45247
45247
|
try {
|
|
45248
45248
|
const buffer = await fs$1.readFile(imagePath);
|
|
45249
|
-
const { describeImageWithModel } = await import("./image-
|
|
45249
|
+
const { describeImageWithModel } = await import("./image-Bwz7k77z.js").then((n) => n.n);
|
|
45250
45250
|
return (await describeImageWithModel({
|
|
45251
45251
|
buffer,
|
|
45252
45252
|
fileName: "sticker.webp",
|
|
@@ -47833,7 +47833,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47833
47833
|
let preflightTranscript;
|
|
47834
47834
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47835
47835
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47836
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47836
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-C61PUPM0.js");
|
|
47837
47837
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47838
47838
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47839
47839
|
ctx: {
|
|
@@ -51912,7 +51912,7 @@ function createOutboundSendDepsFromCliSource(deps) {
|
|
|
51912
51912
|
function createDefaultDeps() {
|
|
51913
51913
|
return {
|
|
51914
51914
|
sendMessageWhatsApp: async (...args) => {
|
|
51915
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51915
|
+
const { sendMessageWhatsApp } = await import("./web-CeLmpXQ6.js");
|
|
51916
51916
|
return await sendMessageWhatsApp(...args);
|
|
51917
51917
|
},
|
|
51918
51918
|
sendMessageTelegram: async (...args) => {
|
|
@@ -54851,7 +54851,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
54851
54851
|
super(options);
|
|
54852
54852
|
}
|
|
54853
54853
|
createWebSocket(url) {
|
|
54854
|
-
return new WebSocket(url, { agent });
|
|
54854
|
+
return new WebSocket$1(url, { agent });
|
|
54855
54855
|
}
|
|
54856
54856
|
}
|
|
54857
54857
|
return new ProxyGatewayPlugin();
|
|
@@ -65345,7 +65345,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
65345
65345
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
65346
65346
|
let preflightTranscript;
|
|
65347
65347
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
65348
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
65348
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-C61PUPM0.js");
|
|
65349
65349
|
preflightTranscript = await transcribeFirstAudio({
|
|
65350
65350
|
ctx: {
|
|
65351
65351
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -67701,7 +67701,7 @@ function loadWebLoginQr() {
|
|
|
67701
67701
|
return webLoginQrPromise;
|
|
67702
67702
|
}
|
|
67703
67703
|
function loadWebChannel() {
|
|
67704
|
-
webChannelPromise ??= import("./web-
|
|
67704
|
+
webChannelPromise ??= import("./web-CeLmpXQ6.js");
|
|
67705
67705
|
return webChannelPromise;
|
|
67706
67706
|
}
|
|
67707
67707
|
function loadWhatsAppActions() {
|
|
@@ -8,7 +8,7 @@ import { t as parseBooleanValue } from "./boolean-mcn6kL0s.js";
|
|
|
8
8
|
import { t as generateSecureToken } from "./secure-random-faWesvBQ.js";
|
|
9
9
|
import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-DR7iVy0X.js";
|
|
10
10
|
import { n as loadConfig, o as writeConfigFile, t as createConfigIO } from "./config-DvUlTmaK.js";
|
|
11
|
-
import { A as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, C as stopChromeExtensionRelayServer, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_COLOR, N as DEFAULT_OPENCLAW_BROWSER_ENABLED, O as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, P as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, _ as appendCdpPath, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, i as launchOpenClawChrome, j as DEFAULT_BROWSER_EVALUATE_ENABLED, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchJson, y as fetchOk } from "./chrome-
|
|
11
|
+
import { A as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, C as stopChromeExtensionRelayServer, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_COLOR, N as DEFAULT_OPENCLAW_BROWSER_ENABLED, O as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, P as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, _ as appendCdpPath, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, i as launchOpenClawChrome, j as DEFAULT_BROWSER_EVALUATE_ENABLED, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchJson, y as fetchOk } from "./chrome-D5YOyhL2.js";
|
|
12
12
|
import { t as SsrFBlockedError } from "./ssrf-BM54dmk8.js";
|
|
13
13
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DOKat65v.js";
|
|
14
14
|
import { n as isPathInside, t as isNotFoundPathError } from "./path-guards-5uqoMz3B.js";
|
|
@@ -1204,7 +1204,7 @@ function isModuleNotFoundError(err) {
|
|
|
1204
1204
|
}
|
|
1205
1205
|
async function loadPwAiModule(mode) {
|
|
1206
1206
|
try {
|
|
1207
|
-
return await import("./pw-ai-
|
|
1207
|
+
return await import("./pw-ai-ByboTZko.js");
|
|
1208
1208
|
} catch (err) {
|
|
1209
1209
|
if (mode === "soft") return null;
|
|
1210
1210
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3786,11 +3786,11 @@ function createProfileContext(opts, profile) {
|
|
|
3786
3786
|
const userDataDir = resolveOpenClawUserDataDir(profile.name);
|
|
3787
3787
|
const profileState = getProfileState();
|
|
3788
3788
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3789
|
-
await (await import("./pw-ai-
|
|
3789
|
+
await (await import("./pw-ai-ByboTZko.js")).closePlaywrightBrowserConnection();
|
|
3790
3790
|
} catch {}
|
|
3791
3791
|
if (profileState.running) await stopRunningBrowser();
|
|
3792
3792
|
try {
|
|
3793
|
-
await (await import("./pw-ai-
|
|
3793
|
+
await (await import("./pw-ai-ByboTZko.js")).closePlaywrightBrowserConnection();
|
|
3794
3794
|
} catch {}
|
|
3795
3795
|
if (!fs$1.existsSync(userDataDir)) return {
|
|
3796
3796
|
moved: false,
|
|
@@ -6,7 +6,7 @@ import { n as parseBooleanValue, r as formatCliCommand } from "./env-DC7b5MnK.js
|
|
|
6
6
|
import { t as generateSecureToken } from "./secure-random-D7Pne8Yn.js";
|
|
7
7
|
import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-CUmS__96.js";
|
|
8
8
|
import { n as loadConfig, o as writeConfigFile, t as createConfigIO } from "./config-Brd46Xc7.js";
|
|
9
|
-
import { A as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, C as stopChromeExtensionRelayServer, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_COLOR, N as DEFAULT_OPENCLAW_BROWSER_ENABLED, O as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, P as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, _ as appendCdpPath, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, i as launchOpenClawChrome, j as DEFAULT_BROWSER_EVALUATE_ENABLED, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchJson, y as fetchOk } from "./chrome-
|
|
9
|
+
import { A as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, C as stopChromeExtensionRelayServer, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_COLOR, N as DEFAULT_OPENCLAW_BROWSER_ENABLED, O as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, P as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, S as ensureChromeExtensionRelayServer, T as isLoopbackHost, _ as appendCdpPath, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, i as launchOpenClawChrome, j as DEFAULT_BROWSER_EVALUATE_ENABLED, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchJson, y as fetchOk } from "./chrome-C8Z3qDom.js";
|
|
10
10
|
import { t as SsrFBlockedError } from "./ssrf-ueWxHyi3.js";
|
|
11
11
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DCqTXQZl.js";
|
|
12
12
|
import { n as isPathInside, t as isNotFoundPathError } from "./path-guards-B5JHXmzV.js";
|
|
@@ -1202,7 +1202,7 @@ function isModuleNotFoundError(err) {
|
|
|
1202
1202
|
}
|
|
1203
1203
|
async function loadPwAiModule(mode) {
|
|
1204
1204
|
try {
|
|
1205
|
-
return await import("./pw-ai-
|
|
1205
|
+
return await import("./pw-ai-BZWA5N2u.js");
|
|
1206
1206
|
} catch (err) {
|
|
1207
1207
|
if (mode === "soft") return null;
|
|
1208
1208
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3784,11 +3784,11 @@ function createProfileContext(opts, profile) {
|
|
|
3784
3784
|
const userDataDir = resolveOpenClawUserDataDir(profile.name);
|
|
3785
3785
|
const profileState = getProfileState();
|
|
3786
3786
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3787
|
-
await (await import("./pw-ai-
|
|
3787
|
+
await (await import("./pw-ai-BZWA5N2u.js")).closePlaywrightBrowserConnection();
|
|
3788
3788
|
} catch {}
|
|
3789
3789
|
if (profileState.running) await stopRunningBrowser();
|
|
3790
3790
|
try {
|
|
3791
|
-
await (await import("./pw-ai-
|
|
3791
|
+
await (await import("./pw-ai-BZWA5N2u.js")).closePlaywrightBrowserConnection();
|
|
3792
3792
|
} catch {}
|
|
3793
3793
|
if (!fs.existsSync(userDataDir)) return {
|
|
3794
3794
|
moved: false,
|
|
@@ -6,7 +6,7 @@ import "./github-copilot-token-D8k4aAom.js";
|
|
|
6
6
|
import { r as formatCliCommand } from "./env-DC7b5MnK.js";
|
|
7
7
|
import "./config-Brd46Xc7.js";
|
|
8
8
|
import "./manifest-registry-nhWIJO2d.js";
|
|
9
|
-
import { _ as appendCdpPath, b as getHeadersWithAuth, d as normalizeCdpWsUrl, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, v as fetchJson, x as withCdpSocket } from "./chrome-
|
|
9
|
+
import { _ as appendCdpPath, b as getHeadersWithAuth, d as normalizeCdpWsUrl, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, v as fetchJson, x as withCdpSocket } from "./chrome-C8Z3qDom.js";
|
|
10
10
|
import "./ssrf-ueWxHyi3.js";
|
|
11
11
|
import "./redact-CP9noGXi.js";
|
|
12
12
|
import { n as formatErrorMessage } from "./errors-COPNX9uN.js";
|
|
@@ -8,7 +8,7 @@ import { n as formatCliCommand } from "./env-Bw45uydv.js";
|
|
|
8
8
|
import "./boolean-mcn6kL0s.js";
|
|
9
9
|
import "./config-DvUlTmaK.js";
|
|
10
10
|
import "./manifest-registry-DARtGCWp.js";
|
|
11
|
-
import { _ as appendCdpPath, b as getHeadersWithAuth, d as normalizeCdpWsUrl, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, v as fetchJson, x as withCdpSocket } from "./chrome-
|
|
11
|
+
import { _ as appendCdpPath, b as getHeadersWithAuth, d as normalizeCdpWsUrl, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, v as fetchJson, x as withCdpSocket } from "./chrome-D5YOyhL2.js";
|
|
12
12
|
import "./ssrf-BM54dmk8.js";
|
|
13
13
|
import "./redact-C_vdZ7-E.js";
|
|
14
14
|
import { n as formatErrorMessage } from "./errors-BggFlOL1.js";
|
|
@@ -5,7 +5,7 @@ import { E as resolveApiKeyForProvider, T as requireApiKey, X as resolveOpenClaw
|
|
|
5
5
|
import { t as normalizeChatType } from "./chat-type-C4pAlbsI.js";
|
|
6
6
|
import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-DR7iVy0X.js";
|
|
7
7
|
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-DvUlTmaK.js";
|
|
8
|
-
import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-
|
|
8
|
+
import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-D9XRntUA.js";
|
|
9
9
|
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-DejNVJue.js";
|
|
10
10
|
import { n as fetchWithTimeout } from "./fetch-timeout-DwuL9y6C.js";
|
|
11
11
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-Diq4wbzK.js";
|
|
@@ -4,7 +4,7 @@ import { E as resolveApiKeyForProvider, T as requireApiKey, X as resolveOpenClaw
|
|
|
4
4
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
5
5
|
import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-CUmS__96.js";
|
|
6
6
|
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-Brd46Xc7.js";
|
|
7
|
-
import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-
|
|
7
|
+
import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-Bwz7k77z.js";
|
|
8
8
|
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-Cg8dT8ZL.js";
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-O8zj7G_z.js";
|
|
10
10
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-B6-u0qUc.js";
|
|
@@ -7,13 +7,13 @@ import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createR
|
|
|
7
7
|
import "./github-copilot-token-D8k4aAom.js";
|
|
8
8
|
import { r as formatCliCommand } from "./env-DC7b5MnK.js";
|
|
9
9
|
import "./tokens-DcXIijvb.js";
|
|
10
|
-
import { C as formatInboundEnvelope, D as buildMentionRegexes, E as shouldComputeCommandAuthorized, O as normalizeMentionText, S as resolveInboundDebounceMs, T as hasControlCommand, _ as normalizeGroupActivation, a as resolveMentionGating, b as enqueueSystemEvent, c as recordPendingHistoryEntryIfEnabled, d as warnMissingProviderGroupPolicyFallbackOnce, f as shouldAckReactionForWhatsApp, g as getReplyFromConfig, h as createDedupeCache, i as buildPairingReply, l as resolveDefaultGroupPolicy, n as computeBackoff, o as DEFAULT_GROUP_HISTORY_LIMIT, p as dispatchReplyWithBufferedBlockDispatcher, r as sleepWithAbort, s as buildHistoryContextFromEntries, u as resolveOpenProviderRuntimeGroupPolicy, v as parseActivationCommand, w as resolveEnvelopeFormatOptions, x as createInboundDebouncer, y as formatDurationPrecise } from "./pi-embedded-
|
|
10
|
+
import { C as formatInboundEnvelope, D as buildMentionRegexes, E as shouldComputeCommandAuthorized, O as normalizeMentionText, S as resolveInboundDebounceMs, T as hasControlCommand, _ as normalizeGroupActivation, a as resolveMentionGating, b as enqueueSystemEvent, c as recordPendingHistoryEntryIfEnabled, d as warnMissingProviderGroupPolicyFallbackOnce, f as shouldAckReactionForWhatsApp, g as getReplyFromConfig, h as createDedupeCache, i as buildPairingReply, l as resolveDefaultGroupPolicy, n as computeBackoff, o as DEFAULT_GROUP_HISTORY_LIMIT, p as dispatchReplyWithBufferedBlockDispatcher, r as sleepWithAbort, s as buildHistoryContextFromEntries, u as resolveOpenProviderRuntimeGroupPolicy, v as parseActivationCommand, w as resolveEnvelopeFormatOptions, x as createInboundDebouncer, y as formatDurationPrecise } from "./pi-embedded-CWNyms-S.js";
|
|
11
11
|
import "./plugins-YwGWnhQE.js";
|
|
12
12
|
import { i as logWebSelfId, l as readWebSelfId, n as WA_WEB_AUTH_DIR, p as webAuthExists, r as getWebAuthAgeMs, s as pickWebChannel, t as resolveWhatsAppAccount } from "./accounts-DvzTPeU9.js";
|
|
13
13
|
import "./bindings-oW5ZqVhx.js";
|
|
14
14
|
import "./send-BNm6G6BO.js";
|
|
15
15
|
import "./send-DvIuJV-e.js";
|
|
16
|
-
import "./deliver-
|
|
16
|
+
import "./deliver-B2A1_Ib0.js";
|
|
17
17
|
import "./diagnostic-Cvpy6jbf.js";
|
|
18
18
|
import "./diagnostic-session-state-Bu3E4Enn.js";
|
|
19
19
|
import "./accounts-cIBPf9IB.js";
|
|
@@ -21,11 +21,11 @@ import { G as formatLocationText, J as readChannelAllowFromStore, K as toLocatio
|
|
|
21
21
|
import "./image-ops-CUmS__96.js";
|
|
22
22
|
import "./pi-model-discovery-DaNAekda.js";
|
|
23
23
|
import "./message-channel-BTrsc2pw.js";
|
|
24
|
-
import "./pi-embedded-helpers-
|
|
24
|
+
import "./pi-embedded-helpers-BxjDtTSD.js";
|
|
25
25
|
import { n as loadConfig } from "./config-Brd46Xc7.js";
|
|
26
26
|
import "./manifest-registry-nhWIJO2d.js";
|
|
27
27
|
import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-RaNO1LM5.js";
|
|
28
|
-
import "./chrome-
|
|
28
|
+
import "./chrome-C8Z3qDom.js";
|
|
29
29
|
import "./ssrf-ueWxHyi3.js";
|
|
30
30
|
import "./skills-DCqTXQZl.js";
|
|
31
31
|
import "./redact-CP9noGXi.js";
|
|
@@ -36,7 +36,7 @@ import "./accounts-ru--5lJj.js";
|
|
|
36
36
|
import { l as resolveStorePath } from "./paths-DbuO2gD6.js";
|
|
37
37
|
import "./tool-images-BRXaNmBZ.js";
|
|
38
38
|
import "./thinking-ZaPrKXBc.js";
|
|
39
|
-
import "./image-
|
|
39
|
+
import "./image-Bwz7k77z.js";
|
|
40
40
|
import "./manager-gAWsC5kd.js";
|
|
41
41
|
import "./gemini-auth-Cg8dT8ZL.js";
|
|
42
42
|
import "./fetch-guard-B6-u0qUc.js";
|
|
@@ -51,7 +51,7 @@ import "./render-DwEu-aCr.js";
|
|
|
51
51
|
import "./commands-registry-B_AT3YGB.js";
|
|
52
52
|
import "./skill-commands-Ba2LNVnK.js";
|
|
53
53
|
import { t as finalizeInboundContext } from "./inbound-context-CQ0kI7S3.js";
|
|
54
|
-
import { p as registerUnhandledRejectionHandler } from "./runner-
|
|
54
|
+
import { p as registerUnhandledRejectionHandler } from "./runner-yC0M8vBa.js";
|
|
55
55
|
import "./fetch-BBHdHnVe.js";
|
|
56
56
|
import { n as recordChannelActivity } from "./channel-activity-Dyv8T9R5.js";
|
|
57
57
|
import { t as convertMarkdownTables } from "./tables-WfvRFaDH.js";
|
|
@@ -8,13 +8,13 @@ import "./github-copilot-token-BkwQAVvU.js";
|
|
|
8
8
|
import { n as formatCliCommand } from "./env-Bw45uydv.js";
|
|
9
9
|
import "./boolean-mcn6kL0s.js";
|
|
10
10
|
import "./tokens-BLlPaiD5.js";
|
|
11
|
-
import { A as normalizeMentionText, C as createInboundDebouncer, D as hasControlCommand, E as resolveEnvelopeFormatOptions, O as shouldComputeCommandAuthorized, S as enqueueSystemEvent, T as formatInboundEnvelope, _ as createDedupeCache, b as parseActivationCommand, c as DEFAULT_GROUP_HISTORY_LIMIT, d as resolveDefaultGroupPolicy, f as resolveOpenProviderRuntimeGroupPolicy, h as dispatchReplyWithBufferedBlockDispatcher, k as buildMentionRegexes, l as buildHistoryContextFromEntries, m as shouldAckReactionForWhatsApp, n as computeBackoff, o as buildPairingReply, p as warnMissingProviderGroupPolicyFallbackOnce, r as sleepWithAbort, s as resolveMentionGating, u as recordPendingHistoryEntryIfEnabled, v as getReplyFromConfig, w as resolveInboundDebounceMs, x as formatDurationPrecise, y as normalizeGroupActivation } from "./pi-embedded-
|
|
11
|
+
import { A as normalizeMentionText, C as createInboundDebouncer, D as hasControlCommand, E as resolveEnvelopeFormatOptions, O as shouldComputeCommandAuthorized, S as enqueueSystemEvent, T as formatInboundEnvelope, _ as createDedupeCache, b as parseActivationCommand, c as DEFAULT_GROUP_HISTORY_LIMIT, d as resolveDefaultGroupPolicy, f as resolveOpenProviderRuntimeGroupPolicy, h as dispatchReplyWithBufferedBlockDispatcher, k as buildMentionRegexes, l as buildHistoryContextFromEntries, m as shouldAckReactionForWhatsApp, n as computeBackoff, o as buildPairingReply, p as warnMissingProviderGroupPolicyFallbackOnce, r as sleepWithAbort, s as resolveMentionGating, u as recordPendingHistoryEntryIfEnabled, v as getReplyFromConfig, w as resolveInboundDebounceMs, x as formatDurationPrecise, y as normalizeGroupActivation } from "./pi-embedded-54x4PM3A.js";
|
|
12
12
|
import "./plugins-BlRpkhyC.js";
|
|
13
13
|
import { i as logWebSelfId, l as readWebSelfId, n as WA_WEB_AUTH_DIR, p as webAuthExists, r as getWebAuthAgeMs, s as pickWebChannel, t as resolveWhatsAppAccount } from "./accounts-CxYlEftx.js";
|
|
14
14
|
import "./bindings-BCOutV7A.js";
|
|
15
15
|
import "./send-BF8QfC--.js";
|
|
16
16
|
import "./send-CBl-cFHi.js";
|
|
17
|
-
import "./deliver-
|
|
17
|
+
import "./deliver-i_F6aUuX.js";
|
|
18
18
|
import "./diagnostic-D_de7-KX.js";
|
|
19
19
|
import "./diagnostic-session-state-C0Sxjfox.js";
|
|
20
20
|
import "./accounts-Ci-FogVD.js";
|
|
@@ -22,11 +22,11 @@ import { G as formatLocationText, J as readChannelAllowFromStore, K as toLocatio
|
|
|
22
22
|
import "./image-ops-DR7iVy0X.js";
|
|
23
23
|
import "./pi-model-discovery-C-yOXpma.js";
|
|
24
24
|
import "./message-channel-NXidGUO7.js";
|
|
25
|
-
import "./pi-embedded-helpers-
|
|
25
|
+
import "./pi-embedded-helpers-BdkmD3wR.js";
|
|
26
26
|
import { n as loadConfig } from "./config-DvUlTmaK.js";
|
|
27
27
|
import "./manifest-registry-DARtGCWp.js";
|
|
28
28
|
import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-Devv97xs.js";
|
|
29
|
-
import "./chrome-
|
|
29
|
+
import "./chrome-D5YOyhL2.js";
|
|
30
30
|
import "./ssrf-BM54dmk8.js";
|
|
31
31
|
import "./frontmatter-CYyVkHva.js";
|
|
32
32
|
import "./skills-DOKat65v.js";
|
|
@@ -38,7 +38,7 @@ import "./accounts-DKYigdEx.js";
|
|
|
38
38
|
import { l as resolveStorePath } from "./paths-CLWDvYDE.js";
|
|
39
39
|
import "./tool-images-DeM5viPH.js";
|
|
40
40
|
import "./thinking-CJoHneR6.js";
|
|
41
|
-
import "./image-
|
|
41
|
+
import "./image-D9XRntUA.js";
|
|
42
42
|
import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-Cha4QN8H.js";
|
|
43
43
|
import "./manager-DkvrfiWy.js";
|
|
44
44
|
import "./gemini-auth-DejNVJue.js";
|
|
@@ -54,7 +54,7 @@ import "./render-loap2gRq.js";
|
|
|
54
54
|
import "./commands-registry-CclRtEXd.js";
|
|
55
55
|
import "./skill-commands-6qLPyery.js";
|
|
56
56
|
import { t as finalizeInboundContext } from "./inbound-context-3RiUKgll.js";
|
|
57
|
-
import { p as registerUnhandledRejectionHandler } from "./runner-
|
|
57
|
+
import { p as registerUnhandledRejectionHandler } from "./runner-Bb2G1wrS.js";
|
|
58
58
|
import "./fetch-CSgvhNYZ.js";
|
|
59
59
|
import { n as recordChannelActivity } from "./channel-activity-mEN8_E9p.js";
|
|
60
60
|
import { t as convertMarkdownTables } from "./tables-DV7HmexJ.js";
|
|
@@ -9,6 +9,10 @@ read_when:
|
|
|
9
9
|
|
|
10
10
|
# Prompt caching
|
|
11
11
|
|
|
12
|
+
Prompt caching means the model provider can reuse unchanged prompt prefixes (usually system/developer instructions and other stable context) across turns instead of re-processing them every time. The first matching request writes cache tokens (`cacheWrite`), and later matching requests can read them back (`cacheRead`).
|
|
13
|
+
|
|
14
|
+
Why this matters: lower token cost, faster responses, and more predictable performance for long-running sessions. Without caching, repeated prompts pay the full prompt cost on every turn even when most input did not change.
|
|
15
|
+
|
|
12
16
|
This page covers all cache-related knobs that affect prompt reuse and token cost.
|
|
13
17
|
|
|
14
18
|
For Anthropic pricing details, see:
|
package/package.json
CHANGED