@openclaw/slack 2026.8.1-beta.3 → 2026.8.2
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/dist/account-configured-sUohAxZr.js +33 -0
- package/dist/account-inspect-C3sePHWa.js +87 -0
- package/dist/account-inspect-api.js +1 -1
- package/dist/{accounts-BlzxuYle.js → accounts-Dm_H77gH.js} +7 -10
- package/dist/{accounts.runtime-CbabBL8x.js → accounts.runtime-DRuEK6mL.js} +1 -1
- package/dist/{action-runtime-D6jg2CQd.js → action-runtime-B0kRJ69h.js} +90 -75
- package/dist/action-runtime.runtime-IuA14rev.js +2 -0
- package/dist/{actions-DFk0ANVB.js → actions-BOxiu2Vy.js} +278 -102
- package/dist/api.js +15 -15
- package/dist/{approval-handler.runtime-BNvAoKdK.js → approval-handler.runtime-l5_2JLqi.js} +58 -180
- package/dist/{channel-CA5w7qDF.js → channel-BguxhhNG.js} +97 -154
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel-type-CZWv55Wu.js → channel-type-ChkODKBW.js} +3 -3
- package/dist/{channel.setup-CpyYsEXH.js → channel.setup-BJohRJha.js} +54 -68
- package/dist/{config-schema-CN3XZRX5.js → config-schema-B9GwoRlE.js} +24 -15
- package/dist/configured-state.js +34 -0
- package/dist/{conversation-binding-route-DFVLUdYF.js → conversation-binding-route-Vee8Dgbf.js} +2 -2
- package/dist/{directory-config-BGYyuzWh.js → directory-config-Bmw4ykSy.js} +5 -4
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-DjUJQLbq.js → directory-live-BOILcXPo.js} +2 -2
- package/dist/{doctor-contract-BAy7-EUQ.js → doctor-contract-BNjw9bxb.js} +5 -4
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{group-policy-DyfB_ZIE.js → group-policy-BYH74y50.js} +643 -774
- package/dist/{message-tool-api-CqMr5Rmc.js → message-tool-api-BsZbsulu.js} +23 -5
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-Chrecrb9.js → monitor-B72wWXWg.js} +3 -3
- package/dist/{outbound-adapter-DuRqAQXK.js → outbound-adapter-CPgYQ-BM.js} +94 -69
- package/dist/{pipeline.runtime-Bbfd5VFW.js → pipeline.runtime-CcdujV99.js} +357 -544
- package/dist/{policy-BKXSxrIS.js → policy-CUpBeOt9.js} +7 -4
- package/dist/{probe-BVA65leh.js → probe-gj5yQgN2.js} +209 -21
- package/dist/{provider-CUUiwsg2.js → provider-DW9YC_no.js} +301 -179
- package/dist/{relay-source-mhpMMRG-.js → relay-source-BLMdBrAw.js} +6 -4
- package/dist/{replies-SnWyXcsL.js → replies-DLjQ8RYU.js} +25 -10
- package/dist/{resolve-channels-BSpqC8jU.js → resolve-channels-Bv6IiGZ4.js} +4 -3
- package/dist/{resolve-users-Dvz9pDe0.js → resolve-users-BXw2pA7y.js} +4 -3
- package/dist/runtime-api.js +11 -11
- package/dist/{scopes-BSk4GZvZ.js → scopes-B9HRguDe.js} +1 -1
- package/dist/{send-CtnOxKCc.js → send-GUz4_v2E.js} +58 -42
- package/dist/send-results-eeOu_HYm.js +23 -0
- package/dist/{send.runtime-kYctMHSd.js → send.runtime-rScD-UJi.js} +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-BPFfp6So.js → setup-surface-Cc3P-z35.js} +6 -6
- package/dist/{shared-DJBaslN7.js → shared-CQGVZ_8a.js} +28 -8
- package/dist/{slash-dispatch.runtime-Cf2FTrnf.js → slash-dispatch.runtime-C2015r6s.js} +3 -3
- package/dist/{target-parsing-BnMD2ZqZ.js → target-parsing-PbxGDbr9.js} +11 -6
- package/dist/{targets-Cx5W_n3W.js → targets-7FexXJ62.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 +0 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +6 -6
- package/node_modules/@slack/bolt/node_modules/@types/node/dns/promises.d.ts +5 -5
- package/node_modules/@slack/bolt/node_modules/@types/node/dns.d.ts +5 -5
- package/node_modules/@slack/bolt/node_modules/@types/node/fs.d.ts +7 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/http.d.ts +30 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +4 -4
- package/node_modules/@slack/bolt/node_modules/@types/node/os.d.ts +30 -30
- package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/perf_hooks.d.ts +2 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +42 -43
- package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +1049 -84
- package/node_modules/@slack/bolt/node_modules/@types/node/sqlite.d.ts +14 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +3 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +61 -0
- package/node_modules/@slack/bolt/node_modules/@types/node/v8.d.ts +20 -23
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/README.md +2 -0
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
- package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/package.json +1 -1
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/accept.js +54 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/charset.js +10 -34
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/encoding.js +9 -30
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/language.js +15 -36
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/mediaType.js +16 -134
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/README.md +71 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/package.json +52 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/package.json +16 -10
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/README.md +2 -0
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
- package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/package.json +1 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/child_process.d.ts +0 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +6 -6
- package/node_modules/@slack/socket-mode/node_modules/@types/node/dns/promises.d.ts +5 -5
- package/node_modules/@slack/socket-mode/node_modules/@types/node/dns.d.ts +5 -5
- package/node_modules/@slack/socket-mode/node_modules/@types/node/fs.d.ts +7 -0
- package/node_modules/@slack/socket-mode/node_modules/@types/node/http.d.ts +30 -0
- package/node_modules/@slack/socket-mode/node_modules/@types/node/http2.d.ts +4 -4
- package/node_modules/@slack/socket-mode/node_modules/@types/node/os.d.ts +30 -30
- package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/socket-mode/node_modules/@types/node/perf_hooks.d.ts +2 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/process.d.ts +42 -43
- package/node_modules/@slack/socket-mode/node_modules/@types/node/quic.d.ts +1049 -84
- package/node_modules/@slack/socket-mode/node_modules/@types/node/sqlite.d.ts +14 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/iter.d.ts +3 -2
- package/node_modules/@slack/socket-mode/node_modules/@types/node/test.d.ts +61 -0
- package/node_modules/@slack/socket-mode/node_modules/@types/node/v8.d.ts +20 -23
- 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 +0 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +6 -6
- package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +5 -5
- package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +5 -5
- package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +7 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +30 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +4 -4
- package/node_modules/@slack/web-api/node_modules/@types/node/os.d.ts +30 -30
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +2 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +42 -43
- package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +1049 -84
- package/node_modules/@slack/web-api/node_modules/@types/node/sqlite.d.ts +14 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +3 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +61 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/v8.d.ts +20 -23
- package/node_modules/typebox/build/format/date.d.mts +1 -1
- package/node_modules/typebox/build/format/date.mjs +1 -1
- package/node_modules/typebox/build/format/date_time.d.mts +2 -2
- package/node_modules/typebox/build/format/date_time.mjs +3 -3
- package/node_modules/typebox/build/format/email.d.mts +1 -1
- package/node_modules/typebox/build/format/email.mjs +2 -2
- package/node_modules/typebox/build/format/hostname.mjs +2 -10
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_email.mjs +3 -3
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
- package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
- package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
- package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +41 -0
- package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
- package/node_modules/typebox/build/format/idna/index.mjs +2 -0
- package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
- package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
- package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
- package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
- package/node_modules/typebox/build/format/ipv4.mjs +2 -32
- package/node_modules/typebox/build/format/ipv6.mjs +2 -61
- package/node_modules/typebox/build/format/iri.d.mts +2 -2
- package/node_modules/typebox/build/format/iri.mjs +26 -8
- package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
- package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
- package/node_modules/typebox/build/format/regex.d.mts +1 -2
- package/node_modules/typebox/build/format/regex.mjs +2 -6
- package/node_modules/typebox/build/format/time.d.mts +2 -2
- package/node_modules/typebox/build/format/time.mjs +19 -14
- package/node_modules/typebox/build/format/uri.d.mts +1 -1
- package/node_modules/typebox/build/format/uri.mjs +3 -130
- package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
- package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
- package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
- package/node_modules/typebox/build/format/uri_template.mjs +4 -5
- package/node_modules/typebox/build/format/url.d.mts +3 -3
- package/node_modules/typebox/build/format/url.mjs +4 -5
- package/node_modules/typebox/build/guard/emit.d.mts +3 -1
- package/node_modules/typebox/build/guard/emit.mjs +12 -5
- package/node_modules/typebox/build/guard/guard.d.mts +8 -2
- package/node_modules/typebox/build/guard/guard.mjs +25 -4
- package/node_modules/typebox/build/guard/string.d.mts +2 -2
- package/node_modules/typebox/build/guard/string.mjs +7 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
- package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
- package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
- package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
- package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
- package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
- package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
- package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
- package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
- package/node_modules/typebox/build/schema/types/index.mjs +0 -2
- package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
- package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
- package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
- package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
- package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
- package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
- package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
- package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
- package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
- package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
- package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
- package/node_modules/typebox/build/type/script/parser.mjs +27 -23
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
- package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
- package/node_modules/typebox/package.json +27 -27
- package/node_modules/typebox/readme.md +79 -82
- package/node_modules/ws/lib/permessage-deflate.js +3 -1
- package/node_modules/ws/package.json +1 -1
- package/openclaw.plugin.json +14 -6
- package/package.json +9 -7
- package/dist/account-configured-BwfXBo_F.js +0 -14
- package/dist/account-inspect-YJvFBbCR.js +0 -89
- package/dist/action-runtime.runtime-JtoOK9l5.js +0 -2
- package/dist/actions.runtime-CYLsYRai.js +0 -2
- package/dist/runtime-api-DBi7xc_g.js +0 -10
- package/dist/slack-client-kind-BXyOOICI.js +0 -94
- package/node_modules/@slack/bolt/node_modules/negotiator/HISTORY.md +0 -114
- package/node_modules/typebox/build/format/_idna.d.mts +0 -2
- package/node_modules/typebox/build/format/_idna.mjs +0 -246
- package/node_modules/typebox/build/format/_puny.d.mts +0 -1
- package/node_modules/typebox/build/format/_puny.mjs +0 -77
- package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
- package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
- package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
- package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as SlackChannelConfigSchema } from "./config-schema-
|
|
5
|
-
import {
|
|
1
|
+
import { r as isSlackSetupAccountConfigured } from "./account-configured-sUohAxZr.js";
|
|
2
|
+
import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-Dm_H77gH.js";
|
|
3
|
+
import { t as inspectSlackAccount } from "./account-inspect-C3sePHWa.js";
|
|
4
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-B9GwoRlE.js";
|
|
5
|
+
import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
6
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
8
8
|
import { formatAllowFromLowercase } from "openclaw/plugin-sdk/allow-from";
|
|
@@ -102,13 +102,13 @@ function buildSlackManifest(botName = "OpenClaw") {
|
|
|
102
102
|
}
|
|
103
103
|
function buildSlackSetupLines() {
|
|
104
104
|
return [
|
|
105
|
-
"1) Slack API -> Create App -> From scratch or
|
|
106
|
-
"2)
|
|
107
|
-
"3)
|
|
108
|
-
"4)
|
|
109
|
-
"5)
|
|
110
|
-
"
|
|
111
|
-
"Tip:
|
|
105
|
+
"1) Slack API -> Create App -> From scratch or a transport-specific manifest",
|
|
106
|
+
"2) Install App to workspace to get the xoxb- bot token",
|
|
107
|
+
"3) Socket Mode: enable it and create an app-level token (xapp-...)",
|
|
108
|
+
"4) HTTP: configure a public HTTPS Request URL and copy the app Signing Secret",
|
|
109
|
+
"5) Enable Event Subscriptions for message, App Home, and Agent View events",
|
|
110
|
+
"6) App Home -> enable the Home tab, Messages tab for DMs, and Agent View",
|
|
111
|
+
"Tip: Socket Mode can use SLACK_BOT_TOKEN + SLACK_APP_TOKEN in your env.",
|
|
112
112
|
`Docs: ${formatDocsLink("/slack", "slack")}`
|
|
113
113
|
];
|
|
114
114
|
}
|
|
@@ -121,17 +121,6 @@ function setSlackChannelAllowlist(cfg, accountId, channelKeys) {
|
|
|
121
121
|
patch: { channels }
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
-
function isSlackSetupAccountConfigured(account) {
|
|
125
|
-
if (account.config.mode === "relay") return isSlackPluginAccountConfigured(account);
|
|
126
|
-
const hasConfiguredUserToken = Boolean(account.userToken?.trim()) || hasConfiguredSecretInput(account.config.userToken);
|
|
127
|
-
const hasConfiguredBotToken = Boolean(account.botToken?.trim()) || hasConfiguredSecretInput(account.config.botToken);
|
|
128
|
-
const hasConfiguredAppToken = Boolean(account.appToken?.trim()) || hasConfiguredSecretInput(account.config.appToken);
|
|
129
|
-
if (account.identity === "user") {
|
|
130
|
-
const hasTransportCredential = account.config.mode === "http" ? hasConfiguredSecretInput(account.config.signingSecret) : hasConfiguredAppToken;
|
|
131
|
-
return hasConfiguredUserToken && hasTransportCredential;
|
|
132
|
-
}
|
|
133
|
-
return hasConfiguredBotToken && hasConfiguredAppToken;
|
|
134
|
-
}
|
|
135
124
|
function describeSlackSetupAccount(account) {
|
|
136
125
|
return describeAccountSnapshot({
|
|
137
126
|
account,
|
|
@@ -229,12 +218,9 @@ function createSlackTokenCredential(params) {
|
|
|
229
218
|
});
|
|
230
219
|
}
|
|
231
220
|
function hasSlackSetupCredentials(params) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
if (params.mode === "http") return Boolean(params.input.userToken && params.input.signingSecret);
|
|
237
|
-
return params.mode === "socket" && Boolean(params.input.userToken && params.input.appToken);
|
|
221
|
+
const identityToken = params.identity === "user" ? params.input.userToken : params.input.botToken;
|
|
222
|
+
const transportCredential = params.mode === "http" ? params.input.signingSecret : params.input.appToken;
|
|
223
|
+
return Boolean(identityToken && transportCredential);
|
|
238
224
|
}
|
|
239
225
|
const slackSetupAdapterBase = createPatchedAccountSetupAdapter({
|
|
240
226
|
channelKey: SLACK_CHANNEL,
|
|
@@ -260,13 +246,13 @@ const slackSetupAdapterBase = createPatchedAccountSetupAdapter({
|
|
|
260
246
|
mode
|
|
261
247
|
})) return null;
|
|
262
248
|
if (identity === "user") return mode === "http" ? "Slack user identity requires --user-token and --signing-secret." : "Slack user identity requires --user-token and --app-token.";
|
|
263
|
-
return "Slack requires --bot-token and --app-token (or --use-env).";
|
|
249
|
+
return mode === "http" ? "Slack HTTP mode requires --bot-token and --signing-secret (or --use-env)." : "Slack requires --bot-token and --app-token (or --use-env).";
|
|
264
250
|
},
|
|
265
251
|
buildPatch: (input) => {
|
|
266
252
|
const setupInput = input;
|
|
267
253
|
return {
|
|
268
254
|
...setupInput.identity ? { postAs: setupInput.identity } : {},
|
|
269
|
-
...setupInput.
|
|
255
|
+
...setupInput.mode ? { mode: setupInput.mode } : {},
|
|
270
256
|
...setupInput.botToken ? { botToken: setupInput.botToken } : {},
|
|
271
257
|
...setupInput.appToken ? { appToken: setupInput.appToken } : {},
|
|
272
258
|
...setupInput.userToken ? { userToken: setupInput.userToken } : {},
|
|
@@ -274,6 +260,25 @@ const slackSetupAdapterBase = createPatchedAccountSetupAdapter({
|
|
|
274
260
|
};
|
|
275
261
|
}
|
|
276
262
|
});
|
|
263
|
+
const slackSetupAdapter = {
|
|
264
|
+
...slackSetupAdapterBase,
|
|
265
|
+
singleAccountKeysToMove: ["appToken"],
|
|
266
|
+
applyAccountConfig: ({ cfg, accountId, input }) => {
|
|
267
|
+
const setupInput = input;
|
|
268
|
+
const identity = setupInput.identity ?? inspectSlackAccount({
|
|
269
|
+
cfg,
|
|
270
|
+
accountId
|
|
271
|
+
}).config.postAs;
|
|
272
|
+
return slackSetupAdapterBase.applyAccountConfig({
|
|
273
|
+
cfg,
|
|
274
|
+
accountId,
|
|
275
|
+
input: identity === "user" ? {
|
|
276
|
+
...setupInput,
|
|
277
|
+
identity
|
|
278
|
+
} : setupInput
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
};
|
|
277
282
|
const slackSetupContract = defineChannelSetupContract({
|
|
278
283
|
fields: {
|
|
279
284
|
botToken: {
|
|
@@ -333,25 +338,7 @@ const slackSetupContract = defineChannelSetupContract({
|
|
|
333
338
|
envVars: ["SLACK_BOT_TOKEN"]
|
|
334
339
|
}
|
|
335
340
|
},
|
|
336
|
-
legacyAdapter:
|
|
337
|
-
...slackSetupAdapterBase,
|
|
338
|
-
singleAccountKeysToMove: ["appToken"],
|
|
339
|
-
applyAccountConfig: ({ cfg, accountId, input }) => {
|
|
340
|
-
const setupInput = input;
|
|
341
|
-
const identity = setupInput.identity ?? inspectSlackAccount({
|
|
342
|
-
cfg,
|
|
343
|
-
accountId
|
|
344
|
-
}).config.postAs;
|
|
345
|
-
return slackSetupAdapterBase.applyAccountConfig({
|
|
346
|
-
cfg,
|
|
347
|
-
accountId,
|
|
348
|
-
input: identity === "user" ? {
|
|
349
|
-
...setupInput,
|
|
350
|
-
identity
|
|
351
|
-
} : setupInput
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
}
|
|
341
|
+
legacyAdapter: slackSetupAdapter
|
|
355
342
|
});
|
|
356
343
|
function createSlackSetupWizardBase(handlers) {
|
|
357
344
|
const slackDmPolicy = createChannelDmPolicy({
|
|
@@ -421,23 +408,24 @@ function createSlackSetupWizardBase(handlers) {
|
|
|
421
408
|
`Docs: ${formatDocsLink("/channels/slack#user-identity-post-as-a-real-person", "channels/slack")}`
|
|
422
409
|
].join("\n"), "Slack user identity");
|
|
423
410
|
} else {
|
|
424
|
-
await prompter.note(buildSlackSetupLines().join("\n"), t("wizard.
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
411
|
+
await prompter.note(buildSlackSetupLines().join("\n"), t("wizard.channels.setupTitle"));
|
|
412
|
+
if (currentAccount.config.mode !== "http") {
|
|
413
|
+
const manifest = buildSlackManifest();
|
|
414
|
+
await (prompter.plain ? prompter.plain(manifest) : prompter.note(manifest, "Slack manifest JSON"));
|
|
415
|
+
}
|
|
428
416
|
}
|
|
429
417
|
return { cfg: next };
|
|
430
418
|
},
|
|
431
419
|
envShortcut: {
|
|
432
420
|
prompt: t("wizard.slack.envPrompt"),
|
|
433
421
|
preferredEnvVar: "SLACK_BOT_TOKEN",
|
|
434
|
-
isAvailable: ({ cfg, accountId }) =>
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
accountId
|
|
440
|
-
}
|
|
422
|
+
isAvailable: ({ cfg, accountId }) => {
|
|
423
|
+
const account = inspectSlackAccount({
|
|
424
|
+
cfg,
|
|
425
|
+
accountId
|
|
426
|
+
});
|
|
427
|
+
return accountId === DEFAULT_ACCOUNT_ID && (account.config.postAs ?? "bot") === "bot" && (account.config.mode ?? "socket") === "socket" && Boolean(process.env.SLACK_BOT_TOKEN?.trim()) && Boolean(process.env.SLACK_APP_TOKEN?.trim()) && !account.configured;
|
|
428
|
+
},
|
|
441
429
|
apply: ({ cfg, accountId }) => enableSlackAccount(cfg, accountId)
|
|
442
430
|
},
|
|
443
431
|
credentials: [
|
|
@@ -473,11 +461,10 @@ function createSlackSetupWizardBase(handlers) {
|
|
|
473
461
|
keepPrompt: t("wizard.slack.appTokenKeep"),
|
|
474
462
|
inputPrompt: t("wizard.slack.appTokenInput"),
|
|
475
463
|
shouldPrompt: ({ cfg, accountId }) => {
|
|
476
|
-
|
|
464
|
+
return (inspectSlackAccount({
|
|
477
465
|
cfg,
|
|
478
466
|
accountId
|
|
479
|
-
});
|
|
480
|
-
return (account.config.postAs ?? "bot") === "bot" || (account.config.mode ?? "socket") === "socket";
|
|
467
|
+
}).config.mode ?? "socket") === "socket";
|
|
481
468
|
}
|
|
482
469
|
}),
|
|
483
470
|
createSlackTokenCredential({
|
|
@@ -487,11 +474,10 @@ function createSlackSetupWizardBase(handlers) {
|
|
|
487
474
|
keepPrompt: "Slack signing secret already configured. Keep it?",
|
|
488
475
|
inputPrompt: "Enter Slack signing secret",
|
|
489
476
|
shouldPrompt: ({ cfg, accountId }) => {
|
|
490
|
-
|
|
477
|
+
return inspectSlackAccount({
|
|
491
478
|
cfg,
|
|
492
479
|
accountId
|
|
493
|
-
});
|
|
494
|
-
return account.config.postAs === "user" && account.config.mode === "http";
|
|
480
|
+
}).config.mode === "http";
|
|
495
481
|
}
|
|
496
482
|
})
|
|
497
483
|
],
|
|
@@ -570,7 +556,7 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
|
|
|
570
556
|
});
|
|
571
557
|
//#endregion
|
|
572
558
|
//#region extensions/slack/src/channel.setup.ts
|
|
573
|
-
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-
|
|
559
|
+
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-Cc3P-z35.js")).slackSetupWizard }));
|
|
574
560
|
const slackSetupPlugin = {
|
|
575
561
|
id: SLACK_CHANNEL,
|
|
576
562
|
meta: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildSecretInputSchema, hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input";
|
|
2
2
|
import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
|
|
3
|
-
import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema,
|
|
3
|
+
import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema, ProviderCommandsSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelAllowBotsSchema, buildChannelConfigSchema, buildChannelExecApprovalsSchema, buildChannelReactionShape, buildGroupEntrySchema, requireAllowlistAllowFrom, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
//#region extensions/slack/src/config-ui-hints.ts
|
|
6
6
|
const slackChannelConfigUiHints = {
|
|
@@ -37,6 +37,10 @@ const slackChannelConfigUiHints = {
|
|
|
37
37
|
},
|
|
38
38
|
progress: { labels: "openclaw" }
|
|
39
39
|
}),
|
|
40
|
+
joinIntro: {
|
|
41
|
+
label: "Slack Channel Join Introduction",
|
|
42
|
+
help: "Post one brief, room-specific introduction when the bot joins an allowed Slack channel (default: true). Account settings override the channel-wide setting."
|
|
43
|
+
},
|
|
40
44
|
allowBots: {
|
|
41
45
|
label: "Slack Allow Bot Messages",
|
|
42
46
|
help: "Allow bot-authored messages to trigger Slack replies (default: false)."
|
|
@@ -95,7 +99,7 @@ const slackChannelConfigUiHints = {
|
|
|
95
99
|
},
|
|
96
100
|
execApprovals: {
|
|
97
101
|
label: "Slack Exec Approvals",
|
|
98
|
-
help: "Slack-native exec approval routing and approver authorization.
|
|
102
|
+
help: "Slack-native exec approval routing and approver authorization. Set enabled to \"auto\" or true to enable DM-first native approvals when approvers can be resolved for this Slack account; unset or false disables them."
|
|
99
103
|
},
|
|
100
104
|
presenceEvents: {
|
|
101
105
|
label: "Slack Presence Events",
|
|
@@ -119,7 +123,7 @@ const slackChannelConfigUiHints = {
|
|
|
119
123
|
},
|
|
120
124
|
"execApprovals.enabled": {
|
|
121
125
|
label: "Slack Exec Approvals Enabled",
|
|
122
|
-
help: "Controls Slack native exec approvals for this account:
|
|
126
|
+
help: "Controls Slack native exec approvals for this account: \"auto\" or true enables DM-first native approvals when approvers can be resolved; unset or false disables them."
|
|
123
127
|
},
|
|
124
128
|
"execApprovals.approvers": {
|
|
125
129
|
label: "Slack Exec Approval Approvers",
|
|
@@ -199,12 +203,14 @@ const SlackRelaySchema = z.object({
|
|
|
199
203
|
gatewayId: z.string().optional()
|
|
200
204
|
}).strict();
|
|
201
205
|
const SlackIdentitySchema = z.enum(["bot", "user"]);
|
|
206
|
+
const { accountShape, rootPolicyShape } = buildChannelAccountSchemaParts({
|
|
207
|
+
omit: ["groupAllowFrom"],
|
|
208
|
+
streaming: SlackStreamingConfigSchema.optional()
|
|
209
|
+
});
|
|
202
210
|
const SlackAccountSchema = z.object({
|
|
203
|
-
...
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}),
|
|
207
|
-
postAs: SlackIdentitySchema.default("bot"),
|
|
211
|
+
...accountShape,
|
|
212
|
+
joinIntro: z.boolean().optional(),
|
|
213
|
+
postAs: SlackIdentitySchema.optional(),
|
|
208
214
|
mode: z.enum([
|
|
209
215
|
"socket",
|
|
210
216
|
"http",
|
|
@@ -218,7 +224,7 @@ const SlackAccountSchema = z.object({
|
|
|
218
224
|
botToken: SecretInputSchema.optional(),
|
|
219
225
|
appToken: SecretInputSchema.optional(),
|
|
220
226
|
userToken: SecretInputSchema.optional(),
|
|
221
|
-
userTokenReadOnly: z.boolean().optional()
|
|
227
|
+
userTokenReadOnly: z.boolean().optional(),
|
|
222
228
|
allowBots: buildChannelAllowBotsSchema({ allowMentions: true }),
|
|
223
229
|
botLoopProtection: ChannelBotLoopProtectionSchema.optional(),
|
|
224
230
|
dangerouslyAllowNameMatching: ChannelDangerouslyAllowNameMatchingSchema,
|
|
@@ -259,7 +265,6 @@ const SlackAccountSchema = z.object({
|
|
|
259
265
|
channels: z.record(z.string(), SlackChannelSchema.optional()).optional(),
|
|
260
266
|
typingReaction: z.string().optional()
|
|
261
267
|
}).strict();
|
|
262
|
-
const SlackAccountEntrySchema = SlackAccountSchema.extend({ postAs: SlackIdentitySchema.optional() });
|
|
263
268
|
function validateSlackSigningSecretRequirements(value, ctx) {
|
|
264
269
|
const resolveMode = (mode) => mode === "http" || mode === "socket" || mode === "relay" ? mode : void 0;
|
|
265
270
|
const baseMode = resolveMode(value.mode) ?? "socket";
|
|
@@ -272,7 +277,8 @@ function validateSlackSigningSecretRequirements(value, ctx) {
|
|
|
272
277
|
for (const [accountId, account] of Object.entries(value.accounts ?? {})) {
|
|
273
278
|
if (!account || account.enabled === false) continue;
|
|
274
279
|
if ((resolveMode(account.mode) ?? baseMode) !== "http") continue;
|
|
275
|
-
|
|
280
|
+
const accountSecret = account.signingSecret ?? value.signingSecret;
|
|
281
|
+
if (!hasConfiguredSecretInput(accountSecret)) ctx.addIssue({
|
|
276
282
|
code: z.ZodIssueCode.custom,
|
|
277
283
|
message: "channels.slack.accounts.*.mode=\"http\" requires channels.slack.signingSecret or channels.slack.accounts.*.signingSecret",
|
|
278
284
|
path: [
|
|
@@ -283,7 +289,10 @@ function validateSlackSigningSecretRequirements(value, ctx) {
|
|
|
283
289
|
});
|
|
284
290
|
}
|
|
285
291
|
}
|
|
286
|
-
const
|
|
292
|
+
const SlackConfigSchema = SlackAccountSchema.safeExtend({
|
|
293
|
+
...rootPolicyShape,
|
|
294
|
+
postAs: SlackIdentitySchema.default("bot"),
|
|
295
|
+
userTokenReadOnly: z.boolean().optional().default(true),
|
|
287
296
|
mode: z.enum([
|
|
288
297
|
"socket",
|
|
289
298
|
"http",
|
|
@@ -291,8 +300,7 @@ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackAccountSchema.saf
|
|
|
291
300
|
]).optional().default("socket"),
|
|
292
301
|
signingSecret: SecretInputSchema.optional(),
|
|
293
302
|
webhookPath: z.string().optional().default("/slack/events"),
|
|
294
|
-
|
|
295
|
-
accounts: z.record(z.string(), SlackAccountEntrySchema.optional()).optional(),
|
|
303
|
+
accounts: z.record(z.string(), SlackAccountSchema.optional()).optional(),
|
|
296
304
|
defaultAccount: z.string().optional()
|
|
297
305
|
}).superRefine((value, ctx) => {
|
|
298
306
|
if (value.enabled === false) return;
|
|
@@ -378,6 +386,7 @@ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackAccountSchema.saf
|
|
|
378
386
|
}
|
|
379
387
|
}
|
|
380
388
|
validateSlackSigningSecretRequirements(value, ctx);
|
|
381
|
-
})
|
|
389
|
+
});
|
|
390
|
+
const SlackChannelConfigSchema = buildChannelConfigSchema(SlackConfigSchema, { uiHints: slackChannelConfigUiHints });
|
|
382
391
|
//#endregion
|
|
383
392
|
export { SlackChannelConfigSchema as t };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { t as hasSlackAccountCredentials } from "./account-configured-sUohAxZr.js";
|
|
2
|
+
import { DEFAULT_ACCOUNT_ID, hasConfiguredAccountValue, mergeAccountConfig } from "openclaw/plugin-sdk/account-core";
|
|
3
|
+
//#region extensions/slack/configured-state.ts
|
|
4
|
+
function hasConfiguredSlackAccount(account, env) {
|
|
5
|
+
const userIdentity = account?.postAs === "user";
|
|
6
|
+
return hasSlackAccountCredentials({
|
|
7
|
+
config: account ?? {},
|
|
8
|
+
identityTokenConfigured: hasConfiguredAccountValue(userIdentity ? account?.userToken : account?.botToken) || hasConfiguredAccountValue(userIdentity ? env.SLACK_USER_TOKEN : env.SLACK_BOT_TOKEN),
|
|
9
|
+
appTokenConfigured: hasConfiguredAccountValue(account?.appToken) || hasConfiguredAccountValue(env.SLACK_APP_TOKEN)
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
/** Resolve Slack activation through its account owner's real transport credential contract. */
|
|
13
|
+
function hasConfiguredSlackChannelState(params) {
|
|
14
|
+
const channel = params.cfg.channels?.slack;
|
|
15
|
+
if (channel?.enabled === false) return false;
|
|
16
|
+
const defaultAccount = channel?.accounts?.[DEFAULT_ACCOUNT_ID];
|
|
17
|
+
if (defaultAccount?.enabled !== false) {
|
|
18
|
+
if (hasConfiguredSlackAccount(defaultAccount ? mergeAccountConfig({
|
|
19
|
+
channelConfig: channel,
|
|
20
|
+
accountConfig: defaultAccount,
|
|
21
|
+
nestedObjectKeys: ["relay"]
|
|
22
|
+
}) : channel, params.env ?? process.env)) return true;
|
|
23
|
+
}
|
|
24
|
+
return Object.entries(channel?.accounts ?? {}).some(([accountId, account]) => {
|
|
25
|
+
if (accountId === DEFAULT_ACCOUNT_ID || account.enabled === false) return false;
|
|
26
|
+
return hasConfiguredSlackAccount(mergeAccountConfig({
|
|
27
|
+
channelConfig: channel,
|
|
28
|
+
accountConfig: account,
|
|
29
|
+
nestedObjectKeys: ["relay"]
|
|
30
|
+
}), {});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { hasConfiguredSlackChannelState };
|
package/dist/{conversation-binding-route-DFVLUdYF.js → conversation-binding-route-Vee8Dgbf.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as parseSlackTarget } from "./target-parsing-
|
|
2
|
-
import "./targets-
|
|
1
|
+
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
|
|
2
|
+
import "./targets-7FexXJ62.js";
|
|
3
3
|
import { resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-runtime";
|
|
4
4
|
//#region extensions/slack/src/account-reply-mode.ts
|
|
5
5
|
function normalizeSlackChatType(raw) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-
|
|
3
|
-
import { a as parseSlackTarget } from "./target-parsing-
|
|
4
|
-
import "./targets-
|
|
2
|
+
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-Dm_H77gH.js";
|
|
3
|
+
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
|
|
4
|
+
import "./targets-7FexXJ62.js";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
6
6
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
|
|
@@ -37,7 +37,8 @@ const listSlackDirectoryPeersFromConfig = createResolvedDirectoryEntriesLister({
|
|
|
37
37
|
normalizeId: (raw) => {
|
|
38
38
|
const normalizedUserId = (raw.match(/^<@([A-Z0-9]+)>$/i)?.[1] ?? raw).replace(/^(slack|user):/i, "").trim();
|
|
39
39
|
if (!normalizedUserId) return null;
|
|
40
|
-
const
|
|
40
|
+
const target = `user:${normalizedUserId}`;
|
|
41
|
+
const normalized = parseSlackTarget(target, { defaultKind: "user" });
|
|
41
42
|
return normalized?.kind === "user" ? `user:${normalizeLowercaseStringOrEmpty(normalized.id)}` : null;
|
|
42
43
|
}
|
|
43
44
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
1
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Bmw4ykSy.js";
|
|
2
2
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { a as resolveSlackAccount } from "./accounts-
|
|
3
|
-
import {
|
|
2
|
+
import { a as resolveSlackAccount } from "./accounts-Dm_H77gH.js";
|
|
3
|
+
import { s as createSlackLookupClient } from "./probe-gj5yQgN2.js";
|
|
4
4
|
import { t as collectSlackCursorPages } from "./cursor-pages-eX7p8Wwt.js";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
//#region extensions/slack/src/directory-live.ts
|
|
@@ -171,11 +171,12 @@ function normalizeCompatibilityConfig({ cfg }) {
|
|
|
171
171
|
scope: "root-and-accounts",
|
|
172
172
|
onRemove: ({ key, pathPrefix }) => changes.push(`Removed retired ${pathPrefix}.${key}; Slack detects org-wide installations automatically.`)
|
|
173
173
|
});
|
|
174
|
+
const aliases = streamingAliasMigration.normalizeChannelConfig({
|
|
175
|
+
cfg: retired.config,
|
|
176
|
+
changes
|
|
177
|
+
});
|
|
174
178
|
return normalizeChannelConfigEntries({
|
|
175
|
-
cfg:
|
|
176
|
-
cfg: retired.config,
|
|
177
|
-
changes
|
|
178
|
-
}).config,
|
|
179
|
+
cfg: aliases.config,
|
|
179
180
|
channelId: "slack",
|
|
180
181
|
changes,
|
|
181
182
|
normalizeEntry: normalizeSlackEntry
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-BNjw9bxb.js";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|