@openclaw/slack 2026.7.2-beta.7 → 2026.8.1-beta.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-inspect-DEKpg9Ip.js → account-inspect-Drw2gAiN.js} +1 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/{accounts-CHAeNZOX.js → accounts-CK4AVI2_.js} +2 -2
- package/dist/{accounts.runtime-BHD4Ma2R.js → accounts.runtime-Cb7QwWBz.js} +1 -1
- package/dist/{action-runtime-DfuYoMjG.js → action-runtime-BkGe7ny_.js} +148 -76
- package/dist/action-runtime.runtime-D9I6uc0Q.js +2 -0
- package/dist/{actions-D3NuJvva.js → actions-BTDXwwE3.js} +85 -44
- package/dist/actions.runtime-DLFyUkvg.js +2 -0
- package/dist/api.js +15 -15
- package/dist/{approval-handler.runtime-BA05P0QT.js → approval-handler.runtime-CJaNzAq2.js} +51 -14
- package/dist/{block-text-DkHaoGem.js → block-text-YtiNkqmx.js} +1 -1
- package/dist/{channel-B9fVdW3s.js → channel-D_tovcUL.js} +151 -91
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel-type-DXyos1d2.js → channel-type-B9MSdoGN.js} +9 -8
- package/dist/{config-adapter-CxBQH8fq.js → channel.setup-Bch9dYmA.js} +83 -25
- package/dist/{config-schema-SgZT6nXV.js → config-schema-xto5jFIx.js} +5 -11
- package/dist/{directory-config-CnCIAktf.js → directory-config-CNBz8lJa.js} +3 -3
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-DKunWh3A.js → directory-live-CFKUtW9E.js} +13 -22
- package/dist/{doctor-contract-CsGH1Dfc.js → doctor-contract-BAy7-EUQ.js} +30 -3
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{group-policy-NQZti9t-.js → group-policy-c4RP9bjc.js} +248 -163
- package/dist/index.js +4 -1
- package/dist/{message-tool-api-DkhFpMoy.js → message-tool-api-BykQB4AU.js} +14 -3
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-CmKz0wtI.js → monitor-1nF1NtqT.js} +3 -3
- package/dist/{outbound-adapter-BkuMp2Vs.js → outbound-adapter-S81tsswN.js} +19 -17
- package/dist/{pipeline.runtime-DgtmuYCP.js → pipeline.runtime-BvYsM5JO.js} +1087 -682
- package/dist/{policy-PRysPn23.js → policy-TapwbeaT.js} +18 -14
- package/dist/{probe-CgDsSops.js → probe-HoEg_WxB.js} +38 -18
- package/dist/{provider-DmRizMZt.js → provider-CDNvBXUi.js} +3422 -2590
- package/dist/{relay-source-Blxj8xb4.js → relay-source-C9leF11u.js} +11 -21
- package/dist/{replies-4s_Vq_z9.js → replies-CeOfv82I.js} +52 -6
- package/dist/{resolve-channels-yEqmM-3I.js → resolve-channels-CNPrxaXY.js} +39 -12
- package/dist/{resolve-users-BOrt5K-5.js → resolve-users-Dzomuwnr.js} +28 -5
- package/dist/{runtime-api-QMb-Q5Ko.js → runtime-api-Cj9nxBNv.js} +3 -3
- package/dist/runtime-api.js +11 -11
- package/dist/{scopes-BJSrkAp6.js → scopes-cYXKkrRD.js} +1 -1
- package/dist/{send-DsLeZpST.js → send-Nor0iBwY.js} +211 -105
- package/dist/{send.runtime-gUdK6V3h.js → send.runtime-BmgNe6S9.js} +1 -1
- package/dist/setup-entry.js +1 -4
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-BeNzrMrJ.js → setup-surface-CbX1-Knh.js} +6 -6
- package/dist/{shared-DgIN3Dcr.js → shared-zdT5AMp-.js} +36 -42
- package/dist/{slash-dispatch.runtime-zPkyl7dB.js → slash-dispatch.runtime-Bnr9GR1S.js} +1 -1
- package/dist/{streaming-compat-3_X-21wW.js → streaming-compat-B-e0mqM0.js} +3 -8
- package/dist/{target-parsing-N6lHogYZ.js → target-parsing-BnMD2ZqZ.js} +40 -2
- package/dist/{targets-KmjP2E8s.js → targets-Cx5W_n3W.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/crypto.d.ts +1 -1
- package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +1 -1
- package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
- package/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
- package/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
- package/node_modules/undici/lib/core/request.js +12 -1
- package/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
- package/node_modules/undici/lib/handler/cache-handler.js +246 -64
- package/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
- package/node_modules/undici/lib/handler/retry-handler.js +24 -0
- package/node_modules/undici/lib/interceptor/cache.js +159 -52
- package/node_modules/undici/lib/util/cache.js +324 -62
- package/node_modules/undici/lib/util/date.js +23 -6
- package/node_modules/undici/lib/web/cookies/util.js +79 -9
- package/node_modules/undici/package.json +1 -1
- package/openclaw.plugin.json +239 -34
- package/package.json +9 -9
- package/skills/slack/SKILL.md +10 -68
- package/dist/action-runtime.runtime-DQErZYpz.js +0 -2
- package/dist/actions.runtime-BIRU_G4M.js +0 -2
- package/dist/channel.setup-CLP5oTvh.js +0 -56
- package/dist/preflight-audio.runtime-D5Bgags0.js +0 -3
- package/dist/slash-plugin-commands.runtime-Dosfcx3X.js +0 -2
|
@@ -105,7 +105,7 @@ function validateCookiePath (path) {
|
|
|
105
105
|
|
|
106
106
|
if (
|
|
107
107
|
code < 0x20 || // exclude CTLs (0-31)
|
|
108
|
-
code
|
|
108
|
+
code > 0x7E || // exclude DEL and non-ascii
|
|
109
109
|
code === 0x3B // ;
|
|
110
110
|
) {
|
|
111
111
|
throw new Error('Invalid cookie path')
|
|
@@ -114,16 +114,80 @@ function validateCookiePath (path) {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
117
|
+
* <let-dig> ::= <letter> | <digit>
|
|
118
|
+
*
|
|
119
|
+
* <letter> ::= any one of the 52 alphabetic characters A through Z in
|
|
120
|
+
* upper case and a through z in lower case
|
|
121
|
+
*
|
|
122
|
+
* <digit> ::= any one of the ten digits 0 through 9r
|
|
123
|
+
*
|
|
124
|
+
* @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5
|
|
125
|
+
* @param {number} code
|
|
126
|
+
*/
|
|
127
|
+
function isLetterOrDigit (code) {
|
|
128
|
+
return (
|
|
129
|
+
(code >= 0x30 && code <= 0x39) || // 0-9
|
|
130
|
+
(code >= 0x41 && code <= 0x5A) || // A-Z
|
|
131
|
+
(code >= 0x61 && code <= 0x7A) // a-z
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Validates a cookie domain against the "preferred name syntax".
|
|
137
|
+
*
|
|
138
|
+
* <domain> ::= <subdomain> | " "
|
|
139
|
+
* <subdomain> ::= <label> | <subdomain> "." <label>
|
|
140
|
+
* <label> ::= <let-dig> [ [ <ldh-str> ] <let-dig> ]
|
|
141
|
+
* <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
|
|
142
|
+
* <let-dig-hyp> ::= <let-dig> | "-"
|
|
143
|
+
*
|
|
144
|
+
* @see https://www.rfc-editor.org/rfc/rfc1034#section-3.5
|
|
145
|
+
* @see https://www.rfc-editor.org/rfc/rfc1123#section-2.1
|
|
146
|
+
* @see https://www.rfc-editor.org/rfc/rfc1035#section-2.3.4
|
|
119
147
|
* @param {string} domain
|
|
120
148
|
*/
|
|
121
149
|
function validateCookieDomain (domain) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
150
|
+
// <domain> ::= <subdomain> | " "
|
|
151
|
+
if (domain === ' ') {
|
|
152
|
+
return
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (domain.length > 255) {
|
|
156
|
+
throw new Error('Invalid cookie domain')
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
let labelLength = 0
|
|
160
|
+
|
|
161
|
+
for (let i = 0; i < domain.length; ++i) {
|
|
162
|
+
const code = domain.charCodeAt(i)
|
|
163
|
+
|
|
164
|
+
if (code === 0x2E) {
|
|
165
|
+
if (labelLength === 0) {
|
|
166
|
+
throw new Error('Invalid cookie domain')
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (domain.charCodeAt(i - 1) === 0x2D) { // "-"
|
|
170
|
+
throw new Error('Invalid cookie domain')
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
labelLength = 0
|
|
174
|
+
continue
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (labelLength === 0 && !isLetterOrDigit(code)) {
|
|
178
|
+
throw new Error('Invalid cookie domain')
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (!isLetterOrDigit(code) && code !== 0x2D) { // "-"
|
|
182
|
+
throw new Error('Invalid cookie domain')
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (++labelLength > 63) {
|
|
186
|
+
throw new Error('Invalid cookie domain')
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (labelLength === 0 || domain.charCodeAt(domain.length - 1) === 0x2D) { // "-"
|
|
127
191
|
throw new Error('Invalid cookie domain')
|
|
128
192
|
}
|
|
129
193
|
}
|
|
@@ -266,7 +330,13 @@ function stringify (cookie) {
|
|
|
266
330
|
|
|
267
331
|
const [key, ...value] = part.split('=')
|
|
268
332
|
|
|
269
|
-
|
|
333
|
+
const trimmedKey = key.trim()
|
|
334
|
+
const joinedValue = value.join('=')
|
|
335
|
+
|
|
336
|
+
validateCookieName(trimmedKey)
|
|
337
|
+
validateCookieValue(joinedValue)
|
|
338
|
+
|
|
339
|
+
out.push(`${trimmedKey}=${joinedValue}`)
|
|
270
340
|
}
|
|
271
341
|
|
|
272
342
|
return out.join('; ')
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "slack",
|
|
3
|
+
"doctorContract": {
|
|
4
|
+
"configRepair": true
|
|
5
|
+
},
|
|
3
6
|
"name": "Slack",
|
|
4
7
|
"description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
|
|
5
8
|
"skills": [
|
|
@@ -248,13 +251,6 @@
|
|
|
248
251
|
"exclusiveMinimum": 0,
|
|
249
252
|
"maximum": 9007199254740991
|
|
250
253
|
},
|
|
251
|
-
"render": {
|
|
252
|
-
"type": "string",
|
|
253
|
-
"enum": [
|
|
254
|
-
"text",
|
|
255
|
-
"rich"
|
|
256
|
-
]
|
|
257
|
-
},
|
|
258
254
|
"toolProgress": {
|
|
259
255
|
"type": "boolean"
|
|
260
256
|
},
|
|
@@ -381,9 +377,6 @@
|
|
|
381
377
|
"relay"
|
|
382
378
|
]
|
|
383
379
|
},
|
|
384
|
-
"enterpriseOrgInstall": {
|
|
385
|
-
"type": "boolean"
|
|
386
|
-
},
|
|
387
380
|
"relay": {
|
|
388
381
|
"type": "object",
|
|
389
382
|
"properties": {
|
|
@@ -420,6 +413,29 @@
|
|
|
420
413
|
],
|
|
421
414
|
"additionalProperties": false
|
|
422
415
|
},
|
|
416
|
+
{
|
|
417
|
+
"type": "object",
|
|
418
|
+
"properties": {
|
|
419
|
+
"source": {
|
|
420
|
+
"type": "string",
|
|
421
|
+
"const": "store"
|
|
422
|
+
},
|
|
423
|
+
"provider": {
|
|
424
|
+
"type": "string",
|
|
425
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
426
|
+
},
|
|
427
|
+
"id": {
|
|
428
|
+
"type": "string",
|
|
429
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"required": [
|
|
433
|
+
"source",
|
|
434
|
+
"provider",
|
|
435
|
+
"id"
|
|
436
|
+
],
|
|
437
|
+
"additionalProperties": false
|
|
438
|
+
},
|
|
423
439
|
{
|
|
424
440
|
"type": "object",
|
|
425
441
|
"properties": {
|
|
@@ -504,6 +520,29 @@
|
|
|
504
520
|
],
|
|
505
521
|
"additionalProperties": false
|
|
506
522
|
},
|
|
523
|
+
{
|
|
524
|
+
"type": "object",
|
|
525
|
+
"properties": {
|
|
526
|
+
"source": {
|
|
527
|
+
"type": "string",
|
|
528
|
+
"const": "store"
|
|
529
|
+
},
|
|
530
|
+
"provider": {
|
|
531
|
+
"type": "string",
|
|
532
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
533
|
+
},
|
|
534
|
+
"id": {
|
|
535
|
+
"type": "string",
|
|
536
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
"required": [
|
|
540
|
+
"source",
|
|
541
|
+
"provider",
|
|
542
|
+
"id"
|
|
543
|
+
],
|
|
544
|
+
"additionalProperties": false
|
|
545
|
+
},
|
|
507
546
|
{
|
|
508
547
|
"type": "object",
|
|
509
548
|
"properties": {
|
|
@@ -664,6 +703,29 @@
|
|
|
664
703
|
],
|
|
665
704
|
"additionalProperties": false
|
|
666
705
|
},
|
|
706
|
+
{
|
|
707
|
+
"type": "object",
|
|
708
|
+
"properties": {
|
|
709
|
+
"source": {
|
|
710
|
+
"type": "string",
|
|
711
|
+
"const": "store"
|
|
712
|
+
},
|
|
713
|
+
"provider": {
|
|
714
|
+
"type": "string",
|
|
715
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
716
|
+
},
|
|
717
|
+
"id": {
|
|
718
|
+
"type": "string",
|
|
719
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
720
|
+
}
|
|
721
|
+
},
|
|
722
|
+
"required": [
|
|
723
|
+
"source",
|
|
724
|
+
"provider",
|
|
725
|
+
"id"
|
|
726
|
+
],
|
|
727
|
+
"additionalProperties": false
|
|
728
|
+
},
|
|
667
729
|
{
|
|
668
730
|
"type": "object",
|
|
669
731
|
"properties": {
|
|
@@ -742,6 +804,29 @@
|
|
|
742
804
|
],
|
|
743
805
|
"additionalProperties": false
|
|
744
806
|
},
|
|
807
|
+
{
|
|
808
|
+
"type": "object",
|
|
809
|
+
"properties": {
|
|
810
|
+
"source": {
|
|
811
|
+
"type": "string",
|
|
812
|
+
"const": "store"
|
|
813
|
+
},
|
|
814
|
+
"provider": {
|
|
815
|
+
"type": "string",
|
|
816
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
817
|
+
},
|
|
818
|
+
"id": {
|
|
819
|
+
"type": "string",
|
|
820
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
821
|
+
}
|
|
822
|
+
},
|
|
823
|
+
"required": [
|
|
824
|
+
"source",
|
|
825
|
+
"provider",
|
|
826
|
+
"id"
|
|
827
|
+
],
|
|
828
|
+
"additionalProperties": false
|
|
829
|
+
},
|
|
745
830
|
{
|
|
746
831
|
"type": "object",
|
|
747
832
|
"properties": {
|
|
@@ -820,6 +905,29 @@
|
|
|
820
905
|
],
|
|
821
906
|
"additionalProperties": false
|
|
822
907
|
},
|
|
908
|
+
{
|
|
909
|
+
"type": "object",
|
|
910
|
+
"properties": {
|
|
911
|
+
"source": {
|
|
912
|
+
"type": "string",
|
|
913
|
+
"const": "store"
|
|
914
|
+
},
|
|
915
|
+
"provider": {
|
|
916
|
+
"type": "string",
|
|
917
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
918
|
+
},
|
|
919
|
+
"id": {
|
|
920
|
+
"type": "string",
|
|
921
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
922
|
+
}
|
|
923
|
+
},
|
|
924
|
+
"required": [
|
|
925
|
+
"source",
|
|
926
|
+
"provider",
|
|
927
|
+
"id"
|
|
928
|
+
],
|
|
929
|
+
"additionalProperties": false
|
|
930
|
+
},
|
|
823
931
|
{
|
|
824
932
|
"type": "object",
|
|
825
933
|
"properties": {
|
|
@@ -1540,13 +1648,6 @@
|
|
|
1540
1648
|
"exclusiveMinimum": 0,
|
|
1541
1649
|
"maximum": 9007199254740991
|
|
1542
1650
|
},
|
|
1543
|
-
"render": {
|
|
1544
|
-
"type": "string",
|
|
1545
|
-
"enum": [
|
|
1546
|
-
"text",
|
|
1547
|
-
"rich"
|
|
1548
|
-
]
|
|
1549
|
-
},
|
|
1550
1651
|
"toolProgress": {
|
|
1551
1652
|
"type": "boolean"
|
|
1552
1653
|
},
|
|
@@ -1671,9 +1772,6 @@
|
|
|
1671
1772
|
"relay"
|
|
1672
1773
|
]
|
|
1673
1774
|
},
|
|
1674
|
-
"enterpriseOrgInstall": {
|
|
1675
|
-
"type": "boolean"
|
|
1676
|
-
},
|
|
1677
1775
|
"relay": {
|
|
1678
1776
|
"type": "object",
|
|
1679
1777
|
"properties": {
|
|
@@ -1710,6 +1808,29 @@
|
|
|
1710
1808
|
],
|
|
1711
1809
|
"additionalProperties": false
|
|
1712
1810
|
},
|
|
1811
|
+
{
|
|
1812
|
+
"type": "object",
|
|
1813
|
+
"properties": {
|
|
1814
|
+
"source": {
|
|
1815
|
+
"type": "string",
|
|
1816
|
+
"const": "store"
|
|
1817
|
+
},
|
|
1818
|
+
"provider": {
|
|
1819
|
+
"type": "string",
|
|
1820
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
1821
|
+
},
|
|
1822
|
+
"id": {
|
|
1823
|
+
"type": "string",
|
|
1824
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
1825
|
+
}
|
|
1826
|
+
},
|
|
1827
|
+
"required": [
|
|
1828
|
+
"source",
|
|
1829
|
+
"provider",
|
|
1830
|
+
"id"
|
|
1831
|
+
],
|
|
1832
|
+
"additionalProperties": false
|
|
1833
|
+
},
|
|
1713
1834
|
{
|
|
1714
1835
|
"type": "object",
|
|
1715
1836
|
"properties": {
|
|
@@ -1794,6 +1915,29 @@
|
|
|
1794
1915
|
],
|
|
1795
1916
|
"additionalProperties": false
|
|
1796
1917
|
},
|
|
1918
|
+
{
|
|
1919
|
+
"type": "object",
|
|
1920
|
+
"properties": {
|
|
1921
|
+
"source": {
|
|
1922
|
+
"type": "string",
|
|
1923
|
+
"const": "store"
|
|
1924
|
+
},
|
|
1925
|
+
"provider": {
|
|
1926
|
+
"type": "string",
|
|
1927
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
1928
|
+
},
|
|
1929
|
+
"id": {
|
|
1930
|
+
"type": "string",
|
|
1931
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
1932
|
+
}
|
|
1933
|
+
},
|
|
1934
|
+
"required": [
|
|
1935
|
+
"source",
|
|
1936
|
+
"provider",
|
|
1937
|
+
"id"
|
|
1938
|
+
],
|
|
1939
|
+
"additionalProperties": false
|
|
1940
|
+
},
|
|
1797
1941
|
{
|
|
1798
1942
|
"type": "object",
|
|
1799
1943
|
"properties": {
|
|
@@ -1953,6 +2097,29 @@
|
|
|
1953
2097
|
],
|
|
1954
2098
|
"additionalProperties": false
|
|
1955
2099
|
},
|
|
2100
|
+
{
|
|
2101
|
+
"type": "object",
|
|
2102
|
+
"properties": {
|
|
2103
|
+
"source": {
|
|
2104
|
+
"type": "string",
|
|
2105
|
+
"const": "store"
|
|
2106
|
+
},
|
|
2107
|
+
"provider": {
|
|
2108
|
+
"type": "string",
|
|
2109
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
2110
|
+
},
|
|
2111
|
+
"id": {
|
|
2112
|
+
"type": "string",
|
|
2113
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
2114
|
+
}
|
|
2115
|
+
},
|
|
2116
|
+
"required": [
|
|
2117
|
+
"source",
|
|
2118
|
+
"provider",
|
|
2119
|
+
"id"
|
|
2120
|
+
],
|
|
2121
|
+
"additionalProperties": false
|
|
2122
|
+
},
|
|
1956
2123
|
{
|
|
1957
2124
|
"type": "object",
|
|
1958
2125
|
"properties": {
|
|
@@ -2031,6 +2198,29 @@
|
|
|
2031
2198
|
],
|
|
2032
2199
|
"additionalProperties": false
|
|
2033
2200
|
},
|
|
2201
|
+
{
|
|
2202
|
+
"type": "object",
|
|
2203
|
+
"properties": {
|
|
2204
|
+
"source": {
|
|
2205
|
+
"type": "string",
|
|
2206
|
+
"const": "store"
|
|
2207
|
+
},
|
|
2208
|
+
"provider": {
|
|
2209
|
+
"type": "string",
|
|
2210
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
2211
|
+
},
|
|
2212
|
+
"id": {
|
|
2213
|
+
"type": "string",
|
|
2214
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
2215
|
+
}
|
|
2216
|
+
},
|
|
2217
|
+
"required": [
|
|
2218
|
+
"source",
|
|
2219
|
+
"provider",
|
|
2220
|
+
"id"
|
|
2221
|
+
],
|
|
2222
|
+
"additionalProperties": false
|
|
2223
|
+
},
|
|
2034
2224
|
{
|
|
2035
2225
|
"type": "object",
|
|
2036
2226
|
"properties": {
|
|
@@ -2109,6 +2299,29 @@
|
|
|
2109
2299
|
],
|
|
2110
2300
|
"additionalProperties": false
|
|
2111
2301
|
},
|
|
2302
|
+
{
|
|
2303
|
+
"type": "object",
|
|
2304
|
+
"properties": {
|
|
2305
|
+
"source": {
|
|
2306
|
+
"type": "string",
|
|
2307
|
+
"const": "store"
|
|
2308
|
+
},
|
|
2309
|
+
"provider": {
|
|
2310
|
+
"type": "string",
|
|
2311
|
+
"pattern": "^[a-z][a-z0-9_-]{0,63}$"
|
|
2312
|
+
},
|
|
2313
|
+
"id": {
|
|
2314
|
+
"type": "string",
|
|
2315
|
+
"pattern": "^[A-Z][A-Z0-9_]{0,127}$"
|
|
2316
|
+
}
|
|
2317
|
+
},
|
|
2318
|
+
"required": [
|
|
2319
|
+
"source",
|
|
2320
|
+
"provider",
|
|
2321
|
+
"id"
|
|
2322
|
+
],
|
|
2323
|
+
"additionalProperties": false
|
|
2324
|
+
},
|
|
2112
2325
|
{
|
|
2113
2326
|
"type": "object",
|
|
2114
2327
|
"properties": {
|
|
@@ -2618,10 +2831,6 @@
|
|
|
2618
2831
|
"label": "Slack",
|
|
2619
2832
|
"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."
|
|
2620
2833
|
},
|
|
2621
|
-
"enterpriseOrgInstall": {
|
|
2622
|
-
"label": "Slack Enterprise Grid Org Install",
|
|
2623
|
-
"help": "Enable only for an Enterprise Grid org-wide bot installation. OpenClaw verifies the token with Slack auth.test at startup; DMs must be disabled or use dmPolicy=\"open\" with allowFrom=[\"*\"]."
|
|
2624
|
-
},
|
|
2625
2834
|
"postAs": {
|
|
2626
2835
|
"label": "Slack Identity",
|
|
2627
2836
|
"help": "Select \"bot\" (default) for the classic Slack app/bot identity or \"user\" to post as the authorizing human through a user token while the app carries event transport."
|
|
@@ -2676,11 +2885,11 @@
|
|
|
2676
2885
|
},
|
|
2677
2886
|
"streaming": {
|
|
2678
2887
|
"label": "Slack Streaming Mode",
|
|
2679
|
-
"help": "Unified Slack stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". Legacy boolean/streamMode keys are auto-mapped."
|
|
2888
|
+
"help": "Unified Slack stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\" (default). Legacy boolean/streamMode keys are auto-mapped."
|
|
2680
2889
|
},
|
|
2681
2890
|
"streaming.mode": {
|
|
2682
2891
|
"label": "Slack Streaming Mode",
|
|
2683
|
-
"help": "Canonical Slack preview mode: \"off\" | \"partial\" | \"block\" | \"progress\"."
|
|
2892
|
+
"help": "Canonical Slack preview mode: \"off\" | \"partial\" | \"block\" | \"progress\" (default)."
|
|
2684
2893
|
},
|
|
2685
2894
|
"streaming.chunkMode": {
|
|
2686
2895
|
"label": "Slack Chunk Mode",
|
|
@@ -2704,15 +2913,11 @@
|
|
|
2704
2913
|
},
|
|
2705
2914
|
"streaming.preview.commandText": {
|
|
2706
2915
|
"label": "Slack Draft Command Text",
|
|
2707
|
-
"help": "Command/exec detail in preview tool-progress lines: \"
|
|
2708
|
-
},
|
|
2709
|
-
"streaming.progress.render": {
|
|
2710
|
-
"label": "Slack Progress Renderer",
|
|
2711
|
-
"help": "Progress draft renderer: \"text\" uses one portable text body; \"rich\" renders structured Slack Block Kit fields with the same text fallback."
|
|
2916
|
+
"help": "Command/exec detail in preview tool-progress lines: \"status\" is the safe default; \"raw\" opts into command text."
|
|
2712
2917
|
},
|
|
2713
2918
|
"streaming.progress.nativeTaskCards": {
|
|
2714
2919
|
"label": "Slack Native Progress Task Cards",
|
|
2715
|
-
"help": "
|
|
2920
|
+
"help": "Slack native task-card progress updates when channels.slack.streaming.mode=\"progress\" and streaming.nativeTransport is enabled. Set false to fall back to the Block Kit progress card. Default: true."
|
|
2716
2921
|
},
|
|
2717
2922
|
"streaming.progress.label": {
|
|
2718
2923
|
"label": "Slack Progress Label",
|
|
@@ -2736,7 +2941,7 @@
|
|
|
2736
2941
|
},
|
|
2737
2942
|
"streaming.progress.commandText": {
|
|
2738
2943
|
"label": "Slack Progress Command Text",
|
|
2739
|
-
"help": "Command/exec detail in progress draft lines: \"
|
|
2944
|
+
"help": "Command/exec detail in progress draft lines: \"status\" is the safe default; \"raw\" opts into command text."
|
|
2740
2945
|
},
|
|
2741
2946
|
"allowBots": {
|
|
2742
2947
|
"label": "Slack Allow Bot Messages",
|
|
@@ -2796,7 +3001,7 @@
|
|
|
2796
3001
|
},
|
|
2797
3002
|
"execApprovals": {
|
|
2798
3003
|
"label": "Slack Exec Approvals",
|
|
2799
|
-
"help": "Slack-native exec approval routing and approver authorization. When unset, OpenClaw auto-enables DM-first native approvals if approvers can be resolved for this
|
|
3004
|
+
"help": "Slack-native exec approval routing and approver authorization. When unset, OpenClaw auto-enables DM-first native approvals if approvers can be resolved for this Slack account."
|
|
2800
3005
|
},
|
|
2801
3006
|
"presenceEvents": {
|
|
2802
3007
|
"label": "Slack Presence Events",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/slack",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.8.1-beta.2",
|
|
4
4
|
"description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"get-east-asian-width": "1.6.0",
|
|
16
16
|
"p-map": "7.0.6",
|
|
17
17
|
"typebox": "1.3.6",
|
|
18
|
-
"undici": "7.
|
|
18
|
+
"undici": "7.29.0",
|
|
19
19
|
"ws": "8.21.1",
|
|
20
20
|
"zod": "4.4.3"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"openclaw": ">=2026.
|
|
23
|
+
"openclaw": ">=2026.8.1-beta.2"
|
|
24
24
|
},
|
|
25
25
|
"peerDependenciesMeta": {
|
|
26
26
|
"openclaw": {
|
|
@@ -135,7 +135,10 @@
|
|
|
135
135
|
"cli": {
|
|
136
136
|
"flags": "--use-env",
|
|
137
137
|
"description": "Use Slack environment credentials"
|
|
138
|
-
}
|
|
138
|
+
},
|
|
139
|
+
"envVars": [
|
|
140
|
+
"SLACK_BOT_TOKEN"
|
|
141
|
+
]
|
|
139
142
|
}
|
|
140
143
|
]
|
|
141
144
|
}
|
|
@@ -147,13 +150,10 @@
|
|
|
147
150
|
"allowInvalidConfigRecovery": true
|
|
148
151
|
},
|
|
149
152
|
"compat": {
|
|
150
|
-
"pluginApi": ">=2026.
|
|
151
|
-
},
|
|
152
|
-
"startup": {
|
|
153
|
-
"deferConfiguredChannelFullLoadUntilAfterListen": true
|
|
153
|
+
"pluginApi": ">=2026.8.1-beta.2"
|
|
154
154
|
},
|
|
155
155
|
"build": {
|
|
156
|
-
"openclawVersion": "2026.
|
|
156
|
+
"openclawVersion": "2026.8.1-beta.2",
|
|
157
157
|
"bundledDist": false
|
|
158
158
|
},
|
|
159
159
|
"release": {
|
package/skills/slack/SKILL.md
CHANGED
|
@@ -1,78 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slack
|
|
3
|
-
description: "Slack
|
|
3
|
+
description: "Slack messaging workflows through OpenClaw's message tool."
|
|
4
4
|
metadata: { "openclaw": { "emoji": "💬", "requires": { "config": ["channels.slack"] } } }
|
|
5
|
+
allowed-tools: ["message"]
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Slack
|
|
8
9
|
|
|
9
|
-
Use the `
|
|
10
|
+
Use the `message` tool with `channel: "slack"`. The tool schema lists the actions enabled for the current Slack account; do not assume an action that is not present.
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## Workflow
|
|
12
13
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
14
|
+
- Prefer stable Slack IDs from context. Sends outside the current conversation use `channel:<id>` or `user:<id>` targets.
|
|
15
|
+
- Keep replies in the current thread unless the user asks for a top-level post. For another thread, pass its Slack timestamp as `threadId`; use the same timestamp as `messageId` for message-specific actions.
|
|
16
|
+
- Before editing, deleting, pinning, or reacting to an ambiguous message, read the conversation and resolve its exact ID.
|
|
17
|
+
- When multiple Slack accounts are configured, pass `accountId` rather than guessing.
|
|
18
|
+
- Confirm destructive deletes when the target or intent is unclear.
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
```json
|
|
21
|
-
{ "action": "sendMessage", "to": "channel:C123", "content": "Hello" }
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
```json
|
|
25
|
-
{ "action": "readMessages", "channelId": "C123", "limit": 20 }
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{
|
|
30
|
-
"action": "react",
|
|
31
|
-
"channelId": "C123",
|
|
32
|
-
"messageId": "1712023032.1234",
|
|
33
|
-
"emoji": ":white_check_mark:"
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{ "action": "reactions", "channelId": "C123", "messageId": "1712023032.1234" }
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"action": "editMessage",
|
|
44
|
-
"channelId": "C123",
|
|
45
|
-
"messageId": "1712023032.1234",
|
|
46
|
-
"content": "Updated text"
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
```json
|
|
51
|
-
{ "action": "deleteMessage", "channelId": "C123", "messageId": "1712023032.1234" }
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{ "action": "pinMessage", "channelId": "C123", "messageId": "1712023032.1234" }
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{ "action": "unpinMessage", "channelId": "C123", "messageId": "1712023032.1234" }
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{ "action": "listPins", "channelId": "C123" }
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
```json
|
|
67
|
-
{ "action": "memberInfo", "userId": "U123" }
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
```json
|
|
71
|
-
{ "action": "emojiList" }
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Safety
|
|
75
|
-
|
|
76
|
-
- Confirm destructive deletes when context is unclear.
|
|
77
|
-
- Keep outbound messages short; avoid Markdown tables.
|
|
78
|
-
- Prefer thread/message IDs over fuzzy channel names.
|
|
20
|
+
Slack formatting, mentions, tables, charts, and interactive controls are described automatically by the current `message` tool hints. Follow those hints instead of maintaining a second action or formatting catalog here.
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, h as unpinSlackMessage, i as getSlackMemberInfo, l as reactSlackMessage, m as sendSlackMessage, n as downloadSlackFile, o as listSlackPins, p as resolveSlackConversationName, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-D3NuJvva.js";
|
|
2
|
-
export { deleteSlackMessage, downloadSlackFile, editSlackMessage, getSlackMemberInfo, listSlackEmojis, listSlackPins, listSlackReactions, pinSlackMessage, reactSlackMessage, readSlackMessages, removeOwnSlackReactions, removeSlackReaction, resolveSlackConversationName, sendSlackMessage, unpinSlackMessage };
|