@diff-review-system/drs 4.0.1 → 4.1.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/.pi/agents/review/unified-reviewer.md +2 -6
- package/.pi/agents/task/review-assistant.md +22 -0
- package/.pi/workflows/github-pr-fix-review-issues-stacked.yaml +10 -4
- package/.pi/workflows/github-pr-review-post.yaml +0 -1
- package/.pi/workflows/github-pr-review.yaml +14 -8
- package/.pi/workflows/github-pr-visual-explain.yaml +46 -1
- package/.pi/workflows/gitlab-mr-fix-review-issues-stacked.yaml +10 -4
- package/.pi/workflows/gitlab-mr-review.yaml +14 -8
- package/.pi/workflows/gitlab-mr-visual-explain.yaml +46 -1
- package/.pi/workflows/local-fix-review-issues.yaml +13 -6
- package/.pi/workflows/local-review.yaml +7 -1
- package/.pi/workflows/local-visual-explain.yaml +46 -1
- package/.pi/workflows/temporal-control-smoke.yaml +63 -0
- package/README.md +39 -0
- package/dist/cli/index.js +211 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +6 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +29 -10
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/run-agent.d.ts +2 -7
- package/dist/cli/run-agent.d.ts.map +1 -1
- package/dist/cli/run-agent.js.map +1 -1
- package/dist/cli/workflow-executor-selection.d.ts +3 -0
- package/dist/cli/workflow-executor-selection.d.ts.map +1 -0
- package/dist/cli/workflow-executor-selection.js +15 -0
- package/dist/cli/workflow-executor-selection.js.map +1 -0
- package/dist/cli/workflow.d.ts +38 -42
- package/dist/cli/workflow.d.ts.map +1 -1
- package/dist/cli/workflow.js +190 -838
- package/dist/cli/workflow.js.map +1 -1
- package/dist/lib/agent-result.d.ts +8 -0
- package/dist/lib/agent-result.d.ts.map +1 -0
- package/dist/lib/agent-result.js +2 -0
- package/dist/lib/agent-result.js.map +1 -0
- package/dist/lib/config.d.ts +21 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/output-paths.d.ts +0 -1
- package/dist/lib/output-paths.d.ts.map +1 -1
- package/dist/lib/output-paths.js +0 -1
- package/dist/lib/output-paths.js.map +1 -1
- package/dist/lib/project-setup.d.ts +10 -0
- package/dist/lib/project-setup.d.ts.map +1 -0
- package/dist/lib/project-setup.js +25 -0
- package/dist/lib/project-setup.js.map +1 -0
- package/dist/lib/review-artifact-store.d.ts +16 -0
- package/dist/lib/review-artifact-store.d.ts.map +1 -0
- package/dist/lib/review-artifact-store.js +84 -0
- package/dist/lib/review-artifact-store.js.map +1 -0
- package/dist/lib/review-artifact.d.ts.map +1 -1
- package/dist/lib/review-artifact.js +1 -0
- package/dist/lib/review-artifact.js.map +1 -1
- package/dist/lib/review-core.d.ts +1 -0
- package/dist/lib/review-core.d.ts.map +1 -1
- package/dist/lib/review-core.js +11 -14
- package/dist/lib/review-core.js.map +1 -1
- package/dist/lib/review-parser.d.ts.map +1 -1
- package/dist/lib/review-parser.js +15 -12
- package/dist/lib/review-parser.js.map +1 -1
- package/dist/lib/skills.d.ts +16 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +140 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/workflow/artifact-store.d.ts +71 -0
- package/dist/lib/workflow/artifact-store.d.ts.map +1 -0
- package/dist/lib/workflow/artifact-store.js +121 -0
- package/dist/lib/workflow/artifact-store.js.map +1 -0
- package/dist/lib/workflow/compiled-plan.d.ts +87 -0
- package/dist/lib/workflow/compiled-plan.d.ts.map +1 -0
- package/dist/lib/workflow/compiled-plan.js +62 -0
- package/dist/lib/workflow/compiled-plan.js.map +1 -0
- package/dist/lib/workflow/executor.d.ts +18 -0
- package/dist/lib/workflow/executor.d.ts.map +1 -0
- package/dist/lib/workflow/executor.js +2 -0
- package/dist/lib/workflow/executor.js.map +1 -0
- package/dist/lib/workflow/graph.d.ts +30 -0
- package/dist/lib/workflow/graph.d.ts.map +1 -0
- package/dist/lib/workflow/graph.js +139 -0
- package/dist/lib/workflow/graph.js.map +1 -0
- package/dist/lib/workflow/input.d.ts +4 -0
- package/dist/lib/workflow/input.d.ts.map +1 -0
- package/dist/lib/workflow/input.js +4 -0
- package/dist/lib/workflow/input.js.map +1 -0
- package/dist/lib/workflow/node-executor.d.ts +19 -0
- package/dist/lib/workflow/node-executor.d.ts.map +1 -0
- package/dist/lib/workflow/node-executor.js +2 -0
- package/dist/lib/workflow/node-executor.js.map +1 -0
- package/dist/lib/workflow/planning.d.ts +51 -0
- package/dist/lib/workflow/planning.d.ts.map +1 -0
- package/dist/lib/workflow/planning.js +814 -0
- package/dist/lib/workflow/planning.js.map +1 -0
- package/dist/lib/workflow/types.d.ts +66 -0
- package/dist/lib/workflow/types.d.ts.map +1 -0
- package/dist/lib/workflow/types.js +2 -0
- package/dist/lib/workflow/types.js.map +1 -0
- package/dist/lib/write-json-output.d.ts.map +1 -1
- package/dist/lib/write-json-output.js +3 -8
- package/dist/lib/write-json-output.js.map +1 -1
- package/dist/pi/sdk.d.ts.map +1 -1
- package/dist/pi/sdk.js +6 -2
- package/dist/pi/sdk.js.map +1 -1
- package/dist/runtime/built-in-paths.d.ts +1 -0
- package/dist/runtime/built-in-paths.d.ts.map +1 -1
- package/dist/runtime/built-in-paths.js +7 -0
- package/dist/runtime/built-in-paths.js.map +1 -1
- package/dist/temporal/activities.d.ts +26 -0
- package/dist/temporal/activities.d.ts.map +1 -0
- package/dist/temporal/activities.js +219 -0
- package/dist/temporal/activities.js.map +1 -0
- package/dist/temporal/config.d.ts +4 -0
- package/dist/temporal/config.d.ts.map +1 -0
- package/dist/temporal/config.js +36 -0
- package/dist/temporal/config.js.map +1 -0
- package/dist/temporal/executor.d.ts +7 -0
- package/dist/temporal/executor.d.ts.map +1 -0
- package/dist/temporal/executor.js +233 -0
- package/dist/temporal/executor.js.map +1 -0
- package/dist/temporal/retry-policy.d.ts +28 -0
- package/dist/temporal/retry-policy.d.ts.map +1 -0
- package/dist/temporal/retry-policy.js +56 -0
- package/dist/temporal/retry-policy.js.map +1 -0
- package/dist/temporal/types.d.ts +86 -0
- package/dist/temporal/types.d.ts.map +1 -0
- package/dist/temporal/types.js +2 -0
- package/dist/temporal/types.js.map +1 -0
- package/dist/temporal/worker.d.ts +3 -0
- package/dist/temporal/worker.d.ts.map +1 -0
- package/dist/temporal/worker.js +18 -0
- package/dist/temporal/worker.js.map +1 -0
- package/dist/temporal/workflow-id.d.ts +27 -0
- package/dist/temporal/workflow-id.d.ts.map +1 -0
- package/dist/temporal/workflow-id.js +53 -0
- package/dist/temporal/workflow-id.js.map +1 -0
- package/dist/temporal/workflows.d.ts +6 -0
- package/dist/temporal/workflows.d.ts.map +1 -0
- package/dist/temporal/workflows.js +342 -0
- package/dist/temporal/workflows.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/lib/workflow/executor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { WorkflowConfig } from '../config.js';
|
|
2
|
+
export type WorkflowGraphNodeKind = 'agent' | 'agents' | 'action' | 'control';
|
|
3
|
+
export type WorkflowGraphEdgeKind = 'dependency' | 'control';
|
|
4
|
+
export interface WorkflowGraphNode {
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
kind: WorkflowGraphNodeKind;
|
|
8
|
+
agent?: string;
|
|
9
|
+
agentsFrom?: string;
|
|
10
|
+
action?: string;
|
|
11
|
+
control?: string;
|
|
12
|
+
condition?: string;
|
|
13
|
+
output?: string;
|
|
14
|
+
writes?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface WorkflowGraphEdge {
|
|
17
|
+
id: string;
|
|
18
|
+
source: string;
|
|
19
|
+
target: string;
|
|
20
|
+
kind: WorkflowGraphEdgeKind;
|
|
21
|
+
label?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface WorkflowGraph {
|
|
24
|
+
workflow: string;
|
|
25
|
+
nodes: WorkflowGraphNode[];
|
|
26
|
+
edges: WorkflowGraphEdge[];
|
|
27
|
+
}
|
|
28
|
+
export declare function buildWorkflowGraph(workflowName: string, workflow: WorkflowConfig): WorkflowGraph;
|
|
29
|
+
export declare function formatWorkflowGraphMermaid(graph: WorkflowGraph): string;
|
|
30
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/lib/workflow/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,cAAc,CAAC;AAQvE,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,aAAa,CA0BhG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAcvE"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { getNodeKind, getNodeNeeds, getWorkflowExecutionOrder, getWorkflowNodes, } from './planning.js';
|
|
2
|
+
export function buildWorkflowGraph(workflowName, workflow) {
|
|
3
|
+
const nodesById = getWorkflowNodes(workflowName, workflow);
|
|
4
|
+
const orderedNodeIds = getWorkflowExecutionOrder(nodesById);
|
|
5
|
+
const edges = [];
|
|
6
|
+
for (const nodeId of orderedNodeIds) {
|
|
7
|
+
const node = nodesById[nodeId];
|
|
8
|
+
if (!node)
|
|
9
|
+
continue;
|
|
10
|
+
for (const dependency of getNodeNeeds(node)) {
|
|
11
|
+
edges.push({
|
|
12
|
+
id: `dependency:${dependency}->${nodeId}`,
|
|
13
|
+
source: dependency,
|
|
14
|
+
target: nodeId,
|
|
15
|
+
kind: 'dependency',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
edges.push(...getWorkflowControlEdges(nodeId, node));
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
workflow: workflowName,
|
|
22
|
+
nodes: orderedNodeIds.map((nodeId) => buildWorkflowGraphNode(nodeId, nodesById[nodeId])),
|
|
23
|
+
edges,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function formatWorkflowGraphMermaid(graph) {
|
|
27
|
+
const lines = ['flowchart TD'];
|
|
28
|
+
for (const node of graph.nodes) {
|
|
29
|
+
lines.push(` ${mermaidId(node.id)}${mermaidNodeShape(node)}`);
|
|
30
|
+
}
|
|
31
|
+
for (const edge of graph.edges) {
|
|
32
|
+
const label = edge.label ? `|${escapeMermaidLabel(edge.label)}|` : '';
|
|
33
|
+
const arrow = edge.kind === 'control' ? '-.->' : '-->';
|
|
34
|
+
lines.push(` ${mermaidId(edge.source)} ${arrow}${label} ${mermaidId(edge.target)}`);
|
|
35
|
+
}
|
|
36
|
+
return `${lines.join('\n')}\n`;
|
|
37
|
+
}
|
|
38
|
+
function buildWorkflowGraphNode(nodeId, node) {
|
|
39
|
+
return {
|
|
40
|
+
id: nodeId,
|
|
41
|
+
label: getWorkflowGraphNodeLabel(nodeId, node),
|
|
42
|
+
kind: getNodeKind(node),
|
|
43
|
+
agent: node.agent,
|
|
44
|
+
agentsFrom: node.agentsFrom,
|
|
45
|
+
action: node.action,
|
|
46
|
+
control: node.control,
|
|
47
|
+
condition: node.if,
|
|
48
|
+
output: node.output,
|
|
49
|
+
writes: node.writes,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function getWorkflowGraphNodeLabel(nodeId, node) {
|
|
53
|
+
if (node.agent)
|
|
54
|
+
return `${nodeId}\n${node.agent}`;
|
|
55
|
+
if (node.agentsFrom)
|
|
56
|
+
return `${nodeId}\n${node.agentsFrom}`;
|
|
57
|
+
if (node.action)
|
|
58
|
+
return `${nodeId}\n${node.action}`;
|
|
59
|
+
if (node.control)
|
|
60
|
+
return `${nodeId}\n${node.control}`;
|
|
61
|
+
return nodeId;
|
|
62
|
+
}
|
|
63
|
+
function getWorkflowControlEdges(nodeId, node) {
|
|
64
|
+
if (node.control === 'loop') {
|
|
65
|
+
return [
|
|
66
|
+
...(node.target
|
|
67
|
+
? [
|
|
68
|
+
{
|
|
69
|
+
id: `control:${nodeId}->${node.target}:loop`,
|
|
70
|
+
source: nodeId,
|
|
71
|
+
target: node.target,
|
|
72
|
+
kind: 'control',
|
|
73
|
+
label: node.if ? `loop: ${node.if}` : 'loop',
|
|
74
|
+
},
|
|
75
|
+
]
|
|
76
|
+
: []),
|
|
77
|
+
...(node.exit
|
|
78
|
+
? [
|
|
79
|
+
{
|
|
80
|
+
id: `control:${nodeId}->${node.exit}:exit`,
|
|
81
|
+
source: nodeId,
|
|
82
|
+
target: node.exit,
|
|
83
|
+
kind: 'control',
|
|
84
|
+
label: 'exit',
|
|
85
|
+
},
|
|
86
|
+
]
|
|
87
|
+
: []),
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
if (node.control === 'switch') {
|
|
91
|
+
return [
|
|
92
|
+
...Object.entries(node.cases ?? {}).map(([caseLabel, target]) => ({
|
|
93
|
+
id: `control:${nodeId}->${target}:case:${caseLabel}`,
|
|
94
|
+
source: nodeId,
|
|
95
|
+
target,
|
|
96
|
+
kind: 'control',
|
|
97
|
+
label: `case ${caseLabel}`,
|
|
98
|
+
})),
|
|
99
|
+
...(node.default
|
|
100
|
+
? [
|
|
101
|
+
{
|
|
102
|
+
id: `control:${nodeId}->${node.default}:default`,
|
|
103
|
+
source: nodeId,
|
|
104
|
+
target: node.default,
|
|
105
|
+
kind: 'control',
|
|
106
|
+
label: 'default',
|
|
107
|
+
},
|
|
108
|
+
]
|
|
109
|
+
: []),
|
|
110
|
+
];
|
|
111
|
+
}
|
|
112
|
+
if (node.control === 'passThrough' && node.target) {
|
|
113
|
+
return [
|
|
114
|
+
{
|
|
115
|
+
id: `control:${nodeId}->${node.target}:target`,
|
|
116
|
+
source: nodeId,
|
|
117
|
+
target: node.target,
|
|
118
|
+
kind: 'control',
|
|
119
|
+
label: 'target',
|
|
120
|
+
},
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
function mermaidId(id) {
|
|
126
|
+
return `n_${id.replace(/[^A-Za-z0-9_]/g, '_')}`;
|
|
127
|
+
}
|
|
128
|
+
function mermaidNodeShape(node) {
|
|
129
|
+
const label = escapeMermaidLabel(node.label);
|
|
130
|
+
if (node.kind === 'control')
|
|
131
|
+
return `{${label}}`;
|
|
132
|
+
if (node.kind === 'agent' || node.kind === 'agents')
|
|
133
|
+
return `([${label}])`;
|
|
134
|
+
return `[${label}]`;
|
|
135
|
+
}
|
|
136
|
+
function escapeMermaidLabel(label) {
|
|
137
|
+
return JSON.stringify(label).slice(1, -1).replace(/"/g, '#quot;');
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/lib/workflow/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { WorkflowInputConfig } from '../config.js';
|
|
2
|
+
export type WorkflowInputConfigType = 'string' | 'boolean' | 'number' | 'enum';
|
|
3
|
+
export declare function getWorkflowInputConfigType(input: WorkflowInputConfig): WorkflowInputConfigType;
|
|
4
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/lib/workflow/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,uBAAuB,CAE9F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/lib/workflow/input.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,0BAA0B,CAAC,KAA0B;IACnE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WorkflowNodeConfig } from '../config.js';
|
|
2
|
+
import type { WorkflowNodeResult, WorkflowTemplateContext } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Boundary for side-effecting workflow node execution.
|
|
5
|
+
*
|
|
6
|
+
* Deterministic orchestration (dependency scheduling, waves, skip/condition
|
|
7
|
+
* evaluation, result assembly) lives in the workflow runner/Temporal workflow.
|
|
8
|
+
* Side effects (agents, actions, git, platform calls, file writes, artifact
|
|
9
|
+
* operations, model calls) live behind this interface so the same node
|
|
10
|
+
* execution can run either in-process or as a Temporal activity.
|
|
11
|
+
*
|
|
12
|
+
* `runNode` executes a single non-control node using `context` for template
|
|
13
|
+
* rendering and returns the node's result. Skip/condition decisions are made
|
|
14
|
+
* by the caller; `runNode` only executes nodes the caller has chosen to run.
|
|
15
|
+
*/
|
|
16
|
+
export interface NodeExecutor {
|
|
17
|
+
runNode(nodeId: string, node: WorkflowNodeConfig, context: WorkflowTemplateContext): Promise<WorkflowNodeResult>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=node-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-executor.d.ts","sourceRoot":"","sources":["../../../src/lib/workflow/node-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CACL,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-executor.js","sourceRoot":"","sources":["../../../src/lib/workflow/node-executor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { WorkflowConfig, WorkflowNodeConfig } from '../config.js';
|
|
2
|
+
import type { WorkflowNodeResult, WorkflowTemplateContext } from './types.js';
|
|
3
|
+
export declare function getNodeNeeds(node: WorkflowNodeConfig): string[];
|
|
4
|
+
export declare function getControlTargets(node: WorkflowNodeConfig): string[];
|
|
5
|
+
export declare function validateWorkflowControlTargets(nodes: Record<string, WorkflowNodeConfig>): void;
|
|
6
|
+
export declare function validateWorkflowControlRouteDirection(nodes: Record<string, WorkflowNodeConfig>, executionOrder: string[]): void;
|
|
7
|
+
export declare function validateWorkflowPassThroughShape(nodeId: string, node: WorkflowNodeConfig): void;
|
|
8
|
+
export declare const WORKFLOW_NODE_FIELDS: Set<string>;
|
|
9
|
+
export declare const EXECUTABLE_NODE_FIELDS: Set<string>;
|
|
10
|
+
export declare const CONTROL_NODE_FIELDS: Record<string, Set<string>>;
|
|
11
|
+
export declare const ACTION_OPTION_FIELDS: Partial<Record<NonNullable<WorkflowNodeConfig['action']>, Set<string>>>;
|
|
12
|
+
export declare function validateAllowedFields(nodeId: string, value: Record<string, unknown>, allowed: Set<string>, subject: string): void;
|
|
13
|
+
export declare function validateWorkflowNodeShape(nodeId: string, node: WorkflowNodeConfig): void;
|
|
14
|
+
export declare function validateWorkflowNodeKinds(nodes: Record<string, WorkflowNodeConfig>): void;
|
|
15
|
+
export declare function hasWorkflowControlNodes(nodes: Record<string, WorkflowNodeConfig>): boolean;
|
|
16
|
+
export declare function getWorkflowExecutionOrder(nodes: Record<string, WorkflowNodeConfig>): string[];
|
|
17
|
+
export declare function getWorkflowNodes(workflowName: string, workflow: WorkflowConfig): Record<string, WorkflowNodeConfig>;
|
|
18
|
+
export declare function getWorkflowExecutionWaves(nodes: Record<string, WorkflowNodeConfig>, executionOrder: string[]): string[][];
|
|
19
|
+
export declare function getPathValue(root: unknown, path: string): unknown;
|
|
20
|
+
export declare function stringifyTemplateValue(value: unknown): string;
|
|
21
|
+
export declare function renderTemplate(template: string, context: WorkflowTemplateContext): string;
|
|
22
|
+
export declare function getNodeKind(node: WorkflowNodeConfig): 'agent' | 'agents' | 'action' | 'control';
|
|
23
|
+
export type WorkflowSegment = {
|
|
24
|
+
type: 'dag';
|
|
25
|
+
nodeIds: string[];
|
|
26
|
+
activeNodeIds?: Set<string>;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'control';
|
|
29
|
+
nodeId: string;
|
|
30
|
+
};
|
|
31
|
+
export declare function parseWorkflowExpressionValue(value: string, context?: WorkflowTemplateContext): unknown;
|
|
32
|
+
export declare function isWorkflowTruthy(value: unknown): boolean;
|
|
33
|
+
export declare function normalizeWorkflowBooleanLike(value: unknown): boolean | undefined;
|
|
34
|
+
export declare function compareWorkflowValues(left: unknown, operator: string, right: unknown): boolean;
|
|
35
|
+
export declare function splitWorkflowExpressionOperator(expression: string, operator: '&&' | '||'): string[];
|
|
36
|
+
export declare function stripWorkflowExpressionParens(expression: string): string;
|
|
37
|
+
export declare function evaluateWorkflowExpressionText(rendered: string, context: WorkflowTemplateContext): boolean;
|
|
38
|
+
export declare function evaluateWorkflowExpression(expression: string, context: WorkflowTemplateContext): boolean;
|
|
39
|
+
export declare function splitWorkflowSegments(workflowNodes: Record<string, WorkflowNodeConfig>, executionOrder: string[]): WorkflowSegment[];
|
|
40
|
+
export declare function findWorkflowSegmentIndex(segments: WorkflowSegment[], targetNodeId: string): number;
|
|
41
|
+
export declare function computeActiveWorkflowNodes(workflowNodes: Record<string, WorkflowNodeConfig>, nodeIds: string[], rootNodeId: string, includeRootDependencies?: boolean): Set<string>;
|
|
42
|
+
export declare function runControlWorkflowNode(nodeId: string, node: WorkflowNodeConfig, context: WorkflowTemplateContext): {
|
|
43
|
+
result: WorkflowNodeResult;
|
|
44
|
+
nextNodeId?: string;
|
|
45
|
+
ended?: boolean;
|
|
46
|
+
};
|
|
47
|
+
export declare function createSkippedWorkflowNodeResult(nodeId: string): WorkflowNodeResult;
|
|
48
|
+
export declare function getWorkflowNodeRunCondition(node: WorkflowNodeConfig): string | undefined;
|
|
49
|
+
export declare function getSkippedWorkflowDependencies(node: WorkflowNodeConfig, nodes: Record<string, WorkflowNodeResult>): string[];
|
|
50
|
+
export declare function getWorkflowNodeSkipReason(node: WorkflowNodeConfig, context: WorkflowTemplateContext): string | undefined;
|
|
51
|
+
//# sourceMappingURL=planning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planning.d.ts","sourceRoot":"","sources":["../../../src/lib/workflow/planning.ts"],"names":[],"mappings":"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"}
|