@openclaw/slack 2026.10.10-beta.5 → 2026.10.10

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 (136) hide show
  1. package/dist/.setup/{account-configured-zcR9TJJN.mjs → account-configured-35y0-Hso.mjs} +1 -2
  2. package/dist/.setup/{account-inspect-CmkKiSb9.mjs → account-inspect-Bc7TVU8F.mjs} +3 -4
  3. package/dist/.setup/{accounts-msihSF3-.mjs → accounts-CEgdyqoW.mjs} +6 -10
  4. package/dist/.setup/{action-runtime-ChRfnnBu.mjs → action-runtime-DPoxYao5.mjs} +9 -10
  5. package/dist/.setup/action-runtime.runtime-DWKWaKgC.mjs +1 -0
  6. package/dist/.setup/{actions-By7tvpvv.mjs → actions-PF2cP6to.mjs} +14 -22
  7. package/dist/.setup/{approval-handler.runtime-D8ArtDQt.mjs → approval-handler.runtime-BtRklemy.mjs} +7 -8
  8. package/dist/.setup/{approval-message-updates-DT7XBPbV.mjs → approval-message-updates-CpwbsEj6.mjs} +2 -3
  9. package/dist/.setup/{channel-6YzXl_63.mjs → channel-B6bRmYmX.mjs} +32 -39
  10. package/dist/.setup/{channel-meta-C443t-lI.mjs → channel-meta-C5vsCo3a.mjs} +1 -2
  11. package/dist/.setup/{channel-type-BEFP2ORi.mjs → channel-type-Dh4vwh1Y.mjs} +5 -6
  12. package/dist/.setup/{channel.setup-u6QQdbTa.mjs → channel.setup-BBzT6uKA.mjs} +10 -14
  13. package/dist/.setup/{config-schema-DNnh6bWU.mjs → config-schema-Cz3uId-c.mjs} +2 -4
  14. package/dist/.setup/{directory-config-Cjj0N8R0.mjs → directory-config-BEPra1E2.mjs} +5 -6
  15. package/dist/.setup/{directory-live-BIKD-5B_.mjs → directory-live-BkUwPrS0.mjs} +4 -5
  16. package/dist/.setup/{doctor-contract-Cd4-VzIM.mjs → doctor-contract-HK8aedwU.mjs} +7 -13
  17. package/dist/.setup/http-GpAVKwSX.mjs +2 -0
  18. package/dist/.setup/{message-tool-api-BS5ekEA_.mjs → message-tool-api-DeiQJoRV.mjs} +5 -7
  19. package/dist/.setup/{monitor-BFilOuM_.mjs → monitor-DsZUQtTM.mjs} +78 -137
  20. package/dist/.setup/{outbound-adapter-9dbnYtL1.mjs → outbound-adapter-C0R5jz6S.mjs} +8 -9
  21. package/dist/.setup/{pipeline.runtime-BG5swHnj.mjs → pipeline.runtime-CIFVL0kf.mjs} +41 -68
  22. package/dist/.setup/{plugin-routes-D4qozHVn.mjs → plugin-routes-lXsy_bNV.mjs} +2 -3
  23. package/dist/.setup/{policy-yhn48xf5.mjs → policy-Bp1FvE6m.mjs} +4 -6
  24. package/dist/.setup/{probe-IiHogLQN.mjs → probe-C5VWf3sz.mjs} +11 -19
  25. package/dist/.setup/{registry-DizWcnNp.mjs → registry-1G0f1zuZ.mjs} +2 -4
  26. package/dist/.setup/{relay-source-oY9SbDiX.mjs → relay-source-DFBDTA5Z.mjs} +3 -4
  27. package/dist/.setup/{replies-CJwjTqDr.mjs → replies-7DRN46EL.mjs} +7 -9
  28. package/dist/.setup/{reply-blocks-Ca-raz2z.mjs → reply-blocks-DOjiDr44.mjs} +4 -7
  29. package/dist/.setup/{resolve-channels-DRRhElwz.mjs → resolve-channels-BNQ1KZXh.mjs} +4 -5
  30. package/dist/.setup/{resolve-users-Cz8e17ky.mjs → resolve-users-C4dC8Z7D.mjs} +4 -5
  31. package/dist/.setup/{rolldown-runtime-B4FMCO8f.mjs → rolldown-runtime-nwUcYXjP.mjs} +1 -2
  32. package/dist/.setup/{runtime-JSVZSWAj.mjs → runtime-C6HKn7Av.mjs} +1 -2
  33. package/dist/.setup/runtime-setter-api-DrXr965r.mjs +2 -0
  34. package/dist/.setup/{scopes-DfQVi8Jw.mjs → scopes-C1aeCBa6.mjs} +2 -3
  35. package/dist/.setup/{secret-contract-B-Qm6aQQ.mjs → secret-contract-D0UY2JWF.mjs} +1 -2
  36. package/dist/.setup/{secret-contract-api-DB6CMdgc.mjs → secret-contract-api-BhzGpUb0.mjs} +1 -1
  37. package/dist/.setup/{security-audit-DFGiFLqd.mjs → security-audit-C3hXCfDt.mjs} +2 -3
  38. package/dist/.setup/{send-C-8wY0lK.mjs → send-C5uXkmZV.mjs} +14 -21
  39. package/dist/.setup/{send-results-eeOu_HYm.mjs → send-results-D-o6PgtS.mjs} +1 -2
  40. package/dist/.setup/{session-status-Dv8wNBEt.mjs → session-status-CHkEn3HM.mjs} +31 -57
  41. package/dist/.setup/setup-plugin-api-D7DoueEh.mjs +2 -0
  42. package/dist/.setup/{setup-surface-9WVQgYCT.mjs → setup-surface-CtM1pm-9.mjs} +7 -8
  43. package/dist/.setup/{shared-DpHCoKy2.mjs → shared-CohTHxM1.mjs} +14 -18
  44. package/dist/.setup/{slash-dispatch.runtime-v5kQqJPh.mjs → slash-dispatch.runtime-Bnn9a5qB.mjs} +1 -1
  45. package/dist/.setup/{target-parsing-FFE26kOV.mjs → target-parsing-0pRZtahO.mjs} +1 -2
  46. package/dist/.setup/{targets-C6LZQL1Q.mjs → targets-BqXz7CpG.mjs} +2 -3
  47. package/dist/.setup/{thread-ts-Cvt7WD6B.mjs → thread-ts-47Au2-Yn.mjs} +1 -2
  48. package/dist/.source-module-urls/562d694877afe9d9dcbb3b32a8883c16974738f2aa892c48d45572cdc9a62529.json +1 -1
  49. package/dist/account-inspect-api.js +2 -3
  50. package/dist/api.js +17 -17
  51. package/dist/channel-config-api.js +1 -1
  52. package/dist/channel-entry.js +1 -2
  53. package/dist/channel-plugin-api.js +1 -1
  54. package/dist/configured-state.js +2 -3
  55. package/dist/directory-contract-api.js +1 -1
  56. package/dist/doctor-contract-api.js +1 -1
  57. package/dist/http-routes-api.js +1 -1
  58. package/dist/index.js +2 -3
  59. package/dist/message-tool-api.js +1 -1
  60. package/dist/runtime-api.js +12 -12
  61. package/dist/runtime-setter-api.js +1 -1
  62. package/dist/secret-contract-api.js +1 -1
  63. package/dist/security-contract-api.js +1 -1
  64. package/dist/setup-entry.js +4 -5
  65. package/dist/setup-plugin-api.js +1 -1
  66. package/node_modules/@slack/bolt/node_modules/body-parser/README.md +17 -13
  67. package/node_modules/@slack/bolt/node_modules/body-parser/lib/read.js +74 -57
  68. package/node_modules/@slack/bolt/node_modules/body-parser/lib/types/json.js +11 -11
  69. package/node_modules/@slack/bolt/node_modules/body-parser/lib/types/urlencoded.js +5 -5
  70. package/node_modules/@slack/bolt/node_modules/body-parser/lib/utils.js +0 -15
  71. package/node_modules/@slack/bolt/node_modules/body-parser/package.json +7 -12
  72. package/node_modules/undici/README.md +25 -3
  73. package/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  74. package/node_modules/undici/docs/docs/api/Client.md +11 -6
  75. package/node_modules/undici/docs/docs/api/Dispatcher.md +3 -0
  76. package/node_modules/undici/docs/docs/api/Errors.md +76 -1
  77. package/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  78. package/node_modules/undici/docs/docs/api/Interceptors.md +13 -6
  79. package/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  80. package/node_modules/undici/docs/docs/index.md +12 -12
  81. package/node_modules/undici/docs/docs/type-map.json +66 -66
  82. package/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  83. package/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  84. package/node_modules/undici/lib/core/connect.js +10 -4
  85. package/node_modules/undici/lib/core/constants.js +12 -1
  86. package/node_modules/undici/lib/core/errors.js +38 -1
  87. package/node_modules/undici/lib/core/request.js +16 -1
  88. package/node_modules/undici/lib/core/symbols.js +2 -0
  89. package/node_modules/undici/lib/core/util.js +26 -1
  90. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  91. package/node_modules/undici/lib/dispatcher/client-h1.js +116 -80
  92. package/node_modules/undici/lib/dispatcher/client-h2.js +46 -14
  93. package/node_modules/undici/lib/dispatcher/client.js +4 -1
  94. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  95. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  96. package/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  97. package/node_modules/undici/lib/dispatcher/pool-base.js +65 -28
  98. package/node_modules/undici/lib/dispatcher/pool.js +11 -8
  99. package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -8
  100. package/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  101. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  102. package/node_modules/undici/lib/handler/cache-handler.js +153 -15
  103. package/node_modules/undici/lib/handler/deduplication-handler.js +112 -51
  104. package/node_modules/undici/lib/handler/redirect-handler.js +28 -8
  105. package/node_modules/undici/lib/handler/retry-handler.js +44 -11
  106. package/node_modules/undici/lib/interceptor/cache.js +11 -3
  107. package/node_modules/undici/lib/interceptor/decompress.js +22 -9
  108. package/node_modules/undici/lib/interceptor/dns.js +11 -0
  109. package/node_modules/undici/lib/interceptor/response-error.js +72 -28
  110. package/node_modules/undici/lib/milo/LICENSE.md +7 -0
  111. package/node_modules/undici/lib/milo/no-simd.js +1002 -0
  112. package/node_modules/undici/lib/milo/simd.js +1002 -0
  113. package/node_modules/undici/lib/mock/mock-agent.js +11 -0
  114. package/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  115. package/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  116. package/node_modules/undici/lib/util/cache.js +11 -5
  117. package/node_modules/undici/lib/web/cookies/util.js +19 -2
  118. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  119. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -2
  120. package/node_modules/undici/lib/web/fetch/body.js +47 -38
  121. package/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  122. package/node_modules/undici/lib/web/fetch/headers.js +2 -2
  123. package/node_modules/undici/lib/web/fetch/index.js +8 -4
  124. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  125. package/node_modules/undici/lib/web/websocket/receiver.js +25 -4
  126. package/node_modules/undici/package.json +7 -5
  127. package/node_modules/undici/types/cache-interceptor.d.ts +10 -0
  128. package/node_modules/undici/types/client.d.ts +10 -4
  129. package/node_modules/undici/types/errors.d.ts +16 -1
  130. package/node_modules/undici/types/h2c-client.d.ts +1 -1
  131. package/node_modules/undici/types/interceptors.d.ts +6 -1
  132. package/package.json +5 -5
  133. package/dist/.setup/action-runtime.runtime-Ck_j1YTn.mjs +0 -1
  134. package/dist/.setup/http-C9sM-FXe.mjs +0 -2
  135. package/dist/.setup/runtime-setter-api-Cx_PV-xu.mjs +0 -2
  136. package/dist/.setup/setup-plugin-api-B18kDKtr.mjs +0 -2
@@ -548,8 +548,14 @@ function applyConnectionWindowSize (connectionWindowSize) {
548
548
  }
549
549
 
550
550
  function onHttp2RemoteSettings (settings) {
551
- // Fallbacks are a safe bet, remote setting will always override
552
- this[kClient][kMaxConcurrentStreams] = settings.maxConcurrentStreams ?? this[kClient][kMaxConcurrentStreams]
551
+ const client = this[kClient]
552
+
553
+ // The configured maxConcurrentStreams (default 100) is the client's own
554
+ // ceiling. The server's SETTINGS_MAX_CONCURRENT_STREAMS can lower it, but
555
+ // must not raise it: a default Node.js server advertises 2^32-1.
556
+ const localMaxConcurrentStreams = client[kHTTP2Options].maxConcurrentStreams
557
+ const remoteMaxConcurrentStreams = settings.maxConcurrentStreams ?? client[kMaxConcurrentStreams] ?? localMaxConcurrentStreams
558
+ client[kMaxConcurrentStreams] = Math.min(remoteMaxConcurrentStreams, localMaxConcurrentStreams)
553
559
  /**
554
560
  * From RFC-8441
555
561
  * A sender MUST NOT send a SETTINGS_ENABLE_CONNECT_PROTOCOL parameter
@@ -594,8 +600,6 @@ function onHttp2SendPing (session) {
594
600
  }
595
601
 
596
602
  function onHttp2SessionError (err) {
597
- assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')
598
-
599
603
  this[kSocket][kError] = err
600
604
 
601
605
  if (this[kReceivedGoAway]) {
@@ -676,6 +680,10 @@ function onHttp2SessionGoAway (errorCode, lastStreamID) {
676
680
  client[kHTTP2Session] = null
677
681
  }
678
682
 
683
+ if (this[kOpenStreams] === 0) {
684
+ unrefH2Session(this)
685
+ }
686
+
679
687
  clearHttp2IdleTimeout(this)
680
688
  clearNoStreamsTimeout(this)
681
689
 
@@ -757,8 +765,6 @@ function onHttp2SocketClose () {
757
765
  }
758
766
 
759
767
  function onHttp2SocketError (err) {
760
- assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')
761
-
762
768
  this[kError] = err
763
769
 
764
770
  if (this[kHTTP2Session]?.[kReceivedGoAway]) {
@@ -844,25 +850,27 @@ function buildRequestHeaders (reqHeaders) {
844
850
  for (let n = 0; n < reqHeaders.length; n += 2) {
845
851
  const key = reqHeaders[n + 0]
846
852
  const val = reqHeaders[n + 1]
847
- const current = headers[key]
853
+ // Reading headers[key] directly resolves `__proto__` through the prototype
854
+ // chain instead of reporting the header as absent.
855
+ const current = Object.hasOwn(headers, key) ? headers[key] : undefined
848
856
 
849
857
  if (key === 'cookie') {
850
858
  if (current != null) {
851
- headers[key] = Array.isArray(current) ? (current.push(val), current) : [current, val]
859
+ util.setHeader(headers, key, Array.isArray(current) ? (current.push(val), current) : [current, val])
852
860
  } else {
853
- headers[key] = val
861
+ util.setHeader(headers, key, val)
854
862
  }
855
863
 
856
864
  continue
857
865
  }
858
866
 
859
867
  if (typeof val === 'string') {
860
- headers[key] = current ? `${current}, ${val}` : val
868
+ util.setHeader(headers, key, current ? `${current}, ${val}` : val)
861
869
  continue
862
870
  }
863
871
 
864
872
  for (let i = 0; i < val.length; i++) {
865
- headers[key] = headers[key] ? `${headers[key]}, ${val[i]}` : val[i]
873
+ util.setHeader(headers, key, Object.hasOwn(headers, key) ? `${headers[key]}, ${val[i]}` : val[i])
866
874
  }
867
875
  }
868
876
 
@@ -1368,10 +1376,34 @@ function onData (chunk) {
1368
1376
  state.bytesRead += chunk.length
1369
1377
 
1370
1378
  if (request.onResponseData(chunk) === false) {
1371
- stream.pause()
1379
+ pauseResponseStream(stream, state)
1380
+ }
1381
+ }
1382
+
1383
+ // The body timeout measures how long the peer takes to send data. While the
1384
+ // consumer applies backpressure the peer can't send (it's out of flow-control
1385
+ // window), and Http2Stream's timer, which counts stream activity, would fire.
1386
+ // Stop it while paused and start a fresh one on resume, like HTTP/1.1, which
1387
+ // ignores the body timeout while its parser is paused.
1388
+ function pauseResponseStream (stream, state) {
1389
+ stream.pause()
1390
+ if (state.bodyTimeout) {
1391
+ stream.setTimeout(0)
1372
1392
  }
1373
1393
  }
1374
1394
 
1395
+ // Passed to the handler as its resume callback, bound to the stream.
1396
+ function resumeResponseStream () {
1397
+ const stream = this
1398
+ const state = stream[kRequestStreamState]
1399
+
1400
+ if (state != null && state.bodyTimeout && stream.isPaused()) {
1401
+ stream.setTimeout(state.bodyTimeout)
1402
+ }
1403
+
1404
+ stream.resume()
1405
+ }
1406
+
1375
1407
  function onInterimResponse (headers) {
1376
1408
  const stream = this
1377
1409
  const state = stream[kRequestStreamState]
@@ -1446,8 +1478,8 @@ function onResponse (headers) {
1446
1478
  return
1447
1479
  }
1448
1480
 
1449
- if (request.onResponseStart(statusCode, headers, stream.resume.bind(stream), '') === false) {
1450
- stream.pause()
1481
+ if (request.onResponseStart(statusCode, headers, resumeResponseStream.bind(stream), '') === false) {
1482
+ pauseResponseStream(stream, state)
1451
1483
  }
1452
1484
 
1453
1485
  stream.on('data', onData)
@@ -54,7 +54,8 @@ const {
54
54
  kMaxConcurrentStreams,
55
55
  kHostAuthority,
56
56
  kResume,
57
- kHTTP2Options
57
+ kHTTP2Options,
58
+ kUseMilo
58
59
  } = require('../core/symbols.js')
59
60
  const connectH1 = require('./client-h1.js')
60
61
  const connectH2 = require('./client-h2.js')
@@ -136,6 +137,7 @@ class Client extends DispatcherBase {
136
137
  initialWindowSize,
137
138
  connectionWindowSize,
138
139
  pingInterval,
140
+ useMilo,
139
141
  webSocket,
140
142
  h2Options,
141
143
  eventSource
@@ -335,6 +337,7 @@ class Client extends DispatcherBase {
335
337
  initialWindowSize: h2Options?.initialWindowSize ?? initialWindowSize ?? 262144
336
338
  }
337
339
  }
340
+ this[kUseMilo] = useMilo
338
341
 
339
342
  // kQueue is built up of 3 sections separated by
340
343
  // the kRunningIdx and kPendingIdx indices.
@@ -8,6 +8,7 @@ const {
8
8
  InvalidArgumentError
9
9
  } = require('../core/errors')
10
10
  const { kDestroy, kClose, kClosed, kDestroyed, kDispatch } = require('../core/symbols')
11
+ const { defaultWebSocketMaxFragments, defaultWebSocketMaxPayloadSize } = require('../core/constants')
11
12
 
12
13
  const kOnDestroyed = Symbol('onDestroyed')
13
14
  const kOnClosed = Symbol('onClosed')
@@ -41,8 +42,8 @@ class DispatcherBase extends Dispatcher {
41
42
  */
42
43
  get webSocketOptions () {
43
44
  return {
44
- maxFragments: this[kWebSocketOptions].maxFragments ?? 131072,
45
- maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024 // 128 MB default
45
+ maxFragments: this[kWebSocketOptions].maxFragments ?? defaultWebSocketMaxFragments,
46
+ maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? defaultWebSocketMaxPayloadSize
46
47
  }
47
48
  }
48
49
 
@@ -17,12 +17,16 @@ class LegacyHandlerWrapper {
17
17
  }
18
18
 
19
19
  onRequestUpgrade (controller, statusCode, headers, socket) {
20
- const rawHeaders = controller?.rawHeaders ?? toRawHeaders(headers ?? {})
20
+ const rawHeaders = Array.isArray(controller?.rawHeaders)
21
+ ? controller.rawHeaders
22
+ : toRawHeaders(controller?.rawHeaders ?? headers ?? {})
21
23
  this.#handler.onUpgrade?.(statusCode, rawHeaders, socket)
22
24
  }
23
25
 
24
26
  onResponseStart (controller, statusCode, headers, statusMessage) {
25
- const rawHeaders = controller?.rawHeaders ?? toRawHeaders(headers ?? {})
27
+ const rawHeaders = Array.isArray(controller?.rawHeaders)
28
+ ? controller.rawHeaders
29
+ : toRawHeaders(controller?.rawHeaders ?? headers ?? {})
26
30
 
27
31
  if (this.#handler.onHeaders?.(statusCode, rawHeaders, () => controller.resume(), statusMessage) === false) {
28
32
  controller.pause()
@@ -36,7 +40,9 @@ class LegacyHandlerWrapper {
36
40
  }
37
41
 
38
42
  onResponseEnd (controller, trailers) {
39
- const rawTrailers = controller?.rawTrailers ?? toRawHeaders(trailers ?? {})
43
+ const rawTrailers = Array.isArray(controller?.rawTrailers)
44
+ ? controller.rawTrailers
45
+ : toRawHeaders(controller?.rawTrailers ?? trailers ?? {})
40
46
  this.#handler.onComplete?.(rawTrailers)
41
47
  }
42
48
 
@@ -98,6 +104,17 @@ class Dispatcher1Wrapper extends Dispatcher {
98
104
  return this.#dispatcher.dispatch(opts, Dispatcher1Wrapper.wrapHandler(handler))
99
105
  }
100
106
 
107
+ // Older undici versions read WebSocket and EventSource receive limits from
108
+ // the (legacy) global dispatcher, which is this wrapper, so report the
109
+ // wrapped dispatcher's settings.
110
+ get webSocketOptions () {
111
+ return this.#dispatcher.webSocketOptions
112
+ }
113
+
114
+ get eventSourceOptions () {
115
+ return this.#dispatcher.eventSourceOptions
116
+ }
117
+
101
118
  close (...args) {
102
119
  return this.#dispatcher.close(...args)
103
120
  }