cclawd 2026.3.33 → 2026.3.34

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 (247) hide show
  1. package/dist/.buildstamp +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/extensions/cclawd-guard/index.js +106 -98
  4. package/dist/extensions/discord/node_modules/.package-lock.json +7 -258
  5. package/dist/extensions/discord/node_modules/@types/node/README.md +1 -1
  6. package/dist/extensions/discord/node_modules/@types/node/events.d.ts +6 -9
  7. package/dist/extensions/discord/node_modules/@types/node/fs/promises.d.ts +24 -1
  8. package/dist/extensions/discord/node_modules/@types/node/fs.d.ts +126 -6
  9. package/dist/extensions/discord/node_modules/@types/node/http2.d.ts +16 -1
  10. package/dist/extensions/discord/node_modules/@types/node/package.json +3 -3
  11. package/dist/extensions/discord/node_modules/@types/node/process.d.ts +29 -24
  12. package/dist/extensions/discord/node_modules/@types/node/sqlite.d.ts +54 -7
  13. package/dist/extensions/discord/node_modules/@types/node/stream/web.d.ts +4 -0
  14. package/dist/extensions/discord/node_modules/@types/node/stream.d.ts +1 -1
  15. package/dist/extensions/discord/node_modules/@types/node/test/reporters.d.ts +1 -0
  16. package/dist/extensions/discord/node_modules/@types/node/test.d.ts +55 -4
  17. package/dist/extensions/discord/node_modules/@types/node/url.d.ts +27 -3
  18. package/dist/extensions/discord/node_modules/@types/node/vm.d.ts +50 -85
  19. package/dist/extensions/discord/node_modules/undici-types/client.d.ts +5 -0
  20. package/dist/extensions/discord/node_modules/undici-types/connector.d.ts +2 -0
  21. package/dist/extensions/discord/node_modules/undici-types/dispatcher.d.ts +8 -5
  22. package/dist/extensions/discord/node_modules/undici-types/errors.d.ts +17 -1
  23. package/dist/extensions/discord/node_modules/undici-types/index.d.ts +4 -1
  24. package/dist/extensions/discord/node_modules/undici-types/interceptors.d.ts +7 -0
  25. package/dist/extensions/discord/node_modules/undici-types/package.json +1 -1
  26. package/dist/extensions/discord/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  27. package/dist/extensions/discord/node_modules/undici-types/webidl.d.ts +6 -0
  28. package/dist/extensions/discord/node_modules/undici-types/websocket.d.ts +2 -0
  29. package/dist/extensions/feishu/node_modules/.package-lock.json +19 -19
  30. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/es/index.js +478 -244
  31. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/lib/index.js +478 -244
  32. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/package.json +1 -1
  33. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/types/index.d.ts +157 -3
  34. package/dist/extensions/feishu/node_modules/@types/node/README.md +1 -1
  35. package/dist/extensions/feishu/node_modules/@types/node/events.d.ts +6 -9
  36. package/dist/extensions/feishu/node_modules/@types/node/fs/promises.d.ts +24 -1
  37. package/dist/extensions/feishu/node_modules/@types/node/fs.d.ts +126 -6
  38. package/dist/extensions/feishu/node_modules/@types/node/http2.d.ts +16 -1
  39. package/dist/extensions/feishu/node_modules/@types/node/package.json +3 -3
  40. package/dist/extensions/feishu/node_modules/@types/node/process.d.ts +29 -24
  41. package/dist/extensions/feishu/node_modules/@types/node/sqlite.d.ts +54 -7
  42. package/dist/extensions/feishu/node_modules/@types/node/stream/web.d.ts +4 -0
  43. package/dist/extensions/feishu/node_modules/@types/node/stream.d.ts +1 -1
  44. package/dist/extensions/feishu/node_modules/@types/node/test/reporters.d.ts +1 -0
  45. package/dist/extensions/feishu/node_modules/@types/node/test.d.ts +55 -4
  46. package/dist/extensions/feishu/node_modules/@types/node/url.d.ts +27 -3
  47. package/dist/extensions/feishu/node_modules/@types/node/vm.d.ts +50 -85
  48. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.js +39 -13
  49. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  50. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  51. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  52. package/dist/extensions/feishu/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  53. package/dist/extensions/feishu/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  54. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.js +74 -43
  55. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  56. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  57. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  58. package/dist/extensions/feishu/node_modules/protobufjs/index.d.ts +18 -5
  59. package/dist/extensions/feishu/node_modules/protobufjs/package.json +1 -1
  60. package/dist/extensions/feishu/node_modules/protobufjs/src/namespace.js +11 -5
  61. package/dist/extensions/feishu/node_modules/protobufjs/src/parse.js +35 -30
  62. package/dist/extensions/feishu/node_modules/protobufjs/src/root.js +4 -2
  63. package/dist/extensions/feishu/node_modules/protobufjs/src/service.js +4 -2
  64. package/dist/extensions/feishu/node_modules/protobufjs/src/type.js +4 -2
  65. package/dist/extensions/feishu/node_modules/protobufjs/src/util.js +14 -0
  66. package/dist/extensions/feishu/node_modules/undici-types/client.d.ts +5 -0
  67. package/dist/extensions/feishu/node_modules/undici-types/connector.d.ts +2 -0
  68. package/dist/extensions/feishu/node_modules/undici-types/dispatcher.d.ts +8 -5
  69. package/dist/extensions/feishu/node_modules/undici-types/errors.d.ts +17 -1
  70. package/dist/extensions/feishu/node_modules/undici-types/index.d.ts +4 -1
  71. package/dist/extensions/feishu/node_modules/undici-types/interceptors.d.ts +7 -0
  72. package/dist/extensions/feishu/node_modules/undici-types/package.json +1 -1
  73. package/dist/extensions/feishu/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  74. package/dist/extensions/feishu/node_modules/undici-types/webidl.d.ts +6 -0
  75. package/dist/extensions/feishu/node_modules/undici-types/websocket.d.ts +2 -0
  76. package/dist/extensions/feishu/node_modules/ws/lib/sender.js +6 -1
  77. package/dist/extensions/feishu/node_modules/ws/package.json +1 -1
  78. package/dist/extensions/feishu/node_modules/zod/README.md +0 -17
  79. package/dist/extensions/feishu/node_modules/zod/package.json +1 -1
  80. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/schemas.ts +25 -3
  81. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/assignability.test.ts +6 -0
  82. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/catch.test.ts +52 -4
  83. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +3 -0
  84. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/partial.test.ts +20 -23
  85. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
  86. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +69 -0
  87. package/dist/extensions/feishu/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +22 -1
  88. package/dist/extensions/feishu/node_modules/zod/src/v4/core/api.ts +6 -4
  89. package/dist/extensions/feishu/node_modules/zod/src/v4/core/json-schema-processors.ts +2 -1
  90. package/dist/extensions/feishu/node_modules/zod/src/v4/core/schemas.ts +45 -5
  91. package/dist/extensions/feishu/node_modules/zod/src/v4/core/to-json-schema.ts +1 -0
  92. package/dist/extensions/feishu/node_modules/zod/src/v4/core/versions.ts +1 -1
  93. package/dist/extensions/feishu/node_modules/zod/src/v4/mini/schemas.ts +1 -1
  94. package/dist/extensions/feishu/node_modules/zod/src/v4/mini/tests/index.test.ts +5 -0
  95. package/dist/extensions/feishu/node_modules/zod/v4/classic/schemas.cjs +12 -2
  96. package/dist/extensions/feishu/node_modules/zod/v4/classic/schemas.d.cts +8 -2
  97. package/dist/extensions/feishu/node_modules/zod/v4/classic/schemas.d.ts +8 -2
  98. package/dist/extensions/feishu/node_modules/zod/v4/classic/schemas.js +11 -1
  99. package/dist/extensions/feishu/node_modules/zod/v4/core/api.d.cts +6 -4
  100. package/dist/extensions/feishu/node_modules/zod/v4/core/api.d.ts +6 -4
  101. package/dist/extensions/feishu/node_modules/zod/v4/core/json-schema-processors.cjs +2 -1
  102. package/dist/extensions/feishu/node_modules/zod/v4/core/json-schema-processors.js +2 -1
  103. package/dist/extensions/feishu/node_modules/zod/v4/core/schemas.cjs +15 -6
  104. package/dist/extensions/feishu/node_modules/zod/v4/core/schemas.d.cts +18 -0
  105. package/dist/extensions/feishu/node_modules/zod/v4/core/schemas.d.ts +18 -0
  106. package/dist/extensions/feishu/node_modules/zod/v4/core/schemas.js +14 -5
  107. package/dist/extensions/feishu/node_modules/zod/v4/core/to-json-schema.cjs +2 -0
  108. package/dist/extensions/feishu/node_modules/zod/v4/core/to-json-schema.js +2 -0
  109. package/dist/extensions/feishu/node_modules/zod/v4/core/versions.cjs +1 -1
  110. package/dist/extensions/feishu/node_modules/zod/v4/core/versions.js +1 -1
  111. package/dist/extensions/feishu/node_modules/zod/v4/mini/schemas.d.cts +1 -1
  112. package/dist/extensions/feishu/node_modules/zod/v4/mini/schemas.d.ts +1 -1
  113. package/dist/extensions/slack/node_modules/.package-lock.json +80 -37
  114. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -1
  115. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/HTTPModuleFunctions.js +7 -2
  116. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/HTTPModuleFunctions.js.map +1 -1
  117. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/HTTPReceiver.d.ts.map +1 -1
  118. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/HTTPReceiver.js +4 -3
  119. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/HTTPReceiver.js.map +1 -1
  120. package/dist/extensions/slack/node_modules/@slack/bolt/package.json +6 -5
  121. package/dist/extensions/slack/node_modules/@slack/socket-mode/dist/package.json +1 -1
  122. package/dist/extensions/slack/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.d.ts.map +1 -1
  123. package/dist/extensions/slack/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js +7 -1
  124. package/dist/extensions/slack/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js.map +1 -1
  125. package/dist/extensions/slack/node_modules/@slack/socket-mode/package.json +1 -1
  126. package/dist/extensions/slack/node_modules/@slack/types/dist/block-kit/blocks.d.ts +71 -2
  127. package/dist/extensions/slack/node_modules/@slack/types/dist/block-kit/blocks.d.ts.map +1 -1
  128. package/dist/extensions/slack/node_modules/@slack/types/dist/chunk.d.ts +11 -1
  129. package/dist/extensions/slack/node_modules/@slack/types/dist/chunk.d.ts.map +1 -1
  130. package/dist/extensions/slack/node_modules/@slack/types/package.json +1 -1
  131. package/dist/extensions/slack/node_modules/@slack/web-api/dist/file-upload.d.ts.map +1 -1
  132. package/dist/extensions/slack/node_modules/@slack/web-api/dist/file-upload.js +4 -2
  133. package/dist/extensions/slack/node_modules/@slack/web-api/dist/file-upload.js.map +1 -1
  134. package/dist/extensions/slack/node_modules/@slack/web-api/dist/types/request/assistant.d.ts +15 -0
  135. package/dist/extensions/slack/node_modules/@slack/web-api/dist/types/request/assistant.d.ts.map +1 -1
  136. package/dist/extensions/slack/node_modules/@slack/web-api/dist/types/request/chat.d.ts +15 -0
  137. package/dist/extensions/slack/node_modules/@slack/web-api/dist/types/request/chat.d.ts.map +1 -1
  138. package/dist/extensions/slack/node_modules/@slack/web-api/dist/types/request/files.d.ts +10 -0
  139. package/dist/extensions/slack/node_modules/@slack/web-api/dist/types/request/files.d.ts.map +1 -1
  140. package/dist/extensions/slack/node_modules/@slack/web-api/package.json +5 -6
  141. package/dist/extensions/slack/node_modules/@types/node/README.md +1 -1
  142. package/dist/extensions/slack/node_modules/@types/node/events.d.ts +6 -9
  143. package/dist/extensions/slack/node_modules/@types/node/fs/promises.d.ts +24 -1
  144. package/dist/extensions/slack/node_modules/@types/node/fs.d.ts +126 -6
  145. package/dist/extensions/slack/node_modules/@types/node/http2.d.ts +16 -1
  146. package/dist/extensions/slack/node_modules/@types/node/package.json +3 -3
  147. package/dist/extensions/slack/node_modules/@types/node/process.d.ts +29 -24
  148. package/dist/extensions/slack/node_modules/@types/node/sqlite.d.ts +54 -7
  149. package/dist/extensions/slack/node_modules/@types/node/stream/web.d.ts +4 -0
  150. package/dist/extensions/slack/node_modules/@types/node/stream.d.ts +1 -1
  151. package/dist/extensions/slack/node_modules/@types/node/test/reporters.d.ts +1 -0
  152. package/dist/extensions/slack/node_modules/@types/node/test.d.ts +55 -4
  153. package/dist/extensions/slack/node_modules/@types/node/url.d.ts +27 -3
  154. package/dist/extensions/slack/node_modules/@types/node/vm.d.ts +50 -85
  155. package/dist/extensions/slack/node_modules/agent-base/README.md +145 -0
  156. package/dist/extensions/slack/node_modules/agent-base/dist/src/index.d.ts +78 -0
  157. package/dist/extensions/slack/node_modules/agent-base/dist/src/index.js +203 -0
  158. package/dist/extensions/slack/node_modules/agent-base/dist/src/index.js.map +1 -0
  159. package/dist/extensions/slack/node_modules/agent-base/dist/src/promisify.d.ts +4 -0
  160. package/dist/extensions/slack/node_modules/agent-base/dist/src/promisify.js +18 -0
  161. package/dist/extensions/slack/node_modules/agent-base/dist/src/promisify.js.map +1 -0
  162. package/dist/extensions/slack/node_modules/agent-base/package.json +64 -0
  163. package/dist/extensions/slack/node_modules/agent-base/src/index.ts +345 -0
  164. package/dist/extensions/slack/node_modules/agent-base/src/promisify.ts +33 -0
  165. package/dist/extensions/slack/node_modules/axios/CHANGELOG.md +103 -6
  166. package/dist/extensions/slack/node_modules/axios/README.md +396 -25
  167. package/dist/extensions/slack/node_modules/axios/dist/axios.js +1455 -1109
  168. package/dist/extensions/slack/node_modules/axios/dist/axios.js.map +1 -1
  169. package/dist/extensions/slack/node_modules/axios/dist/axios.min.js +3 -3
  170. package/dist/extensions/slack/node_modules/axios/dist/axios.min.js.map +1 -1
  171. package/dist/extensions/slack/node_modules/axios/dist/browser/axios.cjs +1569 -1174
  172. package/dist/extensions/slack/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  173. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.js +1569 -1173
  174. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.js.map +1 -1
  175. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.min.js +2 -2
  176. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  177. package/dist/extensions/slack/node_modules/axios/dist/node/axios.cjs +1395 -915
  178. package/dist/extensions/slack/node_modules/axios/dist/node/axios.cjs.map +1 -1
  179. package/dist/extensions/slack/node_modules/axios/index.d.cts +25 -13
  180. package/dist/extensions/slack/node_modules/axios/index.d.ts +21 -4
  181. package/dist/extensions/slack/node_modules/axios/index.js +2 -0
  182. package/dist/extensions/slack/node_modules/axios/lib/adapters/adapters.js +4 -2
  183. package/dist/extensions/slack/node_modules/axios/lib/adapters/fetch.js +131 -11
  184. package/dist/extensions/slack/node_modules/axios/lib/adapters/http.js +298 -69
  185. package/dist/extensions/slack/node_modules/axios/lib/adapters/xhr.js +8 -3
  186. package/dist/extensions/slack/node_modules/axios/lib/core/Axios.js +7 -3
  187. package/dist/extensions/slack/node_modules/axios/lib/core/AxiosError.js +86 -1
  188. package/dist/extensions/slack/node_modules/axios/lib/core/AxiosHeaders.js +4 -33
  189. package/dist/extensions/slack/node_modules/axios/lib/core/dispatchRequest.js +19 -7
  190. package/dist/extensions/slack/node_modules/axios/lib/core/mergeConfig.js +6 -3
  191. package/dist/extensions/slack/node_modules/axios/lib/core/settle.js +7 -11
  192. package/dist/extensions/slack/node_modules/axios/lib/defaults/index.js +1 -1
  193. package/dist/extensions/slack/node_modules/axios/lib/env/data.js +1 -1
  194. package/dist/extensions/slack/node_modules/axios/lib/helpers/buildURL.js +1 -1
  195. package/dist/extensions/slack/node_modules/axios/lib/helpers/composeSignals.js +48 -47
  196. package/dist/extensions/slack/node_modules/axios/lib/helpers/cookies.js +14 -2
  197. package/dist/extensions/slack/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +28 -1
  198. package/dist/extensions/slack/node_modules/axios/lib/helpers/formDataToJSON.js +1 -1
  199. package/dist/extensions/slack/node_modules/axios/lib/helpers/formDataToStream.js +1 -1
  200. package/dist/extensions/slack/node_modules/axios/lib/helpers/fromDataURI.js +18 -5
  201. package/dist/extensions/slack/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
  202. package/dist/extensions/slack/node_modules/axios/lib/helpers/progressEventReducer.js +3 -0
  203. package/dist/extensions/slack/node_modules/axios/lib/helpers/resolveConfig.js +33 -17
  204. package/dist/extensions/slack/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +60 -0
  205. package/dist/extensions/slack/node_modules/axios/lib/helpers/shouldBypassProxy.js +26 -1
  206. package/dist/extensions/slack/node_modules/axios/lib/helpers/validator.js +1 -1
  207. package/dist/extensions/slack/node_modules/axios/lib/utils.js +35 -22
  208. package/dist/extensions/slack/node_modules/axios/package.json +19 -24
  209. package/dist/extensions/slack/node_modules/https-proxy-agent/README.md +137 -0
  210. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/agent.d.ts +30 -0
  211. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/agent.js +177 -0
  212. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/agent.js.map +1 -0
  213. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/index.d.ts +23 -0
  214. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/index.js +14 -0
  215. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/index.js.map +1 -0
  216. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +7 -0
  217. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
  218. package/dist/extensions/slack/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -0
  219. package/dist/extensions/slack/node_modules/https-proxy-agent/package.json +56 -0
  220. package/dist/extensions/slack/node_modules/semver/README.md +19 -4
  221. package/dist/extensions/slack/node_modules/semver/bin/semver.js +14 -10
  222. package/dist/extensions/slack/node_modules/semver/functions/truncate.js +48 -0
  223. package/dist/extensions/slack/node_modules/semver/index.js +2 -0
  224. package/dist/extensions/slack/node_modules/semver/internal/re.js +1 -1
  225. package/dist/extensions/slack/node_modules/semver/package.json +3 -3
  226. package/dist/extensions/slack/node_modules/semver/range.bnf +5 -4
  227. package/dist/extensions/slack/node_modules/type-is/index.js +8 -18
  228. package/dist/extensions/slack/node_modules/type-is/node_modules/content-type/LICENSE +22 -0
  229. package/dist/extensions/slack/node_modules/type-is/node_modules/content-type/README.md +69 -0
  230. package/dist/extensions/slack/node_modules/type-is/node_modules/content-type/dist/index.d.ts +26 -0
  231. package/dist/extensions/slack/node_modules/type-is/node_modules/content-type/dist/index.js +170 -0
  232. package/dist/extensions/slack/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -0
  233. package/dist/extensions/slack/node_modules/type-is/node_modules/content-type/package.json +52 -0
  234. package/dist/extensions/slack/node_modules/type-is/package.json +9 -5
  235. package/dist/extensions/slack/node_modules/undici-types/client.d.ts +5 -0
  236. package/dist/extensions/slack/node_modules/undici-types/connector.d.ts +2 -0
  237. package/dist/extensions/slack/node_modules/undici-types/dispatcher.d.ts +8 -5
  238. package/dist/extensions/slack/node_modules/undici-types/errors.d.ts +17 -1
  239. package/dist/extensions/slack/node_modules/undici-types/index.d.ts +4 -1
  240. package/dist/extensions/slack/node_modules/undici-types/interceptors.d.ts +7 -0
  241. package/dist/extensions/slack/node_modules/undici-types/package.json +1 -1
  242. package/dist/extensions/slack/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  243. package/dist/extensions/slack/node_modules/undici-types/webidl.d.ts +6 -0
  244. package/dist/extensions/slack/node_modules/undici-types/websocket.d.ts +2 -0
  245. package/dist/extensions/slack/node_modules/ws/lib/sender.js +6 -1
  246. package/dist/extensions/slack/node_modules/ws/package.json +1 -1
  247. package/package.json +1 -1
package/dist/.buildstamp CHANGED
@@ -1 +1 @@
1
- {"builtAt":1777529516513,"head":"74b998721479d39f9f1ec2a455152f91a7492292"}
1
+ {"builtAt":1778821873251,"head":"33af9820fbbb92c7a3447f0970231f6607315881"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.33",
3
- "commit": "74b998721479d39f9f1ec2a455152f91a7492292",
4
- "builtAt": "2026-04-30T06:12:23.656Z"
2
+ "version": "2026.3.34",
3
+ "commit": "33af9820fbbb92c7a3447f0970231f6607315881",
4
+ "builtAt": "2026-05-15T05:12:00.197Z"
5
5
  }
@@ -4,10 +4,65 @@ import fs, { existsSync, mkdirSync, readdirSync, unlinkSync, writeFileSync } fro
4
4
  import path from "node:path";
5
5
  import os, { networkInterfaces } from "node:os";
6
6
  import { createHash, randomBytes } from "node:crypto";
7
+ //#region extensions/cclawd-guard/agent/machine-id.ts
8
+ let cachedMachineInfo = null;
9
+ /**
10
+ * Build a stable per-device ID from hostname + first non-internal MAC.
11
+ * Hashing avoids sending raw MAC addresses.
12
+ */
13
+ function getMachineInfo() {
14
+ if (cachedMachineInfo) return cachedMachineInfo;
15
+ const machineName = os.hostname();
16
+ const interfaces = networkInterfaces();
17
+ let mac = "";
18
+ for (const iface of Object.values(interfaces)) {
19
+ if (!iface) continue;
20
+ for (const info of iface) if (!info.internal && info.mac && info.mac !== "00:00:00:00:00:00") {
21
+ mac = info.mac;
22
+ break;
23
+ }
24
+ if (mac) break;
25
+ }
26
+ const input = `${machineName}:${mac || "unknown"}`;
27
+ cachedMachineInfo = {
28
+ machineId: createHash("sha256").update(input).digest("hex").slice(0, 16),
29
+ machineName
30
+ };
31
+ return cachedMachineInfo;
32
+ }
33
+ //#endregion
7
34
  //#region extensions/cclawd-guard/agent/config.ts
8
35
  const DEFAULT_CORE_URL = defaultCoreUrl;
9
36
  const CREDENTIALS_DIR = path.join(os.homedir(), ".openclaw/credentials/cclawd-guard");
10
37
  const CREDENTIALS_FILE = path.join(CREDENTIALS_DIR, "credentials.json");
38
+ function normalizeCoreUrl(coreUrl) {
39
+ return coreUrl.replace(/\/+$/, "");
40
+ }
41
+ function loadSharedCredentialState(configuredCoreUrl) {
42
+ try {
43
+ if (!existsSync(CREDENTIALS_FILE)) return null;
44
+ const data = JSON.parse(loadTextSync(CREDENTIALS_FILE));
45
+ const expectedUrl = normalizeCoreUrl(configuredCoreUrl ?? DEFAULT_CORE_URL);
46
+ const issuedCoreUrl = typeof data.coreUrl === "string" ? normalizeCoreUrl(data.coreUrl) : "";
47
+ if (issuedCoreUrl && issuedCoreUrl !== expectedUrl) return null;
48
+ const normalized = {
49
+ apiKey: typeof data.apiKey === "string" ? data.apiKey.trim() : "",
50
+ agentId: typeof data.agentId === "string" ? data.agentId.trim() : "",
51
+ claimUrl: typeof data.claimUrl === "string" ? data.claimUrl.trim() : "",
52
+ verificationCode: typeof data.verificationCode === "string" ? data.verificationCode.trim() : "",
53
+ email: typeof data.email === "string" ? data.email.trim() : "",
54
+ coreUrl: issuedCoreUrl || expectedUrl,
55
+ orgToken: typeof data.orgToken === "string" ? data.orgToken.trim() : "",
56
+ orgId: typeof data.orgId === "string" ? data.orgId.trim() : "",
57
+ userId: typeof data.userId === "string" ? data.userId.trim() : "",
58
+ machineId: typeof data.machineId === "string" ? data.machineId.trim() : ""
59
+ };
60
+ if (!Object.values(normalized).some((value) => typeof value === "string" && value.length > 0)) return null;
61
+ return normalized;
62
+ } catch {
63
+ return null;
64
+ }
65
+ }
11
66
  /**
12
67
  * Load credentials from disk.
13
68
  * If the credentials were issued by a different Core URL, returns null
@@ -17,32 +72,40 @@ const CREDENTIALS_FILE = path.join(CREDENTIALS_DIR, "credentials.json");
17
72
  * When provided, credentials are validated against this URL instead of DEFAULT_CORE_URL.
18
73
  */
19
74
  function loadCoreCredentials(configuredCoreUrl) {
20
- try {
21
- if (!existsSync(CREDENTIALS_FILE)) return null;
22
- const data = JSON.parse(loadTextSync(CREDENTIALS_FILE));
23
- if (typeof data.apiKey === "string" && typeof data.agentId === "string") {
24
- const creds = data;
25
- const expectedUrl = configuredCoreUrl ?? DEFAULT_CORE_URL;
26
- if (creds.coreUrl && creds.coreUrl !== expectedUrl) return null;
27
- return creds;
28
- }
29
- return null;
30
- } catch {
31
- return null;
32
- }
75
+ const shared = loadSharedCredentialState(configuredCoreUrl);
76
+ if (!shared?.apiKey || !shared?.agentId) return null;
77
+ return {
78
+ apiKey: shared.apiKey,
79
+ agentId: shared.agentId,
80
+ claimUrl: shared.claimUrl ?? "",
81
+ verificationCode: shared.verificationCode ?? "",
82
+ email: shared.email,
83
+ coreUrl: shared.coreUrl
84
+ };
33
85
  }
34
86
  function saveCoreCredentials(creds, coreUrl) {
35
87
  if (!existsSync(CREDENTIALS_DIR)) mkdirSync(CREDENTIALS_DIR, { recursive: true });
36
88
  const toSave = {
89
+ ...loadSharedCredentialState(coreUrl) ?? {},
37
90
  ...creds,
38
- coreUrl: coreUrl ?? DEFAULT_CORE_URL
91
+ coreUrl: normalizeCoreUrl(coreUrl ?? DEFAULT_CORE_URL)
39
92
  };
40
93
  writeFileSync(CREDENTIALS_FILE, JSON.stringify(toSave, null, 2), "utf-8");
41
94
  }
42
95
  function deleteCoreCredentials() {
43
96
  try {
44
97
  if (existsSync(CREDENTIALS_FILE)) {
45
- unlinkSync(CREDENTIALS_FILE);
98
+ const current = loadSharedCredentialState();
99
+ if (current?.orgToken || current?.orgId || current?.userId || current?.machineId) {
100
+ const preserved = {
101
+ orgToken: current.orgToken ?? "",
102
+ orgId: current.orgId ?? "",
103
+ userId: current.userId ?? "",
104
+ machineId: current.machineId ?? "",
105
+ coreUrl: current.coreUrl ?? normalizeCoreUrl(DEFAULT_CORE_URL)
106
+ };
107
+ writeFileSync(CREDENTIALS_FILE, JSON.stringify(preserved, null, 2), "utf-8");
108
+ } else unlinkSync(CREDENTIALS_FILE);
46
109
  return true;
47
110
  }
48
111
  return false;
@@ -51,12 +114,19 @@ function deleteCoreCredentials() {
51
114
  }
52
115
  }
53
116
  async function registerWithCore(name, description, coreUrl = DEFAULT_CORE_URL) {
54
- const url = coreUrl.replace(/\/+$/, "");
55
- const response = await fetch(`${url}/api/v1/agents/register`, {
117
+ const url = normalizeCoreUrl(coreUrl);
118
+ const orgToken = loadSharedCredentialState(url)?.orgToken ?? "";
119
+ if (!orgToken) throw new Error("Registration failed: 401 Missing org token");
120
+ const { machineId, machineName } = getMachineInfo();
121
+ const response = await fetch(`${url}/api/v1/agents/bind`, {
56
122
  method: "POST",
57
- headers: { "Content-Type": "application/json" },
123
+ headers: {
124
+ "Content-Type": "application/json",
125
+ Authorization: `Bearer ${orgToken}`
126
+ },
58
127
  body: JSON.stringify({
59
- name,
128
+ machineId,
129
+ name: name || machineName || "cclawd-guard-agent",
60
130
  description
61
131
  })
62
132
  });
@@ -379,33 +449,6 @@ function sanitizeContent(content) {
379
449
  };
380
450
  }
381
451
  //#endregion
382
- //#region extensions/cclawd-guard/agent/machine-id.ts
383
- let cachedMachineInfo = null;
384
- /**
385
- * Build a stable per-device ID from hostname + first non-internal MAC.
386
- * Hashing avoids sending raw MAC addresses.
387
- */
388
- function getMachineInfo() {
389
- if (cachedMachineInfo) return cachedMachineInfo;
390
- const machineName = os.hostname();
391
- const interfaces = networkInterfaces();
392
- let mac = "";
393
- for (const iface of Object.values(interfaces)) {
394
- if (!iface) continue;
395
- for (const info of iface) if (!info.internal && info.mac && info.mac !== "00:00:00:00:00:00") {
396
- mac = info.mac;
397
- break;
398
- }
399
- if (mac) break;
400
- }
401
- const input = `${machineName}:${mac || "unknown"}`;
402
- cachedMachineInfo = {
403
- machineId: createHash("sha256").update(input).digest("hex").slice(0, 16),
404
- machineName
405
- };
406
- return cachedMachineInfo;
407
- }
408
- //#endregion
409
452
  //#region extensions/cclawd-guard/agent/behavior-detector.ts
410
453
  /**
411
454
  * Behavioral anomaly detector — runs at before_tool_call.
@@ -1753,57 +1796,7 @@ const openClawGuardPlugin = {
1753
1796
  }
1754
1797
  }
1755
1798
  async function initPersonalDashboard(coreUrl) {
1756
- debugLog(`initPersonalDashboard: called, personalDashboardStarted=${personalDashboardStarted}`);
1757
- if (personalDashboardStarted) {
1758
- debugLog("initPersonalDashboard: already started, skipping");
1759
- return;
1760
- }
1761
- personalDashboardStarted = true;
1762
- await new Promise((resolve) => {
1763
- setTimeout(resolve, 5e3).unref();
1764
- });
1765
- try {
1766
- const { startLocalDashboard, getPluginDataDir, DASHBOARD_PORT, DevModeError } = await import("./dashboard-launcher.js");
1767
- const dataDir = getPluginDataDir();
1768
- const result = await startLocalDashboard({
1769
- apiKey: globalCoreCredentials?.apiKey ?? "",
1770
- agentId: globalCoreCredentials?.agentId ?? "",
1771
- coreUrl,
1772
- dataDir,
1773
- autoStart: true
1774
- });
1775
- log.info(`CClawd Guard dashboard started at ${result.localUrl}`);
1776
- initDashboardClient(result.token, `http://localhost:${DASHBOARD_PORT}`);
1777
- } catch (err) {
1778
- const { DASHBOARD_PORT } = await import("./dashboard-launcher.js");
1779
- if (await checkDashboardRunning(DASHBOARD_PORT)) {
1780
- const token = loadDashboardToken();
1781
- if (token) {
1782
- debugLog(`initPersonalDashboard: connecting to existing dashboard on port ${DASHBOARD_PORT}`);
1783
- initDashboardClient(token, `http://localhost:${DASHBOARD_PORT}`);
1784
- log.info(`Connected to existing CClawd Guard dashboard at http://localhost:${DASHBOARD_PORT}`);
1785
- } else debugLog("initPersonalDashboard: dashboard running but no token found");
1786
- } else {
1787
- debugLog(`initPersonalDashboard FAILED: ${err}`);
1788
- log.debug?.(`Dashboard auto-start skipped: ${err}`);
1789
- }
1790
- }
1791
- }
1792
- /** Check if dashboard is already running */
1793
- async function checkDashboardRunning(port) {
1794
- try {
1795
- return (await fetch(`http://localhost:${port}/health`, { signal: AbortSignal.timeout(1e3) })).ok;
1796
- } catch {
1797
- return false;
1798
- }
1799
- }
1800
- /** Load dashboard session token from file */
1801
- function loadDashboardToken() {
1802
- const tokenFile = path.join(openclawHome, "credentials", "cclawd-guard", "dashboard-session-token");
1803
- try {
1804
- if (fs.existsSync(tokenFile)) return JSON.parse(fs.readFileSync(tokenFile, "utf-8")).token || null;
1805
- } catch {}
1806
- return null;
1799
+ debugLog("initPersonalDashboard: auto-start disabled");
1807
1800
  }
1808
1801
  function initDashboardClient(sessionToken, dashboardUrl) {
1809
1802
  debugLog(`initDashboardClient: dashboardUrl=${dashboardUrl} token=${sessionToken?.slice(0, 8)}...`);
@@ -1839,7 +1832,6 @@ const openClawGuardPlugin = {
1839
1832
  dashboardHeartbeatTimer = globalDashboardClient.startHeartbeat(6e4);
1840
1833
  log.debug?.(`Dashboard: connected to ${dashboardUrl}`);
1841
1834
  }
1842
- initPersonalDashboard(config.coreUrl);
1843
1835
  async function initBusinessFeatures(coreUrl) {
1844
1836
  debugLog(`initBusinessFeatures: called, credentials=${!!globalCoreCredentials}, isEnterprise=${isEnterprise}`);
1845
1837
  if (!globalCoreCredentials) {
@@ -1927,6 +1919,7 @@ const openClawGuardPlugin = {
1927
1919
  log.debug?.(`before_tool_call: ${event.toolName}`);
1928
1920
  let blocked = false;
1929
1921
  let blockReason;
1922
+ let blockFindings;
1930
1923
  if (globalBehaviorDetector) {
1931
1924
  const decision = await globalBehaviorDetector.onBeforeToolCall({
1932
1925
  sessionKey: ctx.sessionKey ?? "",
@@ -1938,9 +1931,24 @@ const openClawGuardPlugin = {
1938
1931
  if (decision?.block) {
1939
1932
  blocked = true;
1940
1933
  blockReason = decision.blockReason;
1934
+ blockFindings = decision.findings;
1941
1935
  log.warn(`BLOCKED "${event.toolName}": ${decision.blockReason}`);
1942
1936
  }
1943
1937
  }
1938
+ if (blocked) await globalEventReporter?.report(ctx.sessionKey ?? "", "before_tool_call", {
1939
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1940
+ toolName: event.toolName,
1941
+ params: event.params,
1942
+ blocked: true,
1943
+ blockReason,
1944
+ findings: blockFindings?.map((finding) => ({
1945
+ riskLevel: finding.riskLevel,
1946
+ riskType: finding.riskType,
1947
+ reason: finding.reason,
1948
+ matchedText: finding.riskContent,
1949
+ riskContent: finding.riskContent
1950
+ }))
1951
+ }, true);
1944
1952
  if (globalDashboardClient?.agentId) globalDashboardClient.reportToolCall({
1945
1953
  agentId: globalDashboardClient.agentId,
1946
1954
  sessionKey: ctx.sessionKey,
@@ -89,25 +89,6 @@
89
89
  "hono": "^4"
90
90
  }
91
91
  },
92
- "node_modules/@napi-rs/wasm-runtime": {
93
- "version": "1.1.4",
94
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
95
- "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
96
- "ideallyInert": true,
97
- "license": "MIT",
98
- "optional": true,
99
- "dependencies": {
100
- "@tybys/wasm-util": "^0.10.1"
101
- },
102
- "funding": {
103
- "type": "github",
104
- "url": "https://github.com/sponsors/Brooooooklyn"
105
- },
106
- "peerDependencies": {
107
- "@emnapi/core": "^1.7.1",
108
- "@emnapi/runtime": "^1.7.1"
109
- }
110
- },
111
92
  "node_modules/@snazzah/davey": {
112
93
  "version": "0.1.11",
113
94
  "resolved": "https://registry.npmjs.org/@snazzah/davey/-/davey-0.1.11.tgz",
@@ -136,227 +117,6 @@
136
117
  "@snazzah/davey-win32-x64-msvc": "0.1.11"
137
118
  }
138
119
  },
139
- "node_modules/@snazzah/davey-android-arm-eabi": {
140
- "version": "0.1.11",
141
- "resolved": "https://registry.npmjs.org/@snazzah/davey-android-arm-eabi/-/davey-android-arm-eabi-0.1.11.tgz",
142
- "integrity": "sha512-T1RYbNYKN6tLOcGIDKJd8OI6FBSEemwL7DOYdTMmhqfhhMr3YVN8WOhfoxGg63OcnpTN2e2c5tdY2bAx25RmQQ==",
143
- "cpu": [
144
- "arm"
145
- ],
146
- "ideallyInert": true,
147
- "license": "MIT",
148
- "optional": true,
149
- "os": [
150
- "android"
151
- ],
152
- "engines": {
153
- "node": ">= 10"
154
- }
155
- },
156
- "node_modules/@snazzah/davey-android-arm64": {
157
- "version": "0.1.11",
158
- "resolved": "https://registry.npmjs.org/@snazzah/davey-android-arm64/-/davey-android-arm64-0.1.11.tgz",
159
- "integrity": "sha512-ksJn/x2VU8h6w9eku1HT96ugSRZ7lKVkKNKbFleaFN+U99DJaPM+gMu2YvnFU4V54HR06ZBnRihnVG6VLXQpDw==",
160
- "cpu": [
161
- "arm64"
162
- ],
163
- "ideallyInert": true,
164
- "license": "MIT",
165
- "optional": true,
166
- "os": [
167
- "android"
168
- ],
169
- "engines": {
170
- "node": ">= 10"
171
- }
172
- },
173
- "node_modules/@snazzah/davey-darwin-arm64": {
174
- "version": "0.1.11",
175
- "resolved": "https://registry.npmjs.org/@snazzah/davey-darwin-arm64/-/davey-darwin-arm64-0.1.11.tgz",
176
- "integrity": "sha512-E1d7PbaaVMO3Lj9EiAPqOVbuV0xg5+PsHzHH097DDXiD1+zUDXvJaTnUWsnm5z50pJniHpi4GtaYmk+ieB/guA==",
177
- "cpu": [
178
- "arm64"
179
- ],
180
- "ideallyInert": true,
181
- "license": "MIT",
182
- "optional": true,
183
- "os": [
184
- "darwin"
185
- ],
186
- "engines": {
187
- "node": ">= 10"
188
- }
189
- },
190
- "node_modules/@snazzah/davey-darwin-x64": {
191
- "version": "0.1.11",
192
- "resolved": "https://registry.npmjs.org/@snazzah/davey-darwin-x64/-/davey-darwin-x64-0.1.11.tgz",
193
- "integrity": "sha512-Tl4TI/LTmgJZepgbgVMYDi8RqlAkPtPg1OEBPl7a9Tn3AwR36Vs6lyIT1cs/lGy/ds/+B+mKI4rPObN1cyILTw==",
194
- "cpu": [
195
- "x64"
196
- ],
197
- "ideallyInert": true,
198
- "license": "MIT",
199
- "optional": true,
200
- "os": [
201
- "darwin"
202
- ],
203
- "engines": {
204
- "node": ">= 10"
205
- }
206
- },
207
- "node_modules/@snazzah/davey-freebsd-x64": {
208
- "version": "0.1.11",
209
- "resolved": "https://registry.npmjs.org/@snazzah/davey-freebsd-x64/-/davey-freebsd-x64-0.1.11.tgz",
210
- "integrity": "sha512-T8Iw9FXkuI1T+YBAFzh9v/TXf9IOTOSqnd/BFpTRTrlW72PR2lhIidzSmg027VxO7r5pX47iFwiOkb9I/NU/EA==",
211
- "cpu": [
212
- "x64"
213
- ],
214
- "ideallyInert": true,
215
- "license": "MIT",
216
- "optional": true,
217
- "os": [
218
- "freebsd"
219
- ],
220
- "engines": {
221
- "node": ">= 10"
222
- }
223
- },
224
- "node_modules/@snazzah/davey-linux-arm-gnueabihf": {
225
- "version": "0.1.11",
226
- "resolved": "https://registry.npmjs.org/@snazzah/davey-linux-arm-gnueabihf/-/davey-linux-arm-gnueabihf-0.1.11.tgz",
227
- "integrity": "sha512-1Txj+8pqA8uq/OGtaUaBFWAPnNMQzFgIywj0iA7EI4xZl+mab48/pv+YZ1pNb/suC6ynsW44oB9efiXSdcUAgA==",
228
- "cpu": [
229
- "arm"
230
- ],
231
- "ideallyInert": true,
232
- "license": "MIT",
233
- "optional": true,
234
- "os": [
235
- "linux"
236
- ],
237
- "engines": {
238
- "node": ">= 10"
239
- }
240
- },
241
- "node_modules/@snazzah/davey-linux-arm64-gnu": {
242
- "version": "0.1.11",
243
- "resolved": "https://registry.npmjs.org/@snazzah/davey-linux-arm64-gnu/-/davey-linux-arm64-gnu-0.1.11.tgz",
244
- "integrity": "sha512-ERzF5nM/IYW1BcN3wLXpEwBCGLFf0kGJUVhaV6yfiInz0tkU8UmvrrgpaMaACfMjIhfWdq5CcX+aTkXo/saNcg==",
245
- "cpu": [
246
- "arm64"
247
- ],
248
- "ideallyInert": true,
249
- "license": "MIT",
250
- "optional": true,
251
- "os": [
252
- "linux"
253
- ],
254
- "engines": {
255
- "node": ">= 10"
256
- }
257
- },
258
- "node_modules/@snazzah/davey-linux-arm64-musl": {
259
- "version": "0.1.11",
260
- "resolved": "https://registry.npmjs.org/@snazzah/davey-linux-arm64-musl/-/davey-linux-arm64-musl-0.1.11.tgz",
261
- "integrity": "sha512-e6pX6Hiabtz99q+H/YHNkm9JVlpqN8HGh0qPib8G2+UY4/SSH8WvqWipk3v581dMy2oyCHt7MOoY1aU1P1N/xA==",
262
- "cpu": [
263
- "arm64"
264
- ],
265
- "ideallyInert": true,
266
- "license": "MIT",
267
- "optional": true,
268
- "os": [
269
- "linux"
270
- ],
271
- "engines": {
272
- "node": ">= 10"
273
- }
274
- },
275
- "node_modules/@snazzah/davey-linux-x64-gnu": {
276
- "version": "0.1.11",
277
- "resolved": "https://registry.npmjs.org/@snazzah/davey-linux-x64-gnu/-/davey-linux-x64-gnu-0.1.11.tgz",
278
- "integrity": "sha512-TW5bSoqChOJMbvsDb4wAATYrxmAXuNnse7wFNVSAJUaZKSeRfZbu3UAiPWSNn7GwLwSfU6hg322KZUn8IWCuvg==",
279
- "cpu": [
280
- "x64"
281
- ],
282
- "ideallyInert": true,
283
- "license": "MIT",
284
- "optional": true,
285
- "os": [
286
- "linux"
287
- ],
288
- "engines": {
289
- "node": ">= 10"
290
- }
291
- },
292
- "node_modules/@snazzah/davey-linux-x64-musl": {
293
- "version": "0.1.11",
294
- "resolved": "https://registry.npmjs.org/@snazzah/davey-linux-x64-musl/-/davey-linux-x64-musl-0.1.11.tgz",
295
- "integrity": "sha512-5j6Pmc+Wzv5lSxVP6quA7teYRJXibkZqQyYGfTDnTsUOO5dPpcojpqlXlkhyvsA1OAQTj4uxbOCciN3cVWwzug==",
296
- "cpu": [
297
- "x64"
298
- ],
299
- "ideallyInert": true,
300
- "license": "MIT",
301
- "optional": true,
302
- "os": [
303
- "linux"
304
- ],
305
- "engines": {
306
- "node": ">= 10"
307
- }
308
- },
309
- "node_modules/@snazzah/davey-wasm32-wasi": {
310
- "version": "0.1.11",
311
- "resolved": "https://registry.npmjs.org/@snazzah/davey-wasm32-wasi/-/davey-wasm32-wasi-0.1.11.tgz",
312
- "integrity": "sha512-rKOwZ/0J8lp+4VEyOdMDBRP9KR+PksZpa9V1Qn0veMzy4FqTVKthkxwGqewheFe0SFg9fdvt798l/PBFrfDeZw==",
313
- "cpu": [
314
- "wasm32"
315
- ],
316
- "ideallyInert": true,
317
- "license": "MIT",
318
- "optional": true,
319
- "dependencies": {
320
- "@napi-rs/wasm-runtime": "^1.1.2"
321
- },
322
- "engines": {
323
- "node": ">=14.0.0"
324
- }
325
- },
326
- "node_modules/@snazzah/davey-win32-arm64-msvc": {
327
- "version": "0.1.11",
328
- "resolved": "https://registry.npmjs.org/@snazzah/davey-win32-arm64-msvc/-/davey-win32-arm64-msvc-0.1.11.tgz",
329
- "integrity": "sha512-5fptJU4tX901m3mj0SHiBljMrPT4ZEsynbBhR7bK1yn9TY1jjyhN8EFi7QF5IWtUEni+0mia2BCMHZ5ZkmFZqQ==",
330
- "cpu": [
331
- "arm64"
332
- ],
333
- "ideallyInert": true,
334
- "license": "MIT",
335
- "optional": true,
336
- "os": [
337
- "win32"
338
- ],
339
- "engines": {
340
- "node": ">= 10"
341
- }
342
- },
343
- "node_modules/@snazzah/davey-win32-ia32-msvc": {
344
- "version": "0.1.11",
345
- "resolved": "https://registry.npmjs.org/@snazzah/davey-win32-ia32-msvc/-/davey-win32-ia32-msvc-0.1.11.tgz",
346
- "integrity": "sha512-ualexn8SeLsiMHhWfzVrzRcjHgcBapg++FPaVgJJxoh2S/jCRiklXOu3luqIZdJdNKvhe2V9SwO/cImPeIIBKw==",
347
- "cpu": [
348
- "ia32"
349
- ],
350
- "ideallyInert": true,
351
- "license": "MIT",
352
- "optional": true,
353
- "os": [
354
- "win32"
355
- ],
356
- "engines": {
357
- "node": ">= 10"
358
- }
359
- },
360
120
  "node_modules/@snazzah/davey-win32-x64-msvc": {
361
121
  "version": "0.1.11",
362
122
  "resolved": "https://registry.npmjs.org/@snazzah/davey-win32-x64-msvc/-/davey-win32-x64-msvc-0.1.11.tgz",
@@ -373,17 +133,6 @@
373
133
  "node": ">= 10"
374
134
  }
375
135
  },
376
- "node_modules/@tybys/wasm-util": {
377
- "version": "0.10.1",
378
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
379
- "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
380
- "ideallyInert": true,
381
- "license": "MIT",
382
- "optional": true,
383
- "dependencies": {
384
- "tslib": "^2.4.0"
385
- }
386
- },
387
136
  "node_modules/@types/bun": {
388
137
  "version": "1.3.9",
389
138
  "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.3.9.tgz",
@@ -395,12 +144,12 @@
395
144
  }
396
145
  },
397
146
  "node_modules/@types/node": {
398
- "version": "25.6.0",
399
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz",
400
- "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==",
147
+ "version": "25.8.0",
148
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.8.0.tgz",
149
+ "integrity": "sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==",
401
150
  "license": "MIT",
402
151
  "dependencies": {
403
- "undici-types": "~7.19.0"
152
+ "undici-types": ">=7.24.0 <7.24.7"
404
153
  }
405
154
  },
406
155
  "node_modules/@types/ws": {
@@ -515,9 +264,9 @@
515
264
  "license": "0BSD"
516
265
  },
517
266
  "node_modules/undici-types": {
518
- "version": "7.19.2",
519
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
520
- "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==",
267
+ "version": "7.24.6",
268
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
269
+ "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
521
270
  "license": "MIT"
522
271
  },
523
272
  "node_modules/ws": {
@@ -8,7 +8,7 @@ This package contains type definitions for node (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Fri, 10 Apr 2026 03:39:58 GMT
11
+ * Last updated: Thu, 14 May 2026 16:39:50 GMT
12
12
  * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
13
 
14
14
  # Credits
@@ -528,15 +528,12 @@ declare module "node:events" {
528
528
  * import { addAbortListener } from 'node:events';
529
529
  *
530
530
  * function example(signal) {
531
- * let disposable;
532
- * try {
533
- * signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
534
- * disposable = addAbortListener(signal, (e) => {
535
- * // Do something when signal is aborted.
536
- * });
537
- * } finally {
538
- * disposable?.[Symbol.dispose]();
539
- * }
531
+ * signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
532
+ * // addAbortListener() returns a disposable, so the `using` keyword ensures
533
+ * // the abort listener is automatically removed when this scope exits.
534
+ * using _ = addAbortListener(signal, (e) => {
535
+ * // Do something when signal is aborted.
536
+ * });
540
537
  * }
541
538
  * ```
542
539
  * @since v20.5.0
@@ -802,19 +802,42 @@ declare module "node:fs/promises" {
802
802
  * @since v10.0.0
803
803
  * @return Fulfills with the {fs.Stats} object for the given `path`.
804
804
  */
805
+ function stat(path: PathLike): Promise<Stats>;
805
806
  function stat(
806
807
  path: PathLike,
807
808
  opts?: StatOptions & {
808
809
  bigint?: false | undefined;
810
+ throwIfNoEntry?: true | undefined;
809
811
  },
810
812
  ): Promise<Stats>;
811
813
  function stat(
812
814
  path: PathLike,
813
815
  opts: StatOptions & {
814
816
  bigint: true;
817
+ throwIfNoEntry?: true | undefined;
815
818
  },
816
819
  ): Promise<BigIntStats>;
817
- function stat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
820
+ function stat(
821
+ path: PathLike,
822
+ opts: StatOptions & {
823
+ bigint?: false | undefined;
824
+ throwIfNoEntry: false;
825
+ },
826
+ ): Promise<Stats | undefined>;
827
+ function stat(
828
+ path: PathLike,
829
+ opts: StatOptions & {
830
+ bigint: true;
831
+ throwIfNoEntry: false;
832
+ },
833
+ ): Promise<BigIntStats | undefined>;
834
+ function stat(
835
+ path: PathLike,
836
+ opts: StatOptions & {
837
+ throwIfNoEntry?: true | undefined;
838
+ },
839
+ ): Promise<Stats | BigIntStats>;
840
+ function stat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats | undefined>;
818
841
  /**
819
842
  * @since v19.6.0, v18.15.0
820
843
  * @return Fulfills with the {fs.StatFs} object for the given `path`.