@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,17 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as withDiscordRequestAuthority } from "./discord-0xJYfdDD.mjs";
|
|
2
|
+
import { c as resolveDiscordAccount, i as listDiscordStartupAccountIds, l as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-ChaMcixG.mjs";
|
|
2
3
|
import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
|
|
3
|
-
import { _ as
|
|
4
|
+
import { _ as matchesDiscordToolContextTarget, b as parseDiscordTarget, g as looksLikeDiscordTargetId, v as normalizeDiscordMessagingTarget } from "./retry-pz_cSha2.mjs";
|
|
4
5
|
import { u as withAbortTimeout } from "./timeouts-D86uWLt_.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { a as
|
|
6
|
+
import { D as isDiscordExecApprovalClientEnabled, E as isDiscordExecApprovalApprover, O as shouldSuppressLocalDiscordExecApprovalPrompt, T as getDiscordExecApprovalApprovers, _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, t as resolveDiscordOutboundSessionRoute, v as discordMessageActions, w as resolveRequiredDiscordChannelPermissions } from "./outbound-session-route-zVGxxceg.mjs";
|
|
7
|
+
import { a as normalizeDiscordAcpConversationId, c as resolveDiscordInboundConversation, i as matchDiscordAcpConversation, n as discordOutbound, o as resolveDiscordAttachedOutboundTarget, r as buildDiscordCrossContextPresentation, s as resolveDiscordCommandConversation } from "./outbound-adapter-BobT-kse.mjs";
|
|
7
8
|
import { r as openDiscordCommandDeployHashStore } from "./command-deploy-store-DFkBTViB.mjs";
|
|
8
|
-
import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-
|
|
9
|
-
import { n as
|
|
10
|
-
import { n as discordOutbound } from "./outbound-adapter-C8v79z9Z.mjs";
|
|
9
|
+
import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-Caz_XuFH.mjs";
|
|
10
|
+
import { a as discordSecurityAdapter, i as discordSetupContract, n as discordConfigAdapter, t as createDiscordPluginBase } from "./shared-B3wZ4hN-.mjs";
|
|
11
11
|
import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.mjs";
|
|
12
|
+
import { i as setThreadBindingMaxAgeBySessionKeyAsync, n as setThreadBindingIdleTimeoutBySessionKeyAsync, r as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-CshfKghV.mjs";
|
|
12
13
|
import { t as defaultTopLevelPlacement } from "./thread-binding-api-BDZJD4na.mjs";
|
|
13
14
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
14
|
-
import {
|
|
15
|
+
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
16
|
+
import { PAIRING_APPROVED_MESSAGE, buildTokenChannelStatusSummary, projectCredentialSnapshotFields, resolveConfiguredFromCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
|
|
17
|
+
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
15
18
|
import { createRuntimeConfigReader } from "openclaw/plugin-sdk/runtime-config-snapshot";
|
|
16
19
|
import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
17
20
|
import { createChannelMessageAdapterFromOutbound } from "openclaw/plugin-sdk/channel-outbound";
|
|
@@ -23,8 +26,10 @@ import { createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing
|
|
|
23
26
|
import { createChannelDirectoryAdapter, createRuntimeDirectoryLiveAdapter } from "openclaw/plugin-sdk/directory-runtime";
|
|
24
27
|
import { appendMatchMetadata, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, isRecord as isRecord$1, readAccountStatusSnapshot, resolveEnabledConfiguredAccountId } from "openclaw/plugin-sdk/status-helpers";
|
|
25
28
|
import { resolveTargetsWithOptionalToken } from "openclaw/plugin-sdk/target-resolver-runtime";
|
|
29
|
+
import { createApproverRestrictedNativeApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
|
|
26
30
|
import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
|
|
27
|
-
import { doesApprovalRequestSelectChannelAccount, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
31
|
+
import { createChannelApproverDmTargetResolver, createChannelNativeOriginTargetResolver, doesApprovalRequestSelectChannelAccount, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
32
|
+
import { isChannelExecApprovalClientEnabledFromConfig, matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
|
|
28
33
|
import { resolveThreadBindingSpawnPolicy } from "openclaw/plugin-sdk/conversation-runtime";
|
|
29
34
|
import { resolveScopeRequireMention, resolveScopeToolsPolicy, scopeKey } from "openclaw/plugin-sdk/channel-policy";
|
|
30
35
|
import { normalizeAtHashSlug } from "openclaw/plugin-sdk/string-normalization-runtime";
|
|
@@ -78,14 +83,13 @@ function normalizeDiscordThreadId(value) {
|
|
|
78
83
|
const normalized = value.trim();
|
|
79
84
|
return /^\d+$/.test(normalized) ? normalized : void 0;
|
|
80
85
|
}
|
|
81
|
-
function createDiscordOriginTargetResolver(
|
|
86
|
+
function createDiscordOriginTargetResolver() {
|
|
82
87
|
return createChannelNativeOriginTargetResolver({
|
|
83
88
|
channel: "discord",
|
|
84
89
|
shouldHandleRequest: ({ cfg, accountId, request }) => shouldHandleDiscordApprovalRequest({
|
|
85
90
|
cfg,
|
|
86
91
|
accountId,
|
|
87
|
-
request
|
|
88
|
-
configOverride
|
|
92
|
+
request
|
|
89
93
|
}),
|
|
90
94
|
resolveTurnSourceTarget: (request) => {
|
|
91
95
|
const sessionConversation = resolveApprovalRequestSessionConversation({
|
|
@@ -97,7 +101,7 @@ function createDiscordOriginTargetResolver(configOverride) {
|
|
|
97
101
|
const turnSourceChannel = normalizeLowercaseStringOrEmpty(request.request.turnSourceChannel);
|
|
98
102
|
const rawTurnSourceTo = normalizeOptionalString(request.request.turnSourceTo) ?? "";
|
|
99
103
|
const turnSourceTo = normalizeDiscordOriginChannelId(rawTurnSourceTo);
|
|
100
|
-
const threadId = normalizeDiscordThreadId(request.request.turnSourceThreadId) ?? normalizeDiscordThreadId(sessionConversation?.threadId)
|
|
104
|
+
const threadId = normalizeDiscordThreadId(request.request.turnSourceThreadId) ?? normalizeDiscordThreadId(sessionConversation?.threadId);
|
|
101
105
|
const hasExplicitOriginTarget = /^(?:channel|group):/i.test(rawTurnSourceTo);
|
|
102
106
|
if (turnSourceChannel !== "discord" || !turnSourceTo || sessionKind === "dm") return null;
|
|
103
107
|
return hasExplicitOriginTarget || sessionKind === "channel" || sessionKind === "group" ? {
|
|
@@ -115,7 +119,7 @@ function createDiscordOriginTargetResolver(configOverride) {
|
|
|
115
119
|
const targetTo = normalizeDiscordOriginChannelId(sessionTarget.to);
|
|
116
120
|
return targetTo ? {
|
|
117
121
|
to: targetTo,
|
|
118
|
-
threadId: normalizeDiscordThreadId(sessionTarget.threadId) ?? normalizeDiscordThreadId(sessionConversation?.threadId)
|
|
122
|
+
threadId: normalizeDiscordThreadId(sessionTarget.threadId) ?? normalizeDiscordThreadId(sessionConversation?.threadId)
|
|
119
123
|
} : null;
|
|
120
124
|
},
|
|
121
125
|
resolveFallbackTarget: (request) => {
|
|
@@ -128,58 +132,53 @@ function createDiscordOriginTargetResolver(configOverride) {
|
|
|
128
132
|
const fallbackChannelId = normalizeDiscordOriginChannelId(sessionConversation?.id);
|
|
129
133
|
return fallbackChannelId ? {
|
|
130
134
|
to: fallbackChannelId,
|
|
131
|
-
threadId: normalizeDiscordThreadId(sessionConversation?.threadId)
|
|
135
|
+
threadId: normalizeDiscordThreadId(sessionConversation?.threadId)
|
|
132
136
|
} : null;
|
|
133
137
|
}
|
|
134
138
|
});
|
|
135
139
|
}
|
|
136
|
-
function createDiscordApproverDmTargetResolver(
|
|
140
|
+
function createDiscordApproverDmTargetResolver() {
|
|
137
141
|
return createChannelApproverDmTargetResolver({
|
|
138
142
|
shouldHandleRequest: ({ cfg, accountId, request }) => shouldHandleDiscordApprovalRequest({
|
|
139
143
|
cfg,
|
|
140
144
|
accountId,
|
|
141
|
-
request
|
|
142
|
-
configOverride
|
|
145
|
+
request
|
|
143
146
|
}),
|
|
144
147
|
resolveApprovers: ({ cfg, accountId }) => getDiscordExecApprovalApprovers({
|
|
145
148
|
cfg,
|
|
146
|
-
accountId
|
|
147
|
-
configOverride
|
|
149
|
+
accountId
|
|
148
150
|
}),
|
|
149
151
|
mapApprover: (approver) => ({ to: approver })
|
|
150
152
|
});
|
|
151
153
|
}
|
|
152
|
-
function createDiscordApprovalCapability(
|
|
154
|
+
function createDiscordApprovalCapability() {
|
|
153
155
|
return createApproverRestrictedNativeApprovalCapability({
|
|
154
156
|
channel: "discord",
|
|
155
157
|
channelLabel: "Discord",
|
|
156
158
|
describeExecApprovalSetup: ({ accountId }) => {
|
|
157
159
|
const prefix = accountId && accountId !== "default" ? `channels.discord.accounts.${accountId}` : "channels.discord";
|
|
158
|
-
return `Approve it from the Web UI
|
|
160
|
+
return `Approve it from the Web UI for now. Discord supports native exec approvals for this account. Configure \`${prefix}.execApprovals.approvers\` or \`commands.ownerAllowFrom\`; set \`${prefix}.execApprovals.enabled\` to \`auto\` or \`true\`.`;
|
|
159
161
|
},
|
|
160
162
|
listAccountIds: listDiscordAccountIds,
|
|
161
163
|
hasApprovers: ({ cfg, accountId }) => getDiscordExecApprovalApprovers({
|
|
162
164
|
cfg,
|
|
163
|
-
accountId
|
|
164
|
-
configOverride
|
|
165
|
+
accountId
|
|
165
166
|
}).length > 0,
|
|
166
167
|
isExecAuthorizedSender: ({ cfg, accountId, senderId }) => isDiscordExecApprovalApprover({
|
|
167
168
|
cfg,
|
|
168
169
|
accountId,
|
|
169
|
-
senderId
|
|
170
|
-
configOverride
|
|
170
|
+
senderId
|
|
171
171
|
}),
|
|
172
172
|
isNativeDeliveryEnabled: ({ cfg, accountId }) => isDiscordExecApprovalClientEnabled({
|
|
173
173
|
cfg,
|
|
174
|
-
accountId
|
|
175
|
-
configOverride
|
|
174
|
+
accountId
|
|
176
175
|
}),
|
|
177
|
-
resolveNativeDeliveryMode: ({ cfg, accountId }) =>
|
|
176
|
+
resolveNativeDeliveryMode: ({ cfg, accountId }) => resolveDiscordAccount({
|
|
178
177
|
cfg,
|
|
179
178
|
accountId
|
|
180
179
|
}).config.execApprovals?.target ?? "dm",
|
|
181
|
-
resolveOriginTarget: createDiscordOriginTargetResolver(
|
|
182
|
-
resolveApproverDmTargets: createDiscordApproverDmTargetResolver(
|
|
180
|
+
resolveOriginTarget: createDiscordOriginTargetResolver(),
|
|
181
|
+
resolveApproverDmTargets: createDiscordApproverDmTargetResolver(),
|
|
183
182
|
notifyOriginWhenDmOnly: true,
|
|
184
183
|
nativeRuntime: createLazyChannelApprovalNativeRuntimeAdapter({
|
|
185
184
|
capabilityBoundary: true,
|
|
@@ -190,16 +189,14 @@ function createDiscordApprovalCapability(configOverride) {
|
|
|
190
189
|
],
|
|
191
190
|
isConfigured: ({ cfg, accountId }) => isDiscordExecApprovalClientEnabled({
|
|
192
191
|
cfg,
|
|
193
|
-
accountId
|
|
194
|
-
configOverride
|
|
192
|
+
accountId
|
|
195
193
|
}),
|
|
196
194
|
shouldHandle: ({ cfg, accountId, request }) => shouldHandleDiscordApprovalRequest({
|
|
197
195
|
cfg,
|
|
198
196
|
accountId,
|
|
199
|
-
request
|
|
200
|
-
configOverride
|
|
197
|
+
request
|
|
201
198
|
}),
|
|
202
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
199
|
+
load: async () => (await import("./approval-handler.runtime-DxCK2Rux.mjs")).discordApprovalNativeRuntime
|
|
203
200
|
})
|
|
204
201
|
});
|
|
205
202
|
}
|
|
@@ -209,122 +206,28 @@ function getDiscordApprovalCapability() {
|
|
|
209
206
|
return cachedDiscordApprovalCapability;
|
|
210
207
|
}
|
|
211
208
|
//#endregion
|
|
212
|
-
//#region extensions/discord/src/channel.conversation.ts
|
|
213
|
-
function resolveDiscordAttachedOutboundTarget(params) {
|
|
214
|
-
if (params.threadId == null) return params.to;
|
|
215
|
-
const threadId = normalizeOptionalStringifiedId(params.threadId) ?? "";
|
|
216
|
-
return threadId ? `channel:${threadId}` : params.to;
|
|
217
|
-
}
|
|
218
|
-
function buildDiscordCrossContextPresentation(params) {
|
|
219
|
-
return {
|
|
220
|
-
tone: "neutral",
|
|
221
|
-
blocks: [...params.message.trim() ? [{
|
|
222
|
-
type: "text",
|
|
223
|
-
text: params.message
|
|
224
|
-
}, { type: "divider" }] : [], {
|
|
225
|
-
type: "context",
|
|
226
|
-
text: `From ${params.originLabel}`
|
|
227
|
-
}]
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
function normalizeDiscordAcpConversationId(conversationId) {
|
|
231
|
-
const normalized = conversationId.trim();
|
|
232
|
-
return normalized ? { conversationId: normalized } : null;
|
|
233
|
-
}
|
|
234
|
-
function matchDiscordAcpConversation(params) {
|
|
235
|
-
if (params.bindingConversationId === params.conversationId) return {
|
|
236
|
-
conversationId: params.conversationId,
|
|
237
|
-
matchPriority: 2
|
|
238
|
-
};
|
|
239
|
-
if (params.parentConversationId && params.parentConversationId !== params.conversationId && params.bindingConversationId === params.parentConversationId) return {
|
|
240
|
-
conversationId: params.parentConversationId,
|
|
241
|
-
matchPriority: 1
|
|
242
|
-
};
|
|
243
|
-
return null;
|
|
244
|
-
}
|
|
245
|
-
function resolveDiscordConversationIdFromTargets(targets) {
|
|
246
|
-
for (const raw of targets) {
|
|
247
|
-
const trimmed = raw?.trim();
|
|
248
|
-
if (!trimmed) continue;
|
|
249
|
-
try {
|
|
250
|
-
const target = parseDiscordTarget(trimmed, { defaultKind: "channel" });
|
|
251
|
-
if (target?.normalized) return target.normalized;
|
|
252
|
-
} catch {
|
|
253
|
-
const mentionMatch = trimmed.match(/^<#(\d+)>$/);
|
|
254
|
-
if (mentionMatch?.[1]) return `channel:${mentionMatch[1]}`;
|
|
255
|
-
if (/^\d{6,}$/.test(trimmed)) return normalizeDiscordMessagingTarget(trimmed);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
function parseDiscordParentChannelFromSessionKey(raw) {
|
|
260
|
-
const sessionKey = normalizeLowercaseStringOrEmpty(raw);
|
|
261
|
-
if (!sessionKey) return;
|
|
262
|
-
const match = sessionKey.match(/(?:^|:)channel:([^:]+)$/);
|
|
263
|
-
return match?.[1] ? `channel:${match[1]}` : void 0;
|
|
264
|
-
}
|
|
265
|
-
function resolveDiscordCommandConversation(params) {
|
|
266
|
-
const threadConversation = resolveDiscordThreadConversationRef(params);
|
|
267
|
-
if (threadConversation) return threadConversation;
|
|
268
|
-
const conversationId = resolveDiscordCurrentConversationIdentity({
|
|
269
|
-
from: params.from,
|
|
270
|
-
chatType: params.chatType,
|
|
271
|
-
originatingTo: params.originatingTo,
|
|
272
|
-
commandTo: params.commandTo,
|
|
273
|
-
fallbackTo: params.fallbackTo
|
|
274
|
-
});
|
|
275
|
-
return conversationId ? { conversationId } : null;
|
|
276
|
-
}
|
|
277
|
-
function resolveDiscordThreadConversationRef(params) {
|
|
278
|
-
const threadId = normalizeOptionalStringifiedId(params.threadId);
|
|
279
|
-
if (!threadId) return null;
|
|
280
|
-
const targets = [
|
|
281
|
-
params.originatingTo ?? params.to,
|
|
282
|
-
params.commandTo,
|
|
283
|
-
params.fallbackTo ?? params.conversationId
|
|
284
|
-
];
|
|
285
|
-
const parentConversationId = normalizeDiscordMessagingTarget(normalizeOptionalStringifiedId(params.threadParentId) ?? "") || parseDiscordParentChannelFromSessionKey(params.parentSessionKey) || resolveDiscordConversationIdFromTargets(targets);
|
|
286
|
-
return {
|
|
287
|
-
conversationId: threadId,
|
|
288
|
-
...parentConversationId && parentConversationId !== threadId ? { parentConversationId } : {}
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
function resolveDiscordInboundConversation(params) {
|
|
292
|
-
const threadConversation = resolveDiscordThreadConversationRef({
|
|
293
|
-
to: params.to,
|
|
294
|
-
conversationId: params.conversationId,
|
|
295
|
-
threadId: params.threadId,
|
|
296
|
-
threadParentId: params.threadParentId
|
|
297
|
-
});
|
|
298
|
-
if (threadConversation) return threadConversation;
|
|
299
|
-
const conversationId = resolveDiscordCurrentConversationIdentity({
|
|
300
|
-
from: params.from,
|
|
301
|
-
chatType: params.isGroup ? "group" : "direct",
|
|
302
|
-
originatingTo: params.to,
|
|
303
|
-
fallbackTo: params.conversationId
|
|
304
|
-
});
|
|
305
|
-
return conversationId ? { conversationId } : null;
|
|
306
|
-
}
|
|
307
|
-
//#endregion
|
|
308
209
|
//#region extensions/discord/src/channel.loaders.ts
|
|
309
|
-
const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
310
|
-
const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
311
|
-
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
312
|
-
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-
|
|
313
|
-
const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-
|
|
314
|
-
const loadDiscordProviderRuntime = createLazyRuntimeModule(() => import("./provider.runtime-
|
|
315
|
-
const loadDiscordProbeRuntime = createLazyRuntimeModule(() => import("./probe
|
|
210
|
+
const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-esqNn0Eo.mjs").then((n) => n.t));
|
|
211
|
+
const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-BFPNRmVv.mjs").then((n) => n.n));
|
|
212
|
+
const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-0-aBuCy3.mjs").then((n) => n.n));
|
|
213
|
+
const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-DN-NissX.mjs").then((n) => n.r));
|
|
214
|
+
const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-BuLapkhy.mjs").then((n) => n.r));
|
|
215
|
+
const loadDiscordProviderRuntime = createLazyRuntimeModule(() => import("./provider.runtime-CUE3UxER.mjs"));
|
|
216
|
+
const loadDiscordProbeRuntime = createLazyRuntimeModule(() => import("./probe-LYrIHlBF.mjs").then((n) => n.o));
|
|
316
217
|
async function probeDiscordStatusAccount(params) {
|
|
317
218
|
const startedAtMs = Date.now();
|
|
318
219
|
const runtime = await loadDiscordProbeRuntime();
|
|
319
220
|
const remainingMs = Math.max(1, params.timeoutMs - Math.max(0, Date.now() - startedAtMs));
|
|
320
221
|
return await runtime.probeDiscord(params.token, remainingMs, { includeApplication: true });
|
|
321
222
|
}
|
|
322
|
-
const loadDiscordAuditModule = createLazyRuntimeModule(() => import("./audit-
|
|
323
|
-
const loadDiscordSendModule = createLazyRuntimeModule(() => import("./send-
|
|
324
|
-
const loadDiscordDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live
|
|
223
|
+
const loadDiscordAuditModule = createLazyRuntimeModule(() => import("./audit-CLg9I71N.mjs").then((n) => n.n));
|
|
224
|
+
const loadDiscordSendModule = createLazyRuntimeModule(() => import("./send-CrfEI6Bs.mjs").then((n) => n.t));
|
|
225
|
+
const loadDiscordDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-DtKRHuGV.mjs").then((n) => n.t));
|
|
325
226
|
//#endregion
|
|
326
227
|
//#region extensions/discord/src/conversation-route-owner.ts
|
|
327
228
|
function inspectDiscordConversationRouteOwner(params) {
|
|
229
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
230
|
+
if (params.cfg.channels?.discord?.enabled === false || !listDiscordAccountIds(params.cfg).some((id) => normalizeAccountId(id) === accountId) || resolveDiscordAccountConfig(params.cfg, accountId)?.enabled === false) return null;
|
|
328
231
|
const direct = params.conversation.kind === "direct";
|
|
329
232
|
const nativeConversationId = params.conversation.nativeChannelId ?? params.conversation.peerId;
|
|
330
233
|
const threadConversationId = direct ? void 0 : params.conversation.threadId;
|
|
@@ -334,9 +237,10 @@ function inspectDiscordConversationRouteOwner(params) {
|
|
|
334
237
|
userId: direct ? params.conversation.peerId : void 0,
|
|
335
238
|
channelId: nativeConversationId
|
|
336
239
|
});
|
|
337
|
-
const route = resolveDiscordConversationRoute({
|
|
240
|
+
const route = ({ boundAgentId }) => resolveDiscordConversationRoute({
|
|
338
241
|
cfg: params.cfg,
|
|
339
|
-
|
|
242
|
+
defaultAgentId: boundAgentId,
|
|
243
|
+
accountId,
|
|
340
244
|
guildId: params.conversation.context?.guildId,
|
|
341
245
|
memberRoleIds: params.conversation.context?.memberRoleIds,
|
|
342
246
|
peer: {
|
|
@@ -347,8 +251,8 @@ function inspectDiscordConversationRouteOwner(params) {
|
|
|
347
251
|
});
|
|
348
252
|
const { runtimeRoute, configuredRoute } = resolveDiscordConversationBindingRoute({
|
|
349
253
|
cfg: params.cfg,
|
|
350
|
-
route,
|
|
351
|
-
accountId
|
|
254
|
+
resolveRoute: route,
|
|
255
|
+
accountId,
|
|
352
256
|
runtimeConversationId,
|
|
353
257
|
configuredConversationId: threadConversationId ?? nativeConversationId,
|
|
354
258
|
parentConversationId: params.conversation.context?.parentPeerId,
|
|
@@ -357,34 +261,31 @@ function inspectDiscordConversationRouteOwner(params) {
|
|
|
357
261
|
if (!runtimeRoute.bindingOwnerAvailable && resolveThreadBindingSpawnPolicy({
|
|
358
262
|
cfg: params.cfg,
|
|
359
263
|
channel: "discord",
|
|
360
|
-
accountId
|
|
264
|
+
accountId,
|
|
361
265
|
kind: "subagent"
|
|
362
266
|
}).enabled) return { kind: "unavailable" };
|
|
363
267
|
if (runtimeRoute.pluginId) return {
|
|
364
268
|
kind: "plugin",
|
|
365
269
|
pluginId: runtimeRoute.pluginId,
|
|
366
|
-
fallbackAgentId: route.agentId
|
|
270
|
+
fallbackAgentId: runtimeRoute.route.agentId
|
|
367
271
|
};
|
|
368
272
|
return {
|
|
369
273
|
kind: "agent",
|
|
370
|
-
agentId: runtimeRoute.boundAgentId ?? configuredRoute?.boundAgentId ?? route.agentId
|
|
274
|
+
agentId: runtimeRoute.boundAgentId ?? configuredRoute?.boundAgentId ?? runtimeRoute.route.agentId
|
|
371
275
|
};
|
|
372
276
|
}
|
|
373
277
|
//#endregion
|
|
374
278
|
//#region extensions/discord/src/group-policy.ts
|
|
375
|
-
function normalizeDiscordSlug(value) {
|
|
376
|
-
return normalizeAtHashSlug(value);
|
|
377
|
-
}
|
|
378
279
|
const guildScopeKey = (guildKey) => scopeKey(["guild", guildKey]);
|
|
379
280
|
const channelScopeKey = (guildKey, channelKey) => scopeKey(["guild", guildKey], ["channel", channelKey]);
|
|
380
281
|
function resolveDiscordGuildKey(guilds, groupSpace) {
|
|
381
282
|
if (!guilds || Object.keys(guilds).length === 0) return;
|
|
382
283
|
const space = normalizeOptionalString(groupSpace) ?? "";
|
|
383
284
|
if (space && guilds[space]) return space;
|
|
384
|
-
const normalized =
|
|
285
|
+
const normalized = normalizeAtHashSlug(space);
|
|
385
286
|
if (normalized && guilds[normalized]) return normalized;
|
|
386
287
|
if (normalized) {
|
|
387
|
-
const match = Object.entries(guilds).find(([, entry]) =>
|
|
288
|
+
const match = Object.entries(guilds).find(([, entry]) => normalizeAtHashSlug(entry?.slug ?? void 0) === normalized);
|
|
388
289
|
if (match) return match[0];
|
|
389
290
|
}
|
|
390
291
|
return guilds["*"] ? "*" : void 0;
|
|
@@ -392,11 +293,11 @@ function resolveDiscordGuildKey(guilds, groupSpace) {
|
|
|
392
293
|
function resolveDiscordChannelKey(channelEntries, params) {
|
|
393
294
|
if (!channelEntries || Object.keys(channelEntries).length === 0) return;
|
|
394
295
|
const groupChannel = params.groupChannel;
|
|
395
|
-
const channelSlug =
|
|
296
|
+
const channelSlug = normalizeAtHashSlug(groupChannel);
|
|
396
297
|
if (params.groupId && channelEntries[params.groupId]) return params.groupId;
|
|
397
298
|
if (channelSlug && channelEntries[channelSlug]) return channelSlug;
|
|
398
299
|
if (channelSlug && channelEntries[`#${channelSlug}`]) return `#${channelSlug}`;
|
|
399
|
-
const normalizedGroupChannel = groupChannel ?
|
|
300
|
+
const normalizedGroupChannel = groupChannel ? normalizeAtHashSlug(groupChannel) : void 0;
|
|
400
301
|
return normalizedGroupChannel !== void 0 && channelEntries[normalizedGroupChannel] ? normalizedGroupChannel : void 0;
|
|
401
302
|
}
|
|
402
303
|
function buildDiscordPolicyTree(guilds) {
|
|
@@ -445,11 +346,8 @@ function resolveDiscordGroupToolPolicy(params) {
|
|
|
445
346
|
}
|
|
446
347
|
//#endregion
|
|
447
348
|
//#region extensions/discord/src/status-issues.ts
|
|
448
|
-
function
|
|
449
|
-
|
|
450
|
-
const intentsRaw = value.intents;
|
|
451
|
-
if (!isRecord$1(intentsRaw)) return {};
|
|
452
|
-
return { intents: { messageContent: intentsRaw.messageContent === "enabled" || intentsRaw.messageContent === "limited" || intentsRaw.messageContent === "disabled" ? intentsRaw.messageContent : void 0 } };
|
|
349
|
+
function isDiscordMessageContentIntentDisabled(value) {
|
|
350
|
+
return isRecord$1(value) && isRecord$1(value.intents) && value.intents.messageContent === "disabled";
|
|
453
351
|
}
|
|
454
352
|
function readDiscordPermissionsAuditSummary(value) {
|
|
455
353
|
if (!isRecord$1(value)) return {};
|
|
@@ -489,7 +387,6 @@ function collectDiscordStatusIssues(accounts) {
|
|
|
489
387
|
if (!account) continue;
|
|
490
388
|
const accountId = resolveEnabledConfiguredAccountId(account);
|
|
491
389
|
if (!accountId) continue;
|
|
492
|
-
const app = readDiscordApplicationSummary(account.application);
|
|
493
390
|
if (account.groupPolicy === "allowlist" && account.guildsConfigured === 0) {
|
|
494
391
|
const guildGuidance = accountId === "default" ? "Add your server under channels.discord.guilds. If channels.discord.accounts.default.guilds is set, add it there instead." : `Add your server under channels.discord.accounts.${accountId}.guilds.`;
|
|
495
392
|
issues.push({
|
|
@@ -500,7 +397,7 @@ function collectDiscordStatusIssues(accounts) {
|
|
|
500
397
|
fix: `${guildGuidance} Refresh channel status after the configuration reload applies.`
|
|
501
398
|
});
|
|
502
399
|
}
|
|
503
|
-
if (
|
|
400
|
+
if (isDiscordMessageContentIntentDisabled(account.application)) issues.push({
|
|
504
401
|
channel: "discord",
|
|
505
402
|
accountId,
|
|
506
403
|
kind: "intent",
|
|
@@ -535,6 +432,47 @@ function collectDiscordStatusIssues(accounts) {
|
|
|
535
432
|
return issues;
|
|
536
433
|
}
|
|
537
434
|
//#endregion
|
|
435
|
+
//#region extensions/discord/src/thread-bindings-channel.ts
|
|
436
|
+
function toConversationLifecycleBinding(binding) {
|
|
437
|
+
return {
|
|
438
|
+
boundAt: binding.boundAt,
|
|
439
|
+
lastActivityAt: typeof binding.lastActivityAt === "number" ? binding.lastActivityAt : binding.boundAt,
|
|
440
|
+
idleTimeoutMs: typeof binding.idleTimeoutMs === "number" ? binding.idleTimeoutMs : void 0,
|
|
441
|
+
maxAgeMs: typeof binding.maxAgeMs === "number" ? binding.maxAgeMs : void 0
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
const discordConversationBindings = {
|
|
445
|
+
supportsCurrentConversationBinding: true,
|
|
446
|
+
bindingStore: "adapter",
|
|
447
|
+
defaultTopLevelPlacement,
|
|
448
|
+
createManager: async ({ cfg, accountId }) => (await loadDiscordThreadBindingsManagerModule()).createThreadBindingManager({
|
|
449
|
+
cfg,
|
|
450
|
+
accountId: accountId ?? void 0,
|
|
451
|
+
persist: false,
|
|
452
|
+
enableSweeper: false
|
|
453
|
+
}),
|
|
454
|
+
setIdleTimeoutBySessionKey: ({ targetSessionKey, accountId, idleTimeoutMs }) => setThreadBindingIdleTimeoutBySessionKey({
|
|
455
|
+
targetSessionKey,
|
|
456
|
+
accountId: accountId ?? void 0,
|
|
457
|
+
idleTimeoutMs
|
|
458
|
+
}).map(toConversationLifecycleBinding),
|
|
459
|
+
setMaxAgeBySessionKey: ({ targetSessionKey, accountId, maxAgeMs }) => setThreadBindingMaxAgeBySessionKey({
|
|
460
|
+
targetSessionKey,
|
|
461
|
+
accountId: accountId ?? void 0,
|
|
462
|
+
maxAgeMs
|
|
463
|
+
}).map(toConversationLifecycleBinding),
|
|
464
|
+
setIdleTimeoutBySessionKeyAsync: async ({ targetSessionKey, accountId, idleTimeoutMs }) => (await setThreadBindingIdleTimeoutBySessionKeyAsync({
|
|
465
|
+
targetSessionKey,
|
|
466
|
+
accountId: accountId ?? void 0,
|
|
467
|
+
idleTimeoutMs
|
|
468
|
+
})).map(toConversationLifecycleBinding),
|
|
469
|
+
setMaxAgeBySessionKeyAsync: async ({ targetSessionKey, accountId, maxAgeMs }) => (await setThreadBindingMaxAgeBySessionKeyAsync({
|
|
470
|
+
targetSessionKey,
|
|
471
|
+
accountId: accountId ?? void 0,
|
|
472
|
+
maxAgeMs
|
|
473
|
+
})).map(toConversationLifecycleBinding)
|
|
474
|
+
};
|
|
475
|
+
//#endregion
|
|
538
476
|
//#region extensions/discord/src/channel.ts
|
|
539
477
|
const DISCORD_ACCOUNT_STARTUP_STAGGER_MS = 1e4;
|
|
540
478
|
const discordMessageAdapter = createChannelMessageAdapterFromOutbound({
|
|
@@ -553,6 +491,22 @@ const discordMessageAdapter = createChannelMessageAdapterFromOutbound({
|
|
|
553
491
|
} }
|
|
554
492
|
}
|
|
555
493
|
});
|
|
494
|
+
async function sendDiscordHeartbeatTyping(params) {
|
|
495
|
+
const resolvedTo = resolveDiscordAttachedOutboundTarget(params);
|
|
496
|
+
const target = parseDiscordTarget(resolvedTo, { defaultKind: "channel" });
|
|
497
|
+
if (!target || target.kind !== "channel") return;
|
|
498
|
+
const { sendTypingDiscord } = await loadDiscordSendModule();
|
|
499
|
+
const assertCurrent = () => {
|
|
500
|
+
params.signal?.throwIfAborted();
|
|
501
|
+
params.assertPlatformSendAuthorized?.();
|
|
502
|
+
};
|
|
503
|
+
assertCurrent();
|
|
504
|
+
await withDiscordRequestAuthority(assertCurrent, () => sendTypingDiscord(target.id, {
|
|
505
|
+
cfg: params.cfg,
|
|
506
|
+
accountId: params.accountId ?? void 0,
|
|
507
|
+
signal: params.signal
|
|
508
|
+
}));
|
|
509
|
+
}
|
|
556
510
|
function startDiscordStartupProbe(params) {
|
|
557
511
|
(async () => {
|
|
558
512
|
try {
|
|
@@ -611,14 +565,6 @@ const resolveDiscordAllowlistNames = createAccountScopedAllowlistNameResolver({
|
|
|
611
565
|
entries
|
|
612
566
|
})
|
|
613
567
|
});
|
|
614
|
-
function toConversationLifecycleBinding(binding) {
|
|
615
|
-
return {
|
|
616
|
-
boundAt: binding.boundAt,
|
|
617
|
-
lastActivityAt: typeof binding.lastActivityAt === "number" ? binding.lastActivityAt : binding.boundAt,
|
|
618
|
-
idleTimeoutMs: typeof binding.idleTimeoutMs === "number" ? binding.idleTimeoutMs : void 0,
|
|
619
|
-
maxAgeMs: typeof binding.maxAgeMs === "number" ? binding.maxAgeMs : void 0
|
|
620
|
-
};
|
|
621
|
-
}
|
|
622
568
|
const discordPlugin = createChatChannelPlugin({
|
|
623
569
|
base: {
|
|
624
570
|
...createDiscordPluginBase({ setupContract: discordSetupContract }),
|
|
@@ -656,14 +602,7 @@ const discordPlugin = createChatChannelPlugin({
|
|
|
656
602
|
directTargetStyle: "user-prefixed",
|
|
657
603
|
targetIdComparison: "lowercase",
|
|
658
604
|
normalizeTarget: normalizeDiscordMessagingTarget,
|
|
659
|
-
resolveInboundConversation:
|
|
660
|
-
from,
|
|
661
|
-
to,
|
|
662
|
-
conversationId,
|
|
663
|
-
threadId,
|
|
664
|
-
threadParentId,
|
|
665
|
-
isGroup
|
|
666
|
-
}),
|
|
605
|
+
resolveInboundConversation: resolveDiscordInboundConversation,
|
|
667
606
|
normalizeExplicitSessionKey: ({ sessionKey, ctx }) => normalizeExplicitDiscordSessionKey(sessionKey, ctx),
|
|
668
607
|
resolveSessionTarget: ({ id }) => normalizeDiscordMessagingTarget(`channel:${id}`),
|
|
669
608
|
inferTargetChatType: ({ to }) => {
|
|
@@ -676,7 +615,7 @@ const discordPlugin = createChatChannelPlugin({
|
|
|
676
615
|
}
|
|
677
616
|
},
|
|
678
617
|
buildCrossContextPresentation: buildDiscordCrossContextPresentation,
|
|
679
|
-
resolveOutboundSessionRoute:
|
|
618
|
+
resolveOutboundSessionRoute: resolveDiscordOutboundSessionRoute,
|
|
680
619
|
targetResolver: {
|
|
681
620
|
looksLikeId: looksLikeDiscordTargetId,
|
|
682
621
|
hint: "<channelId|user:ID|channel:ID>",
|
|
@@ -755,50 +694,13 @@ const discordPlugin = createChatChannelPlugin({
|
|
|
755
694
|
conversationId,
|
|
756
695
|
parentConversationId
|
|
757
696
|
}),
|
|
758
|
-
resolveCommandConversation:
|
|
759
|
-
threadId,
|
|
760
|
-
threadParentId,
|
|
761
|
-
parentSessionKey,
|
|
762
|
-
from,
|
|
763
|
-
chatType,
|
|
764
|
-
originatingTo,
|
|
765
|
-
commandTo,
|
|
766
|
-
fallbackTo
|
|
767
|
-
})
|
|
697
|
+
resolveCommandConversation: resolveDiscordCommandConversation
|
|
768
698
|
},
|
|
769
|
-
conversationBindings:
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
createManager: async ({ cfg, accountId }) => (await loadDiscordThreadBindingsManagerModule()).createThreadBindingManagerAsync({
|
|
774
|
-
cfg,
|
|
775
|
-
accountId: accountId ?? void 0,
|
|
776
|
-
persist: false,
|
|
777
|
-
enableSweeper: false
|
|
778
|
-
}),
|
|
779
|
-
setIdleTimeoutBySessionKey: ({ targetSessionKey, accountId, idleTimeoutMs }) => setThreadBindingIdleTimeoutBySessionKey({
|
|
780
|
-
targetSessionKey,
|
|
781
|
-
accountId: accountId ?? void 0,
|
|
782
|
-
idleTimeoutMs
|
|
783
|
-
}).map(toConversationLifecycleBinding),
|
|
784
|
-
setMaxAgeBySessionKey: ({ targetSessionKey, accountId, maxAgeMs }) => setThreadBindingMaxAgeBySessionKey({
|
|
785
|
-
targetSessionKey,
|
|
786
|
-
accountId: accountId ?? void 0,
|
|
787
|
-
maxAgeMs
|
|
788
|
-
}).map(toConversationLifecycleBinding)
|
|
699
|
+
conversationBindings: discordConversationBindings,
|
|
700
|
+
heartbeat: {
|
|
701
|
+
sendTyping: sendDiscordHeartbeatTyping,
|
|
702
|
+
sendTypingGuarded: sendDiscordHeartbeatTyping
|
|
789
703
|
},
|
|
790
|
-
heartbeat: { sendTyping: async ({ cfg, to, accountId, threadId }) => {
|
|
791
|
-
const resolvedTo = resolveDiscordAttachedOutboundTarget({
|
|
792
|
-
to,
|
|
793
|
-
threadId
|
|
794
|
-
});
|
|
795
|
-
const target = parseDiscordTarget(resolvedTo, { defaultKind: "channel" });
|
|
796
|
-
if (!target || target.kind !== "channel") return;
|
|
797
|
-
await (await loadDiscordSendModule()).sendTypingDiscord(target.id, {
|
|
798
|
-
cfg,
|
|
799
|
-
accountId: accountId ?? void 0
|
|
800
|
-
});
|
|
801
|
-
} },
|
|
802
704
|
status: createComputedAccountStatusAdapter({
|
|
803
705
|
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID, {
|
|
804
706
|
connected: false,
|
|
@@ -1040,12 +942,7 @@ const discordPlugin = createChatChannelPlugin({
|
|
|
1040
942
|
...discordOutbound,
|
|
1041
943
|
preferFinalAssistantVisibleText: true,
|
|
1042
944
|
shouldTreatDeliveredTextAsVisible: shouldTreatDiscordDeliveredTextAsVisible,
|
|
1043
|
-
shouldSuppressLocalPayloadPrompt:
|
|
1044
|
-
cfg,
|
|
1045
|
-
accountId,
|
|
1046
|
-
payload,
|
|
1047
|
-
hint
|
|
1048
|
-
})
|
|
945
|
+
shouldSuppressLocalPayloadPrompt: shouldSuppressLocalDiscordExecApprovalPrompt
|
|
1049
946
|
}
|
|
1050
947
|
});
|
|
1051
948
|
//#endregion
|