@lawpath-tech/openclaw 2026.2.21-3 → 2026.2.21-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agents-DACIOY6e.js → agents-CuMsK_DS.js} +4 -4
- package/dist/{agents.config-CMqaoJds.js → agents.config-BXoIfujZ.js} +1 -1
- package/dist/{agents.config-1H3pmQ3X.js → agents.config-e_xeppAS.js} +1 -1
- package/dist/{audio-preflight-BbLjRB5z.js → audio-preflight-BAupR5wm.js} +4 -4
- package/dist/{audio-preflight-CPOelDjQ.js → audio-preflight-Bgb5ILYG.js} +3 -3
- package/dist/{audio-preflight-e2mShqWy.js → audio-preflight-COZa0IDW.js} +3 -3
- package/dist/{audio-preflight-BcdVhY9A.js → audio-preflight-DSln0Zsg.js} +4 -4
- package/dist/{auth-choice-DXjIdZNV.js → auth-choice-B45xiAZ_.js} +1 -1
- package/dist/{auth-choice-_7eilQuG.js → auth-choice-Cds0pSuL.js} +1 -1
- package/dist/{banner-C_Srx2e4.js → banner-BrBNvO5B.js} +1 -1
- 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/{channel-options-BC4EwIAa.js → channel-options-HIUzORO6.js} +1 -1
- package/dist/{channel-options-C1XZ6wuv.js → channel-options-K4gVRVl0.js} +1 -1
- package/dist/{channel-web-Dqw2Birw.js → channel-web-BhQMRa2x.js} +2 -2
- package/dist/{channels-cli-CZ02_4BX.js → channels-cli-RbZdgktP.js} +8 -8
- package/dist/{channels-cli-COh3Dgcn.js → channels-cli-SwsUfdhN.js} +8 -8
- package/dist/{chrome-CQlDoNNk.js → chrome-CzHty2tf.js} +7 -7
- package/dist/{chrome-HMhmjNaM.js → chrome-_026ohiG.js} +7 -7
- package/dist/{cli-DkGpOXdQ.js → cli-DCtguEMl.js} +5 -5
- package/dist/{cli-CPwJJb6R.js → cli-DZR34VYb.js} +5 -5
- package/dist/{command-registry-D1UpBQsm.js → command-registry-CuwwryVI.js} +9 -9
- package/dist/{completion-cli-CmtJ7Nfl.js → completion-cli-CHvR27lh.js} +2 -2
- package/dist/{completion-cli-Dn0roFg0.js → completion-cli-Cq8iP9Aw.js} +1 -1
- package/dist/{config-cli-6efMnuMu.js → config-cli-BwShV3v6.js} +1 -1
- package/dist/{config-cli-ClI7PyaS.js → config-cli-Ci5S1iD4.js} +1 -1
- package/dist/{configure-Ct8Kh4Y_.js → configure-DPlBhyXy.js} +3 -3
- package/dist/{configure-BY238M3V.js → configure-D_1pz9E3.js} +3 -3
- package/dist/{deliver-DinEoESw.js → deliver-B9BKqp1a.js} +1 -1
- package/dist/{deliver-B3j471em.js → deliver-BQUkAN72.js} +1 -1
- package/dist/{deliver-CBHEFMKU.js → deliver-CChv42uL.js} +1 -1
- package/dist/{deliver-BftA3M2a.js → deliver-IOU5_B6z.js} +1 -1
- package/dist/{doctor-completion-DjlhMMVm.js → doctor-completion-BJIw8vai.js} +1 -1
- package/dist/{doctor-completion-BlRdqi66.js → doctor-completion-BfrgA2mV.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{gateway-cli-I2OTV3t6.js → gateway-cli-BeBfQrbx.js} +13 -13
- package/dist/{gateway-cli-CEgcSQ7Q.js → gateway-cli-yqwgOF3f.js} +13 -13
- package/dist/{health-CvOhkOry.js → health-BTIp89si.js} +2 -2
- package/dist/{health-DDZkmBZm.js → health-CKF0OJ25.js} +2 -2
- package/dist/{hooks-cli-CgkpWHrn.js → hooks-cli-BKn8RjUM.js} +6 -6
- package/dist/{hooks-cli-Dg_9aZD3.js → hooks-cli-Cjs7SuB4.js} +6 -6
- package/dist/{image-BJOYFMbX.js → image-B9TdLqUC.js} +1 -1
- package/dist/{image-VgmUXiDj.js → image-Brqat-9-.js} +1 -1
- package/dist/{image-CtZAwt5G.js → image-CdTrSqaH.js} +1 -1
- package/dist/{image-n4RsTiL-.js → image-SjYLchaS.js} +1 -1
- package/dist/index.js +10 -10
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{models-Blvv1jqt.js → models-C08NQUuO.js} +2 -2
- package/dist/{models-cli-CEHe5QaR.js → models-cli-COXYLQjz.js} +6 -6
- package/dist/{models-cli-DJcP4xmj.js → models-cli-uJJpIivJ.js} +7 -7
- package/dist/{onboard-BiPVfH2i.js → onboard-CnHHrRkg.js} +2 -2
- package/dist/{onboard-BvSlWRy_.js → onboard-D9sqU2kW.js} +2 -2
- package/dist/{onboard-channels-Kh21UhRy.js → onboard-channels-DFdGULvK.js} +1 -1
- package/dist/{onboard-channels-DVCGhYti.js → onboard-channels-FyoGJoRI.js} +1 -1
- package/dist/{onboarding-BlBICx9e.js → onboarding-BMdfhdc1.js} +3 -3
- package/dist/{onboarding-0S32lgTh.js → onboarding-ys5PK2iC.js} +3 -3
- package/dist/{onboarding.finalize-CNm3Z9bJ.js → onboarding.finalize-Czj9rIDx.js} +11 -11
- package/dist/{onboarding.finalize-B4K4VMQZ.js → onboarding.finalize-DGwRmQPQ.js} +10 -10
- package/dist/{pi-embedded-CybcroMl.js → pi-embedded-BFfZiGJD.js} +52 -19
- package/dist/{pi-embedded-B5Wvoi23.js → pi-embedded-CQ9C6y-Z.js} +52 -19
- package/dist/{pi-embedded-helpers-uj4u33AJ.js → pi-embedded-helpers-B5E_Q6LM.js} +6 -0
- package/dist/{pi-embedded-helpers-BOpwqASt.js → pi-embedded-helpers-DChC7Q7D.js} +10 -4
- package/dist/{pi-embedded-helpers-7HA49-yo.js → pi-embedded-helpers-Mzn8kkGx.js} +10 -4
- package/dist/{pi-embedded-helpers-ZMDgzGB5.js → pi-embedded-helpers-oDqv-DiZ.js} +6 -0
- package/dist/{plugin-registry-CD23llsm.js → plugin-registry-Bm3oXtZ_.js} +1 -1
- package/dist/{plugin-registry-DKd5rut1.js → plugin-registry-CbLd0SuX.js} +1 -1
- package/dist/plugin-sdk/{accounts-DUBJHEgi.js → accounts-BcQo4OUu.js} +1 -1
- package/dist/plugin-sdk/{accounts-wSu5JyDM.js → accounts-DEsAwvaZ.js} +1 -1
- package/dist/plugin-sdk/{accounts-Ciwy7Yxd.js → accounts-fnLsjAOi.js} +3 -3
- package/dist/plugin-sdk/{active-listener-Bnau4oiu.js → active-listener-CeaKSm29.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-B_K0lnIZ.js → agent-scope-DSex4wfg.js} +2 -2
- package/dist/plugin-sdk/{api-key-rotation-ubwcEE3L.js → api-key-rotation-DVRFDYWE.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-CLMFtfDb.js → audio-preflight-rT8tAkD-.js} +24 -24
- package/dist/plugin-sdk/{bindings-y5ob6sm3.js → bindings-DeKqzYUw.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-CCnr-9bS.js → channel-activity-WgE8Z4Bb.js} +1 -1
- package/dist/plugin-sdk/{channel-web-BWDwo6em.js → channel-web-BijwJ-sy.js} +22 -22
- package/dist/plugin-sdk/{chrome-BY2jt7nz.js → chrome-CmTDPHBP.js} +3 -3
- package/dist/plugin-sdk/{chunk-DyzO7IVo.js → chunk-CQk9vawA.js} +1 -1
- package/dist/plugin-sdk/{command-format-DcBXOX9Z.js → command-format-DHXa0Clc.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-BlifvuiT.js → commands-registry-lvrJ62DW.js} +4 -4
- package/dist/plugin-sdk/{config-c9LTBVr8.js → config-BT7sZurc.js} +9 -9
- package/dist/plugin-sdk/{deliver-B_b7quq8.js → deliver-CJxTyTAX.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-DKyVS3IK.js → diagnostic-Up1aMyxZ.js} +1 -1
- package/dist/plugin-sdk/{image-NUmwwe5Y.js → image-DN02b1Un.js} +4 -4
- package/dist/plugin-sdk/{image-ops-DvH046F-.js → image-ops-CZqefviF.js} +1 -1
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-CKLBdoDN.js → ir-B7rkHLE2.js} +4 -4
- package/dist/plugin-sdk/{local-roots-Com8GhnT.js → local-roots-BQE1Ebnw.js} +3 -3
- package/dist/plugin-sdk/{login-Bg_WVfHE.js → login-De0S3iEe.js} +7 -7
- package/dist/plugin-sdk/{login-qr-0RXOeFuV.js → login-qr-DbAmVoVd.js} +9 -9
- package/dist/plugin-sdk/{manager-0ITt6KKN.js → manager-NrAHkxhT.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-sgHvjA6E.js → manifest-registry-DvEm2HHf.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-CTgITejf.js → markdown-tables-FPKU-GAf.js} +1 -1
- package/dist/plugin-sdk/{message-channel-DmB4bGFh.js → message-channel-DY9wVB2A.js} +1 -1
- package/dist/plugin-sdk/{model-selection-eaUqWB9v.js → model-selection-D74TGHOt.js} +4 -4
- package/dist/plugin-sdk/{outbound-attachment-DFlJJUUs.js → outbound-attachment-t84PRHhe.js} +2 -2
- package/dist/plugin-sdk/{outbound-YogvVnLx.js → outbound-hovTyykv.js} +7 -7
- package/dist/plugin-sdk/{pi-auth-json-BNYV9v5Z.js → pi-auth-json-3M5ZaNhl.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-Cw48_Bdn.js → pi-embedded-helpers-HEdGJVz9.js} +23 -17
- package/dist/plugin-sdk/{plugins-Bi3zjb1D.js → plugins-a8_TtkpO.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-D17TBpla.js → pw-ai-CBpL2WWS.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-C5jlBI8H.js → qmd-manager-Hv8FbJlj.js} +4 -4
- package/dist/plugin-sdk/{registry-O1yza0Vh.js → registry-DL-33c9X.js} +2 -2
- package/dist/plugin-sdk/{replies-Bi2MUExf.js → replies-BsiP6hrm.js} +3 -3
- package/dist/plugin-sdk/{reply-CWWIp29D.js → reply-7CRdEEVf.js} +114 -81
- package/dist/plugin-sdk/{reply-prefix-D9Vp9XsI.js → reply-prefix-DNtb4_wd.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-4LJSOI03.js → resolve-outbound-target-EACA6DIF.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-DGSGaQkJ.js → resolve-route-Cqj4b_M3.js} +3 -3
- package/dist/plugin-sdk/{retry-JFNwfUew.js → retry-5P3d0rYw.js} +1 -1
- package/dist/plugin-sdk/{runner-Bz2zSQOh.js → runner-CF0Vfhdz.js} +9 -9
- package/dist/plugin-sdk/{send-CuVP5yhW.js → send-4EuOqK3R.js} +7 -7
- package/dist/plugin-sdk/{send-Cy2TYbta.js → send-B3LOEv4r.js} +6 -6
- package/dist/plugin-sdk/{send-e4x0TcgT.js → send-Cz-EZBfd.js} +10 -10
- package/dist/plugin-sdk/{send-iHZz9oKf.js → send-Czuwer1y.js} +6 -6
- package/dist/plugin-sdk/{send-7v9Tg-1N.js → send-jhlw6FJR.js} +10 -10
- package/dist/plugin-sdk/{session-CHV-qoDA.js → session-BjNuud8u.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-uBEgxRtL.js → skill-commands-B5t3dEA3.js} +5 -5
- package/dist/plugin-sdk/{skills-CIpuy3Vv.js → skills-n6vXaMPn.js} +7 -7
- package/dist/plugin-sdk/{sqlite-DUu0dwic.js → sqlite-ulpcowfN.js} +1 -1
- package/dist/plugin-sdk/{store-BVL3fS5q.js → store-CLotPIp_.js} +2 -2
- package/dist/plugin-sdk/{subsystem-C4Rh0kdL.js → subsystem-C9WnrKN8.js} +1 -1
- package/dist/plugin-sdk/{tables-DHwGo-4a.js → tables-7y86aoG1.js} +1 -1
- package/dist/plugin-sdk/{target-errors-DGfjmC5j.js → target-errors-Bu2PpCSS.js} +2 -2
- package/dist/plugin-sdk/{thinking-D3o92jol.js → thinking-b64dDuH9.js} +5 -5
- package/dist/plugin-sdk/{tokens-K9ITCatc.js → tokens-2475WU2Z.js} +1 -1
- package/dist/plugin-sdk/{tool-images-zxFUoVW3.js → tool-images-CbUjCJCh.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-BBRtoox8.js → tool-loop-detection-D0ADW0h2.js} +2 -2
- package/dist/plugin-sdk/web-DbfteoVI.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-DdqYVOos.js → whatsapp-actions-DrC9AVN9.js} +21 -21
- package/dist/{plugins-cli-DHO1IABg.js → plugins-cli-CuZ9yeLM.js} +6 -6
- package/dist/{plugins-cli-Dd1EUb3v.js → plugins-cli-D9kYnV70.js} +6 -6
- package/dist/{program-BpIff9DA.js → program-DnLmcYvI.js} +11 -11
- package/dist/{program-context-lgLWZvCs.js → program-context-BFlDtZ7u.js} +18 -18
- package/dist/{prompt-select-styled-Dc-e3dbo.js → prompt-select-styled-ByfdmSdC.js} +4 -4
- package/dist/{prompt-select-styled-DDqOnKA_.js → prompt-select-styled-vecx8TWe.js} +4 -4
- package/dist/{provider-auth-helpers-Lzfq96dP.js → provider-auth-helpers-CDiCEf5I.js} +1 -1
- package/dist/{provider-auth-helpers-BSbx5FeM.js → provider-auth-helpers-D5aiUDUx.js} +1 -1
- package/dist/{push-apns-BwifEO2b.js → push-apns-CIFN_ehC.js} +1 -1
- package/dist/{push-apns-a74f8XqC.js → push-apns-DnQI6P_1.js} +1 -1
- package/dist/{pw-ai-CgdTTLSx.js → pw-ai-BE9RDOQB.js} +1 -1
- package/dist/{pw-ai-DrpEVs06.js → pw-ai-CpnhdYBs.js} +1 -1
- package/dist/{register.agent-eqOPq5Gd.js → register.agent-BAb4XSav.js} +9 -9
- package/dist/{register.agent-D9MKpOCO.js → register.agent-m9s6Wdxg.js} +10 -10
- package/dist/{register.configure-BGHYShAa.js → register.configure-CH9nyxsf.js} +10 -10
- package/dist/{register.configure-C05cIKKS.js → register.configure-lUHQYgJj.js} +10 -10
- package/dist/{register.maintenance-BmS341L8.js → register.maintenance-BZ5w5uEj.js} +11 -11
- package/dist/{register.maintenance-q9wx5Pl-.js → register.maintenance-D6b4iNV5.js} +12 -12
- package/dist/{register.message-DXyTnwR3.js → register.message-BNwoWgh6.js} +6 -6
- package/dist/{register.message-D0dF6PzF.js → register.message-DrqsD-cs.js} +6 -6
- package/dist/{register.onboard-CtmN2j9k.js → register.onboard-BJC-pkiP.js} +8 -8
- package/dist/{register.onboard-B6lubsmf.js → register.onboard-CWGIbeMt.js} +8 -8
- package/dist/{register.setup-DLc7wuYn.js → register.setup-B2Q7oNUf.js} +8 -8
- package/dist/{register.setup-DtVdBO3N.js → register.setup-Cyy-u_LT.js} +8 -8
- package/dist/{register.status-health-sessions-CUpDWk7b.js → register.status-health-sessions-CbFmRZ23.js} +7 -7
- package/dist/{register.status-health-sessions-Dj6JZlTX.js → register.status-health-sessions-XToqPPob.js} +7 -7
- package/dist/{register.subclis-DFFLQ5_4.js → register.subclis-kiCDYnvk.js} +10 -10
- package/dist/{reply-BY9rD4Ht.js → reply-BLgYvx8K.js} +47 -14
- package/dist/{run-main-CGu5hq5w.js → run-main-ClQN17NG.js} +18 -18
- package/dist/{runner-CMf_wCK1.js → runner-B-q1xy9_.js} +1 -1
- package/dist/{runner-XECyLnFJ.js → runner-B1nTuveb.js} +1 -1
- package/dist/{runner-DbrcHMi-.js → runner-DU6rPdbF.js} +1 -1
- package/dist/{runner-CBXPibkx.js → runner-T-0k0N56.js} +1 -1
- package/dist/{server-node-events-Dl1EGODn.js → server-node-events-CtGYZ4NX.js} +6 -6
- package/dist/{server-node-events-BHo1rJtr.js → server-node-events-D8mdarwc.js} +6 -6
- package/dist/{session-dirs-BHU9ghX6.js → session-dirs-CLp_APkW.js} +1 -1
- package/dist/{session-dirs-B_5JB4s2.js → session-dirs-qa1wz8KY.js} +1 -1
- package/dist/{status-BVBqruUZ.js → status-B0DTmnlx.js} +1 -1
- package/dist/{status-BRULnvDA.js → status-BpU9At8G.js} +1 -1
- package/dist/{status-jqo65p8J.js → status-CUi6ZcuM.js} +2 -2
- package/dist/{status-t76977-D.js → status-DlprmiLH.js} +2 -2
- package/dist/{subagent-registry-h0-RYRm3.js → subagent-registry-DoLtM6tb.js} +47 -14
- package/dist/{tui-CRm0KI_b.js → tui-BE7l4bos.js} +1 -1
- package/dist/{tui-2swRDu6V.js → tui-CtmZFfLN.js} +1 -1
- package/dist/{tui-cli-OWn1wJMv.js → tui-cli-DyU4OHGr.js} +2 -2
- package/dist/{tui-cli-CnPDULYR.js → tui-cli-Dyf9F5_u.js} +2 -2
- package/dist/{update-cli-BU06A3-9.js → update-cli-DDK1P0nj.js} +11 -11
- package/dist/{update-cli-CVZ_0mbB.js → update-cli-eHwjFIY5.js} +12 -12
- package/dist/{web-CmcYQtF5.js → web-BNiJyHah.js} +5 -5
- package/dist/{web-Dm_p_Je3.js → web-DPUOYear.js} +6 -6
- package/dist/{web-AF6_b3ME.js → web-gOkp0QXS.js} +6 -6
- package/dist/{web-CaOnljeW.js → web-w_Wqd8mO.js} +6 -6
- package/package.json +1 -1
- package/dist/plugin-sdk/web-b1hIfesD.js +0 -65
|
@@ -13,7 +13,7 @@ import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
|
|
|
13
13
|
import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BOHIfoCX.js";
|
|
14
14
|
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CcqTwaor.js";
|
|
15
15
|
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CT34cBxw.js";
|
|
16
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
16
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CChv42uL.js";
|
|
17
17
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DriDPU6M.js";
|
|
18
18
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
|
|
19
19
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CQT5u65w.js";
|
|
@@ -23,10 +23,10 @@ import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider
|
|
|
23
23
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Dgb9dAHW.js";
|
|
24
24
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
25
25
|
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-CHYSjmbr.js";
|
|
26
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
26
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-Mzn8kkGx.js";
|
|
27
27
|
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-CScuPNjn.js";
|
|
28
28
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-Dhk4A5vb.js";
|
|
29
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
29
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-_026ohiG.js";
|
|
30
30
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-DgwYCNoi.js";
|
|
31
31
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
|
|
32
32
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
|
|
@@ -37,7 +37,7 @@ import { t as resolveIMessageAccount } from "./accounts-DFrH9IVU.js";
|
|
|
37
37
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BEAbheM8.js";
|
|
38
38
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
|
|
39
39
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-i5cb4-nX.js";
|
|
40
|
-
import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
40
|
+
import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-B9TdLqUC.js";
|
|
41
41
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CssWitTj.js";
|
|
42
42
|
import { n as resolveMemorySearchConfig } from "./manager-CHKGgP5H.js";
|
|
43
43
|
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-C3XxSzBN.js";
|
|
@@ -51,7 +51,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-p6xtdC2E.js";
|
|
|
51
51
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-3kTkR4r1.js";
|
|
52
52
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-BTCEJgtW.js";
|
|
53
53
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
|
|
54
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
54
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-DU6rPdbF.js";
|
|
55
55
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtI0mtzx.js";
|
|
56
56
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
|
|
57
57
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BgsTqLau.js";
|
|
@@ -81,7 +81,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
81
81
|
import AjvPkg from "ajv";
|
|
82
82
|
import { createServer } from "node:http";
|
|
83
83
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
84
|
-
import WebSocket
|
|
84
|
+
import WebSocket, { WebSocket as WebSocket$1 } from "ws";
|
|
85
85
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
86
86
|
import { createJiti } from "jiti";
|
|
87
87
|
import { Type } from "@sinclair/typebox";
|
|
@@ -5715,7 +5715,7 @@ var GatewayClient = class {
|
|
|
5715
5715
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5716
5716
|
});
|
|
5717
5717
|
}
|
|
5718
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
5718
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
5719
5719
|
this.ws.on("open", () => {
|
|
5720
5720
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5721
5721
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -5934,7 +5934,7 @@ var GatewayClient = class {
|
|
|
5934
5934
|
return null;
|
|
5935
5935
|
}
|
|
5936
5936
|
async request(method, params, opts) {
|
|
5937
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
5937
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
5938
5938
|
const id = randomUUID();
|
|
5939
5939
|
const frame = {
|
|
5940
5940
|
type: "req",
|
|
@@ -7198,7 +7198,7 @@ async function routeReply(params) {
|
|
|
7198
7198
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7199
7199
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7200
7200
|
try {
|
|
7201
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7201
|
+
const { deliverOutboundPayloads } = await import("./deliver-CChv42uL.js").then((n) => n.n);
|
|
7202
7202
|
return {
|
|
7203
7203
|
ok: true,
|
|
7204
7204
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -41571,7 +41571,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41571
41571
|
return;
|
|
41572
41572
|
}
|
|
41573
41573
|
try {
|
|
41574
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41574
|
+
const { deliverOutboundPayloads } = await import("./deliver-CChv42uL.js").then((n) => n.n);
|
|
41575
41575
|
await deliverOutboundPayloads({
|
|
41576
41576
|
cfg: params.cfg,
|
|
41577
41577
|
channel,
|
|
@@ -45014,7 +45014,7 @@ async function describeStickerImage(params) {
|
|
|
45014
45014
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45015
45015
|
try {
|
|
45016
45016
|
const buffer = await fs.readFile(imagePath);
|
|
45017
|
-
const { describeImageWithModel } = await import("./image-
|
|
45017
|
+
const { describeImageWithModel } = await import("./image-B9TdLqUC.js").then((n) => n.n);
|
|
45018
45018
|
return (await describeImageWithModel({
|
|
45019
45019
|
buffer,
|
|
45020
45020
|
fileName: "sticker.webp",
|
|
@@ -47475,7 +47475,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47475
47475
|
let preflightTranscript;
|
|
47476
47476
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47477
47477
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47478
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47478
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DSln0Zsg.js");
|
|
47479
47479
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47480
47480
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47481
47481
|
ctx: {
|
|
@@ -51481,7 +51481,7 @@ function isVoiceChannelType(type) {
|
|
|
51481
51481
|
function createDefaultDeps() {
|
|
51482
51482
|
return {
|
|
51483
51483
|
sendMessageWhatsApp: async (...args) => {
|
|
51484
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51484
|
+
const { sendMessageWhatsApp } = await import("./web-DPUOYear.js");
|
|
51485
51485
|
return await sendMessageWhatsApp(...args);
|
|
51486
51486
|
},
|
|
51487
51487
|
sendMessageTelegram: async (...args) => {
|
|
@@ -54394,7 +54394,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
54394
54394
|
super(options);
|
|
54395
54395
|
}
|
|
54396
54396
|
createWebSocket(url) {
|
|
54397
|
-
return new WebSocket
|
|
54397
|
+
return new WebSocket(url, { agent });
|
|
54398
54398
|
}
|
|
54399
54399
|
}
|
|
54400
54400
|
return new ProxyGatewayPlugin();
|
|
@@ -60272,7 +60272,10 @@ function registerSlackMessageEvents(params) {
|
|
|
60272
60272
|
ctx.app.event("app_mention", async ({ event, body }) => {
|
|
60273
60273
|
try {
|
|
60274
60274
|
if (ctx.shouldDropMismatchedSlackEvent(body)) return;
|
|
60275
|
-
|
|
60275
|
+
const mention = event;
|
|
60276
|
+
const channelType = mention.channel_type;
|
|
60277
|
+
if (channelType === "im" || channelType === "mpim") return;
|
|
60278
|
+
await handleSlackMessage(mention, {
|
|
60276
60279
|
source: "app_mention",
|
|
60277
60280
|
wasMentioned: true
|
|
60278
60281
|
});
|
|
@@ -61808,6 +61811,11 @@ function createSlackThreadTsResolver(params) {
|
|
|
61808
61811
|
|
|
61809
61812
|
//#endregion
|
|
61810
61813
|
//#region src/slack/monitor/message-handler.ts
|
|
61814
|
+
const APP_MENTION_RETRY_TTL_MS = 6e4;
|
|
61815
|
+
function buildSeenMessageKey(channelId, ts) {
|
|
61816
|
+
if (!channelId || !ts) return null;
|
|
61817
|
+
return `${channelId}:${ts}`;
|
|
61818
|
+
}
|
|
61811
61819
|
function createSlackMessageHandler(params) {
|
|
61812
61820
|
const { ctx, account } = params;
|
|
61813
61821
|
const debounceMs = resolveInboundDebounceMs({
|
|
@@ -61815,6 +61823,21 @@ function createSlackMessageHandler(params) {
|
|
|
61815
61823
|
channel: "slack"
|
|
61816
61824
|
});
|
|
61817
61825
|
const threadTsResolver = createSlackThreadTsResolver({ client: ctx.app.client });
|
|
61826
|
+
const appMentionRetryKeys = /* @__PURE__ */ new Map();
|
|
61827
|
+
const pruneAppMentionRetryKeys = (now) => {
|
|
61828
|
+
for (const [key, expiresAt] of appMentionRetryKeys) if (expiresAt <= now) appMentionRetryKeys.delete(key);
|
|
61829
|
+
};
|
|
61830
|
+
const rememberAppMentionRetryKey = (key) => {
|
|
61831
|
+
const now = Date.now();
|
|
61832
|
+
pruneAppMentionRetryKeys(now);
|
|
61833
|
+
appMentionRetryKeys.set(key, now + APP_MENTION_RETRY_TTL_MS);
|
|
61834
|
+
};
|
|
61835
|
+
const consumeAppMentionRetryKey = (key) => {
|
|
61836
|
+
pruneAppMentionRetryKeys(Date.now());
|
|
61837
|
+
if (!appMentionRetryKeys.has(key)) return false;
|
|
61838
|
+
appMentionRetryKeys.delete(key);
|
|
61839
|
+
return true;
|
|
61840
|
+
};
|
|
61818
61841
|
const debouncer = createInboundDebouncer({
|
|
61819
61842
|
debounceMs,
|
|
61820
61843
|
buildKey: (entry) => {
|
|
@@ -61847,7 +61870,14 @@ function createSlackMessageHandler(params) {
|
|
|
61847
61870
|
wasMentioned: combinedMentioned || last.opts.wasMentioned
|
|
61848
61871
|
}
|
|
61849
61872
|
});
|
|
61850
|
-
|
|
61873
|
+
const seenMessageKey = buildSeenMessageKey(last.message.channel, last.message.ts);
|
|
61874
|
+
if (!prepared) {
|
|
61875
|
+
const hasMessageSource = entries.some((entry) => entry.opts.source === "message");
|
|
61876
|
+
const hasAppMentionSource = entries.some((entry) => entry.opts.source === "app_mention");
|
|
61877
|
+
if (seenMessageKey && hasMessageSource && !hasAppMentionSource) rememberAppMentionRetryKey(seenMessageKey);
|
|
61878
|
+
return;
|
|
61879
|
+
}
|
|
61880
|
+
if (seenMessageKey) appMentionRetryKeys.delete(seenMessageKey);
|
|
61851
61881
|
if (entries.length > 1) {
|
|
61852
61882
|
const ids = entries.map((entry) => entry.message.ts).filter(Boolean);
|
|
61853
61883
|
if (ids.length > 0) {
|
|
@@ -61865,7 +61895,10 @@ function createSlackMessageHandler(params) {
|
|
|
61865
61895
|
return async (message, opts) => {
|
|
61866
61896
|
if (opts.source === "message" && message.type !== "message") return;
|
|
61867
61897
|
if (opts.source === "message" && message.subtype && message.subtype !== "file_share" && message.subtype !== "bot_message") return;
|
|
61868
|
-
|
|
61898
|
+
const seenMessageKey = buildSeenMessageKey(message.channel, message.ts);
|
|
61899
|
+
if (seenMessageKey && ctx.markMessageSeen(message.channel, message.ts)) {
|
|
61900
|
+
if (opts.source !== "app_mention" || !consumeAppMentionRetryKey(seenMessageKey)) return;
|
|
61901
|
+
}
|
|
61869
61902
|
const resolvedMessage = await threadTsResolver.resolve({
|
|
61870
61903
|
message,
|
|
61871
61904
|
source: opts.source
|
|
@@ -64612,7 +64645,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
64612
64645
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
64613
64646
|
let preflightTranscript;
|
|
64614
64647
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
64615
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
64648
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DSln0Zsg.js");
|
|
64616
64649
|
preflightTranscript = await transcribeFirstAudio({
|
|
64617
64650
|
ctx: {
|
|
64618
64651
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -66769,7 +66802,7 @@ function loadWebLoginQr() {
|
|
|
66769
66802
|
return webLoginQrPromise;
|
|
66770
66803
|
}
|
|
66771
66804
|
function loadWebChannel() {
|
|
66772
|
-
webChannelPromise ??= import("./web-
|
|
66805
|
+
webChannelPromise ??= import("./web-DPUOYear.js");
|
|
66773
66806
|
return webChannelPromise;
|
|
66774
66807
|
}
|
|
66775
66808
|
function loadWhatsAppActions() {
|
|
@@ -14,7 +14,7 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
|
|
|
14
14
|
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-BsjxpNXQ.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-D1GKazZn.js";
|
|
17
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
17
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-IOU5_B6z.js";
|
|
18
18
|
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-DzmNBZt3.js";
|
|
19
19
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
|
|
20
20
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-sr0G5UOe.js";
|
|
@@ -22,10 +22,10 @@ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normali
|
|
|
22
22
|
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-BeOUcAOd.js";
|
|
23
23
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
|
|
24
24
|
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-DNOtJsL1.js";
|
|
25
|
-
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
25
|
+
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DChC7Q7D.js";
|
|
26
26
|
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-C85nzIjh.js";
|
|
27
27
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverOpenClawPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-sze5OW-s.js";
|
|
28
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
28
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CzHty2tf.js";
|
|
29
29
|
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-bbEUyqus.js";
|
|
30
30
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
@@ -36,7 +36,7 @@ import { t as resolveIMessageAccount } from "./accounts-DAZL5b5o.js";
|
|
|
36
36
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-5iQF9bSz.js";
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
38
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-f7oxThxw.js";
|
|
39
|
-
import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
39
|
+
import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CdTrSqaH.js";
|
|
40
40
|
import { n as resolveMemorySearchConfig } from "./manager-D7kT1deX.js";
|
|
41
41
|
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-CmTvWxxq.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-CFbmOHr4.js";
|
|
@@ -49,7 +49,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-5uiHLoM8.js";
|
|
|
49
49
|
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-DdjWqy3T.js";
|
|
50
50
|
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-Dj_WV-Re.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
|
|
52
|
-
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-
|
|
52
|
+
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-B-q1xy9_.js";
|
|
53
53
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BMa0enEg.js";
|
|
54
54
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
|
|
55
55
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-7fb2OxTV.js";
|
|
@@ -79,7 +79,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
79
79
|
import AjvPkg from "ajv";
|
|
80
80
|
import { createServer } from "node:http";
|
|
81
81
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
82
|
-
import WebSocket, { WebSocket
|
|
82
|
+
import WebSocket$1, { WebSocket } from "ws";
|
|
83
83
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
84
84
|
import { createJiti } from "jiti";
|
|
85
85
|
import { Type } from "@sinclair/typebox";
|
|
@@ -5713,7 +5713,7 @@ var GatewayClient = class {
|
|
|
5713
5713
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5714
5714
|
});
|
|
5715
5715
|
}
|
|
5716
|
-
this.ws = new WebSocket
|
|
5716
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
5717
5717
|
this.ws.on("open", () => {
|
|
5718
5718
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5719
5719
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -5932,7 +5932,7 @@ var GatewayClient = class {
|
|
|
5932
5932
|
return null;
|
|
5933
5933
|
}
|
|
5934
5934
|
async request(method, params, opts) {
|
|
5935
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
5935
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
5936
5936
|
const id = randomUUID();
|
|
5937
5937
|
const frame = {
|
|
5938
5938
|
type: "req",
|
|
@@ -7196,7 +7196,7 @@ async function routeReply(params) {
|
|
|
7196
7196
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7197
7197
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7198
7198
|
try {
|
|
7199
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7199
|
+
const { deliverOutboundPayloads } = await import("./deliver-IOU5_B6z.js").then((n) => n.n);
|
|
7200
7200
|
return {
|
|
7201
7201
|
ok: true,
|
|
7202
7202
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -41569,7 +41569,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41569
41569
|
return;
|
|
41570
41570
|
}
|
|
41571
41571
|
try {
|
|
41572
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41572
|
+
const { deliverOutboundPayloads } = await import("./deliver-IOU5_B6z.js").then((n) => n.n);
|
|
41573
41573
|
await deliverOutboundPayloads({
|
|
41574
41574
|
cfg: params.cfg,
|
|
41575
41575
|
channel,
|
|
@@ -45012,7 +45012,7 @@ async function describeStickerImage(params) {
|
|
|
45012
45012
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45013
45013
|
try {
|
|
45014
45014
|
const buffer = await fs$1.readFile(imagePath);
|
|
45015
|
-
const { describeImageWithModel } = await import("./image-
|
|
45015
|
+
const { describeImageWithModel } = await import("./image-CdTrSqaH.js").then((n) => n.n);
|
|
45016
45016
|
return (await describeImageWithModel({
|
|
45017
45017
|
buffer,
|
|
45018
45018
|
fileName: "sticker.webp",
|
|
@@ -47473,7 +47473,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47473
47473
|
let preflightTranscript;
|
|
47474
47474
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47475
47475
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47476
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47476
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BAupR5wm.js");
|
|
47477
47477
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47478
47478
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47479
47479
|
ctx: {
|
|
@@ -51479,7 +51479,7 @@ function isVoiceChannelType(type) {
|
|
|
51479
51479
|
function createDefaultDeps() {
|
|
51480
51480
|
return {
|
|
51481
51481
|
sendMessageWhatsApp: async (...args) => {
|
|
51482
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51482
|
+
const { sendMessageWhatsApp } = await import("./web-gOkp0QXS.js");
|
|
51483
51483
|
return await sendMessageWhatsApp(...args);
|
|
51484
51484
|
},
|
|
51485
51485
|
sendMessageTelegram: async (...args) => {
|
|
@@ -54392,7 +54392,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
54392
54392
|
super(options);
|
|
54393
54393
|
}
|
|
54394
54394
|
createWebSocket(url) {
|
|
54395
|
-
return new WebSocket(url, { agent });
|
|
54395
|
+
return new WebSocket$1(url, { agent });
|
|
54396
54396
|
}
|
|
54397
54397
|
}
|
|
54398
54398
|
return new ProxyGatewayPlugin();
|
|
@@ -60270,7 +60270,10 @@ function registerSlackMessageEvents(params) {
|
|
|
60270
60270
|
ctx.app.event("app_mention", async ({ event, body }) => {
|
|
60271
60271
|
try {
|
|
60272
60272
|
if (ctx.shouldDropMismatchedSlackEvent(body)) return;
|
|
60273
|
-
|
|
60273
|
+
const mention = event;
|
|
60274
|
+
const channelType = mention.channel_type;
|
|
60275
|
+
if (channelType === "im" || channelType === "mpim") return;
|
|
60276
|
+
await handleSlackMessage(mention, {
|
|
60274
60277
|
source: "app_mention",
|
|
60275
60278
|
wasMentioned: true
|
|
60276
60279
|
});
|
|
@@ -61806,6 +61809,11 @@ function createSlackThreadTsResolver(params) {
|
|
|
61806
61809
|
|
|
61807
61810
|
//#endregion
|
|
61808
61811
|
//#region src/slack/monitor/message-handler.ts
|
|
61812
|
+
const APP_MENTION_RETRY_TTL_MS = 6e4;
|
|
61813
|
+
function buildSeenMessageKey(channelId, ts) {
|
|
61814
|
+
if (!channelId || !ts) return null;
|
|
61815
|
+
return `${channelId}:${ts}`;
|
|
61816
|
+
}
|
|
61809
61817
|
function createSlackMessageHandler(params) {
|
|
61810
61818
|
const { ctx, account } = params;
|
|
61811
61819
|
const debounceMs = resolveInboundDebounceMs({
|
|
@@ -61813,6 +61821,21 @@ function createSlackMessageHandler(params) {
|
|
|
61813
61821
|
channel: "slack"
|
|
61814
61822
|
});
|
|
61815
61823
|
const threadTsResolver = createSlackThreadTsResolver({ client: ctx.app.client });
|
|
61824
|
+
const appMentionRetryKeys = /* @__PURE__ */ new Map();
|
|
61825
|
+
const pruneAppMentionRetryKeys = (now) => {
|
|
61826
|
+
for (const [key, expiresAt] of appMentionRetryKeys) if (expiresAt <= now) appMentionRetryKeys.delete(key);
|
|
61827
|
+
};
|
|
61828
|
+
const rememberAppMentionRetryKey = (key) => {
|
|
61829
|
+
const now = Date.now();
|
|
61830
|
+
pruneAppMentionRetryKeys(now);
|
|
61831
|
+
appMentionRetryKeys.set(key, now + APP_MENTION_RETRY_TTL_MS);
|
|
61832
|
+
};
|
|
61833
|
+
const consumeAppMentionRetryKey = (key) => {
|
|
61834
|
+
pruneAppMentionRetryKeys(Date.now());
|
|
61835
|
+
if (!appMentionRetryKeys.has(key)) return false;
|
|
61836
|
+
appMentionRetryKeys.delete(key);
|
|
61837
|
+
return true;
|
|
61838
|
+
};
|
|
61816
61839
|
const debouncer = createInboundDebouncer({
|
|
61817
61840
|
debounceMs,
|
|
61818
61841
|
buildKey: (entry) => {
|
|
@@ -61845,7 +61868,14 @@ function createSlackMessageHandler(params) {
|
|
|
61845
61868
|
wasMentioned: combinedMentioned || last.opts.wasMentioned
|
|
61846
61869
|
}
|
|
61847
61870
|
});
|
|
61848
|
-
|
|
61871
|
+
const seenMessageKey = buildSeenMessageKey(last.message.channel, last.message.ts);
|
|
61872
|
+
if (!prepared) {
|
|
61873
|
+
const hasMessageSource = entries.some((entry) => entry.opts.source === "message");
|
|
61874
|
+
const hasAppMentionSource = entries.some((entry) => entry.opts.source === "app_mention");
|
|
61875
|
+
if (seenMessageKey && hasMessageSource && !hasAppMentionSource) rememberAppMentionRetryKey(seenMessageKey);
|
|
61876
|
+
return;
|
|
61877
|
+
}
|
|
61878
|
+
if (seenMessageKey) appMentionRetryKeys.delete(seenMessageKey);
|
|
61849
61879
|
if (entries.length > 1) {
|
|
61850
61880
|
const ids = entries.map((entry) => entry.message.ts).filter(Boolean);
|
|
61851
61881
|
if (ids.length > 0) {
|
|
@@ -61863,7 +61893,10 @@ function createSlackMessageHandler(params) {
|
|
|
61863
61893
|
return async (message, opts) => {
|
|
61864
61894
|
if (opts.source === "message" && message.type !== "message") return;
|
|
61865
61895
|
if (opts.source === "message" && message.subtype && message.subtype !== "file_share" && message.subtype !== "bot_message") return;
|
|
61866
|
-
|
|
61896
|
+
const seenMessageKey = buildSeenMessageKey(message.channel, message.ts);
|
|
61897
|
+
if (seenMessageKey && ctx.markMessageSeen(message.channel, message.ts)) {
|
|
61898
|
+
if (opts.source !== "app_mention" || !consumeAppMentionRetryKey(seenMessageKey)) return;
|
|
61899
|
+
}
|
|
61867
61900
|
const resolvedMessage = await threadTsResolver.resolve({
|
|
61868
61901
|
message,
|
|
61869
61902
|
source: opts.source
|
|
@@ -64610,7 +64643,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
64610
64643
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
64611
64644
|
let preflightTranscript;
|
|
64612
64645
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
64613
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
64646
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BAupR5wm.js");
|
|
64614
64647
|
preflightTranscript = await transcribeFirstAudio({
|
|
64615
64648
|
ctx: {
|
|
64616
64649
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -66767,7 +66800,7 @@ function loadWebLoginQr() {
|
|
|
66767
66800
|
return webLoginQrPromise;
|
|
66768
66801
|
}
|
|
66769
66802
|
function loadWebChannel() {
|
|
66770
|
-
webChannelPromise ??= import("./web-
|
|
66803
|
+
webChannelPromise ??= import("./web-gOkp0QXS.js");
|
|
66771
66804
|
return webChannelPromise;
|
|
66772
66805
|
}
|
|
66773
66806
|
function loadWhatsAppActions() {
|
|
@@ -552,6 +552,11 @@ function isAuthErrorMessage(raw) {
|
|
|
552
552
|
function isOverloadedErrorMessage(raw) {
|
|
553
553
|
return matchesErrorPatterns(raw, ERROR_PATTERNS.overloaded);
|
|
554
554
|
}
|
|
555
|
+
function isJsonApiInternalServerError(raw) {
|
|
556
|
+
if (!raw) return false;
|
|
557
|
+
const value = raw.toLowerCase();
|
|
558
|
+
return value.includes("\"type\":\"api_error\"") && value.includes("internal server error");
|
|
559
|
+
}
|
|
555
560
|
function parseImageDimensionError(raw) {
|
|
556
561
|
if (!raw) return null;
|
|
557
562
|
if (!raw.toLowerCase().includes("image dimensions exceed max allowed size")) return null;
|
|
@@ -601,6 +606,7 @@ function classifyFailoverReason(raw) {
|
|
|
601
606
|
if (isImageSizeError(raw)) return null;
|
|
602
607
|
if (isModelNotFoundErrorMessage(raw)) return "model_not_found";
|
|
603
608
|
if (isTransientHttpError(raw)) return "timeout";
|
|
609
|
+
if (isJsonApiInternalServerError(raw)) return "timeout";
|
|
604
610
|
if (isRateLimitErrorMessage(raw)) return "rate_limit";
|
|
605
611
|
if (isOverloadedErrorMessage(raw)) return "rate_limit";
|
|
606
612
|
if (isCloudCodeAssistFormatError(raw)) return "format";
|
|
@@ -10,7 +10,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
|
10
10
|
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-BeOUcAOd.js";
|
|
11
11
|
import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-DNOtJsL1.js";
|
|
12
12
|
import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-C85nzIjh.js";
|
|
13
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
13
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CzHty2tf.js";
|
|
14
14
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-bbEUyqus.js";
|
|
15
15
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
|
|
16
16
|
import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
@@ -931,7 +931,7 @@ function isModuleNotFoundError(err) {
|
|
|
931
931
|
}
|
|
932
932
|
async function loadPwAiModule(mode) {
|
|
933
933
|
try {
|
|
934
|
-
return await import("./pw-ai-
|
|
934
|
+
return await import("./pw-ai-CpnhdYBs.js");
|
|
935
935
|
} catch (err) {
|
|
936
936
|
if (mode === "soft") return null;
|
|
937
937
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3471,11 +3471,11 @@ function createProfileContext(opts, profile) {
|
|
|
3471
3471
|
const userDataDir = resolveOpenClawUserDataDir(profile.name);
|
|
3472
3472
|
const profileState = getProfileState();
|
|
3473
3473
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3474
|
-
await (await import("./pw-ai-
|
|
3474
|
+
await (await import("./pw-ai-CpnhdYBs.js")).closePlaywrightBrowserConnection();
|
|
3475
3475
|
} catch {}
|
|
3476
3476
|
if (profileState.running) await stopRunningBrowser();
|
|
3477
3477
|
try {
|
|
3478
|
-
await (await import("./pw-ai-
|
|
3478
|
+
await (await import("./pw-ai-CpnhdYBs.js")).closePlaywrightBrowserConnection();
|
|
3479
3479
|
} catch {}
|
|
3480
3480
|
if (!fs.existsSync(userDataDir)) return {
|
|
3481
3481
|
moved: false,
|
|
@@ -7249,6 +7249,11 @@ function isAuthErrorMessage(raw) {
|
|
|
7249
7249
|
function isOverloadedErrorMessage(raw) {
|
|
7250
7250
|
return matchesErrorPatterns(raw, ERROR_PATTERNS.overloaded);
|
|
7251
7251
|
}
|
|
7252
|
+
function isJsonApiInternalServerError(raw) {
|
|
7253
|
+
if (!raw) return false;
|
|
7254
|
+
const value = raw.toLowerCase();
|
|
7255
|
+
return value.includes("\"type\":\"api_error\"") && value.includes("internal server error");
|
|
7256
|
+
}
|
|
7252
7257
|
function parseImageDimensionError(raw) {
|
|
7253
7258
|
if (!raw) return null;
|
|
7254
7259
|
if (!raw.toLowerCase().includes("image dimensions exceed max allowed size")) return null;
|
|
@@ -7298,6 +7303,7 @@ function classifyFailoverReason(raw) {
|
|
|
7298
7303
|
if (isImageSizeError(raw)) return null;
|
|
7299
7304
|
if (isModelNotFoundErrorMessage(raw)) return "model_not_found";
|
|
7300
7305
|
if (isTransientHttpError(raw)) return "timeout";
|
|
7306
|
+
if (isJsonApiInternalServerError(raw)) return "timeout";
|
|
7301
7307
|
if (isRateLimitErrorMessage(raw)) return "rate_limit";
|
|
7302
7308
|
if (isOverloadedErrorMessage(raw)) return "rate_limit";
|
|
7303
7309
|
if (isCloudCodeAssistFormatError(raw)) return "format";
|
|
@@ -12,7 +12,7 @@ import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n a
|
|
|
12
12
|
import { S as isPidAlive, x as resolveProcessScopedMap } from "./model-auth-3yb_4VXX.js";
|
|
13
13
|
import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-CHYSjmbr.js";
|
|
14
14
|
import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-CScuPNjn.js";
|
|
15
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
15
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_OPENCLAW_BROWSER_ENABLED, N as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveOpenClawUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchOpenClawChrome, j as DEFAULT_OPENCLAW_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopOpenClawChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-_026ohiG.js";
|
|
16
16
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DgwYCNoi.js";
|
|
17
17
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BoQgnc8X.js";
|
|
18
18
|
import { t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
|
|
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
|
|
|
933
933
|
}
|
|
934
934
|
async function loadPwAiModule(mode) {
|
|
935
935
|
try {
|
|
936
|
-
return await import("./pw-ai-
|
|
936
|
+
return await import("./pw-ai-BE9RDOQB.js");
|
|
937
937
|
} catch (err) {
|
|
938
938
|
if (mode === "soft") return null;
|
|
939
939
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
|
|
|
3473
3473
|
const userDataDir = resolveOpenClawUserDataDir(profile.name);
|
|
3474
3474
|
const profileState = getProfileState();
|
|
3475
3475
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3476
|
-
await (await import("./pw-ai-
|
|
3476
|
+
await (await import("./pw-ai-BE9RDOQB.js")).closePlaywrightBrowserConnection();
|
|
3477
3477
|
} catch {}
|
|
3478
3478
|
if (profileState.running) await stopRunningBrowser();
|
|
3479
3479
|
try {
|
|
3480
|
-
await (await import("./pw-ai-
|
|
3480
|
+
await (await import("./pw-ai-BE9RDOQB.js")).closePlaywrightBrowserConnection();
|
|
3481
3481
|
} catch {}
|
|
3482
3482
|
if (!fs$1.existsSync(userDataDir)) return {
|
|
3483
3483
|
moved: false,
|
|
@@ -7246,6 +7246,11 @@ function isAuthErrorMessage(raw) {
|
|
|
7246
7246
|
function isOverloadedErrorMessage(raw) {
|
|
7247
7247
|
return matchesErrorPatterns(raw, ERROR_PATTERNS.overloaded);
|
|
7248
7248
|
}
|
|
7249
|
+
function isJsonApiInternalServerError(raw) {
|
|
7250
|
+
if (!raw) return false;
|
|
7251
|
+
const value = raw.toLowerCase();
|
|
7252
|
+
return value.includes("\"type\":\"api_error\"") && value.includes("internal server error");
|
|
7253
|
+
}
|
|
7249
7254
|
function parseImageDimensionError(raw) {
|
|
7250
7255
|
if (!raw) return null;
|
|
7251
7256
|
if (!raw.toLowerCase().includes("image dimensions exceed max allowed size")) return null;
|
|
@@ -7295,6 +7300,7 @@ function classifyFailoverReason(raw) {
|
|
|
7295
7300
|
if (isImageSizeError(raw)) return null;
|
|
7296
7301
|
if (isModelNotFoundErrorMessage(raw)) return "model_not_found";
|
|
7297
7302
|
if (isTransientHttpError(raw)) return "timeout";
|
|
7303
|
+
if (isJsonApiInternalServerError(raw)) return "timeout";
|
|
7298
7304
|
if (isRateLimitErrorMessage(raw)) return "rate_limit";
|
|
7299
7305
|
if (isOverloadedErrorMessage(raw)) return "rate_limit";
|
|
7300
7306
|
if (isCloudCodeAssistFormatError(raw)) return "format";
|
|
@@ -552,6 +552,11 @@ function isAuthErrorMessage(raw) {
|
|
|
552
552
|
function isOverloadedErrorMessage(raw) {
|
|
553
553
|
return matchesErrorPatterns(raw, ERROR_PATTERNS.overloaded);
|
|
554
554
|
}
|
|
555
|
+
function isJsonApiInternalServerError(raw) {
|
|
556
|
+
if (!raw) return false;
|
|
557
|
+
const value = raw.toLowerCase();
|
|
558
|
+
return value.includes("\"type\":\"api_error\"") && value.includes("internal server error");
|
|
559
|
+
}
|
|
555
560
|
function parseImageDimensionError(raw) {
|
|
556
561
|
if (!raw) return null;
|
|
557
562
|
if (!raw.toLowerCase().includes("image dimensions exceed max allowed size")) return null;
|
|
@@ -601,6 +606,7 @@ function classifyFailoverReason(raw) {
|
|
|
601
606
|
if (isImageSizeError(raw)) return null;
|
|
602
607
|
if (isModelNotFoundErrorMessage(raw)) return "model_not_found";
|
|
603
608
|
if (isTransientHttpError(raw)) return "timeout";
|
|
609
|
+
if (isJsonApiInternalServerError(raw)) return "timeout";
|
|
604
610
|
if (isRateLimitErrorMessage(raw)) return "rate_limit";
|
|
605
611
|
if (isOverloadedErrorMessage(raw)) return "rate_limit";
|
|
606
612
|
if (isCloudCodeAssistFormatError(raw)) return "format";
|