@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,291 @@
1
+ "use strict";
2
+ /**
3
+ * AI Agent System Implementation
4
+ * Provides goal-based execution with tool calling and memory
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AgentManager = exports.AIAgent = exports.InMemoryStore = void 0;
8
+ const uuid_1 = require("uuid");
9
+ const error_1 = require("../types/error");
10
+ /**
11
+ * In-memory store implementation
12
+ */
13
+ class InMemoryStore {
14
+ store = new Map();
15
+ async save(key, value) {
16
+ this.store.set(key, JSON.parse(JSON.stringify(value)));
17
+ }
18
+ async get(key) {
19
+ const value = this.store.get(key);
20
+ return value !== undefined ? JSON.parse(JSON.stringify(value)) : null;
21
+ }
22
+ async delete(key) {
23
+ this.store.delete(key);
24
+ }
25
+ async clear() {
26
+ this.store.clear();
27
+ }
28
+ async list() {
29
+ return Array.from(this.store.keys());
30
+ }
31
+ }
32
+ exports.InMemoryStore = InMemoryStore;
33
+ /**
34
+ * AI Agent implementation
35
+ */
36
+ class AIAgent {
37
+ id;
38
+ name;
39
+ config;
40
+ llmProvider;
41
+ toolExecutor;
42
+ logger;
43
+ memory;
44
+ conversationHistory = [];
45
+ constructor(config, deps, memory) {
46
+ this.id = (0, uuid_1.v4)();
47
+ this.name = config.name;
48
+ this.config = config;
49
+ this.llmProvider = deps.llmProvider;
50
+ this.toolExecutor = deps.toolExecutor;
51
+ this.logger = deps.logger;
52
+ this.memory = memory || new InMemoryStore();
53
+ // Initialize with system prompt if provided
54
+ if (config.systemPrompt) {
55
+ this.conversationHistory.push({
56
+ role: 'system',
57
+ content: config.systemPrompt,
58
+ });
59
+ }
60
+ }
61
+ /**
62
+ * Execute a goal-based task
63
+ */
64
+ async execute(goal, context) {
65
+ const maxIterations = this.config.maxIterations || 10;
66
+ const toolCalls = [];
67
+ let iterations = 0;
68
+ this.logger.info(`Agent ${this.name} executing goal: ${goal}`, { agentId: this.id });
69
+ // Add goal as user message
70
+ const messages = [
71
+ ...this.conversationHistory,
72
+ { role: 'user', content: goal },
73
+ ];
74
+ try {
75
+ while (iterations < maxIterations) {
76
+ iterations++;
77
+ // Get available tools for this agent
78
+ const availableTools = this.filterAllowedTools(context.availableTools);
79
+ // Call LLM
80
+ const chatInput = {
81
+ messages,
82
+ model: this.config.model,
83
+ temperature: this.config.temperature,
84
+ tools: availableTools,
85
+ toolChoice: availableTools.length > 0 ? 'auto' : 'none',
86
+ };
87
+ const response = await this.llmProvider.chat(chatInput);
88
+ // Add assistant response to messages
89
+ messages.push(response.message);
90
+ // Check if we need to execute tools
91
+ if (response.finishReason === 'tool_calls' && response.message.toolCalls) {
92
+ // Execute each tool call
93
+ for (const toolCall of response.message.toolCalls) {
94
+ toolCalls.push(toolCall);
95
+ this.logger.debug(`Agent executing tool: ${toolCall.name}`, {
96
+ agentId: this.id,
97
+ toolCall,
98
+ });
99
+ try {
100
+ const result = await this.toolExecutor(toolCall.name, toolCall.arguments, context);
101
+ // Add tool result to messages
102
+ messages.push({
103
+ role: 'tool',
104
+ content: JSON.stringify(result.data),
105
+ toolCallId: toolCall.id,
106
+ });
107
+ }
108
+ catch (error) {
109
+ // Add error as tool result
110
+ messages.push({
111
+ role: 'tool',
112
+ content: JSON.stringify({ error: error.message }),
113
+ toolCallId: toolCall.id,
114
+ });
115
+ }
116
+ }
117
+ }
118
+ else {
119
+ // No more tool calls, we have a final response
120
+ this.logger.info(`Agent ${this.name} completed goal`, {
121
+ agentId: this.id,
122
+ iterations,
123
+ toolCallCount: toolCalls.length,
124
+ });
125
+ return {
126
+ success: true,
127
+ result: response.message.content,
128
+ reasoning: this.extractReasoning(messages),
129
+ toolCalls,
130
+ };
131
+ }
132
+ }
133
+ // Max iterations reached
134
+ this.logger.warn(`Agent ${this.name} reached max iterations`, {
135
+ agentId: this.id,
136
+ maxIterations,
137
+ });
138
+ return {
139
+ success: false,
140
+ error: `Max iterations (${maxIterations}) reached without completing goal`,
141
+ toolCalls,
142
+ };
143
+ }
144
+ catch (error) {
145
+ this.logger.error(`Agent ${this.name} execution failed`, error);
146
+ return {
147
+ success: false,
148
+ error: error.message,
149
+ toolCalls,
150
+ };
151
+ }
152
+ }
153
+ /**
154
+ * Chat with the agent
155
+ */
156
+ async chat(messages, context) {
157
+ // Combine conversation history with new messages
158
+ const allMessages = [...this.conversationHistory, ...messages];
159
+ const availableTools = this.filterAllowedTools(context.availableTools);
160
+ const chatInput = {
161
+ messages: allMessages,
162
+ model: this.config.model,
163
+ temperature: this.config.temperature,
164
+ tools: availableTools,
165
+ toolChoice: availableTools.length > 0 ? 'auto' : 'none',
166
+ };
167
+ const response = await this.llmProvider.chat(chatInput);
168
+ // Update conversation history
169
+ this.conversationHistory.push(...messages);
170
+ this.conversationHistory.push(response.message);
171
+ return {
172
+ message: response.message,
173
+ usage: response.usage,
174
+ finishReason: response.finishReason,
175
+ };
176
+ }
177
+ /**
178
+ * Save to agent memory
179
+ */
180
+ async saveMemory(key, value) {
181
+ await this.memory.save(key, value);
182
+ this.logger.debug(`Agent ${this.name} saved memory: ${key}`, { agentId: this.id });
183
+ }
184
+ /**
185
+ * Get from agent memory
186
+ */
187
+ async getMemory(key) {
188
+ return await this.memory.get(key);
189
+ }
190
+ /**
191
+ * Clear agent memory
192
+ */
193
+ async clearMemory() {
194
+ await this.memory.clear();
195
+ this.conversationHistory = this.config.systemPrompt
196
+ ? [{ role: 'system', content: this.config.systemPrompt }]
197
+ : [];
198
+ this.logger.debug(`Agent ${this.name} memory cleared`, { agentId: this.id });
199
+ }
200
+ /**
201
+ * Get conversation history
202
+ */
203
+ getConversationHistory() {
204
+ return [...this.conversationHistory];
205
+ }
206
+ /**
207
+ * Filter tools to only those allowed for this agent
208
+ */
209
+ filterAllowedTools(availableTools) {
210
+ if (this.config.allowedTools.length === 0) {
211
+ return [];
212
+ }
213
+ // Check for wildcard
214
+ if (this.config.allowedTools.includes('*')) {
215
+ return availableTools;
216
+ }
217
+ return availableTools.filter(tool => this.config.allowedTools.includes(tool.name));
218
+ }
219
+ /**
220
+ * Extract reasoning from conversation
221
+ */
222
+ extractReasoning(messages) {
223
+ const assistantMessages = messages
224
+ .filter(m => m.role === 'assistant')
225
+ .map(m => m.content)
226
+ .filter(Boolean);
227
+ return assistantMessages.join('\n\n');
228
+ }
229
+ }
230
+ exports.AIAgent = AIAgent;
231
+ /**
232
+ * Agent Manager for creating and managing agents
233
+ */
234
+ class AgentManager {
235
+ agents = new Map();
236
+ llmProviders = new Map();
237
+ toolExecutor;
238
+ logger;
239
+ constructor(toolExecutor, logger) {
240
+ this.toolExecutor = toolExecutor;
241
+ this.logger = logger;
242
+ }
243
+ /**
244
+ * Register an LLM provider
245
+ */
246
+ registerProvider(name, provider) {
247
+ this.llmProviders.set(name, provider);
248
+ }
249
+ /**
250
+ * Create a new agent
251
+ */
252
+ createAgent(config, memory) {
253
+ const provider = this.llmProviders.get(config.llmProvider);
254
+ if (!provider) {
255
+ throw new error_1.ValidationError(`LLM provider not found: ${config.llmProvider}`, error_1.ErrorCodes.PROVIDER_NOT_FOUND);
256
+ }
257
+ const agent = new AIAgent(config, {
258
+ llmProvider: provider,
259
+ toolExecutor: this.toolExecutor,
260
+ logger: this.logger,
261
+ }, memory);
262
+ this.agents.set(agent.id, agent);
263
+ this.logger.info(`Agent created: ${agent.name}`, { agentId: agent.id });
264
+ return agent;
265
+ }
266
+ /**
267
+ * Get an agent by ID
268
+ */
269
+ getAgent(id) {
270
+ return this.agents.get(id);
271
+ }
272
+ /**
273
+ * List all agents
274
+ */
275
+ listAgents() {
276
+ return Array.from(this.agents.values());
277
+ }
278
+ /**
279
+ * Remove an agent
280
+ */
281
+ async removeAgent(id) {
282
+ const agent = this.agents.get(id);
283
+ if (agent) {
284
+ await agent.clearMemory();
285
+ this.agents.delete(id);
286
+ this.logger.info(`Agent removed: ${agent.name}`, { agentId: id });
287
+ }
288
+ }
289
+ }
290
+ exports.AgentManager = AgentManager;
291
+ //# sourceMappingURL=Agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/agent/Agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Agent Module Exports
3
+ */
4
+ export { AIAgent, AgentManager, AgentDependencies, MemoryStore, InMemoryStore, } from './Agent';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Module Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.InMemoryStore = exports.AgentManager = exports.AIAgent = void 0;
7
+ var Agent_1 = require("./Agent");
8
+ Object.defineProperty(exports, "AIAgent", { enumerable: true, get: function () { return Agent_1.AIAgent; } });
9
+ Object.defineProperty(exports, "AgentManager", { enumerable: true, get: function () { return Agent_1.AgentManager; } });
10
+ Object.defineProperty(exports, "InMemoryStore", { enumerable: true, get: function () { return Agent_1.InMemoryStore; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iCAMiB;AALf,gGAAA,OAAO,OAAA;AACP,qGAAA,YAAY,OAAA;AAGZ,sGAAA,aAAa,OAAA"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * CLI Framework Implementation
3
+ * Provides command-line interface for agentx
4
+ */
5
+ import { Logger } from '../types/tool';
6
+ export interface CommandContext {
7
+ args: string[];
8
+ flags: Record<string, string | boolean>;
9
+ cwd: string;
10
+ logger: Logger;
11
+ }
12
+ export interface CommandResult {
13
+ success: boolean;
14
+ message?: string;
15
+ data?: unknown;
16
+ exitCode?: number;
17
+ }
18
+ export interface Command {
19
+ name: string;
20
+ description: string;
21
+ usage: string;
22
+ aliases?: string[];
23
+ flags?: FlagDefinition[];
24
+ subcommands?: Command[];
25
+ execute(context: CommandContext): Promise<CommandResult>;
26
+ }
27
+ export interface FlagDefinition {
28
+ name: string;
29
+ short?: string;
30
+ description: string;
31
+ required?: boolean;
32
+ default?: string | boolean;
33
+ type: 'string' | 'boolean';
34
+ }
35
+ /**
36
+ * CLI Application
37
+ */
38
+ export declare class CLI {
39
+ private commands;
40
+ private aliases;
41
+ private logger;
42
+ private name;
43
+ private version;
44
+ constructor(name: string, version: string, logger: Logger);
45
+ /**
46
+ * Register a command
47
+ */
48
+ registerCommand(command: Command): void;
49
+ /**
50
+ * Parse and execute command
51
+ */
52
+ run(argv: string[]): Promise<CommandResult>;
53
+ /**
54
+ * Parse command line arguments
55
+ */
56
+ private parseArgs;
57
+ /**
58
+ * Show help
59
+ */
60
+ private showHelp;
61
+ /**
62
+ * Create help command
63
+ */
64
+ private createHelpCommand;
65
+ /**
66
+ * Create version command
67
+ */
68
+ private createVersionCommand;
69
+ /**
70
+ * Get all registered commands
71
+ */
72
+ getCommands(): Command[];
73
+ }
74
+ //# sourceMappingURL=CLI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAUzD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUvC;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAiFjD;;OAEG;IACH,OAAO,CAAC,SAAS;IAwCjB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAuBhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8DzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;CAGzB"}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ /**
3
+ * CLI Framework Implementation
4
+ * Provides command-line interface for agentx
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CLI = void 0;
8
+ /**
9
+ * CLI Application
10
+ */
11
+ class CLI {
12
+ commands = new Map();
13
+ aliases = new Map();
14
+ logger;
15
+ name;
16
+ version;
17
+ constructor(name, version, logger) {
18
+ this.name = name;
19
+ this.version = version;
20
+ this.logger = logger;
21
+ // Register built-in commands
22
+ this.registerCommand(this.createHelpCommand());
23
+ this.registerCommand(this.createVersionCommand());
24
+ }
25
+ /**
26
+ * Register a command
27
+ */
28
+ registerCommand(command) {
29
+ this.commands.set(command.name, command);
30
+ if (command.aliases) {
31
+ for (const alias of command.aliases) {
32
+ this.aliases.set(alias, command.name);
33
+ }
34
+ }
35
+ }
36
+ /**
37
+ * Parse and execute command
38
+ */
39
+ async run(argv) {
40
+ const { commandName, args, flags } = this.parseArgs(argv);
41
+ if (!commandName) {
42
+ return this.showHelp();
43
+ }
44
+ // Resolve alias
45
+ const resolvedName = this.aliases.get(commandName) || commandName;
46
+ const command = this.commands.get(resolvedName);
47
+ if (!command) {
48
+ return {
49
+ success: false,
50
+ message: `Unknown command: ${commandName}. Run '${this.name} help' for usage.`,
51
+ exitCode: 1,
52
+ };
53
+ }
54
+ // Check for subcommand
55
+ if (command.subcommands && args.length > 0) {
56
+ const subcommandName = args[0];
57
+ const subcommand = command.subcommands.find(sc => sc.name === subcommandName || sc.aliases?.includes(subcommandName));
58
+ if (subcommand) {
59
+ const context = {
60
+ args: args.slice(1),
61
+ flags,
62
+ cwd: process.cwd(),
63
+ logger: this.logger,
64
+ };
65
+ try {
66
+ return await subcommand.execute(context);
67
+ }
68
+ catch (error) {
69
+ return {
70
+ success: false,
71
+ message: `Error executing command: ${error.message}`,
72
+ exitCode: 1,
73
+ };
74
+ }
75
+ }
76
+ }
77
+ // Validate required flags
78
+ if (command.flags) {
79
+ for (const flagDef of command.flags) {
80
+ if (flagDef.required && !(flagDef.name in flags)) {
81
+ return {
82
+ success: false,
83
+ message: `Missing required flag: --${flagDef.name}`,
84
+ exitCode: 1,
85
+ };
86
+ }
87
+ // Apply defaults
88
+ if (flagDef.default !== undefined && !(flagDef.name in flags)) {
89
+ flags[flagDef.name] = flagDef.default;
90
+ }
91
+ }
92
+ }
93
+ const context = {
94
+ args,
95
+ flags,
96
+ cwd: process.cwd(),
97
+ logger: this.logger,
98
+ };
99
+ try {
100
+ return await command.execute(context);
101
+ }
102
+ catch (error) {
103
+ return {
104
+ success: false,
105
+ message: `Error executing command: ${error.message}`,
106
+ exitCode: 1,
107
+ };
108
+ }
109
+ }
110
+ /**
111
+ * Parse command line arguments
112
+ */
113
+ parseArgs(argv) {
114
+ const flags = {};
115
+ const args = [];
116
+ let commandName = null;
117
+ for (let i = 0; i < argv.length; i++) {
118
+ const arg = argv[i];
119
+ if (arg.startsWith('--')) {
120
+ // Long flag
121
+ const [key, value] = arg.slice(2).split('=');
122
+ if (value !== undefined) {
123
+ flags[key] = value;
124
+ }
125
+ else if (argv[i + 1] && !argv[i + 1].startsWith('-')) {
126
+ flags[key] = argv[++i];
127
+ }
128
+ else {
129
+ flags[key] = true;
130
+ }
131
+ }
132
+ else if (arg.startsWith('-') && arg.length === 2) {
133
+ // Short flag
134
+ const key = arg.slice(1);
135
+ if (argv[i + 1] && !argv[i + 1].startsWith('-')) {
136
+ flags[key] = argv[++i];
137
+ }
138
+ else {
139
+ flags[key] = true;
140
+ }
141
+ }
142
+ else if (!commandName) {
143
+ commandName = arg;
144
+ }
145
+ else {
146
+ args.push(arg);
147
+ }
148
+ }
149
+ return { commandName, args, flags };
150
+ }
151
+ /**
152
+ * Show help
153
+ */
154
+ showHelp() {
155
+ const lines = [
156
+ `${this.name} v${this.version}`,
157
+ '',
158
+ 'Usage:',
159
+ ` ${this.name} <command> [options]`,
160
+ '',
161
+ 'Commands:',
162
+ ];
163
+ for (const [name, command] of this.commands) {
164
+ lines.push(` ${name.padEnd(15)} ${command.description}`);
165
+ }
166
+ lines.push('');
167
+ lines.push(`Run '${this.name} help <command>' for more information on a command.`);
168
+ return {
169
+ success: true,
170
+ message: lines.join('\n'),
171
+ };
172
+ }
173
+ /**
174
+ * Create help command
175
+ */
176
+ createHelpCommand() {
177
+ return {
178
+ name: 'help',
179
+ description: 'Show help for a command',
180
+ usage: 'help [command]',
181
+ aliases: ['h', '?'],
182
+ execute: async (context) => {
183
+ if (context.args.length === 0) {
184
+ return this.showHelp();
185
+ }
186
+ const commandName = context.args[0];
187
+ const resolvedName = this.aliases.get(commandName) || commandName;
188
+ const command = this.commands.get(resolvedName);
189
+ if (!command) {
190
+ return {
191
+ success: false,
192
+ message: `Unknown command: ${commandName}`,
193
+ exitCode: 1,
194
+ };
195
+ }
196
+ const lines = [
197
+ `${command.name} - ${command.description}`,
198
+ '',
199
+ 'Usage:',
200
+ ` ${this.name} ${command.usage}`,
201
+ ];
202
+ if (command.aliases && command.aliases.length > 0) {
203
+ lines.push('');
204
+ lines.push(`Aliases: ${command.aliases.join(', ')}`);
205
+ }
206
+ if (command.flags && command.flags.length > 0) {
207
+ lines.push('');
208
+ lines.push('Flags:');
209
+ for (const flag of command.flags) {
210
+ const shortFlag = flag.short ? `-${flag.short}, ` : ' ';
211
+ const required = flag.required ? ' (required)' : '';
212
+ const defaultVal = flag.default !== undefined ? ` [default: ${flag.default}]` : '';
213
+ lines.push(` ${shortFlag}--${flag.name.padEnd(15)} ${flag.description}${required}${defaultVal}`);
214
+ }
215
+ }
216
+ if (command.subcommands && command.subcommands.length > 0) {
217
+ lines.push('');
218
+ lines.push('Subcommands:');
219
+ for (const sub of command.subcommands) {
220
+ lines.push(` ${sub.name.padEnd(15)} ${sub.description}`);
221
+ }
222
+ }
223
+ return {
224
+ success: true,
225
+ message: lines.join('\n'),
226
+ };
227
+ },
228
+ };
229
+ }
230
+ /**
231
+ * Create version command
232
+ */
233
+ createVersionCommand() {
234
+ return {
235
+ name: 'version',
236
+ description: 'Show version information',
237
+ usage: 'version',
238
+ aliases: ['v', '-v', '--version'],
239
+ execute: async () => {
240
+ return {
241
+ success: true,
242
+ message: `${this.name} v${this.version}`,
243
+ };
244
+ },
245
+ };
246
+ }
247
+ /**
248
+ * Get all registered commands
249
+ */
250
+ getCommands() {
251
+ return Array.from(this.commands.values());
252
+ }
253
+ }
254
+ exports.CLI = CLI;
255
+ //# sourceMappingURL=CLI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"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"}