@litmers/cursorflow-orchestrator 0.1.6 → 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 +31 -0
- package/README.md +97 -321
- package/commands/cursorflow-doctor.md +28 -0
- package/commands/cursorflow-monitor.md +59 -101
- package/commands/cursorflow-prepare.md +25 -2
- package/commands/cursorflow-resume.md +11 -0
- package/commands/cursorflow-run.md +109 -100
- package/commands/cursorflow-signal.md +85 -14
- package/dist/cli/clean.d.ts +3 -1
- package/dist/cli/clean.js +122 -8
- package/dist/cli/clean.js.map +1 -1
- package/dist/cli/index.js +20 -20
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/monitor.d.ts +1 -1
- package/dist/cli/monitor.js +678 -145
- package/dist/cli/monitor.js.map +1 -1
- package/dist/cli/run.js +1 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/core/orchestrator.d.ts +4 -2
- package/dist/core/orchestrator.js +92 -23
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/runner.d.ts +14 -2
- package/dist/core/runner.js +244 -58
- package/dist/core/runner.js.map +1 -1
- package/dist/utils/types.d.ts +11 -0
- package/package.json +1 -1
- package/scripts/patches/test-cursor-agent.js +203 -0
- package/src/cli/clean.ts +129 -9
- package/src/cli/index.ts +20 -20
- package/src/cli/monitor.ts +732 -185
- package/src/cli/run.ts +1 -0
- package/src/core/orchestrator.ts +102 -27
- package/src/core/runner.ts +284 -66
- package/src/utils/types.ts +11 -0
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
|
[](https://opensource.org/licenses/MIT)
|
|
10
10
|
[](https://nodejs.org/)
|
|
11
11
|
|
|
12
|
-
## Key Features
|
|
12
|
+
## 🚀 Key Features
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
#
|
|
43
|
+
# Start orchestration
|
|
61
44
|
cursorflow run _cursorflow/tasks/example/
|
|
62
45
|
|
|
63
|
-
#
|
|
64
|
-
cursorflow monitor
|
|
46
|
+
# Open the interactive dashboard (highly recommended!)
|
|
47
|
+
cursorflow monitor latest
|
|
65
48
|
```
|
|
66
49
|
|
|
67
|
-
##
|
|
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
|
-
|
|
93
|
-
|
|
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
|
-
|
|
62
|
+
## ⚙️ Configuration
|
|
96
63
|
|
|
97
|
-
|
|
64
|
+
### Task Configuration Schema
|
|
98
65
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
96
|
+
### Timeout Configuration
|
|
132
97
|
|
|
133
|
-
|
|
98
|
+
Set custom timeouts based on task complexity:
|
|
134
99
|
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
npx cursorflow-setup
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"timeout": 60000,
|
|
103
|
+
"tasks": [{ "name": "simple-task", "prompt": "..." }]
|
|
104
|
+
}
|
|
141
105
|
```
|
|
142
106
|
|
|
143
|
-
|
|
107
|
+
- **Simple tasks**: `60000` (1 minute)
|
|
108
|
+
- **Medium tasks**: `300000` (5 minutes) - default
|
|
109
|
+
- **Complex tasks**: `600000` (10 minutes)
|
|
144
110
|
|
|
145
|
-
|
|
111
|
+
### Task Validation
|
|
146
112
|
|
|
147
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
"
|
|
277
|
-
"
|
|
278
|
-
"
|
|
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
|
-
##
|
|
141
|
+
## 🧪 Advanced Testing
|
|
298
142
|
|
|
299
|
-
|
|
143
|
+
A complete test suite for dependency orchestration is included.
|
|
300
144
|
|
|
301
145
|
```bash
|
|
302
|
-
#
|
|
303
|
-
cursorflow
|
|
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
|
-
#
|
|
309
|
-
cursorflow
|
|
310
|
-
|
|
311
|
-
# 4. Monitor
|
|
312
|
-
cursorflow monitor --watch
|
|
149
|
+
# Monitor the flow
|
|
150
|
+
cursorflow monitor latest
|
|
313
151
|
```
|
|
314
152
|
|
|
315
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
###
|
|
169
|
+
### For Users
|
|
170
|
+
Update and refresh commands:
|
|
387
171
|
```bash
|
|
388
|
-
|
|
389
|
-
|
|
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
|
|