@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,90 @@
1
+ /**
2
+ * Structured Response Types
3
+ * Defines the rich response format for the Agent Workbench
4
+ */
5
+ export type ResponseType = 'answer' | 'table' | 'chart' | 'agent_created' | 'report' | 'error';
6
+ export type QualitySignal = 'strong' | 'moderate' | 'weak';
7
+ export type SourceType = 'memory' | 'database' | 'api' | 'tool' | 'document';
8
+ export interface StructuredResponse {
9
+ /** Message type determines frontend card rendering */
10
+ type: ResponseType;
11
+ /** Markdown content (always present) */
12
+ content: string;
13
+ /** Type-specific structured data */
14
+ data?: TableData | ChartData | AgentData | Record<string, unknown>;
15
+ /** Response quality assessment */
16
+ quality?: QualityAssessment;
17
+ /** Sources used to generate this response */
18
+ sources?: ResponseSource[];
19
+ /** Tools called during generation */
20
+ toolsUsed?: ToolUsage[];
21
+ /** Memory operations */
22
+ memory?: MemoryAction;
23
+ /** Suggested artifact to save */
24
+ artifact?: SuggestedArtifact;
25
+ }
26
+ export interface TableData {
27
+ headers: string[];
28
+ rows: (string | number | null)[][];
29
+ totalRows?: number;
30
+ }
31
+ export interface ChartData {
32
+ chartType: 'bar' | 'line' | 'pie' | 'area';
33
+ labels: string[];
34
+ datasets: Array<{
35
+ label: string;
36
+ data: number[];
37
+ color?: string;
38
+ }>;
39
+ }
40
+ export interface AgentData {
41
+ agentType: string;
42
+ description: string;
43
+ trigger?: string;
44
+ condition?: string;
45
+ action?: string;
46
+ }
47
+ export interface QualityAssessment {
48
+ signal: QualitySignal;
49
+ confidence: number;
50
+ reasoning?: string;
51
+ }
52
+ export interface ResponseSource {
53
+ name: string;
54
+ type: SourceType;
55
+ relevance: number;
56
+ }
57
+ export interface ToolUsage {
58
+ name: string;
59
+ description: string;
60
+ executionTimeMs?: number;
61
+ }
62
+ export interface MemoryAction {
63
+ saved?: boolean;
64
+ savedContent?: string;
65
+ referencedIds?: string[];
66
+ }
67
+ export interface SuggestedArtifact {
68
+ suggestedTitle: string;
69
+ type: 'TABLE' | 'CHART' | 'REPORT' | 'CODE' | 'DATASET';
70
+ data: unknown;
71
+ }
72
+ export interface ResponseParseContext {
73
+ memoriesUsed: Array<{
74
+ id: string;
75
+ title: string;
76
+ score: number;
77
+ }>;
78
+ toolsCalled: Array<{
79
+ name: string;
80
+ durationMs: number;
81
+ }>;
82
+ modelUsed: string;
83
+ tokens: {
84
+ prompt: number;
85
+ completion: number;
86
+ total: number;
87
+ };
88
+ latencyMs: number;
89
+ }
90
+ //# sourceMappingURL=response.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.types.d.ts","sourceRoot":"","sources":["../../src/chat/response.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Structured Response Types
3
+ * Defines the rich response format for the Agent Workbench
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=response.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.types.js","sourceRoot":"","sources":["../../src/chat/response.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Custom error classes for MegaAgent services
3
+ */
4
+ export declare class MegaAgentError extends Error {
5
+ readonly code: string;
6
+ readonly statusCode: number;
7
+ readonly details?: Record<string, unknown> | undefined;
8
+ constructor(message: string, code: string, statusCode?: number, details?: Record<string, unknown> | undefined);
9
+ toJSON(): {
10
+ error: string;
11
+ message: string;
12
+ details: Record<string, unknown> | undefined;
13
+ };
14
+ }
15
+ export declare class MemoryNotFoundError extends MegaAgentError {
16
+ constructor(memoryId: string);
17
+ }
18
+ export declare class MemorySearchError extends MegaAgentError {
19
+ constructor(message: string, details?: Record<string, unknown>);
20
+ }
21
+ export declare class EmbeddingError extends MegaAgentError {
22
+ constructor(message: string);
23
+ }
24
+ export declare class ChatNotFoundError extends MegaAgentError {
25
+ constructor(chatId: string);
26
+ }
27
+ export declare class ChatAccessDeniedError extends MegaAgentError {
28
+ constructor(chatId: string);
29
+ }
30
+ export declare class MessageTooLongError extends MegaAgentError {
31
+ constructor(maxLength: number);
32
+ }
33
+ export declare class LLMError extends MegaAgentError {
34
+ constructor(provider: string, message: string);
35
+ }
36
+ export declare class LLMRateLimitError extends MegaAgentError {
37
+ constructor(provider: string, retryAfter?: number);
38
+ }
39
+ export declare class LLMContextTooLongError extends MegaAgentError {
40
+ constructor(provider: string, maxTokens: number);
41
+ }
42
+ export declare class ArtifactNotFoundError extends MegaAgentError {
43
+ constructor(artifactId: string);
44
+ }
45
+ export declare class ArtifactValidationError extends MegaAgentError {
46
+ constructor(errors: string[]);
47
+ }
48
+ export declare class McpConnectionError extends MegaAgentError {
49
+ constructor(serverId: string, message: string);
50
+ }
51
+ export declare class McpToolError extends MegaAgentError {
52
+ constructor(toolName: string, message: string);
53
+ }
54
+ export declare class QdrantError extends MegaAgentError {
55
+ constructor(message: string);
56
+ }
57
+ export declare class QdrantConnectionError extends MegaAgentError {
58
+ constructor();
59
+ }
60
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/common/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,MAAM;aAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHjD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAOnD,MAAM;;;;;CAOP;AAGD,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,QAAQ,EAAE,MAAM;CAG7B;AAED,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D;AAED,qBAAa,cAAe,SAAQ,cAAc;gBACpC,OAAO,EAAE,MAAM;CAG5B;AAGD,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,SAAS,EAAE,MAAM;CAG9B;AAGD,qBAAa,QAAS,SAAQ,cAAc;gBAC9B,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG9C;AAED,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQlD;AAED,qBAAa,sBAAuB,SAAQ,cAAc;gBAC5C,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAQhD;AAGD,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,uBAAwB,SAAQ,cAAc;gBAC7C,MAAM,EAAE,MAAM,EAAE;CAG7B;AAGD,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG9C;AAED,qBAAa,YAAa,SAAQ,cAAc;gBAClC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG9C;AAGD,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,qBAAsB,SAAQ,cAAc;;CAIxD"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Custom error classes for MegaAgent services
3
+ */
4
+ export class MegaAgentError extends Error {
5
+ code;
6
+ statusCode;
7
+ details;
8
+ constructor(message, code, statusCode = 500, details) {
9
+ super(message);
10
+ this.code = code;
11
+ this.statusCode = statusCode;
12
+ this.details = details;
13
+ this.name = 'MegaAgentError';
14
+ Error.captureStackTrace(this, this.constructor);
15
+ }
16
+ toJSON() {
17
+ return {
18
+ error: this.code,
19
+ message: this.message,
20
+ details: this.details,
21
+ };
22
+ }
23
+ }
24
+ // Memory Errors
25
+ export class MemoryNotFoundError extends MegaAgentError {
26
+ constructor(memoryId) {
27
+ super(`Memory not found: ${memoryId}`, 'MEMORY_NOT_FOUND', 404);
28
+ }
29
+ }
30
+ export class MemorySearchError extends MegaAgentError {
31
+ constructor(message, details) {
32
+ super(message, 'MEMORY_SEARCH_ERROR', 500, details);
33
+ }
34
+ }
35
+ export class EmbeddingError extends MegaAgentError {
36
+ constructor(message) {
37
+ super(message, 'EMBEDDING_ERROR', 500);
38
+ }
39
+ }
40
+ // Chat Errors
41
+ export class ChatNotFoundError extends MegaAgentError {
42
+ constructor(chatId) {
43
+ super(`Chat not found: ${chatId}`, 'CHAT_NOT_FOUND', 404);
44
+ }
45
+ }
46
+ export class ChatAccessDeniedError extends MegaAgentError {
47
+ constructor(chatId) {
48
+ super(`Access denied to chat: ${chatId}`, 'CHAT_ACCESS_DENIED', 403);
49
+ }
50
+ }
51
+ export class MessageTooLongError extends MegaAgentError {
52
+ constructor(maxLength) {
53
+ super(`Message exceeds maximum length of ${maxLength}`, 'MESSAGE_TOO_LONG', 400);
54
+ }
55
+ }
56
+ // LLM Errors
57
+ export class LLMError extends MegaAgentError {
58
+ constructor(provider, message) {
59
+ super(`LLM error (${provider}): ${message}`, 'LLM_ERROR', 502);
60
+ }
61
+ }
62
+ export class LLMRateLimitError extends MegaAgentError {
63
+ constructor(provider, retryAfter) {
64
+ super(`LLM rate limit exceeded (${provider})`, 'LLM_RATE_LIMIT', 429, retryAfter ? { retryAfter } : undefined);
65
+ }
66
+ }
67
+ export class LLMContextTooLongError extends MegaAgentError {
68
+ constructor(provider, maxTokens) {
69
+ super(`Context exceeds maximum tokens (${maxTokens})`, 'LLM_CONTEXT_TOO_LONG', 400, { maxTokens, provider });
70
+ }
71
+ }
72
+ // Artifact Errors
73
+ export class ArtifactNotFoundError extends MegaAgentError {
74
+ constructor(artifactId) {
75
+ super(`Artifact not found: ${artifactId}`, 'ARTIFACT_NOT_FOUND', 404);
76
+ }
77
+ }
78
+ export class ArtifactValidationError extends MegaAgentError {
79
+ constructor(errors) {
80
+ super('Artifact validation failed', 'ARTIFACT_VALIDATION_ERROR', 400, { errors });
81
+ }
82
+ }
83
+ // MCP Errors
84
+ export class McpConnectionError extends MegaAgentError {
85
+ constructor(serverId, message) {
86
+ super(`MCP connection error (${serverId}): ${message}`, 'MCP_CONNECTION_ERROR', 502);
87
+ }
88
+ }
89
+ export class McpToolError extends MegaAgentError {
90
+ constructor(toolName, message) {
91
+ super(`MCP tool error (${toolName}): ${message}`, 'MCP_TOOL_ERROR', 500);
92
+ }
93
+ }
94
+ // Qdrant Errors
95
+ export class QdrantError extends MegaAgentError {
96
+ constructor(message) {
97
+ super(`Qdrant error: ${message}`, 'QDRANT_ERROR', 500);
98
+ }
99
+ }
100
+ export class QdrantConnectionError extends MegaAgentError {
101
+ constructor() {
102
+ super('Cannot connect to Qdrant', 'QDRANT_CONNECTION_ERROR', 503);
103
+ }
104
+ }
105
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/common/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './errors.js';
2
+ export * from './retry.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './errors.js';
2
+ export * from './retry.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Retry utilities for MegaAgent services
3
+ */
4
+ export interface RetryOptions {
5
+ maxRetries?: number;
6
+ initialDelayMs?: number;
7
+ maxDelayMs?: number;
8
+ backoffMultiplier?: number;
9
+ retryableErrors?: string[];
10
+ }
11
+ /**
12
+ * Executes a function with retry logic and exponential backoff
13
+ */
14
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
15
+ /**
16
+ * Specific retry wrapper for LLM calls
17
+ */
18
+ export declare function withLLMRetry<T>(fn: () => Promise<T>): Promise<T>;
19
+ /**
20
+ * Specific retry wrapper for Qdrant calls
21
+ */
22
+ export declare function withQdrantRetry<T>(fn: () => Promise<T>): Promise<T>;
23
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/common/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAUD;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CA6BZ;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMzE"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Retry utilities for MegaAgent services
3
+ */
4
+ const DEFAULT_OPTIONS = {
5
+ maxRetries: 3,
6
+ initialDelayMs: 1000,
7
+ maxDelayMs: 30000,
8
+ backoffMultiplier: 2,
9
+ retryableErrors: ['ECONNRESET', 'ETIMEDOUT', 'ECONNREFUSED', 'rate_limit'],
10
+ };
11
+ /**
12
+ * Executes a function with retry logic and exponential backoff
13
+ */
14
+ export async function withRetry(fn, options) {
15
+ const opts = { ...DEFAULT_OPTIONS, ...options };
16
+ let lastError = null;
17
+ let delay = opts.initialDelayMs;
18
+ for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
19
+ try {
20
+ return await fn();
21
+ }
22
+ catch (error) {
23
+ lastError = error;
24
+ // Check if error is retryable
25
+ const isRetryable = opts.retryableErrors.some(e => lastError?.message?.includes(e) || lastError?.name?.includes(e));
26
+ if (!isRetryable || attempt === opts.maxRetries) {
27
+ throw error;
28
+ }
29
+ // Wait before retry
30
+ await new Promise(resolve => setTimeout(resolve, delay));
31
+ // Increase delay with exponential backoff
32
+ delay = Math.min(delay * opts.backoffMultiplier, opts.maxDelayMs);
33
+ }
34
+ }
35
+ throw lastError;
36
+ }
37
+ /**
38
+ * Specific retry wrapper for LLM calls
39
+ */
40
+ export async function withLLMRetry(fn) {
41
+ return withRetry(fn, {
42
+ maxRetries: 3,
43
+ initialDelayMs: 2000,
44
+ retryableErrors: ['rate_limit', 'overloaded', 'timeout', '529', '503'],
45
+ });
46
+ }
47
+ /**
48
+ * Specific retry wrapper for Qdrant calls
49
+ */
50
+ export async function withQdrantRetry(fn) {
51
+ return withRetry(fn, {
52
+ maxRetries: 2,
53
+ initialDelayMs: 500,
54
+ retryableErrors: ['ECONNRESET', 'ETIMEDOUT'],
55
+ });
56
+ }
57
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/common/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,eAAe,GAA2B;IAC9C,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,KAAK;IACjB,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC;CAC3E,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,OAAsB;IAEtB,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,IAAI,SAAS,GAAiB,IAAI,CAAC;IACnC,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAEhC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAc,CAAC;YAE3B,8BAA8B;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CACrE,CAAC;YAEF,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,oBAAoB;YACpB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAEzD,0CAA0C;YAC1C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,EAAoB;IACxD,OAAO,SAAS,CAAC,EAAE,EAAE;QACnB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;KACvE,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,EAAoB;IAC3D,OAAO,SAAS,CAAC,EAAE,EAAE;QACnB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,eAAe,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * createMegaAgent() Factory
3
+ * Single entry point for initializing the entire Mega Agent stack.
4
+ * Host passes explicit config — no environment variable reading inside.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const agent = await createMegaAgent({
9
+ * prisma,
10
+ * logger,
11
+ * llm: { providers: [{ provider: 'anthropic', apiKey: '...', defaultModel: 'claude-sonnet-4-20250514' }] },
12
+ * memory: {
13
+ * embedding: { apiKey: '...', provider: 'openai' },
14
+ * qdrant: { host: 'localhost', port: 6333 },
15
+ * },
16
+ * });
17
+ *
18
+ * registerDomainTools(); // host-specific tools
19
+ * app.use('/api/chat', agent.createChatRouter(authMiddleware));
20
+ * ```
21
+ *
22
+ * **Warning:** Calling this function more than once will overwrite global
23
+ * service state (all services use module-level singletons).
24
+ */
25
+ import type { Router } from 'express';
26
+ import type { Prisma, PrismaClient } from '@prisma/client';
27
+ import type { LLMProviderConfig } from './llm/llm.types.js';
28
+ import type { EmbeddingProvider } from './embedding/embedding.types.js';
29
+ import type { MegaAgentPromptOptions } from './chat/prompts/system.prompts.js';
30
+ import type { AuthMiddleware } from './http/chat.routes.js';
31
+ import { LLMService } from './llm/index.js';
32
+ import { EmbeddingService } from './embedding/index.js';
33
+ import { QdrantService } from './qdrant/index.js';
34
+ import { MemoryService } from './memory/index.js';
35
+ import { ChatService } from './chat/chat.service.js';
36
+ /** Logger interface used by all services */
37
+ export interface LoggerLike {
38
+ info(message: string, meta?: object): void;
39
+ error(message: string, meta?: object): void;
40
+ warn(message: string, meta?: object): void;
41
+ debug(message: string, meta?: object): void;
42
+ }
43
+ /** Memory sub-system config (embedding + vector DB) */
44
+ export interface MegaAgentMemoryConfig {
45
+ embedding: {
46
+ apiKey: string;
47
+ provider?: EmbeddingProvider;
48
+ defaultModel?: string;
49
+ };
50
+ qdrant: {
51
+ host: string;
52
+ port: number;
53
+ apiKey?: string;
54
+ };
55
+ }
56
+ /** Top-level factory config */
57
+ export interface MegaAgentConfig {
58
+ /** Prisma client instance */
59
+ prisma: Prisma.TransactionClient | PrismaClient;
60
+ /** Logger instance */
61
+ logger: LoggerLike;
62
+ /** LLM provider configurations (at least one required) */
63
+ llm: {
64
+ providers: LLMProviderConfig[];
65
+ };
66
+ /** Memory sub-system — omit to disable memory */
67
+ memory?: MegaAgentMemoryConfig;
68
+ /** Agent identity for system prompt */
69
+ agent?: MegaAgentPromptOptions;
70
+ }
71
+ /** Service instances exposed to the host */
72
+ export interface MegaAgentServices {
73
+ chat: ChatService;
74
+ llm: LLMService;
75
+ memory: MemoryService | null;
76
+ embedding: EmbeddingService | null;
77
+ qdrant: QdrantService | null;
78
+ }
79
+ /** The initialized Mega Agent */
80
+ export interface MegaAgent {
81
+ /** Initialized service instances */
82
+ services: MegaAgentServices;
83
+ /** Agent prompt defaults, passed through from config */
84
+ promptOptions: MegaAgentPromptOptions;
85
+ /** Create an Express router for /api/chat endpoints */
86
+ createChatRouter(authMiddleware: AuthMiddleware): Router;
87
+ }
88
+ /**
89
+ * Initialize the full Mega Agent stack and return a configured agent.
90
+ *
91
+ * Init order:
92
+ * 1. LLM
93
+ * 2. Embedding + Qdrant (if memory config provided)
94
+ * 3. Memory (if embedding + qdrant succeeded)
95
+ * 4. Core tools (if memory available)
96
+ * 5. Workflow + Incident + Artifact
97
+ * 6. Chat + ChatMemoryIntegration
98
+ */
99
+ export declare function createMegaAgent(config: MegaAgentConfig): Promise<MegaAgent>;
100
+ //# sourceMappingURL=create-mega-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-mega-agent.d.ts","sourceRoot":"","sources":["../src/create-mega-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAkB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAwB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAmB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAgBtE,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC,iBAAiB,GAAG,YAAY,CAAC;IAChD,sBAAsB;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,0DAA0D;IAC1D,GAAG,EAAE;QACH,SAAS,EAAE,iBAAiB,EAAE,CAAC;KAChC,CAAC;IACF,iDAAiD;IACjD,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,uCAAuC;IACvC,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAID,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC9B;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,wDAAwD;IACxD,aAAa,EAAE,sBAAsB,CAAC;IACtC,uDAAuD;IACvD,gBAAgB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC;CAC1D;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAiHjF"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * createMegaAgent() Factory
3
+ * Single entry point for initializing the entire Mega Agent stack.
4
+ * Host passes explicit config — no environment variable reading inside.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const agent = await createMegaAgent({
9
+ * prisma,
10
+ * logger,
11
+ * llm: { providers: [{ provider: 'anthropic', apiKey: '...', defaultModel: 'claude-sonnet-4-20250514' }] },
12
+ * memory: {
13
+ * embedding: { apiKey: '...', provider: 'openai' },
14
+ * qdrant: { host: 'localhost', port: 6333 },
15
+ * },
16
+ * });
17
+ *
18
+ * registerDomainTools(); // host-specific tools
19
+ * app.use('/api/chat', agent.createChatRouter(authMiddleware));
20
+ * ```
21
+ *
22
+ * **Warning:** Calling this function more than once will overwrite global
23
+ * service state (all services use module-level singletons).
24
+ */
25
+ // Service init functions & classes
26
+ import { initLLMService, LLMService } from './llm/index.js';
27
+ import { initEmbeddingService, EmbeddingService } from './embedding/index.js';
28
+ import { initQdrantService, QdrantService } from './qdrant/index.js';
29
+ import { initMemoryService, MemoryService } from './memory/index.js';
30
+ import { initChatService, ChatService } from './chat/chat.service.js';
31
+ import { initChatMemoryIntegration } from './chat/chat-memory.integration.js';
32
+ import { initWorkflowService } from './workflow/index.js';
33
+ import { initIncidentService } from './incident/index.js';
34
+ import { initArtifactService } from './artifact/index.js';
35
+ // Tools
36
+ import { registerTools } from './tools/tool-registry.js';
37
+ import { CORE_TOOLS } from './tools/core-tools.js';
38
+ // HTTP
39
+ import { ChatController } from './http/chat.controller.js';
40
+ import { createChatRoutes } from './http/chat.routes.js';
41
+ // ── Factory ───────────────────────────────────────────────────────
42
+ /**
43
+ * Initialize the full Mega Agent stack and return a configured agent.
44
+ *
45
+ * Init order:
46
+ * 1. LLM
47
+ * 2. Embedding + Qdrant (if memory config provided)
48
+ * 3. Memory (if embedding + qdrant succeeded)
49
+ * 4. Core tools (if memory available)
50
+ * 5. Workflow + Incident + Artifact
51
+ * 6. Chat + ChatMemoryIntegration
52
+ */
53
+ export async function createMegaAgent(config) {
54
+ const { prisma, logger, llm, memory: memoryConfig, agent: agentOptions } = config;
55
+ // ── 1. LLM ────────────────────────────────────────────────────
56
+ if (llm.providers.length === 0) {
57
+ logger.warn('[MegaAgent] No LLM providers configured');
58
+ }
59
+ initLLMService({ logger, config: llm.providers });
60
+ const llmService = new LLMService();
61
+ logger.info('[MegaAgent] LLM service initialized');
62
+ // ── 2. Memory sub-system (optional) ───────────────────────────
63
+ let memoryService = null;
64
+ let embeddingService = null;
65
+ let qdrantService = null;
66
+ if (memoryConfig) {
67
+ try {
68
+ // Embedding
69
+ initEmbeddingService({
70
+ logger,
71
+ apiKey: memoryConfig.embedding.apiKey,
72
+ provider: memoryConfig.embedding.provider ?? 'openai',
73
+ defaultModel: memoryConfig.embedding.defaultModel,
74
+ });
75
+ embeddingService = new EmbeddingService();
76
+ logger.info('[MegaAgent] Embedding service initialized');
77
+ // Qdrant
78
+ initQdrantService({
79
+ logger,
80
+ host: memoryConfig.qdrant.host,
81
+ port: memoryConfig.qdrant.port,
82
+ apiKey: memoryConfig.qdrant.apiKey,
83
+ });
84
+ qdrantService = new QdrantService();
85
+ logger.info('[MegaAgent] Qdrant service initialized');
86
+ // Memory
87
+ initMemoryService({ prisma, logger, embeddingService, qdrantService });
88
+ memoryService = new MemoryService();
89
+ logger.info('[MegaAgent] Memory service initialized');
90
+ // Initialize Qdrant collection (fire-and-forget)
91
+ qdrantService
92
+ .initializeMemoryCollection(embeddingService.getDimensions())
93
+ .catch((err) => logger.error('[MegaAgent] Failed to init Qdrant memory collection', {
94
+ error: String(err),
95
+ }));
96
+ }
97
+ catch (err) {
98
+ logger.warn('[MegaAgent] Memory sub-system init failed, continuing without memory', {
99
+ error: String(err),
100
+ });
101
+ memoryService = null;
102
+ embeddingService = null;
103
+ qdrantService = null;
104
+ }
105
+ }
106
+ // ── 3. Core tools (only if memory available) ──────────────────
107
+ if (memoryService) {
108
+ registerTools(CORE_TOOLS);
109
+ logger.info('[MegaAgent] Core tools registered');
110
+ }
111
+ // ── 4. Workflow + Incident + Artifact ─────────────────────────
112
+ initWorkflowService({ prisma, logger });
113
+ logger.info('[MegaAgent] Workflow service initialized');
114
+ try {
115
+ initIncidentService({ prisma, logger });
116
+ logger.info('[MegaAgent] Incident service initialized');
117
+ }
118
+ catch (err) {
119
+ logger.warn('[MegaAgent] Incident service init failed', { error: String(err) });
120
+ }
121
+ initArtifactService({ prisma, logger });
122
+ logger.info('[MegaAgent] Artifact service initialized');
123
+ // ── 5. Chat + Memory Integration ──────────────────────────────
124
+ initChatService({
125
+ prisma,
126
+ logger,
127
+ llmService,
128
+ memoryService: memoryService ?? undefined,
129
+ });
130
+ const chatService = new ChatService();
131
+ logger.info('[MegaAgent] Chat service initialized');
132
+ if (memoryService) {
133
+ initChatMemoryIntegration({ logger, memoryService, chatService });
134
+ logger.info('[MegaAgent] Chat memory integration initialized');
135
+ }
136
+ // ── Return ────────────────────────────────────────────────────
137
+ const services = {
138
+ chat: chatService,
139
+ llm: llmService,
140
+ memory: memoryService,
141
+ embedding: embeddingService,
142
+ qdrant: qdrantService,
143
+ };
144
+ return {
145
+ services,
146
+ promptOptions: agentOptions ?? {},
147
+ createChatRouter(authMiddleware) {
148
+ const controller = new ChatController(chatService);
149
+ return createChatRoutes(controller, authMiddleware);
150
+ },
151
+ };
152
+ }
153
+ //# sourceMappingURL=create-mega-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-mega-agent.js","sourceRoot":"","sources":["../src/create-mega-agent.ts"],"names":[],"mappings":"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"}