@mtkn/mega-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/dist/artifact/artifact.repository.d.ts +17 -0
  2. package/dist/artifact/artifact.repository.d.ts.map +1 -0
  3. package/dist/artifact/artifact.repository.js +66 -0
  4. package/dist/artifact/artifact.repository.js.map +1 -0
  5. package/dist/artifact/artifact.service.d.ts +22 -0
  6. package/dist/artifact/artifact.service.d.ts.map +1 -0
  7. package/dist/artifact/artifact.service.js +87 -0
  8. package/dist/artifact/artifact.service.js.map +1 -0
  9. package/dist/artifact/artifact.types.d.ts +41 -0
  10. package/dist/artifact/artifact.types.d.ts.map +1 -0
  11. package/dist/artifact/artifact.types.js +6 -0
  12. package/dist/artifact/artifact.types.js.map +1 -0
  13. package/dist/artifact/index.d.ts +6 -0
  14. package/dist/artifact/index.d.ts.map +1 -0
  15. package/dist/artifact/index.js +4 -0
  16. package/dist/artifact/index.js.map +1 -0
  17. package/dist/chat/chat-memory.integration.d.ts +59 -0
  18. package/dist/chat/chat-memory.integration.d.ts.map +1 -0
  19. package/dist/chat/chat-memory.integration.js +148 -0
  20. package/dist/chat/chat-memory.integration.js.map +1 -0
  21. package/dist/chat/chat.repository.d.ts +58 -0
  22. package/dist/chat/chat.repository.d.ts.map +1 -0
  23. package/dist/chat/chat.repository.js +128 -0
  24. package/dist/chat/chat.repository.js.map +1 -0
  25. package/dist/chat/chat.service.d.ts +28 -0
  26. package/dist/chat/chat.service.d.ts.map +1 -0
  27. package/dist/chat/chat.service.js +217 -0
  28. package/dist/chat/chat.service.js.map +1 -0
  29. package/dist/chat/chat.types.d.ts +198 -0
  30. package/dist/chat/chat.types.d.ts.map +1 -0
  31. package/dist/chat/chat.types.js +8 -0
  32. package/dist/chat/chat.types.js.map +1 -0
  33. package/dist/chat/index.d.ts +17 -0
  34. package/dist/chat/index.d.ts.map +1 -0
  35. package/dist/chat/index.js +16 -0
  36. package/dist/chat/index.js.map +1 -0
  37. package/dist/chat/memory-detector.d.ts +53 -0
  38. package/dist/chat/memory-detector.d.ts.map +1 -0
  39. package/dist/chat/memory-detector.js +172 -0
  40. package/dist/chat/memory-detector.js.map +1 -0
  41. package/dist/chat/prompts/index.d.ts +6 -0
  42. package/dist/chat/prompts/index.d.ts.map +1 -0
  43. package/dist/chat/prompts/index.js +6 -0
  44. package/dist/chat/prompts/index.js.map +1 -0
  45. package/dist/chat/prompts/system.prompts.d.ts +23 -0
  46. package/dist/chat/prompts/system.prompts.d.ts.map +1 -0
  47. package/dist/chat/prompts/system.prompts.js +102 -0
  48. package/dist/chat/prompts/system.prompts.js.map +1 -0
  49. package/dist/chat/response-parser.d.ts +24 -0
  50. package/dist/chat/response-parser.d.ts.map +1 -0
  51. package/dist/chat/response-parser.js +198 -0
  52. package/dist/chat/response-parser.js.map +1 -0
  53. package/dist/chat/response.types.d.ts +90 -0
  54. package/dist/chat/response.types.d.ts.map +1 -0
  55. package/dist/chat/response.types.js +6 -0
  56. package/dist/chat/response.types.js.map +1 -0
  57. package/dist/common/errors.d.ts +60 -0
  58. package/dist/common/errors.d.ts.map +1 -0
  59. package/dist/common/errors.js +105 -0
  60. package/dist/common/errors.js.map +1 -0
  61. package/dist/common/index.d.ts +3 -0
  62. package/dist/common/index.d.ts.map +1 -0
  63. package/dist/common/index.js +3 -0
  64. package/dist/common/index.js.map +1 -0
  65. package/dist/common/retry.d.ts +23 -0
  66. package/dist/common/retry.d.ts.map +1 -0
  67. package/dist/common/retry.js +57 -0
  68. package/dist/common/retry.js.map +1 -0
  69. package/dist/create-mega-agent.d.ts +100 -0
  70. package/dist/create-mega-agent.d.ts.map +1 -0
  71. package/dist/create-mega-agent.js +153 -0
  72. package/dist/create-mega-agent.js.map +1 -0
  73. package/dist/embedding/embedding.service.d.ts +34 -0
  74. package/dist/embedding/embedding.service.d.ts.map +1 -0
  75. package/dist/embedding/embedding.service.js +68 -0
  76. package/dist/embedding/embedding.service.js.map +1 -0
  77. package/dist/embedding/embedding.types.d.ts +38 -0
  78. package/dist/embedding/embedding.types.d.ts.map +1 -0
  79. package/dist/embedding/embedding.types.js +6 -0
  80. package/dist/embedding/embedding.types.js.map +1 -0
  81. package/dist/embedding/index.d.ts +9 -0
  82. package/dist/embedding/index.d.ts.map +1 -0
  83. package/dist/embedding/index.js +9 -0
  84. package/dist/embedding/index.js.map +1 -0
  85. package/dist/embedding/providers/base.provider.d.ts +29 -0
  86. package/dist/embedding/providers/base.provider.d.ts.map +1 -0
  87. package/dist/embedding/providers/base.provider.js +19 -0
  88. package/dist/embedding/providers/base.provider.js.map +1 -0
  89. package/dist/embedding/providers/index.d.ts +7 -0
  90. package/dist/embedding/providers/index.d.ts.map +1 -0
  91. package/dist/embedding/providers/index.js +7 -0
  92. package/dist/embedding/providers/index.js.map +1 -0
  93. package/dist/embedding/providers/openai.provider.d.ts +17 -0
  94. package/dist/embedding/providers/openai.provider.d.ts.map +1 -0
  95. package/dist/embedding/providers/openai.provider.js +73 -0
  96. package/dist/embedding/providers/openai.provider.js.map +1 -0
  97. package/dist/http/chat.controller.d.ts +30 -0
  98. package/dist/http/chat.controller.d.ts.map +1 -0
  99. package/dist/http/chat.controller.js +163 -0
  100. package/dist/http/chat.controller.js.map +1 -0
  101. package/dist/http/chat.routes.d.ts +5 -0
  102. package/dist/http/chat.routes.d.ts.map +1 -0
  103. package/dist/http/chat.routes.js +38 -0
  104. package/dist/http/chat.routes.js.map +1 -0
  105. package/dist/http/chat.validation.d.ts +70 -0
  106. package/dist/http/chat.validation.d.ts.map +1 -0
  107. package/dist/http/chat.validation.js +28 -0
  108. package/dist/http/chat.validation.js.map +1 -0
  109. package/dist/incident/incident.correlator.d.ts +39 -0
  110. package/dist/incident/incident.correlator.d.ts.map +1 -0
  111. package/dist/incident/incident.correlator.js +129 -0
  112. package/dist/incident/incident.correlator.js.map +1 -0
  113. package/dist/incident/incident.detector.d.ts +62 -0
  114. package/dist/incident/incident.detector.d.ts.map +1 -0
  115. package/dist/incident/incident.detector.js +192 -0
  116. package/dist/incident/incident.detector.js.map +1 -0
  117. package/dist/incident/incident.repository.d.ts +79 -0
  118. package/dist/incident/incident.repository.d.ts.map +1 -0
  119. package/dist/incident/incident.repository.js +216 -0
  120. package/dist/incident/incident.repository.js.map +1 -0
  121. package/dist/incident/incident.service.d.ts +71 -0
  122. package/dist/incident/incident.service.d.ts.map +1 -0
  123. package/dist/incident/incident.service.js +217 -0
  124. package/dist/incident/incident.service.js.map +1 -0
  125. package/dist/incident/incident.types.d.ts +115 -0
  126. package/dist/incident/incident.types.d.ts.map +1 -0
  127. package/dist/incident/incident.types.js +6 -0
  128. package/dist/incident/incident.types.js.map +1 -0
  129. package/dist/incident/index.d.ts +13 -0
  130. package/dist/incident/index.d.ts.map +1 -0
  131. package/dist/incident/index.js +13 -0
  132. package/dist/incident/index.js.map +1 -0
  133. package/dist/index.d.ts +26 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +26 -0
  136. package/dist/index.js.map +1 -0
  137. package/dist/llm/index.d.ts +8 -0
  138. package/dist/llm/index.d.ts.map +1 -0
  139. package/dist/llm/index.js +9 -0
  140. package/dist/llm/index.js.map +1 -0
  141. package/dist/llm/llm.service.d.ts +52 -0
  142. package/dist/llm/llm.service.d.ts.map +1 -0
  143. package/dist/llm/llm.service.js +141 -0
  144. package/dist/llm/llm.service.js.map +1 -0
  145. package/dist/llm/llm.types.d.ts +77 -0
  146. package/dist/llm/llm.types.d.ts.map +1 -0
  147. package/dist/llm/llm.types.js +5 -0
  148. package/dist/llm/llm.types.js.map +1 -0
  149. package/dist/llm/providers/anthropic.provider.d.ts +16 -0
  150. package/dist/llm/providers/anthropic.provider.d.ts.map +1 -0
  151. package/dist/llm/providers/anthropic.provider.js +118 -0
  152. package/dist/llm/providers/anthropic.provider.js.map +1 -0
  153. package/dist/llm/providers/base.provider.d.ts +17 -0
  154. package/dist/llm/providers/base.provider.d.ts.map +1 -0
  155. package/dist/llm/providers/base.provider.js +18 -0
  156. package/dist/llm/providers/base.provider.js.map +1 -0
  157. package/dist/llm/providers/custom.provider.d.ts +15 -0
  158. package/dist/llm/providers/custom.provider.d.ts.map +1 -0
  159. package/dist/llm/providers/custom.provider.js +110 -0
  160. package/dist/llm/providers/custom.provider.js.map +1 -0
  161. package/dist/llm/providers/gemini.provider.d.ts +19 -0
  162. package/dist/llm/providers/gemini.provider.d.ts.map +1 -0
  163. package/dist/llm/providers/gemini.provider.js +98 -0
  164. package/dist/llm/providers/gemini.provider.js.map +1 -0
  165. package/dist/llm/providers/index.d.ts +10 -0
  166. package/dist/llm/providers/index.d.ts.map +1 -0
  167. package/dist/llm/providers/index.js +10 -0
  168. package/dist/llm/providers/index.js.map +1 -0
  169. package/dist/llm/providers/openai.provider.d.ts +15 -0
  170. package/dist/llm/providers/openai.provider.d.ts.map +1 -0
  171. package/dist/llm/providers/openai.provider.js +57 -0
  172. package/dist/llm/providers/openai.provider.js.map +1 -0
  173. package/dist/mcp/index.d.ts +13 -0
  174. package/dist/mcp/index.d.ts.map +1 -0
  175. package/dist/mcp/index.js +17 -0
  176. package/dist/mcp/index.js.map +1 -0
  177. package/dist/mcp/mcp.client.d.ts +57 -0
  178. package/dist/mcp/mcp.client.d.ts.map +1 -0
  179. package/dist/mcp/mcp.client.js +150 -0
  180. package/dist/mcp/mcp.client.js.map +1 -0
  181. package/dist/mcp/mcp.service.d.ts +64 -0
  182. package/dist/mcp/mcp.service.d.ts.map +1 -0
  183. package/dist/mcp/mcp.service.js +207 -0
  184. package/dist/mcp/mcp.service.js.map +1 -0
  185. package/dist/mcp/mcp.types.d.ts +142 -0
  186. package/dist/mcp/mcp.types.d.ts.map +1 -0
  187. package/dist/mcp/mcp.types.js +6 -0
  188. package/dist/mcp/mcp.types.js.map +1 -0
  189. package/dist/mcp/presets/common-sources.d.ts +28 -0
  190. package/dist/mcp/presets/common-sources.d.ts.map +1 -0
  191. package/dist/mcp/presets/common-sources.js +114 -0
  192. package/dist/mcp/presets/common-sources.js.map +1 -0
  193. package/dist/mcp/presets/index.d.ts +5 -0
  194. package/dist/mcp/presets/index.d.ts.map +1 -0
  195. package/dist/mcp/presets/index.js +5 -0
  196. package/dist/mcp/presets/index.js.map +1 -0
  197. package/dist/mcp/source.repository.d.ts +68 -0
  198. package/dist/mcp/source.repository.d.ts.map +1 -0
  199. package/dist/mcp/source.repository.js +114 -0
  200. package/dist/mcp/source.repository.js.map +1 -0
  201. package/dist/mcp/source.service.d.ts +74 -0
  202. package/dist/mcp/source.service.d.ts.map +1 -0
  203. package/dist/mcp/source.service.js +181 -0
  204. package/dist/mcp/source.service.js.map +1 -0
  205. package/dist/mcp/transports/http.transport.d.ts +45 -0
  206. package/dist/mcp/transports/http.transport.d.ts.map +1 -0
  207. package/dist/mcp/transports/http.transport.js +64 -0
  208. package/dist/mcp/transports/http.transport.js.map +1 -0
  209. package/dist/mcp/transports/index.d.ts +7 -0
  210. package/dist/mcp/transports/index.d.ts.map +1 -0
  211. package/dist/mcp/transports/index.js +7 -0
  212. package/dist/mcp/transports/index.js.map +1 -0
  213. package/dist/mcp/transports/stdio.transport.d.ts +21 -0
  214. package/dist/mcp/transports/stdio.transport.d.ts.map +1 -0
  215. package/dist/mcp/transports/stdio.transport.js +29 -0
  216. package/dist/mcp/transports/stdio.transport.js.map +1 -0
  217. package/dist/memory/index.d.ts +10 -0
  218. package/dist/memory/index.d.ts.map +1 -0
  219. package/dist/memory/index.js +10 -0
  220. package/dist/memory/index.js.map +1 -0
  221. package/dist/memory/memory.repository.d.ts +62 -0
  222. package/dist/memory/memory.repository.d.ts.map +1 -0
  223. package/dist/memory/memory.repository.js +148 -0
  224. package/dist/memory/memory.repository.js.map +1 -0
  225. package/dist/memory/memory.service.d.ts +63 -0
  226. package/dist/memory/memory.service.d.ts.map +1 -0
  227. package/dist/memory/memory.service.js +263 -0
  228. package/dist/memory/memory.service.js.map +1 -0
  229. package/dist/memory/memory.types.d.ts +104 -0
  230. package/dist/memory/memory.types.d.ts.map +1 -0
  231. package/dist/memory/memory.types.js +8 -0
  232. package/dist/memory/memory.types.js.map +1 -0
  233. package/dist/qdrant/index.d.ts +8 -0
  234. package/dist/qdrant/index.d.ts.map +1 -0
  235. package/dist/qdrant/index.js +6 -0
  236. package/dist/qdrant/index.js.map +1 -0
  237. package/dist/qdrant/qdrant.service.d.ts +63 -0
  238. package/dist/qdrant/qdrant.service.d.ts.map +1 -0
  239. package/dist/qdrant/qdrant.service.js +201 -0
  240. package/dist/qdrant/qdrant.service.js.map +1 -0
  241. package/dist/qdrant/qdrant.types.d.ts +55 -0
  242. package/dist/qdrant/qdrant.types.d.ts.map +1 -0
  243. package/dist/qdrant/qdrant.types.js +6 -0
  244. package/dist/qdrant/qdrant.types.js.map +1 -0
  245. package/dist/tools/core-tools.d.ts +7 -0
  246. package/dist/tools/core-tools.d.ts.map +1 -0
  247. package/dist/tools/core-tools.js +52 -0
  248. package/dist/tools/core-tools.js.map +1 -0
  249. package/dist/tools/index.d.ts +4 -0
  250. package/dist/tools/index.d.ts.map +1 -0
  251. package/dist/tools/index.js +3 -0
  252. package/dist/tools/index.js.map +1 -0
  253. package/dist/tools/tool-registry.d.ts +51 -0
  254. package/dist/tools/tool-registry.d.ts.map +1 -0
  255. package/dist/tools/tool-registry.js +50 -0
  256. package/dist/tools/tool-registry.js.map +1 -0
  257. package/dist/workflow/actions/base.action.d.ts +50 -0
  258. package/dist/workflow/actions/base.action.d.ts.map +1 -0
  259. package/dist/workflow/actions/base.action.js +59 -0
  260. package/dist/workflow/actions/base.action.js.map +1 -0
  261. package/dist/workflow/actions/incident.action.d.ts +13 -0
  262. package/dist/workflow/actions/incident.action.d.ts.map +1 -0
  263. package/dist/workflow/actions/incident.action.js +70 -0
  264. package/dist/workflow/actions/incident.action.js.map +1 -0
  265. package/dist/workflow/actions/index.d.ts +9 -0
  266. package/dist/workflow/actions/index.d.ts.map +1 -0
  267. package/dist/workflow/actions/index.js +11 -0
  268. package/dist/workflow/actions/index.js.map +1 -0
  269. package/dist/workflow/actions/notify.action.d.ts +18 -0
  270. package/dist/workflow/actions/notify.action.d.ts.map +1 -0
  271. package/dist/workflow/actions/notify.action.js +106 -0
  272. package/dist/workflow/actions/notify.action.js.map +1 -0
  273. package/dist/workflow/actions/report.action.d.ts +13 -0
  274. package/dist/workflow/actions/report.action.d.ts.map +1 -0
  275. package/dist/workflow/actions/report.action.js +64 -0
  276. package/dist/workflow/actions/report.action.js.map +1 -0
  277. package/dist/workflow/index.d.ts +10 -0
  278. package/dist/workflow/index.d.ts.map +1 -0
  279. package/dist/workflow/index.js +11 -0
  280. package/dist/workflow/index.js.map +1 -0
  281. package/dist/workflow/workflow.repository.d.ts +90 -0
  282. package/dist/workflow/workflow.repository.d.ts.map +1 -0
  283. package/dist/workflow/workflow.repository.js +238 -0
  284. package/dist/workflow/workflow.repository.js.map +1 -0
  285. package/dist/workflow/workflow.service.d.ts +98 -0
  286. package/dist/workflow/workflow.service.d.ts.map +1 -0
  287. package/dist/workflow/workflow.service.js +374 -0
  288. package/dist/workflow/workflow.service.js.map +1 -0
  289. package/dist/workflow/workflow.types.d.ts +146 -0
  290. package/dist/workflow/workflow.types.d.ts.map +1 -0
  291. package/dist/workflow/workflow.types.js +8 -0
  292. package/dist/workflow/workflow.types.js.map +1 -0
  293. package/package.json +67 -0
  294. package/prisma/schema.prisma +551 -0
  295. package/scripts/prisma-sync.mjs +187 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/custom.provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAerD,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,YAAY,aAAa;gBAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAOzD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA8CtE,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC;CA4D7E"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Custom Provider
3
+ * Implementation for custom/self-hosted LLM endpoints
4
+ * Compatible with OpenAI-like APIs
5
+ */
6
+ import { BaseLLMProvider } from './base.provider.js';
7
+ export class CustomProvider extends BaseLLMProvider {
8
+ provider = 'custom';
9
+ defaultModel = 'default';
10
+ constructor(apiKey, logger, baseUrl) {
11
+ super(apiKey, logger, baseUrl);
12
+ if (!baseUrl) {
13
+ throw new Error('[CustomProvider] baseUrl is required for custom endpoints');
14
+ }
15
+ }
16
+ async complete(request) {
17
+ const startTime = Date.now();
18
+ const model = this.getModel(request);
19
+ this.logger.debug('Custom LLM completion request', {
20
+ model,
21
+ messageCount: request.messages.length,
22
+ baseUrl: this.baseUrl
23
+ });
24
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
25
+ method: 'POST',
26
+ headers: {
27
+ 'Content-Type': 'application/json',
28
+ 'Authorization': `Bearer ${this.apiKey}`,
29
+ },
30
+ body: JSON.stringify({
31
+ model,
32
+ messages: request.messages,
33
+ temperature: request.temperature ?? 0.7,
34
+ max_tokens: request.maxTokens,
35
+ stream: false,
36
+ }),
37
+ });
38
+ if (!response.ok) {
39
+ const error = await response.text();
40
+ throw new Error(`[CustomProvider] API error: ${response.status} - ${error}`);
41
+ }
42
+ const data = await response.json();
43
+ const latencyMs = Date.now() - startTime;
44
+ return {
45
+ content: data.choices[0]?.message?.content || '',
46
+ model,
47
+ tokens: {
48
+ prompt: data.usage?.prompt_tokens || 0,
49
+ completion: data.usage?.completion_tokens || 0,
50
+ total: data.usage?.total_tokens || 0,
51
+ },
52
+ latencyMs,
53
+ provider: this.provider,
54
+ };
55
+ }
56
+ async *stream(request) {
57
+ const model = this.getModel(request);
58
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
59
+ method: 'POST',
60
+ headers: {
61
+ 'Content-Type': 'application/json',
62
+ 'Authorization': `Bearer ${this.apiKey}`,
63
+ },
64
+ body: JSON.stringify({
65
+ model,
66
+ messages: request.messages,
67
+ temperature: request.temperature ?? 0.7,
68
+ max_tokens: request.maxTokens,
69
+ stream: true,
70
+ }),
71
+ });
72
+ if (!response.ok) {
73
+ const error = await response.text();
74
+ throw new Error(`[CustomProvider] API error: ${response.status} - ${error}`);
75
+ }
76
+ if (!response.body) {
77
+ throw new Error('[CustomProvider] No response body for streaming');
78
+ }
79
+ const reader = response.body.getReader();
80
+ const decoder = new TextDecoder();
81
+ let buffer = '';
82
+ while (true) {
83
+ const { done, value } = await reader.read();
84
+ if (done) {
85
+ yield { content: '', done: true };
86
+ break;
87
+ }
88
+ buffer += decoder.decode(value, { stream: true });
89
+ const lines = buffer.split('\n');
90
+ buffer = lines.pop() || '';
91
+ for (const line of lines) {
92
+ const trimmed = line.trim();
93
+ if (!trimmed || trimmed === 'data: [DONE]')
94
+ continue;
95
+ if (trimmed.startsWith('data: ')) {
96
+ try {
97
+ const data = JSON.parse(trimmed.slice(6));
98
+ const content = data.choices[0]?.delta?.content || '';
99
+ const finished = data.choices[0]?.finish_reason !== null;
100
+ yield { content, done: finished };
101
+ }
102
+ catch {
103
+ // Skip malformed JSON
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ //# sourceMappingURL=custom.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.provider.js","sourceRoot":"","sources":["../../../src/llm/providers/custom.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Gemini Provider
3
+ * Implementation for Google Gemini models
4
+ */
5
+ import type { LLMCompletionRequest, LLMCompletionResponse, LLMStreamChunk, LoggerLike } from '../llm.types.js';
6
+ import { BaseLLMProvider } from './base.provider.js';
7
+ export declare class GeminiProvider extends BaseLLMProvider {
8
+ readonly provider: "gemini";
9
+ readonly defaultModel = "gemini-pro";
10
+ private client;
11
+ constructor(apiKey: string, logger: LoggerLike);
12
+ complete(request: LLMCompletionRequest): Promise<LLMCompletionResponse>;
13
+ stream(request: LLMCompletionRequest): AsyncGenerator<LLMStreamChunk>;
14
+ /**
15
+ * Estimate token count (rough approximation)
16
+ */
17
+ private estimateTokens;
18
+ }
19
+ //# sourceMappingURL=gemini.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/gemini.provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,YAAY,gBAAgB;IAErC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAKxC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6DtE,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC;IAqC5E;;OAEG;IACH,OAAO,CAAC,cAAc;CAIvB"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Gemini Provider
3
+ * Implementation for Google Gemini models
4
+ */
5
+ import { GoogleGenerativeAI } from '@google/generative-ai';
6
+ import { BaseLLMProvider } from './base.provider.js';
7
+ export class GeminiProvider extends BaseLLMProvider {
8
+ provider = 'gemini';
9
+ defaultModel = 'gemini-pro';
10
+ client;
11
+ constructor(apiKey, logger) {
12
+ super(apiKey, logger);
13
+ this.client = new GoogleGenerativeAI(apiKey);
14
+ }
15
+ async complete(request) {
16
+ const startTime = Date.now();
17
+ const modelName = this.getModel(request);
18
+ this.logger.debug('Gemini completion request', {
19
+ model: modelName,
20
+ messageCount: request.messages.length
21
+ });
22
+ const model = this.client.getGenerativeModel({ model: modelName });
23
+ // Convert messages to Gemini format
24
+ const _sysMsg = request.messages.find(m => m.role === 'system');
25
+ const systemMessage = typeof _sysMsg?.content === 'string' ? _sysMsg.content : undefined;
26
+ const chatMessages = request.messages
27
+ .filter(m => m.role !== 'system')
28
+ .map(m => ({
29
+ role: m.role === 'assistant' ? 'model' : 'user',
30
+ parts: [{ text: typeof m.content === 'string' ? m.content : JSON.stringify(m.content) }],
31
+ }));
32
+ // Start chat with system instruction if present
33
+ const chat = model.startChat({
34
+ history: chatMessages.slice(0, -1),
35
+ generationConfig: {
36
+ temperature: request.temperature ?? 0.7,
37
+ maxOutputTokens: request.maxTokens,
38
+ },
39
+ ...(systemMessage ? { systemInstruction: systemMessage } : {}),
40
+ });
41
+ // Get the last message to send
42
+ const lastMessage = chatMessages[chatMessages.length - 1];
43
+ const result = await chat.sendMessage(lastMessage?.parts[0]?.text || '');
44
+ const response = result.response;
45
+ const latencyMs = Date.now() - startTime;
46
+ // Gemini doesn't provide token counts directly, estimate based on text
47
+ const content = response.text();
48
+ const estimatedPromptTokens = this.estimateTokens(request.messages.map(m => m.content).join(' '));
49
+ const estimatedCompletionTokens = this.estimateTokens(content);
50
+ return {
51
+ content,
52
+ model: modelName,
53
+ tokens: {
54
+ prompt: estimatedPromptTokens,
55
+ completion: estimatedCompletionTokens,
56
+ total: estimatedPromptTokens + estimatedCompletionTokens,
57
+ },
58
+ latencyMs,
59
+ provider: this.provider,
60
+ };
61
+ }
62
+ async *stream(request) {
63
+ const modelName = this.getModel(request);
64
+ const model = this.client.getGenerativeModel({ model: modelName });
65
+ // Convert messages to Gemini format
66
+ const _sysMsg = request.messages.find(m => m.role === 'system');
67
+ const systemMessage = typeof _sysMsg?.content === 'string' ? _sysMsg.content : undefined;
68
+ const chatMessages = request.messages
69
+ .filter(m => m.role !== 'system')
70
+ .map(m => ({
71
+ role: m.role === 'assistant' ? 'model' : 'user',
72
+ parts: [{ text: typeof m.content === 'string' ? m.content : JSON.stringify(m.content) }],
73
+ }));
74
+ const chat = model.startChat({
75
+ history: chatMessages.slice(0, -1),
76
+ generationConfig: {
77
+ temperature: request.temperature ?? 0.7,
78
+ maxOutputTokens: request.maxTokens,
79
+ },
80
+ ...(systemMessage ? { systemInstruction: systemMessage } : {}),
81
+ });
82
+ const lastMessage = chatMessages[chatMessages.length - 1];
83
+ const result = await chat.sendMessageStream(lastMessage?.parts[0]?.text || '');
84
+ for await (const chunk of result.stream) {
85
+ const text = chunk.text();
86
+ yield { content: text, done: false };
87
+ }
88
+ yield { content: '', done: true };
89
+ }
90
+ /**
91
+ * Estimate token count (rough approximation)
92
+ */
93
+ estimateTokens(text) {
94
+ // Rough estimate: ~4 characters per token for English
95
+ return Math.ceil(text.length / 4);
96
+ }
97
+ }
98
+ //# sourceMappingURL=gemini.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../../../src/llm/providers/gemini.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * LLM Providers Index
3
+ * Export all LLM providers
4
+ */
5
+ export { BaseLLMProvider } from './base.provider.js';
6
+ export { OpenAIProvider } from './openai.provider.js';
7
+ export { AnthropicProvider } from './anthropic.provider.js';
8
+ export { GeminiProvider } from './gemini.provider.js';
9
+ export { CustomProvider } from './custom.provider.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * LLM Providers Index
3
+ * Export all LLM providers
4
+ */
5
+ export { BaseLLMProvider } from './base.provider.js';
6
+ export { OpenAIProvider } from './openai.provider.js';
7
+ export { AnthropicProvider } from './anthropic.provider.js';
8
+ export { GeminiProvider } from './gemini.provider.js';
9
+ export { CustomProvider } from './custom.provider.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/llm/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * OpenAI Provider
3
+ * Implementation for OpenAI GPT models
4
+ */
5
+ import type { LLMCompletionRequest, LLMCompletionResponse, LLMStreamChunk, LoggerLike } from '../llm.types.js';
6
+ import { BaseLLMProvider } from './base.provider.js';
7
+ export declare class OpenAIProvider extends BaseLLMProvider {
8
+ readonly provider: "openai";
9
+ readonly defaultModel = "gpt-4-turbo-preview";
10
+ private client;
11
+ constructor(apiKey: string, logger: LoggerLike);
12
+ complete(request: LLMCompletionRequest): Promise<LLMCompletionResponse>;
13
+ stream(request: LLMCompletionRequest): AsyncGenerator<LLMStreamChunk>;
14
+ }
15
+ //# sourceMappingURL=openai.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/openai.provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,YAAY,yBAAyB;IAE9C,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAKxC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA+BtE,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC;CAkB7E"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * OpenAI Provider
3
+ * Implementation for OpenAI GPT models
4
+ */
5
+ import OpenAI from 'openai';
6
+ import { BaseLLMProvider } from './base.provider.js';
7
+ export class OpenAIProvider extends BaseLLMProvider {
8
+ provider = 'openai';
9
+ defaultModel = 'gpt-4-turbo-preview';
10
+ client;
11
+ constructor(apiKey, logger) {
12
+ super(apiKey, logger);
13
+ this.client = new OpenAI({ apiKey });
14
+ }
15
+ async complete(request) {
16
+ const startTime = Date.now();
17
+ const model = this.getModel(request);
18
+ this.logger.debug('OpenAI completion request', {
19
+ model,
20
+ messageCount: request.messages.length
21
+ });
22
+ const response = await this.client.chat.completions.create({
23
+ model,
24
+ messages: request.messages.map(m => ({ role: m.role, content: typeof m.content === 'string' ? m.content : JSON.stringify(m.content) })),
25
+ temperature: request.temperature ?? 0.7,
26
+ max_tokens: request.maxTokens,
27
+ });
28
+ const latencyMs = Date.now() - startTime;
29
+ return {
30
+ content: response.choices[0]?.message?.content || '',
31
+ model,
32
+ tokens: {
33
+ prompt: response.usage?.prompt_tokens || 0,
34
+ completion: response.usage?.completion_tokens || 0,
35
+ total: response.usage?.total_tokens || 0,
36
+ },
37
+ latencyMs,
38
+ provider: this.provider,
39
+ };
40
+ }
41
+ async *stream(request) {
42
+ const model = this.getModel(request);
43
+ const stream = await this.client.chat.completions.create({
44
+ model,
45
+ messages: request.messages.map(m => ({ role: m.role, content: typeof m.content === 'string' ? m.content : JSON.stringify(m.content) })),
46
+ temperature: request.temperature ?? 0.7,
47
+ max_tokens: request.maxTokens,
48
+ stream: true,
49
+ });
50
+ for await (const chunk of stream) {
51
+ const content = chunk.choices[0]?.delta?.content || '';
52
+ const done = chunk.choices[0]?.finish_reason !== null;
53
+ yield { content, done };
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=openai.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.provider.js","sourceRoot":"","sources":["../../../src/llm/providers/openai.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * MCP Module Index
3
+ * Export all MCP service components
4
+ */
5
+ export type { McpServerConfig, McpTransport, McpServerState, McpTool, McpResource, McpPrompt, JsonSchema, McpToolCallRequest, McpToolCallResult, McpResourceReadRequest, McpResourceReadResult, McpServiceDependencies, McpServiceLike, } from './mcp.types.js';
6
+ export type { LoggerLike as McpLoggerLike } from './mcp.types.js';
7
+ export { McpService, initMcpService, getMcpServiceDeps, } from './mcp.service.js';
8
+ export { McpClient } from './mcp.client.js';
9
+ export { createStdioTransport, validateStdioConfig, HttpTransport, createHttpTransport, validateHttpConfig, } from './transports/index.js';
10
+ export { SourceRepository, initSourceRepository, type CreateSourceDto, type UpdateSourceDto, type SourceRepositoryDependencies, } from './source.repository.js';
11
+ export { SourceService, initSourceService, getSourceServiceDeps, type SourceServiceDependencies, type TestConnectionResult, } from './source.service.js';
12
+ export { COMMON_SOURCE_PRESETS, getPreset, getPresetsByCategory, type SourcePreset, } from './presets/index.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,4BAA4B,GAClC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,oBAAoB,EACpB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * MCP Module Index
3
+ * Export all MCP service components
4
+ */
5
+ // MCP Service
6
+ export { McpService, initMcpService, getMcpServiceDeps, } from './mcp.service.js';
7
+ // MCP Client
8
+ export { McpClient } from './mcp.client.js';
9
+ // Transports
10
+ export { createStdioTransport, validateStdioConfig, HttpTransport, createHttpTransport, validateHttpConfig, } from './transports/index.js';
11
+ // Source Repository
12
+ export { SourceRepository, initSourceRepository, } from './source.repository.js';
13
+ // Source Service
14
+ export { SourceService, initSourceService, getSourceServiceDeps, } from './source.service.js';
15
+ // Presets
16
+ export { COMMON_SOURCE_PRESETS, getPreset, getPresetsByCategory, } from './presets/index.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,cAAc;AACd,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,aAAa;AACb,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAIrB,MAAM,wBAAwB,CAAC;AAEhC,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAE7B,UAAU;AACV,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,oBAAoB,GAErB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * MCP Client
3
+ * Wrapper around the MCP SDK client for connecting to MCP servers
4
+ */
5
+ import type { McpServerConfig, McpTool, McpResource, McpPrompt, McpToolCallResult, McpResourceReadResult, LoggerLike } from './mcp.types.js';
6
+ export declare class McpClient {
7
+ private client;
8
+ private transport;
9
+ private connected;
10
+ private logger;
11
+ private serverId;
12
+ constructor(serverId: string, logger: LoggerLike);
13
+ /**
14
+ * Connect to MCP server via stdio
15
+ */
16
+ connectStdio(config: McpServerConfig): Promise<void>;
17
+ /**
18
+ * Disconnect from MCP server
19
+ */
20
+ disconnect(): Promise<void>;
21
+ /**
22
+ * Check if connected
23
+ */
24
+ isConnected(): boolean;
25
+ /**
26
+ * List available tools
27
+ */
28
+ listTools(): Promise<McpTool[]>;
29
+ /**
30
+ * List available resources
31
+ */
32
+ listResources(): Promise<McpResource[]>;
33
+ /**
34
+ * List available prompts
35
+ */
36
+ listPrompts(): Promise<McpPrompt[]>;
37
+ /**
38
+ * Call a tool
39
+ */
40
+ callTool(toolName: string, args: Record<string, unknown>): Promise<McpToolCallResult>;
41
+ /**
42
+ * Read a resource
43
+ */
44
+ readResource(uri: string): Promise<McpResourceReadResult>;
45
+ /**
46
+ * Get a prompt
47
+ */
48
+ getPrompt(name: string, args?: Record<string, string>): Promise<{
49
+ description?: string;
50
+ messages: Array<{
51
+ role: string;
52
+ content: string;
53
+ }>;
54
+ }>;
55
+ private ensureConnected;
56
+ }
57
+ //# sourceMappingURL=mcp.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.client.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAShD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAarC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAc7C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAazC;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC;IA0B7B;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiB/D;;OAEG;IACG,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACpD,CAAC;IAkBF,OAAO,CAAC,eAAe;CAKxB"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * MCP Client
3
+ * Wrapper around the MCP SDK client for connecting to MCP servers
4
+ */
5
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
6
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
7
+ export class McpClient {
8
+ client;
9
+ transport = null;
10
+ connected = false;
11
+ logger;
12
+ serverId;
13
+ constructor(serverId, logger) {
14
+ this.serverId = serverId;
15
+ this.logger = logger;
16
+ this.client = new Client({ name: 'mega-agent', version: '1.0.0' }, { capabilities: {} });
17
+ }
18
+ /**
19
+ * Connect to MCP server via stdio
20
+ */
21
+ async connectStdio(config) {
22
+ if (!config.command) {
23
+ throw new Error('Command is required for stdio transport');
24
+ }
25
+ this.transport = new StdioClientTransport({
26
+ command: config.command,
27
+ args: config.args || [],
28
+ env: config.env,
29
+ });
30
+ await this.client.connect(this.transport);
31
+ this.connected = true;
32
+ this.logger.info('MCP client connected', { serverId: this.serverId });
33
+ }
34
+ /**
35
+ * Disconnect from MCP server
36
+ */
37
+ async disconnect() {
38
+ if (this.transport) {
39
+ await this.client.close();
40
+ this.transport = null;
41
+ this.connected = false;
42
+ this.logger.info('MCP client disconnected', { serverId: this.serverId });
43
+ }
44
+ }
45
+ /**
46
+ * Check if connected
47
+ */
48
+ isConnected() {
49
+ return this.connected;
50
+ }
51
+ /**
52
+ * List available tools
53
+ */
54
+ async listTools() {
55
+ this.ensureConnected();
56
+ const result = await this.client.listTools();
57
+ return result.tools.map(tool => ({
58
+ serverId: this.serverId,
59
+ name: tool.name,
60
+ description: tool.description || '',
61
+ inputSchema: tool.inputSchema,
62
+ }));
63
+ }
64
+ /**
65
+ * List available resources
66
+ */
67
+ async listResources() {
68
+ this.ensureConnected();
69
+ const result = await this.client.listResources();
70
+ return result.resources.map(resource => ({
71
+ serverId: this.serverId,
72
+ uri: resource.uri,
73
+ name: resource.name,
74
+ description: resource.description,
75
+ mimeType: resource.mimeType,
76
+ }));
77
+ }
78
+ /**
79
+ * List available prompts
80
+ */
81
+ async listPrompts() {
82
+ this.ensureConnected();
83
+ const result = await this.client.listPrompts();
84
+ return result.prompts.map(prompt => ({
85
+ serverId: this.serverId,
86
+ name: prompt.name,
87
+ description: prompt.description,
88
+ arguments: prompt.arguments,
89
+ }));
90
+ }
91
+ /**
92
+ * Call a tool
93
+ */
94
+ async callTool(toolName, args) {
95
+ this.ensureConnected();
96
+ this.logger.debug('Calling MCP tool', { serverId: this.serverId, toolName });
97
+ const result = await this.client.callTool({ name: toolName, arguments: args });
98
+ // Type assertion for SDK response
99
+ const content = result.content;
100
+ return {
101
+ content: content.map(c => ({
102
+ type: c.type,
103
+ text: c.text,
104
+ data: c.data,
105
+ mimeType: c.mimeType,
106
+ })),
107
+ isError: result.isError,
108
+ };
109
+ }
110
+ /**
111
+ * Read a resource
112
+ */
113
+ async readResource(uri) {
114
+ this.ensureConnected();
115
+ this.logger.debug('Reading MCP resource', { serverId: this.serverId, uri });
116
+ const result = await this.client.readResource({ uri });
117
+ return {
118
+ contents: result.contents.map(c => ({
119
+ uri: c.uri,
120
+ mimeType: c.mimeType,
121
+ text: c.text,
122
+ blob: c.blob,
123
+ })),
124
+ };
125
+ }
126
+ /**
127
+ * Get a prompt
128
+ */
129
+ async getPrompt(name, args) {
130
+ this.ensureConnected();
131
+ const result = await this.client.getPrompt({ name, arguments: args });
132
+ return {
133
+ description: result.description,
134
+ messages: result.messages.map(m => ({
135
+ role: m.role,
136
+ content: typeof m.content === 'string'
137
+ ? m.content
138
+ : Array.isArray(m.content)
139
+ ? m.content.map((c) => c.text || '').join('')
140
+ : String(m.content),
141
+ })),
142
+ };
143
+ }
144
+ ensureConnected() {
145
+ if (!this.connected) {
146
+ throw new Error(`MCP client not connected: ${this.serverId}`);
147
+ }
148
+ }
149
+ }
150
+ //# sourceMappingURL=mcp.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.client.js","sourceRoot":"","sources":["../../src/mcp/mcp.client.ts"],"names":[],"mappings":"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"}