@runflow-ai/cli 0.2.35 → 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.
@@ -21,14 +21,15 @@ 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 { 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';
26
27
  import { tools } from './tools';
27
28
  import { systemPrompt } from './prompts';
28
29
 
29
30
  /**
30
31
  * ${agentName} - AI Agent powered by Runflow SDK
31
- *
32
+ *
32
33
  * Provider: ${provider}
33
34
  * Model: ${model}
34
35
  */
@@ -39,11 +40,15 @@ const agent = new Agent({
39
40
  tools,
40
41
 
41
42
  // Memory - stores conversation history per session
42
- // The sessionId is automatically provided by rf test or execution engine
43
+ // sessionId is automatically provided by rf test and execution engine
43
44
  memory: {
44
- maxTurns: 10, // Keep last 10 conversation turns
45
+ maxTurns: 10,
45
46
  },
46
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
+
47
52
  // Uncomment to enable RAG (Retrieval Augmented Generation)
48
53
  // rag: {
49
54
  // vectorStore: 'my-knowledge-base',
@@ -55,22 +60,53 @@ const agent = new Agent({
55
60
  // debug: true,
56
61
  });
57
62
 
58
- /**
59
- * Input validation
60
- */
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
+ // ---------------------------------------------------------------------------
61
101
  function validateInput(input: unknown): { message: string; sessionId?: string } {
62
102
  if (!input || typeof input !== 'object') {
63
- throw new Error('Input must be an object');
103
+ throw new Error('Input must be an object with a "message" field');
64
104
  }
65
105
 
66
106
  const { message, sessionId } = input as Record<string, unknown>;
67
107
 
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');
108
+ if (!message || typeof message !== 'string' || message.trim().length === 0) {
109
+ throw new Error('message is required and must be a non-empty string');
74
110
  }
75
111
 
76
112
  return {
@@ -79,59 +115,20 @@ function validateInput(input: unknown): { message: string; sessionId?: string }
79
115
  };
80
116
  }
81
117
 
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
118
  export default main;
123
119
  `;
124
120
  }
125
121
  function generateMainTsWithRag(config) {
126
122
  const { agentName, provider, model } = config;
127
- return `import { Agent, ${provider} } from '@runflow-ai/sdk';
128
- // 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';
129
126
  import { tools } from './tools';
130
127
  import { systemPrompt } from './prompts';
131
128
 
132
129
  /**
133
130
  * ${agentName} - RAG-enabled AI Agent powered by Runflow SDK
134
- *
131
+ *
135
132
  * Provider: ${provider}
136
133
  * Model: ${model}
137
134
  * RAG: Enabled
@@ -154,26 +151,55 @@ const agent = new Agent({
154
151
  threshold: 0.7,
155
152
  },
156
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
+
157
158
  // Uncomment to enable debug logging
158
159
  // debug: true,
159
160
  });
160
161
 
161
- /**
162
- * Input validation
163
- */
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
+ // ---------------------------------------------------------------------------
164
194
  function validateInput(input: unknown): { message: string; sessionId?: string } {
165
195
  if (!input || typeof input !== 'object') {
166
- throw new Error('Input must be an object');
196
+ throw new Error('Input must be an object with a "message" field');
167
197
  }
168
198
 
169
199
  const { message, sessionId } = input as Record<string, unknown>;
170
200
 
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');
201
+ if (!message || typeof message !== 'string' || message.trim().length === 0) {
202
+ throw new Error('message is required and must be a non-empty string');
177
203
  }
178
204
 
179
205
  return {
@@ -182,32 +208,6 @@ function validateInput(input: unknown): { message: string; sessionId?: string }
182
208
  };
183
209
  }
184
210
 
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
211
  export default main;
212
212
  `;
213
213
  }
@@ -393,7 +393,6 @@ function generatePackageJson(agentSlug) {
393
393
  main: 'main.ts',
394
394
  type: 'module',
395
395
  scripts: {
396
- dev: 'rf dev',
397
396
  test: 'rf test',
398
397
  deploy: 'rf agents deploy',
399
398
  },
@@ -428,96 +427,77 @@ function generateReadme(agentName, agentSlug) {
428
427
 
429
428
  AI agent built with [Runflow SDK](https://docs.runflow.ai).
430
429
 
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
430
  ## Quick Start
438
431
 
439
432
  \`\`\`bash
440
- # Install dependencies
441
- npm install
442
-
443
- # Test locally with interactive UI
444
- rf test
445
-
446
- # Deploy to production
447
- rf agents deploy
433
+ npm install # Install dependencies
434
+ rf test # Test locally with interactive UI
435
+ rf agents deploy # Deploy to production
448
436
  \`\`\`
449
437
 
450
438
  ## Project Structure
451
439
 
452
440
  \`\`\`
453
441
  ${agentSlug}/
454
- ├── main.ts # Agent configuration and entry point
442
+ ├── main.ts # Entry point - agent config, track, log
455
443
  ├── tools/
456
444
  │ ├── index.ts # Tools registry
457
- │ └── weather.ts # Weather tool (Open-Meteo API)
445
+ │ └── weather.ts # Example tool (Open-Meteo API)
458
446
  ├── prompts/
459
- │ └── index.ts # System prompts and templates
447
+ │ └── index.ts # System prompt and templates
460
448
  ├── .runflow/
461
- │ └── rf.json # Runflow configuration
449
+ │ └── rf.json # Runflow configuration (auto-generated)
462
450
  ├── package.json
463
451
  └── tsconfig.json
464
452
  \`\`\`
465
453
 
466
- ## Example Conversations
454
+ ## SDK Features Used
467
455
 
468
- \`\`\`
469
- User: What's the weather in São Paulo?
470
- Agent: The current weather in São Paulo, Brazil:
471
- - Temperature: 24°C (feels like 26°C)
472
- - Conditions: Partly cloudy
473
- - Humidity: 65%
474
- - Wind: 12 km/h
475
-
476
- User: How about Tokyo?
477
- Agent: Here's the weather in Tokyo, Japan:
478
- - Temperature: 18°C (feels like 17°C)
479
- - Conditions: Clear sky
480
- - Humidity: 45%
481
- - Wind: 8 km/h
482
- \`\`\`
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 |
483
467
 
484
- ## Adding New Tools
485
-
486
- 1. Create a new file in \`tools/\` (e.g., \`tools/my-tool.ts\`)
487
- 2. Use \`createTool\` from the SDK:
468
+ ## Adding Tools
488
469
 
489
470
  \`\`\`typescript
471
+ // tools/my-tool.ts
490
472
  import { createTool } from '@runflow-ai/sdk';
491
473
  import { z } from 'zod';
492
474
 
493
475
  export const myTool = createTool({
494
476
  id: 'my_tool',
495
- description: 'Description of what the tool does',
477
+ description: 'What this tool does',
496
478
  inputSchema: z.object({
497
479
  param: z.string().describe('Parameter description'),
498
480
  }),
499
481
  execute: async ({ context }) => {
500
- const { param } = context;
501
- // Your logic here
502
- return { result: 'success' };
482
+ return { result: context.param };
503
483
  },
504
484
  });
505
485
  \`\`\`
506
486
 
507
- 3. Register in \`tools/index.ts\`:
487
+ Then register in \`tools/index.ts\`:
508
488
 
509
489
  \`\`\`typescript
510
490
  import { myTool } from './my-tool';
511
-
512
- export const tools = {
513
- get_weather: getWeather,
514
- my_tool: myTool, // Add here
515
- };
491
+ export const tools = { get_weather: getWeather, my_tool: myTool };
516
492
  \`\`\`
517
493
 
518
- ## Documentation
494
+ ## Docs
519
495
 
520
- - [Runflow Docs](https://docs.runflow.ai)
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)
521
501
  `;
522
502
  }
523
503
  function generateGitignore() {
@@ -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.35",
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",