@runflow-ai/cli 0.2.22 → 0.2.23

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.
@@ -55,10 +55,12 @@ const child_process_1 = require("child_process");
55
55
  const chalk_1 = __importDefault(require("chalk"));
56
56
  const api_client_1 = require("../../common/api-client");
57
57
  const config_1 = require("../../common/config");
58
+ const provider_helpers_1 = require("./provider-helpers");
59
+ const code_generator_1 = require("./code-generator");
58
60
  let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
59
61
  async run(inputs, options) {
60
62
  console.log('');
61
- intro.intro(chalk_1.default.cyan.bold('🚀 Create Runflow Agent'));
63
+ intro.intro(chalk_1.default.cyan.bold('Runflow Create Agent'));
62
64
  let agentNameTrimmed;
63
65
  if (options.name) {
64
66
  const trimmed = options.name.trim();
@@ -77,7 +79,7 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
77
79
  else {
78
80
  const agentName = await (0, prompts_1.text)({
79
81
  message: 'What do you want to name your agent?',
80
- placeholder: 'my-support-bot',
82
+ placeholder: 'my-weather-bot',
81
83
  validate: (value) => {
82
84
  if (!value || !value.trim())
83
85
  return 'Agent name is required';
@@ -100,47 +102,194 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
100
102
  }
101
103
  const dirName = this.slugify(agentNameTrimmed);
102
104
  const s = (0, prompts_1.spinner)();
103
- s.start('Fetching available templates...');
104
- let templates = [];
105
+ s.start('Loading available providers...');
106
+ let providerTypes = [];
105
107
  try {
106
108
  const apiClient = (0, api_client_1.createApiClient)(options.api);
107
- const templatesRes = await apiClient.get('/../public/templates');
108
- templates = templatesRes.data.data || [];
109
- s.stop(chalk_1.default.green(' Templates loaded'));
109
+ const res = await apiClient.get('/llm-providers/available-types');
110
+ providerTypes = res.data.data || [];
111
+ s.stop(chalk_1.default.green('Providers loaded'));
110
112
  }
111
113
  catch (error) {
112
- s.stop(chalk_1.default.red(' Failed to fetch templates'));
113
- console.log(chalk_1.default.yellow('\nUsing default template...'));
114
- templates = [{ id: 'starter', name: 'Starter Template', description: 'Default template' }];
114
+ s.stop(chalk_1.default.yellow('Could not fetch providers, using defaults'));
115
+ providerTypes = [
116
+ { type: 'OPENAI', name: 'OpenAI', description: 'GPT-4o, GPT-4, GPT-3.5', credentialType: 'API_KEY', documentationUrl: 'https://platform.openai.com/api-keys', defaultModel: 'gpt-4o', models: ['gpt-4o', 'gpt-4o-mini'] },
117
+ { type: 'ANTHROPIC', name: 'Anthropic', description: 'Claude 3.5, Claude 3', credentialType: 'API_KEY', documentationUrl: 'https://console.anthropic.com/settings/keys', defaultModel: 'claude-3-5-sonnet-20241022', models: ['claude-3-5-sonnet-20241022'] },
118
+ { type: 'GROQ', name: 'Groq', description: 'Llama, Mixtral (fast inference)', credentialType: 'API_KEY', documentationUrl: 'https://console.groq.com/keys', defaultModel: 'llama-3.3-70b-versatile', models: ['llama-3.3-70b-versatile'] },
119
+ { type: 'GEMINI', name: 'Google AI (Gemini)', description: 'Gemini 2.0, Gemini 1.5', credentialType: 'API_KEY', documentationUrl: 'https://aistudio.google.com/app/apikey', defaultModel: 'gemini-2.0-flash', models: ['gemini-2.0-flash'] },
120
+ ];
115
121
  }
116
- let templateId;
117
- if (options.template) {
118
- const matchedTemplate = templates.find(t => t.id === options.template ||
119
- t.name.toLowerCase() === options.template?.toLowerCase() ||
120
- t.name.toLowerCase().includes(options.template?.toLowerCase() || ''));
121
- if (!matchedTemplate) {
122
- console.log(chalk_1.default.red(`Error: Template "${options.template}" not found`));
123
- console.log(chalk_1.default.gray('Available templates:'));
124
- templates.forEach(t => console.log(chalk_1.default.gray(` - ${t.id}: ${t.name}`)));
122
+ let selectedProvider;
123
+ if (options.provider) {
124
+ const found = providerTypes.find((p) => p.type.toLowerCase() === options.provider?.toLowerCase());
125
+ if (!found) {
126
+ console.log(chalk_1.default.red(`Error: Provider "${options.provider}" not found`));
127
+ console.log(chalk_1.default.gray('Available providers:'));
128
+ providerTypes.forEach((p) => console.log(chalk_1.default.gray(` - ${p.type}: ${p.name}`)));
125
129
  return;
126
130
  }
127
- templateId = matchedTemplate.id;
128
- console.log(chalk_1.default.gray(`Using template: ${matchedTemplate.name}`));
131
+ selectedProvider = found;
132
+ console.log(chalk_1.default.gray(`Provider: ${selectedProvider.name}`));
129
133
  }
130
134
  else {
131
- const selectedTemplateId = await (0, prompts_1.select)({
132
- message: 'Choose a template:',
133
- options: templates.map(t => ({
134
- value: t.id,
135
- label: t.name,
136
- hint: t.description,
135
+ const providerChoice = await (0, prompts_1.select)({
136
+ message: 'Select a LLM provider:',
137
+ options: providerTypes.map((p) => ({
138
+ value: p.type,
139
+ label: p.name,
140
+ hint: p.description,
137
141
  })),
138
142
  });
139
- if (typeof selectedTemplateId === 'symbol') {
143
+ if (typeof providerChoice === 'symbol') {
140
144
  (0, prompts_1.outro)(chalk_1.default.gray('Operation cancelled'));
141
145
  return;
142
146
  }
143
- templateId = selectedTemplateId;
147
+ selectedProvider = providerTypes.find((p) => p.type === providerChoice);
148
+ }
149
+ s.start('Checking existing credentials...');
150
+ let existingCredentials = [];
151
+ try {
152
+ const apiClient = (0, api_client_1.createApiClient)(options.api);
153
+ const res = await apiClient.get('/credentials');
154
+ const allCredentials = res.data.data || [];
155
+ existingCredentials = allCredentials.filter((c) => (0, provider_helpers_1.isCredentialCompatible)(c.type, selectedProvider.type));
156
+ s.stop(existingCredentials.length > 0
157
+ ? chalk_1.default.green(`Found ${existingCredentials.length} compatible credential(s)`)
158
+ : chalk_1.default.gray('No existing credentials found'));
159
+ }
160
+ catch (error) {
161
+ s.stop(chalk_1.default.gray('Could not fetch credentials'));
162
+ }
163
+ let selectedCredentialId = null;
164
+ let newCredentialCreated = false;
165
+ const credentialOptions = [
166
+ ...existingCredentials.map((c) => ({
167
+ value: c.id,
168
+ label: `${c.name} (${c.type})`,
169
+ hint: c.description || '',
170
+ })),
171
+ { value: 'NEW', label: 'Add new API key', hint: `Get one at ${selectedProvider.documentationUrl}` },
172
+ ];
173
+ const credentialChoice = await (0, prompts_1.select)({
174
+ message: `Select a credential for ${selectedProvider.name}:`,
175
+ options: credentialOptions,
176
+ });
177
+ if (typeof credentialChoice === 'symbol') {
178
+ (0, prompts_1.outro)(chalk_1.default.gray('Operation cancelled'));
179
+ return;
180
+ }
181
+ if (credentialChoice === 'NEW') {
182
+ console.log(chalk_1.default.gray(`\nGet your API key at: ${chalk_1.default.underline(selectedProvider.documentationUrl)}\n`));
183
+ const apiKeyInput = await (0, prompts_1.password)({
184
+ message: `Enter your ${selectedProvider.name} API key:`,
185
+ validate: (value) => {
186
+ const validation = (0, provider_helpers_1.validateKeyFormat)(value, selectedProvider.type);
187
+ return validation.valid ? undefined : validation.error;
188
+ },
189
+ });
190
+ if (typeof apiKeyInput === 'symbol') {
191
+ (0, prompts_1.outro)(chalk_1.default.gray('Operation cancelled'));
192
+ return;
193
+ }
194
+ s.start('Validating API key...');
195
+ try {
196
+ const apiClient = (0, api_client_1.createApiClient)(options.api);
197
+ const validationRes = await apiClient.post('/llm-providers/validate-key', {
198
+ providerType: selectedProvider.type,
199
+ apiKey: apiKeyInput,
200
+ });
201
+ if (!validationRes.data.success) {
202
+ s.stop(chalk_1.default.red('Invalid API key'));
203
+ console.log(chalk_1.default.red(`\nError: ${validationRes.data.message}`));
204
+ (0, prompts_1.outro)(chalk_1.default.red('Failed to validate API key'));
205
+ return;
206
+ }
207
+ s.stop(chalk_1.default.green('Valid! Connection successful.'));
208
+ }
209
+ catch (error) {
210
+ s.stop(chalk_1.default.red('Validation failed'));
211
+ console.log(chalk_1.default.red(`\nError: ${error.response?.data?.message || error.message}`));
212
+ (0, prompts_1.outro)(chalk_1.default.red('Failed to validate API key'));
213
+ return;
214
+ }
215
+ const credentialName = await (0, prompts_1.text)({
216
+ message: 'Name this credential:',
217
+ initialValue: `${selectedProvider.type.toLowerCase()}-cli`,
218
+ validate: (value) => {
219
+ if (!value || !value.trim())
220
+ return 'Credential name is required';
221
+ if (value.trim().length < 2)
222
+ return 'Name must be at least 2 characters';
223
+ return undefined;
224
+ },
225
+ });
226
+ if (typeof credentialName === 'symbol') {
227
+ (0, prompts_1.outro)(chalk_1.default.gray('Operation cancelled'));
228
+ return;
229
+ }
230
+ s.start('Saving credential...');
231
+ try {
232
+ const apiClient = (0, api_client_1.createApiClient)(options.api);
233
+ const createRes = await apiClient.post('/credentials', {
234
+ name: credentialName.trim(),
235
+ type: selectedProvider.credentialType,
236
+ value: apiKeyInput,
237
+ description: `Created via CLI for ${agentNameTrimmed}`,
238
+ });
239
+ const createdCredential = createRes.data.data;
240
+ selectedCredentialId = createdCredential.id;
241
+ newCredentialCreated = true;
242
+ s.stop(chalk_1.default.green(`Credential "${createdCredential.name}" created`));
243
+ }
244
+ catch (error) {
245
+ s.stop(chalk_1.default.red('Failed to save credential'));
246
+ console.log(chalk_1.default.red(`\nError: ${error.response?.data?.message || error.message}`));
247
+ (0, prompts_1.outro)(chalk_1.default.red('Failed to create credential'));
248
+ return;
249
+ }
250
+ }
251
+ else {
252
+ selectedCredentialId = credentialChoice;
253
+ }
254
+ let selectedModel;
255
+ if (options.model) {
256
+ selectedModel = options.model;
257
+ console.log(chalk_1.default.gray(`Model: ${selectedModel}`));
258
+ }
259
+ else {
260
+ const models = selectedProvider.models || (0, provider_helpers_1.getProviderModels)(selectedProvider.type);
261
+ const defaultModel = selectedProvider.defaultModel || (0, provider_helpers_1.getDefaultModel)(selectedProvider.type);
262
+ const modelChoice = await (0, prompts_1.select)({
263
+ message: 'Select default model:',
264
+ options: models.map((m) => ({
265
+ value: m,
266
+ label: m,
267
+ hint: m === defaultModel ? '(recommended)' : '',
268
+ })),
269
+ initialValue: defaultModel,
270
+ });
271
+ if (typeof modelChoice === 'symbol') {
272
+ (0, prompts_1.outro)(chalk_1.default.gray('Operation cancelled'));
273
+ return;
274
+ }
275
+ selectedModel = modelChoice;
276
+ }
277
+ s.start('Generating code...');
278
+ let generatedFiles = [];
279
+ try {
280
+ generatedFiles = (0, code_generator_1.generateAgentCode)({
281
+ agentName: agentNameTrimmed,
282
+ provider: selectedProvider.type.toLowerCase(),
283
+ model: selectedModel,
284
+ template: 'starter',
285
+ });
286
+ s.stop(chalk_1.default.green(`Generated ${generatedFiles.length} files`));
287
+ }
288
+ catch (error) {
289
+ s.stop(chalk_1.default.red('Failed to generate code'));
290
+ console.log(chalk_1.default.red(`\nError: ${error.message}`));
291
+ (0, prompts_1.outro)(chalk_1.default.red('Failed to generate code'));
292
+ return;
144
293
  }
145
294
  s.start('Creating agent on server...');
146
295
  let agent;
@@ -149,45 +298,54 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
149
298
  const authenticatedClient = (0, api_client_1.createApiClient)(options.api);
150
299
  const createAgentRes = await authenticatedClient.post('/agents', {
151
300
  name: agentNameTrimmed,
152
- description: `Created via CLI using ${templates.find(t => t.id === templateId)?.name || 'template'}`,
301
+ description: `AI agent with ${selectedProvider.name} (${selectedModel})`,
153
302
  category: 'OPERATIONS',
154
303
  status: 'INACTIVE',
155
- templateId: templateId,
156
- code: '// Generated by CLI',
304
+ code: generatedFiles.find((f) => f.path === 'main.ts')?.content || '// Generated by CLI',
157
305
  });
158
306
  agent = createAgentRes.data.data || createAgentRes.data;
159
- s.stop(chalk_1.default.green(`✓ Agent created: ${agent.name}`));
307
+ s.stop(chalk_1.default.green(`Agent created: ${agent.name}`));
160
308
  }
161
309
  catch (error) {
162
- s.stop(chalk_1.default.red('Failed to create agent'));
310
+ s.stop(chalk_1.default.red('Failed to create agent'));
163
311
  console.log(chalk_1.default.red('\nError: ' + (error.response?.data?.message || error.message)));
164
312
  (0, prompts_1.outro)(chalk_1.default.red('Failed to create agent'));
165
313
  return;
166
314
  }
167
- s.start('Cloning repository...');
315
+ s.start('Writing files...');
168
316
  try {
169
- const authenticatedClient = (0, api_client_1.createApiClient)(options.api);
170
- const treeRes = await authenticatedClient.get(`/agents/${agent.id}/clone`);
171
- const tree = treeRes.data.data || treeRes.data;
172
317
  fs.mkdirSync(dirName, { recursive: true });
173
- this.writeTreeToDisk(tree, dirName);
318
+ for (const file of generatedFiles) {
319
+ const filePath = path.join(dirName, file.path);
320
+ const fileDir = path.dirname(filePath);
321
+ if (!fs.existsSync(fileDir)) {
322
+ fs.mkdirSync(fileDir, { recursive: true });
323
+ }
324
+ fs.writeFileSync(filePath, file.content);
325
+ }
174
326
  const runflowDir = path.join(dirName, '.runflow');
175
327
  fs.mkdirSync(runflowDir, { recursive: true });
176
- const { config } = (0, config_1.getValidatedConfig)();
328
+ const { config, apiKey } = (0, config_1.getValidatedConfig)();
329
+ const baseApiUrl = 'https://api.runflow.ai';
177
330
  fs.writeFileSync(path.join(runflowDir, 'rf.json'), JSON.stringify({
178
331
  agentId: agent.id,
179
332
  agentName: agent.name,
180
333
  tenantId: config.tenantId,
334
+ clonedAt: new Date().toISOString(),
335
+ apiUrl: baseApiUrl,
336
+ apiKey: apiKey,
337
+ provider: selectedProvider.type.toLowerCase(),
338
+ model: selectedModel,
181
339
  }, null, 2));
182
- s.stop(chalk_1.default.green(' Repository cloned'));
340
+ s.stop(chalk_1.default.green('Files written'));
183
341
  }
184
342
  catch (error) {
185
- s.stop(chalk_1.default.red('Failed to clone repository'));
186
- console.log(chalk_1.default.red('\nError: ' + (error.response?.data?.message || error.message)));
343
+ s.stop(chalk_1.default.red('Failed to write files'));
344
+ console.log(chalk_1.default.red('\nError: ' + error.message));
187
345
  if (fs.existsSync(dirName)) {
188
346
  fs.rmSync(dirName, { recursive: true, force: true });
189
347
  }
190
- (0, prompts_1.outro)(chalk_1.default.red('Failed to clone repository'));
348
+ (0, prompts_1.outro)(chalk_1.default.red('Failed to write files'));
191
349
  return;
192
350
  }
193
351
  let shouldInstall;
@@ -208,13 +366,28 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
208
366
  cwd: path.resolve(dirName),
209
367
  stdio: 'pipe',
210
368
  });
211
- s.stop(chalk_1.default.green('Dependencies installed'));
369
+ s.stop(chalk_1.default.green('Dependencies installed'));
212
370
  }
213
371
  catch (error) {
214
- s.stop(chalk_1.default.yellow('Failed to install dependencies'));
372
+ s.stop(chalk_1.default.yellow('Failed to install dependencies'));
215
373
  console.log(chalk_1.default.gray('Run "npm install" manually inside the project'));
216
374
  }
217
375
  }
376
+ s.start('Initializing git repository...');
377
+ try {
378
+ const projectPath = path.resolve(dirName);
379
+ (0, child_process_1.execSync)('git init', { cwd: projectPath, stdio: 'pipe' });
380
+ (0, child_process_1.execSync)('git add .', { cwd: projectPath, stdio: 'pipe' });
381
+ (0, child_process_1.execSync)('git commit -m "feat: initial agent setup via rf create"', {
382
+ cwd: projectPath,
383
+ stdio: 'pipe',
384
+ });
385
+ s.stop(chalk_1.default.green('Git initialized with initial commit'));
386
+ }
387
+ catch (error) {
388
+ s.stop(chalk_1.default.yellow('Git initialization skipped'));
389
+ console.log(chalk_1.default.gray('Run "git init && git add . && git commit" manually'));
390
+ }
218
391
  console.log('');
219
392
  (0, prompts_1.outro)(chalk_1.default.green.bold('Agent created successfully!'));
220
393
  console.log('');
@@ -223,7 +396,7 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
223
396
  if (!shouldInstall) {
224
397
  console.log(chalk_1.default.white(' npm install'));
225
398
  }
226
- console.log(chalk_1.default.white(' rf dev'));
399
+ console.log(chalk_1.default.white(' rf test'));
227
400
  console.log('');
228
401
  }
229
402
  slugify(text) {
@@ -233,18 +406,6 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
233
406
  .replace(/\s+/g, '-')
234
407
  .replace(/[^a-z0-9-]/g, '');
235
408
  }
236
- writeTreeToDisk(tree, baseDir) {
237
- for (const item of tree) {
238
- if (item.type === 'blob' || !item.type) {
239
- const filePath = path.join(baseDir, item.path);
240
- const fileDir = path.dirname(filePath);
241
- if (!fs.existsSync(fileDir)) {
242
- fs.mkdirSync(fileDir, { recursive: true });
243
- }
244
- fs.writeFileSync(filePath, item.content || '');
245
- }
246
- }
247
- }
248
409
  parseApiKey(val) {
249
410
  return val;
250
411
  }
@@ -254,7 +415,10 @@ let CreateCommand = class CreateCommand extends nest_commander_1.CommandRunner {
254
415
  parseName(val) {
255
416
  return val;
256
417
  }
257
- parseTemplate(val) {
418
+ parseProvider(val) {
419
+ return val;
420
+ }
421
+ parseModel(val) {
258
422
  return val;
259
423
  }
260
424
  parseYes() {
@@ -291,13 +455,22 @@ __decorate([
291
455
  ], CreateCommand.prototype, "parseName", null);
292
456
  __decorate([
293
457
  (0, nest_commander_1.Option)({
294
- flags: '-t, --template <template>',
295
- description: 'Template ID or name (non-interactive mode)',
458
+ flags: '-p, --provider <provider>',
459
+ description: 'LLM provider (openai, anthropic, groq, gemini, bedrock)',
460
+ }),
461
+ __metadata("design:type", Function),
462
+ __metadata("design:paramtypes", [String]),
463
+ __metadata("design:returntype", String)
464
+ ], CreateCommand.prototype, "parseProvider", null);
465
+ __decorate([
466
+ (0, nest_commander_1.Option)({
467
+ flags: '-m, --model <model>',
468
+ description: 'Model name (e.g., gpt-4o, claude-3-5-sonnet-20241022)',
296
469
  }),
297
470
  __metadata("design:type", Function),
298
471
  __metadata("design:paramtypes", [String]),
299
472
  __metadata("design:returntype", String)
300
- ], CreateCommand.prototype, "parseTemplate", null);
473
+ ], CreateCommand.prototype, "parseModel", null);
301
474
  __decorate([
302
475
  (0, nest_commander_1.Option)({
303
476
  flags: '-y, --yes',
@@ -1 +1 @@
1
- {"version":3,"file":"create.command.js","sourceRoot":"","sources":["../../../src/commands/create/create.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.command.js","sourceRoot":"","sources":["../../../src/commands/create/create.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface ProviderInfo {
2
+ type: string;
3
+ name: string;
4
+ description: string;
5
+ credentialType: string;
6
+ documentationUrl: string;
7
+ defaultModel: string;
8
+ models: string[];
9
+ }
10
+ export declare function getProviderLabel(type: string): string;
11
+ export declare function getProviderUrl(type: string): string;
12
+ export declare function getDefaultModel(type: string): string;
13
+ export declare function getProviderModels(type: string): string[];
14
+ export declare function validateKeyFormat(key: string, type: string): {
15
+ valid: boolean;
16
+ error?: string;
17
+ };
18
+ export declare function isCredentialCompatible(credentialType: string, providerType: string): boolean;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProviderLabel = getProviderLabel;
4
+ exports.getProviderUrl = getProviderUrl;
5
+ exports.getDefaultModel = getDefaultModel;
6
+ exports.getProviderModels = getProviderModels;
7
+ exports.validateKeyFormat = validateKeyFormat;
8
+ exports.isCredentialCompatible = isCredentialCompatible;
9
+ function getProviderLabel(type) {
10
+ const labels = {
11
+ OPENAI: 'OpenAI',
12
+ ANTHROPIC: 'Anthropic',
13
+ GROQ: 'Groq',
14
+ GEMINI: 'Google AI (Gemini)',
15
+ BEDROCK: 'AWS Bedrock',
16
+ AZURE_OPENAI: 'Azure OpenAI',
17
+ };
18
+ return labels[type.toUpperCase()] || type;
19
+ }
20
+ function getProviderUrl(type) {
21
+ const urls = {
22
+ OPENAI: 'https://platform.openai.com/api-keys',
23
+ ANTHROPIC: 'https://console.anthropic.com/settings/keys',
24
+ GROQ: 'https://console.groq.com/keys',
25
+ GEMINI: 'https://aistudio.google.com/app/apikey',
26
+ BEDROCK: 'https://console.aws.amazon.com/bedrock',
27
+ AZURE_OPENAI: 'https://portal.azure.com/',
28
+ };
29
+ return urls[type.toUpperCase()] || '';
30
+ }
31
+ function getDefaultModel(type) {
32
+ const defaults = {
33
+ OPENAI: 'gpt-4o',
34
+ ANTHROPIC: 'claude-3-5-sonnet-20241022',
35
+ GROQ: 'llama-3.3-70b-versatile',
36
+ GEMINI: 'gemini-2.0-flash',
37
+ BEDROCK: 'anthropic.claude-3-5-sonnet-20241022-v2:0',
38
+ AZURE_OPENAI: 'gpt-4o',
39
+ };
40
+ return defaults[type.toUpperCase()] || 'gpt-4o';
41
+ }
42
+ function getProviderModels(type) {
43
+ const models = {
44
+ OPENAI: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'gpt-3.5-turbo'],
45
+ ANTHROPIC: ['claude-3-5-sonnet-20241022', 'claude-3-opus-20240229', 'claude-3-haiku-20240307'],
46
+ GROQ: ['llama-3.3-70b-versatile', 'llama-3.1-8b-instant', 'mixtral-8x7b-32768'],
47
+ GEMINI: ['gemini-2.0-flash', 'gemini-1.5-pro', 'gemini-1.5-flash'],
48
+ BEDROCK: ['anthropic.claude-3-5-sonnet-20241022-v2:0', 'amazon.titan-text-express-v1'],
49
+ AZURE_OPENAI: ['gpt-4o', 'gpt-4', 'gpt-35-turbo'],
50
+ };
51
+ return models[type.toUpperCase()] || ['gpt-4o'];
52
+ }
53
+ function validateKeyFormat(key, type) {
54
+ if (!key || key.trim() === '') {
55
+ return { valid: false, error: 'API key is required' };
56
+ }
57
+ const trimmed = key.trim();
58
+ const providerType = type.toUpperCase();
59
+ switch (providerType) {
60
+ case 'OPENAI':
61
+ if (!trimmed.startsWith('sk-')) {
62
+ return { valid: false, error: 'OpenAI API key must start with "sk-"' };
63
+ }
64
+ if (trimmed.length < 20) {
65
+ return { valid: false, error: 'OpenAI API key is too short' };
66
+ }
67
+ break;
68
+ case 'ANTHROPIC':
69
+ if (!trimmed.startsWith('sk-ant-')) {
70
+ return { valid: false, error: 'Anthropic API key must start with "sk-ant-"' };
71
+ }
72
+ if (trimmed.length < 40) {
73
+ return { valid: false, error: 'Anthropic API key is too short' };
74
+ }
75
+ break;
76
+ case 'GROQ':
77
+ if (!trimmed.startsWith('gsk_')) {
78
+ return { valid: false, error: 'Groq API key must start with "gsk_"' };
79
+ }
80
+ if (trimmed.length < 40) {
81
+ return { valid: false, error: 'Groq API key is too short' };
82
+ }
83
+ break;
84
+ case 'GEMINI':
85
+ if (!trimmed.startsWith('AIza')) {
86
+ return { valid: false, error: 'Gemini API key must start with "AIza"' };
87
+ }
88
+ if (trimmed.length < 35) {
89
+ return { valid: false, error: 'Gemini API key is too short' };
90
+ }
91
+ break;
92
+ case 'BEDROCK':
93
+ if (trimmed.length < 16) {
94
+ return { valid: false, error: 'AWS credentials are too short' };
95
+ }
96
+ break;
97
+ default:
98
+ if (trimmed.length < 10) {
99
+ return { valid: false, error: 'API key is too short' };
100
+ }
101
+ }
102
+ return { valid: true };
103
+ }
104
+ function isCredentialCompatible(credentialType, providerType) {
105
+ const compatibility = {
106
+ OPENAI: ['API_KEY'],
107
+ ANTHROPIC: ['API_KEY'],
108
+ GROQ: ['API_KEY'],
109
+ GEMINI: ['API_KEY'],
110
+ BEDROCK: ['SECRET'],
111
+ AZURE_OPENAI: ['API_KEY', 'SECRET'],
112
+ };
113
+ const acceptedTypes = compatibility[providerType.toUpperCase()] || ['API_KEY'];
114
+ return acceptedTypes.includes(credentialType);
115
+ }
116
+ //# sourceMappingURL=provider-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-helpers.js","sourceRoot":"","sources":["../../../src/commands/create/provider-helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runflow-ai/cli",
3
- "version": "0.2.22",
3
+ "version": "0.2.23",
4
4
  "description": "Official CLI for RunFlow AI platform - manage agents, deploy code, and interact with AI workflows from your terminal",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",