@ggakila/agentx-framework 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 (228) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/LICENSE +21 -0
  3. package/README.md +335 -0
  4. package/dist/agent/Agent.d.ts +110 -0
  5. package/dist/agent/Agent.d.ts.map +1 -0
  6. package/dist/agent/Agent.js +291 -0
  7. package/dist/agent/Agent.js.map +1 -0
  8. package/dist/agent/index.d.ts +5 -0
  9. package/dist/agent/index.d.ts.map +1 -0
  10. package/dist/agent/index.js +11 -0
  11. package/dist/agent/index.js.map +1 -0
  12. package/dist/cli/CLI.d.ts +74 -0
  13. package/dist/cli/CLI.d.ts.map +1 -0
  14. package/dist/cli/CLI.js +255 -0
  15. package/dist/cli/CLI.js.map +1 -0
  16. package/dist/cli/InteractiveSetup.d.ts +104 -0
  17. package/dist/cli/InteractiveSetup.d.ts.map +1 -0
  18. package/dist/cli/InteractiveSetup.js +2225 -0
  19. package/dist/cli/InteractiveSetup.js.map +1 -0
  20. package/dist/cli/bin.d.ts +7 -0
  21. package/dist/cli/bin.d.ts.map +1 -0
  22. package/dist/cli/bin.js +35 -0
  23. package/dist/cli/bin.js.map +1 -0
  24. package/dist/cli/commands/ProjectCommands.d.ts +23 -0
  25. package/dist/cli/commands/ProjectCommands.d.ts.map +1 -0
  26. package/dist/cli/commands/ProjectCommands.js +504 -0
  27. package/dist/cli/commands/ProjectCommands.js.map +1 -0
  28. package/dist/cli/index.d.ts +7 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +21 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/credential/CredentialManager.d.ts +112 -0
  33. package/dist/credential/CredentialManager.d.ts.map +1 -0
  34. package/dist/credential/CredentialManager.js +343 -0
  35. package/dist/credential/CredentialManager.js.map +1 -0
  36. package/dist/credential/OAuth2Manager.d.ts +206 -0
  37. package/dist/credential/OAuth2Manager.d.ts.map +1 -0
  38. package/dist/credential/OAuth2Manager.js +463 -0
  39. package/dist/credential/OAuth2Manager.js.map +1 -0
  40. package/dist/credential/index.d.ts +6 -0
  41. package/dist/credential/index.d.ts.map +1 -0
  42. package/dist/credential/index.js +16 -0
  43. package/dist/credential/index.js.map +1 -0
  44. package/dist/error/ErrorHandler.d.ts +74 -0
  45. package/dist/error/ErrorHandler.d.ts.map +1 -0
  46. package/dist/error/ErrorHandler.js +279 -0
  47. package/dist/error/ErrorHandler.js.map +1 -0
  48. package/dist/index.d.ts +30 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +100 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/integrations/DatabaseTool.d.ts +149 -0
  53. package/dist/integrations/DatabaseTool.d.ts.map +1 -0
  54. package/dist/integrations/DatabaseTool.js +900 -0
  55. package/dist/integrations/DatabaseTool.js.map +1 -0
  56. package/dist/integrations/EmailTool.d.ts +142 -0
  57. package/dist/integrations/EmailTool.d.ts.map +1 -0
  58. package/dist/integrations/EmailTool.js +259 -0
  59. package/dist/integrations/EmailTool.js.map +1 -0
  60. package/dist/integrations/FileSystemTool.d.ts +153 -0
  61. package/dist/integrations/FileSystemTool.d.ts.map +1 -0
  62. package/dist/integrations/FileSystemTool.js +835 -0
  63. package/dist/integrations/FileSystemTool.js.map +1 -0
  64. package/dist/integrations/GoogleWorkspaceTool.d.ts +125 -0
  65. package/dist/integrations/GoogleWorkspaceTool.d.ts.map +1 -0
  66. package/dist/integrations/GoogleWorkspaceTool.js +765 -0
  67. package/dist/integrations/GoogleWorkspaceTool.js.map +1 -0
  68. package/dist/integrations/HttpTool.d.ts +55 -0
  69. package/dist/integrations/HttpTool.d.ts.map +1 -0
  70. package/dist/integrations/HttpTool.js +209 -0
  71. package/dist/integrations/HttpTool.js.map +1 -0
  72. package/dist/integrations/MessagingTool.d.ts +136 -0
  73. package/dist/integrations/MessagingTool.d.ts.map +1 -0
  74. package/dist/integrations/MessagingTool.js +503 -0
  75. package/dist/integrations/MessagingTool.js.map +1 -0
  76. package/dist/integrations/SchedulerTool.d.ts +147 -0
  77. package/dist/integrations/SchedulerTool.d.ts.map +1 -0
  78. package/dist/integrations/SchedulerTool.js +471 -0
  79. package/dist/integrations/SchedulerTool.js.map +1 -0
  80. package/dist/integrations/WebhookTool.d.ts +97 -0
  81. package/dist/integrations/WebhookTool.d.ts.map +1 -0
  82. package/dist/integrations/WebhookTool.js +351 -0
  83. package/dist/integrations/WebhookTool.js.map +1 -0
  84. package/dist/integrations/index.d.ts +13 -0
  85. package/dist/integrations/index.d.ts.map +1 -0
  86. package/dist/integrations/index.js +60 -0
  87. package/dist/integrations/index.js.map +1 -0
  88. package/dist/llm/LLMProvider.d.ts +83 -0
  89. package/dist/llm/LLMProvider.d.ts.map +1 -0
  90. package/dist/llm/LLMProvider.js +370 -0
  91. package/dist/llm/LLMProvider.js.map +1 -0
  92. package/dist/llm/index.d.ts +5 -0
  93. package/dist/llm/index.d.ts.map +1 -0
  94. package/dist/llm/index.js +14 -0
  95. package/dist/llm/index.js.map +1 -0
  96. package/dist/payment/PaymentProvider.d.ts +157 -0
  97. package/dist/payment/PaymentProvider.d.ts.map +1 -0
  98. package/dist/payment/PaymentProvider.js +525 -0
  99. package/dist/payment/PaymentProvider.js.map +1 -0
  100. package/dist/payment/index.d.ts +5 -0
  101. package/dist/payment/index.d.ts.map +1 -0
  102. package/dist/payment/index.js +16 -0
  103. package/dist/payment/index.js.map +1 -0
  104. package/dist/plugin/PluginManager.d.ts +156 -0
  105. package/dist/plugin/PluginManager.d.ts.map +1 -0
  106. package/dist/plugin/PluginManager.js +288 -0
  107. package/dist/plugin/PluginManager.js.map +1 -0
  108. package/dist/plugin/index.d.ts +5 -0
  109. package/dist/plugin/index.d.ts.map +1 -0
  110. package/dist/plugin/index.js +10 -0
  111. package/dist/plugin/index.js.map +1 -0
  112. package/dist/runtime/AgentXRuntime.d.ts +90 -0
  113. package/dist/runtime/AgentXRuntime.d.ts.map +1 -0
  114. package/dist/runtime/AgentXRuntime.js +469 -0
  115. package/dist/runtime/AgentXRuntime.js.map +1 -0
  116. package/dist/security/SecurityManager.d.ts +245 -0
  117. package/dist/security/SecurityManager.d.ts.map +1 -0
  118. package/dist/security/SecurityManager.js +512 -0
  119. package/dist/security/SecurityManager.js.map +1 -0
  120. package/dist/security/index.d.ts +5 -0
  121. package/dist/security/index.d.ts.map +1 -0
  122. package/dist/security/index.js +14 -0
  123. package/dist/security/index.js.map +1 -0
  124. package/dist/tool/ToolRegistry.d.ts +58 -0
  125. package/dist/tool/ToolRegistry.d.ts.map +1 -0
  126. package/dist/tool/ToolRegistry.js +173 -0
  127. package/dist/tool/ToolRegistry.js.map +1 -0
  128. package/dist/tool/ToolValidator.d.ts +41 -0
  129. package/dist/tool/ToolValidator.d.ts.map +1 -0
  130. package/dist/tool/ToolValidator.js +158 -0
  131. package/dist/tool/ToolValidator.js.map +1 -0
  132. package/dist/tool/index.d.ts +6 -0
  133. package/dist/tool/index.d.ts.map +1 -0
  134. package/dist/tool/index.js +11 -0
  135. package/dist/tool/index.js.map +1 -0
  136. package/dist/transport/BaseTransport.d.ts +66 -0
  137. package/dist/transport/BaseTransport.d.ts.map +1 -0
  138. package/dist/transport/BaseTransport.js +103 -0
  139. package/dist/transport/BaseTransport.js.map +1 -0
  140. package/dist/transport/HttpTransport.d.ts +41 -0
  141. package/dist/transport/HttpTransport.d.ts.map +1 -0
  142. package/dist/transport/HttpTransport.js +160 -0
  143. package/dist/transport/HttpTransport.js.map +1 -0
  144. package/dist/transport/LocalTransport.d.ts +40 -0
  145. package/dist/transport/LocalTransport.d.ts.map +1 -0
  146. package/dist/transport/LocalTransport.js +157 -0
  147. package/dist/transport/LocalTransport.js.map +1 -0
  148. package/dist/transport/QueueTransport.d.ts +63 -0
  149. package/dist/transport/QueueTransport.d.ts.map +1 -0
  150. package/dist/transport/QueueTransport.js +194 -0
  151. package/dist/transport/QueueTransport.js.map +1 -0
  152. package/dist/transport/StdioTransport.d.ts +51 -0
  153. package/dist/transport/StdioTransport.d.ts.map +1 -0
  154. package/dist/transport/StdioTransport.js +216 -0
  155. package/dist/transport/StdioTransport.js.map +1 -0
  156. package/dist/transport/TransportFactory.d.ts +35 -0
  157. package/dist/transport/TransportFactory.d.ts.map +1 -0
  158. package/dist/transport/TransportFactory.js +100 -0
  159. package/dist/transport/TransportFactory.js.map +1 -0
  160. package/dist/transport/index.d.ts +10 -0
  161. package/dist/transport/index.d.ts.map +1 -0
  162. package/dist/transport/index.js +19 -0
  163. package/dist/transport/index.js.map +1 -0
  164. package/dist/types/agent.d.ts +66 -0
  165. package/dist/types/agent.d.ts.map +1 -0
  166. package/dist/types/agent.js +3 -0
  167. package/dist/types/agent.js.map +1 -0
  168. package/dist/types/config.d.ts +60 -0
  169. package/dist/types/config.d.ts.map +1 -0
  170. package/dist/types/config.js +6 -0
  171. package/dist/types/config.js.map +1 -0
  172. package/dist/types/credential.d.ts +38 -0
  173. package/dist/types/credential.d.ts.map +1 -0
  174. package/dist/types/credential.js +3 -0
  175. package/dist/types/credential.js.map +1 -0
  176. package/dist/types/error.d.ts +136 -0
  177. package/dist/types/error.d.ts.map +1 -0
  178. package/dist/types/error.js +223 -0
  179. package/dist/types/error.js.map +1 -0
  180. package/dist/types/index.d.ts +10 -0
  181. package/dist/types/index.d.ts.map +1 -0
  182. package/dist/types/index.js +27 -0
  183. package/dist/types/index.js.map +1 -0
  184. package/dist/types/llm.d.ts +43 -0
  185. package/dist/types/llm.d.ts.map +1 -0
  186. package/dist/types/llm.js +3 -0
  187. package/dist/types/llm.js.map +1 -0
  188. package/dist/types/payment.d.ts +129 -0
  189. package/dist/types/payment.d.ts.map +1 -0
  190. package/dist/types/payment.js +6 -0
  191. package/dist/types/payment.js.map +1 -0
  192. package/dist/types/runtime.d.ts +31 -0
  193. package/dist/types/runtime.d.ts.map +1 -0
  194. package/dist/types/runtime.js +3 -0
  195. package/dist/types/runtime.js.map +1 -0
  196. package/dist/types/tool.d.ts +72 -0
  197. package/dist/types/tool.d.ts.map +1 -0
  198. package/dist/types/tool.js +3 -0
  199. package/dist/types/tool.js.map +1 -0
  200. package/dist/types/transport.d.ts +53 -0
  201. package/dist/types/transport.d.ts.map +1 -0
  202. package/dist/types/transport.js +3 -0
  203. package/dist/types/transport.js.map +1 -0
  204. package/dist/types/workflow.d.ts +72 -0
  205. package/dist/types/workflow.d.ts.map +1 -0
  206. package/dist/types/workflow.js +6 -0
  207. package/dist/types/workflow.js.map +1 -0
  208. package/dist/utils/factory.d.ts +14 -0
  209. package/dist/utils/factory.d.ts.map +1 -0
  210. package/dist/utils/factory.js +146 -0
  211. package/dist/utils/factory.js.map +1 -0
  212. package/dist/workflow/StateManager.d.ts +93 -0
  213. package/dist/workflow/StateManager.d.ts.map +1 -0
  214. package/dist/workflow/StateManager.js +223 -0
  215. package/dist/workflow/StateManager.js.map +1 -0
  216. package/dist/workflow/WorkflowDefinition.d.ts +49 -0
  217. package/dist/workflow/WorkflowDefinition.d.ts.map +1 -0
  218. package/dist/workflow/WorkflowDefinition.js +264 -0
  219. package/dist/workflow/WorkflowDefinition.js.map +1 -0
  220. package/dist/workflow/WorkflowExecutor.d.ts +42 -0
  221. package/dist/workflow/WorkflowExecutor.d.ts.map +1 -0
  222. package/dist/workflow/WorkflowExecutor.js +372 -0
  223. package/dist/workflow/WorkflowExecutor.js.map +1 -0
  224. package/dist/workflow/index.d.ts +7 -0
  225. package/dist/workflow/index.d.ts.map +1 -0
  226. package/dist/workflow/index.js +17 -0
  227. package/dist/workflow/index.js.map +1 -0
  228. package/package.json +122 -0
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+ /**
3
+ * LLM Provider Abstraction
4
+ * Provides a unified interface for different LLM providers
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.LLMProviderRegistry = exports.LocalModelProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.BaseLLMProvider = void 0;
8
+ exports.createLLMProvider = createLLMProvider;
9
+ const error_1 = require("../types/error");
10
+ /**
11
+ * Base class for LLM providers
12
+ */
13
+ class BaseLLMProvider {
14
+ config;
15
+ constructor(config) {
16
+ this.config = config;
17
+ }
18
+ supportsToolCalling() {
19
+ return false;
20
+ }
21
+ supportsStreaming() {
22
+ return false;
23
+ }
24
+ supportsEmbedding() {
25
+ return false;
26
+ }
27
+ validateInput(input) {
28
+ if (!input.messages || input.messages.length === 0) {
29
+ throw new error_1.ValidationError('Messages are required', error_1.ErrorCodes.MISSING_REQUIRED_FIELD);
30
+ }
31
+ for (const message of input.messages) {
32
+ if (!message.role || !['system', 'user', 'assistant', 'tool'].includes(message.role)) {
33
+ throw new error_1.ValidationError(`Invalid message role: ${message.role}`, error_1.ErrorCodes.INVALID_FORMAT);
34
+ }
35
+ }
36
+ }
37
+ formatToolsForProvider(tools) {
38
+ if (!tools)
39
+ return [];
40
+ return tools.map(tool => ({
41
+ type: 'function',
42
+ function: {
43
+ name: tool.name,
44
+ description: tool.description || '',
45
+ parameters: tool.inputSchema || { type: 'object', properties: {} },
46
+ },
47
+ }));
48
+ }
49
+ }
50
+ exports.BaseLLMProvider = BaseLLMProvider;
51
+ /**
52
+ * OpenAI-compatible provider
53
+ */
54
+ class OpenAIProvider extends BaseLLMProvider {
55
+ name = 'openai';
56
+ constructor(config) {
57
+ super({
58
+ ...config,
59
+ baseUrl: config.baseUrl || 'https://api.openai.com/v1',
60
+ defaultModel: config.defaultModel || 'gpt-4',
61
+ });
62
+ }
63
+ async chat(input) {
64
+ this.validateInput(input);
65
+ const model = input.model || this.config.defaultModel || 'gpt-4';
66
+ const tools = this.formatToolsForProvider(input.tools);
67
+ const requestBody = {
68
+ model,
69
+ messages: input.messages.map(m => ({
70
+ role: m.role,
71
+ content: m.content,
72
+ ...(m.toolCalls && { tool_calls: m.toolCalls }),
73
+ ...(m.toolCallId && { tool_call_id: m.toolCallId }),
74
+ })),
75
+ ...(input.temperature !== undefined && { temperature: input.temperature }),
76
+ ...(input.maxTokens && { max_tokens: input.maxTokens }),
77
+ ...(tools.length > 0 && { tools }),
78
+ ...(input.toolChoice && { tool_choice: input.toolChoice }),
79
+ };
80
+ try {
81
+ const response = await this.makeRequest('/chat/completions', requestBody);
82
+ return this.parseResponse(response);
83
+ }
84
+ catch (error) {
85
+ throw new error_1.ExecutionError(`OpenAI API error: ${error.message}`, 'LLM_API_ERROR', true);
86
+ }
87
+ }
88
+ async *stream(input) {
89
+ this.validateInput(input);
90
+ const model = input.model || this.config.defaultModel || 'gpt-4';
91
+ const tools = this.formatToolsForProvider(input.tools);
92
+ const requestBody = {
93
+ model,
94
+ messages: input.messages,
95
+ stream: true,
96
+ ...(input.temperature !== undefined && { temperature: input.temperature }),
97
+ ...(input.maxTokens && { max_tokens: input.maxTokens }),
98
+ ...(tools.length > 0 && { tools }),
99
+ };
100
+ // Placeholder for streaming implementation
101
+ // In production, this would use SSE or WebSocket
102
+ const response = await this.makeRequest('/chat/completions', requestBody);
103
+ const parsed = this.parseResponse(response);
104
+ yield {
105
+ delta: parsed.message.content || '',
106
+ finishReason: parsed.finishReason,
107
+ };
108
+ }
109
+ async embed(input) {
110
+ const requestBody = {
111
+ model: 'text-embedding-ada-002',
112
+ input,
113
+ };
114
+ try {
115
+ const response = await this.makeRequest('/embeddings', requestBody);
116
+ return response.data[0].embedding;
117
+ }
118
+ catch (error) {
119
+ throw new error_1.ExecutionError(`OpenAI embedding error: ${error.message}`, 'LLM_API_ERROR', true);
120
+ }
121
+ }
122
+ supportsToolCalling() {
123
+ return true;
124
+ }
125
+ supportsStreaming() {
126
+ return true;
127
+ }
128
+ supportsEmbedding() {
129
+ return true;
130
+ }
131
+ async makeRequest(endpoint, body) {
132
+ // Placeholder - in production would use fetch or axios
133
+ // For now, return mock response for testing
134
+ return {
135
+ id: 'chatcmpl-mock',
136
+ object: 'chat.completion',
137
+ created: Date.now(),
138
+ model: this.config.defaultModel,
139
+ choices: [{
140
+ index: 0,
141
+ message: {
142
+ role: 'assistant',
143
+ content: 'Mock response from OpenAI provider',
144
+ },
145
+ finish_reason: 'stop',
146
+ }],
147
+ usage: {
148
+ prompt_tokens: 10,
149
+ completion_tokens: 20,
150
+ total_tokens: 30,
151
+ },
152
+ };
153
+ }
154
+ parseResponse(response) {
155
+ const data = response;
156
+ const choice = data.choices[0];
157
+ const message = {
158
+ role: choice.message.role,
159
+ content: choice.message.content || '',
160
+ };
161
+ if (choice.message.tool_calls) {
162
+ message.toolCalls = choice.message.tool_calls.map((tc) => ({
163
+ id: tc.id,
164
+ name: tc.function.name,
165
+ arguments: JSON.parse(tc.function.arguments),
166
+ }));
167
+ }
168
+ const usage = data.usage ? {
169
+ promptTokens: data.usage.prompt_tokens,
170
+ completionTokens: data.usage.completion_tokens,
171
+ totalTokens: data.usage.total_tokens,
172
+ } : undefined;
173
+ return {
174
+ message,
175
+ usage,
176
+ finishReason: this.mapFinishReason(choice.finish_reason),
177
+ };
178
+ }
179
+ mapFinishReason(reason) {
180
+ switch (reason) {
181
+ case 'stop': return 'stop';
182
+ case 'length': return 'length';
183
+ case 'tool_calls': return 'tool_calls';
184
+ default: return 'stop';
185
+ }
186
+ }
187
+ }
188
+ exports.OpenAIProvider = OpenAIProvider;
189
+ /**
190
+ * Anthropic Claude provider
191
+ */
192
+ class AnthropicProvider extends BaseLLMProvider {
193
+ name = 'anthropic';
194
+ constructor(config) {
195
+ super({
196
+ ...config,
197
+ baseUrl: config.baseUrl || 'https://api.anthropic.com/v1',
198
+ defaultModel: config.defaultModel || 'claude-3-opus-20240229',
199
+ });
200
+ }
201
+ async chat(input) {
202
+ this.validateInput(input);
203
+ const model = input.model || this.config.defaultModel || 'claude-3-opus-20240229';
204
+ // Convert messages to Anthropic format
205
+ const systemMessage = input.messages.find(m => m.role === 'system');
206
+ const otherMessages = input.messages.filter(m => m.role !== 'system');
207
+ const requestBody = {
208
+ model,
209
+ messages: otherMessages.map(m => ({
210
+ role: m.role === 'assistant' ? 'assistant' : 'user',
211
+ content: m.content,
212
+ })),
213
+ ...(systemMessage && { system: systemMessage.content }),
214
+ ...(input.maxTokens && { max_tokens: input.maxTokens }),
215
+ ...(input.temperature !== undefined && { temperature: input.temperature }),
216
+ };
217
+ try {
218
+ const response = await this.makeRequest('/messages', requestBody);
219
+ return this.parseResponse(response);
220
+ }
221
+ catch (error) {
222
+ throw new error_1.ExecutionError(`Anthropic API error: ${error.message}`, 'LLM_API_ERROR', true);
223
+ }
224
+ }
225
+ supportsToolCalling() {
226
+ return true;
227
+ }
228
+ supportsStreaming() {
229
+ return true;
230
+ }
231
+ async makeRequest(endpoint, body) {
232
+ // Placeholder - in production would use fetch
233
+ return {
234
+ id: 'msg-mock',
235
+ type: 'message',
236
+ role: 'assistant',
237
+ content: [{
238
+ type: 'text',
239
+ text: 'Mock response from Anthropic provider',
240
+ }],
241
+ model: this.config.defaultModel,
242
+ stop_reason: 'end_turn',
243
+ usage: {
244
+ input_tokens: 10,
245
+ output_tokens: 20,
246
+ },
247
+ };
248
+ }
249
+ parseResponse(response) {
250
+ const data = response;
251
+ const content = data.content
252
+ .filter((c) => c.type === 'text')
253
+ .map((c) => c.text)
254
+ .join('');
255
+ const message = {
256
+ role: 'assistant',
257
+ content,
258
+ };
259
+ // Handle tool use
260
+ const toolUse = data.content.filter((c) => c.type === 'tool_use');
261
+ if (toolUse.length > 0) {
262
+ message.toolCalls = toolUse.map((tu) => ({
263
+ id: tu.id,
264
+ name: tu.name,
265
+ arguments: tu.input,
266
+ }));
267
+ }
268
+ const usage = data.usage ? {
269
+ promptTokens: data.usage.input_tokens,
270
+ completionTokens: data.usage.output_tokens,
271
+ totalTokens: data.usage.input_tokens + data.usage.output_tokens,
272
+ } : undefined;
273
+ return {
274
+ message,
275
+ usage,
276
+ finishReason: data.stop_reason === 'tool_use' ? 'tool_calls' : 'stop',
277
+ };
278
+ }
279
+ }
280
+ exports.AnthropicProvider = AnthropicProvider;
281
+ /**
282
+ * Local model provider (Ollama-compatible)
283
+ */
284
+ class LocalModelProvider extends BaseLLMProvider {
285
+ name = 'local';
286
+ constructor(config) {
287
+ super({
288
+ ...config,
289
+ baseUrl: config.baseUrl || 'http://localhost:11434',
290
+ defaultModel: config.defaultModel || 'llama2',
291
+ });
292
+ }
293
+ async chat(input) {
294
+ this.validateInput(input);
295
+ const model = input.model || this.config.defaultModel || 'llama2';
296
+ const requestBody = {
297
+ model,
298
+ messages: input.messages,
299
+ stream: false,
300
+ ...(input.temperature !== undefined && {
301
+ options: { temperature: input.temperature }
302
+ }),
303
+ };
304
+ try {
305
+ const response = await this.makeRequest('/api/chat', requestBody);
306
+ return this.parseResponse(response);
307
+ }
308
+ catch (error) {
309
+ throw new error_1.ExecutionError(`Local model error: ${error.message}`, 'LLM_API_ERROR', true);
310
+ }
311
+ }
312
+ async makeRequest(endpoint, body) {
313
+ // Placeholder - in production would use fetch
314
+ return {
315
+ model: this.config.defaultModel,
316
+ message: {
317
+ role: 'assistant',
318
+ content: 'Mock response from local model provider',
319
+ },
320
+ done: true,
321
+ };
322
+ }
323
+ parseResponse(response) {
324
+ const data = response;
325
+ return {
326
+ message: {
327
+ role: 'assistant',
328
+ content: data.message.content,
329
+ },
330
+ finishReason: 'stop',
331
+ };
332
+ }
333
+ }
334
+ exports.LocalModelProvider = LocalModelProvider;
335
+ /**
336
+ * LLM Provider Registry
337
+ */
338
+ class LLMProviderRegistry {
339
+ providers = new Map();
340
+ register(provider) {
341
+ this.providers.set(provider.name, provider);
342
+ }
343
+ get(name) {
344
+ return this.providers.get(name);
345
+ }
346
+ list() {
347
+ return Array.from(this.providers.keys());
348
+ }
349
+ has(name) {
350
+ return this.providers.has(name);
351
+ }
352
+ }
353
+ exports.LLMProviderRegistry = LLMProviderRegistry;
354
+ /**
355
+ * Create a provider from configuration
356
+ */
357
+ function createLLMProvider(config) {
358
+ switch (config.name.toLowerCase()) {
359
+ case 'openai':
360
+ return new OpenAIProvider(config);
361
+ case 'anthropic':
362
+ return new AnthropicProvider(config);
363
+ case 'local':
364
+ case 'ollama':
365
+ return new LocalModelProvider(config);
366
+ default:
367
+ throw new error_1.ValidationError(`Unknown LLM provider: ${config.name}`, error_1.ErrorCodes.PROVIDER_NOT_FOUND);
368
+ }
369
+ }
370
+ //# sourceMappingURL=LLMProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMProvider.js","sourceRoot":"","sources":["../../src/llm/LLMProvider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA2bH,8CAYC;AA7bD,0CAA6E;AAW7E;;GAEG;AACH,MAAsB,eAAe;IAEzB,MAAM,CAAoB;IAEpC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAQD,mBAAmB;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAES,aAAa,CAAC,KAAgB;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,uBAAe,CAAC,uBAAuB,EAAE,kBAAU,CAAC,sBAAsB,CAAC,CAAC;QACxF,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrF,MAAM,IAAI,uBAAe,CAAC,yBAAyB,OAAO,CAAC,IAAI,EAAE,EAAE,kBAAU,CAAC,cAAc,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;IACH,CAAC;IAES,sBAAsB,CAAC,KAAkB;QACjD,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;gBACnC,UAAU,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aACnE;SACF,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAlDD,0CAkDC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,eAAe;IACjD,IAAI,GAAG,QAAQ,CAAC;IAEhB,YAAY,MAAyB;QACnC,KAAK,CAAC;YACJ,GAAG,MAAM;YACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;YACtD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,OAAO;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAgB;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,WAAW,GAA4B;YAC3C,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC/C,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;aACpD,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAClC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SAC3D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAc,CACtB,qBAAsB,KAAe,CAAC,OAAO,EAAE,EAC/C,eAAe,EACf,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,KAAgB;QAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,WAAW,GAA4B;YAC3C,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;SACnC,CAAC;QAEF,2CAA2C;QAC3C,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM;YACJ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa;QACvB,MAAM,WAAW,GAAG;YAClB,KAAK,EAAE,wBAAwB;YAC/B,KAAK;SACN,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACpE,OAAQ,QAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAc,CACtB,2BAA4B,KAAe,CAAC,OAAO,EAAE,EACrD,eAAe,EACf,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAa;QACvD,uDAAuD;QACvD,4CAA4C;QAC5C,OAAO;YACL,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YAC/B,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,oCAAoC;qBAC9C;oBACD,aAAa,EAAE,MAAM;iBACtB,CAAC;YACF,KAAK,EAAE;gBACL,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,EAAE;aACjB;SACF,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,QAAiB;QACrC,MAAM,IAAI,GAAG,QAAe,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;SACtC,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;gBAC9D,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;gBACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;aAC7C,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAA2B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;YACtC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAC9C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;SACrC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,OAAO;YACP,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC;SACzD,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;YACvC,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAjKD,wCAiKC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,eAAe;IACpD,IAAI,GAAG,WAAW,CAAC;IAEnB,YAAY,MAAyB;QACnC,KAAK,CAAC;YACJ,GAAG,MAAM;YACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,8BAA8B;YACzD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,wBAAwB;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAgB;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,wBAAwB,CAAC;QAElF,uCAAuC;QACvC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAEtE,MAAM,WAAW,GAA4B;YAC3C,KAAK;YACL,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;gBACnD,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;YACH,GAAG,CAAC,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SAC3E,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAc,CACtB,wBAAyB,KAAe,CAAC,OAAO,EAAE,EAClD,eAAe,EACf,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAa;QACvD,8CAA8C;QAC9C,OAAO;YACL,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,uCAAuC;iBAC9C,CAAC;YACF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YAC/B,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE;gBACL,YAAY,EAAE,EAAE;gBAChB,aAAa,EAAE,EAAE;aAClB;SACF,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,QAAiB;QACrC,MAAM,IAAI,GAAG,QAAe,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACzB,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACvB,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,MAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO;SACR,CAAC;QAEF,kBAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;gBAC5C,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,SAAS,EAAE,EAAE,CAAC,KAAK;aACpB,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAA2B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;YAC1C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;SAChE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,OAAO;YACP,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;SACtE,CAAC;IACJ,CAAC;CACF;AAzGD,8CAyGC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,eAAe;IACrD,IAAI,GAAG,OAAO,CAAC;IAEf,YAAY,MAAyB;QACnC,KAAK,CAAC;YACJ,GAAG,MAAM;YACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,wBAAwB;YACnD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,QAAQ;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAgB;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC;QAElE,MAAM,WAAW,GAAG;YAClB,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK;YACb,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI;gBACrC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;aAC5C,CAAC;SACH,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAc,CACtB,sBAAuB,KAAe,CAAC,OAAO,EAAE,EAChD,eAAe,EACf,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAa;QACvD,8CAA8C;QAC9C,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YAC/B,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,yCAAyC;aACnD;YACD,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,QAAiB;QACrC,MAAM,IAAI,GAAG,QAAe,CAAC;QAE7B,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;aAC9B;YACD,YAAY,EAAE,MAAM;SACrB,CAAC;IACJ,CAAC;CACF;AA5DD,gDA4DC;AAED;;GAEG;AACH,MAAa,mBAAmB;IACtB,SAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;IAExD,QAAQ,CAAC,QAAqB;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AAlBD,kDAkBC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAyB;IACzD,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxC;YACE,MAAM,IAAI,uBAAe,CAAC,yBAAyB,MAAM,CAAC,IAAI,EAAE,EAAE,kBAAU,CAAC,kBAAkB,CAAC,CAAC;IACrG,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * LLM Module Exports
3
+ */
4
+ export { BaseLLMProvider, OpenAIProvider, AnthropicProvider, LocalModelProvider, LLMProviderRegistry, createLLMProvider, LLMProviderConfig, } from './LLMProvider';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * LLM Module Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createLLMProvider = exports.LLMProviderRegistry = exports.LocalModelProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.BaseLLMProvider = void 0;
7
+ var LLMProvider_1 = require("./LLMProvider");
8
+ Object.defineProperty(exports, "BaseLLMProvider", { enumerable: true, get: function () { return LLMProvider_1.BaseLLMProvider; } });
9
+ Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return LLMProvider_1.OpenAIProvider; } });
10
+ Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return LLMProvider_1.AnthropicProvider; } });
11
+ Object.defineProperty(exports, "LocalModelProvider", { enumerable: true, get: function () { return LLMProvider_1.LocalModelProvider; } });
12
+ Object.defineProperty(exports, "LLMProviderRegistry", { enumerable: true, get: function () { return LLMProvider_1.LLMProviderRegistry; } });
13
+ Object.defineProperty(exports, "createLLMProvider", { enumerable: true, get: function () { return LLMProvider_1.createLLMProvider; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6CAQuB;AAPrB,8GAAA,eAAe,OAAA;AACf,6GAAA,cAAc,OAAA;AACd,gHAAA,iBAAiB,OAAA;AACjB,iHAAA,kBAAkB,OAAA;AAClB,kHAAA,mBAAmB,OAAA;AACnB,gHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Payment Provider System
3
+ * Provides pluggable payment provider abstraction
4
+ */
5
+ import { Logger } from '../types/tool';
6
+ import { PaymentProvider, PaymentProviderConfig, PaymentRequest, PaymentResult, PaymentStatus, RefundRequest, RefundResult, WebhookResult, PaymentMethod } from '../types/payment';
7
+ /**
8
+ * Payment Error
9
+ */
10
+ export declare class PaymentError extends Error {
11
+ readonly code: string;
12
+ readonly details?: unknown;
13
+ constructor(message: string, code: string, details?: unknown);
14
+ }
15
+ /**
16
+ * Base Payment Provider
17
+ * Abstract class for implementing payment providers
18
+ */
19
+ export declare abstract class BasePaymentProvider implements PaymentProvider {
20
+ abstract readonly name: string;
21
+ abstract readonly version: string;
22
+ protected config: PaymentProviderConfig;
23
+ protected logger: Logger;
24
+ protected initialized: boolean;
25
+ constructor(logger: Logger);
26
+ abstract processPayment(request: PaymentRequest): Promise<PaymentResult>;
27
+ abstract refundPayment(request: RefundRequest): Promise<RefundResult>;
28
+ abstract getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
29
+ abstract validateWebhook(payload: unknown, signature: string): Promise<boolean>;
30
+ abstract processWebhook(payload: unknown): Promise<WebhookResult>;
31
+ abstract getSupportedCurrencies(): string[];
32
+ abstract getSupportedPaymentMethods(): PaymentMethod[];
33
+ abstract getWebhookEvents(): string[];
34
+ initialize(config: PaymentProviderConfig): Promise<void>;
35
+ healthCheck(): Promise<boolean>;
36
+ /**
37
+ * Generate idempotency key
38
+ */
39
+ protected generateIdempotencyKey(): string;
40
+ /**
41
+ * Format amount for API (convert to smallest unit)
42
+ */
43
+ protected formatAmount(amount: number, currency: string): number;
44
+ /**
45
+ * Parse amount from API (convert from smallest unit)
46
+ */
47
+ protected parseAmount(amount: number, currency: string): number;
48
+ }
49
+ /**
50
+ * Generic API Payment Provider
51
+ * Base class for easy API-based payment integrations
52
+ */
53
+ export declare abstract class GenericAPIPaymentProvider extends BasePaymentProvider {
54
+ protected baseUrl: string;
55
+ /**
56
+ * Make authenticated API request
57
+ */
58
+ protected apiRequest<T>(method: 'GET' | 'POST' | 'PUT' | 'DELETE', endpoint: string, data?: unknown, headers?: Record<string, string>): Promise<T>;
59
+ /**
60
+ * Get authentication headers - override in subclass
61
+ */
62
+ protected abstract getAuthHeaders(): Promise<Record<string, string>>;
63
+ }
64
+ /**
65
+ * Stripe Payment Provider
66
+ */
67
+ export declare class StripeProvider extends GenericAPIPaymentProvider {
68
+ readonly name = "stripe";
69
+ readonly version = "1.0.0";
70
+ initialize(config: PaymentProviderConfig): Promise<void>;
71
+ protected getAuthHeaders(): Promise<Record<string, string>>;
72
+ getSupportedCurrencies(): string[];
73
+ getSupportedPaymentMethods(): PaymentMethod[];
74
+ getWebhookEvents(): string[];
75
+ processPayment(request: PaymentRequest): Promise<PaymentResult>;
76
+ getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
77
+ refundPayment(request: RefundRequest): Promise<RefundResult>;
78
+ validateWebhook(payload: unknown, signature: string): Promise<boolean>;
79
+ processWebhook(payload: unknown): Promise<WebhookResult>;
80
+ private mapStatus;
81
+ }
82
+ /**
83
+ * PayPal Payment Provider
84
+ */
85
+ export declare class PayPalProvider extends GenericAPIPaymentProvider {
86
+ readonly name = "paypal";
87
+ readonly version = "1.0.0";
88
+ private accessToken?;
89
+ private tokenExpiry?;
90
+ initialize(config: PaymentProviderConfig): Promise<void>;
91
+ private refreshToken;
92
+ protected getAuthHeaders(): Promise<Record<string, string>>;
93
+ getSupportedCurrencies(): string[];
94
+ getSupportedPaymentMethods(): PaymentMethod[];
95
+ getWebhookEvents(): string[];
96
+ processPayment(request: PaymentRequest): Promise<PaymentResult>;
97
+ getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
98
+ refundPayment(request: RefundRequest): Promise<RefundResult>;
99
+ validateWebhook(payload: unknown, signature: string): Promise<boolean>;
100
+ processWebhook(payload: unknown): Promise<WebhookResult>;
101
+ private mapStatus;
102
+ }
103
+ /**
104
+ * M-Pesa Payment Provider
105
+ */
106
+ export declare class MPesaProvider extends GenericAPIPaymentProvider {
107
+ readonly name = "mpesa";
108
+ readonly version = "1.0.0";
109
+ private accessToken?;
110
+ private tokenExpiry?;
111
+ initialize(config: PaymentProviderConfig): Promise<void>;
112
+ private refreshToken;
113
+ protected getAuthHeaders(): Promise<Record<string, string>>;
114
+ getSupportedCurrencies(): string[];
115
+ getSupportedPaymentMethods(): PaymentMethod[];
116
+ getWebhookEvents(): string[];
117
+ processPayment(request: PaymentRequest): Promise<PaymentResult>;
118
+ getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
119
+ refundPayment(request: RefundRequest): Promise<RefundResult>;
120
+ validateWebhook(payload: unknown, signature: string): Promise<boolean>;
121
+ processWebhook(payload: unknown): Promise<WebhookResult>;
122
+ private formatPhoneNumber;
123
+ private mapStatus;
124
+ }
125
+ /**
126
+ * Payment Provider Registry
127
+ */
128
+ export declare class PaymentProviderRegistry {
129
+ private providers;
130
+ private logger;
131
+ constructor(logger: Logger);
132
+ /**
133
+ * Register a payment provider
134
+ */
135
+ register(provider: PaymentProvider, config: PaymentProviderConfig): Promise<void>;
136
+ /**
137
+ * Get a provider by name
138
+ */
139
+ get(name: string): PaymentProvider | undefined;
140
+ /**
141
+ * List all providers
142
+ */
143
+ list(): string[];
144
+ /**
145
+ * Find providers supporting a payment method
146
+ */
147
+ findByMethod(methodType: PaymentMethod['type']): PaymentProvider[];
148
+ /**
149
+ * Unregister a provider
150
+ */
151
+ unregister(name: string): boolean;
152
+ }
153
+ /**
154
+ * Create payment provider from type
155
+ */
156
+ export declare function createPaymentProvider(type: string, logger: Logger): PaymentProvider;
157
+ //# sourceMappingURL=PaymentProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentProvider.d.ts","sourceRoot":"","sources":["../../src/payment/PaymentProvider.ts"],"names":[],"mappings":"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"}