@openclaw/slack 2026.9.5 → 2026.9.6
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/.setup/{account-inspect-B86OaUEt.mjs → account-inspect-DP1Bcwj4.mjs} +1 -1
- package/dist/.setup/{accounts-C1FspRF-.mjs → accounts-BBHvg0pY.mjs} +11 -10
- package/dist/.setup/accounts.runtime-DN-PPocC.mjs +2 -0
- package/dist/.setup/{action-runtime-Aa-h24Fq.mjs → action-runtime-B01d85zt.mjs} +25 -29
- package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +2 -0
- package/dist/.setup/{actions-BvGUGk3w.mjs → actions-DKCtBgCI.mjs} +80 -49
- package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-DMszKn_7.mjs} +5 -5
- package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-Tb_qRokK.mjs} +2 -2
- package/dist/.setup/{channel-DrBm0NFw.mjs → channel-CErYZ5zw.mjs} +33 -29
- package/dist/.setup/{channel-type-osC0XOES.mjs → channel-type-Dxk8VJUb.mjs} +3 -3
- package/dist/.setup/{channel.setup-BSY5hzVz.mjs → channel.setup-BVoUtdPn.mjs} +4 -4
- package/dist/.setup/{config-schema-DrY3S7Ee.mjs → config-schema-CyL279e7.mjs} +8 -0
- package/dist/.setup/{directory-config-CTs7YyuU.mjs → directory-config-CQTSH45W.mjs} +1 -1
- package/dist/.setup/{directory-live-Btq0063Q.mjs → directory-live-BCcj89QV.mjs} +2 -2
- package/dist/.setup/{message-tool-api-DRnDCVdY.mjs → message-tool-api-C0PTFaNV.mjs} +2 -2
- package/dist/.setup/{monitor-Dw5uuKWM.mjs → monitor-_Sht7Dqy.mjs} +3 -3
- package/dist/.setup/{outbound-adapter-K3Ek1iSR.mjs → outbound-adapter-A7Wdn8ZT.mjs} +4 -4
- package/dist/.setup/{pipeline.runtime-BZqGcbfi.mjs → pipeline.runtime-BlPOexmJ.mjs} +642 -487
- package/dist/.setup/{policy-Db_QWCZZ.mjs → policy-BApW53pI.mjs} +2 -2
- package/dist/.setup/{probe-64C6k3_Q.mjs → probe-DiYIMPJo.mjs} +1 -1
- package/dist/.setup/{provider-w36VTgZ3.mjs → provider-C-jPaGt2.mjs} +26 -27
- package/dist/.setup/{relay-source-CDqY76Vp.mjs → relay-source-DfOnjJTE.mjs} +1 -1
- package/dist/.setup/{replies-CWFhjS9S.mjs → replies-BBAJxUOQ.mjs} +4 -4
- package/dist/.setup/{reply-blocks-9uCeAJts.mjs → reply-blocks-Bm8kf6mK.mjs} +1 -1
- package/dist/.setup/{resolve-channels-x8fX1SEt.mjs → resolve-channels-BXbMBbJD.mjs} +1 -1
- package/dist/.setup/{resolve-users-B8BpBnH2.mjs → resolve-users-65WqvIqD.mjs} +1 -1
- package/dist/.setup/{scopes-CJ-6l4v4.mjs → scopes-h3YB-mMs.mjs} +1 -1
- package/dist/.setup/{send-6GCb3lBP.mjs → send-Cp6omkOg.mjs} +21 -31
- package/dist/.setup/{send.runtime-BmqRP-WG.mjs → send.runtime-B4caZU6T.mjs} +1 -1
- package/dist/.setup/{session-status-BhG6pdiH.mjs → session-status-Cf7AvWOt.mjs} +11 -15
- package/dist/.setup/{setup-plugin-api-DtCEByQB.mjs → setup-plugin-api-dLPkL06L.mjs} +1 -1
- package/dist/.setup/{setup-surface-DsE0hsYY.mjs → setup-surface-D3DLcCxu.mjs} +6 -6
- package/dist/.setup/{shared-BNmqCPgQ.mjs → shared-CJ3arAFL.mjs} +4 -4
- package/dist/.setup/{slash-dispatch.runtime-Io4ASZsY.mjs → slash-dispatch.runtime-HFy_XvyO.mjs} +1 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +13 -13
- 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/message-tool-api.js +1 -1
- package/dist/runtime-api.js +11 -11
- package/dist/setup-entry.js +1 -1
- 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/package.json +2 -2
- package/node_modules/@slack/bolt/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- 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 +18 -0
- package/package.json +5 -5
- package/dist/.setup/accounts.runtime-BpWv-6-2.mjs +0 -2
- package/dist/.setup/action-runtime.runtime-DwH3NdpT.mjs +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as hasSlackAccountCredentials } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { a as resolveDefaultSlackAccountId, i as mergeSlackAccountConfig } from "./accounts-BBHvg0pY.mjs";
|
|
3
3
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
4
4
|
import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
5
5
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -39,21 +39,22 @@ function resolveSlackOperationToken(account, operation) {
|
|
|
39
39
|
if (operation === "read") return userToken ?? botToken;
|
|
40
40
|
return account.config.userTokenReadOnly === false ? botToken ?? userToken : botToken;
|
|
41
41
|
}
|
|
42
|
+
function hasImplicitDefaultSlackAccount(cfg) {
|
|
43
|
+
const slack = cfg.channels?.slack;
|
|
44
|
+
const userIdentity = slack?.postAs === "user";
|
|
45
|
+
return hasSlackAccountCredentials({
|
|
46
|
+
config: slack ?? {},
|
|
47
|
+
identityTokenConfigured: hasConfiguredAccountValue(userIdentity ? slack?.userToken : slack?.botToken) || hasConfiguredAccountValue(userIdentity ? process.env.SLACK_USER_TOKEN : process.env.SLACK_BOT_TOKEN),
|
|
48
|
+
appTokenConfigured: hasConfiguredAccountValue(slack?.appToken) || hasConfiguredAccountValue(process.env.SLACK_APP_TOKEN)
|
|
49
|
+
});
|
|
50
|
+
}
|
|
42
51
|
const { listAccountIds, resolveDefaultAccountId, resolveAccountConfig: resolveMergedSlackAccountConfig } = createAccountListHelpers("slack", {
|
|
43
52
|
nestedObjectKeys: [
|
|
44
53
|
"botLoopProtection",
|
|
45
54
|
"presenceEvents",
|
|
46
55
|
"relay"
|
|
47
56
|
],
|
|
48
|
-
hasImplicitDefaultAccount:
|
|
49
|
-
const slack = cfg.channels?.slack;
|
|
50
|
-
const userIdentity = slack?.postAs === "user";
|
|
51
|
-
return hasSlackAccountCredentials({
|
|
52
|
-
config: slack ?? {},
|
|
53
|
-
identityTokenConfigured: hasConfiguredAccountValue(userIdentity ? slack?.userToken : slack?.botToken) || hasConfiguredAccountValue(userIdentity ? process.env.SLACK_USER_TOKEN : process.env.SLACK_BOT_TOKEN),
|
|
54
|
-
appTokenConfigured: hasConfiguredAccountValue(slack?.appToken) || hasConfiguredAccountValue(process.env.SLACK_APP_TOKEN)
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
+
hasImplicitDefaultAccount: hasImplicitDefaultSlackAccount
|
|
57
58
|
});
|
|
58
59
|
const listSlackAccountIds = listAccountIds;
|
|
59
60
|
const resolveDefaultSlackAccountId = resolveDefaultAccountId;
|
|
@@ -184,4 +185,4 @@ function listEnabledSlackAccounts(cfg) {
|
|
|
184
185
|
})).filter((account) => account.enabled);
|
|
185
186
|
}
|
|
186
187
|
//#endregion
|
|
187
|
-
export {
|
|
188
|
+
export { resolveDefaultSlackAccountId as a, resolveSlackAccountDmPolicy as c, formatSlackBotTokenIdentityWarning as d, resolveSlackAppToken as f, mergeSlackAccountConfig as i, resolveSlackConfigAccessorAccount as l, listEnabledSlackAccounts as n, resolveSlackAccount as o, resolveSlackBotToken as p, listSlackAccountIds as r, resolveSlackAccountAllowFrom as s, hasImplicitDefaultSlackAccount as t, resolveSlackOperationToken as u };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, Nt as resolveSlackAutoThreadId, ct as parseSlackBlocksInput, f as assertSlackDetachedTargetAllowed, r as buildSlackChannelIdCandidates, v as hasSlackNativeDataBlock, xt as getSlackInstallationKind } from "./session-status-
|
|
1
|
+
import { Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, Nt as resolveSlackAutoThreadId, ct as parseSlackBlocksInput, f as assertSlackDetachedTargetAllowed, r as buildSlackChannelIdCandidates, v as hasSlackNativeDataBlock, xt as getSlackInstallationKind } from "./session-status-Cf7AvWOt.mjs";
|
|
2
2
|
import { a as parseSlackTarget, n as formatSlackTarget, o as resolveSlackChannelId } from "./target-parsing-DEsPjngB.mjs";
|
|
3
3
|
import { t as slackContextTargetsMatch } from "./targets-Cku2KCvg.mjs";
|
|
4
|
-
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
4
|
+
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-BApW53pI.mjs";
|
|
5
5
|
import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.mjs";
|
|
6
6
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
7
7
|
import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
|
-
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
8
|
+
import { createLazyRuntimeMethodBinder, createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
9
9
|
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
|
|
10
10
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
11
11
|
import { createActionGate, imageResultFromFile, jsonResult, readPositiveIntegerParam, readReactionParams, readStringParam, withNormalizedTimestamp } from "openclaw/plugin-sdk/channel-actions";
|
|
@@ -27,35 +27,31 @@ const pinActions = /* @__PURE__ */ new Set([
|
|
|
27
27
|
"listPins"
|
|
28
28
|
]);
|
|
29
29
|
const SLACK_REACTION_RESULT_LIMIT = 100;
|
|
30
|
-
const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const action = (await loadSlackActionsRuntime())[key];
|
|
36
|
-
return action(...args);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
30
|
+
const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-DKCtBgCI.mjs").then((n) => n.t));
|
|
31
|
+
const bindSlackAction = createLazyRuntimeMethodBinder(loadSlackActionsRuntime);
|
|
32
|
+
const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts.runtime-DN-PPocC.mjs"));
|
|
33
|
+
const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-Dxk8VJUb.mjs").then((n) => n.t));
|
|
34
|
+
const bindSlackChannelType = createLazyRuntimeMethodBinder(loadSlackChannelTypeRuntime);
|
|
39
35
|
const slackActionRuntime = {
|
|
40
|
-
deleteSlackMessage:
|
|
41
|
-
downloadSlackFile:
|
|
42
|
-
editSlackMessage:
|
|
43
|
-
getSlackMemberInfo:
|
|
44
|
-
listSlackEmojis:
|
|
45
|
-
listSlackPins:
|
|
46
|
-
listSlackReactions:
|
|
47
|
-
openSlackConversation:
|
|
36
|
+
deleteSlackMessage: bindSlackAction((runtime) => runtime.deleteSlackMessage),
|
|
37
|
+
downloadSlackFile: bindSlackAction((runtime) => runtime.downloadSlackFile),
|
|
38
|
+
editSlackMessage: bindSlackAction((runtime) => runtime.editSlackMessage),
|
|
39
|
+
getSlackMemberInfo: bindSlackAction((runtime) => runtime.getSlackMemberInfo),
|
|
40
|
+
listSlackEmojis: bindSlackAction((runtime) => runtime.listSlackEmojis),
|
|
41
|
+
listSlackPins: bindSlackAction((runtime) => runtime.listSlackPins),
|
|
42
|
+
listSlackReactions: bindSlackAction((runtime) => runtime.listSlackReactions),
|
|
43
|
+
openSlackConversation: bindSlackAction((runtime) => runtime.openSlackConversation),
|
|
48
44
|
parseSlackBlocksInput,
|
|
49
|
-
pinSlackMessage:
|
|
50
|
-
reactSlackMessage:
|
|
51
|
-
readSlackMessages:
|
|
52
|
-
removeOwnSlackReactions:
|
|
53
|
-
removeSlackReaction:
|
|
54
|
-
resolveSlackConversationName:
|
|
55
|
-
resolveSlackConversationInfo:
|
|
45
|
+
pinSlackMessage: bindSlackAction((runtime) => runtime.pinSlackMessage),
|
|
46
|
+
reactSlackMessage: bindSlackAction((runtime) => runtime.reactSlackMessage),
|
|
47
|
+
readSlackMessages: bindSlackAction((runtime) => runtime.readSlackMessages),
|
|
48
|
+
removeOwnSlackReactions: bindSlackAction((runtime) => runtime.removeOwnSlackReactions),
|
|
49
|
+
removeSlackReaction: bindSlackAction((runtime) => runtime.removeSlackReaction),
|
|
50
|
+
resolveSlackConversationName: bindSlackAction((runtime) => runtime.resolveSlackConversationName),
|
|
51
|
+
resolveSlackConversationInfo: bindSlackChannelType((runtime) => runtime.resolveSlackConversationInfo),
|
|
56
52
|
resolveSlackChannelType: async (params) => (await loadSlackChannelTypeRuntime()).resolveSlackChannelType(params),
|
|
57
|
-
sendSlackMessage:
|
|
58
|
-
unpinSlackMessage:
|
|
53
|
+
sendSlackMessage: bindSlackAction((runtime) => runtime.sendSlackMessage),
|
|
54
|
+
unpinSlackMessage: bindSlackAction((runtime) => runtime.unpinSlackMessage)
|
|
59
55
|
};
|
|
60
56
|
function resolveThreadTsFromContext(explicitThreadTs, targetChannel, context, opts) {
|
|
61
57
|
if (explicitThreadTs) return explicitThreadTs;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import { a as
|
|
3
|
-
import { A as countSlackTextUtf8Bytes, C as buildSlackBlocksFallbackText, E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, Y as normalizeSlackOutboundText, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, lt as validateSlackBlocksArray, m as appendSlackNativeDataFallbackText, ot as escapeSlackMrkdwn, v as hasSlackNativeDataBlock, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-
|
|
2
|
+
import { a as resolveDefaultSlackAccountId, o as resolveSlackAccount, p as resolveSlackBotToken } from "./accounts-BBHvg0pY.mjs";
|
|
3
|
+
import { A as countSlackTextUtf8Bytes, C as buildSlackBlocksFallbackText, E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, Y as normalizeSlackOutboundText, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, lt as validateSlackBlocksArray, m as appendSlackNativeDataFallbackText, ot as escapeSlackMrkdwn, v as hasSlackNativeDataBlock, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-Cf7AvWOt.mjs";
|
|
4
4
|
import { n as formatSlackTarget } from "./target-parsing-DEsPjngB.mjs";
|
|
5
|
-
import { g as getSlackWriteClient, l as createSlackLookupClient, m as createSlackWriteClient } from "./probe-
|
|
6
|
-
import { m as buildSlackNativeDataDeliveryPlan, r as sendMessageSlack } from "./send-
|
|
5
|
+
import { g as getSlackWriteClient, l as createSlackLookupClient, m as createSlackWriteClient } from "./probe-DiYIMPJo.mjs";
|
|
6
|
+
import { m as buildSlackNativeDataDeliveryPlan, r as sendMessageSlack } from "./send-Cp6omkOg.mjs";
|
|
7
7
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
8
8
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
9
|
import { createSubsystemLogger, logVerbose, logVerbose as logVerbose$1 } from "openclaw/plugin-sdk/runtime-env";
|
|
@@ -15,7 +15,7 @@ import { z } from "zod";
|
|
|
15
15
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
16
16
|
import fs from "node:fs/promises";
|
|
17
17
|
import { runTasksWithConcurrency } from "openclaw/plugin-sdk/concurrency-runtime";
|
|
18
|
-
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
18
|
+
import { formatErrorMessage, toErrorObject } from "openclaw/plugin-sdk/error-runtime";
|
|
19
19
|
import { normalizeHostname } from "openclaw/plugin-sdk/host-runtime";
|
|
20
20
|
import { resolveRequestUrl } from "openclaw/plugin-sdk/request-url";
|
|
21
21
|
import { saveRemoteMedia, unlinkIfExists } from "openclaw/plugin-sdk/media-runtime";
|
|
@@ -198,6 +198,16 @@ function assertSlackFileUrl(rawUrl, govSlack) {
|
|
|
198
198
|
function createSlackAuthHeaders(token) {
|
|
199
199
|
return { Authorization: `Bearer ${token}` };
|
|
200
200
|
}
|
|
201
|
+
function captureSlackMediaReadGuard(params) {
|
|
202
|
+
const inherited = captureChannelReadAuthority$1();
|
|
203
|
+
const { assertCurrent, abortSignal } = params;
|
|
204
|
+
if (!assertCurrent && !abortSignal) return inherited;
|
|
205
|
+
return () => {
|
|
206
|
+
inherited?.();
|
|
207
|
+
abortSignal?.throwIfAborted();
|
|
208
|
+
assertCurrent?.();
|
|
209
|
+
};
|
|
210
|
+
}
|
|
201
211
|
function createSlackMediaRequest(url, token, govSlack) {
|
|
202
212
|
return {
|
|
203
213
|
url: assertSlackFileUrl(url, govSlack).href,
|
|
@@ -306,8 +316,12 @@ function formatSlackMediaFailure(error) {
|
|
|
306
316
|
}
|
|
307
317
|
async function fetchFreshSlackFileUrl(params) {
|
|
308
318
|
if (!params.file.id || !params.client) return null;
|
|
319
|
+
const assertCurrent = captureSlackMediaReadGuard(params);
|
|
309
320
|
try {
|
|
310
|
-
|
|
321
|
+
assertCurrent?.();
|
|
322
|
+
const info = await params.client.files.info({ file: params.file.id });
|
|
323
|
+
assertCurrent?.();
|
|
324
|
+
const freshFile = info.file;
|
|
311
325
|
if (freshFile && params.isRefreshedFileAllowed?.(freshFile) === false) {
|
|
312
326
|
logVerbose$1(`slack: refreshed file metadata rejected for file id=${params.file.id}`);
|
|
313
327
|
return null;
|
|
@@ -320,12 +334,13 @@ async function fetchFreshSlackFileUrl(params) {
|
|
|
320
334
|
logVerbose$1(`slack: files.info returned no private URL for file id=${params.file.id}`);
|
|
321
335
|
return null;
|
|
322
336
|
} catch (error) {
|
|
337
|
+
assertCurrent?.();
|
|
323
338
|
logVerbose$1(`slack: files.info failed for file id=${params.file.id}: ${formatErrorMessage(error)}`);
|
|
324
339
|
return null;
|
|
325
340
|
}
|
|
326
341
|
}
|
|
327
342
|
async function downloadSlackMediaFile(params) {
|
|
328
|
-
const assertReadAuthority =
|
|
343
|
+
const assertReadAuthority = captureSlackMediaReadGuard(params);
|
|
329
344
|
assertReadAuthority?.();
|
|
330
345
|
const { url: slackUrl, requestInit } = createSlackMediaRequest(params.url, params.token, params.govSlack);
|
|
331
346
|
const saved = await saveSlackMedia({
|
|
@@ -333,6 +348,7 @@ async function downloadSlackMediaFile(params) {
|
|
|
333
348
|
url: slackUrl,
|
|
334
349
|
fetchImpl: createSlackMediaFetch(params.govSlack, assertReadAuthority),
|
|
335
350
|
beforeRequest: assertReadAuthority,
|
|
351
|
+
assertCurrent: params.assertCurrent,
|
|
336
352
|
requestInit,
|
|
337
353
|
filePathHint: params.file.name,
|
|
338
354
|
fallbackContentType: resolveSlackMediaMimetype(params.file, params.file.mimetype),
|
|
@@ -383,6 +399,7 @@ function resolveForwardedAttachmentImageUrl(attachment, govSlack) {
|
|
|
383
399
|
* Returns `null` when no files could be downloaded.
|
|
384
400
|
*/
|
|
385
401
|
async function resolveSlackMedia(params) {
|
|
402
|
+
const assertCurrent = captureSlackMediaReadGuard(params);
|
|
386
403
|
const govSlack = isGovSlackClient(params.client);
|
|
387
404
|
const files = params.files ?? [];
|
|
388
405
|
const limitedFiles = files.length > 8 ? files.slice(0, 8) : files;
|
|
@@ -390,10 +407,13 @@ async function resolveSlackMedia(params) {
|
|
|
390
407
|
const refreshFileUrl = (file) => fetchFreshSlackFileUrl({
|
|
391
408
|
file,
|
|
392
409
|
client: params.client,
|
|
393
|
-
isRefreshedFileAllowed: params.isRefreshedFileAllowed
|
|
410
|
+
isRefreshedFileAllowed: params.isRefreshedFileAllowed,
|
|
411
|
+
assertCurrent: params.assertCurrent,
|
|
412
|
+
abortSignal: params.abortSignal
|
|
394
413
|
});
|
|
395
|
-
const { results } = await runTasksWithConcurrency({
|
|
414
|
+
const { results, hasError, firstError } = await runTasksWithConcurrency({
|
|
396
415
|
tasks: limitedFiles.map((file) => async () => {
|
|
416
|
+
assertCurrent?.();
|
|
397
417
|
const preloaded = params.preloadedMedia?.get(file);
|
|
398
418
|
if (preloaded) return preloaded;
|
|
399
419
|
const eventUrl = file.url_private_download ?? file.url_private;
|
|
@@ -410,6 +430,7 @@ async function resolveSlackMedia(params) {
|
|
|
410
430
|
} catch (error) {
|
|
411
431
|
reason = formatSlackMediaFailure(error);
|
|
412
432
|
}
|
|
433
|
+
assertCurrent?.();
|
|
413
434
|
url = attempt === 0 && eventUrl ? await refreshFileUrl(file) : null;
|
|
414
435
|
}
|
|
415
436
|
params.unavailableFiles?.set(file, reason);
|
|
@@ -417,9 +438,9 @@ async function resolveSlackMedia(params) {
|
|
|
417
438
|
return null;
|
|
418
439
|
}),
|
|
419
440
|
limit: MAX_SLACK_MEDIA_CONCURRENCY,
|
|
420
|
-
errorMode: "stop"
|
|
421
|
-
throwOnError: true
|
|
441
|
+
errorMode: "stop"
|
|
422
442
|
});
|
|
443
|
+
if (hasError) throw toErrorObject(firstError, "Slack media read failed");
|
|
423
444
|
const resolved = results.filter((result) => result !== null);
|
|
424
445
|
return resolved.length > 0 ? resolved : null;
|
|
425
446
|
}
|
|
@@ -456,47 +477,57 @@ async function resolveSlackAttachmentContent(params) {
|
|
|
456
477
|
return selected ? [selected] : [];
|
|
457
478
|
})
|
|
458
479
|
});
|
|
459
|
-
const directMediaPromise = resolveFiles(params.files);
|
|
460
480
|
const textBlocks = [];
|
|
461
|
-
const attachmentMedia = [];
|
|
462
481
|
let unavailableMediaCount = 0;
|
|
463
482
|
const govSlack = isGovSlackClient(params.client);
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
const
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
url: slackUrl,
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
483
|
+
const { results, hasError, firstError } = await runTasksWithConcurrency({
|
|
484
|
+
tasks: [() => resolveFiles(params.files), async () => {
|
|
485
|
+
const attachmentMedia = [];
|
|
486
|
+
for (const att of forwardedAttachments) {
|
|
487
|
+
const text = att.text?.trim() || att.fallback?.trim();
|
|
488
|
+
if (text) {
|
|
489
|
+
const author = att.author_name;
|
|
490
|
+
const heading = author ? `[Forwarded message from ${author}]` : "[Forwarded message]";
|
|
491
|
+
textBlocks.push(`${heading}\n${text}`);
|
|
492
|
+
}
|
|
493
|
+
const imageUrl = resolveForwardedAttachmentImageUrl(att, govSlack);
|
|
494
|
+
if (imageUrl) try {
|
|
495
|
+
const { url: slackUrl, requestInit } = createSlackMediaRequest(imageUrl, params.token, govSlack);
|
|
496
|
+
const assertReadAuthority = captureSlackMediaReadGuard(params);
|
|
497
|
+
const saved = await saveSlackMedia({
|
|
498
|
+
options: {
|
|
499
|
+
url: slackUrl,
|
|
500
|
+
fetchImpl: createSlackMediaFetch(govSlack, assertReadAuthority),
|
|
501
|
+
beforeRequest: assertReadAuthority,
|
|
502
|
+
assertCurrent: params.assertCurrent,
|
|
503
|
+
requestInit,
|
|
504
|
+
maxBytes: params.maxBytes,
|
|
505
|
+
ssrfPolicy: govSlack ? SLACK_GOV_MEDIA_SSRF_POLICY : SLACK_MEDIA_SSRF_POLICY
|
|
506
|
+
},
|
|
507
|
+
readIdleTimeoutMs: params.readIdleTimeoutMs,
|
|
508
|
+
totalTimeoutMs: params.totalTimeoutMs ?? SLACK_MEDIA_TOTAL_TIMEOUT_MS,
|
|
509
|
+
abortSignal: params.abortSignal
|
|
510
|
+
});
|
|
511
|
+
const label = saved.fileName ?? "forwarded image";
|
|
512
|
+
attachmentMedia.push({
|
|
513
|
+
path: saved.path,
|
|
514
|
+
contentType: saved.contentType,
|
|
515
|
+
...saved.fileName ? { fileName: saved.fileName } : {},
|
|
516
|
+
placeholder: `[Forwarded image: ${label}]`
|
|
517
|
+
});
|
|
518
|
+
} catch (error) {
|
|
519
|
+
unavailableMediaCount += 1;
|
|
520
|
+
slackMediaLog.warn(`slack: forwarded image unavailable (${formatSlackMediaFailure(error)})`);
|
|
521
|
+
}
|
|
522
|
+
attachmentMedia.push(...await resolveFiles(att.files) ?? []);
|
|
523
|
+
}
|
|
524
|
+
return attachmentMedia;
|
|
525
|
+
}],
|
|
526
|
+
limit: 2,
|
|
527
|
+
errorMode: "stop"
|
|
528
|
+
});
|
|
529
|
+
if (hasError) throw toErrorObject(firstError, "Slack attachment read failed");
|
|
530
|
+
const allMedia = results.flatMap((media) => media ?? []);
|
|
500
531
|
const unavailableFiles = allFiles.flatMap((file, index) => {
|
|
501
532
|
const reason = index >= 8 ? SLACK_MEDIA_LIMIT_REASON : unavailableFileReasons.get(file);
|
|
502
533
|
return reason ? [{
|
package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-DMszKn_7.mjs}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, dt as isSlackAnyNativeApprovalClientEnabled, kt as normalizeSlackApproverId, n as setSlackSessionStatus, vt as shouldHandleSlackNativeApprovalRequest } from "./session-status-
|
|
1
|
+
import { E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, dt as isSlackAnyNativeApprovalClientEnabled, kt as normalizeSlackApproverId, n as setSlackSessionStatus, vt as shouldHandleSlackNativeApprovalRequest } from "./session-status-Cf7AvWOt.mjs";
|
|
2
2
|
import { a as parseSlackTarget } from "./target-parsing-DEsPjngB.mjs";
|
|
3
|
-
import { h as getSlackListenerWriteClient } from "./probe-
|
|
4
|
-
import { g as SLACK_APPROVAL_HEADER_BLOCK_ID, s as resolveSlackReplyBlocks } from "./reply-blocks-
|
|
5
|
-
import { r as sendMessageSlack } from "./send-
|
|
6
|
-
import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-
|
|
3
|
+
import { h as getSlackListenerWriteClient } from "./probe-DiYIMPJo.mjs";
|
|
4
|
+
import { g as SLACK_APPROVAL_HEADER_BLOCK_ID, s as resolveSlackReplyBlocks } from "./reply-blocks-Bm8kf6mK.mjs";
|
|
5
|
+
import { r as sendMessageSlack } from "./send-Cp6omkOg.mjs";
|
|
6
|
+
import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-Tb_qRokK.mjs";
|
|
7
7
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
9
9
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-Tb_qRokK.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as isSlackApprovalActionId } from "./session-status-
|
|
2
|
-
import { _ as decodeSlackApprovalAction } from "./reply-blocks-
|
|
1
|
+
import { U as isSlackApprovalActionId } from "./session-status-Cf7AvWOt.mjs";
|
|
2
|
+
import { _ as decodeSlackApprovalAction } from "./reply-blocks-Bm8kf6mK.mjs";
|
|
3
3
|
import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
|
|
5
5
|
//#region extensions/slack/src/approval-message-updates.ts
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
-
import { a as resolveSlackAccount,
|
|
3
|
-
import { A as countSlackTextUtf8Bytes, At as resolveSlackExecApprovalTarget, Dt as isSlackExecApprovalAuthorizedSender, E as SLACK_EDIT_TEXT_MAX_BYTES, Et as getSlackExecApprovalApprovers, Nt as resolveSlackAutoThreadId, Ot as isSlackExecApprovalClientEnabled, Pt as resolveSlackReplyToMode, St as isSlackWorkspaceInstallation, Tt as isSlackApprovalAuthorizedSender, Y as normalizeSlackOutboundText, _t as resolveTurnSourceSlackOriginTarget, a as resolveSlackGroupRequireMention, at as renderSlackMessagePresentationFallbackText, bt as slackTargetsMatch, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, dt as isSlackAnyNativeApprovalClientEnabled, f as assertSlackDetachedTargetAllowed, ft as normalizeSlackForwardTarget, gt as resolveSlackFallbackOriginTarget, ht as resolveSessionSlackOriginTarget, jt as shouldSuppressLocalSlackExecApprovalPrompt, k as SLACK_TEXT_LIMIT, mt as resolveEnterpriseApprovalTeamId, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, pt as normalizeSlackOriginTarget, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, ut as hasSlackPluginApprovers, vt as shouldHandleSlackNativeApprovalRequest, wt as getSlackApprovalApproversForTeam, xt as getSlackInstallationKind, yt as shouldHandleSlackPluginViaForwardingSession } from "./session-status-
|
|
2
|
+
import { a as resolveDefaultSlackAccountId, o as resolveSlackAccount, r as listSlackAccountIds, s as resolveSlackAccountAllowFrom, t as hasImplicitDefaultSlackAccount, u as resolveSlackOperationToken } from "./accounts-BBHvg0pY.mjs";
|
|
3
|
+
import { A as countSlackTextUtf8Bytes, At as resolveSlackExecApprovalTarget, Dt as isSlackExecApprovalAuthorizedSender, E as SLACK_EDIT_TEXT_MAX_BYTES, Et as getSlackExecApprovalApprovers, Nt as resolveSlackAutoThreadId, Ot as isSlackExecApprovalClientEnabled, Pt as resolveSlackReplyToMode, St as isSlackWorkspaceInstallation, Tt as isSlackApprovalAuthorizedSender, Y as normalizeSlackOutboundText, _t as resolveTurnSourceSlackOriginTarget, a as resolveSlackGroupRequireMention, at as renderSlackMessagePresentationFallbackText, bt as slackTargetsMatch, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, dt as isSlackAnyNativeApprovalClientEnabled, f as assertSlackDetachedTargetAllowed, ft as normalizeSlackForwardTarget, gt as resolveSlackFallbackOriginTarget, ht as resolveSessionSlackOriginTarget, jt as shouldSuppressLocalSlackExecApprovalPrompt, k as SLACK_TEXT_LIMIT, mt as resolveEnterpriseApprovalTeamId, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, pt as normalizeSlackOriginTarget, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, ut as hasSlackPluginApprovers, vt as shouldHandleSlackNativeApprovalRequest, wt as getSlackApprovalApproversForTeam, xt as getSlackInstallationKind, yt as shouldHandleSlackPluginViaForwardingSession } from "./session-status-Cf7AvWOt.mjs";
|
|
4
4
|
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-DEsPjngB.mjs";
|
|
5
5
|
import { t as slackContextTargetsMatch } from "./targets-Cku2KCvg.mjs";
|
|
6
|
-
import { g as getSlackWriteClient, l as createSlackLookupClient, o as formatSlackError, s as collectSlackCursorPages } from "./probe-
|
|
7
|
-
import { c as resolveSlackReplyDeliveryMessages, f as buildSlackPresentationBlocks, o as resolveSlackReplyBlockResolution, p as canRenderSlackPresentation, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks, v as SLACK_PRESENTATION_CAPABILITIES } from "./reply-blocks-
|
|
6
|
+
import { g as getSlackWriteClient, l as createSlackLookupClient, o as formatSlackError, s as collectSlackCursorPages } from "./probe-DiYIMPJo.mjs";
|
|
7
|
+
import { c as resolveSlackReplyDeliveryMessages, f as buildSlackPresentationBlocks, o as resolveSlackReplyBlockResolution, p as canRenderSlackPresentation, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks, v as SLACK_PRESENTATION_CAPABILITIES } from "./reply-blocks-Bm8kf6mK.mjs";
|
|
8
8
|
import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.mjs";
|
|
9
|
-
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-
|
|
10
|
-
import { a as PAIRING_APPROVED_MESSAGE, i as DEFAULT_ACCOUNT_ID$
|
|
11
|
-
import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-
|
|
9
|
+
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-C0PTFaNV.mjs";
|
|
10
|
+
import { a as PAIRING_APPROVED_MESSAGE, i as DEFAULT_ACCOUNT_ID$2, n as slackConfigAdapter, o as projectCredentialSnapshotFields, r as slackSecurityAdapter, s as resolveConfiguredFromRequiredCredentialStatuses, t as createSlackPluginBase } from "./shared-CJ3arAFL.mjs";
|
|
11
|
+
import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-Dxk8VJUb.mjs";
|
|
12
12
|
import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
|
|
13
|
-
import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-
|
|
14
|
-
import { normalizeAccountId } from "openclaw/plugin-sdk/account-
|
|
13
|
+
import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-BVoUtdPn.mjs";
|
|
14
|
+
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
15
|
+
import { normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/account-resolution";
|
|
15
16
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
17
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
17
|
-
import { buildOutboundBaseSessionKey, normalizeMessageChannel, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
18
|
+
import { buildOutboundBaseSessionKey, normalizeMessageChannel, resolveAccountEntry, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
|
|
18
19
|
import { buildLegacyDmAccountAllowlistAdapter, createAccountScopedAllowlistNameResolver, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
19
20
|
import { buildThreadAwareOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
20
21
|
import { createChannelMessageAdapterFromOutbound, createRuntimeOutboundDelegates } from "openclaw/plugin-sdk/channel-outbound";
|
|
@@ -143,7 +144,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
|
|
|
143
144
|
approvalKind,
|
|
144
145
|
request
|
|
145
146
|
}),
|
|
146
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
147
|
+
load: async () => (await import("./approval-handler.runtime-DMszKn_7.mjs")).slackApprovalNativeRuntime
|
|
147
148
|
})
|
|
148
149
|
});
|
|
149
150
|
const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
|
|
@@ -363,8 +364,8 @@ async function handleSlackMessageAction(params) {
|
|
|
363
364
|
}, cfg, ctx.toolContext);
|
|
364
365
|
}
|
|
365
366
|
if (action === "member-info") {
|
|
366
|
-
const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId(ctx.requesterAccountId) : void 0;
|
|
367
|
-
const targetAccountId = normalizeAccountId(accountId ?? resolveDefaultSlackAccountId(cfg));
|
|
367
|
+
const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId$1(ctx.requesterAccountId) : void 0;
|
|
368
|
+
const targetAccountId = normalizeAccountId$1(accountId ?? resolveDefaultSlackAccountId(cfg));
|
|
368
369
|
const requesterUserId = normalizeOptionalLowercaseString(ctx.toolContext?.currentChannelProvider) === "slack" && requesterAccountId !== void 0 && requesterAccountId === targetAccountId ? normalizeOptionalString(ctx.requesterSenderId) : void 0;
|
|
369
370
|
const userId = readStringParam$1(actionParams, "userId") ?? requesterUserId;
|
|
370
371
|
if (!userId) throw new Error("member-info requires a userId outside a current Slack conversation.");
|
|
@@ -427,7 +428,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
|
|
|
427
428
|
"unpinMessage",
|
|
428
429
|
"uploadFile"
|
|
429
430
|
]);
|
|
430
|
-
const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-
|
|
431
|
+
const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-C8R8CUan.mjs"));
|
|
431
432
|
function resolveSlackActionContext(ctx, toolContext) {
|
|
432
433
|
if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId && !ctx.assertDirectAdapterHandoff) return;
|
|
433
434
|
return {
|
|
@@ -492,7 +493,10 @@ function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
|
|
|
492
493
|
//#endregion
|
|
493
494
|
//#region extensions/slack/src/conversation-route-owner.ts
|
|
494
495
|
function inspectSlackConversationRouteOwner(params) {
|
|
495
|
-
const
|
|
496
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
497
|
+
const accountConfig = resolveAccountEntry(params.cfg.channels?.slack?.accounts, accountId);
|
|
498
|
+
if (params.cfg.channels?.slack?.enabled === false || accountConfig?.enabled === false || !accountConfig && (accountId !== DEFAULT_ACCOUNT_ID || !hasImplicitDefaultSlackAccount(params.cfg))) return null;
|
|
499
|
+
const installationKind = getSlackInstallationKind(accountId);
|
|
496
500
|
const direct = params.conversation.kind === "direct";
|
|
497
501
|
const target = parseSlackTarget(params.conversation.peerId, { defaultKind: direct ? "user" : "channel" });
|
|
498
502
|
if (!target || target.kind !== (direct ? "user" : "channel")) return null;
|
|
@@ -509,7 +513,7 @@ function inspectSlackConversationRouteOwner(params) {
|
|
|
509
513
|
const route = resolveAgentRoute({
|
|
510
514
|
cfg: normalizeSlackRouteBindingConfig(params.cfg),
|
|
511
515
|
channel: "slack",
|
|
512
|
-
accountId
|
|
516
|
+
accountId,
|
|
513
517
|
teamId,
|
|
514
518
|
peer: {
|
|
515
519
|
kind: params.conversation.kind,
|
|
@@ -524,7 +528,7 @@ function inspectSlackConversationRouteOwner(params) {
|
|
|
524
528
|
const bindingRoute = resolveSlackConversationBindingRoute({
|
|
525
529
|
cfg: params.cfg,
|
|
526
530
|
route,
|
|
527
|
-
accountId
|
|
531
|
+
accountId,
|
|
528
532
|
baseConversationId,
|
|
529
533
|
runtimeBindingThreadId: params.conversation.threadId,
|
|
530
534
|
bindingsEnabled: !enterpriseRoute,
|
|
@@ -604,23 +608,23 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
604
608
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
605
609
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
606
610
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
607
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
608
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
609
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
611
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-D3DLcCxu.mjs"));
|
|
612
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-h3YB-mMs.mjs"));
|
|
613
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-A7Wdn8ZT.mjs"));
|
|
610
614
|
async function resolveSlackHandleAction() {
|
|
611
615
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
612
616
|
}
|
|
613
617
|
function shouldTreatSlackDeliveredTextAsVisible(params) {
|
|
614
618
|
return params.kind === "block" && typeof params.text === "string" && params.text.trim().length > 0;
|
|
615
619
|
}
|
|
616
|
-
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
617
|
-
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
618
|
-
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
619
|
-
const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-
|
|
620
|
-
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
621
|
-
const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-
|
|
622
|
-
const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-
|
|
623
|
-
const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-
|
|
620
|
+
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-CQTSH45W.mjs").then((n) => n.t));
|
|
621
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-BXbMBbJD.mjs").then((n) => n.n));
|
|
622
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-65WqvIqD.mjs").then((n) => n.n));
|
|
623
|
+
const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-C8R8CUan.mjs"));
|
|
624
|
+
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-B4caZU6T.mjs"));
|
|
625
|
+
const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-DiYIMPJo.mjs").then((n) => n.n));
|
|
626
|
+
const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-_Sht7Dqy.mjs").then((n) => n.t));
|
|
627
|
+
const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-BCcj89QV.mjs").then((n) => n.t));
|
|
624
628
|
async function setSlackHeartbeatThreadStatus(params) {
|
|
625
629
|
const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
|
|
626
630
|
const target = parseSlackTarget(params.to, { defaultKind: "channel" });
|
|
@@ -1027,7 +1031,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
1027
1031
|
}
|
|
1028
1032
|
},
|
|
1029
1033
|
status: createComputedAccountStatusAdapter({
|
|
1030
|
-
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$
|
|
1034
|
+
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$2),
|
|
1031
1035
|
buildChannelSummary: async ({ snapshot }) => {
|
|
1032
1036
|
const { buildPassiveProbedChannelStatusSummary } = await loadExtensionSharedSdk();
|
|
1033
1037
|
return buildPassiveProbedChannelStatusSummary(snapshot, snapshot.identity === "user" ? {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { f as assertSlackDetachedTargetAllowed } from "./session-status-
|
|
4
|
-
import { T as normalizeAllowListLower, p as createSlackWebClient, u as createSlackReadClient } from "./probe-
|
|
2
|
+
import { o as resolveSlackAccount, u as resolveSlackOperationToken } from "./accounts-BBHvg0pY.mjs";
|
|
3
|
+
import { f as assertSlackDetachedTargetAllowed } from "./session-status-Cf7AvWOt.mjs";
|
|
4
|
+
import { T as normalizeAllowListLower, p as createSlackWebClient, u as createSlackReadClient } from "./probe-DiYIMPJo.mjs";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as isSlackSetupAccountConfigured } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
-
import { a as
|
|
3
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
4
|
-
import { t as SlackChannelConfigSchema } from "./config-schema-
|
|
2
|
+
import { a as resolveDefaultSlackAccountId, l as resolveSlackConfigAccessorAccount, o as resolveSlackAccount, r as listSlackAccountIds } from "./accounts-BBHvg0pY.mjs";
|
|
3
|
+
import { t as inspectSlackAccount } from "./account-inspect-DP1Bcwj4.mjs";
|
|
4
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-CyL279e7.mjs";
|
|
5
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";
|
|
@@ -549,7 +549,7 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
|
|
|
549
549
|
});
|
|
550
550
|
//#endregion
|
|
551
551
|
//#region extensions/slack/src/channel.setup.ts
|
|
552
|
-
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-
|
|
552
|
+
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-D3DLcCxu.mjs")).slackSetupWizard }));
|
|
553
553
|
const slackSetupPlugin = {
|
|
554
554
|
id: SLACK_CHANNEL,
|
|
555
555
|
meta: {
|
|
@@ -3,7 +3,15 @@ import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
|
|
|
3
3
|
import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema, ProviderCommandsSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelAllowBotsSchema, buildChannelConfigSchema, buildChannelExecApprovalsSchema, buildChannelReactionShape, buildGroupEntrySchema, refineChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-schema";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
//#region extensions/slack/src/config-ui-hints.ts
|
|
6
|
+
const observedGroupHistoryHint = { help: "Automatic observed-message context uses a default of 50 and a maximum of 200 messages; 0 disables automatic injection. The JSON integer maximum selects the 50-message default. Session transcript trimming separately counts user turns, where 0 means no trimming. The observed-message cap does not rewrite saved values." };
|
|
7
|
+
const observedDmHistoryHint = { help: "Automatic observed-DM context uses a default of 0 and a maximum of 200 messages; 0 disables that extra context. The JSON integer maximum selects the 0-message default. Session transcript trimming separately counts user turns, where 0 means no trimming. The observed-message cap does not rewrite saved values." };
|
|
6
8
|
const slackChannelConfigUiHints = {
|
|
9
|
+
historyLimit: observedGroupHistoryHint,
|
|
10
|
+
"accounts.*.historyLimit": observedGroupHistoryHint,
|
|
11
|
+
dmHistoryLimit: observedDmHistoryHint,
|
|
12
|
+
"accounts.*.dmHistoryLimit": observedDmHistoryHint,
|
|
13
|
+
"dms.*.historyLimit": observedDmHistoryHint,
|
|
14
|
+
"accounts.*.dms.*.historyLimit": observedDmHistoryHint,
|
|
7
15
|
"": {
|
|
8
16
|
label: "Slack",
|
|
9
17
|
help: "Slack channel provider configuration for bot/app tokens, streaming behavior, and DM policy controls. Keep token handling and thread behavior explicit to avoid noisy workspace interactions."
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { a as resolveDefaultSlackAccountId, i as mergeSlackAccountConfig, s as resolveSlackAccountAllowFrom } from "./accounts-BBHvg0pY.mjs";
|
|
3
3
|
import { a as parseSlackTarget } from "./target-parsing-DEsPjngB.mjs";
|
|
4
4
|
import "./targets-Cku2KCvg.mjs";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { c as fetchSlackChannelListPage, l as createSlackLookupClient, s as collectSlackCursorPages } from "./probe-
|
|
2
|
+
import { o as resolveSlackAccount } from "./accounts-BBHvg0pY.mjs";
|
|
3
|
+
import { c as fetchSlackChannelListPage, l as createSlackLookupClient, s as collectSlackCursorPages } from "./probe-DiYIMPJo.mjs";
|
|
4
4
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
//#region extensions/slack/src/directory-live.ts
|
|
6
6
|
var directory_live_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
1
|
+
import { r as listSlackAccountIds } from "./accounts-BBHvg0pY.mjs";
|
|
2
|
+
import { t as inspectSlackAccount } from "./account-inspect-DP1Bcwj4.mjs";
|
|
3
3
|
import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.mjs";
|
|
4
4
|
import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
5
5
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import { P as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-
|
|
3
|
-
import { t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
4
|
-
import { a as resolveSlackThreadTs } from "./replies-
|
|
2
|
+
import { P as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-C-jPaGt2.mjs";
|
|
3
|
+
import { t as isSlackChannelAllowedByPolicy } from "./policy-BApW53pI.mjs";
|
|
4
|
+
import { a as resolveSlackThreadTs } from "./replies-BBAJxUOQ.mjs";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
|