@runflow-ai/cli 0.2.35 → 0.2.37
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.
|
@@ -21,14 +21,14 @@ function generateAgentCode(config) {
|
|
|
21
21
|
}
|
|
22
22
|
function generateMainTs(config) {
|
|
23
23
|
const { agentName, provider, model } = config;
|
|
24
|
-
return `import { Agent, ${provider} } from '@runflow-ai/sdk';
|
|
25
|
-
// import {
|
|
24
|
+
return `import { Agent, identify, log, ${provider}, track } from '@runflow-ai/sdk';
|
|
25
|
+
// import { connector } from '@runflow-ai/sdk';
|
|
26
26
|
import { tools } from './tools';
|
|
27
27
|
import { systemPrompt } from './prompts';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* ${agentName} - AI Agent powered by Runflow SDK
|
|
31
|
-
*
|
|
31
|
+
*
|
|
32
32
|
* Provider: ${provider}
|
|
33
33
|
* Model: ${model}
|
|
34
34
|
*/
|
|
@@ -39,38 +39,72 @@ const agent = new Agent({
|
|
|
39
39
|
tools,
|
|
40
40
|
|
|
41
41
|
// Memory - stores conversation history per session
|
|
42
|
-
// The sessionId is automatically provided by rf test or execution engine
|
|
43
42
|
memory: {
|
|
44
|
-
maxTurns: 10,
|
|
43
|
+
maxTurns: 10,
|
|
45
44
|
},
|
|
46
45
|
|
|
46
|
+
// Observability - traces every LLM call, tool execution and memory access
|
|
47
|
+
// 'full' is the default; change to 'standard' (truncated) or 'minimal' (off)
|
|
48
|
+
observability: 'full',
|
|
49
|
+
|
|
47
50
|
// Uncomment to enable RAG (Retrieval Augmented Generation)
|
|
48
51
|
// rag: {
|
|
49
52
|
// vectorStore: 'my-knowledge-base',
|
|
50
53
|
// k: 5,
|
|
51
54
|
// threshold: 0.7,
|
|
52
55
|
// },
|
|
53
|
-
|
|
54
|
-
// Uncomment to enable debug logging
|
|
55
|
-
// debug: true,
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Main entry point - called by Runflow runtime
|
|
60
|
+
//
|
|
61
|
+
// Input:
|
|
62
|
+
// message - User's message (required)
|
|
63
|
+
// sessionId - Conversation identifier (auto-generated by rf test)
|
|
64
|
+
//
|
|
65
|
+
// Memory works automatically:
|
|
66
|
+
// Same sessionId = same conversation | Different sessionId = fresh start
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
export async function main(input: { message: string; sessionId?: string }) {
|
|
69
|
+
const { message, sessionId } = validateInput(input);
|
|
70
|
+
|
|
71
|
+
// Identify groups all logs, traces and memory under this user
|
|
72
|
+
// Replace with real user data from your input (e.g. input.phone, input.email)
|
|
73
|
+
identify('demo-user@example.com');
|
|
74
|
+
|
|
75
|
+
// --- More identify examples ---
|
|
76
|
+
// identify('+5511999999999'); // phone
|
|
77
|
+
// identify({ type: 'hubspot_contact', value: 'cid_123' });// CRM
|
|
78
|
+
|
|
79
|
+
log('Processing message', { sessionId, messageLength: message.length });
|
|
80
|
+
|
|
81
|
+
const result = await agent.process({ message, sessionId });
|
|
82
|
+
|
|
83
|
+
// --- Connector example (uncomment to call an external service) ---
|
|
84
|
+
// const lead = await connector('hubspot', 'create-contact', {
|
|
85
|
+
// body: { email: 'user@email.com', firstname: 'John' },
|
|
86
|
+
// });
|
|
87
|
+
|
|
88
|
+
track('message_processed', {
|
|
89
|
+
model: '${model}',
|
|
90
|
+
hasSession: !!sessionId,
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// Input validation
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
61
99
|
function validateInput(input: unknown): { message: string; sessionId?: string } {
|
|
62
100
|
if (!input || typeof input !== 'object') {
|
|
63
|
-
throw new Error('Input must be an object');
|
|
101
|
+
throw new Error('Input must be an object with a "message" field');
|
|
64
102
|
}
|
|
65
103
|
|
|
66
104
|
const { message, sessionId } = input as Record<string, unknown>;
|
|
67
105
|
|
|
68
|
-
if (!message || typeof message !== 'string') {
|
|
69
|
-
throw new Error('message is required and must be a string');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (message.trim().length === 0) {
|
|
73
|
-
throw new Error('message cannot be empty');
|
|
106
|
+
if (!message || typeof message !== 'string' || message.trim().length === 0) {
|
|
107
|
+
throw new Error('message is required and must be a non-empty string');
|
|
74
108
|
}
|
|
75
109
|
|
|
76
110
|
return {
|
|
@@ -79,59 +113,19 @@ function validateInput(input: unknown): { message: string; sessionId?: string }
|
|
|
79
113
|
};
|
|
80
114
|
}
|
|
81
115
|
|
|
82
|
-
/**
|
|
83
|
-
* Main entry point - called by Runflow runtime
|
|
84
|
-
*
|
|
85
|
-
* The input object contains:
|
|
86
|
-
* - message: User's message (required)
|
|
87
|
-
* - sessionId: Unique session identifier (auto-generated by rf test)
|
|
88
|
-
*
|
|
89
|
-
* Memory works automatically:
|
|
90
|
-
* - Same sessionId = same conversation history
|
|
91
|
-
* - Different sessionId = fresh conversation
|
|
92
|
-
*/
|
|
93
|
-
export async function main(input: { message: string; sessionId?: string }) {
|
|
94
|
-
try {
|
|
95
|
-
// Validate input
|
|
96
|
-
const validatedInput = validateInput(input);
|
|
97
|
-
|
|
98
|
-
// Uncomment to identify user for memory persistence across channels
|
|
99
|
-
// This creates a stable memory key based on user identity instead of session
|
|
100
|
-
// identify('+5511999999999'); // Auto-detects type (phone)
|
|
101
|
-
// identify('user@email.com'); // Auto-detects type (email)
|
|
102
|
-
// identify({ type: 'phone', value: '+5511999999999' });
|
|
103
|
-
// identify({ type: 'email', value: 'user@email.com' });
|
|
104
|
-
// identify({ type: 'hubspot_contact', value: 'contact_123' });
|
|
105
|
-
|
|
106
|
-
// Process message
|
|
107
|
-
const result = await agent.process(validatedInput);
|
|
108
|
-
|
|
109
|
-
return result;
|
|
110
|
-
} catch (error) {
|
|
111
|
-
// Log error for debugging
|
|
112
|
-
console.error('[${agentName}] Error:', error instanceof Error ? error.message : error);
|
|
113
|
-
|
|
114
|
-
// Return structured error response
|
|
115
|
-
return {
|
|
116
|
-
success: false,
|
|
117
|
-
error: error instanceof Error ? error.message : 'An unexpected error occurred',
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
116
|
export default main;
|
|
123
117
|
`;
|
|
124
118
|
}
|
|
125
119
|
function generateMainTsWithRag(config) {
|
|
126
120
|
const { agentName, provider, model } = config;
|
|
127
|
-
return `import { Agent, ${provider} } from '@runflow-ai/sdk';
|
|
128
|
-
// import {
|
|
121
|
+
return `import { Agent, identify, log, ${provider}, track } from '@runflow-ai/sdk';
|
|
122
|
+
// import { connector } from '@runflow-ai/sdk';
|
|
129
123
|
import { tools } from './tools';
|
|
130
124
|
import { systemPrompt } from './prompts';
|
|
131
125
|
|
|
132
126
|
/**
|
|
133
127
|
* ${agentName} - RAG-enabled AI Agent powered by Runflow SDK
|
|
134
|
-
*
|
|
128
|
+
*
|
|
135
129
|
* Provider: ${provider}
|
|
136
130
|
* Model: ${model}
|
|
137
131
|
* RAG: Enabled
|
|
@@ -154,26 +148,54 @@ const agent = new Agent({
|
|
|
154
148
|
threshold: 0.7,
|
|
155
149
|
},
|
|
156
150
|
|
|
157
|
-
//
|
|
158
|
-
|
|
151
|
+
// Observability - traces every LLM call, tool execution and memory access
|
|
152
|
+
observability: 'full',
|
|
159
153
|
});
|
|
160
154
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
// Main entry point - called by Runflow runtime
|
|
157
|
+
// ---------------------------------------------------------------------------
|
|
158
|
+
export async function main(input: { message: string; sessionId?: string }) {
|
|
159
|
+
const { message, sessionId } = validateInput(input);
|
|
160
|
+
|
|
161
|
+
// Identify groups all logs, traces and memory under this user
|
|
162
|
+
// Replace with real user data from your input (e.g. input.phone, input.email)
|
|
163
|
+
identify('demo-user@example.com');
|
|
164
|
+
|
|
165
|
+
// --- More identify examples ---
|
|
166
|
+
// identify('+5511999999999'); // phone
|
|
167
|
+
// identify({ type: 'hubspot_contact', value: 'cid_123' });// CRM
|
|
168
|
+
|
|
169
|
+
log('Processing message', { sessionId, messageLength: message.length });
|
|
170
|
+
|
|
171
|
+
const result = await agent.process({ message, sessionId });
|
|
172
|
+
|
|
173
|
+
// --- Connector example (uncomment to call an external service) ---
|
|
174
|
+
// const lead = await connector('hubspot', 'create-contact', {
|
|
175
|
+
// body: { email: 'user@email.com', firstname: 'John' },
|
|
176
|
+
// });
|
|
177
|
+
|
|
178
|
+
track('message_processed', {
|
|
179
|
+
model: '${model}',
|
|
180
|
+
hasSession: !!sessionId,
|
|
181
|
+
ragEnabled: true,
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// Input validation
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
164
190
|
function validateInput(input: unknown): { message: string; sessionId?: string } {
|
|
165
191
|
if (!input || typeof input !== 'object') {
|
|
166
|
-
throw new Error('Input must be an object');
|
|
192
|
+
throw new Error('Input must be an object with a "message" field');
|
|
167
193
|
}
|
|
168
194
|
|
|
169
195
|
const { message, sessionId } = input as Record<string, unknown>;
|
|
170
196
|
|
|
171
|
-
if (!message || typeof message !== 'string') {
|
|
172
|
-
throw new Error('message is required and must be a string');
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
if (message.trim().length === 0) {
|
|
176
|
-
throw new Error('message cannot be empty');
|
|
197
|
+
if (!message || typeof message !== 'string' || message.trim().length === 0) {
|
|
198
|
+
throw new Error('message is required and must be a non-empty string');
|
|
177
199
|
}
|
|
178
200
|
|
|
179
201
|
return {
|
|
@@ -182,32 +204,6 @@ function validateInput(input: unknown): { message: string; sessionId?: string }
|
|
|
182
204
|
};
|
|
183
205
|
}
|
|
184
206
|
|
|
185
|
-
/**
|
|
186
|
-
* Main entry point - called by Runflow runtime
|
|
187
|
-
*/
|
|
188
|
-
export async function main(input: { message: string; sessionId?: string }) {
|
|
189
|
-
try {
|
|
190
|
-
// Validate input
|
|
191
|
-
const validatedInput = validateInput(input);
|
|
192
|
-
|
|
193
|
-
// Uncomment to identify user for memory persistence across channels
|
|
194
|
-
// identify('+5511999999999');
|
|
195
|
-
// identify({ type: 'email', value: 'user@email.com' });
|
|
196
|
-
|
|
197
|
-
// Process message
|
|
198
|
-
const result = await agent.process(validatedInput);
|
|
199
|
-
|
|
200
|
-
return result;
|
|
201
|
-
} catch (error) {
|
|
202
|
-
console.error('[${agentName}] Error:', error instanceof Error ? error.message : error);
|
|
203
|
-
|
|
204
|
-
return {
|
|
205
|
-
success: false,
|
|
206
|
-
error: error instanceof Error ? error.message : 'An unexpected error occurred',
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
207
|
export default main;
|
|
212
208
|
`;
|
|
213
209
|
}
|
|
@@ -216,7 +212,7 @@ function generateToolsIndex() {
|
|
|
216
212
|
|
|
217
213
|
/**
|
|
218
214
|
* Agent Tools Registry
|
|
219
|
-
*
|
|
215
|
+
*
|
|
220
216
|
* Tools are registered as a Record<string, RunflowTool>
|
|
221
217
|
* The key should match the tool's 'id' property
|
|
222
218
|
*/
|
|
@@ -231,7 +227,7 @@ import { z } from 'zod';
|
|
|
231
227
|
|
|
232
228
|
/**
|
|
233
229
|
* Weather Tool - Get current temperature for any city
|
|
234
|
-
*
|
|
230
|
+
*
|
|
235
231
|
* Uses Open-Meteo API (free, no API key required)
|
|
236
232
|
* Documentation: https://open-meteo.com/
|
|
237
233
|
*/
|
|
@@ -245,7 +241,7 @@ export const getWeather = createTool({
|
|
|
245
241
|
|
|
246
242
|
execute: async ({ context }) => {
|
|
247
243
|
const { city } = context;
|
|
248
|
-
|
|
244
|
+
|
|
249
245
|
try {
|
|
250
246
|
// 1. Geocoding: Convert city name to coordinates
|
|
251
247
|
const geoUrl = \`https://geocoding-api.open-meteo.com/v1/search?name=\${encodeURIComponent(city)}&count=1&language=en\`;
|
|
@@ -258,9 +254,9 @@ export const getWeather = createTool({
|
|
|
258
254
|
const geoData = await geoResponse.json();
|
|
259
255
|
|
|
260
256
|
if (!geoData.results || geoData.results.length === 0) {
|
|
261
|
-
return {
|
|
262
|
-
success: false,
|
|
263
|
-
error: \`City "\${city}" not found. Try a different spelling or a nearby major city.\`
|
|
257
|
+
return {
|
|
258
|
+
success: false,
|
|
259
|
+
error: \`City "\${city}" not found. Try a different spelling or a nearby major city.\`
|
|
264
260
|
};
|
|
265
261
|
}
|
|
266
262
|
|
|
@@ -345,7 +341,7 @@ function getWeatherDescription(code: number): string {
|
|
|
345
341
|
function generatePromptsIndex(agentName) {
|
|
346
342
|
return `/**
|
|
347
343
|
* System Prompts for ${agentName}
|
|
348
|
-
*
|
|
344
|
+
*
|
|
349
345
|
* These prompts define the agent's personality, capabilities, and behavior.
|
|
350
346
|
* You can customize them to match your use case.
|
|
351
347
|
*/
|
|
@@ -374,13 +370,8 @@ export const systemPrompt = \`You are ${agentName}, a helpful and knowledgeable
|
|
|
374
370
|
* Additional prompt templates you can use
|
|
375
371
|
*/
|
|
376
372
|
export const prompts = {
|
|
377
|
-
// Greeting prompt for new sessions
|
|
378
373
|
greeting: \`Hello! I'm ${agentName}. I can help you check the weather for any city, answer questions, or just chat. What can I do for you today?\`,
|
|
379
|
-
|
|
380
|
-
// Error handling prompt
|
|
381
374
|
errorRecovery: \`I encountered an issue processing that request. Could you please rephrase or try again?\`,
|
|
382
|
-
|
|
383
|
-
// Weather-specific prompt enhancement
|
|
384
375
|
weatherContext: \`When providing weather information, include the temperature, how it feels, humidity, and wind conditions.\`,
|
|
385
376
|
};
|
|
386
377
|
`;
|
|
@@ -393,12 +384,11 @@ function generatePackageJson(agentSlug) {
|
|
|
393
384
|
main: 'main.ts',
|
|
394
385
|
type: 'module',
|
|
395
386
|
scripts: {
|
|
396
|
-
dev: 'rf dev',
|
|
397
387
|
test: 'rf test',
|
|
398
388
|
deploy: 'rf agents deploy',
|
|
399
389
|
},
|
|
400
390
|
dependencies: {
|
|
401
|
-
'@runflow-ai/sdk': '^1.0.
|
|
391
|
+
'@runflow-ai/sdk': '^1.0.96',
|
|
402
392
|
zod: '^3.23.0',
|
|
403
393
|
},
|
|
404
394
|
devDependencies: {
|
|
@@ -428,96 +418,77 @@ function generateReadme(agentName, agentSlug) {
|
|
|
428
418
|
|
|
429
419
|
AI agent built with [Runflow SDK](https://docs.runflow.ai).
|
|
430
420
|
|
|
431
|
-
## Features
|
|
432
|
-
|
|
433
|
-
- **Weather Tool**: Check real-time weather for any city worldwide (powered by [Open-Meteo](https://open-meteo.com/))
|
|
434
|
-
- **Conversational AI**: Helpful assistant with memory and context awareness
|
|
435
|
-
- **Extensible**: Easy to add new tools and capabilities
|
|
436
|
-
|
|
437
421
|
## Quick Start
|
|
438
422
|
|
|
439
423
|
\`\`\`bash
|
|
440
|
-
# Install dependencies
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
# Test locally with interactive UI
|
|
444
|
-
rf test
|
|
445
|
-
|
|
446
|
-
# Deploy to production
|
|
447
|
-
rf agents deploy
|
|
424
|
+
npm install # Install dependencies
|
|
425
|
+
rf test # Test locally with interactive UI
|
|
426
|
+
rf agents deploy # Deploy to production
|
|
448
427
|
\`\`\`
|
|
449
428
|
|
|
450
429
|
## Project Structure
|
|
451
430
|
|
|
452
431
|
\`\`\`
|
|
453
432
|
${agentSlug}/
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
433
|
+
\u251C\u2500\u2500 main.ts # Entry point - agent config, track, log
|
|
434
|
+
\u251C\u2500\u2500 tools/
|
|
435
|
+
\u2502 \u251C\u2500\u2500 index.ts # Tools registry
|
|
436
|
+
\u2502 \u2514\u2500\u2500 weather.ts # Example tool (Open-Meteo API)
|
|
437
|
+
\u251C\u2500\u2500 prompts/
|
|
438
|
+
\u2502 \u2514\u2500\u2500 index.ts # System prompt and templates
|
|
439
|
+
\u251C\u2500\u2500 .runflow/
|
|
440
|
+
\u2502 \u2514\u2500\u2500 rf.json # Runflow configuration (auto-generated)
|
|
441
|
+
\u251C\u2500\u2500 package.json
|
|
442
|
+
\u2514\u2500\u2500 tsconfig.json
|
|
464
443
|
\`\`\`
|
|
465
444
|
|
|
466
|
-
##
|
|
445
|
+
## SDK Features Used
|
|
467
446
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
Agent
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
- Conditions: Clear sky
|
|
480
|
-
- Humidity: 45%
|
|
481
|
-
- Wind: 8 km/h
|
|
482
|
-
\`\`\`
|
|
447
|
+
| Feature | Status | Description |
|
|
448
|
+
|---------|--------|-------------|
|
|
449
|
+
| **Agent** | Active | Core AI agent with tool calling |
|
|
450
|
+
| **Memory** | Active | Conversation history per session |
|
|
451
|
+
| **Tools** | Active | Custom tools with Zod validation |
|
|
452
|
+
| **Observability** | Active | Full tracing of LLM, tools and memory |
|
|
453
|
+
| **track()** | Active | Business event tracking |
|
|
454
|
+
| **log()** | Active | Custom observability logs |
|
|
455
|
+
| **identify()** | Active | Groups logs and memory under a user |
|
|
456
|
+
| **connector()** | Commented | Call external services (HubSpot, Slack, etc.) |
|
|
457
|
+
| **RAG** | Commented | Retrieval Augmented Generation |
|
|
483
458
|
|
|
484
|
-
## Adding
|
|
485
|
-
|
|
486
|
-
1. Create a new file in \`tools/\` (e.g., \`tools/my-tool.ts\`)
|
|
487
|
-
2. Use \`createTool\` from the SDK:
|
|
459
|
+
## Adding Tools
|
|
488
460
|
|
|
489
461
|
\`\`\`typescript
|
|
462
|
+
// tools/my-tool.ts
|
|
490
463
|
import { createTool } from '@runflow-ai/sdk';
|
|
491
464
|
import { z } from 'zod';
|
|
492
465
|
|
|
493
466
|
export const myTool = createTool({
|
|
494
467
|
id: 'my_tool',
|
|
495
|
-
description: '
|
|
468
|
+
description: 'What this tool does',
|
|
496
469
|
inputSchema: z.object({
|
|
497
470
|
param: z.string().describe('Parameter description'),
|
|
498
471
|
}),
|
|
499
472
|
execute: async ({ context }) => {
|
|
500
|
-
|
|
501
|
-
// Your logic here
|
|
502
|
-
return { result: 'success' };
|
|
473
|
+
return { result: context.param };
|
|
503
474
|
},
|
|
504
475
|
});
|
|
505
476
|
\`\`\`
|
|
506
477
|
|
|
507
|
-
|
|
478
|
+
Then register in \`tools/index.ts\`:
|
|
508
479
|
|
|
509
480
|
\`\`\`typescript
|
|
510
481
|
import { myTool } from './my-tool';
|
|
511
|
-
|
|
512
|
-
export const tools = {
|
|
513
|
-
get_weather: getWeather,
|
|
514
|
-
my_tool: myTool, // Add here
|
|
515
|
-
};
|
|
482
|
+
export const tools = { get_weather: getWeather, my_tool: myTool };
|
|
516
483
|
\`\`\`
|
|
517
484
|
|
|
518
|
-
##
|
|
485
|
+
## Docs
|
|
519
486
|
|
|
520
|
-
- [
|
|
487
|
+
- [Agents](https://docs.runflow.ai/core-concepts/agents)
|
|
488
|
+
- [Tools](https://docs.runflow.ai/core-concepts/tools)
|
|
489
|
+
- [Memory](https://docs.runflow.ai/core-concepts/memory)
|
|
490
|
+
- [Connectors](https://docs.runflow.ai/core-concepts/connectors)
|
|
491
|
+
- [Observability](https://docs.runflow.ai/core-concepts/observability)
|
|
521
492
|
`;
|
|
522
493
|
}
|
|
523
494
|
function generateGitignore() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/commands/create/code-generator.ts"],"names":[],"mappings":";;AAsBA,8CAqBC;AArBD,SAAgB,iBAAiB,CAAC,MAA+B;IAC/D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,KAAK,GAAoB;QAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE;QACpD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE;QACzD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE;QAC5D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAAE;QACtE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAAE;QACjE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE;QACtD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE;QACpD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;KACrE,CAAC;IAGF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,SAAS,cAAc,CAAC,MAA+B;IACrD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/commands/create/code-generator.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.
|
|
3
|
+
"version": "0.2.37",
|
|
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",
|