@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,4 +1,4 @@
|
|
|
1
|
-
import { r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-
|
|
1
|
+
import { r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-CIbMfuf8.mjs";
|
|
2
2
|
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
|
|
3
3
|
//#region extensions/slack/src/http/plugin-routes.ts
|
|
4
4
|
function resolveSlackWebhookPaths(config) {
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { i as buildSlackChannelPolicyScope, r as buildSlackChannelIdCandidates } from "./session-status-
|
|
2
|
-
import {
|
|
1
|
+
import { i as buildSlackChannelPolicyScope, r as buildSlackChannelIdCandidates } from "./session-status-DscajIsd.mjs";
|
|
2
|
+
import { A as resolveSlackUserAllowListForTeam, O as normalizeSlackSlug } from "./probe-B2Y9qc_z.mjs";
|
|
3
3
|
import { applyChannelMatchMeta, buildChannelKeyCandidates } from "openclaw/plugin-sdk/channel-targets";
|
|
4
|
+
import { firstDefined } from "openclaw/plugin-sdk/allow-from";
|
|
4
5
|
import { mergePairLoopGuardConfig } from "openclaw/plugin-sdk/pair-loop-guard-runtime";
|
|
5
6
|
//#region extensions/slack/src/monitor/channel-config.ts
|
|
6
|
-
function firstDefined(...values) {
|
|
7
|
-
for (const value of values) if (value !== void 0) return value;
|
|
8
|
-
}
|
|
9
7
|
function resolveSlackChannelLabel(params) {
|
|
10
8
|
const channelName = params.channelName?.trim();
|
|
11
9
|
if (channelName) return `#${normalizeSlackSlug(channelName) || channelName}`;
|
|
@@ -36,6 +34,7 @@ function resolveSlackChannelConfig(params) {
|
|
|
36
34
|
const resolved = matched ?? fallback ?? {};
|
|
37
35
|
const allowed = firstDefined(resolved.enabled, fallback?.enabled, true) ?? true;
|
|
38
36
|
const requireMention = firstDefined(resolved.requireMention, fallback?.requireMention, requireMentionDefault) ?? requireMentionDefault;
|
|
37
|
+
const requireMentionInBotThreads = firstDefined(resolved.requireMentionInBotThreads, fallback?.requireMentionInBotThreads);
|
|
39
38
|
const ignoreOtherMentions = firstDefined(resolved.ignoreOtherMentions, fallback?.ignoreOtherMentions);
|
|
40
39
|
const allowBots = firstDefined(resolved.allowBots, fallback?.allowBots);
|
|
41
40
|
const replyToMode = firstDefined(resolved.replyToMode, fallback?.replyToMode);
|
|
@@ -51,6 +50,7 @@ function resolveSlackChannelConfig(params) {
|
|
|
51
50
|
const result = {
|
|
52
51
|
allowed,
|
|
53
52
|
requireMention,
|
|
53
|
+
requireMentionInBotThreads,
|
|
54
54
|
ignoreOtherMentions,
|
|
55
55
|
replyToMode,
|
|
56
56
|
allowBots,
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as parseSlackTarget } from "./target-parsing-
|
|
1
|
+
import { r as __exportAll } from "./streaming-compat-C5Wut626.mjs";
|
|
2
|
+
import { p as formatSlackBotTokenIdentityWarning } from "./accounts-D_N9IqNA.mjs";
|
|
3
|
+
import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
4
5
|
import { isRecord, normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
6
|
import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
6
7
|
import { runChannelProbe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
8
|
+
import { normalizeHyphenSlug, normalizeStringEntriesLower } from "openclaw/plugin-sdk/string-normalization-runtime";
|
|
7
9
|
import { compileAllowlist, resolveCompiledAllowlistMatch } from "openclaw/plugin-sdk/allow-from";
|
|
8
|
-
import {
|
|
10
|
+
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
9
11
|
import { hash } from "node:crypto";
|
|
10
12
|
import { WebAPIRateLimitedError, WebClient } from "@slack/web-api";
|
|
11
|
-
import { captureChannelReadAuthority, createHttp1EnvHttpProxyAgent, resolveEnvHttpProxyAgentOptions, resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
|
|
13
|
+
import { addActiveManagedProxyTlsOptions, captureChannelReadAuthority, createHttp1EnvHttpProxyAgent, resolveEnvHttpProxyAgentOptions, resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
|
|
12
14
|
import { isDebugProxyGlobalFetchPatchInstalled } from "openclaw/plugin-sdk/proxy-capture";
|
|
13
15
|
import { parseRetryAfterHeaderSeconds, retryAsync } from "openclaw/plugin-sdk/retry-runtime";
|
|
14
16
|
import { fetchWithRuntimeDispatcher } from "openclaw/plugin-sdk/runtime-fetch";
|
|
@@ -24,18 +26,9 @@ function normalizeSlackSlug(raw) {
|
|
|
24
26
|
if (cached !== void 0) return cached;
|
|
25
27
|
const normalized = normalizeHyphenSlug(raw);
|
|
26
28
|
slackSlugCache.set(key, normalized);
|
|
27
|
-
|
|
28
|
-
const oldest = slackSlugCache.keys().next();
|
|
29
|
-
if (!oldest.done) slackSlugCache.delete(oldest.value);
|
|
30
|
-
}
|
|
29
|
+
pruneMapToMaxSize(slackSlugCache, SLACK_SLUG_CACHE_MAX);
|
|
31
30
|
return normalized;
|
|
32
31
|
}
|
|
33
|
-
function normalizeAllowList(list) {
|
|
34
|
-
return normalizeStringEntries$1(list);
|
|
35
|
-
}
|
|
36
|
-
function normalizeAllowListLower(list) {
|
|
37
|
-
return normalizeStringEntriesLower(list);
|
|
38
|
-
}
|
|
39
32
|
function normalizeSlackAllowOwnerEntry(entry) {
|
|
40
33
|
const trimmed = normalizeOptionalLowercaseString(entry);
|
|
41
34
|
if (!trimmed || trimmed === "*") return;
|
|
@@ -95,7 +88,7 @@ function allowListMatches(params) {
|
|
|
95
88
|
return resolveSlackAllowListMatch(params).allowed;
|
|
96
89
|
}
|
|
97
90
|
function resolveSlackUserAllowed(params) {
|
|
98
|
-
const allowList =
|
|
91
|
+
const allowList = normalizeStringEntriesLower(params.allowList);
|
|
99
92
|
if (allowList.length === 0) return true;
|
|
100
93
|
return allowListMatches({
|
|
101
94
|
allowList,
|
|
@@ -106,7 +99,7 @@ function resolveSlackUserAllowed(params) {
|
|
|
106
99
|
});
|
|
107
100
|
}
|
|
108
101
|
function resolveSlackUserAllowListForTeam(params) {
|
|
109
|
-
const allowList =
|
|
102
|
+
const allowList = normalizeStringEntriesLower(params.allowList);
|
|
110
103
|
const teamId = normalizeOptionalLowercaseString(params.teamId);
|
|
111
104
|
return allowList.flatMap((entry) => {
|
|
112
105
|
if (entry === "*") return [entry];
|
|
@@ -137,7 +130,7 @@ function normalizeSlackFetchInit(init) {
|
|
|
137
130
|
const { body: _body, ...rest } = init;
|
|
138
131
|
return rest;
|
|
139
132
|
}
|
|
140
|
-
/** Build the dispatcher
|
|
133
|
+
/** Build the dispatcher for Slack Web API fetches (paired with the runtime fetch). */
|
|
141
134
|
function resolveSlackProxyDispatcher() {
|
|
142
135
|
const options = resolveEnvHttpProxyAgentOptions();
|
|
143
136
|
if (!options) return;
|
|
@@ -147,6 +140,58 @@ function resolveSlackProxyDispatcher() {
|
|
|
147
140
|
return;
|
|
148
141
|
}
|
|
149
142
|
}
|
|
143
|
+
let slackSocketModeUndici;
|
|
144
|
+
/**
|
|
145
|
+
* Load the undici copy that @slack/socket-mode opens its WebSocket with.
|
|
146
|
+
*
|
|
147
|
+
* Socket Mode 3 calls `new undici.WebSocket(url, { dispatcher })` with its own
|
|
148
|
+
* undici. A dispatcher from another undici copy fails the handshake, so we must
|
|
149
|
+
* identify whether Socket Mode can share the runtime dispatcher. The explicit
|
|
150
|
+
* `undici/index.js` subpath keeps Bun's bare-`undici` placeholder out of the
|
|
151
|
+
* dispatcher (the same reason the runtime loads undici this way); under Bun,
|
|
152
|
+
* Socket Mode's bare import gets Bun's WebSocket, which does not consult a
|
|
153
|
+
* dispatcher at all.
|
|
154
|
+
*/
|
|
155
|
+
function loadSlackSocketModeUndici() {
|
|
156
|
+
if (slackSocketModeUndici) return slackSocketModeUndici;
|
|
157
|
+
const requireFromPlugin = createRequire(import.meta.url);
|
|
158
|
+
const requireFromBolt = createRequire(requireFromPlugin.resolve("@slack/bolt/package.json"));
|
|
159
|
+
slackSocketModeUndici = createRequire(requireFromBolt.resolve("@slack/socket-mode/package.json"))("undici/index.js");
|
|
160
|
+
return slackSocketModeUndici;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Build the env-proxy dispatcher for Socket Mode's WebSocket.
|
|
164
|
+
*
|
|
165
|
+
* Reuse the Web API dispatcher when both transports load the same undici copy;
|
|
166
|
+
* its custom proxy routing supports Socket Mode's CONNECT handshake. Otherwise
|
|
167
|
+
* build one from Socket Mode's copy. Without a proxy env, preserve the default
|
|
168
|
+
* direct connection.
|
|
169
|
+
*/
|
|
170
|
+
function resolveSlackSocketModeDispatcher(webApi) {
|
|
171
|
+
const options = resolveEnvHttpProxyAgentOptions();
|
|
172
|
+
if (!options) return;
|
|
173
|
+
const { EnvHttpProxyAgent } = loadSlackSocketModeUndici();
|
|
174
|
+
if (webApi instanceof EnvHttpProxyAgent) return webApi;
|
|
175
|
+
const agentOptions = addActiveManagedProxyTlsOptions(options);
|
|
176
|
+
try {
|
|
177
|
+
return new EnvHttpProxyAgent(agentOptions);
|
|
178
|
+
} catch {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/** Pair each Slack monitor transport with the dispatcher from the undici copy it uses. */
|
|
183
|
+
function resolveSlackMonitorDispatchers(mode) {
|
|
184
|
+
const webApi = resolveSlackProxyDispatcher();
|
|
185
|
+
const socketMode = mode === "socket" ? resolveSlackSocketModeDispatcher(webApi) : void 0;
|
|
186
|
+
return {
|
|
187
|
+
webApi,
|
|
188
|
+
socketMode,
|
|
189
|
+
close: async () => {
|
|
190
|
+
await webApi?.close();
|
|
191
|
+
if (socketMode !== webApi) await socketMode?.close();
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
150
195
|
const DIRECT_SLACK_DISPATCHER_OPTIONS = {
|
|
151
196
|
httpProxy: "",
|
|
152
197
|
httpsProxy: "",
|
|
@@ -252,6 +297,22 @@ function resolveSlackLookupClientOptions(options = {}, dispatcher = resolveSlack
|
|
|
252
297
|
return resolved;
|
|
253
298
|
}
|
|
254
299
|
//#endregion
|
|
300
|
+
//#region extensions/slack/src/monitor/lru-map-cache.ts
|
|
301
|
+
/** LRU-touch read: move hit to newest so pruneMapToMaxSize keeps active keys. */
|
|
302
|
+
function readLruMapEntry(cache, cacheKey) {
|
|
303
|
+
const cached = cache.get(cacheKey);
|
|
304
|
+
if (cached) {
|
|
305
|
+
cache.delete(cacheKey);
|
|
306
|
+
cache.set(cacheKey, cached);
|
|
307
|
+
}
|
|
308
|
+
return cached;
|
|
309
|
+
}
|
|
310
|
+
function writeLruMapEntry(cache, cacheKey, entry, maxEntries) {
|
|
311
|
+
cache.delete(cacheKey);
|
|
312
|
+
cache.set(cacheKey, entry);
|
|
313
|
+
pruneMapToMaxSize(cache, maxEntries);
|
|
314
|
+
}
|
|
315
|
+
//#endregion
|
|
255
316
|
//#region extensions/slack/src/client.ts
|
|
256
317
|
const SLACK_WRITE_CLIENT_CACHE_MAX = 32;
|
|
257
318
|
const SLACK_STARTUP_AUTH_TIMEOUT_MS = 1e4;
|
|
@@ -307,18 +368,11 @@ function slackWriteClientCacheKey(token, options) {
|
|
|
307
368
|
function getSlackWriteClient(token, options = {}) {
|
|
308
369
|
const resolvedOptions = resolveSlackWriteClientOptions(options);
|
|
309
370
|
const tokenKey = slackWriteClientCacheKey(token, resolvedOptions);
|
|
310
|
-
const cached = slackWriteClientCache
|
|
311
|
-
if (cached)
|
|
312
|
-
slackWriteClientCache.delete(tokenKey);
|
|
313
|
-
slackWriteClientCache.set(tokenKey, cached);
|
|
314
|
-
return cached;
|
|
315
|
-
}
|
|
371
|
+
const cached = readLruMapEntry(slackWriteClientCache, tokenKey);
|
|
372
|
+
if (cached) return cached;
|
|
316
373
|
const client = new WebClient(token, resolvedOptions);
|
|
317
|
-
if (slackWriteClientCache.size >= SLACK_WRITE_CLIENT_CACHE_MAX) {
|
|
318
|
-
const oldestTokenKey = slackWriteClientCache.keys().next().value;
|
|
319
|
-
if (oldestTokenKey) slackWriteClientCache.delete(oldestTokenKey);
|
|
320
|
-
}
|
|
321
374
|
slackWriteClientCache.set(tokenKey, client);
|
|
375
|
+
pruneMapToMaxSize(slackWriteClientCache, SLACK_WRITE_CLIENT_CACHE_MAX);
|
|
322
376
|
return client;
|
|
323
377
|
}
|
|
324
378
|
function getSlackListenerWriteClient(params) {
|
|
@@ -370,12 +424,14 @@ async function collectSlackCursorPages(params) {
|
|
|
370
424
|
//#region extensions/slack/src/errors.ts
|
|
371
425
|
const NO_ERROR_DETAIL = "no error detail";
|
|
372
426
|
const MAX_ERROR_CAUSE_DEPTH = 32;
|
|
373
|
-
function
|
|
374
|
-
|
|
427
|
+
function getSlackWebApiErrorData(error) {
|
|
428
|
+
if (!(error instanceof Error)) return;
|
|
429
|
+
const data = error.data;
|
|
430
|
+
return data && typeof data === "object" ? data : void 0;
|
|
375
431
|
}
|
|
376
432
|
function addStringDetail(details, label, value) {
|
|
377
433
|
if (typeof value !== "string") return;
|
|
378
|
-
const trimmed =
|
|
434
|
+
const trimmed = redactSensitiveText(value.trim());
|
|
379
435
|
if (trimmed) details.push(label ? `${label}: ${trimmed}` : trimmed);
|
|
380
436
|
}
|
|
381
437
|
function addScalarDetail(details, label, value) {
|
|
@@ -389,7 +445,7 @@ function addStringListDetail(details, label, value) {
|
|
|
389
445
|
if (!Array.isArray(value)) return;
|
|
390
446
|
const entries = value.flatMap((entry) => {
|
|
391
447
|
if (typeof entry !== "string") return [];
|
|
392
|
-
const trimmed =
|
|
448
|
+
const trimmed = redactSensitiveText(entry.trim());
|
|
393
449
|
return trimmed ? [trimmed] : [];
|
|
394
450
|
});
|
|
395
451
|
if (entries.length) details.push(`${label}: ${entries.join(", ")}`);
|
|
@@ -403,7 +459,7 @@ function safeStringify(value) {
|
|
|
403
459
|
seen.add(nested);
|
|
404
460
|
return nested;
|
|
405
461
|
});
|
|
406
|
-
return result ?
|
|
462
|
+
return result ? redactSensitiveText(result) : void 0;
|
|
407
463
|
} catch {
|
|
408
464
|
return;
|
|
409
465
|
}
|
|
@@ -412,10 +468,10 @@ function addSlackResponseMetadata(details, value) {
|
|
|
412
468
|
if (!isRecord(value)) return;
|
|
413
469
|
addStringListDetail(details, "scopes", value.scopes);
|
|
414
470
|
addStringListDetail(details, "accepted", value.acceptedScopes);
|
|
415
|
-
const messages
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
471
|
+
for (const [key, label] of [["messages", "slack message"], ["warnings", "slack warning"]]) {
|
|
472
|
+
const entries = value[key];
|
|
473
|
+
if (Array.isArray(entries)) for (const entry of entries) addStringDetail(details, label, entry);
|
|
474
|
+
}
|
|
419
475
|
}
|
|
420
476
|
function addSlackDataDetails(details, value) {
|
|
421
477
|
if (!isRecord(value)) return;
|
|
@@ -566,7 +622,13 @@ function createSlackIngressSubject(params) {
|
|
|
566
622
|
const senderName = params.senderName?.trim().toLowerCase();
|
|
567
623
|
const senderNameSlug = senderName ? normalizeSlackSlug(senderName) : void 0;
|
|
568
624
|
return {
|
|
569
|
-
stableId: senderId,
|
|
625
|
+
stableId: params.senderId,
|
|
626
|
+
authentication: {
|
|
627
|
+
senderId: params.senderAuthentication ?? "asserted",
|
|
628
|
+
workspaceSenderId: params.senderAuthentication ?? "asserted",
|
|
629
|
+
senderName: "mutable",
|
|
630
|
+
senderNameSlug: "mutable"
|
|
631
|
+
},
|
|
570
632
|
aliases: {
|
|
571
633
|
workspaceSenderId: teamId && senderId ? `team:${teamId}:user:${senderId}` : void 0,
|
|
572
634
|
senderName,
|
|
@@ -645,4 +707,4 @@ async function probeSlack(token, timeoutMs = 2500, opts) {
|
|
|
645
707
|
}
|
|
646
708
|
}
|
|
647
709
|
//#endregion
|
|
648
|
-
export {
|
|
710
|
+
export { resolveSlackUserAllowListForTeam as A, resolveSlackMonitorDispatchers as C, normalizeSlackAllowOwnerEntry as D, allowListMatches as E, normalizeSlackSlug as O, resolveSlackLookupClientOptions as S, resolveSlackWriteClientOptions as T, getSlackWriteClient as _, slackIngressIdentity as a, SLACK_DEFAULT_RETRY_OPTIONS as b, collectSlackCursorPages as c, createSlackReadClient as d, createSlackStartupAuthClient as f, getSlackListenerWriteClient as g, createSlackWriteClient as h, createSlackIngressSubject as i, resolveSlackUserAllowed as j, resolveSlackAllowListMatch as k, fetchSlackChannelListPage as l, createSlackWebClient as m, probe_exports as n, formatSlackError as o, createSlackTokenCacheKey as p, SLACK_USER_NAME_KIND as r, getSlackWebApiErrorData as s, probeSlack as t, createSlackLookupClient as u, readLruMapEntry as v, resolveSlackWebClientOptions as w, SLACK_WRITE_RETRY_OPTIONS as x, writeLruMapEntry as y };
|
|
@@ -23,9 +23,13 @@ function registerSlackHttpHandler(params) {
|
|
|
23
23
|
params.log?.(`slack: webhook path ${normalizedPath} already registered${suffix}`);
|
|
24
24
|
return () => {};
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
const handler = params.handler;
|
|
27
|
+
routes.set(normalizedPath, handler);
|
|
28
|
+
let registered = true;
|
|
27
29
|
return () => {
|
|
28
|
-
|
|
30
|
+
if (!registered) return;
|
|
31
|
+
registered = false;
|
|
32
|
+
if (routes.get(normalizedPath) === handler) routes.delete(normalizedPath);
|
|
29
33
|
};
|
|
30
34
|
}
|
|
31
35
|
async function handleSlackHttpRequest(req, res) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { o as formatSlackError } from "./probe-B2Y9qc_z.mjs";
|
|
2
|
+
import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-BPVfkumU.mjs";
|
|
3
|
+
import { asOptionalRecord, normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
4
|
import { computeBackoff, sleepWithAbort, warn } from "openclaw/plugin-sdk/runtime-env";
|
|
4
5
|
import { createNodeProxyAgent } from "openclaw/plugin-sdk/fetch-runtime";
|
|
5
6
|
import { isIP } from "node:net";
|
|
@@ -42,11 +43,11 @@ async function monitorSlackRelaySource(params) {
|
|
|
42
43
|
lifecycle: "recovering",
|
|
43
44
|
lastDisconnect: {
|
|
44
45
|
at: Date.now(),
|
|
45
|
-
error:
|
|
46
|
+
error: formatSlackError(err)
|
|
46
47
|
},
|
|
47
|
-
lastError:
|
|
48
|
+
lastError: formatSlackError(err)
|
|
48
49
|
});
|
|
49
|
-
params.runtime.log?.(warn(`slack relay mode disconnected; reconnecting in ${Math.round(delayMs / 1e3)}s (attempt ${reconnectAttempts}) reason="${
|
|
50
|
+
params.runtime.log?.(warn(`slack relay mode disconnected; reconnecting in ${Math.round(delayMs / 1e3)}s (attempt ${reconnectAttempts}) reason="${formatSlackError(err)}"`));
|
|
50
51
|
await sleepWithAbort(delayMs, params.abortSignal);
|
|
51
52
|
} finally {
|
|
52
53
|
closeRelayWebSocket(connection);
|
|
@@ -114,7 +115,7 @@ function runRelayWebSocket(params) {
|
|
|
114
115
|
setStatus: params.setStatus,
|
|
115
116
|
setIdentity: params.setIdentity
|
|
116
117
|
})).catch((err) => {
|
|
117
|
-
params.runtime.error?.(`slack relay frame failed: ${
|
|
118
|
+
params.runtime.error?.(`slack relay frame failed: ${formatSlackError(err)}`);
|
|
118
119
|
});
|
|
119
120
|
};
|
|
120
121
|
const onError = (error) => {
|
|
@@ -213,10 +214,10 @@ function parseRelayFrame(data) {
|
|
|
213
214
|
function extractRelaySlackMessageEvent(frame) {
|
|
214
215
|
const record = asOptionalRecord(frame);
|
|
215
216
|
if (!record || record.type !== "slack_event") return;
|
|
216
|
-
const deliveryId =
|
|
217
|
+
const deliveryId = readStringValue(record.delivery_id);
|
|
217
218
|
const routeRecord = asOptionalRecord(record.route);
|
|
218
|
-
const routeKind =
|
|
219
|
-
const routeKey =
|
|
219
|
+
const routeKind = readStringValue(routeRecord?.kind);
|
|
220
|
+
const routeKey = readStringValue(routeRecord?.key);
|
|
220
221
|
const payload = asOptionalRecord(record.payload);
|
|
221
222
|
const event = parseSlackMessageEvent(payload?.event);
|
|
222
223
|
if (!event) return;
|
|
@@ -263,8 +264,5 @@ function formatRelayClose(code, reason) {
|
|
|
263
264
|
const text = reason.toString("utf8");
|
|
264
265
|
return text ? `Slack relay websocket closed (${code} ${text})` : `Slack relay websocket closed (${code})`;
|
|
265
266
|
}
|
|
266
|
-
function stringValue(value) {
|
|
267
|
-
return typeof value === "string" ? value : void 0;
|
|
268
|
-
}
|
|
269
267
|
//#endregion
|
|
270
268
|
export { SLACK_RELAY_MAX_PAYLOAD_BYTES, SlackRelayMalformedFrameError, buildRelayWebSocketOptions, buildRelayWebSocketUrl, monitorSlackRelaySource, parseRelayFrame, requireSlackMessageEvent };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { C as buildSlackBlocksFallbackText,
|
|
2
|
-
import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution,
|
|
3
|
-
import { n as resolveSlackReplyThreadTs } from "./thread-ts-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { C as buildSlackBlocksFallbackText, Z as markdownToSlackMrkdwnChunks, b as isSlackInvalidBlocksResponse, g as buildSlackNativeDataAccessibilityText, k as SLACK_TEXT_LIMIT, v as hasSlackNativeDataBlock, x as isSlackNativeResponseUrlRejection } from "./session-status-DscajIsd.mjs";
|
|
2
|
+
import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-SE1kTE3I.mjs";
|
|
3
|
+
import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
|
|
4
|
+
import { m as chunkSlackTextAtHardLimit, p as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-BOVLQi3n.mjs";
|
|
5
|
+
import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-BPVfkumU.mjs";
|
|
6
6
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
7
7
|
import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
|
|
8
8
|
import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
|
|
@@ -14,18 +14,11 @@ import { getGlobalHookRunner } from "openclaw/plugin-sdk/plugin-runtime";
|
|
|
14
14
|
import { createChannelPartialDeliveryError, getGroupThreadDeliverySession } from "openclaw/plugin-sdk/channel-inbound";
|
|
15
15
|
import { buildCanonicalSentMessageHookContext, createInternalHookEvent, fireAndForgetHook, toInternalMessageSentContext, toPluginMessageContext, toPluginMessageSentEvent, triggerInternalHook } from "openclaw/plugin-sdk/hook-runtime";
|
|
16
16
|
//#region extensions/slack/src/message-sent-hook.ts
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
* Without this, plugins observing `message_sent` see Telegram outbound but not
|
|
24
|
-
* Slack outbound — even though `docs/plugins/hooks.md` documents the hook as
|
|
25
|
-
* firing for all successful outbound deliveries.
|
|
26
|
-
*/
|
|
27
|
-
function buildSlackSentHookContext(params) {
|
|
28
|
-
return buildCanonicalSentMessageHookContext({
|
|
17
|
+
function emitSlackMessageSentHooks(params) {
|
|
18
|
+
const hookRunner = getGlobalHookRunner();
|
|
19
|
+
const enabled = hookRunner?.hasHooks("message_sent") ?? false;
|
|
20
|
+
if (!enabled && !params.sessionKeyForInternalHooks) return;
|
|
21
|
+
const canonical = buildCanonicalSentMessageHookContext({
|
|
29
22
|
to: params.to,
|
|
30
23
|
content: params.content,
|
|
31
24
|
success: params.success,
|
|
@@ -38,34 +31,8 @@ function buildSlackSentHookContext(params) {
|
|
|
38
31
|
isGroup: params.isGroup,
|
|
39
32
|
groupId: params.groupId
|
|
40
33
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (!params.sessionKeyForInternalHooks) return;
|
|
44
|
-
const canonical = buildSlackSentHookContext(params);
|
|
45
|
-
fireAndForgetHook(triggerInternalHook(createInternalHookEvent("message", "sent", params.sessionKeyForInternalHooks, toInternalMessageSentContext(canonical))), "slack: message:sent internal hook failed");
|
|
46
|
-
}
|
|
47
|
-
function emitMessageSentHooks(params) {
|
|
48
|
-
if (!params.enabled && !params.sessionKeyForInternalHooks) return;
|
|
49
|
-
const canonical = buildSlackSentHookContext(params);
|
|
50
|
-
if (params.enabled) fireAndForgetHook(Promise.resolve(params.hookRunner.runMessageSent(toPluginMessageSentEvent(canonical), toPluginMessageContext(canonical))), "slack: message_sent plugin hook failed");
|
|
51
|
-
emitInternalSlackMessageSentHook(params);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Fire both the plugin `message_sent` hook and (if a session key is supplied)
|
|
55
|
-
* the internal `message:sent` hook for a successful or failed Slack outbound
|
|
56
|
-
* delivery.
|
|
57
|
-
*
|
|
58
|
-
* Safe to call after every `chat.postMessage` — the function self-gates on
|
|
59
|
-
* `hookRunner.hasHooks("message_sent")` so plugins not observing the hook
|
|
60
|
-
* incur no cost.
|
|
61
|
-
*/
|
|
62
|
-
function emitSlackMessageSentHooks(params) {
|
|
63
|
-
const hookRunner = getGlobalHookRunner();
|
|
64
|
-
emitMessageSentHooks({
|
|
65
|
-
...params,
|
|
66
|
-
hookRunner,
|
|
67
|
-
enabled: hookRunner?.hasHooks("message_sent") ?? false
|
|
68
|
-
});
|
|
34
|
+
if (enabled) fireAndForgetHook(Promise.resolve(hookRunner.runMessageSent(toPluginMessageSentEvent(canonical), toPluginMessageContext(canonical))), "slack: message_sent plugin hook failed");
|
|
35
|
+
if (params.sessionKeyForInternalHooks) fireAndForgetHook(triggerInternalHook(createInternalHookEvent("message", "sent", params.sessionKeyForInternalHooks, toInternalMessageSentContext(canonical))), "slack: message:sent internal hook failed");
|
|
69
36
|
}
|
|
70
37
|
//#endregion
|
|
71
38
|
//#region extensions/slack/src/monitor/replies.ts
|
|
@@ -115,9 +82,6 @@ function compactSlackResponseUrlFallback(messages) {
|
|
|
115
82
|
flush();
|
|
116
83
|
return compacted;
|
|
117
84
|
}
|
|
118
|
-
function readSlackReplyBlocks(payload) {
|
|
119
|
-
return resolveSlackReplyBlocks(payload);
|
|
120
|
-
}
|
|
121
85
|
function sanitizeSlackMonitorReplyPayload(payload) {
|
|
122
86
|
if (payload.isReasoning === true || typeof payload.text !== "string") return payload.isReasoning === true ? null : payload;
|
|
123
87
|
const text = sanitizeAssistantVisibleText(payload.text);
|
|
@@ -267,37 +231,13 @@ async function deliverReplies(params) {
|
|
|
267
231
|
}
|
|
268
232
|
return latestResult;
|
|
269
233
|
}
|
|
270
|
-
|
|
271
|
-
* Compute effective threadTs for a Slack reply based on replyToMode.
|
|
272
|
-
* - "off": stay in thread if already in one, otherwise main channel
|
|
273
|
-
* - "first": first reply goes to thread, subsequent replies to main channel
|
|
274
|
-
* - "all": all replies go to thread
|
|
275
|
-
*/
|
|
276
|
-
function resolveSlackThreadTs(params) {
|
|
277
|
-
return createSlackReplyReferencePlanner({
|
|
278
|
-
replyToMode: params.replyToMode,
|
|
279
|
-
incomingThreadTs: params.incomingThreadTs,
|
|
280
|
-
messageTs: params.messageTs,
|
|
281
|
-
hasReplied: params.hasReplied,
|
|
282
|
-
isThreadReply: params.isThreadReply
|
|
283
|
-
}).use();
|
|
284
|
-
}
|
|
285
|
-
function createSlackReplyReferencePlanner(params) {
|
|
234
|
+
function createSlackReplyDeliveryPlan(params) {
|
|
286
235
|
const effectiveMode = params.isThreadReply ?? Boolean(params.incomingThreadTs && params.incomingThreadTs !== params.messageTs) ? "all" : params.replyToMode;
|
|
287
|
-
|
|
236
|
+
const replyReference = createReplyReferencePlanner({
|
|
288
237
|
replyToMode: effectiveMode,
|
|
289
238
|
existingId: params.incomingThreadTs,
|
|
290
239
|
startId: params.messageTs,
|
|
291
|
-
hasReplied: params.
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
function createSlackReplyDeliveryPlan(params) {
|
|
295
|
-
const replyReference = createSlackReplyReferencePlanner({
|
|
296
|
-
replyToMode: params.replyToMode,
|
|
297
|
-
incomingThreadTs: params.incomingThreadTs,
|
|
298
|
-
messageTs: params.messageTs,
|
|
299
|
-
hasReplied: params.hasRepliedRef.value,
|
|
300
|
-
isThreadReply: params.isThreadReply
|
|
240
|
+
hasReplied: params.hasRepliedRef.value
|
|
301
241
|
});
|
|
302
242
|
return {
|
|
303
243
|
peekThreadTs: () => replyReference.peek(),
|
|
@@ -507,4 +447,4 @@ async function deliverSlackSlashReplies(params) {
|
|
|
507
447
|
}
|
|
508
448
|
}
|
|
509
449
|
//#endregion
|
|
510
|
-
export {
|
|
450
|
+
export { emitSlackMessageSentHooks as a, sanitizeSlackMonitorReplyPayload as i, deliverReplies as n, deliverSlackSlashReplies as r, createSlackReplyDeliveryPlan as t };
|