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,48 @@
1
+ /**
2
+ * Scope Enforcement for SDK Bindings
3
+ *
4
+ * Centralizes RBAC scope checking used by tool, resource, and prompt registries.
5
+ * This is the internal enforcement layer — for consumer-facing guards,
6
+ * see `server/auth/guards.ts` (requireAuth, requireScope, hasScope).
7
+ *
8
+ * @module mcp/capabilities/registry/scope-enforcement
9
+ * @internal
10
+ */
11
+ import type { Logger } from "../../../logger/index.js";
12
+ /**
13
+ * Minimal auth info shape from SDK's `extra.authInfo`.
14
+ * Kept intentionally loose to match all SDK callback signatures.
15
+ * @internal
16
+ */
17
+ export interface SdkAuthInfo {
18
+ readonly scopes?: readonly string[];
19
+ }
20
+ /**
21
+ * Checks that all `requiredScopes` are present in the token's scopes.
22
+ * Throws {@link AuthorizationError} and logs a warning if scopes are insufficient.
23
+ *
24
+ * No-op when:
25
+ * - `requiredScopes` is undefined or empty
26
+ * - `authInfo` is undefined (no auth middleware active)
27
+ *
28
+ * @param requiredScopes - Scopes required by the definition (AND logic)
29
+ * @param authInfo - Auth info from SDK `extra.authInfo`
30
+ * @param capabilityType - Label for log messages (e.g. 'Tool', 'Resource', 'Prompt')
31
+ * @param capabilityName - Name/URI of the capability for log context
32
+ * @param logger - Logger instance for warning output
33
+ *
34
+ * @throws {@link AuthorizationError} when required scopes are not satisfied
35
+ * @internal
36
+ */
37
+ export declare function enforceScopeOrThrow(requiredScopes: readonly string[] | undefined, authInfo: SdkAuthInfo | undefined, capabilityType: string, capabilityName: string, logger: Logger): void;
38
+ /**
39
+ * Checks if all required scopes are present in the token's scopes.
40
+ * Used by scope-filtered list handlers to decide visibility.
41
+ *
42
+ * @param required - Scopes required by the definition (AND logic)
43
+ * @param tokenScopes - Scopes present on the token
44
+ * @returns `true` if all required scopes are present
45
+ * @internal
46
+ */
47
+ export declare function hasAllRequiredScopes(required: readonly string[], tokenScopes: readonly string[]): boolean;
48
+ //# sourceMappingURL=scope-enforcement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/scope-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMvD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC7C,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,IAAI,CAYN;AAMD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEzG"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Scope Enforcement for SDK Bindings
3
+ *
4
+ * Centralizes RBAC scope checking used by tool, resource, and prompt registries.
5
+ * This is the internal enforcement layer — for consumer-facing guards,
6
+ * see `server/auth/guards.ts` (requireAuth, requireScope, hasScope).
7
+ *
8
+ * @module mcp/capabilities/registry/scope-enforcement
9
+ * @internal
10
+ */
11
+ import { AuthorizationError } from "../../../errors/index.js";
12
+ // ============================================================================
13
+ // Constants
14
+ // ============================================================================
15
+ const AUTH_SCOPE_DENIED = "%s [%s] requires scopes [%s] but token has [%s]";
16
+ // ============================================================================
17
+ // Enforcement
18
+ // ============================================================================
19
+ /**
20
+ * Checks that all `requiredScopes` are present in the token's scopes.
21
+ * Throws {@link AuthorizationError} and logs a warning if scopes are insufficient.
22
+ *
23
+ * No-op when:
24
+ * - `requiredScopes` is undefined or empty
25
+ * - `authInfo` is undefined (no auth middleware active)
26
+ *
27
+ * @param requiredScopes - Scopes required by the definition (AND logic)
28
+ * @param authInfo - Auth info from SDK `extra.authInfo`
29
+ * @param capabilityType - Label for log messages (e.g. 'Tool', 'Resource', 'Prompt')
30
+ * @param capabilityName - Name/URI of the capability for log context
31
+ * @param logger - Logger instance for warning output
32
+ *
33
+ * @throws {@link AuthorizationError} when required scopes are not satisfied
34
+ * @internal
35
+ */
36
+ export function enforceScopeOrThrow(requiredScopes, authInfo, capabilityType, capabilityName, logger) {
37
+ if (!requiredScopes || requiredScopes.length === 0 || !authInfo) {
38
+ return;
39
+ }
40
+ const tokenScopes = authInfo.scopes ?? [];
41
+ const missing = requiredScopes.filter((s) => !tokenScopes.includes(s));
42
+ if (missing.length > 0) {
43
+ logger.warn(AUTH_SCOPE_DENIED, capabilityType, capabilityName, requiredScopes.join(","), tokenScopes.join(","));
44
+ throw AuthorizationError.insufficientScope(requiredScopes, tokenScopes);
45
+ }
46
+ }
47
+ // ============================================================================
48
+ // List Filtering
49
+ // ============================================================================
50
+ /**
51
+ * Checks if all required scopes are present in the token's scopes.
52
+ * Used by scope-filtered list handlers to decide visibility.
53
+ *
54
+ * @param required - Scopes required by the definition (AND logic)
55
+ * @param tokenScopes - Scopes present on the token
56
+ * @returns `true` if all required scopes are present
57
+ * @internal
58
+ */
59
+ export function hasAllRequiredScopes(required, tokenScopes) {
60
+ return required.every((s) => tokenScopes.includes(s));
61
+ }
62
+ //# sourceMappingURL=scope-enforcement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-enforcement.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/scope-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAgB9D,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,iDAAiD,CAAC;AAE5E,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAA6C,EAC7C,QAAiC,EACjC,cAAsB,EACtB,cAAsB,EACtB,MAAc;IAEd,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChE,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChH,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA2B,EAAE,WAA8B;IAC9F,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Task Tool Registry
3
+ *
4
+ * Global registry for MCP task tools that implements TaskToolProvider interface.
5
+ * Extends BaseRegistry for common CRUD operations.
6
+ *
7
+ * The registry is the single authority for task tool definitions:
8
+ * - Storage: CRUD operations via BaseRegistry
9
+ * - SDK Binding: `bindToSdk()` registers task tools with MCP SDK server instances
10
+ *
11
+ * @experimental MCP Tasks is an experimental SDK feature
12
+ * @module mcp/capabilities/registry/task-tool-registry
13
+ */
14
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
15
+ import type { z } from "zod";
16
+ import type { TaskToolDefinition, TaskToolProvider } from "../../types/index.js";
17
+ import type { Logger } from "../../../logger/index.js";
18
+ import { BaseRegistry } from "./base-registry.js";
19
+ /**
20
+ * Options for binding task tools to an MCP SDK server.
21
+ * @internal
22
+ */
23
+ export interface TaskToolBindOptions {
24
+ readonly logger: Logger;
25
+ readonly stateless: boolean;
26
+ }
27
+ /**
28
+ * Registry for MCP task tools that implements TaskToolProvider.
29
+ *
30
+ * Extends BaseRegistry for standard CRUD operations (register, get, has, etc.)
31
+ * and provides `bindToSdk()` for registering task tools with MCP SDK server instances.
32
+ *
33
+ * @experimental MCP Tasks is an experimental SDK feature
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { globalTaskToolRegistry, defineTask } from 'mcp-server-framework';
38
+ *
39
+ * // Task tools are auto-registered via defineTask()
40
+ * defineTask({ name: 'long_job', ... });
41
+ *
42
+ * // Registry can be used directly as a provider
43
+ * builder.withTaskToolProvider(globalTaskToolRegistry);
44
+ * ```
45
+ */
46
+ export declare class TaskToolRegistry extends BaseRegistry<TaskToolDefinition> implements TaskToolProvider {
47
+ /**
48
+ * Creates an isolated TaskToolRegistry (no shared global state).
49
+ *
50
+ * Used for testing.
51
+ */
52
+ static createIsolated(): TaskToolRegistry;
53
+ protected get itemTypeName(): string;
54
+ /**
55
+ * Register a task tool from a generic factory function.
56
+ *
57
+ * Centralizes TypeScript generic variance handling. See ToolRegistry for
58
+ * detailed explanation of the variance pattern.
59
+ *
60
+ * @internal Used by defineTask() — prefer registerOrReplace() for non-generic usage.
61
+ */
62
+ registerFromFactory<TInput extends z.ZodTypeAny>(taskTool: TaskToolDefinition<TInput>): boolean;
63
+ /**
64
+ * Get all registered task tools.
65
+ *
66
+ * @returns Readonly array of all task tools
67
+ */
68
+ getTaskTools(): ReadonlyArray<TaskToolDefinition>;
69
+ /**
70
+ * Registers task tools with the MCP SDK's experimental tasks API.
71
+ *
72
+ * Each task tool is registered via `sdk.experimental.tasks.registerToolTask()`.
73
+ * The SDK handles the task lifecycle protocol (`tasks/list`, `tasks/get`,
74
+ * `tasks/result`, `tasks/cancel`) automatically when a `taskStore` is provided.
75
+ *
76
+ * @param sdk - The MCP SDK server instance
77
+ * @param taskTools - Task tool definitions to register
78
+ * @param options - Registration context (logger, stateless mode)
79
+ * @internal
80
+ * @experimental
81
+ */
82
+ static bindToSdk(sdk: McpServer, taskTools: readonly TaskToolDefinition[], options: TaskToolBindOptions): void;
83
+ /**
84
+ * Builds the shared base context from SDK extra parameters.
85
+ * Common to all three task handler methods.
86
+ */
87
+ private static buildBaseContext;
88
+ }
89
+ /**
90
+ * Global task tool registry singleton.
91
+ *
92
+ * This instance is used by defineTask() for auto-registration
93
+ * and by createServer() to discover all task tools.
94
+ */
95
+ export declare const globalTaskToolRegistry: TaskToolRegistry;
96
+ //# sourceMappingURL=task-tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-tool-registry.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/task-tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAIjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAgBlD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAwBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAiB,SAAQ,YAAY,CAAC,kBAAkB,CAAE,YAAW,gBAAgB;IAKhG;;;;OAIG;IACH,MAAM,CAAC,cAAc,IAAI,gBAAgB;IAQzC,cAAuB,YAAY,IAAI,MAAM,CAE5C;IAMD;;;;;;;OAOG;IACH,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,OAAO;IAS/F;;;;OAIG;IACH,YAAY,IAAI,aAAa,CAAC,kBAAkB,CAAC;IAQjD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,kBAAkB,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAiF9G;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAqBhC;AAMD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,kBAAyB,CAAC"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Task Tool Registry
3
+ *
4
+ * Global registry for MCP task tools that implements TaskToolProvider interface.
5
+ * Extends BaseRegistry for common CRUD operations.
6
+ *
7
+ * The registry is the single authority for task tool definitions:
8
+ * - Storage: CRUD operations via BaseRegistry
9
+ * - SDK Binding: `bindToSdk()` registers task tools with MCP SDK server instances
10
+ *
11
+ * @experimental MCP Tasks is an experimental SDK feature
12
+ * @module mcp/capabilities/registry/task-tool-registry
13
+ */
14
+ import { createProgressReporter } from "../../handlers/index.js";
15
+ import { BaseRegistry } from "./base-registry.js";
16
+ // ============================================================================
17
+ // Constants
18
+ // ============================================================================
19
+ const SdkBindingMessages = {
20
+ TASK_TOOLS_REGISTERED: "Registered %d task tools with SDK",
21
+ TASK_TOOL_REGISTERED: "Registered task tool: %s (taskSupport=%s)",
22
+ NO_TASK_TOOLS: "No task tools to register",
23
+ };
24
+ // ============================================================================
25
+ // Task Tool Registry Class
26
+ // ============================================================================
27
+ /**
28
+ * Registry for MCP task tools that implements TaskToolProvider.
29
+ *
30
+ * Extends BaseRegistry for standard CRUD operations (register, get, has, etc.)
31
+ * and provides `bindToSdk()` for registering task tools with MCP SDK server instances.
32
+ *
33
+ * @experimental MCP Tasks is an experimental SDK feature
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { globalTaskToolRegistry, defineTask } from 'mcp-server-framework';
38
+ *
39
+ * // Task tools are auto-registered via defineTask()
40
+ * defineTask({ name: 'long_job', ... });
41
+ *
42
+ * // Registry can be used directly as a provider
43
+ * builder.withTaskToolProvider(globalTaskToolRegistry);
44
+ * ```
45
+ */
46
+ export class TaskToolRegistry extends BaseRegistry {
47
+ // ──────────────────────────────────────────────────────────────────────────
48
+ // Factory
49
+ // ──────────────────────────────────────────────────────────────────────────
50
+ /**
51
+ * Creates an isolated TaskToolRegistry (no shared global state).
52
+ *
53
+ * Used for testing.
54
+ */
55
+ static createIsolated() {
56
+ return new TaskToolRegistry();
57
+ }
58
+ // ──────────────────────────────────────────────────────────────────────────
59
+ // BaseRegistry Override
60
+ // ──────────────────────────────────────────────────────────────────────────
61
+ get itemTypeName() {
62
+ return "TaskTool";
63
+ }
64
+ // ──────────────────────────────────────────────────────────────────────────
65
+ // Generic Registration (Variance-Safe)
66
+ // ──────────────────────────────────────────────────────────────────────────
67
+ /**
68
+ * Register a task tool from a generic factory function.
69
+ *
70
+ * Centralizes TypeScript generic variance handling. See ToolRegistry for
71
+ * detailed explanation of the variance pattern.
72
+ *
73
+ * @internal Used by defineTask() — prefer registerOrReplace() for non-generic usage.
74
+ */
75
+ registerFromFactory(taskTool) {
76
+ // @type-variance — Generic input erased for homogeneous storage; SDK validates at runtime
77
+ return this.registerOrReplace(taskTool);
78
+ }
79
+ // ──────────────────────────────────────────────────────────────────────────
80
+ // TaskToolProvider Implementation
81
+ // ──────────────────────────────────────────────────────────────────────────
82
+ /**
83
+ * Get all registered task tools.
84
+ *
85
+ * @returns Readonly array of all task tools
86
+ */
87
+ getTaskTools() {
88
+ return this.getAll();
89
+ }
90
+ // ──────────────────────────────────────────────────────────────────────────
91
+ // SDK Binding
92
+ // ──────────────────────────────────────────────────────────────────────────
93
+ /**
94
+ * Registers task tools with the MCP SDK's experimental tasks API.
95
+ *
96
+ * Each task tool is registered via `sdk.experimental.tasks.registerToolTask()`.
97
+ * The SDK handles the task lifecycle protocol (`tasks/list`, `tasks/get`,
98
+ * `tasks/result`, `tasks/cancel`) automatically when a `taskStore` is provided.
99
+ *
100
+ * @param sdk - The MCP SDK server instance
101
+ * @param taskTools - Task tool definitions to register
102
+ * @param options - Registration context (logger, stateless mode)
103
+ * @internal
104
+ * @experimental
105
+ */
106
+ static bindToSdk(sdk, taskTools, options) {
107
+ const { logger, stateless } = options;
108
+ if (taskTools.length === 0) {
109
+ logger.trace(SdkBindingMessages.NO_TASK_TOOLS);
110
+ return;
111
+ }
112
+ logger.trace(SdkBindingMessages.TASK_TOOLS_REGISTERED, taskTools.length);
113
+ for (const taskTool of taskTools) {
114
+ const taskSupport = taskTool.taskSupport ?? "required";
115
+ // @sdk-constraint — SDK registerToolTask has two overloads:
116
+ // Overload 1 (no input): config without inputSchema, ToolTaskHandler<undefined>
117
+ // Overload 2 (with input): config with inputSchema, ToolTaskHandler<InputArgs>
118
+ // We must cast to AnySchema to select overload 2
119
+ const sdkHandler = {
120
+ createTask: async (args, extra) => {
121
+ const base = TaskToolRegistry.buildBaseContext(extra, stateless);
122
+ const context = {
123
+ ...base,
124
+ taskStore: extra.taskStore,
125
+ };
126
+ // @sdk-constraint — SDK registerToolTask erases input schema type; args validated at runtime
127
+ return taskTool.taskHandler.createTask(args, context);
128
+ },
129
+ getTask: async (args, extra) => {
130
+ const base = TaskToolRegistry.buildBaseContext(extra, stateless);
131
+ const context = {
132
+ ...base,
133
+ taskId: extra.taskId,
134
+ taskStore: extra.taskStore,
135
+ };
136
+ // @sdk-constraint — SDK registerToolTask erases input schema type; args validated at runtime
137
+ return taskTool.taskHandler.getTask(args, context);
138
+ },
139
+ getTaskResult: async (args, extra) => {
140
+ const base = TaskToolRegistry.buildBaseContext(extra, stateless);
141
+ const context = {
142
+ ...base,
143
+ taskId: extra.taskId,
144
+ taskStore: extra.taskStore,
145
+ };
146
+ // @sdk-constraint — SDK registerToolTask erases input schema type; args validated at runtime
147
+ return taskTool.taskHandler.getTaskResult(args, context);
148
+ },
149
+ };
150
+ sdk.experimental.tasks.registerToolTask(taskTool.name, {
151
+ description: taskTool.description,
152
+ // @sdk-constraint — registerToolTask expects AnySchema; Zod input is compatible at runtime
153
+ inputSchema: taskTool.input,
154
+ execution: { taskSupport },
155
+ ...(taskTool.annotations && { annotations: taskTool.annotations }),
156
+ ...(taskTool._meta && { _meta: taskTool._meta }),
157
+ }, sdkHandler);
158
+ logger.trace(SdkBindingMessages.TASK_TOOL_REGISTERED, taskTool.name, taskSupport);
159
+ }
160
+ }
161
+ // ──────────────────────────────────────────────────────────────────────────
162
+ // Private SDK Binding Helpers
163
+ // ──────────────────────────────────────────────────────────────────────────
164
+ /**
165
+ * Builds the shared base context from SDK extra parameters.
166
+ * Common to all three task handler methods.
167
+ */
168
+ static buildBaseContext(extra, stateless) {
169
+ const progressToken = extra._meta?.progressToken;
170
+ const reportProgress = createProgressReporter(extra.sendNotification.bind(extra), progressToken);
171
+ return {
172
+ reportProgress,
173
+ abortSignal: extra.signal,
174
+ requestId: extra.requestId,
175
+ sessionId: extra.sessionId,
176
+ stateless,
177
+ };
178
+ }
179
+ }
180
+ // ============================================================================
181
+ // Global Singleton Instance
182
+ // ============================================================================
183
+ /**
184
+ * Global task tool registry singleton.
185
+ *
186
+ * This instance is used by defineTask() for auto-registration
187
+ * and by createServer() to discover all task tools.
188
+ */
189
+ export const globalTaskToolRegistry = new TaskToolRegistry();
190
+ //# sourceMappingURL=task-tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-tool-registry.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/task-tool-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Tool Registry
3
+ *
4
+ * Global registry for MCP tools that implements ToolProvider interface.
5
+ * Extends BaseRegistry for common CRUD operations and provides SDK binding.
6
+ *
7
+ * The registry is the single authority for tool definitions:
8
+ * - Storage: CRUD operations via BaseRegistry
9
+ * - SDK Binding: `bindToSdk()` registers tools with MCP SDK server instances
10
+ *
11
+ * @module mcp/capabilities/registry/tool-registry
12
+ */
13
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
14
+ import type { z } from "zod";
15
+ import type { ToolDefinition, ToolProvider } from "../../types/index.js";
16
+ import type { Logger } from "../../../logger/index.js";
17
+ import { BaseRegistry } from "./base-registry.js";
18
+ /**
19
+ * Options for binding tools to an MCP SDK server.
20
+ * @internal
21
+ */
22
+ export interface ToolBindOptions {
23
+ readonly logger: Logger;
24
+ readonly stateless: boolean;
25
+ }
26
+ /**
27
+ * Registry for MCP tools that implements ToolProvider.
28
+ *
29
+ * Extends BaseRegistry for standard CRUD operations (register, get, has, etc.)
30
+ * and provides `bindToSdk()` for registering tools with MCP SDK server instances.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { toolRegistry, defineTool } from 'mcp-server-framework';
35
+ *
36
+ * // Tools are auto-registered via defineTool()
37
+ * defineTool({ name: 'greet', ... });
38
+ *
39
+ * // Registry can be used directly as a provider
40
+ * builder.withToolProvider(toolRegistry);
41
+ * ```
42
+ */
43
+ export declare class ToolRegistry extends BaseRegistry<ToolDefinition> implements ToolProvider {
44
+ /**
45
+ * Creates an isolated ToolRegistry (no shared global state).
46
+ *
47
+ * Used for testing.
48
+ */
49
+ static createIsolated(): ToolRegistry;
50
+ protected get itemTypeName(): string;
51
+ /**
52
+ * Register a tool from a generic factory function.
53
+ *
54
+ * Centralizes TypeScript generic variance handling. `ToolDefinition<TInput>`
55
+ * is invariant — `TInput` appears in both covariant (input property) and
56
+ * contravariant (handler parameter) positions via Zod's type mapping.
57
+ * TypeScript requires `as unknown as` because neither `ToolDefinition<TInput>`
58
+ * nor `ToolDefinition<ZodTypeAny>` sufficiently overlaps with the other.
59
+ *
60
+ * This is safe because the MCP SDK validates input via the Zod schema
61
+ * at runtime before the handler is invoked.
62
+ *
63
+ * @internal Used by defineTool() — prefer registerOrReplace() for non-generic usage.
64
+ */
65
+ registerFromFactory<TInput extends z.ZodTypeAny>(tool: ToolDefinition<TInput>): boolean;
66
+ /**
67
+ * Get all registered tools.
68
+ *
69
+ * @returns Readonly array of all tools
70
+ */
71
+ getTools(): ReadonlyArray<ToolDefinition>;
72
+ /**
73
+ * Registers tool definitions with an MCP SDK server instance.
74
+ *
75
+ * Each tool is registered with:
76
+ * - SDK-native cancellation via `extra.signal` (AbortSignal per request)
77
+ * - Rate-limited progress reporting via `extra.sendNotification`
78
+ * - Structured error handling with MCP error codes
79
+ * - OpenTelemetry tracing spans and metrics recording
80
+ * - Tool annotations passed through to the SDK
81
+ *
82
+ * @param sdk - The MCP SDK server instance
83
+ * @param tools - Tool definitions to register
84
+ * @param options - Registration context (logger, stateless mode)
85
+ * @internal
86
+ */
87
+ static bindToSdk(sdk: McpServer, tools: readonly ToolDefinition[], options: ToolBindOptions): void;
88
+ /**
89
+ * Executes a tool handler with cancellation, progress, tracing, and error handling.
90
+ */
91
+ private static executeToolCall;
92
+ }
93
+ /**
94
+ * Global tool registry singleton.
95
+ *
96
+ * This instance is used by defineTool() for auto-registration
97
+ * and by createServer() to discover all tools.
98
+ */
99
+ export declare const globalToolRegistry: ToolRegistry;
100
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/tool-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,cAAc,EAAe,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAuBlD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAa,SAAQ,YAAY,CAAC,cAAc,CAAE,YAAW,YAAY;IAKpF;;;;OAIG;IACH,MAAM,CAAC,cAAc,IAAI,YAAY;IAOrC,cAAuB,YAAY,IAAI,MAAM,CAE5C;IAKD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO;IASvF;;;;OAIG;IACH,QAAQ,IAAI,aAAa,CAAC,cAAc,CAAC;IAQzC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IA8ElG;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CAyE/B;AAMD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,cAAqB,CAAC"}