mcp-server-framework 1.0.0

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 (673) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/LICENSE-GPL.md +219 -0
  3. package/LICENSE.md +187 -0
  4. package/README.md +439 -0
  5. package/build/config/config-cache.d.ts +120 -0
  6. package/build/config/config-cache.d.ts.map +1 -0
  7. package/build/config/config-cache.js +310 -0
  8. package/build/config/config-cache.js.map +1 -0
  9. package/build/config/env.d.ts +476 -0
  10. package/build/config/env.d.ts.map +1 -0
  11. package/build/config/env.js +441 -0
  12. package/build/config/env.js.map +1 -0
  13. package/build/config/extensions.d.ts +107 -0
  14. package/build/config/extensions.d.ts.map +1 -0
  15. package/build/config/extensions.js +152 -0
  16. package/build/config/extensions.js.map +1 -0
  17. package/build/config/file/index.d.ts +8 -0
  18. package/build/config/file/index.d.ts.map +1 -0
  19. package/build/config/file/index.js +10 -0
  20. package/build/config/file/index.js.map +1 -0
  21. package/build/config/file/loader.d.ts +31 -0
  22. package/build/config/file/loader.d.ts.map +1 -0
  23. package/build/config/file/loader.js +313 -0
  24. package/build/config/file/loader.js.map +1 -0
  25. package/build/config/file/schema.d.ts +583 -0
  26. package/build/config/file/schema.d.ts.map +1 -0
  27. package/build/config/file/schema.js +388 -0
  28. package/build/config/file/schema.js.map +1 -0
  29. package/build/config/index.d.ts +15 -0
  30. package/build/config/index.d.ts.map +1 -0
  31. package/build/config/index.js +27 -0
  32. package/build/config/index.js.map +1 -0
  33. package/build/config/startup-warnings.d.ts +46 -0
  34. package/build/config/startup-warnings.d.ts.map +1 -0
  35. package/build/config/startup-warnings.js +61 -0
  36. package/build/config/startup-warnings.js.map +1 -0
  37. package/build/connection/connection-state.d.ts +196 -0
  38. package/build/connection/connection-state.d.ts.map +1 -0
  39. package/build/connection/connection-state.js +426 -0
  40. package/build/connection/connection-state.js.map +1 -0
  41. package/build/connection/core/base.d.ts +43 -0
  42. package/build/connection/core/base.d.ts.map +1 -0
  43. package/build/connection/core/base.js +82 -0
  44. package/build/connection/core/base.js.map +1 -0
  45. package/build/connection/core/constants.d.ts +121 -0
  46. package/build/connection/core/constants.d.ts.map +1 -0
  47. package/build/connection/core/constants.js +151 -0
  48. package/build/connection/core/constants.js.map +1 -0
  49. package/build/connection/core/index.d.ts +13 -0
  50. package/build/connection/core/index.d.ts.map +1 -0
  51. package/build/connection/core/index.js +14 -0
  52. package/build/connection/core/index.js.map +1 -0
  53. package/build/connection/core/types.d.ts +102 -0
  54. package/build/connection/core/types.d.ts.map +1 -0
  55. package/build/connection/core/types.js +31 -0
  56. package/build/connection/core/types.js.map +1 -0
  57. package/build/connection/index.d.ts +19 -0
  58. package/build/connection/index.d.ts.map +1 -0
  59. package/build/connection/index.js +22 -0
  60. package/build/connection/index.js.map +1 -0
  61. package/build/connection/types.d.ts +125 -0
  62. package/build/connection/types.d.ts.map +1 -0
  63. package/build/connection/types.js +39 -0
  64. package/build/connection/types.js.map +1 -0
  65. package/build/errors/categories/auth.d.ts +59 -0
  66. package/build/errors/categories/auth.d.ts.map +1 -0
  67. package/build/errors/categories/auth.js +111 -0
  68. package/build/errors/categories/auth.js.map +1 -0
  69. package/build/errors/categories/connection.d.ts +70 -0
  70. package/build/errors/categories/connection.d.ts.map +1 -0
  71. package/build/errors/categories/connection.js +120 -0
  72. package/build/errors/categories/connection.js.map +1 -0
  73. package/build/errors/categories/index.d.ts +14 -0
  74. package/build/errors/categories/index.d.ts.map +1 -0
  75. package/build/errors/categories/index.js +20 -0
  76. package/build/errors/categories/index.js.map +1 -0
  77. package/build/errors/categories/operation.d.ts +83 -0
  78. package/build/errors/categories/operation.d.ts.map +1 -0
  79. package/build/errors/categories/operation.js +149 -0
  80. package/build/errors/categories/operation.js.map +1 -0
  81. package/build/errors/categories/protocol.d.ts +68 -0
  82. package/build/errors/categories/protocol.d.ts.map +1 -0
  83. package/build/errors/categories/protocol.js +135 -0
  84. package/build/errors/categories/protocol.js.map +1 -0
  85. package/build/errors/categories/session.d.ts +50 -0
  86. package/build/errors/categories/session.d.ts.map +1 -0
  87. package/build/errors/categories/session.js +97 -0
  88. package/build/errors/categories/session.js.map +1 -0
  89. package/build/errors/categories/system.d.ts +95 -0
  90. package/build/errors/categories/system.d.ts.map +1 -0
  91. package/build/errors/categories/system.js +190 -0
  92. package/build/errors/categories/system.js.map +1 -0
  93. package/build/errors/categories/transport.d.ts +70 -0
  94. package/build/errors/categories/transport.d.ts.map +1 -0
  95. package/build/errors/categories/transport.js +148 -0
  96. package/build/errors/categories/transport.js.map +1 -0
  97. package/build/errors/categories/validation.d.ts +140 -0
  98. package/build/errors/categories/validation.d.ts.map +1 -0
  99. package/build/errors/categories/validation.js +311 -0
  100. package/build/errors/categories/validation.js.map +1 -0
  101. package/build/errors/core/base.d.ts +103 -0
  102. package/build/errors/core/base.d.ts.map +1 -0
  103. package/build/errors/core/base.js +219 -0
  104. package/build/errors/core/base.js.map +1 -0
  105. package/build/errors/core/constants.d.ts +40 -0
  106. package/build/errors/core/constants.d.ts.map +1 -0
  107. package/build/errors/core/constants.js +49 -0
  108. package/build/errors/core/constants.js.map +1 -0
  109. package/build/errors/core/error-codes.d.ts +72 -0
  110. package/build/errors/core/error-codes.d.ts.map +1 -0
  111. package/build/errors/core/error-codes.js +88 -0
  112. package/build/errors/core/error-codes.js.map +1 -0
  113. package/build/errors/core/http.d.ts +69 -0
  114. package/build/errors/core/http.d.ts.map +1 -0
  115. package/build/errors/core/http.js +106 -0
  116. package/build/errors/core/http.js.map +1 -0
  117. package/build/errors/core/index.d.ts +23 -0
  118. package/build/errors/core/index.d.ts.map +1 -0
  119. package/build/errors/core/index.js +41 -0
  120. package/build/errors/core/index.js.map +1 -0
  121. package/build/errors/core/json-rpc.d.ts +69 -0
  122. package/build/errors/core/json-rpc.d.ts.map +1 -0
  123. package/build/errors/core/json-rpc.js +79 -0
  124. package/build/errors/core/json-rpc.js.map +1 -0
  125. package/build/errors/core/messages.d.ts +51 -0
  126. package/build/errors/core/messages.d.ts.map +1 -0
  127. package/build/errors/core/messages.js +59 -0
  128. package/build/errors/core/messages.js.map +1 -0
  129. package/build/errors/core/types.d.ts +80 -0
  130. package/build/errors/core/types.d.ts.map +1 -0
  131. package/build/errors/core/types.js +10 -0
  132. package/build/errors/core/types.js.map +1 -0
  133. package/build/errors/factory.d.ts +199 -0
  134. package/build/errors/factory.d.ts.map +1 -0
  135. package/build/errors/factory.js +244 -0
  136. package/build/errors/factory.js.map +1 -0
  137. package/build/errors/index.d.ts +35 -0
  138. package/build/errors/index.d.ts.map +1 -0
  139. package/build/errors/index.js +67 -0
  140. package/build/errors/index.js.map +1 -0
  141. package/build/index.d.ts +93 -0
  142. package/build/index.d.ts.map +1 -0
  143. package/build/index.js +107 -0
  144. package/build/index.js.map +1 -0
  145. package/build/logger/core/constants.d.ts +143 -0
  146. package/build/logger/core/constants.d.ts.map +1 -0
  147. package/build/logger/core/constants.js +206 -0
  148. package/build/logger/core/constants.js.map +1 -0
  149. package/build/logger/core/context.d.ts +170 -0
  150. package/build/logger/core/context.d.ts.map +1 -0
  151. package/build/logger/core/context.js +237 -0
  152. package/build/logger/core/context.js.map +1 -0
  153. package/build/logger/core/errors.d.ts +101 -0
  154. package/build/logger/core/errors.d.ts.map +1 -0
  155. package/build/logger/core/errors.js +128 -0
  156. package/build/logger/core/errors.js.map +1 -0
  157. package/build/logger/core/format.d.ts +40 -0
  158. package/build/logger/core/format.d.ts.map +1 -0
  159. package/build/logger/core/format.js +47 -0
  160. package/build/logger/core/format.js.map +1 -0
  161. package/build/logger/core/index.d.ts +19 -0
  162. package/build/logger/core/index.d.ts.map +1 -0
  163. package/build/logger/core/index.js +47 -0
  164. package/build/logger/core/index.js.map +1 -0
  165. package/build/logger/core/trace-context.d.ts +51 -0
  166. package/build/logger/core/trace-context.d.ts.map +1 -0
  167. package/build/logger/core/trace-context.js +42 -0
  168. package/build/logger/core/trace-context.js.map +1 -0
  169. package/build/logger/core/types.d.ts +233 -0
  170. package/build/logger/core/types.d.ts.map +1 -0
  171. package/build/logger/core/types.js +10 -0
  172. package/build/logger/core/types.js.map +1 -0
  173. package/build/logger/factory.d.ts +150 -0
  174. package/build/logger/factory.d.ts.map +1 -0
  175. package/build/logger/factory.js +236 -0
  176. package/build/logger/factory.js.map +1 -0
  177. package/build/logger/formatters/index.d.ts +12 -0
  178. package/build/logger/formatters/index.d.ts.map +1 -0
  179. package/build/logger/formatters/index.js +15 -0
  180. package/build/logger/formatters/index.js.map +1 -0
  181. package/build/logger/formatters/json-formatter.d.ts +54 -0
  182. package/build/logger/formatters/json-formatter.d.ts.map +1 -0
  183. package/build/logger/formatters/json-formatter.js +80 -0
  184. package/build/logger/formatters/json-formatter.js.map +1 -0
  185. package/build/logger/formatters/schema.d.ts +230 -0
  186. package/build/logger/formatters/schema.d.ts.map +1 -0
  187. package/build/logger/formatters/schema.js +278 -0
  188. package/build/logger/formatters/schema.js.map +1 -0
  189. package/build/logger/formatters/text-formatter.d.ts +50 -0
  190. package/build/logger/formatters/text-formatter.d.ts.map +1 -0
  191. package/build/logger/formatters/text-formatter.js +93 -0
  192. package/build/logger/formatters/text-formatter.js.map +1 -0
  193. package/build/logger/index.d.ts +39 -0
  194. package/build/logger/index.d.ts.map +1 -0
  195. package/build/logger/index.js +43 -0
  196. package/build/logger/index.js.map +1 -0
  197. package/build/logger/logger.d.ts +278 -0
  198. package/build/logger/logger.d.ts.map +1 -0
  199. package/build/logger/logger.js +459 -0
  200. package/build/logger/logger.js.map +1 -0
  201. package/build/logger/mcp-logger.d.ts +177 -0
  202. package/build/logger/mcp-logger.d.ts.map +1 -0
  203. package/build/logger/mcp-logger.js +294 -0
  204. package/build/logger/mcp-logger.js.map +1 -0
  205. package/build/logger/scrubbing/index.d.ts +14 -0
  206. package/build/logger/scrubbing/index.d.ts.map +1 -0
  207. package/build/logger/scrubbing/index.js +16 -0
  208. package/build/logger/scrubbing/index.js.map +1 -0
  209. package/build/logger/scrubbing/injection-guard.d.ts +69 -0
  210. package/build/logger/scrubbing/injection-guard.d.ts.map +1 -0
  211. package/build/logger/scrubbing/injection-guard.js +102 -0
  212. package/build/logger/scrubbing/injection-guard.js.map +1 -0
  213. package/build/logger/scrubbing/secret-scrubber.d.ts +72 -0
  214. package/build/logger/scrubbing/secret-scrubber.d.ts.map +1 -0
  215. package/build/logger/scrubbing/secret-scrubber.js +177 -0
  216. package/build/logger/scrubbing/secret-scrubber.js.map +1 -0
  217. package/build/logger/writers/base-writer.d.ts +45 -0
  218. package/build/logger/writers/base-writer.d.ts.map +1 -0
  219. package/build/logger/writers/base-writer.js +41 -0
  220. package/build/logger/writers/base-writer.js.map +1 -0
  221. package/build/logger/writers/composite-writer.d.ts +83 -0
  222. package/build/logger/writers/composite-writer.d.ts.map +1 -0
  223. package/build/logger/writers/composite-writer.js +121 -0
  224. package/build/logger/writers/composite-writer.js.map +1 -0
  225. package/build/logger/writers/console-writer.d.ts +59 -0
  226. package/build/logger/writers/console-writer.d.ts.map +1 -0
  227. package/build/logger/writers/console-writer.js +73 -0
  228. package/build/logger/writers/console-writer.js.map +1 -0
  229. package/build/logger/writers/file-writer.d.ts +160 -0
  230. package/build/logger/writers/file-writer.d.ts.map +1 -0
  231. package/build/logger/writers/file-writer.js +345 -0
  232. package/build/logger/writers/file-writer.js.map +1 -0
  233. package/build/logger/writers/index.d.ts +15 -0
  234. package/build/logger/writers/index.d.ts.map +1 -0
  235. package/build/logger/writers/index.js +19 -0
  236. package/build/logger/writers/index.js.map +1 -0
  237. package/build/mcp/capabilities/apps/define-app.d.ts +68 -0
  238. package/build/mcp/capabilities/apps/define-app.d.ts.map +1 -0
  239. package/build/mcp/capabilities/apps/define-app.js +127 -0
  240. package/build/mcp/capabilities/apps/define-app.js.map +1 -0
  241. package/build/mcp/capabilities/apps/index.d.ts +10 -0
  242. package/build/mcp/capabilities/apps/index.d.ts.map +1 -0
  243. package/build/mcp/capabilities/apps/index.js +10 -0
  244. package/build/mcp/capabilities/apps/index.js.map +1 -0
  245. package/build/mcp/capabilities/capabilities.d.ts +24 -0
  246. package/build/mcp/capabilities/capabilities.d.ts.map +1 -0
  247. package/build/mcp/capabilities/capabilities.js +50 -0
  248. package/build/mcp/capabilities/capabilities.js.map +1 -0
  249. package/build/mcp/capabilities/index.d.ts +17 -0
  250. package/build/mcp/capabilities/index.d.ts.map +1 -0
  251. package/build/mcp/capabilities/index.js +20 -0
  252. package/build/mcp/capabilities/index.js.map +1 -0
  253. package/build/mcp/capabilities/prompts/define-prompt.d.ts +95 -0
  254. package/build/mcp/capabilities/prompts/define-prompt.d.ts.map +1 -0
  255. package/build/mcp/capabilities/prompts/define-prompt.js +109 -0
  256. package/build/mcp/capabilities/prompts/define-prompt.js.map +1 -0
  257. package/build/mcp/capabilities/prompts/index.d.ts +10 -0
  258. package/build/mcp/capabilities/prompts/index.d.ts.map +1 -0
  259. package/build/mcp/capabilities/prompts/index.js +10 -0
  260. package/build/mcp/capabilities/prompts/index.js.map +1 -0
  261. package/build/mcp/capabilities/registry/base-registry.d.ts +95 -0
  262. package/build/mcp/capabilities/registry/base-registry.d.ts.map +1 -0
  263. package/build/mcp/capabilities/registry/base-registry.js +149 -0
  264. package/build/mcp/capabilities/registry/base-registry.js.map +1 -0
  265. package/build/mcp/capabilities/registry/index.d.ts +16 -0
  266. package/build/mcp/capabilities/registry/index.d.ts.map +1 -0
  267. package/build/mcp/capabilities/registry/index.js +34 -0
  268. package/build/mcp/capabilities/registry/index.js.map +1 -0
  269. package/build/mcp/capabilities/registry/prompt-registry.d.ts +116 -0
  270. package/build/mcp/capabilities/registry/prompt-registry.d.ts.map +1 -0
  271. package/build/mcp/capabilities/registry/prompt-registry.js +232 -0
  272. package/build/mcp/capabilities/registry/prompt-registry.js.map +1 -0
  273. package/build/mcp/capabilities/registry/reset.d.ts +30 -0
  274. package/build/mcp/capabilities/registry/reset.d.ts.map +1 -0
  275. package/build/mcp/capabilities/registry/reset.js +48 -0
  276. package/build/mcp/capabilities/registry/reset.js.map +1 -0
  277. package/build/mcp/capabilities/registry/resource-registry.d.ts +152 -0
  278. package/build/mcp/capabilities/registry/resource-registry.d.ts.map +1 -0
  279. package/build/mcp/capabilities/registry/resource-registry.js +430 -0
  280. package/build/mcp/capabilities/registry/resource-registry.js.map +1 -0
  281. package/build/mcp/capabilities/registry/scope-enforcement.d.ts +48 -0
  282. package/build/mcp/capabilities/registry/scope-enforcement.d.ts.map +1 -0
  283. package/build/mcp/capabilities/registry/scope-enforcement.js +62 -0
  284. package/build/mcp/capabilities/registry/scope-enforcement.js.map +1 -0
  285. package/build/mcp/capabilities/registry/task-tool-registry.d.ts +96 -0
  286. package/build/mcp/capabilities/registry/task-tool-registry.d.ts.map +1 -0
  287. package/build/mcp/capabilities/registry/task-tool-registry.js +190 -0
  288. package/build/mcp/capabilities/registry/task-tool-registry.js.map +1 -0
  289. package/build/mcp/capabilities/registry/tool-registry.d.ts +100 -0
  290. package/build/mcp/capabilities/registry/tool-registry.d.ts.map +1 -0
  291. package/build/mcp/capabilities/registry/tool-registry.js +242 -0
  292. package/build/mcp/capabilities/registry/tool-registry.js.map +1 -0
  293. package/build/mcp/capabilities/resources/define-resource.d.ts +103 -0
  294. package/build/mcp/capabilities/resources/define-resource.d.ts.map +1 -0
  295. package/build/mcp/capabilities/resources/define-resource.js +137 -0
  296. package/build/mcp/capabilities/resources/define-resource.js.map +1 -0
  297. package/build/mcp/capabilities/resources/index.d.ts +10 -0
  298. package/build/mcp/capabilities/resources/index.d.ts.map +1 -0
  299. package/build/mcp/capabilities/resources/index.js +10 -0
  300. package/build/mcp/capabilities/resources/index.js.map +1 -0
  301. package/build/mcp/capabilities/server-capabilities.d.ts +33 -0
  302. package/build/mcp/capabilities/server-capabilities.d.ts.map +1 -0
  303. package/build/mcp/capabilities/server-capabilities.js +16 -0
  304. package/build/mcp/capabilities/server-capabilities.js.map +1 -0
  305. package/build/mcp/capabilities/tasks/define-task.d.ts +75 -0
  306. package/build/mcp/capabilities/tasks/define-task.d.ts.map +1 -0
  307. package/build/mcp/capabilities/tasks/define-task.js +93 -0
  308. package/build/mcp/capabilities/tasks/define-task.js.map +1 -0
  309. package/build/mcp/capabilities/tasks/index.d.ts +11 -0
  310. package/build/mcp/capabilities/tasks/index.d.ts.map +1 -0
  311. package/build/mcp/capabilities/tasks/index.js +11 -0
  312. package/build/mcp/capabilities/tasks/index.js.map +1 -0
  313. package/build/mcp/capabilities/tools/define-tool.d.ts +62 -0
  314. package/build/mcp/capabilities/tools/define-tool.d.ts.map +1 -0
  315. package/build/mcp/capabilities/tools/define-tool.js +73 -0
  316. package/build/mcp/capabilities/tools/define-tool.js.map +1 -0
  317. package/build/mcp/capabilities/tools/index.d.ts +10 -0
  318. package/build/mcp/capabilities/tools/index.d.ts.map +1 -0
  319. package/build/mcp/capabilities/tools/index.js +10 -0
  320. package/build/mcp/capabilities/tools/index.js.map +1 -0
  321. package/build/mcp/handlers/index.d.ts +19 -0
  322. package/build/mcp/handlers/index.d.ts.map +1 -0
  323. package/build/mcp/handlers/index.js +26 -0
  324. package/build/mcp/handlers/index.js.map +1 -0
  325. package/build/mcp/handlers/ping.d.ts +27 -0
  326. package/build/mcp/handlers/ping.d.ts.map +1 -0
  327. package/build/mcp/handlers/ping.js +61 -0
  328. package/build/mcp/handlers/ping.js.map +1 -0
  329. package/build/mcp/handlers/progress.d.ts +41 -0
  330. package/build/mcp/handlers/progress.d.ts.map +1 -0
  331. package/build/mcp/handlers/progress.js +79 -0
  332. package/build/mcp/handlers/progress.js.map +1 -0
  333. package/build/mcp/index.d.ts +28 -0
  334. package/build/mcp/index.d.ts.map +1 -0
  335. package/build/mcp/index.js +34 -0
  336. package/build/mcp/index.js.map +1 -0
  337. package/build/mcp/responses/helpers.d.ts +146 -0
  338. package/build/mcp/responses/helpers.d.ts.map +1 -0
  339. package/build/mcp/responses/helpers.js +197 -0
  340. package/build/mcp/responses/helpers.js.map +1 -0
  341. package/build/mcp/responses/index.d.ts +9 -0
  342. package/build/mcp/responses/index.d.ts.map +1 -0
  343. package/build/mcp/responses/index.js +12 -0
  344. package/build/mcp/responses/index.js.map +1 -0
  345. package/build/mcp/types/context.d.ts +371 -0
  346. package/build/mcp/types/context.d.ts.map +1 -0
  347. package/build/mcp/types/context.js +17 -0
  348. package/build/mcp/types/context.js.map +1 -0
  349. package/build/mcp/types/definition.d.ts +727 -0
  350. package/build/mcp/types/definition.d.ts.map +1 -0
  351. package/build/mcp/types/definition.js +29 -0
  352. package/build/mcp/types/definition.js.map +1 -0
  353. package/build/mcp/types/handler.d.ts +58 -0
  354. package/build/mcp/types/handler.d.ts.map +1 -0
  355. package/build/mcp/types/handler.js +10 -0
  356. package/build/mcp/types/handler.js.map +1 -0
  357. package/build/mcp/types/index.d.ts +21 -0
  358. package/build/mcp/types/index.d.ts.map +1 -0
  359. package/build/mcp/types/index.js +18 -0
  360. package/build/mcp/types/index.js.map +1 -0
  361. package/build/mcp/types/response.d.ts +79 -0
  362. package/build/mcp/types/response.d.ts.map +1 -0
  363. package/build/mcp/types/response.js +10 -0
  364. package/build/mcp/types/response.js.map +1 -0
  365. package/build/server/auth/auth-context.d.ts +52 -0
  366. package/build/server/auth/auth-context.d.ts.map +1 -0
  367. package/build/server/auth/auth-context.js +45 -0
  368. package/build/server/auth/auth-context.js.map +1 -0
  369. package/build/server/auth/guards.d.ts +72 -0
  370. package/build/server/auth/guards.d.ts.map +1 -0
  371. package/build/server/auth/guards.js +103 -0
  372. package/build/server/auth/guards.js.map +1 -0
  373. package/build/server/auth/index.d.ts +21 -0
  374. package/build/server/auth/index.d.ts.map +1 -0
  375. package/build/server/auth/index.js +20 -0
  376. package/build/server/auth/index.js.map +1 -0
  377. package/build/server/auth/oidc-discovery.d.ts +68 -0
  378. package/build/server/auth/oidc-discovery.d.ts.map +1 -0
  379. package/build/server/auth/oidc-discovery.js +234 -0
  380. package/build/server/auth/oidc-discovery.js.map +1 -0
  381. package/build/server/auth/oidc-provider.d.ts +96 -0
  382. package/build/server/auth/oidc-provider.d.ts.map +1 -0
  383. package/build/server/auth/oidc-provider.js +126 -0
  384. package/build/server/auth/oidc-provider.js.map +1 -0
  385. package/build/server/auth/types.d.ts +204 -0
  386. package/build/server/auth/types.d.ts.map +1 -0
  387. package/build/server/auth/types.js +29 -0
  388. package/build/server/auth/types.js.map +1 -0
  389. package/build/server/auth/upstream-provider.d.ts +161 -0
  390. package/build/server/auth/upstream-provider.d.ts.map +1 -0
  391. package/build/server/auth/upstream-provider.js +411 -0
  392. package/build/server/auth/upstream-provider.js.map +1 -0
  393. package/build/server/builder/constants.d.ts +45 -0
  394. package/build/server/builder/constants.d.ts.map +1 -0
  395. package/build/server/builder/constants.js +54 -0
  396. package/build/server/builder/constants.js.map +1 -0
  397. package/build/server/builder/index.d.ts +24 -0
  398. package/build/server/builder/index.d.ts.map +1 -0
  399. package/build/server/builder/index.js +25 -0
  400. package/build/server/builder/index.js.map +1 -0
  401. package/build/server/builder/primitive-collector.d.ts +24 -0
  402. package/build/server/builder/primitive-collector.d.ts.map +1 -0
  403. package/build/server/builder/primitive-collector.js +89 -0
  404. package/build/server/builder/primitive-collector.js.map +1 -0
  405. package/build/server/builder/server-builder.d.ts +53 -0
  406. package/build/server/builder/server-builder.d.ts.map +1 -0
  407. package/build/server/builder/server-builder.js +132 -0
  408. package/build/server/builder/server-builder.js.map +1 -0
  409. package/build/server/builder/types.d.ts +93 -0
  410. package/build/server/builder/types.d.ts.map +1 -0
  411. package/build/server/builder/types.js +25 -0
  412. package/build/server/builder/types.js.map +1 -0
  413. package/build/server/builder/validation.d.ts +36 -0
  414. package/build/server/builder/validation.d.ts.map +1 -0
  415. package/build/server/builder/validation.js +44 -0
  416. package/build/server/builder/validation.js.map +1 -0
  417. package/build/server/create-server.d.ts +57 -0
  418. package/build/server/create-server.d.ts.map +1 -0
  419. package/build/server/create-server.js +104 -0
  420. package/build/server/create-server.js.map +1 -0
  421. package/build/server/http/express-app.d.ts +103 -0
  422. package/build/server/http/express-app.d.ts.map +1 -0
  423. package/build/server/http/express-app.js +391 -0
  424. package/build/server/http/express-app.js.map +1 -0
  425. package/build/server/http/http-server.d.ts +67 -0
  426. package/build/server/http/http-server.d.ts.map +1 -0
  427. package/build/server/http/http-server.js +188 -0
  428. package/build/server/http/http-server.js.map +1 -0
  429. package/build/server/http/http-transport.d.ts +33 -0
  430. package/build/server/http/http-transport.d.ts.map +1 -0
  431. package/build/server/http/http-transport.js +84 -0
  432. package/build/server/http/http-transport.js.map +1 -0
  433. package/build/server/http/index.d.ts +15 -0
  434. package/build/server/http/index.d.ts.map +1 -0
  435. package/build/server/http/index.js +11 -0
  436. package/build/server/http/index.js.map +1 -0
  437. package/build/server/index.d.ts +25 -0
  438. package/build/server/index.d.ts.map +1 -0
  439. package/build/server/index.js +41 -0
  440. package/build/server/index.js.map +1 -0
  441. package/build/server/lifecycle.d.ts +114 -0
  442. package/build/server/lifecycle.d.ts.map +1 -0
  443. package/build/server/lifecycle.js +30 -0
  444. package/build/server/lifecycle.js.map +1 -0
  445. package/build/server/middleware/bearer-auth.d.ts +43 -0
  446. package/build/server/middleware/bearer-auth.d.ts.map +1 -0
  447. package/build/server/middleware/bearer-auth.js +75 -0
  448. package/build/server/middleware/bearer-auth.js.map +1 -0
  449. package/build/server/middleware/custom-header-auth.d.ts +40 -0
  450. package/build/server/middleware/custom-header-auth.d.ts.map +1 -0
  451. package/build/server/middleware/custom-header-auth.js +90 -0
  452. package/build/server/middleware/custom-header-auth.js.map +1 -0
  453. package/build/server/middleware/dns-rebinding.d.ts +25 -0
  454. package/build/server/middleware/dns-rebinding.d.ts.map +1 -0
  455. package/build/server/middleware/dns-rebinding.js +94 -0
  456. package/build/server/middleware/dns-rebinding.js.map +1 -0
  457. package/build/server/middleware/index.d.ts +69 -0
  458. package/build/server/middleware/index.d.ts.map +1 -0
  459. package/build/server/middleware/index.js +68 -0
  460. package/build/server/middleware/index.js.map +1 -0
  461. package/build/server/middleware/logging.d.ts +21 -0
  462. package/build/server/middleware/logging.d.ts.map +1 -0
  463. package/build/server/middleware/logging.js +36 -0
  464. package/build/server/middleware/logging.js.map +1 -0
  465. package/build/server/middleware/oauth-router.d.ts +50 -0
  466. package/build/server/middleware/oauth-router.d.ts.map +1 -0
  467. package/build/server/middleware/oauth-router.js +53 -0
  468. package/build/server/middleware/oauth-router.js.map +1 -0
  469. package/build/server/middleware/protocol-version.d.ts +13 -0
  470. package/build/server/middleware/protocol-version.d.ts.map +1 -0
  471. package/build/server/middleware/protocol-version.js +48 -0
  472. package/build/server/middleware/protocol-version.js.map +1 -0
  473. package/build/server/middleware/rate-limit.d.ts +47 -0
  474. package/build/server/middleware/rate-limit.d.ts.map +1 -0
  475. package/build/server/middleware/rate-limit.js +109 -0
  476. package/build/server/middleware/rate-limit.js.map +1 -0
  477. package/build/server/middleware/trust-proxy.d.ts +37 -0
  478. package/build/server/middleware/trust-proxy.d.ts.map +1 -0
  479. package/build/server/middleware/trust-proxy.js +154 -0
  480. package/build/server/middleware/trust-proxy.js.map +1 -0
  481. package/build/server/option-overrides.d.ts +25 -0
  482. package/build/server/option-overrides.d.ts.map +1 -0
  483. package/build/server/option-overrides.js +85 -0
  484. package/build/server/option-overrides.js.map +1 -0
  485. package/build/server/routes/health.d.ts +87 -0
  486. package/build/server/routes/health.d.ts.map +1 -0
  487. package/build/server/routes/health.js +183 -0
  488. package/build/server/routes/health.js.map +1 -0
  489. package/build/server/routes/index.d.ts +16 -0
  490. package/build/server/routes/index.d.ts.map +1 -0
  491. package/build/server/routes/index.js +18 -0
  492. package/build/server/routes/index.js.map +1 -0
  493. package/build/server/routes/metrics.d.ts +40 -0
  494. package/build/server/routes/metrics.d.ts.map +1 -0
  495. package/build/server/routes/metrics.js +81 -0
  496. package/build/server/routes/metrics.js.map +1 -0
  497. package/build/server/routes/oauth-router.d.ts +50 -0
  498. package/build/server/routes/oauth-router.d.ts.map +1 -0
  499. package/build/server/routes/oauth-router.js +53 -0
  500. package/build/server/routes/oauth-router.js.map +1 -0
  501. package/build/server/routes/readiness-status.d.ts +25 -0
  502. package/build/server/routes/readiness-status.d.ts.map +1 -0
  503. package/build/server/routes/readiness-status.js +27 -0
  504. package/build/server/routes/readiness-status.js.map +1 -0
  505. package/build/server/routes/sse-router.d.ts +43 -0
  506. package/build/server/routes/sse-router.d.ts.map +1 -0
  507. package/build/server/routes/sse-router.js +92 -0
  508. package/build/server/routes/sse-router.js.map +1 -0
  509. package/build/server/routes/streamable-http-router.d.ts +36 -0
  510. package/build/server/routes/streamable-http-router.d.ts.map +1 -0
  511. package/build/server/routes/streamable-http-router.js +59 -0
  512. package/build/server/routes/streamable-http-router.js.map +1 -0
  513. package/build/server/server-instance.d.ts +185 -0
  514. package/build/server/server-instance.d.ts.map +1 -0
  515. package/build/server/server-instance.js +615 -0
  516. package/build/server/server-instance.js.map +1 -0
  517. package/build/server/server-options.d.ts +411 -0
  518. package/build/server/server-options.d.ts.map +1 -0
  519. package/build/server/server-options.js +17 -0
  520. package/build/server/server-options.js.map +1 -0
  521. package/build/server/session/in-memory-store.d.ts +128 -0
  522. package/build/server/session/in-memory-store.d.ts.map +1 -0
  523. package/build/server/session/in-memory-store.js +312 -0
  524. package/build/server/session/in-memory-store.js.map +1 -0
  525. package/build/server/session/index.d.ts +43 -0
  526. package/build/server/session/index.d.ts.map +1 -0
  527. package/build/server/session/index.js +47 -0
  528. package/build/server/session/index.js.map +1 -0
  529. package/build/server/session/mcp-session.d.ts +210 -0
  530. package/build/server/session/mcp-session.d.ts.map +1 -0
  531. package/build/server/session/mcp-session.js +428 -0
  532. package/build/server/session/mcp-session.js.map +1 -0
  533. package/build/server/session/session-factory.d.ts +119 -0
  534. package/build/server/session/session-factory.d.ts.map +1 -0
  535. package/build/server/session/session-factory.js +131 -0
  536. package/build/server/session/session-factory.js.map +1 -0
  537. package/build/server/session/session-housekeeper.d.ts +100 -0
  538. package/build/server/session/session-housekeeper.d.ts.map +1 -0
  539. package/build/server/session/session-housekeeper.js +217 -0
  540. package/build/server/session/session-housekeeper.js.map +1 -0
  541. package/build/server/session/session-manager.d.ts +227 -0
  542. package/build/server/session/session-manager.d.ts.map +1 -0
  543. package/build/server/session/session-manager.js +282 -0
  544. package/build/server/session/session-manager.js.map +1 -0
  545. package/build/server/session/session-store.d.ts +95 -0
  546. package/build/server/session/session-store.d.ts.map +1 -0
  547. package/build/server/session/session-store.js +13 -0
  548. package/build/server/session/session-store.js.map +1 -0
  549. package/build/server/session/session.d.ts +132 -0
  550. package/build/server/session/session.d.ts.map +1 -0
  551. package/build/server/session/session.js +61 -0
  552. package/build/server/session/session.js.map +1 -0
  553. package/build/server/transport/constants.d.ts +85 -0
  554. package/build/server/transport/constants.d.ts.map +1 -0
  555. package/build/server/transport/constants.js +103 -0
  556. package/build/server/transport/constants.js.map +1 -0
  557. package/build/server/transport/index.d.ts +21 -0
  558. package/build/server/transport/index.d.ts.map +1 -0
  559. package/build/server/transport/index.js +28 -0
  560. package/build/server/transport/index.js.map +1 -0
  561. package/build/server/transport/sse/handler.d.ts +46 -0
  562. package/build/server/transport/sse/handler.d.ts.map +1 -0
  563. package/build/server/transport/sse/handler.js +189 -0
  564. package/build/server/transport/sse/handler.js.map +1 -0
  565. package/build/server/transport/sse/index.d.ts +15 -0
  566. package/build/server/transport/sse/index.d.ts.map +1 -0
  567. package/build/server/transport/sse/index.js +14 -0
  568. package/build/server/transport/sse/index.js.map +1 -0
  569. package/build/server/transport/sse/transport.d.ts +94 -0
  570. package/build/server/transport/sse/transport.d.ts.map +1 -0
  571. package/build/server/transport/sse/transport.js +175 -0
  572. package/build/server/transport/sse/transport.js.map +1 -0
  573. package/build/server/transport/stdio-transport.d.ts +23 -0
  574. package/build/server/transport/stdio-transport.d.ts.map +1 -0
  575. package/build/server/transport/stdio-transport.js +59 -0
  576. package/build/server/transport/stdio-transport.js.map +1 -0
  577. package/build/server/transport/streamable-http/index.d.ts +9 -0
  578. package/build/server/transport/streamable-http/index.d.ts.map +1 -0
  579. package/build/server/transport/streamable-http/index.js +9 -0
  580. package/build/server/transport/streamable-http/index.js.map +1 -0
  581. package/build/server/transport/streamable-http/stateful-handler.d.ts +41 -0
  582. package/build/server/transport/streamable-http/stateful-handler.d.ts.map +1 -0
  583. package/build/server/transport/streamable-http/stateful-handler.js +264 -0
  584. package/build/server/transport/streamable-http/stateful-handler.js.map +1 -0
  585. package/build/server/transport/streamable-http/stateless-handler.d.ts +28 -0
  586. package/build/server/transport/streamable-http/stateless-handler.d.ts.map +1 -0
  587. package/build/server/transport/streamable-http/stateless-handler.js +81 -0
  588. package/build/server/transport/streamable-http/stateless-handler.js.map +1 -0
  589. package/build/server/transport/streamable-http/transport.d.ts +110 -0
  590. package/build/server/transport/streamable-http/transport.d.ts.map +1 -0
  591. package/build/server/transport/streamable-http/transport.js +118 -0
  592. package/build/server/transport/streamable-http/transport.js.map +1 -0
  593. package/build/server/transport/transport-context.d.ts +67 -0
  594. package/build/server/transport/transport-context.d.ts.map +1 -0
  595. package/build/server/transport/transport-context.js +38 -0
  596. package/build/server/transport/transport-context.js.map +1 -0
  597. package/build/server/transport/types.d.ts +56 -0
  598. package/build/server/transport/types.d.ts.map +1 -0
  599. package/build/server/transport/types.js +11 -0
  600. package/build/server/transport/types.js.map +1 -0
  601. package/build/server/transport-options.d.ts +248 -0
  602. package/build/server/transport-options.d.ts.map +1 -0
  603. package/build/server/transport-options.js +18 -0
  604. package/build/server/transport-options.js.map +1 -0
  605. package/build/server/types.d.ts +172 -0
  606. package/build/server/types.d.ts.map +1 -0
  607. package/build/server/types.js +9 -0
  608. package/build/server/types.js.map +1 -0
  609. package/build/telemetry/connection-telemetry-bridge.d.ts +30 -0
  610. package/build/telemetry/connection-telemetry-bridge.d.ts.map +1 -0
  611. package/build/telemetry/connection-telemetry-bridge.js +54 -0
  612. package/build/telemetry/connection-telemetry-bridge.js.map +1 -0
  613. package/build/telemetry/core/config.d.ts +38 -0
  614. package/build/telemetry/core/config.d.ts.map +1 -0
  615. package/build/telemetry/core/config.js +54 -0
  616. package/build/telemetry/core/config.js.map +1 -0
  617. package/build/telemetry/core/constants.d.ts +183 -0
  618. package/build/telemetry/core/constants.d.ts.map +1 -0
  619. package/build/telemetry/core/constants.js +207 -0
  620. package/build/telemetry/core/constants.js.map +1 -0
  621. package/build/telemetry/core/diag-logger.d.ts +35 -0
  622. package/build/telemetry/core/diag-logger.d.ts.map +1 -0
  623. package/build/telemetry/core/diag-logger.js +54 -0
  624. package/build/telemetry/core/diag-logger.js.map +1 -0
  625. package/build/telemetry/core/index.d.ts +12 -0
  626. package/build/telemetry/core/index.d.ts.map +1 -0
  627. package/build/telemetry/core/index.js +32 -0
  628. package/build/telemetry/core/index.js.map +1 -0
  629. package/build/telemetry/core/types.d.ts +106 -0
  630. package/build/telemetry/core/types.d.ts.map +1 -0
  631. package/build/telemetry/core/types.js +10 -0
  632. package/build/telemetry/core/types.js.map +1 -0
  633. package/build/telemetry/index.d.ts +59 -0
  634. package/build/telemetry/index.d.ts.map +1 -0
  635. package/build/telemetry/index.js +79 -0
  636. package/build/telemetry/index.js.map +1 -0
  637. package/build/telemetry/metrics.d.ts +127 -0
  638. package/build/telemetry/metrics.d.ts.map +1 -0
  639. package/build/telemetry/metrics.js +337 -0
  640. package/build/telemetry/metrics.js.map +1 -0
  641. package/build/telemetry/sdk.d.ts +110 -0
  642. package/build/telemetry/sdk.d.ts.map +1 -0
  643. package/build/telemetry/sdk.js +547 -0
  644. package/build/telemetry/sdk.js.map +1 -0
  645. package/build/telemetry/tracing.d.ts +78 -0
  646. package/build/telemetry/tracing.d.ts.map +1 -0
  647. package/build/telemetry/tracing.js +257 -0
  648. package/build/telemetry/tracing.js.map +1 -0
  649. package/build/utils/env-helpers.d.ts +46 -0
  650. package/build/utils/env-helpers.d.ts.map +1 -0
  651. package/build/utils/env-helpers.js +54 -0
  652. package/build/utils/env-helpers.js.map +1 -0
  653. package/build/utils/index.d.ts +14 -0
  654. package/build/utils/index.d.ts.map +1 -0
  655. package/build/utils/index.js +19 -0
  656. package/build/utils/index.js.map +1 -0
  657. package/build/utils/sensitive-keys.d.ts +48 -0
  658. package/build/utils/sensitive-keys.d.ts.map +1 -0
  659. package/build/utils/sensitive-keys.js +131 -0
  660. package/build/utils/sensitive-keys.js.map +1 -0
  661. package/build/utils/string-helpers.d.ts +126 -0
  662. package/build/utils/string-helpers.d.ts.map +1 -0
  663. package/build/utils/string-helpers.js +189 -0
  664. package/build/utils/string-helpers.js.map +1 -0
  665. package/build/utils/validation.d.ts +84 -0
  666. package/build/utils/validation.d.ts.map +1 -0
  667. package/build/utils/validation.js +111 -0
  668. package/build/utils/validation.js.map +1 -0
  669. package/build/utils/zod-helpers.d.ts +92 -0
  670. package/build/utils/zod-helpers.d.ts.map +1 -0
  671. package/build/utils/zod-helpers.js +120 -0
  672. package/build/utils/zod-helpers.js.map +1 -0
  673. package/package.json +133 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Base Registry
3
+ *
4
+ * Generic abstract base class for MCP registries (Tools, Resources, Prompts).
5
+ * Extracts common functionality to reduce code duplication.
6
+ *
7
+ * @module mcp/capabilities/registry/base-registry
8
+ */
9
+ import { logger as baseLogger } from "../../../logger/index.js";
10
+ import { RegistryError } from "../../../errors/index.js";
11
+ // ============================================================================
12
+ // Logger
13
+ // ============================================================================
14
+ const LOG_COMPONENT = "registry";
15
+ const LogMessages = {
16
+ REGISTERED: "%s registered: %s",
17
+ REPLACED: "%s replaced: %s",
18
+ CLEARED: "%s registry cleared (%d item(s) removed)",
19
+ };
20
+ const logger = baseLogger.child({ component: LOG_COMPONENT });
21
+ // ============================================================================
22
+ // Base Registry Class
23
+ // ============================================================================
24
+ /**
25
+ * Abstract base class for MCP registries.
26
+ *
27
+ * Provides common functionality:
28
+ * - Registration (with duplicate checking)
29
+ * - Lookup by name
30
+ * - Iteration and size
31
+ * - Clear/unregister operations
32
+ *
33
+ * @typeParam T - The item type (must have a `name` property)
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * class ToolRegistry extends BaseRegistry<Tool> {
38
+ * // Add tool-specific methods here
39
+ * }
40
+ * ```
41
+ */
42
+ export class BaseRegistry {
43
+ /** Internal storage */
44
+ items = new Map();
45
+ // ──────────────────────────────────────────────────────────────────────────
46
+ // Registration
47
+ // ──────────────────────────────────────────────────────────────────────────
48
+ /**
49
+ * Register a new item. Throws if name already exists.
50
+ *
51
+ * @param item - Item to register
52
+ * @throws If an item with the same name is already registered
53
+ */
54
+ register(item) {
55
+ if (this.items.has(item.name)) {
56
+ throw RegistryError.duplicate(this.itemTypeName, item.name);
57
+ }
58
+ this.items.set(item.name, item);
59
+ logger.trace(LogMessages.REGISTERED, this.itemTypeName, item.name);
60
+ }
61
+ /**
62
+ * Register or replace an existing item.
63
+ *
64
+ * @param item - Item to register/replace
65
+ * @returns true if replaced, false if new
66
+ */
67
+ registerOrReplace(item) {
68
+ const existed = this.items.has(item.name);
69
+ this.items.set(item.name, item);
70
+ if (existed) {
71
+ logger.trace(LogMessages.REPLACED, this.itemTypeName, item.name);
72
+ }
73
+ else {
74
+ logger.trace(LogMessages.REGISTERED, this.itemTypeName, item.name);
75
+ }
76
+ return existed;
77
+ }
78
+ /**
79
+ * Unregister an item by name.
80
+ *
81
+ * @param name - Name of the item to remove
82
+ * @returns true if removed, false if not found
83
+ */
84
+ unregister(name) {
85
+ return this.items.delete(name);
86
+ }
87
+ /**
88
+ * Clear all items from the registry.
89
+ */
90
+ clear() {
91
+ const count = this.items.size;
92
+ this.items.clear();
93
+ if (count > 0) {
94
+ logger.trace(LogMessages.CLEARED, this.itemTypeName, count);
95
+ }
96
+ }
97
+ // ──────────────────────────────────────────────────────────────────────────
98
+ // Lookup
99
+ // ──────────────────────────────────────────────────────────────────────────
100
+ /**
101
+ * Get an item by name.
102
+ *
103
+ * @param name - Name of the item
104
+ * @returns The item or undefined
105
+ */
106
+ get(name) {
107
+ return this.items.get(name);
108
+ }
109
+ /**
110
+ * Check if an item exists.
111
+ *
112
+ * @param name - Name to check
113
+ * @returns true if exists
114
+ */
115
+ has(name) {
116
+ return this.items.has(name);
117
+ }
118
+ /**
119
+ * Get all registered items.
120
+ *
121
+ * @returns Readonly array of all items
122
+ */
123
+ getAll() {
124
+ return Array.from(this.items.values());
125
+ }
126
+ /**
127
+ * Number of registered items.
128
+ */
129
+ get size() {
130
+ return this.items.size;
131
+ }
132
+ /**
133
+ * Iterate over all items.
134
+ */
135
+ [Symbol.iterator]() {
136
+ return this.items.values();
137
+ }
138
+ // ──────────────────────────────────────────────────────────────────────────
139
+ // Abstract / Override
140
+ // ──────────────────────────────────────────────────────────────────────────
141
+ /**
142
+ * Human-readable name for error messages (e.g., "Tool", "Resource").
143
+ * Override in subclasses.
144
+ */
145
+ get itemTypeName() {
146
+ return "Item";
147
+ }
148
+ }
149
+ //# sourceMappingURL=base-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-registry.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/base-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Registry Module
3
+ *
4
+ * Provides registry classes that implement Provider interfaces for direct use
5
+ * with McpServerBuilder. Each registry also provides `static bindToSdk()` for
6
+ * registering definitions with MCP SDK server instances.
7
+ *
8
+ * @module mcp/capabilities/registry
9
+ */
10
+ export { BaseRegistry, type RegistryItem } from "./base-registry.js";
11
+ export { ToolRegistry, globalToolRegistry, type ToolBindOptions } from "./tool-registry.js";
12
+ export { ResourceRegistry, globalResourceRegistry, type ResourceBindOptions } from "./resource-registry.js";
13
+ export { PromptRegistry, globalPromptRegistry, type PromptBindOptions } from "./prompt-registry.js";
14
+ export { TaskToolRegistry, globalTaskToolRegistry, type TaskToolBindOptions } from "./task-tool-registry.js";
15
+ export { resetAllRegistries } from "./reset.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMrE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM5F,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM5G,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAMpG,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM7G,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Registry Module
3
+ *
4
+ * Provides registry classes that implement Provider interfaces for direct use
5
+ * with McpServerBuilder. Each registry also provides `static bindToSdk()` for
6
+ * registering definitions with MCP SDK server instances.
7
+ *
8
+ * @module mcp/capabilities/registry
9
+ */
10
+ // ─────────────────────────────────────────────────────────────────────────────
11
+ // Base Registry
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ export { BaseRegistry } from "./base-registry.js";
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ // Tool Registry
16
+ // ─────────────────────────────────────────────────────────────────────────────
17
+ export { ToolRegistry, globalToolRegistry } from "./tool-registry.js";
18
+ // ─────────────────────────────────────────────────────────────────────────────
19
+ // Resource Registry
20
+ // ─────────────────────────────────────────────────────────────────────────────
21
+ export { ResourceRegistry, globalResourceRegistry } from "./resource-registry.js";
22
+ // ─────────────────────────────────────────────────────────────────────────────
23
+ // Prompt Registry
24
+ // ─────────────────────────────────────────────────────────────────────────────
25
+ export { PromptRegistry, globalPromptRegistry } from "./prompt-registry.js";
26
+ // ─────────────────────────────────────────────────────────────────────────────
27
+ // Task Tool Registry
28
+ // ─────────────────────────────────────────────────────────────────────────────
29
+ export { TaskToolRegistry, globalTaskToolRegistry } from "./task-tool-registry.js";
30
+ // ─────────────────────────────────────────────────────────────────────────────
31
+ // Lifecycle Utilities
32
+ // ─────────────────────────────────────────────────────────────────────────────
33
+ export { resetAllRegistries } from "./reset.js";
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAErE,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAwB,MAAM,oBAAoB,CAAC;AAE5F,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAA4B,MAAM,wBAAwB,CAAC;AAE5G,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAA0B,MAAM,sBAAsB,CAAC;AAEpG,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAA4B,MAAM,yBAAyB,CAAC;AAE7G,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Prompt Registry
3
+ *
4
+ * Global registry for MCP prompts that implements PromptProvider.
5
+ * Extends BaseRegistry for common CRUD operations.
6
+ *
7
+ * The registry is the single authority for prompt definitions:
8
+ * - Storage: CRUD operations via BaseRegistry
9
+ * - SDK Binding: `bindToSdk()` registers prompts with MCP SDK server instances
10
+ *
11
+ * @module mcp/capabilities/registry/prompt-registry
12
+ */
13
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
14
+ import type { z } from "zod";
15
+ import type { PromptDefinition, PromptProvider } from "../../types/index.js";
16
+ import type { Logger } from "../../../logger/index.js";
17
+ import { BaseRegistry } from "./base-registry.js";
18
+ /**
19
+ * Options for binding prompts to an MCP SDK server.
20
+ * @internal
21
+ */
22
+ export interface PromptBindOptions {
23
+ readonly logger: Logger;
24
+ }
25
+ /**
26
+ * Registry for MCP prompts that implements PromptProvider.
27
+ *
28
+ * Extends BaseRegistry for standard CRUD operations (register, get, has, etc.)
29
+ * and provides `bindToSdk()` for registering prompts with MCP SDK server instances.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * import { promptRegistry, definePrompt } from 'mcp-server-framework';
34
+ *
35
+ * // Prompts are auto-registered via definePrompt()
36
+ * definePrompt({ name: 'explain', ... });
37
+ *
38
+ * // Registry can be used directly as a provider
39
+ * builder.withPromptProvider(promptRegistry);
40
+ * ```
41
+ */
42
+ export declare class PromptRegistry extends BaseRegistry<PromptDefinition> implements PromptProvider {
43
+ /**
44
+ * Creates an isolated PromptRegistry (no shared global state).
45
+ *
46
+ * Use for testing or when multiple independent registries are needed.
47
+ */
48
+ static createIsolated(): PromptRegistry;
49
+ protected get itemTypeName(): string;
50
+ /**
51
+ * Register a prompt from a generic factory function.
52
+ *
53
+ * Centralizes TypeScript generic variance handling. `PromptDefinition<TInput>`
54
+ * is invariant — `TInput` appears in both covariant (input property) and
55
+ * contravariant (generate parameter) positions via Zod's type mapping.
56
+ * TypeScript requires `as unknown as` because neither type sufficiently
57
+ * overlaps with the other (invariance).
58
+ *
59
+ * @internal Used by definePrompt() — prefer registerOrReplace() for non-generic usage.
60
+ */
61
+ registerFromFactory<TInput extends z.AnyZodObject>(prompt: PromptDefinition<TInput>): boolean;
62
+ /**
63
+ * Get all registered prompts.
64
+ */
65
+ getPrompts(): ReadonlyArray<PromptDefinition>;
66
+ /**
67
+ * Check if provider has any prompts.
68
+ */
69
+ hasPrompts(): boolean;
70
+ /**
71
+ * Registers prompt definitions with an MCP SDK server instance.
72
+ *
73
+ * Each prompt is registered with:
74
+ * - Schema extraction for SDK's raw shape format
75
+ * - Completable wrapping for prompt autocompletion
76
+ * - OpenTelemetry tracing spans
77
+ * - Structured error handling and logging
78
+ *
79
+ * @param sdk - The MCP SDK server instance
80
+ * @param prompts - Prompt definitions to register
81
+ * @param options - Registration context (logger)
82
+ * @internal
83
+ */
84
+ static bindToSdk(sdk: McpServer, prompts: readonly PromptDefinition[], options: PromptBindOptions): void;
85
+ /**
86
+ * Extracts the raw shape from a ZodObject for SDK prompt registration.
87
+ *
88
+ * @sdk-constraint — The SDK's `registerPrompt()` passes `argsSchema` directly to
89
+ * `objectFromShape()`, which expects a `Record<string, ZodType>` (raw shape),
90
+ * NOT a ZodObject instance. In contrast, `registerTool()` uses `getZodSchemaObject()`
91
+ * which handles both ZodObject and raw shapes. This asymmetry requires explicit
92
+ * shape extraction for prompts.
93
+ *
94
+ * @param schema - A ZodObject schema (e.g. `z.object({ name: z.string() })`)
95
+ * @returns The raw shape object (e.g. `{ name: z.string() }`) or undefined
96
+ */
97
+ private static extractPromptArgsShape;
98
+ /**
99
+ * Wraps Zod schema shape fields with SDK's `completable()` for prompt autocompletion.
100
+ *
101
+ * When a prompt defines a `complete` callback, each field in the args schema is wrapped
102
+ * so the SDK's built-in completion handler can invoke the callback per-field.
103
+ *
104
+ * @sdk-constraint — The SDK checks `isCompletable(field)` on each Zod schema field
105
+ * and uses `getCompleter(field)` to get the completion callback.
106
+ */
107
+ private static wrapShapeWithCompletable;
108
+ }
109
+ /**
110
+ * Global prompt registry singleton.
111
+ *
112
+ * This instance is used by definePrompt() for auto-registration
113
+ * and by createServer() to discover all prompts.
114
+ */
115
+ export declare const globalPromptRegistry: PromptRegistry;
116
+ //# sourceMappingURL=prompt-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-registry.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/prompt-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,gBAAgB,EAAiB,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAChH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmBlD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,SAAQ,YAAY,CAAC,gBAAgB,CAAE,YAAW,cAAc;IAK1F;;;;OAIG;IACH,MAAM,CAAC,cAAc,IAAI,cAAc;IAOvC,cAAuB,YAAY,IAAI,MAAM,CAE5C;IAMD;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,OAAO;IAS7F;;OAEG;IACH,UAAU,IAAI,aAAa,CAAC,gBAAgB,CAAC;IAI7C;;OAEG;IACH,UAAU,IAAI,OAAO;IAQrB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,gBAAgB,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IA6ExG;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAarC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CA6BxC;AAMD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,gBAAuB,CAAC"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Prompt Registry
3
+ *
4
+ * Global registry for MCP prompts that implements PromptProvider.
5
+ * Extends BaseRegistry for common CRUD operations.
6
+ *
7
+ * The registry is the single authority for prompt definitions:
8
+ * - Storage: CRUD operations via BaseRegistry
9
+ * - SDK Binding: `bindToSdk()` registers prompts with MCP SDK server instances
10
+ *
11
+ * @module mcp/capabilities/registry/prompt-registry
12
+ */
13
+ import { completable } from "@modelcontextprotocol/sdk/server/completable.js";
14
+ import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
15
+ import { withSpan, MCP_ATTRIBUTES, SpanKind } from "../../../telemetry/index.js";
16
+ import { BaseRegistry } from "./base-registry.js";
17
+ import { enforceScopeOrThrow } from "./scope-enforcement.js";
18
+ // ============================================================================
19
+ // Constants
20
+ // ============================================================================
21
+ const SdkBindingMessages = {
22
+ PROMPTS_REGISTERED: "Registered %d prompts with SDK",
23
+ PROMPT_REGISTERED: "Registered prompt: %s",
24
+ NO_PROMPTS: "No prompts to register",
25
+ PROMPT_GETTING: "Getting prompt: %s with args %j",
26
+ PROMPT_ERROR: "Error generating prompt %s: %s",
27
+ };
28
+ // ============================================================================
29
+ // Prompt Registry Class
30
+ // ============================================================================
31
+ /**
32
+ * Registry for MCP prompts that implements PromptProvider.
33
+ *
34
+ * Extends BaseRegistry for standard CRUD operations (register, get, has, etc.)
35
+ * and provides `bindToSdk()` for registering prompts with MCP SDK server instances.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import { promptRegistry, definePrompt } from 'mcp-server-framework';
40
+ *
41
+ * // Prompts are auto-registered via definePrompt()
42
+ * definePrompt({ name: 'explain', ... });
43
+ *
44
+ * // Registry can be used directly as a provider
45
+ * builder.withPromptProvider(promptRegistry);
46
+ * ```
47
+ */
48
+ export class PromptRegistry extends BaseRegistry {
49
+ // ──────────────────────────────────────────────────────────────────────────
50
+ // Factory
51
+ // ──────────────────────────────────────────────────────────────────────────
52
+ /**
53
+ * Creates an isolated PromptRegistry (no shared global state).
54
+ *
55
+ * Use for testing or when multiple independent registries are needed.
56
+ */
57
+ static createIsolated() {
58
+ return new PromptRegistry();
59
+ }
60
+ // ──────────────────────────────────────────────────────────────────────────
61
+ // BaseRegistry Override
62
+ // ──────────────────────────────────────────────────────────────────────────
63
+ get itemTypeName() {
64
+ return "Prompt";
65
+ }
66
+ // ──────────────────────────────────────────────────────────────────────────
67
+ // Generic Registration (Variance-Safe)
68
+ // ──────────────────────────────────────────────────────────────────────────
69
+ /**
70
+ * Register a prompt from a generic factory function.
71
+ *
72
+ * Centralizes TypeScript generic variance handling. `PromptDefinition<TInput>`
73
+ * is invariant — `TInput` appears in both covariant (input property) and
74
+ * contravariant (generate parameter) positions via Zod's type mapping.
75
+ * TypeScript requires `as unknown as` because neither type sufficiently
76
+ * overlaps with the other (invariance).
77
+ *
78
+ * @internal Used by definePrompt() — prefer registerOrReplace() for non-generic usage.
79
+ */
80
+ registerFromFactory(prompt) {
81
+ // @type-variance — Generic input erased for homogeneous storage; SDK validates at runtime
82
+ return this.registerOrReplace(prompt);
83
+ }
84
+ // ──────────────────────────────────────────────────────────────────────────
85
+ // PromptProvider Implementation
86
+ // ──────────────────────────────────────────────────────────────────────────
87
+ /**
88
+ * Get all registered prompts.
89
+ */
90
+ getPrompts() {
91
+ return this.getAll();
92
+ }
93
+ /**
94
+ * Check if provider has any prompts.
95
+ */
96
+ hasPrompts() {
97
+ return this.size > 0;
98
+ }
99
+ // ──────────────────────────────────────────────────────────────────────────
100
+ // SDK Binding
101
+ // ──────────────────────────────────────────────────────────────────────────
102
+ /**
103
+ * Registers prompt definitions with an MCP SDK server instance.
104
+ *
105
+ * Each prompt is registered with:
106
+ * - Schema extraction for SDK's raw shape format
107
+ * - Completable wrapping for prompt autocompletion
108
+ * - OpenTelemetry tracing spans
109
+ * - Structured error handling and logging
110
+ *
111
+ * @param sdk - The MCP SDK server instance
112
+ * @param prompts - Prompt definitions to register
113
+ * @param options - Registration context (logger)
114
+ * @internal
115
+ */
116
+ static bindToSdk(sdk, prompts, options) {
117
+ const { logger } = options;
118
+ if (prompts.length === 0) {
119
+ logger.trace(SdkBindingMessages.NO_PROMPTS);
120
+ return;
121
+ }
122
+ logger.trace(SdkBindingMessages.PROMPTS_REGISTERED, prompts.length);
123
+ for (const prompt of prompts) {
124
+ // @sdk-constraint — SDK registerPrompt expects PromptArgsRawShape (Record<string, ZodType>),
125
+ // NOT a ZodObject.
126
+ const argsShape = PromptRegistry.extractPromptArgsShape(prompt.input);
127
+ // Wrap schema fields with SDK's completable() when a complete callback is provided
128
+ const completableShape = argsShape && prompt.complete
129
+ ? PromptRegistry.wrapShapeWithCompletable(argsShape, prompt.complete, logger)
130
+ : argsShape;
131
+ const config = {
132
+ description: prompt.description,
133
+ ...(completableShape && { argsSchema: completableShape }),
134
+ };
135
+ // @sdk-constraint — registerPrompt generic requires PromptArgsRawShape; config carries extracted shape
136
+ sdk.registerPrompt(prompt.name, config, async (args, extra) => {
137
+ // Scope enforcement (RBAC)
138
+ enforceScopeOrThrow(prompt.requiredScopes, extra.authInfo, "Prompt", prompt.name, logger);
139
+ return withSpan(`mcp.prompt.${prompt.name}`, async (span) => {
140
+ span.setAttributes({
141
+ [MCP_ATTRIBUTES.PROMPT_NAME]: prompt.name,
142
+ [MCP_ATTRIBUTES.OPERATION]: "prompt_generate",
143
+ });
144
+ logger.trace(SdkBindingMessages.PROMPT_GETTING, prompt.name, args);
145
+ try {
146
+ // @sdk-constraint — SDK prompt callback types args as unknown
147
+ const messages = await prompt.generate(args);
148
+ span.setAttribute(MCP_ATTRIBUTES.RESULT_CONTENT_COUNT, messages.length);
149
+ return {
150
+ messages: messages.map((m) => ({
151
+ role: m.role,
152
+ content: { type: "text", text: m.content },
153
+ })),
154
+ };
155
+ }
156
+ catch (error) {
157
+ const msg = error instanceof Error ? error.message : String(error);
158
+ logger.error(SdkBindingMessages.PROMPT_ERROR, prompt.name, msg);
159
+ throw new McpError(ErrorCode.InternalError, `Prompt '${prompt.name}' failed: ${msg}`);
160
+ }
161
+ }, { kind: SpanKind.SERVER });
162
+ });
163
+ logger.trace(SdkBindingMessages.PROMPT_REGISTERED, prompt.name);
164
+ }
165
+ }
166
+ // ──────────────────────────────────────────────────────────────────────────
167
+ // Private SDK Binding Helpers
168
+ // ──────────────────────────────────────────────────────────────────────────
169
+ /**
170
+ * Extracts the raw shape from a ZodObject for SDK prompt registration.
171
+ *
172
+ * @sdk-constraint — The SDK's `registerPrompt()` passes `argsSchema` directly to
173
+ * `objectFromShape()`, which expects a `Record<string, ZodType>` (raw shape),
174
+ * NOT a ZodObject instance. In contrast, `registerTool()` uses `getZodSchemaObject()`
175
+ * which handles both ZodObject and raw shapes. This asymmetry requires explicit
176
+ * shape extraction for prompts.
177
+ *
178
+ * @param schema - A ZodObject schema (e.g. `z.object({ name: z.string() })`)
179
+ * @returns The raw shape object (e.g. `{ name: z.string() }`) or undefined
180
+ */
181
+ static extractPromptArgsShape(schema) {
182
+ if (!schema)
183
+ return undefined;
184
+ // @type-narrowing — ZodObject.shape is typed as ZodRawShape (Record<string, ZodTypeAny>)
185
+ const shape = schema.shape;
186
+ // Empty shapes are valid — SDK handles them (creates z4mini.object({}))
187
+ // but skipping registration entirely for empty schemas is cleaner
188
+ if (Object.keys(shape).length === 0)
189
+ return undefined;
190
+ return shape;
191
+ }
192
+ /**
193
+ * Wraps Zod schema shape fields with SDK's `completable()` for prompt autocompletion.
194
+ *
195
+ * When a prompt defines a `complete` callback, each field in the args schema is wrapped
196
+ * so the SDK's built-in completion handler can invoke the callback per-field.
197
+ *
198
+ * @sdk-constraint — The SDK checks `isCompletable(field)` on each Zod schema field
199
+ * and uses `getCompleter(field)` to get the completion callback.
200
+ */
201
+ static wrapShapeWithCompletable(shape, complete, logger) {
202
+ const wrapped = {};
203
+ for (const [fieldName, fieldSchema] of Object.entries(shape)) {
204
+ // Clone the schema before wrapping — completable() mutates the Zod object via
205
+ // Object.defineProperty with configurable:false. Since definitions are global
206
+ // singletons (DD-002), a second session would fail with "Cannot redefine property".
207
+ const cloned = fieldSchema.describe(fieldSchema.description ?? "");
208
+ wrapped[fieldName] = completable(cloned, async (value) => {
209
+ try {
210
+ const result = await complete(fieldName, value);
211
+ return result.values;
212
+ }
213
+ catch (error) {
214
+ logger.warn("Completion callback failed for field '%s': %s", fieldName, error instanceof Error ? error.message : String(error));
215
+ return [];
216
+ }
217
+ });
218
+ }
219
+ return wrapped;
220
+ }
221
+ }
222
+ // ============================================================================
223
+ // Global Singleton Instance
224
+ // ============================================================================
225
+ /**
226
+ * Global prompt registry singleton.
227
+ *
228
+ * This instance is used by definePrompt() for auto-registration
229
+ * and by createServer() to discover all prompts.
230
+ */
231
+ export const globalPromptRegistry = new PromptRegistry();
232
+ //# sourceMappingURL=prompt-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-registry.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/prompt-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Registry Reset Utility
3
+ *
4
+ * Provides a lifecycle function to reset all global registries.
5
+ * Keeps the barrel file (index.ts) free of implementation logic.
6
+ *
7
+ * @module mcp/capabilities/registry/reset
8
+ */
9
+ /**
10
+ * Reset all global registries.
11
+ *
12
+ * Clears all registered tools, resources, resource templates, and prompts
13
+ * from the global singleton registries. After calling this, all `define*()`
14
+ * calls must be re-executed to repopulate the registries.
15
+ *
16
+ * **Use cases:**
17
+ * - Hot-reload during development
18
+ * - Server restart / lifecycle management
19
+ * - Isolated testing scenarios
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { resetAllRegistries } from 'mcp-server-framework';
24
+ *
25
+ * // Before re-registering tools in a hot-reload scenario
26
+ * resetAllRegistries();
27
+ * ```
28
+ */
29
+ export declare function resetAllRegistries(): void;
30
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/reset.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC"}