@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,13 +1,13 @@
|
|
|
1
|
-
import { v as RateLimitError } from "./discord-
|
|
2
|
-
import { parseStrictNonNegativeInteger, resolveIntegerOption } from "openclaw/plugin-sdk/number-runtime";
|
|
1
|
+
import { v as RateLimitError } from "./discord-0xJYfdDD.mjs";
|
|
3
2
|
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
3
|
+
import { parseStrictNonNegativeInteger, resolveIntegerOption } from "openclaw/plugin-sdk/number-runtime";
|
|
4
4
|
import { collectErrorGraphCandidates, extractErrorCode, formatErrorMessage, readErrorName } from "openclaw/plugin-sdk/error-runtime";
|
|
5
5
|
import { classifyTransientNetworkErrorCode, createChannelApiRetryRunner, resolveRetryConfig, retryAsync } from "openclaw/plugin-sdk/retry-runtime";
|
|
6
6
|
import { buildMessagingTarget, parseMentionPrefixOrAtUserTarget, requireTargetKind } from "openclaw/plugin-sdk/channel-targets";
|
|
7
7
|
import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
8
8
|
import { resolveAllowlistMatchByCandidates } from "openclaw/plugin-sdk/allow-from";
|
|
9
9
|
import { chunkByParagraph } from "openclaw/plugin-sdk/reply-chunking";
|
|
10
|
-
import {
|
|
10
|
+
import { chunkTextForOutbound, findCodeRegions } from "openclaw/plugin-sdk/text-chunking";
|
|
11
11
|
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
|
|
12
12
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
13
13
|
import { attachChannelToResults } from "openclaw/plugin-sdk/channel-send-result";
|
|
@@ -222,6 +222,42 @@ function createDiscordSendResult(params) {
|
|
|
222
222
|
};
|
|
223
223
|
}
|
|
224
224
|
//#endregion
|
|
225
|
+
//#region packages/normalization-core/src/utf16-slice.ts
|
|
226
|
+
function isHighSurrogate(codeUnit) {
|
|
227
|
+
return codeUnit >= 55296 && codeUnit <= 56319;
|
|
228
|
+
}
|
|
229
|
+
function isLowSurrogate(codeUnit) {
|
|
230
|
+
return codeUnit >= 56320 && codeUnit <= 57343;
|
|
231
|
+
}
|
|
232
|
+
/** Moves a chunk boundary away from the middle of a UTF-16 surrogate pair. */
|
|
233
|
+
function avoidTrailingHighSurrogateBreak(text, start, end) {
|
|
234
|
+
if (end <= start || end >= text.length || !isHighSurrogate(text.charCodeAt(end - 1)) || !isLowSurrogate(text.charCodeAt(end))) return end;
|
|
235
|
+
const adjusted = end - 1;
|
|
236
|
+
return adjusted > start ? adjusted : end + 1;
|
|
237
|
+
}
|
|
238
|
+
//#endregion
|
|
239
|
+
//#region packages/normalization-core/src/grapheme.ts
|
|
240
|
+
let graphemeSegmenter;
|
|
241
|
+
function getGraphemeSegmenter() {
|
|
242
|
+
graphemeSegmenter ??= new Intl.Segmenter(void 0, { granularity: "grapheme" });
|
|
243
|
+
return graphemeSegmenter;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Chooses a whole-grapheme cut within the hard budget, honoring a usable preference.
|
|
247
|
+
* If no whole grapheme fits, allowPartial permits a surrogate-safe progress cut;
|
|
248
|
+
* a leading surrogate pair can exceed maxEnd by one code unit.
|
|
249
|
+
*/
|
|
250
|
+
function findGraphemeChunkEnd(text, start, maxEnd, preferredEnd = maxEnd, allowPartial = true) {
|
|
251
|
+
const hardEnd = Math.min(maxEnd, text.length);
|
|
252
|
+
if (hardEnd <= start) return start;
|
|
253
|
+
const preferred = Number.isInteger(preferredEnd) && preferredEnd > start && preferredEnd <= hardEnd ? preferredEnd : hardEnd;
|
|
254
|
+
if (preferred === text.length) return preferred;
|
|
255
|
+
const segments = getGraphemeSegmenter().segment(text);
|
|
256
|
+
let end = segments.containing(preferred)?.index ?? preferred;
|
|
257
|
+
if (end <= start && preferred < hardEnd) end = hardEnd === text.length ? hardEnd : segments.containing(hardEnd)?.index ?? hardEnd;
|
|
258
|
+
return end > start ? end : allowPartial ? avoidTrailingHighSurrogateBreak(text, start, hardEnd) : start;
|
|
259
|
+
}
|
|
260
|
+
//#endregion
|
|
225
261
|
//#region extensions/discord/src/chunk.ts
|
|
226
262
|
const DEFAULT_MAX_CHARS = 2e3;
|
|
227
263
|
const DEFAULT_MAX_LINES = 17;
|
|
@@ -453,24 +489,53 @@ function createDiscordRanges(source, maxChars, maxLines) {
|
|
|
453
489
|
offset += line.length + 1;
|
|
454
490
|
}
|
|
455
491
|
if (!fence) collect(source.length);
|
|
456
|
-
const
|
|
457
|
-
|
|
492
|
+
const firstSpanEndingAfter = (position) => {
|
|
493
|
+
let low = 0;
|
|
494
|
+
let high = spans.length;
|
|
495
|
+
while (low < high) {
|
|
496
|
+
const middle = low + Math.floor((high - low) / 2);
|
|
497
|
+
if (expectDefined(spans[middle], "Discord inline span").end <= position) low = middle + 1;
|
|
498
|
+
else high = middle;
|
|
499
|
+
}
|
|
500
|
+
return low;
|
|
501
|
+
};
|
|
502
|
+
const firstPrefixEndingAfter = (position) => {
|
|
503
|
+
let low = 0;
|
|
504
|
+
let high = spans.length;
|
|
505
|
+
while (low < high) {
|
|
506
|
+
const middle = low + Math.floor((high - low) / 2);
|
|
507
|
+
const span = expectDefined(spans[middle], "Discord inline span");
|
|
508
|
+
if (span.base + span.code.prefix.end <= position) low = middle + 1;
|
|
509
|
+
else high = middle;
|
|
510
|
+
}
|
|
511
|
+
return spans[low];
|
|
512
|
+
};
|
|
513
|
+
const overlaps = (start, end) => {
|
|
514
|
+
const span = spans[firstSpanEndingAfter(start)];
|
|
515
|
+
return Boolean(span && span.start < end);
|
|
516
|
+
};
|
|
517
|
+
const joins = (end, start) => {
|
|
518
|
+
if (end > start) return false;
|
|
519
|
+
const span = spans[firstSpanEndingAfter(end)];
|
|
520
|
+
return Boolean(span && span.start < end && start < span.end);
|
|
521
|
+
};
|
|
458
522
|
const boundary = (start, end) => {
|
|
459
|
-
let safe =
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
523
|
+
let safe = findGraphemeChunkEnd(source, start, end);
|
|
524
|
+
if (safe === end - 1 && source[end - 1] === "\r" && source[end] === "\n") safe = end;
|
|
525
|
+
const prefixSpan = firstPrefixEndingAfter(safe);
|
|
526
|
+
if (prefixSpan && prefixSpan.base + prefixSpan.code.prefix.start < safe) return prefixSpan.base + prefixSpan.code.prefix.start;
|
|
527
|
+
const span = spans[firstSpanEndingAfter(safe)];
|
|
528
|
+
if (span && span.start < safe) {
|
|
529
|
+
if (source[safe - 1] === "\r" && source[safe] === "\n") safe -= 1;
|
|
530
|
+
if (span.atomicTicks) while (source[safe - 1] === "`" && source[safe] === "`") safe -= 1;
|
|
467
531
|
}
|
|
468
532
|
return safe;
|
|
469
533
|
};
|
|
470
534
|
const render = (start, end) => {
|
|
471
535
|
let cursor = start, text = "";
|
|
472
|
-
for (
|
|
473
|
-
|
|
536
|
+
for (let index = firstSpanEndingAfter(start); index < spans.length; index += 1) {
|
|
537
|
+
const span = expectDefined(spans[index], "Discord inline span");
|
|
538
|
+
if (span.start >= end) break;
|
|
474
539
|
const prefix = span.code.prefix;
|
|
475
540
|
const prefixStart = span.base + prefix.start;
|
|
476
541
|
if (start > span.base + prefix.ownerStart && cursor <= prefixStart) {
|
|
@@ -627,4 +692,4 @@ function createDiscordRetryRunner(params) {
|
|
|
627
692
|
};
|
|
628
693
|
}
|
|
629
694
|
//#endregion
|
|
630
|
-
export {
|
|
695
|
+
export { matchesDiscordToolContextTarget as _, recordDiscordMessageCreateAmbiguity as a, parseDiscordTarget as b, createDiscordSendReceipt as c, toDiscordOutboundDeliveryResult as d, createReusableDiscordReplyReference as f, looksLikeDiscordTargetId as g, allowFromContainsDiscordUserId as h, hasDiscordMessageCreateAmbiguity as i, createDiscordSendReceiptFromResults as l, resolveDiscordReplyReference as m, classifyDiscordDeliveryFailure as n, chunkDiscordTextWithMode as o, resolveDiscordReplyMessageId as p, createDiscordRetryRunner as r, findGraphemeChunkEnd as s, canFallbackDiscordWebhookSend as t, createDiscordSendResult as u, normalizeDiscordMessagingTarget as v, resolveDiscordChannelId as x, normalizeDiscordOutboundTarget as y };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
//#region \0rolldown/runtime.js
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __exportAll = (all, no_symbols) => {
|
|
8
|
+
let target = {};
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
13
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
18
|
+
key = keys[i];
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
20
|
+
get: ((k) => from[k]).bind(null, key),
|
|
21
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
27
|
+
//#endregion
|
|
28
|
+
export { __reExport as n, __exportAll as t };
|
|
@@ -1,32 +1,21 @@
|
|
|
1
|
-
import { h as readDiscordComponentSpec, m as coerceDiscordComponentParam } from "./components-
|
|
2
|
-
import { l as resolveDiscordChannelConfigWithFallback, o as normalizeDiscordSlug, r as isDiscordGroupAllowedByPolicy, t as isDiscordThreadChannelType,
|
|
3
|
-
import { o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-
|
|
4
|
-
import { r as sendDiscordComponentMessage } from "./send.components-
|
|
5
|
-
import { b as
|
|
6
|
-
import {
|
|
7
|
-
import { r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-
|
|
8
|
-
import { n as getPresence } from "./presence-cache-
|
|
9
|
-
import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchGuildInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-
|
|
10
|
-
import "./targets-
|
|
1
|
+
import { h as readDiscordComponentSpec, m as coerceDiscordComponentParam } from "./components-Cq1PvIpN.mjs";
|
|
2
|
+
import { l as resolveDiscordChannelConfigWithFallback, o as normalizeDiscordSlug, r as isDiscordGroupAllowedByPolicy, t as isDiscordThreadChannelType, y as resolveGroupDmAllow } from "./channel-type-DRCrEMss.mjs";
|
|
3
|
+
import { o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, t as createDiscordActionGate } from "./accounts-ChaMcixG.mjs";
|
|
4
|
+
import { r as sendDiscordComponentMessage } from "./send.components-DxQAMfES.mjs";
|
|
5
|
+
import { b as parseDiscordTarget, f as createReusableDiscordReplyReference, m as resolveDiscordReplyReference, x as resolveDiscordChannelId } from "./retry-pz_cSha2.mjs";
|
|
6
|
+
import { C as hasAnyChannelPermissionDiscord, H as getGateway, P as createDiscordRuntimeAccountContext, _ as canManageGuildMemberRoleDiscord, b as fetchChannelPermissionsDiscord, n as buildDiscordTextChunks, u as resolveDiscordTargetChannelId, v as canManageGuildRoleDiscord, w as hasAnyGuildPermissionDiscord, y as canViewDiscordGuildChannel } from "./send.shared-DGFkbkQR.mjs";
|
|
7
|
+
import { r as sendStickerDiscord, t as sendMessageDiscord } from "./send.outbound-BISKnb-a.mjs";
|
|
8
|
+
import { n as getPresence } from "./presence-cache-Di3H3DIU.mjs";
|
|
9
|
+
import { A as listScheduledEventsDiscord, B as moveChannelDiscord, C as fetchChannelInfoDiscord, D as fetchVoiceStatusDiscord, E as fetchRoleInfoDiscord, F as uploadEmojiDiscord, H as setChannelPermissionDiscord, I as uploadStickerDiscord, L as createChannelDiscord, M as resolveEventCoverImage, N as timeoutMemberDiscord, O as kickMemberDiscord, P as listGuildEmojisDiscord, R as deleteChannelDiscord, S as createScheduledEventDiscord, T as fetchMemberInfoDiscord, V as removeChannelPermissionDiscord, _ as readMessagesDiscord, a as removeReactionDiscord, b as addRoleDiscord, d as deleteMessageDiscord, f as editMessageDiscord, g as pinMessageDiscord, h as listThreadsDiscord, i as removeOwnReactionsDiscord, j as removeRoleDiscord, k as listGuildChannelsDiscord, l as DiscordThreadInitialMessageError, m as listPinsDiscord, n as fetchReactionsDiscord, p as fetchMessageDiscord, r as reactMessageDiscord, s as sendVoiceMessageDiscord, u as createThreadDiscord, v as searchMessagesDiscord, w as fetchGuildInfoDiscord, x as banMemberDiscord, y as unpinMessageDiscord, z as editChannelDiscord } from "./send-CrfEI6Bs.mjs";
|
|
10
|
+
import "./targets-0KUcEIYx.mjs";
|
|
11
11
|
import { ChannelType, PermissionFlagsBits } from "discord-api-types/v10";
|
|
12
12
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
13
|
-
import { asBoolean, isRecord, normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
13
|
+
import { asBoolean, asOptionalRecord, isRecord, normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
14
|
+
import { createChannelProgressDraftCompositor } from "openclaw/plugin-sdk/channel-outbound";
|
|
14
15
|
import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
15
16
|
import { assertMediaNotDataUrl, jsonResult, parseAvailableTags, readNonNegativeIntegerParam, readPositiveIntegerParam, readReactionParams, readStringArrayParam, readStringParam, withNormalizedTimestamp } from "openclaw/plugin-sdk/channel-actions";
|
|
16
17
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
17
18
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
18
|
-
//#region extensions/discord/src/actions/runtime.messaging.runtime.ts
|
|
19
|
-
async function resolveDiscordReactionTargetChannelId(params) {
|
|
20
|
-
try {
|
|
21
|
-
return resolveDiscordChannelId(params.target);
|
|
22
|
-
} catch {
|
|
23
|
-
return (await resolveDiscordTargetChannelId(params.target, {
|
|
24
|
-
cfg: params.cfg,
|
|
25
|
-
accountId: params.accountId
|
|
26
|
-
})).channelId;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//#endregion
|
|
30
19
|
//#region extensions/discord/src/actions/runtime.shared.ts
|
|
31
20
|
/** Discord REST auto_archive_duration allowlist (minutes). */
|
|
32
21
|
const DISCORD_AUTO_ARCHIVE_MINUTES = /* @__PURE__ */ new Set([
|
|
@@ -383,6 +372,7 @@ function createDiscordMessagingActionContext(params) {
|
|
|
383
372
|
params: params.input,
|
|
384
373
|
isActionEnabled: params.isActionEnabled,
|
|
385
374
|
cfg: params.cfg,
|
|
375
|
+
accountConfig,
|
|
386
376
|
options: params.options,
|
|
387
377
|
accountId,
|
|
388
378
|
resolveChannelId: () => resolveDiscordChannelId(readStringParam(params.input, "channelId", { required: true })),
|
|
@@ -390,19 +380,10 @@ function createDiscordMessagingActionContext(params) {
|
|
|
390
380
|
const targetChannelId = resolveDiscordChannelId(channelId);
|
|
391
381
|
const target = await resolveReadTargetContext(targetChannelId);
|
|
392
382
|
const currentConversation = isCurrentReadTarget(targetChannelId);
|
|
393
|
-
if (guildId)
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
if (!isDiscordReadTargetAllowedInGuild({
|
|
398
|
-
groupPolicy,
|
|
399
|
-
guildInfo,
|
|
400
|
-
target
|
|
401
|
-
})) throw new Error("Discord read target channel is not allowed.");
|
|
402
|
-
return;
|
|
403
|
-
}
|
|
404
|
-
if (target.guildId) {
|
|
405
|
-
const guildInfo = await resolveReadGuildEntry(target.guildId);
|
|
383
|
+
if (guildId && target.metadataKnown && target.guildId !== guildId) throw new Error("Discord read target channel is not allowed.");
|
|
384
|
+
const targetGuildId = guildId || target.guildId;
|
|
385
|
+
if (targetGuildId) {
|
|
386
|
+
const guildInfo = await resolveReadGuildEntry(targetGuildId);
|
|
406
387
|
if (directOperator && isExpandedReadTargetEnabled(guildInfo, target, false) || currentConversation && isExpandedReadTargetEnabled(guildInfo, target, true)) return;
|
|
407
388
|
if (!isDiscordReadTargetAllowedInGuild({
|
|
408
389
|
groupPolicy,
|
|
@@ -498,11 +479,14 @@ function createDiscordMessagingActionContext(params) {
|
|
|
498
479
|
}
|
|
499
480
|
return resolveDiscordChannelId(target);
|
|
500
481
|
}
|
|
501
|
-
|
|
502
|
-
target
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
482
|
+
try {
|
|
483
|
+
return resolveDiscordChannelId(target);
|
|
484
|
+
} catch {
|
|
485
|
+
return (await resolveDiscordTargetChannelId(target, {
|
|
486
|
+
cfg: params.cfg,
|
|
487
|
+
accountId: resolvedReactionAccountId
|
|
488
|
+
})).channelId;
|
|
489
|
+
}
|
|
506
490
|
},
|
|
507
491
|
withOpts,
|
|
508
492
|
withReactionRuntimeOptions: (extra) => ({
|
|
@@ -642,19 +626,6 @@ async function verifySenderGuildAdminPermission(params) {
|
|
|
642
626
|
if (canManageRole === false || targetType === "role" && canManageRole === null) throw new Error("Sender cannot manage the requested role overwrite.");
|
|
643
627
|
}
|
|
644
628
|
}
|
|
645
|
-
async function runRoleMutation(params) {
|
|
646
|
-
const guildId = readStringParam(params.values, "guildId", { required: true });
|
|
647
|
-
const userId = readStringParam(params.values, "userId", { required: true });
|
|
648
|
-
const roleId = readStringParam(params.values, "roleId", { required: true });
|
|
649
|
-
await params.mutate({
|
|
650
|
-
guildId,
|
|
651
|
-
userId,
|
|
652
|
-
roleId
|
|
653
|
-
}, createDiscordActionOptions({
|
|
654
|
-
cfg: params.cfg,
|
|
655
|
-
accountId: params.accountId
|
|
656
|
-
}));
|
|
657
|
-
}
|
|
658
629
|
function readChannelPermissionTarget(params) {
|
|
659
630
|
return {
|
|
660
631
|
channelId: readStringParam(params, "channelId", { required: true }),
|
|
@@ -695,6 +666,7 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
695
666
|
channelTargetRequiredMessage: "Discord guild metadata reads require a wildcard channel allowlist for this guild."
|
|
696
667
|
});
|
|
697
668
|
};
|
|
669
|
+
assertGuildAdminActionEnabled(action, isActionEnabled);
|
|
698
670
|
switch (action) {
|
|
699
671
|
case "memberInfo": {
|
|
700
672
|
if (!isActionEnabled("memberInfo")) throw new Error("Discord member info is disabled.");
|
|
@@ -751,7 +723,6 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
751
723
|
});
|
|
752
724
|
}
|
|
753
725
|
case "emojiUpload": {
|
|
754
|
-
if (!isActionEnabled("emojiUploads")) throw new Error("Discord emoji uploads are disabled.");
|
|
755
726
|
const guildId = readStringParam(params, "guildId", { required: true });
|
|
756
727
|
const name = readStringParam(params, "name", { required: true });
|
|
757
728
|
const mediaUrl = readStringParam(params, "mediaUrl", { required: true });
|
|
@@ -772,7 +743,6 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
772
743
|
});
|
|
773
744
|
}
|
|
774
745
|
case "stickerUpload": {
|
|
775
|
-
if (!isActionEnabled("stickerUploads")) throw new Error("Discord sticker uploads are disabled.");
|
|
776
746
|
const guildId = readStringParam(params, "guildId", { required: true });
|
|
777
747
|
const name = readStringParam(params, "name", { required: true });
|
|
778
748
|
const description = readStringParam(params, "description", { required: true });
|
|
@@ -795,23 +765,17 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
795
765
|
});
|
|
796
766
|
}
|
|
797
767
|
case "roleAdd":
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
if (!isActionEnabled("roles", false)) throw new Error("Discord role changes are disabled.");
|
|
808
|
-
await runRoleMutation({
|
|
809
|
-
cfg,
|
|
810
|
-
accountId,
|
|
811
|
-
values: params,
|
|
812
|
-
mutate: removeRoleDiscord
|
|
813
|
-
});
|
|
768
|
+
case "roleRemove": {
|
|
769
|
+
const guildId = readStringParam(params, "guildId", { required: true });
|
|
770
|
+
const userId = readStringParam(params, "userId", { required: true });
|
|
771
|
+
const roleId = readStringParam(params, "roleId", { required: true });
|
|
772
|
+
await (action === "roleAdd" ? addRoleDiscord : removeRoleDiscord)({
|
|
773
|
+
guildId,
|
|
774
|
+
userId,
|
|
775
|
+
roleId
|
|
776
|
+
}, withOpts());
|
|
814
777
|
return jsonResult({ ok: true });
|
|
778
|
+
}
|
|
815
779
|
case "channelInfo": {
|
|
816
780
|
if (!isActionEnabled("channelInfo")) throw new Error("Discord channel info is disabled.");
|
|
817
781
|
const channelId = readStringParam(params, "channelId", { required: true });
|
|
@@ -858,7 +822,6 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
858
822
|
});
|
|
859
823
|
}
|
|
860
824
|
case "eventCreate": {
|
|
861
|
-
if (!isActionEnabled("events")) throw new Error("Discord events are disabled.");
|
|
862
825
|
const guildId = readStringParam(params, "guildId", { required: true });
|
|
863
826
|
const name = readStringParam(params, "name", { required: true });
|
|
864
827
|
const startTime = readStringParam(params, "startTime", { required: true });
|
|
@@ -886,71 +849,41 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
886
849
|
event
|
|
887
850
|
});
|
|
888
851
|
}
|
|
852
|
+
case "categoryCreate":
|
|
889
853
|
case "channelCreate": {
|
|
890
|
-
|
|
891
|
-
|
|
854
|
+
const channel = await createChannelDiscord(action === "categoryCreate" ? {
|
|
855
|
+
guildId: readStringParam(params, "guildId", { required: true }),
|
|
856
|
+
name: readStringParam(params, "name", { required: true }),
|
|
857
|
+
type: 4,
|
|
858
|
+
position: readNonNegativeIntegerParam(params, "position")
|
|
859
|
+
} : readDiscordChannelCreateParams(params), withOpts());
|
|
892
860
|
return jsonResult({
|
|
893
861
|
ok: true,
|
|
894
|
-
channel
|
|
862
|
+
[action === "categoryCreate" ? "category" : "channel"]: channel
|
|
895
863
|
});
|
|
896
864
|
}
|
|
865
|
+
case "categoryEdit":
|
|
897
866
|
case "channelEdit": {
|
|
898
|
-
|
|
899
|
-
|
|
867
|
+
const channel = await editChannelDiscord(action === "categoryEdit" ? {
|
|
868
|
+
channelId: readStringParam(params, "categoryId", { required: true }),
|
|
869
|
+
name: readStringParam(params, "name"),
|
|
870
|
+
position: readNonNegativeIntegerParam(params, "position")
|
|
871
|
+
} : readDiscordChannelEditParams(params), withOpts());
|
|
900
872
|
return jsonResult({
|
|
901
873
|
ok: true,
|
|
902
|
-
channel
|
|
874
|
+
[action === "categoryEdit" ? "category" : "channel"]: channel
|
|
903
875
|
});
|
|
904
876
|
}
|
|
877
|
+
case "categoryDelete":
|
|
905
878
|
case "channelDelete": {
|
|
906
|
-
|
|
907
|
-
const channelId = readStringParam(params, "channelId", { required: true });
|
|
879
|
+
const channelId = readStringParam(params, action === "categoryDelete" ? "categoryId" : "channelId", { required: true });
|
|
908
880
|
const result = await deleteChannelDiscord(channelId, withOpts());
|
|
909
881
|
return jsonResult(result);
|
|
910
882
|
}
|
|
911
883
|
case "channelMove":
|
|
912
|
-
if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
|
|
913
884
|
await moveChannelDiscord(readDiscordChannelMoveParams(params), withOpts());
|
|
914
885
|
return jsonResult({ ok: true });
|
|
915
|
-
case "categoryCreate": {
|
|
916
|
-
if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
|
|
917
|
-
const guildId = readStringParam(params, "guildId", { required: true });
|
|
918
|
-
const name = readStringParam(params, "name", { required: true });
|
|
919
|
-
const position = readNonNegativeIntegerParam(params, "position");
|
|
920
|
-
const channel = await createChannelDiscord({
|
|
921
|
-
guildId,
|
|
922
|
-
name,
|
|
923
|
-
type: 4,
|
|
924
|
-
position: position ?? void 0
|
|
925
|
-
}, withOpts());
|
|
926
|
-
return jsonResult({
|
|
927
|
-
ok: true,
|
|
928
|
-
category: channel
|
|
929
|
-
});
|
|
930
|
-
}
|
|
931
|
-
case "categoryEdit": {
|
|
932
|
-
if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
|
|
933
|
-
const categoryId = readStringParam(params, "categoryId", { required: true });
|
|
934
|
-
const name = readStringParam(params, "name");
|
|
935
|
-
const position = readNonNegativeIntegerParam(params, "position");
|
|
936
|
-
const channel = await editChannelDiscord({
|
|
937
|
-
channelId: categoryId,
|
|
938
|
-
name: name ?? void 0,
|
|
939
|
-
position: position ?? void 0
|
|
940
|
-
}, withOpts());
|
|
941
|
-
return jsonResult({
|
|
942
|
-
ok: true,
|
|
943
|
-
category: channel
|
|
944
|
-
});
|
|
945
|
-
}
|
|
946
|
-
case "categoryDelete": {
|
|
947
|
-
if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
|
|
948
|
-
const categoryId = readStringParam(params, "categoryId", { required: true });
|
|
949
|
-
const result = await deleteChannelDiscord(categoryId, withOpts());
|
|
950
|
-
return jsonResult(result);
|
|
951
|
-
}
|
|
952
886
|
case "channelPermissionSet": {
|
|
953
|
-
if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
|
|
954
887
|
const { channelId, targetId } = readChannelPermissionTarget(params);
|
|
955
888
|
const targetType = readStringParam(params, "targetType", { required: true }) === "member" ? 1 : 0;
|
|
956
889
|
const allow = readStringParam(params, "allow");
|
|
@@ -965,7 +898,6 @@ async function handleDiscordGuildAction(action, params, isActionEnabled, cfg, op
|
|
|
965
898
|
return jsonResult({ ok: true });
|
|
966
899
|
}
|
|
967
900
|
case "channelPermissionRemove": {
|
|
968
|
-
if (!isActionEnabled("channels")) throw new Error("Discord channel management is disabled.");
|
|
969
901
|
const { channelId, targetId } = readChannelPermissionTarget(params);
|
|
970
902
|
await removeChannelPermissionDiscord(channelId, targetId, withOpts());
|
|
971
903
|
return jsonResult({ ok: true });
|
|
@@ -984,19 +916,6 @@ function parseDiscordMessageLink(link) {
|
|
|
984
916
|
messageId: match[3]
|
|
985
917
|
};
|
|
986
918
|
}
|
|
987
|
-
function describeDiscordMessageListResult(value) {
|
|
988
|
-
if (Array.isArray(value)) return "array";
|
|
989
|
-
if (value === null) return "null";
|
|
990
|
-
if (value && typeof value === "object") {
|
|
991
|
-
const keys = Object.keys(value).toSorted();
|
|
992
|
-
return keys.length ? `object with keys ${keys.join(", ")}` : "object";
|
|
993
|
-
}
|
|
994
|
-
return typeof value;
|
|
995
|
-
}
|
|
996
|
-
function assertDiscordMessageListResult(value) {
|
|
997
|
-
if (Array.isArray(value)) return value;
|
|
998
|
-
throw new Error(`Discord message read returned ${describeDiscordMessageListResult(value)} instead of an array.`);
|
|
999
|
-
}
|
|
1000
919
|
async function handleDiscordMessageManagementAction(ctx) {
|
|
1001
920
|
switch (ctx.action) {
|
|
1002
921
|
case "permissions": {
|
|
@@ -1046,7 +965,7 @@ async function handleDiscordMessageManagementAction(ctx) {
|
|
|
1046
965
|
after: readStringParam(ctx.params, "after"),
|
|
1047
966
|
around: readStringParam(ctx.params, "around")
|
|
1048
967
|
};
|
|
1049
|
-
const messages = messageId ? [await fetchMessageDiscord(channelId, messageId, ctx.withOpts())] :
|
|
968
|
+
const messages = messageId ? [await fetchMessageDiscord(channelId, messageId, ctx.withOpts())] : await readMessagesDiscord(channelId, query, ctx.withOpts());
|
|
1050
969
|
return jsonResult({
|
|
1051
970
|
ok: true,
|
|
1052
971
|
channelId,
|
|
@@ -1057,13 +976,26 @@ async function handleDiscordMessageManagementAction(ctx) {
|
|
|
1057
976
|
if (!ctx.isActionEnabled("messages")) throw new Error("Discord message edits are disabled.");
|
|
1058
977
|
const channelId = ctx.resolveChannelId();
|
|
1059
978
|
const messageId = readStringParam(ctx.params, "messageId", { required: true });
|
|
1060
|
-
const
|
|
979
|
+
const snapshot = ctx.options?.progressSnapshot;
|
|
980
|
+
const content = snapshot ? buildDiscordTextChunks(createChannelProgressDraftCompositor({
|
|
981
|
+
entry: ctx.accountConfig,
|
|
982
|
+
mode: "progress",
|
|
983
|
+
active: true,
|
|
984
|
+
seed: `${ctx.accountId}:${channelId}`,
|
|
985
|
+
initialSnapshot: snapshot
|
|
986
|
+
}).getText(), {
|
|
987
|
+
maxChars: Math.min(ctx.accountConfig.textChunkLimit ?? 2e3, 2e3),
|
|
988
|
+
maxLinesPerMessage: Number.MAX_SAFE_INTEGER
|
|
989
|
+
})[0] ?? "" : readStringParam(ctx.params, "content", {
|
|
1061
990
|
required: true,
|
|
1062
991
|
allowEmpty: true,
|
|
1063
992
|
trim: false
|
|
1064
993
|
});
|
|
1065
994
|
await ctx.assertReadTargetAllowed({ channelId });
|
|
1066
|
-
const message = await editMessageDiscord(channelId, messageId, {
|
|
995
|
+
const message = await editMessageDiscord(channelId, messageId, {
|
|
996
|
+
content,
|
|
997
|
+
...snapshot ? { allowedMentions: { parse: [] } } : {}
|
|
998
|
+
}, ctx.withOpts());
|
|
1067
999
|
return jsonResult({
|
|
1068
1000
|
ok: true,
|
|
1069
1001
|
message
|
|
@@ -1077,20 +1009,13 @@ async function handleDiscordMessageManagementAction(ctx) {
|
|
|
1077
1009
|
await deleteMessageDiscord(channelId, messageId, ctx.withOpts());
|
|
1078
1010
|
return jsonResult({ ok: true });
|
|
1079
1011
|
}
|
|
1080
|
-
case "pinMessage":
|
|
1081
|
-
if (!ctx.isActionEnabled("pins")) throw new Error("Discord pins are disabled.");
|
|
1082
|
-
const channelId = ctx.resolveChannelId();
|
|
1083
|
-
const messageId = readStringParam(ctx.params, "messageId", { required: true });
|
|
1084
|
-
await ctx.assertReadTargetAllowed({ channelId });
|
|
1085
|
-
await pinMessageDiscord(channelId, messageId, ctx.withOpts());
|
|
1086
|
-
return jsonResult({ ok: true });
|
|
1087
|
-
}
|
|
1012
|
+
case "pinMessage":
|
|
1088
1013
|
case "unpinMessage": {
|
|
1089
1014
|
if (!ctx.isActionEnabled("pins")) throw new Error("Discord pins are disabled.");
|
|
1090
1015
|
const channelId = ctx.resolveChannelId();
|
|
1091
1016
|
const messageId = readStringParam(ctx.params, "messageId", { required: true });
|
|
1092
1017
|
await ctx.assertReadTargetAllowed({ channelId });
|
|
1093
|
-
await unpinMessageDiscord(channelId, messageId, ctx.withOpts());
|
|
1018
|
+
await (ctx.action === "pinMessage" ? pinMessageDiscord : unpinMessageDiscord)(channelId, messageId, ctx.withOpts());
|
|
1094
1019
|
return jsonResult({ ok: true });
|
|
1095
1020
|
}
|
|
1096
1021
|
case "listPins": {
|
|
@@ -1139,10 +1064,6 @@ async function handleDiscordMessageManagementAction(ctx) {
|
|
|
1139
1064
|
authorIds: authorIdList.length ? authorIdList : void 0,
|
|
1140
1065
|
limit
|
|
1141
1066
|
}, ctx.withOpts());
|
|
1142
|
-
if (!results || typeof results !== "object") return jsonResult({
|
|
1143
|
-
ok: true,
|
|
1144
|
-
results
|
|
1145
|
-
});
|
|
1146
1067
|
const messages = results.messages;
|
|
1147
1068
|
const normalizedMessages = Array.isArray(messages) ? messages.map((group) => Array.isArray(group) ? group.map((msg) => ctx.normalizeMessage(msg)) : group) : messages;
|
|
1148
1069
|
return jsonResult({
|
|
@@ -1165,8 +1086,8 @@ async function handleDiscordReactionMessagingAction(ctx) {
|
|
|
1165
1086
|
const channelId = await ctx.resolveReactionChannelId();
|
|
1166
1087
|
const messageId = readStringParam(ctx.params, "messageId", { required: true });
|
|
1167
1088
|
const { emoji, remove, isEmpty } = readReactionParams(ctx.params, { removeErrorMessage: "Emoji is required to remove a Discord reaction." });
|
|
1089
|
+
await ctx.assertReadTargetAllowed({ channelId });
|
|
1168
1090
|
if (remove) {
|
|
1169
|
-
await ctx.assertReadTargetAllowed({ channelId });
|
|
1170
1091
|
await removeReactionDiscord(channelId, messageId, emoji, ctx.withReactionRuntimeOptions());
|
|
1171
1092
|
return jsonResult({
|
|
1172
1093
|
ok: true,
|
|
@@ -1174,14 +1095,12 @@ async function handleDiscordReactionMessagingAction(ctx) {
|
|
|
1174
1095
|
});
|
|
1175
1096
|
}
|
|
1176
1097
|
if (isEmpty) {
|
|
1177
|
-
await ctx.assertReadTargetAllowed({ channelId });
|
|
1178
1098
|
const removed = await removeOwnReactionsDiscord(channelId, messageId, ctx.withReactionRuntimeOptions());
|
|
1179
1099
|
return jsonResult({
|
|
1180
1100
|
ok: true,
|
|
1181
1101
|
removed: removed.removed
|
|
1182
1102
|
});
|
|
1183
1103
|
}
|
|
1184
|
-
await ctx.assertReadTargetAllowed({ channelId });
|
|
1185
1104
|
await reactMessageDiscord(channelId, messageId, emoji, ctx.withReactionRuntimeOptions());
|
|
1186
1105
|
return jsonResult({
|
|
1187
1106
|
ok: true,
|
|
@@ -1205,9 +1124,6 @@ async function handleDiscordReactionMessagingAction(ctx) {
|
|
|
1205
1124
|
}
|
|
1206
1125
|
//#endregion
|
|
1207
1126
|
//#region extensions/discord/src/actions/runtime.messaging.send.ts
|
|
1208
|
-
function hasDiscordComponentObjectKeys(value) {
|
|
1209
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length > 0);
|
|
1210
|
-
}
|
|
1211
1127
|
function resolveActionReplyReference(ctx, replyToId) {
|
|
1212
1128
|
const reply = ctx.options?.reply;
|
|
1213
1129
|
return reply ? resolveDiscordReplyReference({
|
|
@@ -1217,15 +1133,11 @@ function resolveActionReplyReference(ctx, replyToId) {
|
|
|
1217
1133
|
}) : createReusableDiscordReplyReference(replyToId);
|
|
1218
1134
|
}
|
|
1219
1135
|
function readDiscordThreadArchiveTimestamp(thread) {
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
if (metadata && typeof metadata === "object" && !Array.isArray(metadata)) {
|
|
1223
|
-
const archiveTimestamp = metadata.archive_timestamp;
|
|
1224
|
-
if (typeof archiveTimestamp === "string" && archiveTimestamp.trim()) return archiveTimestamp;
|
|
1225
|
-
}
|
|
1136
|
+
const archiveTimestamp = asOptionalRecord(asOptionalRecord(thread)?.thread_metadata)?.archive_timestamp;
|
|
1137
|
+
return typeof archiveTimestamp === "string" && archiveTimestamp.trim() ? archiveTimestamp : void 0;
|
|
1226
1138
|
}
|
|
1227
1139
|
function normalizeDiscordThreadListActionResult(params) {
|
|
1228
|
-
const record =
|
|
1140
|
+
const record = asOptionalRecord(params.value);
|
|
1229
1141
|
const threadItems = Array.isArray(record?.threads) ? record.threads : [];
|
|
1230
1142
|
const hasMore = record?.has_more === true;
|
|
1231
1143
|
const nextBefore = params.includeArchived && hasMore ? readDiscordThreadArchiveTimestamp(threadItems[threadItems.length - 1]) : void 0;
|
|
@@ -1313,7 +1225,8 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1313
1225
|
const silent = ctx.params.silent === true;
|
|
1314
1226
|
const suppressEmbeds = ctx.params.suppressEmbeds === void 0 ? void 0 : ctx.params.suppressEmbeds === true;
|
|
1315
1227
|
const rawComponents = coerceDiscordComponentParam(ctx.params.components);
|
|
1316
|
-
const
|
|
1228
|
+
const componentRecord = asOptionalRecord(rawComponents);
|
|
1229
|
+
const componentSpec = componentRecord && Object.keys(componentRecord).length > 0 ? readDiscordComponentSpec(componentRecord) : null;
|
|
1317
1230
|
const components = Array.isArray(rawComponents) || typeof rawComponents === "function" ? rawComponents : void 0;
|
|
1318
1231
|
const mediaUrl = readStringParam(ctx.params, "mediaUrl", { trim: false }) ?? readStringParam(ctx.params, "path", { trim: false }) ?? readStringParam(ctx.params, "filePath", { trim: false });
|
|
1319
1232
|
const rawEmbeds = ctx.params.embeds;
|
|
@@ -1417,10 +1330,14 @@ async function handleDiscordMessageSendAction(ctx) {
|
|
|
1417
1330
|
appliedTags: readStringArrayParam(ctx.params, "appliedTags") ?? void 0
|
|
1418
1331
|
};
|
|
1419
1332
|
try {
|
|
1420
|
-
const thread = await createThreadDiscord(channelId, payload, ctx.withOpts());
|
|
1333
|
+
const { initialMessageDelivery, ...thread } = await createThreadDiscord(channelId, payload, ctx.withOpts());
|
|
1421
1334
|
return jsonResult({
|
|
1422
1335
|
ok: true,
|
|
1423
|
-
thread
|
|
1336
|
+
thread,
|
|
1337
|
+
...initialMessageDelivery ? {
|
|
1338
|
+
threadSnapshot: "creation",
|
|
1339
|
+
initialMessageDelivery
|
|
1340
|
+
} : {}
|
|
1424
1341
|
});
|
|
1425
1342
|
} catch (error) {
|
|
1426
1343
|
if (error instanceof DiscordThreadInitialMessageError) {
|