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,257 @@
1
+ /**
2
+ * OpenTelemetry Tracing Utilities
3
+ *
4
+ * Provides convenient helpers for creating and managing spans.
5
+ * All OTEL imports are lazy-loaded (see DD-020). Synchronous functions
6
+ * gracefully no-op when the API hasn't been loaded yet.
7
+ *
8
+ * @module server/telemetry/tracing
9
+ */
10
+ import { getTelemetryConfig, } from "./core/index.js";
11
+ let otelApi = null;
12
+ /**
13
+ * Lazily load and cache the @opentelemetry/api value exports.
14
+ * Called on every async path; returns instantly after first load.
15
+ */
16
+ async function loadOtelApi() {
17
+ if (otelApi)
18
+ return otelApi;
19
+ const api = await import("@opentelemetry/api");
20
+ otelApi = {
21
+ trace: api.trace,
22
+ context: api.context,
23
+ SpanStatusCode: api.SpanStatusCode,
24
+ SpanKind: api.SpanKind,
25
+ };
26
+ return otelApi;
27
+ }
28
+ /**
29
+ * Synchronous access to the cached API. Returns null when the module
30
+ * hasn't been loaded yet — callers must handle the noop path.
31
+ */
32
+ function getCachedOtelApi() {
33
+ return otelApi;
34
+ }
35
+ // ============================================================================
36
+ // Framework-level SpanKind / SpanStatusCode constants
37
+ // ============================================================================
38
+ // These mirror the OTEL enum values so that consumers can import them from
39
+ // the framework without triggering a static @opentelemetry/api import.
40
+ // They are numeric-compatible with the OTEL enums.
41
+ /** @public SpanKind constants — numeric-compatible with `@opentelemetry/api.SpanKind` */
42
+ export const FrameworkSpanKind = {
43
+ INTERNAL: 0,
44
+ SERVER: 1,
45
+ CLIENT: 2,
46
+ PRODUCER: 3,
47
+ CONSUMER: 4,
48
+ };
49
+ /** @public SpanStatusCode constants — numeric-compatible with `@opentelemetry/api.SpanStatusCode` */
50
+ export const FrameworkSpanStatusCode = {
51
+ UNSET: 0,
52
+ OK: 1,
53
+ ERROR: 2,
54
+ };
55
+ /**
56
+ * Get the tracer instance for the MCP Server.
57
+ * Returns a noop tracer proxy when the OTEL API hasn't been loaded yet.
58
+ */
59
+ export function getTracer() {
60
+ const tracer = getTracerOrNull();
61
+ if (tracer)
62
+ return tracer;
63
+ // Return a minimal noop tracer when OTEL API isn't loaded yet.
64
+ // All methods are safe to call — spans are discarded.
65
+ return {
66
+ startSpan: () => noopSpan,
67
+ startActiveSpan: (_name, ...args) => {
68
+ // startActiveSpan has multiple overloads; the last arg is always the callback
69
+ const fn = args[args.length - 1];
70
+ return fn(noopSpan);
71
+ },
72
+ // @ts-limitation — object literal satisfies Tracer contract but TS cannot infer structural compatibility
73
+ };
74
+ }
75
+ /** Minimal noop span for the noop tracer fallback */
76
+ const noopSpan = {
77
+ spanContext: () => ({ traceId: "", spanId: "", traceFlags: 0 }),
78
+ setAttribute: () => noopSpan,
79
+ setAttributes: () => noopSpan,
80
+ addEvent: () => noopSpan,
81
+ addLink: () => noopSpan,
82
+ addLinks: () => noopSpan,
83
+ setStatus: () => noopSpan,
84
+ updateName: () => noopSpan,
85
+ end: () => { },
86
+ isRecording: () => false,
87
+ recordException: () => { },
88
+ // @ts-limitation — object literal satisfies Span contract but TS cannot infer structural compatibility
89
+ };
90
+ /**
91
+ * Get the tracer instance for the MCP Server.
92
+ * Returns undefined when the OTEL API hasn't been loaded yet.
93
+ * @internal
94
+ */
95
+ function getTracerOrNull() {
96
+ const api = getCachedOtelApi();
97
+ if (!api)
98
+ return undefined;
99
+ const config = getTelemetryConfig();
100
+ return api.trace.getTracer(config.serviceName, config.serviceVersion);
101
+ }
102
+ /**
103
+ * Get the tracer instance (async — loads OTEL API if needed).
104
+ */
105
+ async function getTracerAsync() {
106
+ const api = await loadOtelApi();
107
+ const config = getTelemetryConfig();
108
+ return api.trace.getTracer(config.serviceName, config.serviceVersion);
109
+ }
110
+ /**
111
+ * Execute a function within a new span.
112
+ * Automatically handles errors and sets span status.
113
+ *
114
+ * @param name - Name of the span
115
+ * @param fn - Function to execute within the span
116
+ * @param options - Span options
117
+ * @returns The result of the function
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * const result = await withSpan('processRequest', async (span) => {
122
+ * span.setAttribute('request.id', requestId);
123
+ * return await processRequest();
124
+ * });
125
+ * ```
126
+ */
127
+ export async function withSpan(name, fn, options = {}) {
128
+ const api = await loadOtelApi();
129
+ const tracer = await getTracerAsync();
130
+ const parentContext = options.parentContext ?? api.context.active();
131
+ return tracer.startActiveSpan(name, {
132
+ kind: options.kind ?? api.SpanKind.INTERNAL,
133
+ ...(options.attributes !== undefined && {
134
+ attributes: options.attributes,
135
+ }),
136
+ }, parentContext, async (span) => {
137
+ try {
138
+ const result = await fn(span);
139
+ span.setStatus({ code: api.SpanStatusCode.OK });
140
+ return result;
141
+ }
142
+ catch (error) {
143
+ // Record the error on the span
144
+ if (error instanceof Error) {
145
+ span.recordException(error);
146
+ span.setStatus({
147
+ code: api.SpanStatusCode.ERROR,
148
+ message: error.message,
149
+ });
150
+ }
151
+ else {
152
+ span.setStatus({
153
+ code: api.SpanStatusCode.ERROR,
154
+ message: String(error),
155
+ });
156
+ }
157
+ throw error;
158
+ }
159
+ finally {
160
+ span.end();
161
+ }
162
+ });
163
+ }
164
+ /**
165
+ * Execute a synchronous function within a new span.
166
+ *
167
+ * @param name - Name of the span
168
+ * @param fn - Function to execute within the span
169
+ * @param options - Span options
170
+ * @returns The result of the function
171
+ */
172
+ export function withSpanSync(name, fn, options = {}) {
173
+ const api = getCachedOtelApi();
174
+ const tracer = getTracerOrNull();
175
+ // When OTEL hasn't been loaded yet, run fn without tracing
176
+ if (!api || !tracer) {
177
+ return fn(noopSpan);
178
+ }
179
+ const parentContext = options.parentContext ?? api.context.active();
180
+ const span = tracer.startSpan(name, {
181
+ kind: options.kind ?? api.SpanKind.INTERNAL,
182
+ ...(options.attributes !== undefined && {
183
+ attributes: options.attributes,
184
+ }),
185
+ }, parentContext);
186
+ try {
187
+ const ctx = api.trace.setSpan(parentContext, span);
188
+ const result = api.context.with(ctx, () => fn(span));
189
+ span.setStatus({ code: api.SpanStatusCode.OK });
190
+ return result;
191
+ }
192
+ catch (error) {
193
+ if (error instanceof Error) {
194
+ span.recordException(error);
195
+ span.setStatus({
196
+ code: api.SpanStatusCode.ERROR,
197
+ message: error.message,
198
+ });
199
+ }
200
+ else {
201
+ span.setStatus({
202
+ code: api.SpanStatusCode.ERROR,
203
+ message: String(error),
204
+ });
205
+ }
206
+ throw error;
207
+ }
208
+ finally {
209
+ span.end();
210
+ }
211
+ }
212
+ /**
213
+ * Get the currently active span.
214
+ * Returns undefined if no span is active or OTEL API is not loaded.
215
+ */
216
+ export function getActiveSpan() {
217
+ const api = getCachedOtelApi();
218
+ if (!api)
219
+ return undefined;
220
+ return api.trace.getActiveSpan();
221
+ }
222
+ /**
223
+ * Add attributes to the active span.
224
+ * Does nothing if no span is active.
225
+ */
226
+ export function addSpanAttributes(attributes) {
227
+ const span = getActiveSpan();
228
+ if (span) {
229
+ span.setAttributes(attributes);
230
+ }
231
+ }
232
+ /**
233
+ * Add an event to the active span.
234
+ * Does nothing if no span is active.
235
+ */
236
+ export function addSpanEvent(name, attributes) {
237
+ const span = getActiveSpan();
238
+ if (span) {
239
+ span.addEvent(name, attributes);
240
+ }
241
+ }
242
+ /**
243
+ * Get the current trace context for propagation.
244
+ * Useful for passing context to external services.
245
+ */
246
+ export function getTraceContext() {
247
+ const span = getActiveSpan();
248
+ if (!span) {
249
+ return undefined;
250
+ }
251
+ const spanContext = span.spanContext();
252
+ return {
253
+ traceId: spanContext.traceId,
254
+ spanId: spanContext.spanId,
255
+ };
256
+ }
257
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/telemetry/tracing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Environment Variable Helpers
3
+ *
4
+ * Utilities for parsing and handling environment variables.
5
+ *
6
+ * @module utils/env-helpers
7
+ */
8
+ /**
9
+ * Parse an environment variable as a boolean.
10
+ *
11
+ * Environment variables are always strings, so this helper provides
12
+ * consistent boolean parsing across the codebase. Also handles
13
+ * the case where a boolean is passed through directly (e.g., from
14
+ * a pre-parsed config object).
15
+ *
16
+ * @param value - The environment variable value
17
+ * @returns true if value equals 'true' (case-insensitive) or is boolean true, false otherwise
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * parseEnvBoolean('true') // true
22
+ * parseEnvBoolean('TRUE') // true
23
+ * parseEnvBoolean('True') // true
24
+ * parseEnvBoolean('false') // false
25
+ * parseEnvBoolean('1') // false
26
+ * parseEnvBoolean(undefined) // false
27
+ * parseEnvBoolean(true) // true (passthrough)
28
+ * ```
29
+ */
30
+ export declare function parseEnvBoolean(value: string | boolean | undefined): boolean;
31
+ /**
32
+ * Get an environment variable with a default value.
33
+ *
34
+ * @param name - Environment variable name
35
+ * @param defaultValue - Default value if not set
36
+ * @returns The environment variable value or default
37
+ */
38
+ export declare function getEnvString(name: string, defaultValue: string): string;
39
+ /**
40
+ * Get an optional environment variable.
41
+ *
42
+ * @param name - Environment variable name
43
+ * @returns The environment variable value or undefined
44
+ */
45
+ export declare function getEnvOptional(name: string): string | undefined;
46
+ //# sourceMappingURL=env-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/env-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAG5E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Environment Variable Helpers
3
+ *
4
+ * Utilities for parsing and handling environment variables.
5
+ *
6
+ * @module utils/env-helpers
7
+ */
8
+ /**
9
+ * Parse an environment variable as a boolean.
10
+ *
11
+ * Environment variables are always strings, so this helper provides
12
+ * consistent boolean parsing across the codebase. Also handles
13
+ * the case where a boolean is passed through directly (e.g., from
14
+ * a pre-parsed config object).
15
+ *
16
+ * @param value - The environment variable value
17
+ * @returns true if value equals 'true' (case-insensitive) or is boolean true, false otherwise
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * parseEnvBoolean('true') // true
22
+ * parseEnvBoolean('TRUE') // true
23
+ * parseEnvBoolean('True') // true
24
+ * parseEnvBoolean('false') // false
25
+ * parseEnvBoolean('1') // false
26
+ * parseEnvBoolean(undefined) // false
27
+ * parseEnvBoolean(true) // true (passthrough)
28
+ * ```
29
+ */
30
+ export function parseEnvBoolean(value) {
31
+ if (typeof value === "boolean")
32
+ return value;
33
+ return value?.toLowerCase() === "true";
34
+ }
35
+ /**
36
+ * Get an environment variable with a default value.
37
+ *
38
+ * @param name - Environment variable name
39
+ * @param defaultValue - Default value if not set
40
+ * @returns The environment variable value or default
41
+ */
42
+ export function getEnvString(name, defaultValue) {
43
+ return process.env[name] || defaultValue;
44
+ }
45
+ /**
46
+ * Get an optional environment variable.
47
+ *
48
+ * @param name - Environment variable name
49
+ * @returns The environment variable value or undefined
50
+ */
51
+ export function getEnvOptional(name) {
52
+ return process.env[name];
53
+ }
54
+ //# sourceMappingURL=env-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-helpers.js","sourceRoot":"","sources":["../../src/utils/env-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmC;IACjE,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,YAAoB;IAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Server Framework Utilities
3
+ *
4
+ * Generic utilities for the MCP server framework.
5
+ * Re-exports shared utilities from the main utils module.
6
+ *
7
+ * @module utils
8
+ */
9
+ export { parseEnvBoolean, getEnvString, getEnvOptional } from "./env-helpers.js";
10
+ export { validateName, validateNonEmptyString, validateFunction, validateZodSchema, validateObject, validateEnum, validateDefinitionBase, } from "./validation.js";
11
+ export { isSensitiveKey, SENSITIVE_KEYS, SENSITIVE_KEY_BLOCKLIST } from "./sensitive-keys.js";
12
+ export { splitCommaSeparated, interpolate, type MessageParams, truncateId, isLocalHost, parseByteSize, BYTE_SIZE_REGEX, } from "./string-helpers.js";
13
+ export { booleanFromEnv, commaSeparatedList, optionalCommaSeparatedList, byteSizeSchema } from "./zod-helpers.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGjF,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG9F,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,KAAK,aAAa,EAClB,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Server Framework Utilities
3
+ *
4
+ * Generic utilities for the MCP server framework.
5
+ * Re-exports shared utilities from the main utils module.
6
+ *
7
+ * @module utils
8
+ */
9
+ // Re-export shared env helpers from main utils
10
+ export { parseEnvBoolean, getEnvString, getEnvOptional } from "./env-helpers.js";
11
+ // Re-export validation helpers
12
+ export { validateName, validateNonEmptyString, validateFunction, validateZodSchema, validateObject, validateEnum, validateDefinitionBase, } from "./validation.js";
13
+ // Re-export sensitive key detection
14
+ export { isSensitiveKey, SENSITIVE_KEYS, SENSITIVE_KEY_BLOCKLIST } from "./sensitive-keys.js";
15
+ // Re-export string helpers
16
+ export { splitCommaSeparated, interpolate, truncateId, isLocalHost, parseByteSize, BYTE_SIZE_REGEX, } from "./string-helpers.js";
17
+ // Re-export Zod schema helpers
18
+ export { booleanFromEnv, commaSeparatedList, optionalCommaSeparatedList, byteSizeSchema } from "./zod-helpers.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+CAA+C;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjF,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,WAAW,EAEX,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,+BAA+B;AAC/B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Sensitive Key Detection
3
+ *
4
+ * Shared utility for detecting sensitive field names across the framework.
5
+ * Used by both the error serializer and the logger scrubber to ensure
6
+ * consistent redaction behavior.
7
+ *
8
+ * Uses a segment-based algorithm with a blocklist to minimize false positives:
9
+ * - "password" → sensitive
10
+ * - "keyboard" → NOT sensitive (blocklisted)
11
+ * - "monkey_password" → sensitive ("password" segment is genuinely sensitive)
12
+ *
13
+ * @module utils/sensitive-keys
14
+ */
15
+ /**
16
+ * Keys that are considered sensitive and should be redacted.
17
+ * Includes common authentication and security-related terms.
18
+ */
19
+ export declare const SENSITIVE_KEYS: readonly ["password", "passwd", "apiKey", "api_key", "apiSecret", "api_secret", "token", "secret", "authorization", "auth_token", "access_token", "refresh_token", "id_token", "jwt", "bearer", "private_key", "privateKey", "secret_key", "secretKey", "passphrase", "key", "credential", "sessionSecret", "session_secret", "sessionToken", "session_token", "oauth_token", "oauth_secret", "oauth_code", "client_secret", "clientSecret"];
20
+ /**
21
+ * Words that should NOT trigger sensitive key detection even if they
22
+ * contain sensitive key patterns. Prevents false positives.
23
+ */
24
+ export declare const SENSITIVE_KEY_BLOCKLIST: readonly ["tokenizer", "tokenize", "tokenization", "keyboard", "keyframe", "keynote", "monkey", "passthrough", "passenger", "passage"];
25
+ /**
26
+ * Check if a field/key name is sensitive and should be redacted.
27
+ *
28
+ * Algorithm (4 steps):
29
+ * 1. Check if the key contains any sensitive pattern (substring match)
30
+ * 2. If the entire key is an exact blocklist word → not sensitive
31
+ * 3. For compound keys (segments): only sensitive if at least one segment
32
+ * is genuinely sensitive (not fully explained by blocklist)
33
+ * 4. Single-segment keys: check blocklist patterns
34
+ *
35
+ * @param key - The field name to check
36
+ * @returns true if the key should be redacted
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * isSensitiveKey('password') // true
41
+ * isSensitiveKey('api_key') // true
42
+ * isSensitiveKey('keyboard') // false (blocklisted)
43
+ * isSensitiveKey('monkey') // false (blocklisted)
44
+ * isSensitiveKey('monkey_password') // true ("password" is genuine)
45
+ * ```
46
+ */
47
+ export declare function isSensitiveKey(key: string): boolean;
48
+ //# sourceMappingURL=sensitive-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive-keys.d.ts","sourceRoot":"","sources":["../../src/utils/sensitive-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc,8aAgCjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wIAW1B,CAAC;AAsBX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA2BnD"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Sensitive Key Detection
3
+ *
4
+ * Shared utility for detecting sensitive field names across the framework.
5
+ * Used by both the error serializer and the logger scrubber to ensure
6
+ * consistent redaction behavior.
7
+ *
8
+ * Uses a segment-based algorithm with a blocklist to minimize false positives:
9
+ * - "password" → sensitive
10
+ * - "keyboard" → NOT sensitive (blocklisted)
11
+ * - "monkey_password" → sensitive ("password" segment is genuinely sensitive)
12
+ *
13
+ * @module utils/sensitive-keys
14
+ */
15
+ // ============================================================================
16
+ // Sensitive Key Lists
17
+ // ============================================================================
18
+ /**
19
+ * Keys that are considered sensitive and should be redacted.
20
+ * Includes common authentication and security-related terms.
21
+ */
22
+ export const SENSITIVE_KEYS = [
23
+ "password",
24
+ "passwd",
25
+ "apiKey",
26
+ "api_key",
27
+ "apiSecret",
28
+ "api_secret",
29
+ "token",
30
+ "secret",
31
+ "authorization",
32
+ "auth_token",
33
+ "access_token",
34
+ "refresh_token",
35
+ "id_token",
36
+ "jwt",
37
+ "bearer",
38
+ "private_key",
39
+ "privateKey",
40
+ "secret_key",
41
+ "secretKey",
42
+ "passphrase",
43
+ "key",
44
+ "credential",
45
+ "sessionSecret",
46
+ "session_secret",
47
+ "sessionToken",
48
+ "session_token",
49
+ "oauth_token",
50
+ "oauth_secret",
51
+ "oauth_code",
52
+ "client_secret",
53
+ "clientSecret",
54
+ ];
55
+ /**
56
+ * Words that should NOT trigger sensitive key detection even if they
57
+ * contain sensitive key patterns. Prevents false positives.
58
+ */
59
+ export const SENSITIVE_KEY_BLOCKLIST = [
60
+ "tokenizer",
61
+ "tokenize",
62
+ "tokenization",
63
+ "keyboard",
64
+ "keyframe",
65
+ "keynote",
66
+ "monkey",
67
+ "passthrough",
68
+ "passenger",
69
+ "passage",
70
+ ];
71
+ // ============================================================================
72
+ // Separator & Blocklist Pattern Cache
73
+ // ============================================================================
74
+ /** Separator pattern for splitting compound keys into segments */
75
+ const SEGMENT_SEPARATORS = /[_\-.\s]+/;
76
+ /** Pre-compiled blocklist patterns for word-boundary matching */
77
+ const BLOCKLIST_PATTERNS = SENSITIVE_KEY_BLOCKLIST.map((word) => new RegExp(`(?:^|[_\\-.\\s])${escapeRegex(word.toLowerCase())}(?:$|[_\\-.\\s])`, "i"));
78
+ function escapeRegex(str) {
79
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
80
+ }
81
+ // ============================================================================
82
+ // Public API
83
+ // ============================================================================
84
+ /**
85
+ * Check if a field/key name is sensitive and should be redacted.
86
+ *
87
+ * Algorithm (4 steps):
88
+ * 1. Check if the key contains any sensitive pattern (substring match)
89
+ * 2. If the entire key is an exact blocklist word → not sensitive
90
+ * 3. For compound keys (segments): only sensitive if at least one segment
91
+ * is genuinely sensitive (not fully explained by blocklist)
92
+ * 4. Single-segment keys: check blocklist patterns
93
+ *
94
+ * @param key - The field name to check
95
+ * @returns true if the key should be redacted
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * isSensitiveKey('password') // true
100
+ * isSensitiveKey('api_key') // true
101
+ * isSensitiveKey('keyboard') // false (blocklisted)
102
+ * isSensitiveKey('monkey') // false (blocklisted)
103
+ * isSensitiveKey('monkey_password') // true ("password" is genuine)
104
+ * ```
105
+ */
106
+ export function isSensitiveKey(key) {
107
+ const lowerKey = key.toLowerCase();
108
+ // Step 1: Check if the key matches any sensitive pattern
109
+ const hasSensitiveMatch = SENSITIVE_KEYS.some((sensitiveKey) => lowerKey.includes(sensitiveKey.toLowerCase()));
110
+ if (!hasSensitiveMatch)
111
+ return false;
112
+ // Step 2: Exact blocklist match exemption
113
+ for (const blocked of SENSITIVE_KEY_BLOCKLIST) {
114
+ if (lowerKey === blocked.toLowerCase())
115
+ return false;
116
+ }
117
+ // Step 3: Compound key analysis
118
+ const segments = lowerKey.split(SEGMENT_SEPARATORS).filter(Boolean);
119
+ if (segments.length > 1) {
120
+ return segments.some((segment) => {
121
+ const isSensitive = SENSITIVE_KEYS.some((sk) => segment.includes(sk.toLowerCase()));
122
+ if (!isSensitive)
123
+ return false;
124
+ const isBlocked = SENSITIVE_KEY_BLOCKLIST.some((blocked) => segment === blocked.toLowerCase());
125
+ return isSensitive && !isBlocked;
126
+ });
127
+ }
128
+ // Step 4: Single segment — check blocklist patterns
129
+ return !BLOCKLIST_PATTERNS.some((pattern) => pattern.test(lowerKey));
130
+ }
131
+ //# sourceMappingURL=sensitive-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive-keys.js","sourceRoot":"","sources":["../../src/utils/sensitive-keys.ts"],"names":[],"mappings":"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"}