@ai.ntellect/core 0.7.13 → 0.7.14
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/dist/graph/controller.d.ts +3 -3
- package/dist/graph/controller.d.ts.map +1 -1
- package/dist/graph/controller.js +14 -5
- package/dist/graph/controller.js.map +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/index.js +1 -1
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -1
- package/graph/controller.ts +21 -10
- package/graph/index.ts +1 -1
- package/package.json +1 -1
- package/test/graph/controller.test.ts +18 -14
- package/test/graph/index.test.ts +4 -4
- package/types/index.ts +10 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ZodSchema } from "zod";
|
2
|
-
import {
|
2
|
+
import { GraphExecutionResult } from "../types";
|
3
3
|
import { GraphFlow } from "./index";
|
4
4
|
import { NodeParams } from "./node";
|
5
5
|
/**
|
@@ -15,7 +15,7 @@ export declare class GraphController {
|
|
15
15
|
* @returns Map containing results of each graph execution, keyed by graph name and index
|
16
16
|
* @template T - Zod schema type for graph context validation
|
17
17
|
*/
|
18
|
-
static executeSequential<T extends ZodSchema>(graphs: GraphFlow<T>[], startNodes: string[], params?: NodeParams[]): Promise<
|
18
|
+
static executeSequential<T extends ZodSchema>(graphs: GraphFlow<T>[], startNodes: string[], params?: NodeParams[]): Promise<GraphExecutionResult<T>[]>;
|
19
19
|
private static executeGraph;
|
20
20
|
/**
|
21
21
|
* Executes multiple graphs in parallel with optional concurrency control
|
@@ -26,6 +26,6 @@ export declare class GraphController {
|
|
26
26
|
* @returns Map containing results of each graph execution, keyed by graph name
|
27
27
|
* @template T - Zod schema type for graph context validation
|
28
28
|
*/
|
29
|
-
static executeParallel<T extends ZodSchema>(graphs: GraphFlow<T>[], startNodes: string[], concurrency: number, params?: NodeParams[]): Promise<
|
29
|
+
static executeParallel<T extends ZodSchema>(graphs: GraphFlow<T>[], startNodes: string[], concurrency: number, params?: NodeParams[]): Promise<GraphExecutionResult<T>[]>;
|
30
30
|
}
|
31
31
|
//# sourceMappingURL=controller.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;;OAOG;WACU,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAChD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EACtB,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,CAAC,EAAE,UAAU,EAAE,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;mBAehB,YAAY;IAiBjC;;;;;;;;OAQG;WACU,eAAe,CAAC,CAAC,SAAS,SAAS,EAC9C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EACtB,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,UAAU,EAAE,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;CAgBtC"}
|
package/dist/graph/controller.js
CHANGED
@@ -25,18 +25,27 @@ class GraphController {
|
|
25
25
|
*/
|
26
26
|
static executeSequential(graphs, startNodes, params) {
|
27
27
|
return __awaiter(this, void 0, void 0, function* () {
|
28
|
-
const results =
|
28
|
+
const results = [];
|
29
29
|
for (let i = 0; i < graphs.length; i++) {
|
30
|
-
const
|
31
|
-
results.
|
30
|
+
const context = yield graphs[i].execute(startNodes[i], params === null || params === void 0 ? void 0 : params[i]);
|
31
|
+
results.push({
|
32
|
+
graphName: graphs[i].name,
|
33
|
+
nodeName: startNodes[i],
|
34
|
+
context,
|
35
|
+
});
|
32
36
|
}
|
33
|
-
return
|
37
|
+
return results;
|
34
38
|
});
|
35
39
|
}
|
36
40
|
static executeGraph(graph, startNode, params) {
|
37
41
|
return __awaiter(this, void 0, void 0, function* () {
|
38
42
|
try {
|
39
|
-
|
43
|
+
const context = yield graph.execute(startNode, params);
|
44
|
+
return {
|
45
|
+
graphName: graph.name,
|
46
|
+
nodeName: startNode,
|
47
|
+
context,
|
48
|
+
};
|
40
49
|
}
|
41
50
|
catch (error) {
|
42
51
|
throw error;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA;;;GAGG;AACH,MAAa,eAAe;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAO,iBAAiB,CAC5B,MAAsB,EACtB,UAAoB,EACpB,MAAqB;;YAErB,MAAM,OAAO,
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA;;;GAGG;AACH,MAAa,eAAe;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAO,iBAAiB,CAC5B,MAAsB,EACtB,UAAoB,EACpB,MAAqB;;YAErB,MAAM,OAAO,GAA8B,EAAE,CAAC;YAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBACzB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;oBACvB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEO,MAAM,CAAO,YAAY,CAC/B,KAAmB,EACnB,SAAiB,EACjB,MAAmB;;YAEnB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACvD,OAAO;oBACL,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,QAAQ,EAAE,SAAS;oBACnB,OAAO;iBACR,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;OAQG;IACH,MAAM,CAAO,eAAe,CAC1B,MAAsB,EACtB,UAAoB,EACpB,WAAmB,EACnB,MAAqB;;YAErB,MAAM,OAAO,GAA8B,EAAE,CAAC;YAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC/C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACvB,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBAChC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC,CAAC,CACH,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF;AA3ED,0CA2EC"}
|
package/dist/graph/index.d.ts
CHANGED
@@ -6,7 +6,7 @@ import { GraphObserver } from "./observer";
|
|
6
6
|
import { GraphVisualizer } from "./visualizer";
|
7
7
|
/**
|
8
8
|
* @module GraphFlow
|
9
|
-
* @description A
|
9
|
+
* @description A workflow engine that manages the execution of nodes in a graph-like structure.
|
10
10
|
*
|
11
11
|
* Key features:
|
12
12
|
* - Multiple branches support
|
package/dist/graph/index.js
CHANGED
@@ -19,7 +19,7 @@ const observer_1 = require("./observer");
|
|
19
19
|
const visualizer_1 = require("./visualizer");
|
20
20
|
/**
|
21
21
|
* @module GraphFlow
|
22
|
-
* @description A
|
22
|
+
* @description A workflow engine that manages the execution of nodes in a graph-like structure.
|
23
23
|
*
|
24
24
|
* Key features:
|
25
25
|
* - Multiple branches support
|
package/dist/types/index.d.ts
CHANGED
@@ -135,6 +135,15 @@ export type GraphConfig<T extends ZodSchema> = {
|
|
135
135
|
/** Array of events */
|
136
136
|
events?: string[];
|
137
137
|
};
|
138
|
+
/**
|
139
|
+
* Type for graph execution result
|
140
|
+
* @template T - Schema type
|
141
|
+
*/
|
142
|
+
export type GraphExecutionResult<T extends ZodSchema> = {
|
143
|
+
graphName: string;
|
144
|
+
nodeName: string;
|
145
|
+
context: GraphContext<T>;
|
146
|
+
};
|
138
147
|
/**
|
139
148
|
* Configuration type for Meilisearch
|
140
149
|
* @typedef {Object} MeilisearchConfig
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"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"}
|
package/graph/controller.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ZodSchema } from "zod";
|
2
|
-
import {
|
2
|
+
import { GraphExecutionResult } from "../types";
|
3
3
|
import { GraphFlow } from "./index";
|
4
4
|
import { NodeParams } from "./node";
|
5
5
|
|
@@ -20,22 +20,33 @@ export class GraphController {
|
|
20
20
|
graphs: GraphFlow<T>[],
|
21
21
|
startNodes: string[],
|
22
22
|
params?: NodeParams[]
|
23
|
-
): Promise<
|
24
|
-
const results =
|
23
|
+
): Promise<GraphExecutionResult<T>[]> {
|
24
|
+
const results: GraphExecutionResult<T>[] = [];
|
25
|
+
|
25
26
|
for (let i = 0; i < graphs.length; i++) {
|
26
|
-
const
|
27
|
-
results.
|
27
|
+
const context = await graphs[i].execute(startNodes[i], params?.[i]);
|
28
|
+
results.push({
|
29
|
+
graphName: graphs[i].name,
|
30
|
+
nodeName: startNodes[i],
|
31
|
+
context,
|
32
|
+
});
|
28
33
|
}
|
29
|
-
|
34
|
+
|
35
|
+
return results;
|
30
36
|
}
|
31
37
|
|
32
38
|
private static async executeGraph<T extends ZodSchema>(
|
33
39
|
graph: GraphFlow<T>,
|
34
40
|
startNode: string,
|
35
41
|
params?: NodeParams
|
36
|
-
): Promise<
|
42
|
+
): Promise<GraphExecutionResult<T>> {
|
37
43
|
try {
|
38
|
-
|
44
|
+
const context = await graph.execute(startNode, params);
|
45
|
+
return {
|
46
|
+
graphName: graph.name,
|
47
|
+
nodeName: startNode,
|
48
|
+
context,
|
49
|
+
};
|
39
50
|
} catch (error) {
|
40
51
|
throw error;
|
41
52
|
}
|
@@ -55,8 +66,8 @@ export class GraphController {
|
|
55
66
|
startNodes: string[],
|
56
67
|
concurrency: number,
|
57
68
|
params?: NodeParams[]
|
58
|
-
): Promise<
|
59
|
-
const results:
|
69
|
+
): Promise<GraphExecutionResult<T>[]> {
|
70
|
+
const results: GraphExecutionResult<T>[] = [];
|
60
71
|
|
61
72
|
for (let i = 0; i < graphs.length; i += concurrency) {
|
62
73
|
const batch = graphs.slice(i, i + concurrency);
|
package/graph/index.ts
CHANGED
@@ -16,7 +16,7 @@ import { GraphVisualizer } from "./visualizer";
|
|
16
16
|
|
17
17
|
/**
|
18
18
|
* @module GraphFlow
|
19
|
-
* @description A
|
19
|
+
* @description A workflow engine that manages the execution of nodes in a graph-like structure.
|
20
20
|
*
|
21
21
|
* Key features:
|
22
22
|
* - Multiple branches support
|
package/package.json
CHANGED
@@ -56,12 +56,14 @@ describe("GraphController", () => {
|
|
56
56
|
);
|
57
57
|
|
58
58
|
expect(results).to.have.length(3);
|
59
|
-
expect(results[0].counter).to.equal(10);
|
60
|
-
expect(results[1].counter).to.equal(20);
|
61
|
-
expect(results[2].counter).to.equal(30);
|
62
|
-
expect(results[0].message).to.equal("test1-graph1");
|
63
|
-
expect(results[1].message).to.equal("test2-graph2");
|
64
|
-
expect(results[2].message).to.equal("test3-graph3");
|
59
|
+
expect(results[0].context.counter).to.equal(10);
|
60
|
+
expect(results[1].context.counter).to.equal(20);
|
61
|
+
expect(results[2].context.counter).to.equal(30);
|
62
|
+
expect(results[0].context.message).to.equal("test1-graph1");
|
63
|
+
expect(results[1].context.message).to.equal("test2-graph2");
|
64
|
+
expect(results[2].context.message).to.equal("test3-graph3");
|
65
|
+
expect(results[0].graphName).to.equal("graph1");
|
66
|
+
expect(results[0].nodeName).to.equal("start");
|
65
67
|
});
|
66
68
|
|
67
69
|
it("should handle missing params and params gracefully", async () => {
|
@@ -74,10 +76,10 @@ describe("GraphController", () => {
|
|
74
76
|
);
|
75
77
|
|
76
78
|
expect(results).to.have.length(2);
|
77
|
-
expect(results[0].counter).to.equal(0);
|
78
|
-
expect(results[1].counter).to.equal(0);
|
79
|
-
expect(results[0].message).to.equal("graph1");
|
80
|
-
expect(results[1].message).to.equal("graph2");
|
79
|
+
expect(results[0].context.counter).to.equal(0);
|
80
|
+
expect(results[1].context.counter).to.equal(0);
|
81
|
+
expect(results[0].context.message).to.equal("graph1");
|
82
|
+
expect(results[1].context.message).to.equal("graph2");
|
81
83
|
});
|
82
84
|
});
|
83
85
|
|
@@ -111,8 +113,8 @@ describe("GraphController", () => {
|
|
111
113
|
expect(executionTime).to.be.greaterThan(0);
|
112
114
|
expect(results).to.have.length(5);
|
113
115
|
results.forEach((result, i) => {
|
114
|
-
expect(result.counter).to.equal((i + 1) * 10);
|
115
|
-
expect(result.message).to.equal(`test${i + 1}-graph${i + 1}`);
|
116
|
+
expect(result.context.counter).to.equal((i + 1) * 10);
|
117
|
+
expect(result.context.message).to.equal(`test${i + 1}-graph${i + 1}`);
|
116
118
|
});
|
117
119
|
});
|
118
120
|
|
@@ -175,8 +177,10 @@ describe("GraphController", () => {
|
|
175
177
|
|
176
178
|
const allResults = [...parallelResults, ...sequentialResults];
|
177
179
|
expect(allResults).to.have.length(4);
|
178
|
-
expect(allResults.map((r) => r.counter)).to.deep.equal([
|
179
|
-
|
180
|
+
expect(allResults.map((r) => r.context.counter)).to.deep.equal([
|
181
|
+
10, 20, 30, 40,
|
182
|
+
]);
|
183
|
+
expect(allResults.map((r) => r.context.message)).to.deep.equal([
|
180
184
|
"parallel1-graph1",
|
181
185
|
"parallel2-graph2",
|
182
186
|
"seq1-graph3",
|
package/test/graph/index.test.ts
CHANGED
@@ -540,8 +540,8 @@ describe("GraphFlow", function () {
|
|
540
540
|
[{}, {}]
|
541
541
|
);
|
542
542
|
|
543
|
-
expect(results[0].value).to.equal(2); // Graph1: 1 * 2
|
544
|
-
expect(results[1].value).to.equal(5); // Graph2: 2 + 3
|
543
|
+
expect(results[0].context.value).to.equal(2); // Graph1: 1 * 2
|
544
|
+
expect(results[1].context.value).to.equal(5); // Graph2: 2 + 3
|
545
545
|
});
|
546
546
|
|
547
547
|
/**
|
@@ -587,8 +587,8 @@ describe("GraphFlow", function () {
|
|
587
587
|
[{}, {}]
|
588
588
|
);
|
589
589
|
|
590
|
-
expect(results[0].value).to.equal(2); // Graph1: 1 * 2
|
591
|
-
expect(results[1].value).to.equal(5); // Graph2: 3 + 2
|
590
|
+
expect(results[0].context.value).to.equal(2); // Graph1: 1 * 2
|
591
|
+
expect(results[1].context.value).to.equal(5); // Graph2: 3 + 2
|
592
592
|
});
|
593
593
|
|
594
594
|
/**
|
package/types/index.ts
CHANGED
@@ -155,6 +155,16 @@ export type GraphConfig<T extends ZodSchema> = {
|
|
155
155
|
events?: string[];
|
156
156
|
};
|
157
157
|
|
158
|
+
/**
|
159
|
+
* Type for graph execution result
|
160
|
+
* @template T - Schema type
|
161
|
+
*/
|
162
|
+
export type GraphExecutionResult<T extends ZodSchema> = {
|
163
|
+
graphName: string;
|
164
|
+
nodeName: string;
|
165
|
+
context: GraphContext<T>;
|
166
|
+
};
|
167
|
+
|
158
168
|
/* ======================== MEILISEARCH ======================== */
|
159
169
|
|
160
170
|
/**
|