@cyanheads/mcp-ts-core 0.1.0-beta.12

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 (485) hide show
  1. package/CLAUDE.md +583 -0
  2. package/LICENSE +201 -0
  3. package/README.md +287 -0
  4. package/biome.json +103 -0
  5. package/dist/app.d.ts +82 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/app.js +222 -0
  8. package/dist/app.js.map +1 -0
  9. package/dist/cli/init.d.ts +8 -0
  10. package/dist/cli/init.d.ts.map +1 -0
  11. package/dist/cli/init.js +161 -0
  12. package/dist/cli/init.js.map +1 -0
  13. package/dist/config/index.d.ts +349 -0
  14. package/dist/config/index.d.ts.map +1 -0
  15. package/dist/config/index.js +464 -0
  16. package/dist/config/index.js.map +1 -0
  17. package/dist/context.d.ts +119 -0
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +144 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/index.d.ts +8 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +9 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/mcp-server/prompts/prompt-registration.d.ts +33 -0
  26. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -0
  27. package/dist/mcp-server/prompts/prompt-registration.js +91 -0
  28. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -0
  29. package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts +49 -0
  30. package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts.map +1 -0
  31. package/dist/mcp-server/prompts/utils/newPromptDefinition.js +39 -0
  32. package/dist/mcp-server/prompts/utils/newPromptDefinition.js.map +1 -0
  33. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +37 -0
  34. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -0
  35. package/dist/mcp-server/prompts/utils/promptDefinition.js +2 -0
  36. package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -0
  37. package/dist/mcp-server/resources/resource-registration.d.ts +27 -0
  38. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -0
  39. package/dist/mcp-server/resources/resource-registration.js +85 -0
  40. package/dist/mcp-server/resources/resource-registration.js.map +1 -0
  41. package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts +84 -0
  42. package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts.map +1 -0
  43. package/dist/mcp-server/resources/utils/newResourceDefinition.js +40 -0
  44. package/dist/mcp-server/resources/utils/newResourceDefinition.js.map +1 -0
  45. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts +32 -0
  46. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts.map +1 -0
  47. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js +103 -0
  48. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js.map +1 -0
  49. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +94 -0
  50. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -0
  51. package/dist/mcp-server/resources/utils/resourceDefinition.js +2 -0
  52. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -0
  53. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +14 -0
  54. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -0
  55. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +111 -0
  56. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -0
  57. package/dist/mcp-server/roots/roots-registration.d.ts +22 -0
  58. package/dist/mcp-server/roots/roots-registration.d.ts.map +1 -0
  59. package/dist/mcp-server/roots/roots-registration.js +25 -0
  60. package/dist/mcp-server/roots/roots-registration.js.map +1 -0
  61. package/dist/mcp-server/server.d.ts +34 -0
  62. package/dist/mcp-server/server.d.ts.map +1 -0
  63. package/dist/mcp-server/server.js +62 -0
  64. package/dist/mcp-server/server.js.map +1 -0
  65. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +42 -0
  66. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +1 -0
  67. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +70 -0
  68. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +1 -0
  69. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +109 -0
  70. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +1 -0
  71. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +209 -0
  72. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +1 -0
  73. package/dist/mcp-server/tasks/core/taskManager.d.ts +103 -0
  74. package/dist/mcp-server/tasks/core/taskManager.d.ts.map +1 -0
  75. package/dist/mcp-server/tasks/core/taskManager.js +144 -0
  76. package/dist/mcp-server/tasks/core/taskManager.js.map +1 -0
  77. package/dist/mcp-server/tasks/core/taskTypes.d.ts +11 -0
  78. package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +1 -0
  79. package/dist/mcp-server/tasks/core/taskTypes.js +13 -0
  80. package/dist/mcp-server/tasks/core/taskTypes.js.map +1 -0
  81. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +108 -0
  82. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +1 -0
  83. package/dist/mcp-server/tasks/utils/taskToolDefinition.js +14 -0
  84. package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +1 -0
  85. package/dist/mcp-server/tools/tool-registration.d.ts +49 -0
  86. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -0
  87. package/dist/mcp-server/tools/tool-registration.js +269 -0
  88. package/dist/mcp-server/tools/tool-registration.js.map +1 -0
  89. package/dist/mcp-server/tools/utils/newToolDefinition.d.ts +73 -0
  90. package/dist/mcp-server/tools/utils/newToolDefinition.d.ts.map +1 -0
  91. package/dist/mcp-server/tools/utils/newToolDefinition.js +45 -0
  92. package/dist/mcp-server/tools/utils/newToolDefinition.js.map +1 -0
  93. package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts +33 -0
  94. package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts.map +1 -0
  95. package/dist/mcp-server/tools/utils/newToolHandlerFactory.js +107 -0
  96. package/dist/mcp-server/tools/utils/newToolHandlerFactory.js.map +1 -0
  97. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +118 -0
  98. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -0
  99. package/dist/mcp-server/tools/utils/toolDefinition.js +2 -0
  100. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -0
  101. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +34 -0
  102. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -0
  103. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +68 -0
  104. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -0
  105. package/dist/mcp-server/transports/ITransport.d.ts +15 -0
  106. package/dist/mcp-server/transports/ITransport.d.ts.map +1 -0
  107. package/dist/mcp-server/transports/ITransport.js +2 -0
  108. package/dist/mcp-server/transports/ITransport.js.map +1 -0
  109. package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
  110. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  111. package/dist/mcp-server/transports/auth/authFactory.js +43 -0
  112. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  113. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +24 -0
  114. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  115. package/dist/mcp-server/transports/auth/authMiddleware.js +69 -0
  116. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  117. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
  118. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  119. package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
  120. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  121. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +19 -0
  122. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  123. package/dist/mcp-server/transports/auth/lib/authTypes.js +2 -0
  124. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  125. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +18 -0
  126. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  127. package/dist/mcp-server/transports/auth/lib/authUtils.js +64 -0
  128. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  129. package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts +25 -0
  130. package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts.map +1 -0
  131. package/dist/mcp-server/transports/auth/lib/checkScopes.js +34 -0
  132. package/dist/mcp-server/transports/auth/lib/checkScopes.js.map +1 -0
  133. package/dist/mcp-server/transports/auth/lib/claimParser.d.ts +34 -0
  134. package/dist/mcp-server/transports/auth/lib/claimParser.d.ts.map +1 -0
  135. package/dist/mcp-server/transports/auth/lib/claimParser.js +58 -0
  136. package/dist/mcp-server/transports/auth/lib/claimParser.js.map +1 -0
  137. package/dist/mcp-server/transports/auth/lib/withAuth.d.ts +25 -0
  138. package/dist/mcp-server/transports/auth/lib/withAuth.d.ts.map +1 -0
  139. package/dist/mcp-server/transports/auth/lib/withAuth.js +30 -0
  140. package/dist/mcp-server/transports/auth/lib/withAuth.js.map +1 -0
  141. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
  142. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  143. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
  144. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  145. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +14 -0
  146. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  147. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +86 -0
  148. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  149. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +14 -0
  150. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  151. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +113 -0
  152. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  153. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
  154. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  155. package/dist/mcp-server/transports/http/httpErrorHandler.js +112 -0
  156. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  157. package/dist/mcp-server/transports/http/httpTransport.d.ts +47 -0
  158. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  159. package/dist/mcp-server/transports/http/httpTransport.js +396 -0
  160. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  161. package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
  162. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  163. package/dist/mcp-server/transports/http/httpTypes.js +2 -0
  164. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  165. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts +21 -0
  166. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -0
  167. package/dist/mcp-server/transports/http/protectedResourceMetadata.js +44 -0
  168. package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -0
  169. package/dist/mcp-server/transports/http/sessionIdUtils.d.ts +33 -0
  170. package/dist/mcp-server/transports/http/sessionIdUtils.d.ts.map +1 -0
  171. package/dist/mcp-server/transports/http/sessionIdUtils.js +54 -0
  172. package/dist/mcp-server/transports/http/sessionIdUtils.js.map +1 -0
  173. package/dist/mcp-server/transports/http/sessionStore.d.ts +87 -0
  174. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -0
  175. package/dist/mcp-server/transports/http/sessionStore.js +209 -0
  176. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -0
  177. package/dist/mcp-server/transports/manager.d.ts +22 -0
  178. package/dist/mcp-server/transports/manager.d.ts.map +1 -0
  179. package/dist/mcp-server/transports/manager.js +62 -0
  180. package/dist/mcp-server/transports/manager.js.map +1 -0
  181. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +44 -0
  182. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  183. package/dist/mcp-server/transports/stdio/stdioTransport.js +63 -0
  184. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  185. package/dist/services/graph/core/GraphService.d.ts +205 -0
  186. package/dist/services/graph/core/GraphService.d.ts.map +1 -0
  187. package/dist/services/graph/core/GraphService.js +231 -0
  188. package/dist/services/graph/core/GraphService.js.map +1 -0
  189. package/dist/services/graph/core/IGraphProvider.d.ts +295 -0
  190. package/dist/services/graph/core/IGraphProvider.d.ts.map +1 -0
  191. package/dist/services/graph/core/IGraphProvider.js +8 -0
  192. package/dist/services/graph/core/IGraphProvider.js.map +1 -0
  193. package/dist/services/graph/types.d.ts +107 -0
  194. package/dist/services/graph/types.d.ts.map +1 -0
  195. package/dist/services/graph/types.js +8 -0
  196. package/dist/services/graph/types.js.map +1 -0
  197. package/dist/services/llm/core/ILlmProvider.d.ts +86 -0
  198. package/dist/services/llm/core/ILlmProvider.d.ts.map +1 -0
  199. package/dist/services/llm/core/ILlmProvider.js +2 -0
  200. package/dist/services/llm/core/ILlmProvider.js.map +1 -0
  201. package/dist/services/llm/providers/openrouter.provider.d.ts +187 -0
  202. package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -0
  203. package/dist/services/llm/providers/openrouter.provider.js +302 -0
  204. package/dist/services/llm/providers/openrouter.provider.js.map +1 -0
  205. package/dist/services/llm/types.d.ts +16 -0
  206. package/dist/services/llm/types.d.ts.map +1 -0
  207. package/dist/services/llm/types.js +9 -0
  208. package/dist/services/llm/types.js.map +1 -0
  209. package/dist/services/speech/core/ISpeechProvider.d.ts +92 -0
  210. package/dist/services/speech/core/ISpeechProvider.d.ts.map +1 -0
  211. package/dist/services/speech/core/ISpeechProvider.js +34 -0
  212. package/dist/services/speech/core/ISpeechProvider.js.map +1 -0
  213. package/dist/services/speech/core/SpeechService.d.ts +87 -0
  214. package/dist/services/speech/core/SpeechService.d.ts.map +1 -0
  215. package/dist/services/speech/core/SpeechService.js +135 -0
  216. package/dist/services/speech/core/SpeechService.js.map +1 -0
  217. package/dist/services/speech/providers/elevenlabs.provider.d.ts +77 -0
  218. package/dist/services/speech/providers/elevenlabs.provider.d.ts.map +1 -0
  219. package/dist/services/speech/providers/elevenlabs.provider.js +199 -0
  220. package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -0
  221. package/dist/services/speech/providers/whisper.provider.d.ts +94 -0
  222. package/dist/services/speech/providers/whisper.provider.d.ts.map +1 -0
  223. package/dist/services/speech/providers/whisper.provider.js +240 -0
  224. package/dist/services/speech/providers/whisper.provider.js.map +1 -0
  225. package/dist/services/speech/types.d.ts +173 -0
  226. package/dist/services/speech/types.d.ts.map +1 -0
  227. package/dist/services/speech/types.js +8 -0
  228. package/dist/services/speech/types.js.map +1 -0
  229. package/dist/storage/core/IStorageProvider.d.ts +159 -0
  230. package/dist/storage/core/IStorageProvider.d.ts.map +1 -0
  231. package/dist/storage/core/IStorageProvider.js +2 -0
  232. package/dist/storage/core/IStorageProvider.js.map +1 -0
  233. package/dist/storage/core/StorageService.d.ts +22 -0
  234. package/dist/storage/core/StorageService.d.ts.map +1 -0
  235. package/dist/storage/core/StorageService.js +151 -0
  236. package/dist/storage/core/StorageService.js.map +1 -0
  237. package/dist/storage/core/storageFactory.d.ts +66 -0
  238. package/dist/storage/core/storageFactory.d.ts.map +1 -0
  239. package/dist/storage/core/storageFactory.js +122 -0
  240. package/dist/storage/core/storageFactory.js.map +1 -0
  241. package/dist/storage/core/storageValidation.d.ts +77 -0
  242. package/dist/storage/core/storageValidation.d.ts.map +1 -0
  243. package/dist/storage/core/storageValidation.js +303 -0
  244. package/dist/storage/core/storageValidation.js.map +1 -0
  245. package/dist/storage/providers/cloudflare/d1Provider.d.ts +94 -0
  246. package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -0
  247. package/dist/storage/providers/cloudflare/d1Provider.js +347 -0
  248. package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -0
  249. package/dist/storage/providers/cloudflare/kvProvider.d.ts +21 -0
  250. package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -0
  251. package/dist/storage/providers/cloudflare/kvProvider.js +183 -0
  252. package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -0
  253. package/dist/storage/providers/cloudflare/r2Provider.d.ts +28 -0
  254. package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -0
  255. package/dist/storage/providers/cloudflare/r2Provider.js +222 -0
  256. package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -0
  257. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +20 -0
  258. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -0
  259. package/dist/storage/providers/fileSystem/fileSystemProvider.js +282 -0
  260. package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -0
  261. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +21 -0
  262. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -0
  263. package/dist/storage/providers/inMemory/inMemoryProvider.js +139 -0
  264. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -0
  265. package/dist/storage/providers/supabase/supabase.types.d.ts +49 -0
  266. package/dist/storage/providers/supabase/supabase.types.d.ts.map +1 -0
  267. package/dist/storage/providers/supabase/supabase.types.js +8 -0
  268. package/dist/storage/providers/supabase/supabase.types.js.map +1 -0
  269. package/dist/storage/providers/supabase/supabaseProvider.d.ts +24 -0
  270. package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -0
  271. package/dist/storage/providers/supabase/supabaseProvider.js +209 -0
  272. package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -0
  273. package/dist/testing/index.d.ts +53 -0
  274. package/dist/testing/index.d.ts.map +1 -0
  275. package/dist/testing/index.js +132 -0
  276. package/dist/testing/index.js.map +1 -0
  277. package/dist/types-global/errors.d.ts +83 -0
  278. package/dist/types-global/errors.d.ts.map +1 -0
  279. package/dist/types-global/errors.js +113 -0
  280. package/dist/types-global/errors.js.map +1 -0
  281. package/dist/utils/formatting/diffFormatter.d.ts +227 -0
  282. package/dist/utils/formatting/diffFormatter.d.ts.map +1 -0
  283. package/dist/utils/formatting/diffFormatter.js +369 -0
  284. package/dist/utils/formatting/diffFormatter.js.map +1 -0
  285. package/dist/utils/formatting/index.d.ts +9 -0
  286. package/dist/utils/formatting/index.d.ts.map +1 -0
  287. package/dist/utils/formatting/index.js +9 -0
  288. package/dist/utils/formatting/index.js.map +1 -0
  289. package/dist/utils/formatting/markdownBuilder.d.ts +543 -0
  290. package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
  291. package/dist/utils/formatting/markdownBuilder.js +674 -0
  292. package/dist/utils/formatting/markdownBuilder.js.map +1 -0
  293. package/dist/utils/formatting/tableFormatter.d.ts +261 -0
  294. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
  295. package/dist/utils/formatting/tableFormatter.js +456 -0
  296. package/dist/utils/formatting/tableFormatter.js.map +1 -0
  297. package/dist/utils/formatting/treeFormatter.d.ts +344 -0
  298. package/dist/utils/formatting/treeFormatter.d.ts.map +1 -0
  299. package/dist/utils/formatting/treeFormatter.js +400 -0
  300. package/dist/utils/formatting/treeFormatter.js.map +1 -0
  301. package/dist/utils/internal/encoding.d.ts +42 -0
  302. package/dist/utils/internal/encoding.d.ts.map +1 -0
  303. package/dist/utils/internal/encoding.js +87 -0
  304. package/dist/utils/internal/encoding.js.map +1 -0
  305. package/dist/utils/internal/error-handler/errorHandler.d.ts +140 -0
  306. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -0
  307. package/dist/utils/internal/error-handler/errorHandler.js +318 -0
  308. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -0
  309. package/dist/utils/internal/error-handler/helpers.d.ts +98 -0
  310. package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -0
  311. package/dist/utils/internal/error-handler/helpers.js +214 -0
  312. package/dist/utils/internal/error-handler/helpers.js.map +1 -0
  313. package/dist/utils/internal/error-handler/mappings.d.ts +85 -0
  314. package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -0
  315. package/dist/utils/internal/error-handler/mappings.js +234 -0
  316. package/dist/utils/internal/error-handler/mappings.js.map +1 -0
  317. package/dist/utils/internal/error-handler/types.d.ts +160 -0
  318. package/dist/utils/internal/error-handler/types.d.ts.map +1 -0
  319. package/dist/utils/internal/error-handler/types.js +6 -0
  320. package/dist/utils/internal/error-handler/types.js.map +1 -0
  321. package/dist/utils/internal/health.d.ts +60 -0
  322. package/dist/utils/internal/health.d.ts.map +1 -0
  323. package/dist/utils/internal/health.js +46 -0
  324. package/dist/utils/internal/health.js.map +1 -0
  325. package/dist/utils/internal/logger.d.ts +300 -0
  326. package/dist/utils/internal/logger.d.ts.map +1 -0
  327. package/dist/utils/internal/logger.js +573 -0
  328. package/dist/utils/internal/logger.js.map +1 -0
  329. package/dist/utils/internal/performance.d.ts +78 -0
  330. package/dist/utils/internal/performance.d.ts.map +1 -0
  331. package/dist/utils/internal/performance.js +227 -0
  332. package/dist/utils/internal/performance.js.map +1 -0
  333. package/dist/utils/internal/requestContext.d.ts +200 -0
  334. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  335. package/dist/utils/internal/requestContext.js +163 -0
  336. package/dist/utils/internal/requestContext.js.map +1 -0
  337. package/dist/utils/internal/runtime.d.ts +49 -0
  338. package/dist/utils/internal/runtime.d.ts.map +1 -0
  339. package/dist/utils/internal/runtime.js +90 -0
  340. package/dist/utils/internal/runtime.js.map +1 -0
  341. package/dist/utils/internal/startupBanner.d.ts +23 -0
  342. package/dist/utils/internal/startupBanner.d.ts.map +1 -0
  343. package/dist/utils/internal/startupBanner.js +34 -0
  344. package/dist/utils/internal/startupBanner.js.map +1 -0
  345. package/dist/utils/metrics/tokenCounter.d.ts +97 -0
  346. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  347. package/dist/utils/metrics/tokenCounter.js +162 -0
  348. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  349. package/dist/utils/network/fetchWithTimeout.d.ts +91 -0
  350. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  351. package/dist/utils/network/fetchWithTimeout.js +305 -0
  352. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  353. package/dist/utils/pagination/pagination.d.ts +157 -0
  354. package/dist/utils/pagination/pagination.d.ts.map +1 -0
  355. package/dist/utils/pagination/pagination.js +191 -0
  356. package/dist/utils/pagination/pagination.js.map +1 -0
  357. package/dist/utils/parsing/csvParser.d.ts +84 -0
  358. package/dist/utils/parsing/csvParser.d.ts.map +1 -0
  359. package/dist/utils/parsing/csvParser.js +132 -0
  360. package/dist/utils/parsing/csvParser.js.map +1 -0
  361. package/dist/utils/parsing/dateParser.d.ts +103 -0
  362. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  363. package/dist/utils/parsing/dateParser.js +142 -0
  364. package/dist/utils/parsing/dateParser.js.map +1 -0
  365. package/dist/utils/parsing/frontmatterParser.d.ts +91 -0
  366. package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -0
  367. package/dist/utils/parsing/frontmatterParser.js +163 -0
  368. package/dist/utils/parsing/frontmatterParser.js.map +1 -0
  369. package/dist/utils/parsing/index.d.ts +15 -0
  370. package/dist/utils/parsing/index.d.ts.map +1 -0
  371. package/dist/utils/parsing/index.js +15 -0
  372. package/dist/utils/parsing/index.js.map +1 -0
  373. package/dist/utils/parsing/jsonParser.d.ts +115 -0
  374. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  375. package/dist/utils/parsing/jsonParser.js +177 -0
  376. package/dist/utils/parsing/jsonParser.js.map +1 -0
  377. package/dist/utils/parsing/pdfParser.d.ts +563 -0
  378. package/dist/utils/parsing/pdfParser.d.ts.map +1 -0
  379. package/dist/utils/parsing/pdfParser.js +775 -0
  380. package/dist/utils/parsing/pdfParser.js.map +1 -0
  381. package/dist/utils/parsing/thinkBlock.d.ts +31 -0
  382. package/dist/utils/parsing/thinkBlock.d.ts.map +1 -0
  383. package/dist/utils/parsing/thinkBlock.js +31 -0
  384. package/dist/utils/parsing/thinkBlock.js.map +1 -0
  385. package/dist/utils/parsing/xmlParser.d.ts +69 -0
  386. package/dist/utils/parsing/xmlParser.d.ts.map +1 -0
  387. package/dist/utils/parsing/xmlParser.js +140 -0
  388. package/dist/utils/parsing/xmlParser.js.map +1 -0
  389. package/dist/utils/parsing/yamlParser.d.ts +64 -0
  390. package/dist/utils/parsing/yamlParser.d.ts.map +1 -0
  391. package/dist/utils/parsing/yamlParser.js +129 -0
  392. package/dist/utils/parsing/yamlParser.js.map +1 -0
  393. package/dist/utils/scheduling/scheduler.d.ts +174 -0
  394. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  395. package/dist/utils/scheduling/scheduler.js +248 -0
  396. package/dist/utils/scheduling/scheduler.js.map +1 -0
  397. package/dist/utils/security/idGenerator.d.ts +189 -0
  398. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  399. package/dist/utils/security/idGenerator.js +301 -0
  400. package/dist/utils/security/idGenerator.js.map +1 -0
  401. package/dist/utils/security/index.d.ts +8 -0
  402. package/dist/utils/security/index.d.ts.map +1 -0
  403. package/dist/utils/security/index.js +8 -0
  404. package/dist/utils/security/index.js.map +1 -0
  405. package/dist/utils/security/rateLimiter.d.ts +171 -0
  406. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  407. package/dist/utils/security/rateLimiter.js +294 -0
  408. package/dist/utils/security/rateLimiter.js.map +1 -0
  409. package/dist/utils/security/sanitization.d.ts +430 -0
  410. package/dist/utils/security/sanitization.d.ts.map +1 -0
  411. package/dist/utils/security/sanitization.js +759 -0
  412. package/dist/utils/security/sanitization.js.map +1 -0
  413. package/dist/utils/telemetry/index.d.ts +12 -0
  414. package/dist/utils/telemetry/index.d.ts.map +1 -0
  415. package/dist/utils/telemetry/index.js +12 -0
  416. package/dist/utils/telemetry/index.js.map +1 -0
  417. package/dist/utils/telemetry/instrumentation.d.ts +62 -0
  418. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  419. package/dist/utils/telemetry/instrumentation.js +223 -0
  420. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  421. package/dist/utils/telemetry/metrics.d.ts +170 -0
  422. package/dist/utils/telemetry/metrics.d.ts.map +1 -0
  423. package/dist/utils/telemetry/metrics.js +205 -0
  424. package/dist/utils/telemetry/metrics.js.map +1 -0
  425. package/dist/utils/telemetry/semconv.d.ts +147 -0
  426. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  427. package/dist/utils/telemetry/semconv.js +159 -0
  428. package/dist/utils/telemetry/semconv.js.map +1 -0
  429. package/dist/utils/telemetry/trace.d.ts +141 -0
  430. package/dist/utils/telemetry/trace.d.ts.map +1 -0
  431. package/dist/utils/telemetry/trace.js +193 -0
  432. package/dist/utils/telemetry/trace.js.map +1 -0
  433. package/dist/utils/types/guards.d.ts +209 -0
  434. package/dist/utils/types/guards.d.ts.map +1 -0
  435. package/dist/utils/types/guards.js +229 -0
  436. package/dist/utils/types/guards.js.map +1 -0
  437. package/dist/utils/types/index.d.ts +6 -0
  438. package/dist/utils/types/index.d.ts.map +1 -0
  439. package/dist/utils/types/index.js +6 -0
  440. package/dist/utils/types/index.js.map +1 -0
  441. package/dist/worker.d.ts +59 -0
  442. package/dist/worker.d.ts.map +1 -0
  443. package/dist/worker.js +216 -0
  444. package/dist/worker.js.map +1 -0
  445. package/package.json +377 -0
  446. package/skills/README.md +38 -0
  447. package/skills/add-export/SKILL.md +49 -0
  448. package/skills/add-prompt/SKILL.md +97 -0
  449. package/skills/add-provider/SKILL.md +53 -0
  450. package/skills/add-resource/SKILL.md +107 -0
  451. package/skills/add-service/SKILL.md +113 -0
  452. package/skills/add-tool/SKILL.md +110 -0
  453. package/skills/api-auth/SKILL.md +173 -0
  454. package/skills/api-config/SKILL.md +68 -0
  455. package/skills/api-context/SKILL.md +321 -0
  456. package/skills/api-errors/SKILL.md +146 -0
  457. package/skills/api-services/SKILL.md +24 -0
  458. package/skills/api-services/references/graph.md +124 -0
  459. package/skills/api-services/references/llm.md +46 -0
  460. package/skills/api-services/references/speech.md +72 -0
  461. package/skills/api-testing/SKILL.md +263 -0
  462. package/skills/api-utils/SKILL.md +106 -0
  463. package/skills/api-utils/references/formatting.md +237 -0
  464. package/skills/api-utils/references/parsing.md +263 -0
  465. package/skills/api-utils/references/security.md +226 -0
  466. package/skills/api-workers/SKILL.md +165 -0
  467. package/skills/devcheck/SKILL.md +31 -0
  468. package/skills/maintenance/SKILL.md +52 -0
  469. package/skills/migrate-mcp-ts-template/SKILL.md +131 -0
  470. package/skills/release/SKILL.md +67 -0
  471. package/skills/setup/SKILL.md +89 -0
  472. package/skills/walkthrough-init/SKILL.md +50 -0
  473. package/templates/.env.example +17 -0
  474. package/templates/AGENTS.md +113 -0
  475. package/templates/CLAUDE.md +113 -0
  476. package/templates/_tsconfig.json +33 -0
  477. package/templates/biome.template.json +43 -0
  478. package/templates/package.json +26 -0
  479. package/templates/src/index.ts +16 -0
  480. package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +19 -0
  481. package/templates/src/mcp-server/resources/definitions/echo.resource.ts +30 -0
  482. package/templates/src/mcp-server/tools/definitions/echo.tool.ts +24 -0
  483. package/templates/vitest.config.ts +12 -0
  484. package/tsconfig.base.json +44 -0
  485. package/vitest.config.base.ts +38 -0
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @fileoverview Shared type definitions for the error handler utilities.
3
+ * @module src/utils/internal/error-handler/types
4
+ */
5
+ import type { JsonRpcErrorCode } from '../../../types-global/errors.js';
6
+ /**
7
+ * Arbitrary key-value context attached to an error for logging and tracing.
8
+ *
9
+ * Passed as `options.context` to `ErrorHandler.handleError`. All entries are merged
10
+ * into the structured log record. `requestId` and `timestamp` receive special treatment:
11
+ * if present and valid they are used directly; otherwise they are generated automatically.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const ctx: ErrorContext = {
16
+ * requestId: 'req-abc123',
17
+ * userId: 'usr-456',
18
+ * resource: '/api/users',
19
+ * };
20
+ * ErrorHandler.handleError(err, { operation: 'getUser', context: ctx });
21
+ * ```
22
+ */
23
+ export interface ErrorContext {
24
+ /**
25
+ * A unique identifier for the request or operation during which the error occurred.
26
+ * Used directly in log output if provided; auto-generated via `generateUUID` if absent.
27
+ */
28
+ requestId?: string;
29
+ /**
30
+ * Allows for arbitrary additional context information.
31
+ * Keys are strings, and values can be of any type.
32
+ */
33
+ [key: string]: unknown;
34
+ }
35
+ /**
36
+ * Configuration options for `ErrorHandler.handleError` and `ErrorHandler.tryCatch`.
37
+ *
38
+ * Controls error transformation, log output, and whether the error propagates to the caller.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const opts: ErrorHandlerOptions = {
43
+ * operation: 'fetchArticle',
44
+ * context: { requestId: 'req-123', articleId: 'art-456' },
45
+ * input: { id: 'art-456' },
46
+ * rethrow: true,
47
+ * critical: false,
48
+ * };
49
+ * ErrorHandler.handleError(err, opts);
50
+ * ```
51
+ */
52
+ export interface ErrorHandlerOptions {
53
+ /**
54
+ * The context of the operation that caused the error.
55
+ * This can include `requestId` and other relevant debugging information.
56
+ */
57
+ context?: ErrorContext;
58
+ /**
59
+ * If true, indicates that the error is critical and might require immediate attention
60
+ * or could lead to system instability. This is primarily for logging and alerting.
61
+ * Defaults to `false`.
62
+ */
63
+ critical?: boolean;
64
+ /**
65
+ * A specific `JsonRpcErrorCode` to assign to the error, overriding any
66
+ * automatically determined error code.
67
+ */
68
+ errorCode?: JsonRpcErrorCode;
69
+ /**
70
+ * A custom function to map or transform the original error into a new `Error` instance.
71
+ * If provided, this function is used instead of the default `McpError` creation.
72
+ * @param error - The original error that occurred.
73
+ * @returns The transformed error.
74
+ */
75
+ errorMapper?: (error: unknown) => Error;
76
+ /**
77
+ * If true, stack traces will be included in the logs.
78
+ * Defaults to `true`.
79
+ */
80
+ includeStack?: boolean;
81
+ /**
82
+ * The input data or parameters that were being processed when the error occurred.
83
+ * This input will be sanitized before logging to prevent sensitive data exposure.
84
+ */
85
+ input?: unknown;
86
+ /**
87
+ * A descriptive name of the operation being performed when the error occurred.
88
+ * This helps in identifying the source or nature of the error in logs.
89
+ * Example: "UserLogin", "ProcessPayment", "FetchUserProfile".
90
+ */
91
+ operation: string;
92
+ /**
93
+ * If true, the (potentially transformed) error will be rethrown after handling.
94
+ * Defaults to `false`.
95
+ */
96
+ rethrow?: boolean;
97
+ }
98
+ /**
99
+ * A basic rule that classifies an error by matching its message or name against a pattern.
100
+ *
101
+ * Used as the element type for `COMMON_ERROR_PATTERNS` and `PROVIDER_ERROR_PATTERNS`, and
102
+ * as the base for the higher-level `ErrorMapping<T>` interface (which adds a `factory`).
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * const rule: BaseErrorMapping = {
107
+ * pattern: /not found/i,
108
+ * errorCode: JsonRpcErrorCode.NotFound,
109
+ * };
110
+ * ```
111
+ */
112
+ export interface BaseErrorMapping {
113
+ /**
114
+ * The `JsonRpcErrorCode` to assign if the pattern matches.
115
+ */
116
+ errorCode: JsonRpcErrorCode;
117
+ /**
118
+ * An optional custom message template for the mapped error.
119
+ */
120
+ messageTemplate?: string;
121
+ /**
122
+ * A string or regular expression to match against the error message.
123
+ * If a string is provided, it's used for substring matching (case-insensitive).
124
+ */
125
+ pattern: string | RegExp;
126
+ }
127
+ /**
128
+ * A pattern-based rule used by `ErrorHandler.mapError` to transform errors into a specific type `T`.
129
+ *
130
+ * Extends `BaseErrorMapping` with a `factory` that constructs the target error and an optional
131
+ * `additionalContext` object passed to that factory. Rules are tested in order; the first match wins.
132
+ *
133
+ * @template T The concrete `Error` subtype this mapping produces. Defaults to `Error`.
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * const rule: ErrorMapping<McpError> = {
138
+ * pattern: /connection refused/i,
139
+ * errorCode: JsonRpcErrorCode.ServiceUnavailable,
140
+ * additionalContext: { service: 'database' },
141
+ * factory: (e, ctx) =>
142
+ * new McpError(JsonRpcErrorCode.ServiceUnavailable, getErrorMessage(e), ctx),
143
+ * };
144
+ * ```
145
+ */
146
+ export interface ErrorMapping<T extends Error = Error> extends BaseErrorMapping {
147
+ /**
148
+ * Additional static context to be merged or passed to the `factory` function
149
+ * when this mapping rule is applied.
150
+ */
151
+ additionalContext?: Record<string, unknown>;
152
+ /**
153
+ * A factory function that creates and returns an instance of the mapped error type `T`.
154
+ * @param error - The original error that occurred.
155
+ * @param context - Optional additional context provided in the mapping rule.
156
+ * @returns The newly created error instance.
157
+ */
158
+ factory: (error: unknown, context?: Record<string, unknown>) => T;
159
+ }
160
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/error-handler/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;IAExC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,gBAAgB;IAC7E;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACnE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Shared type definitions for the error handler utilities.
3
+ * @module src/utils/internal/error-handler/types
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/internal/error-handler/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @fileoverview Health snapshot utility to surface observability/runtime readiness.
3
+ * This avoids heavy checks and focuses on quick signals for status endpoints or logs.
4
+ * @module src/utils/internal/health
5
+ */
6
+ /**
7
+ * A point-in-time snapshot of server health signals.
8
+ * Intentionally lightweight — all fields are derived from already-initialized
9
+ * singletons and involve no I/O, so this is safe to call at any time.
10
+ */
11
+ export interface HealthSnapshot {
12
+ /** Core application identity pulled from the active config. */
13
+ app: {
14
+ /** Server name (from `MCP_SERVER_NAME` or `package.json`). */
15
+ name: string;
16
+ /** Server version string (from `MCP_SERVER_VERSION` or `package.json`). */
17
+ version: string;
18
+ /** Deployment environment (e.g. `'development'`, `'production'`). */
19
+ environment: string;
20
+ };
21
+ /** Logger initialization state. */
22
+ logging: {
23
+ /** True when the logger has been fully initialized and is ready to emit records. */
24
+ initialized: boolean;
25
+ };
26
+ /** Runtime environment classification from {@link runtimeCaps}. */
27
+ runtime: {
28
+ /** True when running under Node.js or Bun. */
29
+ isNode: boolean;
30
+ /** True when running inside a Web Worker or Cloudflare Worker. */
31
+ isWorkerLike: boolean;
32
+ /** True when running in a browser main thread. */
33
+ isBrowserLike: boolean;
34
+ };
35
+ /** OpenTelemetry configuration state. */
36
+ telemetry: {
37
+ /** True when OpenTelemetry export is enabled (`OTEL_ENABLED=true`). */
38
+ enabled: boolean;
39
+ /** The OTel diagnostic log level, or `undefined` if not configured. */
40
+ diagLevel: string | undefined;
41
+ };
42
+ }
43
+ /**
44
+ * Returns a lightweight, synchronous health snapshot of the running server.
45
+ *
46
+ * Aggregates app identity, runtime environment flags, logger state, and
47
+ * OpenTelemetry configuration into a single object. Suitable for `/healthz`
48
+ * endpoints, startup log lines, or diagnostic tooling.
49
+ *
50
+ * No I/O is performed — all data comes from already-initialized module singletons.
51
+ *
52
+ * @returns A {@link HealthSnapshot} reflecting current server state.
53
+ * @example
54
+ * ```typescript
55
+ * const health = getHealthSnapshot();
56
+ * logger.info('Server health', health);
57
+ * ```
58
+ */
59
+ export declare function getHealthSnapshot(): HealthSnapshot;
60
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/health.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,GAAG,EAAE;QACH,8DAA8D;QAC9D,IAAI,EAAE,MAAM,CAAC;QACb,2EAA2E;QAC3E,OAAO,EAAE,MAAM,CAAC;QAChB,qEAAqE;QACrE,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,mCAAmC;IACnC,OAAO,EAAE;QACP,oFAAoF;QACpF,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,mEAAmE;IACnE,OAAO,EAAE;QACP,8CAA8C;QAC9C,MAAM,EAAE,OAAO,CAAC;QAChB,kEAAkE;QAClE,YAAY,EAAE,OAAO,CAAC;QACtB,kDAAkD;QAClD,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,yCAAyC;IACzC,SAAS,EAAE;QACT,uEAAuE;QACvE,OAAO,EAAE,OAAO,CAAC;QACjB,uEAAuE;QACvE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;KAC/B,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAoBlD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @fileoverview Health snapshot utility to surface observability/runtime readiness.
3
+ * This avoids heavy checks and focuses on quick signals for status endpoints or logs.
4
+ * @module src/utils/internal/health
5
+ */
6
+ import { config } from '../../config/index.js';
7
+ import { logger } from '../../utils/internal/logger.js';
8
+ import { runtimeCaps } from '../../utils/internal/runtime.js';
9
+ /**
10
+ * Returns a lightweight, synchronous health snapshot of the running server.
11
+ *
12
+ * Aggregates app identity, runtime environment flags, logger state, and
13
+ * OpenTelemetry configuration into a single object. Suitable for `/healthz`
14
+ * endpoints, startup log lines, or diagnostic tooling.
15
+ *
16
+ * No I/O is performed — all data comes from already-initialized module singletons.
17
+ *
18
+ * @returns A {@link HealthSnapshot} reflecting current server state.
19
+ * @example
20
+ * ```typescript
21
+ * const health = getHealthSnapshot();
22
+ * logger.info('Server health', health);
23
+ * ```
24
+ */
25
+ export function getHealthSnapshot() {
26
+ return {
27
+ app: {
28
+ name: config.mcpServerName,
29
+ version: config.mcpServerVersion,
30
+ environment: config.environment,
31
+ },
32
+ runtime: {
33
+ isNode: runtimeCaps.isNode,
34
+ isWorkerLike: runtimeCaps.isWorkerLike,
35
+ isBrowserLike: runtimeCaps.isBrowserLike,
36
+ },
37
+ telemetry: {
38
+ enabled: Boolean(config.openTelemetry.enabled),
39
+ diagLevel: config.openTelemetry.logLevel,
40
+ },
41
+ logging: {
42
+ initialized: logger.isInitialized(),
43
+ },
44
+ };
45
+ }
46
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/utils/internal/health.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAwC1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,GAAG,EAAE;YACH,IAAI,EAAE,MAAM,CAAC,aAAa;YAC1B,OAAO,EAAE,MAAM,CAAC,gBAAgB;YAChC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;QACD,OAAO,EAAE;YACP,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,aAAa,EAAE,WAAW,CAAC,aAAa;SACzC;QACD,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAC9C,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ;SACzC;QACD,OAAO,EAAE;YACP,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE;SACpC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,300 @@
1
+ import { type RequestContext } from '../../utils/internal/requestContext.js';
2
+ /**
3
+ * RFC 5424 severity levels supported by the MCP logger, ordered from least to most severe.
4
+ * These map internally to Pino levels for transport compatibility:
5
+ * - `debug` → pino `debug`
6
+ * - `info` / `notice` → pino `info`
7
+ * - `warning` → pino `warn`
8
+ * - `error` / `crit` → pino `error`
9
+ * - `alert` / `emerg` → pino `fatal`
10
+ */
11
+ export type McpLogLevel = 'debug' | 'info' | 'notice' | 'warning' | 'error' | 'crit' | 'alert' | 'emerg';
12
+ /**
13
+ * Singleton structured logger backed by Pino with RFC 5424 level semantics.
14
+ *
15
+ * Features:
16
+ * - Environment-adaptive output: pretty-printed (pino-pretty) in HTTP development mode,
17
+ * JSON to stderr in stdio/production mode (MCP spec requires clean stdout).
18
+ * - Optional file sinks: `combined.log` at the configured log level, `error.log` for
19
+ * errors and above, and `interactions.log` for structured interaction records.
20
+ * - Sensitive field redaction via Pino's `redact` option.
21
+ * - Per-message rate limiting to suppress log storms; suppressed counts are flushed
22
+ * at the end of each rate-limit window.
23
+ * - OpenTelemetry trace context is auto-injected via {@link RequestContext} fields.
24
+ * - Serverless-safe: when `IS_SERVERLESS=true` or `process` is unavailable, falls
25
+ * back to minimal Pino config without file transports or Node.js APIs.
26
+ *
27
+ * Obtain the singleton via {@link logger} or `Logger.getInstance()`.
28
+ */
29
+ export declare class Logger {
30
+ private static readonly instance;
31
+ private pinoLogger?;
32
+ private interactionLogger?;
33
+ private initialized;
34
+ private currentMcpLevel;
35
+ private transportType;
36
+ private rateLimitThreshold;
37
+ private rateLimitWindow;
38
+ private messageCounts;
39
+ private suppressedMessages;
40
+ private cleanupTimer?;
41
+ private constructor();
42
+ /**
43
+ * Returns the singleton `Logger` instance.
44
+ *
45
+ * Prefer importing the pre-resolved {@link logger} export rather than calling this directly.
46
+ *
47
+ * @returns The singleton `Logger` instance.
48
+ * @example
49
+ * ```ts
50
+ * import { Logger } from '../../utils/internal/logger.js';
51
+ * const log = Logger.getInstance();
52
+ * ```
53
+ */
54
+ static getInstance(): Logger;
55
+ private createPinoLogger;
56
+ private createInteractionLogger;
57
+ /**
58
+ * Initializes the logger, constructing Pino transports appropriate for the environment.
59
+ *
60
+ * Must be called once at server startup before any log methods are used. Subsequent calls
61
+ * are no-ops (a warning is emitted instead). After initialization, a startup `info` entry
62
+ * is written confirming the active level.
63
+ *
64
+ * @param level - MCP log level to apply. Defaults to `'info'`.
65
+ * @param transportType - Active transport (`'stdio'` or `'http'`). Determines whether
66
+ * colored pretty-print output is enabled. In `'stdio'` mode, logs are always written
67
+ * to stderr (fd 2) to preserve stdout for MCP JSON-RPC.
68
+ * @returns Promise that resolves when Pino transports and file sinks are ready.
69
+ * @example
70
+ * ```ts
71
+ * await logger.initialize('debug', 'http');
72
+ * ```
73
+ */
74
+ initialize(level?: McpLogLevel, transportType?: 'stdio' | 'http'): Promise<void>;
75
+ /**
76
+ * Changes the active log level at runtime without restarting transports.
77
+ *
78
+ * Has no effect if the logger has not been initialized; a console error is emitted
79
+ * to stderr when running in a TTY. After the level is updated, an `info` entry is
80
+ * written to confirm the change.
81
+ *
82
+ * @param newLevel - The new MCP log level to apply.
83
+ * @example
84
+ * ```ts
85
+ * logger.setLevel('debug');
86
+ * ```
87
+ */
88
+ setLevel(newLevel: McpLogLevel): void;
89
+ /**
90
+ * Implements the `AsyncDisposable` protocol (`await using logger`).
91
+ *
92
+ * Delegates to {@link close}. Allows the logger to be used with `await using` in
93
+ * TypeScript 5.2+ explicit resource management contexts.
94
+ *
95
+ * @returns Promise that resolves when all transports have been flushed and closed.
96
+ */
97
+ [Symbol.asyncDispose](): Promise<void>;
98
+ /**
99
+ * Flushes all pending log entries and shuts down transports gracefully.
100
+ *
101
+ * Clears the rate-limit cleanup timer, flushes any suppressed message counts,
102
+ * and waits for both the main Pino logger and the interaction logger to drain
103
+ * before resolving. Safe to call multiple times — subsequent calls on an
104
+ * already-closed logger resolve immediately.
105
+ *
106
+ * @returns Promise that resolves when all writes have completed.
107
+ * @example
108
+ * ```ts
109
+ * process.on('SIGTERM', () => logger.close());
110
+ * ```
111
+ */
112
+ close(): Promise<void>;
113
+ /**
114
+ * Returns whether the logger has been successfully initialized.
115
+ *
116
+ * Use this to guard code that should only run after {@link initialize} has resolved,
117
+ * or to skip logging in contexts where initialization may not have occurred.
118
+ *
119
+ * @returns `true` if {@link initialize} has completed and {@link close} has not yet been called.
120
+ * @example
121
+ * ```ts
122
+ * if (logger.isInitialized()) {
123
+ * logger.info('Server ready', ctx);
124
+ * }
125
+ * ```
126
+ */
127
+ isInitialized(): boolean;
128
+ private isRateLimited;
129
+ private flushSuppressedMessages;
130
+ private log;
131
+ private logWithError;
132
+ /**
133
+ * Logs a diagnostic message at `debug` severity (RFC 5424 level 7).
134
+ *
135
+ * Suppressed unless the active log level is `'debug'`. Use for verbose tracing,
136
+ * internal state dumps, and low-level request/response details.
137
+ *
138
+ * @param msg - Human-readable log message.
139
+ * @param context - Optional request context providing `requestId`, `traceId`, and related fields.
140
+ * @example
141
+ * ```ts
142
+ * logger.debug('Cache miss', ctx);
143
+ * ```
144
+ */
145
+ debug(msg: string, context?: RequestContext): void;
146
+ /**
147
+ * Logs an informational message at `info` severity (RFC 5424 level 6).
148
+ *
149
+ * Use for normal operational events: server startup, request completions, configuration loaded.
150
+ *
151
+ * @param msg - Human-readable log message.
152
+ * @param context - Optional request context.
153
+ * @example
154
+ * ```ts
155
+ * logger.info('Server listening on :3000', ctx);
156
+ * ```
157
+ */
158
+ info(msg: string, context?: RequestContext): void;
159
+ /**
160
+ * Logs a notice-level message at `notice` severity (RFC 5424 level 5).
161
+ *
162
+ * Use for significant but non-error conditions: configuration changes, deprecation notices,
163
+ * expected state transitions worth tracking. Maps to pino `info` level internally.
164
+ *
165
+ * @param msg - Human-readable log message.
166
+ * @param context - Optional request context.
167
+ * @example
168
+ * ```ts
169
+ * logger.notice('Feature flag toggled', ctx);
170
+ * ```
171
+ */
172
+ notice(msg: string, context?: RequestContext): void;
173
+ /**
174
+ * Logs a warning message at `warning` severity (RFC 5424 level 4).
175
+ *
176
+ * Use for recoverable abnormal conditions: deprecated API usage, retried operations,
177
+ * non-fatal misconfigurations. Maps to pino `warn` level internally.
178
+ *
179
+ * @param msg - Human-readable log message.
180
+ * @param context - Optional request context.
181
+ * @example
182
+ * ```ts
183
+ * logger.warning('Rate limit approaching', ctx);
184
+ * ```
185
+ */
186
+ warning(msg: string, context?: RequestContext): void;
187
+ /**
188
+ * Logs an error-level message at `error` severity (RFC 5424 level 3).
189
+ *
190
+ * Use when an operation fails but the server can continue. The `errorOrContext`
191
+ * parameter accepts either an `Error` (serialized via `pino.stdSerializers.err`) or a
192
+ * `RequestContext` when no error object is available. Maps to pino `error` level.
193
+ *
194
+ * @param msg - Human-readable description of the failure.
195
+ * @param errorOrContext - The `Error` to serialize, or a `RequestContext` if no error object exists.
196
+ * @param context - Request context; required when `errorOrContext` is an `Error`.
197
+ * @example
198
+ * ```ts
199
+ * logger.error('Failed to fetch resource', err, ctx);
200
+ * logger.error('Invalid state encountered', ctx);
201
+ * ```
202
+ */
203
+ error(msg: string, errorOrContext: Error | RequestContext, context?: RequestContext): void;
204
+ /**
205
+ * Logs a critical error at `crit` severity (RFC 5424 level 2).
206
+ *
207
+ * Use for serious failures that impair a subsystem but do not crash the process —
208
+ * for example, a storage provider going offline. Maps to pino `error` level.
209
+ *
210
+ * @param msg - Human-readable description of the critical condition.
211
+ * @param errorOrContext - The `Error` to serialize, or a `RequestContext` if no error object exists.
212
+ * @param context - Request context; required when `errorOrContext` is an `Error`.
213
+ * @example
214
+ * ```ts
215
+ * logger.crit('Database connection pool exhausted', err, ctx);
216
+ * ```
217
+ */
218
+ crit(msg: string, errorOrContext: Error | RequestContext, context?: RequestContext): void;
219
+ /**
220
+ * Logs an alert-level message at `alert` severity (RFC 5424 level 1).
221
+ *
222
+ * Use when immediate human intervention is required — for example, a security breach
223
+ * detected or critical data loss imminent. Maps to pino `fatal` level.
224
+ *
225
+ * @param msg - Human-readable description of the alert condition.
226
+ * @param errorOrContext - The `Error` to serialize, or a `RequestContext` if no error object exists.
227
+ * @param context - Request context; required when `errorOrContext` is an `Error`.
228
+ * @example
229
+ * ```ts
230
+ * logger.alert('Unauthorized admin access detected', err, ctx);
231
+ * ```
232
+ */
233
+ alert(msg: string, errorOrContext: Error | RequestContext, context?: RequestContext): void;
234
+ /**
235
+ * Logs an emergency-level message at `emerg` severity (RFC 5424 level 0).
236
+ *
237
+ * Use for conditions that render the system completely unusable — process about to exit,
238
+ * unrecoverable internal state. Maps to pino `fatal` level.
239
+ *
240
+ * @param msg - Human-readable description of the emergency.
241
+ * @param errorOrContext - The `Error` to serialize, or a `RequestContext` if no error object exists.
242
+ * @param context - Request context; required when `errorOrContext` is an `Error`.
243
+ * @example
244
+ * ```ts
245
+ * logger.emerg('Unrecoverable state — shutting down', err, ctx);
246
+ * ```
247
+ */
248
+ emerg(msg: string, errorOrContext: Error | RequestContext, context?: RequestContext): void;
249
+ /**
250
+ * Alias for {@link emerg}. Provided for callers familiar with the pino/winston `fatal` level.
251
+ *
252
+ * Maps to RFC 5424 `emerg` (level 0) and pino `fatal` internally.
253
+ *
254
+ * @param msg - Human-readable description of the fatal condition.
255
+ * @param errorOrContext - The `Error` to serialize, or a `RequestContext` if no error object exists.
256
+ * @param context - Request context; required when `errorOrContext` is an `Error`.
257
+ * @example
258
+ * ```ts
259
+ * logger.fatal('Process terminating due to unhandled exception', err, ctx);
260
+ * ```
261
+ */
262
+ fatal(msg: string, errorOrContext: Error | RequestContext, context?: RequestContext): void;
263
+ /**
264
+ * Writes a structured interaction record to the dedicated `interactions.log` file sink.
265
+ *
266
+ * Interaction logs capture high-level semantic events (tool invocations, resource reads,
267
+ * prompt renders) as structured JSON, separate from the main operational log stream.
268
+ * This sink is only available when `config.logsPath` is set and the runtime is not serverless;
269
+ * a `warning` is emitted if the logger is called before the sink is ready.
270
+ *
271
+ * @param interactionName - Identifier for the interaction type (e.g., `'tool:my_tool'`).
272
+ * @param data - Arbitrary structured data to include alongside `interactionName` in the log record.
273
+ * @example
274
+ * ```ts
275
+ * logger.logInteraction('tool:echo_message', { requestId: ctx.requestId, input });
276
+ * ```
277
+ */
278
+ logInteraction(interactionName: string, data: Record<string, unknown>): void;
279
+ }
280
+ /**
281
+ * Pre-resolved singleton logger instance. Import this directly rather than calling
282
+ * `Logger.getInstance()` in most contexts.
283
+ *
284
+ * Must be initialized once at startup via `logger.initialize()` before any log methods
285
+ * will produce output. Log calls made before initialization are silently dropped.
286
+ *
287
+ * @example
288
+ * ```ts
289
+ * import { logger } from '../../utils/internal/logger.js';
290
+ *
291
+ * // At startup:
292
+ * await logger.initialize('debug', 'http');
293
+ *
294
+ * // In application code:
295
+ * logger.info('Request received', ctx);
296
+ * logger.error('Upstream failure', err, ctx);
297
+ * ```
298
+ */
299
+ export declare const logger: Logger;
300
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/logger.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAEhG;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAyCZ;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACxD,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAAyB;IACnD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAA+B;IAEpD,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC,OAAO;IAIP;;;;;;;;;;;OAWG;WACW,WAAW,IAAI,MAAM;YAIrB,gBAAgB;YAmGhB,uBAAuB;IAmBrC;;;;;;;;;;;;;;;;OAgBG;IACU,UAAU,CACrB,KAAK,GAAE,WAAoB,EAC3B,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAC/B,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;;;;;;OAYG;IACI,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAkB5C;;;;;;;OAOG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;;;;;;OAaG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCnC;;;;;;;;;;;;;OAaG;IACI,aAAa,IAAI,OAAO;IAI/B,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,GAAG;IAyBX,OAAO,CAAC,YAAY;IAWpB;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIzD;;;;;;;;;;;OAWG;IACI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIxD;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAI1D;;;;;;;;;;;;OAYG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAI3D;;;;;;;;;;;;;;;OAeG;IACI,KAAK,CACV,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,KAAK,GAAG,cAAc,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;IAIP;;;;;;;;;;;;;OAaG;IACI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAIhG;;;;;;;;;;;;;OAaG;IACI,KAAK,CACV,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,KAAK,GAAG,cAAc,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;IAIP;;;;;;;;;;;;;OAaG;IACI,KAAK,CACV,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,KAAK,GAAG,cAAc,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;IAIP;;;;;;;;;;;;OAYG;IACI,KAAK,CACV,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,KAAK,GAAG,cAAc,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI;IAIP;;;;;;;;;;;;;;OAcG;IACI,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAQpF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,QAAuB,CAAC"}