@crewx/workflow 0.3.3 → 0.3.4
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/SKILL.md +263 -75
- package/dist/src/file-lock.d.ts +9 -0
- package/dist/src/file-lock.d.ts.map +1 -0
- package/dist/src/file-lock.js +97 -0
- package/dist/src/file-lock.js.map +1 -0
- package/dist/src/run-manager.d.ts +2 -0
- package/dist/src/run-manager.d.ts.map +1 -1
- package/dist/src/run-manager.js +100 -55
- package/dist/src/run-manager.js.map +1 -1
- package/package.json +2 -1
package/SKILL.md
CHANGED
|
@@ -3,6 +3,7 @@ name: crewx/workflow
|
|
|
3
3
|
description: Workflow management built-in tool. List, view details (with Mermaid), validate syntax, and manage execution state.
|
|
4
4
|
argument-hint: "<list|show|validate|run> [args]"
|
|
5
5
|
metadata:
|
|
6
|
+
version: 0.3.3
|
|
6
7
|
built-in: true
|
|
7
8
|
entrypoint: cli.ts
|
|
8
9
|
schema: workflow-schema.json
|
|
@@ -10,104 +11,156 @@ metadata:
|
|
|
10
11
|
|
|
11
12
|
# CrewX Workflow
|
|
12
13
|
|
|
13
|
-
A built-in tool for managing agent collaboration flows using **semantic workflow YAML**.
|
|
14
|
+
A built-in tool for managing agent collaboration flows using **semantic workflow YAML**. Define multi-agent processes as directed graphs, visualize them as Mermaid diagrams, validate syntax, and track execution state.
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
- "Show available workflows" / "List workflows"
|
|
19
|
+
- "Show me the workflow diagram" / "Visualize the dev process"
|
|
20
|
+
- "Validate my workflow YAML"
|
|
21
|
+
- "Start the code-review workflow" / "Execute the next step"
|
|
22
|
+
- "What's the current state of the running workflow?"
|
|
23
|
+
- When you need to orchestrate multiple agents in a defined sequence
|
|
24
|
+
- When you want to design a reusable collaboration recipe
|
|
25
|
+
|
|
26
|
+
## Quick Start
|
|
16
27
|
|
|
17
28
|
```bash
|
|
18
|
-
# List workflows
|
|
29
|
+
# List all workflows
|
|
19
30
|
crewx workflow list
|
|
20
|
-
crewx workflow list --json
|
|
21
31
|
|
|
22
|
-
#
|
|
23
|
-
crewx workflow show standard-dev-core
|
|
32
|
+
# View workflow details with Mermaid diagram
|
|
24
33
|
crewx workflow show standard-dev-core --mermaid
|
|
25
34
|
|
|
26
|
-
# Validate
|
|
35
|
+
# Validate all workflow files
|
|
27
36
|
crewx workflow validate
|
|
28
|
-
|
|
37
|
+
|
|
38
|
+
# Start a workflow execution
|
|
39
|
+
crewx workflow run start standard-dev-core --set goal="implement feature X"
|
|
40
|
+
|
|
41
|
+
# Move to a node
|
|
42
|
+
crewx workflow run node <exec-id> research
|
|
43
|
+
|
|
44
|
+
# Check execution state
|
|
45
|
+
crewx workflow run state <exec-id>
|
|
29
46
|
```
|
|
30
47
|
|
|
31
|
-
##
|
|
48
|
+
## Commands
|
|
32
49
|
|
|
33
|
-
|
|
34
|
-
|---------|--------|
|
|
35
|
-
| `list` | Parse workflows/*.yaml -> output list (name, node count, agents) |
|
|
36
|
-
| `list --json` | Output in JSON format |
|
|
37
|
-
| `show <id\|file>` | Output workflow detail as text |
|
|
38
|
-
| `show <id\|file> --mermaid` | Output Mermaid code to stdout |
|
|
39
|
-
| `validate` | Validate all files in workflows/ |
|
|
40
|
-
| `validate <id\|file>` | Validate a specific file |
|
|
41
|
-
| `run start <id\|file>` | Create workflow execution (`--set key=value` supported) |
|
|
42
|
-
| `run state <exec-id>` | Query execution state (`--set key=value` for writing, `--set key=-` for stdin pipe) |
|
|
43
|
-
| `run node <exec-id> <node-id>` | Move to current node + track completed_nodes |
|
|
44
|
-
| `run reset <exec-id>` | Restore execution state to initial_state |
|
|
45
|
-
| `run list` | List all executions |
|
|
50
|
+
### `workflow list`
|
|
46
51
|
|
|
47
|
-
|
|
52
|
+
Scans `workflows/*.yaml` and outputs all workflow definitions.
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
```bash
|
|
55
|
+
crewx workflow list # Human-readable table
|
|
56
|
+
crewx workflow list --json # JSON output
|
|
57
|
+
```
|
|
53
58
|
|
|
54
|
-
|
|
59
|
+
### `workflow show <id|file>`
|
|
55
60
|
|
|
56
|
-
|
|
61
|
+
Displays workflow details: metadata, nodes, agents, and optionally a Mermaid diagram.
|
|
57
62
|
|
|
58
63
|
```bash
|
|
59
|
-
|
|
64
|
+
crewx workflow show standard-dev-core
|
|
65
|
+
crewx workflow show standard-dev-core --mermaid # Include Mermaid code
|
|
66
|
+
crewx workflow show standard-dev-core --json # JSON output
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### `workflow validate [file]`
|
|
70
|
+
|
|
71
|
+
Three-phase validation: JSON Schema -> required fields -> reference integrity (node references, agent existence).
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
crewx workflow validate # Validate all files in workflows/
|
|
75
|
+
crewx workflow validate workflows/standard-dev.yaml # Validate a specific file
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### `workflow run start <id|file>`
|
|
79
|
+
|
|
80
|
+
Creates a new execution instance. State is stored as a JSON file in `.crewx/workflow-runs/`.
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
crewx workflow run start standard-dev-core
|
|
84
|
+
crewx workflow run start standard-dev-core --set goal="build auth module"
|
|
60
85
|
crewx workflow run start workflows/idea-validation.yaml
|
|
61
|
-
|
|
86
|
+
```
|
|
62
87
|
|
|
63
|
-
|
|
64
|
-
crewx workflow run state idea-validation-1711100000000
|
|
65
|
-
crewx workflow run state idea-validation-1711100000000 --set result="completed"
|
|
88
|
+
### `workflow run state <exec-id>`
|
|
66
89
|
|
|
67
|
-
|
|
68
|
-
echo "Long analysis result..." | crewx workflow run state <exec-id> --set analysis=-
|
|
90
|
+
Query or modify execution state.
|
|
69
91
|
|
|
70
|
-
|
|
71
|
-
crewx workflow run
|
|
72
|
-
crewx workflow run
|
|
92
|
+
```bash
|
|
93
|
+
crewx workflow run state wfr_abc12345 # View state
|
|
94
|
+
crewx workflow run state wfr_abc12345 --set result="completed" # Set a value
|
|
95
|
+
echo "Long text..." | crewx workflow run state wfr_abc12345 --set analysis=- # Pipe via stdin
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### `workflow run node <exec-id> <node-id>`
|
|
99
|
+
|
|
100
|
+
Move to a node: sets `current_node` and appends to `completed_nodes`. For `agent_task` nodes, triggers agent execution via `crewx q/x`.
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
crewx workflow run node wfr_abc12345 research
|
|
104
|
+
crewx workflow run node wfr_abc12345 end
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### `workflow run reset <exec-id>`
|
|
108
|
+
|
|
109
|
+
Restores execution state to `initial_state`.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
crewx workflow run reset wfr_abc12345
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### `workflow run list`
|
|
73
116
|
|
|
74
|
-
|
|
75
|
-
crewx workflow run reset <exec-id>
|
|
117
|
+
Lists all execution instances.
|
|
76
118
|
|
|
77
|
-
|
|
119
|
+
```bash
|
|
78
120
|
crewx workflow run list
|
|
79
121
|
crewx workflow run list --json
|
|
80
122
|
```
|
|
81
123
|
|
|
82
124
|
All `run` subcommands support the `--json` flag.
|
|
83
125
|
|
|
84
|
-
##
|
|
126
|
+
## Name Resolution
|
|
85
127
|
|
|
86
|
-
|
|
87
|
-
Always verify available agents before designing a workflow.
|
|
128
|
+
`<id|file>` resolves in this order:
|
|
88
129
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
130
|
+
1. `.yaml` / `.yml` extension -> treated as direct file path
|
|
131
|
+
2. Workflow ID -> scans all YAML files for matching `workflows:` key
|
|
132
|
+
3. Filename slug -> `workflows/<name>.yaml`
|
|
92
133
|
|
|
93
|
-
##
|
|
134
|
+
## Workflow YAML Structure
|
|
94
135
|
|
|
95
136
|
```yaml
|
|
96
137
|
workflows:
|
|
97
138
|
process-name:
|
|
98
139
|
metadata:
|
|
99
140
|
name: "Process Name"
|
|
100
|
-
description: "
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
141
|
+
description: "What this workflow does"
|
|
142
|
+
version: "1.0"
|
|
143
|
+
timeout: 300 # Global timeout (seconds)
|
|
144
|
+
max_iterations: 50 # Max node transitions
|
|
145
|
+
state: # Initial state variables
|
|
146
|
+
goal: ""
|
|
147
|
+
result: ""
|
|
105
148
|
nodes:
|
|
106
149
|
step_id:
|
|
107
150
|
type: agent_task
|
|
108
151
|
...
|
|
109
152
|
```
|
|
110
153
|
|
|
154
|
+
### Top-Level Fields
|
|
155
|
+
|
|
156
|
+
| Field | Type | Required | Description |
|
|
157
|
+
|-------|------|----------|-------------|
|
|
158
|
+
| `metadata` | object | No | `name` (required), `description`, `version` |
|
|
159
|
+
| `timeout` | number | No | Global timeout in seconds |
|
|
160
|
+
| `max_iterations` | number | No | Maximum node transitions |
|
|
161
|
+
| `state` | object | No | Initial state variables (accessible via `{{var}}`) |
|
|
162
|
+
| `nodes` | object | **Yes** | Node definitions (keyed by node ID) |
|
|
163
|
+
|
|
111
164
|
## Node Types
|
|
112
165
|
|
|
113
166
|
### `agent_task` -- Assign task to an agent
|
|
@@ -116,32 +169,32 @@ workflows:
|
|
|
116
169
|
analyze:
|
|
117
170
|
type: agent_task
|
|
118
171
|
agent: tax_lawyer
|
|
119
|
-
mode: query
|
|
172
|
+
mode: query # query (read-only) | execute (read-write)
|
|
120
173
|
input: |
|
|
121
174
|
Analyze the tax law: {{user_input}}
|
|
122
|
-
output: law_analysis
|
|
175
|
+
output: law_analysis # State key to store the result
|
|
123
176
|
next: calculate
|
|
124
177
|
```
|
|
125
178
|
|
|
126
|
-
### `parallel` --
|
|
179
|
+
### `parallel` -- Fan-out to concurrent branches
|
|
127
180
|
|
|
128
181
|
```yaml
|
|
129
182
|
parallel_review:
|
|
130
183
|
type: parallel
|
|
131
184
|
branches: [cpo_review, persona_survey]
|
|
132
|
-
join: merge_feedback
|
|
185
|
+
join: merge_feedback # Node to converge at
|
|
133
186
|
```
|
|
134
187
|
|
|
135
|
-
### `join` --
|
|
188
|
+
### `join` -- Fan-in from parallel branches
|
|
136
189
|
|
|
137
190
|
```yaml
|
|
138
191
|
merge_feedback:
|
|
139
192
|
type: join
|
|
140
|
-
on_failure: continue
|
|
193
|
+
on_failure: continue # continue even if a branch failed
|
|
141
194
|
next: check_quality
|
|
142
195
|
```
|
|
143
196
|
|
|
144
|
-
### `branch` -- Conditional
|
|
197
|
+
### `branch` -- Conditional routing
|
|
145
198
|
|
|
146
199
|
```yaml
|
|
147
200
|
check_approval:
|
|
@@ -153,7 +206,7 @@ check_approval:
|
|
|
153
206
|
default: persona_survey
|
|
154
207
|
```
|
|
155
208
|
|
|
156
|
-
### `approval` -- Wait for human
|
|
209
|
+
### `approval` -- Wait for human decision
|
|
157
210
|
|
|
158
211
|
```yaml
|
|
159
212
|
human_check:
|
|
@@ -166,21 +219,21 @@ human_check:
|
|
|
166
219
|
|
|
167
220
|
### `expression` -- Safe state computation
|
|
168
221
|
|
|
169
|
-
Evaluates safe expressions (arithmetic, string
|
|
222
|
+
Evaluates safe expressions (arithmetic, string, comparison, ternary) and stores results in state. No agent call -- runs instantly.
|
|
170
223
|
|
|
171
|
-
**Allowed
|
|
224
|
+
**Allowed:** `+`, `-`, `*`, `/`, `%`, `>`, `<`, `>=`, `<=`, `==`, `!=`, `&&`, `||`, `!`, `? :`, `()`, number/string/boolean literals, state variable references.
|
|
172
225
|
|
|
173
226
|
**Blocked:** `require`, `import`, `process`, `eval`, `Function`, `.` (property access), `[` (bracket access), `__proto__`, `constructor`, `prototype`.
|
|
174
227
|
|
|
175
228
|
```yaml
|
|
176
|
-
# Increment
|
|
229
|
+
# Increment counter
|
|
177
230
|
increment_fix:
|
|
178
231
|
type: expression
|
|
179
232
|
set:
|
|
180
233
|
fix_count: "fix_count + 1"
|
|
181
234
|
next: fix
|
|
182
235
|
|
|
183
|
-
# Multiple keys
|
|
236
|
+
# Multiple keys
|
|
184
237
|
calculate:
|
|
185
238
|
type: expression
|
|
186
239
|
set:
|
|
@@ -189,7 +242,7 @@ calculate:
|
|
|
189
242
|
summary: "wi_id + ' - attempt ' + fix_count"
|
|
190
243
|
next: check_score
|
|
191
244
|
|
|
192
|
-
# Ternary
|
|
245
|
+
# Ternary
|
|
193
246
|
decide:
|
|
194
247
|
type: expression
|
|
195
248
|
set:
|
|
@@ -206,16 +259,151 @@ end:
|
|
|
206
259
|
type: end
|
|
207
260
|
```
|
|
208
261
|
|
|
209
|
-
##
|
|
210
|
-
|
|
211
|
-
Use `{{variable_name}}` in `input` to reference `state` values.
|
|
212
|
-
|
|
213
|
-
## Common Optional Fields for Nodes
|
|
262
|
+
## Common Node Options
|
|
214
263
|
|
|
215
264
|
| Field | Type | Description |
|
|
216
265
|
|-------|------|-------------|
|
|
217
|
-
| `timeout` | number |
|
|
218
|
-
| `retry` | object | `{ max, delay: "exponential"\|"fixed" }` |
|
|
219
|
-
| `hooks` | string[] | Hook packages to apply
|
|
266
|
+
| `timeout` | number | Per-node timeout in seconds |
|
|
267
|
+
| `retry` | object | `{ max, delay: "exponential" \| "fixed" }` |
|
|
268
|
+
| `hooks` | string[] | Hook packages to apply |
|
|
220
269
|
| `on_failure` | string | `fail_fast` \| `continue` \| `ignore` |
|
|
221
270
|
| `on_error` | object | `{ handler?, fallback_node? }` |
|
|
271
|
+
| `comment` | string | Human-readable annotation |
|
|
272
|
+
|
|
273
|
+
## Template Syntax
|
|
274
|
+
|
|
275
|
+
Use `{{variable_name}}` in `input` fields to reference `state` values.
|
|
276
|
+
|
|
277
|
+
```yaml
|
|
278
|
+
state:
|
|
279
|
+
goal: "implement auth"
|
|
280
|
+
nodes:
|
|
281
|
+
plan:
|
|
282
|
+
type: agent_task
|
|
283
|
+
agent: architect
|
|
284
|
+
input: "Create a plan for: {{goal}}"
|
|
285
|
+
output: plan_result
|
|
286
|
+
next: implement
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Programmatic API
|
|
290
|
+
|
|
291
|
+
### WorkflowEngine
|
|
292
|
+
|
|
293
|
+
YAML loading, validation, and Mermaid generation. Used by both CLI and server.
|
|
294
|
+
|
|
295
|
+
```typescript
|
|
296
|
+
import { WorkflowEngine } from '@crewx/workflow';
|
|
297
|
+
|
|
298
|
+
const engine = new WorkflowEngine();
|
|
299
|
+
|
|
300
|
+
// Load all workflows from a directory
|
|
301
|
+
const workflows: LoadedWorkflow[] = engine.loadWorkflows('workflows/');
|
|
302
|
+
|
|
303
|
+
// Validate a workflow file (schema -> fields -> references)
|
|
304
|
+
const result = engine.validateFile('workflows/standard-dev.yaml');
|
|
305
|
+
// { success: boolean; results: ValidationResult[]; error?: string }
|
|
306
|
+
|
|
307
|
+
// Generate Mermaid diagram
|
|
308
|
+
const mermaid: string = engine.toMermaid(spec);
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### RunManager
|
|
312
|
+
|
|
313
|
+
Execution state management. Stores state as JSON files in `.crewx/workflow-runs/`.
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
import { RunManager } from '@crewx/workflow';
|
|
317
|
+
|
|
318
|
+
const manager = new RunManager();
|
|
319
|
+
|
|
320
|
+
// Start execution
|
|
321
|
+
const exec: RunExecution = manager.start('workflows/dev.yaml', 'dev-core', { goal: 'build feature' });
|
|
322
|
+
|
|
323
|
+
// Execute a node (triggers agent call for agent_task nodes)
|
|
324
|
+
const updated: RunExecution = await manager.executeNode(exec.id, 'research');
|
|
325
|
+
|
|
326
|
+
// Move to node without executing
|
|
327
|
+
const moved: RunExecution = manager.moveNode(exec.id, 'implement');
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Key Types
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
type NodeType = 'agent_task' | 'parallel' | 'join' | 'branch' | 'approval' | 'expression' | 'end';
|
|
334
|
+
|
|
335
|
+
interface RunExecution {
|
|
336
|
+
id: string; // 'wfr_{nanoid(8)}'
|
|
337
|
+
workflow_id: string;
|
|
338
|
+
workflow_file: string;
|
|
339
|
+
created_at: string; // ISO 8601
|
|
340
|
+
updated_at: string;
|
|
341
|
+
current_node: string;
|
|
342
|
+
completed_nodes: string[];
|
|
343
|
+
state: Record<string, unknown>;
|
|
344
|
+
initial_state: Record<string, unknown>;
|
|
345
|
+
status?: 'running' | 'completed' | 'failed';
|
|
346
|
+
}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
## Architecture
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
[CLI] crewx workflow list/show/validate
|
|
353
|
+
|
|
|
354
|
+
v
|
|
355
|
+
WorkflowEngine <-- YAML parsing, validation, Mermaid
|
|
356
|
+
|
|
|
357
|
+
v
|
|
358
|
+
workflows/*.yaml (source files)
|
|
359
|
+
|
|
360
|
+
[CLI] crewx workflow run start/node/state
|
|
361
|
+
|
|
|
362
|
+
v
|
|
363
|
+
RunManager <-- execution state management
|
|
364
|
+
|
|
|
365
|
+
+---> .crewx/workflow-runs/wfr_*.json (state files)
|
|
366
|
+
+---> crewx q/x (agent invocation for agent_task nodes)
|
|
367
|
+
|
|
368
|
+
[Server] GET /api/v1/workflows[/:id]
|
|
369
|
+
|
|
|
370
|
+
v
|
|
371
|
+
WorkflowService --> fs (YAML read) + WorkflowEngine.toMermaid()
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
> **Note:** The server only uses `WorkflowEngine.toMermaid()`. YAML listing/parsing is handled by the server's own `WorkflowService`. `RunManager` (execution state) is CLI-only.
|
|
375
|
+
|
|
376
|
+
## Environment Variables
|
|
377
|
+
|
|
378
|
+
| Variable | Description | Default |
|
|
379
|
+
|----------|-------------|---------|
|
|
380
|
+
| `CREWX_WORKSPACE` | Workspace directory (where `workflows/` lives) | `.` |
|
|
381
|
+
| `CREWX_CLI` | CrewX CLI path (for agent execution in `run node`) | `npx crewx` |
|
|
382
|
+
| `CREWX_WORKFLOW_TIMEOUT` | Node execution timeout (ms) | `1800000` (30 min) |
|
|
383
|
+
| `CREWX_CONFIG` | Custom config file path | `crewx.yaml` |
|
|
384
|
+
|
|
385
|
+
## WARNING: Check Agent List Before Designing
|
|
386
|
+
|
|
387
|
+
**Specifying a non-existent agent in a workflow will prevent execution!** Always verify available agents first:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
crewx agent ls
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
## File Layout
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
workflows/ # Workflow YAML sources
|
|
397
|
+
standard-dev.yaml
|
|
398
|
+
idea-validation.yaml
|
|
399
|
+
.crewx/workflow-runs/ # Execution state (auto-created)
|
|
400
|
+
wfr_abc12345.json
|
|
401
|
+
packages/built-in/workflow/ # Package source
|
|
402
|
+
cli.ts # CLI entrypoint
|
|
403
|
+
src/
|
|
404
|
+
types.ts # TypeScript interfaces
|
|
405
|
+
engine.ts # WorkflowEngine
|
|
406
|
+
mermaid.ts # Mermaid diagram renderer
|
|
407
|
+
run-manager.ts # RunManager
|
|
408
|
+
workflow-schema.json # JSON Schema for validation
|
|
409
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class FileLock {
|
|
2
|
+
readonly lockDir: string;
|
|
3
|
+
constructor(filePath: string);
|
|
4
|
+
acquire(timeoutMs?: number): void;
|
|
5
|
+
acquireAsync(timeoutMs?: number): Promise<void>;
|
|
6
|
+
release(): void;
|
|
7
|
+
private removeIfStale;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=file-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../src/file-lock.ts"],"names":[],"mappings":"AAcA,qBAAa,QAAQ;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,SAAS,SAAqB,GAAG,IAAI;IAoBvC,YAAY,CAAC,SAAS,SAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjE,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;CAUtB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FileLock = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const DEFAULT_TIMEOUT_MS = 10000;
|
|
39
|
+
const RETRY_INTERVAL_MS = 50;
|
|
40
|
+
const STALE_THRESHOLD_MS = 30000;
|
|
41
|
+
class FileLock {
|
|
42
|
+
constructor(filePath) {
|
|
43
|
+
this.lockDir = filePath + '.lock';
|
|
44
|
+
}
|
|
45
|
+
acquire(timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
46
|
+
const deadline = Date.now() + timeoutMs;
|
|
47
|
+
while (Date.now() < deadline) {
|
|
48
|
+
try {
|
|
49
|
+
fs.mkdirSync(this.lockDir);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
if (e.code !== 'EEXIST')
|
|
54
|
+
throw e;
|
|
55
|
+
this.removeIfStale();
|
|
56
|
+
const until = Date.now() + RETRY_INTERVAL_MS + Math.random() * RETRY_INTERVAL_MS;
|
|
57
|
+
while (Date.now() < until) { }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
throw new Error(`FileLock timeout after ${timeoutMs}ms: ${this.lockDir}`);
|
|
61
|
+
}
|
|
62
|
+
async acquireAsync(timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
63
|
+
const deadline = Date.now() + timeoutMs;
|
|
64
|
+
while (Date.now() < deadline) {
|
|
65
|
+
try {
|
|
66
|
+
fs.mkdirSync(this.lockDir);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
if (e.code !== 'EEXIST')
|
|
71
|
+
throw e;
|
|
72
|
+
this.removeIfStale();
|
|
73
|
+
await new Promise(resolve => setTimeout(resolve, RETRY_INTERVAL_MS + Math.random() * RETRY_INTERVAL_MS));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
throw new Error(`FileLock timeout after ${timeoutMs}ms: ${this.lockDir}`);
|
|
77
|
+
}
|
|
78
|
+
release() {
|
|
79
|
+
try {
|
|
80
|
+
fs.rmdirSync(this.lockDir);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
removeIfStale() {
|
|
86
|
+
try {
|
|
87
|
+
const stat = fs.statSync(this.lockDir);
|
|
88
|
+
if (Date.now() - stat.mtimeMs > STALE_THRESHOLD_MS) {
|
|
89
|
+
fs.rmdirSync(this.lockDir);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.FileLock = FileLock;
|
|
97
|
+
//# sourceMappingURL=file-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../src/file-lock.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,uCAAyB;AAEzB,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAClC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAElC,MAAa,QAAQ;IAGnB,YAAY,QAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,CAAC;IAGD,OAAO,CAAC,SAAS,GAAG,kBAAkB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;gBAErB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,iBAAiB,CAAC;gBACjF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAY,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAGD,KAAK,CAAC,YAAY,CAAC,SAAS,GAAG,kBAAkB;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAChC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAGD,OAAO;QACL,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;gBACnD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;CACF;AAlED,4BAkEC"}
|
|
@@ -11,6 +11,8 @@ export declare class RunManager {
|
|
|
11
11
|
private validateExecId;
|
|
12
12
|
loadRun(execId: string): RunExecution | null;
|
|
13
13
|
saveRun(run: RunExecution): void;
|
|
14
|
+
atomicUpdate(execId: string, updater: (run: RunExecution) => void): RunExecution;
|
|
15
|
+
atomicUpdateAsync(execId: string, updater: (run: RunExecution) => void): Promise<RunExecution>;
|
|
14
16
|
private loadWorkflowYaml;
|
|
15
17
|
start(yamlPath: string, workflowId?: string, overrides?: Record<string, string>): RunExecution;
|
|
16
18
|
getState(execId: string): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/run-manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/run-manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAO1D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BnE;AAKD,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAMjD;AAKD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE5F;AA+QD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAIlF;AAMD,qBAAa,UAAU;IAGT,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEjB,OAAO,GAAE,MAA+B;IAO5D,aAAa,IAAI,IAAI;IAMrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAa5C,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAWhC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,GAAG,YAAY;IAqB1E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBpG,OAAO,CAAC,gBAAgB;IAQxB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY;IAgD9F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQjD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAM/D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;IAShD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAoMrG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAQnC,QAAQ,IAAI,YAAY,EAAE;CAqB3B"}
|
package/dist/src/run-manager.js
CHANGED
|
@@ -41,8 +41,9 @@ exports.safeEvaluate = safeEvaluate;
|
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const yaml = __importStar(require("js-yaml"));
|
|
44
|
-
const
|
|
44
|
+
const cp = __importStar(require("child_process"));
|
|
45
45
|
const sdk_1 = require("@crewx/sdk");
|
|
46
|
+
const file_lock_1 = require("./file-lock");
|
|
46
47
|
function parseSetArgs(args) {
|
|
47
48
|
const sets = {};
|
|
48
49
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -372,6 +373,42 @@ class RunManager {
|
|
|
372
373
|
const filePath = path.join(this.resolvedDir, `${run.id}.json`);
|
|
373
374
|
fs.writeFileSync(filePath, JSON.stringify(run, null, 2) + '\n', 'utf-8');
|
|
374
375
|
}
|
|
376
|
+
atomicUpdate(execId, updater) {
|
|
377
|
+
this.validateExecId(execId);
|
|
378
|
+
this.ensureRunsDir();
|
|
379
|
+
const filePath = path.join(this.resolvedDir, `${execId}.json`);
|
|
380
|
+
const lock = new file_lock_1.FileLock(filePath);
|
|
381
|
+
lock.acquire();
|
|
382
|
+
try {
|
|
383
|
+
const run = this.loadRun(execId);
|
|
384
|
+
if (!run)
|
|
385
|
+
throw new Error(`Execution not found: ${execId}`);
|
|
386
|
+
updater(run);
|
|
387
|
+
this.saveRun(run);
|
|
388
|
+
return run;
|
|
389
|
+
}
|
|
390
|
+
finally {
|
|
391
|
+
lock.release();
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
async atomicUpdateAsync(execId, updater) {
|
|
395
|
+
this.validateExecId(execId);
|
|
396
|
+
this.ensureRunsDir();
|
|
397
|
+
const filePath = path.join(this.resolvedDir, `${execId}.json`);
|
|
398
|
+
const lock = new file_lock_1.FileLock(filePath);
|
|
399
|
+
await lock.acquireAsync();
|
|
400
|
+
try {
|
|
401
|
+
const run = this.loadRun(execId);
|
|
402
|
+
if (!run)
|
|
403
|
+
throw new Error(`Execution not found: ${execId}`);
|
|
404
|
+
updater(run);
|
|
405
|
+
this.saveRun(run);
|
|
406
|
+
return run;
|
|
407
|
+
}
|
|
408
|
+
finally {
|
|
409
|
+
lock.release();
|
|
410
|
+
}
|
|
411
|
+
}
|
|
375
412
|
loadWorkflowYaml(yamlPath) {
|
|
376
413
|
if (!fs.existsSync(yamlPath))
|
|
377
414
|
return null;
|
|
@@ -430,45 +467,40 @@ class RunManager {
|
|
|
430
467
|
return run.state;
|
|
431
468
|
}
|
|
432
469
|
setState(execId, updates) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
}
|
|
437
|
-
Object.assign(run.state, updates);
|
|
438
|
-
this.saveRun(run);
|
|
470
|
+
this.atomicUpdate(execId, (run) => {
|
|
471
|
+
Object.assign(run.state, updates);
|
|
472
|
+
});
|
|
439
473
|
}
|
|
440
474
|
moveNode(execId, nodeId) {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
}
|
|
448
|
-
run.current_node = nodeId;
|
|
449
|
-
this.saveRun(run);
|
|
450
|
-
return run;
|
|
475
|
+
return this.atomicUpdate(execId, (run) => {
|
|
476
|
+
if (run.current_node && !run.completed_nodes.includes(run.current_node)) {
|
|
477
|
+
run.completed_nodes.push(run.current_node);
|
|
478
|
+
}
|
|
479
|
+
run.current_node = nodeId;
|
|
480
|
+
});
|
|
451
481
|
}
|
|
452
482
|
async executeNode(execId, nodeId, opts) {
|
|
453
|
-
const
|
|
454
|
-
if (!
|
|
483
|
+
const snapshot = this.loadRun(execId);
|
|
484
|
+
if (!snapshot) {
|
|
455
485
|
throw new Error(`Execution not found: ${execId}`);
|
|
456
486
|
}
|
|
457
|
-
const doc = this.loadWorkflowYaml(
|
|
487
|
+
const doc = this.loadWorkflowYaml(snapshot.workflow_file);
|
|
458
488
|
if (!doc) {
|
|
459
|
-
throw new Error(`Failed to load workflow file: ${
|
|
489
|
+
throw new Error(`Failed to load workflow file: ${snapshot.workflow_file}`);
|
|
460
490
|
}
|
|
461
|
-
const spec = doc.workflows[
|
|
491
|
+
const spec = doc.workflows[snapshot.workflow_id];
|
|
462
492
|
if (!spec) {
|
|
463
|
-
throw new Error(`Workflow "${
|
|
493
|
+
throw new Error(`Workflow "${snapshot.workflow_id}" not found in ${snapshot.workflow_file}`);
|
|
464
494
|
}
|
|
465
495
|
const nodeSpec = spec.nodes?.[nodeId];
|
|
466
496
|
if (!nodeSpec) {
|
|
467
|
-
throw new Error(`Node "${nodeId}" not found in workflow "${
|
|
497
|
+
throw new Error(`Node "${nodeId}" not found in workflow "${snapshot.workflow_id}"`);
|
|
468
498
|
}
|
|
469
|
-
const prevNode =
|
|
470
|
-
|
|
471
|
-
|
|
499
|
+
const prevNode = snapshot.current_node;
|
|
500
|
+
const stateUpdates = {};
|
|
501
|
+
const nodesToComplete = [];
|
|
502
|
+
let currentNode = nodeId;
|
|
503
|
+
let status;
|
|
472
504
|
try {
|
|
473
505
|
switch (nodeSpec.type) {
|
|
474
506
|
case 'agent_task': {
|
|
@@ -476,7 +508,7 @@ class RunManager {
|
|
|
476
508
|
throw new Error(`Node "${nodeId}" is agent_task but has no agent defined`);
|
|
477
509
|
}
|
|
478
510
|
const input = nodeSpec.input
|
|
479
|
-
? interpolateTemplate(nodeSpec.input,
|
|
511
|
+
? interpolateTemplate(nodeSpec.input, snapshot.state)
|
|
480
512
|
: '';
|
|
481
513
|
const mode = nodeSpec.mode === 'query' ? 'q' : 'x';
|
|
482
514
|
const prompt = `@${nodeSpec.agent} ${input}`;
|
|
@@ -490,11 +522,17 @@ class RunManager {
|
|
|
490
522
|
const bin = cliParts[0];
|
|
491
523
|
const baseArgs = cliParts.slice(1);
|
|
492
524
|
const nodeTimeout = Number(process.env.CREWX_WORKFLOW_TIMEOUT) || 1800000;
|
|
493
|
-
const result =
|
|
525
|
+
const result = cp.spawnSync(bin, [...baseArgs, mode, prompt, `--thread=workflow:${snapshot.id}`], {
|
|
494
526
|
encoding: 'utf-8',
|
|
495
527
|
timeout: nodeTimeout,
|
|
496
528
|
cwd: process.cwd(),
|
|
497
529
|
stdio: ['inherit', 'pipe', 'pipe'],
|
|
530
|
+
env: {
|
|
531
|
+
...process.env,
|
|
532
|
+
CREWX_WORKFLOW_EXEC_ID: snapshot.id,
|
|
533
|
+
CREWX_WORKFLOW_NODE_ID: nodeId,
|
|
534
|
+
CREWX_WORKFLOW_ID: snapshot.workflow_id,
|
|
535
|
+
},
|
|
498
536
|
});
|
|
499
537
|
if (result.error) {
|
|
500
538
|
throw result.error;
|
|
@@ -505,7 +543,7 @@ class RunManager {
|
|
|
505
543
|
}
|
|
506
544
|
const output = result.stdout?.trim() ?? '';
|
|
507
545
|
if (nodeSpec.output) {
|
|
508
|
-
|
|
546
|
+
stateUpdates[nodeSpec.output] = output;
|
|
509
547
|
console.log(`Result stored in state.${nodeSpec.output} (${output.length} chars)`);
|
|
510
548
|
}
|
|
511
549
|
break;
|
|
@@ -515,15 +553,15 @@ class RunManager {
|
|
|
515
553
|
throw new Error(`Branch node "${nodeId}" has no condition`);
|
|
516
554
|
}
|
|
517
555
|
const evalFn = new Function('state', `return (${nodeSpec.condition});`);
|
|
518
|
-
const condResult = String(evalFn(
|
|
556
|
+
const condResult = String(evalFn(snapshot.state));
|
|
519
557
|
const branches = nodeSpec.branches;
|
|
520
558
|
const targetNode = branches?.[condResult] ?? nodeSpec.default;
|
|
521
559
|
if (!targetNode) {
|
|
522
560
|
throw new Error(`Branch "${nodeId}": no matching branch for "${condResult}" and no default`);
|
|
523
561
|
}
|
|
524
562
|
console.log(`Branch "${nodeId}": condition="${nodeSpec.condition}" → ${condResult} → ${targetNode}`);
|
|
525
|
-
|
|
526
|
-
|
|
563
|
+
nodesToComplete.push(nodeId);
|
|
564
|
+
currentNode = targetNode;
|
|
527
565
|
break;
|
|
528
566
|
}
|
|
529
567
|
case 'parallel': {
|
|
@@ -535,11 +573,11 @@ class RunManager {
|
|
|
535
573
|
break;
|
|
536
574
|
}
|
|
537
575
|
case 'join': {
|
|
538
|
-
console.log(`Join "${nodeId}": completed_nodes = [${
|
|
576
|
+
console.log(`Join "${nodeId}": completed_nodes = [${snapshot.completed_nodes.join(', ')}]`);
|
|
539
577
|
break;
|
|
540
578
|
}
|
|
541
579
|
case 'end': {
|
|
542
|
-
|
|
580
|
+
status = 'completed';
|
|
543
581
|
console.log(`End "${nodeId}": workflow execution completed`);
|
|
544
582
|
break;
|
|
545
583
|
}
|
|
@@ -548,14 +586,14 @@ class RunManager {
|
|
|
548
586
|
throw new Error(`Expression node "${nodeId}" requires "set" field`);
|
|
549
587
|
}
|
|
550
588
|
for (const [key, expr] of Object.entries(nodeSpec.set)) {
|
|
551
|
-
const result = safeEvaluate(String(expr),
|
|
552
|
-
|
|
589
|
+
const result = safeEvaluate(String(expr), snapshot.state);
|
|
590
|
+
stateUpdates[key] = String(result);
|
|
553
591
|
console.log(` ${key} = ${result}`);
|
|
554
592
|
}
|
|
555
593
|
console.log(`Expression "${nodeId}": set ${Object.keys(nodeSpec.set).join(', ')}`);
|
|
556
594
|
if (nodeSpec.next) {
|
|
557
|
-
|
|
558
|
-
|
|
595
|
+
nodesToComplete.push(nodeId);
|
|
596
|
+
currentNode = nodeSpec.next;
|
|
559
597
|
}
|
|
560
598
|
break;
|
|
561
599
|
}
|
|
@@ -568,26 +606,33 @@ class RunManager {
|
|
|
568
606
|
}
|
|
569
607
|
}
|
|
570
608
|
catch (e) {
|
|
571
|
-
|
|
572
|
-
|
|
609
|
+
await this.atomicUpdateAsync(execId, (run) => {
|
|
610
|
+
run.current_node = nodeId;
|
|
611
|
+
run.status = 'failed';
|
|
612
|
+
});
|
|
573
613
|
throw e;
|
|
574
614
|
}
|
|
575
|
-
|
|
576
|
-
run.
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
615
|
+
return this.atomicUpdateAsync(execId, (run) => {
|
|
616
|
+
Object.assign(run.state, stateUpdates);
|
|
617
|
+
for (const node of nodesToComplete) {
|
|
618
|
+
if (!run.completed_nodes.includes(node)) {
|
|
619
|
+
run.completed_nodes.push(node);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
if (prevNode && prevNode !== nodeId && !run.completed_nodes.includes(prevNode)) {
|
|
623
|
+
run.completed_nodes.push(prevNode);
|
|
624
|
+
}
|
|
625
|
+
run.current_node = currentNode;
|
|
626
|
+
if (status)
|
|
627
|
+
run.status = status;
|
|
628
|
+
});
|
|
580
629
|
}
|
|
581
630
|
reset(execId) {
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
run.current_node = '';
|
|
588
|
-
run.completed_nodes = [];
|
|
589
|
-
this.saveRun(run);
|
|
590
|
-
return run;
|
|
631
|
+
return this.atomicUpdate(execId, (run) => {
|
|
632
|
+
run.state = JSON.parse(JSON.stringify(run.initial_state));
|
|
633
|
+
run.current_node = '';
|
|
634
|
+
run.completed_nodes = [];
|
|
635
|
+
});
|
|
591
636
|
}
|
|
592
637
|
listRuns() {
|
|
593
638
|
this.ensureRunsDir();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/run-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/run-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewx/workflow",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Workflow engine for CrewX - list, show, validate workflows with Mermaid visualization",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/src/engine.js",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"@crewx/knowledge-core": "^0.1.3",
|
|
45
45
|
"@crewx/sdk": "*",
|
|
46
46
|
"@crewx/shared": "0.0.3",
|
|
47
|
+
"diff-sequences": "^29.6.3",
|
|
47
48
|
"js-yaml": "^4.1.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|