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,547 @@
1
+ /**
2
+ * OpenTelemetry SDK Initialization
3
+ *
4
+ * Handles the lifecycle of the OpenTelemetry SDK including:
5
+ * - SDK initialization with targeted instrumentation
6
+ * - Trace and metric export via OTLP/HTTP
7
+ * - Prometheus metrics embedded at `/metrics` on the MCP Express server
8
+ * - Graceful shutdown
9
+ *
10
+ * ## Configuration
11
+ *
12
+ * All OTEL settings are routed through the config system (env vars + config file).
13
+ * The framework builds exporters and readers explicitly from the unified config
14
+ * so that both env vars and config file are respected consistently.
15
+ *
16
+ * **Framework-managed** (with defaults):
17
+ * - `OTEL_ENABLED` — Master toggle (default: false)
18
+ * - `OTEL_SERVICE_NAME` — Service name (default: 'mcp-server')
19
+ * - `OTEL_METRICS_EXPORTER` — Metric exporters (default: 'otlp,prometheus')
20
+ * - `OTEL_LOGS_EXPORTER` — Log exporter (default: 'none' — framework has own logger)
21
+ *
22
+ * **Standard OTEL (pass-through, no defaults)**:
23
+ * - `OTEL_EXPORTER_OTLP_ENDPOINT` — OTLP endpoint URL
24
+ * - `OTEL_TRACES_EXPORTER` — Trace exporter: otlp (default), console, none
25
+ * - `OTEL_LOG_LEVEL` — SDK diagnostic log level
26
+ * - `OTEL_METRIC_EXPORT_INTERVAL` — Periodic metric export interval (ms)
27
+ *
28
+ * ## Environment Variable Synchronization
29
+ *
30
+ * The NodeSDK reads standard OTEL env vars directly from `process.env`
31
+ * for internal auto-configuration. Since the framework's config system
32
+ * deliberately does NOT mutate `process.env` (12-Factor compliance),
33
+ * config-file-only values would be invisible to the SDK.
34
+ *
35
+ * {@link syncOtelEnvironment} bridges this gap by writing config values
36
+ * to `process.env` for keys that are NOT already set, preserving the
37
+ * 12-Factor priority: env var > config file > default.
38
+ *
39
+ * ## DiagLogger / OTEL_LOG_LEVEL
40
+ *
41
+ * `OTEL_LOG_LEVEL` is consumed (deleted) from `process.env` in Step 0
42
+ * of {@link initializeTelemetry}, BEFORE the NodeSDK constructor.
43
+ * Without this, the SDK calls `diag.setLogger(new DiagConsoleLogger(), level)`
44
+ * — writing diagnostics to stdout and corrupting the MCP stdio transport.
45
+ *
46
+ * The framework sets `frameworkDiagLogger` as default DiagLogger,
47
+ * which routes all OTEL diagnostics through the framework's logging
48
+ * pipeline (→ stderr with secret scrubbing and structured formatting).
49
+ * Power users can override via `onBeforeTelemetryInit` callback.
50
+ *
51
+ * ## Why exporters are built manually
52
+ *
53
+ * The SDK's env-var auto-config is bypassed when `traceExporter` or
54
+ * `metricReaders` are passed to the NodeSDK constructor. Since we need
55
+ * to build metric readers manually (for Prometheus embedded mode), AND
56
+ * we want config-file support for all settings, we build both trace
57
+ * and metric exporters explicitly from the unified config.
58
+ *
59
+ * @module server/telemetry/sdk
60
+ */
61
+ import { METRIC_NAMES } from "./core/constants.js";
62
+ import { logger as baseLogger } from "../logger/index.js";
63
+ import { setTraceContextExtractor } from "../logger/core/index.js";
64
+ import { getTelemetryConfig, TELEMETRY_LOG_COMPONENTS, SdkLogMessages, frameworkDiagLogger } from "./core/index.js";
65
+ let otelModules = null;
66
+ let otelModulesPromise = null;
67
+ /**
68
+ * Dynamically loads all @opentelemetry/* packages needed for SDK initialization.
69
+ * Called once on first `initializeTelemetry()` invocation when OTEL is enabled.
70
+ * Cached for subsequent calls. Uses promise caching to prevent double-loading
71
+ * if called concurrently.
72
+ */
73
+ async function loadOtelModules() {
74
+ if (otelModules)
75
+ return otelModules;
76
+ if (otelModulesPromise)
77
+ return otelModulesPromise;
78
+ otelModulesPromise = loadOtelModulesImpl();
79
+ try {
80
+ otelModules = await otelModulesPromise;
81
+ return otelModules;
82
+ }
83
+ catch (err) {
84
+ // Reset cached promise so a subsequent call can retry (e.g., after
85
+ // installing missing OTEL packages in development).
86
+ otelModulesPromise = null;
87
+ throw err;
88
+ }
89
+ }
90
+ async function loadOtelModulesImpl() {
91
+ const [sdkNode, sdkMetrics, traceOtlpHttp, metricsOtlpHttp, prometheus, sdkTraceBase, instrHttp, instrExpress, resources, semconv,] = await Promise.all([
92
+ import("@opentelemetry/sdk-node"),
93
+ import("@opentelemetry/sdk-metrics"),
94
+ import("@opentelemetry/exporter-trace-otlp-http"),
95
+ import("@opentelemetry/exporter-metrics-otlp-http"),
96
+ import("@opentelemetry/exporter-prometheus"),
97
+ import("@opentelemetry/sdk-trace-base"),
98
+ import("@opentelemetry/instrumentation-http"),
99
+ import("@opentelemetry/instrumentation-express"),
100
+ import("@opentelemetry/resources"),
101
+ import("@opentelemetry/semantic-conventions"),
102
+ ]);
103
+ return {
104
+ NodeSDK: sdkNode.NodeSDK,
105
+ PeriodicExportingMetricReader: sdkMetrics.PeriodicExportingMetricReader,
106
+ ConsoleMetricExporter: sdkMetrics.ConsoleMetricExporter,
107
+ AggregationType: sdkMetrics.AggregationType,
108
+ OTLPTraceExporter: traceOtlpHttp.OTLPTraceExporter,
109
+ OTLPMetricExporter: metricsOtlpHttp.OTLPMetricExporter,
110
+ PrometheusExporter: prometheus.PrometheusExporter,
111
+ ConsoleSpanExporter: sdkTraceBase.ConsoleSpanExporter,
112
+ HttpInstrumentation: instrHttp.HttpInstrumentation,
113
+ ExpressInstrumentation: instrExpress.ExpressInstrumentation,
114
+ envDetector: resources.envDetector,
115
+ resourceFromAttributes: resources.resourceFromAttributes,
116
+ ATTR_SERVICE_NAME: semconv.ATTR_SERVICE_NAME,
117
+ ATTR_SERVICE_VERSION: semconv.ATTR_SERVICE_VERSION,
118
+ };
119
+ }
120
+ const logger = baseLogger.child({ component: TELEMETRY_LOG_COMPONENTS.SDK });
121
+ /**
122
+ * Framework infrastructure routes excluded from HTTP trace instrumentation.
123
+ *
124
+ * These paths handle liveness/readiness probes and metrics scraping.
125
+ * They fire at high frequency (every 10–30s in Kubernetes) and would
126
+ * flood traces with low-value spans. Filtering is applied via
127
+ * {@link HttpInstrumentation}'s `ignoreIncomingRequestHook`.
128
+ */
129
+ const TRACE_IGNORED_ROUTES = new Set(["/health", "/ready", "/metrics"]);
130
+ /** SDK instance — null when not initialized */
131
+ let sdk = null;
132
+ /**
133
+ * Prometheus exporter instance — null when OTEL is disabled or
134
+ * 'prometheus' is not in OTEL_METRICS_EXPORTER.
135
+ *
136
+ * Always created with `preventServerStart: true` (embedded mode).
137
+ * The `/metrics` Express route delegates to this exporter via
138
+ * {@link getPrometheusExporter}.
139
+ */
140
+ let prometheusExporter = null;
141
+ /**
142
+ * Initialize the OpenTelemetry SDK.
143
+ * Call this at application startup, before any other code.
144
+ *
145
+ * All @opentelemetry/* packages are loaded dynamically on first call
146
+ * (see DD-020). When OTEL is disabled, no packages are loaded and
147
+ * the function returns immediately — saving ~15-20 MB of memory.
148
+ *
149
+ * Builds both trace and metric exporters from the unified config.
150
+ * Only HTTP and Express instrumentations are loaded — other
151
+ * auto-instrumentations are irrelevant for MCP servers.
152
+ *
153
+ * @param onBeforeInit - Optional callback invoked before SDK construction.
154
+ * Power users can call `diag.setLogger()` in this callback to override the
155
+ * framework's default DiagLogger. The callback runs AFTER the framework sets
156
+ * `frameworkDiagLogger` as default.
157
+ * @returns true if OpenTelemetry was initialized, false if disabled
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * import { initializeTelemetry } from './telemetry/index.js';
162
+ *
163
+ * const enabled = await initializeTelemetry();
164
+ * ```
165
+ */
166
+ export async function initializeTelemetry(onBeforeInit) {
167
+ const config = getTelemetryConfig();
168
+ if (!config.enabled) {
169
+ logger.debug(SdkLogMessages.INIT_SKIPPED);
170
+ return false;
171
+ }
172
+ logger.info(SdkLogMessages.INIT_START);
173
+ // ── Step 0: Framework DiagLogger Setup ───────────────────────────────
174
+ // Load @opentelemetry/api early (lightweight, ~200 KB — not a heavy SDK package).
175
+ // Set frameworkDiagLogger as the default DiagLogger to route OTEL SDK
176
+ // diagnostics through the framework's logging pipeline (→ stderr).
177
+ // Consume OTEL_LOG_LEVEL from process.env to prevent the NodeSDK
178
+ // constructor from calling diag.setLogger(new DiagConsoleLogger(), level)
179
+ // which would write to stdout and corrupt MCP stdio transport.
180
+ const api = await import("@opentelemetry/api");
181
+ const diagLevelStr = process.env["OTEL_LOG_LEVEL"]?.toUpperCase();
182
+ delete process.env["OTEL_LOG_LEVEL"];
183
+ const diagLevelMap = {
184
+ NONE: api.DiagLogLevel.NONE,
185
+ ERROR: api.DiagLogLevel.ERROR,
186
+ WARN: api.DiagLogLevel.WARN,
187
+ INFO: api.DiagLogLevel.INFO,
188
+ DEBUG: api.DiagLogLevel.DEBUG,
189
+ VERBOSE: api.DiagLogLevel.VERBOSE,
190
+ ALL: api.DiagLogLevel.ALL,
191
+ };
192
+ const diagLevel = diagLevelStr ? (diagLevelMap[diagLevelStr] ?? api.DiagLogLevel.INFO) : api.DiagLogLevel.INFO;
193
+ api.diag.setLogger(frameworkDiagLogger, {
194
+ logLevel: diagLevel,
195
+ suppressOverrideMessage: true,
196
+ });
197
+ // ── Step 1: Power-User Pre-Init Hook ─────────────────────────────────
198
+ // Called after default DiagLogger setup. Power users can override
199
+ // the DiagLogger via diag.setLogger(), register instrumentations,
200
+ // or configure propagators here.
201
+ if (onBeforeInit) {
202
+ onBeforeInit();
203
+ }
204
+ // ── Step 2: Lazy-load OTEL packages ──────────────────────────────────
205
+ // All heavy @opentelemetry/* modules are loaded here, not at module parse
206
+ // time. This saves ~15-20 MB when OTEL is disabled (see DD-020).
207
+ // Since OTEL packages are optionalDependencies, gracefully handle the case
208
+ // where they are not installed despite OTEL_ENABLED=true.
209
+ let otel;
210
+ try {
211
+ otel = await loadOtelModules();
212
+ }
213
+ catch (error) {
214
+ const reason = error instanceof Error ? error.message : String(error);
215
+ logger.warn(SdkLogMessages.INIT_PACKAGES_MISSING, reason);
216
+ return false;
217
+ }
218
+ // ── Step 3: Env-Var Sync ─────────────────────────────────────────────
219
+ // The NodeSDK reads standard OTEL env vars (OTEL_TRACES_EXPORTER,
220
+ // OTEL_LOGS_EXPORTER, etc.) directly from process.env for its internal
221
+ // auto-configuration. Our config system merges config-file values
222
+ // into the Zod parse source but does NOT mutate process.env (12-Factor:
223
+ // real env vars must always win). This means config-file-only settings
224
+ // would be invisible to the SDK's internal env-var checks.
225
+ //
226
+ // syncOtelEnvironment() bridges this gap by writing config values to
227
+ // process.env for keys that are NOT already set, preserving 12-Factor
228
+ // priority (env var > config file > default).
229
+ syncOtelEnvironment(config);
230
+ // ── Step 4: Build Resource & Exporters ───────────────────────────────
231
+ // Resource: service identity attributes.
232
+ // Additional attributes can be set via OTEL_RESOURCE_ATTRIBUTES (env only).
233
+ const resource = otel.resourceFromAttributes({
234
+ [otel.ATTR_SERVICE_NAME]: config.serviceName,
235
+ [otel.ATTR_SERVICE_VERSION]: config.serviceVersion,
236
+ });
237
+ // Build trace exporter from config.
238
+ // Defaults to OTLP when not explicitly set.
239
+ const traceExporter = buildTraceExporter(config, otel);
240
+ // Build metric readers from OTEL_METRICS_EXPORTER.
241
+ const metricReaders = buildMetricReaders(config, otel);
242
+ logger.info(SdkLogMessages.METRICS_EXPORTERS_CONFIGURED, config.metricsExporters.join(", "));
243
+ // ── Step 5: Construct & Start SDK ────────────────────────────────────
244
+ // - resourceDetectors: Only OTEL_RESOURCE_ATTRIBUTES (env) is respected.
245
+ // Host/process/OS auto-detectors are disabled to keep target_info lean.
246
+ // - views: Custom histogram buckets for HTTP and MCP duration metrics.
247
+ // Default OTEL SDK emits 16 bucket boundaries — reduced to MCP-relevant ranges.
248
+ sdk = new otel.NodeSDK({
249
+ resource,
250
+ ...(traceExporter !== undefined && { traceExporter }),
251
+ metricReaders,
252
+ resourceDetectors: [otel.envDetector],
253
+ views: buildMetricViews(otel),
254
+ instrumentations: [
255
+ new otel.HttpInstrumentation({
256
+ // Suppress trace spans for framework infrastructure routes
257
+ // (health probes, readiness checks, Prometheus scrapes).
258
+ // These fire frequently and produce low-value trace data.
259
+ ignoreIncomingRequestHook: (request) => {
260
+ const path = (request.url?.split("?")[0] ?? "").replace(/\/+$/, "");
261
+ return TRACE_IGNORED_ROUTES.has(path);
262
+ },
263
+ }),
264
+ new otel.ExpressInstrumentation(),
265
+ ],
266
+ });
267
+ sdk.start();
268
+ // Register OTEL trace context extractor in the logger.
269
+ // Uses the plugin interface (DD-023) — the logger has no OTEL dependency.
270
+ // Must happen AFTER sdk.start() so that the API has a registered TracerProvider.
271
+ const otelExtractor = {
272
+ extract() {
273
+ const span = api.trace.getActiveSpan();
274
+ if (!span)
275
+ return undefined;
276
+ const ctx = span.spanContext();
277
+ if (!api.isSpanContextValid(ctx))
278
+ return undefined;
279
+ return { traceId: ctx.traceId, spanId: ctx.spanId };
280
+ },
281
+ };
282
+ setTraceContextExtractor(otelExtractor);
283
+ logger.info(SdkLogMessages.INIT_SUCCESS, config.serviceName, config.endpoint);
284
+ return true;
285
+ }
286
+ /**
287
+ * Shutdown the OpenTelemetry SDK.
288
+ * Call this during application shutdown.
289
+ *
290
+ * @returns Promise that resolves when shutdown is complete
291
+ */
292
+ export async function shutdownTelemetry() {
293
+ if (!sdk) {
294
+ logger.debug(SdkLogMessages.SHUTDOWN_SKIPPED);
295
+ return;
296
+ }
297
+ logger.info(SdkLogMessages.SHUTDOWN_START);
298
+ try {
299
+ await sdk.shutdown();
300
+ sdk = null;
301
+ prometheusExporter = null;
302
+ logger.info(SdkLogMessages.SHUTDOWN_SUCCESS);
303
+ }
304
+ catch (error) {
305
+ const errorMessage = error instanceof Error ? error.message : String(error);
306
+ logger.error(SdkLogMessages.SHUTDOWN_ERROR, errorMessage);
307
+ throw error;
308
+ }
309
+ }
310
+ /**
311
+ * Check if the SDK is currently initialized.
312
+ *
313
+ * @returns true if SDK is initialized
314
+ */
315
+ export function isSdkInitialized() {
316
+ return sdk !== null;
317
+ }
318
+ /**
319
+ * Get the Prometheus exporter instance.
320
+ *
321
+ * Returns null when telemetry is disabled, not yet initialized,
322
+ * or 'prometheus' is not in OTEL_METRICS_EXPORTER.
323
+ * Used by the `/metrics` Express route to serve Prometheus metrics.
324
+ *
325
+ * @returns PrometheusExporter instance or null
326
+ */
327
+ export function getPrometheusExporter() {
328
+ return prometheusExporter;
329
+ }
330
+ // ============================================================================
331
+ // Internal Helpers
332
+ // ============================================================================
333
+ /**
334
+ * Synchronize framework config values to `process.env` for the NodeSDK.
335
+ *
336
+ * The framework's config system resolves values from env vars, config files,
337
+ * and defaults into a unified `TelemetryConfig` but deliberately does NOT
338
+ * mutate `process.env` (12-Factor compliance). However, the NodeSDK reads
339
+ * several `OTEL_*` env vars directly from `process.env` for its internal
340
+ * auto-configuration (e.g., log exporter, trace exporter selection).
341
+ *
342
+ * This function bridges the gap by writing config values to `process.env`
343
+ * **only for keys that are not already set**. This preserves 12-Factor
344
+ * priority: real env vars always override config file values.
345
+ *
346
+ * Synchronized variables:
347
+ * - `OTEL_TRACES_EXPORTER` — Prevents SDK from auto-enabling OTLP traces
348
+ * - `OTEL_LOGS_EXPORTER` — Prevents SDK from auto-enabling OTLP logs
349
+ * - `OTEL_SERVICE_NAME` — Ensures SDK resource matches framework config
350
+ * - `OTEL_EXPORTER_OTLP_ENDPOINT` — Ensures OTLP endpoint is consistent
351
+ *
352
+ * **Note**: `OTEL_LOG_LEVEL` is intentionally NOT synced here. It is
353
+ * consumed (deleted) in Step 1 of {@link initializeTelemetry} to prevent
354
+ * the NodeSDK constructor from setting DiagConsoleLogger (→ stdout).
355
+ *
356
+ * @param config - Resolved telemetry configuration
357
+ */
358
+ function syncOtelEnvironment(config) {
359
+ // Helper: only set env var if not already defined by the environment.
360
+ // This preserves 12-Factor priority (real env var > config file > default).
361
+ const setIfAbsent = (key, value) => {
362
+ if (value !== undefined && !process.env[key]) {
363
+ process.env[key] = value;
364
+ }
365
+ };
366
+ // Trace exporter: prevents "OTEL_TRACES_EXPORTER is empty" warning
367
+ setIfAbsent("OTEL_TRACES_EXPORTER", config.tracesExporter);
368
+ // Log exporter: prevents SDK from auto-enabling OTLP log export.
369
+ // Framework default is 'none' (own logger handles all logging).
370
+ setIfAbsent("OTEL_LOGS_EXPORTER", config.logsExporter);
371
+ // Service name: ensures SDK resource detection matches framework config
372
+ setIfAbsent("OTEL_SERVICE_NAME", config.serviceName);
373
+ // OTLP endpoint: ensures exporters use the config-file endpoint
374
+ setIfAbsent("OTEL_EXPORTER_OTLP_ENDPOINT", config.endpoint);
375
+ }
376
+ /**
377
+ * Build the trace exporter from config.
378
+ *
379
+ * - `'none'` — No trace export (returns undefined)
380
+ * - `'console'` — ConsoleSpanExporter (for debugging)
381
+ * - `'otlp'` or unset — OTLPTraceExporter with optional endpoint
382
+ *
383
+ * @param config - Telemetry configuration
384
+ * @param otel - Lazily loaded OTEL modules
385
+ * @returns SpanExporter instance or undefined (no tracing)
386
+ */
387
+ function buildTraceExporter(config, otel) {
388
+ const exporter = config.tracesExporter?.toLowerCase() ?? "otlp";
389
+ switch (exporter) {
390
+ case "none":
391
+ logger.debug(SdkLogMessages.TRACE_EXPORTER_CONFIGURED, "none");
392
+ return undefined;
393
+ case "console":
394
+ logger.debug(SdkLogMessages.TRACE_EXPORTER_CONFIGURED, "console");
395
+ return new otel.ConsoleSpanExporter();
396
+ case "otlp":
397
+ default: {
398
+ if (exporter !== "otlp") {
399
+ logger.warn(SdkLogMessages.UNKNOWN_TRACE_EXPORTER, exporter);
400
+ }
401
+ // OTLPTraceExporter reads OTEL_EXPORTER_OTLP_ENDPOINT from env natively,
402
+ // but we pass the config value explicitly to support config-file-based setup.
403
+ const url = `${config.endpoint}/v1/traces`;
404
+ logger.debug(SdkLogMessages.TRACE_EXPORTER_CONFIGURED, `otlp (endpoint: ${url})`);
405
+ return new otel.OTLPTraceExporter({ url });
406
+ }
407
+ }
408
+ }
409
+ /**
410
+ * Build metric readers from the configured exporter list.
411
+ *
412
+ * Supported values in `OTEL_METRICS_EXPORTER`:
413
+ * - `'otlp'` — OTLP/HTTP metric export
414
+ * - `'prometheus'` — Embedded Prometheus exporter at `/metrics`
415
+ * - `'console'` — Console metric exporter (for debugging)
416
+ * - `'none'` — No metrics export
417
+ *
418
+ * Unknown values are silently ignored.
419
+ *
420
+ * @param config - Telemetry configuration
421
+ * @param otel - Lazily loaded OTEL modules
422
+ * @returns Array of MetricReader instances
423
+ */
424
+ function buildMetricReaders(config, otel) {
425
+ const readers = [];
426
+ for (const exporterName of config.metricsExporters) {
427
+ switch (exporterName) {
428
+ case "otlp": {
429
+ // OTLPMetricExporter reads endpoint from env natively,
430
+ // but we pass it explicitly to support config-file-based setup.
431
+ const url = `${config.endpoint}/v1/metrics`;
432
+ const otlpReader = new otel.PeriodicExportingMetricReader({
433
+ exporter: new otel.OTLPMetricExporter({ url }),
434
+ ...(config.metricExportInterval && {
435
+ exportIntervalMillis: config.metricExportInterval,
436
+ }),
437
+ });
438
+ readers.push(otlpReader);
439
+ break;
440
+ }
441
+ case "prometheus": {
442
+ // Embedded mode: preventServerStart stops PrometheusExporter from
443
+ // binding its own HTTP server. Metrics are served by the Express
444
+ // /metrics route via getPrometheusExporter().
445
+ prometheusExporter = new otel.PrometheusExporter({
446
+ preventServerStart: true,
447
+ });
448
+ readers.push(prometheusExporter);
449
+ logger.debug(SdkLogMessages.PROMETHEUS_EXPORTER_ADDED);
450
+ break;
451
+ }
452
+ case "console": {
453
+ const consoleReader = new otel.PeriodicExportingMetricReader({
454
+ exporter: new otel.ConsoleMetricExporter(),
455
+ ...(config.metricExportInterval && {
456
+ exportIntervalMillis: config.metricExportInterval,
457
+ }),
458
+ });
459
+ readers.push(consoleReader);
460
+ break;
461
+ }
462
+ case "none":
463
+ // Explicit no-op — skip metric export entirely
464
+ break;
465
+ default:
466
+ logger.warn(SdkLogMessages.UNKNOWN_METRIC_EXPORTER, exporterName);
467
+ break;
468
+ }
469
+ }
470
+ return readers;
471
+ }
472
+ // ============================================================================
473
+ // Metric Views
474
+ // ============================================================================
475
+ /**
476
+ * Reduced histogram bucket boundaries for HTTP request duration (OLD semconv).
477
+ *
478
+ * Metric: `http.server.duration` (milliseconds).
479
+ * Default OTEL SDK has 16 boundaries (0, 5, 10, 25, 50, 75, 100, 250, 500,
480
+ * 750, 1000, 2500, 5000, 7500, 10000). For MCP servers, 9 buckets covering
481
+ * the common response time range (5ms–10s) are sufficient.
482
+ *
483
+ * Active when `OTEL_SEMCONV_STABILITY_OPT_IN` is unset or contains `http/dup`.
484
+ */
485
+ const HTTP_DURATION_BUCKETS_MS = [5, 10, 25, 50, 100, 250, 500, 1000, 5000];
486
+ /**
487
+ * Histogram bucket boundaries for HTTP request duration (stable semconv).
488
+ *
489
+ * Metric: `http.server.request.duration` (seconds).
490
+ * Active when `OTEL_SEMCONV_STABILITY_OPT_IN` contains `http` or `http/dup`.
491
+ * Values are the same ranges as {@link HTTP_DURATION_BUCKETS_MS} converted to
492
+ * seconds, with finer sub-10ms resolution added.
493
+ */
494
+ const HTTP_DURATION_BUCKETS_S = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 5];
495
+ /**
496
+ * Histogram bucket boundaries for MCP request duration.
497
+ *
498
+ * MCP tool handlers typically respond in 1ms–5s. Finer granularity at the
499
+ * low end (1–50ms) captures fast tools; the tail (1s–10s) covers API calls.
500
+ */
501
+ const MCP_DURATION_BUCKETS = [1, 5, 10, 25, 50, 100, 250, 500, 1000, 5000];
502
+ /**
503
+ * Builds OpenTelemetry metric views with custom histogram bucket boundaries.
504
+ *
505
+ * Overrides the default OTEL bucket set (16 boundaries) with MCP-relevant
506
+ * ranges for both HTTP and MCP duration histograms, reducing Prometheus
507
+ * cardinality while preserving useful percentile resolution.
508
+ *
509
+ * Two HTTP views are registered to cover both semconv variants:
510
+ * - `http.server.duration` (OLD, milliseconds) — default behavior
511
+ * - `http.server.request.duration` (stable, seconds) — active when
512
+ * `OTEL_SEMCONV_STABILITY_OPT_IN` includes `http` or `http/dup`
513
+ *
514
+ * Both views are always registered; the SDK only applies a view when
515
+ * its `instrumentName` matches an actually emitted metric.
516
+ *
517
+ * @returns Array of ViewOptions for NodeSDK configuration
518
+ */
519
+ function buildMetricViews(otel) {
520
+ return [
521
+ // OLD semconv: http.server.duration (milliseconds)
522
+ {
523
+ instrumentName: "http.server.duration",
524
+ aggregation: {
525
+ type: otel.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
526
+ options: { boundaries: HTTP_DURATION_BUCKETS_MS },
527
+ },
528
+ },
529
+ // Stable semconv: http.server.request.duration (seconds)
530
+ // Active when OTEL_SEMCONV_STABILITY_OPT_IN=http or http/dup
531
+ {
532
+ instrumentName: "http.server.request.duration",
533
+ aggregation: {
534
+ type: otel.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
535
+ options: { boundaries: HTTP_DURATION_BUCKETS_S },
536
+ },
537
+ },
538
+ {
539
+ instrumentName: METRIC_NAMES.REQUEST_DURATION,
540
+ aggregation: {
541
+ type: otel.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
542
+ options: { boundaries: MCP_DURATION_BUCKETS },
543
+ },
544
+ },
545
+ ];
546
+ }
547
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/telemetry/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
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 type { Span, Attributes, Tracer } from "@opentelemetry/api";
11
+ import { type SpanOptions, type TraceContext, type SpanCallback, type AsyncSpanCallback } from "./core/index.js";
12
+ /** @public SpanKind constants — numeric-compatible with `@opentelemetry/api.SpanKind` */
13
+ export declare const FrameworkSpanKind: {
14
+ readonly INTERNAL: 0;
15
+ readonly SERVER: 1;
16
+ readonly CLIENT: 2;
17
+ readonly PRODUCER: 3;
18
+ readonly CONSUMER: 4;
19
+ };
20
+ /** @public SpanStatusCode constants — numeric-compatible with `@opentelemetry/api.SpanStatusCode` */
21
+ export declare const FrameworkSpanStatusCode: {
22
+ readonly UNSET: 0;
23
+ readonly OK: 1;
24
+ readonly ERROR: 2;
25
+ };
26
+ /**
27
+ * Get the tracer instance for the MCP Server.
28
+ * Returns a noop tracer proxy when the OTEL API hasn't been loaded yet.
29
+ */
30
+ export declare function getTracer(): Tracer;
31
+ /**
32
+ * Execute a function within a new span.
33
+ * Automatically handles errors and sets span status.
34
+ *
35
+ * @param name - Name of the span
36
+ * @param fn - Function to execute within the span
37
+ * @param options - Span options
38
+ * @returns The result of the function
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const result = await withSpan('processRequest', async (span) => {
43
+ * span.setAttribute('request.id', requestId);
44
+ * return await processRequest();
45
+ * });
46
+ * ```
47
+ */
48
+ export declare function withSpan<T>(name: string, fn: AsyncSpanCallback<T>, options?: SpanOptions): Promise<T>;
49
+ /**
50
+ * Execute a synchronous function within a new span.
51
+ *
52
+ * @param name - Name of the span
53
+ * @param fn - Function to execute within the span
54
+ * @param options - Span options
55
+ * @returns The result of the function
56
+ */
57
+ export declare function withSpanSync<T>(name: string, fn: SpanCallback<T>, options?: SpanOptions): T;
58
+ /**
59
+ * Get the currently active span.
60
+ * Returns undefined if no span is active or OTEL API is not loaded.
61
+ */
62
+ export declare function getActiveSpan(): Span | undefined;
63
+ /**
64
+ * Add attributes to the active span.
65
+ * Does nothing if no span is active.
66
+ */
67
+ export declare function addSpanAttributes(attributes: Attributes): void;
68
+ /**
69
+ * Add an event to the active span.
70
+ * Does nothing if no span is active.
71
+ */
72
+ export declare function addSpanEvent(name: string, attributes?: Attributes): void;
73
+ /**
74
+ * Get the current trace context for propagation.
75
+ * Useful for passing context to external services.
76
+ */
77
+ export declare function getTraceContext(): TraceContext | undefined;
78
+ //# sourceMappingURL=tracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/telemetry/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AA+CzB,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAEX,qGAAqG;AACrG,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAuC/G;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,CA4C/F;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,GAAG,SAAS,CAIhD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAK9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAKxE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAW1D"}