@openclaw/discord 2026.9.4 → 2026.9.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/assets/activity.svg +40 -0
- package/assets/icon.png +0 -0
- package/dist/{account-inspect-BY-ve3yH.js → .setup/account-inspect-BwQj24ht.mjs} +1 -1
- package/dist/{activities-api-w8j7Elou.js → .setup/activities-api-DBwRt5ES.mjs} +93 -31
- package/dist/{api-LIV--eMq.js → .setup/api-CBK9zcq5.mjs} +7 -4
- package/dist/{approval-handler.runtime-BnPUU5NK.js → .setup/approval-handler.runtime-Du3n5ypX.mjs} +8 -7
- package/dist/.setup/approval-message-updates-BN7JtScm.mjs +17 -0
- package/dist/{audit-BgAgIzwo.js → .setup/audit-C8uaKoa9.mjs} +5 -5
- package/dist/{channel-C_OFFR5Y.js → .setup/channel-ChKdlBgH.mjs} +27 -25
- package/dist/{channel-actions.runtime-tShzmemq.js → .setup/channel-actions.runtime-CJmiFfps.mjs} +18 -11
- package/dist/{allow-list-DWEio925.js → .setup/channel-type-DKnjV1XW.mjs} +161 -1
- package/dist/{channel.setup-CpAwAiS0.js → .setup/channel.setup-BlC3-Kzz.mjs} +4 -4
- package/dist/{components-DBFTIN6P.js → .setup/components-MqMWUWnE.mjs} +3 -3
- package/dist/{config-schema-r38UkM_J.js → .setup/config-schema-CiZz-mtA.mjs} +1 -1
- package/dist/{conversation-binding-route-CB9PRqgi.js → .setup/conversation-binding-route-_rz33QHO.mjs} +1 -1
- package/dist/{directory-config-D1uDGbWh.js → .setup/directory-config-BytTftz-.mjs} +2 -2
- package/dist/{directory-live-C5o1uKlw.js → .setup/directory-live--EGTH0DC.mjs} +4 -4
- package/dist/{discord-CmL3ati-.js → .setup/discord-BXpHW-cu.mjs} +89 -39
- package/dist/{doctor-DgKMH6N7.js → .setup/doctor-DxcdkXzz.mjs} +6 -6
- package/dist/{handle-action.guild-admin-CpEwox_X.js → .setup/handle-action.guild-admin-DAFyh_yV.mjs} +9 -4
- package/dist/{live-policy-config-BblutQAq.js → .setup/live-policy-config-eKQ-PLdy.mjs} +1 -1
- package/dist/{message-handler-C7FZGKa8.js → .setup/message-handler-DnUrDpaU.mjs} +23 -13
- package/dist/{message-handler.preflight-DFpwDW2W.js → .setup/message-handler.preflight-CtqaF_fb.mjs} +33 -20
- package/dist/{message-handler.process-ZKrmmA9D.js → .setup/message-handler.process-Dz1xvuQU.mjs} +68 -78
- package/dist/{outbound-adapter-C8PTt7_p.js → .setup/outbound-adapter-C8v79z9Z.mjs} +13 -9
- package/dist/{outbound-session-route-B0N6os97.js → .setup/outbound-session-route-CqWbuMOm.mjs} +137 -11
- package/dist/{pluralkit-BiUW53Yn.js → .setup/pluralkit-CdAt1G0P.mjs} +2 -2
- package/dist/{probe-BcoN44eK.js → .setup/probe-CupW4we4.mjs} +14 -10
- package/dist/{probe.runtime-BnuED0fI.js → .setup/probe.runtime-DBQ_AGPe.mjs} +1 -1
- package/dist/{provider-DmRHCZ_K.js → .setup/provider-72zIvN-i.mjs} +475 -286
- package/dist/{provider-session.runtime-U1M8_EYY.js → .setup/provider-session.runtime-BW7QrF5C.mjs} +4 -4
- package/dist/.setup/provider.runtime-DuhmKdDU.mjs +2 -0
- package/dist/{realtime-session.runtime-Bjsk9Q5t.js → .setup/realtime-session.runtime-DTccTgTM.mjs} +758 -336
- package/dist/{resolve-allowlist-common-ChPf0Qy7.js → .setup/resolve-allowlist-common-CwMBzbx9.mjs} +3 -3
- package/dist/{resolve-channels-VbpLmUS8.js → .setup/resolve-channels-BbvsLQOZ.mjs} +4 -5
- package/dist/{resolve-users-D-wRFsd5.js → .setup/resolve-users-ByFlR7LQ.mjs} +3 -3
- package/dist/{retry-DKeoT7UO.js → .setup/retry-DBfcEgmO.mjs} +28 -6
- package/dist/{runtime-CbknwoBH.js → .setup/runtime-BVoa7hhx.mjs} +2 -2
- package/dist/{runtime-Dxl-ZOvg.js → .setup/runtime-SchNfUsQ.mjs} +92 -139
- package/dist/{security-audit-DKfK-iPY.js → .setup/security-audit-s5w50-Ly.mjs} +1 -1
- package/dist/{security-audit.runtime-sKZyKgpx.js → .setup/security-audit.runtime-DHtYenx9.mjs} +1 -1
- package/dist/{send-CLpzfzJe.js → .setup/send-CKDczUNL.mjs} +60 -31
- package/dist/{send.components-BWnkX4QN.js → .setup/send.components-DWQjXhPV.mjs} +87 -65
- package/dist/{send.outbound-BVTWrl_4.js → .setup/send.outbound-D0hQ7s50.mjs} +17 -7
- package/dist/{send.shared-BHPM3CSl.js → .setup/send.shared-Zwx6BxQ5.mjs} +15 -12
- package/dist/{sender-identity-f3l5OYgV.js → .setup/sender-identity-0Ymgvmaj.mjs} +1 -1
- package/dist/.setup/setup-plugin-api-CINIEBLa.mjs +3 -0
- package/dist/{shared-CPPR0Xo4.js → .setup/shared-CaA3Vv4n.mjs} +11 -11
- package/dist/{subagent-hooks-DfsiwCec.js → .setup/subagent-hooks-Bired9q6.mjs} +16 -4
- package/dist/{system-events-B6HkUhF_.js → .setup/system-events-B2YEEMbS.mjs} +2 -2
- package/dist/{target-resolver-CoFQ7iSX.js → .setup/target-resolver-B6MrxbYv.mjs} +4 -4
- package/dist/.setup/targets-D1mAB5yO.mjs +3 -0
- package/dist/{thread-bindings-uudC_0TY.js → .setup/thread-bindings-CK5272V3.mjs} +6 -6
- package/dist/{thread-bindings.manager-BeUxc8nr.js → .setup/thread-bindings.manager-eexkKyrG.mjs} +14 -9
- package/dist/{thread-bindings.session-updates-BwkXpcy0.js → .setup/thread-bindings.session-updates-DCQq1WZ5.mjs} +1 -1
- package/dist/{thread-bindings.state-dDn-dwBw.js → .setup/thread-bindings.state-BThFQEga.mjs} +46 -14
- package/dist/{transcripts-source-VkgenQv-.js → .setup/transcripts-source-CuWYgayu.mjs} +62 -25
- package/dist/{typing-DuBg1U8Q.js → .setup/typing-BKZL5fGj.mjs} +2 -2
- package/dist/{voice-runtime-DMYDMkJx.js → .setup/voice-runtime-DHVQ2mFz.mjs} +529 -181
- package/dist/account-inspect-api.js +1 -1
- package/dist/action-runtime-api.js +1 -1
- package/dist/activities-api.js +1 -1
- package/dist/api.js +19 -19
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +4 -4
- package/dist/index.js +1 -1
- package/dist/runtime-api.js +22 -22
- package/dist/runtime-setter-api.js +1 -1
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-audit-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/session-key-api.js +1 -1
- package/dist/setup-entry.js +2 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/subagent-hooks-api.js +5 -4
- package/dist/thread-binding-api.js +1 -1
- package/dist/transcripts-source-api.js +1 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/buffer.d.ts +1 -0
- package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
- package/node_modules/@types/node/ffi.d.ts +1 -1
- package/node_modules/@types/node/http.d.ts +1 -1
- package/node_modules/@types/node/package.json +3 -3
- package/node_modules/@types/node/perf_hooks.d.ts +31 -19
- package/node_modules/@types/node/quic.d.ts +6 -4
- package/node_modules/@types/node/stream/web.d.ts +20 -0
- package/node_modules/@types/node/tls.d.ts +26 -15
- package/node_modules/@types/node/vfs.d.ts +7 -6
- package/node_modules/@types/node/zlib.d.ts +17 -0
- package/node_modules/discord-api-types/README.md +3 -2
- package/node_modules/discord-api-types/package.json +46 -46
- package/node_modules/discord-api-types/rest/v10/interactions.d.ts +1 -0
- package/node_modules/discord-api-types/rest/v10/interactions.d.ts.map +1 -1
- package/node_modules/discord-api-types/rest/v9/interactions.d.ts +1 -0
- package/node_modules/discord-api-types/rest/v9/interactions.d.ts.map +1 -1
- package/node_modules/libopus-wasm/CHANGELOG.md +15 -0
- package/node_modules/libopus-wasm/README.md +1 -1
- package/node_modules/libopus-wasm/dist/discordjs.d.ts.map +1 -1
- package/node_modules/libopus-wasm/dist/generated/libopus.generated.mjs +0 -0
- package/node_modules/libopus-wasm/dist/index.d.ts.map +1 -1
- package/node_modules/libopus-wasm/dist/index.js +37 -18
- package/node_modules/libopus-wasm/package.json +13 -13
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/node_modules/undici-types/client.d.ts +8 -3
- package/node_modules/undici-types/connector.d.ts +1 -0
- package/node_modules/undici-types/cookies.d.ts +1 -1
- package/node_modules/undici-types/dispatcher.d.ts +3 -3
- package/node_modules/undici-types/errors.d.ts +10 -0
- package/node_modules/undici-types/fetch.d.ts +5 -1
- package/node_modules/undici-types/handlers.d.ts +2 -0
- package/node_modules/undici-types/interceptors.d.ts +1 -1
- package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici-types/package.json +1 -1
- package/node_modules/undici-types/proxy-agent.d.ts +7 -0
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +3 -4
- package/package.json +10 -8
- package/dist/channel-type-CVLZyGYS.js +0 -7
- package/dist/outbound-components-DrlHcWfM.js +0 -100
- package/dist/provider.runtime-CqfE-RvC.js +0 -2
- package/dist/targets-Cm6aV9nJ.js +0 -3
- package/node_modules/discord-api-types/CHANGELOG.md +0 -2514
- package/node_modules/discord-api-types/scripts/versions.mjs +0 -46
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{accounts-CwJQoLjM.js → .setup/accounts-CwJQoLjM.mjs} +0 -0
- /package/dist/{active-turn-thread-route-fmHl1HNd.js → .setup/active-turn-thread-route-fmHl1HNd.mjs} +0 -0
- /package/dist/{agent-components.runtime-CEPrf2SY.js → .setup/agent-components.runtime-CEPrf2SY.mjs} +0 -0
- /package/dist/{channel-access-C12aDZ0p.js → .setup/channel-access-C12aDZ0p.mjs} +0 -0
- /package/dist/{command-deploy-store-DFkBTViB.js → .setup/command-deploy-store-DFkBTViB.mjs} +0 -0
- /package/dist/{command-owners-D78sAoOz.js → .setup/command-owners-D78sAoOz.mjs} +0 -0
- /package/dist/{doctor-contract-Co5vRCZ6.js → .setup/doctor-contract-Co5vRCZ6.mjs} +0 -0
- /package/dist/{message-handler.history-CJOsN9w5.js → .setup/message-handler.history-CJOsN9w5.mjs} +0 -0
- /package/dist/{model-picker-preference-primitives-BHT1LkR_.js → .setup/model-picker-preference-primitives-BHT1LkR_.mjs} +0 -0
- /package/dist/{preflight-audio-DrnqFA8U.js → .setup/preflight-audio-DrnqFA8U.mjs} +0 -0
- /package/dist/{presence-cache-dYSHPWMx.js → .setup/presence-cache-dYSHPWMx.mjs} +0 -0
- /package/dist/{runtime-DgnVQ7zW.js → .setup/runtime-DgnVQ7zW.mjs} +0 -0
- /package/dist/{secret-config-contract-DFu9hfU8.js → .setup/secret-config-contract-DFu9hfU8.mjs} +0 -0
- /package/dist/{security-contract-DSHk7I2w.js → .setup/security-contract-DSHk7I2w.mjs} +0 -0
- /package/dist/{security-doctor-nGgPm65L.js → .setup/security-doctor-nGgPm65L.mjs} +0 -0
- /package/dist/{session-contract-BO5tlIdl.js → .setup/session-contract-BO5tlIdl.mjs} +0 -0
- /package/dist/{session-key-normalization-wJgsKPNF.js → .setup/session-key-normalization-wJgsKPNF.mjs} +0 -0
- /package/dist/{thread-binding-api-BDZJD4na.js → .setup/thread-binding-api-BDZJD4na.mjs} +0 -0
- /package/dist/{timeouts-D86uWLt_.js → .setup/timeouts-D86uWLt_.mjs} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as isDiscordMutableAllowEntry } from "./security-doctor-nGgPm65L.
|
|
1
|
+
import { t as isDiscordMutableAllowEntry } from "./security-doctor-nGgPm65L.mjs";
|
|
2
2
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { readChannelAllowFromStore } from "openclaw/plugin-sdk/conversation-runtime";
|
|
4
4
|
import { coerceNativeSetting, normalizeAllowFromList } from "openclaw/plugin-sdk/channel-policy";
|
package/dist/{security-audit.runtime-sKZyKgpx.js → .setup/security-audit.runtime-DHtYenx9.mjs}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-
|
|
1
|
+
import { t as collectDiscordSecurityAuditFindings } from "./security-audit-s5w50-Ly.mjs";
|
|
2
2
|
export { collectDiscordSecurityAuditFindings };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { At as
|
|
2
|
-
import {
|
|
3
|
-
import { a as recordDiscordMessageCreateAmbiguity, c as createDiscordSendReceiptFromResults, l as createDiscordSendResult, n as classifyDiscordDeliveryFailure, o as chunkDiscordTextWithMode, r as createDiscordRetryRunner } from "./retry-
|
|
4
|
-
import { C as hasAllGuildPermissionsDiscord, I as resolveDiscordClientAccountContext, K as parseAndResolveChannelRecipient, L as resolveDiscordRest, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, R as DISCORD_REST_TIMEOUT_MS, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, _ as DiscordSendError, b as canViewDiscordGuildChannel, g as DISCORD_MAX_STICKER_BYTES, h as DISCORD_MAX_EVENT_COVER_BYTES, i as formatReactionEmoji, k as resolveDiscordMessageFlags, l as resolveChannelId, m as DISCORD_MAX_EMOJI_BYTES, n as buildDiscordTextChunks, o as normalizeEmojiName, p as sendDiscordText, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, v as canManageGuildMemberRoleDiscord, w as hasAnyChannelPermissionDiscord, x as fetchChannelPermissionsDiscord, y as canManageGuildRoleDiscord } from "./send.shared-
|
|
5
|
-
import { i as prepareDiscordOutboundText, n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-
|
|
6
|
-
import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS } from "./timeouts-D86uWLt_.
|
|
1
|
+
import { At as getGuild, Bt as removeGuildMember, C as withDiscordRequestAuthority, Ct as addGuildMemberRole, Dt as createGuildScheduledEvent, Et as createGuildEmoji, Ft as listGuildEmojis, Ht as timeoutGuildMember, It as listGuildRoles, Lt as listGuildScheduledEvents, Mt as getGuildVoiceState, Nt as listGuildActiveThreads, Ot as createGuildSticker, Pt as listGuildChannels, Rt as moveGuildChannels, S as readRetryAfter, St as unpinChannelMessage, Tt as createGuildChannel, Ut as __exportAll, Vt as removeGuildMemberRole, _ as DiscordError, _t as listChannelMessages, at as deleteOwnMessageReaction, b as readDiscordCode, bt as searchGuildMessages, ct as createThread, dt as editChannel, ft as editChannelMessage, gt as listChannelArchivedThreads, it as createOwnMessageReaction, jt as getGuildMember, kt as deleteChannelPermission, lt as deleteChannel, mt as getChannelMessage, ot as listMessageReactionUsers, pt as getChannel, ut as deleteChannelMessage, v as RateLimitError, vt as listChannelPins, wt as createGuildBan, x as readDiscordMessage, xt as sendChannelTyping, y as isUnknownDiscordVoiceStateError, yt as pinChannelMessage, zt as putChannelPermission } from "./discord-BXpHW-cu.mjs";
|
|
2
|
+
import { D as resolveDiscordEndpointAttachmentGuard, E as getDiscordEndpointRuntime, w as parseDiscordRetryAfterBodySeconds } from "./channel-type-DKnjV1XW.mjs";
|
|
3
|
+
import { a as recordDiscordMessageCreateAmbiguity, c as createDiscordSendReceiptFromResults, d as createReusableDiscordReplyReference, f as resolveDiscordReplyMessageId, l as createDiscordSendResult, n as classifyDiscordDeliveryFailure, o as chunkDiscordTextWithMode, r as createDiscordRetryRunner } from "./retry-DBfcEgmO.mjs";
|
|
4
|
+
import { C as hasAllGuildPermissionsDiscord, I as resolveDiscordClientAccountContext, K as parseAndResolveChannelRecipient, L as resolveDiscordRest, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, R as DISCORD_REST_TIMEOUT_MS, S as fetchMemberGuildPermissionsDiscord, T as hasAnyGuildPermissionDiscord, _ as DiscordSendError, b as canViewDiscordGuildChannel, g as DISCORD_MAX_STICKER_BYTES, h as DISCORD_MAX_EVENT_COVER_BYTES, i as formatReactionEmoji, k as resolveDiscordMessageFlags, l as resolveChannelId, m as DISCORD_MAX_EMOJI_BYTES, n as buildDiscordTextChunks, o as normalizeEmojiName, p as sendDiscordText, r as buildReactionIdentifier, s as normalizeReactionEmoji, t as buildDiscordSendError, v as canManageGuildMemberRoleDiscord, w as hasAnyChannelPermissionDiscord, x as fetchChannelPermissionsDiscord, y as canManageGuildRoleDiscord } from "./send.shared-Zwx6BxQ5.mjs";
|
|
5
|
+
import { i as prepareDiscordOutboundText, n as sendPollDiscord, r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-D0hQ7s50.mjs";
|
|
6
|
+
import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS } from "./timeouts-D86uWLt_.mjs";
|
|
7
7
|
import fs from "node:fs/promises";
|
|
8
8
|
import { ChannelType } from "discord-api-types/v10";
|
|
9
9
|
import crypto from "node:crypto";
|
|
10
10
|
import { parseStrictFiniteNumber, resolveExpiresAtMsFromDurationMs, timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
|
|
11
11
|
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
12
|
-
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
13
|
-
import { readProviderJsonResponse, readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
|
|
14
12
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
13
|
+
import { formatErrorMessage as formatErrorMessage$1 } from "openclaw/plugin-sdk/error-runtime";
|
|
14
|
+
import { readProviderJsonResponse, readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
|
|
15
15
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
16
|
import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
|
|
17
17
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
@@ -270,7 +270,7 @@ function describeDiscordThreadInitialMessageFailure(delivery) {
|
|
|
270
270
|
}
|
|
271
271
|
var DiscordThreadInitialMessageError = class extends Error {
|
|
272
272
|
constructor(thread, error, initialMessageDelivery) {
|
|
273
|
-
const initialMessageError = formatErrorMessage(error);
|
|
273
|
+
const initialMessageError = formatErrorMessage$1(error);
|
|
274
274
|
const initialMessageWarning = describeDiscordThreadInitialMessageFailure(initialMessageDelivery);
|
|
275
275
|
super(`${initialMessageWarning}: ${initialMessageError}`, { cause: error });
|
|
276
276
|
this.name = "DiscordThreadInitialMessageError";
|
|
@@ -449,19 +449,16 @@ async function sendWebhookMessageDiscord(text, opts) {
|
|
|
449
449
|
const webhookId = normalizeOptionalString(opts.webhookId) ?? "";
|
|
450
450
|
const webhookToken = normalizeOptionalString(opts.webhookToken) ?? "";
|
|
451
451
|
if (!webhookId || !webhookToken) throw new Error("Discord webhook id/token are required");
|
|
452
|
-
const
|
|
453
|
-
const messageReference = replyTo ? {
|
|
454
|
-
message_id: replyTo,
|
|
455
|
-
fail_if_not_exists: false
|
|
456
|
-
} : void 0;
|
|
452
|
+
const reply = typeof opts.replyTo === "string" ? createReusableDiscordReplyReference(normalizeOptionalString(opts.replyTo)) : opts.replyTo;
|
|
457
453
|
const { account, proxyFetch } = resolveDiscordClientAccountContext({
|
|
458
454
|
cfg: opts.cfg,
|
|
459
455
|
accountId: opts.accountId
|
|
460
456
|
});
|
|
461
|
-
const { textWithMentions } = prepareDiscordOutboundText(text, {
|
|
457
|
+
const { textWithMentions, textLimit } = prepareDiscordOutboundText(text, {
|
|
462
458
|
cfg: opts.cfg,
|
|
463
459
|
account,
|
|
464
|
-
tableMode: opts.tableMode
|
|
460
|
+
tableMode: opts.tableMode,
|
|
461
|
+
textLimit: opts.chunking?.maxChars
|
|
465
462
|
});
|
|
466
463
|
const flags = resolveDiscordMessageFlags({ suppressEmbeds: resolveDiscordSuppressEmbeds({ configured: account.config.suppressEmbeds }) });
|
|
467
464
|
const threadConversationId = opts.threadId == null ? "" : String(opts.threadId).trim();
|
|
@@ -471,7 +468,9 @@ async function sendWebhookMessageDiscord(text, opts) {
|
|
|
471
468
|
conversationId: threadConversationId,
|
|
472
469
|
sourceId: webhookId
|
|
473
470
|
});
|
|
474
|
-
const
|
|
471
|
+
const endpoint = getDiscordEndpointRuntime();
|
|
472
|
+
const restApiBaseUrl = endpoint?.descriptor.restApiBaseUrl ?? "https://discord.com/api/v10";
|
|
473
|
+
const url = new URL(`${restApiBaseUrl}/webhooks/${encodeURIComponent(webhookId)}/${encodeURIComponent(webhookToken)}`);
|
|
475
474
|
url.searchParams.set("wait", opts.wait === false ? "false" : "true");
|
|
476
475
|
if (opts.threadId != null && opts.threadId !== "") url.searchParams.set("thread_id", String(opts.threadId));
|
|
477
476
|
const deadline = buildTimeoutAbortSignal({
|
|
@@ -479,14 +478,22 @@ async function sendWebhookMessageDiscord(text, opts) {
|
|
|
479
478
|
operation: "discord.webhook.send"
|
|
480
479
|
});
|
|
481
480
|
const request = createDiscordRetryRunner({ signal: deadline.signal });
|
|
482
|
-
const chunks = chunkDiscordTextWithMode(textWithMentions, {
|
|
481
|
+
const chunks = chunkDiscordTextWithMode(textWithMentions, {
|
|
482
|
+
maxChars: textLimit,
|
|
483
|
+
maxLines: opts.chunking ? opts.chunking.maxLines ?? account.config.maxLinesPerMessage : Number.MAX_SAFE_INTEGER
|
|
484
|
+
});
|
|
483
485
|
const results = [];
|
|
484
486
|
try {
|
|
485
487
|
for (const content of chunks.length ? chunks : [""]) {
|
|
488
|
+
const replyTo = resolveDiscordReplyMessageId(reply, results.length === 0);
|
|
489
|
+
const messageReference = replyTo ? {
|
|
490
|
+
message_id: replyTo,
|
|
491
|
+
fail_if_not_exists: false
|
|
492
|
+
} : void 0;
|
|
486
493
|
const response = await request(async () => {
|
|
487
494
|
await opts.onPlatformSendDispatch?.();
|
|
488
495
|
opts.assertPlatformSendAuthorized?.();
|
|
489
|
-
const attemptResponse = await (proxyFetch ?? fetch)(url.toString(), {
|
|
496
|
+
const attemptResponse = await (endpoint?.fetch ?? proxyFetch ?? fetch)(url.toString(), {
|
|
490
497
|
method: "POST",
|
|
491
498
|
headers: { "content-type": "application/json" },
|
|
492
499
|
body: JSON.stringify({
|
|
@@ -517,7 +524,7 @@ async function sendWebhookMessageDiscord(text, opts) {
|
|
|
517
524
|
fallbackChannelId: opts.threadId ? String(opts.threadId) : "",
|
|
518
525
|
kind: "text",
|
|
519
526
|
...opts.threadId != null ? { threadId: opts.threadId } : {},
|
|
520
|
-
|
|
527
|
+
reply: createReusableDiscordReplyReference(replyTo)
|
|
521
528
|
});
|
|
522
529
|
const resultConversationId = result.channelId.trim();
|
|
523
530
|
if (result.messageId && resultConversationId) recordOutboundMessageIdentity({
|
|
@@ -595,7 +602,7 @@ async function getAudioDuration(filePath) {
|
|
|
595
602
|
if (duration === void 0) throw new Error("Could not parse duration");
|
|
596
603
|
return Math.round(duration * 100) / 100;
|
|
597
604
|
} catch (err) {
|
|
598
|
-
const errMessage = formatErrorMessage(err);
|
|
605
|
+
const errMessage = formatErrorMessage$1(err);
|
|
599
606
|
throw new Error(`Failed to get audio duration: ${errMessage}`, { cause: err });
|
|
600
607
|
}
|
|
601
608
|
}
|
|
@@ -726,14 +733,18 @@ async function ensureOggOpus(filePath) {
|
|
|
726
733
|
};
|
|
727
734
|
}
|
|
728
735
|
/**
|
|
729
|
-
*
|
|
736
|
+
* Wait for waveform cleanup before callers can release the audio input.
|
|
730
737
|
*/
|
|
731
738
|
async function getVoiceMessageMetadata(filePath) {
|
|
732
|
-
const
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
739
|
+
const waveform = generateWaveform(filePath);
|
|
740
|
+
try {
|
|
741
|
+
return {
|
|
742
|
+
durationSecs: await getAudioDuration(filePath),
|
|
743
|
+
waveform: await waveform
|
|
744
|
+
};
|
|
745
|
+
} finally {
|
|
746
|
+
await waveform;
|
|
747
|
+
}
|
|
737
748
|
}
|
|
738
749
|
function coerceDiscordErrorBody(raw) {
|
|
739
750
|
if (!raw) return;
|
|
@@ -753,7 +764,8 @@ async function createVoiceRequestError(response, fallbackMessage) {
|
|
|
753
764
|
return new DiscordError(response, parsed ?? { message: fallbackMessage });
|
|
754
765
|
}
|
|
755
766
|
async function requestVoiceUploadUrl(params) {
|
|
756
|
-
const
|
|
767
|
+
const endpoint = params.endpointRuntime;
|
|
768
|
+
const url = `${endpoint?.descriptor.restApiBaseUrl ?? params.rest.options?.baseUrl ?? "https://discord.com/api"}/channels/${params.channelId}/attachments`;
|
|
757
769
|
const uploadUrlInit = {
|
|
758
770
|
method: "POST",
|
|
759
771
|
headers: {
|
|
@@ -766,7 +778,13 @@ async function requestVoiceUploadUrl(params) {
|
|
|
766
778
|
id: "0"
|
|
767
779
|
}] })
|
|
768
780
|
};
|
|
769
|
-
const { response: res, release } =
|
|
781
|
+
const { response: res, release } = endpoint ? {
|
|
782
|
+
response: await endpoint.fetch(url, {
|
|
783
|
+
...uploadUrlInit,
|
|
784
|
+
signal: AbortSignal.timeout(params.rest.options.timeout)
|
|
785
|
+
}),
|
|
786
|
+
release: async () => {}
|
|
787
|
+
} : await fetchWithSsrFGuard({
|
|
770
788
|
url,
|
|
771
789
|
init: uploadUrlInit,
|
|
772
790
|
timeoutMs: params.rest.options.timeout,
|
|
@@ -781,6 +799,7 @@ async function requestVoiceUploadUrl(params) {
|
|
|
781
799
|
}
|
|
782
800
|
}
|
|
783
801
|
async function uploadVoiceAttachment(params) {
|
|
802
|
+
const endpointGuard = resolveDiscordEndpointAttachmentGuard(params.uploadUrl, params.endpointRuntime);
|
|
784
803
|
const { response: uploadResponse, release } = await fetchWithSsrFGuard({
|
|
785
804
|
url: params.uploadUrl,
|
|
786
805
|
init: {
|
|
@@ -789,7 +808,11 @@ async function uploadVoiceAttachment(params) {
|
|
|
789
808
|
body: new Uint8Array(params.audioBuffer)
|
|
790
809
|
},
|
|
791
810
|
timeoutMs: DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS,
|
|
792
|
-
policy: DISCORD_VOICE_UPLOAD_SSRF_POLICY,
|
|
811
|
+
policy: endpointGuard?.policy ?? DISCORD_VOICE_UPLOAD_SSRF_POLICY,
|
|
812
|
+
...endpointGuard ? {
|
|
813
|
+
maxRedirects: endpointGuard.maxRedirects,
|
|
814
|
+
requireHttps: endpointGuard.requireHttps
|
|
815
|
+
} : {},
|
|
793
816
|
auditContext: "discord.voice.attachment-upload"
|
|
794
817
|
});
|
|
795
818
|
try {
|
|
@@ -810,11 +833,13 @@ async function uploadVoiceAttachment(params) {
|
|
|
810
833
|
async function sendDiscordVoiceMessage(rest, channelId, audioBuffer, metadata, replyTo, request, silent, token, onPlatformSendDispatch, assertPlatformSendAuthorized) {
|
|
811
834
|
const filename = "voice-message.ogg";
|
|
812
835
|
const fileSize = audioBuffer.byteLength;
|
|
836
|
+
const endpointRuntime = getDiscordEndpointRuntime() ?? null;
|
|
813
837
|
const botToken = token;
|
|
814
838
|
if (!botToken) throw new Error("Discord bot token is required for voice message upload");
|
|
815
839
|
const { upload_filename } = await request(async () => {
|
|
816
840
|
const uploadUrlResponse = await requestVoiceUploadUrl({
|
|
817
841
|
rest,
|
|
842
|
+
endpointRuntime,
|
|
818
843
|
channelId,
|
|
819
844
|
botToken,
|
|
820
845
|
filename,
|
|
@@ -824,7 +849,8 @@ async function sendDiscordVoiceMessage(rest, channelId, audioBuffer, metadata, r
|
|
|
824
849
|
const attachment = uploadUrlResponse.attachments[0];
|
|
825
850
|
await uploadVoiceAttachment({
|
|
826
851
|
uploadUrl: attachment.upload_url,
|
|
827
|
-
audioBuffer
|
|
852
|
+
audioBuffer,
|
|
853
|
+
endpointRuntime
|
|
828
854
|
});
|
|
829
855
|
return attachment;
|
|
830
856
|
}, "voice-upload");
|
|
@@ -897,6 +923,9 @@ async function withMaterializedVoiceMessageInput(mediaUrl, opts, run) {
|
|
|
897
923
|
* @param opts - Send options
|
|
898
924
|
*/
|
|
899
925
|
async function sendVoiceMessageDiscord(to, audioPath, opts) {
|
|
926
|
+
return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, () => sendVoiceMessageDiscordInternal(to, audioPath, opts));
|
|
927
|
+
}
|
|
928
|
+
async function sendVoiceMessageDiscordInternal(to, audioPath, opts) {
|
|
900
929
|
const cfg = requireRuntimeConfig(opts.cfg, "Discord voice send");
|
|
901
930
|
return await withMaterializedVoiceMessageInput(audioPath, opts, async (localInputPath) => {
|
|
902
931
|
let oggPath = null;
|
|
@@ -1,32 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as buildDiscordComponentMessage, f as buildDiscordComponentMessageFlags, g as resolveDiscordComponentAttachmentName } from "./components-
|
|
3
|
-
import { n as getOptionalDiscordRuntime } from "./runtime-DgnVQ7zW.
|
|
4
|
-
import { l as createDiscordSendResult } from "./retry-
|
|
5
|
-
import { E as SUPPRESS_NOTIFICATIONS_FLAG, K as parseAndResolveChannelRecipient, N as createDiscordClient, O as createDiscordMessageNonce, l as resolveChannelId, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-
|
|
6
|
-
import { t as sendMessageDiscord } from "./send.outbound-
|
|
1
|
+
import { A as serializePayload, C as withDiscordRequestAuthority, Ut as __exportAll, ft as editChannelMessage, st as createChannelMessage } from "./discord-BXpHW-cu.mjs";
|
|
2
|
+
import { d as buildDiscordComponentMessage, f as buildDiscordComponentMessageFlags, g as resolveDiscordComponentAttachmentName } from "./components-MqMWUWnE.mjs";
|
|
3
|
+
import { n as getOptionalDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
|
|
4
|
+
import { l as createDiscordSendResult } from "./retry-DBfcEgmO.mjs";
|
|
5
|
+
import { E as SUPPRESS_NOTIFICATIONS_FLAG, K as parseAndResolveChannelRecipient, N as createDiscordClient, O as createDiscordMessageNonce, l as resolveChannelId, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-Zwx6BxQ5.mjs";
|
|
6
|
+
import { t as sendMessageDiscord } from "./send.outbound-D0hQ7s50.mjs";
|
|
7
7
|
import { ChannelType } from "discord-api-types/v10";
|
|
8
8
|
import { asDateTimestampMs, isFutureDateTimestampMs, resolveDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
|
|
9
|
+
import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
|
|
9
10
|
import { hasNonEmptyString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
10
11
|
import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
|
|
11
12
|
import { extensionForMime } from "openclaw/plugin-sdk/media-mime";
|
|
12
13
|
import { loadOutboundMediaFromUrl } from "openclaw/plugin-sdk/outbound-media";
|
|
13
14
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
14
15
|
import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
|
|
15
|
-
import {
|
|
16
|
+
import { createAsyncLock } from "openclaw/plugin-sdk/async-lock-runtime";
|
|
16
17
|
//#region extensions/discord/src/components-registry-state.ts
|
|
17
18
|
const discordComponentRegistryState = resolveGlobalSingleton(Symbol.for("openclaw.discord.componentRegistryState"), () => ({
|
|
19
|
+
withRegistryLock: createAsyncLock(),
|
|
18
20
|
componentEntries: /* @__PURE__ */ new Map(),
|
|
19
21
|
modalEntries: /* @__PURE__ */ new Map(),
|
|
20
22
|
persistentComponentStore: void 0,
|
|
21
23
|
persistentModalStore: void 0,
|
|
22
24
|
persistentRegistryDisabled: false
|
|
23
|
-
}), (state) => {
|
|
25
|
+
}), (state) => state.withRegistryLock(async () => {
|
|
24
26
|
state.componentEntries.clear();
|
|
25
27
|
state.modalEntries.clear();
|
|
26
28
|
state.persistentComponentStore = void 0;
|
|
27
29
|
state.persistentModalStore = void 0;
|
|
28
30
|
state.persistentRegistryDisabled = false;
|
|
29
|
-
});
|
|
31
|
+
}));
|
|
30
32
|
//#endregion
|
|
31
33
|
//#region extensions/discord/src/components-registry.ts
|
|
32
34
|
const DEFAULT_COMPONENT_TTL_MS = 18e5;
|
|
@@ -130,14 +132,13 @@ function pruneUndefinedRegistryValues(value) {
|
|
|
130
132
|
}
|
|
131
133
|
return result;
|
|
132
134
|
}
|
|
133
|
-
function
|
|
135
|
+
function normalizeRegistryEntries(entries, params) {
|
|
134
136
|
const normalizedEntries = [];
|
|
135
137
|
for (const entry of entries) {
|
|
136
138
|
const normalized = normalizeEntryTimestamps({
|
|
137
139
|
...entry,
|
|
138
140
|
messageId: params.messageId ?? entry.messageId
|
|
139
141
|
}, params.now, params.ttlMs);
|
|
140
|
-
store.set(entry.id, normalized);
|
|
141
142
|
normalizedEntries.push(normalized);
|
|
142
143
|
}
|
|
143
144
|
return normalizedEntries;
|
|
@@ -156,34 +157,41 @@ function readPersistedRegistryEntry(persisted) {
|
|
|
156
157
|
if (persisted?.version !== 1 || typeof persisted.entry?.id !== "string") return null;
|
|
157
158
|
return persisted.entry;
|
|
158
159
|
}
|
|
159
|
-
function registerPersistentRegistryEntries(params) {
|
|
160
|
+
async function registerPersistentRegistryEntries(params) {
|
|
160
161
|
if (params.entries.length === 0) return;
|
|
161
162
|
const store = params.openStore();
|
|
162
163
|
if (!store) return;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
164
|
+
await Promise.all(params.entries.map(async (entry) => {
|
|
165
|
+
try {
|
|
166
|
+
const persistedEntry = pruneUndefinedRegistryValues(entry);
|
|
167
|
+
await store.register(entry.id, {
|
|
168
|
+
version: 1,
|
|
169
|
+
entry: persistedEntry
|
|
170
|
+
}, { ttlMs: params.ttlMs });
|
|
171
|
+
} catch (error) {
|
|
172
|
+
disablePersistentComponentRegistry(error);
|
|
173
|
+
}
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
async function registerPersistentEntries(params) {
|
|
177
|
+
await Promise.all([registerPersistentRegistryEntries({
|
|
173
178
|
entries: params.entries,
|
|
174
179
|
ttlMs: params.ttlMs,
|
|
175
180
|
openStore: getPersistentComponentStore
|
|
176
|
-
})
|
|
177
|
-
registerPersistentRegistryEntries({
|
|
181
|
+
}), registerPersistentRegistryEntries({
|
|
178
182
|
entries: params.modals,
|
|
179
183
|
ttlMs: params.ttlMs,
|
|
180
184
|
openStore: getPersistentModalStore
|
|
181
|
-
});
|
|
185
|
+
})]);
|
|
182
186
|
}
|
|
183
|
-
function deletePersistentEntry(params) {
|
|
187
|
+
async function deletePersistentEntry(params) {
|
|
184
188
|
const store = params.openStore();
|
|
185
189
|
if (!store) return;
|
|
186
|
-
|
|
190
|
+
try {
|
|
191
|
+
await store.delete(params.id);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
disablePersistentComponentRegistry(error);
|
|
194
|
+
}
|
|
187
195
|
}
|
|
188
196
|
function resolveComponentConsumptionIds(entry) {
|
|
189
197
|
if (!entry.consumptionGroupId) return [entry.id];
|
|
@@ -194,10 +202,11 @@ function deleteComponentConsumptionGroup(entry) {
|
|
|
194
202
|
const store = getComponentEntries();
|
|
195
203
|
for (const id of resolveComponentConsumptionIds(entry)) store.delete(id);
|
|
196
204
|
}
|
|
197
|
-
function deletePersistentComponentConsumptionGroup(entry) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
205
|
+
async function deletePersistentComponentConsumptionGroup(entry) {
|
|
206
|
+
await Promise.all(resolveComponentConsumptionIds(entry).map((id) => deletePersistentEntry({
|
|
207
|
+
id,
|
|
208
|
+
openStore: getPersistentComponentStore
|
|
209
|
+
})));
|
|
201
210
|
}
|
|
202
211
|
async function resolvePersistentRegistryEntry(params) {
|
|
203
212
|
const store = params.openStore();
|
|
@@ -212,18 +221,24 @@ async function resolvePersistentRegistryEntry(params) {
|
|
|
212
221
|
function registerDiscordComponentEntries(params) {
|
|
213
222
|
const now = Date.now();
|
|
214
223
|
const ttlMs = params.ttlMs ?? DEFAULT_COMPONENT_TTL_MS;
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
const normalizedEntries = normalizeRegistryEntries(params.entries, {
|
|
225
|
+
now,
|
|
226
|
+
ttlMs,
|
|
227
|
+
messageId: params.messageId
|
|
228
|
+
});
|
|
229
|
+
const normalizedModals = normalizeRegistryEntries(params.modals, {
|
|
230
|
+
now,
|
|
231
|
+
ttlMs,
|
|
232
|
+
messageId: params.messageId
|
|
233
|
+
});
|
|
234
|
+
return discordComponentRegistryState.withRegistryLock(async () => {
|
|
235
|
+
for (const entry of normalizedEntries) getComponentEntries().set(entry.id, entry);
|
|
236
|
+
for (const entry of normalizedModals) getModalEntries().set(entry.id, entry);
|
|
237
|
+
await registerPersistentEntries({
|
|
238
|
+
entries: normalizedEntries,
|
|
239
|
+
modals: normalizedModals,
|
|
240
|
+
ttlMs
|
|
241
|
+
});
|
|
227
242
|
});
|
|
228
243
|
}
|
|
229
244
|
function resolveDiscordComponentEntry(params) {
|
|
@@ -232,33 +247,37 @@ function resolveDiscordComponentEntry(params) {
|
|
|
232
247
|
return entry;
|
|
233
248
|
}
|
|
234
249
|
async function resolveDiscordComponentEntryWithPersistence(params) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
250
|
+
return discordComponentRegistryState.withRegistryLock(async () => {
|
|
251
|
+
const inMemory = resolveDiscordComponentEntry(params);
|
|
252
|
+
if (inMemory) {
|
|
253
|
+
if (params.consume !== false) await deletePersistentComponentConsumptionGroup(inMemory);
|
|
254
|
+
return inMemory;
|
|
255
|
+
}
|
|
256
|
+
const persisted = await resolvePersistentRegistryEntry({
|
|
257
|
+
...params,
|
|
258
|
+
openStore: getPersistentComponentStore
|
|
259
|
+
});
|
|
260
|
+
if (persisted && params.consume !== false) await deletePersistentComponentConsumptionGroup(persisted);
|
|
261
|
+
return persisted;
|
|
243
262
|
});
|
|
244
|
-
if (persisted && params.consume !== false) deletePersistentComponentConsumptionGroup(persisted);
|
|
245
|
-
return persisted;
|
|
246
263
|
}
|
|
247
264
|
function resolveDiscordModalEntry(params) {
|
|
248
265
|
return resolveEntry(getModalEntries(), params);
|
|
249
266
|
}
|
|
250
267
|
async function resolveDiscordModalEntryWithPersistence(params) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
if (
|
|
268
|
+
return discordComponentRegistryState.withRegistryLock(async () => {
|
|
269
|
+
const inMemory = resolveDiscordModalEntry(params);
|
|
270
|
+
if (inMemory) {
|
|
271
|
+
if (params.consume !== false) await deletePersistentEntry({
|
|
272
|
+
...params,
|
|
273
|
+
openStore: getPersistentModalStore
|
|
274
|
+
});
|
|
275
|
+
return inMemory;
|
|
276
|
+
}
|
|
277
|
+
return await resolvePersistentRegistryEntry({
|
|
254
278
|
...params,
|
|
255
279
|
openStore: getPersistentModalStore
|
|
256
280
|
});
|
|
257
|
-
return inMemory;
|
|
258
|
-
}
|
|
259
|
-
return await resolvePersistentRegistryEntry({
|
|
260
|
-
...params,
|
|
261
|
-
openStore: getPersistentModalStore
|
|
262
281
|
});
|
|
263
282
|
}
|
|
264
283
|
//#endregion
|
|
@@ -304,7 +323,7 @@ function resolveClassicDiscordMessage(spec) {
|
|
|
304
323
|
};
|
|
305
324
|
}
|
|
306
325
|
function registerBuiltDiscordComponentMessage(params) {
|
|
307
|
-
registerDiscordComponentEntries({
|
|
326
|
+
return registerDiscordComponentEntries({
|
|
308
327
|
entries: params.buildResult.entries,
|
|
309
328
|
modals: params.buildResult.modals,
|
|
310
329
|
messageId: params.messageId,
|
|
@@ -368,6 +387,9 @@ async function buildDiscordComponentPayload(params) {
|
|
|
368
387
|
};
|
|
369
388
|
}
|
|
370
389
|
async function sendDiscordComponentMessage(to, spec, opts) {
|
|
390
|
+
return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, () => sendDiscordComponentMessageInternal(to, spec, opts));
|
|
391
|
+
}
|
|
392
|
+
async function sendDiscordComponentMessageInternal(to, spec, opts) {
|
|
371
393
|
const classicMessage = opts.mediaUrl ? resolveClassicDiscordMessage(spec) : void 0;
|
|
372
394
|
if (classicMessage) return await sendMessageDiscord(to, classicMessage.text, {
|
|
373
395
|
cfg: opts.cfg,
|
|
@@ -432,7 +454,7 @@ async function sendDiscordComponentMessage(to, spec, opts) {
|
|
|
432
454
|
...opts.reply ? { reply: opts.reply } : {}
|
|
433
455
|
});
|
|
434
456
|
await opts.onDeliveryResult?.(deliveryResult);
|
|
435
|
-
registerBuiltDiscordComponentMessage({
|
|
457
|
+
await registerBuiltDiscordComponentMessage({
|
|
436
458
|
buildResult,
|
|
437
459
|
messageId: result.id,
|
|
438
460
|
ttlMs: resolveDiscordComponentRegistryTtlMs(accountInfo.config)
|
|
@@ -469,7 +491,7 @@ async function editDiscordComponentMessage(to, messageId, spec, opts) {
|
|
|
469
491
|
hasMedia: Boolean(opts.mediaUrl)
|
|
470
492
|
});
|
|
471
493
|
}
|
|
472
|
-
registerBuiltDiscordComponentMessage({
|
|
494
|
+
await registerBuiltDiscordComponentMessage({
|
|
473
495
|
buildResult,
|
|
474
496
|
messageId: result.id ?? messageId,
|
|
475
497
|
ttlMs: resolveDiscordComponentRegistryTtlMs(accountInfo.config)
|
|
@@ -490,4 +512,4 @@ async function editDiscordComponentMessage(to, messageId, spec, opts) {
|
|
|
490
512
|
});
|
|
491
513
|
}
|
|
492
514
|
//#endregion
|
|
493
|
-
export {
|
|
515
|
+
export { registerDiscordComponentEntries as a, send_components_exports as i, registerBuiltDiscordComponentMessage as n, resolveDiscordComponentEntryWithPersistence as o, sendDiscordComponentMessage as r, resolveDiscordModalEntryWithPersistence as s, editDiscordComponentMessage as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as normalizeDiscordHandleKey, o as resolveDiscordDirectoryUserId } from "./directory-live
|
|
3
|
-
import { c as createDiscordSendReceiptFromResults, d as createReusableDiscordReplyReference, l as createDiscordSendResult } from "./retry-
|
|
4
|
-
import { A as resolveDiscordSendComponents, D as buildDiscordMessageRequest, K as parseAndResolveChannelRecipient, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, j as resolveDiscordSendEmbeds, k as resolveDiscordMessageFlags, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-
|
|
1
|
+
import { C as withDiscordRequestAuthority, ct as createThread, st as createChannelMessage } from "./discord-BXpHW-cu.mjs";
|
|
2
|
+
import { i as normalizeDiscordHandleKey, o as resolveDiscordDirectoryUserId } from "./directory-live--EGTH0DC.mjs";
|
|
3
|
+
import { c as createDiscordSendReceiptFromResults, d as createReusableDiscordReplyReference, l as createDiscordSendResult } from "./retry-DBfcEgmO.mjs";
|
|
4
|
+
import { A as resolveDiscordSendComponents, D as buildDiscordMessageRequest, K as parseAndResolveChannelRecipient, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, j as resolveDiscordSendEmbeds, k as resolveDiscordMessageFlags, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-Zwx6BxQ5.mjs";
|
|
5
5
|
import { ChannelType } from "discord-api-types/v10";
|
|
6
6
|
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
7
7
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -382,6 +382,7 @@ function prepareDiscordOutboundText(text, params) {
|
|
|
382
382
|
}));
|
|
383
383
|
return {
|
|
384
384
|
renderedText,
|
|
385
|
+
textLimit: typeof params.textLimit === "number" && Number.isFinite(params.textLimit) ? Math.max(1, Math.min(Math.floor(params.textLimit), 2e3)) : void 0,
|
|
385
386
|
textWithMentions: rewriteDiscordKnownMentions(renderedText, {
|
|
386
387
|
accountId: account.accountId,
|
|
387
388
|
mentionAliases: account.config.mentionAliases
|
|
@@ -447,6 +448,9 @@ async function resolveDiscordSendTarget(to, opts) {
|
|
|
447
448
|
};
|
|
448
449
|
}
|
|
449
450
|
async function sendMessageDiscord(to, text, opts) {
|
|
451
|
+
return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, () => sendMessageDiscordInternal(to, text, opts));
|
|
452
|
+
}
|
|
453
|
+
async function sendMessageDiscordInternal(to, text, opts) {
|
|
450
454
|
const cfg = requireRuntimeConfig(opts.cfg, "Discord send");
|
|
451
455
|
const { token, rest, request, account: accountInfo } = createDiscordClient({
|
|
452
456
|
...opts,
|
|
@@ -458,12 +462,12 @@ async function sendMessageDiscord(to, text, opts) {
|
|
|
458
462
|
configured: accountInfo.config.suppressEmbeds,
|
|
459
463
|
override: opts.suppressEmbeds
|
|
460
464
|
});
|
|
461
|
-
const textLimit = typeof opts.textLimit === "number" && Number.isFinite(opts.textLimit) ? Math.max(1, Math.min(Math.floor(opts.textLimit), 2e3)) : void 0;
|
|
462
465
|
const mediaMaxBytes = typeof accountInfo.config.mediaMaxMb === "number" ? accountInfo.config.mediaMaxMb * 1024 * 1024 : DEFAULT_DISCORD_MEDIA_MAX_MB * 1024 * 1024;
|
|
463
|
-
const { renderedText, textWithMentions } = prepareDiscordOutboundText(text ?? "", {
|
|
466
|
+
const { renderedText, textWithMentions, textLimit } = prepareDiscordOutboundText(text ?? "", {
|
|
464
467
|
cfg,
|
|
465
468
|
account: accountInfo,
|
|
466
|
-
tableMode: opts.tableMode
|
|
469
|
+
tableMode: opts.tableMode,
|
|
470
|
+
textLimit: opts.textLimit
|
|
467
471
|
});
|
|
468
472
|
const recipient = await parseAndResolveChannelRecipient(to, cfg, accountInfo.accountId);
|
|
469
473
|
const { channelId } = await resolveChannelId(rest, recipient, request);
|
|
@@ -683,6 +687,9 @@ async function sendMessageDiscord(to, text, opts) {
|
|
|
683
687
|
};
|
|
684
688
|
}
|
|
685
689
|
async function sendStickerDiscord(to, stickerIds, opts) {
|
|
690
|
+
return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, () => sendStickerDiscordInternal(to, stickerIds, opts));
|
|
691
|
+
}
|
|
692
|
+
async function sendStickerDiscordInternal(to, stickerIds, opts) {
|
|
686
693
|
const context = await resolveDiscordStructuredSendContext(to, opts);
|
|
687
694
|
const { rewrittenContent, suppressEmbeds } = context;
|
|
688
695
|
const stickers = normalizeStickerIds(stickerIds);
|
|
@@ -700,6 +707,9 @@ async function sendStickerDiscord(to, stickerIds, opts) {
|
|
|
700
707
|
return context.send("sticker", body);
|
|
701
708
|
}
|
|
702
709
|
async function sendPollDiscord(to, poll, opts) {
|
|
710
|
+
return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, () => sendPollDiscordInternal(to, poll, opts));
|
|
711
|
+
}
|
|
712
|
+
async function sendPollDiscordInternal(to, poll, opts) {
|
|
703
713
|
const context = await resolveDiscordStructuredSendContext(to, opts);
|
|
704
714
|
const { rewrittenContent, suppressEmbeds } = context;
|
|
705
715
|
if (poll.durationSeconds !== void 0) throw new Error("Discord polls do not support durationSeconds; use durationHours");
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
1
|
+
import { A as serializePayload, At as getGuild, g as RequestClient, ht as getThreadMember, j as Embed, jt as getGuildMember, k as hasDiscordV2Components, nt as createUserDmChannel, pt as getChannel, rt as getCurrentUser, st as createChannelMessage } from "./discord-BXpHW-cu.mjs";
|
|
2
|
+
import { t as isDiscordThreadChannelType } from "./channel-type-DKnjV1XW.mjs";
|
|
3
|
+
import { c as resolveDiscordAccount, m as normalizeDiscordToken, o as mergeDiscordAccountConfig } from "./accounts-CwJQoLjM.mjs";
|
|
4
|
+
import { f as resolveDiscordReplyMessageId, o as chunkDiscordTextWithMode, r as createDiscordRetryRunner } from "./retry-DBfcEgmO.mjs";
|
|
5
|
+
import { t as parseAndResolveDiscordTarget } from "./target-resolver-B6MrxbYv.mjs";
|
|
6
6
|
import { ChannelType, MessageFlags, PermissionFlagsBits } from "discord-api-types/v10";
|
|
7
7
|
import { randomBytes } from "node:crypto";
|
|
8
|
+
import { makeProxyFetch } from "openclaw/plugin-sdk/fetch-runtime";
|
|
8
9
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
9
10
|
import { normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
10
11
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
11
12
|
import { resolveTextChunksWithFallback } from "openclaw/plugin-sdk/reply-payload";
|
|
12
|
-
import { makeProxyFetch } from "openclaw/plugin-sdk/fetch-runtime";
|
|
13
13
|
import { danger } from "openclaw/plugin-sdk/runtime-env";
|
|
14
14
|
import { PollLayoutType } from "discord-api-types/payloads/v10";
|
|
15
15
|
import { buildOutboundMediaLoadOptions, extensionForMime, normalizePollDurationHours, normalizePollInput } from "openclaw/plugin-sdk/media-runtime";
|
|
@@ -474,7 +474,9 @@ async function fetchChannelPermissionsDiscord(channelId, opts) {
|
|
|
474
474
|
const channel = await getChannel(rest, channelId);
|
|
475
475
|
opts.signal?.throwIfAborted();
|
|
476
476
|
const channelType = "type" in channel ? channel.type : void 0;
|
|
477
|
-
const
|
|
477
|
+
const permissionChannel = await resolveChannelPermissionSubject(rest, channel);
|
|
478
|
+
opts.signal?.throwIfAborted();
|
|
479
|
+
const guildId = "guild_id" in permissionChannel ? permissionChannel.guild_id : void 0;
|
|
478
480
|
if (!guildId) return {
|
|
479
481
|
channelId,
|
|
480
482
|
permissions: [],
|
|
@@ -491,7 +493,7 @@ async function fetchChannelPermissionsDiscord(channelId, opts) {
|
|
|
491
493
|
userId: botId,
|
|
492
494
|
guild,
|
|
493
495
|
member,
|
|
494
|
-
channel
|
|
496
|
+
channel: permissionChannel
|
|
495
497
|
});
|
|
496
498
|
return {
|
|
497
499
|
channelId,
|
|
@@ -528,6 +530,9 @@ const DISCORD_CANNOT_DM = 50007;
|
|
|
528
530
|
const DISCORD_UPLOAD_TOO_LARGE = 40005;
|
|
529
531
|
const DISCORD_UPLOAD_TOO_LARGE_STATUS = 413;
|
|
530
532
|
const DISCORD_UPLOAD_TOO_LARGE_NOTICE = "Attachment skipped: Discord rejected the file as too large.";
|
|
533
|
+
function resolveRequiredDiscordSendPermissions(channelType) {
|
|
534
|
+
return isDiscordThreadChannelType(channelType) ? ["ViewChannel", "SendMessagesInThreads"] : ["ViewChannel", "SendMessages"];
|
|
535
|
+
}
|
|
531
536
|
function normalizeReactionEmoji(raw) {
|
|
532
537
|
const trimmed = raw.trim();
|
|
533
538
|
if (!trimmed) throw new Error("emoji required");
|
|
@@ -597,15 +602,13 @@ async function buildDiscordSendError(err, ctx) {
|
|
|
597
602
|
});
|
|
598
603
|
probedChannelType = permissions.channelType;
|
|
599
604
|
const current = new Set(permissions.permissions);
|
|
600
|
-
const required =
|
|
601
|
-
if (isDiscordThreadChannelType(probedChannelType)) required.push("SendMessagesInThreads");
|
|
605
|
+
const required = resolveRequiredDiscordSendPermissions(probedChannelType);
|
|
602
606
|
if (ctx.hasMedia) required.push("AttachFiles");
|
|
603
607
|
missing = required.filter((permission) => !current.has(permission));
|
|
604
608
|
} catch {}
|
|
605
609
|
const status = getDiscordErrorStatus(err);
|
|
606
610
|
const apiDetails = [`code=${code}`, status != null ? `status=${status}` : void 0].filter(Boolean).join(" ");
|
|
607
|
-
const probedPermissions =
|
|
608
|
-
if (isDiscordThreadChannelType(probedChannelType)) probedPermissions.push("SendMessagesInThreads");
|
|
611
|
+
const probedPermissions = resolveRequiredDiscordSendPermissions(probedChannelType);
|
|
609
612
|
if (ctx.hasMedia) probedPermissions.push("AttachFiles");
|
|
610
613
|
const probeSummary = probedPermissions.join("/");
|
|
611
614
|
return new DiscordSendError(`${missing.length ? `discord missing permissions in channel ${ctx.channelId}: ${missing.join(", ")}` : `discord missing permissions in channel ${ctx.channelId}; permission probe did not identify missing ${probeSummary}`} (${apiDetails}). bot might be blocked by channel/thread overrides, archived thread state, reply target visibility, or app-role position`, {
|