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,459 @@
1
+ /**
2
+ * Logger Facade Module
3
+ *
4
+ * Provides a unified logging interface that delegates to specialized components:
5
+ * - Context management via core/context.ts
6
+ * - Formatting via formatters/ (Text/JSON)
7
+ * - Output via writers/ (Console/File/MCP)
8
+ * - Security via scrubbing/ (SecretScrubber/InjectionGuard)
9
+ * - Resource management via factory.ts (DI-enabled)
10
+ *
11
+ * This facade follows the Single Responsibility Principle by coordinating
12
+ * the logging pipeline without implementing the details itself.
13
+ *
14
+ * @module logger
15
+ */
16
+ import * as util from "util";
17
+ import { LOG_LEVELS, MAX_MESSAGE_LENGTH, TRUNCATION_SUFFIX, DEFAULT_LOG_LEVEL, DEFAULT_SERVICE_NAME, } from "./core/constants.js";
18
+ import { runWithContext, getContext, mergeContext, createChildContext, withExtendedContext, withChildContext, getContextDepth, } from "./core/context.js";
19
+ import { extractTraceContext } from "./core/trace-context.js";
20
+ // Factory for DI-enabled resource management
21
+ import { LoggerResources, initializeLoggerResources, hasLoggerResources, getLoggerResources, resetLoggerResources, _setLoggerResources, } from "./factory.js";
22
+ export { LoggerResources, initializeLoggerResources, resetLoggerResources };
23
+ /**
24
+ * Default logger configuration.
25
+ * Used when no explicit config is provided.
26
+ */
27
+ const DEFAULT_LOGGER_CONFIG = {
28
+ LOG_LEVEL: DEFAULT_LOG_LEVEL,
29
+ LOG_FORMAT: "text",
30
+ MCP_TRANSPORT: "http",
31
+ // @node-api — process.env.* returns string | undefined; config requires string literal union
32
+ NODE_ENV: process.env.NODE_ENV ?? "development",
33
+ SERVER_NAME: DEFAULT_SERVICE_NAME,
34
+ SERVER_VERSION: "0.0.0",
35
+ };
36
+ /** Global logger configuration storage */
37
+ let globalLoggerConfig = { ...DEFAULT_LOGGER_CONFIG };
38
+ /**
39
+ * Configure the global logger settings.
40
+ * Should be called once at application startup before creating loggers.
41
+ *
42
+ * @param config - Logger configuration options
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * // In app initialization
47
+ * configureLogger({
48
+ * LOG_LEVEL: config.LOG_LEVEL,
49
+ * LOG_FORMAT: config.LOG_FORMAT,
50
+ * MCP_TRANSPORT: config.MCP_TRANSPORT,
51
+ * NODE_ENV: config.NODE_ENV,
52
+ * LOG_DIR: config.LOG_DIR,
53
+ * SERVER_NAME: 'mcp-server',
54
+ * SERVER_VERSION: '1.0.0',
55
+ * });
56
+ * ```
57
+ */
58
+ export function configureLogger(config) {
59
+ globalLoggerConfig = { ...globalLoggerConfig, ...config };
60
+ // Close and reset resources so the next log call re-creates them with the new config.
61
+ // This is necessary because LoggerResources captures formatter settings
62
+ // (e.g., includeTimestamp, includeComponent) at construction time.
63
+ // Must use resetLoggerResources() (not _setLoggerResources(null)) to properly
64
+ // close existing FileWriter streams and clear rotation/retention timers.
65
+ if (hasLoggerResources()) {
66
+ void resetLoggerResources();
67
+ }
68
+ }
69
+ /**
70
+ * Get the current global logger configuration.
71
+ */
72
+ export function getLoggerConfig() {
73
+ return globalLoggerConfig;
74
+ }
75
+ /**
76
+ * Reset the global logger configuration to defaults.
77
+ * Primarily for testing.
78
+ */
79
+ export function resetLoggerConfig() {
80
+ globalLoggerConfig = { ...DEFAULT_LOGGER_CONFIG };
81
+ }
82
+ /**
83
+ * Centralized Logger Facade
84
+ *
85
+ * Coordinates the logging pipeline:
86
+ * 1. Level filtering
87
+ * 2. Message formatting (printf-style)
88
+ * 3. Metadata extraction
89
+ * 4. Secret scrubbing
90
+ * 5. Formatting (Text/JSON)
91
+ * 6. Injection prevention
92
+ * 7. Output to writers (Console/File/MCP)
93
+ *
94
+ * Now uses LoggerResources for DI-enabled resource management,
95
+ * eliminating the static state anti-pattern while maintaining
96
+ * backward compatibility through lazy global initialization.
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // Simple usage (global resources)
101
+ * const logger = new Logger('api');
102
+ * logger.info('Request received', { method: 'GET', path: '/health' });
103
+ *
104
+ * // DI usage (custom resources for testing)
105
+ * const resources = new LoggerResources(config, mockDeps);
106
+ * const testLogger = new Logger({ component: 'test', resources });
107
+ * ```
108
+ */
109
+ export class Logger {
110
+ // ============================================================
111
+ // Instance properties
112
+ // ============================================================
113
+ /** Override log level (if set in options, otherwise uses global config) */
114
+ levelOverride;
115
+ /** Component name for this logger instance */
116
+ component;
117
+ /** Explicitly injected resources (DI/testing only) — `null` means use global */
118
+ _injectedResources;
119
+ /** Resolve the active resources: injected for DI, otherwise global (dynamic). */
120
+ get resources() {
121
+ return this._injectedResources ?? Logger.getOrInitializeResources();
122
+ }
123
+ /**
124
+ * Get the effective log level (numeric for fast comparison).
125
+ * Uses override if set, otherwise reads from global config dynamically.
126
+ */
127
+ get level() {
128
+ const effectiveLevel = this.levelOverride ?? getLoggerConfig().LOG_LEVEL;
129
+ return LOG_LEVELS[effectiveLevel];
130
+ }
131
+ // ============================================================
132
+ // Constructor and Initialization
133
+ // ============================================================
134
+ /**
135
+ * Create a new Logger instance.
136
+ *
137
+ * @param componentOrOptions - Component name string or options object
138
+ */
139
+ constructor(componentOrOptions = "server") {
140
+ if (typeof componentOrOptions === "string") {
141
+ this.component = componentOrOptions;
142
+ this.levelOverride = undefined; // Use global config dynamically
143
+ this._injectedResources = null; // Resolve from global on each log call
144
+ }
145
+ else {
146
+ this.component = componentOrOptions.component ?? "server";
147
+ this.levelOverride = componentOrOptions.level; // Override if explicitly set
148
+ this._injectedResources = componentOrOptions.resources ?? null;
149
+ }
150
+ }
151
+ /**
152
+ * Get or initialize global resources lazily.
153
+ * Provides backward compatibility with existing code.
154
+ */
155
+ static getOrInitializeResources() {
156
+ if (!hasLoggerResources()) {
157
+ const cfg = getLoggerConfig();
158
+ initializeLoggerResources({
159
+ level: cfg.LOG_LEVEL,
160
+ format: cfg.LOG_FORMAT,
161
+ transport: cfg.MCP_TRANSPORT,
162
+ serviceName: cfg.SERVER_NAME,
163
+ serviceVersion: cfg.SERVER_VERSION,
164
+ environment: cfg.NODE_ENV,
165
+ ...(cfg.LOG_DIR !== undefined && { logDir: cfg.LOG_DIR }),
166
+ ...(cfg.LOG_MAX_FILE_SIZE !== undefined && {
167
+ maxFileSize: cfg.LOG_MAX_FILE_SIZE,
168
+ }),
169
+ ...(cfg.LOG_MAX_FILES !== undefined && { maxFiles: cfg.LOG_MAX_FILES }),
170
+ ...(cfg.LOG_RETENTION_DAYS !== undefined && {
171
+ retentionDays: cfg.LOG_RETENTION_DAYS,
172
+ }),
173
+ ...(cfg.LOG_TIMESTAMP !== undefined && {
174
+ includeTimestamp: cfg.LOG_TIMESTAMP,
175
+ }),
176
+ ...(cfg.LOG_COMPONENT !== undefined && {
177
+ includeComponent: cfg.LOG_COMPONENT,
178
+ }),
179
+ });
180
+ }
181
+ return getLoggerResources();
182
+ }
183
+ // ============================================================
184
+ // Static Lifecycle Methods
185
+ // ============================================================
186
+ /**
187
+ * Close all writers gracefully.
188
+ * Should be called during application shutdown.
189
+ *
190
+ * @returns Promise that resolves when all writers are closed
191
+ */
192
+ static async closeStreams() {
193
+ if (hasLoggerResources()) {
194
+ await getLoggerResources().close();
195
+ await resetLoggerResources();
196
+ }
197
+ }
198
+ /**
199
+ * Clear the child logger cache.
200
+ * Useful for testing or when configuration changes.
201
+ */
202
+ static clearChildLoggerCache() {
203
+ if (hasLoggerResources()) {
204
+ getLoggerResources().clearChildLoggerCache();
205
+ }
206
+ }
207
+ /**
208
+ * Reset static state (for testing purposes).
209
+ * Fully resets all resources.
210
+ */
211
+ static async resetState() {
212
+ await resetLoggerResources();
213
+ }
214
+ // ============================================================
215
+ // Child Logger Factory
216
+ // ============================================================
217
+ /**
218
+ * Create a child logger with a specific component context.
219
+ * Uses LRU caching to avoid creating new instances while preventing memory leaks.
220
+ *
221
+ * @param context - The component context for the child logger
222
+ * @returns A cached or new Logger instance
223
+ */
224
+ child(context) {
225
+ return this.resources.getOrCreateChildLogger(context.component, () => this._injectedResources
226
+ ? new Logger({
227
+ component: context.component,
228
+ resources: this._injectedResources,
229
+ })
230
+ : new Logger({ component: context.component }));
231
+ }
232
+ // ============================================================
233
+ // Context Management (delegates to core/context.ts)
234
+ // ============================================================
235
+ /**
236
+ * Run a function within a logging context.
237
+ * All logs within the function will include the context.
238
+ *
239
+ * @param context - The context to use for logging
240
+ * @param fn - The function to execute
241
+ * @returns The result of the function
242
+ */
243
+ runWithContext(context, fn) {
244
+ return runWithContext(context, fn);
245
+ }
246
+ /**
247
+ * Get the current logging context.
248
+ *
249
+ * @returns The current context or undefined
250
+ */
251
+ getContext() {
252
+ return getContext();
253
+ }
254
+ /**
255
+ * Merge additional context with the current context.
256
+ *
257
+ * @param additionalContext - Context values to add/override
258
+ * @returns A new merged context
259
+ */
260
+ mergeContext(additionalContext) {
261
+ return mergeContext(additionalContext);
262
+ }
263
+ /**
264
+ * Create a child context that inherits from the current context.
265
+ * Component names are automatically concatenated.
266
+ *
267
+ * @param childContext - Context values for the child
268
+ * @returns A new child context
269
+ */
270
+ createChildContext(childContext) {
271
+ return createChildContext(childContext);
272
+ }
273
+ /**
274
+ * Execute a function with an extended context.
275
+ *
276
+ * @param additionalContext - Context values to add
277
+ * @param fn - The function to execute
278
+ * @returns The result of the function
279
+ */
280
+ withExtendedContext(additionalContext, fn) {
281
+ return withExtendedContext(additionalContext, fn);
282
+ }
283
+ /**
284
+ * Execute a function with a child context.
285
+ *
286
+ * @param childContext - Context values for the child scope
287
+ * @param fn - The function to execute
288
+ * @returns The result of the function
289
+ */
290
+ withChildContext(childContext, fn) {
291
+ return withChildContext(childContext, fn);
292
+ }
293
+ /**
294
+ * Get the current context nesting depth.
295
+ *
296
+ * @returns The current depth
297
+ */
298
+ getContextDepth() {
299
+ return getContextDepth();
300
+ }
301
+ // ============================================================
302
+ // Log Level Methods
303
+ // ============================================================
304
+ /**
305
+ * Log a message at TRACE level.
306
+ */
307
+ trace(message, ...args) {
308
+ this.log("trace", message, ...args);
309
+ }
310
+ /**
311
+ * Log a message at DEBUG level.
312
+ */
313
+ debug(message, ...args) {
314
+ this.log("debug", message, ...args);
315
+ }
316
+ /**
317
+ * Log a message at INFO level.
318
+ */
319
+ info(message, ...args) {
320
+ this.log("info", message, ...args);
321
+ }
322
+ /**
323
+ * Log a message at WARN level.
324
+ */
325
+ warn(message, ...args) {
326
+ this.log("warn", message, ...args);
327
+ }
328
+ /**
329
+ * Log a message at ERROR level.
330
+ */
331
+ error(message, ...args) {
332
+ this.log("error", message, ...args);
333
+ }
334
+ // ============================================================
335
+ // Core Logging Pipeline
336
+ // ============================================================
337
+ /**
338
+ * Internal log handler implementing the logging pipeline.
339
+ *
340
+ * Pipeline steps:
341
+ * 1. Level filtering
342
+ * 2. Metadata extraction
343
+ * 3. Printf-style formatting
344
+ * 4. Message truncation (if exceeds MAX_MESSAGE_LENGTH)
345
+ * 5. Context retrieval
346
+ * 6. Secret scrubbing
347
+ * 7. Format generation (Text/JSON)
348
+ * 8. Injection prevention
349
+ * 9. Output to writers
350
+ * 10. MCP notification (if context has sendMcpLog)
351
+ */
352
+ log(level, message, ...args) {
353
+ // Step 1: Level filtering (fast path for disabled levels)
354
+ if (LOG_LEVELS[level] < this.level) {
355
+ return;
356
+ }
357
+ // Step 2: Extract metadata and error from args
358
+ const { metadata, error, formatArgs } = this.extractMetadata(args);
359
+ // Step 3: Printf-style message formatting
360
+ let formattedMessage = util.format(message, ...formatArgs);
361
+ // Step 4: Truncate long messages to prevent memory issues
362
+ if (formattedMessage.length > MAX_MESSAGE_LENGTH) {
363
+ formattedMessage = formattedMessage.slice(0, MAX_MESSAGE_LENGTH - TRUNCATION_SUFFIX.length) + TRUNCATION_SUFFIX;
364
+ }
365
+ // Step 5: Get context (from AsyncLocalStorage)
366
+ const context = getContext();
367
+ const component = context?.component ?? this.component;
368
+ // Step 5b: Auto-enrich with OTEL trace context if not already set
369
+ let enrichedContext = context;
370
+ if (!context?.traceId) {
371
+ const otelCtx = extractTraceContext();
372
+ if (otelCtx) {
373
+ enrichedContext = { ...context, ...otelCtx };
374
+ }
375
+ }
376
+ // Step 6: Scrub secrets from metadata
377
+ // @ts-limitation — scrubObject() returns unknown; object input guarantees object output
378
+ const scrubbedMetadata = metadata
379
+ ? this.resources.secretScrubber.scrubObject(metadata)
380
+ : undefined;
381
+ // Step 7: Build log entry params
382
+ const params = {
383
+ level,
384
+ message: formattedMessage,
385
+ component,
386
+ ...(enrichedContext !== undefined && { context: enrichedContext }),
387
+ ...(scrubbedMetadata !== undefined && { metadata: scrubbedMetadata }),
388
+ ...(error !== undefined && { error }),
389
+ timestamp: new Date().toISOString(),
390
+ };
391
+ // Step 8: Format the log entry
392
+ const formatted = this.resources.getFormatter().format(params);
393
+ // Step 9: Apply injection guard and secret scrubbing to final output
394
+ const safeOutput = this.sanitizeOutput(formatted);
395
+ // Step 10: Write to outputs
396
+ this.writeToOutputs(level, safeOutput, component);
397
+ // Step 11: Send to MCP client if context has sendMcpLog (best-effort)
398
+ if (enrichedContext?.sendMcpLog) {
399
+ try {
400
+ const safeMessage = this.sanitizeOutput(formattedMessage);
401
+ enrichedContext.sendMcpLog(level, safeMessage);
402
+ }
403
+ catch {
404
+ // Silently ignore — MCP client notification is best-effort.
405
+ // A throwing callback must never crash the caller's logging call.
406
+ }
407
+ }
408
+ }
409
+ /**
410
+ * Extract metadata object from log arguments.
411
+ * The last argument is treated as metadata if it's a plain object (not an Error).
412
+ */
413
+ extractMetadata(args) {
414
+ if (args.length === 0) {
415
+ return { metadata: undefined, error: undefined, formatArgs: [] };
416
+ }
417
+ let metadata;
418
+ let error;
419
+ let formatArgs = args;
420
+ const lastArg = args[args.length - 1];
421
+ // Check if last arg is a plain object (not null, not Error)
422
+ if (lastArg !== null && typeof lastArg === "object" && !(lastArg instanceof Error) && !Array.isArray(lastArg)) {
423
+ // @type-narrowing — Runtime checks confirm object && !null && !Error && !Array; TS cannot narrow unknown
424
+ metadata = lastArg;
425
+ formatArgs = args.slice(0, -1);
426
+ }
427
+ // Check if last format arg (or the one before metadata) is an Error
428
+ const errorCandidate = formatArgs.length > 0 ? formatArgs[formatArgs.length - 1] : undefined;
429
+ if (errorCandidate instanceof Error) {
430
+ error = errorCandidate;
431
+ }
432
+ return { metadata, error, formatArgs };
433
+ }
434
+ /**
435
+ * Apply injection guard and secret scrubbing to formatted log output.
436
+ */
437
+ sanitizeOutput(formatted) {
438
+ const sanitized = this.resources.injectionGuard.sanitize(formatted);
439
+ return this.resources.secretScrubber.scrub(sanitized);
440
+ }
441
+ /**
442
+ * Write formatted output to all configured writers.
443
+ */
444
+ writeToOutputs(level, output, component) {
445
+ // Console writer
446
+ this.resources.consoleWriter?.write(level, output, component);
447
+ // File writer (if configured)
448
+ /* v8 ignore start - file logging requires LOG_DIR environment */
449
+ this.resources.fileWriter?.write(level, output, component);
450
+ /* v8 ignore stop */
451
+ }
452
+ }
453
+ /**
454
+ * Default logger instance for the application.
455
+ * Uses dynamic log level from global config, so configureLogger()
456
+ * can be called at any time to change the effective log level.
457
+ */
458
+ export const logger = new Logger();
459
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * MCP Notification Logger Module
3
+ *
4
+ * Provides structured logging via MCP notifications/message protocol.
5
+ * This allows MCP clients to receive and display server-side logs.
6
+ *
7
+ * Per MCP Spec, logging levels follow RFC 5424 (syslog):
8
+ * - emergency: System is unusable
9
+ * - alert: Action must be taken immediately
10
+ * - critical: Critical conditions
11
+ * - error: Error conditions
12
+ * - warning: Warning conditions
13
+ * - notice: Normal but significant condition
14
+ * - info: Informational messages
15
+ * - debug: Debug-level messages
16
+ *
17
+ * @module logger/mcp-logger
18
+ */
19
+ import type { LogLevel, McpLogLevel, LogNotificationHandler } from "./core/types.js";
20
+ /**
21
+ * Configuration options for MCP Notification Logger.
22
+ */
23
+ export interface McpLoggerConfig {
24
+ /** Minimum log level to send (default: 'debug') */
25
+ minLevel?: McpLogLevel;
26
+ /** Whether logging is enabled (default: true) */
27
+ enabled?: boolean;
28
+ }
29
+ /**
30
+ * MCP Notification Logger
31
+ *
32
+ * Sends structured log messages to MCP clients via the notifications/message protocol.
33
+ * Clients that support the logging capability will receive and display these messages.
34
+ *
35
+ * Features:
36
+ * - Multi-server support for multi-session scenarios
37
+ * - Level filtering with configurable minimum level
38
+ * - Secret scrubbing for security
39
+ * - Context-aware logger creation for tool handlers
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Set up with MCP server
44
+ * mcpLogger.addServer(mcpServer);
45
+ *
46
+ * // Log messages (sent to all connected clients)
47
+ * await mcpLogger.info('Processing request...');
48
+ * await mcpLogger.warn('Resource limit approaching', { current: 80, max: 100 });
49
+ * await mcpLogger.error('Failed to connect', { error: 'Connection refused' });
50
+ * ```
51
+ */
52
+ export declare class McpNotificationLogger {
53
+ /** Set of registered notification handlers */
54
+ private readonly handlers;
55
+ /** Whether logging is enabled */
56
+ private enabled;
57
+ /** Minimum log level to send */
58
+ private minLevel;
59
+ /** Use shared secret scrubber instance for consistency */
60
+ private readonly secretScrubber;
61
+ /** Injection guard for CWE-117 protection (consistent with main logger pipeline) */
62
+ private readonly injectionGuard;
63
+ /**
64
+ * Create a new McpNotificationLogger.
65
+ *
66
+ * @param config - Optional configuration
67
+ */
68
+ constructor(config?: McpLoggerConfig);
69
+ /**
70
+ * Register a notification handler for receiving log notifications.
71
+ * Multiple handlers can be registered for multi-session scenarios.
72
+ *
73
+ * @param handler - The notification handler to register
74
+ */
75
+ addHandler(handler: LogNotificationHandler): void;
76
+ /**
77
+ * Unregister a notification handler.
78
+ *
79
+ * @param handler - The notification handler to remove
80
+ */
81
+ removeHandler(handler: LogNotificationHandler): void;
82
+ /**
83
+ * Clear all registered handlers.
84
+ */
85
+ clearHandlers(): void;
86
+ /**
87
+ * Get the number of registered handlers.
88
+ */
89
+ getHandlerCount(): number;
90
+ /**
91
+ * Enable or disable MCP logging.
92
+ * When disabled, log methods become no-ops but still return resolved promises.
93
+ *
94
+ * @param enabled - Whether to enable logging
95
+ */
96
+ setEnabled(enabled: boolean): void;
97
+ /**
98
+ * Check if logging is enabled.
99
+ */
100
+ isEnabled(): boolean;
101
+ /**
102
+ * Set the minimum log level.
103
+ * Messages below this level will not be sent.
104
+ *
105
+ * @param level - The minimum log level
106
+ */
107
+ setMinLevel(level: McpLogLevel): void;
108
+ /**
109
+ * Get the current minimum log level.
110
+ */
111
+ getMinLevel(): McpLogLevel;
112
+ /**
113
+ * Check if logging is currently available (enabled and has servers).
114
+ */
115
+ isAvailable(): boolean;
116
+ /**
117
+ * Send a log message to all connected MCP clients.
118
+ *
119
+ * @param level - The MCP log level
120
+ * @param message - The log message
121
+ * @param data - Optional structured data to include
122
+ * @returns Promise that resolves when all sends complete
123
+ */
124
+ log(level: McpLogLevel, message: string, data?: Record<string, unknown>): Promise<void>;
125
+ /** Log a debug message */
126
+ debug(message: string, data?: Record<string, unknown>): Promise<void>;
127
+ /** Log an info message */
128
+ info(message: string, data?: Record<string, unknown>): Promise<void>;
129
+ /** Log a notice message */
130
+ notice(message: string, data?: Record<string, unknown>): Promise<void>;
131
+ /** Log a warning message */
132
+ warn(message: string, data?: Record<string, unknown>): Promise<void>;
133
+ /** Log a warning message (alias for warn) */
134
+ warning(message: string, data?: Record<string, unknown>): Promise<void>;
135
+ /** Log an error message */
136
+ error(message: string, data?: Record<string, unknown>): Promise<void>;
137
+ /** Log a critical message */
138
+ critical(message: string, data?: Record<string, unknown>): Promise<void>;
139
+ /** Log an alert message */
140
+ alert(message: string, data?: Record<string, unknown>): Promise<void>;
141
+ /** Log an emergency message */
142
+ emergency(message: string, data?: Record<string, unknown>): Promise<void>;
143
+ /**
144
+ * Create a context-aware logger function for use in tool handlers.
145
+ * Returns a function that can be passed to LogContext.sendMcpLog.
146
+ *
147
+ * @param handler - The notification handler for this context
148
+ * @returns A function compatible with LogContext.sendMcpLog
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const sendMcpLog = mcpLogger.createContextLogger(handler);
153
+ * logger.runWithContext({ sendMcpLog }, () => {
154
+ * logger.info('This will also be sent to MCP client');
155
+ * });
156
+ * ```
157
+ */
158
+ createContextLogger(handler: LogNotificationHandler): (level: LogLevel, message: string) => void;
159
+ /**
160
+ * Check if a log level should be logged based on minimum level.
161
+ */
162
+ private shouldLog;
163
+ /**
164
+ * Format message with optional data.
165
+ */
166
+ private formatMessage;
167
+ /**
168
+ * Send a log message to a specific handler.
169
+ */
170
+ private sendToHandler;
171
+ }
172
+ /**
173
+ * Singleton instance of the MCP Notification Logger.
174
+ * Use this for sending log messages to MCP clients.
175
+ */
176
+ export declare const mcpLogger: McpNotificationLogger;
177
+ //# sourceMappingURL=mcp-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-logger.d.ts","sourceRoot":"","sources":["../../src/logger/mcp-logger.ts"],"names":[],"mappings":"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"}