dynamic-api-workflow 1.0.0
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 +287 -0
- package/dist/engine/cli.d.ts +3 -0
- package/dist/engine/cli.d.ts.map +1 -0
- package/dist/engine/cli.js +4 -0
- package/dist/engine/cli.js.map +1 -0
- package/dist/engine/config/llm-costs.d.ts +16 -0
- package/dist/engine/config/llm-costs.d.ts.map +1 -0
- package/dist/engine/config/llm-costs.js +38 -0
- package/dist/engine/config/llm-costs.js.map +1 -0
- package/dist/engine/core/node-executor.d.ts +8 -0
- package/dist/engine/core/node-executor.d.ts.map +1 -0
- package/dist/engine/core/node-executor.js +144 -0
- package/dist/engine/core/node-executor.js.map +1 -0
- package/dist/engine/core/validator.d.ts +6 -0
- package/dist/engine/core/validator.d.ts.map +1 -0
- package/dist/engine/core/validator.js +473 -0
- package/dist/engine/core/validator.js.map +1 -0
- package/dist/engine/core/workflow-executor.d.ts +6 -0
- package/dist/engine/core/workflow-executor.d.ts.map +1 -0
- package/dist/engine/core/workflow-executor.js +186 -0
- package/dist/engine/core/workflow-executor.js.map +1 -0
- package/dist/engine/core/workflow-loader.d.ts +26 -0
- package/dist/engine/core/workflow-loader.d.ts.map +1 -0
- package/dist/engine/core/workflow-loader.js +257 -0
- package/dist/engine/core/workflow-loader.js.map +1 -0
- package/dist/engine/index.d.ts +5 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +70 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/nodes/code-node.d.ts +6 -0
- package/dist/engine/nodes/code-node.d.ts.map +1 -0
- package/dist/engine/nodes/code-node.js +70 -0
- package/dist/engine/nodes/code-node.js.map +1 -0
- package/dist/engine/nodes/llm-node.d.ts +6 -0
- package/dist/engine/nodes/llm-node.d.ts.map +1 -0
- package/dist/engine/nodes/llm-node.js +164 -0
- package/dist/engine/nodes/llm-node.js.map +1 -0
- package/dist/engine/nodes/passthrough-node.d.ts +6 -0
- package/dist/engine/nodes/passthrough-node.d.ts.map +1 -0
- package/dist/engine/nodes/passthrough-node.js +13 -0
- package/dist/engine/nodes/passthrough-node.js.map +1 -0
- package/dist/engine/nodes/reduce-node.d.ts +6 -0
- package/dist/engine/nodes/reduce-node.d.ts.map +1 -0
- package/dist/engine/nodes/reduce-node.js +44 -0
- package/dist/engine/nodes/reduce-node.js.map +1 -0
- package/dist/engine/nodes/split-node.d.ts +10 -0
- package/dist/engine/nodes/split-node.d.ts.map +1 -0
- package/dist/engine/nodes/split-node.js +51 -0
- package/dist/engine/nodes/split-node.js.map +1 -0
- package/dist/engine/providers/gemini.d.ts +27 -0
- package/dist/engine/providers/gemini.d.ts.map +1 -0
- package/dist/engine/providers/gemini.js +163 -0
- package/dist/engine/providers/gemini.js.map +1 -0
- package/dist/engine/providers/grok.d.ts +28 -0
- package/dist/engine/providers/grok.d.ts.map +1 -0
- package/dist/engine/providers/grok.js +164 -0
- package/dist/engine/providers/grok.js.map +1 -0
- package/dist/engine/providers/registry.d.ts +33 -0
- package/dist/engine/providers/registry.d.ts.map +1 -0
- package/dist/engine/providers/registry.js +51 -0
- package/dist/engine/providers/registry.js.map +1 -0
- package/dist/engine/router.d.ts +8 -0
- package/dist/engine/router.d.ts.map +1 -0
- package/dist/engine/router.js +79 -0
- package/dist/engine/router.js.map +1 -0
- package/dist/engine/scripts/cleanup-port.d.ts +2 -0
- package/dist/engine/scripts/cleanup-port.d.ts.map +1 -0
- package/dist/engine/scripts/cleanup-port.js +54 -0
- package/dist/engine/scripts/cleanup-port.js.map +1 -0
- package/dist/engine/scripts/create-endpoint.d.ts +2 -0
- package/dist/engine/scripts/create-endpoint.d.ts.map +1 -0
- package/dist/engine/scripts/create-endpoint.js +83 -0
- package/dist/engine/scripts/create-endpoint.js.map +1 -0
- package/dist/engine/scripts/scan-deps.d.ts +2 -0
- package/dist/engine/scripts/scan-deps.d.ts.map +1 -0
- package/dist/engine/scripts/scan-deps.js +112 -0
- package/dist/engine/scripts/scan-deps.js.map +1 -0
- package/dist/engine/scripts/validate-workflows.d.ts +3 -0
- package/dist/engine/scripts/validate-workflows.d.ts.map +1 -0
- package/dist/engine/scripts/validate-workflows.js +75 -0
- package/dist/engine/scripts/validate-workflows.js.map +1 -0
- package/dist/engine/server.d.ts +10 -0
- package/dist/engine/server.d.ts.map +1 -0
- package/dist/engine/server.js +92 -0
- package/dist/engine/server.js.map +1 -0
- package/dist/engine/types/index.d.ts +304 -0
- package/dist/engine/types/index.d.ts.map +1 -0
- package/dist/engine/types/index.js +24 -0
- package/dist/engine/types/index.js.map +1 -0
- package/dist/engine/utils/file-cache.d.ts +31 -0
- package/dist/engine/utils/file-cache.d.ts.map +1 -0
- package/dist/engine/utils/file-cache.js +68 -0
- package/dist/engine/utils/file-cache.js.map +1 -0
- package/dist/engine/utils/file-resolver.d.ts +21 -0
- package/dist/engine/utils/file-resolver.d.ts.map +1 -0
- package/dist/engine/utils/file-resolver.js +33 -0
- package/dist/engine/utils/file-resolver.js.map +1 -0
- package/dist/engine/utils/jsonpath.d.ts +13 -0
- package/dist/engine/utils/jsonpath.d.ts.map +1 -0
- package/dist/engine/utils/jsonpath.js +38 -0
- package/dist/engine/utils/jsonpath.js.map +1 -0
- package/dist/engine/utils/logger.d.ts +11 -0
- package/dist/engine/utils/logger.d.ts.map +1 -0
- package/dist/engine/utils/logger.js +24 -0
- package/dist/engine/utils/logger.js.map +1 -0
- package/dist/engine/utils/metrics.d.ts +6 -0
- package/dist/engine/utils/metrics.d.ts.map +1 -0
- package/dist/engine/utils/metrics.js +82 -0
- package/dist/engine/utils/metrics.js.map +1 -0
- package/dist/engine/utils/schema-validator.d.ts +10 -0
- package/dist/engine/utils/schema-validator.d.ts.map +1 -0
- package/dist/engine/utils/schema-validator.js +61 -0
- package/dist/engine/utils/schema-validator.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import ts from 'typescript';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
import { builtinModules } from 'module';
|
|
6
|
+
const SCAN_DIRS = ['./src/source/code'];
|
|
7
|
+
const PACKAGE_JSON_PATH = './package.json';
|
|
8
|
+
const TSCONFIG_PATH = './tsconfig.json';
|
|
9
|
+
/**
|
|
10
|
+
* Scan a file for imports
|
|
11
|
+
*/
|
|
12
|
+
function getImports(filePath) {
|
|
13
|
+
const fileContent = fs.readFileSync(filePath, 'utf8');
|
|
14
|
+
const sourceFile = ts.createSourceFile(filePath, fileContent, ts.ScriptTarget.Latest, true);
|
|
15
|
+
const imports = [];
|
|
16
|
+
function visit(node) {
|
|
17
|
+
if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {
|
|
18
|
+
if (node.moduleSpecifier && ts.isStringLiteral(node.moduleSpecifier)) {
|
|
19
|
+
imports.push(node.moduleSpecifier.text);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ts.forEachChild(node, visit);
|
|
23
|
+
}
|
|
24
|
+
visit(sourceFile);
|
|
25
|
+
return imports;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get all TS files in a directory recursively
|
|
29
|
+
*/
|
|
30
|
+
function getFiles(dir) {
|
|
31
|
+
const files = [];
|
|
32
|
+
const items = fs.readdirSync(dir, { withFileTypes: true });
|
|
33
|
+
for (const item of items) {
|
|
34
|
+
if (item.isDirectory()) {
|
|
35
|
+
files.push(...getFiles(path.join(dir, item.name)));
|
|
36
|
+
}
|
|
37
|
+
else if (item.name.endsWith('.ts')) {
|
|
38
|
+
files.push(path.join(dir, item.name));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return files;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Main function
|
|
45
|
+
*/
|
|
46
|
+
async function main() {
|
|
47
|
+
const args = process.argv.slice(2);
|
|
48
|
+
const dryRun = args.includes('--dry-run');
|
|
49
|
+
console.log('🔍 Scanning code-nodes for dependencies...');
|
|
50
|
+
// Load package.json
|
|
51
|
+
const packageJson = JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH, 'utf8'));
|
|
52
|
+
const dependencies = new Set(Object.keys(packageJson.dependencies || {}));
|
|
53
|
+
const devDependencies = new Set(Object.keys(packageJson.devDependencies || {}));
|
|
54
|
+
// Load tsconfig for paths
|
|
55
|
+
let paths = {};
|
|
56
|
+
if (fs.existsSync(TSCONFIG_PATH)) {
|
|
57
|
+
const tsconfig = JSON.parse(fs.readFileSync(TSCONFIG_PATH, 'utf8'));
|
|
58
|
+
paths = tsconfig.compilerOptions?.paths || {};
|
|
59
|
+
}
|
|
60
|
+
const pathAliases = Object.keys(paths).map(p => p.replace(/\/\*$/, ''));
|
|
61
|
+
// Scan files
|
|
62
|
+
const files = SCAN_DIRS.flatMap(dir => fs.existsSync(dir) ? getFiles(dir) : []);
|
|
63
|
+
const detectedDeps = new Set();
|
|
64
|
+
for (const file of files) {
|
|
65
|
+
const imports = getImports(file);
|
|
66
|
+
for (let imp of imports) {
|
|
67
|
+
// Filter relative imports
|
|
68
|
+
if (imp.startsWith('.'))
|
|
69
|
+
continue;
|
|
70
|
+
// Filter path aliases
|
|
71
|
+
if (pathAliases.some(alias => imp === alias || imp.startsWith(alias + '/')))
|
|
72
|
+
continue;
|
|
73
|
+
// Filter built-ins
|
|
74
|
+
if (builtinModules.includes(imp) || imp.startsWith('node:'))
|
|
75
|
+
continue;
|
|
76
|
+
// Extract package name (handle scoped packages)
|
|
77
|
+
let pkgName = '';
|
|
78
|
+
if (imp.startsWith('@')) {
|
|
79
|
+
const parts = imp.split('/');
|
|
80
|
+
pkgName = `${parts[0]}/${parts[1]}`;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
pkgName = imp.split('/')[0];
|
|
84
|
+
}
|
|
85
|
+
if (pkgName) {
|
|
86
|
+
detectedDeps.add(pkgName);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const missingDeps = Array.from(detectedDeps).filter(d => !dependencies.has(d) && !devDependencies.has(d));
|
|
91
|
+
if (missingDeps.length === 0) {
|
|
92
|
+
console.log('✅ All dependencies are present in package.json');
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
console.log(`📦 Found ${missingDeps.length} missing dependencies:`);
|
|
96
|
+
missingDeps.forEach(d => console.log(` - ${d}`));
|
|
97
|
+
if (dryRun) {
|
|
98
|
+
console.log('\n⚠️ Dry run: skipping installation.');
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
console.log('\nInstalling missing dependencies...');
|
|
102
|
+
try {
|
|
103
|
+
execSync(`npm install ${missingDeps.join(' ')}`, { stdio: 'inherit' });
|
|
104
|
+
console.log('✅ Dependencies installed successfully.');
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
console.error('❌ Failed to install dependencies:', error instanceof Error ? error.message : String(error));
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
main().catch(console.error);
|
|
112
|
+
//# sourceMappingURL=scan-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-deps.js","sourceRoot":"","sources":["../../../engine/scripts/scan-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,SAAS,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACxC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC;;GAEG;AACH,SAAS,UAAU,CAAC,QAAgB;IAChC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAClC,QAAQ,EACR,WAAW,EACX,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,CACP,CAAC;IAEF,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,SAAS,KAAK,CAAC,IAAa;QACxB,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAC;IAClB,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1D,oBAAoB;IACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhF,0BAA0B;IAC1B,IAAI,KAAK,GAA6B,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QACpE,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAExE,aAAa;IACb,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;YACtB,0BAA0B;YAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAElC,sBAAsB;YACtB,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;gBAAE,SAAS;YAEtF,mBAAmB;YACnB,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YAEtE,gDAAgD;YAChD,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACV,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CACvD,CAAC;IAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,MAAM,wBAAwB,CAAC,CAAC;IACpE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnD,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,IAAI,CAAC;QACD,QAAQ,CAAC,eAAe,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-workflows.d.ts","sourceRoot":"","sources":["../../../engine/scripts/validate-workflows.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import dotenv from 'dotenv';
|
|
3
|
+
import { loadAllWorkflows } from '../core/workflow-loader.js';
|
|
4
|
+
import { validateWorkflow } from '../core/validator.js';
|
|
5
|
+
import { providerRegistry } from '../providers/registry.js';
|
|
6
|
+
import { GeminiProvider } from '../providers/gemini.js';
|
|
7
|
+
import { GrokProvider } from '../providers/grok.js';
|
|
8
|
+
dotenv.config();
|
|
9
|
+
async function main() {
|
|
10
|
+
console.log('🔍 Validating workflows...\n');
|
|
11
|
+
try {
|
|
12
|
+
// Register providers (needed for provider validation)
|
|
13
|
+
providerRegistry.register(new GeminiProvider());
|
|
14
|
+
providerRegistry.register(new GrokProvider());
|
|
15
|
+
// Load workflows
|
|
16
|
+
const workflows = await loadAllWorkflows();
|
|
17
|
+
if (workflows.size === 0) {
|
|
18
|
+
console.log('⚠️ No workflows found\n');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log(`Found ${workflows.size} workflow(s)\n`);
|
|
22
|
+
let totalErrors = 0;
|
|
23
|
+
let totalWarnings = 0;
|
|
24
|
+
// Validate each workflow
|
|
25
|
+
for (const [route, workflow] of workflows.entries()) {
|
|
26
|
+
const validation = await validateWorkflow(workflow);
|
|
27
|
+
if (!validation.valid) {
|
|
28
|
+
console.log(`❌ ${route}`);
|
|
29
|
+
if (validation.errors) {
|
|
30
|
+
for (const error of validation.errors) {
|
|
31
|
+
console.log(` ERROR [${error.code}]: ${error.message}`);
|
|
32
|
+
if (error.path) {
|
|
33
|
+
console.log(` at ${error.path}`);
|
|
34
|
+
}
|
|
35
|
+
totalErrors++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.log(`✅ ${route}`);
|
|
41
|
+
}
|
|
42
|
+
if (validation.warnings && validation.warnings.length > 0) {
|
|
43
|
+
for (const warning of validation.warnings) {
|
|
44
|
+
console.log(` ⚠️ WARNING [${warning.code}]: ${warning.message}`);
|
|
45
|
+
if (warning.path) {
|
|
46
|
+
console.log(` at ${warning.path}`);
|
|
47
|
+
}
|
|
48
|
+
totalWarnings++;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
console.log('');
|
|
52
|
+
}
|
|
53
|
+
// Summary
|
|
54
|
+
console.log('─'.repeat(60));
|
|
55
|
+
console.log(`Summary: ${workflows.size} workflows validated`);
|
|
56
|
+
console.log(` Errors: ${totalErrors}`);
|
|
57
|
+
console.log(` Warnings: ${totalWarnings}`);
|
|
58
|
+
console.log('─'.repeat(60));
|
|
59
|
+
if (totalErrors > 0) {
|
|
60
|
+
console.log('\n❌ Validation failed');
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log('\n✅ All workflows are valid');
|
|
65
|
+
process.exit(0);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.error('\n❌ Validation failed with error:');
|
|
70
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
main();
|
|
75
|
+
//# sourceMappingURL=validate-workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-workflows.js","sourceRoot":"","sources":["../../../engine/scripts/validate-workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Express } from 'express';
|
|
2
|
+
/**
|
|
3
|
+
* Create and configure Express server
|
|
4
|
+
*/
|
|
5
|
+
export declare function createServer(): Express;
|
|
6
|
+
/**
|
|
7
|
+
* Start the server
|
|
8
|
+
*/
|
|
9
|
+
export declare function startServer(app: Express, port: number): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../engine/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAkEtC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BrE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import logger from './utils/logger.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create and configure Express server
|
|
5
|
+
*/
|
|
6
|
+
export function createServer() {
|
|
7
|
+
const app = express();
|
|
8
|
+
// JSON body parser
|
|
9
|
+
app.use(express.json({ limit: '10mb' }));
|
|
10
|
+
// Request logging middleware
|
|
11
|
+
app.use((req, res, next) => {
|
|
12
|
+
const start = Date.now();
|
|
13
|
+
res.on('finish', () => {
|
|
14
|
+
const duration = Date.now() - start;
|
|
15
|
+
logger.info('Request completed', {
|
|
16
|
+
method: req.method,
|
|
17
|
+
path: req.path,
|
|
18
|
+
status: res.statusCode,
|
|
19
|
+
duration: `${duration}ms`,
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
next();
|
|
23
|
+
});
|
|
24
|
+
// CORS support
|
|
25
|
+
app.use((req, res, next) => {
|
|
26
|
+
res.header('Access-Control-Allow-Origin', '*');
|
|
27
|
+
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
|
|
28
|
+
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
|
|
29
|
+
if (req.method === 'OPTIONS') {
|
|
30
|
+
res.sendStatus(200);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
next();
|
|
34
|
+
});
|
|
35
|
+
// Health check endpoint
|
|
36
|
+
app.get('/health', (_req, res) => {
|
|
37
|
+
res.status(200).json({
|
|
38
|
+
status: 'ok',
|
|
39
|
+
timestamp: new Date().toISOString(),
|
|
40
|
+
uptime: process.uptime(),
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
// Error handling middleware
|
|
44
|
+
app.use((error, req, res, _next) => {
|
|
45
|
+
logger.error('Unhandled error', {
|
|
46
|
+
method: req.method,
|
|
47
|
+
path: req.path,
|
|
48
|
+
error: error.message,
|
|
49
|
+
stack: error.stack,
|
|
50
|
+
});
|
|
51
|
+
res.status(500).json({
|
|
52
|
+
success: false,
|
|
53
|
+
error: {
|
|
54
|
+
stage: 'server',
|
|
55
|
+
code: 'INTERNAL_ERROR',
|
|
56
|
+
message: error.message || 'Internal server error',
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
return app;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Start the server
|
|
64
|
+
*/
|
|
65
|
+
export function startServer(app, port) {
|
|
66
|
+
return new Promise((resolve, reject) => {
|
|
67
|
+
const server = app.listen(port, () => {
|
|
68
|
+
logger.info(`Server started on port ${port}`);
|
|
69
|
+
resolve();
|
|
70
|
+
});
|
|
71
|
+
server.on('error', (error) => {
|
|
72
|
+
logger.error('Server error', { error: error.message });
|
|
73
|
+
reject(error);
|
|
74
|
+
});
|
|
75
|
+
// Graceful shutdown
|
|
76
|
+
process.on('SIGTERM', () => {
|
|
77
|
+
logger.info('SIGTERM received, shutting down gracefully');
|
|
78
|
+
server.close(() => {
|
|
79
|
+
logger.info('Server closed');
|
|
80
|
+
process.exit(0);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
process.on('SIGINT', () => {
|
|
84
|
+
logger.info('SIGINT received, shutting down gracefully');
|
|
85
|
+
server.close(() => {
|
|
86
|
+
logger.info('Server closed');
|
|
87
|
+
process.exit(0);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../engine/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for the Dynamic API Workflow Engine
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Unified output format for all node types
|
|
6
|
+
*/
|
|
7
|
+
export interface NodeOutput {
|
|
8
|
+
type: 'string' | 'json' | 'number' | 'boolean' | 'array';
|
|
9
|
+
value: unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* LLM provider configuration
|
|
13
|
+
*/
|
|
14
|
+
export interface LLMConfig {
|
|
15
|
+
model: string;
|
|
16
|
+
temperature?: number;
|
|
17
|
+
maxTokens?: number;
|
|
18
|
+
thinkingTokens?: number;
|
|
19
|
+
custom?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* System message definition for LLM nodes
|
|
23
|
+
*/
|
|
24
|
+
export interface SystemMessage {
|
|
25
|
+
file?: string;
|
|
26
|
+
content?: string;
|
|
27
|
+
cache?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Base node definition
|
|
31
|
+
*/
|
|
32
|
+
export interface BaseNodeDefinition {
|
|
33
|
+
id: string;
|
|
34
|
+
type: 'llm' | 'code' | 'reduce' | 'split' | 'passthrough';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* LLM node definition
|
|
38
|
+
*/
|
|
39
|
+
export interface LLMNodeDefinition extends BaseNodeDefinition {
|
|
40
|
+
type: 'llm';
|
|
41
|
+
llmRef?: string;
|
|
42
|
+
provider?: 'gemini' | 'grok';
|
|
43
|
+
config?: LLMConfig;
|
|
44
|
+
systemMessages?: SystemMessage[];
|
|
45
|
+
input: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Code node definition
|
|
49
|
+
*/
|
|
50
|
+
export interface CodeNodeDefinition extends BaseNodeDefinition {
|
|
51
|
+
type: 'code';
|
|
52
|
+
file: string;
|
|
53
|
+
input: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Reduce node definition
|
|
57
|
+
*/
|
|
58
|
+
export interface ReduceNodeDefinition extends BaseNodeDefinition {
|
|
59
|
+
type: 'reduce';
|
|
60
|
+
inputs: string[];
|
|
61
|
+
mapping: Record<string, string>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Split node definition
|
|
65
|
+
*/
|
|
66
|
+
export interface SplitNodeDefinition extends BaseNodeDefinition {
|
|
67
|
+
type: 'split';
|
|
68
|
+
input: string;
|
|
69
|
+
mapping: Record<string, string>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Passthrough node definition
|
|
73
|
+
*/
|
|
74
|
+
export interface PassthroughNodeDefinition extends BaseNodeDefinition {
|
|
75
|
+
type: 'passthrough';
|
|
76
|
+
input: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Union of all node definition types
|
|
80
|
+
*/
|
|
81
|
+
export type NodeDefinition = LLMNodeDefinition | CodeNodeDefinition | ReduceNodeDefinition | SplitNodeDefinition | PassthroughNodeDefinition;
|
|
82
|
+
/**
|
|
83
|
+
* Stage definition
|
|
84
|
+
* nodes is a Record where key is nodeId and value is the inline node definition with input
|
|
85
|
+
*/
|
|
86
|
+
export interface StageDefinition {
|
|
87
|
+
name: string;
|
|
88
|
+
nodes: Record<string, InlineNodeDefinition>;
|
|
89
|
+
parallel?: boolean;
|
|
90
|
+
errorStrategy?: 'complete' | 'fast';
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Inline node definition (includes input and full node config)
|
|
94
|
+
*/
|
|
95
|
+
export type InlineNodeDefinition = InlineLLMNode | InlineCodeNode | InlineReduceNode | InlineSplitNode | InlinePassthroughNode;
|
|
96
|
+
export interface InlineLLMNode {
|
|
97
|
+
type: 'llm';
|
|
98
|
+
input: string;
|
|
99
|
+
provider?: 'gemini' | 'grok';
|
|
100
|
+
model?: string;
|
|
101
|
+
temperature?: number;
|
|
102
|
+
maxTokens?: number;
|
|
103
|
+
systemMessages?: SystemMessage[];
|
|
104
|
+
}
|
|
105
|
+
export interface InlineCodeNode {
|
|
106
|
+
type: 'code';
|
|
107
|
+
input: string;
|
|
108
|
+
file: string;
|
|
109
|
+
}
|
|
110
|
+
export interface InlineReduceNode {
|
|
111
|
+
type: 'reduce';
|
|
112
|
+
inputs: string[];
|
|
113
|
+
mapping: Record<string, string>;
|
|
114
|
+
}
|
|
115
|
+
export interface InlineSplitNode {
|
|
116
|
+
type: 'split';
|
|
117
|
+
input: string;
|
|
118
|
+
mapping: Record<string, string>;
|
|
119
|
+
}
|
|
120
|
+
export interface InlinePassthroughNode {
|
|
121
|
+
type: 'passthrough';
|
|
122
|
+
input: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Input schema definition
|
|
126
|
+
*/
|
|
127
|
+
export interface InputSchema {
|
|
128
|
+
inline?: Record<string, unknown>;
|
|
129
|
+
file?: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Endpoint configuration
|
|
133
|
+
*/
|
|
134
|
+
export interface EndpointConfig {
|
|
135
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
136
|
+
route?: string;
|
|
137
|
+
routeParams?: string[];
|
|
138
|
+
endpointPath?: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* HTTP method definition (stages for a specific method)
|
|
142
|
+
*/
|
|
143
|
+
export interface EndpointMethodDefinition {
|
|
144
|
+
stages: StageDefinition[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Endpoint file definition (keyed by HTTP method)
|
|
148
|
+
*/
|
|
149
|
+
export interface EndpointFileDefinition {
|
|
150
|
+
version: string;
|
|
151
|
+
POST?: EndpointMethodDefinition;
|
|
152
|
+
GET?: EndpointMethodDefinition;
|
|
153
|
+
PUT?: EndpointMethodDefinition;
|
|
154
|
+
DELETE?: EndpointMethodDefinition;
|
|
155
|
+
PATCH?: EndpointMethodDefinition;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Complete workflow definition (merged nodes + endpoint)
|
|
159
|
+
*/
|
|
160
|
+
export interface WorkflowDefinition {
|
|
161
|
+
version: string;
|
|
162
|
+
endpoint?: EndpointConfig;
|
|
163
|
+
input?: {
|
|
164
|
+
schema?: InputSchema;
|
|
165
|
+
};
|
|
166
|
+
llm?: Record<string, {
|
|
167
|
+
provider: 'gemini' | 'grok';
|
|
168
|
+
config: LLMConfig;
|
|
169
|
+
}>;
|
|
170
|
+
nodes: NodeDefinition[];
|
|
171
|
+
stages: StageDefinition[];
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Validation result
|
|
175
|
+
*/
|
|
176
|
+
export interface ValidationResult {
|
|
177
|
+
valid: boolean;
|
|
178
|
+
errors?: ValidationError[];
|
|
179
|
+
warnings?: ValidationWarning[];
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Validation error
|
|
183
|
+
*/
|
|
184
|
+
export interface ValidationError {
|
|
185
|
+
code: string;
|
|
186
|
+
message: string;
|
|
187
|
+
path?: string;
|
|
188
|
+
details?: unknown;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Validation warning
|
|
192
|
+
*/
|
|
193
|
+
export interface ValidationWarning {
|
|
194
|
+
code: string;
|
|
195
|
+
message: string;
|
|
196
|
+
path?: string;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* LLM call parameters
|
|
200
|
+
*/
|
|
201
|
+
export interface LLMCallParams {
|
|
202
|
+
config: LLMConfig;
|
|
203
|
+
systemMessages: Array<{
|
|
204
|
+
content: string;
|
|
205
|
+
cache: boolean;
|
|
206
|
+
}>;
|
|
207
|
+
userMessage: string;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* LLM response
|
|
211
|
+
*/
|
|
212
|
+
export interface LLMResponse {
|
|
213
|
+
content: string;
|
|
214
|
+
usage?: {
|
|
215
|
+
inputTokens: number;
|
|
216
|
+
outputTokens: number;
|
|
217
|
+
cachedTokens?: number;
|
|
218
|
+
};
|
|
219
|
+
metadata?: Record<string, unknown>;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* LLM provider interface
|
|
223
|
+
*/
|
|
224
|
+
export interface LLMProvider {
|
|
225
|
+
name: string;
|
|
226
|
+
validateConfig(config: LLMConfig): Promise<ValidationResult>;
|
|
227
|
+
call(params: LLMCallParams): Promise<LLMResponse>;
|
|
228
|
+
supportsFeature(feature: string): boolean;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Workflow error response
|
|
232
|
+
*/
|
|
233
|
+
export interface WorkflowError {
|
|
234
|
+
success: false;
|
|
235
|
+
error: {
|
|
236
|
+
stage: string;
|
|
237
|
+
node?: string;
|
|
238
|
+
code: string;
|
|
239
|
+
message: string;
|
|
240
|
+
details?: unknown;
|
|
241
|
+
};
|
|
242
|
+
errors?: Array<{
|
|
243
|
+
stage: string;
|
|
244
|
+
node: string;
|
|
245
|
+
code: string;
|
|
246
|
+
message: string;
|
|
247
|
+
details?: unknown;
|
|
248
|
+
}>;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Workflow success response
|
|
252
|
+
*/
|
|
253
|
+
export interface WorkflowSuccess {
|
|
254
|
+
success: true;
|
|
255
|
+
data: unknown;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Workflow response
|
|
259
|
+
*/
|
|
260
|
+
export type WorkflowResponse = WorkflowSuccess | WorkflowError;
|
|
261
|
+
/**
|
|
262
|
+
* Node execution metrics
|
|
263
|
+
*/
|
|
264
|
+
export interface NodeMetrics {
|
|
265
|
+
nodeId: string;
|
|
266
|
+
nodeType: 'llm' | 'code' | 'reduce' | 'split' | 'passthrough';
|
|
267
|
+
executionTimeMs: number;
|
|
268
|
+
model?: string;
|
|
269
|
+
inputTokens?: number;
|
|
270
|
+
outputTokens?: number;
|
|
271
|
+
cachedTokens?: number;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Execution context for tracking node outputs
|
|
275
|
+
*/
|
|
276
|
+
export interface ExecutionContext {
|
|
277
|
+
requestId: string;
|
|
278
|
+
input: unknown;
|
|
279
|
+
params: Record<string, string>;
|
|
280
|
+
nodeOutputs: Map<string, NodeOutput>;
|
|
281
|
+
splitOutputs: Map<string, Map<string, NodeOutput>>;
|
|
282
|
+
timing: Map<string, number>;
|
|
283
|
+
metrics: NodeMetrics[];
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Error codes
|
|
287
|
+
*/
|
|
288
|
+
export declare enum ErrorCode {
|
|
289
|
+
VALIDATION_FAILED = "VALIDATION_FAILED",
|
|
290
|
+
NODE_NOT_FOUND = "NODE_NOT_FOUND",
|
|
291
|
+
CODE_EXCEPTION = "CODE_EXCEPTION",
|
|
292
|
+
CODE_INVALID_OUTPUT = "CODE_INVALID_OUTPUT",
|
|
293
|
+
LLM_API_ERROR = "LLM_API_ERROR",
|
|
294
|
+
LLM_TIMEOUT = "LLM_TIMEOUT",
|
|
295
|
+
LLM_RATE_LIMIT = "LLM_RATE_LIMIT",
|
|
296
|
+
JSONPATH_ERROR = "JSONPATH_ERROR",
|
|
297
|
+
STAGE_FAILED = "STAGE_FAILED",
|
|
298
|
+
WORKFLOW_LOAD_FAILED = "WORKFLOW_LOAD_FAILED",
|
|
299
|
+
INVALID_WORKFLOW = "INVALID_WORKFLOW",
|
|
300
|
+
PROVIDER_NOT_FOUND = "PROVIDER_NOT_FOUND",
|
|
301
|
+
FILE_NOT_FOUND = "FILE_NOT_FOUND",
|
|
302
|
+
CYCLE_DETECTED = "CYCLE_DETECTED"
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../engine/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for the Dynamic API Workflow Engine
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error codes
|
|
6
|
+
*/
|
|
7
|
+
export var ErrorCode;
|
|
8
|
+
(function (ErrorCode) {
|
|
9
|
+
ErrorCode["VALIDATION_FAILED"] = "VALIDATION_FAILED";
|
|
10
|
+
ErrorCode["NODE_NOT_FOUND"] = "NODE_NOT_FOUND";
|
|
11
|
+
ErrorCode["CODE_EXCEPTION"] = "CODE_EXCEPTION";
|
|
12
|
+
ErrorCode["CODE_INVALID_OUTPUT"] = "CODE_INVALID_OUTPUT";
|
|
13
|
+
ErrorCode["LLM_API_ERROR"] = "LLM_API_ERROR";
|
|
14
|
+
ErrorCode["LLM_TIMEOUT"] = "LLM_TIMEOUT";
|
|
15
|
+
ErrorCode["LLM_RATE_LIMIT"] = "LLM_RATE_LIMIT";
|
|
16
|
+
ErrorCode["JSONPATH_ERROR"] = "JSONPATH_ERROR";
|
|
17
|
+
ErrorCode["STAGE_FAILED"] = "STAGE_FAILED";
|
|
18
|
+
ErrorCode["WORKFLOW_LOAD_FAILED"] = "WORKFLOW_LOAD_FAILED";
|
|
19
|
+
ErrorCode["INVALID_WORKFLOW"] = "INVALID_WORKFLOW";
|
|
20
|
+
ErrorCode["PROVIDER_NOT_FOUND"] = "PROVIDER_NOT_FOUND";
|
|
21
|
+
ErrorCode["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
|
|
22
|
+
ErrorCode["CYCLE_DETECTED"] = "CYCLE_DETECTED";
|
|
23
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../engine/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8TH;;GAEG;AACH,MAAM,CAAN,IAAY,SAeX;AAfD,WAAY,SAAS;IACjB,oDAAuC,CAAA;IACvC,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,wDAA2C,CAAA;IAC3C,4CAA+B,CAAA;IAC/B,wCAA2B,CAAA;IAC3B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,0CAA6B,CAAA;IAC7B,0DAA6C,CAAA;IAC7C,kDAAqC,CAAA;IACrC,sDAAyC,CAAA;IACzC,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;AACrC,CAAC,EAfW,SAAS,KAAT,SAAS,QAepB"}
|