@runflow-ai/cli 0.2.34 → 0.2.36

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.
@@ -11,6 +11,7 @@ function generateAgentCode(config) {
11
11
  { path: 'prompts/index.ts', content: generatePromptsIndex(agentName) },
12
12
  { path: 'package.json', content: generatePackageJson(agentSlug) },
13
13
  { path: 'tsconfig.json', content: generateTsConfig() },
14
+ { path: '.gitignore', content: generateGitignore() },
14
15
  { path: 'README.md', content: generateReadme(agentName, agentSlug) },
15
16
  ];
16
17
  if (template === 'rag') {
@@ -20,14 +21,15 @@ function generateAgentCode(config) {
20
21
  }
21
22
  function generateMainTs(config) {
22
23
  const { agentName, provider, model } = config;
23
- return `import { Agent, ${provider} } from '@runflow-ai/sdk';
24
- // import { identify } from '@runflow-ai/sdk'; // Uncomment to use identify
24
+ return `import { Agent, log, ${provider}, track } from '@runflow-ai/sdk';
25
+ // import { identify } from '@runflow-ai/sdk';
26
+ // import { connector } from '@runflow-ai/sdk';
25
27
  import { tools } from './tools';
26
28
  import { systemPrompt } from './prompts';
27
29
 
28
30
  /**
29
31
  * ${agentName} - AI Agent powered by Runflow SDK
30
- *
32
+ *
31
33
  * Provider: ${provider}
32
34
  * Model: ${model}
33
35
  */
@@ -38,11 +40,15 @@ const agent = new Agent({
38
40
  tools,
39
41
 
40
42
  // Memory - stores conversation history per session
41
- // The sessionId is automatically provided by rf test or execution engine
43
+ // sessionId is automatically provided by rf test and execution engine
42
44
  memory: {
43
- maxTurns: 10, // Keep last 10 conversation turns
45
+ maxTurns: 10,
44
46
  },
45
47
 
48
+ // Observability - traces every LLM call, tool execution and memory access
49
+ // 'full' is the default; change to 'standard' (truncated) or 'minimal' (off)
50
+ observability: 'full',
51
+
46
52
  // Uncomment to enable RAG (Retrieval Augmented Generation)
47
53
  // rag: {
48
54
  // vectorStore: 'my-knowledge-base',
@@ -54,22 +60,53 @@ const agent = new Agent({
54
60
  // debug: true,
55
61
  });
56
62
 
57
- /**
58
- * Input validation
59
- */
63
+ // ---------------------------------------------------------------------------
64
+ // Main entry point - called by Runflow runtime
65
+ //
66
+ // Input:
67
+ // message - User's message (required)
68
+ // sessionId - Conversation identifier (auto-generated by rf test)
69
+ //
70
+ // Memory works automatically:
71
+ // Same sessionId = same conversation | Different sessionId = fresh start
72
+ // ---------------------------------------------------------------------------
73
+ export async function main(input: { message: string; sessionId?: string }) {
74
+ const { message, sessionId } = validateInput(input);
75
+
76
+ // --- User identity (uncomment to bind memory to a user instead of session) ---
77
+ // identify('+5511999999999'); // phone
78
+ // identify('user@email.com'); // email
79
+ // identify({ type: 'hubspot_contact', value: 'cid_123' });// CRM
80
+
81
+ log('Processing message', { sessionId, messageLength: message.length });
82
+
83
+ const result = await agent.process({ message, sessionId });
84
+
85
+ // --- Connector example (uncomment to call an external service) ---
86
+ // const lead = await connector('hubspot', 'create-contact', {
87
+ // body: { email: 'user@email.com', firstname: 'John' },
88
+ // });
89
+
90
+ track('message_processed', {
91
+ model: '${model}',
92
+ hasSession: !!sessionId,
93
+ });
94
+
95
+ return result;
96
+ }
97
+
98
+ // ---------------------------------------------------------------------------
99
+ // Input validation
100
+ // ---------------------------------------------------------------------------
60
101
  function validateInput(input: unknown): { message: string; sessionId?: string } {
61
102
  if (!input || typeof input !== 'object') {
62
- throw new Error('Input must be an object');
103
+ throw new Error('Input must be an object with a "message" field');
63
104
  }
64
105
 
65
106
  const { message, sessionId } = input as Record<string, unknown>;
66
107
 
67
- if (!message || typeof message !== 'string') {
68
- throw new Error('message is required and must be a string');
69
- }
70
-
71
- if (message.trim().length === 0) {
72
- throw new Error('message cannot be empty');
108
+ if (!message || typeof message !== 'string' || message.trim().length === 0) {
109
+ throw new Error('message is required and must be a non-empty string');
73
110
  }
74
111
 
75
112
  return {
@@ -78,59 +115,20 @@ function validateInput(input: unknown): { message: string; sessionId?: string }
78
115
  };
79
116
  }
80
117
 
81
- /**
82
- * Main entry point - called by Runflow runtime
83
- *
84
- * The input object contains:
85
- * - message: User's message (required)
86
- * - sessionId: Unique session identifier (auto-generated by rf test)
87
- *
88
- * Memory works automatically:
89
- * - Same sessionId = same conversation history
90
- * - Different sessionId = fresh conversation
91
- */
92
- export async function main(input: { message: string; sessionId?: string }) {
93
- try {
94
- // Validate input
95
- const validatedInput = validateInput(input);
96
-
97
- // Uncomment to identify user for memory persistence across channels
98
- // This creates a stable memory key based on user identity instead of session
99
- // identify('+5511999999999'); // Auto-detects type (phone)
100
- // identify('user@email.com'); // Auto-detects type (email)
101
- // identify({ type: 'phone', value: '+5511999999999' });
102
- // identify({ type: 'email', value: 'user@email.com' });
103
- // identify({ type: 'hubspot_contact', value: 'contact_123' });
104
-
105
- // Process message
106
- const result = await agent.process(validatedInput);
107
-
108
- return result;
109
- } catch (error) {
110
- // Log error for debugging
111
- console.error('[${agentName}] Error:', error instanceof Error ? error.message : error);
112
-
113
- // Return structured error response
114
- return {
115
- success: false,
116
- error: error instanceof Error ? error.message : 'An unexpected error occurred',
117
- };
118
- }
119
- }
120
-
121
118
  export default main;
122
119
  `;
123
120
  }
124
121
  function generateMainTsWithRag(config) {
125
122
  const { agentName, provider, model } = config;
126
- return `import { Agent, ${provider} } from '@runflow-ai/sdk';
127
- // import { identify } from '@runflow-ai/sdk'; // Uncomment to use identify
123
+ return `import { Agent, log, ${provider}, track } from '@runflow-ai/sdk';
124
+ // import { identify } from '@runflow-ai/sdk';
125
+ // import { connector } from '@runflow-ai/sdk';
128
126
  import { tools } from './tools';
129
127
  import { systemPrompt } from './prompts';
130
128
 
131
129
  /**
132
130
  * ${agentName} - RAG-enabled AI Agent powered by Runflow SDK
133
- *
131
+ *
134
132
  * Provider: ${provider}
135
133
  * Model: ${model}
136
134
  * RAG: Enabled
@@ -153,26 +151,55 @@ const agent = new Agent({
153
151
  threshold: 0.7,
154
152
  },
155
153
 
154
+ // Observability - traces every LLM call, tool execution and memory access
155
+ // 'full' is the default; change to 'standard' (truncated) or 'minimal' (off)
156
+ observability: 'full',
157
+
156
158
  // Uncomment to enable debug logging
157
159
  // debug: true,
158
160
  });
159
161
 
160
- /**
161
- * Input validation
162
- */
162
+ // ---------------------------------------------------------------------------
163
+ // Main entry point - called by Runflow runtime
164
+ // ---------------------------------------------------------------------------
165
+ export async function main(input: { message: string; sessionId?: string }) {
166
+ const { message, sessionId } = validateInput(input);
167
+
168
+ // --- User identity (uncomment to bind memory to a user instead of session) ---
169
+ // identify('+5511999999999'); // phone
170
+ // identify('user@email.com'); // email
171
+ // identify({ type: 'hubspot_contact', value: 'cid_123' });// CRM
172
+
173
+ log('Processing message', { sessionId, messageLength: message.length });
174
+
175
+ const result = await agent.process({ message, sessionId });
176
+
177
+ // --- Connector example (uncomment to call an external service) ---
178
+ // const lead = await connector('hubspot', 'create-contact', {
179
+ // body: { email: 'user@email.com', firstname: 'John' },
180
+ // });
181
+
182
+ track('message_processed', {
183
+ model: '${model}',
184
+ hasSession: !!sessionId,
185
+ ragEnabled: true,
186
+ });
187
+
188
+ return result;
189
+ }
190
+
191
+ // ---------------------------------------------------------------------------
192
+ // Input validation
193
+ // ---------------------------------------------------------------------------
163
194
  function validateInput(input: unknown): { message: string; sessionId?: string } {
164
195
  if (!input || typeof input !== 'object') {
165
- throw new Error('Input must be an object');
196
+ throw new Error('Input must be an object with a "message" field');
166
197
  }
167
198
 
168
199
  const { message, sessionId } = input as Record<string, unknown>;
169
200
 
170
- if (!message || typeof message !== 'string') {
171
- throw new Error('message is required and must be a string');
172
- }
173
-
174
- if (message.trim().length === 0) {
175
- throw new Error('message cannot be empty');
201
+ if (!message || typeof message !== 'string' || message.trim().length === 0) {
202
+ throw new Error('message is required and must be a non-empty string');
176
203
  }
177
204
 
178
205
  return {
@@ -181,32 +208,6 @@ function validateInput(input: unknown): { message: string; sessionId?: string }
181
208
  };
182
209
  }
183
210
 
184
- /**
185
- * Main entry point - called by Runflow runtime
186
- */
187
- export async function main(input: { message: string; sessionId?: string }) {
188
- try {
189
- // Validate input
190
- const validatedInput = validateInput(input);
191
-
192
- // Uncomment to identify user for memory persistence across channels
193
- // identify('+5511999999999');
194
- // identify({ type: 'email', value: 'user@email.com' });
195
-
196
- // Process message
197
- const result = await agent.process(validatedInput);
198
-
199
- return result;
200
- } catch (error) {
201
- console.error('[${agentName}] Error:', error instanceof Error ? error.message : error);
202
-
203
- return {
204
- success: false,
205
- error: error instanceof Error ? error.message : 'An unexpected error occurred',
206
- };
207
- }
208
- }
209
-
210
211
  export default main;
211
212
  `;
212
213
  }
@@ -392,12 +393,11 @@ function generatePackageJson(agentSlug) {
392
393
  main: 'main.ts',
393
394
  type: 'module',
394
395
  scripts: {
395
- dev: 'rf dev',
396
396
  test: 'rf test',
397
397
  deploy: 'rf agents deploy',
398
398
  },
399
399
  dependencies: {
400
- '@runflow-ai/sdk': '^1.0.68',
400
+ '@runflow-ai/sdk': '^1.0.95',
401
401
  zod: '^3.23.0',
402
402
  },
403
403
  devDependencies: {
@@ -427,96 +427,107 @@ function generateReadme(agentName, agentSlug) {
427
427
 
428
428
  AI agent built with [Runflow SDK](https://docs.runflow.ai).
429
429
 
430
- ## Features
431
-
432
- - **Weather Tool**: Check real-time weather for any city worldwide (powered by [Open-Meteo](https://open-meteo.com/))
433
- - **Conversational AI**: Helpful assistant with memory and context awareness
434
- - **Extensible**: Easy to add new tools and capabilities
435
-
436
430
  ## Quick Start
437
431
 
438
432
  \`\`\`bash
439
- # Install dependencies
440
- npm install
441
-
442
- # Test locally with interactive UI
443
- rf test
444
-
445
- # Deploy to production
446
- rf agents deploy
433
+ npm install # Install dependencies
434
+ rf test # Test locally with interactive UI
435
+ rf agents deploy # Deploy to production
447
436
  \`\`\`
448
437
 
449
438
  ## Project Structure
450
439
 
451
440
  \`\`\`
452
441
  ${agentSlug}/
453
- ├── main.ts # Agent configuration and entry point
442
+ ├── main.ts # Entry point - agent config, track, log
454
443
  ├── tools/
455
444
  │ ├── index.ts # Tools registry
456
- │ └── weather.ts # Weather tool (Open-Meteo API)
445
+ │ └── weather.ts # Example tool (Open-Meteo API)
457
446
  ├── prompts/
458
- │ └── index.ts # System prompts and templates
447
+ │ └── index.ts # System prompt and templates
459
448
  ├── .runflow/
460
- │ └── rf.json # Runflow configuration
449
+ │ └── rf.json # Runflow configuration (auto-generated)
461
450
  ├── package.json
462
451
  └── tsconfig.json
463
452
  \`\`\`
464
453
 
465
- ## Example Conversations
454
+ ## SDK Features Used
466
455
 
467
- \`\`\`
468
- User: What's the weather in São Paulo?
469
- Agent: The current weather in São Paulo, Brazil:
470
- - Temperature: 24°C (feels like 26°C)
471
- - Conditions: Partly cloudy
472
- - Humidity: 65%
473
- - Wind: 12 km/h
474
-
475
- User: How about Tokyo?
476
- Agent: Here's the weather in Tokyo, Japan:
477
- - Temperature: 18°C (feels like 17°C)
478
- - Conditions: Clear sky
479
- - Humidity: 45%
480
- - Wind: 8 km/h
481
- \`\`\`
456
+ | Feature | Status | Description |
457
+ |---------|--------|-------------|
458
+ | **Agent** | Active | Core AI agent with tool calling |
459
+ | **Memory** | Active | Conversation history per session |
460
+ | **Tools** | Active | Custom tools with Zod validation |
461
+ | **Observability** | Active | Full tracing of LLM, tools and memory |
462
+ | **track()** | Active | Business event tracking |
463
+ | **log()** | Active | Custom observability logs |
464
+ | **identify()** | Commented | Bind memory to user identity (phone, email, CRM) |
465
+ | **connector()** | Commented | Call external services (HubSpot, Slack, etc.) |
466
+ | **RAG** | Commented | Retrieval Augmented Generation |
482
467
 
483
- ## Adding New Tools
484
-
485
- 1. Create a new file in \`tools/\` (e.g., \`tools/my-tool.ts\`)
486
- 2. Use \`createTool\` from the SDK:
468
+ ## Adding Tools
487
469
 
488
470
  \`\`\`typescript
471
+ // tools/my-tool.ts
489
472
  import { createTool } from '@runflow-ai/sdk';
490
473
  import { z } from 'zod';
491
474
 
492
475
  export const myTool = createTool({
493
476
  id: 'my_tool',
494
- description: 'Description of what the tool does',
477
+ description: 'What this tool does',
495
478
  inputSchema: z.object({
496
479
  param: z.string().describe('Parameter description'),
497
480
  }),
498
481
  execute: async ({ context }) => {
499
- const { param } = context;
500
- // Your logic here
501
- return { result: 'success' };
482
+ return { result: context.param };
502
483
  },
503
484
  });
504
485
  \`\`\`
505
486
 
506
- 3. Register in \`tools/index.ts\`:
487
+ Then register in \`tools/index.ts\`:
507
488
 
508
489
  \`\`\`typescript
509
490
  import { myTool } from './my-tool';
510
-
511
- export const tools = {
512
- get_weather: getWeather,
513
- my_tool: myTool, // Add here
514
- };
491
+ export const tools = { get_weather: getWeather, my_tool: myTool };
515
492
  \`\`\`
516
493
 
517
- ## Documentation
494
+ ## Docs
495
+
496
+ - [Agents](https://docs.runflow.ai/core-concepts/agents)
497
+ - [Tools](https://docs.runflow.ai/core-concepts/tools)
498
+ - [Memory](https://docs.runflow.ai/core-concepts/memory)
499
+ - [Connectors](https://docs.runflow.ai/core-concepts/connectors)
500
+ - [Observability](https://docs.runflow.ai/core-concepts/observability)
501
+ `;
502
+ }
503
+ function generateGitignore() {
504
+ return `# Dependencies
505
+ node_modules/
506
+
507
+ # Build output
508
+ dist/
509
+
510
+ # Runflow local config
511
+ .runflow/
512
+
513
+ # Environment variables
514
+ .env
515
+ .env.*
516
+
517
+ # OS files
518
+ .DS_Store
519
+ Thumbs.db
520
+
521
+ # IDE
522
+ .vscode/
523
+ .idea/
524
+
525
+ # Logs
526
+ *.log
527
+ npm-debug.log*
518
528
 
519
- - [Runflow Docs](https://docs.runflow.ai)
529
+ # TypeScript build info
530
+ *.tsbuildinfo
520
531
  `;
521
532
  }
522
533
  function slugify(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/commands/create/code-generator.ts"],"names":[],"mappings":"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"}
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.34",
3
+ "version": "0.2.36",
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",