@atxp/client 0.10.3 → 0.10.5

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 (722) hide show
  1. package/dist/_virtual/additionalItems.js +4 -0
  2. package/dist/_virtual/additionalItems.js.map +1 -0
  3. package/dist/_virtual/additionalItems2.js +4 -0
  4. package/dist/_virtual/additionalItems2.js.map +1 -0
  5. package/dist/_virtual/additionalProperties.js +4 -0
  6. package/dist/_virtual/additionalProperties.js.map +1 -0
  7. package/dist/_virtual/additionalProperties2.js +4 -0
  8. package/dist/_virtual/additionalProperties2.js.map +1 -0
  9. package/dist/_virtual/ajv.js +1 -1
  10. package/dist/_virtual/ajv2.js +4 -0
  11. package/dist/_virtual/ajv2.js.map +1 -0
  12. package/dist/_virtual/ajv3.js +4 -0
  13. package/dist/_virtual/ajv3.js.map +1 -0
  14. package/dist/_virtual/allOf.js +4 -0
  15. package/dist/_virtual/allOf.js.map +1 -0
  16. package/dist/_virtual/allOf2.js +4 -0
  17. package/dist/_virtual/allOf2.js.map +1 -0
  18. package/dist/_virtual/anyOf.js +4 -0
  19. package/dist/_virtual/anyOf.js.map +1 -0
  20. package/dist/_virtual/anyOf2.js +4 -0
  21. package/dist/_virtual/anyOf2.js.map +1 -0
  22. package/dist/_virtual/applicability.js +4 -0
  23. package/dist/_virtual/applicability.js.map +1 -0
  24. package/dist/_virtual/applicability2.js +4 -0
  25. package/dist/_virtual/applicability2.js.map +1 -0
  26. package/dist/_virtual/boolSchema.js +4 -0
  27. package/dist/_virtual/boolSchema.js.map +1 -0
  28. package/dist/_virtual/boolSchema2.js +4 -0
  29. package/dist/_virtual/boolSchema2.js.map +1 -0
  30. package/dist/_virtual/code.js +4 -0
  31. package/dist/_virtual/code.js.map +1 -0
  32. package/dist/_virtual/code2.js +4 -0
  33. package/dist/_virtual/code2.js.map +1 -0
  34. package/dist/_virtual/code3.js +4 -0
  35. package/dist/_virtual/code3.js.map +1 -0
  36. package/dist/_virtual/code4.js +4 -0
  37. package/dist/_virtual/code4.js.map +1 -0
  38. package/dist/_virtual/const.js +4 -0
  39. package/dist/_virtual/const.js.map +1 -0
  40. package/dist/_virtual/const2.js +4 -0
  41. package/dist/_virtual/const2.js.map +1 -0
  42. package/dist/_virtual/contains.js +4 -0
  43. package/dist/_virtual/contains.js.map +1 -0
  44. package/dist/_virtual/contains2.js +4 -0
  45. package/dist/_virtual/contains2.js.map +1 -0
  46. package/dist/_virtual/core.js +4 -0
  47. package/dist/_virtual/core.js.map +1 -0
  48. package/dist/_virtual/core2.js +4 -0
  49. package/dist/_virtual/core2.js.map +1 -0
  50. package/dist/_virtual/dataType.js +4 -0
  51. package/dist/_virtual/dataType.js.map +1 -0
  52. package/dist/_virtual/dataType2.js +4 -0
  53. package/dist/_virtual/dataType2.js.map +1 -0
  54. package/dist/_virtual/defaults.js +4 -0
  55. package/dist/_virtual/defaults.js.map +1 -0
  56. package/dist/_virtual/defaults2.js +4 -0
  57. package/dist/_virtual/defaults2.js.map +1 -0
  58. package/dist/_virtual/dependencies.js +4 -0
  59. package/dist/_virtual/dependencies.js.map +1 -0
  60. package/dist/_virtual/dependencies2.js +4 -0
  61. package/dist/_virtual/dependencies2.js.map +1 -0
  62. package/dist/_virtual/draft7.js +4 -0
  63. package/dist/_virtual/draft7.js.map +1 -0
  64. package/dist/_virtual/draft72.js +4 -0
  65. package/dist/_virtual/draft72.js.map +1 -0
  66. package/dist/_virtual/enum.js +4 -0
  67. package/dist/_virtual/enum.js.map +1 -0
  68. package/dist/_virtual/enum2.js +4 -0
  69. package/dist/_virtual/enum2.js.map +1 -0
  70. package/dist/_virtual/equal.js +4 -0
  71. package/dist/_virtual/equal.js.map +1 -0
  72. package/dist/_virtual/equal2.js +4 -0
  73. package/dist/_virtual/equal2.js.map +1 -0
  74. package/dist/_virtual/errors.js +4 -0
  75. package/dist/_virtual/errors.js.map +1 -0
  76. package/dist/_virtual/errors2.js +4 -0
  77. package/dist/_virtual/errors2.js.map +1 -0
  78. package/dist/_virtual/format.js +4 -0
  79. package/dist/_virtual/format.js.map +1 -0
  80. package/dist/_virtual/format2.js +4 -0
  81. package/dist/_virtual/format2.js.map +1 -0
  82. package/dist/_virtual/formats.js +4 -0
  83. package/dist/_virtual/formats.js.map +1 -0
  84. package/dist/_virtual/id.js +4 -0
  85. package/dist/_virtual/id.js.map +1 -0
  86. package/dist/_virtual/id2.js +4 -0
  87. package/dist/_virtual/id2.js.map +1 -0
  88. package/dist/_virtual/if.js +4 -0
  89. package/dist/_virtual/if.js.map +1 -0
  90. package/dist/_virtual/if2.js +4 -0
  91. package/dist/_virtual/if2.js.map +1 -0
  92. package/dist/_virtual/index.js +6 -2
  93. package/dist/_virtual/index.js.map +1 -1
  94. package/dist/_virtual/index10.js +4 -0
  95. package/dist/_virtual/index10.js.map +1 -0
  96. package/dist/_virtual/index11.js +4 -0
  97. package/dist/_virtual/index11.js.map +1 -0
  98. package/dist/_virtual/index12.js +4 -0
  99. package/dist/_virtual/index12.js.map +1 -0
  100. package/dist/_virtual/index13.js +4 -0
  101. package/dist/_virtual/index13.js.map +1 -0
  102. package/dist/_virtual/index14.js +4 -0
  103. package/dist/_virtual/index14.js.map +1 -0
  104. package/dist/_virtual/index15.js +4 -0
  105. package/dist/_virtual/index15.js.map +1 -0
  106. package/dist/_virtual/index16.js +4 -0
  107. package/dist/_virtual/index16.js.map +1 -0
  108. package/dist/_virtual/index17.js +4 -0
  109. package/dist/_virtual/index17.js.map +1 -0
  110. package/dist/_virtual/index18.js +4 -0
  111. package/dist/_virtual/index18.js.map +1 -0
  112. package/dist/_virtual/index19.js +4 -0
  113. package/dist/_virtual/index19.js.map +1 -0
  114. package/dist/_virtual/index2.js +4 -0
  115. package/dist/_virtual/index2.js.map +1 -0
  116. package/dist/_virtual/index20.js +4 -0
  117. package/dist/_virtual/index20.js.map +1 -0
  118. package/dist/_virtual/index21.js +4 -0
  119. package/dist/_virtual/index21.js.map +1 -0
  120. package/dist/_virtual/index3.js +4 -0
  121. package/dist/_virtual/index3.js.map +1 -0
  122. package/dist/_virtual/index4.js +4 -0
  123. package/dist/_virtual/index4.js.map +1 -0
  124. package/dist/_virtual/index5.js +4 -0
  125. package/dist/_virtual/index5.js.map +1 -0
  126. package/dist/_virtual/index6.js +4 -0
  127. package/dist/_virtual/index6.js.map +1 -0
  128. package/dist/_virtual/index7.js +4 -0
  129. package/dist/_virtual/index7.js.map +1 -0
  130. package/dist/_virtual/index8.js +4 -0
  131. package/dist/_virtual/index8.js.map +1 -0
  132. package/dist/_virtual/index9.js +4 -0
  133. package/dist/_virtual/index9.js.map +1 -0
  134. package/dist/_virtual/items.js +4 -0
  135. package/dist/_virtual/items.js.map +1 -0
  136. package/dist/_virtual/items2.js +4 -0
  137. package/dist/_virtual/items2.js.map +1 -0
  138. package/dist/_virtual/items2020.js +4 -0
  139. package/dist/_virtual/items2020.js.map +1 -0
  140. package/dist/_virtual/items20202.js +4 -0
  141. package/dist/_virtual/items20202.js.map +1 -0
  142. package/dist/_virtual/keyword.js +4 -0
  143. package/dist/_virtual/keyword.js.map +1 -0
  144. package/dist/_virtual/keyword2.js +4 -0
  145. package/dist/_virtual/keyword2.js.map +1 -0
  146. package/dist/_virtual/limit.js +4 -0
  147. package/dist/_virtual/limit.js.map +1 -0
  148. package/dist/_virtual/limitItems.js +4 -0
  149. package/dist/_virtual/limitItems.js.map +1 -0
  150. package/dist/_virtual/limitItems2.js +4 -0
  151. package/dist/_virtual/limitItems2.js.map +1 -0
  152. package/dist/_virtual/limitLength.js +4 -0
  153. package/dist/_virtual/limitLength.js.map +1 -0
  154. package/dist/_virtual/limitLength2.js +4 -0
  155. package/dist/_virtual/limitLength2.js.map +1 -0
  156. package/dist/_virtual/limitNumber.js +4 -0
  157. package/dist/_virtual/limitNumber.js.map +1 -0
  158. package/dist/_virtual/limitNumber2.js +4 -0
  159. package/dist/_virtual/limitNumber2.js.map +1 -0
  160. package/dist/_virtual/limitProperties.js +4 -0
  161. package/dist/_virtual/limitProperties.js.map +1 -0
  162. package/dist/_virtual/limitProperties2.js +4 -0
  163. package/dist/_virtual/limitProperties2.js.map +1 -0
  164. package/dist/_virtual/metadata.js +4 -0
  165. package/dist/_virtual/metadata.js.map +1 -0
  166. package/dist/_virtual/metadata2.js +4 -0
  167. package/dist/_virtual/metadata2.js.map +1 -0
  168. package/dist/_virtual/multipleOf.js +4 -0
  169. package/dist/_virtual/multipleOf.js.map +1 -0
  170. package/dist/_virtual/multipleOf2.js +4 -0
  171. package/dist/_virtual/multipleOf2.js.map +1 -0
  172. package/dist/_virtual/names.js +4 -0
  173. package/dist/_virtual/names.js.map +1 -0
  174. package/dist/_virtual/names2.js +4 -0
  175. package/dist/_virtual/names2.js.map +1 -0
  176. package/dist/_virtual/not.js +4 -0
  177. package/dist/_virtual/not.js.map +1 -0
  178. package/dist/_virtual/not2.js +4 -0
  179. package/dist/_virtual/not2.js.map +1 -0
  180. package/dist/_virtual/oneOf.js +4 -0
  181. package/dist/_virtual/oneOf.js.map +1 -0
  182. package/dist/_virtual/oneOf2.js +4 -0
  183. package/dist/_virtual/oneOf2.js.map +1 -0
  184. package/dist/_virtual/pattern.js +4 -0
  185. package/dist/_virtual/pattern.js.map +1 -0
  186. package/dist/_virtual/pattern2.js +4 -0
  187. package/dist/_virtual/pattern2.js.map +1 -0
  188. package/dist/_virtual/patternProperties.js +4 -0
  189. package/dist/_virtual/patternProperties.js.map +1 -0
  190. package/dist/_virtual/patternProperties2.js +4 -0
  191. package/dist/_virtual/patternProperties2.js.map +1 -0
  192. package/dist/_virtual/prefixItems.js +4 -0
  193. package/dist/_virtual/prefixItems.js.map +1 -0
  194. package/dist/_virtual/prefixItems2.js +4 -0
  195. package/dist/_virtual/prefixItems2.js.map +1 -0
  196. package/dist/_virtual/properties.js +4 -0
  197. package/dist/_virtual/properties.js.map +1 -0
  198. package/dist/_virtual/properties2.js +4 -0
  199. package/dist/_virtual/properties2.js.map +1 -0
  200. package/dist/_virtual/propertyNames.js +4 -0
  201. package/dist/_virtual/propertyNames.js.map +1 -0
  202. package/dist/_virtual/propertyNames2.js +4 -0
  203. package/dist/_virtual/propertyNames2.js.map +1 -0
  204. package/dist/_virtual/ref.js +4 -0
  205. package/dist/_virtual/ref.js.map +1 -0
  206. package/dist/_virtual/ref2.js +4 -0
  207. package/dist/_virtual/ref2.js.map +1 -0
  208. package/dist/_virtual/ref_error.js +4 -0
  209. package/dist/_virtual/ref_error.js.map +1 -0
  210. package/dist/_virtual/ref_error2.js +4 -0
  211. package/dist/_virtual/ref_error2.js.map +1 -0
  212. package/dist/_virtual/required.js +4 -0
  213. package/dist/_virtual/required.js.map +1 -0
  214. package/dist/_virtual/required2.js +4 -0
  215. package/dist/_virtual/required2.js.map +1 -0
  216. package/dist/_virtual/resolve.js +4 -0
  217. package/dist/_virtual/resolve.js.map +1 -0
  218. package/dist/_virtual/resolve2.js +4 -0
  219. package/dist/_virtual/resolve2.js.map +1 -0
  220. package/dist/_virtual/rules.js +4 -0
  221. package/dist/_virtual/rules.js.map +1 -0
  222. package/dist/_virtual/rules2.js +4 -0
  223. package/dist/_virtual/rules2.js.map +1 -0
  224. package/dist/_virtual/scope.js +4 -0
  225. package/dist/_virtual/scope.js.map +1 -0
  226. package/dist/_virtual/scope2.js +4 -0
  227. package/dist/_virtual/scope2.js.map +1 -0
  228. package/dist/_virtual/subschema.js +4 -0
  229. package/dist/_virtual/subschema.js.map +1 -0
  230. package/dist/_virtual/subschema2.js +4 -0
  231. package/dist/_virtual/subschema2.js.map +1 -0
  232. package/dist/_virtual/thenElse.js +4 -0
  233. package/dist/_virtual/thenElse.js.map +1 -0
  234. package/dist/_virtual/thenElse2.js +4 -0
  235. package/dist/_virtual/thenElse2.js.map +1 -0
  236. package/dist/_virtual/types.js +4 -0
  237. package/dist/_virtual/types.js.map +1 -0
  238. package/dist/_virtual/types2.js +4 -0
  239. package/dist/_virtual/types2.js.map +1 -0
  240. package/dist/_virtual/ucs2length.js +4 -0
  241. package/dist/_virtual/ucs2length.js.map +1 -0
  242. package/dist/_virtual/ucs2length2.js +4 -0
  243. package/dist/_virtual/ucs2length2.js.map +1 -0
  244. package/dist/_virtual/uniqueItems.js +4 -0
  245. package/dist/_virtual/uniqueItems.js.map +1 -0
  246. package/dist/_virtual/uniqueItems2.js +4 -0
  247. package/dist/_virtual/uniqueItems2.js.map +1 -0
  248. package/dist/_virtual/uri.js +4 -0
  249. package/dist/_virtual/uri.js.map +1 -0
  250. package/dist/_virtual/uri2.js +4 -0
  251. package/dist/_virtual/uri2.js.map +1 -0
  252. package/dist/_virtual/util.js +4 -0
  253. package/dist/_virtual/util.js.map +1 -0
  254. package/dist/_virtual/util2.js +4 -0
  255. package/dist/_virtual/util2.js.map +1 -0
  256. package/dist/_virtual/validation_error.js +4 -0
  257. package/dist/_virtual/validation_error.js.map +1 -0
  258. package/dist/_virtual/validation_error2.js +4 -0
  259. package/dist/_virtual/validation_error2.js.map +1 -0
  260. package/dist/atxpFetcher.d.ts.map +1 -1
  261. package/dist/atxpFetcher.js +19 -3
  262. package/dist/atxpFetcher.js.map +1 -1
  263. package/dist/index.cjs +20003 -11644
  264. package/dist/index.cjs.map +1 -1
  265. package/dist/index.d.ts +3 -1
  266. package/dist/index.js +20003 -11644
  267. package/dist/index.js.map +1 -1
  268. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js +277 -202
  269. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map +1 -1
  270. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +399 -65
  271. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -1
  272. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js +195 -93
  273. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js.map +1 -1
  274. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js +187 -0
  275. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js.map +1 -0
  276. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js +60 -0
  277. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js.map +1 -0
  278. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js +18 -0
  279. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js.map +1 -0
  280. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js +25 -17
  281. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js.map +1 -1
  282. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +85 -0
  283. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  284. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +30 -0
  285. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  286. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js +3 -3
  287. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js.map +1 -1
  288. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js +129 -123
  289. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map +1 -1
  290. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +785 -114
  291. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -1
  292. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js +41 -0
  293. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js.map +1 -0
  294. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1207 -513
  295. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -1
  296. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +90 -0
  297. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  298. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/ajv.js +71 -0
  299. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/ajv.js.map +1 -0
  300. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/code.js +169 -0
  301. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  302. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/index.js +712 -0
  303. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  304. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/scope.js +157 -0
  305. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  306. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/errors.js +139 -0
  307. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/errors.js.map +1 -0
  308. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/index.js +259 -0
  309. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/index.js.map +1 -0
  310. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/names.js +40 -0
  311. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/names.js.map +1 -0
  312. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/ref_error.js +24 -0
  313. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  314. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/resolve.js +169 -0
  315. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  316. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/rules.js +37 -0
  317. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/rules.js.map +1 -0
  318. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/util.js +191 -0
  319. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/util.js.map +1 -0
  320. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/applicability.js +30 -0
  321. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  322. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/boolSchema.js +64 -0
  323. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  324. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/dataType.js +219 -0
  325. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  326. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/defaults.js +48 -0
  327. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  328. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/index.js +541 -0
  329. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  330. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/keyword.js +139 -0
  331. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  332. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/subschema.js +94 -0
  333. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  334. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/core.js +642 -0
  335. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/core.js.map +1 -0
  336. package/dist/node_modules/{ajv/lib → @modelcontextprotocol/sdk/node_modules/ajv/dist}/refs/data.json.js +3 -5
  337. package/dist/node_modules/{ajv/lib → @modelcontextprotocol/sdk/node_modules/ajv/dist}/refs/data.json.js.map +1 -1
  338. package/dist/node_modules/{ajv/lib → @modelcontextprotocol/sdk/node_modules/ajv/dist}/refs/json-schema-draft-07.json.js +2 -2
  339. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/equal.js +19 -0
  340. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  341. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/ucs2length.js +35 -0
  342. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  343. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/uri.js +18 -0
  344. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  345. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/validation_error.js +22 -0
  346. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  347. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +62 -0
  348. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  349. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +121 -0
  350. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  351. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/allOf.js +35 -0
  352. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  353. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +24 -0
  354. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  355. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/contains.js +108 -0
  356. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  357. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +101 -0
  358. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  359. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/if.js +79 -0
  360. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  361. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/index.js +71 -0
  362. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  363. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items.js +66 -0
  364. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  365. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items2020.js +45 -0
  366. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  367. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/not.js +38 -0
  368. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  369. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +73 -0
  370. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  371. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +89 -0
  372. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  373. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +24 -0
  374. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  375. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/properties.js +69 -0
  376. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  377. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +51 -0
  378. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  379. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +25 -0
  380. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  381. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/code.js +145 -0
  382. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  383. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/id.js +21 -0
  384. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  385. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/index.js +29 -0
  386. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  387. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/ref.js +139 -0
  388. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  389. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/index.js +120 -0
  390. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  391. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/types.js +20 -0
  392. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  393. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/draft7.js +33 -0
  394. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  395. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/format.js +104 -0
  396. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  397. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/index.js +18 -0
  398. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  399. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/metadata.js +29 -0
  400. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  401. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/const.js +39 -0
  402. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  403. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/enum.js +62 -0
  404. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  405. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/index.js +54 -0
  406. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  407. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitItems.js +36 -0
  408. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  409. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitLength.js +41 -0
  410. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  411. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +39 -0
  412. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  413. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +36 -0
  414. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  415. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +38 -0
  416. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  417. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/pattern.js +37 -0
  418. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  419. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/required.js +93 -0
  420. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  421. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +79 -0
  422. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  423. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse/index.js +104 -0
  424. package/dist/node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse/index.js.map +1 -0
  425. package/dist/node_modules/ajv-formats/dist/formats.js +221 -0
  426. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  427. package/dist/node_modules/ajv-formats/dist/index.js +53 -0
  428. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  429. package/dist/node_modules/ajv-formats/dist/limit.js +84 -0
  430. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  431. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/ajv.js +71 -0
  432. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/ajv.js.map +1 -0
  433. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/code.js +169 -0
  434. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  435. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/index.js +712 -0
  436. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  437. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/scope.js +157 -0
  438. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  439. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/errors.js +139 -0
  440. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/errors.js.map +1 -0
  441. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/index.js +259 -0
  442. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/index.js.map +1 -0
  443. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/names.js +40 -0
  444. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/names.js.map +1 -0
  445. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/ref_error.js +24 -0
  446. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  447. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/resolve.js +169 -0
  448. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  449. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/rules.js +37 -0
  450. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/rules.js.map +1 -0
  451. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/util.js +191 -0
  452. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/util.js.map +1 -0
  453. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/applicability.js +30 -0
  454. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  455. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/boolSchema.js +64 -0
  456. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  457. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/dataType.js +219 -0
  458. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  459. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/defaults.js +48 -0
  460. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  461. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/index.js +541 -0
  462. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  463. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/keyword.js +139 -0
  464. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  465. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/subschema.js +94 -0
  466. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  467. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/core.js +642 -0
  468. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/core.js.map +1 -0
  469. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/refs/data.json.js +31 -0
  470. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  471. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +254 -0
  472. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  473. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/equal.js +19 -0
  474. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  475. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/ucs2length.js +35 -0
  476. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  477. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/uri.js +18 -0
  478. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  479. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/validation_error.js +22 -0
  480. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  481. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +62 -0
  482. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  483. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +121 -0
  484. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  485. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/allOf.js +35 -0
  486. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  487. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +24 -0
  488. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  489. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/contains.js +108 -0
  490. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  491. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +101 -0
  492. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  493. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/if.js +79 -0
  494. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  495. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/index.js +71 -0
  496. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  497. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items.js +66 -0
  498. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  499. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items2020.js +45 -0
  500. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  501. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/not.js +38 -0
  502. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  503. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +73 -0
  504. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  505. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +89 -0
  506. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  507. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +24 -0
  508. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  509. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/properties.js +69 -0
  510. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  511. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +51 -0
  512. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  513. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +25 -0
  514. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  515. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/code.js +145 -0
  516. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  517. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/id.js +21 -0
  518. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  519. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/index.js +29 -0
  520. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  521. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/ref.js +139 -0
  522. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  523. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/index.js +120 -0
  524. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  525. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/types.js +20 -0
  526. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  527. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/draft7.js +33 -0
  528. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  529. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/format.js +104 -0
  530. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  531. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/index.js +18 -0
  532. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  533. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/metadata.js +29 -0
  534. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  535. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/const.js +39 -0
  536. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  537. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/enum.js +62 -0
  538. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  539. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/index.js +54 -0
  540. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  541. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitItems.js +36 -0
  542. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  543. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitLength.js +41 -0
  544. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  545. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +39 -0
  546. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  547. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +36 -0
  548. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  549. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +38 -0
  550. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  551. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/pattern.js +37 -0
  552. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  553. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/required.js +93 -0
  554. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  555. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +79 -0
  556. package/dist/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  557. package/dist/node_modules/{json-schema-traverse → ajv-formats/node_modules/json-schema-traverse}/index.js +6 -2
  558. package/dist/node_modules/ajv-formats/node_modules/json-schema-traverse/index.js.map +1 -0
  559. package/dist/node_modules/fast-uri/index.js +353 -0
  560. package/dist/node_modules/fast-uri/index.js.map +1 -0
  561. package/dist/node_modules/fast-uri/lib/schemes.js +279 -0
  562. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  563. package/dist/node_modules/fast-uri/lib/utils.js +345 -0
  564. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  565. package/dist/node_modules/pkce-challenge/dist/index.browser.js +8 -5
  566. package/dist/node_modules/pkce-challenge/dist/index.browser.js.map +1 -1
  567. package/dist/node_modules/zod/v4/classic/coerce.js +9 -0
  568. package/dist/node_modules/zod/v4/classic/coerce.js.map +1 -0
  569. package/dist/node_modules/zod/v4/classic/compat.js +8 -0
  570. package/dist/node_modules/zod/v4/classic/compat.js.map +1 -0
  571. package/dist/node_modules/zod/v4/classic/errors.js +44 -0
  572. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  573. package/dist/node_modules/zod/v4/classic/iso.js +36 -0
  574. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  575. package/dist/node_modules/zod/v4/classic/parse.js +10 -0
  576. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  577. package/dist/node_modules/zod/v4/classic/schemas.js +674 -0
  578. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  579. package/dist/node_modules/zod/v4/core/api.js +468 -0
  580. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  581. package/dist/node_modules/zod/v4/core/checks.js +413 -0
  582. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  583. package/dist/node_modules/zod/v4/core/core.js +60 -0
  584. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  585. package/dist/node_modules/zod/v4/core/doc.js +38 -0
  586. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  587. package/dist/node_modules/zod/v4/core/errors.js +86 -0
  588. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  589. package/dist/node_modules/zod/v4/core/parse.js +59 -0
  590. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  591. package/dist/node_modules/zod/v4/core/regexes.js +81 -0
  592. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  593. package/dist/node_modules/zod/v4/core/registries.js +52 -0
  594. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  595. package/dist/node_modules/zod/v4/core/schemas.js +1328 -0
  596. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  597. package/dist/node_modules/zod/v4/core/util.js +335 -0
  598. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  599. package/dist/node_modules/zod/v4/core/versions.js +8 -0
  600. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  601. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
  602. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  603. package/dist/oAuth.d.ts +3 -1
  604. package/dist/oAuth.d.ts.map +1 -1
  605. package/dist/oAuth.js +7 -1
  606. package/dist/oAuth.js.map +1 -1
  607. package/package.json +9 -9
  608. package/dist/_virtual/cache.js +0 -4
  609. package/dist/_virtual/cache.js.map +0 -1
  610. package/dist/_virtual/uri.all.js +0 -4
  611. package/dist/_virtual/uri.all.js.map +0 -1
  612. package/dist/atxpClient.d.ts +0 -12
  613. package/dist/atxpLocalAccount.d.ts +0 -50
  614. package/dist/clientTestHelpers.d.ts +0 -6
  615. package/dist/destinationMakers/atxpDestinationMaker.d.ts +0 -15
  616. package/dist/destinationMakers/index.d.ts +0 -9
  617. package/dist/destinationMakers/passthroughDestinationMaker.d.ts +0 -8
  618. package/dist/errors.d.ts +0 -117
  619. package/dist/node_modules/ajv/lib/ajv.js +0 -531
  620. package/dist/node_modules/ajv/lib/ajv.js.map +0 -1
  621. package/dist/node_modules/ajv/lib/cache.js +0 -37
  622. package/dist/node_modules/ajv/lib/cache.js.map +0 -1
  623. package/dist/node_modules/ajv/lib/compile/async.js +0 -102
  624. package/dist/node_modules/ajv/lib/compile/async.js.map +0 -1
  625. package/dist/node_modules/ajv/lib/compile/error_classes.js +0 -46
  626. package/dist/node_modules/ajv/lib/compile/error_classes.js.map +0 -1
  627. package/dist/node_modules/ajv/lib/compile/formats.js +0 -154
  628. package/dist/node_modules/ajv/lib/compile/formats.js.map +0 -1
  629. package/dist/node_modules/ajv/lib/compile/index.js +0 -404
  630. package/dist/node_modules/ajv/lib/compile/index.js.map +0 -1
  631. package/dist/node_modules/ajv/lib/compile/resolve.js +0 -286
  632. package/dist/node_modules/ajv/lib/compile/resolve.js.map +0 -1
  633. package/dist/node_modules/ajv/lib/compile/rules.js +0 -79
  634. package/dist/node_modules/ajv/lib/compile/rules.js.map +0 -1
  635. package/dist/node_modules/ajv/lib/compile/schema_obj.js +0 -21
  636. package/dist/node_modules/ajv/lib/compile/schema_obj.js.map +0 -1
  637. package/dist/node_modules/ajv/lib/compile/ucs2length.js +0 -30
  638. package/dist/node_modules/ajv/lib/compile/ucs2length.js.map +0 -1
  639. package/dist/node_modules/ajv/lib/compile/util.js +0 -252
  640. package/dist/node_modules/ajv/lib/compile/util.js.map +0 -1
  641. package/dist/node_modules/ajv/lib/data.js +0 -59
  642. package/dist/node_modules/ajv/lib/data.js.map +0 -1
  643. package/dist/node_modules/ajv/lib/definition_schema.js +0 -49
  644. package/dist/node_modules/ajv/lib/definition_schema.js.map +0 -1
  645. package/dist/node_modules/ajv/lib/dotjs/_limit.js +0 -173
  646. package/dist/node_modules/ajv/lib/dotjs/_limit.js.map +0 -1
  647. package/dist/node_modules/ajv/lib/dotjs/_limitItems.js +0 -90
  648. package/dist/node_modules/ajv/lib/dotjs/_limitItems.js.map +0 -1
  649. package/dist/node_modules/ajv/lib/dotjs/_limitLength.js +0 -95
  650. package/dist/node_modules/ajv/lib/dotjs/_limitLength.js.map +0 -1
  651. package/dist/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -90
  652. package/dist/node_modules/ajv/lib/dotjs/_limitProperties.js.map +0 -1
  653. package/dist/node_modules/ajv/lib/dotjs/allOf.js +0 -52
  654. package/dist/node_modules/ajv/lib/dotjs/allOf.js.map +0 -1
  655. package/dist/node_modules/ajv/lib/dotjs/anyOf.js +0 -83
  656. package/dist/node_modules/ajv/lib/dotjs/anyOf.js.map +0 -1
  657. package/dist/node_modules/ajv/lib/dotjs/comment.js +0 -24
  658. package/dist/node_modules/ajv/lib/dotjs/comment.js.map +0 -1
  659. package/dist/node_modules/ajv/lib/dotjs/const.js +0 -62
  660. package/dist/node_modules/ajv/lib/dotjs/const.js.map +0 -1
  661. package/dist/node_modules/ajv/lib/dotjs/contains.js +0 -91
  662. package/dist/node_modules/ajv/lib/dotjs/contains.js.map +0 -1
  663. package/dist/node_modules/ajv/lib/dotjs/custom.js +0 -238
  664. package/dist/node_modules/ajv/lib/dotjs/custom.js.map +0 -1
  665. package/dist/node_modules/ajv/lib/dotjs/dependencies.js +0 -178
  666. package/dist/node_modules/ajv/lib/dotjs/dependencies.js.map +0 -1
  667. package/dist/node_modules/ajv/lib/dotjs/enum.js +0 -72
  668. package/dist/node_modules/ajv/lib/dotjs/enum.js.map +0 -1
  669. package/dist/node_modules/ajv/lib/dotjs/format.js +0 -160
  670. package/dist/node_modules/ajv/lib/dotjs/format.js.map +0 -1
  671. package/dist/node_modules/ajv/lib/dotjs/if.js +0 -113
  672. package/dist/node_modules/ajv/lib/dotjs/if.js.map +0 -1
  673. package/dist/node_modules/ajv/lib/dotjs/index.js +0 -68
  674. package/dist/node_modules/ajv/lib/dotjs/index.js.map +0 -1
  675. package/dist/node_modules/ajv/lib/dotjs/items.js +0 -150
  676. package/dist/node_modules/ajv/lib/dotjs/items.js.map +0 -1
  677. package/dist/node_modules/ajv/lib/dotjs/multipleOf.js +0 -90
  678. package/dist/node_modules/ajv/lib/dotjs/multipleOf.js.map +0 -1
  679. package/dist/node_modules/ajv/lib/dotjs/not.js +0 -94
  680. package/dist/node_modules/ajv/lib/dotjs/not.js.map +0 -1
  681. package/dist/node_modules/ajv/lib/dotjs/oneOf.js +0 -83
  682. package/dist/node_modules/ajv/lib/dotjs/oneOf.js.map +0 -1
  683. package/dist/node_modules/ajv/lib/dotjs/pattern.js +0 -85
  684. package/dist/node_modules/ajv/lib/dotjs/pattern.js.map +0 -1
  685. package/dist/node_modules/ajv/lib/dotjs/properties.js +0 -345
  686. package/dist/node_modules/ajv/lib/dotjs/properties.js.map +0 -1
  687. package/dist/node_modules/ajv/lib/dotjs/propertyNames.js +0 -91
  688. package/dist/node_modules/ajv/lib/dotjs/propertyNames.js.map +0 -1
  689. package/dist/node_modules/ajv/lib/dotjs/ref.js +0 -134
  690. package/dist/node_modules/ajv/lib/dotjs/ref.js.map +0 -1
  691. package/dist/node_modules/ajv/lib/dotjs/required.js +0 -276
  692. package/dist/node_modules/ajv/lib/dotjs/required.js.map +0 -1
  693. package/dist/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -96
  694. package/dist/node_modules/ajv/lib/dotjs/uniqueItems.js.map +0 -1
  695. package/dist/node_modules/ajv/lib/dotjs/validate.js +0 -492
  696. package/dist/node_modules/ajv/lib/dotjs/validate.js.map +0 -1
  697. package/dist/node_modules/ajv/lib/keyword.js +0 -159
  698. package/dist/node_modules/ajv/lib/keyword.js.map +0 -1
  699. package/dist/node_modules/fast-json-stable-stringify/index.js +0 -69
  700. package/dist/node_modules/fast-json-stable-stringify/index.js.map +0 -1
  701. package/dist/node_modules/json-schema-traverse/index.js.map +0 -1
  702. package/dist/node_modules/uri-js/dist/es5/uri.all.js +0 -1418
  703. package/dist/node_modules/uri-js/dist/es5/uri.all.js.map +0 -1
  704. package/dist/node_modules/zod/v3/ZodError.js +0 -133
  705. package/dist/node_modules/zod/v3/ZodError.js.map +0 -1
  706. package/dist/node_modules/zod/v3/errors.js +0 -9
  707. package/dist/node_modules/zod/v3/errors.js.map +0 -1
  708. package/dist/node_modules/zod/v3/helpers/errorUtil.js +0 -9
  709. package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +0 -1
  710. package/dist/node_modules/zod/v3/helpers/parseUtil.js +0 -112
  711. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +0 -1
  712. package/dist/node_modules/zod/v3/helpers/util.js +0 -136
  713. package/dist/node_modules/zod/v3/helpers/util.js.map +0 -1
  714. package/dist/node_modules/zod/v3/locales/en.js +0 -112
  715. package/dist/node_modules/zod/v3/locales/en.js.map +0 -1
  716. package/dist/node_modules/zod/v3/types.js +0 -3491
  717. package/dist/node_modules/zod/v3/types.js.map +0 -1
  718. package/dist/polygonConstants.d.ts +0 -53
  719. package/dist/setup.expo.d.ts +0 -2
  720. package/dist/types.d.ts +0 -75
  721. package/dist/worldConstants.d.ts +0 -53
  722. /package/dist/node_modules/{ajv/lib → @modelcontextprotocol/sdk/node_modules/ajv/dist}/refs/json-schema-draft-07.json.js.map +0 -0
@@ -1,4 +1,7 @@
1
- import { CancelledNotificationSchema, ProgressNotificationSchema, PingRequestSchema, McpError, ErrorCode, isJSONRPCResponse, isJSONRPCError, isJSONRPCRequest, isJSONRPCNotification } from '../types.js';
1
+ import { safeParse } from '../server/zod-compat.js';
2
+ import { CancelledNotificationSchema, ProgressNotificationSchema, PingRequestSchema, GetTaskRequestSchema, McpError, ErrorCode, GetTaskPayloadRequestSchema, ListTasksRequestSchema, CancelTaskRequestSchema, isJSONRPCResultResponse, isJSONRPCErrorResponse, isJSONRPCRequest, isJSONRPCNotification, RELATED_TASK_META_KEY, isTaskAugmentedRequestParams, CreateTaskResultSchema, GetTaskResultSchema, ListTasksResultSchema, CancelTaskResultSchema, TaskStatusNotificationSchema } from '../types.js';
3
+ import { isTerminal } from '../experimental/tasks/interfaces.js';
4
+ import { getMethodLiteral, parseWithCompat } from '../server/zod-json-schema-compat.js';
2
5
 
3
6
  /**
4
7
  * The default request timeout, in miliseconds.
@@ -19,16 +22,158 @@ class Protocol {
19
22
  this._progressHandlers = new Map();
20
23
  this._timeoutInfo = new Map();
21
24
  this._pendingDebouncedNotifications = new Set();
22
- this.setNotificationHandler(CancelledNotificationSchema, (notification) => {
23
- const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);
24
- controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);
25
+ // Maps task IDs to progress tokens to keep handlers alive after CreateTaskResult
26
+ this._taskProgressTokens = new Map();
27
+ this._requestResolvers = new Map();
28
+ this.setNotificationHandler(CancelledNotificationSchema, notification => {
29
+ this._oncancel(notification);
25
30
  });
26
- this.setNotificationHandler(ProgressNotificationSchema, (notification) => {
31
+ this.setNotificationHandler(ProgressNotificationSchema, notification => {
27
32
  this._onprogress(notification);
28
33
  });
29
34
  this.setRequestHandler(PingRequestSchema,
30
35
  // Automatic pong by default.
31
- (_request) => ({}));
36
+ _request => ({}));
37
+ // Install task handlers if TaskStore is provided
38
+ this._taskStore = _options?.taskStore;
39
+ this._taskMessageQueue = _options?.taskMessageQueue;
40
+ if (this._taskStore) {
41
+ this.setRequestHandler(GetTaskRequestSchema, async (request, extra) => {
42
+ const task = await this._taskStore.getTask(request.params.taskId, extra.sessionId);
43
+ if (!task) {
44
+ throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');
45
+ }
46
+ // Per spec: tasks/get responses SHALL NOT include related-task metadata
47
+ // as the taskId parameter is the source of truth
48
+ // @ts-expect-error SendResultT cannot contain GetTaskResult, but we include it in our derived types everywhere else
49
+ return {
50
+ ...task
51
+ };
52
+ });
53
+ this.setRequestHandler(GetTaskPayloadRequestSchema, async (request, extra) => {
54
+ const handleTaskResult = async () => {
55
+ const taskId = request.params.taskId;
56
+ // Deliver queued messages
57
+ if (this._taskMessageQueue) {
58
+ let queuedMessage;
59
+ while ((queuedMessage = await this._taskMessageQueue.dequeue(taskId, extra.sessionId))) {
60
+ // Handle response and error messages by routing them to the appropriate resolver
61
+ if (queuedMessage.type === 'response' || queuedMessage.type === 'error') {
62
+ const message = queuedMessage.message;
63
+ const requestId = message.id;
64
+ // Lookup resolver in _requestResolvers map
65
+ const resolver = this._requestResolvers.get(requestId);
66
+ if (resolver) {
67
+ // Remove resolver from map after invocation
68
+ this._requestResolvers.delete(requestId);
69
+ // Invoke resolver with response or error
70
+ if (queuedMessage.type === 'response') {
71
+ resolver(message);
72
+ }
73
+ else {
74
+ // Convert JSONRPCError to McpError
75
+ const errorMessage = message;
76
+ const error = new McpError(errorMessage.error.code, errorMessage.error.message, errorMessage.error.data);
77
+ resolver(error);
78
+ }
79
+ }
80
+ else {
81
+ // Handle missing resolver gracefully with error logging
82
+ const messageType = queuedMessage.type === 'response' ? 'Response' : 'Error';
83
+ this._onerror(new Error(`${messageType} handler missing for request ${requestId}`));
84
+ }
85
+ // Continue to next message
86
+ continue;
87
+ }
88
+ // Send the message on the response stream by passing the relatedRequestId
89
+ // This tells the transport to write the message to the tasks/result response stream
90
+ await this._transport?.send(queuedMessage.message, { relatedRequestId: extra.requestId });
91
+ }
92
+ }
93
+ // Now check task status
94
+ const task = await this._taskStore.getTask(taskId, extra.sessionId);
95
+ if (!task) {
96
+ throw new McpError(ErrorCode.InvalidParams, `Task not found: ${taskId}`);
97
+ }
98
+ // Block if task is not terminal (we've already delivered all queued messages above)
99
+ if (!isTerminal(task.status)) {
100
+ // Wait for status change or new messages
101
+ await this._waitForTaskUpdate(taskId, extra.signal);
102
+ // After waking up, recursively call to deliver any new messages or result
103
+ return await handleTaskResult();
104
+ }
105
+ // If task is terminal, return the result
106
+ if (isTerminal(task.status)) {
107
+ const result = await this._taskStore.getTaskResult(taskId, extra.sessionId);
108
+ this._clearTaskQueue(taskId);
109
+ return {
110
+ ...result,
111
+ _meta: {
112
+ ...result._meta,
113
+ [RELATED_TASK_META_KEY]: {
114
+ taskId: taskId
115
+ }
116
+ }
117
+ };
118
+ }
119
+ return await handleTaskResult();
120
+ };
121
+ return await handleTaskResult();
122
+ });
123
+ this.setRequestHandler(ListTasksRequestSchema, async (request, extra) => {
124
+ try {
125
+ const { tasks, nextCursor } = await this._taskStore.listTasks(request.params?.cursor, extra.sessionId);
126
+ // @ts-expect-error SendResultT cannot contain ListTasksResult, but we include it in our derived types everywhere else
127
+ return {
128
+ tasks,
129
+ nextCursor,
130
+ _meta: {}
131
+ };
132
+ }
133
+ catch (error) {
134
+ throw new McpError(ErrorCode.InvalidParams, `Failed to list tasks: ${error instanceof Error ? error.message : String(error)}`);
135
+ }
136
+ });
137
+ this.setRequestHandler(CancelTaskRequestSchema, async (request, extra) => {
138
+ try {
139
+ // Get the current task to check if it's in a terminal state, in case the implementation is not atomic
140
+ const task = await this._taskStore.getTask(request.params.taskId, extra.sessionId);
141
+ if (!task) {
142
+ throw new McpError(ErrorCode.InvalidParams, `Task not found: ${request.params.taskId}`);
143
+ }
144
+ // Reject cancellation of terminal tasks
145
+ if (isTerminal(task.status)) {
146
+ throw new McpError(ErrorCode.InvalidParams, `Cannot cancel task in terminal status: ${task.status}`);
147
+ }
148
+ await this._taskStore.updateTaskStatus(request.params.taskId, 'cancelled', 'Client cancelled task execution.', extra.sessionId);
149
+ this._clearTaskQueue(request.params.taskId);
150
+ const cancelledTask = await this._taskStore.getTask(request.params.taskId, extra.sessionId);
151
+ if (!cancelledTask) {
152
+ // Task was deleted during cancellation (e.g., cleanup happened)
153
+ throw new McpError(ErrorCode.InvalidParams, `Task not found after cancellation: ${request.params.taskId}`);
154
+ }
155
+ return {
156
+ _meta: {},
157
+ ...cancelledTask
158
+ };
159
+ }
160
+ catch (error) {
161
+ // Re-throw McpError as-is
162
+ if (error instanceof McpError) {
163
+ throw error;
164
+ }
165
+ throw new McpError(ErrorCode.InvalidRequest, `Failed to cancel task: ${error instanceof Error ? error.message : String(error)}`);
166
+ }
167
+ });
168
+ }
169
+ }
170
+ async _oncancel(notification) {
171
+ if (!notification.params.requestId) {
172
+ return;
173
+ }
174
+ // Handle request cancellation
175
+ const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);
176
+ controller?.abort(notification.params.reason);
32
177
  }
33
178
  _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {
34
179
  this._timeoutInfo.set(messageId, {
@@ -47,7 +192,10 @@ class Protocol {
47
192
  const totalElapsed = Date.now() - info.startTime;
48
193
  if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {
49
194
  this._timeoutInfo.delete(messageId);
50
- throw new McpError(ErrorCode.RequestTimeout, "Maximum total timeout exceeded", { maxTotalTimeout: info.maxTotalTimeout, totalElapsed });
195
+ throw McpError.fromError(ErrorCode.RequestTimeout, 'Maximum total timeout exceeded', {
196
+ maxTotalTimeout: info.maxTotalTimeout,
197
+ totalElapsed
198
+ });
51
199
  }
52
200
  clearTimeout(info.timeoutId);
53
201
  info.timeoutId = setTimeout(info.onTimeout, info.timeout);
@@ -66,22 +214,21 @@ class Protocol {
66
214
  * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
67
215
  */
68
216
  async connect(transport) {
69
- var _a, _b, _c;
70
217
  this._transport = transport;
71
- const _onclose = (_a = this.transport) === null || _a === void 0 ? void 0 : _a.onclose;
218
+ const _onclose = this.transport?.onclose;
72
219
  this._transport.onclose = () => {
73
- _onclose === null || _onclose === void 0 ? void 0 : _onclose();
220
+ _onclose?.();
74
221
  this._onclose();
75
222
  };
76
- const _onerror = (_b = this.transport) === null || _b === void 0 ? void 0 : _b.onerror;
223
+ const _onerror = this.transport?.onerror;
77
224
  this._transport.onerror = (error) => {
78
- _onerror === null || _onerror === void 0 ? void 0 : _onerror(error);
225
+ _onerror?.(error);
79
226
  this._onerror(error);
80
227
  };
81
- const _onmessage = (_c = this._transport) === null || _c === void 0 ? void 0 : _c.onmessage;
228
+ const _onmessage = this._transport?.onmessage;
82
229
  this._transport.onmessage = (message, extra) => {
83
- _onmessage === null || _onmessage === void 0 ? void 0 : _onmessage(message, extra);
84
- if (isJSONRPCResponse(message) || isJSONRPCError(message)) {
230
+ _onmessage?.(message, extra);
231
+ if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
85
232
  this._onresponse(message);
86
233
  }
87
234
  else if (isJSONRPCRequest(message)) {
@@ -97,25 +244,23 @@ class Protocol {
97
244
  await this._transport.start();
98
245
  }
99
246
  _onclose() {
100
- var _a;
101
247
  const responseHandlers = this._responseHandlers;
102
248
  this._responseHandlers = new Map();
103
249
  this._progressHandlers.clear();
250
+ this._taskProgressTokens.clear();
104
251
  this._pendingDebouncedNotifications.clear();
252
+ const error = McpError.fromError(ErrorCode.ConnectionClosed, 'Connection closed');
105
253
  this._transport = undefined;
106
- (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);
107
- const error = new McpError(ErrorCode.ConnectionClosed, "Connection closed");
254
+ this.onclose?.();
108
255
  for (const handler of responseHandlers.values()) {
109
256
  handler(error);
110
257
  }
111
258
  }
112
259
  _onerror(error) {
113
- var _a;
114
- (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
260
+ this.onerror?.(error);
115
261
  }
116
262
  _onnotification(notification) {
117
- var _a;
118
- const handler = (_a = this._notificationHandlers.get(notification.method)) !== null && _a !== void 0 ? _a : this.fallbackNotificationHandler;
263
+ const handler = this._notificationHandlers.get(notification.method) ?? this.fallbackNotificationHandler;
119
264
  // Ignore notifications not being subscribed to.
120
265
  if (handler === undefined) {
121
266
  return;
@@ -123,65 +268,135 @@ class Protocol {
123
268
  // Starting with Promise.resolve() puts any synchronous errors into the monad as well.
124
269
  Promise.resolve()
125
270
  .then(() => handler(notification))
126
- .catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));
271
+ .catch(error => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));
127
272
  }
128
273
  _onrequest(request, extra) {
129
- var _a, _b;
130
- const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== void 0 ? _a : this.fallbackRequestHandler;
274
+ const handler = this._requestHandlers.get(request.method) ?? this.fallbackRequestHandler;
131
275
  // Capture the current transport at request time to ensure responses go to the correct client
132
276
  const capturedTransport = this._transport;
277
+ // Extract taskId from request metadata if present (needed early for method not found case)
278
+ const relatedTaskId = request.params?._meta?.[RELATED_TASK_META_KEY]?.taskId;
133
279
  if (handler === undefined) {
134
- capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
135
- jsonrpc: "2.0",
280
+ const errorResponse = {
281
+ jsonrpc: '2.0',
136
282
  id: request.id,
137
283
  error: {
138
284
  code: ErrorCode.MethodNotFound,
139
- message: "Method not found",
140
- },
141
- }).catch((error) => this._onerror(new Error(`Failed to send an error response: ${error}`)));
285
+ message: 'Method not found'
286
+ }
287
+ };
288
+ // Queue or send the error response based on whether this is a task-related request
289
+ if (relatedTaskId && this._taskMessageQueue) {
290
+ this._enqueueTaskMessage(relatedTaskId, {
291
+ type: 'error',
292
+ message: errorResponse,
293
+ timestamp: Date.now()
294
+ }, capturedTransport?.sessionId).catch(error => this._onerror(new Error(`Failed to enqueue error response: ${error}`)));
295
+ }
296
+ else {
297
+ capturedTransport
298
+ ?.send(errorResponse)
299
+ .catch(error => this._onerror(new Error(`Failed to send an error response: ${error}`)));
300
+ }
142
301
  return;
143
302
  }
144
303
  const abortController = new AbortController();
145
304
  this._requestHandlerAbortControllers.set(request.id, abortController);
305
+ const taskCreationParams = isTaskAugmentedRequestParams(request.params) ? request.params.task : undefined;
306
+ const taskStore = this._taskStore ? this.requestTaskStore(request, capturedTransport?.sessionId) : undefined;
146
307
  const fullExtra = {
147
308
  signal: abortController.signal,
148
- sessionId: capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.sessionId,
149
- _meta: (_b = request.params) === null || _b === void 0 ? void 0 : _b._meta,
150
- sendNotification: (notification) => this.notification(notification, { relatedRequestId: request.id }),
151
- sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),
152
- authInfo: extra === null || extra === void 0 ? void 0 : extra.authInfo,
309
+ sessionId: capturedTransport?.sessionId,
310
+ _meta: request.params?._meta,
311
+ sendNotification: async (notification) => {
312
+ // Include related-task metadata if this request is part of a task
313
+ const notificationOptions = { relatedRequestId: request.id };
314
+ if (relatedTaskId) {
315
+ notificationOptions.relatedTask = { taskId: relatedTaskId };
316
+ }
317
+ await this.notification(notification, notificationOptions);
318
+ },
319
+ sendRequest: async (r, resultSchema, options) => {
320
+ // Include related-task metadata if this request is part of a task
321
+ const requestOptions = { ...options, relatedRequestId: request.id };
322
+ if (relatedTaskId && !requestOptions.relatedTask) {
323
+ requestOptions.relatedTask = { taskId: relatedTaskId };
324
+ }
325
+ // Set task status to input_required when sending a request within a task context
326
+ // Use the taskId from options (explicit) or fall back to relatedTaskId (inherited)
327
+ const effectiveTaskId = requestOptions.relatedTask?.taskId ?? relatedTaskId;
328
+ if (effectiveTaskId && taskStore) {
329
+ await taskStore.updateTaskStatus(effectiveTaskId, 'input_required');
330
+ }
331
+ return await this.request(r, resultSchema, requestOptions);
332
+ },
333
+ authInfo: extra?.authInfo,
153
334
  requestId: request.id,
154
- requestInfo: extra === null || extra === void 0 ? void 0 : extra.requestInfo
335
+ requestInfo: extra?.requestInfo,
336
+ taskId: relatedTaskId,
337
+ taskStore: taskStore,
338
+ taskRequestedTtl: taskCreationParams?.ttl,
339
+ closeSSEStream: extra?.closeSSEStream,
340
+ closeStandaloneSSEStream: extra?.closeStandaloneSSEStream
155
341
  };
156
342
  // Starting with Promise.resolve() puts any synchronous errors into the monad as well.
157
343
  Promise.resolve()
344
+ .then(() => {
345
+ // If this request asked for task creation, check capability first
346
+ if (taskCreationParams) {
347
+ // Check if the request method supports task creation
348
+ this.assertTaskHandlerCapability(request.method);
349
+ }
350
+ })
158
351
  .then(() => handler(request, fullExtra))
159
- .then((result) => {
352
+ .then(async (result) => {
160
353
  if (abortController.signal.aborted) {
354
+ // Request was cancelled
161
355
  return;
162
356
  }
163
- return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
357
+ const response = {
164
358
  result,
165
- jsonrpc: "2.0",
166
- id: request.id,
167
- });
168
- }, (error) => {
169
- var _a;
359
+ jsonrpc: '2.0',
360
+ id: request.id
361
+ };
362
+ // Queue or send the response based on whether this is a task-related request
363
+ if (relatedTaskId && this._taskMessageQueue) {
364
+ await this._enqueueTaskMessage(relatedTaskId, {
365
+ type: 'response',
366
+ message: response,
367
+ timestamp: Date.now()
368
+ }, capturedTransport?.sessionId);
369
+ }
370
+ else {
371
+ await capturedTransport?.send(response);
372
+ }
373
+ }, async (error) => {
170
374
  if (abortController.signal.aborted) {
375
+ // Request was cancelled
171
376
  return;
172
377
  }
173
- return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
174
- jsonrpc: "2.0",
378
+ const errorResponse = {
379
+ jsonrpc: '2.0',
175
380
  id: request.id,
176
381
  error: {
177
- code: Number.isSafeInteger(error["code"])
178
- ? error["code"]
179
- : ErrorCode.InternalError,
180
- message: (_a = error.message) !== null && _a !== void 0 ? _a : "Internal error",
181
- },
182
- });
382
+ code: Number.isSafeInteger(error['code']) ? error['code'] : ErrorCode.InternalError,
383
+ message: error.message ?? 'Internal error',
384
+ ...(error['data'] !== undefined && { data: error['data'] })
385
+ }
386
+ };
387
+ // Queue or send the error response based on whether this is a task-related request
388
+ if (relatedTaskId && this._taskMessageQueue) {
389
+ await this._enqueueTaskMessage(relatedTaskId, {
390
+ type: 'error',
391
+ message: errorResponse,
392
+ timestamp: Date.now()
393
+ }, capturedTransport?.sessionId);
394
+ }
395
+ else {
396
+ await capturedTransport?.send(errorResponse);
397
+ }
183
398
  })
184
- .catch((error) => this._onerror(new Error(`Failed to send response: ${error}`)))
399
+ .catch(error => this._onerror(new Error(`Failed to send response: ${error}`)))
185
400
  .finally(() => {
186
401
  this._requestHandlerAbortControllers.delete(request.id);
187
402
  });
@@ -201,6 +416,10 @@ class Protocol {
201
416
  this._resetTimeout(messageId);
202
417
  }
203
418
  catch (error) {
419
+ // Clean up if maxTotalTimeout was exceeded
420
+ this._responseHandlers.delete(messageId);
421
+ this._progressHandlers.delete(messageId);
422
+ this._cleanupTimeout(messageId);
204
423
  responseHandler(error);
205
424
  return;
206
425
  }
@@ -209,19 +428,46 @@ class Protocol {
209
428
  }
210
429
  _onresponse(response) {
211
430
  const messageId = Number(response.id);
431
+ // Check if this is a response to a queued request
432
+ const resolver = this._requestResolvers.get(messageId);
433
+ if (resolver) {
434
+ this._requestResolvers.delete(messageId);
435
+ if (isJSONRPCResultResponse(response)) {
436
+ resolver(response);
437
+ }
438
+ else {
439
+ const error = new McpError(response.error.code, response.error.message, response.error.data);
440
+ resolver(error);
441
+ }
442
+ return;
443
+ }
212
444
  const handler = this._responseHandlers.get(messageId);
213
445
  if (handler === undefined) {
214
446
  this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));
215
447
  return;
216
448
  }
217
449
  this._responseHandlers.delete(messageId);
218
- this._progressHandlers.delete(messageId);
219
450
  this._cleanupTimeout(messageId);
220
- if (isJSONRPCResponse(response)) {
451
+ // Keep progress handler alive for CreateTaskResult responses
452
+ let isTaskResponse = false;
453
+ if (isJSONRPCResultResponse(response) && response.result && typeof response.result === 'object') {
454
+ const result = response.result;
455
+ if (result.task && typeof result.task === 'object') {
456
+ const task = result.task;
457
+ if (typeof task.taskId === 'string') {
458
+ isTaskResponse = true;
459
+ this._taskProgressTokens.set(task.taskId, messageId);
460
+ }
461
+ }
462
+ }
463
+ if (!isTaskResponse) {
464
+ this._progressHandlers.delete(messageId);
465
+ }
466
+ if (isJSONRPCResultResponse(response)) {
221
467
  handler(response);
222
468
  }
223
469
  else {
224
- const error = new McpError(response.error.code, response.error.message, response.error.data);
470
+ const error = McpError.fromError(response.error.code, response.error.message, response.error.data);
225
471
  handler(error);
226
472
  }
227
473
  }
@@ -232,101 +478,327 @@ class Protocol {
232
478
  * Closes the connection.
233
479
  */
234
480
  async close() {
235
- var _a;
236
- await ((_a = this._transport) === null || _a === void 0 ? void 0 : _a.close());
481
+ await this._transport?.close();
237
482
  }
238
483
  /**
239
- * Sends a request and wait for a response.
484
+ * Sends a request and returns an AsyncGenerator that yields response messages.
485
+ * The generator is guaranteed to end with either a 'result' or 'error' message.
486
+ *
487
+ * @example
488
+ * ```typescript
489
+ * const stream = protocol.requestStream(request, resultSchema, options);
490
+ * for await (const message of stream) {
491
+ * switch (message.type) {
492
+ * case 'taskCreated':
493
+ * console.log('Task created:', message.task.taskId);
494
+ * break;
495
+ * case 'taskStatus':
496
+ * console.log('Task status:', message.task.status);
497
+ * break;
498
+ * case 'result':
499
+ * console.log('Final result:', message.result);
500
+ * break;
501
+ * case 'error':
502
+ * console.error('Error:', message.error);
503
+ * break;
504
+ * }
505
+ * }
506
+ * ```
507
+ *
508
+ * @experimental Use `client.experimental.tasks.requestStream()` to access this method.
509
+ */
510
+ async *requestStream(request, resultSchema, options) {
511
+ const { task } = options ?? {};
512
+ // For non-task requests, just yield the result
513
+ if (!task) {
514
+ try {
515
+ const result = await this.request(request, resultSchema, options);
516
+ yield { type: 'result', result };
517
+ }
518
+ catch (error) {
519
+ yield {
520
+ type: 'error',
521
+ error: error instanceof McpError ? error : new McpError(ErrorCode.InternalError, String(error))
522
+ };
523
+ }
524
+ return;
525
+ }
526
+ // For task-augmented requests, we need to poll for status
527
+ // First, make the request to create the task
528
+ let taskId;
529
+ try {
530
+ // Send the request and get the CreateTaskResult
531
+ const createResult = await this.request(request, CreateTaskResultSchema, options);
532
+ // Extract taskId from the result
533
+ if (createResult.task) {
534
+ taskId = createResult.task.taskId;
535
+ yield { type: 'taskCreated', task: createResult.task };
536
+ }
537
+ else {
538
+ throw new McpError(ErrorCode.InternalError, 'Task creation did not return a task');
539
+ }
540
+ // Poll for task completion
541
+ while (true) {
542
+ // Get current task status
543
+ const task = await this.getTask({ taskId }, options);
544
+ yield { type: 'taskStatus', task };
545
+ // Check if task is terminal
546
+ if (isTerminal(task.status)) {
547
+ if (task.status === 'completed') {
548
+ // Get the final result
549
+ const result = await this.getTaskResult({ taskId }, resultSchema, options);
550
+ yield { type: 'result', result };
551
+ }
552
+ else if (task.status === 'failed') {
553
+ yield {
554
+ type: 'error',
555
+ error: new McpError(ErrorCode.InternalError, `Task ${taskId} failed`)
556
+ };
557
+ }
558
+ else if (task.status === 'cancelled') {
559
+ yield {
560
+ type: 'error',
561
+ error: new McpError(ErrorCode.InternalError, `Task ${taskId} was cancelled`)
562
+ };
563
+ }
564
+ return;
565
+ }
566
+ // When input_required, call tasks/result to deliver queued messages
567
+ // (elicitation, sampling) via SSE and block until terminal
568
+ if (task.status === 'input_required') {
569
+ const result = await this.getTaskResult({ taskId }, resultSchema, options);
570
+ yield { type: 'result', result };
571
+ return;
572
+ }
573
+ // Wait before polling again
574
+ const pollInterval = task.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1000;
575
+ await new Promise(resolve => setTimeout(resolve, pollInterval));
576
+ // Check if cancelled
577
+ options?.signal?.throwIfAborted();
578
+ }
579
+ }
580
+ catch (error) {
581
+ yield {
582
+ type: 'error',
583
+ error: error instanceof McpError ? error : new McpError(ErrorCode.InternalError, String(error))
584
+ };
585
+ }
586
+ }
587
+ /**
588
+ * Sends a request and waits for a response.
240
589
  *
241
590
  * Do not use this method to emit notifications! Use notification() instead.
242
591
  */
243
592
  request(request, resultSchema, options) {
244
- const { relatedRequestId, resumptionToken, onresumptiontoken } = options !== null && options !== void 0 ? options : {};
593
+ const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
594
+ // Send the request
245
595
  return new Promise((resolve, reject) => {
246
- var _a, _b, _c, _d, _e, _f;
596
+ const earlyReject = (error) => {
597
+ reject(error);
598
+ };
247
599
  if (!this._transport) {
248
- reject(new Error("Not connected"));
600
+ earlyReject(new Error('Not connected'));
249
601
  return;
250
602
  }
251
- if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.enforceStrictCapabilities) === true) {
252
- this.assertCapabilityForMethod(request.method);
603
+ if (this._options?.enforceStrictCapabilities === true) {
604
+ try {
605
+ this.assertCapabilityForMethod(request.method);
606
+ // If task creation is requested, also check task capabilities
607
+ if (task) {
608
+ this.assertTaskCapability(request.method);
609
+ }
610
+ }
611
+ catch (e) {
612
+ earlyReject(e);
613
+ return;
614
+ }
253
615
  }
254
- (_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.throwIfAborted();
616
+ options?.signal?.throwIfAborted();
255
617
  const messageId = this._requestMessageId++;
256
618
  const jsonrpcRequest = {
257
619
  ...request,
258
- jsonrpc: "2.0",
259
- id: messageId,
620
+ jsonrpc: '2.0',
621
+ id: messageId
260
622
  };
261
- if (options === null || options === void 0 ? void 0 : options.onprogress) {
623
+ if (options?.onprogress) {
262
624
  this._progressHandlers.set(messageId, options.onprogress);
263
625
  jsonrpcRequest.params = {
264
626
  ...request.params,
265
627
  _meta: {
266
- ...(((_c = request.params) === null || _c === void 0 ? void 0 : _c._meta) || {}),
628
+ ...(request.params?._meta || {}),
267
629
  progressToken: messageId
268
- },
630
+ }
631
+ };
632
+ }
633
+ // Augment with task creation parameters if provided
634
+ if (task) {
635
+ jsonrpcRequest.params = {
636
+ ...jsonrpcRequest.params,
637
+ task: task
638
+ };
639
+ }
640
+ // Augment with related task metadata if relatedTask is provided
641
+ if (relatedTask) {
642
+ jsonrpcRequest.params = {
643
+ ...jsonrpcRequest.params,
644
+ _meta: {
645
+ ...(jsonrpcRequest.params?._meta || {}),
646
+ [RELATED_TASK_META_KEY]: relatedTask
647
+ }
269
648
  };
270
649
  }
271
650
  const cancel = (reason) => {
272
- var _a;
273
651
  this._responseHandlers.delete(messageId);
274
652
  this._progressHandlers.delete(messageId);
275
653
  this._cleanupTimeout(messageId);
276
- (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({
277
- jsonrpc: "2.0",
278
- method: "notifications/cancelled",
654
+ this._transport
655
+ ?.send({
656
+ jsonrpc: '2.0',
657
+ method: 'notifications/cancelled',
279
658
  params: {
280
659
  requestId: messageId,
281
- reason: String(reason),
282
- },
283
- }, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => this._onerror(new Error(`Failed to send cancellation: ${error}`)));
284
- reject(reason);
660
+ reason: String(reason)
661
+ }
662
+ }, { relatedRequestId, resumptionToken, onresumptiontoken })
663
+ .catch(error => this._onerror(new Error(`Failed to send cancellation: ${error}`)));
664
+ // Wrap the reason in an McpError if it isn't already
665
+ const error = reason instanceof McpError ? reason : new McpError(ErrorCode.RequestTimeout, String(reason));
666
+ reject(error);
285
667
  };
286
- this._responseHandlers.set(messageId, (response) => {
287
- var _a;
288
- if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {
668
+ this._responseHandlers.set(messageId, response => {
669
+ if (options?.signal?.aborted) {
289
670
  return;
290
671
  }
291
672
  if (response instanceof Error) {
292
673
  return reject(response);
293
674
  }
294
675
  try {
295
- const result = resultSchema.parse(response.result);
296
- resolve(result);
676
+ const parseResult = safeParse(resultSchema, response.result);
677
+ if (!parseResult.success) {
678
+ // Type guard: if success is false, error is guaranteed to exist
679
+ reject(parseResult.error);
680
+ }
681
+ else {
682
+ resolve(parseResult.data);
683
+ }
297
684
  }
298
685
  catch (error) {
299
686
  reject(error);
300
687
  }
301
688
  });
302
- (_d = options === null || options === void 0 ? void 0 : options.signal) === null || _d === void 0 ? void 0 : _d.addEventListener("abort", () => {
303
- var _a;
304
- cancel((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.reason);
305
- });
306
- const timeout = (_e = options === null || options === void 0 ? void 0 : options.timeout) !== null && _e !== void 0 ? _e : DEFAULT_REQUEST_TIMEOUT_MSEC;
307
- const timeoutHandler = () => cancel(new McpError(ErrorCode.RequestTimeout, "Request timed out", { timeout }));
308
- this._setupTimeout(messageId, timeout, options === null || options === void 0 ? void 0 : options.maxTotalTimeout, timeoutHandler, (_f = options === null || options === void 0 ? void 0 : options.resetTimeoutOnProgress) !== null && _f !== void 0 ? _f : false);
309
- this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => {
310
- this._cleanupTimeout(messageId);
311
- reject(error);
689
+ options?.signal?.addEventListener('abort', () => {
690
+ cancel(options?.signal?.reason);
312
691
  });
692
+ const timeout = options?.timeout ?? DEFAULT_REQUEST_TIMEOUT_MSEC;
693
+ const timeoutHandler = () => cancel(McpError.fromError(ErrorCode.RequestTimeout, 'Request timed out', { timeout }));
694
+ this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? false);
695
+ // Queue request if related to a task
696
+ const relatedTaskId = relatedTask?.taskId;
697
+ if (relatedTaskId) {
698
+ // Store the response resolver for this request so responses can be routed back
699
+ const responseResolver = (response) => {
700
+ const handler = this._responseHandlers.get(messageId);
701
+ if (handler) {
702
+ handler(response);
703
+ }
704
+ else {
705
+ // Log error when resolver is missing, but don't fail
706
+ this._onerror(new Error(`Response handler missing for side-channeled request ${messageId}`));
707
+ }
708
+ };
709
+ this._requestResolvers.set(messageId, responseResolver);
710
+ this._enqueueTaskMessage(relatedTaskId, {
711
+ type: 'request',
712
+ message: jsonrpcRequest,
713
+ timestamp: Date.now()
714
+ }).catch(error => {
715
+ this._cleanupTimeout(messageId);
716
+ reject(error);
717
+ });
718
+ // Don't send through transport - queued messages are delivered via tasks/result only
719
+ // This prevents duplicate delivery for bidirectional transports
720
+ }
721
+ else {
722
+ // No related task - send through transport normally
723
+ this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch(error => {
724
+ this._cleanupTimeout(messageId);
725
+ reject(error);
726
+ });
727
+ }
313
728
  });
314
729
  }
730
+ /**
731
+ * Gets the current status of a task.
732
+ *
733
+ * @experimental Use `client.experimental.tasks.getTask()` to access this method.
734
+ */
735
+ async getTask(params, options) {
736
+ // @ts-expect-error SendRequestT cannot directly contain GetTaskRequest, but we ensure all type instantiations contain it anyways
737
+ return this.request({ method: 'tasks/get', params }, GetTaskResultSchema, options);
738
+ }
739
+ /**
740
+ * Retrieves the result of a completed task.
741
+ *
742
+ * @experimental Use `client.experimental.tasks.getTaskResult()` to access this method.
743
+ */
744
+ async getTaskResult(params, resultSchema, options) {
745
+ // @ts-expect-error SendRequestT cannot directly contain GetTaskPayloadRequest, but we ensure all type instantiations contain it anyways
746
+ return this.request({ method: 'tasks/result', params }, resultSchema, options);
747
+ }
748
+ /**
749
+ * Lists tasks, optionally starting from a pagination cursor.
750
+ *
751
+ * @experimental Use `client.experimental.tasks.listTasks()` to access this method.
752
+ */
753
+ async listTasks(params, options) {
754
+ // @ts-expect-error SendRequestT cannot directly contain ListTasksRequest, but we ensure all type instantiations contain it anyways
755
+ return this.request({ method: 'tasks/list', params }, ListTasksResultSchema, options);
756
+ }
757
+ /**
758
+ * Cancels a specific task.
759
+ *
760
+ * @experimental Use `client.experimental.tasks.cancelTask()` to access this method.
761
+ */
762
+ async cancelTask(params, options) {
763
+ // @ts-expect-error SendRequestT cannot directly contain CancelTaskRequest, but we ensure all type instantiations contain it anyways
764
+ return this.request({ method: 'tasks/cancel', params }, CancelTaskResultSchema, options);
765
+ }
315
766
  /**
316
767
  * Emits a notification, which is a one-way message that does not expect a response.
317
768
  */
318
769
  async notification(notification, options) {
319
- var _a, _b;
320
770
  if (!this._transport) {
321
- throw new Error("Not connected");
771
+ throw new Error('Not connected');
322
772
  }
323
773
  this.assertNotificationCapability(notification.method);
324
- const debouncedMethods = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.debouncedNotificationMethods) !== null && _b !== void 0 ? _b : [];
774
+ // Queue notification if related to a task
775
+ const relatedTaskId = options?.relatedTask?.taskId;
776
+ if (relatedTaskId) {
777
+ // Build the JSONRPC notification with metadata
778
+ const jsonrpcNotification = {
779
+ ...notification,
780
+ jsonrpc: '2.0',
781
+ params: {
782
+ ...notification.params,
783
+ _meta: {
784
+ ...(notification.params?._meta || {}),
785
+ [RELATED_TASK_META_KEY]: options.relatedTask
786
+ }
787
+ }
788
+ };
789
+ await this._enqueueTaskMessage(relatedTaskId, {
790
+ type: 'notification',
791
+ message: jsonrpcNotification,
792
+ timestamp: Date.now()
793
+ });
794
+ // Don't send through transport - queued messages are delivered via tasks/result only
795
+ // This prevents duplicate delivery for bidirectional transports
796
+ return;
797
+ }
798
+ const debouncedMethods = this._options?.debouncedNotificationMethods ?? [];
325
799
  // A notification can only be debounced if it's in the list AND it's "simple"
326
- // (i.e., has no parameters and no related request ID that could be lost).
327
- const canDebounce = debouncedMethods.includes(notification.method)
328
- && !notification.params
329
- && !(options === null || options === void 0 ? void 0 : options.relatedRequestId);
800
+ // (i.e., has no parameters and no related request ID or related task that could be lost).
801
+ const canDebounce = debouncedMethods.includes(notification.method) && !notification.params && !options?.relatedRequestId && !options?.relatedTask;
330
802
  if (canDebounce) {
331
803
  // If a notification of this type is already scheduled, do nothing.
332
804
  if (this._pendingDebouncedNotifications.has(notification.method)) {
@@ -337,28 +809,53 @@ class Protocol {
337
809
  // Schedule the actual send to happen in the next microtask.
338
810
  // This allows all synchronous calls in the current event loop tick to be coalesced.
339
811
  Promise.resolve().then(() => {
340
- var _a;
341
812
  // Un-mark the notification so the next one can be scheduled.
342
813
  this._pendingDebouncedNotifications.delete(notification.method);
343
814
  // SAFETY CHECK: If the connection was closed while this was pending, abort.
344
815
  if (!this._transport) {
345
816
  return;
346
817
  }
347
- const jsonrpcNotification = {
818
+ let jsonrpcNotification = {
348
819
  ...notification,
349
- jsonrpc: "2.0",
820
+ jsonrpc: '2.0'
350
821
  };
822
+ // Augment with related task metadata if relatedTask is provided
823
+ if (options?.relatedTask) {
824
+ jsonrpcNotification = {
825
+ ...jsonrpcNotification,
826
+ params: {
827
+ ...jsonrpcNotification.params,
828
+ _meta: {
829
+ ...(jsonrpcNotification.params?._meta || {}),
830
+ [RELATED_TASK_META_KEY]: options.relatedTask
831
+ }
832
+ }
833
+ };
834
+ }
351
835
  // Send the notification, but don't await it here to avoid blocking.
352
836
  // Handle potential errors with a .catch().
353
- (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send(jsonrpcNotification, options).catch(error => this._onerror(error));
837
+ this._transport?.send(jsonrpcNotification, options).catch(error => this._onerror(error));
354
838
  });
355
839
  // Return immediately.
356
840
  return;
357
841
  }
358
- const jsonrpcNotification = {
842
+ let jsonrpcNotification = {
359
843
  ...notification,
360
- jsonrpc: "2.0",
844
+ jsonrpc: '2.0'
361
845
  };
846
+ // Augment with related task metadata if relatedTask is provided
847
+ if (options?.relatedTask) {
848
+ jsonrpcNotification = {
849
+ ...jsonrpcNotification,
850
+ params: {
851
+ ...jsonrpcNotification.params,
852
+ _meta: {
853
+ ...(jsonrpcNotification.params?._meta || {}),
854
+ [RELATED_TASK_META_KEY]: options.relatedTask
855
+ }
856
+ }
857
+ };
858
+ }
362
859
  await this._transport.send(jsonrpcNotification, options);
363
860
  }
364
861
  /**
@@ -367,10 +864,11 @@ class Protocol {
367
864
  * Note that this will replace any previous request handler for the same method.
368
865
  */
369
866
  setRequestHandler(requestSchema, handler) {
370
- const method = requestSchema.shape.method.value;
867
+ const method = getMethodLiteral(requestSchema);
371
868
  this.assertRequestHandlerCapability(method);
372
869
  this._requestHandlers.set(method, (request, extra) => {
373
- return Promise.resolve(handler(requestSchema.parse(request), extra));
870
+ const parsed = parseWithCompat(requestSchema, request);
871
+ return Promise.resolve(handler(parsed, extra));
374
872
  });
375
873
  }
376
874
  /**
@@ -393,7 +891,11 @@ class Protocol {
393
891
  * Note that this will replace any previous notification handler for the same method.
394
892
  */
395
893
  setNotificationHandler(notificationSchema, handler) {
396
- this._notificationHandlers.set(notificationSchema.shape.method.value, (notification) => Promise.resolve(handler(notificationSchema.parse(notification))));
894
+ const method = getMethodLiteral(notificationSchema);
895
+ this._notificationHandlers.set(method, notification => {
896
+ const parsed = parseWithCompat(notificationSchema, notification);
897
+ return Promise.resolve(handler(parsed));
898
+ });
397
899
  }
398
900
  /**
399
901
  * Removes the notification handler for the given method.
@@ -401,17 +903,186 @@ class Protocol {
401
903
  removeNotificationHandler(method) {
402
904
  this._notificationHandlers.delete(method);
403
905
  }
906
+ /**
907
+ * Cleans up the progress handler associated with a task.
908
+ * This should be called when a task reaches a terminal status.
909
+ */
910
+ _cleanupTaskProgressHandler(taskId) {
911
+ const progressToken = this._taskProgressTokens.get(taskId);
912
+ if (progressToken !== undefined) {
913
+ this._progressHandlers.delete(progressToken);
914
+ this._taskProgressTokens.delete(taskId);
915
+ }
916
+ }
917
+ /**
918
+ * Enqueues a task-related message for side-channel delivery via tasks/result.
919
+ * @param taskId The task ID to associate the message with
920
+ * @param message The message to enqueue
921
+ * @param sessionId Optional session ID for binding the operation to a specific session
922
+ * @throws Error if taskStore is not configured or if enqueue fails (e.g., queue overflow)
923
+ *
924
+ * Note: If enqueue fails, it's the TaskMessageQueue implementation's responsibility to handle
925
+ * the error appropriately (e.g., by failing the task, logging, etc.). The Protocol layer
926
+ * simply propagates the error.
927
+ */
928
+ async _enqueueTaskMessage(taskId, message, sessionId) {
929
+ // Task message queues are only used when taskStore is configured
930
+ if (!this._taskStore || !this._taskMessageQueue) {
931
+ throw new Error('Cannot enqueue task message: taskStore and taskMessageQueue are not configured');
932
+ }
933
+ const maxQueueSize = this._options?.maxTaskQueueSize;
934
+ await this._taskMessageQueue.enqueue(taskId, message, sessionId, maxQueueSize);
935
+ }
936
+ /**
937
+ * Clears the message queue for a task and rejects any pending request resolvers.
938
+ * @param taskId The task ID whose queue should be cleared
939
+ * @param sessionId Optional session ID for binding the operation to a specific session
940
+ */
941
+ async _clearTaskQueue(taskId, sessionId) {
942
+ if (this._taskMessageQueue) {
943
+ // Reject any pending request resolvers
944
+ const messages = await this._taskMessageQueue.dequeueAll(taskId, sessionId);
945
+ for (const message of messages) {
946
+ if (message.type === 'request' && isJSONRPCRequest(message.message)) {
947
+ // Extract request ID from the message
948
+ const requestId = message.message.id;
949
+ const resolver = this._requestResolvers.get(requestId);
950
+ if (resolver) {
951
+ resolver(new McpError(ErrorCode.InternalError, 'Task cancelled or completed'));
952
+ this._requestResolvers.delete(requestId);
953
+ }
954
+ else {
955
+ // Log error when resolver is missing during cleanup for better observability
956
+ this._onerror(new Error(`Resolver missing for request ${requestId} during task ${taskId} cleanup`));
957
+ }
958
+ }
959
+ }
960
+ }
961
+ }
962
+ /**
963
+ * Waits for a task update (new messages or status change) with abort signal support.
964
+ * Uses polling to check for updates at the task's configured poll interval.
965
+ * @param taskId The task ID to wait for
966
+ * @param signal Abort signal to cancel the wait
967
+ * @returns Promise that resolves when an update occurs or rejects if aborted
968
+ */
969
+ async _waitForTaskUpdate(taskId, signal) {
970
+ // Get the task's poll interval, falling back to default
971
+ let interval = this._options?.defaultTaskPollInterval ?? 1000;
972
+ try {
973
+ const task = await this._taskStore?.getTask(taskId);
974
+ if (task?.pollInterval) {
975
+ interval = task.pollInterval;
976
+ }
977
+ }
978
+ catch {
979
+ // Use default interval if task lookup fails
980
+ }
981
+ return new Promise((resolve, reject) => {
982
+ if (signal.aborted) {
983
+ reject(new McpError(ErrorCode.InvalidRequest, 'Request cancelled'));
984
+ return;
985
+ }
986
+ // Wait for the poll interval, then resolve so caller can check for updates
987
+ const timeoutId = setTimeout(resolve, interval);
988
+ // Clean up timeout and reject if aborted
989
+ signal.addEventListener('abort', () => {
990
+ clearTimeout(timeoutId);
991
+ reject(new McpError(ErrorCode.InvalidRequest, 'Request cancelled'));
992
+ }, { once: true });
993
+ });
994
+ }
995
+ requestTaskStore(request, sessionId) {
996
+ const taskStore = this._taskStore;
997
+ if (!taskStore) {
998
+ throw new Error('No task store configured');
999
+ }
1000
+ return {
1001
+ createTask: async (taskParams) => {
1002
+ if (!request) {
1003
+ throw new Error('No request provided');
1004
+ }
1005
+ return await taskStore.createTask(taskParams, request.id, {
1006
+ method: request.method,
1007
+ params: request.params
1008
+ }, sessionId);
1009
+ },
1010
+ getTask: async (taskId) => {
1011
+ const task = await taskStore.getTask(taskId, sessionId);
1012
+ if (!task) {
1013
+ throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');
1014
+ }
1015
+ return task;
1016
+ },
1017
+ storeTaskResult: async (taskId, status, result) => {
1018
+ await taskStore.storeTaskResult(taskId, status, result, sessionId);
1019
+ // Get updated task state and send notification
1020
+ const task = await taskStore.getTask(taskId, sessionId);
1021
+ if (task) {
1022
+ const notification = TaskStatusNotificationSchema.parse({
1023
+ method: 'notifications/tasks/status',
1024
+ params: task
1025
+ });
1026
+ await this.notification(notification);
1027
+ if (isTerminal(task.status)) {
1028
+ this._cleanupTaskProgressHandler(taskId);
1029
+ // Don't clear queue here - it will be cleared after delivery via tasks/result
1030
+ }
1031
+ }
1032
+ },
1033
+ getTaskResult: taskId => {
1034
+ return taskStore.getTaskResult(taskId, sessionId);
1035
+ },
1036
+ updateTaskStatus: async (taskId, status, statusMessage) => {
1037
+ // Check if task exists
1038
+ const task = await taskStore.getTask(taskId, sessionId);
1039
+ if (!task) {
1040
+ throw new McpError(ErrorCode.InvalidParams, `Task "${taskId}" not found - it may have been cleaned up`);
1041
+ }
1042
+ // Don't allow transitions from terminal states
1043
+ if (isTerminal(task.status)) {
1044
+ throw new McpError(ErrorCode.InvalidParams, `Cannot update task "${taskId}" from terminal status "${task.status}" to "${status}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);
1045
+ }
1046
+ await taskStore.updateTaskStatus(taskId, status, statusMessage, sessionId);
1047
+ // Get updated task state and send notification
1048
+ const updatedTask = await taskStore.getTask(taskId, sessionId);
1049
+ if (updatedTask) {
1050
+ const notification = TaskStatusNotificationSchema.parse({
1051
+ method: 'notifications/tasks/status',
1052
+ params: updatedTask
1053
+ });
1054
+ await this.notification(notification);
1055
+ if (isTerminal(updatedTask.status)) {
1056
+ this._cleanupTaskProgressHandler(taskId);
1057
+ // Don't clear queue here - it will be cleared after delivery via tasks/result
1058
+ }
1059
+ }
1060
+ },
1061
+ listTasks: cursor => {
1062
+ return taskStore.listTasks(cursor, sessionId);
1063
+ }
1064
+ };
1065
+ }
1066
+ }
1067
+ function isPlainObject(value) {
1068
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
404
1069
  }
405
1070
  function mergeCapabilities(base, additional) {
406
- return Object.entries(additional).reduce((acc, [key, value]) => {
407
- if (value && typeof value === "object") {
408
- acc[key] = acc[key] ? { ...acc[key], ...value } : value;
1071
+ const result = { ...base };
1072
+ for (const key in additional) {
1073
+ const k = key;
1074
+ const addValue = additional[k];
1075
+ if (addValue === undefined)
1076
+ continue;
1077
+ const baseValue = result[k];
1078
+ if (isPlainObject(baseValue) && isPlainObject(addValue)) {
1079
+ result[k] = { ...baseValue, ...addValue };
409
1080
  }
410
1081
  else {
411
- acc[key] = value;
1082
+ result[k] = addValue;
412
1083
  }
413
- return acc;
414
- }, { ...base });
1084
+ }
1085
+ return result;
415
1086
  }
416
1087
 
417
1088
  export { DEFAULT_REQUEST_TIMEOUT_MSEC, Protocol, mergeCapabilities };