@agenticflow/cli 0.0.1-beta.13
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.
- package/README.md +125 -0
- package/TECHNICAL_DEBT.md +121 -0
- package/dist/builder/bundler.d.ts +17 -0
- package/dist/builder/bundler.d.ts.map +1 -0
- package/dist/builder/bundler.js +170 -0
- package/dist/builder/bundler.js.map +1 -0
- package/dist/builder/index.d.ts +6 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +6 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/packager.d.ts +41 -0
- package/dist/builder/packager.d.ts.map +1 -0
- package/dist/builder/packager.js +145 -0
- package/dist/builder/packager.js.map +1 -0
- package/dist/builder/security.d.ts +26 -0
- package/dist/builder/security.d.ts.map +1 -0
- package/dist/builder/security.js +204 -0
- package/dist/builder/security.js.map +1 -0
- package/dist/builder/stripper.d.ts +19 -0
- package/dist/builder/stripper.d.ts.map +1 -0
- package/dist/builder/stripper.js +100 -0
- package/dist/builder/stripper.js.map +1 -0
- package/dist/builder/validator.d.ts +33 -0
- package/dist/builder/validator.d.ts.map +1 -0
- package/dist/builder/validator.js +150 -0
- package/dist/builder/validator.js.map +1 -0
- package/dist/cli/build.d.ts +3 -0
- package/dist/cli/build.d.ts.map +1 -0
- package/dist/cli/build.js +167 -0
- package/dist/cli/build.js.map +1 -0
- package/dist/cli/categories.d.ts +40 -0
- package/dist/cli/categories.d.ts.map +1 -0
- package/dist/cli/categories.js +101 -0
- package/dist/cli/categories.js.map +1 -0
- package/dist/cli/dev.d.ts +3 -0
- package/dist/cli/dev.d.ts.map +1 -0
- package/dist/cli/dev.js +226 -0
- package/dist/cli/dev.js.map +1 -0
- package/dist/cli/handler-types.d.ts +34 -0
- package/dist/cli/handler-types.d.ts.map +1 -0
- package/dist/cli/handler-types.js +67 -0
- package/dist/cli/handler-types.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +24 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +264 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/login.d.ts +3 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +10 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/publish.d.ts +5 -0
- package/dist/cli/publish.d.ts.map +1 -0
- package/dist/cli/publish.js +120 -0
- package/dist/cli/publish.js.map +1 -0
- package/dist/cli/template-processor.d.ts +35 -0
- package/dist/cli/template-processor.d.ts.map +1 -0
- package/dist/cli/template-processor.js +82 -0
- package/dist/cli/template-processor.js.map +1 -0
- package/dist/cli/test.d.ts +3 -0
- package/dist/cli/test.d.ts.map +1 -0
- package/dist/cli/test.js +12 -0
- package/dist/cli/test.js.map +1 -0
- package/dist/dev/decorators.d.ts +10 -0
- package/dist/dev/decorators.d.ts.map +1 -0
- package/dist/dev/decorators.js +26 -0
- package/dist/dev/decorators.js.map +1 -0
- package/dist/dev/executor.d.ts +22 -0
- package/dist/dev/executor.d.ts.map +1 -0
- package/dist/dev/executor.js +243 -0
- package/dist/dev/executor.js.map +1 -0
- package/dist/dev/extractor.d.ts +15 -0
- package/dist/dev/extractor.d.ts.map +1 -0
- package/dist/dev/extractor.js +224 -0
- package/dist/dev/extractor.js.map +1 -0
- package/dist/dev/index.d.ts +3 -0
- package/dist/dev/index.d.ts.map +1 -0
- package/dist/dev/index.js +4 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/dev/server.d.ts +91 -0
- package/dist/dev/server.d.ts.map +1 -0
- package/dist/dev/server.js +507 -0
- package/dist/dev/server.js.map +1 -0
- package/dist/dev/ui-dist/assets/index-BkKxvzfq.js +246 -0
- package/dist/dev/ui-dist/assets/index-DTO1qt7B.css +1 -0
- package/dist/dev/ui-dist/index.html +14 -0
- package/dist/dev/ui-dist/monkey.svg +3 -0
- package/dist/dev/ui-dist/package.json +27 -0
- package/dist/templates/_shared/.env.template +16 -0
- package/dist/templates/_shared/.gitignore.template +46 -0
- package/dist/templates/_shared/LICENSE.template +21 -0
- package/dist/templates/_shared/src/utils.ts.template +29 -0
- package/dist/templates/_shared/tsconfig.json.template +23 -0
- package/dist/templates/stateful/manifest.json.template +63 -0
- package/dist/templates/stateful/package.json.template +23 -0
- package/dist/templates/stateful/src/index.ts.template +147 -0
- package/dist/templates/stateless/docs/README.md.template +102 -0
- package/dist/templates/stateless/manifest.json.template +63 -0
- package/dist/templates/stateless/package.json.template +23 -0
- package/dist/templates/stateless/src/index.ts.template +103 -0
- package/package.json +51 -0
- package/vitest.config.ts +15 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
/**
|
|
3
|
+
* Extract @TestValue decorator values from handler source code
|
|
4
|
+
* This uses regex-based parsing for simplicity - a proper implementation
|
|
5
|
+
* would use TypeScript Compiler API
|
|
6
|
+
*/
|
|
7
|
+
export function extractTestValuesFromSource(sourcePath) {
|
|
8
|
+
if (!fs.existsSync(sourcePath)) {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
const source = fs.readFileSync(sourcePath, 'utf-8');
|
|
12
|
+
const testValues = {};
|
|
13
|
+
// Match @TestValue decorators with their values
|
|
14
|
+
// Pattern: @TestValue(value) followed by property declaration
|
|
15
|
+
const testValuePattern = /@TestValue\s*\(\s*([\s\S]*?)\s*\)\s*(?:\/\/[^\n]*)?\s*\n\s*(\w+)\s*[!?]?\s*:/g;
|
|
16
|
+
let match;
|
|
17
|
+
while ((match = testValuePattern.exec(source)) !== null) {
|
|
18
|
+
const valueExpression = match[1].trim();
|
|
19
|
+
const propertyName = match[2];
|
|
20
|
+
try {
|
|
21
|
+
// Try to evaluate simple values
|
|
22
|
+
const value = evaluateExpression(valueExpression);
|
|
23
|
+
testValues[propertyName] = value;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// If we can't evaluate, store as string
|
|
27
|
+
testValues[propertyName] = valueExpression;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return testValues;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Evaluate simple JavaScript expressions
|
|
34
|
+
*/
|
|
35
|
+
function evaluateExpression(expr) {
|
|
36
|
+
// Handle process.env.XXX
|
|
37
|
+
if (expr.startsWith('process.env.')) {
|
|
38
|
+
const envVar = expr.replace('process.env.', '').replace(/[!?]$/, '').trim();
|
|
39
|
+
return process.env[envVar] || `[env:${envVar}]`;
|
|
40
|
+
}
|
|
41
|
+
// Handle process.env['XXX'] or process.env["XXX"]
|
|
42
|
+
const envBracketMatch = expr.match(/process\.env\[['"](.+?)['"]\]/);
|
|
43
|
+
if (envBracketMatch) {
|
|
44
|
+
return process.env[envBracketMatch[1]] || `[env:${envBracketMatch[1]}]`;
|
|
45
|
+
}
|
|
46
|
+
// Handle fallback expressions: process.env.X || 'fallback'
|
|
47
|
+
const fallbackMatch = expr.match(/process\.env\.(\w+)\s*\|\|\s*['"](.+?)['"]/);
|
|
48
|
+
if (fallbackMatch) {
|
|
49
|
+
return process.env[fallbackMatch[1]] || fallbackMatch[2];
|
|
50
|
+
}
|
|
51
|
+
// Handle string literals
|
|
52
|
+
if ((expr.startsWith("'") && expr.endsWith("'")) ||
|
|
53
|
+
(expr.startsWith('"') && expr.endsWith('"')) ||
|
|
54
|
+
(expr.startsWith('`') && expr.endsWith('`'))) {
|
|
55
|
+
return expr.slice(1, -1);
|
|
56
|
+
}
|
|
57
|
+
// Handle numbers
|
|
58
|
+
if (!isNaN(Number(expr))) {
|
|
59
|
+
return Number(expr);
|
|
60
|
+
}
|
|
61
|
+
// Handle booleans
|
|
62
|
+
if (expr === 'true')
|
|
63
|
+
return true;
|
|
64
|
+
if (expr === 'false')
|
|
65
|
+
return false;
|
|
66
|
+
// Handle null/undefined
|
|
67
|
+
if (expr === 'null')
|
|
68
|
+
return null;
|
|
69
|
+
if (expr === 'undefined')
|
|
70
|
+
return undefined;
|
|
71
|
+
// Handle objects (simple ones)
|
|
72
|
+
if (expr.startsWith('{') && expr.endsWith('}')) {
|
|
73
|
+
try {
|
|
74
|
+
// Replace single quotes with double quotes for JSON parsing
|
|
75
|
+
const jsonStr = expr.replace(/'/g, '"').replace(/(\w+):/g, '"$1":');
|
|
76
|
+
return JSON.parse(jsonStr);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return expr;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Handle arrays (simple ones)
|
|
83
|
+
if (expr.startsWith('[') && expr.endsWith(']')) {
|
|
84
|
+
try {
|
|
85
|
+
const jsonStr = expr.replace(/'/g, '"');
|
|
86
|
+
return JSON.parse(jsonStr);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return expr;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Return as-is if we can't evaluate
|
|
93
|
+
return expr;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Extract handler metadata from source
|
|
97
|
+
*/
|
|
98
|
+
export function extractHandlerMetadata(sourcePath) {
|
|
99
|
+
if (!fs.existsSync(sourcePath)) {
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
const source = fs.readFileSync(sourcePath, 'utf-8');
|
|
103
|
+
const metadata = {};
|
|
104
|
+
// Extract @Handler decorator
|
|
105
|
+
const handlerMatch = source.match(/@Handler\s*\(\s*\{([\s\S]*?)\}\s*\)/);
|
|
106
|
+
if (handlerMatch) {
|
|
107
|
+
try {
|
|
108
|
+
// Simple parsing of the handler config
|
|
109
|
+
const configStr = handlerMatch[1];
|
|
110
|
+
const typeMatch = configStr.match(/type\s*:\s*['"](.+?)['"]/);
|
|
111
|
+
const nameMatch = configStr.match(/name\s*:\s*['"](.+?)['"]/);
|
|
112
|
+
const categoryMatch = configStr.match(/category\s*:\s*['"](.+?)['"]/);
|
|
113
|
+
if (typeMatch)
|
|
114
|
+
metadata.type = typeMatch[1];
|
|
115
|
+
if (nameMatch)
|
|
116
|
+
metadata.name = nameMatch[1];
|
|
117
|
+
if (categoryMatch)
|
|
118
|
+
metadata.category = categoryMatch[1];
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Ignore parsing errors
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Extract class name
|
|
125
|
+
const classMatch = source.match(/export\s+class\s+(\w+)/);
|
|
126
|
+
if (classMatch) {
|
|
127
|
+
metadata.className = classMatch[1];
|
|
128
|
+
}
|
|
129
|
+
return metadata;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Extract @Input decorator metadata
|
|
133
|
+
*/
|
|
134
|
+
export function extractInputMetadata(sourcePath) {
|
|
135
|
+
if (!fs.existsSync(sourcePath)) {
|
|
136
|
+
return {};
|
|
137
|
+
}
|
|
138
|
+
const source = fs.readFileSync(sourcePath, 'utf-8');
|
|
139
|
+
const inputs = {};
|
|
140
|
+
// Split source into lines for easier processing
|
|
141
|
+
const lines = source.split('\n');
|
|
142
|
+
let currentInputConfig = null;
|
|
143
|
+
let braceCount = 0;
|
|
144
|
+
let configStartLine = -1;
|
|
145
|
+
for (let i = 0; i < lines.length; i++) {
|
|
146
|
+
const line = lines[i];
|
|
147
|
+
const trimmedLine = line.trim();
|
|
148
|
+
// Skip commented lines (both // and block comments)
|
|
149
|
+
if (trimmedLine.startsWith('//') || trimmedLine.startsWith('*') || trimmedLine.startsWith('/*')) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
// Check for @Input decorator start (not in a comment)
|
|
153
|
+
const inputMatch = line.match(/^\s*@Input\s*\(\s*\{/);
|
|
154
|
+
if (inputMatch && currentInputConfig === null) {
|
|
155
|
+
currentInputConfig = '';
|
|
156
|
+
braceCount = 0;
|
|
157
|
+
configStartLine = i;
|
|
158
|
+
}
|
|
159
|
+
// If we're collecting an @Input config
|
|
160
|
+
if (currentInputConfig !== null) {
|
|
161
|
+
currentInputConfig += line + '\n';
|
|
162
|
+
// Count braces
|
|
163
|
+
for (const char of line) {
|
|
164
|
+
if (char === '{')
|
|
165
|
+
braceCount++;
|
|
166
|
+
if (char === '}')
|
|
167
|
+
braceCount--;
|
|
168
|
+
}
|
|
169
|
+
// If braces are balanced, we've found the end of the config
|
|
170
|
+
if (braceCount === 0) {
|
|
171
|
+
// Now find the property name - look ahead for the property declaration
|
|
172
|
+
// It could be on the same line after }) or on following lines
|
|
173
|
+
// Skip any other decorators like @TestValue
|
|
174
|
+
let propertyName = null;
|
|
175
|
+
for (let j = i; j < Math.min(i + 10, lines.length); j++) {
|
|
176
|
+
const searchLine = lines[j];
|
|
177
|
+
const searchTrimmed = searchLine.trim();
|
|
178
|
+
// Skip commented lines
|
|
179
|
+
if (searchTrimmed.startsWith('//') || searchTrimmed.startsWith('*') || searchTrimmed.startsWith('/*')) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
// Skip decorator lines
|
|
183
|
+
if (searchTrimmed.match(/^@\w+/))
|
|
184
|
+
continue;
|
|
185
|
+
// Look for property declaration: propertyName!: or propertyName?:
|
|
186
|
+
const propMatch = searchLine.match(/^\s*(\w+)\s*[!?]?\s*:/);
|
|
187
|
+
if (propMatch) {
|
|
188
|
+
propertyName = propMatch[1];
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (propertyName) {
|
|
193
|
+
const inputMeta = {};
|
|
194
|
+
// Extract common properties from the config string
|
|
195
|
+
const typeMatch = currentInputConfig.match(/type\s*:\s*['"](.+?)['"]/);
|
|
196
|
+
const sourceMatch = currentInputConfig.match(/source\s*:\s*['"](.+?)['"]/);
|
|
197
|
+
const requiredMatch = currentInputConfig.match(/required\s*:\s*(true|false)/);
|
|
198
|
+
const secretMatch = currentInputConfig.match(/secret\s*:\s*(true|false)/);
|
|
199
|
+
const descMatch = currentInputConfig.match(/description\s*:\s*['"](.+?)['"]/);
|
|
200
|
+
const keyMatch = currentInputConfig.match(/key\s*:\s*['"](.+?)['"]/);
|
|
201
|
+
const vaultPathMatch = currentInputConfig.match(/vaultPath\s*:\s*['"](.+?)['"]/);
|
|
202
|
+
if (typeMatch)
|
|
203
|
+
inputMeta.type = typeMatch[1];
|
|
204
|
+
if (sourceMatch)
|
|
205
|
+
inputMeta.source = sourceMatch[1];
|
|
206
|
+
if (requiredMatch)
|
|
207
|
+
inputMeta.required = requiredMatch[1] === 'true';
|
|
208
|
+
if (secretMatch)
|
|
209
|
+
inputMeta.secret = secretMatch[1] === 'true';
|
|
210
|
+
if (descMatch)
|
|
211
|
+
inputMeta.description = descMatch[1];
|
|
212
|
+
if (keyMatch)
|
|
213
|
+
inputMeta.key = keyMatch[1];
|
|
214
|
+
if (vaultPathMatch)
|
|
215
|
+
inputMeta.vaultPath = vaultPathMatch[1];
|
|
216
|
+
inputs[propertyName] = inputMeta;
|
|
217
|
+
}
|
|
218
|
+
currentInputConfig = null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return inputs;
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/dev/extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
export interface HandlerManifest {
|
|
3
|
+
id: string;
|
|
4
|
+
version: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
longDescription?: string;
|
|
8
|
+
author: {
|
|
9
|
+
name: string;
|
|
10
|
+
email: string;
|
|
11
|
+
};
|
|
12
|
+
handler: {
|
|
13
|
+
type: string;
|
|
14
|
+
category: string;
|
|
15
|
+
stateful: boolean;
|
|
16
|
+
timeout: number;
|
|
17
|
+
retryable: boolean;
|
|
18
|
+
};
|
|
19
|
+
inputs: Array<{
|
|
20
|
+
property: string;
|
|
21
|
+
type: string;
|
|
22
|
+
source: string;
|
|
23
|
+
required?: boolean;
|
|
24
|
+
secret?: boolean;
|
|
25
|
+
default?: any;
|
|
26
|
+
description?: string;
|
|
27
|
+
placeholder?: string;
|
|
28
|
+
enum?: string[];
|
|
29
|
+
min?: number;
|
|
30
|
+
max?: number;
|
|
31
|
+
}>;
|
|
32
|
+
outputs: Array<{
|
|
33
|
+
property: string;
|
|
34
|
+
type: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
}>;
|
|
37
|
+
visual?: {
|
|
38
|
+
icon?: string;
|
|
39
|
+
color?: string;
|
|
40
|
+
tags?: string[];
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export interface TestResult {
|
|
44
|
+
success: boolean;
|
|
45
|
+
duration: number;
|
|
46
|
+
output?: any;
|
|
47
|
+
error?: {
|
|
48
|
+
message: string;
|
|
49
|
+
stack?: string;
|
|
50
|
+
code?: string;
|
|
51
|
+
};
|
|
52
|
+
logs: string[];
|
|
53
|
+
timestamp: string;
|
|
54
|
+
}
|
|
55
|
+
export interface DevServerOptions {
|
|
56
|
+
port: number;
|
|
57
|
+
uiPort: number;
|
|
58
|
+
projectDir: string;
|
|
59
|
+
open: boolean;
|
|
60
|
+
}
|
|
61
|
+
export declare class DevServer extends EventEmitter {
|
|
62
|
+
private options;
|
|
63
|
+
private app;
|
|
64
|
+
private httpServer;
|
|
65
|
+
private wss;
|
|
66
|
+
private clients;
|
|
67
|
+
private manifest;
|
|
68
|
+
private testValues;
|
|
69
|
+
private projectDir;
|
|
70
|
+
private handlerMetadata;
|
|
71
|
+
private inputMetadata;
|
|
72
|
+
private testHistory;
|
|
73
|
+
constructor(options: DevServerOptions);
|
|
74
|
+
private setupMiddleware;
|
|
75
|
+
private setupRoutes;
|
|
76
|
+
private formatSize;
|
|
77
|
+
private runValidation;
|
|
78
|
+
private setupWebSocket;
|
|
79
|
+
/**
|
|
80
|
+
* Merge manifest.json inputs with dynamically extracted inputs from source code.
|
|
81
|
+
* This ensures all @Input decorated properties are shown in the UI, even if
|
|
82
|
+
* they're not in manifest.json yet.
|
|
83
|
+
*/
|
|
84
|
+
private getMergedManifest;
|
|
85
|
+
broadcast(type: string, data: any): void;
|
|
86
|
+
loadHandler(): Promise<void>;
|
|
87
|
+
reloadHandler(): Promise<void>;
|
|
88
|
+
start(): Promise<void>;
|
|
89
|
+
stop(): void;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/dev/server.ts"],"names":[],"mappings":"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"}
|