@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,144 @@
1
+ /**
2
+ * @fileoverview Unified Context interface for tool and resource handlers.
3
+ * Replaces the split `appContext` (RequestContext) + `sdkContext` (RequestHandlerExtra)
4
+ * pattern with a single object that provides logging, storage, protocol capabilities,
5
+ * and cancellation.
6
+ * @module src/context
7
+ */
8
+ import { JsonRpcErrorCode, McpError } from './types-global/errors.js';
9
+ /**
10
+ * Constructs a Context from internal dependencies.
11
+ * Called by handler factories — not exposed to consumers.
12
+ * @internal
13
+ */
14
+ export function createContext(deps) {
15
+ const { appContext, logger: pinoLogger, storage, signal } = deps;
16
+ // Default tenantId to 'default' when not set (stdio mode, no auth).
17
+ // This allows ctx.state to work without requiring JWT auth.
18
+ const effectiveContext = appContext.tenantId
19
+ ? appContext
20
+ : { ...appContext, tenantId: 'default' };
21
+ const log = createContextLogger(pinoLogger, effectiveContext);
22
+ const state = createContextState(storage, effectiveContext);
23
+ const progress = deps.taskCtx
24
+ ? createContextProgress(deps.taskCtx.store, deps.taskCtx.taskId)
25
+ : undefined;
26
+ return {
27
+ requestId: effectiveContext.requestId,
28
+ timestamp: effectiveContext.timestamp,
29
+ log,
30
+ state,
31
+ signal,
32
+ tenantId: effectiveContext.tenantId,
33
+ traceId: appContext.traceId,
34
+ spanId: appContext.spanId,
35
+ auth: appContext.auth,
36
+ elicit: deps.elicit,
37
+ sample: deps.sample,
38
+ progress,
39
+ uri: deps.uri,
40
+ };
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // ContextLogger implementation
44
+ // ---------------------------------------------------------------------------
45
+ function createContextLogger(appLogger, appContext) {
46
+ // Build a RequestContext enriched with extra data for each log call.
47
+ // Our Logger accepts (msg, RequestContext?) — the extra data fields are
48
+ // spread into the context's index signature.
49
+ const enriched = (data) => data ? { ...appContext, ...data } : appContext;
50
+ return {
51
+ debug(msg, data) {
52
+ appLogger.debug(msg, enriched(data));
53
+ },
54
+ info(msg, data) {
55
+ appLogger.info(msg, enriched(data));
56
+ },
57
+ notice(msg, data) {
58
+ appLogger.notice(msg, enriched(data));
59
+ },
60
+ warning(msg, data) {
61
+ appLogger.warning(msg, enriched(data));
62
+ },
63
+ error(msg, error, data) {
64
+ if (error) {
65
+ appLogger.error(msg, error, enriched(data));
66
+ }
67
+ else {
68
+ appLogger.error(msg, enriched(data));
69
+ }
70
+ },
71
+ };
72
+ }
73
+ // ---------------------------------------------------------------------------
74
+ // ContextState implementation
75
+ // ---------------------------------------------------------------------------
76
+ function createContextState(storage, appContext) {
77
+ const requireContext = () => {
78
+ if (!appContext.tenantId) {
79
+ throw new McpError(JsonRpcErrorCode.InvalidRequest, 'tenantId required for state operations. HTTP requests must include a JWT with a "tid" claim. Stdio mode should default tenantId to "default" via createApp().');
80
+ }
81
+ return appContext;
82
+ };
83
+ return {
84
+ async get(key) {
85
+ const result = await storage.get(key, requireContext());
86
+ return result ?? null;
87
+ },
88
+ async set(key, value, opts) {
89
+ await storage.set(key, value, requireContext(), opts?.ttl ? { ttl: opts.ttl } : undefined);
90
+ },
91
+ async delete(key) {
92
+ await storage.delete(key, requireContext());
93
+ },
94
+ async list(prefix, opts) {
95
+ const ctx = requireContext();
96
+ const result = await storage.list(prefix ?? '', ctx, {
97
+ ...(opts?.cursor ? { cursor: opts.cursor } : {}),
98
+ ...(opts?.limit !== undefined ? { limit: opts.limit } : {}),
99
+ });
100
+ // StorageService.list() returns keys only. Fetch values via getMany.
101
+ const keys = result.keys;
102
+ const items = [];
103
+ if (keys.length > 0) {
104
+ const values = await storage.getMany(keys, ctx);
105
+ for (const key of keys) {
106
+ const value = values.get(key);
107
+ if (value !== undefined) {
108
+ items.push({
109
+ key,
110
+ value: typeof value === 'string' ? value : JSON.stringify(value),
111
+ });
112
+ }
113
+ }
114
+ }
115
+ return {
116
+ items,
117
+ ...(result.nextCursor ? { cursor: result.nextCursor } : {}),
118
+ };
119
+ },
120
+ };
121
+ }
122
+ // ---------------------------------------------------------------------------
123
+ // ContextProgress implementation
124
+ // ---------------------------------------------------------------------------
125
+ function createContextProgress(store, taskId) {
126
+ let total = 0;
127
+ let completed = 0;
128
+ return {
129
+ setTotal(n) {
130
+ total = n;
131
+ completed = 0;
132
+ return Promise.resolve();
133
+ },
134
+ async increment(amount = 1) {
135
+ completed = Math.min(completed + amount, total || completed + amount);
136
+ const percentage = total > 0 ? Math.round((completed / total) * 100) : undefined;
137
+ await store.updateTaskStatus(taskId, 'working', percentage !== undefined ? `${percentage}% complete` : undefined);
138
+ },
139
+ async update(message) {
140
+ await store.updateTaskStatus(taskId, 'working', message);
141
+ },
142
+ };
143
+ }
144
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @fileoverview Core library entry point. Starts an empty server for development
4
+ * and build verification. Consumer servers provide their own definitions.
5
+ * @module src/index
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @fileoverview Core library entry point. Starts an empty server for development
4
+ * and build verification. Consumer servers provide their own definitions.
5
+ * @module src/index
6
+ */
7
+ import { createApp } from './app.js';
8
+ await createApp();
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,SAAS,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @fileoverview Service for registering MCP prompts on a server instance.
3
+ * Supports legacy PromptDefinition and new-style NewPromptDefinition.
4
+ *
5
+ * MCP Prompts Specification:
6
+ * @see {@link https://modelcontextprotocol.io/specification/2025-06-18/basic/prompts | MCP Prompts}
7
+ * @module src/mcp-server/prompts/prompt-registration
8
+ */
9
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
10
+ import type { ZodObject, ZodRawShape } from 'zod';
11
+ import { type NewPromptDefinition } from '../../mcp-server/prompts/utils/newPromptDefinition.js';
12
+ import type { PromptDefinition } from '../../mcp-server/prompts/utils/promptDefinition.js';
13
+ import type { logger as defaultLogger } from '../../utils/internal/logger.js';
14
+ /** Union of all accepted prompt definition shapes. */
15
+ export type AnyPromptDef = PromptDefinition<ZodObject<ZodRawShape> | undefined> | NewPromptDefinition<ZodObject<ZodRawShape> | undefined>;
16
+ export declare class PromptRegistry {
17
+ private promptDefs;
18
+ private logger;
19
+ constructor(promptDefs: AnyPromptDef[], logger: typeof defaultLogger);
20
+ /**
21
+ * Registers all prompts on the given MCP server.
22
+ */
23
+ registerAll(server: McpServer): Promise<void>;
24
+ /**
25
+ * Registers a new-style prompt definition (with `args` instead of `argumentsSchema`).
26
+ */
27
+ private registerNewPrompt;
28
+ /**
29
+ * Registers a legacy prompt definition (with `argumentsSchema`).
30
+ */
31
+ private registerLegacyPrompt;
32
+ }
33
+ //# sourceMappingURL=prompt-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-registration.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/prompts/prompt-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAElD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAGvF,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG1E,sDAAsD;AACtD,MAAM,MAAM,YAAY,GACpB,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,GACpD,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;AAE5D,qBAAa,cAAc;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;gBADN,UAAU,EAAE,YAAY,EAAE,EAC1B,MAAM,EAAE,OAAO,aAAa;IAGtC;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD;;OAEG;YACW,iBAAiB;IAqC/B;;OAEG;YACW,oBAAoB;CAsCnC"}
@@ -0,0 +1,91 @@
1
+ import { isNewPromptDefinition, } from '../../mcp-server/prompts/utils/newPromptDefinition.js';
2
+ import { JsonRpcErrorCode } from '../../types-global/errors.js';
3
+ import { ErrorHandler } from '../../utils/internal/error-handler/errorHandler.js';
4
+ import { requestContextService } from '../../utils/internal/requestContext.js';
5
+ export class PromptRegistry {
6
+ promptDefs;
7
+ logger;
8
+ constructor(promptDefs, logger) {
9
+ this.promptDefs = promptDefs;
10
+ this.logger = logger;
11
+ }
12
+ /**
13
+ * Registers all prompts on the given MCP server.
14
+ */
15
+ async registerAll(server) {
16
+ const context = requestContextService.createRequestContext({
17
+ operation: 'PromptRegistry.registerAll',
18
+ });
19
+ const newPrompts = [];
20
+ const legacyPrompts = [];
21
+ for (const def of this.promptDefs) {
22
+ if (isNewPromptDefinition(def)) {
23
+ newPrompts.push(def);
24
+ }
25
+ else {
26
+ legacyPrompts.push(def);
27
+ }
28
+ }
29
+ this.logger.debug(`Registering ${newPrompts.length + legacyPrompts.length} prompt(s) (${newPrompts.length} new-style, ${legacyPrompts.length} legacy)...`, context);
30
+ // Register new-style prompts
31
+ for (const promptDef of newPrompts) {
32
+ await this.registerNewPrompt(server, promptDef, context);
33
+ }
34
+ // Register legacy prompts
35
+ for (const promptDef of legacyPrompts) {
36
+ await this.registerLegacyPrompt(server, promptDef, context);
37
+ }
38
+ this.logger.info(`Successfully registered ${newPrompts.length + legacyPrompts.length} prompts`, context);
39
+ }
40
+ /**
41
+ * Registers a new-style prompt definition (with `args` instead of `argumentsSchema`).
42
+ */
43
+ async registerNewPrompt(server, promptDef, context) {
44
+ this.logger.debug(`Registering prompt (new-style): ${promptDef.name}`, context);
45
+ await ErrorHandler.tryCatch(() => {
46
+ server.registerPrompt(promptDef.name, {
47
+ description: promptDef.description,
48
+ ...(promptDef.args && {
49
+ argsSchema: promptDef.args.shape,
50
+ }),
51
+ }, async (args) => {
52
+ const validatedArgs = promptDef.args ? promptDef.args.parse(args) : args;
53
+ const messages = await promptDef.generate(validatedArgs);
54
+ return { messages };
55
+ });
56
+ this.logger.info(`Registered prompt: ${promptDef.name}`, context);
57
+ }, {
58
+ operation: `RegisteringPrompt_${promptDef.name}`,
59
+ context,
60
+ errorCode: JsonRpcErrorCode.InitializationFailed,
61
+ critical: true,
62
+ });
63
+ }
64
+ /**
65
+ * Registers a legacy prompt definition (with `argumentsSchema`).
66
+ */
67
+ async registerLegacyPrompt(server, promptDef, context) {
68
+ this.logger.debug(`Registering prompt: ${promptDef.name}`, context);
69
+ await ErrorHandler.tryCatch(() => {
70
+ server.registerPrompt(promptDef.name, {
71
+ description: promptDef.description,
72
+ ...(promptDef.argumentsSchema && {
73
+ argsSchema: promptDef.argumentsSchema.shape,
74
+ }),
75
+ }, async (args) => {
76
+ const validatedArgs = promptDef.argumentsSchema
77
+ ? promptDef.argumentsSchema.parse(args)
78
+ : args;
79
+ const messages = await promptDef.generate(validatedArgs);
80
+ return { messages };
81
+ });
82
+ this.logger.info(`Registered prompt: ${promptDef.name}`, context);
83
+ }, {
84
+ operation: `RegisteringPrompt_${promptDef.name}`,
85
+ context,
86
+ errorCode: JsonRpcErrorCode.InitializationFailed,
87
+ critical: true,
88
+ });
89
+ }
90
+ }
91
+ //# sourceMappingURL=prompt-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-registration.js","sourceRoot":"","sources":["../../../src/mcp-server/prompts/prompt-registration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @fileoverview New-style prompt definition type and `prompt()` builder function.
3
+ * Uses `args` instead of `argumentsSchema`.
4
+ * @module src/mcp-server/prompts/utils/newPromptDefinition
5
+ */
6
+ import type { PromptMessage } from '@modelcontextprotocol/sdk/types.js';
7
+ import type { ZodObject, ZodRawShape, z } from 'zod';
8
+ /**
9
+ * New-style prompt definition with simplified field names.
10
+ * Prompts are pure message templates — no Context, no auth, no side effects.
11
+ */
12
+ export interface NewPromptDefinition<TArgs extends ZodObject<ZodRawShape> | undefined = undefined> {
13
+ /**
14
+ * Optional Zod schema for prompt arguments. All fields need `.describe()`.
15
+ * If undefined, the prompt accepts no arguments.
16
+ */
17
+ args?: TArgs;
18
+ /** LLM-facing description. */
19
+ description: string;
20
+ /**
21
+ * Generates the prompt messages from validated arguments.
22
+ */
23
+ generate: (args: TArgs extends ZodObject<ZodRawShape> ? z.infer<TArgs> : Record<string, never>) => PromptMessage[] | Promise<PromptMessage[]>;
24
+ /** Programmatic unique name (snake_case). */
25
+ name: string;
26
+ }
27
+ /**
28
+ * Type guard: is this a new-style prompt definition?
29
+ */
30
+ export declare function isNewPromptDefinition(def: unknown): def is NewPromptDefinition;
31
+ /**
32
+ * Creates a new-style prompt definition.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const codeReview = prompt('code_review', {
37
+ * description: 'Review code for security and best practices.',
38
+ * args: z.object({
39
+ * code: z.string().describe('Code to review'),
40
+ * language: z.string().optional().describe('Programming language'),
41
+ * }),
42
+ * generate: (args) => [
43
+ * { role: 'user', content: { type: 'text', text: `Review: ${args.code}` } },
44
+ * ],
45
+ * });
46
+ * ```
47
+ */
48
+ export declare function prompt<TArgs extends ZodObject<ZodRawShape> | undefined = undefined>(name: string, options: Omit<NewPromptDefinition<TArgs>, 'name'>): NewPromptDefinition<TArgs>;
49
+ //# sourceMappingURL=newPromptDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newPromptDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/utils/newPromptDefinition.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,KAAK,SAAS,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,SAAS;IAC/F;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,KAAK,SAAS,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAChF,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAChD,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,mBAAmB,CAQ9E;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,KAAK,SAAS,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,SAAS,EACjF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAChD,mBAAmB,CAAC,KAAK,CAAC,CAE5B"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview New-style prompt definition type and `prompt()` builder function.
3
+ * Uses `args` instead of `argumentsSchema`.
4
+ * @module src/mcp-server/prompts/utils/newPromptDefinition
5
+ */
6
+ /**
7
+ * Type guard: is this a new-style prompt definition?
8
+ */
9
+ export function isNewPromptDefinition(def) {
10
+ return (def !== null &&
11
+ typeof def === 'object' &&
12
+ 'generate' in def &&
13
+ typeof def.generate === 'function' &&
14
+ !('argumentsSchema' in def));
15
+ }
16
+ // ---------------------------------------------------------------------------
17
+ // Builder
18
+ // ---------------------------------------------------------------------------
19
+ /**
20
+ * Creates a new-style prompt definition.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const codeReview = prompt('code_review', {
25
+ * description: 'Review code for security and best practices.',
26
+ * args: z.object({
27
+ * code: z.string().describe('Code to review'),
28
+ * language: z.string().optional().describe('Programming language'),
29
+ * }),
30
+ * generate: (args) => [
31
+ * { role: 'user', content: { type: 'text', text: `Review: ${args.code}` } },
32
+ * ],
33
+ * });
34
+ * ```
35
+ */
36
+ export function prompt(name, options) {
37
+ return { name, ...options };
38
+ }
39
+ //# sourceMappingURL=newPromptDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newPromptDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/utils/newPromptDefinition.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2BH;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,UAAU,IAAI,GAAG;QACjB,OAAQ,GAA+B,CAAC,QAAQ,KAAK,UAAU;QAC/D,CAAC,CAAC,iBAAiB,IAAI,GAAG,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,OAAiD;IAEjD,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @fileoverview Defines the standard structure for a declarative prompt definition.
3
+ * Prompts are structured message templates that users can discover and invoke.
4
+ * Unlike tools (which execute code), prompts generate messages for the LLM.
5
+ *
6
+ * MCP Prompts Specification:
7
+ * @see {@link https://modelcontextprotocol.io/specification/2025-06-18/basic/prompts | MCP Prompts}
8
+ * @module src/mcp-server/prompts/utils/promptDefinition
9
+ */
10
+ import type { PromptMessage } from '@modelcontextprotocol/sdk/types.js';
11
+ import type { ZodObject, ZodRawShape, z } from 'zod';
12
+ /**
13
+ * Represents the complete, self-contained definition of an MCP prompt.
14
+ */
15
+ export interface PromptDefinition<TArgumentsSchema extends ZodObject<ZodRawShape> | undefined = undefined> {
16
+ /**
17
+ * Optional Zod schema for validating the prompt's arguments.
18
+ * If undefined, the prompt accepts no arguments.
19
+ */
20
+ argumentsSchema?: TArgumentsSchema;
21
+ /**
22
+ * A clear, concise description of what the prompt does.
23
+ * This helps users understand when to use this prompt.
24
+ */
25
+ description: string;
26
+ /**
27
+ * The function that generates the prompt messages.
28
+ * @param args The validated arguments (if argumentsSchema is defined).
29
+ * @returns An array of PromptMessage objects to be sent to the LLM.
30
+ */
31
+ generate: (args: TArgumentsSchema extends ZodObject<ZodRawShape> ? z.infer<TArgumentsSchema> : Record<string, never>) => PromptMessage[] | Promise<PromptMessage[]>;
32
+ /**
33
+ * The programmatic, unique name for the prompt (e.g., 'code_review').
34
+ */
35
+ name: string;
36
+ }
37
+ //# sourceMappingURL=promptDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/utils/promptDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAC/B,gBAAgB,SAAS,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,SAAS;IAEvE;;;OAGG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAEnC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,gBAAgB,SAAS,SAAS,CAAC,WAAW,CAAC,GACjD,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KACtB,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAChD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=promptDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/utils/promptDefinition.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @fileoverview Encapsulates the registration of all resource definitions with an McpServer.
3
+ * Supports legacy ResourceDefinition and new-style NewResourceDefinition.
4
+ * @module src/mcp-server/resources/resource-registration
5
+ */
6
+ import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import type { ZodObject, ZodRawShape } from 'zod';
8
+ import { type AnyNewResourceDefinition } from '../../mcp-server/resources/utils/newResourceDefinition.js';
9
+ import { type ResourceHandlerFactoryServices } from '../../mcp-server/resources/utils/newResourceHandlerFactory.js';
10
+ import type { ResourceDefinition } from '../../mcp-server/resources/utils/resourceDefinition.js';
11
+ /** Union of all accepted resource definition shapes. */
12
+ export type AnyResourceDef = ResourceDefinition<ZodObject<ZodRawShape>, ZodObject<ZodRawShape> | undefined> | AnyNewResourceDefinition;
13
+ export declare class ResourceRegistry {
14
+ private resourceDefs;
15
+ private services?;
16
+ constructor(resourceDefs: AnyResourceDef[], services?: ResourceHandlerFactoryServices | undefined);
17
+ /**
18
+ * Registers all resolved resource definitions with the provided McpServer instance.
19
+ */
20
+ registerAll(server: McpServer): Promise<void>;
21
+ /**
22
+ * Registers a new-style resource definition (with `handler`, `params`, `auth`, etc.).
23
+ * Requires `services` to have been passed to the constructor for Context creation.
24
+ */
25
+ private registerNewResource;
26
+ }
27
+ //# sourceMappingURL=resource-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-registration.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/resources/resource-registration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAElD,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAO7F,wDAAwD;AACxD,MAAM,MAAM,cAAc,GACtB,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,GAC9E,wBAAwB,CAAC;AAE7B,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC;gBADT,YAAY,EAAE,cAAc,EAAE,EAC9B,QAAQ,CAAC,EAAE,8BAA8B,YAAA;IAGnD;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC1D;;;OAGG;YACW,mBAAmB;CAmDlC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @fileoverview Encapsulates the registration of all resource definitions with an McpServer.
3
+ * Supports legacy ResourceDefinition and new-style NewResourceDefinition.
4
+ * @module src/mcp-server/resources/resource-registration
5
+ */
6
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import { isNewResourceDefinition, } from '../../mcp-server/resources/utils/newResourceDefinition.js';
8
+ import { createNewResourceHandler, } from '../../mcp-server/resources/utils/newResourceHandlerFactory.js';
9
+ import { registerResource } from '../../mcp-server/resources/utils/resourceHandlerFactory.js';
10
+ import { JsonRpcErrorCode } from '../../types-global/errors.js';
11
+ import { ErrorHandler } from '../../utils/internal/error-handler/errorHandler.js';
12
+ import { logger } from '../../utils/internal/logger.js';
13
+ import { requestContextService } from '../../utils/internal/requestContext.js';
14
+ export class ResourceRegistry {
15
+ resourceDefs;
16
+ services;
17
+ constructor(resourceDefs, services) {
18
+ this.resourceDefs = resourceDefs;
19
+ this.services = services;
20
+ }
21
+ /**
22
+ * Registers all resolved resource definitions with the provided McpServer instance.
23
+ */
24
+ async registerAll(server) {
25
+ const context = requestContextService.createRequestContext({
26
+ operation: 'ResourceRegistry.registerAll',
27
+ });
28
+ const newResources = [];
29
+ const legacyResources = [];
30
+ for (const def of this.resourceDefs) {
31
+ if (isNewResourceDefinition(def)) {
32
+ newResources.push(def);
33
+ }
34
+ else {
35
+ legacyResources.push(def);
36
+ }
37
+ }
38
+ logger.info(`Registering ${newResources.length + legacyResources.length} resource(s) (${newResources.length} new-style, ${legacyResources.length} legacy)...`, context);
39
+ // Register new-style resources
40
+ for (const resourceDef of newResources) {
41
+ await this.registerNewResource(server, resourceDef);
42
+ }
43
+ // Register legacy resources
44
+ for (const resourceDef of legacyResources) {
45
+ await registerResource(server, resourceDef);
46
+ }
47
+ }
48
+ /**
49
+ * Registers a new-style resource definition (with `handler`, `params`, `auth`, etc.).
50
+ * Requires `services` to have been passed to the constructor for Context creation.
51
+ */
52
+ async registerNewResource(server, def) {
53
+ const resourceName = def.name ?? def.uriTemplate;
54
+ const registrationContext = requestContextService.createRequestContext({
55
+ operation: 'ResourceRegistry.registerNewResource',
56
+ additionalContext: { resourceName },
57
+ });
58
+ logger.debug(`Registering resource (new-style): '${resourceName}'`, registrationContext);
59
+ await ErrorHandler.tryCatch(() => {
60
+ if (!this.services) {
61
+ throw new Error(`Cannot register new-style resource '${resourceName}': ResourceHandlerFactoryServices not provided to ResourceRegistry`);
62
+ }
63
+ const template = new ResourceTemplate(def.uriTemplate, {
64
+ list: def.list,
65
+ });
66
+ const handler = createNewResourceHandler(def, this.services);
67
+ const title = def.title ?? resourceName;
68
+ const mimeType = def.mimeType ?? 'application/json';
69
+ server.resource(resourceName, template, {
70
+ title,
71
+ description: def.description,
72
+ mimeType,
73
+ ...(def.examples && { examples: def.examples }),
74
+ ...(def.annotations && { annotations: def.annotations }),
75
+ }, handler);
76
+ logger.notice(`Resource '${resourceName}' registered successfully.`, registrationContext);
77
+ }, {
78
+ operation: `RegisteringResource_${resourceName}`,
79
+ context: registrationContext,
80
+ errorCode: JsonRpcErrorCode.InitializationFailed,
81
+ critical: true,
82
+ });
83
+ }
84
+ }
85
+ //# sourceMappingURL=resource-registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-registration.js","sourceRoot":"","sources":["../../../src/mcp-server/resources/resource-registration.ts"],"names":[],"mappings":"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"}