@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 { identify } from '@runflow-ai/sdk'; // Uncomment to use identify
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, // Keep last 10 conversation turns
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
- * Input validation
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 { identify } from '@runflow-ai/sdk'; // Uncomment to use identify
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
- // Uncomment to enable debug logging
158
- // debug: true,
151
+ // Observability - traces every LLM call, tool execution and memory access
152
+ observability: 'full',
159
153
  });
160
154
 
161
- /**
162
- * Input validation
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.95',
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
- npm install
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
- ├── main.ts # Agent configuration and entry point
455
- ├── tools/
456
- ├── index.ts # Tools registry
457
- └── weather.ts # Weather tool (Open-Meteo API)
458
- ├── prompts/
459
- └── index.ts # System prompts and templates
460
- ├── .runflow/
461
- └── rf.json # Runflow configuration
462
- ├── package.json
463
- └── tsconfig.json
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
- ## Example Conversations
445
+ ## SDK Features Used
467
446
 
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
- \`\`\`
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 New Tools
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: 'Description of what the tool does',
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
- const { param } = context;
501
- // Your logic here
502
- return { result: 'success' };
473
+ return { result: context.param };
503
474
  },
504
475
  });
505
476
  \`\`\`
506
477
 
507
- 3. Register in \`tools/index.ts\`:
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
- ## Documentation
485
+ ## Docs
519
486
 
520
- - [Runflow Docs](https://docs.runflow.ai)
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":"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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.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",