@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,295 @@
1
+ /**
2
+ * @fileoverview Interface for graph database providers, plus all core graph primitives.
3
+ * Defines the contract for vertex/edge CRUD, relationship management, traversal,
4
+ * and pathfinding that every provider backend must implement.
5
+ * @module src/services/graph/core/IGraphProvider
6
+ */
7
+ import type { RequestContext } from '../../../utils/internal/requestContext.js';
8
+ import type { GraphStats } from '../types.js';
9
+ /**
10
+ * Direction of edge traversal relative to the starting vertex.
11
+ * - `'out'` — follow outgoing edges only (default)
12
+ * - `'in'` — follow incoming edges only
13
+ * - `'both'` — follow edges in either direction
14
+ */
15
+ export type TraversalDirection = 'out' | 'in' | 'both';
16
+ /**
17
+ * Represents a vertex (node) in the graph.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const vertex: Vertex = { id: 'user:alice', table: 'user', data: { name: 'Alice' } };
22
+ * ```
23
+ */
24
+ export interface Vertex {
25
+ /** Arbitrary key-value payload stored on the vertex */
26
+ data: Record<string, unknown>;
27
+ /** Unique identifier, typically in `table:id` format (e.g. `"user:alice"`) */
28
+ id: string;
29
+ /** Table (collection/type) this vertex belongs to */
30
+ table: string;
31
+ }
32
+ /**
33
+ * Represents a directed edge (relationship) between two vertices in the graph.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const edge: Edge = {
38
+ * id: 'follows:1',
39
+ * table: 'follows',
40
+ * from: 'user:alice',
41
+ * to: 'user:bob',
42
+ * data: { since: '2025-01-01' },
43
+ * };
44
+ * ```
45
+ */
46
+ export interface Edge {
47
+ /** Arbitrary key-value payload stored on the edge */
48
+ data: Record<string, unknown>;
49
+ /** ID of the source (tail) vertex */
50
+ from: string;
51
+ /** Unique identifier for this edge */
52
+ id: string;
53
+ /** Table (collection/type) this edge belongs to */
54
+ table: string;
55
+ /** ID of the target (head) vertex */
56
+ to: string;
57
+ }
58
+ /**
59
+ * Options controlling how a relationship edge is created.
60
+ */
61
+ export interface RelateOptions {
62
+ /**
63
+ * When `true`, a new edge is created even if one already exists between
64
+ * the same pair of vertices with the same table. Defaults to `false`.
65
+ */
66
+ allowDuplicates?: boolean;
67
+ /** Arbitrary key-value payload to store on the created edge */
68
+ data?: Record<string, unknown>;
69
+ }
70
+ /**
71
+ * Options controlling how a graph traversal is executed.
72
+ */
73
+ export interface TraversalOptions {
74
+ /** Edge direction to follow from each vertex. Defaults to `'out'`. */
75
+ direction?: TraversalDirection;
76
+ /** Restrict traversal to edges belonging to these tables. All edge types are followed when omitted. */
77
+ edgeTypes?: string[];
78
+ /** Maximum number of hops from the start vertex. Defaults to `1`. */
79
+ maxDepth?: number;
80
+ /** Restrict returned vertices to those belonging to these tables. All vertex types are returned when omitted. */
81
+ vertexTypes?: string[];
82
+ /** Provider-specific filter expression applied to vertices or edges during traversal */
83
+ where?: string;
84
+ }
85
+ /**
86
+ * Result returned by a graph traversal operation.
87
+ */
88
+ export interface TraversalResult {
89
+ /** All paths discovered from the starting vertex, up to the configured depth */
90
+ paths: GraphPath[];
91
+ /** The resolved starting vertex that was used as the traversal root */
92
+ start: Vertex;
93
+ }
94
+ /**
95
+ * A single path through the graph, expressed as an ordered sequence of vertices
96
+ * and the edges that connect them.
97
+ */
98
+ export interface GraphPath {
99
+ /** Edges traversed along the path, in traversal order */
100
+ edges: Edge[];
101
+ /** Vertices visited along the path, in traversal order */
102
+ vertices: Vertex[];
103
+ /** Cumulative cost of the path, present when a weight function was applied */
104
+ weight?: number;
105
+ }
106
+ /**
107
+ * Options for shortest-path and pathfinding queries.
108
+ */
109
+ export interface PathOptions {
110
+ /**
111
+ * Graph search algorithm to apply.
112
+ * - `'dijkstra'` — weighted shortest path (requires `weightFn`)
113
+ * - `'bfs'` — unweighted shortest path by hop count (default)
114
+ * - `'dfs'` — depth-first, finds *a* path but not necessarily the shortest
115
+ */
116
+ algorithm?: 'dijkstra' | 'bfs' | 'dfs';
117
+ /** Maximum number of hops to consider. Unbounded when omitted. */
118
+ maxLength?: number;
119
+ /** Returns the numeric cost of traversing the given edge. Required when `algorithm` is `'dijkstra'`. */
120
+ weightFn?: (edge: Edge) => number;
121
+ }
122
+ /**
123
+ * Contract that every graph database provider must implement.
124
+ *
125
+ * @remarks
126
+ * Providers must implement relationship creation and deletion, directed edge
127
+ * queries, graph traversal, pathfinding, statistics, and a health check.
128
+ * The `GraphService` class delegates all operations to the active provider
129
+ * through this interface.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * class MyProvider implements IGraphProvider {
134
+ * readonly name = 'my-provider';
135
+ * async relate(from, edgeTable, to, context, options) { ... }
136
+ * async unrelate(edgeId, context) { ... }
137
+ * // ... remaining methods
138
+ * }
139
+ * ```
140
+ */
141
+ export interface IGraphProvider {
142
+ /**
143
+ * Get all incoming edges directed at a vertex.
144
+ *
145
+ * @param vertexId - ID of the target vertex
146
+ * @param context - Request context used for correlated logging
147
+ * @param edgeTypes - When provided, only edges belonging to these tables are returned
148
+ * @returns Array of all incoming edges matching the filter, or an empty array if none
149
+ * @throws {Error} If the underlying provider encounters a storage or query error
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * const incoming = await provider.getIncomingEdges('user:bob', context, ['follows']);
154
+ * ```
155
+ */
156
+ getIncomingEdges(vertexId: string, context: RequestContext, edgeTypes?: string[]): Promise<Edge[]>;
157
+ /**
158
+ * Get all outgoing edges originating from a vertex.
159
+ *
160
+ * @param vertexId - ID of the source vertex
161
+ * @param context - Request context used for correlated logging
162
+ * @param edgeTypes - When provided, only edges belonging to these tables are returned
163
+ * @returns Array of all outgoing edges matching the filter, or an empty array if none
164
+ * @throws {Error} If the underlying provider encounters a storage or query error
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * const outgoing = await provider.getOutgoingEdges('user:alice', context, ['follows']);
169
+ * ```
170
+ */
171
+ getOutgoingEdges(vertexId: string, context: RequestContext, edgeTypes?: string[]): Promise<Edge[]>;
172
+ /**
173
+ * Compute aggregate statistics about the current graph.
174
+ *
175
+ * @param context - Request context used for correlated logging
176
+ * @returns Snapshot of vertex/edge counts and per-type breakdowns
177
+ * @throws {Error} If the underlying provider cannot compute statistics
178
+ *
179
+ * @example
180
+ * ```ts
181
+ * const stats = await provider.getStats(context);
182
+ * console.log(stats.vertexCount, stats.avgDegree);
183
+ * ```
184
+ */
185
+ getStats(context: RequestContext): Promise<GraphStats>;
186
+ /**
187
+ * Perform a liveness check on the provider connection.
188
+ *
189
+ * @returns `true` if the provider is reachable and operational, `false` otherwise
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * if (!(await provider.healthCheck())) {
194
+ * throw new Error('Graph provider is unhealthy');
195
+ * }
196
+ * ```
197
+ */
198
+ healthCheck(): Promise<boolean>;
199
+ /**
200
+ * Human-readable identifier for this provider (e.g. `'mock'`, `'surrealdb'`).
201
+ * Used in logging and diagnostics.
202
+ */
203
+ readonly name: string;
204
+ /**
205
+ * Determine whether any path exists between two vertices without returning it.
206
+ * More efficient than `shortestPath` when only reachability is needed.
207
+ *
208
+ * @param from - ID of the source vertex
209
+ * @param to - ID of the target vertex
210
+ * @param context - Request context used for correlated logging
211
+ * @param maxDepth - Maximum hop count to search. Unbounded when omitted.
212
+ * @returns `true` if at least one path exists within the depth limit
213
+ * @throws {Error} If the underlying provider encounters a storage or query error
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * const connected = await provider.pathExists('user:alice', 'user:charlie', context, 3);
218
+ * ```
219
+ */
220
+ pathExists(from: string, to: string, context: RequestContext, maxDepth?: number): Promise<boolean>;
221
+ /**
222
+ * Create a directed relationship edge between two vertices.
223
+ *
224
+ * @param from - ID of the source vertex
225
+ * @param edgeTable - Table (type) name for the edge (e.g. `'follows'`)
226
+ * @param to - ID of the target vertex
227
+ * @param context - Request context used for correlated logging
228
+ * @param options - Optional payload and duplicate-handling behaviour
229
+ * @returns The newly created edge
230
+ * @throws {Error} If either vertex does not exist, or a duplicate is rejected
231
+ *
232
+ * @example
233
+ * ```ts
234
+ * const edge = await provider.relate('user:alice', 'follows', 'user:bob', context, {
235
+ * data: { since: '2025-01-01' },
236
+ * });
237
+ * ```
238
+ */
239
+ relate(from: string, edgeTable: string, to: string, context: RequestContext, options?: RelateOptions): Promise<Edge>;
240
+ /**
241
+ * Find the lowest-cost path between two vertices using the specified algorithm.
242
+ *
243
+ * @param from - ID of the source vertex
244
+ * @param to - ID of the target vertex
245
+ * @param context - Request context used for correlated logging
246
+ * @param options - Algorithm selection, depth limit, and optional weight function
247
+ * @returns The shortest path, or `null` if no path exists within the constraints
248
+ * @throws {Error} If the underlying provider encounters a storage or query error
249
+ *
250
+ * @example
251
+ * ```ts
252
+ * const path = await provider.shortestPath('user:alice', 'user:charlie', context, {
253
+ * algorithm: 'bfs',
254
+ * maxLength: 4,
255
+ * });
256
+ * if (path) console.log(`${path.vertices.length} hops`);
257
+ * ```
258
+ */
259
+ shortestPath(from: string, to: string, context: RequestContext, options?: PathOptions): Promise<GraphPath | null>;
260
+ /**
261
+ * Traverse the graph outward (or inward/both) from a starting vertex.
262
+ *
263
+ * @param startVertexId - ID of the vertex to begin traversal from
264
+ * @param context - Request context used for correlated logging
265
+ * @param options - Direction, depth limit, edge/vertex type filters, and WHERE expression
266
+ * @returns All discovered paths and the resolved start vertex
267
+ * @throws {Error} If the start vertex does not exist or the provider query fails
268
+ *
269
+ * @example
270
+ * ```ts
271
+ * const result = await provider.traverse('user:alice', context, {
272
+ * maxDepth: 2,
273
+ * edgeTypes: ['follows'],
274
+ * direction: 'out',
275
+ * });
276
+ * console.log(`Found ${result.paths.length} paths`);
277
+ * ```
278
+ */
279
+ traverse(startVertexId: string, context: RequestContext, options?: TraversalOptions): Promise<TraversalResult>;
280
+ /**
281
+ * Delete a relationship edge by its ID.
282
+ *
283
+ * @param edgeId - ID of the edge to remove
284
+ * @param context - Request context used for correlated logging
285
+ * @returns `true` if the edge was found and deleted, `false` if it did not exist
286
+ * @throws {Error} If the underlying provider encounters a storage error
287
+ *
288
+ * @example
289
+ * ```ts
290
+ * const deleted = await provider.unrelate('follows:1', context);
291
+ * ```
292
+ */
293
+ unrelate(edgeId: string, context: RequestContext): Promise<boolean>;
294
+ }
295
+ //# sourceMappingURL=IGraphProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGraphProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/graph/core/IGraphProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Interface for graph database providers, plus all core graph primitives.
3
+ * Defines the contract for vertex/edge CRUD, relationship management, traversal,
4
+ * and pathfinding that every provider backend must implement.
5
+ * @module src/services/graph/core/IGraphProvider
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=IGraphProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IGraphProvider.js","sourceRoot":"","sources":["../../../../src/services/graph/core/IGraphProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @fileoverview Type definitions for the graph service layer.
3
+ * Re-exports core graph primitives from IGraphProvider and defines
4
+ * service-level configuration, statistics, and pattern-matching types.
5
+ * @module src/services/graph/types
6
+ */
7
+ export type { Edge, GraphPath, PathOptions, RelateOptions, TraversalDirection, TraversalOptions, TraversalResult, Vertex, } from './core/IGraphProvider.js';
8
+ /**
9
+ * Discriminated union of supported graph provider backends.
10
+ * Currently only `'mock'` is available; extend this union when adding real backends.
11
+ */
12
+ export type GraphProviderType = 'mock';
13
+ /**
14
+ * Configuration for instantiating the graph service.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const config: GraphServiceConfig = {
19
+ * provider: 'mock',
20
+ * config: { seedData: true },
21
+ * };
22
+ * ```
23
+ */
24
+ export interface GraphServiceConfig {
25
+ /** Additional provider-specific configuration passed through to the provider constructor */
26
+ config?: Record<string, unknown>;
27
+ /** Which graph provider backend to instantiate */
28
+ provider: GraphProviderType;
29
+ }
30
+ /**
31
+ * Aggregate statistics describing the current state of a graph.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const stats: GraphStats = await graphService.getStats(context);
36
+ * console.log(`${stats.vertexCount} vertices, ${stats.edgeCount} edges`);
37
+ * console.log(`Avg degree: ${stats.avgDegree}`);
38
+ * ```
39
+ */
40
+ export interface GraphStats {
41
+ /** Mean number of edges per vertex across the entire graph */
42
+ avgDegree: number;
43
+ /** Total number of edges (relationships) in the graph */
44
+ edgeCount: number;
45
+ /** Map of edge table name to count of edges of that type */
46
+ edgeTypes: Record<string, number>;
47
+ /** Total number of vertices (nodes) in the graph */
48
+ vertexCount: number;
49
+ /** Map of vertex table name to count of vertices of that type */
50
+ vertexTypes: Record<string, number>;
51
+ }
52
+ /**
53
+ * A declarative pattern used to query subgraphs by structural shape.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const pattern: GraphPattern = {
58
+ * pattern: '(person)-[knows]->(person)',
59
+ * params: { minAge: 18 },
60
+ * };
61
+ * ```
62
+ */
63
+ export interface GraphPattern {
64
+ /** Named parameters bound into the pattern at query time */
65
+ params?: Record<string, unknown>;
66
+ /**
67
+ * Pattern string describing the structural shape to match.
68
+ * Uses graph path notation, e.g. `"(person)-[knows]->(person)"`.
69
+ */
70
+ pattern: string;
71
+ }
72
+ /**
73
+ * Result returned by a graph pattern-matching query.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const result: PatternMatchResult = await provider.matchPattern(pattern, context);
78
+ * console.log(`Found ${result.count} matching subgraphs`);
79
+ * for (const match of result.matches) {
80
+ * console.log(match.vertices.map(v => v.id).join(' -> '));
81
+ * }
82
+ * ```
83
+ */
84
+ export interface PatternMatchResult {
85
+ /** Total number of subgraph matches found */
86
+ count: number;
87
+ /** Each matched subgraph, containing the vertices and edges that satisfied the pattern */
88
+ matches: Array<{
89
+ /** Ordered vertices in the matched path */
90
+ vertices: Array<{
91
+ id: string;
92
+ table: string;
93
+ data: Record<string, unknown>;
94
+ }>;
95
+ /** Edges connecting the matched vertices */
96
+ edges: Array<{
97
+ id: string;
98
+ table: string;
99
+ from: string;
100
+ to: string;
101
+ data: Record<string, unknown>;
102
+ }>;
103
+ /** Cumulative path weight, if edge weights are defined */
104
+ weight?: number;
105
+ }>;
106
+ }
107
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/graph/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,IAAI,EACJ,SAAS,EACT,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,MAAM,GACP,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,kDAAkD;IAClD,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,OAAO,EAAE,KAAK,CAAC;QACb,2CAA2C;QAC3C,QAAQ,EAAE,KAAK,CAAC;YACd,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,CAAC,CAAC;QACH,4CAA4C;QAC5C,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,CAAC,CAAC;QACH,0DAA0D;QAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Type definitions for the graph service layer.
3
+ * Re-exports core graph primitives from IGraphProvider and defines
4
+ * service-level configuration, statistics, and pattern-matching types.
5
+ * @module src/services/graph/types
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/graph/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @fileoverview Defines the `ILlmProvider` interface — the contract all LLM provider
3
+ * implementations must satisfy. Also exports `OpenRouterChatParams`, the union type
4
+ * representing valid parameters for OpenRouter chat completion requests (both streaming
5
+ * and non-streaming), derived from the OpenAI SDK types since OpenRouter exposes an
6
+ * OpenAI-compatible API surface.
7
+ * @module src/services/llm/core/ILlmProvider
8
+ */
9
+ import type { ChatCompletion, ChatCompletionChunk, ChatCompletionCreateParamsNonStreaming, ChatCompletionCreateParamsStreaming } from 'openai/resources/chat/completions';
10
+ import type { Stream } from 'openai/streaming';
11
+ import type { RequestContext } from '../../../utils/internal/requestContext.js';
12
+ /**
13
+ * Union of the OpenAI SDK's non-streaming and streaming chat completion parameter
14
+ * shapes. OpenRouter accepts the same request structure, so this type covers all
15
+ * valid call forms. The `stream` discriminant field determines which branch applies
16
+ * at runtime.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const params: OpenRouterChatParams = {
21
+ * model: 'openai/gpt-4o',
22
+ * messages: [{ role: 'user', content: 'Hello' }],
23
+ * stream: false,
24
+ * };
25
+ * ```
26
+ */
27
+ export type OpenRouterChatParams = ChatCompletionCreateParamsNonStreaming | ChatCompletionCreateParamsStreaming;
28
+ /**
29
+ * Provider-agnostic interface for interacting with a Large Language Model.
30
+ * Implementations must support both one-shot and streaming chat completions.
31
+ * Coding against this interface (rather than a concrete provider) allows the
32
+ * application to swap providers without changing call sites.
33
+ */
34
+ export interface ILlmProvider {
35
+ /**
36
+ * Sends a chat completion request. Supports both streaming and non-streaming
37
+ * modes determined by `params.stream`.
38
+ *
39
+ * @param params - Chat completion parameters. Set `params.stream = true` to
40
+ * receive a `Stream<ChatCompletionChunk>` in return; omit or set `false` for
41
+ * a resolved `ChatCompletion` object.
42
+ * @param context - Request context used for correlated logging and tracing.
43
+ * @returns A `ChatCompletion` for non-streaming calls, or a
44
+ * `Stream<ChatCompletionChunk>` for streaming calls.
45
+ * @throws {McpError} `ServiceUnavailable` if the upstream provider is
46
+ * unreachable, `ConfigurationError` if the client is misconfigured, or
47
+ * `RateLimited` if the rate limit is exceeded.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const completion = await provider.chatCompletion(
52
+ * { model: 'openai/gpt-4o', messages: [{ role: 'user', content: 'Hi' }] },
53
+ * ctx,
54
+ * ) as ChatCompletion;
55
+ * console.log(completion.choices[0].message.content);
56
+ * ```
57
+ */
58
+ chatCompletion(params: OpenRouterChatParams, context: RequestContext): Promise<ChatCompletion | Stream<ChatCompletionChunk>>;
59
+ /**
60
+ * Sends a streaming chat completion request and returns an async iterable of
61
+ * chunks. Internally forces `params.stream = true` and logs the full collected
62
+ * response after the stream is exhausted.
63
+ *
64
+ * @param params - Chat completion parameters. The `stream` flag is overridden
65
+ * to `true` regardless of what is passed.
66
+ * @param context - Request context used for correlated logging and tracing.
67
+ * @returns An async iterable that yields `ChatCompletionChunk` objects as they
68
+ * arrive from the provider.
69
+ * @throws {McpError} `ServiceUnavailable` if the upstream provider is
70
+ * unreachable, `ConfigurationError` if the client is misconfigured, or
71
+ * `RateLimited` if the rate limit is exceeded.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const stream = await provider.chatCompletionStream(
76
+ * { model: 'openai/gpt-4o', messages: [{ role: 'user', content: 'Hi' }] },
77
+ * ctx,
78
+ * );
79
+ * for await (const chunk of stream) {
80
+ * process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
81
+ * }
82
+ * ```
83
+ */
84
+ chatCompletionStream(params: OpenRouterChatParams, context: RequestContext): Promise<AsyncIterable<ChatCompletionChunk>>;
85
+ }
86
+ //# sourceMappingURL=ILlmProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILlmProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/core/ILlmProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,sCAAsC,EACtC,mCAAmC,EACpC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,oBAAoB,GAC5B,sCAAsC,GACtC,mCAAmC,CAAC;AAExC;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CACZ,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,oBAAoB,CAClB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;CAChD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ILlmProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILlmProvider.js","sourceRoot":"","sources":["../../../../src/services/llm/core/ILlmProvider.ts"],"names":[],"mappings":""}