@openclaw/slack 2026.9.6 → 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-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
- package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
- package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
- package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
- package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
- package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
- package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
- package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
- package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
- package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
- package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
- package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
- package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
- package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
- package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
- package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
- package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
- package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
- package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
- package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
- package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
- package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
- package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
- package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
- package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
- package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
- package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
- package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
- package/dist/.setup/{scopes-h3YB-mMs.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-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
- package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
- package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
- package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
- package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
- package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.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/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/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/openclaw.plugin.json +31 -3
- package/package.json +7 -7
- package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
- package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
- package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
- package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
- package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
- package/dist/.setup/send.runtime-B4caZU6T.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,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-
|
|
4
|
-
import { f as
|
|
5
|
-
import {
|
|
1
|
+
import { r as __exportAll } from "./streaming-compat-C5Wut626.mjs";
|
|
2
|
+
import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-D_N9IqNA.mjs";
|
|
3
|
+
import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
|
|
4
|
+
import { D as SLACK_MESSAGE_TEXT_HARD_LIMIT, E as SLACK_EDIT_TEXT_MAX_BYTES, K as resolveSlackQuestionActionIds, M as truncateSlackTextByUtf8Bytes, O as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, R as SLACK_QUESTION_FINALIZATION_BLOCKS, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, _ as createSlackNativeDataBaseTextConsumer, f as assertSlackDetachedTargetAllowed, g as buildSlackNativeDataAccessibilityText, h as appendSlackNativeDataPlainTextFallback, j as truncateSlackText, k as SLACK_TEXT_LIMIT, v as hasSlackNativeDataBlock, vt as validateSlackBlocksArray, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-DscajIsd.mjs";
|
|
5
|
+
import { _ as getSlackWriteClient, d as createSlackReadClient, h as createSlackWriteClient, o as formatSlackError, p as createSlackTokenCacheKey, s as getSlackWebApiErrorData } from "./probe-B2Y9qc_z.mjs";
|
|
6
|
+
import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
|
|
6
7
|
import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
|
|
7
8
|
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
9
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
9
10
|
import { logVerbose, sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
10
11
|
import { chunkTextForOutbound } from "openclaw/plugin-sdk/text-chunking";
|
|
11
12
|
import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
|
|
13
|
+
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
12
14
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
13
15
|
import { resolveTextChunksWithFallback } from "openclaw/plugin-sdk/reply-payload";
|
|
14
16
|
import { createHash, createHmac } from "node:crypto";
|
|
@@ -121,20 +123,21 @@ function buildSlackNativeDataDeliveryPlan(params) {
|
|
|
121
123
|
}
|
|
122
124
|
//#endregion
|
|
123
125
|
//#region extensions/slack/src/post-message-identity.ts
|
|
124
|
-
function
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
function buildSlackMessageIdentityPayload(identity) {
|
|
127
|
+
return {
|
|
128
|
+
...identity?.username ? { username: identity.username } : {},
|
|
129
|
+
...identity?.iconUrl ? { icon_url: identity.iconUrl } : identity?.iconEmoji ? { icon_emoji: identity.iconEmoji } : {}
|
|
130
|
+
};
|
|
128
131
|
}
|
|
129
132
|
function isSlackCustomizeScopeError(err) {
|
|
130
|
-
const data = getSlackWebApiErrorData
|
|
133
|
+
const data = getSlackWebApiErrorData(err);
|
|
131
134
|
if (normalizeLowercaseStringOrEmpty(normalizeOptionalString(data?.error)) !== "missing_scope") return false;
|
|
132
135
|
if (normalizeLowercaseStringOrEmpty(normalizeOptionalString(data?.needed)).includes("chat:write.customize")) return true;
|
|
133
136
|
return [...normalizeTrimmedStringList(data?.response_metadata?.scopes), ...normalizeTrimmedStringList(data?.response_metadata?.acceptedScopes)].map((scope) => normalizeLowercaseStringOrEmpty(scope)).includes("chat:write.customize");
|
|
134
137
|
}
|
|
135
138
|
function isSlackCustomIdentityRejectedError(err) {
|
|
136
139
|
if (isSlackCustomizeScopeError(err)) return true;
|
|
137
|
-
const data = getSlackWebApiErrorData
|
|
140
|
+
const data = getSlackWebApiErrorData(err);
|
|
138
141
|
const code = normalizeLowercaseStringOrEmpty(normalizeOptionalString(data?.error));
|
|
139
142
|
return code === "invalid_arguments" || code === "invalid_arg_name";
|
|
140
143
|
}
|
|
@@ -146,19 +149,9 @@ async function postSlackMessageWithIdentityFallback(params) {
|
|
|
146
149
|
const { basePayload, identity, post } = params;
|
|
147
150
|
try {
|
|
148
151
|
if (!identity) return await post(basePayload);
|
|
149
|
-
if (identity?.iconUrl) return await post({
|
|
150
|
-
...basePayload,
|
|
151
|
-
...identity.username ? { username: identity.username } : {},
|
|
152
|
-
icon_url: identity.iconUrl
|
|
153
|
-
}, identity);
|
|
154
|
-
if (identity?.iconEmoji) return await post({
|
|
155
|
-
...basePayload,
|
|
156
|
-
...identity.username ? { username: identity.username } : {},
|
|
157
|
-
icon_emoji: identity.iconEmoji
|
|
158
|
-
}, identity);
|
|
159
152
|
return await post({
|
|
160
153
|
...basePayload,
|
|
161
|
-
...identity
|
|
154
|
+
...buildSlackMessageIdentityPayload(identity)
|
|
162
155
|
}, identity);
|
|
163
156
|
} catch (err) {
|
|
164
157
|
if (!identity || !hasCustomIdentity$1(identity) || !isSlackCustomIdentityRejectedError(err)) throw err;
|
|
@@ -191,18 +184,10 @@ function buildSlackPostMessagePayload(params) {
|
|
|
191
184
|
reply_broadcast: true
|
|
192
185
|
} : params.threadTs ? { thread_ts: params.threadTs } : {};
|
|
193
186
|
const unfurlPayload = buildSlackUnfurlPayload(params.unfurl);
|
|
194
|
-
if (params.blocks?.length) return {
|
|
195
|
-
channel: params.channelId,
|
|
196
|
-
text: params.text,
|
|
197
|
-
blocks: params.blocks,
|
|
198
|
-
...params.metadata ? { metadata: params.metadata } : {},
|
|
199
|
-
...typeof params.mrkdwn === "boolean" ? { mrkdwn: params.mrkdwn } : {},
|
|
200
|
-
...threadPayload,
|
|
201
|
-
...unfurlPayload
|
|
202
|
-
};
|
|
203
187
|
return {
|
|
204
188
|
channel: params.channelId,
|
|
205
189
|
text: params.text,
|
|
190
|
+
...params.blocks?.length ? { blocks: params.blocks } : {},
|
|
206
191
|
...params.metadata ? { metadata: params.metadata } : {},
|
|
207
192
|
...typeof params.mrkdwn === "boolean" ? { mrkdwn: params.mrkdwn } : {},
|
|
208
193
|
...threadPayload,
|
|
@@ -508,10 +493,7 @@ function recordSlackThreadFailureNotice(params) {
|
|
|
508
493
|
if (threadFailureNotices.get(key) === fingerprint) return false;
|
|
509
494
|
threadFailureNotices.delete(key);
|
|
510
495
|
threadFailureNotices.set(key, fingerprint);
|
|
511
|
-
|
|
512
|
-
const oldestKey = threadFailureNotices.keys().next().value;
|
|
513
|
-
if (oldestKey !== void 0) threadFailureNotices.delete(oldestKey);
|
|
514
|
-
}
|
|
496
|
+
pruneMapToMaxSize(threadFailureNotices, MAX_FAILURE_NOTICES);
|
|
515
497
|
return true;
|
|
516
498
|
}
|
|
517
499
|
/** Clears a thread or channel outage notice after a healthy model turn completes. */
|
|
@@ -544,15 +526,19 @@ function readCachedSlackDmChannelId(params) {
|
|
|
544
526
|
function cacheSlackDmChannelId(params, channelId) {
|
|
545
527
|
const cache = getSlackDmChannelCache(params.cacheOwner);
|
|
546
528
|
const key = createSlackDmCacheKey(params);
|
|
547
|
-
|
|
548
|
-
else if (cache.size >= SLACK_DM_CHANNEL_CACHE_MAX) {
|
|
549
|
-
const oldest = cache.keys().next().value;
|
|
550
|
-
if (oldest) cache.delete(oldest);
|
|
551
|
-
}
|
|
529
|
+
cache.delete(key);
|
|
552
530
|
cache.set(key, channelId);
|
|
531
|
+
pruneMapToMaxSize(cache, SLACK_DM_CHANNEL_CACHE_MAX);
|
|
553
532
|
}
|
|
554
533
|
//#endregion
|
|
555
534
|
//#region extensions/slack/src/send.ts
|
|
535
|
+
var send_exports = /* @__PURE__ */ __exportAll({
|
|
536
|
+
reconcileSlackUnknownSend: () => reconcileSlackUnknownSend,
|
|
537
|
+
resolveSlackDmChannelId: () => resolveSlackDmChannelId,
|
|
538
|
+
sendMessageSlack: () => sendMessageSlack,
|
|
539
|
+
setSlackDefaultSendIdentity: () => setSlackDefaultSendIdentity,
|
|
540
|
+
updateMessageSlack: () => updateMessageSlack
|
|
541
|
+
});
|
|
556
542
|
const SLACK_DELIVERY_METADATA_EVENT = "openclaw_delivery";
|
|
557
543
|
const SLACK_DELIVERY_METADATA_KEY = "openclaw_delivery_id";
|
|
558
544
|
const SLACK_DELIVERY_METADATA_PART_INDEX_KEY = "openclaw_delivery_part_index";
|
|
@@ -593,12 +579,6 @@ function getSlackDefaultSendIdentity(accountId) {
|
|
|
593
579
|
function resolveSlackSendIdentity(params) {
|
|
594
580
|
return normalizeSlackSendIdentity(params.explicit) ?? getSlackDefaultSendIdentity(params.accountId);
|
|
595
581
|
}
|
|
596
|
-
function getSlackWebApiErrorData(err) {
|
|
597
|
-
if (!(err instanceof Error)) return;
|
|
598
|
-
const data = err.data;
|
|
599
|
-
if (!data || typeof data !== "object") return;
|
|
600
|
-
return data;
|
|
601
|
-
}
|
|
602
582
|
function formatSlackWebApiErrorMessage(err) {
|
|
603
583
|
if (!(err instanceof Error)) return;
|
|
604
584
|
const data = getSlackWebApiErrorData(err);
|
|
@@ -672,6 +652,19 @@ function createSlackSendReceiptFromResults(results, threadTs) {
|
|
|
672
652
|
});
|
|
673
653
|
return Object.assign(receipt, thread);
|
|
674
654
|
}
|
|
655
|
+
function createSlackSendResult(messageId, channelId, kind, threadTs) {
|
|
656
|
+
return {
|
|
657
|
+
messageId,
|
|
658
|
+
channelId,
|
|
659
|
+
threadTs,
|
|
660
|
+
receipt: createSlackSendReceipt({
|
|
661
|
+
platformMessageIds: [messageId],
|
|
662
|
+
channelId,
|
|
663
|
+
kind,
|
|
664
|
+
threadTs
|
|
665
|
+
})
|
|
666
|
+
};
|
|
667
|
+
}
|
|
675
668
|
function resolveToken(params) {
|
|
676
669
|
const explicit = normalizeOptionalString(params.explicit);
|
|
677
670
|
if (explicit) return explicit;
|
|
@@ -699,8 +692,7 @@ function parseEnterpriseEventRecipient(raw) {
|
|
|
699
692
|
id: canonicalizeSlackApiTargetId("channel", match[1])
|
|
700
693
|
};
|
|
701
694
|
}
|
|
702
|
-
function resolveSlackSendEventScope(
|
|
703
|
-
const scope = params.opts.eventScope;
|
|
695
|
+
function resolveSlackSendEventScope(scope) {
|
|
704
696
|
if (!scope) return;
|
|
705
697
|
if (!/^T[A-Z0-9]+$/i.test(scope.teamId) || !scope.client) throw new Error("invalid_enterprise_slack_listener_scope");
|
|
706
698
|
return scope;
|
|
@@ -750,21 +742,15 @@ function createSlackSendQueueKey(params) {
|
|
|
750
742
|
const workspaceScope = params.teamId ? `:${params.teamId}` : "";
|
|
751
743
|
return `${params.accountId}:${createSlackTokenCacheKey(params.token)}${workspaceScope}:${recipientKey}:${params.threadTs ?? ""}`;
|
|
752
744
|
}
|
|
753
|
-
async function runQueuedSlackSend(key, task) {
|
|
754
|
-
return await slackSendQueue.enqueue(key, task);
|
|
755
|
-
}
|
|
756
|
-
function isSlackUserRecipient(recipient) {
|
|
757
|
-
return recipient.kind === "user";
|
|
758
|
-
}
|
|
759
745
|
function resolveDirectUserPostChannelId(params) {
|
|
760
|
-
if (
|
|
746
|
+
if (params.recipient.kind !== "user" || params.hasMedia || params.threadTs) return;
|
|
761
747
|
return params.recipient.id;
|
|
762
748
|
}
|
|
763
749
|
function resolvePostedMessageChannelId(response, fallback) {
|
|
764
750
|
return (typeof response.channel === "string" ? normalizeOptionalString(response.channel) : null) ?? fallback;
|
|
765
751
|
}
|
|
766
752
|
async function resolveChannelId(client, recipient, params) {
|
|
767
|
-
if (
|
|
753
|
+
if (recipient.kind !== "user") return { channelId: recipient.id };
|
|
768
754
|
const cacheParams = {
|
|
769
755
|
cacheOwner: params.dmCacheOwner ?? client,
|
|
770
756
|
accountId: params.accountId,
|
|
@@ -905,22 +891,18 @@ async function scanSlackConversationForDelivery(params) {
|
|
|
905
891
|
let expectedPartCount;
|
|
906
892
|
const deliveryParts = /* @__PURE__ */ new Map();
|
|
907
893
|
for (let page = 0; page < SLACK_RECONCILE_MAX_PAGES; page += 1) {
|
|
908
|
-
const
|
|
894
|
+
const query = {
|
|
909
895
|
channel: params.channelId,
|
|
910
|
-
ts: threadTs,
|
|
911
896
|
oldest: params.oldest,
|
|
912
897
|
latest: params.latest,
|
|
913
898
|
include_all_metadata: true,
|
|
914
899
|
limit: SLACK_RECONCILE_LIMIT,
|
|
915
900
|
...cursor ? { cursor } : {}
|
|
916
|
-
}
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
limit: SLACK_RECONCILE_LIMIT,
|
|
922
|
-
...cursor ? { cursor } : {}
|
|
923
|
-
}));
|
|
901
|
+
};
|
|
902
|
+
const response = threadTs ? await withSlackDnsRequestRetry("conversations.replies", () => params.client.conversations.replies({
|
|
903
|
+
...query,
|
|
904
|
+
ts: threadTs
|
|
905
|
+
})) : await withSlackDnsRequestRetry("conversations.history", () => params.client.conversations.history(query));
|
|
924
906
|
const matches = findSlackConversationDeliveryParts({
|
|
925
907
|
messages: asSlackConversationMessages(response),
|
|
926
908
|
queueId: params.queueId,
|
|
@@ -942,16 +924,7 @@ async function scanSlackConversationForDelivery(params) {
|
|
|
942
924
|
deliveryParts.set(match.partIndex, match);
|
|
943
925
|
}
|
|
944
926
|
if (expectedPartCount !== void 0 && deliveryParts.size === expectedPartCount) {
|
|
945
|
-
const
|
|
946
|
-
if (orderedParts.some((part) => !part)) return {
|
|
947
|
-
reconciliation: {
|
|
948
|
-
status: "unresolved",
|
|
949
|
-
error: "Slack history contains an invalid durable delivery marker set",
|
|
950
|
-
retryable: false
|
|
951
|
-
},
|
|
952
|
-
evidence: "conflict"
|
|
953
|
-
};
|
|
954
|
-
const completeParts = orderedParts;
|
|
927
|
+
const completeParts = [...deliveryParts.values()].toSorted((a, b) => a.partIndex - b.partIndex);
|
|
955
928
|
const reconciledThreadTs = completeParts[0]?.threadTs ?? params.threadTs;
|
|
956
929
|
const platformMessageIds = completeParts.map((part) => part.messageId);
|
|
957
930
|
return {
|
|
@@ -1019,7 +992,7 @@ async function reconcileSlackUnknownSend(ctx) {
|
|
|
1019
992
|
error: `Slack read token missing for account "${account.accountId}"`,
|
|
1020
993
|
retryable: false
|
|
1021
994
|
};
|
|
1022
|
-
const userRecipient =
|
|
995
|
+
const userRecipient = recipient.kind === "user";
|
|
1023
996
|
const writeToken = resolveSlackOperationToken(account, "write");
|
|
1024
997
|
if (userRecipient && !writeToken) return {
|
|
1025
998
|
status: "unresolved",
|
|
@@ -1082,7 +1055,7 @@ async function sendMessageSlack(to, message, opts) {
|
|
|
1082
1055
|
cfg,
|
|
1083
1056
|
accountId: opts.accountId
|
|
1084
1057
|
});
|
|
1085
|
-
const eventScope = resolveSlackSendEventScope(
|
|
1058
|
+
const eventScope = resolveSlackSendEventScope(opts.eventScope);
|
|
1086
1059
|
const recipient = eventScope ? parseEnterpriseEventRecipient(to) : parseRecipient(to);
|
|
1087
1060
|
if (!eventScope) assertSlackDetachedTargetAllowed(account.accountId, recipient.teamId);
|
|
1088
1061
|
const blocks = opts.blocks == null ? void 0 : validateSlackBlocksArray(opts.blocks);
|
|
@@ -1094,32 +1067,28 @@ async function sendMessageSlack(to, message, opts) {
|
|
|
1094
1067
|
opts: queuedOpts,
|
|
1095
1068
|
recipient
|
|
1096
1069
|
});
|
|
1097
|
-
const
|
|
1070
|
+
const queueKey = createSlackSendQueueKey({
|
|
1098
1071
|
accountId: account.accountId,
|
|
1099
1072
|
token: delivery.credential,
|
|
1100
1073
|
recipient: delivery.recipient,
|
|
1101
1074
|
threadTs: opts.threadTs,
|
|
1102
1075
|
teamId: delivery.teamId
|
|
1103
|
-
})
|
|
1076
|
+
});
|
|
1077
|
+
const result = await slackSendQueue.enqueue(queueKey, () => sendMessageSlackQueued({
|
|
1104
1078
|
trimmedMessage,
|
|
1105
1079
|
opts: queuedOpts,
|
|
1106
1080
|
cfg,
|
|
1107
1081
|
account,
|
|
1108
1082
|
blocks,
|
|
1109
1083
|
delivery
|
|
1084
|
+
}).catch((err) => {
|
|
1085
|
+
throw enrichSlackWebApiError(err);
|
|
1110
1086
|
}));
|
|
1111
1087
|
const threadTs = result.threadTs ?? normalizeSlackThreadTsCandidate(queuedOpts.threadTs);
|
|
1112
1088
|
if (threadTs && result.channelId && account.accountId) recordSlackThreadParticipation(account.accountId, result.channelId, threadTs, { teamId: delivery.teamId });
|
|
1113
1089
|
return result;
|
|
1114
1090
|
}
|
|
1115
1091
|
async function sendMessageSlackQueued(params) {
|
|
1116
|
-
try {
|
|
1117
|
-
return await sendMessageSlackQueuedInner(params);
|
|
1118
|
-
} catch (err) {
|
|
1119
|
-
throw enrichSlackWebApiError(err);
|
|
1120
|
-
}
|
|
1121
|
-
}
|
|
1122
|
-
async function sendMessageSlackQueuedInner(params) {
|
|
1123
1092
|
const { opts, cfg, account, blocks, trimmedMessage, delivery } = params;
|
|
1124
1093
|
const { client, identity, recipient, unfurl } = delivery;
|
|
1125
1094
|
if (opts.replyBroadcast && opts.mediaUrl) throw new Error("Slack replyBroadcast is only supported for text or block thread replies.");
|
|
@@ -1169,20 +1138,36 @@ async function sendMessageSlackQueuedInner(params) {
|
|
|
1169
1138
|
blocks,
|
|
1170
1139
|
textLimit: textChunkLimit
|
|
1171
1140
|
}) : void 0;
|
|
1172
|
-
const orderedBlockAccessibilityText = blocks && usesOrderedBlockAccessibility ? orderedBlockDeliveryPlan?.accessibilityText ?? (buildSlackNativeDataAccessibilityText(nativeDataFallbackBase, blocks) || "Slack could not render this Block Kit message.") : void 0;
|
|
1173
1141
|
const completeBlockFallbackText = blocks ? buildSlackCompleteBlocksFallbackText(blocks) : "";
|
|
1174
1142
|
const rawBlockAccessibilityText = trimmedMessage ? [trimmedMessage, ...completeBlockFallbackText.includes(trimmedMessage) ? [] : [completeBlockFallbackText]].join("\n\n") : completeBlockFallbackText;
|
|
1175
|
-
const blockAccessibilityText = blocks ?
|
|
1176
|
-
let pendingBlockFallback =
|
|
1143
|
+
const blockAccessibilityText = blocks ? orderedBlockDeliveryPlan?.accessibilityText ?? rawBlockAccessibilityText : void 0;
|
|
1144
|
+
let pendingBlockFallback = orderedBlockDeliveryPlan?.skipOriginalBlocks ? orderedBlockDeliveryPlan : void 0;
|
|
1177
1145
|
let lastMessageId = "";
|
|
1178
1146
|
let deliveredChannelId = channelId;
|
|
1179
1147
|
let canonicalDeliveredThreadTs;
|
|
1180
1148
|
let sendIdentity = identity;
|
|
1149
|
+
const postPart = async (part) => {
|
|
1150
|
+
const posted = await postSlackMessageBestEffort({
|
|
1151
|
+
client,
|
|
1152
|
+
channelId,
|
|
1153
|
+
threadTs: opts.threadTs,
|
|
1154
|
+
identity: sendIdentity,
|
|
1155
|
+
unfurl,
|
|
1156
|
+
...part
|
|
1157
|
+
});
|
|
1158
|
+
const { response } = posted;
|
|
1159
|
+
sendIdentity = posted.identity;
|
|
1160
|
+
lastMessageId = response.ts;
|
|
1161
|
+
deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId);
|
|
1162
|
+
const responseThreadTs = resolvePostedMessageThreadTs(response);
|
|
1163
|
+
canonicalDeliveredThreadTs ??= responseThreadTs;
|
|
1164
|
+
return await reportDelivery(createSlackSendResult(response.ts, deliveredChannelId, part.blocks ? "card" : "text", responseThreadTs ?? normalizeSlackThreadTsCandidate(opts.threadTs)), part.blocks);
|
|
1165
|
+
};
|
|
1181
1166
|
if (blocks && opts.mediaUrl) throw new Error("Slack send does not support blocks with mediaUrl");
|
|
1182
1167
|
if (blocks) {
|
|
1183
1168
|
if (pendingBlockFallback) logVerbose("slack send: native data accessibility exceeds hard limit, using text fallback");
|
|
1184
1169
|
else {
|
|
1185
|
-
const accessibilityText =
|
|
1170
|
+
const accessibilityText = usesOrderedBlockAccessibility ? blockAccessibilityText ?? "Slack could not render this Block Kit message." : truncateSlackText(blockAccessibilityText ?? "", SLACK_TEXT_LIMIT);
|
|
1186
1171
|
const initialBlockMetadata = withSlackDeliveryMetadata(opts.metadata, {
|
|
1187
1172
|
queueId: opts.deliveryQueueId,
|
|
1188
1173
|
channelId,
|
|
@@ -1192,32 +1177,13 @@ async function sendMessageSlackQueuedInner(params) {
|
|
|
1192
1177
|
});
|
|
1193
1178
|
await dispatchOnce();
|
|
1194
1179
|
try {
|
|
1195
|
-
|
|
1196
|
-
client,
|
|
1197
|
-
channelId,
|
|
1180
|
+
return await postPart({
|
|
1198
1181
|
text: accessibilityText,
|
|
1199
|
-
threadTs: opts.threadTs,
|
|
1200
1182
|
replyBroadcast: opts.replyBroadcast,
|
|
1201
|
-
identity,
|
|
1202
1183
|
blocks,
|
|
1203
1184
|
metadata: initialBlockMetadata,
|
|
1204
|
-
...usesOrderedBlockAccessibility ? { mrkdwn: false } : {}
|
|
1205
|
-
unfurl
|
|
1185
|
+
...usesOrderedBlockAccessibility ? { mrkdwn: false } : {}
|
|
1206
1186
|
});
|
|
1207
|
-
const messageId = response.ts;
|
|
1208
|
-
deliveredChannelId = resolvePostedMessageChannelId(response, channelId);
|
|
1209
|
-
const deliveredThreadTs = resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs);
|
|
1210
|
-
return await reportDelivery({
|
|
1211
|
-
messageId,
|
|
1212
|
-
channelId: deliveredChannelId,
|
|
1213
|
-
threadTs: deliveredThreadTs,
|
|
1214
|
-
receipt: createSlackSendReceipt({
|
|
1215
|
-
platformMessageIds: [messageId],
|
|
1216
|
-
channelId: deliveredChannelId,
|
|
1217
|
-
kind: "card",
|
|
1218
|
-
threadTs: deliveredThreadTs
|
|
1219
|
-
})
|
|
1220
|
-
}, blocks);
|
|
1221
1187
|
} catch (error) {
|
|
1222
1188
|
if (!hasNativeData || !isSlackInvalidBlocksError(error)) throw error;
|
|
1223
1189
|
logVerbose("slack send: native data rejected, delivering complete text fallback");
|
|
@@ -1236,35 +1202,13 @@ async function sendMessageSlackQueuedInner(params) {
|
|
|
1236
1202
|
partCount: fallbackMessages.length
|
|
1237
1203
|
});
|
|
1238
1204
|
if (partIndex === 0) await dispatchOnce();
|
|
1239
|
-
const
|
|
1240
|
-
client,
|
|
1241
|
-
channelId,
|
|
1205
|
+
const fallbackDelivery = await postPart({
|
|
1242
1206
|
text: fallback.text,
|
|
1243
|
-
threadTs: opts.threadTs,
|
|
1244
1207
|
replyBroadcast: partIndex === 0 ? opts.replyBroadcast : void 0,
|
|
1245
|
-
identity: sendIdentity,
|
|
1246
1208
|
...fallback.blocks ? { blocks: fallback.blocks } : {},
|
|
1247
1209
|
metadata,
|
|
1248
|
-
mrkdwn: false
|
|
1249
|
-
unfurl
|
|
1210
|
+
mrkdwn: false
|
|
1250
1211
|
});
|
|
1251
|
-
const response = posted.response;
|
|
1252
|
-
sendIdentity = posted.identity;
|
|
1253
|
-
lastMessageId = response.ts;
|
|
1254
|
-
deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId);
|
|
1255
|
-
canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response);
|
|
1256
|
-
const deliveredThreadTs = resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs);
|
|
1257
|
-
const fallbackDelivery = await reportDelivery({
|
|
1258
|
-
messageId: response.ts,
|
|
1259
|
-
channelId: deliveredChannelId,
|
|
1260
|
-
threadTs: deliveredThreadTs,
|
|
1261
|
-
receipt: createSlackSendReceipt({
|
|
1262
|
-
platformMessageIds: [response.ts],
|
|
1263
|
-
channelId: deliveredChannelId,
|
|
1264
|
-
kind: fallback.blocks ? "card" : "text",
|
|
1265
|
-
threadTs: deliveredThreadTs
|
|
1266
|
-
})
|
|
1267
|
-
}, fallback.blocks);
|
|
1268
1212
|
if (fallbackDelivery.meta?.slackQuestionActionIds.length) questionDelivery = fallbackDelivery;
|
|
1269
1213
|
}
|
|
1270
1214
|
const deliveredThreadTs = canonicalDeliveredThreadTs ?? normalizeSlackThreadTsCandidate(opts.threadTs);
|
|
@@ -1310,17 +1254,7 @@ async function sendMessageSlackQueuedInner(params) {
|
|
|
1310
1254
|
assertDirectAdapterHandoff: opts.assertDirectAdapterHandoff,
|
|
1311
1255
|
...delivery.upload ? { auditContext: delivery.upload.auditContext } : {}
|
|
1312
1256
|
});
|
|
1313
|
-
await reportDelivery(
|
|
1314
|
-
messageId: lastMessageId,
|
|
1315
|
-
channelId,
|
|
1316
|
-
threadTs: normalizeSlackThreadTsCandidate(opts.threadTs),
|
|
1317
|
-
receipt: createSlackSendReceipt({
|
|
1318
|
-
platformMessageIds: [lastMessageId],
|
|
1319
|
-
channelId,
|
|
1320
|
-
kind: "media",
|
|
1321
|
-
threadTs: normalizeSlackThreadTsCandidate(opts.threadTs)
|
|
1322
|
-
})
|
|
1323
|
-
});
|
|
1257
|
+
await reportDelivery(createSlackSendResult(lastMessageId, channelId, "media", normalizeSlackThreadTsCandidate(opts.threadTs)));
|
|
1324
1258
|
chunksToPost = rest;
|
|
1325
1259
|
} else chunksToPost = resolvedChunks.length ? resolvedChunks : [""];
|
|
1326
1260
|
for (const [partIndex, chunk] of chunksToPost.entries()) {
|
|
@@ -1334,32 +1268,11 @@ async function sendMessageSlackQueuedInner(params) {
|
|
|
1334
1268
|
partCount: chunksToPost.length
|
|
1335
1269
|
});
|
|
1336
1270
|
if (partIndex === 0 && !opts.mediaUrl) await dispatchOnce();
|
|
1337
|
-
|
|
1338
|
-
client,
|
|
1339
|
-
channelId,
|
|
1271
|
+
await postPart({
|
|
1340
1272
|
text: chunk,
|
|
1341
|
-
threadTs: opts.threadTs,
|
|
1342
1273
|
replyBroadcast: carriesPrimaryMessageOptions ? opts.replyBroadcast : void 0,
|
|
1343
|
-
identity: sendIdentity,
|
|
1344
1274
|
metadata,
|
|
1345
|
-
...opts.textIsSlackPlainText ? { mrkdwn: false } : {}
|
|
1346
|
-
unfurl
|
|
1347
|
-
});
|
|
1348
|
-
const response = posted.response;
|
|
1349
|
-
sendIdentity = posted.identity;
|
|
1350
|
-
lastMessageId = response.ts;
|
|
1351
|
-
deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId);
|
|
1352
|
-
canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response);
|
|
1353
|
-
await reportDelivery({
|
|
1354
|
-
messageId: response.ts,
|
|
1355
|
-
channelId: deliveredChannelId,
|
|
1356
|
-
threadTs: resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs),
|
|
1357
|
-
receipt: createSlackSendReceipt({
|
|
1358
|
-
platformMessageIds: [response.ts],
|
|
1359
|
-
channelId: deliveredChannelId,
|
|
1360
|
-
kind: "text",
|
|
1361
|
-
threadTs: resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs)
|
|
1362
|
-
})
|
|
1275
|
+
...opts.textIsSlackPlainText ? { mrkdwn: false } : {}
|
|
1363
1276
|
});
|
|
1364
1277
|
}
|
|
1365
1278
|
const deliveredThreadTs = canonicalDeliveredThreadTs ?? normalizeSlackThreadTsCandidate(opts.threadTs);
|
|
@@ -1371,4 +1284,4 @@ async function sendMessageSlackQueuedInner(params) {
|
|
|
1371
1284
|
};
|
|
1372
1285
|
}
|
|
1373
1286
|
//#endregion
|
|
1374
|
-
export {
|
|
1287
|
+
export { clearSlackThreadParticipationCache as a, hasSlackThreadParticipationWithPersistence as c, requireSlackPostMessageTimestamp as d, buildSlackMessageIdentityPayload as f, clearSlackThreadFailureNotice as i, recordSlackThreadFailureNotice as l, chunkSlackTextAtHardLimit as m, send_exports as n, hasSlackThreadFailureNotice as o, buildSlackNativeDataDeliveryPlan as p, setSlackDefaultSendIdentity as r, hasSlackThreadParticipation as s, sendMessageSlack as t, recordSlackThreadParticipation as u };
|