@openclaw/slack 2026.7.2-beta.7 → 2026.8.1-beta.3

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.
Files changed (87) hide show
  1. package/dist/{account-inspect-DEKpg9Ip.js → account-inspect-YJvFBbCR.js} +1 -1
  2. package/dist/account-inspect-api.js +1 -1
  3. package/dist/{accounts-CHAeNZOX.js → accounts-BlzxuYle.js} +7 -3
  4. package/dist/{accounts.runtime-BHD4Ma2R.js → accounts.runtime-CbabBL8x.js} +1 -1
  5. package/dist/{action-runtime-DfuYoMjG.js → action-runtime-D6jg2CQd.js} +193 -125
  6. package/dist/action-runtime.runtime-JtoOK9l5.js +2 -0
  7. package/dist/{actions-D3NuJvva.js → actions-DFk0ANVB.js} +116 -235
  8. package/dist/actions.runtime-CYLsYRai.js +2 -0
  9. package/dist/api.js +17 -17
  10. package/dist/{approval-handler.runtime-BA05P0QT.js → approval-handler.runtime-BNvAoKdK.js} +53 -14
  11. package/dist/{channel-B9fVdW3s.js → channel-CA5w7qDF.js} +209 -110
  12. package/dist/channel-config-api.js +1 -1
  13. package/dist/channel-plugin-api.js +1 -1
  14. package/dist/{channel-type-DXyos1d2.js → channel-type-CZWv55Wu.js} +9 -12
  15. package/dist/{config-adapter-CxBQH8fq.js → channel.setup-CpyYsEXH.js} +83 -25
  16. package/dist/{config-schema-SgZT6nXV.js → config-schema-CN3XZRX5.js} +27 -17
  17. package/dist/conversation-binding-route-DFVLUdYF.js +115 -0
  18. package/dist/{directory-config-CnCIAktf.js → directory-config-BGYyuzWh.js} +3 -3
  19. package/dist/directory-contract-api.js +1 -1
  20. package/dist/{directory-live-DKunWh3A.js → directory-live-DjUJQLbq.js} +13 -22
  21. package/dist/{doctor-contract-CsGH1Dfc.js → doctor-contract-BAy7-EUQ.js} +30 -3
  22. package/dist/doctor-contract-api.js +1 -1
  23. package/dist/{group-policy-NQZti9t-.js → group-policy-DyfB_ZIE.js} +282 -183
  24. package/dist/index.js +4 -1
  25. package/dist/{message-tool-api-DkhFpMoy.js → message-tool-api-CqMr5Rmc.js} +14 -3
  26. package/dist/message-tool-api.js +1 -1
  27. package/dist/{monitor-CmKz0wtI.js → monitor-Chrecrb9.js} +3 -3
  28. package/dist/{outbound-adapter-BkuMp2Vs.js → outbound-adapter-DuRqAQXK.js} +35 -23
  29. package/dist/{pipeline.runtime-DgtmuYCP.js → pipeline.runtime-Bbfd5VFW.js} +1386 -929
  30. package/dist/{policy-PRysPn23.js → policy-BKXSxrIS.js} +18 -14
  31. package/dist/{probe-CgDsSops.js → probe-BVA65leh.js} +38 -18
  32. package/dist/{provider-DmRizMZt.js → provider-CUUiwsg2.js} +3454 -2601
  33. package/dist/{relay-source-Blxj8xb4.js → relay-source-mhpMMRG-.js} +11 -21
  34. package/dist/{replies-4s_Vq_z9.js → replies-SnWyXcsL.js} +84 -27
  35. package/dist/{resolve-channels-yEqmM-3I.js → resolve-channels-BSpqC8jU.js} +39 -12
  36. package/dist/{resolve-users-BOrt5K-5.js → resolve-users-Dvz9pDe0.js} +28 -5
  37. package/dist/{runtime-api-QMb-Q5Ko.js → runtime-api-DBi7xc_g.js} +3 -3
  38. package/dist/runtime-api.js +11 -11
  39. package/dist/{scopes-BJSrkAp6.js → scopes-BSk4GZvZ.js} +1 -1
  40. package/dist/security-contract-api.js +1 -1
  41. package/dist/{send-DsLeZpST.js → send-CtnOxKCc.js} +249 -163
  42. package/dist/{send.runtime-gUdK6V3h.js → send.runtime-kYctMHSd.js} +1 -1
  43. package/dist/setup-entry.js +1 -4
  44. package/dist/setup-plugin-api.js +1 -1
  45. package/dist/{setup-surface-BeNzrMrJ.js → setup-surface-BPFfp6So.js} +6 -6
  46. package/dist/{shared-DgIN3Dcr.js → shared-DJBaslN7.js} +45 -45
  47. package/dist/{block-text-DkHaoGem.js → slack-client-kind-BXyOOICI.js} +17 -2
  48. package/dist/{slash-dispatch.runtime-zPkyl7dB.js → slash-dispatch.runtime-Cf2FTrnf.js} +2 -2
  49. package/dist/{streaming-compat-3_X-21wW.js → streaming-compat-B-e0mqM0.js} +3 -8
  50. package/dist/{target-parsing-N6lHogYZ.js → target-parsing-BnMD2ZqZ.js} +40 -2
  51. package/dist/{targets-KmjP2E8s.js → targets-Cx5W_n3W.js} +1 -1
  52. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  53. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +1 -1
  54. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  55. package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +1 -1
  56. package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +1 -1
  57. package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +2 -2
  58. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  59. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +1 -1
  60. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  61. package/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
  62. package/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
  63. package/node_modules/undici/lib/core/request.js +12 -1
  64. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
  65. package/node_modules/undici/lib/handler/cache-handler.js +246 -64
  66. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
  67. package/node_modules/undici/lib/handler/retry-handler.js +24 -0
  68. package/node_modules/undici/lib/interceptor/cache.js +159 -52
  69. package/node_modules/undici/lib/util/cache.js +324 -62
  70. package/node_modules/undici/lib/util/date.js +23 -6
  71. package/node_modules/undici/lib/web/cookies/util.js +79 -9
  72. package/node_modules/undici/package.json +1 -1
  73. package/openclaw.plugin.json +280 -33
  74. package/package.json +9 -11
  75. package/skills/slack/SKILL.md +10 -68
  76. package/dist/account-reply-mode-DrUXogvO.js +0 -14
  77. package/dist/action-runtime.runtime-DQErZYpz.js +0 -2
  78. package/dist/actions.runtime-BIRU_G4M.js +0 -2
  79. package/dist/channel.setup-CLP5oTvh.js +0 -56
  80. package/dist/preflight-audio.runtime-D5Bgags0.js +0 -3
  81. package/dist/slash-plugin-commands.runtime-Dosfcx3X.js +0 -2
  82. package/node_modules/p-map/index.d.ts +0 -155
  83. package/node_modules/p-map/index.js +0 -285
  84. package/node_modules/p-map/license +0 -9
  85. package/node_modules/p-map/package.json +0 -57
  86. package/node_modules/p-map/readme.md +0 -190
  87. package/dist/{security-audit-DR097212.js → security-audit-B_yKr7MW.js} +1 -1
@@ -105,7 +105,7 @@ function validateCookiePath (path) {
105
105
 
106
106
  if (
107
107
  code < 0x20 || // exclude CTLs (0-31)
108
- code === 0x7F || // DEL
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
- * I have no idea why these values aren't allowed to be honest,
118
- * but Deno tests these. - Khafra
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
- if (
123
- domain.startsWith('-') ||
124
- domain.endsWith('.') ||
125
- domain.endsWith('-')
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
- out.push(`${key.trim()}=${value.join('=')}`)
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('; ')
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "undici",
3
- "version": "7.28.0",
3
+ "version": "7.29.0",
4
4
  "description": "An HTTP/1.1 client, written from scratch for Node.js",
5
5
  "homepage": "https://undici.nodejs.org",
6
6
  "bugs": {
@@ -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
  },
@@ -271,6 +267,13 @@
271
267
  "narration": {
272
268
  "type": "boolean"
273
269
  },
270
+ "style": {
271
+ "type": "string",
272
+ "enum": [
273
+ "card",
274
+ "compact"
275
+ ]
276
+ },
274
277
  "nativeTaskCards": {
275
278
  "type": "boolean"
276
279
  }
@@ -381,9 +384,6 @@
381
384
  "relay"
382
385
  ]
383
386
  },
384
- "enterpriseOrgInstall": {
385
- "type": "boolean"
386
- },
387
387
  "relay": {
388
388
  "type": "object",
389
389
  "properties": {
@@ -420,6 +420,29 @@
420
420
  ],
421
421
  "additionalProperties": false
422
422
  },
423
+ {
424
+ "type": "object",
425
+ "properties": {
426
+ "source": {
427
+ "type": "string",
428
+ "const": "store"
429
+ },
430
+ "provider": {
431
+ "type": "string",
432
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
433
+ },
434
+ "id": {
435
+ "type": "string",
436
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
437
+ }
438
+ },
439
+ "required": [
440
+ "source",
441
+ "provider",
442
+ "id"
443
+ ],
444
+ "additionalProperties": false
445
+ },
423
446
  {
424
447
  "type": "object",
425
448
  "properties": {
@@ -504,6 +527,29 @@
504
527
  ],
505
528
  "additionalProperties": false
506
529
  },
530
+ {
531
+ "type": "object",
532
+ "properties": {
533
+ "source": {
534
+ "type": "string",
535
+ "const": "store"
536
+ },
537
+ "provider": {
538
+ "type": "string",
539
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
540
+ },
541
+ "id": {
542
+ "type": "string",
543
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
544
+ }
545
+ },
546
+ "required": [
547
+ "source",
548
+ "provider",
549
+ "id"
550
+ ],
551
+ "additionalProperties": false
552
+ },
507
553
  {
508
554
  "type": "object",
509
555
  "properties": {
@@ -664,6 +710,29 @@
664
710
  ],
665
711
  "additionalProperties": false
666
712
  },
713
+ {
714
+ "type": "object",
715
+ "properties": {
716
+ "source": {
717
+ "type": "string",
718
+ "const": "store"
719
+ },
720
+ "provider": {
721
+ "type": "string",
722
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
723
+ },
724
+ "id": {
725
+ "type": "string",
726
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
727
+ }
728
+ },
729
+ "required": [
730
+ "source",
731
+ "provider",
732
+ "id"
733
+ ],
734
+ "additionalProperties": false
735
+ },
667
736
  {
668
737
  "type": "object",
669
738
  "properties": {
@@ -742,6 +811,29 @@
742
811
  ],
743
812
  "additionalProperties": false
744
813
  },
814
+ {
815
+ "type": "object",
816
+ "properties": {
817
+ "source": {
818
+ "type": "string",
819
+ "const": "store"
820
+ },
821
+ "provider": {
822
+ "type": "string",
823
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
824
+ },
825
+ "id": {
826
+ "type": "string",
827
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
828
+ }
829
+ },
830
+ "required": [
831
+ "source",
832
+ "provider",
833
+ "id"
834
+ ],
835
+ "additionalProperties": false
836
+ },
745
837
  {
746
838
  "type": "object",
747
839
  "properties": {
@@ -820,6 +912,29 @@
820
912
  ],
821
913
  "additionalProperties": false
822
914
  },
915
+ {
916
+ "type": "object",
917
+ "properties": {
918
+ "source": {
919
+ "type": "string",
920
+ "const": "store"
921
+ },
922
+ "provider": {
923
+ "type": "string",
924
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
925
+ },
926
+ "id": {
927
+ "type": "string",
928
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
929
+ }
930
+ },
931
+ "required": [
932
+ "source",
933
+ "provider",
934
+ "id"
935
+ ],
936
+ "additionalProperties": false
937
+ },
823
938
  {
824
939
  "type": "object",
825
940
  "properties": {
@@ -1056,6 +1171,10 @@
1056
1171
  "auto",
1057
1172
  "on"
1058
1173
  ]
1174
+ },
1175
+ "prompt": {
1176
+ "type": "string",
1177
+ "maxLength": 20000
1059
1178
  }
1060
1179
  },
1061
1180
  "additionalProperties": false
@@ -1291,6 +1410,10 @@
1291
1410
  "auto",
1292
1411
  "on"
1293
1412
  ]
1413
+ },
1414
+ "prompt": {
1415
+ "type": "string",
1416
+ "maxLength": 20000
1294
1417
  }
1295
1418
  },
1296
1419
  "additionalProperties": false
@@ -1540,13 +1663,6 @@
1540
1663
  "exclusiveMinimum": 0,
1541
1664
  "maximum": 9007199254740991
1542
1665
  },
1543
- "render": {
1544
- "type": "string",
1545
- "enum": [
1546
- "text",
1547
- "rich"
1548
- ]
1549
- },
1550
1666
  "toolProgress": {
1551
1667
  "type": "boolean"
1552
1668
  },
@@ -1563,6 +1679,13 @@
1563
1679
  "narration": {
1564
1680
  "type": "boolean"
1565
1681
  },
1682
+ "style": {
1683
+ "type": "string",
1684
+ "enum": [
1685
+ "card",
1686
+ "compact"
1687
+ ]
1688
+ },
1566
1689
  "nativeTaskCards": {
1567
1690
  "type": "boolean"
1568
1691
  }
@@ -1671,9 +1794,6 @@
1671
1794
  "relay"
1672
1795
  ]
1673
1796
  },
1674
- "enterpriseOrgInstall": {
1675
- "type": "boolean"
1676
- },
1677
1797
  "relay": {
1678
1798
  "type": "object",
1679
1799
  "properties": {
@@ -1710,6 +1830,29 @@
1710
1830
  ],
1711
1831
  "additionalProperties": false
1712
1832
  },
1833
+ {
1834
+ "type": "object",
1835
+ "properties": {
1836
+ "source": {
1837
+ "type": "string",
1838
+ "const": "store"
1839
+ },
1840
+ "provider": {
1841
+ "type": "string",
1842
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1843
+ },
1844
+ "id": {
1845
+ "type": "string",
1846
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1847
+ }
1848
+ },
1849
+ "required": [
1850
+ "source",
1851
+ "provider",
1852
+ "id"
1853
+ ],
1854
+ "additionalProperties": false
1855
+ },
1713
1856
  {
1714
1857
  "type": "object",
1715
1858
  "properties": {
@@ -1794,6 +1937,29 @@
1794
1937
  ],
1795
1938
  "additionalProperties": false
1796
1939
  },
1940
+ {
1941
+ "type": "object",
1942
+ "properties": {
1943
+ "source": {
1944
+ "type": "string",
1945
+ "const": "store"
1946
+ },
1947
+ "provider": {
1948
+ "type": "string",
1949
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1950
+ },
1951
+ "id": {
1952
+ "type": "string",
1953
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1954
+ }
1955
+ },
1956
+ "required": [
1957
+ "source",
1958
+ "provider",
1959
+ "id"
1960
+ ],
1961
+ "additionalProperties": false
1962
+ },
1797
1963
  {
1798
1964
  "type": "object",
1799
1965
  "properties": {
@@ -1953,6 +2119,29 @@
1953
2119
  ],
1954
2120
  "additionalProperties": false
1955
2121
  },
2122
+ {
2123
+ "type": "object",
2124
+ "properties": {
2125
+ "source": {
2126
+ "type": "string",
2127
+ "const": "store"
2128
+ },
2129
+ "provider": {
2130
+ "type": "string",
2131
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
2132
+ },
2133
+ "id": {
2134
+ "type": "string",
2135
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
2136
+ }
2137
+ },
2138
+ "required": [
2139
+ "source",
2140
+ "provider",
2141
+ "id"
2142
+ ],
2143
+ "additionalProperties": false
2144
+ },
1956
2145
  {
1957
2146
  "type": "object",
1958
2147
  "properties": {
@@ -2031,6 +2220,29 @@
2031
2220
  ],
2032
2221
  "additionalProperties": false
2033
2222
  },
2223
+ {
2224
+ "type": "object",
2225
+ "properties": {
2226
+ "source": {
2227
+ "type": "string",
2228
+ "const": "store"
2229
+ },
2230
+ "provider": {
2231
+ "type": "string",
2232
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
2233
+ },
2234
+ "id": {
2235
+ "type": "string",
2236
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
2237
+ }
2238
+ },
2239
+ "required": [
2240
+ "source",
2241
+ "provider",
2242
+ "id"
2243
+ ],
2244
+ "additionalProperties": false
2245
+ },
2034
2246
  {
2035
2247
  "type": "object",
2036
2248
  "properties": {
@@ -2109,6 +2321,29 @@
2109
2321
  ],
2110
2322
  "additionalProperties": false
2111
2323
  },
2324
+ {
2325
+ "type": "object",
2326
+ "properties": {
2327
+ "source": {
2328
+ "type": "string",
2329
+ "const": "store"
2330
+ },
2331
+ "provider": {
2332
+ "type": "string",
2333
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
2334
+ },
2335
+ "id": {
2336
+ "type": "string",
2337
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
2338
+ }
2339
+ },
2340
+ "required": [
2341
+ "source",
2342
+ "provider",
2343
+ "id"
2344
+ ],
2345
+ "additionalProperties": false
2346
+ },
2112
2347
  {
2113
2348
  "type": "object",
2114
2349
  "properties": {
@@ -2345,6 +2580,10 @@
2345
2580
  "auto",
2346
2581
  "on"
2347
2582
  ]
2583
+ },
2584
+ "prompt": {
2585
+ "type": "string",
2586
+ "maxLength": 20000
2348
2587
  }
2349
2588
  },
2350
2589
  "additionalProperties": false
@@ -2580,6 +2819,10 @@
2580
2819
  "auto",
2581
2820
  "on"
2582
2821
  ]
2822
+ },
2823
+ "prompt": {
2824
+ "type": "string",
2825
+ "maxLength": 20000
2583
2826
  }
2584
2827
  },
2585
2828
  "additionalProperties": false
@@ -2618,10 +2861,6 @@
2618
2861
  "label": "Slack",
2619
2862
  "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
2863
  },
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
2864
  "postAs": {
2626
2865
  "label": "Slack Identity",
2627
2866
  "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 +2915,11 @@
2676
2915
  },
2677
2916
  "streaming": {
2678
2917
  "label": "Slack Streaming Mode",
2679
- "help": "Unified Slack stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". Legacy boolean/streamMode keys are auto-mapped."
2918
+ "help": "Unified Slack stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\" (default). Legacy boolean/streamMode keys are auto-mapped."
2680
2919
  },
2681
2920
  "streaming.mode": {
2682
2921
  "label": "Slack Streaming Mode",
2683
- "help": "Canonical Slack preview mode: \"off\" | \"partial\" | \"block\" | \"progress\"."
2922
+ "help": "Canonical Slack preview mode: \"off\" | \"partial\" | \"block\" | \"progress\" (default)."
2684
2923
  },
2685
2924
  "streaming.chunkMode": {
2686
2925
  "label": "Slack Chunk Mode",
@@ -2704,15 +2943,15 @@
2704
2943
  },
2705
2944
  "streaming.preview.commandText": {
2706
2945
  "label": "Slack Draft Command Text",
2707
- "help": "Command/exec detail in preview tool-progress lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
2946
+ "help": "Command/exec detail in preview tool-progress lines: \"status\" is the safe default; \"raw\" opts into command text."
2708
2947
  },
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."
2948
+ "streaming.progress.style": {
2949
+ "label": "Slack Progress Style",
2950
+ "help": "Slack progress presentation: \"card\" (default) uses structured task/session cards; \"compact\" keeps one editable text draft that the final answer replaces in place when Slack can safely edit it."
2712
2951
  },
2713
2952
  "streaming.progress.nativeTaskCards": {
2714
2953
  "label": "Slack Native Progress Task Cards",
2715
- "help": "Opt in to Slack native task-card progress updates when channels.slack.streaming.mode=\"progress\" and streaming.nativeTransport is enabled. Default: false."
2954
+ "help": "Slack native task-card progress updates when channels.slack.streaming.mode=\"progress\", progress.style=\"card\", and streaming.nativeTransport is enabled. Set false to fall back to the Block Kit progress card. Default: true."
2716
2955
  },
2717
2956
  "streaming.progress.label": {
2718
2957
  "label": "Slack Progress Label",
@@ -2736,7 +2975,7 @@
2736
2975
  },
2737
2976
  "streaming.progress.commandText": {
2738
2977
  "label": "Slack Progress Command Text",
2739
- "help": "Command/exec detail in progress draft lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
2978
+ "help": "Command/exec detail in progress draft lines: \"status\" is the safe default; \"raw\" opts into command text."
2740
2979
  },
2741
2980
  "allowBots": {
2742
2981
  "label": "Slack Allow Bot Messages",
@@ -2796,7 +3035,7 @@
2796
3035
  },
2797
3036
  "execApprovals": {
2798
3037
  "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 workspace account."
3038
+ "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
3039
  },
2801
3040
  "presenceEvents": {
2802
3041
  "label": "Slack Presence Events",
@@ -2806,10 +3045,18 @@
2806
3045
  "label": "Slack Presence Event Mode",
2807
3046
  "help": "\"off\" disables polling; \"auto\" covers DMs, MPIMs, and recent threads with up to 8 observed people; \"on\" also covers larger threads and top-level channels."
2808
3047
  },
3048
+ "presenceEvents.prompt": {
3049
+ "label": "Slack Presence Event Prompt",
3050
+ "help": "Replace the default greeting guidance appended after presence facts. Use an empty string to omit event-specific guidance and let workspace instructions such as AGENTS.md govern behavior. Maximum: 20,000 characters."
3051
+ },
2809
3052
  "channels.*.presenceEvents.mode": {
2810
3053
  "label": "Slack Channel Presence Event Mode",
2811
3054
  "help": "Override presence events for one Slack channel. Use \"on\" to include large threads or top-level channel sessions."
2812
3055
  },
3056
+ "channels.*.presenceEvents.prompt": {
3057
+ "label": "Slack Channel Presence Event Prompt",
3058
+ "help": "Override the account-level presence-event prompt for one Slack channel. Maximum: 20,000 characters."
3059
+ },
2813
3060
  "execApprovals.enabled": {
2814
3061
  "label": "Slack Exec Approvals Enabled",
2815
3062
  "help": "Controls Slack native exec approvals for this account: unset or \"auto\" enables DM-first native approvals when approvers can be resolved, true forces native approvals on, and false disables them."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.7.2-beta.7",
3
+ "version": "2026.8.1-beta.3",
4
4
  "description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,14 +13,13 @@
13
13
  "@slack/types": "3.0.0",
14
14
  "@slack/web-api": "8.0.0",
15
15
  "get-east-asian-width": "1.6.0",
16
- "p-map": "7.0.6",
17
16
  "typebox": "1.3.6",
18
- "undici": "7.28.0",
17
+ "undici": "7.29.0",
19
18
  "ws": "8.21.1",
20
19
  "zod": "4.4.3"
21
20
  },
22
21
  "peerDependencies": {
23
- "openclaw": ">=2026.7.2-beta.7"
22
+ "openclaw": ">=2026.8.1-beta.3"
24
23
  },
25
24
  "peerDependenciesMeta": {
26
25
  "openclaw": {
@@ -135,7 +134,10 @@
135
134
  "cli": {
136
135
  "flags": "--use-env",
137
136
  "description": "Use Slack environment credentials"
138
- }
137
+ },
138
+ "envVars": [
139
+ "SLACK_BOT_TOKEN"
140
+ ]
139
141
  }
140
142
  ]
141
143
  }
@@ -147,13 +149,10 @@
147
149
  "allowInvalidConfigRecovery": true
148
150
  },
149
151
  "compat": {
150
- "pluginApi": ">=2026.7.2-beta.7"
151
- },
152
- "startup": {
153
- "deferConfiguredChannelFullLoadUntilAfterListen": true
152
+ "pluginApi": ">=2026.8.1-beta.3"
154
153
  },
155
154
  "build": {
156
- "openclawVersion": "2026.7.2-beta.7",
155
+ "openclawVersion": "2026.8.1-beta.3",
157
156
  "bundledDist": false
158
157
  },
159
158
  "release": {
@@ -177,7 +176,6 @@
177
176
  "@slack/types",
178
177
  "@slack/web-api",
179
178
  "get-east-asian-width",
180
- "p-map",
181
179
  "typebox",
182
180
  "undici",
183
181
  "ws",