mcpgraph 0.1.18 → 0.1.20
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 +69 -48
- package/dist/api.d.ts +7 -4
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +11 -4
- package/dist/api.js.map +1 -1
- package/dist/config/expression-validator.d.ts.map +1 -1
- package/dist/config/expression-validator.js +12 -10
- package/dist/config/expression-validator.js.map +1 -1
- package/dist/config/loader.d.ts +8 -2
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +16 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/mcp-loader.d.ts +13 -0
- package/dist/config/mcp-loader.d.ts.map +1 -0
- package/dist/config/mcp-loader.js +47 -0
- package/dist/config/mcp-loader.js.map +1 -0
- package/dist/config/schema.d.ts +292 -186
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +5 -6
- package/dist/config/schema.js.map +1 -1
- package/dist/execution/executor.d.ts +2 -2
- package/dist/execution/executor.d.ts.map +1 -1
- package/dist/execution/executor.js +22 -13
- package/dist/execution/executor.js.map +1 -1
- package/dist/graph/validator.d.ts.map +1 -1
- package/dist/graph/validator.js +52 -69
- package/dist/graph/validator.js.map +1 -1
- package/dist/main.js +23 -5
- package/dist/main.js.map +1 -1
- package/dist/types/config.d.ts +4 -5
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/execution.d.ts +9 -8
- package/dist/types/execution.d.ts.map +1 -1
- package/docs/building.md +76 -0
- package/docs/design.md +55 -43
- package/docs/github-pages-setup.md +492 -0
- package/docs/introspection-debugging.md +31 -6
- package/examples/api-usage.ts +3 -3
- package/examples/count_files.yaml +47 -52
- package/examples/loop_example.yaml +55 -58
- package/examples/switch_example.yaml +48 -55
- package/examples/test_minimal.yaml +23 -0
- package/package.json +2 -2
|
@@ -12,28 +12,27 @@ import { executeSwitchNode } from "./nodes/switch-executor.js";
|
|
|
12
12
|
import { logger } from "../logger.js";
|
|
13
13
|
export class GraphExecutor {
|
|
14
14
|
config;
|
|
15
|
-
graph;
|
|
16
15
|
clientManager;
|
|
17
16
|
controller = null;
|
|
17
|
+
currentToolGraph = null;
|
|
18
18
|
constructor(config, clientManager) {
|
|
19
19
|
this.config = config;
|
|
20
|
-
this.graph = new Graph(config.nodes);
|
|
21
20
|
this.clientManager = clientManager;
|
|
22
21
|
}
|
|
23
22
|
getController() {
|
|
24
23
|
return this.controller;
|
|
25
24
|
}
|
|
26
25
|
getGraph() {
|
|
27
|
-
return this.
|
|
26
|
+
return this.currentToolGraph;
|
|
28
27
|
}
|
|
29
28
|
getConfig() {
|
|
30
29
|
return this.config;
|
|
31
30
|
}
|
|
32
31
|
getServerConfig(serverName) {
|
|
33
|
-
if (!this.config.
|
|
32
|
+
if (!this.config.mcpServers || !this.config.mcpServers[serverName]) {
|
|
34
33
|
throw new Error(`Server configuration not found: ${serverName}`);
|
|
35
34
|
}
|
|
36
|
-
return this.config.
|
|
35
|
+
return this.config.mcpServers[serverName];
|
|
37
36
|
}
|
|
38
37
|
async executeTool(toolName, toolInput, options) {
|
|
39
38
|
const tool = this.config.tools.find((t) => t.name === toolName);
|
|
@@ -58,13 +57,15 @@ export class GraphExecutor {
|
|
|
58
57
|
this.controller.pauseRequested = true;
|
|
59
58
|
}
|
|
60
59
|
}
|
|
60
|
+
// Build graph for this tool's nodes
|
|
61
|
+
this.currentToolGraph = new Graph(tool.nodes);
|
|
61
62
|
// Find entry node for this tool
|
|
62
|
-
const entryNode =
|
|
63
|
+
const entryNode = tool.nodes.find((n) => n.type === "entry");
|
|
63
64
|
if (!entryNode) {
|
|
64
65
|
throw new Error(`Entry node not found for tool: ${toolName}`);
|
|
65
66
|
}
|
|
66
67
|
// Find exit node for this tool
|
|
67
|
-
const exitNode =
|
|
68
|
+
const exitNode = tool.nodes.find((n) => n.type === "exit");
|
|
68
69
|
if (!exitNode) {
|
|
69
70
|
throw new Error(`Exit node not found for tool: ${toolName}`);
|
|
70
71
|
}
|
|
@@ -111,7 +112,7 @@ export class GraphExecutor {
|
|
|
111
112
|
}
|
|
112
113
|
throw new Error("Execution was stopped");
|
|
113
114
|
}
|
|
114
|
-
const node = this.
|
|
115
|
+
const node = this.currentToolGraph.getNode(currentNodeId);
|
|
115
116
|
if (!node) {
|
|
116
117
|
throw new Error(`Node not found: ${currentNodeId}`);
|
|
117
118
|
}
|
|
@@ -129,9 +130,11 @@ export class GraphExecutor {
|
|
|
129
130
|
const pausePromise = this.controller.waitIfPaused();
|
|
130
131
|
// Get execution index before node executes (this will be the index after we add this execution)
|
|
131
132
|
const executionIndex = context.getHistory().length;
|
|
133
|
+
// Get data context available at the point of pause
|
|
134
|
+
const dataContext = context.getData();
|
|
132
135
|
// Call onPause hook to notify that we've paused (status is "paused", waiting for resume)
|
|
133
136
|
if (hooks?.onPause) {
|
|
134
|
-
await hooks.onPause(executionIndex, currentNodeId,
|
|
137
|
+
await hooks.onPause(executionIndex, currentNodeId, dataContext);
|
|
135
138
|
}
|
|
136
139
|
// Wait for resume to be called
|
|
137
140
|
await pausePromise;
|
|
@@ -150,9 +153,11 @@ export class GraphExecutor {
|
|
|
150
153
|
}
|
|
151
154
|
// Get execution index before node executes (this will be the index after we add this execution)
|
|
152
155
|
const executionIndex = context.getHistory().length;
|
|
156
|
+
// Get data context available to the node (same as what nodes see for JSONata/JSON Logic)
|
|
157
|
+
const dataContext = context.getData();
|
|
153
158
|
// Call onNodeStart hook
|
|
154
159
|
if (hooks?.onNodeStart) {
|
|
155
|
-
const shouldContinue = await hooks.onNodeStart(executionIndex, currentNodeId, node,
|
|
160
|
+
const shouldContinue = await hooks.onNodeStart(executionIndex, currentNodeId, node, dataContext);
|
|
156
161
|
// Check for stop after hook (hook may have called stop())
|
|
157
162
|
if (this.controller && this.controller.shouldStop()) {
|
|
158
163
|
if (this.controller) {
|
|
@@ -166,7 +171,7 @@ export class GraphExecutor {
|
|
|
166
171
|
if (this.controller) {
|
|
167
172
|
// Call onPause hook before waiting
|
|
168
173
|
if (hooks?.onPause) {
|
|
169
|
-
await hooks.onPause(executionIndex, currentNodeId,
|
|
174
|
+
await hooks.onPause(executionIndex, currentNodeId, dataContext);
|
|
170
175
|
}
|
|
171
176
|
await this.controller.waitIfPaused();
|
|
172
177
|
// Call onResume hook after resuming
|
|
@@ -267,9 +272,12 @@ export class GraphExecutor {
|
|
|
267
272
|
}
|
|
268
273
|
// Get execution index after error has been added to history
|
|
269
274
|
const errorExecutionIndex = context.getHistory().length - 1;
|
|
275
|
+
// Get data context available at the time of error (before the error occurred)
|
|
276
|
+
// Build context from history up to (but not including) the error execution
|
|
277
|
+
const errorDataContext = context.getContextForExecution(errorExecutionIndex);
|
|
270
278
|
// Call onNodeError hook
|
|
271
279
|
if (hooks?.onNodeError) {
|
|
272
|
-
await hooks.onNodeError(errorExecutionIndex, currentNodeId, node, nodeError,
|
|
280
|
+
await hooks.onNodeError(errorExecutionIndex, currentNodeId, node, nodeError, errorDataContext);
|
|
273
281
|
}
|
|
274
282
|
if (this.controller) {
|
|
275
283
|
this.controller.setStatus("error");
|
|
@@ -308,10 +316,11 @@ export class GraphExecutor {
|
|
|
308
316
|
throw error;
|
|
309
317
|
}
|
|
310
318
|
finally {
|
|
311
|
-
// Clean up controller after execution
|
|
319
|
+
// Clean up controller and graph after execution
|
|
312
320
|
if (this.controller) {
|
|
313
321
|
this.controller = null;
|
|
314
322
|
}
|
|
323
|
+
this.currentToolGraph = null;
|
|
315
324
|
}
|
|
316
325
|
}
|
|
317
326
|
buildTelemetry(context, startTime, endTime) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/execution/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/execution/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/graph/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/graph/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAIzE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,EAAE,CAUvE"}
|
package/dist/graph/validator.js
CHANGED
|
@@ -4,66 +4,51 @@
|
|
|
4
4
|
import { Graph } from "./graph.js";
|
|
5
5
|
export function validateGraph(config) {
|
|
6
6
|
const errors = [];
|
|
7
|
-
|
|
8
|
-
// Validate all tools have exactly one entry and one exit node
|
|
7
|
+
// Validate each tool's graph independently
|
|
9
8
|
for (const tool of config.tools) {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
if (entryNodes.length === 0) {
|
|
13
|
-
errors.push({
|
|
14
|
-
message: `Tool "${tool.name}" has no entry node`,
|
|
15
|
-
toolName: tool.name,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
else if (entryNodes.length > 1) {
|
|
19
|
-
errors.push({
|
|
20
|
-
message: `Tool "${tool.name}" has multiple entry nodes: ${entryNodes.map((n) => n.id).join(", ")}`,
|
|
21
|
-
toolName: tool.name,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
if (exitNodes.length === 0) {
|
|
25
|
-
errors.push({
|
|
26
|
-
message: `Tool "${tool.name}" has no exit node`,
|
|
27
|
-
toolName: tool.name,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else if (exitNodes.length > 1) {
|
|
31
|
-
errors.push({
|
|
32
|
-
message: `Tool "${tool.name}" has multiple exit nodes: ${exitNodes.map((n) => n.id).join(", ")}`,
|
|
33
|
-
toolName: tool.name,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
9
|
+
const toolErrors = validateToolGraph(tool, config);
|
|
10
|
+
errors.push(...toolErrors);
|
|
36
11
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
12
|
+
return errors;
|
|
13
|
+
}
|
|
14
|
+
function validateToolGraph(tool, config) {
|
|
15
|
+
const errors = [];
|
|
16
|
+
const graph = new Graph(tool.nodes);
|
|
17
|
+
// Validate tool has exactly one entry and one exit node
|
|
18
|
+
const entryNodes = tool.nodes.filter((n) => n.type === "entry");
|
|
19
|
+
const exitNodes = tool.nodes.filter((n) => n.type === "exit");
|
|
20
|
+
if (entryNodes.length === 0) {
|
|
21
|
+
errors.push({
|
|
22
|
+
message: `Tool "${tool.name}" has no entry node`,
|
|
23
|
+
toolName: tool.name,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else if (entryNodes.length > 1) {
|
|
27
|
+
errors.push({
|
|
28
|
+
message: `Tool "${tool.name}" has multiple entry nodes: ${entryNodes.map((n) => n.id).join(", ")}`,
|
|
29
|
+
toolName: tool.name,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (exitNodes.length === 0) {
|
|
33
|
+
errors.push({
|
|
34
|
+
message: `Tool "${tool.name}" has no exit node`,
|
|
35
|
+
toolName: tool.name,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
else if (exitNodes.length > 1) {
|
|
39
|
+
errors.push({
|
|
40
|
+
message: `Tool "${tool.name}" has multiple exit nodes: ${exitNodes.map((n) => n.id).join(", ")}`,
|
|
41
|
+
toolName: tool.name,
|
|
42
|
+
});
|
|
59
43
|
}
|
|
60
|
-
// Validate all node references exist
|
|
61
|
-
for (const node of
|
|
44
|
+
// Validate all node references exist within this tool's graph
|
|
45
|
+
for (const node of tool.nodes) {
|
|
62
46
|
if ("next" in node && node.next) {
|
|
63
47
|
if (!graph.hasNode(node.next)) {
|
|
64
48
|
errors.push({
|
|
65
|
-
message: `Node "${node.id}" references non-existent next node "${node.next}"`,
|
|
49
|
+
message: `Node "${node.id}" in tool "${tool.name}" references non-existent next node "${node.next}"`,
|
|
66
50
|
nodeId: node.id,
|
|
51
|
+
toolName: tool.name,
|
|
67
52
|
});
|
|
68
53
|
}
|
|
69
54
|
}
|
|
@@ -71,38 +56,36 @@ export function validateGraph(config) {
|
|
|
71
56
|
for (const condition of node.conditions) {
|
|
72
57
|
if (!graph.hasNode(condition.target)) {
|
|
73
58
|
errors.push({
|
|
74
|
-
message: `Switch node "${node.id}" references non-existent target "${condition.target}"`,
|
|
59
|
+
message: `Switch node "${node.id}" in tool "${tool.name}" references non-existent target "${condition.target}"`,
|
|
75
60
|
nodeId: node.id,
|
|
61
|
+
toolName: tool.name,
|
|
76
62
|
});
|
|
77
63
|
}
|
|
78
64
|
}
|
|
79
65
|
}
|
|
80
66
|
}
|
|
81
67
|
// Validate mcp nodes reference valid servers
|
|
82
|
-
for (const node of
|
|
68
|
+
for (const node of tool.nodes) {
|
|
83
69
|
if (node.type === "mcp") {
|
|
84
70
|
const serverName = node.server;
|
|
85
|
-
if (!config.
|
|
71
|
+
if (!config.mcpServers || !config.mcpServers[serverName]) {
|
|
86
72
|
errors.push({
|
|
87
|
-
message: `MCP node "${node.id}" references non-existent server "${serverName}"`,
|
|
73
|
+
message: `MCP node "${node.id}" in tool "${tool.name}" references non-existent server "${serverName}"`,
|
|
88
74
|
nodeId: node.id,
|
|
75
|
+
toolName: tool.name,
|
|
89
76
|
});
|
|
90
77
|
}
|
|
91
78
|
}
|
|
92
79
|
}
|
|
93
80
|
// Validate exit nodes are reachable (basic check - can be enhanced)
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
const
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
message: `Tool "${tool.name}" exit node "${exitNode.id}" is not reachable from entry node "${entryNode.id}"`,
|
|
103
|
-
toolName: tool.name,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
81
|
+
if (entryNodes.length === 1 && exitNodes.length === 1) {
|
|
82
|
+
const entryNode = entryNodes[0];
|
|
83
|
+
const exitNode = exitNodes[0];
|
|
84
|
+
if (!isReachable(graph, entryNode.id, exitNode.id)) {
|
|
85
|
+
errors.push({
|
|
86
|
+
message: `Tool "${tool.name}" exit node "${exitNode.id}" is not reachable from entry node "${entryNode.id}"`,
|
|
87
|
+
toolName: tool.name,
|
|
88
|
+
});
|
|
106
89
|
}
|
|
107
90
|
}
|
|
108
91
|
return errors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/graph/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AASnC,MAAM,UAAU,aAAa,CAAC,MAAsB;IAClD,MAAM,MAAM,GAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/graph/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -8,29 +8,47 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
8
8
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
9
9
|
import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
10
10
|
import { parseArgs } from 'node:util';
|
|
11
|
+
import { loadMcpServers } from './config/mcp-loader.js';
|
|
11
12
|
const { values } = parseArgs({
|
|
12
13
|
options: {
|
|
13
|
-
|
|
14
|
+
graph: {
|
|
14
15
|
type: 'string',
|
|
15
|
-
short: '
|
|
16
|
+
short: 'g',
|
|
16
17
|
default: 'config.yaml',
|
|
17
18
|
},
|
|
19
|
+
mcp: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
short: 'm',
|
|
22
|
+
},
|
|
18
23
|
},
|
|
19
24
|
});
|
|
20
25
|
async function main() {
|
|
21
26
|
try {
|
|
22
|
-
const configPath = values.
|
|
23
|
-
//
|
|
24
|
-
|
|
27
|
+
const configPath = values.graph || 'config.yaml';
|
|
28
|
+
// Load mcpServers from MCP JSON file if provided
|
|
29
|
+
let mcpServersFromFile;
|
|
30
|
+
if (values.mcp) {
|
|
31
|
+
try {
|
|
32
|
+
mcpServersFromFile = loadMcpServers(values.mcp);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
logger.error(`Failed to load MCP file: ${error instanceof Error ? error.message : String(error)}`);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Create API instance (loads and validates config, merging mcpServers)
|
|
40
|
+
const api = new McpGraphApi(configPath, mcpServersFromFile);
|
|
25
41
|
const serverInfo = api.getServerInfo();
|
|
26
42
|
// Initialize MCP server
|
|
27
43
|
const server = new Server({
|
|
28
44
|
name: serverInfo.name,
|
|
29
45
|
version: serverInfo.version,
|
|
46
|
+
title: serverInfo.title, // Optional title (defaults to name if not provided)
|
|
30
47
|
}, {
|
|
31
48
|
capabilities: {
|
|
32
49
|
tools: {},
|
|
33
50
|
},
|
|
51
|
+
instructions: serverInfo.instructions, // Set instructions if provided
|
|
34
52
|
});
|
|
35
53
|
// Register tools
|
|
36
54
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -8,15 +8,15 @@ export interface ExecutionLimits {
|
|
|
8
8
|
export interface McpGraphConfig {
|
|
9
9
|
version: string;
|
|
10
10
|
server: ServerMetadata;
|
|
11
|
-
|
|
11
|
+
mcpServers?: Record<string, ServerConfig>;
|
|
12
12
|
executionLimits?: ExecutionLimits;
|
|
13
13
|
tools: ToolDefinition[];
|
|
14
|
-
nodes: NodeDefinition[];
|
|
15
14
|
}
|
|
16
15
|
export interface ServerMetadata {
|
|
17
16
|
name: string;
|
|
18
17
|
version: string;
|
|
19
|
-
|
|
18
|
+
title?: string;
|
|
19
|
+
instructions?: string;
|
|
20
20
|
}
|
|
21
21
|
export type ServerConfig = StdioServerConfig | SseServerConfig | StreamableHttpServerConfig;
|
|
22
22
|
export interface StdioServerConfig {
|
|
@@ -43,6 +43,7 @@ export interface ToolDefinition {
|
|
|
43
43
|
description: string;
|
|
44
44
|
inputSchema: JsonSchema;
|
|
45
45
|
outputSchema: JsonSchema;
|
|
46
|
+
nodes: NodeDefinition[];
|
|
46
47
|
}
|
|
47
48
|
export interface JsonSchema {
|
|
48
49
|
type: string;
|
|
@@ -62,12 +63,10 @@ export interface BaseNode {
|
|
|
62
63
|
}
|
|
63
64
|
export interface EntryNode extends BaseNode {
|
|
64
65
|
type: "entry";
|
|
65
|
-
tool: string;
|
|
66
66
|
next: string;
|
|
67
67
|
}
|
|
68
68
|
export interface ExitNode extends BaseNode {
|
|
69
69
|
type: "exit";
|
|
70
|
-
tool: string;
|
|
71
70
|
}
|
|
72
71
|
export interface McpNode extends BaseNode {
|
|
73
72
|
type: "mcp";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Types for execution introspection and debugging
|
|
3
3
|
*/
|
|
4
4
|
import type { NodeDefinition } from "./config.js";
|
|
5
|
-
import type { ExecutionContext } from "../execution/context.js";
|
|
5
|
+
import type { ExecutionContext as ExecutionContextClass } from "../execution/context.js";
|
|
6
|
+
import type { ExecutionContext as DataContext } from "../expressions/context.js";
|
|
6
7
|
export type ExecutionStatus = "not_started" | "running" | "paused" | "finished" | "error" | "stopped";
|
|
7
8
|
export interface NodeExecutionRecord {
|
|
8
9
|
executionIndex: number;
|
|
@@ -18,7 +19,7 @@ export interface ExecutionState {
|
|
|
18
19
|
status: ExecutionStatus;
|
|
19
20
|
currentNodeId: string | null;
|
|
20
21
|
executionHistory: NodeExecutionRecord[];
|
|
21
|
-
context:
|
|
22
|
+
context: ExecutionContextClass;
|
|
22
23
|
error?: Error;
|
|
23
24
|
}
|
|
24
25
|
export interface ExecutionHooks {
|
|
@@ -27,10 +28,10 @@ export interface ExecutionHooks {
|
|
|
27
28
|
* @param executionIndex - The unique execution index for this node execution (0, 1, 2, ...)
|
|
28
29
|
* @param nodeId - The ID of the node being executed
|
|
29
30
|
* @param node - The node definition
|
|
30
|
-
* @param context - The
|
|
31
|
+
* @param context - The data context available to the node (same as what nodes see for JSONata/JSON Logic)
|
|
31
32
|
* @returns Return false to pause execution (breakpoint)
|
|
32
33
|
*/
|
|
33
|
-
onNodeStart?: (executionIndex: number, nodeId: string, node: NodeDefinition, context:
|
|
34
|
+
onNodeStart?: (executionIndex: number, nodeId: string, node: NodeDefinition, context: DataContext) => Promise<boolean>;
|
|
34
35
|
/**
|
|
35
36
|
* Called after a node completes successfully
|
|
36
37
|
* @param executionIndex - The unique execution index for this node execution (0, 1, 2, ...)
|
|
@@ -47,16 +48,16 @@ export interface ExecutionHooks {
|
|
|
47
48
|
* @param nodeId - The ID of the node that encountered the error
|
|
48
49
|
* @param node - The node definition
|
|
49
50
|
* @param error - The error that occurred
|
|
50
|
-
* @param context - The
|
|
51
|
+
* @param context - The data context available to the node at the time of error (same as what nodes see for JSONata/JSON Logic)
|
|
51
52
|
*/
|
|
52
|
-
onNodeError?: (executionIndex: number, nodeId: string, node: NodeDefinition, error: Error, context:
|
|
53
|
+
onNodeError?: (executionIndex: number, nodeId: string, node: NodeDefinition, error: Error, context: DataContext) => Promise<void>;
|
|
53
54
|
/**
|
|
54
55
|
* Called when execution pauses (breakpoint hit or manual pause)
|
|
55
56
|
* @param executionIndex - The unique execution index for the current node execution (0, 1, 2, ...)
|
|
56
57
|
* @param nodeId - The ID of the node where execution paused
|
|
57
|
-
* @param context - The
|
|
58
|
+
* @param context - The data context available at the point of pause (same as what nodes see for JSONata/JSON Logic)
|
|
58
59
|
*/
|
|
59
|
-
onPause?: (executionIndex: number, nodeId: string, context:
|
|
60
|
+
onPause?: (executionIndex: number, nodeId: string, context: DataContext) => Promise<void>;
|
|
60
61
|
/**
|
|
61
62
|
* Called when execution resumes
|
|
62
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/types/execution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/types/execution.ts"],"names":[],"mappings":"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"}
|