@litmers/cursorflow-orchestrator 0.1.8 → 0.1.9

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/CHANGELOG.md CHANGED
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.9] - 2025-12-21
9
+
10
+ ### Added
11
+ - **Configurable Timeout**: Support for `timeout` field in task JSON to handle complex tasks.
12
+ - **Improved Stdio Handling**: Optimized child process spawning with `ignore` stdin by default to prevent buffering issues.
13
+ - **Task Validation**: Robust pre-flight validation of task JSON configurations with helpful error messages.
14
+ - **Heartbeat Monitoring**: Real-time progress logging (elapsed time and bytes received) for long-running tasks.
15
+ - **Diagnostic Tools**: Added `scripts/patches/test-cursor-agent.js` for direct agent testing and `_cursorflow/tasks/minimal-test/` for isolation.
16
+ - **Enhanced Documentation**: New `docs/API.md` and `docs/TROUBLESHOOTING.md` with detailed configuration guides.
17
+
18
+ ### Fixed
19
+ - **Intervention Stability**: Redesigned intervention to be optional (`enableIntervention: true`) to ensure maximum stability for default runs.
20
+ - **Environment Safety**: Smarter `NODE_OPTIONS` handling that preserves user settings while removing problematic debugging flags.
21
+
22
+ ## [0.1.8] - 2025-12-21
23
+
24
+ ### Added
25
+ - **Interactive Dashboard**: Full-screen interactive terminal monitor with lane navigation.
26
+ - **Live Terminal Streaming**: Real-time streaming of `cursor-agent` output with scrollback support.
27
+ - **Human Intervention**: UI for sending manual prompts to running agents via `I` key.
28
+ - **PID Control**: Tracking of process IDs and force-kill (`K` key) functionality for stuck agents.
29
+ - **Improved Visualization**: Color-coded logs and "Next Action" status in monitor.
30
+
31
+ ## [0.1.7] - 2025-12-21
32
+
33
+ ### Added
34
+ - **Task Dependencies**: Implemented DAG (Directed Acyclic Graph) scheduler for complex workflows.
35
+ - **Automatic Branch Merging**: Dependent lanes now automatically merge their parents' branches before starting.
36
+ - **Deadlock Detection**: Prevention of circular task dependencies at startup.
37
+ - **Concurrency Control**: `maxConcurrentLanes` support in orchestrator.
38
+
8
39
  ## [0.1.6] - 2025-12-21
9
40
 
10
41
  ### Added
package/README.md CHANGED
@@ -9,360 +9,148 @@
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
10
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)
11
11
 
12
- ## Key Features
12
+ ## 🚀 Key Features
13
13
 
14
- - 🚀 **Parallel execution**: Run multiple lanes concurrently with Git worktrees
15
- - 🔍 **Automatic review**: AI-powered code review with iterative feedback
16
- - 📝 **Detailed logging**: Capture conversations, commits, and Git operations
17
- - 🔀 **Dependency management**: Automatic dependency gating and resume support
18
- - 🎯 **Per-lane ports**: Unique dev server ports for each lane
19
- - 💻 **Cursor integration**: Manage workflows directly inside the IDE with custom commands
20
- - 🛠️ **Config-driven**: Flexible project-specific configuration
21
- - 🔒 **Security-first**: Multi-layer automated security scanning before deployment
14
+ - **Parallel Execution**: Run multiple AI agents concurrently using isolated Git worktrees.
15
+ - 🔗 **Task Dependencies (DAG)**: Define complex workflows where tasks wait for and merge their dependencies automatically.
16
+ - 📊 **Interactive Dashboard**: A powerful terminal-based monitor to track all lanes, progress, and dependencies in real-time.
17
+ - 📺 **Live Terminal Streaming**: Watch the AI agent's output as it happens with scrollable history.
18
+ - 🙋 **Human Intervention**: Send direct messages to running agents to guide them or fix issues on the fly (requires `enableIntervention: true`).
19
+ - 🛡️ **PID Control**: Track and manage agent processes directly from the dashboard.
20
+ - 🔍 **Automatic Review**: AI-powered code review with iterative feedback loops.
21
+ - 🔀 **Smart Merging**: Automatically merge completed feature branches into subsequent dependent lanes.
22
+ - 🔒 **Security-First**: Automated security scanning and dependency policy enforcement.
22
23
 
23
- ## Quick Start
24
+ ## 🛠️ Quick Start
24
25
 
25
- ### Install
26
+ ### 1. Install
26
27
 
27
28
  ```bash
28
- # npm
29
+ # npm (recommended)
29
30
  npm install -g @litmers/cursorflow-orchestrator
30
-
31
- # pnpm (recommended)
32
- pnpm add -g @litmers/cursorflow-orchestrator
33
-
34
- # yarn
35
- yarn global add @litmers/cursorflow-orchestrator
36
31
  ```
37
32
 
38
- ### Requirements
39
-
40
- - **Node.js** >= 18.0.0
41
- - **Git** with worktree support
42
- - **cursor-agent CLI**: `npm install -g @cursor/agent`
43
-
44
- ### Initialize a project
33
+ ### 2. Initialize
45
34
 
46
35
  ```bash
47
36
  cd your-project
48
37
  cursorflow init --example
49
38
  ```
50
39
 
51
- This command:
52
- 1. Creates the `cursorflow.config.js` config file
53
- 2. Creates `_cursorflow/tasks/` and `_cursorflow/logs/` directories
54
- 3. Installs Cursor IDE commands
55
- 4. Generates example tasks when `--example` is provided
56
-
57
- ### Run the example
40
+ ### 3. Run & Monitor
58
41
 
59
42
  ```bash
60
- # Run example tasks
43
+ # Start orchestration
61
44
  cursorflow run _cursorflow/tasks/example/
62
45
 
63
- # Monitor from another terminal
64
- cursorflow monitor --watch
46
+ # Open the interactive dashboard (highly recommended!)
47
+ cursorflow monitor latest
65
48
  ```
66
49
 
67
- ## 🧪 Testing CursorFlow
68
-
69
- A complete demo project is included for testing with real LLM execution.
70
-
71
- ### Quick Test
72
-
73
- ```bash
74
- # From the CursorFlow repository root
75
- ./test-cursorflow.sh setup # Verify prerequisites
76
- ./test-cursorflow.sh run # Run demo with LLM
77
- ./test-cursorflow.sh watch # Monitor in real-time
78
- ./test-cursorflow.sh clean # Clean up after test
79
- ```
80
-
81
- ### What Gets Tested
82
-
83
- - ✅ Task orchestration with 2 parallel lanes
84
- - ✅ Git worktree creation and management
85
- - ✅ Real LLM execution (Claude Sonnet 4.5 via cursor-agent)
86
- - ✅ Branch creation and commits
87
- - ✅ Real-time monitoring with status updates
88
- - ✅ Complete log capture (conversation + terminal)
89
-
90
- ### Demo Tasks
50
+ ## 🎮 Dashboard Controls
91
51
 
92
- 1. **create-utils**: Creates `src/utils.js` with utility functions
93
- 2. **add-tests**: Creates `src/utils.test.js` with simple tests
52
+ Within the `cursorflow monitor` dashboard:
53
+ - `↑/↓`: Navigate between lanes or scroll through logs.
54
+ - `→ / Enter`: Enter detailed lane view.
55
+ - `← / Esc`: Go back.
56
+ - `F`: Toggle **Dependency Flow** view.
57
+ - `T`: Open **Live Terminal Streaming**.
58
+ - `I`: **Intervene** (send a message to the agent).
59
+ - `K`: **Kill** the current agent process.
60
+ - `Q`: Quit monitor.
94
61
 
95
- Each task runs ~1-2 minutes, demonstrating the full CursorFlow workflow.
62
+ ## ⚙️ Configuration
96
63
 
97
- **See**: `test-projects/demo-project/README.md` for detailed documentation.
64
+ ### Task Configuration Schema
98
65
 
99
- ## 📚 Examples
100
-
101
- Ready-to-use examples are included in the `examples/` directory.
102
-
103
- ### Demo Project
104
-
105
- A complete example demonstrating CursorFlow's core features:
106
-
107
- ```bash
108
- # Copy example tasks to your project
109
- cd your-project
110
- cursorflow init
111
- cp -r /path/to/cursorflow/examples/demo-project/_cursorflow/tasks/demo-test _cursorflow/tasks/
112
-
113
- # Run the demo
114
- cursorflow run _cursorflow/tasks/demo-test/
115
-
116
- # Monitor in real-time
117
- cursorflow monitor --watch
66
+ ```json
67
+ {
68
+ "baseBranch": "main",
69
+ "branchPrefix": "cursorflow/feature-",
70
+ "model": "sonnet-4.5",
71
+ "timeout": 300000,
72
+ "enableIntervention": false,
73
+ "dependsOn": ["other-lane"],
74
+ "dependencyPolicy": {
75
+ "allowDependencyChange": false,
76
+ "lockfileReadOnly": true
77
+ },
78
+ "tasks": [
79
+ {
80
+ "name": "implement-feature",
81
+ "prompt": "Implement the user authentication..."
82
+ }
83
+ ]
84
+ }
118
85
  ```
119
86
 
120
- **Includes:**
121
- - 2 parallel tasks with real LLM execution
122
- - Complete documentation and setup instructions
123
- - Expected results and troubleshooting guide
124
-
125
- **See**: `examples/demo-project/README.md` for detailed instructions.
126
-
127
- **Browse more examples**: `examples/README.md`
87
+ ### Key Options
128
88
 
129
- ## Cursor IDE Integration
89
+ | Option | Type | Default | Description |
90
+ |--------|------|---------|-------------|
91
+ | `timeout` | number | 300000 | Task timeout in milliseconds (5 min default) |
92
+ | `enableIntervention` | boolean | false | Enable stdin piping for intervention |
93
+ | `model` | string | "sonnet-4.5" | AI model to use |
94
+ | `dependsOn` | string[] | [] | Lane dependencies |
130
95
 
131
- CursorFlow ships custom commands that are available directly inside Cursor IDE.
96
+ ### Timeout Configuration
132
97
 
133
- ### Install commands
98
+ Set custom timeouts based on task complexity:
134
99
 
135
- ```bash
136
- # Installed automatically during init
137
- cursorflow init
138
-
139
- # Or install manually
140
- npx cursorflow-setup
100
+ ```json
101
+ {
102
+ "timeout": 60000,
103
+ "tasks": [{ "name": "simple-task", "prompt": "..." }]
104
+ }
141
105
  ```
142
106
 
143
- ### Usage
107
+ - **Simple tasks**: `60000` (1 minute)
108
+ - **Medium tasks**: `300000` (5 minutes) - default
109
+ - **Complex tasks**: `600000` (10 minutes)
144
110
 
145
- Type `/` in Cursor chat and use:
111
+ ### Task Validation
146
112
 
147
- - `/cursorflow-init` - initialize a project
148
- - `/cursorflow-prepare` - prepare tasks
149
- - `/cursorflow-run` - run orchestration
150
- - `/cursorflow-monitor` - monitor runs
151
- - `/cursorflow-clean` - clean resources
152
- - `/cursorflow-resume` - resume a lane
153
- - `/cursorflow-doctor` - verify environment
154
- - `/cursorflow-signal` - intervene in a lane
155
- - `/cursorflow-review` - configure or check reviews
113
+ CursorFlow automatically validates your task configuration before execution:
156
114
 
157
- ## CLI Commands
115
+ - Required `name` and `prompt` fields
116
+ - ✅ Valid task name format (letters, numbers, `-`, `_` only)
117
+ - ✅ Proper timeout values
118
+ - ✅ Helpful error messages with fix suggestions
158
119
 
159
- ### Init
160
- ```bash
161
- cursorflow init [options]
162
- --example Create example tasks
163
- --with-commands Install Cursor commands (default: true)
164
- --config-only Generate config file only
165
- ```
166
-
167
- ### Prepare tasks
168
- ```bash
169
- cursorflow prepare <feature> [options]
170
- --lanes <number> Number of lanes
171
- --template <path> Template file path
172
- ```
173
-
174
- ### Run
175
- ```bash
176
- cursorflow run <tasks-dir> [options]
177
- --dry-run Show the execution plan only
178
- --executor <type> cursor-agent | cloud
179
- ```
180
-
181
- ### Monitor
182
- ```bash
183
- cursorflow monitor [run-dir] [options]
184
- --watch Live monitoring
185
- --interval <sec> Refresh interval
186
- ```
187
-
188
- ### Clean
189
- ```bash
190
- cursorflow clean <type> [options]
191
- branches Clean branches
192
- worktrees Clean worktrees
193
- logs Clean logs
194
- all Clean everything
195
- ```
120
+ ### Progress Monitoring (Heartbeat)
196
121
 
197
- ### Resume
198
- ```bash
199
- cursorflow resume <lane> [options]
200
- --run-dir <path> Specify run directory
201
- --restart Restart from task 1
202
- ```
122
+ During execution, CursorFlow logs progress every 30 seconds:
203
123
 
204
- ### Doctor
205
- ```bash
206
- cursorflow doctor [options]
207
- --tasks-dir <path> Validate specific lane tasks
208
- --json Output in JSON format
209
124
  ```
210
-
211
- ### Signal (Intervention)
212
- ```bash
213
- cursorflow signal <lane> <message>
214
- --run-dir <path> Specify run directory
125
+ ⏱ Heartbeat: 30s elapsed, 1234 bytes received
126
+ Heartbeat: 60s elapsed, 5678 bytes received
215
127
  ```
216
128
 
217
- ## 🚀 Deployment & Updates
218
-
219
- ### For Maintainers
220
- To release a new version to NPM:
221
- 1. Ensure your working directory is clean on the `main` branch.
222
- 2. Run the release script:
223
- ```bash
224
- ./scripts/release.sh [patch|minor|major]
225
- ```
226
- 3. The script will bump the version, update CHANGELOG, and push a tag to trigger GitHub Actions.
227
-
228
- ### For Users
229
- To update to the latest version and refresh IDE commands:
230
- 1. Update the package: `npm install -g @litmers/cursorflow-orchestrator`
231
- 2. Refresh Cursor commands: `cursorflow-setup --force`
232
-
233
- ## Configuration
129
+ ## 🔗 Task Dependencies
234
130
 
235
- ### Config file (cursorflow.config.js)
236
-
237
- ```javascript
238
- module.exports = {
239
- // Directories
240
- tasksDir: '_cursorflow/tasks',
241
- logsDir: '_cursorflow/logs',
242
-
243
- // Git settings
244
- baseBranch: 'main',
245
- branchPrefix: 'feature/',
246
-
247
- // Run settings
248
- executor: 'cursor-agent', // 'cursor-agent' | 'cloud'
249
- pollInterval: 60,
250
-
251
- // Dependency management
252
- allowDependencyChange: false,
253
- lockfileReadOnly: true,
254
-
255
- // Review settings
256
- enableReview: true,
257
- reviewModel: 'sonnet-4.5-thinking',
258
- maxReviewIterations: 3,
259
-
260
- // Default lane settings
261
- defaultLaneConfig: {
262
- devPort: 3001,
263
- autoCreatePr: false,
264
- },
265
-
266
- // Logging
267
- logLevel: 'info',
268
- verboseGit: false,
269
- };
270
- ```
271
-
272
- ### Task file (JSON)
131
+ You can define dependencies between lanes in your task JSON files. Dependent lanes will wait for their parents to complete and then automatically merge the parent's work before starting.
273
132
 
274
133
  ```json
275
134
  {
276
- "repository": "https://github.com/your-org/your-repo",
277
- "baseBranch": "main",
278
- "branchPrefix": "feature/my-",
279
- "executor": "cursor-agent",
280
- "laneNumber": 1,
281
- "devPort": 3001,
282
- "enableReview": true,
283
- "tasks": [
284
- {
285
- "name": "implement",
286
- "model": "sonnet-4.5",
287
- "acceptanceCriteria": [
288
- "No build errors",
289
- "Key features implemented"
290
- ],
291
- "prompt": "Implementation instructions..."
292
- }
293
- ]
135
+ "name": "api-implementation",
136
+ "dependsOn": ["database-schema", "common-utils"],
137
+ "tasks": [ ... ]
294
138
  }
295
139
  ```
296
140
 
297
- ## Usage Examples
141
+ ## 🧪 Advanced Testing
298
142
 
299
- ### Single feature development
143
+ A complete test suite for dependency orchestration is included.
300
144
 
301
145
  ```bash
302
- # 1. Prepare tasks
303
- cursorflow prepare AddUserAuth --lanes 1
304
-
305
- # 2. Edit the task JSON
306
- # _cursorflow/tasks/2512191830_AddUserAuth/01-task.json
146
+ # Run a complex dependency test (6 interdependent lanes)
147
+ cursorflow run test-projects/advanced-orchestration/_cursorflow/tasks/full-stack/
307
148
 
308
- # 3. Run
309
- cursorflow run _cursorflow/tasks/2512191830_AddUserAuth/
310
-
311
- # 4. Monitor
312
- cursorflow monitor --watch
149
+ # Monitor the flow
150
+ cursorflow monitor latest
313
151
  ```
314
152
 
315
- ### Multi-domain parallel development
316
-
317
- ```bash
318
- # 1. Prepare tasks (5 lanes)
319
- cursorflow prepare AdminDashboard --lanes 5
320
-
321
- # 2. Configure each lane
322
- # 01-dashboard.json, 02-clients.json, ...
323
-
324
- # 3. Run in parallel
325
- cursorflow run _cursorflow/tasks/2512191830_AdminDashboard/
326
-
327
- # 4. Live monitor
328
- cursorflow monitor --watch --interval 5
329
- ```
330
-
331
- ## Architecture
332
-
333
- ```
334
- ┌─────────────────────────────────────────────────────────┐
335
- │ CursorFlow CLI │
336
- └──────────────────┬──────────────────────────────────────┘
337
-
338
- ┌──────────┴──────────┐
339
- │ │
340
- ┌────▼────┐ ┌────▼────┐
341
- │ Config │ │ Core │
342
- │ System │ │ Engine │
343
- └────┬────┘ └────┬────┘
344
- │ │
345
- │ ┌──────────┼──────────┐
346
- │ │ │ │
347
- ┌────▼────┐ ┌─▼──┐ ┌────▼────┐ ┌─▼─────┐
348
- │ Git │ │Run │ │ Monitor │ │Review │
349
- │ Utils │ │ner │ │ │ │ │
350
- └─────────┘ └─┬──┘ └─────────┘ └───────┘
351
-
352
- ┌────────┼────────┐
353
- │ │ │
354
- ┌────▼───┐ ┌─▼──────┐ │
355
- │Worktree│ │ Cursor │ │
356
- │ │ │ Agent │ │
357
- └────────┘ └────────┘ │
358
-
359
- ┌────▼────┐
360
- │ Logs │
361
- │ State │
362
- └─────────┘
363
- ```
364
-
365
- ## Documentation
153
+ ## 📚 Documentation
366
154
 
367
155
  - [📖 User Guide](docs/GUIDE.md) - Detailed usage instructions
368
156
  - [📋 API Reference](docs/API.md) - CLI and config API
@@ -371,36 +159,24 @@ cursorflow monitor --watch --interval 5
371
159
  - [🔧 Troubleshooting](docs/TROUBLESHOOTING.md) - Issue resolution
372
160
  - [📦 Examples](examples/) - Practical examples
373
161
 
374
- ## Roadmap
375
-
376
- - [ ] v1.0: Core features and base docs
377
- - [ ] v1.1: Enhanced review system
378
- - [ ] v1.2: Improved cloud execution
379
- - [ ] v1.3: Plugin system
380
- - [ ] v2.0: GUI tool
381
-
382
- ## Contributing
162
+ ## 🚀 Deployment & Updates
383
163
 
384
- Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
164
+ ### For Maintainers
165
+ To release a new version to NPM:
166
+ 1. Run the release script: `./scripts/release.sh [patch|minor|major]`
167
+ 2. The script handles versioning, changelog, and triggers GitHub Actions.
385
168
 
386
- ### Set up dev environment
169
+ ### For Users
170
+ Update and refresh commands:
387
171
  ```bash
388
- git clone https://github.com/eungjin-cigro/cursorflow.git
389
- cd cursorflow
390
- pnpm install
391
- pnpm test
172
+ npm install -g @litmers/cursorflow-orchestrator
173
+ cursorflow-setup --force
392
174
  ```
393
175
 
394
176
  ## License
395
177
 
396
178
  MIT © Eugene Jin
397
179
 
398
- ## Support
399
-
400
- - 🐛 [Issue Tracker](https://github.com/eungjin-cigro/cursorflow/issues)
401
- - 💬 [Discussions](https://github.com/eungjin-cigro/cursorflow/discussions)
402
- - 📧 Email: eungjin.cigro@gmail.com
403
-
404
180
  ---
405
181
 
406
182
  **Made with ❤️ for Cursor IDE users**
@@ -17,8 +17,36 @@ Use this command whenever:
17
17
  - You are setting up a new project with CursorFlow.
18
18
  - A `cursorflow run` fails with environment-related errors.
19
19
  - You want to verify your Cursor authentication status.
20
+ - You want to validate task configuration before running.
21
+
22
+ ## Task Validation
23
+
24
+ When a task directory is provided, CursorFlow validates:
25
+
26
+ ### Required Fields
27
+ - ✅ `tasks` array exists and is not empty
28
+ - ✅ Each task has a `name` field
29
+ - ✅ Each task has a `prompt` field
30
+
31
+ ### Task Name Format
32
+ - ✅ Only letters, numbers, `-`, `_` allowed
33
+ - ❌ Spaces not allowed
34
+ - ❌ Special characters not allowed
35
+
36
+ ### Configuration Values
37
+ - ✅ `timeout` is a positive number (if provided)
38
+ - ✅ `enableIntervention` is a boolean (if provided)
39
+
40
+ ## Common Validation Errors
41
+
42
+ | Error | Solution |
43
+ |-------|----------|
44
+ | `Task N missing required "name" field` | Add `"name": "task-name"` to each task object |
45
+ | `Task name contains invalid characters` | Use only letters, numbers, `-`, `_` |
46
+ | `"timeout" must be a positive number` | Provide timeout in milliseconds (e.g., `60000`) |
20
47
 
21
48
  ## Example
22
49
  "Check if my environment is ready for CursorFlow."
23
50
  "Run cursorflow doctor on the _cursorflow/tasks/my-feature/ directory."
51
+ "Validate my task configuration in _cursorflow/tasks/api-lane/."
24
52