@kamilio/wire 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1453) hide show
  1. package/dist/adapters/root.d.ts +2 -1
  2. package/dist/adapters/root.d.ts.map +1 -1
  3. package/dist/adapters/root.js +12 -2
  4. package/dist/adapters/root.js.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +5 -1
  7. package/dist/cli.js.map +1 -1
  8. package/dist/executable.d.ts.map +1 -1
  9. package/dist/executable.js +2 -1
  10. package/dist/executable.js.map +1 -1
  11. package/dist/mcp.d.ts +2 -3
  12. package/dist/mcp.d.ts.map +1 -1
  13. package/node_modules/provider-slack/dist/index.d.ts +1 -1
  14. package/node_modules/provider-slack/dist/index.d.ts.map +1 -1
  15. package/node_modules/provider-slack/dist/index.js +1 -1
  16. package/node_modules/provider-slack/dist/index.js.map +1 -1
  17. package/node_modules/provider-slack/dist/slack.d.ts +10 -0
  18. package/node_modules/provider-slack/dist/slack.d.ts.map +1 -1
  19. package/node_modules/provider-slack/dist/slack.js +395 -22
  20. package/node_modules/provider-slack/dist/slack.js.map +1 -1
  21. package/node_modules/provider-slack/package.json +10 -4
  22. package/node_modules/provider-slack/src/index.ts +1 -1
  23. package/node_modules/provider-slack/src/slack.ts +314 -20
  24. package/node_modules/toolcraft/LICENSE +21 -0
  25. package/node_modules/toolcraft/README.md +268 -23
  26. package/node_modules/toolcraft/composition.json +165 -0
  27. package/node_modules/toolcraft/dist/agent-defs.d.ts +1 -0
  28. package/node_modules/toolcraft/dist/agent-defs.js +1 -0
  29. package/node_modules/toolcraft/dist/agent-mcp-config.d.ts +1 -0
  30. package/node_modules/toolcraft/dist/agent-mcp-config.js +1 -0
  31. package/node_modules/toolcraft/dist/applied-default.d.ts +3 -0
  32. package/node_modules/toolcraft/dist/applied-default.js +16 -0
  33. package/node_modules/toolcraft/dist/auth-store.d.ts +1 -0
  34. package/node_modules/toolcraft/dist/auth-store.js +1 -0
  35. package/node_modules/toolcraft/dist/cli.compile-check.js +20 -2
  36. package/node_modules/toolcraft/dist/cli.d.ts +97 -4
  37. package/node_modules/toolcraft/dist/cli.js +1322 -412
  38. package/node_modules/toolcraft/dist/composition.d.ts +15 -0
  39. package/node_modules/toolcraft/dist/composition.js +10 -0
  40. package/node_modules/toolcraft/dist/composition.json +165 -0
  41. package/node_modules/toolcraft/dist/config-mutations.d.ts +1 -0
  42. package/node_modules/toolcraft/dist/config-mutations.js +1 -0
  43. package/node_modules/toolcraft/dist/design/help-formatter.d.ts +2 -2
  44. package/node_modules/toolcraft/dist/design/help-formatter.js +1 -1
  45. package/node_modules/toolcraft/dist/design/render-markdown-plaintext.d.ts +2 -0
  46. package/node_modules/toolcraft/dist/design/render-markdown-plaintext.js +1 -0
  47. package/node_modules/toolcraft/dist/design/render-markdown.d.ts +2 -0
  48. package/node_modules/toolcraft/dist/design/render-markdown.js +1 -0
  49. package/node_modules/toolcraft/dist/discriminator.d.ts +9 -0
  50. package/node_modules/toolcraft/dist/discriminator.js +32 -0
  51. package/node_modules/toolcraft/dist/error-report.d.ts +12 -17
  52. package/node_modules/toolcraft/dist/error-report.js +25 -16
  53. package/node_modules/toolcraft/dist/file-change-renderer.d.ts +9 -0
  54. package/node_modules/toolcraft/dist/file-change-renderer.js +10 -0
  55. package/node_modules/toolcraft/dist/frontmatter.d.ts +1 -0
  56. package/node_modules/toolcraft/dist/frontmatter.js +1 -0
  57. package/node_modules/toolcraft/dist/http-hosted-oauth.compile-check.js +60 -0
  58. package/node_modules/toolcraft/dist/http-hosted-oauth.d.ts +124 -0
  59. package/node_modules/toolcraft/dist/http-hosted-oauth.js +473 -0
  60. package/node_modules/toolcraft/dist/http.compile-check.js +31 -0
  61. package/node_modules/toolcraft/dist/http.d.ts +31 -0
  62. package/node_modules/toolcraft/dist/http.js +161 -0
  63. package/node_modules/toolcraft/dist/human-in-loop/approval-tasks.d.ts +8 -2
  64. package/node_modules/toolcraft/dist/human-in-loop/approval-tasks.js +33 -19
  65. package/node_modules/toolcraft/dist/human-in-loop/approvals-commands.d.ts +3 -3
  66. package/node_modules/toolcraft/dist/human-in-loop/approvals-commands.js +27 -33
  67. package/node_modules/toolcraft/dist/human-in-loop/config.js +3 -0
  68. package/node_modules/toolcraft/dist/human-in-loop/gate.d.ts +7 -3
  69. package/node_modules/toolcraft/dist/human-in-loop/gate.js +33 -31
  70. package/node_modules/toolcraft/dist/human-in-loop/index.d.ts +4 -1
  71. package/node_modules/toolcraft/dist/human-in-loop/index.js +2 -0
  72. package/node_modules/toolcraft/dist/human-in-loop/plan-hash.d.ts +13 -0
  73. package/node_modules/toolcraft/dist/human-in-loop/plan-hash.js +78 -0
  74. package/node_modules/toolcraft/dist/human-in-loop/runner.d.ts +1 -1
  75. package/node_modules/toolcraft/dist/human-in-loop/runner.js +45 -32
  76. package/node_modules/toolcraft/dist/human-in-loop/runtime-options.d.ts +19 -0
  77. package/node_modules/toolcraft/dist/human-in-loop/runtime.d.ts +2 -0
  78. package/node_modules/toolcraft/dist/human-in-loop/runtime.js +14 -0
  79. package/node_modules/toolcraft/dist/human-in-loop/spawn.d.ts +2 -2
  80. package/node_modules/toolcraft/dist/human-in-loop/types.d.ts +14 -14
  81. package/node_modules/toolcraft/dist/human-in-loop/wiring.d.ts +11 -0
  82. package/node_modules/toolcraft/dist/human-in-loop/wiring.js +36 -0
  83. package/node_modules/toolcraft/dist/index.compile-check.js +50 -1
  84. package/node_modules/toolcraft/dist/index.d.ts +1 -210
  85. package/node_modules/toolcraft/dist/index.js +1 -475
  86. package/node_modules/toolcraft/dist/json-schema-converter.d.ts +14 -6
  87. package/node_modules/toolcraft/dist/json-schema-converter.js +150 -20
  88. package/node_modules/toolcraft/dist/mcp-proxy-metadata.d.ts +2 -0
  89. package/node_modules/toolcraft/dist/mcp-proxy-metadata.js +13 -0
  90. package/node_modules/toolcraft/dist/mcp-proxy.d.ts +2 -1
  91. package/node_modules/toolcraft/dist/mcp-proxy.js +69 -64
  92. package/node_modules/toolcraft/dist/mcp-result.d.ts +3 -0
  93. package/node_modules/toolcraft/dist/mcp-result.js +10 -0
  94. package/node_modules/toolcraft/dist/mcp.compile-check.js +4 -1
  95. package/node_modules/toolcraft/dist/mcp.d.ts +13 -3
  96. package/node_modules/toolcraft/dist/mcp.js +391 -217
  97. package/node_modules/toolcraft/dist/node-require-shim.js +4 -0
  98. package/node_modules/toolcraft/dist/package-metadata.js +9 -2
  99. package/node_modules/toolcraft/dist/process-runner.d.ts +1 -0
  100. package/node_modules/toolcraft/dist/process-runner.js +1 -0
  101. package/node_modules/toolcraft/dist/project-root.d.ts +1 -0
  102. package/node_modules/toolcraft/dist/project-root.js +15 -0
  103. package/node_modules/toolcraft/dist/redaction.js +26 -17
  104. package/node_modules/toolcraft/dist/renderer.d.ts +1 -1
  105. package/node_modules/toolcraft/dist/renderer.js +43 -42
  106. package/node_modules/toolcraft/dist/runtime/io.d.ts +5 -0
  107. package/node_modules/toolcraft/dist/runtime/io.js +59 -0
  108. package/node_modules/toolcraft/dist/runtime-platform.d.ts +2 -0
  109. package/node_modules/toolcraft/dist/runtime-platform.js +2 -0
  110. package/node_modules/toolcraft/dist/runtime-platform.workerd.d.ts +3 -0
  111. package/node_modules/toolcraft/dist/runtime-platform.workerd.js +10 -0
  112. package/node_modules/toolcraft/dist/runtime.d.ts +266 -0
  113. package/node_modules/toolcraft/dist/runtime.js +576 -0
  114. package/node_modules/toolcraft/dist/safe-bash-capabilities.compile-check.js +11 -0
  115. package/node_modules/toolcraft/dist/safe-bash.compile-check.js +16 -0
  116. package/node_modules/toolcraft/dist/safe-bash.d.ts +75 -0
  117. package/node_modules/toolcraft/dist/safe-bash.js +226 -0
  118. package/node_modules/toolcraft/dist/schema-member-names.d.ts +2 -0
  119. package/node_modules/toolcraft/dist/schema-member-names.js +39 -0
  120. package/node_modules/toolcraft/dist/schema-scope.d.ts +1 -0
  121. package/node_modules/toolcraft/dist/schema-scope.js +29 -16
  122. package/node_modules/toolcraft/dist/schema-standard.compile-check.js +4 -0
  123. package/node_modules/toolcraft/dist/schema.d.ts +2 -0
  124. package/node_modules/toolcraft/dist/schema.js +1 -0
  125. package/node_modules/toolcraft/dist/sdk.compile-check.js +31 -1
  126. package/node_modules/toolcraft/dist/sdk.d.ts +22 -13
  127. package/node_modules/toolcraft/dist/sdk.js +237 -108
  128. package/node_modules/toolcraft/dist/stream.d.ts +19 -0
  129. package/node_modules/toolcraft/dist/stream.js +93 -0
  130. package/node_modules/toolcraft/dist/testing/diagnostic-value.d.ts +1 -0
  131. package/node_modules/toolcraft/dist/testing/diagnostic-value.js +57 -0
  132. package/node_modules/toolcraft/dist/testing/fakes.d.ts +20 -0
  133. package/node_modules/toolcraft/dist/testing/fakes.js +84 -0
  134. package/node_modules/toolcraft/dist/testing/fixtures.d.ts +8 -0
  135. package/node_modules/toolcraft/dist/testing/fixtures.js +248 -0
  136. package/node_modules/toolcraft/dist/testing/harness.d.ts +97 -0
  137. package/node_modules/toolcraft/dist/testing/harness.js +490 -0
  138. package/node_modules/toolcraft/dist/testing/hosted-oauth-storage.d.ts +6 -0
  139. package/node_modules/toolcraft/dist/testing/hosted-oauth-storage.js +140 -0
  140. package/node_modules/toolcraft/dist/testing/index.d.ts +5 -0
  141. package/node_modules/toolcraft/dist/testing/index.js +4 -0
  142. package/node_modules/toolcraft/dist/testing/memory-fs.d.ts +11 -0
  143. package/node_modules/toolcraft/dist/testing/memory-fs.js +102 -0
  144. package/node_modules/toolcraft/dist/testing/parity.d.ts +25 -0
  145. package/node_modules/toolcraft/dist/testing/parity.js +428 -0
  146. package/node_modules/toolcraft/dist/testing/render-capture.d.ts +6 -0
  147. package/node_modules/toolcraft/dist/testing/render-capture.js +55 -0
  148. package/node_modules/toolcraft/dist/tiny-mcp-client.d.ts +1 -0
  149. package/node_modules/toolcraft/dist/tiny-mcp-client.js +1 -0
  150. package/node_modules/toolcraft/dist/union-validation.d.ts +5 -0
  151. package/node_modules/toolcraft/dist/union-validation.js +36 -0
  152. package/node_modules/toolcraft/dist/user-error.d.ts +8 -0
  153. package/node_modules/toolcraft/dist/user-error.js +10 -0
  154. package/node_modules/toolcraft/node_modules/@noble/hashes/LICENSE +21 -0
  155. package/node_modules/toolcraft/node_modules/@noble/hashes/README.md +478 -0
  156. package/node_modules/toolcraft/node_modules/@noble/hashes/_blake.d.ts +20 -0
  157. package/node_modules/toolcraft/node_modules/@noble/hashes/_blake.js +59 -0
  158. package/node_modules/toolcraft/node_modules/@noble/hashes/_md.d.ts +95 -0
  159. package/node_modules/toolcraft/node_modules/@noble/hashes/_md.js +209 -0
  160. package/node_modules/toolcraft/node_modules/@noble/hashes/_u64.d.ts +36 -0
  161. package/node_modules/toolcraft/node_modules/@noble/hashes/_u64.js +77 -0
  162. package/node_modules/toolcraft/node_modules/@noble/hashes/argon2.d.ts +148 -0
  163. package/node_modules/toolcraft/node_modules/@noble/hashes/argon2.js +577 -0
  164. package/node_modules/toolcraft/node_modules/@noble/hashes/blake1.d.ts +162 -0
  165. package/node_modules/toolcraft/node_modules/@noble/hashes/blake1.js +630 -0
  166. package/node_modules/toolcraft/node_modules/@noble/hashes/blake2.d.ts +203 -0
  167. package/node_modules/toolcraft/node_modules/@noble/hashes/blake2.js +573 -0
  168. package/node_modules/toolcraft/node_modules/@noble/hashes/blake3.d.ts +68 -0
  169. package/node_modules/toolcraft/node_modules/@noble/hashes/blake3.js +310 -0
  170. package/node_modules/toolcraft/node_modules/@noble/hashes/eskdf.d.ts +91 -0
  171. package/node_modules/toolcraft/node_modules/@noble/hashes/eskdf.js +225 -0
  172. package/node_modules/toolcraft/node_modules/@noble/hashes/hkdf.d.ts +70 -0
  173. package/node_modules/toolcraft/node_modules/@noble/hashes/hkdf.js +152 -0
  174. package/node_modules/toolcraft/node_modules/@noble/hashes/hmac.d.ts +50 -0
  175. package/node_modules/toolcraft/node_modules/@noble/hashes/hmac.js +93 -0
  176. package/node_modules/toolcraft/node_modules/@noble/hashes/index.js +34 -0
  177. package/node_modules/toolcraft/node_modules/@noble/hashes/legacy.d.ts +107 -0
  178. package/node_modules/toolcraft/node_modules/@noble/hashes/legacy.js +348 -0
  179. package/node_modules/toolcraft/node_modules/@noble/hashes/package.json +91 -0
  180. package/node_modules/toolcraft/node_modules/@noble/hashes/pbkdf2.d.ts +66 -0
  181. package/node_modules/toolcraft/node_modules/@noble/hashes/pbkdf2.js +176 -0
  182. package/node_modules/toolcraft/node_modules/@noble/hashes/scrypt.d.ts +98 -0
  183. package/node_modules/toolcraft/node_modules/@noble/hashes/scrypt.js +304 -0
  184. package/node_modules/toolcraft/node_modules/@noble/hashes/sha2.d.ts +176 -0
  185. package/node_modules/toolcraft/node_modules/@noble/hashes/sha2.js +446 -0
  186. package/node_modules/toolcraft/node_modules/@noble/hashes/sha3-addons.d.ts +533 -0
  187. package/node_modules/toolcraft/node_modules/@noble/hashes/sha3-addons.js +973 -0
  188. package/node_modules/toolcraft/node_modules/@noble/hashes/sha3.d.ts +208 -0
  189. package/node_modules/toolcraft/node_modules/@noble/hashes/sha3.js +475 -0
  190. package/node_modules/toolcraft/node_modules/@noble/hashes/src/_blake.ts +67 -0
  191. package/node_modules/toolcraft/node_modules/@noble/hashes/src/_md.ts +227 -0
  192. package/node_modules/toolcraft/node_modules/@noble/hashes/src/_u64.ts +111 -0
  193. package/node_modules/toolcraft/node_modules/@noble/hashes/src/argon2.ts +693 -0
  194. package/node_modules/toolcraft/node_modules/@noble/hashes/src/blake1.ts +677 -0
  195. package/node_modules/toolcraft/node_modules/@noble/hashes/src/blake2.ts +648 -0
  196. package/node_modules/toolcraft/node_modules/@noble/hashes/src/blake3.ts +344 -0
  197. package/node_modules/toolcraft/node_modules/@noble/hashes/src/eskdf.ts +265 -0
  198. package/node_modules/toolcraft/node_modules/@noble/hashes/src/hkdf.ts +161 -0
  199. package/node_modules/toolcraft/node_modules/@noble/hashes/src/hmac.ts +130 -0
  200. package/node_modules/toolcraft/node_modules/@noble/hashes/src/index.ts +33 -0
  201. package/node_modules/toolcraft/node_modules/@noble/hashes/src/legacy.ts +361 -0
  202. package/node_modules/toolcraft/node_modules/@noble/hashes/src/pbkdf2.ts +219 -0
  203. package/node_modules/toolcraft/node_modules/@noble/hashes/src/scrypt.ts +375 -0
  204. package/node_modules/toolcraft/node_modules/@noble/hashes/src/sha2.ts +486 -0
  205. package/node_modules/toolcraft/node_modules/@noble/hashes/src/sha3-addons.ts +1157 -0
  206. package/node_modules/toolcraft/node_modules/@noble/hashes/src/sha3.ts +525 -0
  207. package/node_modules/toolcraft/node_modules/@noble/hashes/src/utils.ts +978 -0
  208. package/node_modules/toolcraft/node_modules/@noble/hashes/src/webcrypto.ts +283 -0
  209. package/node_modules/toolcraft/node_modules/@noble/hashes/utils.d.ts +560 -0
  210. package/node_modules/toolcraft/node_modules/@noble/hashes/utils.js +687 -0
  211. package/node_modules/toolcraft/node_modules/@noble/hashes/webcrypto.d.ts +121 -0
  212. package/node_modules/toolcraft/node_modules/@noble/hashes/webcrypto.js +228 -0
  213. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/LICENSE +21 -0
  214. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/README.md +15 -2
  215. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/claude-code.js +2 -1
  216. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/claude-desktop.js +1 -0
  217. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/codex.js +2 -1
  218. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/cursor.js +1 -0
  219. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/gemini-cli.js +2 -1
  220. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/goose.js +1 -0
  221. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/index.d.ts +1 -1
  222. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/index.js +1 -1
  223. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/opencode.js +2 -1
  224. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/{kimi.d.ts → pi.d.ts} +1 -1
  225. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/pi.js +15 -0
  226. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/poe-agent.js +1 -0
  227. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/capabilities.d.ts +14 -0
  228. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/capabilities.js +63 -0
  229. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/index.d.ts +3 -2
  230. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/index.js +2 -1
  231. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/registry.js +5 -2
  232. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/types.d.ts +8 -1
  233. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/package.json +11 -5
  234. package/node_modules/toolcraft/node_modules/@poe-code/agent-human-in-loop/LICENSE +21 -0
  235. package/node_modules/toolcraft/node_modules/@poe-code/agent-human-in-loop/README.md +12 -2
  236. package/node_modules/toolcraft/node_modules/@poe-code/agent-human-in-loop/package.json +10 -4
  237. package/node_modules/toolcraft/node_modules/@poe-code/agent-mcp-config/LICENSE +21 -0
  238. package/node_modules/toolcraft/node_modules/@poe-code/agent-mcp-config/README.md +7 -7
  239. package/node_modules/toolcraft/node_modules/@poe-code/agent-mcp-config/dist/apply.js +23 -9
  240. package/node_modules/toolcraft/node_modules/@poe-code/agent-mcp-config/dist/configs.js +0 -6
  241. package/node_modules/toolcraft/node_modules/@poe-code/agent-mcp-config/package.json +9 -6
  242. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/LICENSE +21 -0
  243. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/README.md +17 -8
  244. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/execution/apply-mutation.js +17 -19
  245. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/execution/path-utils.d.ts +3 -3
  246. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/execution/path-utils.js +4 -4
  247. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/formats/json.js +1 -3
  248. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/formats/toml.js +1 -3
  249. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/formats/yaml.js +1 -3
  250. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/template/render.js +1 -1
  251. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/testing/mock-fs.d.ts +2 -2
  252. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/testing/mock-fs.js +3 -6
  253. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/types.d.ts +5 -1
  254. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/dist/types.js +1 -1
  255. package/node_modules/toolcraft/node_modules/@poe-code/config-mutations/package.json +9 -8
  256. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/LICENSE +21 -0
  257. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/README.md +7 -2
  258. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/dist/index.d.ts +1 -1
  259. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/dist/index.js +1 -1
  260. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/dist/parse.d.ts +9 -0
  261. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/dist/parse.js +16 -0
  262. package/node_modules/toolcraft/node_modules/@poe-code/frontmatter/package.json +7 -5
  263. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/LICENSE +21 -0
  264. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/README.md +5 -2
  265. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/docker/build-context.js +2 -3
  266. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/docker/docker-execution-env.js +66 -34
  267. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/host/host-execution-env.js +1 -0
  268. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/transfer-filesystem.d.ts +1 -0
  269. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/transfer-filesystem.js +1 -0
  270. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/transfer-filesystem.workerd.d.ts +2 -0
  271. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/transfer-filesystem.workerd.js +1 -0
  272. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/types.d.ts +12 -5
  273. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/workspace-transfer.d.ts +6 -5
  274. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/dist/workspace-transfer.js +67 -29
  275. package/node_modules/toolcraft/node_modules/@poe-code/process-runner/package.json +22 -7
  276. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/LICENSE +21 -0
  277. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/PROVENANCE.json +428 -0
  278. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/README.md +453 -0
  279. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/confinement.d.ts +3 -0
  280. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/confinement.js +171 -0
  281. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/filesystem.d.ts +93 -0
  282. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/filesystem.js +453 -0
  283. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/index.d.ts +7 -0
  284. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/index.js +19 -0
  285. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/stats.d.ts +4 -0
  286. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/stats.js +37 -0
  287. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/types.d.ts +81 -0
  288. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/values.d.ts +6 -0
  289. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/bridge/values.js +65 -0
  290. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config/memory.d.ts +3 -0
  291. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config/memory.js +7 -0
  292. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config/real.d.ts +5 -0
  293. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config/real.js +16 -0
  294. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config/registry.d.ts +2 -0
  295. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config/registry.js +15 -0
  296. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config.d.ts +15 -0
  297. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config.js +46 -0
  298. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config.node.d.ts +2 -0
  299. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config.node.js +11 -0
  300. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config.portable.d.ts +3 -0
  301. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/config.portable.js +9 -0
  302. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/abort.d.ts +5 -0
  303. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/abort.js +34 -0
  304. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/cleanup.d.ts +1 -0
  305. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/cleanup.js +9 -0
  306. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/descriptor.d.ts +38 -0
  307. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/descriptor.js +1 -0
  308. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/errors.d.ts +53 -0
  309. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/errors.js +99 -0
  310. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/filesystem.d.ts +411 -0
  311. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/filesystem.js +1 -0
  312. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/index.d.ts +6 -0
  313. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/index.js +6 -0
  314. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/io.d.ts +12 -0
  315. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/io.js +321 -0
  316. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/object.d.ts +134 -0
  317. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/object.js +97 -0
  318. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/path.d.ts +3 -0
  319. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/path.js +2 -0
  320. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/portable-path.d.ts +21 -0
  321. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/portable-path.js +78 -0
  322. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/virtual-path.d.ts +15 -0
  323. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/contracts/virtual-path.js +162 -0
  324. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/core.d.ts +21 -0
  325. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/core.js +19 -0
  326. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/capabilities.d.ts +10 -0
  327. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/capabilities.js +223 -0
  328. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/conditional-chmod.d.ts +7 -0
  329. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/conditional-chmod.js +19 -0
  330. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/descriptor.d.ts +21 -0
  331. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/descriptor.js +279 -0
  332. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/index.d.ts +62 -0
  333. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/index.js +926 -0
  334. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/path.d.ts +7 -0
  335. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/path.js +256 -0
  336. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/plain-path.d.ts +2 -0
  337. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/plain-path.js +3 -0
  338. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/stream.d.ts +6 -0
  339. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/devices/stream.js +136 -0
  340. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/directory-admission.d.ts +3 -0
  341. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/directory-admission.js +14 -0
  342. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/atomic-view.d.ts +12 -0
  343. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/atomic-view.js +13 -0
  344. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/index.d.ts +190 -0
  345. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/index.js +3862 -0
  346. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/ledger.d.ts +27 -0
  347. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/ledger.js +90 -0
  348. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/limits.d.ts +13 -0
  349. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/limits.js +26 -0
  350. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/missing-target.d.ts +15 -0
  351. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/memory/missing-target.js +144 -0
  352. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/mount/comparison.d.ts +19 -0
  353. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/mount/comparison.js +118 -0
  354. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/mount/identity.d.ts +6 -0
  355. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/mount/identity.js +29 -0
  356. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/mount/index.d.ts +79 -0
  357. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/mount/index.js +1490 -0
  358. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/object-authority.d.ts +27 -0
  359. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/object-authority.js +287 -0
  360. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/object-publication/index.d.ts +46 -0
  361. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/object-publication/index.js +536 -0
  362. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/overlay/index.d.ts +91 -0
  363. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/overlay/index.js +1305 -0
  364. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/overlay/memory-publication.d.ts +43 -0
  365. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/overlay/memory-publication.js +583 -0
  366. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/path-namespace.d.ts +4 -0
  367. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/path-namespace.js +63 -0
  368. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/quota/index.d.ts +12 -0
  369. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/quota/index.js +525 -0
  370. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/read-file-stream.d.ts +7 -0
  371. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/read-file-stream.js +103 -0
  372. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/readonly/index.d.ts +38 -0
  373. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/readonly/index.js +218 -0
  374. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/real/allocation.d.ts +1 -0
  375. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/real/allocation.js +8 -0
  376. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/real/index.d.ts +109 -0
  377. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/real/index.js +1393 -0
  378. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/authority.d.ts +7 -0
  379. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/authority.js +38 -0
  380. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/filesystem.d.ts +131 -0
  381. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/filesystem.js +1176 -0
  382. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/bytes.d.ts +1 -0
  383. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/bytes.js +9 -0
  384. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/index.d.ts +2 -0
  385. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/index.js +1 -0
  386. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-fetch.d.ts +15 -0
  387. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-fetch.js +74 -0
  388. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-node.d.ts +4 -0
  389. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-node.js +111 -0
  390. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request.d.ts +17 -0
  391. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request.js +89 -0
  392. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/signature.d.ts +20 -0
  393. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/signature.js +76 -0
  394. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/transport.d.ts +3 -0
  395. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/transport.js +478 -0
  396. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/types.d.ts +30 -0
  397. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/types.js +1 -0
  398. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/xml.d.ts +14 -0
  399. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/http/xml.js +192 -0
  400. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/index.d.ts +8 -0
  401. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/index.js +4 -0
  402. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/key-order.d.ts +2 -0
  403. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/key-order.js +11 -0
  404. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/manifest-admission.d.ts +8 -0
  405. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/manifest-admission.js +167 -0
  406. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/mock.d.ts +48 -0
  407. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/mock.js +249 -0
  408. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/namespace.d.ts +13 -0
  409. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/namespace.js +400 -0
  410. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/registry.d.ts +10 -0
  411. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/registry.js +73 -0
  412. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/transport.d.ts +103 -0
  413. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/s3/transport.js +28 -0
  414. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/scoped.d.ts +20 -0
  415. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/scoped.js +668 -0
  416. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/staging-ancestry.d.ts +8 -0
  417. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/staging-ancestry.js +115 -0
  418. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/staging-cleanup.d.ts +5 -0
  419. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/staging-cleanup.js +63 -0
  420. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/index.d.ts +2 -0
  421. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/index.js +1 -0
  422. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/resource-id.d.ts +18 -0
  423. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/resource-id.js +109 -0
  424. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/webdav.d.ts +141 -0
  425. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/webdav.js +1377 -0
  426. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/xml.d.ts +15 -0
  427. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/fs/webdav/xml.js +59 -0
  428. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/index.d.ts +26 -0
  429. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/index.js +22 -0
  430. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/native/fs-seek/linux-x64-glibc.node +0 -0
  431. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/native/fs-seek/loader.d.ts +5 -0
  432. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/native/fs-seek/loader.mjs +120 -0
  433. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/native/fs-seek/manifest.json +46 -0
  434. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/filesystem.d.ts +19 -0
  435. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/filesystem.js +30 -0
  436. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/host.d.ts +3 -0
  437. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/host.js +78 -0
  438. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/index.d.ts +3 -0
  439. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/index.js +2 -0
  440. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/native-seek-unavailable.d.ts +1 -0
  441. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/native-seek-unavailable.js +5 -0
  442. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/native-seek.d.ts +3 -0
  443. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/native-seek.js +54 -0
  444. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/stats.d.ts +1 -0
  445. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/stats.js +1 -0
  446. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/values.d.ts +1 -0
  447. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node/values.js +1 -0
  448. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node-host.d.ts +1 -0
  449. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node-host.js +1 -0
  450. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node-unavailable.d.ts +1 -0
  451. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/node-unavailable.js +1 -0
  452. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/package.json +29 -0
  453. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/browser-path.d.ts +1 -0
  454. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/browser-path.js +1 -0
  455. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/browser.d.ts +26 -0
  456. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/browser.js +58 -0
  457. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/node-path.d.ts +1 -0
  458. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/node-path.js +1 -0
  459. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/node.d.ts +26 -0
  460. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/node.js +64 -0
  461. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/transport-budget.d.ts +9 -0
  462. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/platform/transport-budget.js +17 -0
  463. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/directory.d.ts +9 -0
  464. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/directory.js +38 -0
  465. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/emscripten.d.ts +15 -0
  466. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/emscripten.js +372 -0
  467. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/filesystem.d.ts +51 -0
  468. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/filesystem.js +258 -0
  469. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/flags.d.ts +3 -0
  470. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/flags.js +14 -0
  471. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/index.d.ts +9 -0
  472. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/index.js +5 -0
  473. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/native.d.ts +18 -0
  474. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/native.js +477 -0
  475. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/request.d.ts +2 -0
  476. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/request.js +62 -0
  477. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/stat.d.ts +8 -0
  478. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/python/stat.js +34 -0
  479. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/runtime-core.d.ts +28 -0
  480. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/runtime-core.js +58 -0
  481. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/storage.d.ts +81 -0
  482. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/storage.js +430 -0
  483. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/atomic-filesystem.d.ts +16 -0
  484. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/atomic-filesystem.js +496 -0
  485. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/object-io-control.d.ts +23 -0
  486. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/object-io-control.js +39 -0
  487. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/object-io-metrics.d.ts +31 -0
  488. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/object-io-metrics.js +144 -0
  489. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/object-publication.d.ts +19 -0
  490. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/testing/object-publication.js +209 -0
  491. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/xml.d.ts +1 -0
  492. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/dist/xml.js +1 -0
  493. package/node_modules/toolcraft/node_modules/@poe-code/safe-fs/package.json +196 -0
  494. package/node_modules/toolcraft/node_modules/@poe-code/task-list/LICENSE +21 -0
  495. package/node_modules/toolcraft/node_modules/@poe-code/task-list/README.md +28 -3
  496. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/backends/gh-issues-client.d.ts +1 -1
  497. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/backends/gh-issues-client.js +15 -4
  498. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/backends/markdown-dir.js +3 -4
  499. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/backends/utils.js +36 -43
  500. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/backends/yaml-file.js +2 -5
  501. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/default-host.d.ts +2 -0
  502. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/default-host.js +2 -0
  503. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/default-host.workerd.d.ts +4 -0
  504. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/default-host.workerd.js +6 -0
  505. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/filesystem.d.ts +3 -0
  506. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/filesystem.js +32 -0
  507. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/move.js +3 -3
  508. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/open.js +2 -5
  509. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/paths.d.ts +12 -0
  510. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/paths.js +7 -0
  511. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/schema/ids.d.ts +2 -0
  512. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/schema/ids.js +6 -0
  513. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/types.d.ts +7 -5
  514. package/node_modules/toolcraft/node_modules/@poe-code/task-list/package.json +16 -5
  515. package/node_modules/toolcraft/node_modules/@poe-code/terminal-text/LICENSE +21 -0
  516. package/node_modules/toolcraft/node_modules/@poe-code/terminal-text/README.md +12 -0
  517. package/node_modules/toolcraft/node_modules/@poe-code/terminal-text/dist/index.d.ts +2 -0
  518. package/node_modules/toolcraft/node_modules/@poe-code/terminal-text/dist/index.js +20 -0
  519. package/node_modules/toolcraft/node_modules/@poe-code/terminal-text/package.json +22 -0
  520. package/node_modules/toolcraft/node_modules/@poe-code/user-error/README.md +56 -0
  521. package/node_modules/toolcraft/node_modules/@poe-code/user-error/dist/index.d.ts +17 -0
  522. package/node_modules/toolcraft/node_modules/@poe-code/user-error/dist/index.js +21 -0
  523. package/node_modules/toolcraft/node_modules/{mcp-oauth → @poe-code/user-error}/package.json +4 -10
  524. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/LICENSE +21 -0
  525. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/README.md +139 -0
  526. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/attributes.d.ts +69 -0
  527. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/attributes.js +62 -0
  528. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/characters.d.ts +3 -0
  529. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/characters.js +53 -0
  530. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/errors.d.ts +4 -0
  531. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/errors.js +7 -0
  532. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/frames.d.ts +67 -0
  533. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/frames.js +87 -0
  534. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/index.d.ts +101 -0
  535. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/index.js +945 -0
  536. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/source.d.ts +28 -0
  537. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/source.js +71 -0
  538. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/stream.d.ts +32 -0
  539. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/dist/stream.js +179 -0
  540. package/node_modules/toolcraft/node_modules/@poe-code/xml-ast/package.json +25 -0
  541. package/node_modules/toolcraft/node_modules/auth-store/LICENSE +21 -0
  542. package/node_modules/toolcraft/node_modules/auth-store/README.md +77 -0
  543. package/node_modules/toolcraft/node_modules/auth-store/dist/create-secret-store.d.ts +3 -1
  544. package/node_modules/toolcraft/node_modules/auth-store/dist/create-secret-store.js +3 -2
  545. package/node_modules/toolcraft/node_modules/auth-store/dist/encrypted-file-store.d.ts +6 -0
  546. package/node_modules/toolcraft/node_modules/auth-store/dist/encrypted-file-store.js +16 -0
  547. package/node_modules/toolcraft/node_modules/auth-store/dist/index.browser.d.ts +4 -0
  548. package/node_modules/toolcraft/node_modules/auth-store/dist/index.browser.js +2 -0
  549. package/node_modules/toolcraft/node_modules/auth-store/dist/index.d.ts +2 -1
  550. package/node_modules/toolcraft/node_modules/auth-store/dist/index.js +1 -1
  551. package/node_modules/toolcraft/node_modules/auth-store/dist/keychain-store.d.ts +8 -0
  552. package/node_modules/toolcraft/node_modules/auth-store/dist/keychain-store.js +13 -0
  553. package/node_modules/toolcraft/node_modules/auth-store/dist/provider-store.d.ts +1 -1
  554. package/node_modules/toolcraft/node_modules/auth-store/dist/provider-store.js +3 -0
  555. package/node_modules/toolcraft/node_modules/auth-store/dist/safe-fs-secret-store.d.ts +21 -0
  556. package/node_modules/toolcraft/node_modules/auth-store/dist/safe-fs-secret-store.js +119 -0
  557. package/node_modules/toolcraft/node_modules/auth-store/dist/secret-store.d.ts +12 -0
  558. package/node_modules/toolcraft/node_modules/auth-store/dist/secret-store.js +1 -0
  559. package/node_modules/toolcraft/node_modules/auth-store/dist/transaction-lock.d.ts +22 -0
  560. package/node_modules/toolcraft/node_modules/auth-store/dist/transaction-lock.js +153 -0
  561. package/node_modules/toolcraft/node_modules/auth-store/dist/types.d.ts +2 -7
  562. package/node_modules/toolcraft/node_modules/auth-store/package.json +21 -6
  563. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/dist/index.d.ts +4 -0
  564. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/dist/index.js +111 -0
  565. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/dist/types.d.ts +19 -0
  566. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/dist/types.js +2 -0
  567. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/dist/utils.d.ts +4 -0
  568. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/dist/utils.js +20 -0
  569. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/license +21 -0
  570. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/package.json +35 -0
  571. package/node_modules/toolcraft/node_modules/fast-string-truncated-width/readme.md +59 -0
  572. package/node_modules/toolcraft/node_modules/fast-string-width/dist/index.d.ts +4 -0
  573. package/node_modules/toolcraft/node_modules/fast-string-width/dist/index.js +14 -0
  574. package/node_modules/toolcraft/node_modules/fast-string-width/license +21 -0
  575. package/node_modules/toolcraft/node_modules/fast-string-width/package.json +34 -0
  576. package/node_modules/toolcraft/node_modules/fast-string-width/readme.md +42 -0
  577. package/node_modules/toolcraft/node_modules/fast-wrap-ansi/LICENSE +23 -0
  578. package/node_modules/toolcraft/node_modules/fast-wrap-ansi/README.md +26 -0
  579. package/node_modules/toolcraft/node_modules/fast-wrap-ansi/lib/main.d.ts +6 -0
  580. package/node_modules/toolcraft/node_modules/fast-wrap-ansi/lib/main.js +218 -0
  581. package/node_modules/toolcraft/node_modules/fast-wrap-ansi/package.json +51 -0
  582. package/node_modules/toolcraft/node_modules/ignore/LICENSE-MIT +21 -0
  583. package/node_modules/toolcraft/node_modules/ignore/README.md +412 -0
  584. package/node_modules/toolcraft/node_modules/ignore/index.d.ts +61 -0
  585. package/node_modules/toolcraft/node_modules/ignore/index.js +636 -0
  586. package/node_modules/toolcraft/node_modules/ignore/legacy.js +559 -0
  587. package/node_modules/toolcraft/node_modules/ignore/package.json +74 -0
  588. package/node_modules/toolcraft/node_modules/jose/LICENSE.md +21 -0
  589. package/node_modules/toolcraft/node_modules/jose/README.md +153 -0
  590. package/node_modules/toolcraft/node_modules/jose/dist/types/index.d.ts +55 -0
  591. package/node_modules/toolcraft/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +31 -0
  592. package/node_modules/toolcraft/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +65 -0
  593. package/node_modules/toolcraft/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +31 -0
  594. package/node_modules/toolcraft/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +83 -0
  595. package/node_modules/toolcraft/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +38 -0
  596. package/node_modules/toolcraft/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +74 -0
  597. package/node_modules/toolcraft/node_modules/jose/dist/types/jwk/embedded.d.ts +17 -0
  598. package/node_modules/toolcraft/node_modules/jose/dist/types/jwk/thumbprint.d.ts +32 -0
  599. package/node_modules/toolcraft/node_modules/jose/dist/types/jwks/local.d.ts +29 -0
  600. package/node_modules/toolcraft/node_modules/jose/dist/types/jwks/remote.d.ts +237 -0
  601. package/node_modules/toolcraft/node_modules/jose/dist/types/jws/compact/sign.d.ts +36 -0
  602. package/node_modules/toolcraft/node_modules/jose/dist/types/jws/compact/verify.d.ts +33 -0
  603. package/node_modules/toolcraft/node_modules/jose/dist/types/jws/flattened/sign.d.ts +42 -0
  604. package/node_modules/toolcraft/node_modules/jose/dist/types/jws/flattened/verify.d.ts +33 -0
  605. package/node_modules/toolcraft/node_modules/jose/dist/types/jws/general/sign.d.ts +53 -0
  606. package/node_modules/toolcraft/node_modules/jose/dist/types/jws/general/verify.d.ts +41 -0
  607. package/node_modules/toolcraft/node_modules/jose/dist/types/jwt/decrypt.d.ts +35 -0
  608. package/node_modules/toolcraft/node_modules/jose/dist/types/jwt/encrypt.d.ts +91 -0
  609. package/node_modules/toolcraft/node_modules/jose/dist/types/jwt/sign.d.ts +43 -0
  610. package/node_modules/toolcraft/node_modules/jose/dist/types/jwt/unsecured.d.ts +43 -0
  611. package/node_modules/toolcraft/node_modules/jose/dist/types/jwt/verify.d.ts +37 -0
  612. package/node_modules/toolcraft/node_modules/jose/dist/types/key/export.d.ts +33 -0
  613. package/node_modules/toolcraft/node_modules/jose/dist/types/key/generate_key_pair.d.ts +47 -0
  614. package/node_modules/toolcraft/node_modules/jose/dist/types/key/generate_secret.d.ts +35 -0
  615. package/node_modules/toolcraft/node_modules/jose/dist/types/key/import.d.ts +83 -0
  616. package/node_modules/toolcraft/node_modules/jose/dist/types/types.d.ts +852 -0
  617. package/node_modules/toolcraft/node_modules/jose/dist/types/util/base64url.d.ts +9 -0
  618. package/node_modules/toolcraft/node_modules/jose/dist/types/util/decode_jwt.d.ts +18 -0
  619. package/node_modules/toolcraft/node_modules/jose/dist/types/util/decode_protected_header.d.ts +17 -0
  620. package/node_modules/toolcraft/node_modules/jose/dist/types/util/errors.d.ts +213 -0
  621. package/node_modules/toolcraft/node_modules/jose/dist/webapi/index.js +32 -0
  622. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +27 -0
  623. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +27 -0
  624. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +159 -0
  625. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +167 -0
  626. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwe/general/decrypt.js +31 -0
  627. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwe/general/encrypt.js +182 -0
  628. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwk/embedded.js +17 -0
  629. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwk/thumbprint.js +68 -0
  630. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwks/local.js +119 -0
  631. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwks/remote.js +179 -0
  632. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jws/compact/sign.js +18 -0
  633. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jws/compact/verify.js +21 -0
  634. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jws/flattened/sign.js +89 -0
  635. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jws/flattened/verify.js +110 -0
  636. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jws/general/sign.js +70 -0
  637. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jws/general/verify.js +24 -0
  638. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwt/decrypt.js +23 -0
  639. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwt/encrypt.js +101 -0
  640. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwt/sign.js +52 -0
  641. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwt/unsecured.js +63 -0
  642. package/node_modules/toolcraft/node_modules/jose/dist/webapi/jwt/verify.js +15 -0
  643. package/node_modules/toolcraft/node_modules/jose/dist/webapi/key/export.js +11 -0
  644. package/node_modules/toolcraft/node_modules/jose/dist/webapi/key/generate_key_pair.js +97 -0
  645. package/node_modules/toolcraft/node_modules/jose/dist/webapi/key/generate_secret.js +40 -0
  646. package/node_modules/toolcraft/node_modules/jose/dist/webapi/key/import.js +57 -0
  647. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/aesgcmkw.js +15 -0
  648. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/aeskw.js +25 -0
  649. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/asn1.js +243 -0
  650. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/base64.js +22 -0
  651. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/buffer_utils.js +43 -0
  652. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/check_key_type.js +122 -0
  653. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/content_encryption.js +217 -0
  654. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/crypto_key.js +136 -0
  655. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/deflate.js +44 -0
  656. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/ecdhes.js +52 -0
  657. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/helpers.js +19 -0
  658. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/invalid_key_input.js +27 -0
  659. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -0
  660. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/jwk_to_key.js +107 -0
  661. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +238 -0
  662. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/key_management.js +186 -0
  663. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/key_to_jwk.js +31 -0
  664. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/normalize_key.js +166 -0
  665. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/pbes2kw.js +42 -0
  666. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/rsaes.js +24 -0
  667. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/signing.js +68 -0
  668. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/type_checks.js +40 -0
  669. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/validate_algorithms.js +10 -0
  670. package/node_modules/toolcraft/node_modules/jose/dist/webapi/lib/validate_crit.js +33 -0
  671. package/node_modules/toolcraft/node_modules/jose/dist/webapi/util/base64url.js +30 -0
  672. package/node_modules/toolcraft/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -0
  673. package/node_modules/toolcraft/node_modules/jose/dist/webapi/util/decode_protected_header.js +34 -0
  674. package/node_modules/toolcraft/node_modules/jose/dist/webapi/util/errors.js +99 -0
  675. package/node_modules/toolcraft/node_modules/jose/package.json +200 -0
  676. package/node_modules/toolcraft/node_modules/jsonc-parser/CHANGELOG.md +76 -0
  677. package/node_modules/toolcraft/node_modules/jsonc-parser/LICENSE.md +21 -0
  678. package/node_modules/toolcraft/node_modules/jsonc-parser/README.md +364 -0
  679. package/node_modules/toolcraft/node_modules/jsonc-parser/SECURITY.md +41 -0
  680. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/impl/edit.js +185 -0
  681. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/impl/format.js +261 -0
  682. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/impl/parser.js +659 -0
  683. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/impl/scanner.js +443 -0
  684. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/impl/string-intern.js +29 -0
  685. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/main.d.ts +351 -0
  686. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/esm/main.js +178 -0
  687. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/impl/edit.js +201 -0
  688. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/impl/format.js +275 -0
  689. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/impl/parser.js +682 -0
  690. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/impl/scanner.js +456 -0
  691. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/impl/string-intern.js +42 -0
  692. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/main.d.ts +351 -0
  693. package/node_modules/toolcraft/node_modules/jsonc-parser/lib/umd/main.js +194 -0
  694. package/node_modules/toolcraft/node_modules/jsonc-parser/package.json +37 -0
  695. package/node_modules/toolcraft/node_modules/mcp-oauth-server/LICENSE +21 -0
  696. package/node_modules/toolcraft/node_modules/mcp-oauth-server/README.md +192 -0
  697. package/node_modules/toolcraft/node_modules/mcp-oauth-server/dist/index.d.ts +161 -0
  698. package/node_modules/toolcraft/node_modules/mcp-oauth-server/dist/index.js +723 -0
  699. package/node_modules/toolcraft/node_modules/mcp-oauth-server/package.json +34 -0
  700. package/node_modules/toolcraft/node_modules/saxes/README.md +323 -0
  701. package/node_modules/toolcraft/node_modules/saxes/package.json +71 -0
  702. package/node_modules/toolcraft/node_modules/saxes/saxes.d.ts +635 -0
  703. package/node_modules/toolcraft/node_modules/saxes/saxes.js +2053 -0
  704. package/node_modules/toolcraft/node_modules/saxes/saxes.js.map +1 -0
  705. package/node_modules/toolcraft/node_modules/sisteransi/license +21 -0
  706. package/node_modules/toolcraft/node_modules/sisteransi/package.json +34 -0
  707. package/node_modules/toolcraft/node_modules/sisteransi/readme.md +113 -0
  708. package/node_modules/toolcraft/node_modules/sisteransi/src/index.js +58 -0
  709. package/node_modules/toolcraft/node_modules/sisteransi/src/sisteransi.d.ts +35 -0
  710. package/node_modules/toolcraft/node_modules/smol-toml/LICENSE +24 -0
  711. package/node_modules/toolcraft/node_modules/smol-toml/README.md +404 -0
  712. package/node_modules/toolcraft/node_modules/smol-toml/dist/date.d.ts +42 -0
  713. package/node_modules/toolcraft/node_modules/smol-toml/dist/date.d.ts.map +1 -0
  714. package/node_modules/toolcraft/node_modules/smol-toml/dist/date.js +128 -0
  715. package/node_modules/toolcraft/node_modules/smol-toml/dist/date.js.map +1 -0
  716. package/node_modules/toolcraft/node_modules/smol-toml/dist/error.d.ts +39 -0
  717. package/node_modules/toolcraft/node_modules/smol-toml/dist/error.d.ts.map +1 -0
  718. package/node_modules/toolcraft/node_modules/smol-toml/dist/error.js +64 -0
  719. package/node_modules/toolcraft/node_modules/smol-toml/dist/error.js.map +1 -0
  720. package/node_modules/toolcraft/node_modules/smol-toml/dist/extract.d.ts +31 -0
  721. package/node_modules/toolcraft/node_modules/smol-toml/dist/extract.d.ts.map +1 -0
  722. package/node_modules/toolcraft/node_modules/smol-toml/dist/extract.js +101 -0
  723. package/node_modules/toolcraft/node_modules/smol-toml/dist/extract.js.map +1 -0
  724. package/node_modules/toolcraft/node_modules/smol-toml/dist/index.cjs +708 -0
  725. package/node_modules/toolcraft/node_modules/smol-toml/dist/index.cjs.map +1 -0
  726. package/node_modules/toolcraft/node_modules/smol-toml/dist/index.d.ts +44 -0
  727. package/node_modules/toolcraft/node_modules/smol-toml/dist/index.d.ts.map +1 -0
  728. package/node_modules/toolcraft/node_modules/smol-toml/dist/index.js +34 -0
  729. package/node_modules/toolcraft/node_modules/smol-toml/dist/index.js.map +1 -0
  730. package/node_modules/toolcraft/node_modules/smol-toml/dist/parse.d.ts +38 -0
  731. package/node_modules/toolcraft/node_modules/smol-toml/dist/parse.d.ts.map +1 -0
  732. package/node_modules/toolcraft/node_modules/smol-toml/dist/parse.js +148 -0
  733. package/node_modules/toolcraft/node_modules/smol-toml/dist/parse.js.map +1 -0
  734. package/node_modules/toolcraft/node_modules/smol-toml/dist/primitive.d.ts +32 -0
  735. package/node_modules/toolcraft/node_modules/smol-toml/dist/primitive.d.ts.map +1 -0
  736. package/node_modules/toolcraft/node_modules/smol-toml/dist/primitive.js +237 -0
  737. package/node_modules/toolcraft/node_modules/smol-toml/dist/primitive.js.map +1 -0
  738. package/node_modules/toolcraft/node_modules/smol-toml/dist/stringify.d.ts +32 -0
  739. package/node_modules/toolcraft/node_modules/smol-toml/dist/stringify.d.ts.map +1 -0
  740. package/node_modules/toolcraft/node_modules/smol-toml/dist/stringify.js +168 -0
  741. package/node_modules/toolcraft/node_modules/smol-toml/dist/stringify.js.map +1 -0
  742. package/node_modules/toolcraft/node_modules/smol-toml/dist/struct.d.ts +33 -0
  743. package/node_modules/toolcraft/node_modules/smol-toml/dist/struct.d.ts.map +1 -0
  744. package/node_modules/toolcraft/node_modules/smol-toml/dist/struct.js +179 -0
  745. package/node_modules/toolcraft/node_modules/smol-toml/dist/struct.js.map +1 -0
  746. package/node_modules/toolcraft/node_modules/smol-toml/dist/util.d.ts +42 -0
  747. package/node_modules/toolcraft/node_modules/smol-toml/dist/util.d.ts.map +1 -0
  748. package/node_modules/toolcraft/node_modules/smol-toml/dist/util.js +86 -0
  749. package/node_modules/toolcraft/node_modules/smol-toml/dist/util.js.map +1 -0
  750. package/node_modules/toolcraft/node_modules/smol-toml/package.json +64 -0
  751. package/node_modules/toolcraft/node_modules/smol-toml/src/date.ts +152 -0
  752. package/node_modules/toolcraft/node_modules/smol-toml/src/error.ts +77 -0
  753. package/node_modules/toolcraft/node_modules/smol-toml/src/extract.ts +112 -0
  754. package/node_modules/toolcraft/node_modules/smol-toml/src/index.ts +42 -0
  755. package/node_modules/toolcraft/node_modules/smol-toml/src/parse.ts +184 -0
  756. package/node_modules/toolcraft/node_modules/smol-toml/src/primitive.ts +247 -0
  757. package/node_modules/toolcraft/node_modules/smol-toml/src/stringify.ts +191 -0
  758. package/node_modules/toolcraft/node_modules/smol-toml/src/struct.ts +199 -0
  759. package/node_modules/toolcraft/node_modules/smol-toml/src/util.ts +101 -0
  760. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/LICENSE +21 -0
  761. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/README.md +836 -0
  762. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/auth.d.ts +69 -0
  763. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/auth.js +261 -0
  764. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/cli.d.ts +20 -0
  765. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/cli.js +493 -0
  766. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/composition.json +65 -0
  767. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/express-middleware.d.ts +18 -0
  768. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/express-middleware.js +90 -0
  769. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/fetch-body.d.ts +6 -0
  770. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/fetch-body.js +47 -0
  771. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/fetch.d.ts +23 -0
  772. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/fetch.js +130 -0
  773. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/http-server.d.ts +53 -0
  774. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/http-server.js +262 -0
  775. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/http-transport.d.ts +173 -0
  776. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/http-transport.js +1097 -0
  777. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/index.d.ts +13 -0
  778. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/index.js +6 -0
  779. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/load-oauth-verifier.d.ts +6 -0
  780. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/load-oauth-verifier.js +43 -0
  781. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/modern-headers.d.ts +3 -0
  782. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/modern-headers.js +34 -0
  783. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/parse-body.d.ts +23 -0
  784. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/parse-body.js +161 -0
  785. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/server.d.ts +9 -0
  786. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/server.js +4 -0
  787. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/session.d.ts +18 -0
  788. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/session.js +37 -0
  789. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/sse.d.ts +11 -0
  790. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/sse.js +22 -0
  791. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/test-support.d.ts +10 -0
  792. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/test-support.js +415 -0
  793. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/testing.d.ts +59 -0
  794. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/dist/testing.js +192 -0
  795. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/LICENSE +21 -0
  796. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/README.md +390 -0
  797. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/auth-store-session-store.d.ts +17 -0
  798. package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/auth-store-session-store.js +61 -36
  799. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/authorization-error.d.ts +7 -0
  800. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/authorization-error.js +16 -0
  801. package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/authorization-state.js +4 -4
  802. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/bounded-json.d.ts +2 -0
  803. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/bounded-json.js +44 -0
  804. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/cancellable-operation.d.ts +2 -0
  805. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/cancellable-operation.js +18 -0
  806. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/client-registration.d.ts +6 -0
  807. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/client-registration.js +118 -0
  808. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/default-oauth-client-provider.js +841 -0
  809. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/loopback-authorization.d.ts +36 -0
  810. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/loopback-authorization.js +317 -0
  811. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/oauth-form.d.ts +10 -0
  812. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/oauth-form.js +20 -0
  813. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/persistence-options.d.ts +3 -0
  814. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/persistence-options.js +10 -0
  815. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/pkce.js +8 -0
  816. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/redirect-target.d.ts +10 -0
  817. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/redirect-target.js +42 -0
  818. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/register-client.d.ts +20 -0
  819. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/register-client.js +68 -0
  820. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resource-bound-store.d.ts +20 -0
  821. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resource-bound-store.js +179 -0
  822. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resumable.d.ts +66 -0
  823. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resumable.js +153 -0
  824. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/revoke-token.d.ts +12 -0
  825. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/revoke-token.js +23 -0
  826. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/scope.d.ts +2 -0
  827. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/scope.js +9 -0
  828. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/session-transaction.d.ts +6 -0
  829. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/session-transaction.js +50 -0
  830. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/token-auth-method.d.ts +2 -0
  831. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/token-auth-method.js +7 -0
  832. package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/token-endpoint.d.ts +11 -3
  833. package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/token-endpoint.js +66 -29
  834. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/token-grant.d.ts +10 -0
  835. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/token-grant.js +56 -0
  836. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/types.d.ts +196 -0
  837. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/types.js +1 -0
  838. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/http-fetch.d.ts +1 -0
  839. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/http-fetch.js +45 -0
  840. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/http-response.d.ts +1 -0
  841. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/http-response.js +50 -0
  842. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.browser.d.ts +24 -0
  843. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.browser.js +31 -0
  844. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.d.ts +25 -0
  845. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.js +19 -0
  846. package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/server/jwks-token-verifier.d.ts +4 -0
  847. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/server/jwks-token-verifier.js +406 -0
  848. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/types.compile-check.d.ts +1 -0
  849. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/package.json +35 -0
  850. package/node_modules/toolcraft/node_modules/tiny-http-mcp-server/package.json +65 -0
  851. package/node_modules/toolcraft/node_modules/tiny-mcp-client/LICENSE +21 -0
  852. package/node_modules/toolcraft/node_modules/tiny-mcp-client/README.md +150 -49
  853. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/index.browser.d.ts +909 -0
  854. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/index.browser.js +6923 -0
  855. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/index.d.ts +909 -2
  856. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/index.js +10285 -1
  857. package/node_modules/toolcraft/node_modules/tiny-mcp-client/package.json +42 -3
  858. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/LICENSE +21 -0
  859. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/README.md +296 -0
  860. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/base64.d.ts +1 -0
  861. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/base64.js +10 -0
  862. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/composition.json +15 -0
  863. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/audio.d.ts +18 -0
  864. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/audio.js +84 -0
  865. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/convert.d.ts +20 -0
  866. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/convert.js +96 -0
  867. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/file-type.d.ts +11 -0
  868. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/file-type.js +93 -0
  869. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/file.d.ts +33 -0
  870. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/file.js +110 -0
  871. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/image.d.ts +18 -0
  872. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/image.js +72 -0
  873. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/index.d.ts +7 -0
  874. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/index.js +9 -0
  875. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/mime.d.ts +7 -0
  876. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/mime.js +52 -0
  877. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/remote.d.ts +5 -0
  878. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/content/remote.js +69 -0
  879. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/core.d.ts +8 -0
  880. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/core.js +4 -0
  881. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/headers.d.ts +10 -0
  882. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/headers.js +181 -0
  883. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/index.d.ts +9 -0
  884. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/index.js +7 -0
  885. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/input-request-schema.d.ts +220 -0
  886. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/input-request-schema.js +1995 -0
  887. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/jsonrpc.d.ts +15 -0
  888. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/jsonrpc.js +131 -0
  889. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/metadata.d.ts +2 -0
  890. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/metadata.js +37 -0
  891. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/protocol-server.d.ts +48 -0
  892. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/protocol-server.js +1169 -0
  893. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/protocol-validation.d.ts +4 -0
  894. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/protocol-validation.js +53 -0
  895. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/protocol.d.ts +17 -0
  896. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/protocol.js +228 -0
  897. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/request-cancellation.d.ts +1 -0
  898. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/request-cancellation.js +18 -0
  899. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/sampling-messages.d.ts +18 -0
  900. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/sampling-messages.js +34 -0
  901. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/schema.d.ts +26 -0
  902. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/schema.js +26 -0
  903. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/server.d.ts +4 -0
  904. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/server.js +7 -0
  905. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/standard-schema.compile-check.d.ts +1 -0
  906. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/standard-schema.compile-check.js +15 -0
  907. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/stdio-input.d.ts +11 -0
  908. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/stdio-input.js +67 -0
  909. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/stdio-output.d.ts +24 -0
  910. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/stdio-output.js +131 -0
  911. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/subscriptions.d.ts +11 -0
  912. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/subscriptions.js +128 -0
  913. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/testing.d.ts +7 -0
  914. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/testing.js +20 -0
  915. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/tool-call-admission.d.ts +9 -0
  916. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/tool-call-admission.js +51 -0
  917. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/tool-schema.d.ts +13 -0
  918. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/tool-schema.js +53 -0
  919. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/types.d.ts +299 -0
  920. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/types.js +23 -0
  921. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/uri-template.d.ts +6 -0
  922. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/uri-template.js +363 -0
  923. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/uri.d.ts +1 -0
  924. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/dist/uri.js +41 -0
  925. package/node_modules/toolcraft/node_modules/tiny-stdio-mcp-server/package.json +66 -0
  926. package/node_modules/toolcraft/node_modules/toolcraft-design/LICENSE +21 -0
  927. package/node_modules/toolcraft/node_modules/toolcraft-design/README.md +47 -7
  928. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/acp/components.d.ts +8 -1
  929. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/acp/components.js +11 -6
  930. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/acp/index.d.ts +3 -0
  931. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/acp/index.js +1 -0
  932. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/acp/plan.d.ts +10 -0
  933. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/acp/plan.js +50 -0
  934. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/command-registry.d.ts +11 -0
  935. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/command-registry.js +24 -0
  936. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/command-errors.d.ts +2 -0
  937. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/command-errors.js +8 -2
  938. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/file-changes.d.ts +16 -0
  939. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/file-changes.js +162 -0
  940. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/help-formatter-plain.js +61 -25
  941. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/help-formatter.d.ts +17 -0
  942. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/help-formatter.js +128 -29
  943. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/index.d.ts +5 -3
  944. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/index.js +3 -2
  945. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/table.d.ts +1 -0
  946. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/table.js +58 -5
  947. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/template.d.ts +9 -0
  948. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/components/template.js +27 -2
  949. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/ansi.d.ts +2 -0
  950. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/ansi.js +81 -27
  951. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/buffer.js +39 -25
  952. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/border.js +6 -5
  953. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/context-pane.d.ts +4 -0
  954. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/context-pane.js +22 -0
  955. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/footer.d.ts +2 -2
  956. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/footer.js +46 -24
  957. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/output-pane.d.ts +6 -2
  958. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/output-pane.js +128 -10
  959. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/run-view.d.ts +27 -0
  960. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/run-view.js +283 -0
  961. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/stats-pane.d.ts +3 -2
  962. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/components/stats-pane.js +60 -19
  963. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/composer-layout.d.ts +12 -0
  964. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/composer-layout.js +45 -0
  965. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/composer.d.ts +24 -0
  966. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/composer.js +107 -0
  967. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/dashboard.d.ts +8 -0
  968. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/dashboard.js +268 -13
  969. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/elapsed.d.ts +1 -0
  970. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/elapsed.js +8 -0
  971. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/index.d.ts +4 -1
  972. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/index.js +2 -0
  973. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/keymap.js +26 -6
  974. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/layout.d.ts +1 -0
  975. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/layout.js +19 -3
  976. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/line-buffer.d.ts +9 -0
  977. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/line-buffer.js +63 -0
  978. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/output-preview.d.ts +9 -0
  979. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/output-preview.js +70 -0
  980. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/snapshot.js +3 -1
  981. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/store.js +10 -3
  982. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/terminal-strings.d.ts +6 -0
  983. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/terminal-strings.js +108 -0
  984. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/terminal-width.d.ts +1 -0
  985. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/terminal-width.js +27 -2
  986. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/terminal.js +39 -12
  987. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/testing/pipeline-scenario.d.ts +1 -0
  988. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/testing/pipeline-scenario.js +128 -0
  989. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/dashboard/types.d.ts +47 -1
  990. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/escape-terminal-text.d.ts +1 -0
  991. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/escape-terminal-text.js +1 -0
  992. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/event-groups.d.ts +19 -0
  993. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/event-groups.js +49 -0
  994. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/actions.d.ts +8 -2
  995. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/actions.js +52 -4
  996. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/demo.js +3 -3
  997. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/detail-content.d.ts +6 -0
  998. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/detail-content.js +24 -0
  999. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/events.d.ts +12 -2
  1000. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/filter.js +48 -9
  1001. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/index.d.ts +2 -4
  1002. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/index.js +1 -2
  1003. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/jobs.d.ts +2 -1
  1004. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/jobs.js +29 -3
  1005. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/keymap.d.ts +13 -3
  1006. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/keymap.js +89 -348
  1007. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/layout.d.ts +2 -0
  1008. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/layout.js +22 -4
  1009. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/reducer.js +198 -45
  1010. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/detail.d.ts +2 -2
  1011. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/detail.js +37 -31
  1012. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/footer.d.ts +1 -1
  1013. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/footer.js +18 -3
  1014. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/header.d.ts +1 -1
  1015. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/header.js +6 -2
  1016. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/index.d.ts +1 -1
  1017. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/index.js +2 -1
  1018. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/list.d.ts +16 -2
  1019. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/list.js +49 -43
  1020. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/modal.d.ts +1 -1
  1021. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/modal.js +26 -13
  1022. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/pane.d.ts +6 -3
  1023. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/pane.js +10 -14
  1024. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/render/test-fixtures.js +3 -4
  1025. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/runtime.js +141 -75
  1026. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/runtime.test-helpers.d.ts +23 -37
  1027. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/runtime.test-helpers.js +32 -83
  1028. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/state.d.ts +95 -8
  1029. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/state.js +77 -22
  1030. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/help-formatter.d.ts +2 -2
  1031. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/help-formatter.js +1 -1
  1032. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/index.d.ts +22 -9
  1033. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/index.js +15 -6
  1034. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/inline-notice.d.ts +14 -0
  1035. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/inline-notice.js +28 -0
  1036. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/metric.d.ts +8 -0
  1037. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/metric.js +21 -0
  1038. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/overlay-manager.d.ts +6 -0
  1039. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/overlay-manager.js +10 -0
  1040. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/primitives.d.ts +12 -0
  1041. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/primitives.js +7 -0
  1042. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/progress-group.d.ts +7 -0
  1043. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/progress-group.js +10 -0
  1044. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/core.d.ts +9 -2
  1045. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/core.js +208 -31
  1046. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/multiselect.js +3 -2
  1047. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/pagination.js +21 -27
  1048. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/password.js +11 -8
  1049. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/select.js +3 -2
  1050. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/interactive/text.js +12 -9
  1051. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/primitives/note.d.ts +1 -1
  1052. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/primitives/note.js +4 -4
  1053. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/prompts/primitives/spinner.js +2 -1
  1054. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/render-markdown-plaintext.d.ts +2 -0
  1055. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/render-markdown-plaintext.js +1 -0
  1056. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/render-performance.d.ts +33 -0
  1057. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/render-performance.js +71 -0
  1058. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/screen/ansi-text.d.ts +2 -0
  1059. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/screen/ansi-text.js +35 -0
  1060. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/screen/screen.d.ts +40 -0
  1061. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/screen/screen.js +122 -0
  1062. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/screen/style.d.ts +16 -0
  1063. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/screen/style.js +55 -0
  1064. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/task-tree.d.ts +22 -0
  1065. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/task-tree.js +79 -0
  1066. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal/driver.d.ts +34 -0
  1067. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal/driver.js +65 -0
  1068. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal/input.d.ts +25 -0
  1069. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal/input.js +197 -0
  1070. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal/output.d.ts +10 -0
  1071. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal/output.js +44 -0
  1072. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/index.d.ts +2 -0
  1073. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/index.js +1 -0
  1074. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/parser/frontmatter.js +2 -1
  1075. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/parser/inline.js +64 -13
  1076. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/parser.js +2 -1
  1077. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/plaintext-renderer.d.ts +11 -0
  1078. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/terminal-markdown/plaintext-renderer.js +228 -0
  1079. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/viewport.d.ts +18 -0
  1080. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/viewport.js +56 -0
  1081. package/node_modules/toolcraft/node_modules/toolcraft-design/package.json +13 -9
  1082. package/node_modules/toolcraft/node_modules/toolcraft-schema/LICENSE +21 -0
  1083. package/node_modules/toolcraft/node_modules/toolcraft-schema/README.md +151 -0
  1084. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/clone-default.d.ts +1 -0
  1085. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/clone-default.js +26 -0
  1086. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/index.compile-check.d.ts +1 -0
  1087. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/index.compile-check.js +18 -0
  1088. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/index.d.ts +220 -0
  1089. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/index.js +354 -0
  1090. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/compiler.d.ts +12 -0
  1091. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/compiler.js +396 -0
  1092. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/evaluate.d.ts +3 -0
  1093. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/evaluate.js +445 -0
  1094. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/index.d.ts +5 -0
  1095. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/index.js +19 -0
  1096. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/normalize-nullability.d.ts +1 -0
  1097. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/normalize-nullability.js +69 -0
  1098. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/properties.d.ts +16 -0
  1099. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/properties.js +129 -0
  1100. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/types.d.ts +34 -0
  1101. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/types.js +1 -0
  1102. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/utils.d.ts +19 -0
  1103. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema/utils.js +174 -0
  1104. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema-document.d.ts +14 -0
  1105. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json-schema-document.js +17 -0
  1106. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json.compile-check.d.ts +1 -0
  1107. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json.compile-check.js +2 -0
  1108. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json.d.ts +23 -0
  1109. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/json.js +81 -0
  1110. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/native-json-schema.d.ts +13 -0
  1111. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/native-json-schema.js +12 -0
  1112. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/oneof.compile-check.d.ts +1 -0
  1113. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/oneof.compile-check.js +12 -0
  1114. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/oneof.d.ts +16 -0
  1115. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/oneof.js +19 -0
  1116. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/record.compile-check.d.ts +1 -0
  1117. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/record.compile-check.js +2 -0
  1118. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/record.d.ts +6 -0
  1119. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/record.js +7 -0
  1120. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/standard.compile-check.d.ts +1 -0
  1121. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/standard.compile-check.js +20 -0
  1122. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/standard.d.ts +92 -0
  1123. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/standard.js +38 -0
  1124. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/union.compile-check.d.ts +1 -0
  1125. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/union.compile-check.js +9 -0
  1126. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/union.d.ts +9 -0
  1127. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/union.js +46 -0
  1128. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/validate.d.ts +21 -0
  1129. package/node_modules/toolcraft/node_modules/toolcraft-schema/dist/validate.js +393 -0
  1130. package/node_modules/toolcraft/node_modules/toolcraft-schema/package.json +33 -0
  1131. package/node_modules/toolcraft/node_modules/xmlchars/LICENSE +18 -0
  1132. package/node_modules/toolcraft/node_modules/xmlchars/README.md +33 -0
  1133. package/node_modules/toolcraft/node_modules/xmlchars/package.json +51 -0
  1134. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.0/ed4.d.ts +31 -0
  1135. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.0/ed4.js +44 -0
  1136. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.0/ed4.js.map +1 -0
  1137. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.0/ed5.d.ts +51 -0
  1138. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.0/ed5.js +105 -0
  1139. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.0/ed5.js.map +1 -0
  1140. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.1/ed2.d.ts +73 -0
  1141. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.1/ed2.js +145 -0
  1142. package/node_modules/toolcraft/node_modules/xmlchars/xml/1.1/ed2.js.map +1 -0
  1143. package/node_modules/toolcraft/node_modules/xmlchars/xmlchars.d.ts +170 -0
  1144. package/node_modules/toolcraft/node_modules/xmlchars/xmlchars.js +191 -0
  1145. package/node_modules/toolcraft/node_modules/xmlchars/xmlchars.js.map +1 -0
  1146. package/node_modules/toolcraft/node_modules/xmlchars/xmlns/1.0/ed3.d.ts +28 -0
  1147. package/node_modules/toolcraft/node_modules/xmlchars/xmlns/1.0/ed3.js +65 -0
  1148. package/node_modules/toolcraft/node_modules/xmlchars/xmlns/1.0/ed3.js.map +1 -0
  1149. package/node_modules/toolcraft/node_modules/yaml/LICENSE +13 -0
  1150. package/node_modules/toolcraft/node_modules/yaml/README.md +172 -0
  1151. package/node_modules/toolcraft/node_modules/yaml/bin.mjs +11 -0
  1152. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  1153. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  1154. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  1155. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  1156. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  1157. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  1158. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  1159. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  1160. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  1161. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  1162. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  1163. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  1164. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  1165. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  1166. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  1167. package/node_modules/toolcraft/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  1168. package/node_modules/toolcraft/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  1169. package/node_modules/toolcraft/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  1170. package/node_modules/toolcraft/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  1171. package/node_modules/toolcraft/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  1172. package/node_modules/toolcraft/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  1173. package/node_modules/toolcraft/node_modules/yaml/browser/dist/errors.js +57 -0
  1174. package/node_modules/toolcraft/node_modules/yaml/browser/dist/index.js +17 -0
  1175. package/node_modules/toolcraft/node_modules/yaml/browser/dist/log.js +11 -0
  1176. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  1177. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  1178. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  1179. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  1180. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  1181. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  1182. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  1183. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  1184. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  1185. package/node_modules/toolcraft/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  1186. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  1187. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  1188. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  1189. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  1190. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  1191. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  1192. package/node_modules/toolcraft/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  1193. package/node_modules/toolcraft/node_modules/yaml/browser/dist/public-api.js +102 -0
  1194. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  1195. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  1196. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  1197. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  1198. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  1199. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  1200. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  1201. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  1202. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  1203. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  1204. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  1205. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  1206. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  1207. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  1208. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  1209. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  1210. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  1211. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  1212. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  1213. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  1214. package/node_modules/toolcraft/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  1215. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  1216. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  1217. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  1218. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  1219. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  1220. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  1221. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  1222. package/node_modules/toolcraft/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  1223. package/node_modules/toolcraft/node_modules/yaml/browser/dist/util.js +11 -0
  1224. package/node_modules/toolcraft/node_modules/yaml/browser/dist/visit.js +233 -0
  1225. package/node_modules/toolcraft/node_modules/yaml/browser/index.js +5 -0
  1226. package/node_modules/toolcraft/node_modules/yaml/browser/package.json +3 -0
  1227. package/node_modules/toolcraft/node_modules/yaml/dist/cli.d.ts +8 -0
  1228. package/node_modules/toolcraft/node_modules/yaml/dist/cli.mjs +201 -0
  1229. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  1230. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  1231. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  1232. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  1233. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  1234. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-node.js +112 -0
  1235. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  1236. package/node_modules/toolcraft/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  1237. package/node_modules/toolcraft/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  1238. package/node_modules/toolcraft/node_modules/yaml/dist/compose/composer.js +224 -0
  1239. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  1240. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  1241. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  1242. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  1243. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  1244. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  1245. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  1246. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  1247. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  1248. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  1249. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  1250. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  1251. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  1252. package/node_modules/toolcraft/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  1253. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  1254. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  1255. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  1256. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  1257. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  1258. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  1259. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  1260. package/node_modules/toolcraft/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  1261. package/node_modules/toolcraft/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  1262. package/node_modules/toolcraft/node_modules/yaml/dist/doc/Document.js +337 -0
  1263. package/node_modules/toolcraft/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  1264. package/node_modules/toolcraft/node_modules/yaml/dist/doc/anchors.js +76 -0
  1265. package/node_modules/toolcraft/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  1266. package/node_modules/toolcraft/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  1267. package/node_modules/toolcraft/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  1268. package/node_modules/toolcraft/node_modules/yaml/dist/doc/createNode.js +90 -0
  1269. package/node_modules/toolcraft/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  1270. package/node_modules/toolcraft/node_modules/yaml/dist/doc/directives.js +178 -0
  1271. package/node_modules/toolcraft/node_modules/yaml/dist/errors.d.ts +21 -0
  1272. package/node_modules/toolcraft/node_modules/yaml/dist/errors.js +62 -0
  1273. package/node_modules/toolcraft/node_modules/yaml/dist/index.d.ts +25 -0
  1274. package/node_modules/toolcraft/node_modules/yaml/dist/index.js +50 -0
  1275. package/node_modules/toolcraft/node_modules/yaml/dist/log.d.ts +3 -0
  1276. package/node_modules/toolcraft/node_modules/yaml/dist/log.js +19 -0
  1277. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  1278. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Alias.js +118 -0
  1279. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  1280. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Collection.js +151 -0
  1281. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  1282. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Node.js +40 -0
  1283. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  1284. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Pair.js +39 -0
  1285. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  1286. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  1287. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  1288. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  1289. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  1290. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  1291. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  1292. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  1293. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  1294. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/identity.js +53 -0
  1295. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  1296. package/node_modules/toolcraft/node_modules/yaml/dist/nodes/toJS.js +39 -0
  1297. package/node_modules/toolcraft/node_modules/yaml/dist/options.d.ts +350 -0
  1298. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  1299. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  1300. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  1301. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  1302. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  1303. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  1304. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  1305. package/node_modules/toolcraft/node_modules/yaml/dist/parse/cst.js +112 -0
  1306. package/node_modules/toolcraft/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  1307. package/node_modules/toolcraft/node_modules/yaml/dist/parse/lexer.js +723 -0
  1308. package/node_modules/toolcraft/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  1309. package/node_modules/toolcraft/node_modules/yaml/dist/parse/line-counter.js +41 -0
  1310. package/node_modules/toolcraft/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  1311. package/node_modules/toolcraft/node_modules/yaml/dist/parse/parser.js +980 -0
  1312. package/node_modules/toolcraft/node_modules/yaml/dist/public-api.d.ts +44 -0
  1313. package/node_modules/toolcraft/node_modules/yaml/dist/public-api.js +107 -0
  1314. package/node_modules/toolcraft/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  1315. package/node_modules/toolcraft/node_modules/yaml/dist/schema/Schema.js +39 -0
  1316. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  1317. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/map.js +19 -0
  1318. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  1319. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/null.js +17 -0
  1320. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  1321. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/seq.js +19 -0
  1322. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  1323. package/node_modules/toolcraft/node_modules/yaml/dist/schema/common/string.js +16 -0
  1324. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  1325. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/bool.js +21 -0
  1326. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  1327. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/float.js +47 -0
  1328. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  1329. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/int.js +42 -0
  1330. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  1331. package/node_modules/toolcraft/node_modules/yaml/dist/schema/core/schema.js +25 -0
  1332. package/node_modules/toolcraft/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  1333. package/node_modules/toolcraft/node_modules/yaml/dist/schema/json/schema.js +64 -0
  1334. package/node_modules/toolcraft/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  1335. package/node_modules/toolcraft/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  1336. package/node_modules/toolcraft/node_modules/yaml/dist/schema/tags.js +99 -0
  1337. package/node_modules/toolcraft/node_modules/yaml/dist/schema/types.d.ts +92 -0
  1338. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  1339. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  1340. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  1341. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  1342. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  1343. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  1344. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  1345. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  1346. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  1347. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  1348. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  1349. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  1350. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  1351. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  1352. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  1353. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  1354. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  1355. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  1356. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  1357. package/node_modules/toolcraft/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  1358. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  1359. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  1360. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  1361. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringify.js +132 -0
  1362. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  1363. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  1364. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  1365. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  1366. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  1367. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  1368. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  1369. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  1370. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  1371. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  1372. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  1373. package/node_modules/toolcraft/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  1374. package/node_modules/toolcraft/node_modules/yaml/dist/test-events.d.ts +4 -0
  1375. package/node_modules/toolcraft/node_modules/yaml/dist/test-events.js +134 -0
  1376. package/node_modules/toolcraft/node_modules/yaml/dist/util.d.ts +16 -0
  1377. package/node_modules/toolcraft/node_modules/yaml/dist/util.js +28 -0
  1378. package/node_modules/toolcraft/node_modules/yaml/dist/visit.d.ts +102 -0
  1379. package/node_modules/toolcraft/node_modules/yaml/dist/visit.js +236 -0
  1380. package/node_modules/toolcraft/node_modules/yaml/package.json +97 -0
  1381. package/node_modules/toolcraft/node_modules/yaml/util.js +2 -0
  1382. package/node_modules/toolcraft/package.json +121 -12
  1383. package/package.json +2 -2
  1384. package/src/adapters/root.ts +12 -2
  1385. package/src/cli.ts +3 -1
  1386. package/src/executable.ts +3 -1
  1387. package/src/mcp.ts +1 -1
  1388. package/node_modules/toolcraft/dist/design/run-two-pane-explorer.d.ts +0 -2
  1389. package/node_modules/toolcraft/dist/design/run-two-pane-explorer.js +0 -1
  1390. package/node_modules/toolcraft/node_modules/@poe-code/agent-defs/dist/agents/kimi.js +0 -16
  1391. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/schema/store.schema.json +0 -32
  1392. package/node_modules/toolcraft/node_modules/@poe-code/task-list/dist/schema/task.schema.json +0 -33
  1393. package/node_modules/toolcraft/node_modules/mcp-oauth/README.md +0 -31
  1394. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/client/auth-store-session-store.d.ts +0 -14
  1395. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/client/default-oauth-client-provider.js +0 -627
  1396. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/client/loopback-authorization.d.ts +0 -20
  1397. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/client/loopback-authorization.js +0 -207
  1398. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/client/pkce.js +0 -7
  1399. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/client/types.d.ts +0 -113
  1400. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/index.d.ts +0 -10
  1401. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/index.js +0 -7
  1402. package/node_modules/toolcraft/node_modules/mcp-oauth/dist/server/jwks-token-verifier.js +0 -304
  1403. package/node_modules/toolcraft/node_modules/tiny-mcp-client/.turbo/turbo-build.log +0 -7
  1404. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/internal.d.ts +0 -556
  1405. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/internal.js +0 -2688
  1406. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/jsonrpc-types.compile-check.js +0 -37
  1407. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/mcp-lifecycle-types.compile-check.js +0 -50
  1408. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/mcp-prompt-types.compile-check.js +0 -50
  1409. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/mcp-resource-types.compile-check.js +0 -51
  1410. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/mcp-tool-types.compile-check.js +0 -99
  1411. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/mcp-transport-types.compile-check.js +0 -56
  1412. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/mcp-utility-types.compile-check.js +0 -145
  1413. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/oauth-discovery.d.ts +0 -24
  1414. package/node_modules/toolcraft/node_modules/tiny-mcp-client/dist/oauth-discovery.js +0 -382
  1415. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/http-oauth.integration.test.ts +0 -808
  1416. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/http-oauth.test.ts +0 -922
  1417. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/index.ts +0 -94
  1418. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/internal.ts +0 -3904
  1419. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/jsonrpc-types.compile-check.ts +0 -66
  1420. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-client-http-transport.integration.test.ts +0 -222
  1421. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-client-sdk.test.ts +0 -1326
  1422. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-client-tiny-stdio-test-server-tools.test.ts +0 -143
  1423. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-lifecycle-types.compile-check.ts +0 -65
  1424. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-prompt-types.compile-check.ts +0 -66
  1425. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-resource-types.compile-check.ts +0 -70
  1426. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-tool-types.compile-check.ts +0 -127
  1427. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-transport-types.compile-check.ts +0 -75
  1428. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mcp-utility-types.compile-check.ts +0 -181
  1429. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/mock-servers.test.ts +0 -980
  1430. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/oauth-discovery.ts +0 -578
  1431. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/package-runtime.test.ts +0 -25
  1432. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/transports.test.ts +0 -9018
  1433. package/node_modules/toolcraft/node_modules/tiny-mcp-client/src/utilities.test.ts +0 -372
  1434. package/node_modules/toolcraft/node_modules/tiny-mcp-client/tsconfig.json +0 -11
  1435. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/two-pane.d.ts +0 -102
  1436. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/explorer/two-pane.js +0 -510
  1437. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/run-two-pane-explorer.d.ts +0 -2
  1438. package/node_modules/toolcraft/node_modules/toolcraft-design/dist/run-two-pane-explorer.js +0 -1
  1439. /package/node_modules/toolcraft/{node_modules/mcp-oauth/dist/client/types.js → dist/http-hosted-oauth.compile-check.d.ts} +0 -0
  1440. /package/node_modules/toolcraft/{node_modules/mcp-oauth/dist/types.compile-check.d.ts → dist/http.compile-check.d.ts} +0 -0
  1441. /package/node_modules/toolcraft/{node_modules/tiny-mcp-client/dist/jsonrpc-types.compile-check.d.ts → dist/human-in-loop/runtime-options.js} +0 -0
  1442. /package/node_modules/toolcraft/{node_modules/tiny-mcp-client/dist/mcp-lifecycle-types.compile-check.d.ts → dist/node-require-shim.d.ts} +0 -0
  1443. /package/node_modules/toolcraft/{node_modules/tiny-mcp-client/dist/mcp-prompt-types.compile-check.d.ts → dist/safe-bash-capabilities.compile-check.d.ts} +0 -0
  1444. /package/node_modules/toolcraft/{node_modules/tiny-mcp-client/dist/mcp-resource-types.compile-check.d.ts → dist/safe-bash.compile-check.d.ts} +0 -0
  1445. /package/node_modules/toolcraft/{node_modules/tiny-mcp-client/dist/mcp-tool-types.compile-check.d.ts → dist/schema-standard.compile-check.d.ts} +0 -0
  1446. /package/node_modules/toolcraft/node_modules/{tiny-mcp-client/dist/mcp-transport-types.compile-check.d.ts → @noble/hashes/index.d.ts} +0 -0
  1447. /package/node_modules/toolcraft/node_modules/{tiny-mcp-client/dist/mcp-utility-types.compile-check.d.ts → @poe-code/safe-fs/dist/bridge/types.js} +0 -0
  1448. /package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/authorization-state.d.ts +0 -0
  1449. /package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/default-oauth-client-provider.d.ts +0 -0
  1450. /package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/client/pkce.d.ts +0 -0
  1451. /package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/resource-indicator.d.ts +0 -0
  1452. /package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/resource-indicator.js +0 -0
  1453. /package/node_modules/toolcraft/node_modules/{mcp-oauth → tiny-http-mcp-server/node_modules/mcp-oauth}/dist/types.compile-check.js +0 -0
@@ -1,2688 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { PassThrough } from "node:stream";
3
- import { createOAuthClientProvider, OAuthError, } from "mcp-oauth";
4
- import { OAuthMetadataDiscovery, parseBearerWwwAuthenticateHeader, } from "./oauth-discovery.js";
5
- export { OAuthMetadataDiscovery, discoverOAuthMetadata, parseBearerWwwAuthenticateHeader, resolveAuthorizationServerMetadataUrl, resolveProtectedResourceMetadataUrl, } from "./oauth-discovery.js";
6
- export { createAuthStoreSessionStore, createDefaultOAuthClientProvider, } from "mcp-oauth";
7
- const MCP_PROTOCOL_VERSION = "2025-03-26";
8
- export class McpClient {
9
- currentState = "disconnected";
10
- currentServerCapabilities = null;
11
- currentClientCapabilities = null;
12
- currentServerInfo = null;
13
- currentInstructions;
14
- subscribedResourceUris = new Set();
15
- activeProgressTokens = new Map();
16
- options;
17
- transport = null;
18
- messageLayer = null;
19
- constructor(options) {
20
- this.options = options;
21
- }
22
- get state() {
23
- return this.currentState;
24
- }
25
- get serverCapabilities() {
26
- return this.currentServerCapabilities === null
27
- ? null
28
- : structuredClone(this.currentServerCapabilities);
29
- }
30
- get serverInfo() {
31
- return this.currentServerInfo;
32
- }
33
- get instructions() {
34
- return this.currentInstructions;
35
- }
36
- getMessageLayerOrThrow() {
37
- if (this.currentState === "disconnected") {
38
- throw new Error("MCP client is disconnected");
39
- }
40
- if (this.currentState === "closed") {
41
- throw new Error("MCP client is closed");
42
- }
43
- if (this.messageLayer === null) {
44
- throw new Error("MCP client is disconnected");
45
- }
46
- return this.messageLayer;
47
- }
48
- async connect(transport) {
49
- if (this.currentState !== "disconnected" && this.currentState !== "closed") {
50
- throw new Error("MCP client is already connected");
51
- }
52
- this.currentServerCapabilities = null;
53
- this.currentClientCapabilities = null;
54
- this.currentServerInfo = null;
55
- this.currentInstructions = undefined;
56
- this.subscribedResourceUris.clear();
57
- this.activeProgressTokens.clear();
58
- const transportClosedReason = transport.closed
59
- .then((closedEvent) => closedEvent.reason)
60
- .catch((error) => error instanceof Error ? error : new Error(String(error)));
61
- const messageLayer = new JsonRpcMessageLayer(transport.readable, transport.writable, this.options.requestTimeoutMs, transportClosedReason);
62
- const { onSamplingRequest, onRootsList, onToolsChanged, onResourcesChanged, onResourceUpdated, onPromptsChanged, onLog, onProgress, } = this.options;
63
- messageLayer.onRequest("ping", () => ({}));
64
- if (onSamplingRequest !== undefined) {
65
- messageLayer.onRequest("sampling/createMessage", (params) => onSamplingRequest(params));
66
- }
67
- messageLayer.onNotification("notifications/tools/list_changed", async () => {
68
- if (onToolsChanged === undefined || this.currentServerCapabilities?.tools?.listChanged !== true) {
69
- return;
70
- }
71
- await onToolsChanged();
72
- });
73
- messageLayer.onNotification("notifications/resources/list_changed", async () => {
74
- if (onResourcesChanged === undefined
75
- || this.currentServerCapabilities?.resources?.listChanged !== true) {
76
- return;
77
- }
78
- await onResourcesChanged();
79
- });
80
- messageLayer.onNotification("notifications/resources/updated", async (params) => {
81
- if (onResourceUpdated === undefined) {
82
- return;
83
- }
84
- if (typeof params !== "object" || params === null || Array.isArray(params)) {
85
- return;
86
- }
87
- const { uri } = params;
88
- if (typeof uri !== "string" || !this.subscribedResourceUris.has(uri)) {
89
- return;
90
- }
91
- await onResourceUpdated(uri);
92
- });
93
- messageLayer.onNotification("notifications/prompts/list_changed", async () => {
94
- if (onPromptsChanged === undefined
95
- || this.currentServerCapabilities?.prompts?.listChanged !== true) {
96
- return;
97
- }
98
- await onPromptsChanged();
99
- });
100
- messageLayer.onNotification("notifications/message", async (params) => {
101
- if (onLog === undefined || !isObjectRecord(params) || !isLogLevel(params.level)) {
102
- return;
103
- }
104
- if (!hasOwn(params, "data")) {
105
- return;
106
- }
107
- const message = {
108
- level: params.level,
109
- data: params.data,
110
- };
111
- if (params.logger !== undefined) {
112
- if (typeof params.logger !== "string") {
113
- return;
114
- }
115
- message.logger = params.logger;
116
- }
117
- await onLog(message);
118
- });
119
- messageLayer.onNotification("notifications/progress", async (params) => {
120
- if (onProgress === undefined || !isObjectRecord(params)) {
121
- return;
122
- }
123
- const { progressToken, progress } = params;
124
- if (!isRequestId(progressToken) ||
125
- typeof progress !== "number" ||
126
- !this.activeProgressTokens.has(progressToken)) {
127
- return;
128
- }
129
- const progressParams = {
130
- progressToken,
131
- progress,
132
- };
133
- if (params.total !== undefined) {
134
- if (typeof params.total !== "number") {
135
- return;
136
- }
137
- progressParams.total = params.total;
138
- }
139
- if (params.message !== undefined) {
140
- if (typeof params.message !== "string") {
141
- return;
142
- }
143
- progressParams.message = params.message;
144
- }
145
- await onProgress(progressParams);
146
- });
147
- messageLayer.onNotification("notifications/cancelled", () => undefined);
148
- this.transport = transport;
149
- this.messageLayer = messageLayer;
150
- this.currentState = "initializing";
151
- this.subscribedResourceUris.clear();
152
- this.activeProgressTokens.clear();
153
- transport.closed
154
- .then((closedEvent) => {
155
- if (this.transport !== transport) {
156
- return;
157
- }
158
- this.messageLayer?.dispose(closedEvent.reason);
159
- this.messageLayer = null;
160
- this.transport = null;
161
- this.currentState = "closed";
162
- })
163
- .catch((error) => {
164
- if (this.transport !== transport) {
165
- return;
166
- }
167
- const reason = error instanceof Error ? error : new Error(String(error));
168
- this.messageLayer?.dispose(reason);
169
- this.messageLayer = null;
170
- this.transport = null;
171
- this.currentState = "closed";
172
- });
173
- const capabilities = {
174
- ...(this.options.capabilities ?? {}),
175
- };
176
- if (onSamplingRequest !== undefined && capabilities.sampling === undefined) {
177
- capabilities.sampling = {};
178
- }
179
- if (onRootsList !== undefined) {
180
- capabilities.roots = {
181
- ...(capabilities.roots ?? {}),
182
- };
183
- }
184
- this.currentClientCapabilities = structuredClone(capabilities);
185
- try {
186
- const initializeResultValue = await messageLayer.sendRequest("initialize", {
187
- protocolVersion: MCP_PROTOCOL_VERSION,
188
- clientInfo: this.options.clientInfo,
189
- capabilities,
190
- });
191
- if (!isInitializeResult(initializeResultValue)) {
192
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid initialize result");
193
- }
194
- const initializeResult = initializeResultValue;
195
- if (initializeResult.protocolVersion !== MCP_PROTOCOL_VERSION) {
196
- throw new McpError(ERROR_INVALID_REQUEST, `Unsupported protocol version: ${initializeResult.protocolVersion}`);
197
- }
198
- this.currentServerCapabilities = structuredClone(initializeResult.capabilities);
199
- this.currentServerInfo = { ...initializeResult.serverInfo };
200
- this.currentInstructions = initializeResult.instructions;
201
- if (onRootsList !== undefined) {
202
- messageLayer.onRequest("roots/list", async () => ({
203
- roots: await onRootsList(),
204
- }));
205
- }
206
- messageLayer.sendNotification("notifications/initialized");
207
- this.currentState = "ready";
208
- return initializeResult;
209
- }
210
- catch (error) {
211
- if (this.transport === transport) {
212
- const reason = error instanceof Error ? error : new Error(String(error));
213
- messageLayer.dispose(reason);
214
- transport.dispose(reason);
215
- this.messageLayer = null;
216
- this.transport = null;
217
- this.currentState = "disconnected";
218
- }
219
- throw error;
220
- }
221
- }
222
- getServerCapabilitiesOrThrow() {
223
- if (this.currentServerCapabilities === null) {
224
- throw new Error("MCP client has not completed initialization");
225
- }
226
- return this.currentServerCapabilities;
227
- }
228
- async listTools(params = {}) {
229
- const messageLayer = this.getMessageLayerOrThrow();
230
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
231
- if (serverCapabilities.tools === undefined) {
232
- throw new Error("Server does not support tools");
233
- }
234
- const requestParams = params.cursor === undefined ? undefined : { cursor: params.cursor };
235
- const result = await messageLayer.sendRequest("tools/list", requestParams);
236
- if (!isToolsListResult(result)) {
237
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid tools/list result");
238
- }
239
- return result;
240
- }
241
- async callTool(params, options = {}) {
242
- const messageLayer = this.getMessageLayerOrThrow();
243
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
244
- if (serverCapabilities.tools === undefined) {
245
- throw new Error("Server does not support tools");
246
- }
247
- if (options.signal?.aborted) {
248
- throw options.signal.reason;
249
- }
250
- const requestParams = options.progressToken === undefined
251
- ? params
252
- : {
253
- ...params,
254
- _meta: {
255
- progressToken: options.progressToken,
256
- },
257
- };
258
- if (options.progressToken !== undefined) {
259
- this.activeProgressTokens.set(options.progressToken, (this.activeProgressTokens.get(options.progressToken) ?? 0) + 1);
260
- }
261
- try {
262
- let requestId;
263
- let cancellationSent = false;
264
- const sendCancellationNotification = () => {
265
- if (requestId === undefined || cancellationSent) {
266
- return;
267
- }
268
- cancellationSent = true;
269
- messageLayer.sendNotification("notifications/cancelled", { requestId });
270
- };
271
- const requestPromise = messageLayer.sendRequest("tools/call", requestParams, {
272
- onRequestId: (nextRequestId) => {
273
- requestId = nextRequestId;
274
- },
275
- onTimeout: sendCancellationNotification,
276
- }).then((result) => {
277
- if (!isCallToolResult(result)) {
278
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid tool result");
279
- }
280
- return result;
281
- });
282
- if (options.signal === undefined) {
283
- return await requestPromise;
284
- }
285
- const signal = options.signal;
286
- let abortListener;
287
- const abortPromise = new Promise((_, reject) => {
288
- const rejectWithAbortReason = () => {
289
- sendCancellationNotification();
290
- if (requestId !== undefined) {
291
- messageLayer.cancelRequest(requestId, signal.reason);
292
- }
293
- reject(signal.reason);
294
- };
295
- abortListener = rejectWithAbortReason;
296
- signal.addEventListener("abort", abortListener, { once: true });
297
- if (signal.aborted) {
298
- signal.removeEventListener("abort", abortListener);
299
- rejectWithAbortReason();
300
- }
301
- });
302
- try {
303
- return (await Promise.race([requestPromise, abortPromise]));
304
- }
305
- finally {
306
- if (abortListener !== undefined) {
307
- signal.removeEventListener("abort", abortListener);
308
- }
309
- }
310
- }
311
- finally {
312
- if (options.progressToken !== undefined) {
313
- const activeCount = this.activeProgressTokens.get(options.progressToken);
314
- if (activeCount === 1) {
315
- this.activeProgressTokens.delete(options.progressToken);
316
- }
317
- else if (activeCount !== undefined) {
318
- this.activeProgressTokens.set(options.progressToken, activeCount - 1);
319
- }
320
- }
321
- }
322
- }
323
- async listResources(params = {}) {
324
- const messageLayer = this.getMessageLayerOrThrow();
325
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
326
- if (serverCapabilities.resources === undefined) {
327
- throw new Error("Server does not support resources");
328
- }
329
- const requestParams = params.cursor === undefined ? undefined : { cursor: params.cursor };
330
- const result = await messageLayer.sendRequest("resources/list", requestParams);
331
- if (!isResourcesListResult(result)) {
332
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid resources/list result");
333
- }
334
- return result;
335
- }
336
- async listResourceTemplates(params = {}) {
337
- const messageLayer = this.getMessageLayerOrThrow();
338
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
339
- if (serverCapabilities.resources === undefined) {
340
- throw new Error("Server does not support resources");
341
- }
342
- const requestParams = params.cursor === undefined ? undefined : { cursor: params.cursor };
343
- const result = await messageLayer.sendRequest("resources/templates/list", requestParams);
344
- if (!isResourceTemplatesListResult(result)) {
345
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid resources/templates/list result");
346
- }
347
- return result;
348
- }
349
- async readResource(params) {
350
- const messageLayer = this.getMessageLayerOrThrow();
351
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
352
- if (serverCapabilities.resources === undefined) {
353
- throw new Error("Server does not support resources");
354
- }
355
- const result = await messageLayer.sendRequest("resources/read", params);
356
- if (!isReadResourceResult(result)) {
357
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid resources/read result");
358
- }
359
- return result;
360
- }
361
- async subscribe(uri) {
362
- const messageLayer = this.getMessageLayerOrThrow();
363
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
364
- if (serverCapabilities.resources?.subscribe !== true) {
365
- throw new Error("Server does not support resource subscriptions");
366
- }
367
- await messageLayer.sendRequest("resources/subscribe", { uri });
368
- this.subscribedResourceUris.add(uri);
369
- }
370
- async unsubscribe(uri) {
371
- const messageLayer = this.getMessageLayerOrThrow();
372
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
373
- if (serverCapabilities.resources?.subscribe !== true) {
374
- throw new Error("Server does not support resource subscriptions");
375
- }
376
- await messageLayer.sendRequest("resources/unsubscribe", { uri });
377
- this.subscribedResourceUris.delete(uri);
378
- }
379
- async listPrompts(params = {}) {
380
- const messageLayer = this.getMessageLayerOrThrow();
381
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
382
- if (serverCapabilities.prompts === undefined) {
383
- throw new Error("Server does not support prompts");
384
- }
385
- const requestParams = params.cursor === undefined ? undefined : { cursor: params.cursor };
386
- return (await messageLayer.sendRequest("prompts/list", requestParams));
387
- }
388
- async getPrompt(params) {
389
- const messageLayer = this.getMessageLayerOrThrow();
390
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
391
- if (serverCapabilities.prompts === undefined) {
392
- throw new Error("Server does not support prompts");
393
- }
394
- const result = await messageLayer.sendRequest("prompts/get", params);
395
- if (!isGetPromptResult(result)) {
396
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid prompts/get result");
397
- }
398
- return result;
399
- }
400
- async complete(params) {
401
- const messageLayer = this.getMessageLayerOrThrow();
402
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
403
- if (serverCapabilities.completions === undefined) {
404
- throw new Error("Server does not support completions");
405
- }
406
- const result = await messageLayer.sendRequest("completion/complete", params);
407
- if (!isCompleteResult(result)) {
408
- throw new McpError(ERROR_INVALID_REQUEST, "Invalid completion/complete result");
409
- }
410
- return result;
411
- }
412
- async setLogLevel(level) {
413
- const messageLayer = this.getMessageLayerOrThrow();
414
- const serverCapabilities = this.getServerCapabilitiesOrThrow();
415
- if (serverCapabilities.logging === undefined) {
416
- throw new Error("Server does not support logging");
417
- }
418
- await messageLayer.sendRequest("logging/setLevel", { level });
419
- }
420
- async cancel(requestId, reason) {
421
- const messageLayer = this.getMessageLayerOrThrow();
422
- const params = { requestId };
423
- if (reason !== undefined) {
424
- params.reason = reason;
425
- }
426
- messageLayer.sendNotification("notifications/cancelled", params);
427
- }
428
- async sendRootsChanged() {
429
- const messageLayer = this.getMessageLayerOrThrow();
430
- if (this.currentClientCapabilities?.roots?.listChanged !== true) {
431
- throw new Error("Client did not advertise roots list changes");
432
- }
433
- messageLayer.sendNotification("notifications/roots/list_changed");
434
- }
435
- async ping() {
436
- const messageLayer = this.getMessageLayerOrThrow();
437
- await messageLayer.sendRequest("ping");
438
- }
439
- async close() {
440
- if (this.currentState === "closed") {
441
- return;
442
- }
443
- const closeError = new Error("MCP client closed");
444
- this.messageLayer?.dispose(closeError);
445
- this.transport?.dispose(closeError);
446
- this.messageLayer = null;
447
- this.transport = null;
448
- this.currentServerCapabilities = null;
449
- this.currentClientCapabilities = null;
450
- this.currentServerInfo = null;
451
- this.currentInstructions = undefined;
452
- this.subscribedResourceUris.clear();
453
- this.activeProgressTokens.clear();
454
- this.currentState = "closed";
455
- }
456
- }
457
- export const ERROR_PARSE = -32700;
458
- export const ERROR_INVALID_REQUEST = -32600;
459
- export const ERROR_METHOD_NOT_FOUND = -32601;
460
- export const ERROR_INVALID_PARAMS = -32602;
461
- export const ERROR_INTERNAL = -32603;
462
- export function createInMemoryTransportPair() {
463
- const clientToServer = new PassThrough();
464
- const serverToClient = new PassThrough();
465
- let disposed = false;
466
- let resolveClosed;
467
- const closed = new Promise((resolve) => {
468
- resolveClosed = resolve;
469
- });
470
- const resolveClosedOnce = (reason) => {
471
- if (resolveClosed === undefined) {
472
- return;
473
- }
474
- const currentResolve = resolveClosed;
475
- resolveClosed = undefined;
476
- currentResolve({ reason });
477
- };
478
- const dispose = (reason = new Error("In-memory transport disposed")) => {
479
- if (disposed) {
480
- return;
481
- }
482
- disposed = true;
483
- if (!clientToServer.destroyed && !clientToServer.writableEnded) {
484
- clientToServer.end();
485
- }
486
- if (!serverToClient.destroyed && !serverToClient.writableEnded) {
487
- serverToClient.end();
488
- }
489
- resolveClosedOnce(reason);
490
- };
491
- clientToServer.once("error", (error) => {
492
- dispose(error instanceof Error ? error : new Error(String(error)));
493
- });
494
- serverToClient.once("error", (error) => {
495
- dispose(error instanceof Error ? error : new Error(String(error)));
496
- });
497
- return {
498
- clientTransport: {
499
- readable: serverToClient,
500
- writable: clientToServer,
501
- closed,
502
- dispose,
503
- },
504
- serverTransport: {
505
- readable: clientToServer,
506
- writable: serverToClient,
507
- },
508
- };
509
- }
510
- export class SdkTransportAdapter {
511
- readable;
512
- writable;
513
- closed;
514
- sdkTransport;
515
- readStream = new PassThrough();
516
- writeStream = new PassThrough();
517
- resolveClosed;
518
- disposed = false;
519
- constructor(sdkTransport) {
520
- this.sdkTransport = sdkTransport;
521
- this.readable = this.readStream;
522
- this.writable = this.writeStream;
523
- this.closed = new Promise((resolve) => {
524
- this.resolveClosed = resolve;
525
- });
526
- this.sdkTransport.onmessage = (message) => {
527
- this.readStream.write(serializeJsonRpcMessage(message));
528
- };
529
- this.sdkTransport.onclose = () => {
530
- this.dispose(new Error("SDK transport closed"));
531
- };
532
- this.sdkTransport.onerror = (error) => {
533
- this.dispose(error instanceof Error ? error : new Error(String(error)));
534
- };
535
- this.readStream.once("error", (error) => {
536
- this.dispose(error instanceof Error ? error : new Error(String(error)));
537
- });
538
- this.writeStream.once("error", (error) => {
539
- this.dispose(error instanceof Error ? error : new Error(String(error)));
540
- });
541
- this.consumeWrittenLines().catch((error) => {
542
- this.dispose(error instanceof Error ? error : new Error(String(error)));
543
- });
544
- this.sdkTransport.start().catch((error) => {
545
- this.dispose(error instanceof Error ? error : new Error(String(error)));
546
- });
547
- }
548
- dispose(reason = new Error("SDK transport adapter disposed")) {
549
- if (this.disposed) {
550
- return;
551
- }
552
- this.disposed = true;
553
- if (!this.writeStream.destroyed && !this.writeStream.writableEnded) {
554
- this.writeStream.end();
555
- }
556
- if (!this.readStream.destroyed && !this.readStream.writableEnded) {
557
- this.readStream.end();
558
- }
559
- if (this.resolveClosed !== undefined) {
560
- const resolveClosed = this.resolveClosed;
561
- this.resolveClosed = undefined;
562
- resolveClosed({ reason });
563
- }
564
- this.sdkTransport.close().catch(() => undefined);
565
- }
566
- async consumeWrittenLines() {
567
- for await (const line of readLines(this.writeStream)) {
568
- if (this.disposed || line.length === 0) {
569
- continue;
570
- }
571
- let parsedMessage;
572
- try {
573
- parsedMessage = JSON.parse(line);
574
- }
575
- catch {
576
- throw new Error(`Malformed JSON line: ${line}`);
577
- }
578
- if (typeof parsedMessage !== "object" || parsedMessage === null || Array.isArray(parsedMessage)) {
579
- throw new Error(`Malformed JSON line: ${line}`);
580
- }
581
- await this.sdkTransport.send(parsedMessage);
582
- }
583
- }
584
- }
585
- export async function createSdkTestPair(server, createClient) {
586
- const { InMemoryTransport } = await import("@modelcontextprotocol/sdk/inMemory.js");
587
- const [clientSdkTransport, serverSdkTransport] = InMemoryTransport.createLinkedPair();
588
- const clientTransport = new SdkTransportAdapter(clientSdkTransport);
589
- const serverPromise = server.connect(serverSdkTransport);
590
- const client = createClient();
591
- try {
592
- await client.connect(clientTransport);
593
- }
594
- catch (error) {
595
- clientTransport.dispose(new Error("SDK test pair setup failed"));
596
- await clientSdkTransport.close();
597
- await serverSdkTransport.close();
598
- await serverPromise;
599
- throw error;
600
- }
601
- const cleanup = async () => {
602
- await client.close();
603
- clientTransport.dispose(new Error("SDK test pair cleanup"));
604
- await clientSdkTransport.close();
605
- await serverSdkTransport.close();
606
- await serverPromise;
607
- };
608
- return { client, cleanup };
609
- }
610
- export async function createMockEchoToolServer() {
611
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema }] = await Promise.all([
612
- import("@modelcontextprotocol/sdk/server/index.js"),
613
- import("@modelcontextprotocol/sdk/types.js"),
614
- ]);
615
- const server = new Server({ name: "mock-echo-tool-server", version: "1.0.0" }, { capabilities: { tools: {} } });
616
- const echoTool = {
617
- name: "echo",
618
- description: "Echoes the provided message.",
619
- inputSchema: {
620
- type: "object",
621
- properties: {
622
- message: {
623
- type: "string",
624
- },
625
- },
626
- required: ["message"],
627
- },
628
- };
629
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
630
- tools: [echoTool],
631
- }));
632
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
633
- if (request.params.name !== "echo") {
634
- throw new Error(`Unknown tool: ${request.params.name}`);
635
- }
636
- const message = request.params.arguments?.message;
637
- if (typeof message !== "string") {
638
- throw new Error("Echo tool requires a string message argument");
639
- }
640
- return {
641
- content: [
642
- {
643
- type: "text",
644
- text: message,
645
- },
646
- ],
647
- };
648
- });
649
- return server;
650
- }
651
- export async function createMockMultiToolServer() {
652
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema }] = await Promise.all([
653
- import("@modelcontextprotocol/sdk/server/index.js"),
654
- import("@modelcontextprotocol/sdk/types.js"),
655
- ]);
656
- const server = new Server({ name: "mock-multi-tool-server", version: "1.0.0" }, { capabilities: { tools: {} } });
657
- const tools = [
658
- {
659
- name: "add",
660
- description: "Adds two numbers and returns the sum as text.",
661
- inputSchema: {
662
- type: "object",
663
- properties: {
664
- a: { type: "number" },
665
- b: { type: "number" },
666
- },
667
- required: ["a", "b"],
668
- },
669
- },
670
- {
671
- name: "greet",
672
- description: "Greets a user with optional formal tone.",
673
- inputSchema: {
674
- type: "object",
675
- properties: {
676
- name: { type: "string" },
677
- formal: { type: "boolean" },
678
- },
679
- required: ["name"],
680
- },
681
- },
682
- {
683
- name: "fail",
684
- description: "Returns an intentional tool error payload.",
685
- inputSchema: {
686
- type: "object",
687
- properties: {},
688
- },
689
- },
690
- ];
691
- server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools }));
692
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
693
- if (request.params.name === "add") {
694
- const a = request.params.arguments?.a;
695
- const b = request.params.arguments?.b;
696
- if (typeof a !== "number" || typeof b !== "number") {
697
- throw new Error("Add tool requires numeric a and b arguments");
698
- }
699
- return {
700
- content: [
701
- {
702
- type: "text",
703
- text: String(a + b),
704
- },
705
- ],
706
- };
707
- }
708
- if (request.params.name === "greet") {
709
- const name = request.params.arguments?.name;
710
- const formal = request.params.arguments?.formal;
711
- if (typeof name !== "string") {
712
- throw new Error("Greet tool requires a string name argument");
713
- }
714
- if (formal !== undefined && typeof formal !== "boolean") {
715
- throw new Error("Greet tool formal argument must be boolean when provided");
716
- }
717
- return {
718
- content: [
719
- {
720
- type: "text",
721
- text: formal ? `Good day, ${name}.` : `Hello, ${name}!`,
722
- },
723
- ],
724
- };
725
- }
726
- if (request.params.name === "fail") {
727
- return {
728
- isError: true,
729
- content: [
730
- {
731
- type: "text",
732
- text: "Intentional tool failure.",
733
- },
734
- ],
735
- };
736
- }
737
- throw new Error(`Unknown tool: ${request.params.name}`);
738
- });
739
- return server;
740
- }
741
- export async function createMockPaginatedToolsServer() {
742
- const [{ Server }, { ListToolsRequestSchema }] = await Promise.all([
743
- import("@modelcontextprotocol/sdk/server/index.js"),
744
- import("@modelcontextprotocol/sdk/types.js"),
745
- ]);
746
- const server = new Server({ name: "mock-paginated-tools-server", version: "1.0.0" }, { capabilities: { tools: {} } });
747
- const pageSize = 5;
748
- const tools = Array.from({ length: 20 }, (_, index) => ({
749
- name: `tool-${index + 1}`,
750
- description: `Mock paginated tool ${index + 1}.`,
751
- inputSchema: {
752
- type: "object",
753
- properties: {},
754
- },
755
- }));
756
- server.setRequestHandler(ListToolsRequestSchema, async (request) => {
757
- const cursor = request.params?.cursor;
758
- const startIndex = cursor === undefined ? 0 : Number(cursor);
759
- if (!Number.isInteger(startIndex) ||
760
- startIndex < 0 ||
761
- startIndex > tools.length ||
762
- startIndex % pageSize !== 0) {
763
- throw new Error(`Invalid cursor: ${String(cursor)}`);
764
- }
765
- const pageTools = tools.slice(startIndex, startIndex + pageSize);
766
- const nextIndex = startIndex + pageSize;
767
- if (nextIndex >= tools.length) {
768
- return { tools: pageTools };
769
- }
770
- return {
771
- tools: pageTools,
772
- nextCursor: String(nextIndex),
773
- };
774
- });
775
- return server;
776
- }
777
- export async function createMockResourceServer() {
778
- const [{ Server }, { ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, },] = await Promise.all([
779
- import("@modelcontextprotocol/sdk/server/index.js"),
780
- import("@modelcontextprotocol/sdk/types.js"),
781
- ]);
782
- const server = new Server({ name: "mock-resource-server", version: "1.0.0" }, { capabilities: { resources: {} } });
783
- const resources = [
784
- {
785
- uri: "file:///readme.txt",
786
- name: "readme.txt",
787
- mimeType: "text/plain",
788
- },
789
- {
790
- uri: "file:///image.png",
791
- name: "image.png",
792
- mimeType: "image/png",
793
- },
794
- ];
795
- const resourceContentsByUri = new Map([
796
- [
797
- "file:///readme.txt",
798
- {
799
- uri: "file:///readme.txt",
800
- mimeType: "text/plain",
801
- text: "This is a mock README resource.",
802
- },
803
- ],
804
- [
805
- "file:///image.png",
806
- {
807
- uri: "file:///image.png",
808
- mimeType: "image/png",
809
- blob: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgL9qj3QAAAAASUVORK5CYII=",
810
- },
811
- ],
812
- ]);
813
- const resourceTemplates = [
814
- {
815
- uriTemplate: "file:///{path}",
816
- name: "file-template",
817
- },
818
- ];
819
- server.setRequestHandler(ListResourcesRequestSchema, async () => ({
820
- resources,
821
- }));
822
- server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
823
- const resourceContent = resourceContentsByUri.get(request.params.uri);
824
- if (resourceContent === undefined) {
825
- throw new Error(`Unknown resource: ${request.params.uri}`);
826
- }
827
- return {
828
- contents: [resourceContent],
829
- };
830
- });
831
- server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
832
- resourceTemplates,
833
- }));
834
- return server;
835
- }
836
- export async function createMockSubscribableResourceServer() {
837
- const [{ Server }, { ListResourcesRequestSchema, ReadResourceRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, },] = await Promise.all([
838
- import("@modelcontextprotocol/sdk/server/index.js"),
839
- import("@modelcontextprotocol/sdk/types.js"),
840
- ]);
841
- const server = new Server({ name: "mock-subscribable-resource-server", version: "1.0.0" }, { capabilities: { resources: { subscribe: true, listChanged: true } } });
842
- const resources = [
843
- {
844
- uri: "file:///readme.txt",
845
- name: "readme.txt",
846
- mimeType: "text/plain",
847
- },
848
- ];
849
- const resourceContentsByUri = new Map([
850
- [
851
- "file:///readme.txt",
852
- {
853
- uri: "file:///readme.txt",
854
- mimeType: "text/plain",
855
- text: "Initial subscribable resource text.",
856
- },
857
- ],
858
- ]);
859
- const subscribedUris = new Set();
860
- server.setRequestHandler(ListResourcesRequestSchema, async () => ({
861
- resources,
862
- }));
863
- server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
864
- const resourceContent = resourceContentsByUri.get(request.params.uri);
865
- if (resourceContent === undefined) {
866
- throw new Error(`Unknown resource: ${request.params.uri}`);
867
- }
868
- return {
869
- contents: [resourceContent],
870
- };
871
- });
872
- server.setRequestHandler(SubscribeRequestSchema, async (request) => {
873
- subscribedUris.add(request.params.uri);
874
- return {};
875
- });
876
- server.setRequestHandler(UnsubscribeRequestSchema, async (request) => {
877
- subscribedUris.delete(request.params.uri);
878
- return {};
879
- });
880
- return Object.assign(server, {
881
- triggerResourceUpdated: async (uri, updatedText) => {
882
- if (updatedText !== undefined) {
883
- const existingContent = resourceContentsByUri.get(uri);
884
- if (existingContent === undefined || "blob" in existingContent) {
885
- throw new Error(`Unknown text resource: ${uri}`);
886
- }
887
- resourceContentsByUri.set(uri, {
888
- uri,
889
- mimeType: existingContent.mimeType,
890
- text: updatedText,
891
- });
892
- }
893
- if (!subscribedUris.has(uri)) {
894
- return;
895
- }
896
- await server.sendResourceUpdated({ uri });
897
- },
898
- triggerResourceListChanged: async () => {
899
- await server.sendResourceListChanged();
900
- },
901
- });
902
- }
903
- export async function createMockPromptServer() {
904
- const [{ Server }, { ErrorCode, GetPromptRequestSchema, ListPromptsRequestSchema, McpError: SdkMcpError },] = await Promise.all([
905
- import("@modelcontextprotocol/sdk/server/index.js"),
906
- import("@modelcontextprotocol/sdk/types.js"),
907
- ]);
908
- const server = new Server({ name: "mock-prompt-server", version: "1.0.0" }, { capabilities: { prompts: {} } });
909
- const promptTemplates = [
910
- {
911
- prompt: {
912
- name: "code_review",
913
- description: "Review code for correctness and maintainability.",
914
- arguments: [
915
- {
916
- name: "code",
917
- description: "Code to review.",
918
- required: true,
919
- },
920
- ],
921
- },
922
- messages: [
923
- {
924
- role: "user",
925
- textTemplate: "Please review the following code:\n{{code}}",
926
- },
927
- {
928
- role: "assistant",
929
- textTemplate: "I will review the code for potential issues and improvements.",
930
- },
931
- ],
932
- },
933
- {
934
- prompt: {
935
- name: "summarize",
936
- description: "Summarize the provided text.",
937
- },
938
- messages: [
939
- {
940
- role: "user",
941
- textTemplate: "Please summarize the provided text.",
942
- },
943
- ],
944
- },
945
- ];
946
- const promptsByName = new Map(promptTemplates.map((template) => [template.prompt.name, template]));
947
- const renderPromptMessage = (textTemplate, argumentsMap) => {
948
- if (argumentsMap === undefined) {
949
- return textTemplate;
950
- }
951
- let renderedText = textTemplate;
952
- for (const [name, value] of Object.entries(argumentsMap)) {
953
- if (typeof value !== "string") {
954
- continue;
955
- }
956
- renderedText = renderedText.split(`{{${name}}}`).join(value);
957
- }
958
- return renderedText;
959
- };
960
- server.setRequestHandler(ListPromptsRequestSchema, async () => ({
961
- prompts: promptTemplates.map((template) => template.prompt),
962
- }));
963
- server.setRequestHandler(GetPromptRequestSchema, async (request) => {
964
- const template = promptsByName.get(request.params.name);
965
- if (template === undefined) {
966
- throw new SdkMcpError(ErrorCode.InvalidParams, `Unknown prompt: ${request.params.name}`);
967
- }
968
- const requestArguments = request.params.arguments;
969
- for (const argument of template.prompt.arguments ?? []) {
970
- if (!argument.required) {
971
- continue;
972
- }
973
- const value = requestArguments?.[argument.name];
974
- if (typeof value !== "string") {
975
- throw new SdkMcpError(ErrorCode.InvalidParams, `Missing required prompt argument: ${argument.name}`);
976
- }
977
- }
978
- return {
979
- description: template.prompt.description,
980
- messages: template.messages.map((message) => ({
981
- role: message.role,
982
- content: {
983
- type: "text",
984
- text: renderPromptMessage(message.textTemplate, requestArguments),
985
- },
986
- })),
987
- };
988
- });
989
- return server;
990
- }
991
- export async function createMockCompletionServer() {
992
- const [{ Server }, { CompleteRequestSchema }] = await Promise.all([
993
- import("@modelcontextprotocol/sdk/server/index.js"),
994
- import("@modelcontextprotocol/sdk/types.js"),
995
- ]);
996
- const server = new Server({ name: "mock-completion-server", version: "1.0.0" }, { capabilities: { completions: {} } });
997
- const promptArgumentCompletions = new Map([
998
- ["code_review:language", ["python", "pydantic", "pytest", "pytorch", "pyright", "rust"]],
999
- ]);
1000
- const maxValues = 3;
1001
- server.setRequestHandler(CompleteRequestSchema, async (request) => {
1002
- if (request.params.ref.type !== "ref/prompt") {
1003
- return {
1004
- completion: {
1005
- values: [],
1006
- },
1007
- };
1008
- }
1009
- const completionKey = `${request.params.ref.name}:${request.params.argument.name}`;
1010
- const candidates = promptArgumentCompletions.get(completionKey) ?? [];
1011
- const partialValue = request.params.argument.value.toLowerCase();
1012
- const matchingValues = candidates.filter((candidate) => candidate.toLowerCase().startsWith(partialValue));
1013
- const values = matchingValues.slice(0, maxValues);
1014
- if (values.length < matchingValues.length) {
1015
- return {
1016
- completion: {
1017
- values,
1018
- hasMore: true,
1019
- total: matchingValues.length,
1020
- },
1021
- };
1022
- }
1023
- return {
1024
- completion: {
1025
- values,
1026
- },
1027
- };
1028
- });
1029
- return server;
1030
- }
1031
- export async function createMockProgressServer() {
1032
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema }] = await Promise.all([
1033
- import("@modelcontextprotocol/sdk/server/index.js"),
1034
- import("@modelcontextprotocol/sdk/types.js"),
1035
- ]);
1036
- const server = new Server({ name: "mock-progress-server", version: "1.0.0" }, { capabilities: { tools: {} } });
1037
- const totalSteps = 4;
1038
- const tool = {
1039
- name: "slow_task",
1040
- description: "Runs a simulated slow task and streams progress updates.",
1041
- inputSchema: {
1042
- type: "object",
1043
- properties: {},
1044
- additionalProperties: false,
1045
- },
1046
- };
1047
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1048
- tools: [tool],
1049
- }));
1050
- server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
1051
- if (request.params.name !== "slow_task") {
1052
- throw new Error(`Unknown tool: ${request.params.name}`);
1053
- }
1054
- const progressToken = request.params._meta?.progressToken;
1055
- if (progressToken !== undefined) {
1056
- for (let step = 1; step <= totalSteps; step += 1) {
1057
- await extra.sendNotification({
1058
- method: "notifications/progress",
1059
- params: {
1060
- progressToken,
1061
- progress: step,
1062
- total: totalSteps,
1063
- message: `Completed step ${step} of ${totalSteps}`,
1064
- },
1065
- });
1066
- await new Promise((resolve) => {
1067
- setTimeout(resolve, 5);
1068
- });
1069
- }
1070
- }
1071
- return {
1072
- content: [
1073
- {
1074
- type: "text",
1075
- text: "slow_task complete",
1076
- },
1077
- ],
1078
- };
1079
- });
1080
- return server;
1081
- }
1082
- export async function createMockSlowToolServer(options = {}) {
1083
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema }] = await Promise.all([
1084
- import("@modelcontextprotocol/sdk/server/index.js"),
1085
- import("@modelcontextprotocol/sdk/types.js"),
1086
- ]);
1087
- const defaultDelayMs = options.delayMs ?? 1_000;
1088
- const pollIntervalMs = options.pollIntervalMs ?? 10;
1089
- if (!Number.isFinite(defaultDelayMs) || defaultDelayMs < 0) {
1090
- throw new Error("createMockSlowToolServer delayMs must be a finite non-negative number");
1091
- }
1092
- if (!Number.isFinite(pollIntervalMs) || pollIntervalMs <= 0) {
1093
- throw new Error("createMockSlowToolServer pollIntervalMs must be a finite positive number");
1094
- }
1095
- const server = new Server({ name: "mock-slow-tool-server", version: "1.0.0" }, { capabilities: { tools: {} } });
1096
- const startedRequestIds = new Set();
1097
- const cancelledRequestIds = new Set();
1098
- const tool = {
1099
- name: "slow",
1100
- description: "Delays the response and supports cancellation.",
1101
- inputSchema: {
1102
- type: "object",
1103
- properties: {
1104
- delayMs: {
1105
- type: "number",
1106
- },
1107
- },
1108
- additionalProperties: false,
1109
- },
1110
- };
1111
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1112
- tools: [tool],
1113
- }));
1114
- server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
1115
- if (request.params.name !== "slow") {
1116
- throw new Error(`Unknown tool: ${request.params.name}`);
1117
- }
1118
- startedRequestIds.add(extra.requestId);
1119
- const delayArgument = request.params.arguments?.delayMs;
1120
- const delayMs = delayArgument === undefined
1121
- ? defaultDelayMs
1122
- : typeof delayArgument === "number" && Number.isFinite(delayArgument) && delayArgument >= 0
1123
- ? delayArgument
1124
- : NaN;
1125
- if (!Number.isFinite(delayMs)) {
1126
- throw new Error("slow tool delayMs argument must be a finite non-negative number");
1127
- }
1128
- const startedAt = Date.now();
1129
- while (Date.now() - startedAt < delayMs) {
1130
- if (extra.signal.aborted) {
1131
- cancelledRequestIds.add(extra.requestId);
1132
- throw new Error("slow tool cancelled");
1133
- }
1134
- const elapsedMs = Date.now() - startedAt;
1135
- const remainingMs = delayMs - elapsedMs;
1136
- await new Promise((resolve) => {
1137
- setTimeout(resolve, Math.max(0, Math.min(pollIntervalMs, remainingMs)));
1138
- });
1139
- }
1140
- if (extra.signal.aborted) {
1141
- cancelledRequestIds.add(extra.requestId);
1142
- throw new Error("slow tool cancelled");
1143
- }
1144
- return {
1145
- content: [
1146
- {
1147
- type: "text",
1148
- text: `slow complete after ${delayMs}ms`,
1149
- },
1150
- ],
1151
- };
1152
- });
1153
- return Object.assign(server, {
1154
- wasStarted: () => startedRequestIds.size > 0,
1155
- getStartedRequestIds: () => Array.from(startedRequestIds),
1156
- wasCancelled: () => cancelledRequestIds.size > 0,
1157
- getCancelledRequestIds: () => Array.from(cancelledRequestIds),
1158
- });
1159
- }
1160
- export async function createMockErrorServer() {
1161
- const [{ Server }, { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError: SdkMcpError },] = await Promise.all([
1162
- import("@modelcontextprotocol/sdk/server/index.js"),
1163
- import("@modelcontextprotocol/sdk/types.js"),
1164
- ]);
1165
- const server = new Server({ name: "mock-error-server", version: "1.0.0" }, { capabilities: { tools: {} } });
1166
- const tools = [
1167
- {
1168
- name: "invalid_params",
1169
- description: "Returns a JSON-RPC Invalid Params error.",
1170
- inputSchema: {
1171
- type: "object",
1172
- properties: {},
1173
- additionalProperties: false,
1174
- },
1175
- },
1176
- {
1177
- name: "is_error",
1178
- description: "Returns a tools/call result with isError: true.",
1179
- inputSchema: {
1180
- type: "object",
1181
- properties: {},
1182
- additionalProperties: false,
1183
- },
1184
- },
1185
- {
1186
- name: "internal_error",
1187
- description: "Throws an internal server error.",
1188
- inputSchema: {
1189
- type: "object",
1190
- properties: {},
1191
- additionalProperties: false,
1192
- },
1193
- },
1194
- ];
1195
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1196
- tools,
1197
- }));
1198
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
1199
- if (request.params.name === "invalid_params") {
1200
- throw new SdkMcpError(ErrorCode.InvalidParams, "Intentional invalid params error from mock-error-server.");
1201
- }
1202
- if (request.params.name === "is_error") {
1203
- return {
1204
- isError: true,
1205
- content: [
1206
- {
1207
- type: "text",
1208
- text: "Intentional isError tool failure.",
1209
- },
1210
- ],
1211
- };
1212
- }
1213
- if (request.params.name === "internal_error") {
1214
- throw new Error("Intentional internal error from mock-error-server.");
1215
- }
1216
- throw new Error(`Unknown tool: ${request.params.name}`);
1217
- });
1218
- return server;
1219
- }
1220
- export async function createMockSamplingServer() {
1221
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema }] = await Promise.all([
1222
- import("@modelcontextprotocol/sdk/server/index.js"),
1223
- import("@modelcontextprotocol/sdk/types.js"),
1224
- ]);
1225
- const server = new Server({ name: "mock-sampling-server", version: "1.0.0" }, { capabilities: { tools: {} } });
1226
- const tool = {
1227
- name: "sample_message",
1228
- description: "Requests sampling/createMessage from the client and returns the sampled text.",
1229
- inputSchema: {
1230
- type: "object",
1231
- properties: {
1232
- topic: {
1233
- type: "string",
1234
- },
1235
- },
1236
- required: ["topic"],
1237
- additionalProperties: false,
1238
- },
1239
- };
1240
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1241
- tools: [tool],
1242
- }));
1243
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
1244
- if (request.params.name !== "sample_message") {
1245
- throw new Error(`Unknown tool: ${request.params.name}`);
1246
- }
1247
- const topic = request.params.arguments?.topic;
1248
- if (typeof topic !== "string") {
1249
- throw new Error("sample_message requires a string topic argument");
1250
- }
1251
- const samplingResult = await server.createMessage({
1252
- messages: [
1253
- {
1254
- role: "user",
1255
- content: {
1256
- type: "text",
1257
- text: `Provide a concise sentence about ${topic}.`,
1258
- },
1259
- },
1260
- ],
1261
- maxTokens: 64,
1262
- modelPreferences: {
1263
- hints: [{ name: "mock-sampling-model" }],
1264
- speedPriority: 0.2,
1265
- intelligencePriority: 0.9,
1266
- },
1267
- systemPrompt: "Return exactly one concise sentence.",
1268
- });
1269
- const sampledText = samplingResult.content.type === "text"
1270
- ? samplingResult.content.text
1271
- : JSON.stringify(samplingResult.content);
1272
- return {
1273
- content: [
1274
- {
1275
- type: "text",
1276
- text: `Sampled response: ${sampledText}`,
1277
- },
1278
- ],
1279
- };
1280
- });
1281
- return server;
1282
- }
1283
- export async function createMockRootsServer() {
1284
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema, RootsListChangedNotificationSchema, },] = await Promise.all([
1285
- import("@modelcontextprotocol/sdk/server/index.js"),
1286
- import("@modelcontextprotocol/sdk/types.js"),
1287
- ]);
1288
- const server = new Server({ name: "mock-roots-server", version: "1.0.0" }, { capabilities: { tools: {} } });
1289
- const tool = {
1290
- name: "roots_summary",
1291
- description: "Requests roots/list from the client and returns a summary of roots.",
1292
- inputSchema: {
1293
- type: "object",
1294
- properties: {},
1295
- additionalProperties: false,
1296
- },
1297
- };
1298
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1299
- tools: [tool],
1300
- }));
1301
- server.setNotificationHandler(RootsListChangedNotificationSchema, async () => {
1302
- await server.listRoots();
1303
- });
1304
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
1305
- if (request.params.name !== "roots_summary") {
1306
- throw new Error(`Unknown tool: ${request.params.name}`);
1307
- }
1308
- const rootsResult = await server.listRoots();
1309
- const rootSummary = rootsResult.roots
1310
- .map((root) => (root.name === undefined ? root.uri : `${root.name} (${root.uri})`))
1311
- .join(", ");
1312
- return {
1313
- content: [
1314
- {
1315
- type: "text",
1316
- text: rootSummary.length === 0 ? "Roots: none" : `Roots: ${rootSummary}`,
1317
- },
1318
- ],
1319
- };
1320
- });
1321
- return server;
1322
- }
1323
- export async function createMockLoggingServer() {
1324
- const [{ Server }, { CallToolRequestSchema, ListToolsRequestSchema }] = await Promise.all([
1325
- import("@modelcontextprotocol/sdk/server/index.js"),
1326
- import("@modelcontextprotocol/sdk/types.js"),
1327
- ]);
1328
- const server = new Server({ name: "mock-logging-server", version: "1.0.0" }, { capabilities: { tools: {}, logging: {} } });
1329
- const tool = {
1330
- name: "emit_logs",
1331
- description: "Emits mock log messages at multiple levels.",
1332
- inputSchema: {
1333
- type: "object",
1334
- properties: {},
1335
- additionalProperties: false,
1336
- },
1337
- };
1338
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1339
- tools: [tool],
1340
- }));
1341
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
1342
- if (request.params.name !== "emit_logs") {
1343
- throw new Error(`Unknown tool: ${request.params.name}`);
1344
- }
1345
- await server.sendLoggingMessage({
1346
- level: "debug",
1347
- logger: "mock-logging-server",
1348
- data: { message: "Debug message" },
1349
- });
1350
- await server.sendLoggingMessage({
1351
- level: "info",
1352
- logger: "mock-logging-server",
1353
- data: { message: "Info message" },
1354
- });
1355
- await server.sendLoggingMessage({
1356
- level: "error",
1357
- logger: "mock-logging-server",
1358
- data: { message: "Error message" },
1359
- });
1360
- return {
1361
- content: [
1362
- {
1363
- type: "text",
1364
- text: "Emitted log messages.",
1365
- },
1366
- ],
1367
- };
1368
- });
1369
- return server;
1370
- }
1371
- export async function createMockFullFeaturedServer() {
1372
- const [{ Server }, { CallToolRequestSchema, CompleteRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, },] = await Promise.all([
1373
- import("@modelcontextprotocol/sdk/server/index.js"),
1374
- import("@modelcontextprotocol/sdk/types.js"),
1375
- ]);
1376
- const server = new Server({ name: "mock-full-featured-server", version: "1.0.0" }, {
1377
- capabilities: {
1378
- tools: {},
1379
- resources: {},
1380
- prompts: {},
1381
- logging: {},
1382
- completions: {},
1383
- },
1384
- });
1385
- const tool = {
1386
- name: "full_featured_ping",
1387
- description: "Returns a text response and emits an info log.",
1388
- inputSchema: {
1389
- type: "object",
1390
- properties: {},
1391
- additionalProperties: false,
1392
- },
1393
- };
1394
- const resources = [
1395
- {
1396
- uri: "file:///full-featured.txt",
1397
- name: "full-featured.txt",
1398
- mimeType: "text/plain",
1399
- },
1400
- ];
1401
- const prompts = [
1402
- {
1403
- name: "full_featured_prompt",
1404
- description: "Returns a short prompt message for a topic.",
1405
- arguments: [
1406
- {
1407
- name: "topic",
1408
- description: "Topic to include in the prompt output.",
1409
- required: false,
1410
- },
1411
- ],
1412
- },
1413
- ];
1414
- const completionValues = ["alpha", "beta", "gamma"];
1415
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
1416
- tools: [tool],
1417
- }));
1418
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
1419
- if (request.params.name !== "full_featured_ping") {
1420
- throw new Error(`Unknown tool: ${request.params.name}`);
1421
- }
1422
- await server.sendLoggingMessage({
1423
- level: "info",
1424
- logger: "mock-full-featured-server",
1425
- data: {
1426
- message: "full_featured_ping called",
1427
- },
1428
- });
1429
- return {
1430
- content: [
1431
- {
1432
- type: "text",
1433
- text: "full_featured_ping ok",
1434
- },
1435
- ],
1436
- };
1437
- });
1438
- server.setRequestHandler(ListResourcesRequestSchema, async () => ({
1439
- resources,
1440
- }));
1441
- server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1442
- if (request.params.uri !== "file:///full-featured.txt") {
1443
- throw new Error(`Unknown resource: ${request.params.uri}`);
1444
- }
1445
- return {
1446
- contents: [
1447
- {
1448
- uri: "file:///full-featured.txt",
1449
- mimeType: "text/plain",
1450
- text: "Mock full-featured resource",
1451
- },
1452
- ],
1453
- };
1454
- });
1455
- server.setRequestHandler(ListPromptsRequestSchema, async () => ({
1456
- prompts,
1457
- }));
1458
- server.setRequestHandler(GetPromptRequestSchema, async (request) => {
1459
- if (request.params.name !== "full_featured_prompt") {
1460
- throw new Error(`Unknown prompt: ${request.params.name}`);
1461
- }
1462
- const topic = request.params.arguments?.topic;
1463
- const topicText = typeof topic === "string" && topic.length > 0 ? topic : "general";
1464
- return {
1465
- description: "Mock prompt from full-featured server.",
1466
- messages: [
1467
- {
1468
- role: "user",
1469
- content: {
1470
- type: "text",
1471
- text: `Provide a short summary for ${topicText}.`,
1472
- },
1473
- },
1474
- ],
1475
- };
1476
- });
1477
- server.setRequestHandler(CompleteRequestSchema, async (request) => {
1478
- if (request.params.ref.type !== "ref/prompt" ||
1479
- request.params.ref.name !== "full_featured_prompt" ||
1480
- request.params.argument.name !== "topic") {
1481
- return {
1482
- completion: {
1483
- values: [],
1484
- },
1485
- };
1486
- }
1487
- const partialValue = request.params.argument.value.toLowerCase();
1488
- const values = completionValues.filter((value) => value.startsWith(partialValue));
1489
- return {
1490
- completion: {
1491
- values,
1492
- },
1493
- };
1494
- });
1495
- return server;
1496
- }
1497
- export async function createTestPair(server, createClient) {
1498
- const { clientTransport, serverTransport } = createInMemoryTransportPair();
1499
- const serverPromise = server.connect(serverTransport);
1500
- const client = createClient();
1501
- try {
1502
- await client.connect(clientTransport);
1503
- }
1504
- catch (error) {
1505
- clientTransport.dispose(new Error("tiny-stdio-mcp-server test pair setup failed"));
1506
- await serverPromise;
1507
- throw error;
1508
- }
1509
- const cleanup = async () => {
1510
- await client.close();
1511
- clientTransport.dispose(new Error("tiny-stdio-mcp-server test pair cleanup"));
1512
- await serverPromise;
1513
- };
1514
- return { client, cleanup };
1515
- }
1516
- function defaultStdioSpawn(command, args, options) {
1517
- return spawn(command, args, options);
1518
- }
1519
- function defaultHttpTransportFetch(input, init) {
1520
- return fetch(input, init);
1521
- }
1522
- export class StdioTransport {
1523
- readable;
1524
- writable;
1525
- closed;
1526
- child;
1527
- disposed = false;
1528
- stderrOutput = "";
1529
- static STDERR_MAX_LENGTH = 65_536;
1530
- constructor({ command, args = [], cwd, env, spawn: spawnProcess = defaultStdioSpawn, }) {
1531
- this.child = spawnProcess(command, args, {
1532
- cwd,
1533
- env,
1534
- stdio: ["pipe", "pipe", "pipe"],
1535
- });
1536
- const child = this.child;
1537
- this.readable = child.stdout;
1538
- this.writable = child.stdin;
1539
- const stderrDecoder = new TextDecoder();
1540
- child.stderr.on("data", (chunk) => {
1541
- const decoded = chunk instanceof Uint8Array
1542
- ? stderrDecoder.decode(chunk, { stream: true })
1543
- : `${stderrDecoder.decode()}${String(chunk)}`;
1544
- this.appendStderrOutput(decoded);
1545
- });
1546
- child.stderr.once("end", () => {
1547
- this.appendStderrOutput(stderrDecoder.decode());
1548
- });
1549
- this.closed = new Promise((resolve) => {
1550
- let settled = false;
1551
- const resolveClosed = (event) => {
1552
- if (settled) {
1553
- return;
1554
- }
1555
- settled = true;
1556
- resolve(event);
1557
- };
1558
- child.once("exit", (code, signal) => {
1559
- const closedEvent = {
1560
- reason: new Error("Stdio transport process exited"),
1561
- };
1562
- if (code !== null) {
1563
- closedEvent.code = code;
1564
- }
1565
- if (signal !== null) {
1566
- closedEvent.signal = signal;
1567
- }
1568
- resolveClosed(closedEvent);
1569
- });
1570
- child.once("error", (error) => {
1571
- const closedEvent = {
1572
- reason: error instanceof Error ? error : new Error(String(error)),
1573
- };
1574
- if (child.exitCode !== null) {
1575
- closedEvent.code = child.exitCode;
1576
- }
1577
- if (child.signalCode !== null) {
1578
- closedEvent.signal = child.signalCode;
1579
- }
1580
- resolveClosed(closedEvent);
1581
- });
1582
- });
1583
- }
1584
- getStderrOutput() {
1585
- return this.stderrOutput;
1586
- }
1587
- appendStderrOutput(chunk) {
1588
- if (chunk.length === 0) {
1589
- return;
1590
- }
1591
- this.stderrOutput += chunk;
1592
- if (this.stderrOutput.length > StdioTransport.STDERR_MAX_LENGTH) {
1593
- this.stderrOutput = this.stderrOutput.slice(-StdioTransport.STDERR_MAX_LENGTH);
1594
- }
1595
- }
1596
- dispose(reason = new Error("Stdio transport disposed")) {
1597
- void reason;
1598
- if (this.disposed) {
1599
- return;
1600
- }
1601
- this.disposed = true;
1602
- if (!this.child.stdin.destroyed && !this.child.stdin.writableEnded) {
1603
- this.child.stdin.end();
1604
- }
1605
- if (this.child.exitCode === null && this.child.signalCode === null && !this.child.killed) {
1606
- this.child.kill("SIGTERM");
1607
- }
1608
- }
1609
- }
1610
- export class HttpTransport {
1611
- readable;
1612
- writable;
1613
- closed;
1614
- url;
1615
- headers;
1616
- fetchImpl;
1617
- readStream = new PassThrough();
1618
- writeStream = new PassThrough();
1619
- resolveClosed;
1620
- sessionId;
1621
- lastEventId;
1622
- getSseStreamStarted = false;
1623
- disposed = false;
1624
- oauthProvider;
1625
- oauthMetadataDiscovery;
1626
- inFlightFetchAbortControllers = new Set();
1627
- openSseReaders = new Set();
1628
- constructor({ url, headers = {}, fetch: fetchImpl = defaultHttpTransportFetch, oauth, oauthDiscoveryCache, }) {
1629
- this.url = url;
1630
- this.headers = headers;
1631
- this.fetchImpl = fetchImpl;
1632
- this.oauthProvider = oauth === undefined
1633
- ? undefined
1634
- : createOAuthClientProvider(oauth);
1635
- this.oauthMetadataDiscovery = oauth === undefined
1636
- ? undefined
1637
- : new OAuthMetadataDiscovery({
1638
- fetch: (input, init) => this.fetchWithAbort(input, init ?? {}),
1639
- cache: oauthDiscoveryCache,
1640
- });
1641
- this.readable = this.readStream;
1642
- this.writable = this.writeStream;
1643
- this.closed = new Promise((resolve) => {
1644
- this.resolveClosed = resolve;
1645
- });
1646
- this.readStream.once("error", (error) => {
1647
- this.dispose(error instanceof Error ? error : new Error(String(error)));
1648
- });
1649
- this.writeStream.once("error", (error) => {
1650
- this.dispose(error instanceof Error ? error : new Error(String(error)));
1651
- });
1652
- this.consumeWrittenLines().catch((error) => {
1653
- this.dispose(error instanceof Error ? error : new Error(String(error)));
1654
- });
1655
- }
1656
- dispose(reason = new Error("HTTP transport disposed")) {
1657
- if (this.disposed) {
1658
- return;
1659
- }
1660
- this.disposed = true;
1661
- this.abortInFlightFetches();
1662
- this.cancelOpenSseReaders();
1663
- if (!this.writeStream.destroyed && !this.writeStream.writableEnded) {
1664
- this.writeStream.end();
1665
- }
1666
- if (!this.readStream.destroyed && !this.readStream.writableEnded) {
1667
- this.readStream.end();
1668
- }
1669
- void this.closeWithSessionTermination(reason);
1670
- }
1671
- async closeWithSessionTermination(reason) {
1672
- let closeReason = reason;
1673
- if (this.sessionId !== undefined) {
1674
- const sessionId = this.sessionId;
1675
- this.sessionId = undefined;
1676
- try {
1677
- await this.sendSessionTerminationRequest(sessionId);
1678
- }
1679
- catch (error) {
1680
- closeReason = error instanceof Error ? error : new Error(String(error));
1681
- }
1682
- }
1683
- const resolveClosed = this.resolveClosed;
1684
- this.resolveClosed = undefined;
1685
- resolveClosed?.({ reason: closeReason });
1686
- }
1687
- abortInFlightFetches() {
1688
- for (const abortController of this.inFlightFetchAbortControllers) {
1689
- abortController.abort();
1690
- }
1691
- this.inFlightFetchAbortControllers.clear();
1692
- }
1693
- cancelOpenSseReaders() {
1694
- for (const reader of this.openSseReaders) {
1695
- void reader.cancel().catch(() => undefined);
1696
- }
1697
- this.openSseReaders.clear();
1698
- }
1699
- async fetchWithAbort(input, init) {
1700
- const abortController = new AbortController();
1701
- this.inFlightFetchAbortControllers.add(abortController);
1702
- try {
1703
- return await this.fetchImpl(input, {
1704
- ...init,
1705
- signal: abortController.signal,
1706
- });
1707
- }
1708
- finally {
1709
- this.inFlightFetchAbortControllers.delete(abortController);
1710
- }
1711
- }
1712
- async consumeWrittenLines() {
1713
- for await (const line of readLines(this.writeStream)) {
1714
- if (this.disposed || line.length === 0) {
1715
- continue;
1716
- }
1717
- const hasSessionId = this.sessionId !== undefined;
1718
- const response = await this.fetchWithOAuthRetry({
1719
- method: "POST",
1720
- createHeaders: () => this.createPostHeaders(),
1721
- body: line,
1722
- });
1723
- if (hasSessionId && response.status === 404) {
1724
- this.sessionId = undefined;
1725
- this.dispose(new Error("HTTP transport session expired (404 response)"));
1726
- return;
1727
- }
1728
- await this.throwForPostHttpError(response);
1729
- this.captureSessionId(response);
1730
- this.maybeOpenGetSseStream();
1731
- void this.forwardResponseMessages(response).catch((error) => {
1732
- this.dispose(error instanceof Error ? error : new Error(String(error)));
1733
- });
1734
- }
1735
- }
1736
- async createPostHeaders() {
1737
- const headers = new Headers(this.headers);
1738
- headers.set("Accept", "application/json, text/event-stream");
1739
- headers.set("Content-Type", "application/json");
1740
- if (this.sessionId !== undefined) {
1741
- headers.set("Mcp-Session-Id", this.sessionId);
1742
- headers.set("MCP-Protocol-Version", MCP_PROTOCOL_VERSION);
1743
- }
1744
- return this.authorizeRequestHeaders(headers);
1745
- }
1746
- async createGetHeaders() {
1747
- const headers = new Headers(this.headers);
1748
- headers.set("Accept", "text/event-stream");
1749
- if (this.sessionId !== undefined) {
1750
- headers.set("Mcp-Session-Id", this.sessionId);
1751
- headers.set("MCP-Protocol-Version", MCP_PROTOCOL_VERSION);
1752
- }
1753
- if (this.lastEventId !== undefined) {
1754
- headers.set("Last-Event-ID", this.lastEventId);
1755
- }
1756
- return this.authorizeRequestHeaders(headers);
1757
- }
1758
- async createDeleteHeaders(sessionId) {
1759
- const headers = new Headers(this.headers);
1760
- headers.set("Mcp-Session-Id", sessionId);
1761
- headers.set("MCP-Protocol-Version", MCP_PROTOCOL_VERSION);
1762
- return this.authorizeRequestHeaders(headers);
1763
- }
1764
- async authorizeRequestHeaders(headers) {
1765
- await this.oauthProvider?.authorizeRequest?.({
1766
- requestUrl: new URL(this.url),
1767
- headers,
1768
- fetch: this.fetchImpl,
1769
- });
1770
- return headers;
1771
- }
1772
- captureSessionId(response) {
1773
- const sessionId = response.headers.get("Mcp-Session-Id");
1774
- if (sessionId === null || sessionId.length === 0) {
1775
- return;
1776
- }
1777
- if (this.sessionId !== undefined && this.sessionId !== sessionId) {
1778
- throw new Error("HTTP transport response changed active session ID");
1779
- }
1780
- this.sessionId = sessionId;
1781
- }
1782
- maybeOpenGetSseStream() {
1783
- if (this.disposed || this.sessionId === undefined || this.getSseStreamStarted) {
1784
- return;
1785
- }
1786
- this.getSseStreamStarted = true;
1787
- this.consumeGetSseStream().catch((error) => {
1788
- if (error instanceof HttpTransportGetSseNotSupportedError || this.disposed) {
1789
- return;
1790
- }
1791
- this.dispose(error instanceof Error ? error : new Error(String(error)));
1792
- });
1793
- }
1794
- async sendSessionTerminationRequest(sessionId) {
1795
- const response = await this.fetchImpl(this.url, {
1796
- method: "DELETE",
1797
- headers: await this.createDeleteHeaders(sessionId),
1798
- });
1799
- if (response.status === 405 || response.ok) {
1800
- return;
1801
- }
1802
- const responseBody = (await response.text()).trim();
1803
- const statusDescriptor = `${response.status} ${response.statusText}`.trim();
1804
- const message = responseBody.length === 0
1805
- ? `HTTP transport DELETE failed (${statusDescriptor})`
1806
- : `HTTP transport DELETE failed (${statusDescriptor}): ${responseBody}`;
1807
- throw new Error(message);
1808
- }
1809
- async consumeGetSseStream() {
1810
- const response = await this.fetchWithOAuthRetry({
1811
- method: "GET",
1812
- createHeaders: () => this.createGetHeaders(),
1813
- });
1814
- if (response.status === 405) {
1815
- throw new HttpTransportGetSseNotSupportedError();
1816
- }
1817
- if (response.status === 404) {
1818
- this.sessionId = undefined;
1819
- throw new Error("HTTP transport session expired (GET 404 response)");
1820
- }
1821
- if (!response.ok) {
1822
- const responseBody = (await response.text()).trim();
1823
- const statusDescriptor = `${response.status} ${response.statusText}`.trim();
1824
- const message = responseBody.length === 0
1825
- ? `HTTP transport GET failed (${statusDescriptor})`
1826
- : `HTTP transport GET failed (${statusDescriptor}): ${responseBody}`;
1827
- throw new Error(message);
1828
- }
1829
- const contentType = response.headers.get("Content-Type");
1830
- if (contentType === null) {
1831
- return;
1832
- }
1833
- if (contentType.toLowerCase().includes("text/event-stream")) {
1834
- await this.forwardSseResponseMessages(response);
1835
- this.getSseStreamStarted = false;
1836
- if (!this.disposed && this.sessionId !== undefined && this.lastEventId !== undefined) {
1837
- this.maybeOpenGetSseStream();
1838
- }
1839
- return;
1840
- }
1841
- return;
1842
- }
1843
- async throwForPostHttpError(response) {
1844
- if (response.status < 400) {
1845
- return;
1846
- }
1847
- const responseBody = (await response.text()).trim();
1848
- const statusDescriptor = `${response.status} ${response.statusText}`.trim();
1849
- const message = responseBody.length === 0
1850
- ? `HTTP transport POST failed (${statusDescriptor})`
1851
- : `HTTP transport POST failed (${statusDescriptor}): ${responseBody}`;
1852
- throw new Error(message);
1853
- }
1854
- async maybeHandleUnauthorizedResponse(response) {
1855
- if (response.status !== 401 || this.oauthProvider === undefined) {
1856
- return false;
1857
- }
1858
- const discoveryClient = this.oauthMetadataDiscovery;
1859
- if (discoveryClient === undefined) {
1860
- return false;
1861
- }
1862
- const challenge = parseBearerWwwAuthenticateHeader(response.headers.get("WWW-Authenticate"));
1863
- const resourceMetadataUrl = challenge?.params.resource_metadata;
1864
- const discovery = await discoveryClient.discover(this.url, {
1865
- resourceMetadataUrl,
1866
- });
1867
- const result = await this.oauthProvider.handleUnauthorized({
1868
- requestUrl: new URL(this.url),
1869
- response: response.clone(),
1870
- challenge,
1871
- discovery,
1872
- fetch: this.fetchImpl,
1873
- });
1874
- if (result.action === "retry") {
1875
- return true;
1876
- }
1877
- if (result.error !== undefined) {
1878
- throw result.error;
1879
- }
1880
- return false;
1881
- }
1882
- async forwardResponseMessages(response) {
1883
- if (response.status === 202) {
1884
- return;
1885
- }
1886
- const contentType = response.headers.get("Content-Type");
1887
- if (contentType === null) {
1888
- return;
1889
- }
1890
- const normalizedContentType = contentType.toLowerCase();
1891
- if (normalizedContentType.includes("text/event-stream")) {
1892
- await this.forwardSseResponseMessages(response);
1893
- return;
1894
- }
1895
- if (normalizedContentType.includes("application/json")) {
1896
- await this.forwardJsonResponseMessage(response);
1897
- return;
1898
- }
1899
- throw new Error("HTTP transport POST returned an unsupported response content type");
1900
- }
1901
- async forwardSseResponseMessages(response) {
1902
- if (response.body === null) {
1903
- return;
1904
- }
1905
- const parser = new SseParser();
1906
- const decoder = new TextDecoder();
1907
- const reader = response.body.getReader();
1908
- this.openSseReaders.add(reader);
1909
- try {
1910
- while (true) {
1911
- const { done, value } = await reader.read();
1912
- if (done) {
1913
- break;
1914
- }
1915
- if (value === undefined) {
1916
- continue;
1917
- }
1918
- const messages = parser.push(decoder.decode(value, { stream: true }));
1919
- this.writeSseMessages(messages);
1920
- this.lastEventId = parser.lastEventId;
1921
- }
1922
- const trailingChunk = decoder.decode();
1923
- if (trailingChunk.length > 0) {
1924
- this.writeSseMessages(parser.push(trailingChunk));
1925
- this.lastEventId = parser.lastEventId;
1926
- }
1927
- this.writeSseMessages(parser.flush());
1928
- this.lastEventId = parser.lastEventId;
1929
- }
1930
- finally {
1931
- this.openSseReaders.delete(reader);
1932
- reader.releaseLock();
1933
- }
1934
- }
1935
- async forwardJsonResponseMessage(response) {
1936
- const payload = await response.text();
1937
- if (payload.length === 0) {
1938
- return;
1939
- }
1940
- const parsedPayload = JSON.parse(payload);
1941
- this.writeReadableLine(JSON.stringify(parsedPayload));
1942
- }
1943
- writeSseMessages(messages) {
1944
- for (const message of messages) {
1945
- this.writeReadableLine(message.data);
1946
- }
1947
- }
1948
- writeReadableLine(line) {
1949
- if (this.disposed || this.readStream.destroyed || this.readStream.writableEnded) {
1950
- return;
1951
- }
1952
- this.readStream.write(`${line}\n`);
1953
- }
1954
- async fetchWithOAuthRetry(input) {
1955
- const request = async () => this.fetchWithAbort(this.url, {
1956
- method: input.method,
1957
- headers: await input.createHeaders(),
1958
- body: input.body,
1959
- });
1960
- let response = await request();
1961
- if (await this.maybeHandleUnauthorizedResponse(response)) {
1962
- response = await request();
1963
- }
1964
- const oauthError = this.oauthProvider === undefined
1965
- ? null
1966
- : this.readOAuthChallengeError(response);
1967
- if (oauthError !== null) {
1968
- throw oauthError;
1969
- }
1970
- return response;
1971
- }
1972
- readOAuthChallengeError(response) {
1973
- if (response.status !== 401 && response.status !== 403) {
1974
- return null;
1975
- }
1976
- const challenge = parseBearerWwwAuthenticateHeader(response.headers.get("WWW-Authenticate"));
1977
- const error = challenge?.params.error;
1978
- if (error === undefined || error.length === 0) {
1979
- return null;
1980
- }
1981
- return new OAuthError({
1982
- error,
1983
- error_description: challenge?.params.error_description,
1984
- error_uri: challenge?.params.error_uri,
1985
- }, response.status);
1986
- }
1987
- }
1988
- class HttpTransportGetSseNotSupportedError extends Error {
1989
- constructor() {
1990
- super("HTTP transport server does not support GET SSE streams");
1991
- }
1992
- }
1993
- export class McpError extends Error {
1994
- code;
1995
- constructor(code, message, data) {
1996
- super(message);
1997
- this.name = "McpError";
1998
- this.code = code;
1999
- if (data !== undefined) {
2000
- this.data = data;
2001
- }
2002
- }
2003
- }
2004
- export function serializeJsonRpcMessage(message) {
2005
- return `${JSON.stringify(message)}\n`;
2006
- }
2007
- function normalizeLine(line) {
2008
- return line.endsWith("\r") ? line.slice(0, -1) : line;
2009
- }
2010
- export async function* readLines(stream) {
2011
- let buffer = "";
2012
- const decoder = new TextDecoder();
2013
- for await (const chunk of stream) {
2014
- buffer +=
2015
- chunk instanceof Uint8Array
2016
- ? decoder.decode(chunk, { stream: true })
2017
- : decoder.decode() + String(chunk);
2018
- while (true) {
2019
- const newlineIndex = buffer.indexOf("\n");
2020
- if (newlineIndex === -1) {
2021
- break;
2022
- }
2023
- const line = buffer.slice(0, newlineIndex);
2024
- buffer = buffer.slice(newlineIndex + 1);
2025
- yield normalizeLine(line);
2026
- }
2027
- }
2028
- buffer += decoder.decode();
2029
- if (buffer.length > 0) {
2030
- yield normalizeLine(buffer);
2031
- }
2032
- }
2033
- export class SseParser {
2034
- buffer = "";
2035
- eventType;
2036
- dataLines = [];
2037
- eventId = "";
2038
- hasEventId = false;
2039
- _lastEventId;
2040
- get lastEventId() {
2041
- return this._lastEventId;
2042
- }
2043
- push(chunk) {
2044
- if (chunk.length === 0) {
2045
- return [];
2046
- }
2047
- this.buffer += chunk;
2048
- const messages = [];
2049
- while (true) {
2050
- const newlineIndex = this.buffer.indexOf("\n");
2051
- if (newlineIndex === -1) {
2052
- break;
2053
- }
2054
- const line = normalizeLine(this.buffer.slice(0, newlineIndex));
2055
- this.buffer = this.buffer.slice(newlineIndex + 1);
2056
- this.consumeLine(line, messages);
2057
- }
2058
- return messages;
2059
- }
2060
- flush() {
2061
- const messages = [];
2062
- if (this.buffer.length > 0) {
2063
- this.consumeLine(normalizeLine(this.buffer), messages);
2064
- this.buffer = "";
2065
- }
2066
- this.emitEvent(messages);
2067
- return messages;
2068
- }
2069
- consumeLine(line, messages) {
2070
- if (line.length === 0) {
2071
- this.emitEvent(messages);
2072
- return;
2073
- }
2074
- if (line.startsWith(":")) {
2075
- return;
2076
- }
2077
- const separatorIndex = line.indexOf(":");
2078
- const field = separatorIndex === -1 ? line : line.slice(0, separatorIndex);
2079
- const rawValue = separatorIndex === -1 ? "" : line.slice(separatorIndex + 1);
2080
- const value = rawValue.startsWith(" ") ? rawValue.slice(1) : rawValue;
2081
- if (field === "event") {
2082
- this.eventType = value;
2083
- return;
2084
- }
2085
- if (field === "data") {
2086
- this.dataLines.push(value);
2087
- return;
2088
- }
2089
- if (field === "id") {
2090
- if (value.includes("\0")) {
2091
- return;
2092
- }
2093
- this.eventId = value;
2094
- this.hasEventId = true;
2095
- }
2096
- }
2097
- emitEvent(messages) {
2098
- const eventType = this.eventType ?? "message";
2099
- if (this.hasEventId) {
2100
- this._lastEventId = this.eventId;
2101
- }
2102
- if (this.dataLines.length === 0 || eventType !== "message") {
2103
- this.resetEvent();
2104
- return;
2105
- }
2106
- const message = {
2107
- data: this.dataLines.join("\n"),
2108
- };
2109
- if (this.hasEventId) {
2110
- message.id = this.eventId;
2111
- }
2112
- messages.push(message);
2113
- this.resetEvent();
2114
- }
2115
- resetEvent() {
2116
- this.eventType = undefined;
2117
- this.dataLines = [];
2118
- this.eventId = "";
2119
- this.hasEventId = false;
2120
- }
2121
- }
2122
- export class JsonRpcMessageLayer {
2123
- requestTimeoutMs;
2124
- input;
2125
- output;
2126
- inputClosedReason;
2127
- nextRequestId = 1;
2128
- disposedError;
2129
- pendingRequests = new Map();
2130
- activeIncomingRequests = new Map();
2131
- requestHandlers = new Map();
2132
- notificationHandlers = new Map();
2133
- constructor(input, output, requestTimeoutMs = 30_000, inputClosedReason) {
2134
- if (!Number.isFinite(requestTimeoutMs) || requestTimeoutMs < 0) {
2135
- throw new Error("requestTimeoutMs must be a non-negative finite number");
2136
- }
2137
- this.input = input;
2138
- this.output = output;
2139
- this.inputClosedReason = inputClosedReason;
2140
- this.requestTimeoutMs = requestTimeoutMs;
2141
- this.consumeInput().catch(() => undefined);
2142
- }
2143
- sendNotification(method, params) {
2144
- if (this.disposedError !== undefined) {
2145
- throw this.disposedError;
2146
- }
2147
- const message = {
2148
- jsonrpc: "2.0",
2149
- method,
2150
- };
2151
- if (params !== undefined) {
2152
- message.params = params;
2153
- }
2154
- this.output.write(serializeJsonRpcMessage(message));
2155
- }
2156
- onRequest(method, handler) {
2157
- this.requestHandlers.set(method, handler);
2158
- }
2159
- onNotification(method, handler) {
2160
- this.notificationHandlers.set(method, handler);
2161
- }
2162
- sendRequest(method, params, options = {}) {
2163
- if (this.disposedError !== undefined) {
2164
- throw this.disposedError;
2165
- }
2166
- const id = this.nextRequestId;
2167
- this.nextRequestId += 1;
2168
- const timeoutMs = options.timeoutMs ?? this.requestTimeoutMs;
2169
- if (!Number.isFinite(timeoutMs) || timeoutMs < 0) {
2170
- throw new Error("timeoutMs must be a non-negative finite number");
2171
- }
2172
- if (options.onRequestId !== undefined) {
2173
- options.onRequestId(id);
2174
- }
2175
- const message = {
2176
- jsonrpc: "2.0",
2177
- id,
2178
- method,
2179
- };
2180
- if (params !== undefined) {
2181
- message.params = params;
2182
- }
2183
- return new Promise((resolve, reject) => {
2184
- const timeout = setTimeout(() => {
2185
- this.pendingRequests.delete(id);
2186
- options.onTimeout?.(id);
2187
- reject(new Error(`JSON-RPC request "${method}" timed out after ${timeoutMs}ms`));
2188
- }, timeoutMs);
2189
- this.pendingRequests.set(id, { resolve, reject, timeout });
2190
- try {
2191
- this.output.write(serializeJsonRpcMessage(message));
2192
- }
2193
- catch (error) {
2194
- clearTimeout(timeout);
2195
- this.pendingRequests.delete(id);
2196
- reject(error);
2197
- }
2198
- });
2199
- }
2200
- cancelRequest(requestId, reason) {
2201
- const pending = this.pendingRequests.get(requestId);
2202
- if (pending === undefined) {
2203
- return false;
2204
- }
2205
- this.pendingRequests.delete(requestId);
2206
- clearTimeout(pending.timeout);
2207
- pending.reject(reason);
2208
- return true;
2209
- }
2210
- dispose(reason = new Error("JSON-RPC message layer disposed")) {
2211
- if (this.disposedError !== undefined) {
2212
- return;
2213
- }
2214
- this.disposedError = reason;
2215
- for (const pending of this.pendingRequests.values()) {
2216
- clearTimeout(pending.timeout);
2217
- pending.reject(reason);
2218
- }
2219
- this.pendingRequests.clear();
2220
- this.activeIncomingRequests.clear();
2221
- }
2222
- async consumeInput() {
2223
- try {
2224
- for await (const line of readLines(this.input)) {
2225
- if (this.disposedError !== undefined) {
2226
- break;
2227
- }
2228
- if (line.length === 0) {
2229
- continue;
2230
- }
2231
- let parsedLine;
2232
- try {
2233
- parsedLine = JSON.parse(line);
2234
- }
2235
- catch {
2236
- await this.processParsedMessage({
2237
- type: "invalid",
2238
- id: null,
2239
- error: parseError(),
2240
- });
2241
- continue;
2242
- }
2243
- if (Array.isArray(parsedLine)) {
2244
- for (const message of parsedLine) {
2245
- if (this.disposedError !== undefined) {
2246
- break;
2247
- }
2248
- await this.processParsedMessage(parseJsonRpcPayload(message));
2249
- }
2250
- continue;
2251
- }
2252
- await this.processParsedMessage(parseJsonRpcPayload(parsedLine));
2253
- }
2254
- }
2255
- catch (error) {
2256
- if (this.disposedError === undefined) {
2257
- this.dispose(error instanceof Error
2258
- ? error
2259
- : new Error(`JSON-RPC input stream failed: ${String(error)}`));
2260
- }
2261
- return;
2262
- }
2263
- if (this.disposedError === undefined) {
2264
- const streamClosedReason = await this.resolveInputStreamClosedReason();
2265
- if (this.disposedError === undefined) {
2266
- this.dispose(streamClosedReason);
2267
- }
2268
- }
2269
- }
2270
- async resolveInputStreamClosedReason() {
2271
- const streamClosedError = new Error("JSON-RPC input stream closed");
2272
- if (this.inputClosedReason === undefined) {
2273
- return streamClosedError;
2274
- }
2275
- try {
2276
- return await Promise.race([
2277
- this.inputClosedReason,
2278
- new Promise((resolve) => {
2279
- setTimeout(() => {
2280
- resolve(streamClosedError);
2281
- }, 50);
2282
- }),
2283
- ]);
2284
- }
2285
- catch {
2286
- return streamClosedError;
2287
- }
2288
- }
2289
- async processParsedMessage(parsed) {
2290
- if (parsed.type === "request") {
2291
- const handler = this.requestHandlers.get(parsed.message.method);
2292
- if (handler === undefined) {
2293
- this.output.write(serializeJsonRpcMessage({
2294
- jsonrpc: "2.0",
2295
- id: parsed.message.id,
2296
- error: {
2297
- code: ERROR_METHOD_NOT_FOUND,
2298
- message: `Method not found: ${parsed.message.method}`,
2299
- },
2300
- }));
2301
- return;
2302
- }
2303
- this.handleIncomingRequest(parsed.message, handler);
2304
- return;
2305
- }
2306
- if (parsed.type === "notification") {
2307
- if (parsed.message.method === "notifications/cancelled") {
2308
- this.handleCancellationNotification(parsed.message.params);
2309
- }
2310
- const handler = this.notificationHandlers.get(parsed.message.method);
2311
- if (handler === undefined) {
2312
- return;
2313
- }
2314
- try {
2315
- await handler(parsed.message.params, {
2316
- method: parsed.message.method,
2317
- });
2318
- }
2319
- catch {
2320
- return;
2321
- }
2322
- return;
2323
- }
2324
- if (parsed.type === "invalid") {
2325
- const errorResponse = {
2326
- jsonrpc: "2.0",
2327
- id: parsed.id,
2328
- error: {
2329
- code: parsed.error.code,
2330
- message: parsed.error.message,
2331
- },
2332
- };
2333
- if (parsed.error.data !== undefined) {
2334
- errorResponse.error.data = parsed.error.data;
2335
- }
2336
- this.output.write(`${JSON.stringify(errorResponse)}\n`);
2337
- return;
2338
- }
2339
- if (parsed.type !== "response") {
2340
- return;
2341
- }
2342
- const pending = this.pendingRequests.get(parsed.message.id);
2343
- if (pending === undefined) {
2344
- return;
2345
- }
2346
- this.pendingRequests.delete(parsed.message.id);
2347
- clearTimeout(pending.timeout);
2348
- if ("result" in parsed.message) {
2349
- pending.resolve(parsed.message.result);
2350
- return;
2351
- }
2352
- pending.reject(new McpError(parsed.message.error.code, parsed.message.error.message, parsed.message.error.data));
2353
- }
2354
- handleIncomingRequest(message, handler) {
2355
- const activeRequest = {
2356
- cancelled: false,
2357
- };
2358
- this.activeIncomingRequests.set(message.id, activeRequest);
2359
- void (async () => {
2360
- try {
2361
- const result = await handler(message.params, {
2362
- id: message.id,
2363
- method: message.method,
2364
- });
2365
- if (this.disposedError !== undefined || activeRequest.cancelled) {
2366
- return;
2367
- }
2368
- this.output.write(serializeJsonRpcMessage({
2369
- jsonrpc: "2.0",
2370
- id: message.id,
2371
- result,
2372
- }));
2373
- }
2374
- catch (error) {
2375
- if (this.disposedError !== undefined || activeRequest.cancelled) {
2376
- return;
2377
- }
2378
- const errorMessage = error instanceof Error ? error.message : String(error);
2379
- this.output.write(serializeJsonRpcMessage({
2380
- jsonrpc: "2.0",
2381
- id: message.id,
2382
- error: {
2383
- code: ERROR_INTERNAL,
2384
- message: errorMessage,
2385
- },
2386
- }));
2387
- }
2388
- finally {
2389
- const inFlightRequest = this.activeIncomingRequests.get(message.id);
2390
- if (inFlightRequest === activeRequest) {
2391
- this.activeIncomingRequests.delete(message.id);
2392
- }
2393
- }
2394
- })();
2395
- }
2396
- handleCancellationNotification(params) {
2397
- if (!isObjectRecord(params)) {
2398
- return;
2399
- }
2400
- const requestId = params.requestId;
2401
- if (!isRequestId(requestId)) {
2402
- return;
2403
- }
2404
- const activeRequest = this.activeIncomingRequests.get(requestId);
2405
- if (activeRequest === undefined) {
2406
- return;
2407
- }
2408
- activeRequest.cancelled = true;
2409
- this.activeIncomingRequests.delete(requestId);
2410
- }
2411
- }
2412
- function isObjectRecord(value) {
2413
- return typeof value === "object" && value !== null && !Array.isArray(value);
2414
- }
2415
- function isInitializeResult(value) {
2416
- if (!isObjectRecord(value) || typeof value.protocolVersion !== "string") {
2417
- return false;
2418
- }
2419
- if (!isServerCapabilities(value.capabilities)) {
2420
- return false;
2421
- }
2422
- if (!isObjectRecord(value.serverInfo)
2423
- || typeof value.serverInfo.name !== "string"
2424
- || value.serverInfo.name.length === 0
2425
- || typeof value.serverInfo.version !== "string"
2426
- || value.serverInfo.version.length === 0) {
2427
- return false;
2428
- }
2429
- return value.instructions === undefined || typeof value.instructions === "string";
2430
- }
2431
- function isServerCapabilities(value) {
2432
- if (!isObjectRecord(value)) {
2433
- return false;
2434
- }
2435
- for (const capability of ["prompts", "resources", "tools", "logging", "completions", "experimental"]) {
2436
- if (value[capability] !== undefined && !isObjectRecord(value[capability])) {
2437
- return false;
2438
- }
2439
- }
2440
- return true;
2441
- }
2442
- function isCallToolResult(value) {
2443
- if (!isObjectRecord(value) || !Array.isArray(value.content)) {
2444
- return false;
2445
- }
2446
- if (value.structuredContent !== undefined && !isObjectRecord(value.structuredContent)) {
2447
- return false;
2448
- }
2449
- if (value.isError !== undefined && typeof value.isError !== "boolean") {
2450
- return false;
2451
- }
2452
- return value.content.every(isContentItem);
2453
- }
2454
- function isToolsListResult(value) {
2455
- return isObjectRecord(value)
2456
- && Array.isArray(value.tools)
2457
- && (value.nextCursor === undefined || typeof value.nextCursor === "string");
2458
- }
2459
- function isResourcesListResult(value) {
2460
- return isObjectRecord(value)
2461
- && Array.isArray(value.resources)
2462
- && value.resources.every(isResource)
2463
- && (value.nextCursor === undefined || typeof value.nextCursor === "string");
2464
- }
2465
- function isResourceTemplatesListResult(value) {
2466
- return isObjectRecord(value)
2467
- && Array.isArray(value.resourceTemplates)
2468
- && value.resourceTemplates.every(isResourceTemplate)
2469
- && (value.nextCursor === undefined || typeof value.nextCursor === "string");
2470
- }
2471
- function isReadResourceResult(value) {
2472
- return isObjectRecord(value)
2473
- && Array.isArray(value.contents)
2474
- && value.contents.every(isResourceContents);
2475
- }
2476
- function isGetPromptResult(value) {
2477
- return isObjectRecord(value)
2478
- && (value.description === undefined || typeof value.description === "string")
2479
- && Array.isArray(value.messages)
2480
- && value.messages.every(isPromptMessage);
2481
- }
2482
- function isCompleteResult(value) {
2483
- return isObjectRecord(value)
2484
- && isObjectRecord(value.completion)
2485
- && Array.isArray(value.completion.values)
2486
- && value.completion.values.every((candidate) => typeof candidate === "string")
2487
- && (value.completion.hasMore === undefined || typeof value.completion.hasMore === "boolean")
2488
- && (value.completion.total === undefined || typeof value.completion.total === "number");
2489
- }
2490
- function isResource(value) {
2491
- return isObjectRecord(value)
2492
- && typeof value.uri === "string"
2493
- && typeof value.name === "string"
2494
- && (value.description === undefined || typeof value.description === "string")
2495
- && (value.mimeType === undefined || typeof value.mimeType === "string")
2496
- && (value.size === undefined || typeof value.size === "number");
2497
- }
2498
- function isResourceTemplate(value) {
2499
- return isObjectRecord(value)
2500
- && typeof value.uriTemplate === "string"
2501
- && typeof value.name === "string"
2502
- && (value.description === undefined || typeof value.description === "string")
2503
- && (value.mimeType === undefined || typeof value.mimeType === "string");
2504
- }
2505
- function isResourceContents(value) {
2506
- if (!isObjectRecord(value) || typeof value.uri !== "string") {
2507
- return false;
2508
- }
2509
- if (value.mimeType !== undefined && typeof value.mimeType !== "string") {
2510
- return false;
2511
- }
2512
- const hasText = value.text !== undefined;
2513
- const hasBlob = value.blob !== undefined;
2514
- if (!hasText && !hasBlob) {
2515
- return false;
2516
- }
2517
- return (!hasText || typeof value.text === "string")
2518
- && (!hasBlob || typeof value.blob === "string");
2519
- }
2520
- function isPromptMessage(value) {
2521
- return isObjectRecord(value)
2522
- && (value.role === "user" || value.role === "assistant")
2523
- && isContentItem(value.content);
2524
- }
2525
- function isContentItem(value) {
2526
- if (!isObjectRecord(value)) {
2527
- return false;
2528
- }
2529
- if (value.type === "text") {
2530
- return typeof value.text === "string";
2531
- }
2532
- if (value.type === "image" || value.type === "audio") {
2533
- return typeof value.data === "string" && typeof value.mimeType === "string";
2534
- }
2535
- if (value.type !== "resource" || !isObjectRecord(value.resource)) {
2536
- return false;
2537
- }
2538
- return isResourceContents(value.resource);
2539
- }
2540
- function hasOwn(value, property) {
2541
- return Object.prototype.hasOwnProperty.call(value, property);
2542
- }
2543
- function isRequestId(value) {
2544
- return typeof value === "string" || typeof value === "number";
2545
- }
2546
- function isLogLevel(value) {
2547
- return (value === "debug" ||
2548
- value === "info" ||
2549
- value === "notice" ||
2550
- value === "warning" ||
2551
- value === "error" ||
2552
- value === "critical" ||
2553
- value === "alert" ||
2554
- value === "emergency");
2555
- }
2556
- function toRequestId(value) {
2557
- return isRequestId(value) ? value : null;
2558
- }
2559
- function parseError() {
2560
- return new McpError(ERROR_PARSE, "Parse error");
2561
- }
2562
- function invalidRequest() {
2563
- return new McpError(ERROR_INVALID_REQUEST, "Invalid Request");
2564
- }
2565
- function isJsonRpcErrorObject(value) {
2566
- if (!isObjectRecord(value)) {
2567
- return false;
2568
- }
2569
- if (typeof value.code !== "number" || typeof value.message !== "string") {
2570
- return false;
2571
- }
2572
- return value.data === undefined || hasOwn(value, "data");
2573
- }
2574
- export function parseJsonRpcMessage(line) {
2575
- let parsed;
2576
- try {
2577
- parsed = JSON.parse(line);
2578
- }
2579
- catch {
2580
- return {
2581
- type: "invalid",
2582
- id: null,
2583
- error: parseError(),
2584
- };
2585
- }
2586
- return parseJsonRpcPayload(parsed);
2587
- }
2588
- function parseJsonRpcPayload(parsed) {
2589
- if (!isObjectRecord(parsed)) {
2590
- return {
2591
- type: "invalid",
2592
- id: null,
2593
- error: invalidRequest(),
2594
- };
2595
- }
2596
- const id = toRequestId(parsed.id);
2597
- if (parsed.jsonrpc !== "2.0") {
2598
- return {
2599
- type: "invalid",
2600
- id,
2601
- error: invalidRequest(),
2602
- };
2603
- }
2604
- const hasMethod = hasOwn(parsed, "method");
2605
- const hasId = hasOwn(parsed, "id");
2606
- if (hasMethod) {
2607
- if (typeof parsed.method !== "string") {
2608
- return {
2609
- type: "invalid",
2610
- id,
2611
- error: invalidRequest(),
2612
- };
2613
- }
2614
- if (hasId) {
2615
- if (!isRequestId(parsed.id)) {
2616
- return {
2617
- type: "invalid",
2618
- id: null,
2619
- error: invalidRequest(),
2620
- };
2621
- }
2622
- const request = {
2623
- jsonrpc: "2.0",
2624
- id: parsed.id,
2625
- method: parsed.method,
2626
- };
2627
- if (hasOwn(parsed, "params")) {
2628
- request.params = parsed.params;
2629
- }
2630
- return {
2631
- type: "request",
2632
- message: request,
2633
- };
2634
- }
2635
- const notification = {
2636
- jsonrpc: "2.0",
2637
- method: parsed.method,
2638
- };
2639
- if (hasOwn(parsed, "params")) {
2640
- notification.params = parsed.params;
2641
- }
2642
- return {
2643
- type: "notification",
2644
- message: notification,
2645
- };
2646
- }
2647
- if (!hasId || !isRequestId(parsed.id)) {
2648
- return {
2649
- type: "invalid",
2650
- id,
2651
- error: invalidRequest(),
2652
- };
2653
- }
2654
- const hasResult = hasOwn(parsed, "result");
2655
- const hasError = hasOwn(parsed, "error");
2656
- if (hasResult === hasError) {
2657
- return {
2658
- type: "invalid",
2659
- id: parsed.id,
2660
- error: invalidRequest(),
2661
- };
2662
- }
2663
- if (hasResult) {
2664
- return {
2665
- type: "response",
2666
- message: {
2667
- jsonrpc: "2.0",
2668
- id: parsed.id,
2669
- result: parsed.result,
2670
- },
2671
- };
2672
- }
2673
- if (!isJsonRpcErrorObject(parsed.error)) {
2674
- return {
2675
- type: "invalid",
2676
- id: parsed.id,
2677
- error: invalidRequest(),
2678
- };
2679
- }
2680
- return {
2681
- type: "response",
2682
- message: {
2683
- jsonrpc: "2.0",
2684
- id: parsed.id,
2685
- error: parsed.error,
2686
- },
2687
- };
2688
- }