toolcraft 0.0.749 → 0.0.751

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 (374) hide show
  1. package/composition.json +23 -3
  2. package/dist/composition.json +23 -3
  3. package/dist/human-in-loop/approvals-commands.d.ts +1 -1
  4. package/dist/index.d.ts +1 -262
  5. package/dist/index.js +1 -573
  6. package/dist/runtime-platform.d.ts +2 -0
  7. package/dist/runtime-platform.js +2 -0
  8. package/dist/runtime-platform.workerd.d.ts +3 -0
  9. package/dist/runtime-platform.workerd.js +10 -0
  10. package/dist/runtime.d.ts +262 -0
  11. package/dist/runtime.js +576 -0
  12. package/node_modules/@noble/hashes/LICENSE +21 -0
  13. package/node_modules/@noble/hashes/README.md +478 -0
  14. package/node_modules/@noble/hashes/_blake.d.ts +20 -0
  15. package/node_modules/@noble/hashes/_blake.js +59 -0
  16. package/node_modules/@noble/hashes/_md.d.ts +95 -0
  17. package/node_modules/@noble/hashes/_md.js +209 -0
  18. package/node_modules/@noble/hashes/_u64.d.ts +36 -0
  19. package/node_modules/@noble/hashes/_u64.js +77 -0
  20. package/node_modules/@noble/hashes/argon2.d.ts +148 -0
  21. package/node_modules/@noble/hashes/argon2.js +577 -0
  22. package/node_modules/@noble/hashes/blake1.d.ts +162 -0
  23. package/node_modules/@noble/hashes/blake1.js +630 -0
  24. package/node_modules/@noble/hashes/blake2.d.ts +203 -0
  25. package/node_modules/@noble/hashes/blake2.js +573 -0
  26. package/node_modules/@noble/hashes/blake3.d.ts +68 -0
  27. package/node_modules/@noble/hashes/blake3.js +310 -0
  28. package/node_modules/@noble/hashes/eskdf.d.ts +91 -0
  29. package/node_modules/@noble/hashes/eskdf.js +225 -0
  30. package/node_modules/@noble/hashes/hkdf.d.ts +70 -0
  31. package/node_modules/@noble/hashes/hkdf.js +152 -0
  32. package/node_modules/@noble/hashes/hmac.d.ts +50 -0
  33. package/node_modules/@noble/hashes/hmac.js +93 -0
  34. package/node_modules/@noble/hashes/index.d.ts +1 -0
  35. package/node_modules/@noble/hashes/index.js +34 -0
  36. package/node_modules/@noble/hashes/legacy.d.ts +107 -0
  37. package/node_modules/@noble/hashes/legacy.js +348 -0
  38. package/node_modules/@noble/hashes/package.json +91 -0
  39. package/node_modules/@noble/hashes/pbkdf2.d.ts +66 -0
  40. package/node_modules/@noble/hashes/pbkdf2.js +176 -0
  41. package/node_modules/@noble/hashes/scrypt.d.ts +98 -0
  42. package/node_modules/@noble/hashes/scrypt.js +304 -0
  43. package/node_modules/@noble/hashes/sha2.d.ts +176 -0
  44. package/node_modules/@noble/hashes/sha2.js +446 -0
  45. package/node_modules/@noble/hashes/sha3-addons.d.ts +533 -0
  46. package/node_modules/@noble/hashes/sha3-addons.js +973 -0
  47. package/node_modules/@noble/hashes/sha3.d.ts +208 -0
  48. package/node_modules/@noble/hashes/sha3.js +475 -0
  49. package/node_modules/@noble/hashes/src/_blake.ts +67 -0
  50. package/node_modules/@noble/hashes/src/_md.ts +227 -0
  51. package/node_modules/@noble/hashes/src/_u64.ts +111 -0
  52. package/node_modules/@noble/hashes/src/argon2.ts +693 -0
  53. package/node_modules/@noble/hashes/src/blake1.ts +677 -0
  54. package/node_modules/@noble/hashes/src/blake2.ts +648 -0
  55. package/node_modules/@noble/hashes/src/blake3.ts +344 -0
  56. package/node_modules/@noble/hashes/src/eskdf.ts +265 -0
  57. package/node_modules/@noble/hashes/src/hkdf.ts +161 -0
  58. package/node_modules/@noble/hashes/src/hmac.ts +130 -0
  59. package/node_modules/@noble/hashes/src/index.ts +33 -0
  60. package/node_modules/@noble/hashes/src/legacy.ts +361 -0
  61. package/node_modules/@noble/hashes/src/pbkdf2.ts +219 -0
  62. package/node_modules/@noble/hashes/src/scrypt.ts +375 -0
  63. package/node_modules/@noble/hashes/src/sha2.ts +486 -0
  64. package/node_modules/@noble/hashes/src/sha3-addons.ts +1157 -0
  65. package/node_modules/@noble/hashes/src/sha3.ts +525 -0
  66. package/node_modules/@noble/hashes/src/utils.ts +978 -0
  67. package/node_modules/@noble/hashes/src/webcrypto.ts +283 -0
  68. package/node_modules/@noble/hashes/utils.d.ts +560 -0
  69. package/node_modules/@noble/hashes/utils.js +687 -0
  70. package/node_modules/@noble/hashes/webcrypto.d.ts +121 -0
  71. package/node_modules/@noble/hashes/webcrypto.js +228 -0
  72. package/node_modules/@poe-code/agent-mcp-config/dist/apply.js +23 -9
  73. package/node_modules/@poe-code/config-mutations/README.md +2 -0
  74. package/node_modules/@poe-code/config-mutations/dist/execution/apply-mutation.js +4 -5
  75. package/node_modules/@poe-code/config-mutations/dist/execution/path-utils.d.ts +3 -4
  76. package/node_modules/@poe-code/config-mutations/dist/execution/path-utils.js +3 -3
  77. package/node_modules/@poe-code/config-mutations/dist/template/render.js +1 -1
  78. package/node_modules/@poe-code/config-mutations/dist/testing/mock-fs.d.ts +2 -2
  79. package/node_modules/@poe-code/config-mutations/dist/testing/mock-fs.js +3 -6
  80. package/node_modules/@poe-code/config-mutations/dist/types.d.ts +4 -2
  81. package/node_modules/@poe-code/process-runner/README.md +2 -1
  82. package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.d.ts +1 -0
  83. package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.js +1 -0
  84. package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.workerd.d.ts +2 -0
  85. package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.workerd.js +1 -0
  86. package/node_modules/@poe-code/process-runner/dist/types.d.ts +1 -1
  87. package/node_modules/@poe-code/process-runner/dist/workspace-transfer.d.ts +6 -5
  88. package/node_modules/@poe-code/process-runner/dist/workspace-transfer.js +67 -29
  89. package/node_modules/@poe-code/process-runner/package.json +13 -0
  90. package/node_modules/@poe-code/safe-fs/LICENSE +21 -0
  91. package/node_modules/@poe-code/safe-fs/PROVENANCE.json +428 -0
  92. package/node_modules/@poe-code/safe-fs/README.md +411 -0
  93. package/node_modules/@poe-code/safe-fs/dist/bridge/confinement.d.ts +3 -0
  94. package/node_modules/@poe-code/safe-fs/dist/bridge/confinement.js +171 -0
  95. package/node_modules/@poe-code/safe-fs/dist/bridge/filesystem.d.ts +93 -0
  96. package/node_modules/@poe-code/safe-fs/dist/bridge/filesystem.js +453 -0
  97. package/node_modules/@poe-code/safe-fs/dist/bridge/index.d.ts +7 -0
  98. package/node_modules/@poe-code/safe-fs/dist/bridge/index.js +19 -0
  99. package/node_modules/@poe-code/safe-fs/dist/bridge/stats.d.ts +4 -0
  100. package/node_modules/@poe-code/safe-fs/dist/bridge/stats.js +37 -0
  101. package/node_modules/@poe-code/safe-fs/dist/bridge/types.d.ts +81 -0
  102. package/node_modules/@poe-code/safe-fs/dist/bridge/types.js +1 -0
  103. package/node_modules/@poe-code/safe-fs/dist/bridge/values.d.ts +6 -0
  104. package/node_modules/@poe-code/safe-fs/dist/bridge/values.js +65 -0
  105. package/node_modules/@poe-code/safe-fs/dist/config/memory.d.ts +3 -0
  106. package/node_modules/@poe-code/safe-fs/dist/config/memory.js +7 -0
  107. package/node_modules/@poe-code/safe-fs/dist/config/real.d.ts +5 -0
  108. package/node_modules/@poe-code/safe-fs/dist/config/real.js +16 -0
  109. package/node_modules/@poe-code/safe-fs/dist/config/registry.d.ts +2 -0
  110. package/node_modules/@poe-code/safe-fs/dist/config/registry.js +15 -0
  111. package/node_modules/@poe-code/safe-fs/dist/config.d.ts +15 -0
  112. package/node_modules/@poe-code/safe-fs/dist/config.js +46 -0
  113. package/node_modules/@poe-code/safe-fs/dist/config.node.d.ts +2 -0
  114. package/node_modules/@poe-code/safe-fs/dist/config.node.js +11 -0
  115. package/node_modules/@poe-code/safe-fs/dist/config.portable.d.ts +3 -0
  116. package/node_modules/@poe-code/safe-fs/dist/config.portable.js +9 -0
  117. package/node_modules/@poe-code/safe-fs/dist/contracts/abort.d.ts +5 -0
  118. package/node_modules/@poe-code/safe-fs/dist/contracts/abort.js +34 -0
  119. package/node_modules/@poe-code/safe-fs/dist/contracts/cleanup.d.ts +1 -0
  120. package/node_modules/@poe-code/safe-fs/dist/contracts/cleanup.js +9 -0
  121. package/node_modules/@poe-code/safe-fs/dist/contracts/descriptor.d.ts +38 -0
  122. package/node_modules/@poe-code/safe-fs/dist/contracts/descriptor.js +1 -0
  123. package/node_modules/@poe-code/safe-fs/dist/contracts/errors.d.ts +53 -0
  124. package/node_modules/@poe-code/safe-fs/dist/contracts/errors.js +99 -0
  125. package/node_modules/@poe-code/safe-fs/dist/contracts/filesystem.d.ts +379 -0
  126. package/node_modules/@poe-code/safe-fs/dist/contracts/filesystem.js +1 -0
  127. package/node_modules/@poe-code/safe-fs/dist/contracts/index.d.ts +6 -0
  128. package/node_modules/@poe-code/safe-fs/dist/contracts/index.js +6 -0
  129. package/node_modules/@poe-code/safe-fs/dist/contracts/io.d.ts +12 -0
  130. package/node_modules/@poe-code/safe-fs/dist/contracts/io.js +321 -0
  131. package/node_modules/@poe-code/safe-fs/dist/contracts/object.d.ts +134 -0
  132. package/node_modules/@poe-code/safe-fs/dist/contracts/object.js +97 -0
  133. package/node_modules/@poe-code/safe-fs/dist/contracts/path.d.ts +3 -0
  134. package/node_modules/@poe-code/safe-fs/dist/contracts/path.js +2 -0
  135. package/node_modules/@poe-code/safe-fs/dist/contracts/portable-path.d.ts +21 -0
  136. package/node_modules/@poe-code/safe-fs/dist/contracts/portable-path.js +78 -0
  137. package/node_modules/@poe-code/safe-fs/dist/contracts/virtual-path.d.ts +15 -0
  138. package/node_modules/@poe-code/safe-fs/dist/contracts/virtual-path.js +162 -0
  139. package/node_modules/@poe-code/safe-fs/dist/core.d.ts +19 -0
  140. package/node_modules/@poe-code/safe-fs/dist/core.js +17 -0
  141. package/node_modules/@poe-code/safe-fs/dist/fs/capabilities.d.ts +10 -0
  142. package/node_modules/@poe-code/safe-fs/dist/fs/capabilities.js +216 -0
  143. package/node_modules/@poe-code/safe-fs/dist/fs/conditional-chmod.d.ts +7 -0
  144. package/node_modules/@poe-code/safe-fs/dist/fs/conditional-chmod.js +19 -0
  145. package/node_modules/@poe-code/safe-fs/dist/fs/descriptor.d.ts +21 -0
  146. package/node_modules/@poe-code/safe-fs/dist/fs/descriptor.js +279 -0
  147. package/node_modules/@poe-code/safe-fs/dist/fs/devices/index.d.ts +59 -0
  148. package/node_modules/@poe-code/safe-fs/dist/fs/devices/index.js +875 -0
  149. package/node_modules/@poe-code/safe-fs/dist/fs/devices/path.d.ts +7 -0
  150. package/node_modules/@poe-code/safe-fs/dist/fs/devices/path.js +250 -0
  151. package/node_modules/@poe-code/safe-fs/dist/fs/devices/stream.d.ts +6 -0
  152. package/node_modules/@poe-code/safe-fs/dist/fs/devices/stream.js +136 -0
  153. package/node_modules/@poe-code/safe-fs/dist/fs/directory-admission.d.ts +3 -0
  154. package/node_modules/@poe-code/safe-fs/dist/fs/directory-admission.js +14 -0
  155. package/node_modules/@poe-code/safe-fs/dist/fs/memory/atomic-view.d.ts +11 -0
  156. package/node_modules/@poe-code/safe-fs/dist/fs/memory/atomic-view.js +13 -0
  157. package/node_modules/@poe-code/safe-fs/dist/fs/memory/index.d.ts +186 -0
  158. package/node_modules/@poe-code/safe-fs/dist/fs/memory/index.js +3771 -0
  159. package/node_modules/@poe-code/safe-fs/dist/fs/memory/ledger.d.ts +26 -0
  160. package/node_modules/@poe-code/safe-fs/dist/fs/memory/ledger.js +96 -0
  161. package/node_modules/@poe-code/safe-fs/dist/fs/memory/limits.d.ts +13 -0
  162. package/node_modules/@poe-code/safe-fs/dist/fs/memory/limits.js +26 -0
  163. package/node_modules/@poe-code/safe-fs/dist/fs/memory/missing-target.d.ts +15 -0
  164. package/node_modules/@poe-code/safe-fs/dist/fs/memory/missing-target.js +144 -0
  165. package/node_modules/@poe-code/safe-fs/dist/fs/mount/comparison.d.ts +19 -0
  166. package/node_modules/@poe-code/safe-fs/dist/fs/mount/comparison.js +118 -0
  167. package/node_modules/@poe-code/safe-fs/dist/fs/mount/identity.d.ts +6 -0
  168. package/node_modules/@poe-code/safe-fs/dist/fs/mount/identity.js +29 -0
  169. package/node_modules/@poe-code/safe-fs/dist/fs/mount/index.d.ts +74 -0
  170. package/node_modules/@poe-code/safe-fs/dist/fs/mount/index.js +1291 -0
  171. package/node_modules/@poe-code/safe-fs/dist/fs/object-authority.d.ts +27 -0
  172. package/node_modules/@poe-code/safe-fs/dist/fs/object-authority.js +287 -0
  173. package/node_modules/@poe-code/safe-fs/dist/fs/object-publication/index.d.ts +45 -0
  174. package/node_modules/@poe-code/safe-fs/dist/fs/object-publication/index.js +531 -0
  175. package/node_modules/@poe-code/safe-fs/dist/fs/overlay/index.d.ts +87 -0
  176. package/node_modules/@poe-code/safe-fs/dist/fs/overlay/index.js +1185 -0
  177. package/node_modules/@poe-code/safe-fs/dist/fs/overlay/memory-publication.d.ts +42 -0
  178. package/node_modules/@poe-code/safe-fs/dist/fs/overlay/memory-publication.js +558 -0
  179. package/node_modules/@poe-code/safe-fs/dist/fs/path-namespace.d.ts +4 -0
  180. package/node_modules/@poe-code/safe-fs/dist/fs/path-namespace.js +63 -0
  181. package/node_modules/@poe-code/safe-fs/dist/fs/quota/index.d.ts +12 -0
  182. package/node_modules/@poe-code/safe-fs/dist/fs/quota/index.js +520 -0
  183. package/node_modules/@poe-code/safe-fs/dist/fs/readonly/index.d.ts +37 -0
  184. package/node_modules/@poe-code/safe-fs/dist/fs/readonly/index.js +208 -0
  185. package/node_modules/@poe-code/safe-fs/dist/fs/real/allocation.d.ts +1 -0
  186. package/node_modules/@poe-code/safe-fs/dist/fs/real/allocation.js +8 -0
  187. package/node_modules/@poe-code/safe-fs/dist/fs/real/index.d.ts +105 -0
  188. package/node_modules/@poe-code/safe-fs/dist/fs/real/index.js +1259 -0
  189. package/node_modules/@poe-code/safe-fs/dist/fs/s3/authority.d.ts +7 -0
  190. package/node_modules/@poe-code/safe-fs/dist/fs/s3/authority.js +38 -0
  191. package/node_modules/@poe-code/safe-fs/dist/fs/s3/filesystem.d.ts +130 -0
  192. package/node_modules/@poe-code/safe-fs/dist/fs/s3/filesystem.js +1137 -0
  193. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/bytes.d.ts +1 -0
  194. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/bytes.js +9 -0
  195. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/index.d.ts +2 -0
  196. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/index.js +1 -0
  197. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-fetch.d.ts +15 -0
  198. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-fetch.js +74 -0
  199. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-node.d.ts +4 -0
  200. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-node.js +111 -0
  201. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request.d.ts +17 -0
  202. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request.js +89 -0
  203. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/signature.d.ts +20 -0
  204. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/signature.js +76 -0
  205. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/transport.d.ts +3 -0
  206. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/transport.js +478 -0
  207. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/types.d.ts +30 -0
  208. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/types.js +1 -0
  209. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/xml.d.ts +14 -0
  210. package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/xml.js +192 -0
  211. package/node_modules/@poe-code/safe-fs/dist/fs/s3/index.d.ts +8 -0
  212. package/node_modules/@poe-code/safe-fs/dist/fs/s3/index.js +4 -0
  213. package/node_modules/@poe-code/safe-fs/dist/fs/s3/key-order.d.ts +2 -0
  214. package/node_modules/@poe-code/safe-fs/dist/fs/s3/key-order.js +11 -0
  215. package/node_modules/@poe-code/safe-fs/dist/fs/s3/manifest-admission.d.ts +8 -0
  216. package/node_modules/@poe-code/safe-fs/dist/fs/s3/manifest-admission.js +167 -0
  217. package/node_modules/@poe-code/safe-fs/dist/fs/s3/mock.d.ts +48 -0
  218. package/node_modules/@poe-code/safe-fs/dist/fs/s3/mock.js +249 -0
  219. package/node_modules/@poe-code/safe-fs/dist/fs/s3/namespace.d.ts +13 -0
  220. package/node_modules/@poe-code/safe-fs/dist/fs/s3/namespace.js +400 -0
  221. package/node_modules/@poe-code/safe-fs/dist/fs/s3/registry.d.ts +10 -0
  222. package/node_modules/@poe-code/safe-fs/dist/fs/s3/registry.js +73 -0
  223. package/node_modules/@poe-code/safe-fs/dist/fs/s3/transport.d.ts +103 -0
  224. package/node_modules/@poe-code/safe-fs/dist/fs/s3/transport.js +28 -0
  225. package/node_modules/@poe-code/safe-fs/dist/fs/scoped.d.ts +19 -0
  226. package/node_modules/@poe-code/safe-fs/dist/fs/scoped.js +663 -0
  227. package/node_modules/@poe-code/safe-fs/dist/fs/staging-ancestry.d.ts +8 -0
  228. package/node_modules/@poe-code/safe-fs/dist/fs/staging-ancestry.js +115 -0
  229. package/node_modules/@poe-code/safe-fs/dist/fs/staging-cleanup.d.ts +5 -0
  230. package/node_modules/@poe-code/safe-fs/dist/fs/staging-cleanup.js +63 -0
  231. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/index.d.ts +2 -0
  232. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/index.js +1 -0
  233. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/resource-id.d.ts +18 -0
  234. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/resource-id.js +109 -0
  235. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/webdav.d.ts +141 -0
  236. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/webdav.js +1377 -0
  237. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/xml.d.ts +15 -0
  238. package/node_modules/@poe-code/safe-fs/dist/fs/webdav/xml.js +59 -0
  239. package/node_modules/@poe-code/safe-fs/dist/index.d.ts +25 -0
  240. package/node_modules/@poe-code/safe-fs/dist/index.js +21 -0
  241. package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/linux-x64-glibc.node +0 -0
  242. package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/loader.d.ts +5 -0
  243. package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/loader.mjs +120 -0
  244. package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/manifest.json +46 -0
  245. package/node_modules/@poe-code/safe-fs/dist/node/filesystem.d.ts +19 -0
  246. package/node_modules/@poe-code/safe-fs/dist/node/filesystem.js +30 -0
  247. package/node_modules/@poe-code/safe-fs/dist/node/host.d.ts +3 -0
  248. package/node_modules/@poe-code/safe-fs/dist/node/host.js +78 -0
  249. package/node_modules/@poe-code/safe-fs/dist/node/index.d.ts +3 -0
  250. package/node_modules/@poe-code/safe-fs/dist/node/index.js +2 -0
  251. package/node_modules/@poe-code/safe-fs/dist/node/native-seek-unavailable.d.ts +1 -0
  252. package/node_modules/@poe-code/safe-fs/dist/node/native-seek-unavailable.js +5 -0
  253. package/node_modules/@poe-code/safe-fs/dist/node/native-seek.d.ts +3 -0
  254. package/node_modules/@poe-code/safe-fs/dist/node/native-seek.js +54 -0
  255. package/node_modules/@poe-code/safe-fs/dist/node/stats.d.ts +1 -0
  256. package/node_modules/@poe-code/safe-fs/dist/node/stats.js +1 -0
  257. package/node_modules/@poe-code/safe-fs/dist/node/values.d.ts +1 -0
  258. package/node_modules/@poe-code/safe-fs/dist/node/values.js +1 -0
  259. package/node_modules/@poe-code/safe-fs/dist/node-host.d.ts +1 -0
  260. package/node_modules/@poe-code/safe-fs/dist/node-host.js +1 -0
  261. package/node_modules/@poe-code/safe-fs/dist/node-unavailable.d.ts +1 -0
  262. package/node_modules/@poe-code/safe-fs/dist/node-unavailable.js +1 -0
  263. package/node_modules/@poe-code/safe-fs/dist/package.json +29 -0
  264. package/node_modules/@poe-code/safe-fs/dist/platform/browser-path.d.ts +1 -0
  265. package/node_modules/@poe-code/safe-fs/dist/platform/browser-path.js +1 -0
  266. package/node_modules/@poe-code/safe-fs/dist/platform/browser.d.ts +26 -0
  267. package/node_modules/@poe-code/safe-fs/dist/platform/browser.js +58 -0
  268. package/node_modules/@poe-code/safe-fs/dist/platform/node-path.d.ts +1 -0
  269. package/node_modules/@poe-code/safe-fs/dist/platform/node-path.js +1 -0
  270. package/node_modules/@poe-code/safe-fs/dist/platform/node.d.ts +26 -0
  271. package/node_modules/@poe-code/safe-fs/dist/platform/node.js +64 -0
  272. package/node_modules/@poe-code/safe-fs/dist/platform/transport-budget.d.ts +9 -0
  273. package/node_modules/@poe-code/safe-fs/dist/platform/transport-budget.js +17 -0
  274. package/node_modules/@poe-code/safe-fs/dist/python/emscripten.d.ts +15 -0
  275. package/node_modules/@poe-code/safe-fs/dist/python/emscripten.js +357 -0
  276. package/node_modules/@poe-code/safe-fs/dist/python/filesystem.d.ts +51 -0
  277. package/node_modules/@poe-code/safe-fs/dist/python/filesystem.js +243 -0
  278. package/node_modules/@poe-code/safe-fs/dist/python/flags.d.ts +3 -0
  279. package/node_modules/@poe-code/safe-fs/dist/python/flags.js +14 -0
  280. package/node_modules/@poe-code/safe-fs/dist/python/index.d.ts +9 -0
  281. package/node_modules/@poe-code/safe-fs/dist/python/index.js +5 -0
  282. package/node_modules/@poe-code/safe-fs/dist/python/native.d.ts +18 -0
  283. package/node_modules/@poe-code/safe-fs/dist/python/native.js +446 -0
  284. package/node_modules/@poe-code/safe-fs/dist/python/request.d.ts +2 -0
  285. package/node_modules/@poe-code/safe-fs/dist/python/request.js +61 -0
  286. package/node_modules/@poe-code/safe-fs/dist/python/stat.d.ts +8 -0
  287. package/node_modules/@poe-code/safe-fs/dist/python/stat.js +34 -0
  288. package/node_modules/@poe-code/safe-fs/dist/runtime-core.d.ts +27 -0
  289. package/node_modules/@poe-code/safe-fs/dist/runtime-core.js +57 -0
  290. package/node_modules/@poe-code/safe-fs/dist/testing/atomic-filesystem.d.ts +16 -0
  291. package/node_modules/@poe-code/safe-fs/dist/testing/atomic-filesystem.js +496 -0
  292. package/node_modules/@poe-code/safe-fs/dist/testing/object-io-control.d.ts +23 -0
  293. package/node_modules/@poe-code/safe-fs/dist/testing/object-io-control.js +39 -0
  294. package/node_modules/@poe-code/safe-fs/dist/testing/object-io-metrics.d.ts +31 -0
  295. package/node_modules/@poe-code/safe-fs/dist/testing/object-io-metrics.js +143 -0
  296. package/node_modules/@poe-code/safe-fs/dist/testing/object-publication.d.ts +19 -0
  297. package/node_modules/@poe-code/safe-fs/dist/testing/object-publication.js +209 -0
  298. package/node_modules/@poe-code/safe-fs/dist/xml.d.ts +1 -0
  299. package/node_modules/@poe-code/safe-fs/dist/xml.js +1 -0
  300. package/node_modules/@poe-code/safe-fs/package.json +189 -0
  301. package/node_modules/@poe-code/task-list/README.md +2 -0
  302. package/node_modules/@poe-code/task-list/dist/backends/gh-issues-client.d.ts +1 -1
  303. package/node_modules/@poe-code/task-list/dist/backends/gh-issues-client.js +11 -4
  304. package/node_modules/@poe-code/task-list/dist/backends/markdown-dir.js +2 -2
  305. package/node_modules/@poe-code/task-list/dist/backends/utils.js +5 -7
  306. package/node_modules/@poe-code/task-list/dist/backends/yaml-file.js +1 -1
  307. package/node_modules/@poe-code/task-list/dist/default-host.d.ts +2 -0
  308. package/node_modules/@poe-code/task-list/dist/default-host.js +2 -0
  309. package/node_modules/@poe-code/task-list/dist/default-host.workerd.d.ts +4 -0
  310. package/node_modules/@poe-code/task-list/dist/default-host.workerd.js +6 -0
  311. package/node_modules/@poe-code/task-list/dist/filesystem.d.ts +3 -0
  312. package/node_modules/@poe-code/task-list/dist/filesystem.js +32 -0
  313. package/node_modules/@poe-code/task-list/dist/move.js +3 -3
  314. package/node_modules/@poe-code/task-list/dist/open.js +2 -5
  315. package/node_modules/@poe-code/task-list/dist/paths.d.ts +12 -0
  316. package/node_modules/@poe-code/task-list/dist/paths.js +7 -0
  317. package/node_modules/@poe-code/task-list/dist/types.d.ts +6 -5
  318. package/node_modules/@poe-code/task-list/package.json +9 -0
  319. package/node_modules/@poe-code/terminal-text/LICENSE +21 -0
  320. package/node_modules/@poe-code/terminal-text/README.md +12 -0
  321. package/node_modules/@poe-code/terminal-text/dist/index.d.ts +2 -0
  322. package/node_modules/@poe-code/terminal-text/dist/index.js +20 -0
  323. package/node_modules/@poe-code/terminal-text/package.json +22 -0
  324. package/node_modules/@poe-code/xml-ast/LICENSE +21 -0
  325. package/node_modules/@poe-code/xml-ast/README.md +28 -0
  326. package/node_modules/@poe-code/xml-ast/dist/index.d.ts +47 -0
  327. package/node_modules/@poe-code/xml-ast/dist/index.js +635 -0
  328. package/node_modules/@poe-code/xml-ast/package.json +25 -0
  329. package/node_modules/auth-store/README.md +35 -0
  330. package/node_modules/auth-store/dist/index.browser.d.ts +4 -0
  331. package/node_modules/auth-store/dist/index.browser.js +2 -0
  332. package/node_modules/auth-store/dist/provider-store.d.ts +1 -1
  333. package/node_modules/auth-store/dist/safe-fs-secret-store.d.ts +21 -0
  334. package/node_modules/auth-store/dist/safe-fs-secret-store.js +119 -0
  335. package/node_modules/auth-store/dist/secret-store.d.ts +12 -0
  336. package/node_modules/auth-store/dist/secret-store.js +1 -0
  337. package/node_modules/auth-store/dist/transaction-lock.d.ts +2 -4
  338. package/node_modules/auth-store/dist/types.d.ts +2 -9
  339. package/node_modules/auth-store/package.json +16 -2
  340. package/node_modules/tiny-http-mcp-server/dist/composition.json +16 -1
  341. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/README.md +25 -0
  342. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/authorization-state.js +4 -4
  343. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/default-oauth-client-provider.js +6 -40
  344. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/oauth-form.d.ts +10 -0
  345. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/oauth-form.js +20 -0
  346. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/pkce.js +4 -3
  347. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/register-client.d.ts +14 -0
  348. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/register-client.js +53 -0
  349. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resumable.d.ts +16 -2
  350. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resumable.js +29 -9
  351. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/revoke-token.d.ts +12 -0
  352. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/revoke-token.js +23 -0
  353. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/token-endpoint.js +6 -19
  354. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/http-fetch.js +1 -1
  355. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.browser.d.ts +6 -2
  356. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.browser.js +5 -1
  357. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.d.ts +5 -2
  358. package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.js +4 -1
  359. package/node_modules/tiny-http-mcp-server/package.json +4 -4
  360. package/node_modules/tiny-mcp-client/README.md +2 -0
  361. package/node_modules/tiny-mcp-client/dist/index.browser.d.ts +25 -23
  362. package/node_modules/tiny-mcp-client/dist/index.browser.js +116 -1
  363. package/node_modules/tiny-mcp-client/dist/index.d.ts +25 -23
  364. package/node_modules/tiny-mcp-client/dist/index.js +1034 -561
  365. package/node_modules/tiny-mcp-client/package.json +15 -0
  366. package/node_modules/tiny-stdio-mcp-server/dist/composition.json +1 -1
  367. package/node_modules/toolcraft-design/dist/components/table.js +6 -0
  368. package/node_modules/toolcraft-design/dist/escape-terminal-text.d.ts +1 -2
  369. package/node_modules/toolcraft-design/dist/escape-terminal-text.js +1 -20
  370. package/node_modules/toolcraft-design/dist/terminal-markdown/parser/frontmatter.js +2 -1
  371. package/node_modules/toolcraft-design/dist/terminal-markdown/parser.js +2 -1
  372. package/node_modules/toolcraft-schema/dist/json-schema/utils.js +3 -0
  373. package/node_modules/toolcraft-schema/package.json +1 -1
  374. package/package.json +32 -7
@@ -0,0 +1,573 @@
1
+ /**
2
+ * blake2b (64-bit) & blake2s (8 to 32-bit) hash functions.
3
+ * b could have been faster, but there is no fast u64 in js, so s is 1.5x faster.
4
+ * @module
5
+ */
6
+ import { BSIGMA, G1s, G2s } from "./_blake.js";
7
+ import { SHA256_IV } from "./_md.js";
8
+ import * as u64 from "./_u64.js";
9
+ // prettier-ignore
10
+ import { abytes, aexists, anumber, aoutput, checkOpts, clean, copyBytes, createHasher, swap32IfBE, swap8IfBE, u32 } from "./utils.js";
11
+ // Same IV words as `SHA512_IV`, but endian-swapped into LE u32 low/high halves
12
+ // for the BLAKE2b u64 helpers below.
13
+ const B2B_IV = /* @__PURE__ */ Uint32Array.from([
14
+ 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,
15
+ 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19,
16
+ ]);
17
+ // Shared synchronous BLAKE2b work vector as LE u32 low/high halves.
18
+ const BBUF = /* @__PURE__ */ new Uint32Array(32);
19
+ // BLAKE2b G mix split into two half-rounds over LE u32 low/high limbs.
20
+ function G1b(a, b, c, d, msg, x) {
21
+ // NOTE: V is LE here
22
+ const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore
23
+ let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore
24
+ let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore
25
+ let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore
26
+ let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore
27
+ // v[a] = (v[a] + v[b] + x) | 0;
28
+ const ll = u64.add3L(Al, Bl, Xl);
29
+ Ah = u64.add3H(ll, Ah, Bh, Xh);
30
+ Al = ll | 0;
31
+ // v[d] = rotr(v[d] ^ v[a], 32)
32
+ let xh = Dh ^ Ah, xl = Dl ^ Al; // prettier-ignore
33
+ Dh = u64.rotr32H(xh, xl);
34
+ Dl = u64.rotr32L(xh, xl);
35
+ // v[c] = (v[c] + v[d]) | 0;
36
+ ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));
37
+ // v[b] = rotr(v[b] ^ v[c], 24)
38
+ xh = Bh ^ Ch;
39
+ xl = Bl ^ Cl;
40
+ Bh = u64.rotrSH(xh, xl, 24);
41
+ Bl = u64.rotrSL(xh, xl, 24);
42
+ BBUF[2 * a] = Al;
43
+ BBUF[2 * a + 1] = Ah;
44
+ BBUF[2 * b] = Bl;
45
+ BBUF[2 * b + 1] = Bh;
46
+ BBUF[2 * c] = Cl;
47
+ BBUF[2 * c + 1] = Ch;
48
+ BBUF[2 * d] = Dl;
49
+ BBUF[2 * d + 1] = Dh;
50
+ }
51
+ // Second half-round of the same LE-limb BLAKE2b G mix; `x` is the message word offset.
52
+ function G2b(a, b, c, d, msg, x) {
53
+ // NOTE: V is LE here
54
+ const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore
55
+ let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore
56
+ let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore
57
+ let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore
58
+ let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore
59
+ // v[a] = (v[a] + v[b] + x) | 0;
60
+ const ll = u64.add3L(Al, Bl, Xl);
61
+ Ah = u64.add3H(ll, Ah, Bh, Xh);
62
+ Al = ll | 0;
63
+ // v[d] = rotr(v[d] ^ v[a], 16)
64
+ let xh = Dh ^ Ah, xl = Dl ^ Al; // prettier-ignore
65
+ Dh = u64.rotrSH(xh, xl, 16);
66
+ Dl = u64.rotrSL(xh, xl, 16);
67
+ // v[c] = (v[c] + v[d]) | 0;
68
+ ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));
69
+ // v[b] = rotr(v[b] ^ v[c], 63)
70
+ xh = Bh ^ Ch;
71
+ xl = Bl ^ Cl;
72
+ Bh = u64.rotrBH(xh, xl, 63);
73
+ Bl = u64.rotrBL(xh, xl, 63);
74
+ BBUF[2 * a] = Al;
75
+ BBUF[2 * a + 1] = Ah;
76
+ BBUF[2 * b] = Bl;
77
+ BBUF[2 * b + 1] = Bh;
78
+ BBUF[2 * c] = Cl;
79
+ BBUF[2 * c + 1] = Ch;
80
+ BBUF[2 * d] = Dl;
81
+ BBUF[2 * d + 1] = Dh;
82
+ }
83
+ function checkBlake2Opts(outputLen, opts = {}, keyLen, saltLen, persLen) {
84
+ anumber(keyLen);
85
+ // RFC 7693 §2.1 requires digest length nn in 1..keyLen (keyLen doubles as
86
+ // the per-variant max for both key and digest lengths: 64 for b, 32 for s).
87
+ if (outputLen <= 0 || outputLen > keyLen)
88
+ throw new Error('"dkLen" must be 1..' + keyLen + ', got ' + outputLen);
89
+ const { key, salt, personalization } = opts;
90
+ // This API uses `undefined` for the RFC 7693 `kk = 0` case, so a provided key must be non-empty.
91
+ if (key !== undefined && (key.length < 1 || key.length > keyLen))
92
+ throw new Error('"key" expected to be undefined or of length=1..' + keyLen);
93
+ if (salt !== undefined)
94
+ abytes(salt, saltLen, 'salt');
95
+ if (personalization !== undefined)
96
+ abytes(personalization, persLen, 'personalization');
97
+ }
98
+ /** Internal base class for BLAKE2. */
99
+ export class _BLAKE2 {
100
+ buffer;
101
+ buffer32;
102
+ finished = false;
103
+ destroyed = false;
104
+ length = 0;
105
+ pos = 0;
106
+ blockLen;
107
+ outputLen;
108
+ canXOF = false;
109
+ constructor(blockLen, outputLen) {
110
+ anumber(blockLen);
111
+ anumber(outputLen);
112
+ this.blockLen = blockLen;
113
+ this.outputLen = outputLen;
114
+ this.buffer = new Uint8Array(blockLen);
115
+ this.buffer32 = u32(this.buffer);
116
+ }
117
+ update(data) {
118
+ aexists(this);
119
+ abytes(data);
120
+ // Main difference with other hashes: there is flag for last block,
121
+ // so we cannot process current block before we know that there
122
+ // is the next one. This significantly complicates logic and reduces ability
123
+ // to do zero-copy processing
124
+ const { blockLen, buffer, buffer32 } = this;
125
+ const len = data.length;
126
+ const offset = data.byteOffset;
127
+ const buf = data.buffer;
128
+ for (let pos = 0; pos < len;) {
129
+ // If buffer is full and we still have input (don't process last block, same as blake2s)
130
+ if (this.pos === blockLen) {
131
+ swap32IfBE(buffer32);
132
+ this.compress(buffer32, 0, false);
133
+ swap32IfBE(buffer32);
134
+ this.pos = 0;
135
+ }
136
+ const take = Math.min(blockLen - this.pos, len - pos);
137
+ const dataOffset = offset + pos;
138
+ // Zero-copy only for full, 4-byte-aligned, non-final blocks.
139
+ if (take === blockLen && !(dataOffset % 4) && pos + take < len) {
140
+ const data32 = new Uint32Array(buf, dataOffset, Math.floor((len - pos) / 4));
141
+ swap32IfBE(data32);
142
+ for (let pos32 = 0; pos + blockLen < len; pos32 += buffer32.length, pos += blockLen) {
143
+ this.length += blockLen;
144
+ this.compress(data32, pos32, false);
145
+ }
146
+ swap32IfBE(data32);
147
+ continue;
148
+ }
149
+ // When the whole input is buffered in one go (common for short messages), passing `data`
150
+ // directly avoids allocating a subarray view.
151
+ buffer.set(pos === 0 && take === len ? data : data.subarray(pos, pos + take), this.pos);
152
+ this.pos += take;
153
+ this.length += take;
154
+ pos += take;
155
+ }
156
+ return this;
157
+ }
158
+ digestInto(out) {
159
+ aexists(this);
160
+ aoutput(out, this);
161
+ // Reject unaligned views explicitly instead of hiding them behind a full scratch copy.
162
+ if (out.byteOffset & 3)
163
+ throw new RangeError('"output" expected 4-byte aligned byteOffset, got ' + out.byteOffset);
164
+ const { pos, buffer32 } = this;
165
+ this.finished = true;
166
+ // Padding
167
+ this.buffer.fill(0, pos);
168
+ swap32IfBE(buffer32);
169
+ this.compress(buffer32, 0, true);
170
+ swap32IfBE(buffer32);
171
+ const state = this.get();
172
+ // digest() passes our own `buffer` as `out`; reuse its cached u32 view instead of allocating.
173
+ const out32 = out === this.buffer ? buffer32 : u32(out);
174
+ const full = Math.floor(this.outputLen / 4);
175
+ for (let i = 0; i < full; i++)
176
+ out32[i] = swap8IfBE(state[i]);
177
+ const tail = this.outputLen % 4;
178
+ if (!tail)
179
+ return;
180
+ const off = full * 4;
181
+ const word = state[full];
182
+ for (let i = 0; i < tail; i++)
183
+ out[off + i] = word >>> (8 * i);
184
+ }
185
+ digest() {
186
+ const { buffer, outputLen } = this;
187
+ this.digestInto(buffer);
188
+ // Return a copy so callers do not alias the instance scratch buffer used during finalization.
189
+ const res = buffer.slice(0, outputLen);
190
+ this.destroy();
191
+ return res;
192
+ }
193
+ _cloneInto(to) {
194
+ const { buffer, length, finished, destroyed, outputLen, pos } = this;
195
+ // Recreate only `dkLen`; key/salt/personalization are already absorbed into the copied state.
196
+ to ||= new this.constructor({ dkLen: outputLen });
197
+ to.set(...this.get());
198
+ // Last-block-aware lazy compression keeps the pending block live even when full.
199
+ to.buffer.set(buffer);
200
+ to.destroyed = destroyed;
201
+ to.finished = finished;
202
+ to.length = length;
203
+ to.pos = pos;
204
+ // @ts-ignore
205
+ to.outputLen = outputLen;
206
+ return to;
207
+ }
208
+ clone() {
209
+ return this._cloneInto();
210
+ }
211
+ }
212
+ /** Internal blake2b hash class with state stored as LE u32 low/high halves. */
213
+ export class _BLAKE2b extends _BLAKE2 {
214
+ // Same IV words as SHA-512 / BLAKE2b, encoded as LE u32 low/high halves.
215
+ v0l = B2B_IV[0] | 0;
216
+ v0h = B2B_IV[1] | 0;
217
+ v1l = B2B_IV[2] | 0;
218
+ v1h = B2B_IV[3] | 0;
219
+ v2l = B2B_IV[4] | 0;
220
+ v2h = B2B_IV[5] | 0;
221
+ v3l = B2B_IV[6] | 0;
222
+ v3h = B2B_IV[7] | 0;
223
+ v4l = B2B_IV[8] | 0;
224
+ v4h = B2B_IV[9] | 0;
225
+ v5l = B2B_IV[10] | 0;
226
+ v5h = B2B_IV[11] | 0;
227
+ v6l = B2B_IV[12] | 0;
228
+ v6h = B2B_IV[13] | 0;
229
+ v7l = B2B_IV[14] | 0;
230
+ v7h = B2B_IV[15] | 0;
231
+ constructor(opts = {}) {
232
+ opts = checkOpts({}, opts);
233
+ const olen = opts.dkLen === undefined ? 64 : opts.dkLen;
234
+ super(128, olen);
235
+ checkBlake2Opts(olen, opts, 64, 16, 16);
236
+ let { key, personalization, salt } = opts;
237
+ let keyLength = 0;
238
+ if (key !== undefined) {
239
+ abytes(key, undefined, 'key');
240
+ keyLength = key.length;
241
+ }
242
+ // RFC 7693 §2.5: xor `p[0] = 0x0101kknn` into the low 32 bits of `h[0]`;
243
+ // the high 32 bits stay at `IV[0]`.
244
+ this.v0l ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);
245
+ if (salt !== undefined) {
246
+ abytes(salt, undefined, 'salt');
247
+ // Copy: u32() would throw on views with byteOffset not divisible by 4.
248
+ const slt = u32(copyBytes(salt));
249
+ this.v4l ^= swap8IfBE(slt[0]);
250
+ this.v4h ^= swap8IfBE(slt[1]);
251
+ this.v5l ^= swap8IfBE(slt[2]);
252
+ this.v5h ^= swap8IfBE(slt[3]);
253
+ }
254
+ if (personalization !== undefined) {
255
+ abytes(personalization, undefined, 'personalization');
256
+ // Copy: u32() would throw on views with byteOffset not divisible by 4.
257
+ const pers = u32(copyBytes(personalization));
258
+ this.v6l ^= swap8IfBE(pers[0]);
259
+ this.v6h ^= swap8IfBE(pers[1]);
260
+ this.v7l ^= swap8IfBE(pers[2]);
261
+ this.v7h ^= swap8IfBE(pers[3]);
262
+ }
263
+ if (key !== undefined) {
264
+ // Pad to blockLen and update
265
+ const tmp = new Uint8Array(this.blockLen);
266
+ tmp.set(key);
267
+ this.update(tmp);
268
+ // The padded copy holds key material; buffer/state keep what they need.
269
+ clean(tmp);
270
+ }
271
+ }
272
+ // prettier-ignore
273
+ get() {
274
+ let { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this;
275
+ return [v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h];
276
+ }
277
+ // prettier-ignore
278
+ set(v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h) {
279
+ this.v0l = v0l | 0;
280
+ this.v0h = v0h | 0;
281
+ this.v1l = v1l | 0;
282
+ this.v1h = v1h | 0;
283
+ this.v2l = v2l | 0;
284
+ this.v2h = v2h | 0;
285
+ this.v3l = v3l | 0;
286
+ this.v3h = v3h | 0;
287
+ this.v4l = v4l | 0;
288
+ this.v4h = v4h | 0;
289
+ this.v5l = v5l | 0;
290
+ this.v5h = v5h | 0;
291
+ this.v6l = v6l | 0;
292
+ this.v6h = v6h | 0;
293
+ this.v7l = v7l | 0;
294
+ this.v7h = v7h | 0;
295
+ }
296
+ compress(msg, offset, isLast) {
297
+ // First half from state. Direct writes: get() would allocate an array +
298
+ // closure per block.
299
+ // prettier-ignore
300
+ const { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this;
301
+ // prettier-ignore
302
+ {
303
+ BBUF[0] = v0l;
304
+ BBUF[1] = v0h;
305
+ BBUF[2] = v1l;
306
+ BBUF[3] = v1h;
307
+ BBUF[4] = v2l;
308
+ BBUF[5] = v2h;
309
+ BBUF[6] = v3l;
310
+ BBUF[7] = v3h;
311
+ BBUF[8] = v4l;
312
+ BBUF[9] = v4h;
313
+ BBUF[10] = v5l;
314
+ BBUF[11] = v5h;
315
+ BBUF[12] = v6l;
316
+ BBUF[13] = v6h;
317
+ BBUF[14] = v7l;
318
+ BBUF[15] = v7h;
319
+ }
320
+ BBUF.set(B2B_IV, 16); // Second half from IV.
321
+ const l = u64.fromNumL(this.length);
322
+ const h = u64.fromNumH(this.length);
323
+ BBUF[24] = B2B_IV[8] ^ l; // Low word of the offset.
324
+ BBUF[25] = B2B_IV[9] ^ h; // High word.
325
+ // Invert all bits for last block
326
+ if (isLast) {
327
+ BBUF[28] = ~BBUF[28];
328
+ BBUF[29] = ~BBUF[29];
329
+ }
330
+ let j = 0;
331
+ const s = BSIGMA;
332
+ // SIGMA selects 64-bit message words; multiply by 2 because `msg` stores
333
+ // each word as [low32, high32].
334
+ for (let i = 0; i < 12; i++) {
335
+ G1b(0, 4, 8, 12, msg, offset + 2 * s[j++]);
336
+ G2b(0, 4, 8, 12, msg, offset + 2 * s[j++]);
337
+ G1b(1, 5, 9, 13, msg, offset + 2 * s[j++]);
338
+ G2b(1, 5, 9, 13, msg, offset + 2 * s[j++]);
339
+ G1b(2, 6, 10, 14, msg, offset + 2 * s[j++]);
340
+ G2b(2, 6, 10, 14, msg, offset + 2 * s[j++]);
341
+ G1b(3, 7, 11, 15, msg, offset + 2 * s[j++]);
342
+ G2b(3, 7, 11, 15, msg, offset + 2 * s[j++]);
343
+ G1b(0, 5, 10, 15, msg, offset + 2 * s[j++]);
344
+ G2b(0, 5, 10, 15, msg, offset + 2 * s[j++]);
345
+ G1b(1, 6, 11, 12, msg, offset + 2 * s[j++]);
346
+ G2b(1, 6, 11, 12, msg, offset + 2 * s[j++]);
347
+ G1b(2, 7, 8, 13, msg, offset + 2 * s[j++]);
348
+ G2b(2, 7, 8, 13, msg, offset + 2 * s[j++]);
349
+ G1b(3, 4, 9, 14, msg, offset + 2 * s[j++]);
350
+ G2b(3, 4, 9, 14, msg, offset + 2 * s[j++]);
351
+ }
352
+ this.v0l ^= BBUF[0] ^ BBUF[16];
353
+ this.v0h ^= BBUF[1] ^ BBUF[17];
354
+ this.v1l ^= BBUF[2] ^ BBUF[18];
355
+ this.v1h ^= BBUF[3] ^ BBUF[19];
356
+ this.v2l ^= BBUF[4] ^ BBUF[20];
357
+ this.v2h ^= BBUF[5] ^ BBUF[21];
358
+ this.v3l ^= BBUF[6] ^ BBUF[22];
359
+ this.v3h ^= BBUF[7] ^ BBUF[23];
360
+ this.v4l ^= BBUF[8] ^ BBUF[24];
361
+ this.v4h ^= BBUF[9] ^ BBUF[25];
362
+ this.v5l ^= BBUF[10] ^ BBUF[26];
363
+ this.v5h ^= BBUF[11] ^ BBUF[27];
364
+ this.v6l ^= BBUF[12] ^ BBUF[28];
365
+ this.v6h ^= BBUF[13] ^ BBUF[29];
366
+ this.v7l ^= BBUF[14] ^ BBUF[30];
367
+ this.v7h ^= BBUF[15] ^ BBUF[31];
368
+ clean(BBUF);
369
+ }
370
+ destroy() {
371
+ this.destroyed = true;
372
+ clean(this.buffer32);
373
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
374
+ }
375
+ }
376
+ /**
377
+ * Blake2b hash function. 64-bit. 1.5x slower than blake2s in JS.
378
+ * @param msg - message that would be hashed
379
+ * @param opts - Optional output, MAC, salt, and personalization settings.
380
+ * `dkLen` must be 1..64 bytes; `salt` and `personalization`, if present,
381
+ * must be 16 bytes each. See {@link Blake2Opts}.
382
+ * @returns Digest bytes.
383
+ * @example
384
+ * Hash a message with Blake2b.
385
+ * ```ts
386
+ * blake2b(new Uint8Array([97, 98, 99]));
387
+ * ```
388
+ * @example
389
+ * Hash a message with Blake2b while selecting output, MAC, salt, and personalization settings.
390
+ * ```ts
391
+ * blake2b(new Uint8Array([97, 98, 99]), {
392
+ * dkLen: 32,
393
+ * key: new Uint8Array(32),
394
+ * salt: new Uint8Array(16),
395
+ * personalization: new Uint8Array(16),
396
+ * });
397
+ * ```
398
+ */
399
+ export const blake2b = /* @__PURE__ */ createHasher((opts) => new _BLAKE2b(opts));
400
+ /**
401
+ * BLAKE2-compress core method.
402
+ * Runs only the round function over a caller-supplied local vector; callers initialize `v0..v15`
403
+ * and apply the final `h[i] ^= v[i] ^ v[i + 8]` fold themselves.
404
+ * @param s - flattened sigma schedule bytes
405
+ * @param offset - starting word offset inside `msg`, not a byte offset
406
+ * @param msg - message words
407
+ * @param rounds - round count to execute
408
+ * @param v0 - state word 0
409
+ * @param v1 - state word 1
410
+ * @param v2 - state word 2
411
+ * @param v3 - state word 3
412
+ * @param v4 - state word 4
413
+ * @param v5 - state word 5
414
+ * @param v6 - state word 6
415
+ * @param v7 - state word 7
416
+ * @param v8 - state word 8
417
+ * @param v9 - state word 9
418
+ * @param v10 - state word 10
419
+ * @param v11 - state word 11
420
+ * @param v12 - state word 12
421
+ * @param v13 - state word 13
422
+ * @param v14 - state word 14
423
+ * @param v15 - state word 15
424
+ * @returns Updated compression state words.
425
+ * @example
426
+ * Run the BLAKE2 compression core on zeroed state and message words.
427
+ * ```ts
428
+ * import { _compress } from '@noble/hashes/blake2.js';
429
+ * const state = _compress(
430
+ * new Uint8Array(16),
431
+ * 0,
432
+ * new Uint32Array(16),
433
+ * 1,
434
+ * 0, 0, 0, 0, 0, 0, 0, 0,
435
+ * 0, 0, 0, 0, 0, 0, 0, 0
436
+ * );
437
+ * state.v0;
438
+ * ```
439
+ */
440
+ // prettier-ignore
441
+ export function _compress(s, offset, msg, rounds, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) {
442
+ let j = 0;
443
+ for (let i = 0; i < rounds; i++) {
444
+ ({ a: v0, b: v4, c: v8, d: v12 } = G1s(v0, v4, v8, v12, msg[offset + s[j++]]));
445
+ ({ a: v0, b: v4, c: v8, d: v12 } = G2s(v0, v4, v8, v12, msg[offset + s[j++]]));
446
+ ({ a: v1, b: v5, c: v9, d: v13 } = G1s(v1, v5, v9, v13, msg[offset + s[j++]]));
447
+ ({ a: v1, b: v5, c: v9, d: v13 } = G2s(v1, v5, v9, v13, msg[offset + s[j++]]));
448
+ ({ a: v2, b: v6, c: v10, d: v14 } = G1s(v2, v6, v10, v14, msg[offset + s[j++]]));
449
+ ({ a: v2, b: v6, c: v10, d: v14 } = G2s(v2, v6, v10, v14, msg[offset + s[j++]]));
450
+ ({ a: v3, b: v7, c: v11, d: v15 } = G1s(v3, v7, v11, v15, msg[offset + s[j++]]));
451
+ ({ a: v3, b: v7, c: v11, d: v15 } = G2s(v3, v7, v11, v15, msg[offset + s[j++]]));
452
+ ({ a: v0, b: v5, c: v10, d: v15 } = G1s(v0, v5, v10, v15, msg[offset + s[j++]]));
453
+ ({ a: v0, b: v5, c: v10, d: v15 } = G2s(v0, v5, v10, v15, msg[offset + s[j++]]));
454
+ ({ a: v1, b: v6, c: v11, d: v12 } = G1s(v1, v6, v11, v12, msg[offset + s[j++]]));
455
+ ({ a: v1, b: v6, c: v11, d: v12 } = G2s(v1, v6, v11, v12, msg[offset + s[j++]]));
456
+ ({ a: v2, b: v7, c: v8, d: v13 } = G1s(v2, v7, v8, v13, msg[offset + s[j++]]));
457
+ ({ a: v2, b: v7, c: v8, d: v13 } = G2s(v2, v7, v8, v13, msg[offset + s[j++]]));
458
+ ({ a: v3, b: v4, c: v9, d: v14 } = G1s(v3, v4, v9, v14, msg[offset + s[j++]]));
459
+ ({ a: v3, b: v4, c: v9, d: v14 } = G2s(v3, v4, v9, v14, msg[offset + s[j++]]));
460
+ }
461
+ return { v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 };
462
+ }
463
+ // Blake2s reuses the SHA-256 IV words as-is.
464
+ const B2S_IV = /* @__PURE__ */ SHA256_IV.slice();
465
+ /** Internal blake2s hash class. */
466
+ export class _BLAKE2s extends _BLAKE2 {
467
+ // Internal state, same as SHA-256
468
+ v0 = B2S_IV[0] | 0;
469
+ v1 = B2S_IV[1] | 0;
470
+ v2 = B2S_IV[2] | 0;
471
+ v3 = B2S_IV[3] | 0;
472
+ v4 = B2S_IV[4] | 0;
473
+ v5 = B2S_IV[5] | 0;
474
+ v6 = B2S_IV[6] | 0;
475
+ v7 = B2S_IV[7] | 0;
476
+ constructor(opts = {}) {
477
+ opts = checkOpts({}, opts);
478
+ const olen = opts.dkLen === undefined ? 32 : opts.dkLen;
479
+ super(64, olen);
480
+ checkBlake2Opts(olen, opts, 32, 8, 8);
481
+ let { key, personalization, salt } = opts;
482
+ let keyLength = 0;
483
+ if (key !== undefined) {
484
+ abytes(key, undefined, 'key');
485
+ keyLength = key.length;
486
+ }
487
+ // RFC 7693 §2.5: xor `p[0] = 0x0101kknn` directly into `h[0]`, since
488
+ // BLAKE2s stores each state word as one `u32`.
489
+ this.v0 ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);
490
+ if (salt !== undefined) {
491
+ abytes(salt, undefined, 'salt');
492
+ // Copy: u32() would throw on views with byteOffset not divisible by 4.
493
+ const slt = u32(copyBytes(salt));
494
+ this.v4 ^= swap8IfBE(slt[0]);
495
+ this.v5 ^= swap8IfBE(slt[1]);
496
+ }
497
+ if (personalization !== undefined) {
498
+ abytes(personalization, undefined, 'personalization');
499
+ // Copy: u32() would throw on views with byteOffset not divisible by 4.
500
+ const pers = u32(copyBytes(personalization));
501
+ this.v6 ^= swap8IfBE(pers[0]);
502
+ this.v7 ^= swap8IfBE(pers[1]);
503
+ }
504
+ if (key !== undefined) {
505
+ // Pad to blockLen and update
506
+ const tmp = new Uint8Array(this.blockLen);
507
+ tmp.set(key);
508
+ this.update(tmp);
509
+ // The padded copy holds key material; buffer/state keep what they need.
510
+ clean(tmp);
511
+ }
512
+ }
513
+ get() {
514
+ const { v0, v1, v2, v3, v4, v5, v6, v7 } = this;
515
+ return [v0, v1, v2, v3, v4, v5, v6, v7];
516
+ }
517
+ // prettier-ignore
518
+ set(v0, v1, v2, v3, v4, v5, v6, v7) {
519
+ this.v0 = v0 | 0;
520
+ this.v1 = v1 | 0;
521
+ this.v2 = v2 | 0;
522
+ this.v3 = v3 | 0;
523
+ this.v4 = v4 | 0;
524
+ this.v5 = v5 | 0;
525
+ this.v6 = v6 | 0;
526
+ this.v7 = v7 | 0;
527
+ }
528
+ compress(msg, offset, isLast) {
529
+ const l = u64.fromNumL(this.length);
530
+ const h = u64.fromNumH(this.length);
531
+ // Seed v8..v15 from the IV, xor the low/high 32-bit byte counter into
532
+ // v12/v13, and invert v14 on the final block.
533
+ // prettier-ignore
534
+ const { v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 } = _compress(BSIGMA, offset, msg, 10, this.v0, this.v1, this.v2, this.v3, this.v4, this.v5, this.v6, this.v7, B2S_IV[0], B2S_IV[1], B2S_IV[2], B2S_IV[3], l ^ B2S_IV[4], h ^ B2S_IV[5], isLast ? ~B2S_IV[6] : B2S_IV[6], B2S_IV[7]);
535
+ this.v0 ^= v0 ^ v8;
536
+ this.v1 ^= v1 ^ v9;
537
+ this.v2 ^= v2 ^ v10;
538
+ this.v3 ^= v3 ^ v11;
539
+ this.v4 ^= v4 ^ v12;
540
+ this.v5 ^= v5 ^ v13;
541
+ this.v6 ^= v6 ^ v14;
542
+ this.v7 ^= v7 ^ v15;
543
+ }
544
+ destroy() {
545
+ this.destroyed = true;
546
+ clean(this.buffer32);
547
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
548
+ }
549
+ }
550
+ /**
551
+ * Blake2s hash function. Focuses on 8-bit to 32-bit platforms. 1.5x faster than blake2b in JS.
552
+ * @param msg - message that would be hashed
553
+ * @param opts - Optional output, MAC, salt, and personalization settings.
554
+ * `dkLen` must be 1..32 bytes; `salt` and `personalization`, if present,
555
+ * must be 8 bytes each. See {@link Blake2Opts}.
556
+ * @returns Digest bytes.
557
+ * @example
558
+ * Hash a message with Blake2s.
559
+ * ```ts
560
+ * blake2s(new Uint8Array([97, 98, 99]));
561
+ * ```
562
+ * @example
563
+ * Hash a message with Blake2s while selecting output, MAC, salt, and personalization settings.
564
+ * ```ts
565
+ * blake2s(new Uint8Array([97, 98, 99]), {
566
+ * dkLen: 16,
567
+ * key: new Uint8Array(32),
568
+ * salt: new Uint8Array(8),
569
+ * personalization: new Uint8Array(8),
570
+ * });
571
+ * ```
572
+ */
573
+ export const blake2s = /* @__PURE__ */ createHasher((opts) => new _BLAKE2s(opts));
@@ -0,0 +1,68 @@
1
+ import { _BLAKE2 } from './blake2.ts';
2
+ import { type CHashXOF, type HashXOF, type TArg, type TRet } from './utils.ts';
3
+ /**
4
+ * Ensure to use EITHER `key` OR `context`, not both.
5
+ *
6
+ * * `key`: 32-byte MAC key.
7
+ * * `context`: caller-encoded KDF context bytes. If your protocol defines a
8
+ * string context, encode it before passing it here.
9
+ * A good default format for the original context string is
10
+ * "[application] [commit timestamp] [purpose]".
11
+ */
12
+ export type Blake3Opts = {
13
+ /** Desired digest length in bytes. The BLAKE3 spec allows 0..2^64-1 bytes of output. */
14
+ dkLen?: number;
15
+ /** Optional 32-byte MAC key. */
16
+ key?: Uint8Array;
17
+ /** Optional KDF context bytes. */
18
+ context?: Uint8Array;
19
+ };
20
+ /** Blake3 hash. Can be used as MAC and KDF with caller-encoded context bytes. */
21
+ export declare class _BLAKE3 extends _BLAKE2<_BLAKE3> implements HashXOF<_BLAKE3> {
22
+ readonly canXOF = true;
23
+ private chunkPos;
24
+ private chunksDone;
25
+ private flags;
26
+ private IV;
27
+ private state;
28
+ private stack;
29
+ private posOut;
30
+ private bufferOut32;
31
+ private bufferOut;
32
+ private chunkOut;
33
+ private enableXOF;
34
+ constructor(opts?: Blake3Opts, flags?: number);
35
+ protected get(): [];
36
+ protected set(): void;
37
+ private b2Compress;
38
+ protected compress(buf: Uint32Array, bufPos?: number, isLast?: boolean): void;
39
+ _cloneInto(to?: _BLAKE3): _BLAKE3;
40
+ destroy(): void;
41
+ private b2CompressOut;
42
+ protected finish(): void;
43
+ private writeInto;
44
+ xofInto(out: TArg<Uint8Array>): TRet<Uint8Array>;
45
+ xof(bytes: number): TRet<Uint8Array>;
46
+ digestInto(out: TArg<Uint8Array>): void;
47
+ digest(): TRet<Uint8Array>;
48
+ }
49
+ /**
50
+ * BLAKE3 hash function. Can be used as MAC and KDF.
51
+ * @param msg - message that would be hashed
52
+ * @param opts - Optional output, MAC, or KDF configuration. `key` must be
53
+ * exactly 32 bytes, `context` is caller-encoded bytes, and `dkLen` can be
54
+ * 0..2^64-1 via the XOF-backed output path. See {@link Blake3Opts}.
55
+ * @returns Digest bytes.
56
+ * @example
57
+ * Hash, MAC, or derive key material with BLAKE3.
58
+ * ```ts
59
+ * import { blake3 } from '@noble/hashes/blake3.js';
60
+ * import { utf8ToBytes } from '@noble/hashes/utils.js';
61
+ * const data = new Uint8Array(32);
62
+ * const hash = blake3(data);
63
+ * const mac = blake3(data, { key: new Uint8Array(32) });
64
+ * const kdf = blake3(data, { context: utf8ToBytes('application name') });
65
+ * const xof = blake3(data, { dkLen: 64 });
66
+ * ```
67
+ */
68
+ export declare const blake3: TRet<CHashXOF<_BLAKE3, Blake3Opts>>;