@openclaw/discord 2026.9.5 → 2026.9.7
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/icon.png +0 -0
- package/dist/.setup/{account-inspect-BwQj24ht.mjs → account-inspect-De8hOUxG.mjs} +1 -1
- package/dist/.setup/{accounts-CwJQoLjM.mjs → accounts-ChaMcixG.mjs} +1 -4
- package/dist/.setup/{activities-api-DBwRt5ES.mjs → activities-api-tvbsU2e3.mjs} +38 -66
- package/dist/.setup/{api-CBK9zcq5.mjs → api-DVbJwZVt.mjs} +10 -2
- package/dist/.setup/{approval-handler.runtime-Du3n5ypX.mjs → approval-handler.runtime-DxCK2Rux.mjs} +49 -125
- package/dist/.setup/{approval-message-updates-BN7JtScm.mjs → approval-message-updates-BKFqavHZ.mjs} +2 -2
- package/dist/.setup/{audit-C8uaKoa9.mjs → audit-CLg9I71N.mjs} +5 -5
- package/dist/.setup/{channel-ChKdlBgH.mjs → channel-DxlUVU9t.mjs} +125 -228
- package/dist/.setup/{channel-type-DKnjV1XW.mjs → channel-type-DRCrEMss.mjs} +22 -22
- package/dist/.setup/{channel.setup-BlC3-Kzz.mjs → channel.setup-CRo1GjV7.mjs} +6 -9
- package/dist/.setup/{components-MqMWUWnE.mjs → components-Cq1PvIpN.mjs} +42 -71
- package/dist/.setup/{config-schema-CiZz-mtA.mjs → config-schema-oxELUSDx.mjs} +19 -44
- package/dist/.setup/{conversation-binding-route-_rz33QHO.mjs → conversation-binding-route-Caz_XuFH.mjs} +14 -6
- package/dist/.setup/{directory-config-BytTftz-.mjs → directory-config-esqNn0Eo.mjs} +6 -9
- package/dist/.setup/{directory-live--EGTH0DC.mjs → directory-live-DtKRHuGV.mjs} +6 -12
- package/dist/.setup/{discord-BXpHW-cu.mjs → discord-0xJYfdDD.mjs} +82 -386
- package/dist/.setup/{doctor-DxcdkXzz.mjs → doctor-BCl1H5tl.mjs} +21 -36
- package/dist/.setup/{doctor-contract-Co5vRCZ6.mjs → doctor-contract-CvvgwrrG.mjs} +41 -50
- package/dist/.setup/{channel-actions.runtime-CJmiFfps.mjs → handle-action-CUvQWnE7.mjs} +74 -105
- package/dist/.setup/{handle-action.guild-admin-DAFyh_yV.mjs → handle-action.guild-admin-Df-8gVle.mjs} +63 -121
- package/dist/.setup/{live-policy-config-eKQ-PLdy.mjs → live-policy-config-8Pv20CHc.mjs} +2 -3
- package/dist/.setup/{message-handler-DnUrDpaU.mjs → message-handler-B-Jk4oDk.mjs} +18 -93
- package/dist/.setup/message-handler.preflight-pluralkit-CWLUBVcx.mjs +141 -0
- package/dist/.setup/{message-handler.preflight-CtqaF_fb.mjs → message-handler.preflight-v-__NSDq.mjs} +73 -287
- package/dist/.setup/{message-handler.process-Dz1xvuQU.mjs → message-handler.process-BNFFuChn.mjs} +423 -374
- package/dist/.setup/{outbound-adapter-C8v79z9Z.mjs → outbound-adapter-BobT-kse.mjs} +105 -19
- package/dist/.setup/{outbound-session-route-CqWbuMOm.mjs → outbound-session-route-zVGxxceg.mjs} +142 -109
- package/dist/.setup/{pluralkit-CdAt1G0P.mjs → pluralkit-a6_NLfH9.mjs} +1 -1
- package/dist/.setup/{preflight-audio-DrnqFA8U.mjs → preflight-audio-DHGIHEpv.mjs} +2 -1
- package/dist/.setup/{presence-cache-dYSHPWMx.mjs → presence-cache-Di3H3DIU.mjs} +0 -4
- package/dist/.setup/{probe-CupW4we4.mjs → probe-LYrIHlBF.mjs} +13 -4
- package/dist/.setup/{provider-72zIvN-i.mjs → provider-B_G5hASF.mjs} +1112 -1668
- package/dist/.setup/provider-session.runtime-BYlTBFD2.mjs +6 -0
- package/dist/.setup/provider.runtime-CUE3UxER.mjs +2 -0
- package/dist/.setup/{realtime-session.runtime-DTccTgTM.mjs → realtime-session.runtime-oUd9DOcz.mjs} +372 -345
- package/dist/.setup/receive-recovery-CHPOsnLc.mjs +514 -0
- package/dist/.setup/{resolve-allowlist-common-CwMBzbx9.mjs → resolve-allowlist-common-DPdRggu5.mjs} +4 -7
- package/dist/.setup/{resolve-channels-BbvsLQOZ.mjs → resolve-channels-BFPNRmVv.mjs} +21 -40
- package/dist/.setup/{resolve-users-ByFlR7LQ.mjs → resolve-users-0-aBuCy3.mjs} +4 -4
- package/dist/.setup/{retry-DBfcEgmO.mjs → retry-pz_cSha2.mjs} +81 -16
- package/dist/.setup/rolldown-runtime-B4FMCO8f.mjs +28 -0
- package/dist/.setup/{runtime-SchNfUsQ.mjs → runtime-FN000lxA.mjs} +83 -166
- package/dist/.setup/runtime-doctor-migrations-CshUGl36.mjs +159 -0
- package/dist/.setup/{runtime-BVoa7hhx.mjs → runtime-sUksZ--Q.mjs} +2 -5
- package/dist/.setup/{secret-config-contract-DFu9hfU8.mjs → secret-config-contract-uOE2J7yM.mjs} +15 -85
- package/dist/.setup/{security-audit-s5w50-Ly.mjs → security-audit-Cdaegq7C.mjs} +3 -1
- package/dist/.setup/{send-CKDczUNL.mjs → send-CrfEI6Bs.mjs} +73 -114
- package/dist/.setup/{send.components-DWQjXhPV.mjs → send.components-DxQAMfES.mjs} +62 -107
- package/dist/.setup/{send.outbound-D0hQ7s50.mjs → send.outbound-BISKnb-a.mjs} +79 -154
- package/dist/.setup/{send.shared-Zwx6BxQ5.mjs → send.shared-DGFkbkQR.mjs} +10 -25
- package/dist/.setup/{sender-identity-0Ymgvmaj.mjs → sender-identity-B9X5Vb9R.mjs} +2 -3
- package/dist/.setup/setup-plugin-api-BQUBxbhe.mjs +3 -0
- package/dist/.setup/{shared-CaA3Vv4n.mjs → shared-B3wZ4hN-.mjs} +25 -32
- package/dist/.setup/{subagent-hooks-Bired9q6.mjs → subagent-hooks-nlUE9ow7.mjs} +5 -6
- package/dist/.setup/system-events-CdeZnvPV.mjs +33 -0
- package/dist/.setup/{target-resolver-B6MrxbYv.mjs → target-resolver-BuLapkhy.mjs} +9 -12
- package/dist/.setup/targets-0KUcEIYx.mjs +3 -0
- package/dist/.setup/{thread-bindings-CK5272V3.mjs → thread-bindings-D7TfgjR_.mjs} +33 -35
- package/dist/.setup/thread-bindings.manager-DN-NissX.mjs +819 -0
- package/dist/.setup/thread-bindings.session-updates-CshfKghV.mjs +359 -0
- package/dist/.setup/{thread-bindings.state-BThFQEga.mjs → thread-bindings.state-g6v9zAym.mjs} +21 -62
- package/dist/.setup/{transcripts-source-CuWYgayu.mjs → transcripts-source-p8EV179h.mjs} +133 -238
- package/dist/.setup/{typing-BKZL5fGj.mjs → typing-BiHCzBRu.mjs} +2 -1
- package/dist/.setup/{voice-runtime-DHVQ2mFz.mjs → voice-runtime-B46rcwrG.mjs} +633 -1085
- 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 +18 -18
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-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 +20 -20
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-audit-contract-api.js +1 -1
- package/dist/setup-entry.js +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/src/voice/audio-worker.runtime.js +1056 -0
- package/dist/subagent-hooks-api.js +3 -4
- package/dist/transcripts-source-api.js +1 -1
- package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.cjs +8 -4
- package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.js +8 -4
- package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +1 -1
- package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +770 -695
- package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +3 -2
- package/node_modules/@napi-rs/wasm-runtime/package.json +1 -1
- package/node_modules/@tybys/wasm-util/LICENSE +21 -0
- package/node_modules/@tybys/wasm-util/package.json +1 -1
- package/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@types/node/package.json +2 -17
- package/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/typebox/build/compile/code.mjs +1 -2
- package/node_modules/typebox/build/compile/validator.mjs +5 -1
- package/node_modules/typebox/build/format/iri.mjs +16 -9
- package/node_modules/typebox/build/guard/emit.mjs +2 -2
- package/node_modules/typebox/build/guard/guard.d.mts +7 -5
- package/node_modules/typebox/build/guard/guard.mjs +14 -9
- package/node_modules/typebox/build/guard/index.mjs +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
- package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
- package/node_modules/typebox/build/schema/build.mjs +2 -3
- package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
- package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
- package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
- package/node_modules/typebox/build/schema/parse.mjs +3 -0
- package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
- package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
- package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
- package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
- package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
- package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
- package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
- package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
- package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
- package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +3 -1
- package/node_modules/zod/README.md +2 -2
- package/node_modules/zod/compile.cjs +19 -0
- package/node_modules/zod/index.cjs +19 -0
- package/node_modules/zod/locales/index.cjs +19 -0
- package/node_modules/zod/mini/index.cjs +19 -0
- package/node_modules/zod/package.json +8 -7
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
- package/node_modules/zod/src/v4/classic/external.ts +2 -0
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
- package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
- package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
- package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
- package/node_modules/zod/src/v4/core/api.ts +44 -28
- package/node_modules/zod/src/v4/core/checks.ts +62 -102
- package/node_modules/zod/src/v4/core/compile.ts +218 -93
- package/node_modules/zod/src/v4/core/core.ts +1 -3
- package/node_modules/zod/src/v4/core/doc.ts +6 -2
- package/node_modules/zod/src/v4/core/errors.ts +3 -6
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
- package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
- package/node_modules/zod/src/v4/core/parse.ts +37 -16
- package/node_modules/zod/src/v4/core/regexes.ts +14 -4
- package/node_modules/zod/src/v4/core/schemas.ts +296 -132
- package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
- package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
- package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
- package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
- package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
- package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
- package/node_modules/zod/src/v4/core/util.ts +218 -147
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/locales/ar.ts +2 -0
- package/node_modules/zod/src/v4/locales/az.ts +2 -0
- package/node_modules/zod/src/v4/locales/be.ts +2 -0
- package/node_modules/zod/src/v4/locales/bg.ts +2 -0
- package/node_modules/zod/src/v4/locales/bn.ts +2 -0
- package/node_modules/zod/src/v4/locales/ca.ts +2 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
- package/node_modules/zod/src/v4/locales/cs.ts +2 -0
- package/node_modules/zod/src/v4/locales/da.ts +2 -0
- package/node_modules/zod/src/v4/locales/de.ts +2 -0
- package/node_modules/zod/src/v4/locales/el.ts +2 -0
- package/node_modules/zod/src/v4/locales/en.ts +2 -0
- package/node_modules/zod/src/v4/locales/eo.ts +2 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +2 -0
- package/node_modules/zod/src/v4/locales/fi.ts +2 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
- package/node_modules/zod/src/v4/locales/fr.ts +2 -0
- package/node_modules/zod/src/v4/locales/gu.ts +2 -0
- package/node_modules/zod/src/v4/locales/he.ts +2 -0
- package/node_modules/zod/src/v4/locales/hi.ts +2 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +2 -0
- package/node_modules/zod/src/v4/locales/hy.ts +2 -0
- package/node_modules/zod/src/v4/locales/id.ts +2 -0
- package/node_modules/zod/src/v4/locales/index.ts +1 -0
- package/node_modules/zod/src/v4/locales/is.ts +2 -0
- package/node_modules/zod/src/v4/locales/it.ts +2 -0
- package/node_modules/zod/src/v4/locales/ja.ts +2 -0
- package/node_modules/zod/src/v4/locales/ka.ts +2 -0
- package/node_modules/zod/src/v4/locales/km.ts +2 -0
- package/node_modules/zod/src/v4/locales/kn.ts +2 -0
- package/node_modules/zod/src/v4/locales/ko.ts +2 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +2 -0
- package/node_modules/zod/src/v4/locales/ms.ts +2 -0
- package/node_modules/zod/src/v4/locales/ne.ts +2 -0
- package/node_modules/zod/src/v4/locales/nl.ts +2 -0
- package/node_modules/zod/src/v4/locales/nn.ts +2 -0
- package/node_modules/zod/src/v4/locales/no.ts +2 -0
- package/node_modules/zod/src/v4/locales/ota.ts +2 -0
- package/node_modules/zod/src/v4/locales/pl.ts +2 -0
- package/node_modules/zod/src/v4/locales/ps.ts +2 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
- package/node_modules/zod/src/v4/locales/pt.ts +2 -0
- package/node_modules/zod/src/v4/locales/ro.ts +2 -0
- package/node_modules/zod/src/v4/locales/ru.ts +2 -0
- package/node_modules/zod/src/v4/locales/sk.ts +2 -0
- package/node_modules/zod/src/v4/locales/sl.ts +2 -0
- package/node_modules/zod/src/v4/locales/sv.ts +2 -0
- package/node_modules/zod/src/v4/locales/ta.ts +2 -0
- package/node_modules/zod/src/v4/locales/tg.ts +135 -0
- package/node_modules/zod/src/v4/locales/th.ts +2 -0
- package/node_modules/zod/src/v4/locales/tk.ts +2 -0
- package/node_modules/zod/src/v4/locales/tr.ts +2 -0
- package/node_modules/zod/src/v4/locales/uk.ts +2 -0
- package/node_modules/zod/src/v4/locales/ur.ts +2 -0
- package/node_modules/zod/src/v4/locales/uz.ts +2 -0
- package/node_modules/zod/src/v4/locales/vi.ts +2 -0
- package/node_modules/zod/src/v4/locales/yo.ts +2 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
- package/node_modules/zod/src/v4/mini/external.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
- package/node_modules/zod/v3/ZodError.cjs +19 -0
- package/node_modules/zod/v3/errors.cjs +19 -0
- package/node_modules/zod/v3/external.cjs +19 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
- package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
- package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
- package/node_modules/zod/v3/helpers/util.cjs +19 -0
- package/node_modules/zod/v3/index.cjs +19 -0
- package/node_modules/zod/v3/standard-schema.cjs +19 -0
- package/node_modules/zod/v3/types.cjs +19 -0
- package/node_modules/zod/v4/classic/checks.cjs +19 -0
- package/node_modules/zod/v4/classic/coerce.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.cjs +19 -0
- package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
- package/node_modules/zod/v4/classic/errors.cjs +19 -0
- package/node_modules/zod/v4/classic/external.cjs +22 -1
- package/node_modules/zod/v4/classic/external.d.cts +1 -1
- package/node_modules/zod/v4/classic/external.d.ts +1 -1
- package/node_modules/zod/v4/classic/external.js +1 -1
- package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
- package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
- package/node_modules/zod/v4/classic/in-out.cjs +19 -0
- package/node_modules/zod/v4/classic/index.cjs +19 -0
- package/node_modules/zod/v4/classic/iso.cjs +19 -0
- package/node_modules/zod/v4/classic/parse.cjs +19 -0
- package/node_modules/zod/v4/classic/schemas.cjs +100 -35
- package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
- package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
- package/node_modules/zod/v4/classic/schemas.js +77 -33
- package/node_modules/zod/v4/core/api.cjs +45 -22
- package/node_modules/zod/v4/core/api.d.cts +12 -6
- package/node_modules/zod/v4/core/api.d.ts +12 -6
- package/node_modules/zod/v4/core/api.js +25 -22
- package/node_modules/zod/v4/core/checks.cjs +51 -97
- package/node_modules/zod/v4/core/checks.d.cts +17 -1
- package/node_modules/zod/v4/core/checks.d.ts +17 -1
- package/node_modules/zod/v4/core/checks.js +31 -96
- package/node_modules/zod/v4/core/compile.cjs +173 -78
- package/node_modules/zod/v4/core/compile.d.cts +18 -4
- package/node_modules/zod/v4/core/compile.d.ts +18 -4
- package/node_modules/zod/v4/core/compile.js +154 -79
- package/node_modules/zod/v4/core/core.cjs +20 -1
- package/node_modules/zod/v4/core/core.js +1 -1
- package/node_modules/zod/v4/core/doc.cjs +26 -2
- package/node_modules/zod/v4/core/doc.js +7 -2
- package/node_modules/zod/v4/core/errors.cjs +21 -5
- package/node_modules/zod/v4/core/errors.js +2 -5
- package/node_modules/zod/v4/core/index.cjs +19 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
- package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
- package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
- package/node_modules/zod/v4/core/json-schema.cjs +19 -0
- package/node_modules/zod/v4/core/memoizer.cjs +111 -23
- package/node_modules/zod/v4/core/memoizer.js +69 -23
- package/node_modules/zod/v4/core/parse.cjs +56 -16
- package/node_modules/zod/v4/core/parse.js +37 -16
- package/node_modules/zod/v4/core/regexes.cjs +31 -6
- package/node_modules/zod/v4/core/regexes.d.cts +3 -0
- package/node_modules/zod/v4/core/regexes.d.ts +3 -0
- package/node_modules/zod/v4/core/regexes.js +10 -4
- package/node_modules/zod/v4/core/registries.cjs +19 -0
- package/node_modules/zod/v4/core/schemas.cjs +302 -114
- package/node_modules/zod/v4/core/schemas.d.cts +28 -8
- package/node_modules/zod/v4/core/schemas.d.ts +28 -8
- package/node_modules/zod/v4/core/schemas.js +279 -113
- package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
- package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
- package/node_modules/zod/v4/core/to-json-schema.js +7 -6
- package/node_modules/zod/v4/core/util.cjs +177 -143
- package/node_modules/zod/v4/core/util.d.cts +25 -4
- package/node_modules/zod/v4/core/util.d.ts +25 -4
- package/node_modules/zod/v4/core/util.js +156 -143
- package/node_modules/zod/v4/core/versions.cjs +21 -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 +19 -0
- package/node_modules/zod/v4/index.cjs +19 -0
- package/node_modules/zod/v4/locales/ar.cjs +2 -0
- package/node_modules/zod/v4/locales/ar.js +2 -0
- package/node_modules/zod/v4/locales/az.cjs +2 -0
- package/node_modules/zod/v4/locales/az.js +2 -0
- package/node_modules/zod/v4/locales/be.cjs +2 -0
- package/node_modules/zod/v4/locales/be.js +2 -0
- package/node_modules/zod/v4/locales/bg.cjs +2 -0
- package/node_modules/zod/v4/locales/bg.js +2 -0
- package/node_modules/zod/v4/locales/bn.cjs +2 -0
- package/node_modules/zod/v4/locales/bn.js +2 -0
- package/node_modules/zod/v4/locales/ca.cjs +2 -0
- package/node_modules/zod/v4/locales/ca.js +2 -0
- package/node_modules/zod/v4/locales/ckb.cjs +2 -0
- package/node_modules/zod/v4/locales/ckb.js +2 -0
- package/node_modules/zod/v4/locales/cs.cjs +2 -0
- package/node_modules/zod/v4/locales/cs.js +2 -0
- package/node_modules/zod/v4/locales/da.cjs +2 -0
- package/node_modules/zod/v4/locales/da.js +2 -0
- package/node_modules/zod/v4/locales/de.cjs +2 -0
- package/node_modules/zod/v4/locales/de.js +2 -0
- package/node_modules/zod/v4/locales/el.cjs +2 -0
- package/node_modules/zod/v4/locales/el.js +2 -0
- package/node_modules/zod/v4/locales/en.cjs +2 -0
- package/node_modules/zod/v4/locales/en.js +2 -0
- package/node_modules/zod/v4/locales/eo.cjs +2 -0
- package/node_modules/zod/v4/locales/eo.js +2 -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 +2 -0
- package/node_modules/zod/v4/locales/fa.js +2 -0
- package/node_modules/zod/v4/locales/fi.cjs +2 -0
- package/node_modules/zod/v4/locales/fi.js +2 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
- package/node_modules/zod/v4/locales/fr-CA.js +2 -0
- package/node_modules/zod/v4/locales/fr.cjs +2 -0
- package/node_modules/zod/v4/locales/fr.js +2 -0
- package/node_modules/zod/v4/locales/gu.cjs +2 -0
- package/node_modules/zod/v4/locales/gu.js +2 -0
- package/node_modules/zod/v4/locales/he.cjs +2 -0
- package/node_modules/zod/v4/locales/he.js +2 -0
- package/node_modules/zod/v4/locales/hi.cjs +2 -0
- package/node_modules/zod/v4/locales/hi.js +2 -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 +2 -0
- package/node_modules/zod/v4/locales/hu.js +2 -0
- package/node_modules/zod/v4/locales/hy.cjs +2 -0
- package/node_modules/zod/v4/locales/hy.js +2 -0
- package/node_modules/zod/v4/locales/id.cjs +2 -0
- package/node_modules/zod/v4/locales/id.js +2 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -1
- package/node_modules/zod/v4/locales/index.d.cts +1 -0
- package/node_modules/zod/v4/locales/index.d.ts +1 -0
- package/node_modules/zod/v4/locales/index.js +1 -0
- package/node_modules/zod/v4/locales/is.cjs +2 -0
- package/node_modules/zod/v4/locales/is.js +2 -0
- package/node_modules/zod/v4/locales/it.cjs +2 -0
- package/node_modules/zod/v4/locales/it.js +2 -0
- package/node_modules/zod/v4/locales/ja.cjs +2 -0
- package/node_modules/zod/v4/locales/ja.js +2 -0
- package/node_modules/zod/v4/locales/ka.cjs +2 -0
- package/node_modules/zod/v4/locales/ka.js +2 -0
- package/node_modules/zod/v4/locales/km.cjs +2 -0
- package/node_modules/zod/v4/locales/km.js +2 -0
- package/node_modules/zod/v4/locales/kn.cjs +2 -0
- package/node_modules/zod/v4/locales/kn.js +2 -0
- package/node_modules/zod/v4/locales/ko.cjs +2 -0
- package/node_modules/zod/v4/locales/ko.js +2 -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 +2 -0
- package/node_modules/zod/v4/locales/mk.js +2 -0
- package/node_modules/zod/v4/locales/ms.cjs +2 -0
- package/node_modules/zod/v4/locales/ms.js +2 -0
- package/node_modules/zod/v4/locales/ne.cjs +2 -0
- package/node_modules/zod/v4/locales/ne.js +2 -0
- package/node_modules/zod/v4/locales/nl.cjs +2 -0
- package/node_modules/zod/v4/locales/nl.js +2 -0
- package/node_modules/zod/v4/locales/nn.cjs +2 -0
- package/node_modules/zod/v4/locales/nn.js +2 -0
- package/node_modules/zod/v4/locales/no.cjs +2 -0
- package/node_modules/zod/v4/locales/no.js +2 -0
- package/node_modules/zod/v4/locales/ota.cjs +2 -0
- package/node_modules/zod/v4/locales/ota.js +2 -0
- package/node_modules/zod/v4/locales/pl.cjs +2 -0
- package/node_modules/zod/v4/locales/pl.js +2 -0
- package/node_modules/zod/v4/locales/ps.cjs +2 -0
- package/node_modules/zod/v4/locales/ps.js +2 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
- package/node_modules/zod/v4/locales/pt-BR.js +2 -0
- package/node_modules/zod/v4/locales/pt.cjs +2 -0
- package/node_modules/zod/v4/locales/pt.js +2 -0
- package/node_modules/zod/v4/locales/ro.cjs +2 -0
- package/node_modules/zod/v4/locales/ro.js +2 -0
- package/node_modules/zod/v4/locales/ru.cjs +2 -0
- package/node_modules/zod/v4/locales/ru.js +2 -0
- package/node_modules/zod/v4/locales/sk.cjs +2 -0
- package/node_modules/zod/v4/locales/sk.js +2 -0
- package/node_modules/zod/v4/locales/sl.cjs +2 -0
- package/node_modules/zod/v4/locales/sl.js +2 -0
- package/node_modules/zod/v4/locales/sv.cjs +2 -0
- package/node_modules/zod/v4/locales/sv.js +2 -0
- package/node_modules/zod/v4/locales/ta.cjs +2 -0
- package/node_modules/zod/v4/locales/ta.js +2 -0
- package/node_modules/zod/v4/locales/tg.cjs +144 -0
- package/node_modules/zod/v4/locales/tg.d.cts +5 -0
- package/node_modules/zod/v4/locales/tg.d.ts +4 -0
- package/node_modules/zod/v4/locales/tg.js +117 -0
- package/node_modules/zod/v4/locales/th.cjs +2 -0
- package/node_modules/zod/v4/locales/th.js +2 -0
- package/node_modules/zod/v4/locales/tk.cjs +2 -0
- package/node_modules/zod/v4/locales/tk.js +2 -0
- package/node_modules/zod/v4/locales/tr.cjs +2 -0
- package/node_modules/zod/v4/locales/tr.js +2 -0
- package/node_modules/zod/v4/locales/uk.cjs +2 -0
- package/node_modules/zod/v4/locales/uk.js +2 -0
- package/node_modules/zod/v4/locales/ur.cjs +2 -0
- package/node_modules/zod/v4/locales/ur.js +2 -0
- package/node_modules/zod/v4/locales/uz.cjs +2 -0
- package/node_modules/zod/v4/locales/uz.js +2 -0
- package/node_modules/zod/v4/locales/vi.cjs +2 -0
- package/node_modules/zod/v4/locales/vi.js +2 -0
- package/node_modules/zod/v4/locales/yo.cjs +2 -0
- package/node_modules/zod/v4/locales/yo.js +2 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
- package/node_modules/zod/v4/locales/zh-CN.js +2 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
- package/node_modules/zod/v4/locales/zh-TW.js +2 -0
- package/node_modules/zod/v4/mini/checks.cjs +19 -0
- package/node_modules/zod/v4/mini/coerce.cjs +19 -0
- package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
- package/node_modules/zod/v4/mini/external.cjs +22 -1
- package/node_modules/zod/v4/mini/external.d.cts +1 -1
- package/node_modules/zod/v4/mini/external.d.ts +1 -1
- package/node_modules/zod/v4/mini/external.js +1 -1
- package/node_modules/zod/v4/mini/in-out.cjs +19 -0
- package/node_modules/zod/v4/mini/index.cjs +19 -0
- package/node_modules/zod/v4/mini/iso.cjs +19 -0
- package/node_modules/zod/v4/mini/parse.cjs +19 -0
- package/node_modules/zod/v4/mini/schemas.cjs +44 -8
- package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
- package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
- package/node_modules/zod/v4/mini/schemas.js +21 -6
- package/node_modules/zod/v4-mini/index.cjs +19 -0
- package/openclaw.plugin.json +21 -1
- package/package.json +9 -6
- package/dist/.setup/agent-components.runtime-CEPrf2SY.mjs +0 -4
- package/dist/.setup/message-handler.history-CJOsN9w5.mjs +0 -28
- package/dist/.setup/probe.runtime-DBQ_AGPe.mjs +0 -2
- package/dist/.setup/provider-session.runtime-BW7QrF5C.mjs +0 -6
- package/dist/.setup/provider.runtime-DuhmKdDU.mjs +0 -2
- package/dist/.setup/security-audit.runtime-DHtYenx9.mjs +0 -2
- package/dist/.setup/setup-plugin-api-CINIEBLa.mjs +0 -3
- package/dist/.setup/system-events-B2YEEMbS.mjs +0 -34
- package/dist/.setup/targets-D1mAB5yO.mjs +0 -3
- package/dist/.setup/thread-bindings.manager-eexkKyrG.mjs +0 -678
- package/dist/.setup/thread-bindings.session-updates-DCQq1WZ5.mjs +0 -55
- /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import { D as Message,
|
|
2
|
-
import { C as
|
|
3
|
-
import { s as resolveDefaultDiscordAccountId } from "./accounts-
|
|
1
|
+
import { D as Message, ht as getChannelMessage, t as discord_exports } from "./discord-0xJYfdDD.mjs";
|
|
2
|
+
import { C as resolveDiscordSystemLocation, S as formatDiscordUserTag, a as normalizeDiscordDisplaySlug, f as resolveDiscordGuildEntry, h as resolveDiscordMentionPolicy, l as resolveDiscordChannelConfigWithFallback, o as normalizeDiscordSlug, p as resolveDiscordMemberAccessState, w as resolveTimestampMs } from "./channel-type-DRCrEMss.mjs";
|
|
3
|
+
import { s as resolveDefaultDiscordAccountId } from "./accounts-ChaMcixG.mjs";
|
|
4
4
|
import { n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe } from "./channel-access-C12aDZ0p.mjs";
|
|
5
|
-
import { A as
|
|
5
|
+
import { A as resolveDiscordMessageChannelId, D as resolveDiscordReferencedReplyMessage, E as resolveDiscordMessageStickers, S as resolveMediaList, _ as resolveDiscordMessageHistoryText, g as resolveDiscordMessageBatch, k as resolveDiscordChannelInfo, v as resolveDiscordMessageMentionDocuments, x as resolveForwardedMediaList, y as resolveDiscordMessageText } from "./transcripts-source-p8EV179h.mjs";
|
|
6
6
|
import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-D86uWLt_.mjs";
|
|
7
|
-
import { _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, h as resolveDiscordConversationIdentity, p as resolveDiscordEffectiveRoute, u as buildDiscordRoutePeer } from "./outbound-session-route-
|
|
8
|
-
import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-
|
|
9
|
-
import {
|
|
10
|
-
import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-
|
|
11
|
-
import {
|
|
7
|
+
import { _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, h as resolveDiscordConversationIdentity, p as resolveDiscordEffectiveRoute, u as buildDiscordRoutePeer } from "./outbound-session-route-zVGxxceg.mjs";
|
|
8
|
+
import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-Caz_XuFH.mjs";
|
|
9
|
+
import { A as resolveDiscordDmCommandAccess, E as handleDiscordDmCommandDecision, j as resolveDiscordTextCommandAccess, n as resolveDiscordPreflightChannelAccess } from "./provider-B_G5hASF.mjs";
|
|
10
|
+
import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-B9X5Vb9R.mjs";
|
|
11
|
+
import { a as createDiscordHistorySenderProvenance, c as hasRawDiscordUserMention, d as matchesActiveDiscordMentionPatterns, f as resolveDiscordMentionState, h as shouldIgnoreBoundThreadWebhookMessage, i as loadSystemEventsRuntime, l as isBoundThreadBotSystemMessage, m as resolvePreflightMentionRequirement, n as loadDiscordThreadingRuntime, p as resolveInjectedBoundThreadLookupRecord, r as loadPreflightAudioRuntime, s as resolveDiscordHistoryMediaIds, t as resolveDiscordPreflightPluralKitInfo, u as isDiscordThreadChannelMessage } from "./message-handler.preflight-pluralkit-CWLUBVcx.mjs";
|
|
12
12
|
import { logDebug } from "openclaw/plugin-sdk/logging-core";
|
|
13
13
|
import { MessageReferenceType, MessageType } from "discord-api-types/v10";
|
|
14
|
-
import { normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
15
14
|
import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
|
|
16
15
|
import { mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
|
|
17
16
|
import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
18
17
|
import { formatAllowlistMatchMeta } from "openclaw/plugin-sdk/allow-from";
|
|
19
|
-
import { findCodeRegions, isInsideCode } from "openclaw/plugin-sdk/text-chunking";
|
|
20
18
|
import { isRecentOutboundMessageIdentity } from "openclaw/plugin-sdk/channel-outbound";
|
|
21
19
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
22
|
-
import { buildMentionRegexes, classifyChannelInboundEvent,
|
|
20
|
+
import { buildMentionRegexes, classifyChannelInboundEvent, logInboundDrop, recordChannelBotPairLoopAndCheckSuppression, resolveGroupThreadMentionFacts, resolveInboundMentionDecision, resolveUnmentionedGroupInboundPolicy, toHistoryMediaEntries, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
|
|
23
21
|
import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
|
|
24
22
|
import { enqueueRoutedSystemEvent } from "openclaw/plugin-sdk/system-event-runtime";
|
|
25
23
|
import { hasControlCommand } from "openclaw/plugin-sdk/command-detection";
|
|
@@ -28,10 +26,7 @@ import { shouldHandleTextCommands } from "openclaw/plugin-sdk/command-surface";
|
|
|
28
26
|
import { createChannelHistoryWindow } from "openclaw/plugin-sdk/reply-history";
|
|
29
27
|
//#region extensions/discord/src/monitor/message-handler.dm-preflight.ts
|
|
30
28
|
const loadConversationRuntime$1 = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/conversation-binding-runtime"));
|
|
31
|
-
const loadDiscordSendRuntime = createLazyRuntimeModule(() => import("./send-
|
|
32
|
-
function resolveDiscordDmPairingSenderId(sender) {
|
|
33
|
-
return sender.isPluralKit ? `pk:${sender.id}` : sender.id;
|
|
34
|
-
}
|
|
29
|
+
const loadDiscordSendRuntime = createLazyRuntimeModule(() => import("./send-CrfEI6Bs.mjs").then((n) => n.t));
|
|
35
30
|
async function resolveDiscordDmPreflightAccess(params) {
|
|
36
31
|
if (params.dmPolicy === "disabled") {
|
|
37
32
|
logVerbose("discord: drop dm (dmPolicy: disabled)");
|
|
@@ -71,14 +66,12 @@ async function resolveDiscordDmPreflightAccess(params) {
|
|
|
71
66
|
const commandAuthorized = dmAccess.senderAccess.allowed && dmAccess.commandAccess.authorized || directBindingRecord != null;
|
|
72
67
|
if (dmAccess.senderAccess.decision === "allow") return {
|
|
73
68
|
commandAuthorized,
|
|
74
|
-
channelIngress: dmAccess,
|
|
75
69
|
resolveChannelIngress
|
|
76
70
|
};
|
|
77
71
|
if (directBindingRecord) {
|
|
78
72
|
logVerbose(`discord: allow bound DM conversation ${directBindingConversationId} despite dmPolicy=${params.dmPolicy}`);
|
|
79
73
|
return {
|
|
80
74
|
commandAuthorized,
|
|
81
|
-
channelIngress: dmAccess,
|
|
82
75
|
resolveChannelIngress
|
|
83
76
|
};
|
|
84
77
|
}
|
|
@@ -86,7 +79,7 @@ async function resolveDiscordDmPreflightAccess(params) {
|
|
|
86
79
|
senderAccess: dmAccess.senderAccess,
|
|
87
80
|
accountId: params.resolvedAccountId,
|
|
88
81
|
sender: {
|
|
89
|
-
id:
|
|
82
|
+
id: params.sender.isPluralKit ? `pk:${params.sender.id}` : params.sender.id,
|
|
90
83
|
tag: params.sender.tag ?? formatDiscordUserTag(params.author),
|
|
91
84
|
name: params.sender.name ?? params.author.username ?? void 0
|
|
92
85
|
},
|
|
@@ -117,100 +110,15 @@ async function resolveDiscordDmPreflightAccess(params) {
|
|
|
117
110
|
}
|
|
118
111
|
//#endregion
|
|
119
112
|
//#region extensions/discord/src/monitor/message-handler.hydration.ts
|
|
120
|
-
function
|
|
121
|
-
const baseRawData = readMessageRawData(base);
|
|
122
|
-
const baseFallback = readMessageFallback(base);
|
|
123
|
-
const rawData = {
|
|
124
|
-
...baseRawData,
|
|
125
|
-
...fetched,
|
|
126
|
-
id: fetched.id ?? baseRawData.id ?? baseFallback.id,
|
|
127
|
-
channel_id: fetched.channel_id ?? baseRawData.channel_id ?? baseFallback.channel_id,
|
|
128
|
-
content: fetched.content ?? baseRawData.content ?? baseFallback.content,
|
|
129
|
-
author: fetched.author ?? baseRawData.author ?? baseFallback.author,
|
|
130
|
-
attachments: fetched.attachments ?? baseRawData.attachments ?? baseFallback.attachments,
|
|
131
|
-
embeds: fetched.embeds ?? baseRawData.embeds ?? baseFallback.embeds,
|
|
132
|
-
mentions: fetched.mentions ?? baseRawData.mentions ?? baseFallback.mentions,
|
|
133
|
-
mention_roles: fetched.mention_roles ?? baseRawData.mention_roles ?? baseFallback.mention_roles,
|
|
134
|
-
mention_everyone: fetched.mention_everyone ?? baseRawData.mention_everyone ?? baseFallback.mention_everyone,
|
|
135
|
-
timestamp: fetched.timestamp ?? baseRawData.timestamp ?? baseFallback.timestamp,
|
|
136
|
-
tts: fetched.tts ?? baseRawData.tts ?? false,
|
|
137
|
-
pinned: fetched.pinned ?? baseRawData.pinned ?? false,
|
|
138
|
-
type: fetched.type ?? baseRawData.type ?? 0,
|
|
139
|
-
message_snapshots: fetched.message_snapshots ?? baseRawData.message_snapshots ?? baseFallback.message_snapshots,
|
|
140
|
-
sticker_items: fetched.sticker_items ?? baseRawData.sticker_items ?? baseFallback.sticker_items
|
|
141
|
-
};
|
|
142
|
-
const hydrated = new Message(readMessageClient(base), rawData);
|
|
143
|
-
copyRuntimeMessageFields(base, hydrated);
|
|
144
|
-
return hydrated;
|
|
145
|
-
}
|
|
146
|
-
function readMessageClient(message) {
|
|
147
|
-
return message.client;
|
|
148
|
-
}
|
|
149
|
-
function readMessageRawData(message) {
|
|
150
|
-
try {
|
|
151
|
-
const rawData = message.rawData;
|
|
152
|
-
return rawData && typeof rawData === "object" ? rawData : {};
|
|
153
|
-
} catch {
|
|
154
|
-
return {};
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
function readMessageFallback(message) {
|
|
158
|
-
const value = message;
|
|
159
|
-
return {
|
|
160
|
-
id: typeof value.id === "string" ? value.id : "",
|
|
161
|
-
channel_id: readStringValue(value.channel_id) ?? readStringValue(value.channelId) ?? "",
|
|
162
|
-
content: typeof value.content === "string" ? value.content : "",
|
|
163
|
-
author: normalizeApiUser(value.author),
|
|
164
|
-
attachments: Array.isArray(value.attachments) ? value.attachments : [],
|
|
165
|
-
embeds: Array.isArray(value.embeds) ? value.embeds : [],
|
|
166
|
-
mentions: normalizeApiUsers(value.mentionedUsers),
|
|
167
|
-
mention_roles: normalizeStringArray(value.mentionedRoles),
|
|
168
|
-
mention_everyone: value.mentionedEveryone === true,
|
|
169
|
-
timestamp: readStringValue(value.timestamp) ?? "1970-01-01T00:00:00.000Z",
|
|
170
|
-
sticker_items: Array.isArray(value.sticker_items) ? value.sticker_items : Array.isArray(value.stickers) ? value.stickers : void 0,
|
|
171
|
-
message_snapshots: Array.isArray(value.message_snapshots) ? value.message_snapshots : void 0
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
function normalizeStringArray(value) {
|
|
175
|
-
return Array.isArray(value) ? value.flatMap((entry) => typeof entry === "string" ? [entry] : []) : [];
|
|
176
|
-
}
|
|
177
|
-
function normalizeApiUsers(value) {
|
|
178
|
-
return Array.isArray(value) ? value.flatMap((entry) => {
|
|
179
|
-
const user = normalizeApiUser(entry);
|
|
180
|
-
return user.id ? [user] : [];
|
|
181
|
-
}) : [];
|
|
182
|
-
}
|
|
183
|
-
function normalizeApiUser(value) {
|
|
184
|
-
if (!value || typeof value !== "object") return {
|
|
185
|
-
id: "",
|
|
186
|
-
username: "",
|
|
187
|
-
discriminator: "0",
|
|
188
|
-
global_name: null,
|
|
189
|
-
avatar: null
|
|
190
|
-
};
|
|
191
|
-
const input = value;
|
|
192
|
-
return {
|
|
193
|
-
id: readStringValue(input.id) ?? "",
|
|
194
|
-
username: readStringValue(input.username) ?? "",
|
|
195
|
-
discriminator: readStringValue(input.discriminator) ?? "0",
|
|
196
|
-
global_name: readStringValue(input.global_name) ?? readStringValue(input.globalName) ?? null,
|
|
197
|
-
avatar: input.avatar === null ? null : readStringValue(input.avatar) ?? null,
|
|
198
|
-
...typeof input.bot === "boolean" ? { bot: input.bot } : {}
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
function copyRuntimeMessageFields(source, target) {
|
|
202
|
-
const channelDescriptor = Object.getOwnPropertyDescriptor(source, "channel");
|
|
203
|
-
if (channelDescriptor) Object.defineProperty(target, "channel", channelDescriptor);
|
|
204
|
-
}
|
|
205
|
-
function shouldHydrateDiscordMessagePayload(params) {
|
|
113
|
+
function shouldHydrateDiscordMessagePayload(message) {
|
|
206
114
|
let currentText;
|
|
207
115
|
try {
|
|
208
|
-
currentText = resolveDiscordMessageText(
|
|
116
|
+
currentText = resolveDiscordMessageText(message, { includeForwarded: true });
|
|
209
117
|
} catch {
|
|
210
118
|
return true;
|
|
211
119
|
}
|
|
212
120
|
if (!currentText) return true;
|
|
213
|
-
if ((
|
|
121
|
+
if ((message.mentionedUsers?.length ?? 0) > 0 || (message.mentionedRoles?.length ?? 0) > 0 || message.mentionedEveryone) return false;
|
|
214
122
|
return /<@!?\d+>|<@&\d+>|@everyone|@here/u.test(currentText);
|
|
215
123
|
}
|
|
216
124
|
function resolveReferencedMessagePayloadState(message) {
|
|
@@ -218,11 +126,13 @@ function resolveReferencedMessagePayloadState(message) {
|
|
|
218
126
|
if (!reference?.message_id) return "complete";
|
|
219
127
|
if (reference.type != null && reference.type !== MessageReferenceType.Default) return "complete";
|
|
220
128
|
if (message.type != null && message.type !== MessageType.Reply) return "complete";
|
|
221
|
-
const rawData =
|
|
129
|
+
const rawData = message.rawData;
|
|
222
130
|
if (!Object.hasOwn(rawData, "referenced_message")) return "missing";
|
|
223
131
|
const referenced = rawData.referenced_message;
|
|
224
132
|
if (referenced == null) return "complete";
|
|
225
|
-
|
|
133
|
+
if (typeof referenced !== "object" || referenced.id !== reference.message_id) return "invalid";
|
|
134
|
+
const reply = message.referencedMessage;
|
|
135
|
+
return reply?.author && (resolveDiscordMessageText(reply, { includeForwarded: true }) || reply.attachments.length > 0 || resolveDiscordMessageStickers(reply).length > 0) ? "complete" : "missing";
|
|
226
136
|
}
|
|
227
137
|
async function hydrateDiscordReplyReference(params) {
|
|
228
138
|
const payloadState = resolveReferencedMessagePayloadState(params.message);
|
|
@@ -233,26 +143,28 @@ async function hydrateDiscordReplyReference(params) {
|
|
|
233
143
|
const referencedChannelId = reference.channel_id ?? params.messageChannelId;
|
|
234
144
|
try {
|
|
235
145
|
const referenced = await getChannelMessage(params.client.rest, referencedChannelId, referencedMessageId);
|
|
236
|
-
return
|
|
237
|
-
...
|
|
146
|
+
return new Message(params.client, {
|
|
147
|
+
...params.message.rawData,
|
|
238
148
|
referenced_message: referenced
|
|
239
149
|
});
|
|
240
150
|
} catch (err) {
|
|
241
151
|
logVerbose(`discord: failed to hydrate referenced message ${referencedMessageId}: ${String(err)}`);
|
|
242
|
-
if (payloadState === "invalid") return
|
|
243
|
-
...
|
|
152
|
+
if (payloadState === "invalid") return new Message(params.client, {
|
|
153
|
+
...params.message.rawData,
|
|
244
154
|
referenced_message: null
|
|
245
155
|
});
|
|
246
156
|
return params.message;
|
|
247
157
|
}
|
|
248
158
|
}
|
|
249
159
|
async function hydrateDiscordMessageIfNeeded(params) {
|
|
250
|
-
params.channelInfo;
|
|
251
160
|
let hydrated = params.message;
|
|
252
|
-
if (shouldHydrateDiscordMessagePayload(
|
|
161
|
+
if (shouldHydrateDiscordMessagePayload(params.message)) try {
|
|
253
162
|
const fetched = await getChannelMessage(params.client.rest, params.messageChannelId, params.message.id);
|
|
254
163
|
logVerbose(`discord: hydrated inbound payload via REST for ${params.message.id}`);
|
|
255
|
-
hydrated =
|
|
164
|
+
hydrated = new Message(params.client, {
|
|
165
|
+
...params.message.partial ? {} : params.message.rawData,
|
|
166
|
+
...fetched
|
|
167
|
+
});
|
|
256
168
|
} catch (err) {
|
|
257
169
|
logVerbose(`discord: failed to hydrate message ${params.message.id}: ${String(err)}`);
|
|
258
170
|
return {
|
|
@@ -302,113 +214,6 @@ function resolveDiscordPreflightChannelContext(params) {
|
|
|
302
214
|
};
|
|
303
215
|
}
|
|
304
216
|
//#endregion
|
|
305
|
-
//#region extensions/discord/src/monitor/message-handler.preflight-context.ts
|
|
306
|
-
function buildDiscordMessagePreflightContext({ preflightParams, ...fields }) {
|
|
307
|
-
return {
|
|
308
|
-
cfg: preflightParams.cfg,
|
|
309
|
-
discordConfig: preflightParams.discordConfig,
|
|
310
|
-
accountId: preflightParams.accountId,
|
|
311
|
-
token: preflightParams.token,
|
|
312
|
-
runtime: preflightParams.runtime,
|
|
313
|
-
buildContext: preflightParams.buildContext,
|
|
314
|
-
botUserId: preflightParams.botUserId,
|
|
315
|
-
abortSignal: preflightParams.abortSignal,
|
|
316
|
-
guildHistories: preflightParams.guildHistories,
|
|
317
|
-
historyLimit: preflightParams.historyLimit,
|
|
318
|
-
mediaMaxBytes: preflightParams.mediaMaxBytes,
|
|
319
|
-
textLimit: preflightParams.textLimit,
|
|
320
|
-
replyToMode: preflightParams.replyToMode,
|
|
321
|
-
ackReactionScope: preflightParams.ackReactionScope,
|
|
322
|
-
groupPolicy: preflightParams.groupPolicy,
|
|
323
|
-
turnAdoptionLifecycle: preflightParams.turnAdoptionLifecycle,
|
|
324
|
-
...fields,
|
|
325
|
-
threadBindings: preflightParams.threadBindings,
|
|
326
|
-
discordRestFetch: preflightParams.discordRestFetch
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
//#endregion
|
|
330
|
-
//#region extensions/discord/src/monitor/message-handler.preflight-helpers.ts
|
|
331
|
-
const DISCORD_BOUND_THREAD_SYSTEM_PREFIXES = [
|
|
332
|
-
"⚙️",
|
|
333
|
-
"🤖",
|
|
334
|
-
"🧰"
|
|
335
|
-
];
|
|
336
|
-
function isBoundThreadBotSystemMessage(params) {
|
|
337
|
-
if (!params.isBoundThreadSession || !params.isBotAuthor) return false;
|
|
338
|
-
const text = params.text?.trim();
|
|
339
|
-
if (!text) return false;
|
|
340
|
-
return DISCORD_BOUND_THREAD_SYSTEM_PREFIXES.some((prefix) => text.startsWith(prefix));
|
|
341
|
-
}
|
|
342
|
-
function isDiscordThreadChannelMessage(params) {
|
|
343
|
-
if (!params.isGuildMessage) return false;
|
|
344
|
-
const channel = "channel" in params.message ? params.message.channel : void 0;
|
|
345
|
-
return Boolean(channel && typeof channel === "object" && "isThread" in channel && typeof channel.isThread === "function" && channel.isThread() || isDiscordThreadChannelType(params.channelInfo?.type));
|
|
346
|
-
}
|
|
347
|
-
function resolveInjectedBoundThreadLookupRecord(params) {
|
|
348
|
-
const getByThreadId = params.threadBindings.getByThreadId;
|
|
349
|
-
if (typeof getByThreadId !== "function") return;
|
|
350
|
-
const binding = getByThreadId(params.threadId);
|
|
351
|
-
return binding && typeof binding === "object" ? binding : void 0;
|
|
352
|
-
}
|
|
353
|
-
function resolveDiscordMentionState(params) {
|
|
354
|
-
if (params.isDirectMessage) return {
|
|
355
|
-
implicitMentionKinds: [],
|
|
356
|
-
wasMentioned: false
|
|
357
|
-
};
|
|
358
|
-
const wasMentioned = params.mentionedEveryone && (!params.authorIsBot || params.senderIsPluralKit) || matchesMentionWithExplicit({
|
|
359
|
-
text: params.mentionText,
|
|
360
|
-
mentionRegexes: params.mentionRegexes,
|
|
361
|
-
explicit: {
|
|
362
|
-
hasAnyMention: params.hasAnyMention,
|
|
363
|
-
isExplicitlyMentioned: params.isExplicitlyMentioned,
|
|
364
|
-
canResolveExplicit: Boolean(params.botId)
|
|
365
|
-
},
|
|
366
|
-
transcript: params.transcript
|
|
367
|
-
});
|
|
368
|
-
return {
|
|
369
|
-
implicitMentionKinds: implicitMentionKindWhen("reply_to_bot", Boolean(params.botId) && Boolean(params.referencedAuthorId) && params.referencedAuthorId === params.botId),
|
|
370
|
-
wasMentioned
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
function hasRawDiscordUserMention(text, userId) {
|
|
374
|
-
if (!userId) return false;
|
|
375
|
-
const codeRegions = findCodeRegions(text);
|
|
376
|
-
for (const mention of [`<@${userId}>`, `<@!${userId}>`]) {
|
|
377
|
-
let index = text.indexOf(mention);
|
|
378
|
-
while (index >= 0) {
|
|
379
|
-
let precedingBackslashes = 0;
|
|
380
|
-
for (let offset = index - 1; offset >= 0 && text[offset] === "\\"; offset -= 1) precedingBackslashes += 1;
|
|
381
|
-
if (precedingBackslashes % 2 === 0 && !isInsideCode(index, codeRegions)) return true;
|
|
382
|
-
index = text.indexOf(mention, index + mention.length);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
return false;
|
|
386
|
-
}
|
|
387
|
-
function matchesActiveDiscordMentionPatterns(text, mentionRegexes) {
|
|
388
|
-
if (mentionRegexes.length === 0) return false;
|
|
389
|
-
const cleaned = normalizeMentionText(text);
|
|
390
|
-
const normalizedOffset = (offset) => Math.min(cleaned.length, normalizeMentionText(`${text.slice(0, offset)}\0`).length - 1);
|
|
391
|
-
const codeRegions = findCodeRegions(text).map(({ start, end }) => ({
|
|
392
|
-
start: normalizedOffset(start),
|
|
393
|
-
end: normalizedOffset(end)
|
|
394
|
-
}));
|
|
395
|
-
for (const regex of mentionRegexes) for (const match of cleaned.matchAll(new RegExp(regex.source, `${regex.flags}g`))) if (!codeRegions.some(({ start, end }) => match.index < end && (match.index >= start || match.index + match[0].length > start))) return true;
|
|
396
|
-
return false;
|
|
397
|
-
}
|
|
398
|
-
function resolvePreflightMentionRequirement(params) {
|
|
399
|
-
if (!params.shouldRequireMention) return false;
|
|
400
|
-
return !params.bypassMentionRequirement;
|
|
401
|
-
}
|
|
402
|
-
function shouldIgnoreBoundThreadWebhookMessage(params) {
|
|
403
|
-
const webhookId = normalizeOptionalString(params.webhookId) ?? "";
|
|
404
|
-
if (!webhookId) return false;
|
|
405
|
-
const boundWebhookId = normalizeOptionalString(params.threadBinding?.webhookId) ?? normalizeOptionalString(params.threadBinding?.metadata?.webhookId) ?? "";
|
|
406
|
-
if (boundWebhookId && webhookId === boundWebhookId) return true;
|
|
407
|
-
if (!(normalizeOptionalString(params.threadId) ?? "")) return false;
|
|
408
|
-
if (params.threadBinding) return true;
|
|
409
|
-
return false;
|
|
410
|
-
}
|
|
411
|
-
//#endregion
|
|
412
217
|
//#region extensions/discord/src/monitor/message-handler.preflight-history.ts
|
|
413
218
|
function buildDiscordPreflightHistoryEntry(params) {
|
|
414
219
|
const textForHistory = resolveDiscordMessageHistoryText(params.message, { includeForwarded: true });
|
|
@@ -417,6 +222,7 @@ function buildDiscordPreflightHistoryEntry(params) {
|
|
|
417
222
|
body: textForHistory,
|
|
418
223
|
timestamp: resolveTimestampMs(params.message.timestamp),
|
|
419
224
|
messageId: params.message.id,
|
|
225
|
+
mediaIds: resolveDiscordHistoryMediaIds(params.message),
|
|
420
226
|
senderProvenance: createDiscordHistorySenderProvenance({
|
|
421
227
|
sender: params.sender,
|
|
422
228
|
memberRoleIds: params.memberRoleIds
|
|
@@ -435,29 +241,6 @@ function logDiscordPreflightInboundSummary(params) {
|
|
|
435
241
|
logVerbose(`discord: inbound id=${params.messageId} guild=${params.guildId ?? "dm"} channel=${params.channelId} mention=${params.wasMentioned ? "yes" : "no"} type=${params.isDirectMessage ? "dm" : params.isGroupDm ? "group-dm" : "guild"} content=${params.hasContent ? "yes" : "no"}`);
|
|
436
242
|
}
|
|
437
243
|
//#endregion
|
|
438
|
-
//#region extensions/discord/src/monitor/message-handler.preflight-runtime.ts
|
|
439
|
-
const loadPluralKitRuntime = createLazyRuntimeModule(() => import("./pluralkit-CdAt1G0P.mjs").then((n) => n.n));
|
|
440
|
-
const loadPreflightAudioRuntime = createLazyRuntimeModule(() => import("./preflight-audio-DrnqFA8U.mjs"));
|
|
441
|
-
const loadSystemEventsRuntime = createLazyRuntimeModule(() => import("./system-events-B2YEEMbS.mjs"));
|
|
442
|
-
const loadDiscordThreadingRuntime = createLazyRuntimeModule(() => import("./transcripts-source-CuWYgayu.mjs").then((n) => n.f));
|
|
443
|
-
//#endregion
|
|
444
|
-
//#region extensions/discord/src/monitor/message-handler.preflight-pluralkit.ts
|
|
445
|
-
async function resolveDiscordPreflightPluralKitInfo(params) {
|
|
446
|
-
if (!params.config?.enabled || !params.webhookId) return null;
|
|
447
|
-
try {
|
|
448
|
-
const { fetchPluralKitMessageInfo } = await loadPluralKitRuntime();
|
|
449
|
-
const info = await fetchPluralKitMessageInfo({
|
|
450
|
-
messageId: params.message.id,
|
|
451
|
-
config: params.config,
|
|
452
|
-
signal: params.abortSignal
|
|
453
|
-
});
|
|
454
|
-
return params.abortSignal?.aborted ? null : info;
|
|
455
|
-
} catch (err) {
|
|
456
|
-
logVerbose(`discord: pluralkit lookup failed for ${params.message.id}: ${String(err)}`);
|
|
457
|
-
return null;
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
//#endregion
|
|
461
244
|
//#region extensions/discord/src/monitor/message-handler.preflight-thread.ts
|
|
462
245
|
async function resolveDiscordPreflightThreadContext(params) {
|
|
463
246
|
const { resolveDiscordThreadChannel, resolveDiscordThreadParentInfo } = await loadDiscordThreadingRuntime();
|
|
@@ -486,8 +269,9 @@ async function resolveDiscordPreflightThreadContext(params) {
|
|
|
486
269
|
const loadConversationRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/conversation-binding-runtime"));
|
|
487
270
|
async function resolveDiscordPreflightRoute(params) {
|
|
488
271
|
const conversationRuntime = await loadConversationRuntime();
|
|
489
|
-
const route = resolveDiscordConversationRoute({
|
|
272
|
+
const route = ({ boundAgentId }) => resolveDiscordConversationRoute({
|
|
490
273
|
cfg: params.preflight.cfg,
|
|
274
|
+
defaultAgentId: boundAgentId,
|
|
491
275
|
accountId: params.preflight.accountId,
|
|
492
276
|
guildId: params.preflight.data.guild_id ?? void 0,
|
|
493
277
|
memberRoleIds: params.memberRoleIds,
|
|
@@ -507,7 +291,7 @@ async function resolveDiscordPreflightRoute(params) {
|
|
|
507
291
|
});
|
|
508
292
|
const { runtimeRoute, configuredRoute } = resolveDiscordConversationBindingRoute({
|
|
509
293
|
cfg: params.preflight.cfg,
|
|
510
|
-
route,
|
|
294
|
+
resolveRoute: route,
|
|
511
295
|
accountId: params.preflight.accountId,
|
|
512
296
|
runtimeConversationId: bindingConversationId,
|
|
513
297
|
configuredConversationId: params.messageChannelId,
|
|
@@ -518,7 +302,7 @@ async function resolveDiscordPreflightRoute(params) {
|
|
|
518
302
|
if (!threadBinding && configuredBinding) threadBinding = configuredBinding.record;
|
|
519
303
|
const boundSessionKey = conversationRuntime.isPluginOwnedSessionBindingRecord(threadBinding) ? "" : runtimeRoute.boundSessionKey ?? threadBinding?.targetSessionKey?.trim();
|
|
520
304
|
const effectiveRoute = runtimeRoute.boundSessionKey ? runtimeRoute.route : resolveDiscordEffectiveRoute({
|
|
521
|
-
route,
|
|
305
|
+
route: configuredRoute?.route ?? runtimeRoute.route,
|
|
522
306
|
boundSessionKey,
|
|
523
307
|
configuredRoute,
|
|
524
308
|
matchedBy: "binding.channel"
|
|
@@ -621,8 +405,8 @@ async function preflightDiscordMessage(params) {
|
|
|
621
405
|
logVerbose(`discord: drop message ${message.id} (missing channel id)`);
|
|
622
406
|
return null;
|
|
623
407
|
}
|
|
624
|
-
const allowBotsSetting = params.discordConfig?.allowBots;
|
|
625
|
-
const allowBotsMode = allowBotsSetting === "mentions" ? "mentions" : allowBotsSetting
|
|
408
|
+
const allowBotsSetting = params.discordConfig?.allowBots ?? true;
|
|
409
|
+
const allowBotsMode = allowBotsSetting === "mentions" ? "mentions" : allowBotsSetting ? "all" : "off";
|
|
626
410
|
if (params.botUserId && author.id === params.botUserId) return null;
|
|
627
411
|
const hydratedSources = [];
|
|
628
412
|
for (const source of [...params.precedingMessages ?? [], message]) {
|
|
@@ -713,7 +497,6 @@ async function preflightDiscordMessage(params) {
|
|
|
713
497
|
const resolvedAccountId = params.accountId ?? resolveDefaultDiscordAccountId(params.cfg);
|
|
714
498
|
const allowNameMatching = isDangerousNameMatchingEnabled(params.discordConfig);
|
|
715
499
|
let commandAuthorized = true;
|
|
716
|
-
let channelIngress;
|
|
717
500
|
let resolveChannelIngress;
|
|
718
501
|
if (isDirectMessage) {
|
|
719
502
|
const access = await resolveDiscordDmPreflightAccess({
|
|
@@ -728,7 +511,6 @@ async function preflightDiscordMessage(params) {
|
|
|
728
511
|
if (params.abortSignal?.aborted || params.isPolicyCurrent?.() === false) return null;
|
|
729
512
|
if (!access) return null;
|
|
730
513
|
commandAuthorized = access.commandAuthorized;
|
|
731
|
-
channelIngress = access.channelIngress;
|
|
732
514
|
resolveChannelIngress = access.resolveChannelIngress;
|
|
733
515
|
}
|
|
734
516
|
const botId = params.botUserId;
|
|
@@ -748,7 +530,7 @@ async function preflightDiscordMessage(params) {
|
|
|
748
530
|
abortSignal: params.abortSignal
|
|
749
531
|
});
|
|
750
532
|
if (!threadContext || params.isPolicyCurrent?.() === false) return null;
|
|
751
|
-
const { earlyThreadChannel, earlyThreadParentId, earlyThreadParentName, earlyThreadParentType } = threadContext;
|
|
533
|
+
const { earlyThreadChannel: threadChannel, earlyThreadParentId: threadParentId, earlyThreadParentName: threadParentName, earlyThreadParentType: threadParentType } = threadContext;
|
|
752
534
|
const memberRoleIds = Array.isArray(params.data.rawMember?.roles) ? params.data.rawMember.roles : [];
|
|
753
535
|
const routeState = await resolveDiscordPreflightRoute({
|
|
754
536
|
preflight: params,
|
|
@@ -757,7 +539,7 @@ async function preflightDiscordMessage(params) {
|
|
|
757
539
|
isGroupDm,
|
|
758
540
|
messageChannelId,
|
|
759
541
|
memberRoleIds,
|
|
760
|
-
earlyThreadParentId
|
|
542
|
+
earlyThreadParentId: threadParentId
|
|
761
543
|
});
|
|
762
544
|
if (params.isPolicyCurrent?.() === false) return null;
|
|
763
545
|
const { conversationRuntime, threadBinding, configuredBinding, boundSessionKey, effectiveRoute, boundAgentId, baseSessionKey } = routeState;
|
|
@@ -769,7 +551,7 @@ async function preflightDiscordMessage(params) {
|
|
|
769
551
|
logVerbose(`discord: drop bound-thread webhook echo message ${message.id}`);
|
|
770
552
|
return null;
|
|
771
553
|
}
|
|
772
|
-
const isBoundThreadSession = Boolean(threadBinding &&
|
|
554
|
+
const isBoundThreadSession = Boolean(threadBinding && threadChannel);
|
|
773
555
|
const bypassMentionRequirement = isBoundThreadSession;
|
|
774
556
|
if (isBoundThreadBotSystemMessage({
|
|
775
557
|
isBoundThreadSession,
|
|
@@ -813,11 +595,7 @@ async function preflightDiscordMessage(params) {
|
|
|
813
595
|
logVerbose(`Blocked discord guild ${params.data.guild_id ?? "unknown"} (not in discord.guilds)`);
|
|
814
596
|
return null;
|
|
815
597
|
}
|
|
816
|
-
const
|
|
817
|
-
const threadParentId = earlyThreadParentId;
|
|
818
|
-
const threadParentName = earlyThreadParentName;
|
|
819
|
-
const threadParentType = earlyThreadParentType;
|
|
820
|
-
const { threadName, configChannelName, configChannelSlug, displayChannelName, displayChannelSlug, guildSlug, channelConfig } = resolveDiscordPreflightChannelContext({
|
|
598
|
+
const { threadName, displayChannelName, displayChannelSlug, guildSlug, channelConfig } = resolveDiscordPreflightChannelContext({
|
|
821
599
|
isGuildMessage,
|
|
822
600
|
messageChannelId,
|
|
823
601
|
channelName,
|
|
@@ -833,7 +611,7 @@ async function preflightDiscordMessage(params) {
|
|
|
833
611
|
channelMatchMeta,
|
|
834
612
|
channelId: messageChannelId
|
|
835
613
|
});
|
|
836
|
-
|
|
614
|
+
if (!resolveDiscordPreflightChannelAccess({
|
|
837
615
|
isGuildMessage,
|
|
838
616
|
isGroupDm,
|
|
839
617
|
groupPolicy: params.groupPolicy,
|
|
@@ -844,9 +622,7 @@ async function preflightDiscordMessage(params) {
|
|
|
844
622
|
guildInfo,
|
|
845
623
|
channelConfig,
|
|
846
624
|
channelMatchMeta
|
|
847
|
-
});
|
|
848
|
-
if (!channelAccess.allowed) return null;
|
|
849
|
-
const { channelAllowlistConfigured, channelAllowed } = channelAccess;
|
|
625
|
+
})) return null;
|
|
850
626
|
const historyEntry = buildDiscordPreflightHistoryEntry({
|
|
851
627
|
isGuildMessage,
|
|
852
628
|
historyLimit: params.historyLimit,
|
|
@@ -855,15 +631,15 @@ async function preflightDiscordMessage(params) {
|
|
|
855
631
|
sender,
|
|
856
632
|
memberRoleIds
|
|
857
633
|
});
|
|
858
|
-
const
|
|
859
|
-
const shouldRequireMentionByConfig = resolveDiscordShouldRequireMention({
|
|
634
|
+
const mentionPolicy = resolveDiscordMentionPolicy({
|
|
860
635
|
isGuildMessage,
|
|
861
636
|
isThread: Boolean(threadChannel),
|
|
862
637
|
botId,
|
|
863
|
-
threadOwnerId,
|
|
638
|
+
threadOwnerId: threadChannel ? resolveDiscordChannelInfoSafe(threadChannel).ownerId ?? channelInfo?.ownerId : void 0,
|
|
864
639
|
channelConfig,
|
|
865
640
|
guildInfo
|
|
866
641
|
});
|
|
642
|
+
const shouldRequireMentionByConfig = mentionPolicy.requireMention;
|
|
867
643
|
const shouldRequireMention = resolvePreflightMentionRequirement({
|
|
868
644
|
shouldRequireMention: shouldRequireMentionByConfig,
|
|
869
645
|
bypassMentionRequirement
|
|
@@ -891,15 +667,14 @@ async function preflightDiscordMessage(params) {
|
|
|
891
667
|
abortSignal: params.abortSignal
|
|
892
668
|
});
|
|
893
669
|
if (params.abortSignal?.aborted || params.isPolicyCurrent?.() === false) return null;
|
|
894
|
-
const mentionText = hasTypedText ? baseText : "";
|
|
895
670
|
const { implicitMentionKinds, wasMentioned: wasNormallyMentioned } = resolveDiscordMentionState({
|
|
896
|
-
authorIsBot: Boolean(author.bot),
|
|
897
671
|
botId,
|
|
672
|
+
authorIsBot: Boolean(author.bot),
|
|
898
673
|
hasAnyMention,
|
|
899
674
|
isDirectMessage,
|
|
900
675
|
isExplicitlyMentioned: explicitlyMentioned,
|
|
901
676
|
mentionRegexes,
|
|
902
|
-
mentionText,
|
|
677
|
+
mentionText: hasTypedText ? baseText : "",
|
|
903
678
|
mentionedEveryone: message.mentionedEveryone,
|
|
904
679
|
referencedAuthorId: message.referencedMessage?.author?.id,
|
|
905
680
|
senderIsPluralKit: sender.isPluralKit,
|
|
@@ -915,7 +690,7 @@ async function preflightDiscordMessage(params) {
|
|
|
915
690
|
directUserId: author.id,
|
|
916
691
|
conversationId: messageChannelId
|
|
917
692
|
}).id : params.cfg.broadcast?.[`discord:${messageChannelId}`] !== void 0 ? messageChannelId : threadParentId ?? messageChannelId,
|
|
918
|
-
text:
|
|
693
|
+
text: (hasTypedText ? baseText : "") || preflightTranscript || "",
|
|
919
694
|
sessionKey: boundSessionKey || effectiveRoute.sessionKey,
|
|
920
695
|
acpBinding: Boolean(configuredBinding)
|
|
921
696
|
});
|
|
@@ -960,7 +735,6 @@ async function preflightDiscordMessage(params) {
|
|
|
960
735
|
const commandAccess = await resolveCommandIngress();
|
|
961
736
|
if (params.isPolicyCurrent?.() === false) return null;
|
|
962
737
|
commandAuthorized = commandAccess.commandAccess.authorized;
|
|
963
|
-
channelIngress = commandAccess;
|
|
964
738
|
resolveChannelIngress = resolveCommandIngress;
|
|
965
739
|
if (commandAccess.commandAccess.shouldBlockControlCommand) {
|
|
966
740
|
logInboundDrop({
|
|
@@ -983,6 +757,7 @@ async function preflightDiscordMessage(params) {
|
|
|
983
757
|
policy: {
|
|
984
758
|
isGroup: isGuildMessage,
|
|
985
759
|
requireMention: shouldRequireMention,
|
|
760
|
+
allowedImplicitMentionKinds: mentionPolicy.allowedImplicitMentionKinds,
|
|
986
761
|
allowTextCommands,
|
|
987
762
|
hasControlCommand: hasControlCommandInMessage,
|
|
988
763
|
commandAuthorized
|
|
@@ -1108,12 +883,31 @@ async function preflightDiscordMessage(params) {
|
|
|
1108
883
|
if (params.abortSignal?.aborted) return null;
|
|
1109
884
|
preparedMedia.push(...forwardedMedia);
|
|
1110
885
|
logDebug(`[discord-preflight] success: route=${effectiveRoute.agentId} sessionKey=${effectiveRoute.sessionKey}`);
|
|
1111
|
-
return
|
|
1112
|
-
|
|
886
|
+
return {
|
|
887
|
+
cfg: params.cfg,
|
|
888
|
+
client: params.client,
|
|
889
|
+
discordConfig: params.discordConfig,
|
|
890
|
+
accountId: params.accountId,
|
|
891
|
+
token: params.token,
|
|
892
|
+
runtime: params.runtime,
|
|
893
|
+
buildContext: params.buildContext,
|
|
894
|
+
botUserId: params.botUserId,
|
|
895
|
+
abortSignal: params.abortSignal,
|
|
896
|
+
isPolicyCurrent: params.isPolicyCurrent,
|
|
897
|
+
guildHistories: params.guildHistories,
|
|
898
|
+
historyLimit: params.historyLimit,
|
|
899
|
+
mediaMaxBytes: params.mediaMaxBytes,
|
|
900
|
+
textLimit: params.textLimit,
|
|
901
|
+
replyToMode: params.replyToMode,
|
|
902
|
+
ackReactionScope: params.ackReactionScope,
|
|
903
|
+
groupPolicy: params.groupPolicy,
|
|
904
|
+
turnAdoptionLifecycle: params.turnAdoptionLifecycle,
|
|
905
|
+
threadBindings: params.threadBindings,
|
|
906
|
+
discordRestFetch: params.discordRestFetch,
|
|
1113
907
|
groupThread,
|
|
1114
908
|
data,
|
|
1115
|
-
client: params.client,
|
|
1116
909
|
message,
|
|
910
|
+
sourceMessageIds: hydratedSources.map((source) => source.message.id),
|
|
1117
911
|
messageChannelId,
|
|
1118
912
|
author,
|
|
1119
913
|
sender,
|
|
@@ -1125,7 +919,6 @@ async function preflightDiscordMessage(params) {
|
|
|
1125
919
|
isDirectMessage,
|
|
1126
920
|
isGroupDm,
|
|
1127
921
|
commandAuthorized,
|
|
1128
|
-
channelIngress,
|
|
1129
922
|
resolveChannelIngress,
|
|
1130
923
|
baseText,
|
|
1131
924
|
messageText,
|
|
@@ -1144,25 +937,18 @@ async function preflightDiscordMessage(params) {
|
|
|
1144
937
|
threadParentName,
|
|
1145
938
|
threadParentType,
|
|
1146
939
|
threadName,
|
|
1147
|
-
configChannelName,
|
|
1148
|
-
configChannelSlug,
|
|
1149
|
-
displayChannelName,
|
|
1150
940
|
displayChannelSlug,
|
|
1151
941
|
baseSessionKey,
|
|
1152
942
|
channelConfig,
|
|
1153
|
-
channelAllowlistConfigured,
|
|
1154
|
-
channelAllowed,
|
|
1155
943
|
shouldRequireMention,
|
|
1156
944
|
groupRequireMention: shouldRequireMentionByConfig,
|
|
1157
945
|
hasAnyMention,
|
|
1158
946
|
hasControlCommand: hasControlCommandInMessage,
|
|
1159
|
-
allowTextCommands,
|
|
1160
947
|
shouldBypassMention: mentionDecision.shouldBypassMention,
|
|
1161
948
|
effectiveWasMentioned,
|
|
1162
949
|
inboundEventKind,
|
|
1163
|
-
canDetectMention
|
|
1164
|
-
|
|
1165
|
-
});
|
|
950
|
+
canDetectMention
|
|
951
|
+
};
|
|
1166
952
|
}
|
|
1167
953
|
//#endregion
|
|
1168
|
-
export { preflightDiscordMessage,
|
|
954
|
+
export { preflightDiscordMessage, shouldIgnoreBoundThreadWebhookMessage };
|