@openclaw/slack 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-B86OaUEt.mjs → account-inspect-DWBXpER6.mjs} +1 -1
- package/dist/.setup/{accounts-C1FspRF-.mjs → accounts-D_N9IqNA.mjs} +33 -10
- package/dist/.setup/{action-runtime-Aa-h24Fq.mjs → action-runtime-DfWvuiZd.mjs} +46 -65
- package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
- package/dist/.setup/{actions-BvGUGk3w.mjs → actions-Df0CzcDl.mjs} +148 -204
- package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
- package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
- package/dist/.setup/{channel-DrBm0NFw.mjs → channel-C7bgPSTE.mjs} +192 -280
- package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
- package/dist/.setup/{channel-type-osC0XOES.mjs → channel-type-ClOttrZ5.mjs} +13 -21
- package/dist/.setup/{channel.setup-BSY5hzVz.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
- package/dist/.setup/{config-schema-DrY3S7Ee.mjs → config-schema-BZCxmHKG.mjs} +32 -21
- package/dist/.setup/{directory-config-CTs7YyuU.mjs → directory-config-BOUWH3hR.mjs} +7 -10
- package/dist/.setup/{directory-live-Btq0063Q.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
- package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
- package/dist/.setup/{message-tool-api-DRnDCVdY.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
- package/dist/.setup/{provider-w36VTgZ3.mjs → monitor-BPVfkumU.mjs} +2191 -2704
- package/dist/.setup/{outbound-adapter-K3Ek1iSR.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
- package/dist/.setup/{pipeline.runtime-BZqGcbfi.mjs → pipeline.runtime-B1H63Frf.mjs} +901 -892
- package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
- package/dist/.setup/{policy-Db_QWCZZ.mjs → policy-D-jfM174.mjs} +5 -5
- package/dist/.setup/{probe-64C6k3_Q.mjs → probe-B2Y9qc_z.mjs} +101 -39
- package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
- package/dist/.setup/{relay-source-CDqY76Vp.mjs → relay-source-BpKdjsll.mjs} +10 -12
- package/dist/.setup/{replies-CWFhjS9S.mjs → replies-BAnUtr2f.mjs} +16 -76
- package/dist/.setup/{reply-blocks-9uCeAJts.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
- package/dist/.setup/{resolve-channels-x8fX1SEt.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
- package/dist/.setup/{resolve-users-B8BpBnH2.mjs → resolve-users-DW0ngD03.mjs} +20 -22
- package/dist/.setup/{scopes-CJ-6l4v4.mjs → scopes-CasuDvaa.mjs} +6 -17
- package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
- package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
- package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
- package/dist/.setup/{send-6GCb3lBP.mjs → send-BOVLQi3n.mjs} +102 -199
- package/dist/.setup/{session-status-BhG6pdiH.mjs → session-status-DscajIsd.mjs} +323 -250
- package/dist/.setup/{setup-plugin-api-DtCEByQB.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
- package/dist/.setup/{setup-surface-DsE0hsYY.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
- package/dist/.setup/{shared-BNmqCPgQ.mjs → shared-qau-uDGl.mjs} +30 -56
- package/dist/.setup/{slash-dispatch.runtime-Io4ASZsY.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
- package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
- package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
- package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
- package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +18 -17
- 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 +1 -1
- package/dist/http-routes-api.js +1 -1
- package/dist/index.js +1 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/runtime-api.js +11 -12
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/setup-entry.js +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
- package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
- package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
- package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
- package/node_modules/get-east-asian-width/index.js +8 -3
- package/node_modules/get-east-asian-width/lookup-data.js +1 -1
- package/node_modules/get-east-asian-width/lookup.js +4 -4
- package/node_modules/get-east-asian-width/package.json +1 -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/undici/README.md +81 -25
- package/node_modules/undici/docs/docs/api/Agent.md +249 -42
- package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
- package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
- package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
- package/node_modules/undici/docs/docs/api/Client.md +407 -162
- package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
- package/node_modules/undici/docs/docs/api/Connector.md +118 -35
- package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
- package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
- package/node_modules/undici/docs/docs/api/Debug.md +34 -18
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
- package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
- package/node_modules/undici/docs/docs/api/Errors.md +503 -28
- package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
- package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
- package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
- package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
- package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
- package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
- package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
- package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
- package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
- package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
- package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
- package/node_modules/undici/docs/docs/api/Pool.md +236 -41
- package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
- package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
- package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
- package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
- package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
- package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
- package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
- package/node_modules/undici/docs/docs/api/Util.md +68 -11
- package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
- package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
- package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
- package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
- package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
- package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
- package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
- package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
- package/node_modules/undici/docs/docs/getting-started.md +281 -0
- package/node_modules/undici/docs/docs/index.md +784 -0
- package/node_modules/undici/docs/docs/site.json +125 -0
- package/node_modules/undici/docs/docs/type-map.json +79 -0
- package/node_modules/undici/index.js +4 -2
- package/node_modules/undici/lib/api/api-connect.js +13 -11
- package/node_modules/undici/lib/api/api-pipeline.js +26 -13
- package/node_modules/undici/lib/api/api-request.js +51 -21
- package/node_modules/undici/lib/api/api-stream.js +81 -20
- package/node_modules/undici/lib/api/api-upgrade.js +21 -11
- package/node_modules/undici/lib/api/readable.js +45 -9
- package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
- package/node_modules/undici/lib/core/connect.js +46 -7
- package/node_modules/undici/lib/core/constants.js +1 -24
- package/node_modules/undici/lib/core/errors.js +22 -2
- package/node_modules/undici/lib/core/request.js +100 -18
- package/node_modules/undici/lib/core/symbols.js +4 -0
- package/node_modules/undici/lib/core/util.js +105 -48
- package/node_modules/undici/lib/dispatcher/agent.js +51 -32
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
- package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
- package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
- package/node_modules/undici/lib/dispatcher/client.js +109 -36
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
- package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
- package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
- package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
- package/node_modules/undici/lib/dispatcher/pool.js +30 -5
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
- package/node_modules/undici/lib/global.js +37 -14
- package/node_modules/undici/lib/handler/cache-handler.js +49 -7
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
- package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
- package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
- package/node_modules/undici/lib/handler/retry-handler.js +191 -50
- package/node_modules/undici/lib/interceptor/cache.js +75 -25
- package/node_modules/undici/lib/interceptor/decompress.js +5 -2
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +12 -1
- package/node_modules/undici/lib/interceptor/redirect.js +3 -3
- package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
- package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
- package/node_modules/undici/lib/mock/mock-agent.js +21 -9
- package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
- package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/node_modules/undici/lib/mock/mock-utils.js +281 -47
- package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
- package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
- package/node_modules/undici/lib/util/cache.js +92 -10
- package/node_modules/undici/lib/util/runtime-features.js +3 -34
- package/node_modules/undici/lib/web/cache/cache.js +6 -8
- package/node_modules/undici/lib/web/cookies/parse.js +150 -146
- package/node_modules/undici/lib/web/cookies/util.js +1 -1
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
- package/node_modules/undici/lib/web/eventsource/util.js +32 -1
- package/node_modules/undici/lib/web/fetch/body.js +48 -10
- package/node_modules/undici/lib/web/fetch/constants.js +1 -1
- package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
- package/node_modules/undici/lib/web/fetch/index.js +242 -223
- package/node_modules/undici/lib/web/fetch/request.js +35 -6
- package/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/node_modules/undici/lib/web/fetch/util.js +10 -2
- package/node_modules/undici/lib/web/webidl/index.js +5 -7
- package/node_modules/undici/lib/web/websocket/frame.js +1 -7
- package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
- package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
- package/node_modules/undici/package.json +10 -10
- package/node_modules/undici/types/agent.d.ts +0 -2
- package/node_modules/undici/types/client.d.ts +69 -24
- package/node_modules/undici/types/connector.d.ts +1 -0
- package/node_modules/undici/types/cookies.d.ts +1 -1
- package/node_modules/undici/types/dispatcher.d.ts +8 -30
- package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
- package/node_modules/undici/types/errors.d.ts +10 -0
- package/node_modules/undici/types/fetch.d.ts +5 -1
- package/node_modules/undici/types/formdata.d.ts +0 -6
- package/node_modules/undici/types/h2c-client.d.ts +6 -6
- package/node_modules/undici/types/handlers.d.ts +2 -0
- package/node_modules/undici/types/header.d.ts +5 -0
- package/node_modules/undici/types/index.d.ts +3 -1
- package/node_modules/undici/types/interceptors.d.ts +1 -1
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici/types/pool.d.ts +0 -2
- package/node_modules/undici/types/proxy-agent.d.ts +9 -2
- package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
- package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
- package/node_modules/undici/types/webidl.d.ts +0 -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 +49 -3
- package/package.json +8 -8
- package/dist/.setup/accounts.runtime-BpWv-6-2.mjs +0 -2
- package/dist/.setup/action-runtime.runtime-DwH3NdpT.mjs +0 -2
- package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
- package/dist/.setup/monitor-Dw5uuKWM.mjs +0 -13
- package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
- package/dist/.setup/send.runtime-BmqRP-WG.mjs +0 -2
- package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
- package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
- package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
- package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
- package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/node_modules/undici/lib/util/promise.js +0 -28
- /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { c as resolveSlackReplyDeliveryMessages, f as buildSlackPresentationBlocks, o as resolveSlackReplyBlockResolution, p as canRenderSlackPresentation, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks
|
|
8
|
-
import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-
|
|
9
|
-
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-
|
|
10
|
-
import {
|
|
11
|
-
import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-osC0XOES.mjs";
|
|
2
|
+
import { c as resolveSlackAccountAllowFrom, d as resolveSlackOperationToken, f as resolveSlackReplyToMode, i as listSlackAccountIds, n as hasImplicitDefaultSlackAccount, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-D_N9IqNA.mjs";
|
|
3
|
+
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
|
|
4
|
+
import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
|
|
5
|
+
import { A as countSlackTextUtf8Bytes, At as getSlackApprovalApproversForTeam, Bt as resolveSlackExecApprovalTarget, Ct as resolveSessionSlackOriginTarget, Dt as shouldHandleSlackNativeApprovalRequest, E as SLACK_EDIT_TEXT_MAX_BYTES, Et as resolveTurnSourceSlackOriginTarget, Ht as resolvePluginApprovalSlackApprovers, It as getSlackExecApprovalApprovers, Lt as isSlackExecApprovalAuthorizedSender, Mt as resolveSlackApprovalTeamId, Nt as getSlackInstallationKind, Ot as shouldHandleSlackPluginViaForwardingSession, Pt as isSlackWorkspaceInstallation, Q as normalizeSlackOutboundText, Rt as isSlackExecApprovalClientEnabled, St as normalizeSlackOriginTarget, Tt as resolveSlackFallbackOriginTarget, Vt as shouldSuppressLocalSlackExecApprovalPrompt, Wt as resolveSlackAutoThreadId, a as resolveSlackGroupRequireMention, bt as isSlackPluginApprovalRequest, c as qualifySlackRoutePeerId, ct as renderSlackMessagePresentationFallbackText, d as resolveSlackConversationBindingRoute, f as assertSlackDetachedTargetAllowed, jt as isSlackPluginApprovalAuthorizedSender, k as SLACK_TEXT_LIMIT, kt as slackTargetsMatch, mt as SLACK_PRESENTATION_CAPABILITIES, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, wt as resolveSlackApproverDmTargets, xt as normalizeSlackForwardTarget, yt as isSlackAnyNativeApprovalClientEnabled } from "./session-status-DscajIsd.mjs";
|
|
6
|
+
import { _ as getSlackWriteClient, c as collectSlackCursorPages, o as formatSlackError, u as createSlackLookupClient } from "./probe-B2Y9qc_z.mjs";
|
|
7
|
+
import { c as resolveSlackReplyDeliveryMessages, f as buildSlackPresentationBlocks, o as resolveSlackReplyBlockResolution, p as canRenderSlackPresentation, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks } from "./reply-blocks-SE1kTE3I.mjs";
|
|
8
|
+
import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
|
|
9
|
+
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-Cu4lwlGy.mjs";
|
|
10
|
+
import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-ClOttrZ5.mjs";
|
|
12
11
|
import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { n as slackConfigAdapter, r as slackSecurityAdapter, t as createSlackPluginBase } from "./shared-qau-uDGl.mjs";
|
|
13
|
+
import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-Dh2jzAjN.mjs";
|
|
14
|
+
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
15
|
+
import { normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/account-resolution";
|
|
15
16
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
17
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
17
|
-
import { buildOutboundBaseSessionKey, normalizeMessageChannel, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
18
|
+
import { buildOutboundBaseSessionKey, normalizeMessageChannel, resolveAccountEntry, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
18
19
|
import { buildLegacyDmAccountAllowlistAdapter, createAccountScopedAllowlistNameResolver, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
19
20
|
import { buildThreadAwareOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
20
21
|
import { createChannelMessageAdapterFromOutbound, createRuntimeOutboundDelegates } from "openclaw/plugin-sdk/channel-outbound";
|
|
21
22
|
import { createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing";
|
|
23
|
+
import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfiguredFromRequiredCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
|
|
22
24
|
import { createChannelDirectoryAdapter, createRuntimeDirectoryLiveAdapter } from "openclaw/plugin-sdk/directory-runtime";
|
|
23
|
-
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
25
|
+
import { createLazyRuntimeMethodBinder, createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
24
26
|
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
25
27
|
import { createComputedAccountStatusAdapter, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
|
|
26
28
|
import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
|
|
@@ -44,47 +46,17 @@ function shouldConsiderSlackNativeForwardingSuppression(input) {
|
|
|
44
46
|
}
|
|
45
47
|
const resolveSlackOriginTarget = createChannelNativeOriginTargetResolver({
|
|
46
48
|
channel: "slack",
|
|
47
|
-
shouldHandleRequest:
|
|
48
|
-
cfg,
|
|
49
|
-
accountId,
|
|
50
|
-
approvalKind,
|
|
51
|
-
request
|
|
52
|
-
}),
|
|
49
|
+
shouldHandleRequest: shouldHandleSlackNativeApprovalRequest,
|
|
53
50
|
resolveTurnSourceTarget: resolveTurnSourceSlackOriginTarget,
|
|
54
51
|
resolveSessionTarget: resolveSessionSlackOriginTarget,
|
|
55
52
|
normalizeTargetForMatch: normalizeSlackOriginTarget,
|
|
56
53
|
targetsMatch: slackTargetsMatch,
|
|
57
54
|
resolveFallbackTarget: resolveSlackFallbackOriginTarget
|
|
58
55
|
});
|
|
59
|
-
function resolveSlackApproverDmTargets(params) {
|
|
60
|
-
if (!shouldHandleSlackNativeApprovalRequest({
|
|
61
|
-
cfg: params.cfg,
|
|
62
|
-
accountId: params.accountId,
|
|
63
|
-
approvalKind: params.approvalKind,
|
|
64
|
-
request: params.request
|
|
65
|
-
})) return [];
|
|
66
|
-
const teamId = resolveEnterpriseApprovalTeamId(params.request);
|
|
67
|
-
return (params.approvalKind === "plugin" ? getSlackApprovalApproversForTeam({
|
|
68
|
-
...params,
|
|
69
|
-
teamId
|
|
70
|
-
}) : getSlackExecApprovalApprovers(params)).map((approver) => {
|
|
71
|
-
const target = parseSlackTarget(approver, { defaultKind: "user" });
|
|
72
|
-
if (!target || target.kind !== "user") throw new Error("Slack approval approver target must be a user");
|
|
73
|
-
return { to: formatSlackTarget({
|
|
74
|
-
kind: "user",
|
|
75
|
-
id: target.id,
|
|
76
|
-
teamId: target.teamId ?? teamId,
|
|
77
|
-
explicitKind: true
|
|
78
|
-
}) };
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
56
|
const shouldSuppressSlackForwardingFallback = createNativeApprovalForwardingFallbackSuppressor({
|
|
82
57
|
channel: "slack",
|
|
83
58
|
normalizeForwardTarget: normalizeSlackForwardTarget,
|
|
84
|
-
resolveAccountId:
|
|
85
|
-
target,
|
|
86
|
-
request
|
|
87
|
-
}),
|
|
59
|
+
resolveAccountId: resolveSlackNativeSuppressionAccountId,
|
|
88
60
|
isSessionRouteEligible: shouldHandleSlackNativeApprovalRequest,
|
|
89
61
|
isExplicitTargetEligible: shouldHandleSlackNativeApprovalRequest,
|
|
90
62
|
resolveOriginTarget: resolveSlackOriginTarget,
|
|
@@ -96,31 +68,23 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
|
|
|
96
68
|
channelLabel: "Slack",
|
|
97
69
|
describeExecApprovalSetup: ({ accountId }) => {
|
|
98
70
|
const prefix = accountId && accountId !== "default" ? `channels.slack.accounts.${accountId}` : "channels.slack";
|
|
99
|
-
return `Approve it from the Web UI
|
|
71
|
+
return `Approve it from the Web UI for now. Slack supports native exec approvals for this account. Configure \`${prefix}.execApprovals.approvers\` or \`commands.ownerAllowFrom\`; set \`${prefix}.execApprovals.enabled\` to \`auto\` or \`true\`. Unset or \`false\` disables native exec approval delivery.`;
|
|
100
72
|
},
|
|
73
|
+
describePluginApprovalSetup: () => "Check `approvals.plugin.slack` for a reviewer in the bot's workspace and confirm the Slack bot is connected, or connect an approval-capable Gateway client. Then retry the request.",
|
|
101
74
|
listAccountIds: listSlackAccountIds,
|
|
102
75
|
hasApprovers: ({ cfg, accountId }) => getSlackExecApprovalApprovers({
|
|
103
76
|
cfg,
|
|
104
77
|
accountId
|
|
105
78
|
}).length > 0,
|
|
106
|
-
isExecAuthorizedSender:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}),
|
|
116
|
-
isNativeDeliveryEnabled: ({ cfg, accountId }) => isSlackExecApprovalClientEnabled({
|
|
117
|
-
cfg,
|
|
118
|
-
accountId
|
|
119
|
-
}),
|
|
120
|
-
resolveNativeDeliveryMode: ({ cfg, accountId }) => resolveSlackExecApprovalTarget({
|
|
121
|
-
cfg,
|
|
122
|
-
accountId
|
|
123
|
-
}),
|
|
79
|
+
isExecAuthorizedSender: isSlackExecApprovalAuthorizedSender,
|
|
80
|
+
isPluginAuthorizedSender: (params) => isSlackPluginApprovalAuthorizedSender(params) && (!params.request || resolvePluginApprovalSlackApprovers(params.cfg, params.request) === void 0 || shouldHandleSlackNativeApprovalRequest({
|
|
81
|
+
cfg: params.cfg,
|
|
82
|
+
accountId: params.accountId,
|
|
83
|
+
approvalKind: "plugin",
|
|
84
|
+
request: params.request
|
|
85
|
+
})),
|
|
86
|
+
isNativeDeliveryEnabled: isSlackExecApprovalClientEnabled,
|
|
87
|
+
resolveNativeDeliveryMode: resolveSlackExecApprovalTarget,
|
|
124
88
|
requireMatchingTurnSourceChannel: true,
|
|
125
89
|
resolveSuppressionAccountId: resolveSlackNativeSuppressionAccountId,
|
|
126
90
|
resolveOriginTarget: resolveSlackOriginTarget,
|
|
@@ -133,26 +97,38 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
|
|
|
133
97
|
"plugin",
|
|
134
98
|
"system-agent"
|
|
135
99
|
],
|
|
136
|
-
isConfigured:
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}),
|
|
140
|
-
shouldHandle: ({ cfg, accountId, approvalKind, request }) => shouldHandleSlackNativeApprovalRequest({
|
|
141
|
-
cfg,
|
|
142
|
-
accountId,
|
|
143
|
-
approvalKind,
|
|
144
|
-
request
|
|
145
|
-
}),
|
|
146
|
-
load: async () => (await import("./approval-handler.runtime-BcZNF-VP.mjs")).slackApprovalNativeRuntime
|
|
100
|
+
isConfigured: isSlackAnyNativeApprovalClientEnabled,
|
|
101
|
+
shouldHandle: shouldHandleSlackNativeApprovalRequest,
|
|
102
|
+
load: async () => (await import("./approval-handler.runtime-Ed6Sw5VK.mjs")).slackApprovalNativeRuntime
|
|
147
103
|
})
|
|
148
104
|
});
|
|
149
105
|
const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
|
|
150
106
|
const slackApprovalCapability = {
|
|
151
107
|
...baseSlackApprovalCapability,
|
|
108
|
+
supportsScopedPluginApprovalApprovers: true,
|
|
109
|
+
resolveReviewerSenderId: ({ senderId, spaceId }) => {
|
|
110
|
+
try {
|
|
111
|
+
const parsed = senderId ? parseSlackTarget(senderId, { defaultKind: "user" }) : void 0;
|
|
112
|
+
return parsed?.kind === "user" && spaceId ? formatSlackTarget({
|
|
113
|
+
kind: "user",
|
|
114
|
+
id: parsed.id,
|
|
115
|
+
teamId: spaceId
|
|
116
|
+
}) : senderId ?? void 0;
|
|
117
|
+
} catch {
|
|
118
|
+
return senderId ?? void 0;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
getActionAvailabilityState: (params) => params.approvalKind === "plugin" && params.cfg.approvals?.plugin?.slack && (!params.request || !isSlackPluginApprovalRequest(params.request) || resolvePluginApprovalSlackApprovers(params.cfg, params.request) !== void 0) ? { kind: params.request && !shouldHandleSlackNativeApprovalRequest({
|
|
122
|
+
...params,
|
|
123
|
+
approvalKind: "plugin",
|
|
124
|
+
request: params.request
|
|
125
|
+
}) ? "disabled" : "enabled" } : baseSlackApprovalCapability.getActionAvailabilityState?.(params) ?? { kind: "disabled" },
|
|
152
126
|
delivery: {
|
|
153
127
|
...baseSlackApprovalCapability.delivery,
|
|
128
|
+
shouldBlockForwardingFallback: (input) => shouldConsiderSlackNativeForwardingSuppression(input) && input.approvalKind === "plugin" && isSlackPluginApprovalRequest(input.request) && resolvePluginApprovalSlackApprovers(input.cfg, input.request) !== void 0,
|
|
154
129
|
shouldSuppressForwardingFallback: (input) => {
|
|
155
130
|
if (!shouldConsiderSlackNativeForwardingSuppression(input)) return false;
|
|
131
|
+
if (input.approvalKind === "plugin" && !isSlackPluginApprovalRequest(input.request)) return true;
|
|
156
132
|
const canHandleNative = shouldHandleSlackNativeApprovalRequest({
|
|
157
133
|
cfg: input.cfg,
|
|
158
134
|
accountId: resolveSlackNativeSuppressionAccountId(input),
|
|
@@ -169,32 +145,52 @@ const slackApprovalCapability = {
|
|
|
169
145
|
const capabilities = baseSlackNativeAdapter.describeDeliveryCapabilities(params);
|
|
170
146
|
const request = params.request;
|
|
171
147
|
const approvalKind = params.approvalKind;
|
|
172
|
-
|
|
148
|
+
const described = {
|
|
173
149
|
...capabilities,
|
|
174
150
|
enabled: shouldHandleSlackNativeApprovalRequest({
|
|
175
151
|
cfg: params.cfg,
|
|
176
152
|
accountId: params.accountId,
|
|
177
153
|
approvalKind,
|
|
178
154
|
request
|
|
179
|
-
})
|
|
180
|
-
|
|
155
|
+
})
|
|
156
|
+
};
|
|
157
|
+
if (approvalKind !== "plugin" || !isSlackPluginApprovalRequest(request)) return described;
|
|
158
|
+
if (resolvePluginApprovalSlackApprovers(params.cfg, request) !== void 0) return {
|
|
159
|
+
...described,
|
|
160
|
+
preferredSurface: "approver-dm",
|
|
161
|
+
supportsApproverDmSurface: true
|
|
162
|
+
};
|
|
163
|
+
if (!shouldHandleSlackPluginViaForwardingSession({
|
|
164
|
+
cfg: params.cfg,
|
|
165
|
+
accountId: params.accountId,
|
|
166
|
+
request
|
|
167
|
+
})) return described;
|
|
168
|
+
return {
|
|
169
|
+
...described,
|
|
170
|
+
preferredSurface: "origin",
|
|
171
|
+
supportsApproverDmSurface: getSlackApprovalApproversForTeam({
|
|
181
172
|
cfg: params.cfg,
|
|
182
173
|
accountId: params.accountId,
|
|
183
|
-
|
|
184
|
-
}) ? {
|
|
185
|
-
preferredSurface: "origin",
|
|
186
|
-
supportsApproverDmSurface: hasSlackPluginApprovers({
|
|
174
|
+
teamId: resolveSlackApprovalTeamId({
|
|
187
175
|
cfg: params.cfg,
|
|
188
176
|
accountId: params.accountId,
|
|
189
|
-
|
|
190
|
-
})
|
|
191
|
-
|
|
177
|
+
request
|
|
178
|
+
}),
|
|
179
|
+
request
|
|
180
|
+
}).length > 0
|
|
192
181
|
};
|
|
193
182
|
}
|
|
194
183
|
} : void 0
|
|
195
184
|
};
|
|
196
185
|
//#endregion
|
|
197
186
|
//#region extensions/slack/src/message-action-dispatch.ts
|
|
187
|
+
const SLACK_MESSAGE_ACTIONS = /* @__PURE__ */ new Map([
|
|
188
|
+
["reactions", "reactions"],
|
|
189
|
+
["delete", "deleteMessage"],
|
|
190
|
+
["pin", "pinMessage"],
|
|
191
|
+
["unpin", "unpinMessage"],
|
|
192
|
+
["list-pins", "listPins"]
|
|
193
|
+
]);
|
|
198
194
|
function readSlackForceDocument(params) {
|
|
199
195
|
return readBooleanParam(params, "forceDocument") ?? readBooleanParam(params, "asDocument") ?? false;
|
|
200
196
|
}
|
|
@@ -216,19 +212,28 @@ function renderSlackActionPresentation(presentation) {
|
|
|
216
212
|
}
|
|
217
213
|
/** Translate generic channel action requests into Slack-specific tool invocations and payload shapes. */
|
|
218
214
|
async function handleSlackMessageAction(params) {
|
|
219
|
-
const { providerId, ctx, invoke
|
|
215
|
+
const { providerId, ctx, invoke } = params;
|
|
220
216
|
const { action, cfg, params: actionParams } = ctx;
|
|
221
217
|
const accountId = ctx.accountId ?? void 0;
|
|
218
|
+
const invokeSlackAction = (request, toolContext = ctx.toolContext) => invoke({
|
|
219
|
+
...request,
|
|
220
|
+
accountId
|
|
221
|
+
}, cfg, toolContext);
|
|
222
222
|
const resolveChannelId = () => {
|
|
223
|
-
const
|
|
224
|
-
|
|
223
|
+
const raw = readStringParam$1(actionParams, "channelId") ?? readStringParam$1(actionParams, "to", { required: true });
|
|
224
|
+
const target = parseSlackTarget(raw, { defaultKind: "channel" });
|
|
225
|
+
const channelId = resolveSlackChannelId(raw);
|
|
226
|
+
return formatSlackTarget({
|
|
227
|
+
teamId: target?.teamId,
|
|
228
|
+
kind: "channel",
|
|
229
|
+
id: channelId
|
|
230
|
+
});
|
|
225
231
|
};
|
|
226
|
-
if (action === "conversation-open") return await
|
|
232
|
+
if (action === "conversation-open") return await invokeSlackAction({
|
|
227
233
|
action: "openConversation",
|
|
228
234
|
userIds: actionParams.userIds,
|
|
229
|
-
teamId: readStringParam$1(actionParams, "teamId")
|
|
230
|
-
|
|
231
|
-
}, cfg, ctx.toolContext);
|
|
235
|
+
teamId: readStringParam$1(actionParams, "teamId")
|
|
236
|
+
});
|
|
232
237
|
if (action === "send") {
|
|
233
238
|
const to = readStringParam$1(actionParams, "to", { required: true });
|
|
234
239
|
const content = readStringParam$1(actionParams, "message", {
|
|
@@ -259,20 +264,19 @@ async function handleSlackMessageAction(params) {
|
|
|
259
264
|
...ctx.toolContext,
|
|
260
265
|
preparedMessages
|
|
261
266
|
} : ctx.toolContext;
|
|
262
|
-
return await
|
|
267
|
+
return await invokeSlackAction({
|
|
263
268
|
action: "sendMessage",
|
|
264
269
|
to,
|
|
265
270
|
content: content ?? "",
|
|
266
271
|
mediaUrl: mediaUrl ?? void 0,
|
|
267
272
|
...readSlackForceDocument(actionParams) ? { forceDocument: true } : {},
|
|
268
|
-
accountId,
|
|
269
273
|
threadTs: resolveSlackThreadTsValue({
|
|
270
274
|
replyToId: replyTo,
|
|
271
275
|
threadId
|
|
272
276
|
}),
|
|
273
277
|
...topLevel ? { topLevel: true } : {},
|
|
274
278
|
...replyBroadcast ? { replyBroadcast } : {}
|
|
275
|
-
},
|
|
279
|
+
}, toolContext);
|
|
276
280
|
}
|
|
277
281
|
if (action === "react") {
|
|
278
282
|
const messageIdRaw = resolveReactionMessageId({
|
|
@@ -283,44 +287,39 @@ async function handleSlackMessageAction(params) {
|
|
|
283
287
|
const messageId = String(messageIdRaw);
|
|
284
288
|
const emoji = readStringParam$1(actionParams, "emoji", { allowEmpty: true });
|
|
285
289
|
const remove = typeof actionParams.remove === "boolean" ? actionParams.remove : void 0;
|
|
286
|
-
return await
|
|
290
|
+
return await invokeSlackAction({
|
|
287
291
|
action: "react",
|
|
288
292
|
channelId: resolveChannelId(),
|
|
289
293
|
messageId,
|
|
290
294
|
emoji,
|
|
291
|
-
remove
|
|
292
|
-
|
|
293
|
-
}, cfg, ctx.toolContext);
|
|
295
|
+
remove
|
|
296
|
+
});
|
|
294
297
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
298
|
+
const messageAction = SLACK_MESSAGE_ACTIONS.get(action);
|
|
299
|
+
if (messageAction) {
|
|
300
|
+
const messageId = action === "list-pins" ? void 0 : readStringParam$1(actionParams, "messageId", { required: true });
|
|
301
|
+
return await invokeSlackAction({
|
|
302
|
+
action: messageAction,
|
|
299
303
|
channelId: resolveChannelId(),
|
|
300
304
|
messageId,
|
|
301
|
-
limit: actionParams.limit
|
|
302
|
-
|
|
303
|
-
}, cfg, ctx.toolContext);
|
|
304
|
-
}
|
|
305
|
-
if (action === "read") {
|
|
306
|
-
const readAction = {
|
|
307
|
-
action: "readMessages",
|
|
308
|
-
channelId: resolveChannelId(),
|
|
309
|
-
limit: actionParams.limit,
|
|
310
|
-
before: readStringParam$1(actionParams, "before"),
|
|
311
|
-
after: readStringParam$1(actionParams, "after"),
|
|
312
|
-
messageId: readStringParam$1(actionParams, "messageId"),
|
|
313
|
-
accountId
|
|
314
|
-
};
|
|
315
|
-
if (includeReadThreadId) readAction.threadId = readStringParam$1(actionParams, "threadId");
|
|
316
|
-
return await invoke(readAction, cfg, ctx.toolContext);
|
|
305
|
+
...action === "reactions" ? { limit: actionParams.limit } : {}
|
|
306
|
+
});
|
|
317
307
|
}
|
|
308
|
+
if (action === "read") return await invokeSlackAction({
|
|
309
|
+
action: "readMessages",
|
|
310
|
+
channelId: resolveChannelId(),
|
|
311
|
+
limit: actionParams.limit,
|
|
312
|
+
before: readStringParam$1(actionParams, "before"),
|
|
313
|
+
after: readStringParam$1(actionParams, "after"),
|
|
314
|
+
messageId: readStringParam$1(actionParams, "messageId"),
|
|
315
|
+
threadId: readStringParam$1(actionParams, "threadId")
|
|
316
|
+
});
|
|
318
317
|
if (action === "edit") {
|
|
319
318
|
const messageId = readStringParam$1(actionParams, "messageId", { required: true });
|
|
320
319
|
const content = readStringParam$1(actionParams, "message", { allowEmpty: true });
|
|
321
320
|
const presentation = normalizeMessagePresentation(actionParams.presentation);
|
|
322
321
|
const renderedPresentation = renderSlackActionPresentation(presentation);
|
|
323
|
-
const blocks = renderedPresentation.
|
|
322
|
+
const blocks = renderedPresentation.blocks;
|
|
324
323
|
const accessibleContent = renderedPresentation.usesPresentationTextFallback ? renderSlackMessagePresentationFallbackText({
|
|
325
324
|
text: content,
|
|
326
325
|
presentation
|
|
@@ -335,50 +334,29 @@ async function handleSlackMessageAction(params) {
|
|
|
335
334
|
throw new Error(`${editSubject} exceeds the ${String(SLACK_EDIT_TEXT_MAX_BYTES)}-byte edit limit. Send a new message instead.`);
|
|
336
335
|
}
|
|
337
336
|
if (!accessibleContent && !blocks) throw new Error("Slack edit requires message or blocks.");
|
|
338
|
-
return await
|
|
337
|
+
return await invokeSlackAction({
|
|
339
338
|
action: "editMessage",
|
|
340
339
|
channelId: resolveChannelId(),
|
|
341
340
|
messageId,
|
|
342
341
|
content: accessibleContent,
|
|
343
|
-
blocks
|
|
344
|
-
|
|
345
|
-
}, cfg, ctx.toolContext);
|
|
346
|
-
}
|
|
347
|
-
if (action === "delete") {
|
|
348
|
-
const messageId = readStringParam$1(actionParams, "messageId", { required: true });
|
|
349
|
-
return await invoke({
|
|
350
|
-
action: "deleteMessage",
|
|
351
|
-
channelId: resolveChannelId(),
|
|
352
|
-
messageId,
|
|
353
|
-
accountId
|
|
354
|
-
}, cfg, ctx.toolContext);
|
|
355
|
-
}
|
|
356
|
-
if (action === "pin" || action === "unpin" || action === "list-pins") {
|
|
357
|
-
const messageId = action === "list-pins" ? void 0 : readStringParam$1(actionParams, "messageId", { required: true });
|
|
358
|
-
return await invoke({
|
|
359
|
-
action: action === "pin" ? "pinMessage" : action === "unpin" ? "unpinMessage" : "listPins",
|
|
360
|
-
channelId: resolveChannelId(),
|
|
361
|
-
messageId,
|
|
362
|
-
accountId
|
|
363
|
-
}, cfg, ctx.toolContext);
|
|
342
|
+
blocks
|
|
343
|
+
});
|
|
364
344
|
}
|
|
365
345
|
if (action === "member-info") {
|
|
366
|
-
const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId(ctx.requesterAccountId) : void 0;
|
|
367
|
-
const targetAccountId = normalizeAccountId(accountId ?? resolveDefaultSlackAccountId(cfg));
|
|
346
|
+
const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId$1(ctx.requesterAccountId) : void 0;
|
|
347
|
+
const targetAccountId = normalizeAccountId$1(accountId ?? resolveDefaultSlackAccountId(cfg));
|
|
368
348
|
const requesterUserId = normalizeOptionalLowercaseString(ctx.toolContext?.currentChannelProvider) === "slack" && requesterAccountId !== void 0 && requesterAccountId === targetAccountId ? normalizeOptionalString(ctx.requesterSenderId) : void 0;
|
|
369
349
|
const userId = readStringParam$1(actionParams, "userId") ?? requesterUserId;
|
|
370
350
|
if (!userId) throw new Error("member-info requires a userId outside a current Slack conversation.");
|
|
371
|
-
return await
|
|
351
|
+
return await invokeSlackAction({
|
|
372
352
|
action: "memberInfo",
|
|
373
|
-
userId
|
|
374
|
-
|
|
375
|
-
}, cfg, ctx.toolContext);
|
|
353
|
+
userId
|
|
354
|
+
});
|
|
376
355
|
}
|
|
377
|
-
if (action === "emoji-list") return await
|
|
356
|
+
if (action === "emoji-list") return await invokeSlackAction({
|
|
378
357
|
action: "emojiList",
|
|
379
|
-
limit: readPositiveIntegerParam$1(actionParams, "limit", { message: "limit must be a positive integer." })
|
|
380
|
-
|
|
381
|
-
}, cfg, ctx.toolContext);
|
|
358
|
+
limit: readPositiveIntegerParam$1(actionParams, "limit", { message: "limit must be a positive integer." })
|
|
359
|
+
});
|
|
382
360
|
if (action === "download-file") {
|
|
383
361
|
const fileIdParam = readStringParam$1(actionParams, "fileId");
|
|
384
362
|
const messageIdParam = readStringParam$1(actionParams, "messageId") ?? readStringParam$1(actionParams, "message_id");
|
|
@@ -386,13 +364,12 @@ async function handleSlackMessageAction(params) {
|
|
|
386
364
|
const fileId = readStringParam$1(actionParams, "fileId", { required: true });
|
|
387
365
|
const channelId = readStringParam$1(actionParams, "channelId") ?? readStringParam$1(actionParams, "to");
|
|
388
366
|
const threadId = readStringParam$1(actionParams, "threadId") ?? readStringParam$1(actionParams, "replyTo");
|
|
389
|
-
return await
|
|
367
|
+
return await invokeSlackAction({
|
|
390
368
|
action: "downloadFile",
|
|
391
369
|
fileId,
|
|
392
370
|
channelId: channelId ?? void 0,
|
|
393
|
-
threadId: threadId ?? void 0
|
|
394
|
-
|
|
395
|
-
}, cfg, ctx.toolContext);
|
|
371
|
+
threadId: threadId ?? void 0
|
|
372
|
+
});
|
|
396
373
|
}
|
|
397
374
|
if (action === "upload-file") {
|
|
398
375
|
if (readBooleanParam(actionParams, "replyBroadcast")) throw new Error("Slack replyBroadcast is only supported for text or block thread replies.");
|
|
@@ -401,7 +378,7 @@ async function handleSlackMessageAction(params) {
|
|
|
401
378
|
if (!filePath) throw new Error("upload-file requires filePath, path, or media");
|
|
402
379
|
const threadId = readStringParam$1(actionParams, "threadId") ?? readStringParam$1(actionParams, "replyTo");
|
|
403
380
|
const topLevel = readBooleanParam(actionParams, "topLevel") === true || actionParams.threadId === null;
|
|
404
|
-
return await
|
|
381
|
+
return await invokeSlackAction({
|
|
405
382
|
action: "uploadFile",
|
|
406
383
|
to,
|
|
407
384
|
filePath,
|
|
@@ -410,9 +387,8 @@ async function handleSlackMessageAction(params) {
|
|
|
410
387
|
title: readStringParam$1(actionParams, "title"),
|
|
411
388
|
threadTs: threadId ?? void 0,
|
|
412
389
|
...readSlackForceDocument(actionParams) ? { forceDocument: true } : {},
|
|
413
|
-
...topLevel ? { topLevel: true } : {}
|
|
414
|
-
|
|
415
|
-
}, cfg, ctx.toolContext);
|
|
390
|
+
...topLevel ? { topLevel: true } : {}
|
|
391
|
+
});
|
|
416
392
|
}
|
|
417
393
|
throw new Error(`Action ${action} is not supported for provider ${providerId}.`);
|
|
418
394
|
}
|
|
@@ -427,7 +403,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
|
|
|
427
403
|
"unpinMessage",
|
|
428
404
|
"uploadFile"
|
|
429
405
|
]);
|
|
430
|
-
const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-
|
|
406
|
+
const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-Ck4bAWOX.mjs"));
|
|
431
407
|
function resolveSlackActionContext(ctx, toolContext) {
|
|
432
408
|
if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId && !ctx.assertDirectAdapterHandoff) return;
|
|
433
409
|
return {
|
|
@@ -460,8 +436,6 @@ function createSlackActions(providerId, options) {
|
|
|
460
436
|
return await handleSlackMessageAction({
|
|
461
437
|
providerId,
|
|
462
438
|
ctx,
|
|
463
|
-
normalizeChannelId: normalizeSlackActionChannelTarget,
|
|
464
|
-
includeReadThreadId: true,
|
|
465
439
|
invoke: async (action, cfg, toolContext) => {
|
|
466
440
|
const actionContext = resolveSlackActionContext(ctx, toolContext);
|
|
467
441
|
return await (options?.invoke ? options.invoke(action, cfg, actionContext) : (await loadSlackActionRuntime$1()).handleSlackAction(action, cfg, actionContext));
|
|
@@ -470,15 +444,6 @@ function createSlackActions(providerId, options) {
|
|
|
470
444
|
}
|
|
471
445
|
};
|
|
472
446
|
}
|
|
473
|
-
function normalizeSlackActionChannelTarget(raw) {
|
|
474
|
-
const target = parseSlackTarget(raw, { defaultKind: "channel" });
|
|
475
|
-
const channelId = resolveSlackChannelId(raw);
|
|
476
|
-
return formatSlackTarget({
|
|
477
|
-
teamId: target?.teamId,
|
|
478
|
-
kind: "channel",
|
|
479
|
-
id: channelId
|
|
480
|
-
});
|
|
481
|
-
}
|
|
482
447
|
function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
|
|
483
448
|
const target = parseSlackTarget(rawTarget, { defaultKind: "channel" });
|
|
484
449
|
if (!target || target.teamId) return false;
|
|
@@ -492,7 +457,10 @@ function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
|
|
|
492
457
|
//#endregion
|
|
493
458
|
//#region extensions/slack/src/conversation-route-owner.ts
|
|
494
459
|
function inspectSlackConversationRouteOwner(params) {
|
|
495
|
-
const
|
|
460
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
461
|
+
const accountConfig = resolveAccountEntry(params.cfg.channels?.slack?.accounts, accountId);
|
|
462
|
+
if (params.cfg.channels?.slack?.enabled === false || accountConfig?.enabled === false || !accountConfig && (accountId !== DEFAULT_ACCOUNT_ID || !hasImplicitDefaultSlackAccount(params.cfg))) return null;
|
|
463
|
+
const installationKind = getSlackInstallationKind(accountId);
|
|
496
464
|
const direct = params.conversation.kind === "direct";
|
|
497
465
|
const target = parseSlackTarget(params.conversation.peerId, { defaultKind: direct ? "user" : "channel" });
|
|
498
466
|
if (!target || target.kind !== (direct ? "user" : "channel")) return null;
|
|
@@ -506,10 +474,11 @@ function inspectSlackConversationRouteOwner(params) {
|
|
|
506
474
|
const enterpriseRoute = installationKind === "enterprise" || targetIsEnterprise;
|
|
507
475
|
if (enterpriseRoute && !teamId) return null;
|
|
508
476
|
const enterpriseScope = enterpriseRoute && teamId ? { teamId } : void 0;
|
|
509
|
-
const route = resolveAgentRoute({
|
|
510
|
-
cfg: normalizeSlackRouteBindingConfig(params.cfg),
|
|
477
|
+
const route = ({ boundAgentId, bindingOwnerAvailable }) => resolveAgentRoute({
|
|
478
|
+
cfg: boundAgentId || !bindingOwnerAvailable ? { session: params.cfg.session } : normalizeSlackRouteBindingConfig(params.cfg),
|
|
479
|
+
defaultAgentId: boundAgentId,
|
|
511
480
|
channel: "slack",
|
|
512
|
-
accountId
|
|
481
|
+
accountId,
|
|
513
482
|
teamId,
|
|
514
483
|
peer: {
|
|
515
484
|
kind: params.conversation.kind,
|
|
@@ -523,8 +492,8 @@ function inspectSlackConversationRouteOwner(params) {
|
|
|
523
492
|
const baseConversationId = qualifySlackConversationId(direct ? `user:${target.id}` : target.id, enterpriseScope);
|
|
524
493
|
const bindingRoute = resolveSlackConversationBindingRoute({
|
|
525
494
|
cfg: params.cfg,
|
|
526
|
-
route,
|
|
527
|
-
accountId
|
|
495
|
+
resolveRoute: route,
|
|
496
|
+
accountId,
|
|
528
497
|
baseConversationId,
|
|
529
498
|
runtimeBindingThreadId: params.conversation.threadId,
|
|
530
499
|
bindingsEnabled: !enterpriseRoute,
|
|
@@ -534,11 +503,11 @@ function inspectSlackConversationRouteOwner(params) {
|
|
|
534
503
|
if (bindingRoute.runtimeRoute.pluginId) return {
|
|
535
504
|
kind: "plugin",
|
|
536
505
|
pluginId: bindingRoute.runtimeRoute.pluginId,
|
|
537
|
-
fallbackAgentId: route.agentId
|
|
506
|
+
fallbackAgentId: bindingRoute.route.agentId
|
|
538
507
|
};
|
|
539
508
|
return {
|
|
540
509
|
kind: "agent",
|
|
541
|
-
agentId: bindingRoute.runtimeRoute.boundAgentId ?? bindingRoute.configuredRoute?.boundAgentId ?? route.agentId
|
|
510
|
+
agentId: bindingRoute.runtimeRoute.boundAgentId ?? bindingRoute.configuredRoute?.boundAgentId ?? bindingRoute.route.agentId
|
|
542
511
|
};
|
|
543
512
|
}
|
|
544
513
|
//#endregion
|
|
@@ -604,23 +573,21 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
604
573
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
605
574
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
606
575
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
607
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
608
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
609
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
576
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-Dn7QgWRE.mjs"));
|
|
577
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-CasuDvaa.mjs"));
|
|
578
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-Bv48XUjq.mjs"));
|
|
579
|
+
const bindSlackOutbound = createLazyRuntimeMethodBinder(loadSlackOutboundAdapterModule);
|
|
610
580
|
async function resolveSlackHandleAction() {
|
|
611
581
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
612
582
|
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
const
|
|
617
|
-
const
|
|
618
|
-
const
|
|
619
|
-
const
|
|
620
|
-
const
|
|
621
|
-
const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-64C6k3_Q.mjs").then((n) => n.n));
|
|
622
|
-
const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-Dw5uuKWM.mjs").then((n) => n.t));
|
|
623
|
-
const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-Btq0063Q.mjs").then((n) => n.t));
|
|
583
|
+
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BOUWH3hR.mjs").then((n) => n.t));
|
|
584
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-XXBn8UU_.mjs").then((n) => n.n));
|
|
585
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DW0ngD03.mjs").then((n) => n.n));
|
|
586
|
+
const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-Ck4bAWOX.mjs"));
|
|
587
|
+
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-BOVLQi3n.mjs").then((n) => n.n));
|
|
588
|
+
const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-B2Y9qc_z.mjs").then((n) => n.n));
|
|
589
|
+
const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-BPVfkumU.mjs").then((n) => n.t));
|
|
590
|
+
const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-B2O4B_Ho.mjs").then((n) => n.t));
|
|
624
591
|
async function setSlackHeartbeatThreadStatus(params) {
|
|
625
592
|
const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
|
|
626
593
|
const target = parseSlackTarget(params.to, { defaultKind: "channel" });
|
|
@@ -682,16 +649,6 @@ function matchSlackAcpConversation(params) {
|
|
|
682
649
|
};
|
|
683
650
|
return null;
|
|
684
651
|
}
|
|
685
|
-
function buildSlackBaseSessionKey(params) {
|
|
686
|
-
return buildOutboundBaseSessionKey({
|
|
687
|
-
...params,
|
|
688
|
-
channel: "slack"
|
|
689
|
-
});
|
|
690
|
-
}
|
|
691
|
-
function shouldRecoverSlackThreadFromCurrentSession(params) {
|
|
692
|
-
if (params.peerKind === "direct" && (params.cfg.session?.dmScope ?? "main") === "main") return false;
|
|
693
|
-
return true;
|
|
694
|
-
}
|
|
695
652
|
async function resolveSlackOutboundSessionRoute(params) {
|
|
696
653
|
const parsed = parseSlackTarget(params.target, { defaultKind: "channel" });
|
|
697
654
|
if (!parsed) return null;
|
|
@@ -741,7 +698,8 @@ async function resolveSlackOutboundSessionRoute(params) {
|
|
|
741
698
|
kind: peerKind,
|
|
742
699
|
id: peerId
|
|
743
700
|
};
|
|
744
|
-
const unpartitionedBaseSessionKey =
|
|
701
|
+
const unpartitionedBaseSessionKey = buildOutboundBaseSessionKey({
|
|
702
|
+
channel: "slack",
|
|
745
703
|
cfg: params.cfg,
|
|
746
704
|
agentId: params.agentId,
|
|
747
705
|
accountId: params.accountId,
|
|
@@ -764,10 +722,7 @@ async function resolveSlackOutboundSessionRoute(params) {
|
|
|
764
722
|
replyToId: params.replyToId,
|
|
765
723
|
threadId: params.threadId,
|
|
766
724
|
currentSessionKey: params.currentSessionKey,
|
|
767
|
-
canRecoverCurrentThread: () =>
|
|
768
|
-
cfg: params.cfg,
|
|
769
|
-
peerKind
|
|
770
|
-
})
|
|
725
|
+
canRecoverCurrentThread: () => peerKind !== "direct" || (params.cfg.session?.dmScope ?? "main") !== "main"
|
|
771
726
|
});
|
|
772
727
|
}
|
|
773
728
|
function formatSlackScopeDiagnostic(params) {
|
|
@@ -806,17 +761,10 @@ const slackChannelOutbound = {
|
|
|
806
761
|
thread: true,
|
|
807
762
|
messageSendingHooks: true
|
|
808
763
|
} },
|
|
809
|
-
shouldTreatDeliveredTextAsVisible:
|
|
764
|
+
shouldTreatDeliveredTextAsVisible: ({ kind, text }) => kind === "block" && typeof text === "string" && text.trim().length > 0,
|
|
810
765
|
preferFinalAssistantVisibleText: true,
|
|
811
|
-
shouldSuppressLocalPayloadPrompt:
|
|
812
|
-
|
|
813
|
-
accountId,
|
|
814
|
-
payload
|
|
815
|
-
}),
|
|
816
|
-
afterDeliverPayload: async (ctx) => {
|
|
817
|
-
const { slackOutbound } = await loadSlackOutboundAdapterModule();
|
|
818
|
-
await slackOutbound.afterDeliverPayload(ctx);
|
|
819
|
-
},
|
|
766
|
+
shouldSuppressLocalPayloadPrompt: shouldSuppressLocalSlackExecApprovalPrompt,
|
|
767
|
+
afterDeliverPayload: bindSlackOutbound(({ slackOutbound }) => slackOutbound.afterDeliverPayload),
|
|
820
768
|
presentationCapabilities: SLACK_PRESENTATION_CAPABILITIES,
|
|
821
769
|
...createRuntimeOutboundDelegates({
|
|
822
770
|
getRuntime: loadSlackOutboundAdapterModule,
|
|
@@ -825,18 +773,9 @@ const slackChannelOutbound = {
|
|
|
825
773
|
unavailableMessage: "Slack outbound presentation rendering is unavailable"
|
|
826
774
|
}
|
|
827
775
|
}),
|
|
828
|
-
sendPayload:
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
},
|
|
832
|
-
sendText: async (ctx) => {
|
|
833
|
-
const { slackOutbound } = await loadSlackOutboundAdapterModule();
|
|
834
|
-
return await slackOutbound.sendText(ctx);
|
|
835
|
-
},
|
|
836
|
-
sendMedia: async (ctx) => {
|
|
837
|
-
const { slackOutbound } = await loadSlackOutboundAdapterModule();
|
|
838
|
-
return await slackOutbound.sendMedia(ctx);
|
|
839
|
-
}
|
|
776
|
+
sendPayload: bindSlackOutbound(({ slackOutbound }) => slackOutbound.sendPayload),
|
|
777
|
+
sendText: bindSlackOutbound(({ slackOutbound }) => slackOutbound.sendText),
|
|
778
|
+
sendMedia: bindSlackOutbound(({ slackOutbound }) => slackOutbound.sendMedia)
|
|
840
779
|
};
|
|
841
780
|
const slackMessageAdapterBase = createChannelMessageAdapterFromOutbound({
|
|
842
781
|
id: "slack",
|
|
@@ -938,7 +877,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
938
877
|
return normalizeSlackMessagingTarget(`channel:${id}`);
|
|
939
878
|
},
|
|
940
879
|
inferTargetChatType: ({ to }) => resolveSlackRouteTarget(to)?.chatType,
|
|
941
|
-
resolveOutboundSessionRoute:
|
|
880
|
+
resolveOutboundSessionRoute: resolveSlackOutboundSessionRoute,
|
|
942
881
|
hasStructuredReplyPayload: ({ payload }) => {
|
|
943
882
|
try {
|
|
944
883
|
return Boolean(resolveSlackReplyBlocks(payload)?.length);
|
|
@@ -1007,27 +946,17 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
1007
946
|
actions: createSlackActions(SLACK_CHANNEL, { invoke: async (action, cfg, toolContext) => await (await resolveSlackHandleAction())(action, cfg, toolContext) }),
|
|
1008
947
|
message: slackMessageAdapter,
|
|
1009
948
|
heartbeat: {
|
|
1010
|
-
sendTyping:
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
},
|
|
1019
|
-
clearTyping: async ({ cfg, to, accountId, threadId }) => {
|
|
1020
|
-
await setSlackHeartbeatThreadStatus({
|
|
1021
|
-
cfg,
|
|
1022
|
-
to,
|
|
1023
|
-
accountId,
|
|
1024
|
-
threadId,
|
|
1025
|
-
status: "active"
|
|
1026
|
-
});
|
|
1027
|
-
}
|
|
949
|
+
sendTyping: (params) => setSlackHeartbeatThreadStatus({
|
|
950
|
+
...params,
|
|
951
|
+
status: "processing"
|
|
952
|
+
}),
|
|
953
|
+
clearTyping: (params) => setSlackHeartbeatThreadStatus({
|
|
954
|
+
...params,
|
|
955
|
+
status: "active"
|
|
956
|
+
})
|
|
1028
957
|
},
|
|
1029
958
|
status: createComputedAccountStatusAdapter({
|
|
1030
|
-
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID
|
|
959
|
+
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
|
|
1031
960
|
buildChannelSummary: async ({ snapshot }) => {
|
|
1032
961
|
const { buildPassiveProbedChannelStatusSummary } = await loadExtensionSharedSdk();
|
|
1033
962
|
return buildPassiveProbedChannelStatusSummary(snapshot, snapshot.identity === "user" ? {
|
|
@@ -1072,37 +1001,20 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
1072
1001
|
buildCapabilitiesDiagnostics: async ({ account, timeoutMs }) => {
|
|
1073
1002
|
const lines = [];
|
|
1074
1003
|
const details = {};
|
|
1075
|
-
const botToken = account.botToken?.trim();
|
|
1076
1004
|
const userToken = account.userToken?.trim();
|
|
1077
1005
|
const { fetchSlackScopes } = await loadSlackScopesModule();
|
|
1078
|
-
|
|
1079
|
-
|
|
1006
|
+
const tokenTypes = account.identity === "user" ? ["user"] : userToken ? ["bot", "user"] : ["bot"];
|
|
1007
|
+
for (const tokenType of tokenTypes) {
|
|
1008
|
+
const token = tokenType === "user" ? userToken : account.botToken?.trim();
|
|
1009
|
+
const result = token ? await fetchSlackScopes(token, timeoutMs) : {
|
|
1080
1010
|
ok: false,
|
|
1081
|
-
error:
|
|
1011
|
+
error: `Slack ${tokenType} token missing.`
|
|
1082
1012
|
};
|
|
1083
1013
|
lines.push(formatSlackScopeDiagnostic({
|
|
1084
|
-
tokenType
|
|
1085
|
-
result
|
|
1086
|
-
}));
|
|
1087
|
-
details.userScopes = userScopes;
|
|
1088
|
-
} else {
|
|
1089
|
-
const botScopes = botToken ? await fetchSlackScopes(botToken, timeoutMs) : {
|
|
1090
|
-
ok: false,
|
|
1091
|
-
error: "Slack bot token missing."
|
|
1092
|
-
};
|
|
1093
|
-
lines.push(formatSlackScopeDiagnostic({
|
|
1094
|
-
tokenType: "bot",
|
|
1095
|
-
result: botScopes
|
|
1096
|
-
}));
|
|
1097
|
-
details.botScopes = botScopes;
|
|
1098
|
-
}
|
|
1099
|
-
if (account.identity !== "user" && userToken) {
|
|
1100
|
-
const userScopes = await fetchSlackScopes(userToken, timeoutMs);
|
|
1101
|
-
lines.push(formatSlackScopeDiagnostic({
|
|
1102
|
-
tokenType: "user",
|
|
1103
|
-
result: userScopes
|
|
1014
|
+
tokenType,
|
|
1015
|
+
result
|
|
1104
1016
|
}));
|
|
1105
|
-
details
|
|
1017
|
+
details[`${tokenType}Scopes`] = result;
|
|
1106
1018
|
}
|
|
1107
1019
|
return {
|
|
1108
1020
|
lines,
|
|
@@ -1112,7 +1024,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
1112
1024
|
resolveAccountSnapshot: ({ account }) => {
|
|
1113
1025
|
const mode = account.config.mode ?? "socket";
|
|
1114
1026
|
const identity = account.config.postAs ?? "bot";
|
|
1115
|
-
const configured = (mode === "http" ? resolveConfiguredFromRequiredCredentialStatuses(account, [identity === "user" ? "userTokenStatus" : "botTokenStatus",
|
|
1027
|
+
const configured = (mode === "http" || mode === "socket" ? resolveConfiguredFromRequiredCredentialStatuses(account, [identity === "user" ? "userTokenStatus" : "botTokenStatus", mode === "http" ? "signingSecretStatus" : "appTokenStatus"]) : void 0) ?? isSlackPluginAccountConfigured(account);
|
|
1116
1028
|
return {
|
|
1117
1029
|
accountId: account.accountId,
|
|
1118
1030
|
name: account.name,
|
|
@@ -1190,10 +1102,10 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
1190
1102
|
matchesToolContextTarget: ({ target, toolContext }) => slackContextTargetsMatch(target, toolContext),
|
|
1191
1103
|
scopedAccountReplyToMode: {
|
|
1192
1104
|
resolveAccount: adaptScopedAccountAccessor(resolveSlackAccount),
|
|
1193
|
-
resolveReplyToMode:
|
|
1105
|
+
resolveReplyToMode: resolveSlackReplyToMode
|
|
1194
1106
|
},
|
|
1195
1107
|
allowExplicitReplyTagsWhenOff: false,
|
|
1196
|
-
buildToolContext:
|
|
1108
|
+
buildToolContext: buildSlackThreadingToolContext,
|
|
1197
1109
|
resolveAutoThreadId: ({ to, toolContext, replyToId }) => normalizeSlackThreadTsCandidate(replyToId) ? void 0 : normalizeSlackThreadTsCandidate(resolveSlackAutoThreadId({
|
|
1198
1110
|
to,
|
|
1199
1111
|
toolContext
|