@runflow-ai/cli 0.2.5 โ†’ 0.2.7

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.
Files changed (50) hide show
  1. package/dist/commands/agents/agents.command.js +244 -93
  2. package/dist/commands/agents/agents.command.js.map +1 -1
  3. package/dist/commands/login/login.command.js +23 -9
  4. package/dist/commands/login/login.command.js.map +1 -1
  5. package/dist/commands/prompts/prompts.command.js +13 -13
  6. package/dist/commands/prompts/prompts.command.js.map +1 -1
  7. package/dist/commands/test/test.command.d.ts +27 -0
  8. package/dist/commands/test/test.command.js +326 -0
  9. package/dist/commands/test/test.command.js.map +1 -0
  10. package/dist/commands/users/users.command.js +16 -19
  11. package/dist/commands/users/users.command.js.map +1 -1
  12. package/dist/common/api-client.js +4 -1
  13. package/dist/common/api-client.js.map +1 -1
  14. package/dist/common/banner.js +34 -1
  15. package/dist/common/banner.js.map +1 -1
  16. package/dist/common/config.d.ts +1 -1
  17. package/dist/common/config.js +42 -6
  18. package/dist/common/config.js.map +1 -1
  19. package/dist/common/logger.js +34 -1
  20. package/dist/common/logger.js.map +1 -1
  21. package/dist/common/system-check.d.ts +18 -0
  22. package/dist/common/system-check.js +118 -0
  23. package/dist/common/system-check.js.map +1 -0
  24. package/dist/common/ui.js +13 -4
  25. package/dist/common/ui.js.map +1 -1
  26. package/dist/common/validator.d.ts +13 -0
  27. package/dist/common/validator.js +191 -0
  28. package/dist/common/validator.js.map +1 -0
  29. package/dist/index.js +42 -5
  30. package/dist/index.js.map +1 -1
  31. package/package.json +10 -3
  32. package/scenarios/README.md +71 -0
  33. package/scenarios/memory-conversation.json +23 -0
  34. package/scenarios/test-messages-array.json +19 -0
  35. package/scenarios/test-metadata-custom.json +22 -0
  36. package/scenarios/webhook-hubspot-contact.json +40 -0
  37. package/scenarios/webhook-meta-messenger.json +33 -0
  38. package/scenarios/webhook-shopify.json +24 -0
  39. package/scenarios/webhook-slack-message.json +21 -0
  40. package/scenarios/webhook-stripe.json +22 -0
  41. package/scenarios/webhook-twilio-sms.json +21 -0
  42. package/scenarios/webhook-twilio-whatsapp.json +22 -0
  43. package/scenarios/webhook-zendesk-ticket.json +25 -0
  44. package/static/README.md +221 -0
  45. package/static/app.js +1381 -0
  46. package/static/frontend-server-template.js +24 -0
  47. package/static/index.html +340 -0
  48. package/static/runflow-logo.png +0 -0
  49. package/static/style.css +1354 -0
  50. package/static/test-server-template.js +561 -0
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface SystemRequirement {
2
+ name: string;
3
+ command: string;
4
+ version?: string;
5
+ required: boolean;
6
+ installUrl?: string;
7
+ }
8
+ export interface SystemCheckResult {
9
+ available: boolean;
10
+ version?: string;
11
+ error?: string;
12
+ }
13
+ export declare function checkCommand(requirement: SystemRequirement): SystemCheckResult;
14
+ export declare function checkSystemRequirements(requirements: SystemRequirement[]): boolean;
15
+ export declare const STANDARD_REQUIREMENTS: SystemRequirement[];
16
+ export declare const GIT_REQUIREMENTS: SystemRequirement[];
17
+ export declare const DEVELOPMENT_REQUIREMENTS: SystemRequirement[];
18
+ export declare function checkGitWithInstructions(): boolean;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEVELOPMENT_REQUIREMENTS = exports.GIT_REQUIREMENTS = exports.STANDARD_REQUIREMENTS = void 0;
7
+ exports.checkCommand = checkCommand;
8
+ exports.checkSystemRequirements = checkSystemRequirements;
9
+ exports.checkGitWithInstructions = checkGitWithInstructions;
10
+ const child_process_1 = require("child_process");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ function checkCommand(requirement) {
13
+ try {
14
+ const output = (0, child_process_1.execSync)(requirement.command, {
15
+ stdio: 'pipe',
16
+ timeout: 5000
17
+ }).toString().trim();
18
+ return {
19
+ available: true,
20
+ version: output
21
+ };
22
+ }
23
+ catch (error) {
24
+ return {
25
+ available: false,
26
+ error: error instanceof Error ? error.message : 'Command not found'
27
+ };
28
+ }
29
+ }
30
+ function checkSystemRequirements(requirements) {
31
+ console.log(chalk_1.default.blue('Checking system requirements...'));
32
+ let allGood = true;
33
+ for (const req of requirements) {
34
+ const result = checkCommand(req);
35
+ if (result.available) {
36
+ console.log(chalk_1.default.green(`โœ“ ${req.name}`), chalk_1.default.gray(result.version || 'available'));
37
+ }
38
+ else {
39
+ const level = req.required ? 'red' : 'yellow';
40
+ const icon = req.required ? 'โœ—' : 'โš ';
41
+ console.log(chalk_1.default[level](`${icon} ${req.name} not found`));
42
+ if (req.installUrl) {
43
+ console.log(chalk_1.default.gray(` Install: ${req.installUrl}`));
44
+ }
45
+ if (req.required) {
46
+ allGood = false;
47
+ }
48
+ }
49
+ }
50
+ if (!allGood) {
51
+ console.log(chalk_1.default.red('\nโŒ Missing required dependencies'));
52
+ console.log(chalk_1.default.gray('Please install the missing requirements and try again\n'));
53
+ }
54
+ return allGood;
55
+ }
56
+ exports.STANDARD_REQUIREMENTS = [
57
+ {
58
+ name: 'Node.js',
59
+ command: 'node --version',
60
+ required: true,
61
+ installUrl: 'https://nodejs.org'
62
+ },
63
+ {
64
+ name: 'npm',
65
+ command: 'npm --version',
66
+ required: true,
67
+ installUrl: 'https://nodejs.org'
68
+ }
69
+ ];
70
+ exports.GIT_REQUIREMENTS = [
71
+ ...exports.STANDARD_REQUIREMENTS,
72
+ {
73
+ name: 'Git',
74
+ command: 'git --version',
75
+ required: true,
76
+ installUrl: 'https://git-scm.com'
77
+ }
78
+ ];
79
+ exports.DEVELOPMENT_REQUIREMENTS = [
80
+ ...exports.STANDARD_REQUIREMENTS,
81
+ {
82
+ name: 'tsx',
83
+ command: 'npx tsx --version',
84
+ required: false,
85
+ installUrl: 'npm install -g tsx'
86
+ }
87
+ ];
88
+ function checkGitWithInstructions() {
89
+ console.log(chalk_1.default.blue('Checking Git installation...'));
90
+ try {
91
+ const version = (0, child_process_1.execSync)('git --version', { stdio: 'pipe', timeout: 5000 }).toString().trim();
92
+ console.log(chalk_1.default.green(`โœ“ Git ${version.replace('git version ', '')}`));
93
+ return true;
94
+ }
95
+ catch (error) {
96
+ console.log(chalk_1.default.red('โœ— Git not found'));
97
+ console.log(chalk_1.default.gray('\nGit is required for cloning and managing agent repositories.'));
98
+ const platform = process.platform;
99
+ console.log(chalk_1.default.cyan('\nInstallation instructions:'));
100
+ if (platform === 'win32') {
101
+ console.log(chalk_1.default.gray('โ€ข Windows: Download from https://git-scm.com/download/win'));
102
+ console.log(chalk_1.default.gray('โ€ข Or use: winget install Git.Git'));
103
+ console.log(chalk_1.default.gray('โ€ข Or use: choco install git'));
104
+ }
105
+ else if (platform === 'darwin') {
106
+ console.log(chalk_1.default.gray('โ€ข macOS: xcode-select --install'));
107
+ console.log(chalk_1.default.gray('โ€ข Or use Homebrew: brew install git'));
108
+ }
109
+ else {
110
+ console.log(chalk_1.default.gray('โ€ข Ubuntu/Debian: sudo apt-get install git'));
111
+ console.log(chalk_1.default.gray('โ€ข CentOS/RHEL: sudo yum install git'));
112
+ console.log(chalk_1.default.gray('โ€ข Or download from: https://git-scm.com'));
113
+ }
114
+ console.log(chalk_1.default.gray('\nAfter installation, restart your terminal and try again.\n'));
115
+ return false;
116
+ }
117
+ }
118
+ //# sourceMappingURL=system-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-check.js","sourceRoot":"","sources":["../../src/common/system-check.ts"],"names":[],"mappings":"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"}
package/dist/common/ui.js CHANGED
@@ -4,16 +4,25 @@ exports.selectItem = selectItem;
4
4
  const inquirer = require("inquirer");
5
5
  const chalk = require("chalk");
6
6
  async function selectItem(items, message) {
7
- const choices = items.map((item) => ({
7
+ if (items.length > 10) {
8
+ console.log(chalk.gray(`Found ${items.length} items (use โ†‘โ†“ arrows to navigate, Enter to select)`));
9
+ }
10
+ const choices = items.map((item, index) => ({
8
11
  name: `${item.name ?? item.id} ${item.isActive === undefined
9
12
  ? ''
10
13
  : item.isActive
11
- ? chalk.green('(ativo)')
12
- : chalk.red('(inativo)')}`,
14
+ ? chalk.green('(active)')
15
+ : chalk.gray('(inactive)')}`,
13
16
  value: item.id,
14
17
  }));
15
18
  const { id } = await inquirer.prompt([
16
- { type: 'list', name: 'id', message, choices },
19
+ {
20
+ type: 'list',
21
+ name: 'id',
22
+ message,
23
+ choices,
24
+ pageSize: Math.min(15, items.length)
25
+ },
17
26
  ]);
18
27
  return items.find((i) => i.id === id);
19
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/common/ui.ts"],"names":[],"mappings":";;AASA,gCAkBC;AA3BD,qCAAsC;AACtC,+BAAgC;AAQzB,KAAK,UAAU,UAAU,CAC9B,KAAU,EACV,OAAe;IAEf,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAC3B,IAAI,CAAC,QAAQ,KAAK,SAAS;YACzB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACf,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;gBACxB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAC3B,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,EAAE;KACf,CAAC,CAAC,CAAC;IACJ,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAiB;QACnD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;KAC/C,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/common/ui.ts"],"names":[],"mappings":";;AASA,gCA+BC;AAxCD,qCAAsC;AACtC,+BAAgC;AAQzB,KAAK,UAAU,UAAU,CAC9B,KAAU,EACV,OAAe;IAGf,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,qDAAqD,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAC3B,IAAI,CAAC,QAAQ,KAAK,SAAS;YACzB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACf,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAC7B,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,EAAE;KACf,CAAC,CAAC,CAAC;IAEJ,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAiB;QACnD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI;YACV,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;SACrC;KACF,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface ValidationResult {
2
+ isValid: boolean;
3
+ errors: string[];
4
+ warnings: string[];
5
+ mainFile?: string;
6
+ }
7
+ export interface ValidationOptions {
8
+ showLogs?: boolean;
9
+ strict?: boolean;
10
+ }
11
+ export declare function validateRunflowProject(options?: ValidationOptions): ValidationResult;
12
+ export declare function validateForDeploy(): ValidationResult;
13
+ export declare function validateForTest(): ValidationResult;
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.validateRunflowProject = validateRunflowProject;
40
+ exports.validateForDeploy = validateForDeploy;
41
+ exports.validateForTest = validateForTest;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ function validateRunflowProject(options = {}) {
46
+ const { showLogs = true, strict = false } = options;
47
+ const result = {
48
+ isValid: true,
49
+ errors: [],
50
+ warnings: []
51
+ };
52
+ if (showLogs) {
53
+ console.log(chalk_1.default.blue('๐Ÿ” Validating Runflow project...'));
54
+ }
55
+ const mainFile = findMainFile();
56
+ if (!mainFile) {
57
+ result.isValid = false;
58
+ result.errors.push('No main file found (main.ts, index.ts, or agent.ts)');
59
+ if (showLogs) {
60
+ console.log(chalk_1.default.red('โŒ No main file found'));
61
+ console.log(chalk_1.default.gray('๐Ÿ’ก Create a main.ts file with:'));
62
+ console.log(chalk_1.default.gray(' export async function main(input: any): Promise<any> {'));
63
+ console.log(chalk_1.default.gray(' // Your agent logic here'));
64
+ console.log(chalk_1.default.gray(' return { message: "Hello!" };'));
65
+ console.log(chalk_1.default.gray(' }'));
66
+ console.log(chalk_1.default.cyan('\n๐Ÿ“š Documentation: https://docs.runflow.ai'));
67
+ }
68
+ return result;
69
+ }
70
+ result.mainFile = mainFile;
71
+ if (showLogs) {
72
+ console.log(chalk_1.default.green(`โœ… Found main file: ${mainFile}`));
73
+ }
74
+ try {
75
+ const content = fs.readFileSync(path.join(process.cwd(), mainFile), 'utf8');
76
+ const hasMainExport = /export\s+(?:async\s+)?function\s+main\s*\(/m.test(content) ||
77
+ /export\s+const\s+main\s*=\s*(?:async\s+)?\(/m.test(content);
78
+ if (!hasMainExport) {
79
+ result.isValid = false;
80
+ result.errors.push('File does not export a main function');
81
+ if (showLogs) {
82
+ console.log(chalk_1.default.red('โŒ No main function exported'));
83
+ console.log(chalk_1.default.gray('๐Ÿ’ก Add this to your file:'));
84
+ console.log(chalk_1.default.gray(' export async function main(input: any): Promise<any> {'));
85
+ console.log(chalk_1.default.gray(' // Your agent logic'));
86
+ console.log(chalk_1.default.gray(' return { message: "Response" };'));
87
+ console.log(chalk_1.default.gray(' }'));
88
+ }
89
+ }
90
+ else {
91
+ if (showLogs) {
92
+ console.log(chalk_1.default.green('โœ… Exports main function'));
93
+ }
94
+ }
95
+ const hasSDKImport = /from\s+['"]@runflow-ai\/sdk/m.test(content);
96
+ if (!hasSDKImport) {
97
+ if (strict) {
98
+ result.isValid = false;
99
+ result.errors.push('File does not import from @runflow-ai/sdk');
100
+ }
101
+ else {
102
+ result.warnings.push('File does not import from @runflow-ai/sdk');
103
+ }
104
+ if (showLogs) {
105
+ const level = strict ? 'red' : 'yellow';
106
+ const icon = strict ? 'โŒ' : 'โš ๏ธ';
107
+ console.log(chalk_1.default[level](`${icon} No SDK import found`));
108
+ console.log(chalk_1.default.gray('๐Ÿ’ก Add this import:'));
109
+ console.log(chalk_1.default.gray(' import { Agent } from \'@runflow-ai/sdk/core\';'));
110
+ console.log(chalk_1.default.gray(' import { openai } from \'@runflow-ai/sdk/models\';'));
111
+ }
112
+ }
113
+ else {
114
+ if (showLogs) {
115
+ console.log(chalk_1.default.green('โœ… Imports from SDK'));
116
+ }
117
+ }
118
+ const hasSyntaxErrors = checkBasicSyntax(content);
119
+ if (hasSyntaxErrors.length > 0) {
120
+ result.isValid = false;
121
+ result.errors.push(...hasSyntaxErrors);
122
+ if (showLogs) {
123
+ console.log(chalk_1.default.red('โŒ Syntax errors found:'));
124
+ hasSyntaxErrors.forEach(error => {
125
+ console.log(chalk_1.default.gray(` ${error}`));
126
+ });
127
+ }
128
+ }
129
+ else {
130
+ if (showLogs) {
131
+ console.log(chalk_1.default.green('โœ… Basic syntax valid'));
132
+ }
133
+ }
134
+ }
135
+ catch (error) {
136
+ result.isValid = false;
137
+ result.errors.push(`Could not read ${mainFile}: ${error instanceof Error ? error.message : 'Unknown error'}`);
138
+ if (showLogs) {
139
+ console.log(chalk_1.default.red(`โŒ Could not read ${mainFile}`));
140
+ }
141
+ }
142
+ if (showLogs) {
143
+ if (result.isValid) {
144
+ console.log(chalk_1.default.green.bold('โœ… Project validation passed!'));
145
+ }
146
+ else {
147
+ console.log(chalk_1.default.red.bold('โŒ Project validation failed!'));
148
+ console.log(chalk_1.default.gray('\n๐Ÿ“š For help, see: https://github.com/RunFlow-Clients/runflow-template'));
149
+ }
150
+ if (result.warnings.length > 0) {
151
+ console.log(chalk_1.default.yellow('\nโš ๏ธ Warnings:'));
152
+ result.warnings.forEach(warning => {
153
+ console.log(chalk_1.default.gray(` ${warning}`));
154
+ });
155
+ }
156
+ }
157
+ return result;
158
+ }
159
+ function findMainFile() {
160
+ const possibleFiles = ['main.ts', 'index.ts', 'agent.ts'];
161
+ for (const file of possibleFiles) {
162
+ if (fs.existsSync(path.join(process.cwd(), file))) {
163
+ return file;
164
+ }
165
+ }
166
+ return null;
167
+ }
168
+ function checkBasicSyntax(content) {
169
+ const errors = [];
170
+ const openParens = (content.match(/\(/g) || []).length;
171
+ const closeParens = (content.match(/\)/g) || []).length;
172
+ if (openParens !== closeParens) {
173
+ errors.push('Unbalanced parentheses');
174
+ }
175
+ const openBraces = (content.match(/\{/g) || []).length;
176
+ const closeBraces = (content.match(/\}/g) || []).length;
177
+ if (openBraces !== closeBraces) {
178
+ errors.push('Unbalanced braces');
179
+ }
180
+ if (content.includes('import {') && !content.includes('} from')) {
181
+ errors.push('Incomplete import statement');
182
+ }
183
+ return errors;
184
+ }
185
+ function validateForDeploy() {
186
+ return validateRunflowProject({ showLogs: true, strict: true });
187
+ }
188
+ function validateForTest() {
189
+ return validateRunflowProject({ showLogs: false, strict: false });
190
+ }
191
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/common/validator.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,34 +1,71 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
3
19
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
20
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
21
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
22
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7
23
  return c > 3 && r && Object.defineProperty(target, key, r), r;
8
24
  };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
9
42
  Object.defineProperty(exports, "__esModule", { value: true });
10
43
  const common_1 = require("@nestjs/common");
11
44
  const nest_commander_1 = require("nest-commander");
12
45
  const login_command_1 = require("./commands/login/login.command");
46
+ const test_command_1 = require("./commands/test/test.command");
13
47
  const agents_command_1 = require("./commands/agents/agents.command");
14
48
  const users_command_1 = require("./commands/users/users.command");
49
+ const secret_command_1 = require("./commands/secret/secret.command");
15
50
  const credentials_command_1 = require("./commands/credentials/credentials.command");
16
51
  const prompts_command_1 = require("./commands/prompts/prompts.command");
17
52
  const logger_1 = require("./common/logger");
18
53
  const banner_1 = require("./common/banner");
19
54
  const help_1 = require("./common/help");
20
- const fs = require("fs");
21
- const path = require("path");
55
+ const fs = __importStar(require("fs"));
56
+ const path = __importStar(require("path"));
22
57
  let AppModule = class AppModule {
23
58
  };
24
59
  AppModule = __decorate([
25
60
  (0, common_1.Module)({
26
61
  providers: [
27
62
  login_command_1.LoginCommand,
63
+ test_command_1.TestCommand,
28
64
  agents_command_1.AgentsCommand,
29
65
  users_command_1.UsersCommand,
30
66
  credentials_command_1.CredentialsCommand,
31
67
  prompts_command_1.PromptsCommand,
68
+ secret_command_1.SecretCommand,
32
69
  ],
33
70
  })
34
71
  ], AppModule);
@@ -71,7 +108,7 @@ async function bootstrap() {
71
108
  args.splice(outputIdx, 2);
72
109
  }
73
110
  const show = (args.includes('--help') || args.includes('-h') || args.length <= 2) &&
74
- !args.some(arg => ['agents', 'agent', 'users', 'user', 'prompts', 'prompt', 'credentials', 'credential', 'login'].includes(arg));
111
+ !args.some(arg => ['agents', 'agent', 'users', 'user', 'prompts', 'prompt', 'credentials', 'credential', 'login', 'test'].includes(arg));
75
112
  if (show) {
76
113
  (0, banner_1.showBanner)();
77
114
  (0, help_1.showTree)();
@@ -99,7 +136,7 @@ async function bootstrap() {
99
136
  }
100
137
  }
101
138
  function getSuggestions(unknownCommand) {
102
- const availableCommands = ['login', 'agents', 'agent', 'users', 'user', 'prompts', 'prompt', 'credentials', 'credential'];
139
+ const availableCommands = ['login', 'test', 'agents', 'agent', 'users', 'user', 'prompts', 'prompt', 'credentials', 'credential'];
103
140
  const suggestions = [];
104
141
  for (const cmd of availableCommands) {
105
142
  if (cmd.includes(unknownCommand) || unknownCommand.includes(cmd)) {
@@ -107,7 +144,7 @@ function getSuggestions(unknownCommand) {
107
144
  }
108
145
  }
109
146
  if (suggestions.length === 0) {
110
- return ['agents', 'login'];
147
+ return ['test', 'agents', 'login'];
111
148
  }
112
149
  return suggestions.slice(0, 3);
113
150
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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.5",
3
+ "version": "0.2.7",
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",
@@ -23,13 +23,18 @@
23
23
  "@nestjs/core": "^10.0.0",
24
24
  "axios": "^1.6.0",
25
25
  "chalk": "^4.1.2",
26
+ "cors": "^2.8.5",
27
+ "express": "^4.18.0",
26
28
  "figlet": "^1.8.2",
27
29
  "inquirer": "^8.2.6",
28
30
  "nest-commander": "^3.0.0",
29
- "ora": "^6.0.0",
31
+ "ora": "^5.4.1",
32
+ "tsx": "^4.0.0",
30
33
  "yaml": "^2.8.1"
31
34
  },
32
35
  "devDependencies": {
36
+ "@types/cors": "^2.8.0",
37
+ "@types/express": "^4.17.0",
33
38
  "@types/figlet": "^1.7.0",
34
39
  "@types/jest": "^29.0.0",
35
40
  "@types/node": "^20.0.0",
@@ -45,6 +50,8 @@
45
50
  },
46
51
  "files": [
47
52
  "dist/**/*",
53
+ "static/**/*",
54
+ "scenarios/**/*",
48
55
  "README.md",
49
56
  "CLI-DOCS.md"
50
57
  ],
@@ -59,6 +66,6 @@
59
66
  "author": "RunFlow AI",
60
67
  "license": "MIT",
61
68
  "engines": {
62
- "node": ">=14.0.0"
69
+ "node": ">=20.0.0"
63
70
  }
64
71
  }
@@ -0,0 +1,71 @@
1
+ # ๐Ÿงช Test Scenarios
2
+
3
+ Default test scenarios for Runflow CLI test interface.
4
+
5
+ ## ๐Ÿ“ Structure
6
+
7
+ Each scenario is a JSON file with:
8
+ - **name**: Display name
9
+ - **description**: What this scenario tests
10
+ - **category**: Group (E-commerce, Payments, Testing, etc.)
11
+ - **variables**: Customizable values
12
+ - **payload**: The actual JSON sent to your agent
13
+
14
+ ## ๐ŸŽฏ How It Works
15
+
16
+ ### CLI Default Scenarios
17
+ Located in `core/runflow-cli/scenarios/`:
18
+ - Always available
19
+ - Provided by Runflow
20
+ - Cover common integrations
21
+
22
+ ### Project Custom Scenarios
23
+ Located in your project `test-scenarios/`:
24
+ - Project-specific
25
+ - Custom webhooks
26
+ - Your own test cases
27
+
28
+ ## ๐Ÿ“ Creating Custom Scenarios
29
+
30
+ In your project root, create `test-scenarios/my-scenario.json`:
31
+
32
+ ```json
33
+ {
34
+ "name": "My Custom Webhook",
35
+ "description": "Tests my specific integration",
36
+ "category": "Custom",
37
+ "variables": {
38
+ "userId": "user-123",
39
+ "action": "signup"
40
+ },
41
+ "payload": {
42
+ "event": "{{action}}",
43
+ "user": {
44
+ "id": "{{userId}}"
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ ## ๐Ÿ”ง Variable Interpolation
51
+
52
+ Use `{{variableName}}` in payload:
53
+ - String values: `"{{userName}}"` โ†’ `"John"`
54
+ - Numeric values: `{{amount}}` โ†’ `99.99`
55
+ - Nested objects: Supported
56
+
57
+ ## ๐Ÿš€ Using in Test Interface
58
+
59
+ 1. Run `rf test`
60
+ 2. Select "Custom JSON payload" mode
61
+ 3. Choose scenario from dropdown
62
+ 4. Edit variables if needed
63
+ 5. Send test
64
+
65
+ ## ๐Ÿ“š Examples Included
66
+
67
+ - `webhook-shopify.json` - E-commerce webhooks
68
+ - `webhook-stripe.json` - Payment webhooks
69
+ - `memory-conversation.json` - Memory testing with messages[]
70
+
71
+ Create your own in `test-scenarios/` directory!