@sprinterai/runtime 0.2.0 → 0.2.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/workflow/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/workflow/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGhB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAU1B;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,gBAAgB,GAAG,kBAAkB,CA2ChG;AAWD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,EAAE,EAAE,CAY1E"}
|
package/dist/workflow/compile.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { sortFieldsByDependency } from '@sprinter/extraction';
|
|
2
1
|
/**
|
|
3
2
|
* Get the effective fields config from an EntityTypeRecord.
|
|
4
3
|
* Checks behaviorJson.fields first, then falls back to config.fields.
|
|
@@ -80,4 +79,50 @@ export function getWorkflowLayers(entityType) {
|
|
|
80
79
|
}
|
|
81
80
|
return sortFieldsByDependency(extractableFields);
|
|
82
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Topological sort: returns layers of field names that can extract in parallel.
|
|
84
|
+
* Uses Kahn's algorithm. Throws on cycles.
|
|
85
|
+
*/
|
|
86
|
+
function sortFieldsByDependency(fields) {
|
|
87
|
+
const fieldNames = Object.keys(fields);
|
|
88
|
+
if (fieldNames.length === 0)
|
|
89
|
+
return [];
|
|
90
|
+
const fieldSet = new Set(fieldNames);
|
|
91
|
+
const inDegree = new Map();
|
|
92
|
+
const dependents = new Map();
|
|
93
|
+
for (const name of fieldNames) {
|
|
94
|
+
inDegree.set(name, 0);
|
|
95
|
+
dependents.set(name, []);
|
|
96
|
+
}
|
|
97
|
+
for (const name of fieldNames) {
|
|
98
|
+
const deps = fields[name].extraction?.dependsOn ?? [];
|
|
99
|
+
for (const dep of deps) {
|
|
100
|
+
if (!fieldSet.has(dep))
|
|
101
|
+
continue;
|
|
102
|
+
inDegree.set(name, (inDegree.get(name) ?? 0) + 1);
|
|
103
|
+
dependents.get(dep).push(name);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const layers = [];
|
|
107
|
+
const remaining = new Set(fieldNames);
|
|
108
|
+
while (remaining.size > 0) {
|
|
109
|
+
const layer = [];
|
|
110
|
+
for (const name of remaining) {
|
|
111
|
+
if ((inDegree.get(name) ?? 0) === 0) {
|
|
112
|
+
layer.push(name);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (layer.length === 0) {
|
|
116
|
+
throw new Error(`Cycle detected in field dependencies: ${Array.from(remaining).join(', ')}`);
|
|
117
|
+
}
|
|
118
|
+
for (const name of layer) {
|
|
119
|
+
remaining.delete(name);
|
|
120
|
+
for (const dependent of dependents.get(name) ?? []) {
|
|
121
|
+
inDegree.set(dependent, (inDegree.get(dependent) ?? 0) - 1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
layers.push(layer.sort());
|
|
125
|
+
}
|
|
126
|
+
return layers;
|
|
127
|
+
}
|
|
83
128
|
//# sourceMappingURL=compile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/workflow/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/workflow/compile.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sprinterai/runtime",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Agent, tool, workflow, and chat runtime engine for the Sprinter AI platform",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -62,8 +62,7 @@
|
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"ai": "^6.0.0",
|
|
64
64
|
"zod": "^3.24.0",
|
|
65
|
-
"@sprinterai/core": "0.2.0"
|
|
66
|
-
"@sprinter/extraction": "0.1.1"
|
|
65
|
+
"@sprinterai/core": "0.2.0"
|
|
67
66
|
},
|
|
68
67
|
"devDependencies": {
|
|
69
68
|
"@vitest/coverage-v8": "^3.0.0",
|