@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,504 @@
1
+ "use strict";
2
+ /**
3
+ * Project Management Commands
4
+ * Handles project scaffolding and initialization
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.ProjectCommands = void 0;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const InteractiveSetup_1 = require("../InteractiveSetup");
44
+ /**
45
+ * Project scaffolding templates
46
+ */
47
+ const TEMPLATES = {
48
+ workflow: `/**
49
+ * Example Workflow Definition
50
+ */
51
+ import { WorkflowDefinition } from 'agentx';
52
+
53
+ export const myWorkflow: WorkflowDefinition = {
54
+ id: 'my-workflow',
55
+ name: 'My Workflow',
56
+ version: '1.0.0',
57
+ steps: [
58
+ {
59
+ id: 'step1',
60
+ name: 'First Step',
61
+ type: 'tool',
62
+ tool: 'http',
63
+ config: {
64
+ method: 'GET',
65
+ url: 'https://api.example.com/data',
66
+ },
67
+ },
68
+ ],
69
+ };
70
+ `,
71
+ tool: `/**
72
+ * Example Tool Implementation
73
+ */
74
+ import { ToolSpec, ToolResult } from 'agentx';
75
+
76
+ export const myTool: ToolSpec = {
77
+ name: 'my-tool',
78
+ description: 'A custom tool',
79
+ inputSchema: {
80
+ type: 'object',
81
+ properties: {
82
+ input: { type: 'string', description: 'Input value' },
83
+ },
84
+ required: ['input'],
85
+ },
86
+ outputSchema: {
87
+ type: 'object',
88
+ properties: {
89
+ result: { type: 'string' },
90
+ },
91
+ },
92
+ };
93
+
94
+ export async function execute(input: { input: string }): Promise<ToolResult> {
95
+ return {
96
+ success: true,
97
+ data: { result: \`Processed: \${input.input}\` },
98
+ };
99
+ }
100
+ `,
101
+ agent: `/**
102
+ * Example Agent Configuration
103
+ */
104
+ import { AgentConfig } from 'agentx';
105
+
106
+ export const myAgent: AgentConfig = {
107
+ name: 'my-agent',
108
+ description: 'A custom AI agent',
109
+ llmProvider: 'openai',
110
+ model: 'gpt-4',
111
+ systemPrompt: 'You are a helpful assistant.',
112
+ allowedTools: ['*'],
113
+ maxIterations: 10,
114
+ temperature: 0.7,
115
+ };
116
+ `,
117
+ config: `/**
118
+ * AgentX Configuration
119
+ */
120
+ export default {
121
+ runtime: {
122
+ name: 'my-agentx-app',
123
+ version: '1.0.0',
124
+ },
125
+ llm: {
126
+ defaultProvider: 'openai',
127
+ providers: {
128
+ openai: {
129
+ apiKey: process.env.OPENAI_API_KEY,
130
+ },
131
+ },
132
+ },
133
+ tools: {
134
+ directory: './tools',
135
+ },
136
+ workflows: {
137
+ directory: './workflows',
138
+ },
139
+ agents: {
140
+ directory: './agents',
141
+ },
142
+ };
143
+ `,
144
+ packageJson: (name) => JSON.stringify({
145
+ name,
146
+ version: '1.0.0',
147
+ description: 'AgentX project',
148
+ main: 'dist/index.js',
149
+ scripts: {
150
+ build: 'tsc',
151
+ start: 'node dist/index.js',
152
+ dev: 'ts-node src/index.ts',
153
+ test: 'jest',
154
+ },
155
+ dependencies: {
156
+ agentx: '^0.1.0',
157
+ },
158
+ devDependencies: {
159
+ '@types/node': '^20.0.0',
160
+ typescript: '^5.0.0',
161
+ 'ts-node': '^10.0.0',
162
+ jest: '^29.0.0',
163
+ '@types/jest': '^29.0.0',
164
+ },
165
+ }, null, 2),
166
+ tsconfig: JSON.stringify({
167
+ compilerOptions: {
168
+ target: 'ES2020',
169
+ module: 'commonjs',
170
+ lib: ['ES2020'],
171
+ outDir: './dist',
172
+ rootDir: './src',
173
+ strict: true,
174
+ esModuleInterop: true,
175
+ skipLibCheck: true,
176
+ forceConsistentCasingInFileNames: true,
177
+ declaration: true,
178
+ },
179
+ include: ['src/**/*'],
180
+ exclude: ['node_modules', 'dist'],
181
+ }, null, 2),
182
+ indexTs: `/**
183
+ * AgentX Application Entry Point
184
+ */
185
+ import { AgentXRuntime } from 'agentx';
186
+ import config from './config';
187
+
188
+ async function main() {
189
+ const runtime = new AgentXRuntime(config);
190
+
191
+ await runtime.start();
192
+
193
+ console.log('AgentX runtime started');
194
+
195
+ // Handle shutdown
196
+ process.on('SIGINT', async () => {
197
+ await runtime.stop();
198
+ process.exit(0);
199
+ });
200
+ }
201
+
202
+ main().catch(console.error);
203
+ `,
204
+ };
205
+ /**
206
+ * Project Commands
207
+ */
208
+ class ProjectCommands {
209
+ /**
210
+ * Get create command (interactive setup like create-next-app)
211
+ */
212
+ static getCreateCommand() {
213
+ return {
214
+ name: 'create',
215
+ description: 'Create a new agentx project with interactive setup',
216
+ usage: 'create [name]',
217
+ aliases: ['c', 'new'],
218
+ flags: [
219
+ {
220
+ name: 'yes',
221
+ short: 'y',
222
+ description: 'Skip prompts and use defaults',
223
+ type: 'boolean',
224
+ default: false,
225
+ },
226
+ ],
227
+ execute: async (context) => {
228
+ const projectName = context.args[0];
229
+ const skipPrompts = context.flags.yes || context.flags.y;
230
+ try {
231
+ let options;
232
+ if (skipPrompts) {
233
+ // Use defaults
234
+ options = {
235
+ projectName: projectName || 'my-agentx-app',
236
+ llmProviders: ['openai'],
237
+ integrations: ['http', 'webhook'],
238
+ features: ['workflows', 'agents'],
239
+ agentPersonality: 'helpful',
240
+ typescript: true,
241
+ git: true,
242
+ deployment: ['docker'],
243
+ security: ['https-only', 'input-validation'],
244
+ };
245
+ }
246
+ else {
247
+ // Interactive setup
248
+ const wizard = new InteractiveSetup_1.SetupWizard();
249
+ options = await wizard.run(projectName);
250
+ }
251
+ // Check if directory exists
252
+ const targetDir = path.join(context.cwd, options.projectName);
253
+ if (fs.existsSync(targetDir)) {
254
+ return {
255
+ success: false,
256
+ message: `Directory '${options.projectName}' already exists. Choose a different name or delete the existing directory.`,
257
+ exitCode: 1,
258
+ };
259
+ }
260
+ // Generate project
261
+ const generator = new InteractiveSetup_1.ProjectGenerator();
262
+ await generator.generate(options, context.cwd);
263
+ return {
264
+ success: true,
265
+ message: `Project '${options.projectName}' created successfully!`,
266
+ data: { projectDir: targetDir, options },
267
+ };
268
+ }
269
+ catch (error) {
270
+ return {
271
+ success: false,
272
+ message: `Failed to create project: ${error.message}`,
273
+ exitCode: 1,
274
+ };
275
+ }
276
+ },
277
+ };
278
+ }
279
+ /**
280
+ * Get init command
281
+ */
282
+ static getInitCommand() {
283
+ return {
284
+ name: 'init',
285
+ description: 'Initialize a new agentx project',
286
+ usage: 'init [name] [options]',
287
+ aliases: ['i', 'new'],
288
+ flags: [
289
+ {
290
+ name: 'template',
291
+ short: 't',
292
+ description: 'Project template (basic, full)',
293
+ type: 'string',
294
+ default: 'basic',
295
+ },
296
+ {
297
+ name: 'force',
298
+ short: 'f',
299
+ description: 'Overwrite existing files',
300
+ type: 'boolean',
301
+ default: false,
302
+ },
303
+ ],
304
+ execute: async (context) => {
305
+ const projectName = context.args[0] || 'agentx-project';
306
+ const template = context.flags.template || 'basic';
307
+ const force = context.flags.force || false;
308
+ const projectDir = path.join(context.cwd, projectName);
309
+ // Check if directory exists
310
+ if (fs.existsSync(projectDir) && !force) {
311
+ return {
312
+ success: false,
313
+ message: `Directory '${projectName}' already exists. Use --force to overwrite.`,
314
+ exitCode: 1,
315
+ };
316
+ }
317
+ try {
318
+ // Create project structure
319
+ const dirs = [
320
+ projectDir,
321
+ path.join(projectDir, 'src'),
322
+ path.join(projectDir, 'src', 'tools'),
323
+ path.join(projectDir, 'src', 'workflows'),
324
+ path.join(projectDir, 'src', 'agents'),
325
+ ];
326
+ for (const dir of dirs) {
327
+ if (!fs.existsSync(dir)) {
328
+ fs.mkdirSync(dir, { recursive: true });
329
+ }
330
+ }
331
+ // Write files
332
+ const files = [
333
+ [path.join(projectDir, 'package.json'), TEMPLATES.packageJson(projectName)],
334
+ [path.join(projectDir, 'tsconfig.json'), TEMPLATES.tsconfig],
335
+ [path.join(projectDir, 'src', 'index.ts'), TEMPLATES.indexTs],
336
+ [path.join(projectDir, 'src', 'config.ts'), TEMPLATES.config],
337
+ ];
338
+ if (template === 'full') {
339
+ files.push([path.join(projectDir, 'src', 'tools', 'example.ts'), TEMPLATES.tool], [path.join(projectDir, 'src', 'workflows', 'example.ts'), TEMPLATES.workflow], [path.join(projectDir, 'src', 'agents', 'example.ts'), TEMPLATES.agent]);
340
+ }
341
+ for (const [filePath, content] of files) {
342
+ fs.writeFileSync(filePath, content, 'utf-8');
343
+ }
344
+ context.logger.info(`Project '${projectName}' created successfully`);
345
+ return {
346
+ success: true,
347
+ message: `
348
+ Project '${projectName}' created successfully!
349
+
350
+ Next steps:
351
+ cd ${projectName}
352
+ npm install
353
+ npm run dev
354
+ `,
355
+ data: { projectDir, template },
356
+ };
357
+ }
358
+ catch (error) {
359
+ return {
360
+ success: false,
361
+ message: `Failed to create project: ${error.message}`,
362
+ exitCode: 1,
363
+ };
364
+ }
365
+ },
366
+ };
367
+ }
368
+ /**
369
+ * Get generate command
370
+ */
371
+ static getGenerateCommand() {
372
+ return {
373
+ name: 'generate',
374
+ description: 'Generate boilerplate code',
375
+ usage: 'generate <type> <name>',
376
+ aliases: ['g', 'gen'],
377
+ subcommands: [
378
+ {
379
+ name: 'tool',
380
+ description: 'Generate a new tool',
381
+ usage: 'generate tool <name>',
382
+ execute: async (context) => {
383
+ const name = context.args[0];
384
+ if (!name) {
385
+ return {
386
+ success: false,
387
+ message: 'Tool name is required',
388
+ exitCode: 1,
389
+ };
390
+ }
391
+ const fileName = `${name}.ts`;
392
+ const filePath = path.join(context.cwd, 'src', 'tools', fileName);
393
+ const content = TEMPLATES.tool.replace(/my-tool/g, name).replace(/myTool/g, name);
394
+ try {
395
+ const dir = path.dirname(filePath);
396
+ if (!fs.existsSync(dir)) {
397
+ fs.mkdirSync(dir, { recursive: true });
398
+ }
399
+ fs.writeFileSync(filePath, content, 'utf-8');
400
+ return {
401
+ success: true,
402
+ message: `Tool '${name}' created at ${filePath}`,
403
+ };
404
+ }
405
+ catch (error) {
406
+ return {
407
+ success: false,
408
+ message: `Failed to create tool: ${error.message}`,
409
+ exitCode: 1,
410
+ };
411
+ }
412
+ },
413
+ },
414
+ {
415
+ name: 'workflow',
416
+ description: 'Generate a new workflow',
417
+ usage: 'generate workflow <name>',
418
+ execute: async (context) => {
419
+ const name = context.args[0];
420
+ if (!name) {
421
+ return {
422
+ success: false,
423
+ message: 'Workflow name is required',
424
+ exitCode: 1,
425
+ };
426
+ }
427
+ const fileName = `${name}.ts`;
428
+ const filePath = path.join(context.cwd, 'src', 'workflows', fileName);
429
+ const content = TEMPLATES.workflow
430
+ .replace(/my-workflow/g, name)
431
+ .replace(/myWorkflow/g, name)
432
+ .replace(/My Workflow/g, name);
433
+ try {
434
+ const dir = path.dirname(filePath);
435
+ if (!fs.existsSync(dir)) {
436
+ fs.mkdirSync(dir, { recursive: true });
437
+ }
438
+ fs.writeFileSync(filePath, content, 'utf-8');
439
+ return {
440
+ success: true,
441
+ message: `Workflow '${name}' created at ${filePath}`,
442
+ };
443
+ }
444
+ catch (error) {
445
+ return {
446
+ success: false,
447
+ message: `Failed to create workflow: ${error.message}`,
448
+ exitCode: 1,
449
+ };
450
+ }
451
+ },
452
+ },
453
+ {
454
+ name: 'agent',
455
+ description: 'Generate a new agent',
456
+ usage: 'generate agent <name>',
457
+ execute: async (context) => {
458
+ const name = context.args[0];
459
+ if (!name) {
460
+ return {
461
+ success: false,
462
+ message: 'Agent name is required',
463
+ exitCode: 1,
464
+ };
465
+ }
466
+ const fileName = `${name}.ts`;
467
+ const filePath = path.join(context.cwd, 'src', 'agents', fileName);
468
+ const content = TEMPLATES.agent
469
+ .replace(/my-agent/g, name)
470
+ .replace(/myAgent/g, name)
471
+ .replace(/A custom AI agent/g, `${name} AI agent`);
472
+ try {
473
+ const dir = path.dirname(filePath);
474
+ if (!fs.existsSync(dir)) {
475
+ fs.mkdirSync(dir, { recursive: true });
476
+ }
477
+ fs.writeFileSync(filePath, content, 'utf-8');
478
+ return {
479
+ success: true,
480
+ message: `Agent '${name}' created at ${filePath}`,
481
+ };
482
+ }
483
+ catch (error) {
484
+ return {
485
+ success: false,
486
+ message: `Failed to create agent: ${error.message}`,
487
+ exitCode: 1,
488
+ };
489
+ }
490
+ },
491
+ },
492
+ ],
493
+ execute: async (context) => {
494
+ return {
495
+ success: false,
496
+ message: 'Please specify what to generate: tool, workflow, or agent',
497
+ exitCode: 1,
498
+ };
499
+ },
500
+ };
501
+ }
502
+ }
503
+ exports.ProjectCommands = ProjectCommands;
504
+ //# sourceMappingURL=ProjectCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectCommands.js","sourceRoot":"","sources":["../../../src/cli/commands/ProjectCommands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * CLI Exports
3
+ */
4
+ export { CLI, Command, CommandContext, CommandResult } from './CLI';
5
+ export { ProjectCommands } from './commands/ProjectCommands';
6
+ export { InteractivePrompt, SetupWizard, ProjectGenerator, SetupOptions, PromptChoice, LLM_PROVIDERS, INTEGRATIONS, FEATURES, AGENT_PERSONALITIES, DEPLOYMENT_OPTIONS, SECURITY_OPTIONS, } from './InteractiveSetup';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * CLI Exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SECURITY_OPTIONS = exports.DEPLOYMENT_OPTIONS = exports.AGENT_PERSONALITIES = exports.FEATURES = exports.INTEGRATIONS = exports.LLM_PROVIDERS = exports.ProjectGenerator = exports.SetupWizard = exports.InteractivePrompt = exports.ProjectCommands = exports.CLI = void 0;
7
+ var CLI_1 = require("./CLI");
8
+ Object.defineProperty(exports, "CLI", { enumerable: true, get: function () { return CLI_1.CLI; } });
9
+ var ProjectCommands_1 = require("./commands/ProjectCommands");
10
+ Object.defineProperty(exports, "ProjectCommands", { enumerable: true, get: function () { return ProjectCommands_1.ProjectCommands; } });
11
+ var InteractiveSetup_1 = require("./InteractiveSetup");
12
+ Object.defineProperty(exports, "InteractivePrompt", { enumerable: true, get: function () { return InteractiveSetup_1.InteractivePrompt; } });
13
+ Object.defineProperty(exports, "SetupWizard", { enumerable: true, get: function () { return InteractiveSetup_1.SetupWizard; } });
14
+ Object.defineProperty(exports, "ProjectGenerator", { enumerable: true, get: function () { return InteractiveSetup_1.ProjectGenerator; } });
15
+ Object.defineProperty(exports, "LLM_PROVIDERS", { enumerable: true, get: function () { return InteractiveSetup_1.LLM_PROVIDERS; } });
16
+ Object.defineProperty(exports, "INTEGRATIONS", { enumerable: true, get: function () { return InteractiveSetup_1.INTEGRATIONS; } });
17
+ Object.defineProperty(exports, "FEATURES", { enumerable: true, get: function () { return InteractiveSetup_1.FEATURES; } });
18
+ Object.defineProperty(exports, "AGENT_PERSONALITIES", { enumerable: true, get: function () { return InteractiveSetup_1.AGENT_PERSONALITIES; } });
19
+ Object.defineProperty(exports, "DEPLOYMENT_OPTIONS", { enumerable: true, get: function () { return InteractiveSetup_1.DEPLOYMENT_OPTIONS; } });
20
+ Object.defineProperty(exports, "SECURITY_OPTIONS", { enumerable: true, get: function () { return InteractiveSetup_1.SECURITY_OPTIONS; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6BAAoE;AAA3D,0FAAA,GAAG,OAAA;AACZ,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,uDAY4B;AAX1B,qHAAA,iBAAiB,OAAA;AACjB,+GAAA,WAAW,OAAA;AACX,oHAAA,gBAAgB,OAAA;AAGhB,iHAAA,aAAa,OAAA;AACb,gHAAA,YAAY,OAAA;AACZ,4GAAA,QAAQ,OAAA;AACR,uHAAA,mBAAmB,OAAA;AACnB,sHAAA,kBAAkB,OAAA;AAClB,oHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Credential Management System
3
+ * Provides secure credential storage, encryption, and OAuth2 support
4
+ */
5
+ import { Credential, OAuth2Credential } from '../types/credential';
6
+ import { Logger } from '../types/tool';
7
+ import { OAuth2Manager, OAuth2ProviderConfig } from './OAuth2Manager';
8
+ export interface CredentialStore {
9
+ save(key: string, data: string): Promise<void>;
10
+ load(key: string): Promise<string | null>;
11
+ delete(key: string): Promise<void>;
12
+ list(): Promise<string[]>;
13
+ }
14
+ export interface CredentialManagerConfig {
15
+ encryptionKey: string;
16
+ store: CredentialStore;
17
+ logger: Logger;
18
+ oauth2Manager?: OAuth2Manager;
19
+ }
20
+ export declare class InMemoryCredentialStore implements CredentialStore {
21
+ private store;
22
+ save(key: string, data: string): Promise<void>;
23
+ load(key: string): Promise<string | null>;
24
+ delete(key: string): Promise<void>;
25
+ list(): Promise<string[]>;
26
+ clear(): void;
27
+ }
28
+ export declare class CredentialManager {
29
+ private store;
30
+ private logger;
31
+ private encryptionKey;
32
+ private algorithm;
33
+ private oauth2Manager?;
34
+ constructor(config: CredentialManagerConfig);
35
+ /**
36
+ * Set the OAuth2 manager for token refresh support
37
+ */
38
+ setOAuth2Manager(manager: OAuth2Manager): void;
39
+ /**
40
+ * Get the OAuth2 manager
41
+ */
42
+ getOAuth2Manager(): OAuth2Manager | undefined;
43
+ /**
44
+ * Store a credential with encryption
45
+ */
46
+ setCredential(scope: string, credential: Credential): Promise<void>;
47
+ /**
48
+ * Retrieve and decrypt a credential
49
+ */
50
+ getCredential(scope: string): Promise<Credential | null>;
51
+ /**
52
+ * Delete a credential
53
+ */
54
+ deleteCredential(scope: string): Promise<void>;
55
+ /**
56
+ * List all credential scopes
57
+ */
58
+ listCredentials(): Promise<string[]>;
59
+ /**
60
+ * Inject credentials for a tool context
61
+ */
62
+ injectCredentials(scope: string): Promise<Record<string, unknown>>;
63
+ /**
64
+ * Check if a credential exists and is valid
65
+ */
66
+ hasValidCredential(scope: string): Promise<boolean>;
67
+ /**
68
+ * Refresh an OAuth2 token
69
+ */
70
+ refreshOAuth2Token(scope: string, providerName?: string): Promise<OAuth2Credential | null>;
71
+ /**
72
+ * Initiate OAuth2 authorization flow
73
+ */
74
+ initiateOAuth2Flow(providerName: string, scopes?: string[]): string;
75
+ /**
76
+ * Complete OAuth2 authorization flow
77
+ */
78
+ completeOAuth2Flow(code: string, state: string, scope: string): Promise<OAuth2Credential>;
79
+ /**
80
+ * Register an OAuth2 provider
81
+ */
82
+ registerOAuth2Provider(config: OAuth2ProviderConfig): void;
83
+ private encrypt;
84
+ private decrypt;
85
+ private validateCredential;
86
+ private validateScope;
87
+ private getScopeKey;
88
+ private extractCredentialData;
89
+ private handleExpiredOAuth2;
90
+ }
91
+ /**
92
+ * Credential scoping utility
93
+ */
94
+ export declare class CredentialScopeResolver {
95
+ /**
96
+ * Check if a scope matches a pattern
97
+ */
98
+ static matches(scope: string, pattern: string): boolean;
99
+ /**
100
+ * Get the most specific matching scope from a list
101
+ */
102
+ static findBestMatch(scope: string, availableScopes: string[]): string | null;
103
+ /**
104
+ * Parse a scope into its components
105
+ */
106
+ static parse(scope: string): {
107
+ provider: string;
108
+ resource?: string;
109
+ action?: string;
110
+ };
111
+ }
112
+ //# sourceMappingURL=CredentialManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CredentialManager.d.ts","sourceRoot":"","sources":["../../src/credential/CredentialManager.ts"],"names":[],"mappings":"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"}