ostacky 0.5.5 → 0.5.7

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 (850) hide show
  1. package/README.md +22 -22
  2. package/assets/agents/ostacky.md +89 -71
  3. package/assets/commands/install-stack.md +7 -8
  4. package/assets/mcp/ostacky-controller/index.js +16 -4
  5. package/assets/mcp/ostacky-controller/node_modules/.package-lock.json +1 -1
  6. package/assets/mcp/ostacky-controller/package-lock.json +2 -2
  7. package/assets/mcp/ostacky-controller/package.json +1 -1
  8. package/assets/skills/execution-mode-evaluation/SKILL.md +107 -529
  9. package/assets/skills/openspec-apply-change/SKILL.md +18 -9
  10. package/assets/skills/openspec-archive-change/SKILL.md +3 -3
  11. package/assets/skills/openspec-propose/SKILL.md +10 -8
  12. package/assets/skills/review/SKILL.md +7 -5
  13. package/assets/skills/subagent-driven-development/SKILL.md +14 -0
  14. package/assets/skills/thinking/SKILL.md +195 -0
  15. package/assets/skills/using-git-worktrees/SKILL.md +1 -1
  16. package/assets/skills/using-superpowers/SKILL.md +8 -8
  17. package/assets/skills/writing-plans/SKILL.md +12 -1
  18. package/assets/tests/e2e-scenarios.md +502 -0
  19. package/assets/tests/validate-config.sh +254 -0
  20. package/dist/cli.js +78 -52
  21. package/dist/mcp/ask-user-server/index.js +1 -1
  22. package/dist/mcp/ostacky-controller/index.js +15 -4
  23. package/manifest.json +60 -46
  24. package/package.json +1 -1
  25. package/assets/mcp/ask-user-server/index.js +0 -167
  26. package/assets/mcp/ask-user-server/node_modules/.package-lock.json +0 -42
  27. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/LICENSE +0 -216
  28. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/README.md +0 -40
  29. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts +0 -8198
  30. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-BUWfrB3C.d.cts.map +0 -1
  31. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs +0 -2862
  32. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-CEFpHq32.cjs.map +0 -1
  33. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts +0 -8198
  34. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-CNbu4K4a.d.mts.map +0 -1
  35. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs +0 -1653
  36. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/auth-DFgbUATV.mjs.map +0 -1
  37. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/index.cjs +0 -174
  38. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/index.d.cts +0 -2
  39. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/index.d.mts +0 -2
  40. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/index.mjs +0 -3
  41. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/internal.cjs +0 -199
  42. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +0 -87
  43. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +0 -1
  44. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +0 -87
  45. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +0 -1
  46. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/dist/internal.mjs +0 -3
  47. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/core/package.json +0 -85
  48. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/LICENSE +0 -216
  49. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/README.md +0 -30
  50. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-B_4czhCS.d.cts +0 -1054
  51. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-B_4czhCS.d.cts.map +0 -1
  52. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-BdSo9BII.d.mts +0 -1054
  53. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-BdSo9BII.d.mts.map +0 -1
  54. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs +0 -7086
  55. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-Brn-Q2J_.cjs.map +0 -1
  56. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs +0 -7069
  57. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CplOkyLC.mjs.map +0 -1
  58. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts +0 -59
  59. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BYRW5af5.d.mts.map +0 -1
  60. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs +0 -970
  61. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-Bd-iTHAF.mjs.map +0 -1
  62. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts +0 -59
  63. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-D9GAttn8.d.cts.map +0 -1
  64. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs +0 -976
  65. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-ojcZaap3.cjs.map +0 -1
  66. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/chunk-Bnu9O96Y.cjs +0 -60
  67. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs +0 -42
  68. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BRM5MGf9.d.cts +0 -4015
  69. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-BRM5MGf9.d.cts.map +0 -1
  70. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D93NefGZ.d.mts +0 -4013
  71. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-D93NefGZ.d.mts.map +0 -1
  72. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.cjs +0 -1990
  73. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +0 -1
  74. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.d.cts +0 -732
  75. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +0 -1
  76. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.d.mts +0 -732
  77. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +0 -1
  78. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.mjs +0 -1813
  79. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +0 -1
  80. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/mcp-Ctiu4nBa.mjs +0 -1884
  81. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/mcp-Ctiu4nBa.mjs.map +0 -1
  82. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/mcp-CzU40gwu.cjs +0 -1963
  83. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/mcp-CzU40gwu.cjs.map +0 -1
  84. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs +0 -23
  85. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs.map +0 -1
  86. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts +0 -11
  87. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts.map +0 -1
  88. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts +0 -11
  89. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts.map +0 -1
  90. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs +0 -22
  91. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs.map +0 -1
  92. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsNode.cjs +0 -12
  93. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.cts +0 -3
  94. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.mts +0 -3
  95. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs +0 -4
  96. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +0 -30
  97. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs.map +0 -1
  98. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts +0 -10
  99. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts.map +0 -1
  100. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts +0 -10
  101. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts.map +0 -1
  102. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +0 -29
  103. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs.map +0 -1
  104. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/src-D5Nfqtoz.mjs +0 -7502
  105. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/src-D5Nfqtoz.mjs.map +0 -1
  106. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/src-D9A7ArDn.cjs +0 -8000
  107. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/src-D9A7ArDn.cjs.map +0 -1
  108. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +0 -564
  109. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +0 -1
  110. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +0 -107
  111. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts.map +0 -1
  112. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +0 -107
  113. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts.map +0 -1
  114. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +0 -562
  115. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +0 -1
  116. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts +0 -1099
  117. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts.map +0 -1
  118. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/types-mS0yxCL0.d.mts +0 -1099
  119. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/types-mS0yxCL0.d.mts.map +0 -1
  120. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/ajv.cjs +0 -5
  121. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.cts +0 -2
  122. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.mts +0 -2
  123. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/ajv.mjs +0 -3
  124. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.cjs +0 -3
  125. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.cts +0 -2
  126. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.mts +0 -2
  127. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.mjs +0 -3
  128. package/assets/mcp/ask-user-server/node_modules/@modelcontextprotocol/server/package.json +0 -160
  129. package/assets/mcp/ask-user-server/node_modules/zod/LICENSE +0 -21
  130. package/assets/mcp/ask-user-server/node_modules/zod/README.md +0 -191
  131. package/assets/mcp/ask-user-server/node_modules/zod/index.cjs +0 -33
  132. package/assets/mcp/ask-user-server/node_modules/zod/index.d.cts +0 -4
  133. package/assets/mcp/ask-user-server/node_modules/zod/index.d.ts +0 -4
  134. package/assets/mcp/ask-user-server/node_modules/zod/index.js +0 -4
  135. package/assets/mcp/ask-user-server/node_modules/zod/locales/index.cjs +0 -17
  136. package/assets/mcp/ask-user-server/node_modules/zod/locales/index.d.cts +0 -1
  137. package/assets/mcp/ask-user-server/node_modules/zod/locales/index.d.ts +0 -1
  138. package/assets/mcp/ask-user-server/node_modules/zod/locales/index.js +0 -1
  139. package/assets/mcp/ask-user-server/node_modules/zod/locales/package.json +0 -7
  140. package/assets/mcp/ask-user-server/node_modules/zod/mini/index.cjs +0 -32
  141. package/assets/mcp/ask-user-server/node_modules/zod/mini/index.d.cts +0 -3
  142. package/assets/mcp/ask-user-server/node_modules/zod/mini/index.d.ts +0 -3
  143. package/assets/mcp/ask-user-server/node_modules/zod/mini/index.js +0 -3
  144. package/assets/mcp/ask-user-server/node_modules/zod/mini/package.json +0 -7
  145. package/assets/mcp/ask-user-server/node_modules/zod/package.json +0 -135
  146. package/assets/mcp/ask-user-server/node_modules/zod/src/index.ts +0 -4
  147. package/assets/mcp/ask-user-server/node_modules/zod/src/locales/index.ts +0 -1
  148. package/assets/mcp/ask-user-server/node_modules/zod/src/mini/index.ts +0 -3
  149. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/ZodError.ts +0 -330
  150. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  151. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  152. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  153. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  154. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  155. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  156. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  157. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  158. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  159. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/errors.ts +0 -13
  160. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/external.ts +0 -6
  161. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  162. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  163. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  164. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  165. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  166. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/helpers/util.ts +0 -224
  167. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/index.ts +0 -4
  168. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/locales/en.ts +0 -124
  169. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/standard-schema.ts +0 -113
  170. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  171. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  172. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  173. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  174. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  175. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  176. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  177. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  178. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  179. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  180. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  181. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/complex.test.ts +0 -70
  182. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  183. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  184. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  185. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  186. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  187. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  188. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  189. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  190. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  191. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  192. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/function.test.ts +0 -261
  193. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  194. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  195. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  196. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  197. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  198. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  199. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  200. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  201. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  202. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/nan.test.ts +0 -24
  203. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  204. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  205. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  206. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  207. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  208. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  209. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  210. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  211. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  212. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  213. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  214. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  215. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  216. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  217. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  218. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  219. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  220. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  221. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  222. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  223. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  224. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  225. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  226. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  227. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  228. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  229. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  230. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  231. package/assets/mcp/ask-user-server/node_modules/zod/src/v3/types.ts +0 -5138
  232. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/checks.ts +0 -32
  233. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  234. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/compat.ts +0 -70
  235. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/errors.ts +0 -82
  236. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/external.ts +0 -52
  237. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/from-json-schema.ts +0 -659
  238. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/index.ts +0 -5
  239. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/iso.ts +0 -90
  240. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/parse.ts +0 -82
  241. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/schemas.ts +0 -2672
  242. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  243. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/apply.test.ts +0 -59
  244. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  245. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -216
  246. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  247. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  248. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  249. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  250. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -106
  251. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -326
  252. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  253. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -573
  254. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -703
  255. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  256. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -374
  257. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  258. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -62
  259. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -302
  260. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -409
  261. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +0 -27
  262. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  263. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +0 -197
  264. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -694
  265. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  266. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -807
  267. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  268. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
  269. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
  270. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +0 -26
  271. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +0 -895
  272. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -360
  273. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  274. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/global-config.test.ts +0 -39
  275. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -68
  276. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -939
  277. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -60
  278. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -198
  279. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +0 -46
  280. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -109
  281. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  282. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -117
  283. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +0 -29
  284. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +0 -24
  285. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -330
  286. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  287. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  288. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
  289. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  290. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -325
  291. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -717
  292. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -333
  293. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -450
  294. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -211
  295. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
  296. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -74
  297. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +0 -26
  298. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -351
  299. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  300. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  301. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  302. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  303. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -717
  304. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -631
  305. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -633
  306. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -243
  307. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -181
  308. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -134
  309. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
  310. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1224
  311. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -106
  312. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -771
  313. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -438
  314. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -3125
  315. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -378
  316. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -496
  317. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -273
  318. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/url.test.ts +0 -13
  319. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  320. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  321. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/api.ts +0 -1823
  322. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/checks.ts +0 -1293
  323. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/config.ts +0 -15
  324. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/core.ts +0 -153
  325. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/doc.ts +0 -44
  326. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/errors.ts +0 -455
  327. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/index.ts +0 -16
  328. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/json-schema-generator.ts +0 -126
  329. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/json-schema-processors.ts +0 -666
  330. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/json-schema.ts +0 -147
  331. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/parse.ts +0 -195
  332. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/regexes.ts +0 -190
  333. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/registries.ts +0 -105
  334. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/schemas.ts +0 -4730
  335. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/standard-schema.ts +0 -159
  336. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -59
  337. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  338. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  339. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/el.test.ts +0 -215
  340. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  341. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -181
  342. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +0 -72
  343. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/he.test.ts +0 -379
  344. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +0 -163
  345. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +0 -46
  346. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  347. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  348. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +0 -105
  349. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +0 -125
  350. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +0 -45
  351. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/to-json-schema.ts +0 -622
  352. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/util.ts +0 -983
  353. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/versions.ts +0 -5
  354. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/core/zsf.ts +0 -323
  355. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/index.ts +0 -4
  356. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ar.ts +0 -115
  357. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/az.ts +0 -111
  358. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/be.ts +0 -176
  359. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/bg.ts +0 -128
  360. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ca.ts +0 -116
  361. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/cs.ts +0 -118
  362. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/da.ts +0 -123
  363. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/de.ts +0 -116
  364. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/el.ts +0 -121
  365. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/en.ts +0 -123
  366. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/eo.ts +0 -118
  367. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/es.ts +0 -141
  368. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/fa.ts +0 -126
  369. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/fi.ts +0 -121
  370. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/fr-CA.ts +0 -116
  371. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/fr.ts +0 -132
  372. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/he.ts +0 -246
  373. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/hr.ts +0 -131
  374. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/hu.ts +0 -117
  375. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/hy.ts +0 -164
  376. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/id.ts +0 -115
  377. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/index.ts +0 -52
  378. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/is.ts +0 -119
  379. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/it.ts +0 -116
  380. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ja.ts +0 -114
  381. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ka.ts +0 -123
  382. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/kh.ts +0 -7
  383. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/km.ts +0 -119
  384. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ko.ts +0 -121
  385. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/lt.ts +0 -239
  386. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/mk.ts +0 -118
  387. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ms.ts +0 -115
  388. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/nl.ts +0 -121
  389. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/no.ts +0 -116
  390. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ota.ts +0 -117
  391. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/pl.ts +0 -118
  392. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ps.ts +0 -126
  393. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/pt.ts +0 -116
  394. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ro.ts +0 -129
  395. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ru.ts +0 -176
  396. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/sl.ts +0 -118
  397. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/sv.ts +0 -119
  398. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ta.ts +0 -118
  399. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/th.ts +0 -119
  400. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/tr.ts +0 -111
  401. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ua.ts +0 -7
  402. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/uk.ts +0 -117
  403. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/ur.ts +0 -119
  404. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/uz.ts +0 -117
  405. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/vi.ts +0 -117
  406. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/yo.ts +0 -124
  407. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/zh-CN.ts +0 -116
  408. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/locales/zh-TW.ts +0 -115
  409. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/checks.ts +0 -32
  410. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/coerce.ts +0 -27
  411. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/external.ts +0 -41
  412. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/index.ts +0 -3
  413. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/iso.ts +0 -66
  414. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/parse.ts +0 -14
  415. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/schemas.ts +0 -1947
  416. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/apply.test.ts +0 -24
  417. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  418. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -94
  419. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  420. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -548
  421. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  422. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  423. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -5
  424. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -993
  425. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  426. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -227
  427. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  428. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -325
  429. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +0 -50
  430. package/assets/mcp/ask-user-server/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -352
  431. package/assets/mcp/ask-user-server/node_modules/zod/src/v4-mini/index.ts +0 -3
  432. package/assets/mcp/ask-user-server/node_modules/zod/v3/ZodError.cjs +0 -138
  433. package/assets/mcp/ask-user-server/node_modules/zod/v3/ZodError.d.cts +0 -164
  434. package/assets/mcp/ask-user-server/node_modules/zod/v3/ZodError.d.ts +0 -164
  435. package/assets/mcp/ask-user-server/node_modules/zod/v3/ZodError.js +0 -133
  436. package/assets/mcp/ask-user-server/node_modules/zod/v3/errors.cjs +0 -17
  437. package/assets/mcp/ask-user-server/node_modules/zod/v3/errors.d.cts +0 -5
  438. package/assets/mcp/ask-user-server/node_modules/zod/v3/errors.d.ts +0 -5
  439. package/assets/mcp/ask-user-server/node_modules/zod/v3/errors.js +0 -9
  440. package/assets/mcp/ask-user-server/node_modules/zod/v3/external.cjs +0 -22
  441. package/assets/mcp/ask-user-server/node_modules/zod/v3/external.d.cts +0 -6
  442. package/assets/mcp/ask-user-server/node_modules/zod/v3/external.d.ts +0 -6
  443. package/assets/mcp/ask-user-server/node_modules/zod/v3/external.js +0 -6
  444. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
  445. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  446. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  447. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  448. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
  449. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  450. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  451. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  452. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
  453. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  454. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  455. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  456. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
  457. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  458. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  459. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  460. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
  461. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  462. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  463. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  464. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/util.cjs +0 -137
  465. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/util.d.cts +0 -85
  466. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/util.d.ts +0 -85
  467. package/assets/mcp/ask-user-server/node_modules/zod/v3/helpers/util.js +0 -133
  468. package/assets/mcp/ask-user-server/node_modules/zod/v3/index.cjs +0 -33
  469. package/assets/mcp/ask-user-server/node_modules/zod/v3/index.d.cts +0 -4
  470. package/assets/mcp/ask-user-server/node_modules/zod/v3/index.d.ts +0 -4
  471. package/assets/mcp/ask-user-server/node_modules/zod/v3/index.js +0 -4
  472. package/assets/mcp/ask-user-server/node_modules/zod/v3/locales/en.cjs +0 -112
  473. package/assets/mcp/ask-user-server/node_modules/zod/v3/locales/en.d.cts +0 -3
  474. package/assets/mcp/ask-user-server/node_modules/zod/v3/locales/en.d.ts +0 -3
  475. package/assets/mcp/ask-user-server/node_modules/zod/v3/locales/en.js +0 -109
  476. package/assets/mcp/ask-user-server/node_modules/zod/v3/package.json +0 -7
  477. package/assets/mcp/ask-user-server/node_modules/zod/v3/standard-schema.cjs +0 -2
  478. package/assets/mcp/ask-user-server/node_modules/zod/v3/standard-schema.d.cts +0 -102
  479. package/assets/mcp/ask-user-server/node_modules/zod/v3/standard-schema.d.ts +0 -102
  480. package/assets/mcp/ask-user-server/node_modules/zod/v3/standard-schema.js +0 -1
  481. package/assets/mcp/ask-user-server/node_modules/zod/v3/types.cjs +0 -3777
  482. package/assets/mcp/ask-user-server/node_modules/zod/v3/types.d.cts +0 -1034
  483. package/assets/mcp/ask-user-server/node_modules/zod/v3/types.d.ts +0 -1034
  484. package/assets/mcp/ask-user-server/node_modules/zod/v3/types.js +0 -3695
  485. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/checks.cjs +0 -33
  486. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/checks.d.cts +0 -1
  487. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/checks.d.ts +0 -1
  488. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/checks.js +0 -1
  489. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/coerce.cjs +0 -47
  490. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  491. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  492. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/coerce.js +0 -17
  493. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/compat.cjs +0 -61
  494. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/compat.d.cts +0 -50
  495. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/compat.d.ts +0 -50
  496. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/compat.js +0 -31
  497. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/errors.cjs +0 -74
  498. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/errors.d.cts +0 -30
  499. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/errors.d.ts +0 -30
  500. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/errors.js +0 -48
  501. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/external.cjs +0 -73
  502. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/external.d.cts +0 -16
  503. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/external.d.ts +0 -16
  504. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/external.js +0 -20
  505. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/from-json-schema.cjs +0 -625
  506. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/from-json-schema.d.cts +0 -12
  507. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/from-json-schema.d.ts +0 -12
  508. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/from-json-schema.js +0 -599
  509. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/index.cjs +0 -33
  510. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/index.d.cts +0 -4
  511. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/index.d.ts +0 -4
  512. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/index.js +0 -4
  513. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/iso.cjs +0 -60
  514. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/iso.d.cts +0 -22
  515. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/iso.d.ts +0 -22
  516. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/iso.js +0 -30
  517. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/package.json +0 -7
  518. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/parse.cjs +0 -41
  519. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/parse.d.cts +0 -31
  520. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/parse.d.ts +0 -31
  521. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/parse.js +0 -15
  522. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/schemas.cjs +0 -1511
  523. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/schemas.d.cts +0 -767
  524. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/schemas.d.ts +0 -767
  525. package/assets/mcp/ask-user-server/node_modules/zod/v4/classic/schemas.js +0 -1395
  526. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/api.cjs +0 -1227
  527. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/api.d.cts +0 -325
  528. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/api.d.ts +0 -325
  529. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/api.js +0 -1087
  530. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/checks.cjs +0 -601
  531. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/checks.d.cts +0 -278
  532. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/checks.d.ts +0 -278
  533. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/checks.js +0 -575
  534. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/core.cjs +0 -85
  535. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/core.d.cts +0 -70
  536. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/core.d.ts +0 -70
  537. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/core.js +0 -78
  538. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/doc.cjs +0 -39
  539. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/doc.d.cts +0 -14
  540. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/doc.d.ts +0 -14
  541. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/doc.js +0 -35
  542. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/errors.cjs +0 -216
  543. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/errors.d.cts +0 -221
  544. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/errors.d.ts +0 -221
  545. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/errors.js +0 -185
  546. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/index.cjs +0 -47
  547. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/index.d.cts +0 -16
  548. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/index.d.ts +0 -16
  549. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/index.js +0 -16
  550. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-generator.cjs +0 -99
  551. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-generator.d.cts +0 -65
  552. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-generator.d.ts +0 -65
  553. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-generator.js +0 -95
  554. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-processors.cjs +0 -644
  555. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-processors.d.cts +0 -49
  556. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-processors.d.ts +0 -49
  557. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema-processors.js +0 -601
  558. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema.cjs +0 -2
  559. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema.d.cts +0 -88
  560. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema.d.ts +0 -88
  561. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/json-schema.js +0 -1
  562. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/package.json +0 -7
  563. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/parse.cjs +0 -131
  564. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/parse.d.cts +0 -49
  565. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/parse.d.ts +0 -49
  566. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/parse.js +0 -93
  567. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/regexes.cjs +0 -172
  568. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/regexes.d.cts +0 -85
  569. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/regexes.d.ts +0 -85
  570. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/regexes.js +0 -139
  571. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/registries.cjs +0 -56
  572. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/registries.d.cts +0 -35
  573. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/registries.d.ts +0 -35
  574. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/registries.js +0 -51
  575. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/schemas.cjs +0 -2270
  576. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/schemas.d.cts +0 -1184
  577. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/schemas.d.ts +0 -1184
  578. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/schemas.js +0 -2239
  579. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/standard-schema.cjs +0 -2
  580. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/standard-schema.d.cts +0 -126
  581. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/standard-schema.d.ts +0 -126
  582. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/standard-schema.js +0 -1
  583. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/to-json-schema.cjs +0 -457
  584. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/to-json-schema.d.cts +0 -114
  585. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/to-json-schema.d.ts +0 -114
  586. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/to-json-schema.js +0 -448
  587. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/util.cjs +0 -734
  588. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/util.d.cts +0 -200
  589. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/util.d.ts +0 -200
  590. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/util.js +0 -674
  591. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/versions.cjs +0 -8
  592. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/versions.d.cts +0 -5
  593. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/versions.d.ts +0 -5
  594. package/assets/mcp/ask-user-server/node_modules/zod/v4/core/versions.js +0 -5
  595. package/assets/mcp/ask-user-server/node_modules/zod/v4/index.cjs +0 -22
  596. package/assets/mcp/ask-user-server/node_modules/zod/v4/index.d.cts +0 -3
  597. package/assets/mcp/ask-user-server/node_modules/zod/v4/index.d.ts +0 -3
  598. package/assets/mcp/ask-user-server/node_modules/zod/v4/index.js +0 -3
  599. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ar.cjs +0 -133
  600. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ar.d.cts +0 -5
  601. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ar.d.ts +0 -4
  602. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ar.js +0 -106
  603. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/az.cjs +0 -132
  604. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/az.d.cts +0 -5
  605. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/az.d.ts +0 -4
  606. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/az.js +0 -105
  607. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/be.cjs +0 -183
  608. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/be.d.cts +0 -5
  609. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/be.d.ts +0 -4
  610. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/be.js +0 -156
  611. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/bg.cjs +0 -147
  612. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/bg.d.cts +0 -5
  613. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/bg.d.ts +0 -4
  614. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/bg.js +0 -120
  615. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ca.cjs +0 -134
  616. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ca.d.cts +0 -5
  617. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ca.d.ts +0 -4
  618. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ca.js +0 -107
  619. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/cs.cjs +0 -138
  620. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/cs.d.cts +0 -5
  621. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/cs.d.ts +0 -4
  622. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/cs.js +0 -111
  623. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/da.cjs +0 -142
  624. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/da.d.cts +0 -5
  625. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/da.d.ts +0 -4
  626. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/da.js +0 -115
  627. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/de.cjs +0 -135
  628. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/de.d.cts +0 -5
  629. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/de.d.ts +0 -4
  630. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/de.js +0 -108
  631. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/el.cjs +0 -136
  632. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/el.d.cts +0 -5
  633. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/el.d.ts +0 -4
  634. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/el.js +0 -109
  635. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/en.cjs +0 -140
  636. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/en.d.cts +0 -5
  637. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/en.d.ts +0 -4
  638. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/en.js +0 -113
  639. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/eo.cjs +0 -136
  640. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/eo.d.cts +0 -5
  641. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/eo.d.ts +0 -4
  642. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/eo.js +0 -109
  643. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/es.cjs +0 -159
  644. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/es.d.cts +0 -5
  645. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/es.d.ts +0 -4
  646. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/es.js +0 -132
  647. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fa.cjs +0 -141
  648. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fa.d.cts +0 -5
  649. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fa.d.ts +0 -4
  650. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fa.js +0 -114
  651. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fi.cjs +0 -139
  652. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fi.d.cts +0 -5
  653. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fi.d.ts +0 -4
  654. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fi.js +0 -112
  655. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr-CA.cjs +0 -134
  656. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr-CA.d.cts +0 -5
  657. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  658. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr-CA.js +0 -107
  659. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr.cjs +0 -152
  660. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr.d.cts +0 -5
  661. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr.d.ts +0 -4
  662. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/fr.js +0 -125
  663. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/he.cjs +0 -241
  664. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/he.d.cts +0 -5
  665. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/he.d.ts +0 -4
  666. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/he.js +0 -214
  667. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hr.cjs +0 -149
  668. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hr.d.cts +0 -5
  669. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hr.d.ts +0 -4
  670. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hr.js +0 -122
  671. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hu.cjs +0 -135
  672. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hu.d.cts +0 -5
  673. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hu.d.ts +0 -4
  674. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hu.js +0 -108
  675. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hy.cjs +0 -174
  676. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hy.d.cts +0 -5
  677. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hy.d.ts +0 -4
  678. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/hy.js +0 -147
  679. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/id.cjs +0 -133
  680. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/id.d.cts +0 -5
  681. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/id.d.ts +0 -4
  682. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/id.js +0 -106
  683. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/index.cjs +0 -111
  684. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/index.d.cts +0 -52
  685. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/index.d.ts +0 -52
  686. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/index.js +0 -52
  687. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/is.cjs +0 -136
  688. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/is.d.cts +0 -5
  689. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/is.d.ts +0 -4
  690. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/is.js +0 -109
  691. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/it.cjs +0 -135
  692. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/it.d.cts +0 -5
  693. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/it.d.ts +0 -4
  694. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/it.js +0 -108
  695. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ja.cjs +0 -134
  696. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ja.d.cts +0 -5
  697. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ja.d.ts +0 -4
  698. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ja.js +0 -107
  699. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ka.cjs +0 -139
  700. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ka.d.cts +0 -5
  701. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ka.d.ts +0 -4
  702. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ka.js +0 -112
  703. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/kh.cjs +0 -12
  704. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/kh.d.cts +0 -5
  705. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/kh.d.ts +0 -5
  706. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/kh.js +0 -5
  707. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/km.cjs +0 -137
  708. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/km.d.cts +0 -5
  709. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/km.d.ts +0 -4
  710. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/km.js +0 -110
  711. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ko.cjs +0 -138
  712. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ko.d.cts +0 -5
  713. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ko.d.ts +0 -4
  714. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ko.js +0 -111
  715. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/lt.cjs +0 -230
  716. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/lt.d.cts +0 -5
  717. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/lt.d.ts +0 -4
  718. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/lt.js +0 -203
  719. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/mk.cjs +0 -136
  720. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/mk.d.cts +0 -5
  721. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/mk.d.ts +0 -4
  722. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/mk.js +0 -109
  723. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ms.cjs +0 -134
  724. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ms.d.cts +0 -5
  725. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ms.d.ts +0 -4
  726. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ms.js +0 -107
  727. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/nl.cjs +0 -137
  728. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/nl.d.cts +0 -5
  729. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/nl.d.ts +0 -4
  730. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/nl.js +0 -110
  731. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/no.cjs +0 -135
  732. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/no.d.cts +0 -5
  733. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/no.d.ts +0 -4
  734. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/no.js +0 -108
  735. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ota.cjs +0 -136
  736. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ota.d.cts +0 -5
  737. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ota.d.ts +0 -4
  738. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ota.js +0 -109
  739. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/package.json +0 -7
  740. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pl.cjs +0 -136
  741. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pl.d.cts +0 -5
  742. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pl.d.ts +0 -4
  743. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pl.js +0 -109
  744. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ps.cjs +0 -141
  745. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ps.d.cts +0 -5
  746. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ps.d.ts +0 -4
  747. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ps.js +0 -114
  748. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pt.cjs +0 -135
  749. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pt.d.cts +0 -5
  750. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pt.d.ts +0 -4
  751. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/pt.js +0 -108
  752. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ro.cjs +0 -146
  753. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ro.d.cts +0 -5
  754. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ro.d.ts +0 -4
  755. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ro.js +0 -119
  756. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ru.cjs +0 -183
  757. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ru.d.cts +0 -5
  758. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ru.d.ts +0 -4
  759. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ru.js +0 -156
  760. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sl.cjs +0 -136
  761. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sl.d.cts +0 -5
  762. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sl.d.ts +0 -4
  763. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sl.js +0 -109
  764. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sv.cjs +0 -137
  765. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sv.d.cts +0 -5
  766. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sv.d.ts +0 -4
  767. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/sv.js +0 -110
  768. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ta.cjs +0 -137
  769. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ta.d.cts +0 -5
  770. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ta.d.ts +0 -4
  771. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ta.js +0 -110
  772. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/th.cjs +0 -137
  773. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/th.d.cts +0 -5
  774. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/th.d.ts +0 -4
  775. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/th.js +0 -110
  776. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/tr.cjs +0 -132
  777. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/tr.d.cts +0 -5
  778. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/tr.d.ts +0 -4
  779. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/tr.js +0 -105
  780. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ua.cjs +0 -12
  781. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ua.d.cts +0 -5
  782. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ua.d.ts +0 -5
  783. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ua.js +0 -5
  784. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uk.cjs +0 -135
  785. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uk.d.cts +0 -5
  786. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uk.d.ts +0 -4
  787. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uk.js +0 -108
  788. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ur.cjs +0 -137
  789. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ur.d.cts +0 -5
  790. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ur.d.ts +0 -4
  791. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/ur.js +0 -110
  792. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uz.cjs +0 -137
  793. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uz.d.cts +0 -5
  794. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uz.d.ts +0 -4
  795. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/uz.js +0 -110
  796. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/vi.cjs +0 -135
  797. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/vi.d.cts +0 -5
  798. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/vi.d.ts +0 -4
  799. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/vi.js +0 -108
  800. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/yo.cjs +0 -134
  801. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/yo.d.cts +0 -5
  802. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/yo.d.ts +0 -4
  803. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/yo.js +0 -107
  804. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-CN.cjs +0 -136
  805. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-CN.d.cts +0 -5
  806. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  807. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-CN.js +0 -109
  808. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-TW.cjs +0 -134
  809. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-TW.d.cts +0 -5
  810. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  811. package/assets/mcp/ask-user-server/node_modules/zod/v4/locales/zh-TW.js +0 -107
  812. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/checks.cjs +0 -34
  813. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/checks.d.cts +0 -1
  814. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/checks.d.ts +0 -1
  815. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/checks.js +0 -1
  816. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/coerce.cjs +0 -52
  817. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  818. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  819. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/coerce.js +0 -22
  820. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/external.cjs +0 -63
  821. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/external.d.cts +0 -13
  822. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/external.d.ts +0 -13
  823. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/external.js +0 -14
  824. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/index.cjs +0 -32
  825. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/index.d.cts +0 -3
  826. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/index.d.ts +0 -3
  827. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/index.js +0 -3
  828. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/iso.cjs +0 -64
  829. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/iso.d.cts +0 -22
  830. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/iso.d.ts +0 -22
  831. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/iso.js +0 -34
  832. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/package.json +0 -7
  833. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/parse.cjs +0 -16
  834. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/parse.d.cts +0 -1
  835. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/parse.d.ts +0 -1
  836. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/parse.js +0 -1
  837. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/schemas.cjs +0 -1083
  838. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/schemas.d.cts +0 -445
  839. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/schemas.d.ts +0 -445
  840. package/assets/mcp/ask-user-server/node_modules/zod/v4/mini/schemas.js +0 -961
  841. package/assets/mcp/ask-user-server/node_modules/zod/v4/package.json +0 -7
  842. package/assets/mcp/ask-user-server/node_modules/zod/v4-mini/index.cjs +0 -32
  843. package/assets/mcp/ask-user-server/node_modules/zod/v4-mini/index.d.cts +0 -3
  844. package/assets/mcp/ask-user-server/node_modules/zod/v4-mini/index.d.ts +0 -3
  845. package/assets/mcp/ask-user-server/node_modules/zod/v4-mini/index.js +0 -3
  846. package/assets/mcp/ask-user-server/node_modules/zod/v4-mini/package.json +0 -7
  847. package/assets/mcp/ask-user-server/package-lock.json +0 -50
  848. package/assets/mcp/ask-user-server/package.json +0 -10
  849. package/assets/skills/brainstorming/SKILL.md +0 -153
  850. package/assets/skills/openspec-explore/SKILL.md +0 -288
@@ -1,1963 +0,0 @@
1
- const require_chunk = require('./chunk-Bnu9O96Y.cjs');
2
- const require_src = require('./src-D9A7ArDn.cjs');
3
- let _modelcontextprotocol_server__shims = require("@modelcontextprotocol/server/_shims");
4
- let _modelcontextprotocol_core_internal = require("@modelcontextprotocol/core/internal");
5
-
6
- //#region src/server/completable.ts
7
- const COMPLETABLE_SYMBOL = Symbol.for("mcp.completable");
8
- /**
9
- * Wraps a schema to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.
10
- *
11
- * @example
12
- * ```ts source="./completable.examples.ts#completable_basicUsage"
13
- * server.registerPrompt(
14
- * 'review-code',
15
- * {
16
- * title: 'Code Review',
17
- * argsSchema: z.object({
18
- * language: completable(z.string().describe('Programming language'), value =>
19
- * ['typescript', 'javascript', 'python', 'rust', 'go'].filter(lang => lang.startsWith(value))
20
- * )
21
- * })
22
- * },
23
- * ({ language }) => ({
24
- * messages: [
25
- * {
26
- * role: 'user' as const,
27
- * content: {
28
- * type: 'text' as const,
29
- * text: `Review this ${language} code.`
30
- * }
31
- * }
32
- * ]
33
- * })
34
- * );
35
- * ```
36
- *
37
- * @see {@linkcode server/mcp.McpServer.registerPrompt | McpServer.registerPrompt} for using completable schemas in prompt argument definitions
38
- */
39
- function completable(schema, complete) {
40
- Object.defineProperty(schema, COMPLETABLE_SYMBOL, {
41
- value: { complete },
42
- enumerable: false,
43
- writable: false,
44
- configurable: false
45
- });
46
- return schema;
47
- }
48
- /**
49
- * Checks if a schema is completable (has completion metadata).
50
- */
51
- function isCompletable(schema) {
52
- return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
53
- }
54
- /**
55
- * Gets the completer callback from a completable schema, if it exists.
56
- */
57
- function getCompleter(schema) {
58
- return schema[COMPLETABLE_SYMBOL]?.complete;
59
- }
60
-
61
- //#endregion
62
- //#region src/server/serverEventBus.ts
63
- /**
64
- * A `ServerEventBus` backed by an in-process listener set.
65
- *
66
- * `publish()` delivers synchronously to the live listener set (a listener
67
- * unsubscribing itself mid-dispatch is safe; the entry's listen-router
68
- * listeners never unsubscribe peers). A throwing listener does not stop
69
- * delivery to the others.
70
- */
71
- var InMemoryServerEventBus = class {
72
- _listeners = /* @__PURE__ */ new Set();
73
- /**
74
- * @param onerror - Optional callback for errors thrown by listeners
75
- * during dispatch.
76
- */
77
- constructor(onerror) {
78
- this.onerror = onerror;
79
- }
80
- publish(event) {
81
- for (const listener of this._listeners) try {
82
- listener(event);
83
- } catch (error) {
84
- this.onerror?.(error instanceof Error ? error : new Error(String(error)));
85
- }
86
- }
87
- subscribe(listener) {
88
- this._listeners.add(listener);
89
- let live = true;
90
- return () => {
91
- if (!live) return;
92
- live = false;
93
- this._listeners.delete(listener);
94
- };
95
- }
96
- /** The number of currently registered listeners (test/introspection only — the routers track capacity via their own open-subscription set). */
97
- get listenerCount() {
98
- return this._listeners.size;
99
- }
100
- };
101
- /** Build a {@linkcode ServerNotifier} over a bus. */
102
- function createServerNotifier(bus) {
103
- return {
104
- toolsChanged: () => bus.publish({ kind: "tools_list_changed" }),
105
- promptsChanged: () => bus.publish({ kind: "prompts_list_changed" }),
106
- resourcesChanged: () => bus.publish({ kind: "resources_list_changed" }),
107
- resourceUpdated: (uri) => bus.publish({
108
- kind: "resource_updated",
109
- uri
110
- })
111
- };
112
- }
113
- /**
114
- * Whether a `subscriptions/listen` filter accepts a given change event.
115
- *
116
- * Pure: no I/O, no mutation. The filter governs ONLY the four
117
- * subscription-gated change types — non-gated notifications never reach the
118
- * bus and are not modeled here.
119
- *
120
- * `resource_updated` matches only when `resourceSubscriptions` is present and
121
- * contains the event's URI exactly (per the spec: "for these resource URIs").
122
- */
123
- function listenFilterAccepts(filter, event) {
124
- switch (event.kind) {
125
- case "tools_list_changed": return filter.toolsListChanged === true;
126
- case "prompts_list_changed": return filter.promptsListChanged === true;
127
- case "resources_list_changed": return filter.resourcesListChanged === true;
128
- case "resource_updated": return filter.resourceSubscriptions !== void 0 && filter.resourceSubscriptions.includes(event.uri);
129
- }
130
- }
131
- /**
132
- * The honored subset of a requested filter: keeps only the fields the client
133
- * explicitly opted in to (drops `false` and absent fields), narrowed against
134
- * the server's declared capabilities when supplied. The serving entry sends
135
- * this back in `notifications/subscriptions/acknowledged` so the ack reflects
136
- * what the server can actually deliver.
137
- *
138
- * - `toolsListChanged` is honored only when `capabilities.tools.listChanged`
139
- * is advertised; likewise `promptsListChanged` / `resourcesListChanged`.
140
- * - `resourceSubscriptions` is honored only when
141
- * `capabilities.resources.subscribe` is advertised.
142
- *
143
- * `capabilities` is optional on this pure helper for test convenience only —
144
- * both wired routers REQUIRE capabilities at the call site (the HTTP router's
145
- * `serve()` takes a required parameter; `StdioListenRouter.serve()` throws
146
- * before `setServerCapabilities()` was called), so the fail-open
147
- * `undefined → honor everything` branch is never reachable on a wired entry.
148
- */
149
- function honoredSubset(requested, capabilities) {
150
- const honored = {};
151
- const allow = (bit) => capabilities === void 0 || bit === true;
152
- if (requested.toolsListChanged === true && allow(capabilities?.tools?.listChanged)) honored.toolsListChanged = true;
153
- if (requested.promptsListChanged === true && allow(capabilities?.prompts?.listChanged)) honored.promptsListChanged = true;
154
- if (requested.resourcesListChanged === true && allow(capabilities?.resources?.listChanged)) honored.resourcesListChanged = true;
155
- if (requested.resourceSubscriptions !== void 0 && requested.resourceSubscriptions.length > 0 && allow(capabilities?.resources?.subscribe)) honored.resourceSubscriptions = [...requested.resourceSubscriptions];
156
- return honored;
157
- }
158
- /** Map a {@linkcode ServerEvent} onto its wire notification `{method, params}`. */
159
- function serverEventToNotification(event) {
160
- switch (event.kind) {
161
- case "tools_list_changed": return { method: "notifications/tools/list_changed" };
162
- case "prompts_list_changed": return { method: "notifications/prompts/list_changed" };
163
- case "resources_list_changed": return { method: "notifications/resources/list_changed" };
164
- case "resource_updated": return {
165
- method: "notifications/resources/updated",
166
- params: { uri: event.uri }
167
- };
168
- }
169
- }
170
-
171
- //#endregion
172
- //#region src/server/listenRouter.ts
173
- /** Default SSE comment-frame keepalive interval for listen streams. */
174
- const DEFAULT_LISTEN_KEEPALIVE_MS = 15e3;
175
- /** Default capacity guard: refuse a new subscription when this many are already open. */
176
- const DEFAULT_MAX_SUBSCRIPTIONS = 1024;
177
- function jsonRpcError(id, code, message) {
178
- return Response.json({
179
- jsonrpc: "2.0",
180
- error: {
181
- code,
182
- message
183
- },
184
- id
185
- }, { status: 200 });
186
- }
187
- /** Stamp the subscription id onto a notification's `_meta`. Non-mutating. */
188
- function stampSubscriptionId(notification, subscriptionId) {
189
- return {
190
- method: notification.method,
191
- params: {
192
- ...notification.params,
193
- _meta: {
194
- ...notification.params?._meta,
195
- [_modelcontextprotocol_core_internal.SUBSCRIPTION_ID_META_KEY]: subscriptionId
196
- }
197
- }
198
- };
199
- }
200
- /**
201
- * Read the requested filter off a `subscriptions/listen` request body.
202
- * Returns the validated filter, or `undefined` when `params.notifications`
203
- * is absent or fails the schema (the caller answers `-32602` — the spec
204
- * marks `notifications` REQUIRED on the listen request).
205
- */
206
- function parseListenFilter(message) {
207
- const outcome = require_src.codecForVersion(require_src.MODERN_WIRE_REVISION).validateRequest("subscriptions/listen", message);
208
- return outcome.ok ? outcome.value.params?.notifications : void 0;
209
- }
210
- function createListenRouter(options) {
211
- const { bus, onerror } = options;
212
- const maxSubscriptions = options.maxSubscriptions ?? DEFAULT_MAX_SUBSCRIPTIONS;
213
- const keepAliveMs = options.keepAliveMs ?? DEFAULT_LISTEN_KEEPALIVE_MS;
214
- const open = /* @__PURE__ */ new Set();
215
- function serve(message, signal, capabilities) {
216
- if (open.size >= maxSubscriptions) {
217
- onerror?.(/* @__PURE__ */ new Error(`subscriptions/listen refused: subscription limit reached (${maxSubscriptions})`));
218
- return jsonRpcError(message.id, -32603, "Subscription limit reached");
219
- }
220
- const filter = parseListenFilter(message);
221
- if (filter === void 0) return jsonRpcError(message.id, -32602, "Invalid params: 'notifications' is required and must be a valid SubscriptionFilter");
222
- const honored = honoredSubset(filter, capabilities);
223
- const subscriptionId = message.id;
224
- const encoder = new TextEncoder();
225
- let controller;
226
- let closed = false;
227
- let unsubscribe;
228
- let keepAliveTimer;
229
- let abortCleanup;
230
- const writeFrame = (frame) => {
231
- if (closed) return;
232
- try {
233
- controller.enqueue(encoder.encode(frame));
234
- } catch (error) {
235
- onerror?.(error instanceof Error ? error : new Error(String(error)));
236
- }
237
- };
238
- const writeNotification = (method, params) => {
239
- writeFrame(`event: message\ndata: ${JSON.stringify({
240
- jsonrpc: "2.0",
241
- method,
242
- params
243
- })}\n\n`);
244
- };
245
- const teardown = (graceful) => {
246
- if (closed) return;
247
- if (graceful) writeFrame(`event: message\ndata: ${JSON.stringify({
248
- jsonrpc: "2.0",
249
- id: subscriptionId,
250
- result: {
251
- resultType: "complete",
252
- _meta: { [_modelcontextprotocol_core_internal.SUBSCRIPTION_ID_META_KEY]: subscriptionId }
253
- }
254
- })}\n\n`);
255
- closed = true;
256
- unsubscribe?.();
257
- if (keepAliveTimer !== void 0) clearInterval(keepAliveTimer);
258
- abortCleanup?.();
259
- open.delete(teardown);
260
- try {
261
- controller.close();
262
- } catch {}
263
- };
264
- const readable = new ReadableStream({
265
- start(streamController) {
266
- controller = streamController;
267
- const ack = stampSubscriptionId({
268
- method: "notifications/subscriptions/acknowledged",
269
- params: { notifications: honored }
270
- }, subscriptionId);
271
- writeNotification(ack.method, ack.params);
272
- unsubscribe = bus.subscribe((event) => {
273
- if (closed || !listenFilterAccepts(honored, event)) return;
274
- const note = stampSubscriptionId(serverEventToNotification(event), subscriptionId);
275
- writeNotification(note.method, note.params);
276
- });
277
- if (keepAliveMs > 0) {
278
- keepAliveTimer = setInterval(() => writeFrame(": keepalive\n\n"), keepAliveMs);
279
- keepAliveTimer.unref?.();
280
- }
281
- open.add(teardown);
282
- },
283
- cancel() {
284
- teardown(false);
285
- }
286
- });
287
- if (signal !== void 0) if (signal.aborted) teardown(false);
288
- else {
289
- const onAbort = () => teardown(false);
290
- signal.addEventListener("abort", onAbort, { once: true });
291
- abortCleanup = () => signal.removeEventListener("abort", onAbort);
292
- }
293
- return new Response(readable, {
294
- status: 200,
295
- headers: {
296
- "Content-Type": "text/event-stream",
297
- "Cache-Control": "no-cache",
298
- Connection: "keep-alive",
299
- "X-Accel-Buffering": "no"
300
- }
301
- });
302
- }
303
- return {
304
- serve,
305
- closeAll() {
306
- for (const teardown of open) teardown(true);
307
- },
308
- get openCount() {
309
- return open.size;
310
- }
311
- };
312
- }
313
- const CHANGE_NOTIFICATION_METHODS = new Set([
314
- "notifications/tools/list_changed",
315
- "notifications/prompts/list_changed",
316
- "notifications/resources/list_changed",
317
- "notifications/resources/updated"
318
- ]);
319
- /**
320
- * Per-connection listen state for the stdio entry. One instance is held by
321
- * `serveStdio` for the connection lifetime; it routes inbound
322
- * `subscriptions/listen` / `notifications/cancelled` and rewrites outbound
323
- * change notifications onto the active subscriptions. No bus — the long-lived
324
- * pinned instance's existing `send*ListChanged()` calls feed straight into
325
- * `routeOutbound()`.
326
- */
327
- var StdioListenRouter = class {
328
- /** Active subscriptions, keyed by the listen request's JSON-RPC id verbatim. */
329
- _subs = /* @__PURE__ */ new Map();
330
- /**
331
- * The serving instance's declared capabilities. Filled in by the entry
332
- * once the modern instance is constructed (the router is created before
333
- * the instance exists), so the acknowledged filter is narrowed against
334
- * what the server can actually deliver.
335
- */
336
- _serverCapabilities;
337
- constructor(_maxSubscriptions = DEFAULT_MAX_SUBSCRIPTIONS, serverCapabilities) {
338
- this._maxSubscriptions = _maxSubscriptions;
339
- this._serverCapabilities = serverCapabilities;
340
- }
341
- /**
342
- * Record the serving instance's declared capabilities once it has been
343
- * constructed. Called by `serveStdio`'s connect path; subsequent
344
- * `serve()` calls narrow the honored filter against these.
345
- */
346
- setServerCapabilities(capabilities) {
347
- this._serverCapabilities = capabilities;
348
- }
349
- /** Whether `id` is an active listen subscription on this connection. */
350
- has(id) {
351
- return this._subs.has(id);
352
- }
353
- /**
354
- * Serve one inbound `subscriptions/listen` request: registers the
355
- * subscription and returns the stamped acknowledged notification (or, on
356
- * capacity / params rejection, the in-band JSON-RPC error response).
357
- *
358
- * @throws when called before {@linkcode setServerCapabilities} (or the
359
- * constructor) has supplied the serving instance's capabilities. Honoring a
360
- * filter without knowing the server's advertised capabilities would fail
361
- * open (deliver unadvertised types); the entry guarantees capabilities are
362
- * set before any listen request is routed here.
363
- */
364
- serve(message) {
365
- if (this._serverCapabilities === void 0) throw new Error("StdioListenRouter.serve() called before setServerCapabilities(); refusing to honor a filter without capabilities");
366
- if (this._subs.size >= this._maxSubscriptions) return {
367
- jsonrpc: "2.0",
368
- id: message.id,
369
- error: {
370
- code: -32603,
371
- message: "Subscription limit reached"
372
- }
373
- };
374
- const filter = parseListenFilter(message);
375
- if (filter === void 0) return {
376
- jsonrpc: "2.0",
377
- id: message.id,
378
- error: {
379
- code: -32602,
380
- message: "Invalid params: 'notifications' is required and must be a valid SubscriptionFilter"
381
- }
382
- };
383
- const honored = honoredSubset(filter, this._serverCapabilities);
384
- this._subs.set(message.id, honored);
385
- return stampSubscriptionId({
386
- method: "notifications/subscriptions/acknowledged",
387
- params: { notifications: honored }
388
- }, message.id);
389
- }
390
- /**
391
- * Tear down one subscription (inbound `notifications/cancelled`). Returns
392
- * `true` when a subscription was removed. After this call NOTHING further
393
- * is delivered for that subscription id (the post-cancel hardening).
394
- */
395
- cancel(id) {
396
- return this._subs.delete(id);
397
- }
398
- /**
399
- * Route an outbound notification through the active subscriptions.
400
- *
401
- * - For a subscription-gated change notification, returns one stamped copy
402
- * per subscription that opted in to it (an empty array means it is
403
- * dropped — the modern era never delivers an un-requested change type).
404
- * - For any other outbound message, returns `'passthrough'` (the entry
405
- * forwards it as-is).
406
- */
407
- routeOutbound(message) {
408
- if (!CHANGE_NOTIFICATION_METHODS.has(message.method)) return "passthrough";
409
- const uriParam = message.params?.["uri"];
410
- const uri = typeof uriParam === "string" ? uriParam : void 0;
411
- const event = notificationToServerEvent(message.method, uri);
412
- const out = [];
413
- for (const [subscriptionId, filter] of this._subs) if (listenFilterAccepts(filter, event)) out.push(stampSubscriptionId({
414
- method: message.method,
415
- params: message.params ?? {}
416
- }, subscriptionId));
417
- return out;
418
- }
419
- /**
420
- * Server-side graceful teardown of every active subscription: returns the
421
- * empty `subscriptions/listen` JSON-RPC result for each subscription id —
422
- * the spec's graceful-close signal — for the entry to emit before closing
423
- * the wire. Clears the set so nothing further is delivered.
424
- */
425
- teardownAll() {
426
- const out = [];
427
- for (const id of this._subs.keys()) out.push({
428
- jsonrpc: "2.0",
429
- id,
430
- result: {
431
- resultType: "complete",
432
- _meta: { [_modelcontextprotocol_core_internal.SUBSCRIPTION_ID_META_KEY]: id }
433
- }
434
- });
435
- this._subs.clear();
436
- return out;
437
- }
438
- };
439
- function notificationToServerEvent(method, uri) {
440
- switch (method) {
441
- case "notifications/tools/list_changed": return { kind: "tools_list_changed" };
442
- case "notifications/prompts/list_changed": return { kind: "prompts_list_changed" };
443
- case "notifications/resources/list_changed": return { kind: "resources_list_changed" };
444
- default: return {
445
- kind: "resource_updated",
446
- uri: uri ?? ""
447
- };
448
- }
449
- }
450
-
451
- //#endregion
452
- //#region src/server/legacyInputRequiredShim.ts
453
- /**
454
- * Default handler re-entries per originating request — tighter than the
455
- * client driver's 10 because the shim holds a live wire request open.
456
- */
457
- const DEFAULT_LEGACY_SHIM_MAX_ROUNDS = 8;
458
- /** Default per-leg timeout: legs are human-paced, so the 60s protocol default is wrong. */
459
- const DEFAULT_LEGACY_SHIM_ROUND_TIMEOUT_MS = 6e5;
460
- /** Resolves and validates `ServerOptions.inputRequired`, failing loudly at construction time. */
461
- function resolveLegacyShimOptions(options) {
462
- if (options?.maxRounds !== void 0 && (!Number.isInteger(options.maxRounds) || options.maxRounds < 1)) throw new RangeError(`inputRequired.maxRounds must be a positive integer (got ${options.maxRounds})`);
463
- if (options?.roundTimeoutMs !== void 0 && (!Number.isFinite(options.roundTimeoutMs) || options.roundTimeoutMs <= 0)) throw new RangeError(`inputRequired.roundTimeoutMs must be a positive number (got ${options.roundTimeoutMs})`);
464
- return {
465
- maxRounds: options?.maxRounds ?? DEFAULT_LEGACY_SHIM_MAX_ROUNDS,
466
- roundTimeoutMs: options?.roundTimeoutMs ?? DEFAULT_LEGACY_SHIM_ROUND_TIMEOUT_MS,
467
- legacyShim: options?.legacyShim ?? true
468
- };
469
- }
470
- /**
471
- * Validates one `inputRequests` entry: malformed or unknown kinds are server
472
- * bugs and fail loudly on both eras. Shared by the modern seam's capability
473
- * check and the shim's gate.
474
- */
475
- function coerceEmbeddedInputRequest(method, key, entry) {
476
- if (entry === null || typeof entry !== "object" || typeof entry.method !== "string") throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an invalid input request '${key}': each inputRequests entry must be an embedded elicitation/create, sampling/createMessage, or roots/list request`);
477
- const embedded = entry;
478
- const required = require_src.requiredClientCapabilitiesForInputRequest(embedded);
479
- if (required === void 0) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input request '${key}' of kind '${embedded.method}', which is not an embedded request the 2026-07-28 revision defines`);
480
- return {
481
- embedded,
482
- required
483
- };
484
- }
485
- /**
486
- * The 2025-11-25 URL-mode wire shape requires an `elicitationId`; the 2026
487
- * in-band shape has none, so URL legs mint one (CSPRNG-backed, with a
488
- * getRandomValues fallback for runtimes without `randomUUID`).
489
- */
490
- function syntheticElicitationId() {
491
- const webCrypto = globalThis.crypto;
492
- if (webCrypto?.randomUUID !== void 0) return webCrypto.randomUUID();
493
- const bytes = new Uint8Array(16);
494
- webCrypto.getRandomValues(bytes);
495
- bytes[6] = bytes[6] & 15 | 64;
496
- bytes[8] = bytes[8] & 63 | 128;
497
- const hex = [...bytes].map((byte) => byte.toString(16).padStart(2, "0")).join("");
498
- return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
499
- }
500
- /** Per-family surfacing: tools/call → isError result (the 2025 idiom); prompts/resources → JSON-RPC error. */
501
- function legacyShimFailure(method, message) {
502
- if (method === "tools/call") return {
503
- content: [{
504
- type: "text",
505
- text: message
506
- }],
507
- isError: true
508
- };
509
- throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, message);
510
- }
511
- /** The fulfilment loop — see the module doc for the contract. */
512
- var LegacyInputRequiredShim = class {
513
- constructor(_host) {
514
- this._host = _host;
515
- }
516
- async fulfill(method, handler, request, ctx, firstResult) {
517
- const { maxRounds, roundTimeoutMs } = this._host;
518
- const outerSignal = ctx.mcpReq.signal;
519
- let current = firstResult;
520
- let round = 0;
521
- while (true) {
522
- round += 1;
523
- if (round > maxRounds) return legacyShimFailure(method, require_src.inputRequiredRoundsExceededMessage(method, maxRounds));
524
- const inputRequests = current.inputRequests;
525
- const hasInputRequests = inputRequests != null && Object.keys(inputRequests).length > 0;
526
- const requestState = typeof current.requestState === "string" ? current.requestState : void 0;
527
- if (!hasInputRequests && requestState === void 0) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result with neither inputRequests nor requestState (every InputRequiredResult must include at least one of the two)`);
528
- let responses;
529
- if (hasInputRequests) {
530
- const declared = this._host.resolvedClientCapabilities(ctx);
531
- const coerced = [];
532
- for (const [key, entry] of Object.entries(inputRequests)) {
533
- const { embedded, required } = coerceEmbeddedInputRequest(method, key, entry);
534
- if (embedded.method !== "roots/list" && embedded.params === void 0) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input request '${key}' of kind '${embedded.method}' without params`);
535
- if (require_src.missingClientCapabilities(required, declared) !== void 0) return legacyShimFailure(method, `Cannot request input '${key}' (${embedded.method}): the client on this 2025-era connection did not declare the required capability${declared === void 0 ? " (no client capabilities are available on this connection — per-request legacy serving cannot receive server-to-client requests)" : ""}`);
536
- coerced.push([key, embedded]);
537
- }
538
- const roundAbort = require_src.linkedRoundAbort(outerSignal);
539
- try {
540
- const legOptions = {
541
- relatedRequestId: ctx.mcpReq.id,
542
- timeout: roundTimeoutMs,
543
- resetTimeoutOnProgress: true,
544
- onprogress: () => {},
545
- signal: roundAbort.signal
546
- };
547
- const fulfilled = await Promise.all(coerced.map(async ([key, embedded]) => {
548
- try {
549
- return [key, await this._dispatchLeg(embedded, legOptions)];
550
- } catch (error) {
551
- roundAbort.abort(error);
552
- throw error;
553
- }
554
- }));
555
- responses = Object.fromEntries(fulfilled);
556
- } catch (error) {
557
- if (outerSignal.aborted) throw error;
558
- return legacyShimFailure(method, `Fulfilling input required by '${method}' failed: ${error instanceof Error ? error.message : String(error)}`);
559
- } finally {
560
- roundAbort.dispose();
561
- }
562
- } else await require_src.sleep(require_src.REQUEST_STATE_ONLY_LEG_PACING_MS, outerSignal);
563
- let ctxNext = {
564
- ...ctx,
565
- mcpReq: {
566
- ...ctx.mcpReq,
567
- inputResponses: responses,
568
- droppedInputResponseKeys: void 0,
569
- requestState: require_src.requestStateAccessor(requestState)
570
- }
571
- };
572
- if (requestState !== void 0) {
573
- const decoded = await this._host.verifyRequestState(requestState, ctxNext, method);
574
- if (decoded !== void 0) ctxNext = require_src.withRequestStateValue(ctxNext, decoded);
575
- }
576
- const next = await handler(request, ctxNext);
577
- if (!require_src.isInputRequiredResult(next)) return next;
578
- current = next;
579
- }
580
- }
581
- /** Routes one embedded request through the host's existing 2025-era senders (gate already ran). */
582
- async _dispatchLeg(embedded, options) {
583
- switch (embedded.method) {
584
- case "elicitation/create": {
585
- let params = embedded.params;
586
- if (params.mode === "url" && params.elicitationId === void 0) params = {
587
- ...params,
588
- elicitationId: syntheticElicitationId()
589
- };
590
- return await this._host.sendElicitation(params, options);
591
- }
592
- case "sampling/createMessage": return await this._host.sendSampling(embedded.params, options);
593
- case "roots/list": return await this._host.listRoots(embedded.params, options);
594
- }
595
- }
596
- };
597
-
598
- //#endregion
599
- //#region src/server/server.ts
600
- /**
601
- * The request methods whose 2026-07-28 result vocabulary includes
602
- * `input_required` (the multi round-trip methods). Returning an
603
- * input-required result from any other handler is a server bug.
604
- */
605
- const INPUT_REQUIRED_CAPABLE_METHODS = new Set([
606
- "tools/call",
607
- "prompts/get",
608
- "resources/read"
609
- ]);
610
- let writeClientIdentity;
611
- let installDiscoverHandler;
612
- /**
613
- * Package-internal: backfills the connection-scoped client-identity fields of a
614
- * per-request server instance from the request's validated `_meta` envelope, so the
615
- * (deprecated) {@linkcode Server.getClientCapabilities} / {@linkcode Server.getClientVersion}
616
- * accessors keep answering on instances that never see an `initialize` handshake.
617
- * Not public API.
618
- */
619
- function seedClientIdentityFromEnvelope(server, identity) {
620
- writeClientIdentity(server, identity);
621
- }
622
- /**
623
- * Package-internal: installs the modern-only `server/discover` handler on an instance
624
- * the HTTP entry has marked as serving the 2026-07-28 era, and makes sure the modern
625
- * revisions the entry serves appear in the instance's supported-versions list (so the
626
- * discover advertisement and version-mismatch errors name them). Idempotent.
627
- * Hand-constructed instances are unaffected: nothing else calls this, so they keep
628
- * answering `-32601` unless their own supported-versions list opts into a modern
629
- * revision. Not public API.
630
- */
631
- function installModernOnlyHandlers(server, servedModernVersions) {
632
- installDiscoverHandler(server, servedModernVersions);
633
- }
634
- /**
635
- * An MCP server on top of a pluggable transport.
636
- *
637
- * This server will automatically respond to the initialization flow as initiated from the client.
638
- *
639
- * @deprecated Use {@linkcode server/mcp.McpServer | McpServer} instead for the high-level API. Only use `Server` for advanced use cases.
640
- */
641
- var Server = class extends require_src.Protocol {
642
- _clientCapabilities;
643
- _clientVersion;
644
- static {
645
- writeClientIdentity = (server, identity) => {
646
- if (identity.clientCapabilities !== void 0) server._clientCapabilities = identity.clientCapabilities;
647
- if (identity.clientInfo !== void 0) server._clientVersion = identity.clientInfo;
648
- };
649
- installDiscoverHandler = (server, servedModernVersions) => {
650
- const missing = servedModernVersions.filter((version) => !server._supportedProtocolVersions.includes(version));
651
- if (missing.length > 0) server._supportedProtocolVersions = [...server._supportedProtocolVersions, ...missing];
652
- server.setRequestHandler("server/discover", () => server._ondiscover());
653
- };
654
- }
655
- _capabilities;
656
- _instructions;
657
- _jsonSchemaValidator;
658
- _cacheHints;
659
- _requestStateVerify;
660
- _inputRequiredServing;
661
- _legacyShim;
662
- /** Lazily-built legacy shim; the loop lives in legacyInputRequiredShim.ts behind a narrow host contract. */
663
- _legacyInputRequiredShim() {
664
- return this._legacyShim ??= new LegacyInputRequiredShim({
665
- maxRounds: this._inputRequiredServing.maxRounds,
666
- roundTimeoutMs: this._inputRequiredServing.roundTimeoutMs,
667
- resolvedClientCapabilities: (ctx) => this._inputRequestCapabilityView(ctx),
668
- verifyRequestState: (state, ctx, method) => this._verifyRequestState(state, ctx, method),
669
- sendElicitation: (params, options) => this._sendElicitationLeg(params, options, { validateAcceptedContent: false }),
670
- sendSampling: (params, options) => this.createMessage(params, options),
671
- listRoots: (params, options) => this.listRoots(params, options)
672
- });
673
- }
674
- /**
675
- * Callback for when initialization has fully completed (i.e., the client has sent an `notifications/initialized` notification).
676
- */
677
- oninitialized;
678
- /**
679
- * Initializes this server with the given name and version information.
680
- */
681
- constructor(_serverInfo, options) {
682
- super(options);
683
- this._serverInfo = _serverInfo;
684
- this._capabilities = options?.capabilities ? { ...options.capabilities } : {};
685
- this._instructions = options?.instructions;
686
- this._jsonSchemaValidator = options?.jsonSchemaValidator ?? new _modelcontextprotocol_server__shims.DefaultJsonSchemaValidator();
687
- this._requestStateVerify = options?.requestState?.verify;
688
- this._inputRequiredServing = resolveLegacyShimOptions(options?.inputRequired);
689
- if (options?.cacheHints !== void 0) {
690
- for (const [operation, hint] of Object.entries(options.cacheHints)) if (hint !== void 0) require_src.assertValidCacheHint(hint, `cacheHints['${operation}']`);
691
- this._cacheHints = options.cacheHints;
692
- }
693
- this.setRequestHandler("initialize", (request) => this._oninitialize(request));
694
- this.setNotificationHandler("notifications/initialized", () => this.oninitialized?.());
695
- if (require_src.modernProtocolVersions(this._supportedProtocolVersions).length > 0) this.setRequestHandler("server/discover", () => this._ondiscover());
696
- if (this._capabilities.logging) this._registerLoggingHandler();
697
- }
698
- /**
699
- * Registers the built-in `logging/setLevel` request handler.
700
- *
701
- * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577).
702
- * Remains functional during the deprecation window (at least twelve months).
703
- * Migrate to stderr logging (STDIO servers) or OpenTelemetry.
704
- */
705
- _registerLoggingHandler() {
706
- this.setRequestHandler("logging/setLevel", async (request, ctx) => {
707
- const transportSessionId = ctx.sessionId || ctx.http?.req?.headers.get("mcp-session-id") || void 0;
708
- const { level } = request.params;
709
- const parseResult = require_src.parseSchema(_modelcontextprotocol_core_internal.LoggingLevelSchema, level);
710
- if (parseResult.success) this._loggingLevels.set(transportSessionId, parseResult.data);
711
- return {};
712
- });
713
- }
714
- buildContext(ctx, transportInfo) {
715
- const hasHttpInfo = ctx.http || transportInfo?.request || transportInfo?.closeSSEStream || transportInfo?.closeStandaloneSSEStream;
716
- return {
717
- ...ctx,
718
- mcpReq: {
719
- ...ctx.mcpReq,
720
- log: (level, data, logger) => {
721
- if (!this._capabilities.logging) return Promise.resolve();
722
- let threshold;
723
- if (this._servedModernEra()) {
724
- threshold = ctx.mcpReq.envelope?.[_modelcontextprotocol_core_internal.LOG_LEVEL_META_KEY];
725
- if (threshold === void 0) return Promise.resolve();
726
- } else threshold = this._loggingLevels.get(ctx.sessionId) ?? this._loggingLevels.get(void 0);
727
- if (threshold !== void 0 && this.LOG_LEVEL_SEVERITY.get(level) < this.LOG_LEVEL_SEVERITY.get(threshold)) return Promise.resolve();
728
- return ctx.mcpReq.notify({
729
- method: "notifications/message",
730
- params: {
731
- level,
732
- data,
733
- logger
734
- }
735
- });
736
- },
737
- elicitInput: (params, options) => this.elicitInput(params, options),
738
- requestSampling: (params, options) => this.createMessage(params, options)
739
- },
740
- http: hasHttpInfo ? {
741
- ...ctx.http,
742
- req: transportInfo?.request,
743
- closeSSE: transportInfo?.closeSSEStream,
744
- closeStandaloneSSE: transportInfo?.closeStandaloneSSEStream
745
- } : void 0
746
- };
747
- }
748
- _loggingLevels = /* @__PURE__ */ new Map();
749
- LOG_LEVEL_SEVERITY = new Map(_modelcontextprotocol_core_internal.LoggingLevelSchema.options.map((level, index) => [level, index]));
750
- isMessageIgnored = (level, sessionId) => {
751
- const currentLevel = this._loggingLevels.get(sessionId);
752
- return currentLevel ? this.LOG_LEVEL_SEVERITY.get(level) < this.LOG_LEVEL_SEVERITY.get(currentLevel) : false;
753
- };
754
- /**
755
- * Registers new capabilities. This can only be called before connecting to a transport.
756
- *
757
- * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).
758
- */
759
- registerCapabilities(capabilities) {
760
- if (this.transport) throw new require_src.SdkError(require_src.SdkErrorCode.AlreadyConnected, "Cannot register capabilities after connecting to transport");
761
- const hadLogging = !!this._capabilities.logging;
762
- this._capabilities = require_src.mergeCapabilities(this._capabilities, capabilities);
763
- if (!hadLogging && this._capabilities.logging) this._registerLoggingHandler();
764
- }
765
- /**
766
- * Enforces server-side validation for `tools/call` results regardless of how the
767
- * handler was registered, attaches the configured per-operation cache hint
768
- * (when one exists) so the 2026-07-28 encode seam can fill `ttlMs`/`cacheScope`
769
- * for results that do not provide their own, and owns the multi-round-trip
770
- * seam: on the methods whose 2026-07-28 result vocabulary includes
771
- * `input_required` (`tools/call`, `prompts/get`, `resources/read`) an
772
- * input-required return skips result-schema validation and is checked
773
- * against the served era, the at-least-one rule, and the request's own
774
- * declared client capabilities; on every other method an input-required
775
- * return is a server bug and fails loudly. The hint rides a symbol-keyed
776
- * property that is never serialized, so 2025-era responses are unaffected.
777
- */
778
- _wrapHandler(method, handler) {
779
- if (method !== "tools/call") {
780
- const cacheHint = this._cacheHints?.[method];
781
- const isInputRequiredCapable = INPUT_REQUIRED_CAPABLE_METHODS.has(method);
782
- if (cacheHint === void 0 && !isInputRequiredCapable) return async (request, ctx) => {
783
- const result = await handler(request, ctx);
784
- if (require_src.isInputRequiredResult(result)) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result, but only tools/call, prompts/get and resources/read support input_required (protocol revision 2026-07-28)`);
785
- return result;
786
- };
787
- return async (request, ctx) => {
788
- const result = isInputRequiredCapable ? await this._invokeInputRequiredCapableHandler(method, handler, request, ctx) : await handler(request, ctx);
789
- if (require_src.isInputRequiredResult(result)) {
790
- if (!isInputRequiredCapable) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result, but only tools/call, prompts/get and resources/read support input_required (protocol revision 2026-07-28)`);
791
- return result;
792
- }
793
- return cacheHint === void 0 ? result : require_src.attachCacheHintFallback(result, cacheHint);
794
- };
795
- }
796
- return async (request, ctx) => {
797
- const codec = require_src.codecForVersion(this._negotiatedProtocolVersion);
798
- const validatedRequest = codec.validateRequest("tools/call", request);
799
- if (!validatedRequest.ok) throw new require_src.ProtocolError(validatedRequest.reason === "not-in-era" ? require_src.ProtocolErrorCode.InternalError : require_src.ProtocolErrorCode.InvalidParams, validatedRequest.reason === "not-in-era" ? "No wire schema for tools/call in the resolved era" : `Invalid tools/call request: ${validatedRequest.message}`);
800
- const result = await this._invokeInputRequiredCapableHandler("tools/call", handler, request, ctx);
801
- if (require_src.isInputRequiredResult(result)) return result;
802
- const normalizedResult = require_src.normalizeContentlessToolResult(result);
803
- const validationResult = codec.validateResult("tools/call", normalizedResult);
804
- if (!validationResult.ok) throw new require_src.ProtocolError(validationResult.reason === "not-in-era" ? require_src.ProtocolErrorCode.InternalError : require_src.ProtocolErrorCode.InvalidParams, validationResult.reason === "not-in-era" ? "No wire schema for tools/call in the resolved era" : `Invalid tools/call result: ${validationResult.message}`);
805
- return validationResult.value;
806
- };
807
- }
808
- /**
809
- * Whether this instance is bound to a 2026-07-28-or-later protocol
810
- * revision. Era is instance state — a serving entry (`createMcpHandler`,
811
- * `serveStdio`) marks the instance modern at construction; a 2025-era
812
- * `initialize` handshake binds it legacy. The multi-round-trip seam reads
813
- * this directly: there is no per-request era consult.
814
- */
815
- _servedModernEra() {
816
- return this._negotiatedProtocolVersion !== void 0 && require_src.isModernProtocolVersion(this._negotiatedProtocolVersion);
817
- }
818
- /**
819
- * Invokes a handler for one of the multi-round-trip methods and applies
820
- * the input-required seam:
821
- *
822
- * - a `UrlElicitationRequiredError` (or any 2025-style server→client
823
- * request idiom) escaping the handler on a request served on the
824
- * 2026-07-28 era fails LOUDLY with a clear steer to
825
- * `inputRequired.elicitUrl(...)` — the `-32042` error never reaches the
826
- * 2026-07-28 wire and the throw is not silently converted. Requests
827
- * served on the 2025 era keep today's `-32042` behavior byte-exact (the
828
- * error is rethrown unchanged).
829
- * - an input-required RETURN toward a 2026-07-28 request must satisfy
830
- * the at-least-one rule, and every embedded request must be covered by
831
- * the capabilities declared on the request's envelope (violations
832
- * answer the typed `-32021` error). Toward a 2025-era request the
833
- * return is fulfilled by the default-on legacy shim, whose own gate
834
- * consults the initialize-declared capabilities and surfaces
835
- * violations per family; `inputRequired.legacyShim: false` restores
836
- * the pre-shim loud failure.
837
- */
838
- async _invokeInputRequiredCapableHandler(method, handler, request, ctx) {
839
- const servedModern = this._servedModernEra();
840
- const rawRequestState = ctx.mcpReq.requestState();
841
- if (rawRequestState !== void 0 && typeof rawRequestState !== "string") throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, "Invalid or expired requestState", { reason: "invalid_request_state" });
842
- let ctxForHandler = ctx;
843
- if (typeof rawRequestState === "string") {
844
- const decoded = await this._verifyRequestState(rawRequestState, ctx, method);
845
- if (decoded !== void 0) ctxForHandler = require_src.withRequestStateValue(ctx, decoded);
846
- }
847
- let result;
848
- try {
849
- result = await handler(request, ctxForHandler);
850
- } catch (error) {
851
- if (error instanceof require_src.ProtocolError && error.code === require_src.ProtocolErrorCode.UrlElicitationRequired) {
852
- if (!servedModern) throw error;
853
- throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `URL elicitation cannot be signalled by throwing UrlElicitationRequiredError on protocol revision ${this._negotiatedProtocolVersion}: return inputRequired({ inputRequests: { …: inputRequired.elicitUrl(...) } }) from the handler instead. The urlElicitationRequired error (-32042) of earlier revisions is not available on this revision.`);
854
- }
855
- throw error;
856
- }
857
- if (!require_src.isInputRequiredResult(result)) return result;
858
- if (!servedModern) {
859
- if (!this._inputRequiredServing.legacyShim) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result, but this request is served on protocol revision ${this._negotiatedProtocolVersion ?? _modelcontextprotocol_core_internal.LATEST_PROTOCOL_VERSION}, which has no input_required vocabulary`);
860
- return await this._legacyInputRequiredShim().fulfill(method, handler, request, ctxForHandler, result);
861
- }
862
- const inputRequests = result.inputRequests;
863
- const hasInputRequests = inputRequests != null && Object.keys(inputRequests).length > 0;
864
- const hasRequestState = typeof result.requestState === "string";
865
- if (!hasInputRequests && !hasRequestState) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result with neither inputRequests nor requestState (every InputRequiredResult must include at least one of the two)`);
866
- if (hasInputRequests) {
867
- const declared = this._inputRequestCapabilityView(ctx);
868
- for (const [key, entry] of Object.entries(inputRequests)) {
869
- const { embedded, required } = coerceEmbeddedInputRequest(method, key, entry);
870
- const missing = require_src.missingClientCapabilities(required, declared);
871
- if (missing !== void 0) throw new require_src.MissingRequiredClientCapabilityError({ requiredCapabilities: missing }, `Cannot request input '${key}' (${embedded.method}): the request's client capabilities do not declare the required capability`);
872
- }
873
- }
874
- return result;
875
- }
876
- /**
877
- * Runs the configured `requestState.verify` hook and returns its
878
- * resolved value (`undefined` when unconfigured or the hook returns
879
- * nothing). Deny-on-error: any hook failure answers the frozen `-32602`;
880
- * the reason goes to `onerror` only.
881
- */
882
- async _verifyRequestState(state, ctx, method) {
883
- if (this._requestStateVerify === void 0) return;
884
- try {
885
- return await this._requestStateVerify(state, ctx);
886
- } catch (error) {
887
- this.onerror?.(/* @__PURE__ */ new Error(`requestState verification rejected ${method}: ${error instanceof Error ? error.message : String(error)}`));
888
- throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, "Invalid or expired requestState", { reason: "invalid_request_state" });
889
- }
890
- }
891
- /**
892
- * The per-request resolved client-capabilities view: the request's own
893
- * `_meta` envelope on the 2026 era; the `initialize`-declared state on a
894
- * 2025-era connection. Per-request instances that never saw an
895
- * initialize (stateless legacy) hold nothing, so gates refuse there.
896
- */
897
- _inputRequestCapabilityView(ctx) {
898
- return this._servedModernEra() ? ctx.mcpReq.envelope?.[_modelcontextprotocol_core_internal.CLIENT_CAPABILITIES_META_KEY] : this._clientCapabilities;
899
- }
900
- /**
901
- * Guard for the push-style server→client request APIs ({@linkcode createMessage},
902
- * {@linkcode elicitInput}, {@linkcode listRoots}, {@linkcode ping}) on a
903
- * modern-era instance: the 2026-07-28 revision has no server→client request
904
- * channel, so the call fails before any wire traffic with a typed error
905
- * whose message steers to `inputRequired(...)`. The base era gate would
906
- * also reject it; this guard runs first to carry the steer.
907
- */
908
- _assertPushApiInServedEra(method) {
909
- if (this._servedModernEra()) throw new require_src.SdkError(require_src.SdkErrorCode.MethodNotSupportedByProtocolVersion, `Server-to-client requests are not available on protocol revision ${this._negotiatedProtocolVersion}: '${method}' cannot be sent while serving a request on that revision. Return inputRequired({ ... }) from the handler instead — the client fulfils the embedded requests and retries the original request (multi round-trip requests).`, {
910
- method,
911
- era: "2026-07-28"
912
- });
913
- }
914
- assertCapabilityForMethod(method) {
915
- switch (method) {
916
- case "sampling/createMessage":
917
- if (!this._clientCapabilities?.sampling) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Client does not support sampling (required for ${method})`);
918
- break;
919
- case "elicitation/create":
920
- if (!this._clientCapabilities?.elicitation) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Client does not support elicitation (required for ${method})`);
921
- break;
922
- case "roots/list":
923
- if (!this._clientCapabilities?.roots) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Client does not support listing roots (required for ${method})`);
924
- break;
925
- case "ping": break;
926
- }
927
- }
928
- assertNotificationCapability(method) {
929
- switch (method) {
930
- case "notifications/message":
931
- if (!this._capabilities.logging) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support logging (required for ${method})`);
932
- break;
933
- case "notifications/resources/updated":
934
- case "notifications/resources/list_changed":
935
- if (!this._capabilities.resources) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support notifying about resources (required for ${method})`);
936
- break;
937
- case "notifications/tools/list_changed":
938
- if (!this._capabilities.tools) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support notifying of tool list changes (required for ${method})`);
939
- break;
940
- case "notifications/prompts/list_changed":
941
- if (!this._capabilities.prompts) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support notifying of prompt list changes (required for ${method})`);
942
- break;
943
- case "notifications/elicitation/complete":
944
- if (!this._clientCapabilities?.elicitation?.url) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Client does not support URL elicitation (required for ${method})`);
945
- break;
946
- case "notifications/cancelled": break;
947
- case "notifications/progress": break;
948
- }
949
- }
950
- assertRequestHandlerCapability(method) {
951
- switch (method) {
952
- case "completion/complete":
953
- if (!this._capabilities.completions) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support completions (required for ${method})`);
954
- break;
955
- case "logging/setLevel":
956
- if (!this._capabilities.logging) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support logging (required for ${method})`);
957
- break;
958
- case "prompts/get":
959
- case "prompts/list":
960
- if (!this._capabilities.prompts) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support prompts (required for ${method})`);
961
- break;
962
- case "resources/list":
963
- case "resources/templates/list":
964
- case "resources/read":
965
- if (!this._capabilities.resources) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support resources (required for ${method})`);
966
- break;
967
- case "tools/call":
968
- case "tools/list":
969
- if (!this._capabilities.tools) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, `Server does not support tools (required for ${method})`);
970
- break;
971
- case "ping":
972
- case "initialize": break;
973
- }
974
- }
975
- async _oninitialize(request) {
976
- const requestedVersion = request.params.protocolVersion;
977
- this._clientCapabilities = request.params.capabilities;
978
- this._clientVersion = request.params.clientInfo;
979
- const legacyVersions = require_src.legacyProtocolVersions(this._supportedProtocolVersions);
980
- const protocolVersion = legacyVersions.includes(requestedVersion) ? requestedVersion : legacyVersions[0] ?? _modelcontextprotocol_core_internal.LATEST_PROTOCOL_VERSION;
981
- this._negotiatedProtocolVersion = protocolVersion;
982
- this.transport?.setProtocolVersion?.(protocolVersion);
983
- return {
984
- protocolVersion,
985
- capabilities: this.getCapabilities(),
986
- serverInfo: this._serverInfo,
987
- ...this._instructions && { instructions: this._instructions }
988
- };
989
- }
990
- /**
991
- * Answers `server/discover` (protocol revision 2026-07-28). `supportedVersions`
992
- * lists only modern revisions (2025-era versions are negotiated via `initialize`);
993
- * the advertised capabilities exclude the listChanged/subscribe-class capabilities
994
- * (see {@linkcode discoverAdvertisedCapabilities}).
995
- */
996
- _ondiscover() {
997
- return {
998
- supportedVersions: require_src.modernProtocolVersions(this._supportedProtocolVersions),
999
- capabilities: discoverAdvertisedCapabilities(this.getCapabilities()),
1000
- serverInfo: this._serverInfo,
1001
- ...this._instructions && { instructions: this._instructions }
1002
- };
1003
- }
1004
- /**
1005
- * After initialization has completed, this will be populated with the client's reported capabilities.
1006
- *
1007
- * @deprecated Read client identity from the per-request handler context instead: on
1008
- * 2026-07-28 (per-request envelope) requests `ctx.mcpReq.envelope` carries the client's
1009
- * declared capabilities, while on 2025-era connections this accessor keeps returning the
1010
- * `initialize`-scoped value. The accessor remains functional — instances serving the
1011
- * 2026-07-28 era are backfilled per request from the validated envelope.
1012
- */
1013
- getClientCapabilities() {
1014
- return this._clientCapabilities;
1015
- }
1016
- /**
1017
- * After initialization has completed, this will be populated with information about the client's name and version.
1018
- *
1019
- * @deprecated Read client identity from the per-request handler context instead: on
1020
- * 2026-07-28 (per-request envelope) requests `ctx.mcpReq.envelope` carries the client's
1021
- * name and version, while on 2025-era connections this accessor keeps returning the
1022
- * `initialize`-scoped value. The accessor remains functional — instances serving the
1023
- * 2026-07-28 era are backfilled per request from the validated envelope.
1024
- */
1025
- getClientVersion() {
1026
- return this._clientVersion;
1027
- }
1028
- /**
1029
- * After initialization has completed, this will be populated with the protocol version negotiated
1030
- * with the client (the version the server responded with during the initialize handshake), or
1031
- * `undefined` before initialization.
1032
- *
1033
- * @deprecated Read the protocol revision from the per-request handler context instead: on
1034
- * 2026-07-28 (per-request envelope) requests `ctx.mcpReq.envelope` names the revision the
1035
- * request was sent for, while on 2025-era connections this accessor keeps returning the
1036
- * `initialize`-negotiated version. The accessor remains functional — instances serving the
1037
- * 2026-07-28 era report that revision.
1038
- */
1039
- getNegotiatedProtocolVersion() {
1040
- return this._negotiatedProtocolVersion;
1041
- }
1042
- /**
1043
- * Project a `tools/call` result through this instance's negotiated wire
1044
- * codec — the era-agnostic SEP-2106 §4.3 TextContent auto-append, plus on
1045
- * the 2025 era the `{result:…}` wrap when `structuredContent` is a
1046
- * non-object value or the advertised `outputSchema` had a non-object root.
1047
- * Identity for object-shaped `structuredContent` on the 2026 era.
1048
- *
1049
- * `McpServer`'s built-in `tools/call` handler routes through this method.
1050
- * Low-level `setRequestHandler('tools/call', …)` authors call it
1051
- * themselves so the projection lives in one place (the codec) and the
1052
- * server-side handler stays era-blind.
1053
- *
1054
- * This is the only codec function exposed on `Server` — the full
1055
- * `WireCodec` is intentionally not part of the public surface.
1056
- */
1057
- projectCallToolResult(result, advertisedOutputSchema) {
1058
- return this._wireCodec().projectCallToolResult(result, advertisedOutputSchema);
1059
- }
1060
- /**
1061
- * Returns the current server capabilities.
1062
- */
1063
- getCapabilities() {
1064
- return this._capabilities;
1065
- }
1066
- /**
1067
- * Sends a `ping` request to the connected client.
1068
- *
1069
- * @deprecated The 2026-07-28 protocol removed ping; it throws on a 2026-07-28-era instance.
1070
- * If your factory serves both eras, this only works on the legacy path.
1071
- */
1072
- async ping() {
1073
- this._assertPushApiInServedEra("ping");
1074
- return this.request({ method: "ping" });
1075
- }
1076
- async createMessage(params, options) {
1077
- this._assertPushApiInServedEra("sampling/createMessage");
1078
- if ((params.tools || params.toolChoice) && !this._clientCapabilities?.sampling?.tools) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, "Client does not support sampling tools capability.");
1079
- if (params.messages.length > 0) {
1080
- const lastMessage = params.messages.at(-1);
1081
- const lastContent = Array.isArray(lastMessage.content) ? lastMessage.content : [lastMessage.content];
1082
- const hasToolResults = lastContent.some((c) => c.type === "tool_result");
1083
- const previousMessage = params.messages.length > 1 ? params.messages.at(-2) : void 0;
1084
- const previousContent = previousMessage ? Array.isArray(previousMessage.content) ? previousMessage.content : [previousMessage.content] : [];
1085
- const hasPreviousToolUse = previousContent.some((c) => c.type === "tool_use");
1086
- if (hasToolResults) {
1087
- if (lastContent.some((c) => c.type !== "tool_result")) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, "The last message must contain only tool_result content if any is present");
1088
- if (!hasPreviousToolUse) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, "tool_result blocks are not matching any tool_use from the previous message");
1089
- }
1090
- if (hasPreviousToolUse) {
1091
- const toolUseIds = new Set(previousContent.filter((c) => c.type === "tool_use").map((c) => c.id));
1092
- const toolResultIds = new Set(lastContent.filter((c) => c.type === "tool_result").map((c) => c.toolUseId));
1093
- if (toolUseIds.size !== toolResultIds.size || ![...toolUseIds].every((id) => toolResultIds.has(id))) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, "ids of tool_result blocks and tool_use blocks from previous message do not match");
1094
- }
1095
- }
1096
- const hasTools = Boolean(params.tools || params.toolChoice);
1097
- const wide = await this.request({
1098
- method: "sampling/createMessage",
1099
- params
1100
- }, options);
1101
- const outcome = this._wireCodec().samplingResultVariant(hasTools, wide);
1102
- if (!outcome.ok) throw new require_src.SdkError(require_src.SdkErrorCode.InvalidResult, `Invalid sampling/createMessage result: ${outcome.reason === "invalid" ? outcome.message : outcome.reason}`);
1103
- return outcome.value;
1104
- }
1105
- /**
1106
- * Creates an elicitation request for the given parameters.
1107
- * For backwards compatibility, `mode` may be omitted for form requests and will default to `"form"`.
1108
- * @param params The parameters for the elicitation request.
1109
- * @param options Optional request options.
1110
- * @returns The result of the elicitation request.
1111
- *
1112
- * @deprecated Throws on a 2026-07-28-era request — use {@link index.inputRequired | inputRequired} (multi-round-trip)
1113
- * instead. The 2025 push-style server-to-client request model is replaced by input_required
1114
- * results in the 2026-07-28 protocol. If your factory serves both eras, this only works on the
1115
- * legacy path.
1116
- */
1117
- async elicitInput(params, options) {
1118
- this._assertPushApiInServedEra("elicitation/create");
1119
- switch (params.mode ?? "form") {
1120
- case "url":
1121
- if (!this._clientCapabilities?.elicitation?.url) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, "Client does not support url elicitation.");
1122
- break;
1123
- case "form":
1124
- if (!this._clientCapabilities?.elicitation?.form) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, "Client does not support form elicitation.");
1125
- break;
1126
- }
1127
- return this._sendElicitationLeg(params, options);
1128
- }
1129
- /**
1130
- * The capability-check-free core of {@linkcode elicitInput}. The shim
1131
- * uses it because its gate differs from the public checks: a bare
1132
- * `elicitation: {}` counts as form support (the pre-mode rule), and
1133
- * accepted content passes through unvalidated for parity with the
1134
- * modern client driver (handlers validate via the schema-aware
1135
- * `acceptedContent` overload and can re-ask).
1136
- */
1137
- async _sendElicitationLeg(params, options, behavior) {
1138
- const mode = params.mode ?? "form";
1139
- const validateAcceptedContent = behavior?.validateAcceptedContent ?? true;
1140
- switch (mode) {
1141
- case "url": {
1142
- const urlParams = params;
1143
- return this.request({
1144
- method: "elicitation/create",
1145
- params: urlParams
1146
- }, options);
1147
- }
1148
- case "form": {
1149
- const formParams = params.mode === "form" ? params : {
1150
- ...params,
1151
- mode: "form"
1152
- };
1153
- const result = await this.request({
1154
- method: "elicitation/create",
1155
- params: formParams
1156
- }, options);
1157
- if (validateAcceptedContent && result.action === "accept" && result.content && formParams.requestedSchema) try {
1158
- const validationResult = this._jsonSchemaValidator.getValidator(formParams.requestedSchema)(result.content);
1159
- if (!validationResult.valid) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`);
1160
- } catch (error) {
1161
- if (error instanceof require_src.ProtocolError) throw error;
1162
- throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InternalError, `Error validating elicitation response: ${error instanceof Error ? error.message : String(error)}`);
1163
- }
1164
- return result;
1165
- }
1166
- }
1167
- }
1168
- /**
1169
- * Creates a reusable callback that, when invoked, will send a `notifications/elicitation/complete`
1170
- * notification for the specified elicitation ID.
1171
- *
1172
- * The notification (and the `elicitationId` it references) exists only on protocol revision
1173
- * 2025-11-25 — the 2026-07-28 draft removed both. On a connection negotiated at 2026-07-28 the
1174
- * returned callback rejects with a typed local error before anything reaches the transport
1175
- * (the method is not part of that revision's wire registry).
1176
- *
1177
- * @param elicitationId The ID of the elicitation to mark as complete.
1178
- * @param options Optional notification options. Useful when the completion notification should be related to a prior request.
1179
- * @returns A function that emits the completion notification when awaited.
1180
- */
1181
- createElicitationCompletionNotifier(elicitationId, options) {
1182
- if (!this._clientCapabilities?.elicitation?.url) throw new require_src.SdkError(require_src.SdkErrorCode.CapabilityNotSupported, "Client does not support URL elicitation (required for notifications/elicitation/complete)");
1183
- return () => this.notification({
1184
- method: "notifications/elicitation/complete",
1185
- params: { elicitationId }
1186
- }, options);
1187
- }
1188
- /**
1189
- * Requests the list of roots from the client.
1190
- *
1191
- * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577).
1192
- * Throws on a 2026-07-28-era request — use {@link index.inputRequired | inputRequired} (multi-round-trip) instead,
1193
- * or migrate to passing paths via tool parameters, resource URIs, or configuration. The 2025
1194
- * push-style server-to-client request model is replaced by input_required results in the
1195
- * 2026-07-28 protocol. If your factory serves both eras, this only works on the legacy path.
1196
- */
1197
- async listRoots(params, options) {
1198
- this._assertPushApiInServedEra("roots/list");
1199
- return this.request({
1200
- method: "roots/list",
1201
- params
1202
- }, options);
1203
- }
1204
- /**
1205
- * Sends a logging message to the client, if connected.
1206
- * Note: You only need to send the parameters object, not the entire JSON-RPC message.
1207
- * @see {@linkcode LoggingMessageNotification}
1208
- * @param params
1209
- * @param sessionId Optional for stateless transports and backward compatibility.
1210
- *
1211
- * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577).
1212
- * Remains functional during the deprecation window (at least twelve months).
1213
- * Migrate to stderr logging (STDIO servers) or OpenTelemetry.
1214
- */
1215
- async sendLoggingMessage(params, sessionId) {
1216
- if (this._capabilities.logging && !this.isMessageIgnored(params.level, sessionId)) return this.notification({
1217
- method: "notifications/message",
1218
- params
1219
- });
1220
- }
1221
- async sendResourceUpdated(params) {
1222
- return this.notification({
1223
- method: "notifications/resources/updated",
1224
- params
1225
- });
1226
- }
1227
- async sendResourceListChanged() {
1228
- return this.notification({ method: "notifications/resources/list_changed" });
1229
- }
1230
- async sendToolListChanged() {
1231
- return this.notification({ method: "notifications/tools/list_changed" });
1232
- }
1233
- async sendPromptListChanged() {
1234
- return this.notification({ method: "notifications/prompts/list_changed" });
1235
- }
1236
- };
1237
- /**
1238
- * The capability set a server advertises on `server/discover`. Pure — never
1239
- * mutates the input; the legacy `initialize` advertisement is untouched.
1240
- *
1241
- * The serving entries serve `subscriptions/listen` themselves, so the
1242
- * `listChanged` and `resources.subscribe` capability bits are advertised
1243
- * as-is: a modern-era client uses them to decide which notification types to
1244
- * request on its listen filter.
1245
- */
1246
- function discoverAdvertisedCapabilities(capabilities) {
1247
- return { ...capabilities };
1248
- }
1249
-
1250
- //#endregion
1251
- //#region src/server/mcp.ts
1252
- /**
1253
- * High-level MCP server that provides a simpler API for working with resources, tools, and prompts.
1254
- * For advanced usage (like sending notifications or setting custom request handlers), use the underlying
1255
- * {@linkcode Server} instance available via the {@linkcode McpServer.server | server} property.
1256
- *
1257
- * @example
1258
- * ```ts source="./mcp.examples.ts#McpServer_basicUsage"
1259
- * const server = new McpServer({
1260
- * name: 'my-server',
1261
- * version: '1.0.0'
1262
- * });
1263
- * ```
1264
- */
1265
- var McpServer = class {
1266
- /**
1267
- * The underlying {@linkcode Server} instance, useful for advanced operations like sending notifications.
1268
- */
1269
- server;
1270
- _registeredResources = {};
1271
- _registeredResourceTemplates = {};
1272
- _registeredTools = {};
1273
- _registeredPrompts = {};
1274
- /**
1275
- * Per-tool JSON-converted `inputSchema`, memoized so the SEP-2243
1276
- * registration-time scan and the pre-dispatch validation step share one
1277
- * conversion instead of paying it twice per request under the
1278
- * per-request-factory `createMcpHandler` model.
1279
- */
1280
- _toolInputSchemaJson = {};
1281
- /**
1282
- * The JSON-serialized `inputSchema` of a registered tool, or `undefined`
1283
- * when no such tool is registered. Used by the HTTP entry's pre-dispatch
1284
- * SEP-2243 `Mcp-Param-*` validation step (which needs the same JSON Schema
1285
- * `tools/list` would emit, before dispatch reaches the handler).
1286
- *
1287
- * @internal
1288
- */
1289
- toolInputSchemaJson(name) {
1290
- const tool = this._registeredTools[name];
1291
- if (tool === void 0 || !tool.enabled) return void 0;
1292
- if (Object.hasOwn(this._toolInputSchemaJson, name)) return this._toolInputSchemaJson[name];
1293
- if (tool.inputSchema === void 0) return EMPTY_OBJECT_JSON_SCHEMA;
1294
- try {
1295
- const json = require_src.standardSchemaToJsonSchema(tool.inputSchema, "input");
1296
- this._toolInputSchemaJson[name] = json;
1297
- return json;
1298
- } catch {
1299
- return;
1300
- }
1301
- }
1302
- constructor(serverInfo, options) {
1303
- this.server = new Server(serverInfo, options);
1304
- if (options?.capabilities?.tools) this.setToolRequestHandlers();
1305
- if (options?.capabilities?.resources) this.setResourceRequestHandlers();
1306
- if (options?.capabilities?.prompts) this.setPromptRequestHandlers();
1307
- }
1308
- /**
1309
- * Attaches to the given transport, starts it, and starts listening for messages.
1310
- *
1311
- * The `server` object assumes ownership of the {@linkcode Transport}, replacing any callbacks that have already been set, and expects that it is the only user of the {@linkcode Transport} instance going forward.
1312
- *
1313
- * @example
1314
- * ```ts source="./mcp.examples.ts#McpServer_connect_stdio"
1315
- * const server = new McpServer({ name: 'my-server', version: '1.0.0' });
1316
- * const transport = new StdioServerTransport();
1317
- * await server.connect(transport);
1318
- * ```
1319
- */
1320
- async connect(transport) {
1321
- return await this.server.connect(transport);
1322
- }
1323
- /**
1324
- * Closes the connection.
1325
- */
1326
- async close() {
1327
- await this.server.close();
1328
- }
1329
- _toolHandlersInitialized = false;
1330
- setToolRequestHandlers() {
1331
- if (this._toolHandlersInitialized) return;
1332
- this.server.assertCanSetRequestHandler("tools/list");
1333
- this.server.assertCanSetRequestHandler("tools/call");
1334
- this.server.registerCapabilities({ tools: { listChanged: this.server.getCapabilities().tools?.listChanged ?? true } });
1335
- this.server.setRequestHandler("tools/list", () => ({ tools: Object.entries(this._registeredTools).filter(([, tool]) => tool.enabled).map(([name, tool]) => {
1336
- const toolDefinition = {
1337
- name,
1338
- title: tool.title,
1339
- description: tool.description,
1340
- inputSchema: tool.inputSchema ? require_src.standardSchemaToJsonSchema(tool.inputSchema, "input") : EMPTY_OBJECT_JSON_SCHEMA,
1341
- annotations: tool.annotations,
1342
- icons: tool.icons,
1343
- execution: tool.execution,
1344
- _meta: tool._meta
1345
- };
1346
- if (tool.outputSchema) toolDefinition.outputSchema = require_src.standardSchemaToJsonSchema(tool.outputSchema, "output");
1347
- return toolDefinition;
1348
- }) }));
1349
- this.server.setRequestHandler("tools/call", async (request, ctx) => {
1350
- const tool = this._registeredTools[request.params.name];
1351
- if (!tool) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Tool ${request.params.name} not found`);
1352
- if (!tool.enabled) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Tool ${request.params.name} disabled`);
1353
- try {
1354
- const args = await this.validateToolInput(tool, request.params.arguments, request.params.name);
1355
- const result = await this.executeToolHandler(tool, args, ctx);
1356
- await this.validateToolOutput(tool, result, request.params.name);
1357
- if (require_src.isInputRequiredResult(result)) return result;
1358
- return this.server.projectCallToolResult(result, tool.outputSchemaJson);
1359
- } catch (error) {
1360
- if (error instanceof require_src.ProtocolError && error.code === require_src.ProtocolErrorCode.UrlElicitationRequired) throw error;
1361
- return this.createToolError(error instanceof Error ? error.message : String(error));
1362
- }
1363
- });
1364
- this._toolHandlersInitialized = true;
1365
- }
1366
- /**
1367
- * Creates a tool error result.
1368
- *
1369
- * @param errorMessage - The error message.
1370
- * @returns The tool error result.
1371
- */
1372
- createToolError(errorMessage) {
1373
- return {
1374
- content: [{
1375
- type: "text",
1376
- text: errorMessage
1377
- }],
1378
- isError: true
1379
- };
1380
- }
1381
- /**
1382
- * Validates tool input arguments against the tool's input schema.
1383
- */
1384
- async validateToolInput(tool, args, toolName) {
1385
- if (!tool.inputSchema) return;
1386
- const parseResult = await require_src.validateStandardSchema(tool.inputSchema, args ?? {});
1387
- if (!parseResult.success) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Input validation error: Invalid arguments for tool ${toolName}: ${parseResult.error}`);
1388
- return parseResult.data;
1389
- }
1390
- /**
1391
- * Validates tool output against the tool's output schema.
1392
- */
1393
- async validateToolOutput(tool, result, toolName) {
1394
- if (!tool.outputSchema) return;
1395
- if (require_src.isInputRequiredResult(result)) return;
1396
- if (result.isError) return;
1397
- if (result.structuredContent === void 0) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Output validation error: Tool ${toolName} has an output schema but no structured content was provided`);
1398
- const parseResult = await require_src.validateStandardSchema(tool.outputSchema, result.structuredContent);
1399
- if (!parseResult.success) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${toolName}: ${parseResult.error}`);
1400
- }
1401
- /**
1402
- * Executes a tool handler.
1403
- */
1404
- async executeToolHandler(tool, args, ctx) {
1405
- return tool.executor(args, ctx);
1406
- }
1407
- _completionHandlerInitialized = false;
1408
- setCompletionRequestHandler() {
1409
- if (this._completionHandlerInitialized) return;
1410
- this.server.assertCanSetRequestHandler("completion/complete");
1411
- this.server.registerCapabilities({ completions: {} });
1412
- this.server.setRequestHandler("completion/complete", async (request) => {
1413
- switch (request.params.ref.type) {
1414
- case "ref/prompt":
1415
- require_src.assertCompleteRequestPrompt(request);
1416
- return this.handlePromptCompletion(request, request.params.ref);
1417
- case "ref/resource":
1418
- require_src.assertCompleteRequestResourceTemplate(request);
1419
- return this.handleResourceCompletion(request, request.params.ref);
1420
- default: throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Invalid completion reference: ${request.params.ref}`);
1421
- }
1422
- });
1423
- this._completionHandlerInitialized = true;
1424
- }
1425
- async handlePromptCompletion(request, ref) {
1426
- const prompt = this._registeredPrompts[ref.name];
1427
- if (!prompt) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Prompt ${ref.name} not found`);
1428
- if (!prompt.enabled) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Prompt ${ref.name} disabled`);
1429
- if (!prompt.argsSchema) return EMPTY_COMPLETION_RESULT;
1430
- const field = unwrapOptionalSchema(getSchemaShape(prompt.argsSchema)?.[request.params.argument.name]);
1431
- if (!isCompletable(field)) return EMPTY_COMPLETION_RESULT;
1432
- const completer = getCompleter(field);
1433
- if (!completer) return EMPTY_COMPLETION_RESULT;
1434
- return createCompletionResult(await completer(request.params.argument.value, request.params.context));
1435
- }
1436
- async handleResourceCompletion(request, ref) {
1437
- const template = Object.values(this._registeredResourceTemplates).find((t) => t.resourceTemplate.uriTemplate.toString() === ref.uri);
1438
- if (!template) {
1439
- if (this._registeredResources[ref.uri]) return EMPTY_COMPLETION_RESULT;
1440
- throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Resource template ${request.params.ref.uri} not found`);
1441
- }
1442
- const completer = template.resourceTemplate.completeCallback(request.params.argument.name);
1443
- if (!completer) return EMPTY_COMPLETION_RESULT;
1444
- return createCompletionResult(await completer(request.params.argument.value, request.params.context));
1445
- }
1446
- _resourceHandlersInitialized = false;
1447
- setResourceRequestHandlers() {
1448
- if (this._resourceHandlersInitialized) return;
1449
- this.server.assertCanSetRequestHandler("resources/list");
1450
- this.server.assertCanSetRequestHandler("resources/templates/list");
1451
- this.server.assertCanSetRequestHandler("resources/read");
1452
- this.server.registerCapabilities({ resources: { listChanged: this.server.getCapabilities().resources?.listChanged ?? true } });
1453
- this.server.setRequestHandler("resources/list", async (_request, ctx) => {
1454
- const resources = Object.entries(this._registeredResources).filter(([_, resource]) => resource.enabled).map(([uri, resource]) => ({
1455
- uri,
1456
- name: resource.name,
1457
- ...resource.metadata
1458
- }));
1459
- const templateResources = [];
1460
- for (const template of Object.values(this._registeredResourceTemplates)) {
1461
- if (!template.resourceTemplate.listCallback) continue;
1462
- const result = await template.resourceTemplate.listCallback(ctx);
1463
- for (const resource of result.resources) templateResources.push({
1464
- ...template.metadata,
1465
- ...resource
1466
- });
1467
- }
1468
- return { resources: [...resources, ...templateResources] };
1469
- });
1470
- this.server.setRequestHandler("resources/templates/list", async () => {
1471
- return { resourceTemplates: Object.entries(this._registeredResourceTemplates).map(([name, template]) => ({
1472
- name,
1473
- uriTemplate: template.resourceTemplate.uriTemplate.toString(),
1474
- ...template.metadata
1475
- })) };
1476
- });
1477
- this.server.setRequestHandler("resources/read", async (request, ctx) => {
1478
- let uri;
1479
- try {
1480
- uri = new URL(request.params.uri);
1481
- } catch {
1482
- throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Resource URI ${request.params.uri} is invalid`, {
1483
- uri: request.params.uri,
1484
- reason: "invalid_uri"
1485
- });
1486
- }
1487
- const resource = this._registeredResources[uri.toString()];
1488
- if (resource) {
1489
- if (!resource.enabled) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Resource ${uri} disabled`);
1490
- return require_src.attachCacheHintFallback(await resource.readCallback(uri, ctx), resource.cacheHint);
1491
- }
1492
- for (const template of Object.values(this._registeredResourceTemplates)) {
1493
- const variables = template.resourceTemplate.uriTemplate.match(uri.toString());
1494
- if (variables) return require_src.attachCacheHintFallback(await template.readCallback(uri, variables, ctx), template.cacheHint);
1495
- }
1496
- throw new require_src.ResourceNotFoundError(request.params.uri);
1497
- });
1498
- this._resourceHandlersInitialized = true;
1499
- }
1500
- _promptHandlersInitialized = false;
1501
- setPromptRequestHandlers() {
1502
- if (this._promptHandlersInitialized) return;
1503
- this.server.assertCanSetRequestHandler("prompts/list");
1504
- this.server.assertCanSetRequestHandler("prompts/get");
1505
- this.server.registerCapabilities({ prompts: { listChanged: this.server.getCapabilities().prompts?.listChanged ?? true } });
1506
- this.server.setRequestHandler("prompts/list", () => ({ prompts: Object.entries(this._registeredPrompts).filter(([, prompt]) => prompt.enabled).map(([name, prompt]) => {
1507
- return {
1508
- name,
1509
- title: prompt.title,
1510
- description: prompt.description,
1511
- arguments: prompt.argsSchema ? require_src.promptArgumentsFromStandardSchema(prompt.argsSchema) : void 0,
1512
- icons: prompt.icons,
1513
- _meta: prompt._meta
1514
- };
1515
- }) }));
1516
- this.server.setRequestHandler("prompts/get", async (request, ctx) => {
1517
- const prompt = this._registeredPrompts[request.params.name];
1518
- if (!prompt) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Prompt ${request.params.name} not found`);
1519
- if (!prompt.enabled) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Prompt ${request.params.name} disabled`);
1520
- return prompt.handler(request.params.arguments, ctx);
1521
- });
1522
- this._promptHandlersInitialized = true;
1523
- }
1524
- registerResource(name, uriOrTemplate, config, readCallback) {
1525
- const cacheHint = config.cacheHint;
1526
- let metadata = config;
1527
- if (cacheHint !== void 0) {
1528
- require_src.assertValidCacheHint(cacheHint, `resource ${name}`);
1529
- const rest = { ...config };
1530
- delete rest.cacheHint;
1531
- metadata = rest;
1532
- }
1533
- if (typeof uriOrTemplate === "string") {
1534
- if (this._registeredResources[uriOrTemplate]) throw new Error(`Resource ${uriOrTemplate} is already registered`);
1535
- const registeredResource = this._createRegisteredResource(name, config.title, uriOrTemplate, metadata, readCallback);
1536
- if (cacheHint !== void 0) registeredResource.cacheHint = cacheHint;
1537
- this.setResourceRequestHandlers();
1538
- this.sendResourceListChanged();
1539
- return registeredResource;
1540
- } else {
1541
- if (this._registeredResourceTemplates[name]) throw new Error(`Resource template ${name} is already registered`);
1542
- const registeredResourceTemplate = this._createRegisteredResourceTemplate(name, config.title, uriOrTemplate, metadata, readCallback);
1543
- if (cacheHint !== void 0) registeredResourceTemplate.cacheHint = cacheHint;
1544
- this.setResourceRequestHandlers();
1545
- this.sendResourceListChanged();
1546
- return registeredResourceTemplate;
1547
- }
1548
- }
1549
- _createRegisteredResource(name, title, uri, metadata, readCallback) {
1550
- const registeredResource = {
1551
- name,
1552
- title,
1553
- metadata,
1554
- readCallback,
1555
- enabled: true,
1556
- disable: () => registeredResource.update({ enabled: false }),
1557
- enable: () => registeredResource.update({ enabled: true }),
1558
- remove: () => registeredResource.update({ uri: null }),
1559
- update: (updates) => {
1560
- if (updates.uri !== void 0 && updates.uri !== uri) {
1561
- delete this._registeredResources[uri];
1562
- if (updates.uri) this._registeredResources[updates.uri] = registeredResource;
1563
- }
1564
- if (updates.name !== void 0) registeredResource.name = updates.name;
1565
- if (updates.title !== void 0) registeredResource.title = updates.title;
1566
- if (updates.metadata !== void 0) registeredResource.metadata = updates.metadata;
1567
- if (updates.callback !== void 0) registeredResource.readCallback = updates.callback;
1568
- if (updates.enabled !== void 0) registeredResource.enabled = updates.enabled;
1569
- this.sendResourceListChanged();
1570
- }
1571
- };
1572
- this._registeredResources[uri] = registeredResource;
1573
- return registeredResource;
1574
- }
1575
- _createRegisteredResourceTemplate(name, title, template, metadata, readCallback) {
1576
- const registeredResourceTemplate = {
1577
- resourceTemplate: template,
1578
- title,
1579
- metadata,
1580
- readCallback,
1581
- enabled: true,
1582
- disable: () => registeredResourceTemplate.update({ enabled: false }),
1583
- enable: () => registeredResourceTemplate.update({ enabled: true }),
1584
- remove: () => registeredResourceTemplate.update({ name: null }),
1585
- update: (updates) => {
1586
- if (updates.name !== void 0 && updates.name !== name) {
1587
- delete this._registeredResourceTemplates[name];
1588
- if (updates.name) this._registeredResourceTemplates[updates.name] = registeredResourceTemplate;
1589
- }
1590
- if (updates.title !== void 0) registeredResourceTemplate.title = updates.title;
1591
- if (updates.template !== void 0) registeredResourceTemplate.resourceTemplate = updates.template;
1592
- if (updates.metadata !== void 0) registeredResourceTemplate.metadata = updates.metadata;
1593
- if (updates.callback !== void 0) registeredResourceTemplate.readCallback = updates.callback;
1594
- if (updates.enabled !== void 0) registeredResourceTemplate.enabled = updates.enabled;
1595
- this.sendResourceListChanged();
1596
- }
1597
- };
1598
- this._registeredResourceTemplates[name] = registeredResourceTemplate;
1599
- const variableNames = template.uriTemplate.variableNames;
1600
- if (Array.isArray(variableNames) && variableNames.some((v) => !!template.completeCallback(v))) this.setCompletionRequestHandler();
1601
- return registeredResourceTemplate;
1602
- }
1603
- _createRegisteredPrompt(name, title, description, argsSchema, callback, icons, _meta) {
1604
- let currentArgsSchema = argsSchema;
1605
- let currentCallback = callback;
1606
- const registeredPrompt = {
1607
- title,
1608
- description,
1609
- argsSchema,
1610
- icons,
1611
- _meta,
1612
- handler: createPromptHandler(name, argsSchema, callback),
1613
- enabled: true,
1614
- disable: () => registeredPrompt.update({ enabled: false }),
1615
- enable: () => registeredPrompt.update({ enabled: true }),
1616
- remove: () => registeredPrompt.update({ name: null }),
1617
- update: (updates) => {
1618
- if (updates.name !== void 0 && updates.name !== name) {
1619
- delete this._registeredPrompts[name];
1620
- if (updates.name) this._registeredPrompts[updates.name] = registeredPrompt;
1621
- }
1622
- if (updates.title !== void 0) registeredPrompt.title = updates.title;
1623
- if (updates.description !== void 0) registeredPrompt.description = updates.description;
1624
- if (updates.icons !== void 0) registeredPrompt.icons = updates.icons;
1625
- if (updates._meta !== void 0) registeredPrompt._meta = updates._meta;
1626
- let needsHandlerRegen = false;
1627
- if (updates.argsSchema !== void 0) {
1628
- registeredPrompt.argsSchema = updates.argsSchema;
1629
- currentArgsSchema = updates.argsSchema;
1630
- needsHandlerRegen = true;
1631
- }
1632
- if (updates.callback !== void 0) {
1633
- currentCallback = updates.callback;
1634
- needsHandlerRegen = true;
1635
- }
1636
- if (needsHandlerRegen) registeredPrompt.handler = createPromptHandler(name, currentArgsSchema, currentCallback);
1637
- if (updates.enabled !== void 0) registeredPrompt.enabled = updates.enabled;
1638
- this.sendPromptListChanged();
1639
- }
1640
- };
1641
- this._registeredPrompts[name] = registeredPrompt;
1642
- if (argsSchema) {
1643
- const shape = getSchemaShape(argsSchema);
1644
- if (shape) {
1645
- if (Object.values(shape).some((field) => {
1646
- return isCompletable(unwrapOptionalSchema(field));
1647
- })) this.setCompletionRequestHandler();
1648
- }
1649
- }
1650
- return registeredPrompt;
1651
- }
1652
- _createRegisteredTool(name, title, description, inputSchema, outputSchema, annotations, icons, execution, _meta, handler) {
1653
- require_src.validateAndWarnToolName(name);
1654
- if (inputSchema !== void 0) try {
1655
- const json = require_src.standardSchemaToJsonSchema(inputSchema, "input");
1656
- this._toolInputSchemaJson[name] = json;
1657
- const scan = require_src.scanXMcpHeaderDeclarations(json);
1658
- if (!scan.valid) console.warn(`[mcp-sdk] tool '${name}' carries an invalid x-mcp-header declaration and will be excluded by conforming Streamable HTTP clients: ${scan.reason}`);
1659
- } catch {}
1660
- let currentHandler = handler;
1661
- const registeredTool = {
1662
- title,
1663
- description,
1664
- inputSchema,
1665
- outputSchema,
1666
- outputSchemaJson: convertOutputSchemaJson(outputSchema),
1667
- annotations,
1668
- icons,
1669
- execution,
1670
- _meta,
1671
- handler,
1672
- executor: createToolExecutor(inputSchema, handler),
1673
- enabled: true,
1674
- disable: () => registeredTool.update({ enabled: false }),
1675
- enable: () => registeredTool.update({ enabled: true }),
1676
- remove: () => registeredTool.update({ name: null }),
1677
- update: (updates) => {
1678
- if (updates.name !== void 0 && updates.name !== name) {
1679
- if (typeof updates.name === "string") require_src.validateAndWarnToolName(updates.name);
1680
- delete this._registeredTools[name];
1681
- delete this._toolInputSchemaJson[name];
1682
- if (updates.name) {
1683
- delete this._toolInputSchemaJson[updates.name];
1684
- this._registeredTools[updates.name] = registeredTool;
1685
- name = updates.name;
1686
- }
1687
- }
1688
- if (updates.title !== void 0) registeredTool.title = updates.title;
1689
- if (updates.description !== void 0) registeredTool.description = updates.description;
1690
- let needsExecutorRegen = false;
1691
- if (updates.paramsSchema !== void 0) {
1692
- registeredTool.inputSchema = updates.paramsSchema;
1693
- delete this._toolInputSchemaJson[name];
1694
- needsExecutorRegen = true;
1695
- }
1696
- if (updates.callback !== void 0) {
1697
- registeredTool.handler = updates.callback;
1698
- currentHandler = updates.callback;
1699
- needsExecutorRegen = true;
1700
- }
1701
- if (needsExecutorRegen) registeredTool.executor = createToolExecutor(registeredTool.inputSchema, currentHandler);
1702
- if (updates.outputSchema !== void 0) {
1703
- registeredTool.outputSchema = updates.outputSchema;
1704
- registeredTool.outputSchemaJson = convertOutputSchemaJson(updates.outputSchema);
1705
- }
1706
- if (updates.annotations !== void 0) registeredTool.annotations = updates.annotations;
1707
- if (updates.icons !== void 0) registeredTool.icons = updates.icons;
1708
- if (updates._meta !== void 0) registeredTool._meta = updates._meta;
1709
- if (updates.enabled !== void 0) registeredTool.enabled = updates.enabled;
1710
- this.sendToolListChanged();
1711
- }
1712
- };
1713
- this._registeredTools[name] = registeredTool;
1714
- this.setToolRequestHandlers();
1715
- this.sendToolListChanged();
1716
- return registeredTool;
1717
- }
1718
- registerTool(name, config, cb) {
1719
- if (this._registeredTools[name]) throw new Error(`Tool ${name} is already registered`);
1720
- const { title, description, inputSchema, outputSchema, annotations, icons, _meta } = config;
1721
- return this._createRegisteredTool(name, title, description, require_src.normalizeRawShapeSchema(inputSchema), require_src.normalizeRawShapeSchema(outputSchema), annotations, icons, void 0, _meta, cb);
1722
- }
1723
- registerPrompt(name, config, cb) {
1724
- if (this._registeredPrompts[name]) throw new Error(`Prompt ${name} is already registered`);
1725
- const { title, description, argsSchema, icons, _meta } = config;
1726
- const registeredPrompt = this._createRegisteredPrompt(name, title, description, require_src.normalizeRawShapeSchema(argsSchema), cb, icons, _meta);
1727
- this.setPromptRequestHandlers();
1728
- this.sendPromptListChanged();
1729
- return registeredPrompt;
1730
- }
1731
- /**
1732
- * Checks if the server is connected to a transport.
1733
- * @returns `true` if the server is connected
1734
- */
1735
- isConnected() {
1736
- return this.server.transport !== void 0;
1737
- }
1738
- /**
1739
- * Sends a logging message to the client, if connected.
1740
- * Note: You only need to send the parameters object, not the entire JSON-RPC message.
1741
- * @see {@linkcode LoggingMessageNotification}
1742
- * @param params
1743
- * @param sessionId Optional for stateless transports and backward compatibility.
1744
- *
1745
- * @example
1746
- * ```ts source="./mcp.examples.ts#McpServer_sendLoggingMessage_basic"
1747
- * await server.sendLoggingMessage({
1748
- * level: 'info',
1749
- * data: 'Processing complete'
1750
- * });
1751
- * ```
1752
- *
1753
- * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577).
1754
- * Remains functional during the deprecation window (at least twelve months).
1755
- * Migrate to stderr logging (STDIO servers) or OpenTelemetry.
1756
- */
1757
- async sendLoggingMessage(params, sessionId) {
1758
- return this.server.sendLoggingMessage(params, sessionId);
1759
- }
1760
- /**
1761
- * Sends a resource list changed event to the client, if connected.
1762
- */
1763
- sendResourceListChanged() {
1764
- if (this.isConnected()) this.server.sendResourceListChanged();
1765
- }
1766
- /**
1767
- * Sends a tool list changed event to the client, if connected.
1768
- */
1769
- sendToolListChanged() {
1770
- if (this.isConnected()) this.server.sendToolListChanged();
1771
- }
1772
- /**
1773
- * Sends a prompt list changed event to the client, if connected.
1774
- */
1775
- sendPromptListChanged() {
1776
- if (this.isConnected()) this.server.sendPromptListChanged();
1777
- }
1778
- };
1779
- /**
1780
- * A resource template combines a URI pattern with optional functionality to enumerate
1781
- * all resources matching that pattern.
1782
- */
1783
- var ResourceTemplate = class {
1784
- _uriTemplate;
1785
- constructor(uriTemplate, _callbacks) {
1786
- this._callbacks = _callbacks;
1787
- this._uriTemplate = typeof uriTemplate === "string" ? new require_src.UriTemplate(uriTemplate) : uriTemplate;
1788
- }
1789
- /**
1790
- * Gets the URI template pattern.
1791
- */
1792
- get uriTemplate() {
1793
- return this._uriTemplate;
1794
- }
1795
- /**
1796
- * Gets the list callback, if one was provided.
1797
- */
1798
- get listCallback() {
1799
- return this._callbacks.list;
1800
- }
1801
- /**
1802
- * Gets the callback for completing a specific URI template variable, if one was provided.
1803
- */
1804
- completeCallback(variable) {
1805
- return this._callbacks.complete?.[variable];
1806
- }
1807
- };
1808
- /**
1809
- * Creates an executor that invokes the handler with the appropriate arguments.
1810
- * When `inputSchema` is defined, the handler is called with `(args, ctx)`.
1811
- * When `inputSchema` is undefined, the handler is called with just `(ctx)`.
1812
- */
1813
- function createToolExecutor(inputSchema, handler) {
1814
- if (inputSchema) {
1815
- const callback$1 = handler;
1816
- return async (args, ctx) => callback$1(args, ctx);
1817
- }
1818
- const callback = handler;
1819
- return async (_args, ctx) => callback(ctx);
1820
- }
1821
- const EMPTY_OBJECT_JSON_SCHEMA = {
1822
- type: "object",
1823
- properties: {}
1824
- };
1825
- /**
1826
- * Convert a registered `outputSchema` to JSON Schema, memoised on {@link RegisteredTool.outputSchemaJson}
1827
- * so `tools/call` passes the SAME advertised schema to the wire codec's `projectCallToolResult` that
1828
- * `tools/list` emits (and that the 2025 codec's `encodeResult('tools/list', …)` may wrap). A conversion
1829
- * failure yields `undefined` so the failure surfaces where it always has (`tools/list`).
1830
- */
1831
- function convertOutputSchemaJson(outputSchema) {
1832
- if (outputSchema === void 0) return void 0;
1833
- try {
1834
- return require_src.standardSchemaToJsonSchema(outputSchema, "output");
1835
- } catch {
1836
- return;
1837
- }
1838
- }
1839
- /**
1840
- * Creates a type-safe prompt handler that captures the schema and callback in a closure.
1841
- * This eliminates the need for type assertions at the call site.
1842
- */
1843
- function createPromptHandler(name, argsSchema, callback) {
1844
- if (argsSchema) {
1845
- const typedCallback = callback;
1846
- return async (args, ctx) => {
1847
- const parseResult = await require_src.validateStandardSchema(argsSchema, args);
1848
- if (!parseResult.success) throw new require_src.ProtocolError(require_src.ProtocolErrorCode.InvalidParams, `Invalid arguments for prompt ${name}: ${parseResult.error}`);
1849
- return typedCallback(parseResult.data, ctx);
1850
- };
1851
- } else {
1852
- const typedCallback = callback;
1853
- return async (_args, ctx) => {
1854
- return typedCallback(ctx);
1855
- };
1856
- }
1857
- }
1858
- function createCompletionResult(suggestions) {
1859
- return { completion: {
1860
- values: suggestions.map(String).slice(0, 100),
1861
- total: suggestions.length,
1862
- hasMore: suggestions.length > 100
1863
- } };
1864
- }
1865
- const EMPTY_COMPLETION_RESULT = { completion: {
1866
- values: [],
1867
- hasMore: false
1868
- } };
1869
- /** @internal Gets the shape of a Zod object schema */
1870
- function getSchemaShape(schema) {
1871
- const candidate = schema;
1872
- if (candidate.shape && typeof candidate.shape === "object") return candidate.shape;
1873
- }
1874
- /** @internal Checks if a Zod schema is optional */
1875
- function isOptionalSchema(schema) {
1876
- return schema?.type === "optional";
1877
- }
1878
- /** @internal Unwraps an optional Zod schema */
1879
- function unwrapOptionalSchema(schema) {
1880
- if (!isOptionalSchema(schema)) return schema;
1881
- return schema.def?.innerType ?? schema;
1882
- }
1883
-
1884
- //#endregion
1885
- Object.defineProperty(exports, 'DEFAULT_LISTEN_KEEPALIVE_MS', {
1886
- enumerable: true,
1887
- get: function () {
1888
- return DEFAULT_LISTEN_KEEPALIVE_MS;
1889
- }
1890
- });
1891
- Object.defineProperty(exports, 'DEFAULT_MAX_SUBSCRIPTIONS', {
1892
- enumerable: true,
1893
- get: function () {
1894
- return DEFAULT_MAX_SUBSCRIPTIONS;
1895
- }
1896
- });
1897
- Object.defineProperty(exports, 'InMemoryServerEventBus', {
1898
- enumerable: true,
1899
- get: function () {
1900
- return InMemoryServerEventBus;
1901
- }
1902
- });
1903
- Object.defineProperty(exports, 'McpServer', {
1904
- enumerable: true,
1905
- get: function () {
1906
- return McpServer;
1907
- }
1908
- });
1909
- Object.defineProperty(exports, 'ResourceTemplate', {
1910
- enumerable: true,
1911
- get: function () {
1912
- return ResourceTemplate;
1913
- }
1914
- });
1915
- Object.defineProperty(exports, 'Server', {
1916
- enumerable: true,
1917
- get: function () {
1918
- return Server;
1919
- }
1920
- });
1921
- Object.defineProperty(exports, 'StdioListenRouter', {
1922
- enumerable: true,
1923
- get: function () {
1924
- return StdioListenRouter;
1925
- }
1926
- });
1927
- Object.defineProperty(exports, 'completable', {
1928
- enumerable: true,
1929
- get: function () {
1930
- return completable;
1931
- }
1932
- });
1933
- Object.defineProperty(exports, 'createListenRouter', {
1934
- enumerable: true,
1935
- get: function () {
1936
- return createListenRouter;
1937
- }
1938
- });
1939
- Object.defineProperty(exports, 'createServerNotifier', {
1940
- enumerable: true,
1941
- get: function () {
1942
- return createServerNotifier;
1943
- }
1944
- });
1945
- Object.defineProperty(exports, 'installModernOnlyHandlers', {
1946
- enumerable: true,
1947
- get: function () {
1948
- return installModernOnlyHandlers;
1949
- }
1950
- });
1951
- Object.defineProperty(exports, 'isCompletable', {
1952
- enumerable: true,
1953
- get: function () {
1954
- return isCompletable;
1955
- }
1956
- });
1957
- Object.defineProperty(exports, 'seedClientIdentityFromEnvelope', {
1958
- enumerable: true,
1959
- get: function () {
1960
- return seedClientIdentityFromEnvelope;
1961
- }
1962
- });
1963
- //# sourceMappingURL=mcp-CzU40gwu.cjs.map