@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
package/package.json ADDED
@@ -0,0 +1,377 @@
1
+ {
2
+ "name": "@cyanheads/mcp-ts-core",
3
+ "version": "0.1.0-beta.12",
4
+ "mcpName": "io.github.cyanheads/mcp-ts-core",
5
+ "description": "TypeScript framework for building Model Context Protocol (MCP) servers. Declarative tool/resource/prompt definitions, pluggable auth, multi-backend storage, OpenTelemetry observability, and support for both local (stdio/HTTP) and edge (Cloudflare Workers) runtimes.",
6
+ "main": "dist/app.js",
7
+ "types": "dist/app.d.ts",
8
+ "files": [
9
+ "dist/",
10
+ "skills/",
11
+ "templates/",
12
+ "CLAUDE.md",
13
+ "tsconfig.base.json",
14
+ "vitest.config.base.ts",
15
+ "biome.json"
16
+ ],
17
+ "bin": {
18
+ "mcp-ts-core": "dist/cli/init.js"
19
+ },
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/app.d.ts",
23
+ "import": "./dist/app.js"
24
+ },
25
+ "./worker": {
26
+ "types": "./dist/worker.d.ts",
27
+ "import": "./dist/worker.js"
28
+ },
29
+ "./tools": {
30
+ "types": "./dist/mcp-server/tools/utils/newToolDefinition.d.ts",
31
+ "import": "./dist/mcp-server/tools/utils/newToolDefinition.js"
32
+ },
33
+ "./resources": {
34
+ "types": "./dist/mcp-server/resources/utils/newResourceDefinition.d.ts",
35
+ "import": "./dist/mcp-server/resources/utils/newResourceDefinition.js"
36
+ },
37
+ "./prompts": {
38
+ "types": "./dist/mcp-server/prompts/utils/newPromptDefinition.d.ts",
39
+ "import": "./dist/mcp-server/prompts/utils/newPromptDefinition.js"
40
+ },
41
+ "./tasks": {
42
+ "types": "./dist/mcp-server/tasks/utils/taskToolDefinition.d.ts",
43
+ "import": "./dist/mcp-server/tasks/utils/taskToolDefinition.js"
44
+ },
45
+ "./context": {
46
+ "types": "./dist/context.d.ts",
47
+ "import": "./dist/context.js"
48
+ },
49
+ "./errors": {
50
+ "types": "./dist/types-global/errors.d.ts",
51
+ "import": "./dist/types-global/errors.js"
52
+ },
53
+ "./config": {
54
+ "types": "./dist/config/index.d.ts",
55
+ "import": "./dist/config/index.js"
56
+ },
57
+ "./auth": {
58
+ "types": "./dist/mcp-server/transports/auth/lib/checkScopes.d.ts",
59
+ "import": "./dist/mcp-server/transports/auth/lib/checkScopes.js"
60
+ },
61
+ "./storage": {
62
+ "types": "./dist/storage/core/StorageService.d.ts",
63
+ "import": "./dist/storage/core/StorageService.js"
64
+ },
65
+ "./storage/types": {
66
+ "types": "./dist/storage/core/IStorageProvider.d.ts",
67
+ "import": "./dist/storage/core/IStorageProvider.js"
68
+ },
69
+ "./utils/logger": {
70
+ "types": "./dist/utils/internal/logger.d.ts",
71
+ "import": "./dist/utils/internal/logger.js"
72
+ },
73
+ "./utils/requestContext": {
74
+ "types": "./dist/utils/internal/requestContext.d.ts",
75
+ "import": "./dist/utils/internal/requestContext.js"
76
+ },
77
+ "./utils/errorHandler": {
78
+ "types": "./dist/utils/internal/error-handler/errorHandler.d.ts",
79
+ "import": "./dist/utils/internal/error-handler/errorHandler.js"
80
+ },
81
+ "./utils/formatting": {
82
+ "types": "./dist/utils/formatting/index.d.ts",
83
+ "import": "./dist/utils/formatting/index.js"
84
+ },
85
+ "./utils/parsing": {
86
+ "types": "./dist/utils/parsing/index.d.ts",
87
+ "import": "./dist/utils/parsing/index.js"
88
+ },
89
+ "./utils/security": {
90
+ "types": "./dist/utils/security/index.d.ts",
91
+ "import": "./dist/utils/security/index.js"
92
+ },
93
+ "./utils/network": {
94
+ "types": "./dist/utils/network/fetchWithTimeout.d.ts",
95
+ "import": "./dist/utils/network/fetchWithTimeout.js"
96
+ },
97
+ "./utils/pagination": {
98
+ "types": "./dist/utils/pagination/pagination.d.ts",
99
+ "import": "./dist/utils/pagination/pagination.js"
100
+ },
101
+ "./utils/runtime": {
102
+ "types": "./dist/utils/internal/runtime.d.ts",
103
+ "import": "./dist/utils/internal/runtime.js"
104
+ },
105
+ "./utils/scheduling": {
106
+ "types": "./dist/utils/scheduling/scheduler.d.ts",
107
+ "import": "./dist/utils/scheduling/scheduler.js"
108
+ },
109
+ "./utils/types": {
110
+ "types": "./dist/utils/types/index.d.ts",
111
+ "import": "./dist/utils/types/index.js"
112
+ },
113
+ "./testing": {
114
+ "types": "./dist/testing/index.d.ts",
115
+ "import": "./dist/testing/index.js"
116
+ },
117
+ "./tsconfig.base.json": "./tsconfig.base.json",
118
+ "./vitest.config": "./vitest.config.base.ts",
119
+ "./biome.json": "./biome.json",
120
+ "./package.json": "./package.json"
121
+ },
122
+ "type": "module",
123
+ "sideEffects": false,
124
+ "repository": {
125
+ "type": "git",
126
+ "url": "git+https://github.com/cyanheads/mcp-ts-template.git"
127
+ },
128
+ "bugs": {
129
+ "url": "https://github.com/cyanheads/mcp-ts-template/issues"
130
+ },
131
+ "homepage": "https://github.com/cyanheads/mcp-ts-template#readme",
132
+ "scripts": {
133
+ "build": "bun run scripts/build.ts",
134
+ "deploy:dev": "MCP_TRANSPORT_TYPE=http bunx wrangler dev",
135
+ "deploy:prod": "MCP_TRANSPORT_TYPE=http bunx wrangler deploy",
136
+ "start": "bun ./dist/index.js",
137
+ "start:stdio": "MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js",
138
+ "start:http": "MCP_TRANSPORT_TYPE=http bun ./dist/index.js",
139
+ "dev": "bun --watch src/index.ts",
140
+ "dev:stdio": "MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts",
141
+ "dev:http": "MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http bun --watch src/index.ts",
142
+ "devdocs": "bun run scripts/devdocs.ts",
143
+ "devcheck": "bun run scripts/devcheck.ts",
144
+ "rebuild": "bun run scripts/clean.ts && bun run build",
145
+ "prepublishOnly": "bun run build",
146
+ "docs:generate": "bunx typedoc",
147
+ "depcheck": "bunx depcheck",
148
+ "lint": "biome check",
149
+ "format": "biome check --write --unsafe",
150
+ "typecheck": "bunx tsc --noEmit",
151
+ "typecheck:scripts": "bunx tsc --project tsconfig.scripts.json --noEmit",
152
+ "tree": "bun run scripts/tree.ts",
153
+ "fetch-spec": "bun run scripts/fetch-openapi-spec.ts",
154
+ "prepare": "bunx husky",
155
+ "inspector": "bunx mcp-inspector --config mcp.json --server mcp-ts-core",
156
+ "test": "bunx vitest run",
157
+ "test:all": "bun run test && bun run test:integration",
158
+ "test:integration": "bunx vitest run --config vitest.integration.ts",
159
+ "test:fuzz": "bunx vitest run fuzz",
160
+ "test:report": "bun run scripts/test-report.ts",
161
+ "test:report:open": "bun run scripts/test-report.ts --open",
162
+ "test:ui": "bunx vitest --ui",
163
+ "test:coverage": "bunx vitest run --coverage",
164
+ "coverage:update": "bun run scripts/update-coverage.ts",
165
+ "coverage:commit": "bun run scripts/update-coverage.ts --commit",
166
+ "audit": "bun audit",
167
+ "audit:fix": "bun audit --fix",
168
+ "publish-mcp": "bunx mcp-publisher publish"
169
+ },
170
+ "resolutions": {
171
+ "escape-string-regexp": "4.0.0",
172
+ "@hono/node-server": "1.19.11",
173
+ "@isaacs/brace-expansion": "5.0.1",
174
+ "chrono-node": "2.9.0",
175
+ "diff": "8.0.3",
176
+ "dotenv": "17.3.1",
177
+ "hono": "4.12.7",
178
+ "markdown-it": "14.1.1",
179
+ "qs": "6.15.0",
180
+ "zod": "4.3.6",
181
+ "typescript": "5.9.3",
182
+ "minimatch": "3.1.5",
183
+ "ajv": "8.18.0",
184
+ "lodash": "4.17.23",
185
+ "rollup": "4.59.0"
186
+ },
187
+ "devDependencies": {
188
+ "@biomejs/biome": "2.4.6",
189
+ "@cloudflare/workers-types": "^4.20260312.1",
190
+ "@types/bun": "^1.3.10",
191
+ "@types/diff": "^8.0.0",
192
+ "@types/js-yaml": "^4.0.9",
193
+ "@types/node": "^25.4.0",
194
+ "@types/node-cron": "^3.0.11",
195
+ "@types/papaparse": "^5.5.2",
196
+ "@types/sanitize-html": "^2.16.1",
197
+ "@types/validator": "13.15.10",
198
+ "@vitest/coverage-istanbul": "4.0.18",
199
+ "@vitest/ui": "4.0.18",
200
+ "bun-types": "^1.3.10",
201
+ "clipboardy": "^5.3.1",
202
+ "depcheck": "^1.4.7",
203
+ "execa": "^9.6.1",
204
+ "fast-check": "^4.6.0",
205
+ "husky": "^9.1.7",
206
+ "ignore": "^7.0.5",
207
+ "msw": "^2.12.10",
208
+ "pino-pretty": "^13.1.3",
209
+ "repomix": "^1.12.0",
210
+ "tsc-alias": "^1.8.16",
211
+ "typedoc": "^0.28.17",
212
+ "typescript": "^5.9.3",
213
+ "vite": "7.3.1",
214
+ "vite-tsconfig-paths": "^6.1.1",
215
+ "vitest": "^4.0.18"
216
+ },
217
+ "keywords": [
218
+ "agent",
219
+ "ai",
220
+ "ai-agent",
221
+ "authentication",
222
+ "cloudflare-workers",
223
+ "declarative-tools",
224
+ "core",
225
+ "error-handling",
226
+ "hono",
227
+ "llm-integration",
228
+ "mcp",
229
+ "model-context-protocol",
230
+ "mcp-server",
231
+ "elicitation",
232
+ "observability",
233
+ "opentelemetry",
234
+ "otel",
235
+ "framework",
236
+ "typescript",
237
+ "zod"
238
+ ],
239
+ "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/mcp-ts-template#readme)",
240
+ "license": "Apache-2.0",
241
+ "funding": [
242
+ {
243
+ "type": "github",
244
+ "url": "https://github.com/sponsors/cyanheads"
245
+ },
246
+ {
247
+ "type": "buy_me_a_coffee",
248
+ "url": "https://www.buymeacoffee.com/cyanheads"
249
+ }
250
+ ],
251
+ "packageManager": "bun@1.3.2",
252
+ "engines": {
253
+ "bun": ">=1.2.0",
254
+ "node": ">=22.0.0"
255
+ },
256
+ "depcheck": {
257
+ "ignores": [
258
+ "bun",
259
+ "repomix",
260
+ "tsc-alias",
261
+ "@cyanheads/mcp-ts-core",
262
+ "@modelcontextprotocol/ext-apps"
263
+ ],
264
+ "ignorePatterns": ["examples"]
265
+ },
266
+ "publishConfig": {
267
+ "access": "public"
268
+ },
269
+ "dependencies": {
270
+ "@hono/mcp": "^0.2.4",
271
+ "@hono/node-server": "^1.19.11",
272
+ "@modelcontextprotocol/ext-apps": "^1.2.2",
273
+ "@modelcontextprotocol/sdk": "^1.27.1",
274
+ "@opentelemetry/api": "^1.9.0",
275
+ "dotenv": "^17.3.1",
276
+ "hono": "^4.12.5",
277
+ "jose": "^6.2.1",
278
+ "pino": "^10.3.1"
279
+ },
280
+ "peerDependencies": {
281
+ "zod": "^4.3.6",
282
+ "@hono/otel": "latest",
283
+ "@opentelemetry/auto-instrumentations-node": "latest",
284
+ "@opentelemetry/exporter-metrics-otlp-http": "latest",
285
+ "@opentelemetry/exporter-trace-otlp-http": "latest",
286
+ "@opentelemetry/instrumentation-pino": "latest",
287
+ "@opentelemetry/resources": "latest",
288
+ "@opentelemetry/sdk-metrics": "latest",
289
+ "@opentelemetry/sdk-node": "latest",
290
+ "@opentelemetry/sdk-trace-node": "latest",
291
+ "@opentelemetry/semantic-conventions": "latest",
292
+ "@supabase/supabase-js": "latest",
293
+ "chrono-node": "latest",
294
+ "diff": "^8.0.3",
295
+ "fast-xml-parser": "^5.4.1",
296
+ "js-yaml": "^3.14.2",
297
+ "node-cron": "latest",
298
+ "openai": "latest",
299
+ "papaparse": "latest",
300
+ "partial-json": "latest",
301
+ "pdf-lib": "latest",
302
+ "sanitize-html": "latest",
303
+ "unpdf": "latest",
304
+ "validator": "latest"
305
+ },
306
+ "peerDependenciesMeta": {
307
+ "@hono/otel": {
308
+ "optional": true
309
+ },
310
+ "@opentelemetry/auto-instrumentations-node": {
311
+ "optional": true
312
+ },
313
+ "@opentelemetry/exporter-metrics-otlp-http": {
314
+ "optional": true
315
+ },
316
+ "@opentelemetry/exporter-trace-otlp-http": {
317
+ "optional": true
318
+ },
319
+ "@opentelemetry/instrumentation-pino": {
320
+ "optional": true
321
+ },
322
+ "@opentelemetry/resources": {
323
+ "optional": true
324
+ },
325
+ "@opentelemetry/sdk-metrics": {
326
+ "optional": true
327
+ },
328
+ "@opentelemetry/sdk-node": {
329
+ "optional": true
330
+ },
331
+ "@opentelemetry/sdk-trace-node": {
332
+ "optional": true
333
+ },
334
+ "@opentelemetry/semantic-conventions": {
335
+ "optional": true
336
+ },
337
+ "@supabase/supabase-js": {
338
+ "optional": true
339
+ },
340
+ "chrono-node": {
341
+ "optional": true
342
+ },
343
+ "diff": {
344
+ "optional": true
345
+ },
346
+ "fast-xml-parser": {
347
+ "optional": true
348
+ },
349
+ "js-yaml": {
350
+ "optional": true
351
+ },
352
+ "node-cron": {
353
+ "optional": true
354
+ },
355
+ "openai": {
356
+ "optional": true
357
+ },
358
+ "papaparse": {
359
+ "optional": true
360
+ },
361
+ "partial-json": {
362
+ "optional": true
363
+ },
364
+ "pdf-lib": {
365
+ "optional": true
366
+ },
367
+ "sanitize-html": {
368
+ "optional": true
369
+ },
370
+ "unpdf": {
371
+ "optional": true
372
+ },
373
+ "validator": {
374
+ "optional": true
375
+ }
376
+ }
377
+ }
@@ -0,0 +1,38 @@
1
+ # Skills
2
+
3
+ Agent Skills for `@cyanheads/mcp-ts-core`. Each subdirectory contains a `SKILL.md` following the [Agent Skills specification](https://agentskills.io/specification).
4
+
5
+ ## Three-Tier Distribution
6
+
7
+ Skills flow through three locations. Each tier has a distinct role:
8
+
9
+ | Tier | Location | Written by | Purpose |
10
+ |:-----|:---------|:-----------|:--------|
11
+ | 1. Package | `node_modules/@cyanheads/mcp-ts-core/skills/` | `npm publish` / `bun publish` | Canonical source. Ships with the package. |
12
+ | 2. Project | `skills/` (project root) | `@cyanheads/mcp-ts-core init` CLI | Project's source of truth. Committed to git. Server-specific skills live here too. |
13
+ | 3. Agent | `.claude/skills/`, `.codex/skills/`, etc. | The agent itself | Agent's working copy. Synced from project `skills/`. Checklists are checked here. |
14
+
15
+ ### Flow
16
+
17
+ ```
18
+ npm publish init CLI agent sync
19
+ [package skills/] ──────────> [project skills/] ──────────> [.claude/skills/]
20
+
21
+ ├── core skills (from package)
22
+ └── server-specific skills (added by devs)
23
+ ```
24
+
25
+ ## Audience
26
+
27
+ Each skill declares `metadata.audience` in its SKILL.md frontmatter:
28
+
29
+ - **`external`** — For consumers building MCP servers. Copied to project `skills/` by `init`.
30
+ - **`internal`** — For core package developers. Stays in `node_modules`, not copied.
31
+
32
+ ## Versioning
33
+
34
+ Skills declare `metadata.version` in frontmatter. When `init` is re-run after `bun update`, it compares versions and updates skills where the package version is newer. To pin a skill and prevent updates, bump its local `metadata.version` above the package's.
35
+
36
+ ## Adding Server-Specific Skills
37
+
38
+ Create a new directory in `skills/` with a `SKILL.md` following the same format. The agent will pick it up on next sync. Use the core skills as examples for structure and checklist conventions.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: add-export
3
+ description: >
4
+ Add a new subpath export to the @cyanheads/mcp-ts-core package. Use when creating a new public API surface that consumers import from a dedicated subpath (e.g., @cyanheads/mcp-ts-core/utils/newutil).
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.0"
8
+ audience: internal
9
+ type: reference
10
+ ---
11
+
12
+ ## Context
13
+
14
+ Subpath exports are defined in `package.json` under the `exports` field. Each subpath maps to a source entry point that gets compiled to `dist/`. The exports catalog in `CLAUDE.md` must stay in sync with `package.json`.
15
+
16
+ ## Steps
17
+
18
+ 1. **Create the entry point** source file (e.g., `src/utils/new-util.ts`)
19
+ 2. **Add the subpath** to `package.json` `exports`:
20
+ ```jsonc
21
+ "./utils/newutil": {
22
+ "types": "./dist/utils/new-util.d.ts",
23
+ "import": "./dist/utils/new-util.js"
24
+ }
25
+ ```
26
+ 3. **Update the exports catalog** in `CLAUDE.md` — add a row to the table
27
+ 4. **Build** with `bun run build` to generate `dist/` output
28
+ 5. **Verify the export** resolves correctly:
29
+ ```bash
30
+ node -e "import('@cyanheads/mcp-ts-core/utils/newutil').then(m => console.log(Object.keys(m)))"
31
+ ```
32
+ 6. **Run `bun run devcheck`** to verify
33
+
34
+ ## Naming Conventions
35
+
36
+ | Convention | Rule |
37
+ |:-----------|:-----|
38
+ | Subpath | lowercase, no underscores (e.g., `utils/errorHandler`) |
39
+ | Source file | kebab-case (e.g., `error-handler.ts`) |
40
+ | Export name | camelCase for values, PascalCase for types |
41
+
42
+ ## Checklist
43
+
44
+ - [ ] Source entry point file created with JSDoc header
45
+ - [ ] Subpath added to `package.json` `exports` with `types` and `import` conditions
46
+ - [ ] Exports catalog in `CLAUDE.md` updated with new row
47
+ - [ ] `bun run build` succeeds
48
+ - [ ] Export resolves correctly from `node_modules`
49
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: add-prompt
3
+ description: >
4
+ Scaffold a new MCP prompt template. Use when the user asks to add a prompt, create a reusable message template, or define a prompt for LLM interactions.
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.0"
8
+ audience: external
9
+ type: reference
10
+ ---
11
+
12
+ ## Context
13
+
14
+ Prompts use the `prompt()` builder from `@cyanheads/mcp-ts-core`. Each prompt lives in `src/mcp-server/prompts/definitions/` with a `.prompt.ts` suffix and is registered in the barrel `index.ts`.
15
+
16
+ Prompts are pure message templates — no `Context`, no auth, no side effects.
17
+
18
+ For the full `prompt()` API, read:
19
+
20
+ node_modules/@cyanheads/mcp-ts-core/CLAUDE.md
21
+
22
+ ## Steps
23
+
24
+ 1. **Ask the user** for the prompt's name, purpose, and arguments
25
+ 2. **Create the file** at `src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts`
26
+ 3. **Register** the prompt in `src/mcp-server/prompts/definitions/index.ts`
27
+ 4. **Run `bun run devcheck`** to verify
28
+
29
+ ## Template
30
+
31
+ ```typescript
32
+ /**
33
+ * @fileoverview {{PROMPT_DESCRIPTION}}
34
+ * @module mcp-server/prompts/definitions/{{PROMPT_NAME}}
35
+ */
36
+
37
+ import { z } from 'zod';
38
+ import { prompt } from '@cyanheads/mcp-ts-core';
39
+
40
+ export const {{PROMPT_EXPORT}} = prompt('{{prompt_name}}', {
41
+ description: '{{PROMPT_DESCRIPTION}}',
42
+ args: z.object({
43
+ // All fields need .describe()
44
+ }),
45
+ generate: (args) => [
46
+ {
47
+ role: 'user',
48
+ content: {
49
+ type: 'text',
50
+ text: `{{PROMPT_TEMPLATE_TEXT}}`,
51
+ },
52
+ },
53
+ ],
54
+ });
55
+ ```
56
+
57
+ ### Multi-message prompt
58
+
59
+ ```typescript
60
+ generate: (args) => [
61
+ {
62
+ role: 'user',
63
+ content: {
64
+ type: 'text',
65
+ text: `Here is the ${args.type} to review:\n\n${args.content}`,
66
+ },
67
+ },
68
+ {
69
+ role: 'assistant',
70
+ content: {
71
+ type: 'text',
72
+ text: 'I will analyze this carefully. Let me start with...',
73
+ },
74
+ },
75
+ ],
76
+ ```
77
+
78
+ ### Barrel registration
79
+
80
+ ```typescript
81
+ // src/mcp-server/prompts/definitions/index.ts
82
+ import { {{PROMPT_EXPORT}} } from './{{prompt-name}}.prompt.js';
83
+ export const allPromptDefinitions = [
84
+ // ... existing prompts
85
+ {{PROMPT_EXPORT}},
86
+ ];
87
+ ```
88
+
89
+ ## Checklist
90
+
91
+ - [ ] File created at `src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts`
92
+ - [ ] All Zod `args` fields have `.describe()` annotations
93
+ - [ ] JSDoc `@fileoverview` and `@module` header present
94
+ - [ ] `generate` function returns valid message array
95
+ - [ ] No side effects — prompts are pure templates
96
+ - [ ] Registered in `definitions/index.ts` barrel and `allPromptDefinitions`
97
+ - [ ] `bun run devcheck` passes
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: add-provider
3
+ description: >
4
+ Add a new storage or service provider to the core package. Use when implementing a new backend for StorageService (e.g., a new database) or a new service provider (e.g., a new LLM backend).
5
+ metadata:
6
+ author: cyanheads
7
+ version: "1.0"
8
+ audience: internal
9
+ type: reference
10
+ ---
11
+
12
+ ## Context
13
+
14
+ Providers implement interfaces defined in core (e.g., `IStorageProvider`).
15
+
16
+ They are selected at runtime via config (e.g., `STORAGE_PROVIDER_TYPE`).
17
+
18
+ Tier 3 providers lazy-load their dependencies to keep the core bundle small.
19
+
20
+ ## Steps
21
+
22
+ 1. **Identify the provider interface** — check the existing interface in the
23
+ relevant types file (e.g., `src/storage/core/IStorageProvider.ts`)
24
+ 2. **Create the provider file** in the appropriate directory
25
+ (e.g., `src/storage/providers/{{provider-name}}/{{provider-name}}Provider.ts`)
26
+ 3. **Implement the interface** — all methods must be implemented
27
+ 4. **Lazy-load dependencies** if Tier 3:
28
+ ```typescript
29
+ let _client: SomeClient | undefined;
30
+ async function getClient(): Promise<SomeClient> {
31
+ if (!_client) {
32
+ const { SomeClient } = await import('some-package');
33
+ _client = new SomeClient(/* config */);
34
+ }
35
+ return _client;
36
+ }
37
+ ```
38
+ 5. **Register the provider** in the factory/selector that maps config values
39
+ to provider instances
40
+ 6. **Update the serverless whitelist** if the provider is compatible with Workers
41
+ 7. **Add the dependency** as an optional peer dependency in `package.json`
42
+ 8. **Run `bun run devcheck`** to verify
43
+
44
+ ## Checklist
45
+
46
+ - [ ] Provider file created with JSDoc header
47
+ - [ ] Interface fully implemented
48
+ - [ ] Tier 3 dependencies lazy-loaded (not top-level imports)
49
+ - [ ] Registered in provider factory/selector
50
+ - [ ] Serverless whitelist updated if Worker-compatible
51
+ - [ ] Optional peer dependency added to `package.json`
52
+ - [ ] `bun run devcheck` passes
53
+ - [ ] Integration tested with the target backend