@litmers/cursorflow-orchestrator 0.1.31 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +144 -52
- package/commands/cursorflow-add.md +159 -0
- package/commands/cursorflow-monitor.md +23 -2
- package/commands/cursorflow-new.md +87 -0
- package/dist/cli/add.d.ts +7 -0
- package/dist/cli/add.js +377 -0
- package/dist/cli/add.js.map +1 -0
- package/dist/cli/clean.js +1 -0
- package/dist/cli/clean.js.map +1 -1
- package/dist/cli/config.d.ts +7 -0
- package/dist/cli/config.js +181 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.js +34 -30
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/logs.js +7 -33
- package/dist/cli/logs.js.map +1 -1
- package/dist/cli/monitor.js +51 -62
- package/dist/cli/monitor.js.map +1 -1
- package/dist/cli/new.d.ts +7 -0
- package/dist/cli/new.js +232 -0
- package/dist/cli/new.js.map +1 -0
- package/dist/cli/prepare.js +95 -193
- package/dist/cli/prepare.js.map +1 -1
- package/dist/cli/resume.js +11 -47
- package/dist/cli/resume.js.map +1 -1
- package/dist/cli/run.js +27 -22
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/tasks.js +1 -2
- package/dist/cli/tasks.js.map +1 -1
- package/dist/core/failure-policy.d.ts +9 -0
- package/dist/core/failure-policy.js +9 -0
- package/dist/core/failure-policy.js.map +1 -1
- package/dist/core/orchestrator.d.ts +20 -6
- package/dist/core/orchestrator.js +213 -333
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/runner/agent.d.ts +27 -0
- package/dist/core/runner/agent.js +294 -0
- package/dist/core/runner/agent.js.map +1 -0
- package/dist/core/runner/index.d.ts +5 -0
- package/dist/core/runner/index.js +22 -0
- package/dist/core/runner/index.js.map +1 -0
- package/dist/core/runner/pipeline.d.ts +9 -0
- package/dist/core/runner/pipeline.js +539 -0
- package/dist/core/runner/pipeline.js.map +1 -0
- package/dist/core/runner/prompt.d.ts +25 -0
- package/dist/core/runner/prompt.js +175 -0
- package/dist/core/runner/prompt.js.map +1 -0
- package/dist/core/runner/task.d.ts +26 -0
- package/dist/core/runner/task.js +283 -0
- package/dist/core/runner/task.js.map +1 -0
- package/dist/core/runner/utils.d.ts +37 -0
- package/dist/core/runner/utils.js +161 -0
- package/dist/core/runner/utils.js.map +1 -0
- package/dist/core/runner.d.ts +2 -96
- package/dist/core/runner.js +11 -1136
- package/dist/core/runner.js.map +1 -1
- package/dist/core/stall-detection.d.ts +326 -0
- package/dist/core/stall-detection.js +781 -0
- package/dist/core/stall-detection.js.map +1 -0
- package/dist/types/config.d.ts +6 -6
- package/dist/types/flow.d.ts +84 -0
- package/dist/types/flow.js +10 -0
- package/dist/types/flow.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +3 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/lane.d.ts +0 -2
- package/dist/types/logging.d.ts +5 -1
- package/dist/types/task.d.ts +7 -11
- package/dist/utils/config.js +7 -15
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/dependency.d.ts +36 -1
- package/dist/utils/dependency.js +256 -1
- package/dist/utils/dependency.js.map +1 -1
- package/dist/utils/enhanced-logger.d.ts +45 -82
- package/dist/utils/enhanced-logger.js +238 -844
- package/dist/utils/enhanced-logger.js.map +1 -1
- package/dist/utils/git.d.ts +29 -0
- package/dist/utils/git.js +115 -5
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/state.js +0 -2
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/task-service.d.ts +2 -2
- package/dist/utils/task-service.js +40 -31
- package/dist/utils/task-service.js.map +1 -1
- package/package.json +4 -3
- package/src/cli/add.ts +397 -0
- package/src/cli/clean.ts +1 -0
- package/src/cli/config.ts +177 -0
- package/src/cli/index.ts +36 -32
- package/src/cli/logs.ts +7 -31
- package/src/cli/monitor.ts +55 -71
- package/src/cli/new.ts +235 -0
- package/src/cli/prepare.ts +98 -205
- package/src/cli/resume.ts +13 -56
- package/src/cli/run.ts +311 -306
- package/src/cli/tasks.ts +1 -2
- package/src/core/failure-policy.ts +9 -0
- package/src/core/orchestrator.ts +277 -378
- package/src/core/runner/agent.ts +314 -0
- package/src/core/runner/index.ts +6 -0
- package/src/core/runner/pipeline.ts +567 -0
- package/src/core/runner/prompt.ts +174 -0
- package/src/core/runner/task.ts +320 -0
- package/src/core/runner/utils.ts +142 -0
- package/src/core/runner.ts +8 -1347
- package/src/core/stall-detection.ts +936 -0
- package/src/types/config.ts +6 -6
- package/src/types/flow.ts +91 -0
- package/src/types/index.ts +15 -3
- package/src/types/lane.ts +0 -2
- package/src/types/logging.ts +5 -1
- package/src/types/task.ts +7 -11
- package/src/utils/config.ts +8 -16
- package/src/utils/dependency.ts +311 -2
- package/src/utils/enhanced-logger.ts +263 -927
- package/src/utils/git.ts +145 -5
- package/src/utils/state.ts +0 -2
- package/src/utils/task-service.ts +48 -40
- package/commands/cursorflow-review.md +0 -56
- package/commands/cursorflow-runs.md +0 -59
- package/dist/cli/runs.d.ts +0 -5
- package/dist/cli/runs.js +0 -214
- package/dist/cli/runs.js.map +0 -1
- package/dist/core/reviewer.d.ts +0 -66
- package/dist/core/reviewer.js +0 -265
- package/dist/core/reviewer.js.map +0 -1
- package/src/cli/runs.ts +0 -212
- package/src/core/reviewer.ts +0 -285
package/src/cli/resume.ts
CHANGED
|
@@ -115,7 +115,6 @@ interface LaneInfo {
|
|
|
115
115
|
dir: string;
|
|
116
116
|
state: LaneState | null;
|
|
117
117
|
needsResume: boolean;
|
|
118
|
-
dependsOn: string[];
|
|
119
118
|
isCompleted: boolean;
|
|
120
119
|
}
|
|
121
120
|
|
|
@@ -295,39 +294,22 @@ function getAllLaneStatuses(runDir: string): LaneInfo[] {
|
|
|
295
294
|
) : true;
|
|
296
295
|
|
|
297
296
|
const isCompleted = state?.status === 'completed';
|
|
298
|
-
const dependsOn = state?.dependsOn || [];
|
|
299
297
|
|
|
300
|
-
return { name, dir, state, needsResume,
|
|
298
|
+
return { name, dir, state, needsResume, isCompleted };
|
|
301
299
|
});
|
|
302
300
|
|
|
303
301
|
return lanes;
|
|
304
302
|
}
|
|
305
303
|
|
|
306
304
|
/**
|
|
307
|
-
* Check if
|
|
305
|
+
* Check if lane can be resumed (lane-level deps removed, always true)
|
|
308
306
|
*/
|
|
309
307
|
function areDependenciesCompleted(
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
308
|
+
_lane: LaneInfo,
|
|
309
|
+
_allLanes: LaneInfo[],
|
|
310
|
+
_completedLanes: Set<string>
|
|
313
311
|
): boolean {
|
|
314
|
-
|
|
315
|
-
return true;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
for (const depName of lane.dependsOn) {
|
|
319
|
-
// Check if dependency is in completed set (already succeeded in this resume session)
|
|
320
|
-
if (completedLanes.has(depName)) {
|
|
321
|
-
continue;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// Check if dependency was already completed before this resume
|
|
325
|
-
const depLane = allLanes.find(l => l.name === depName);
|
|
326
|
-
if (!depLane || !depLane.isCompleted) {
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
|
|
312
|
+
// Lane-level dependencies removed - use task-level dependsOn instead
|
|
331
313
|
return true;
|
|
332
314
|
}
|
|
333
315
|
|
|
@@ -371,40 +353,25 @@ function printAllLaneStatus(runDir: string): { total: number; completed: number;
|
|
|
371
353
|
const status = state?.status || 'unknown';
|
|
372
354
|
const color = STATUS_COLORS[status] || STATUS_COLORS.unknown;
|
|
373
355
|
const progress = state ? `${state.currentTaskIndex}/${state.totalTasks}` : '-/-';
|
|
374
|
-
const dependsOnStr = lane.dependsOn.length > 0 ? lane.dependsOn.join(',').substring(0, 12) : '-';
|
|
375
|
-
|
|
376
|
-
// Check if dependencies are met
|
|
377
|
-
const depsCompleted = areDependenciesCompleted(lane, lanes, completedSet);
|
|
378
|
-
const canResume = lane.needsResume && depsCompleted;
|
|
379
|
-
const blockedByDep = lane.needsResume && !depsCompleted;
|
|
380
356
|
|
|
381
357
|
if (status === 'completed') completedCount++;
|
|
382
358
|
if (lane.needsResume) needsResumeCount++;
|
|
383
359
|
|
|
384
360
|
let resumeIndicator = '';
|
|
385
|
-
if (
|
|
386
|
-
resumeIndicator = '\x1b[33m
|
|
387
|
-
} else if (blockedByDep) {
|
|
388
|
-
resumeIndicator = '\x1b[90m⏳ waiting\x1b[0m';
|
|
361
|
+
if (lane.needsResume) {
|
|
362
|
+
resumeIndicator = '\x1b[33m✓ resumable\x1b[0m';
|
|
389
363
|
}
|
|
390
364
|
|
|
391
365
|
console.log(' ' +
|
|
392
|
-
lane.name.padEnd(
|
|
366
|
+
lane.name.padEnd(30) +
|
|
393
367
|
`${color}${status.padEnd(12)}${RESET}` +
|
|
394
368
|
progress.padEnd(12) +
|
|
395
|
-
dependsOnStr.padEnd(15) +
|
|
396
369
|
resumeIndicator
|
|
397
370
|
);
|
|
398
371
|
|
|
399
372
|
// Show error if failed
|
|
400
373
|
if (status === 'failed' && state?.error) {
|
|
401
|
-
console.log(` ${''.padEnd(
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
// Show blocked dependency info
|
|
405
|
-
if (blockedByDep) {
|
|
406
|
-
const pendingDeps = lane.dependsOn.filter(d => !completedSet.has(d));
|
|
407
|
-
console.log(` ${''.padEnd(25)}\x1b[90m└─ waiting for: ${pendingDeps.join(', ')}\x1b[0m`);
|
|
374
|
+
console.log(` ${''.padEnd(30)}\x1b[31m└─ ${state.error.substring(0, 50)}${state.error.length > 50 ? '...' : ''}\x1b[0m`);
|
|
408
375
|
}
|
|
409
376
|
}
|
|
410
377
|
|
|
@@ -532,17 +499,8 @@ async function resumeLanes(
|
|
|
532
499
|
const resolvableLanes: LaneInfo[] = [];
|
|
533
500
|
|
|
534
501
|
for (const lane of lanesToResume) {
|
|
535
|
-
//
|
|
536
|
-
|
|
537
|
-
!completedSet.has(dep) && !toResumeNames.has(dep)
|
|
538
|
-
);
|
|
539
|
-
|
|
540
|
-
if (unmetDeps.length > 0) {
|
|
541
|
-
logger.warn(`⏭ Skipping ${lane.name}: unresolvable dependencies (${unmetDeps.join(', ')})`);
|
|
542
|
-
skippedLanes.push(lane.name);
|
|
543
|
-
} else {
|
|
544
|
-
resolvableLanes.push(lane);
|
|
545
|
-
}
|
|
502
|
+
// Lane-level dependencies removed - all lanes can be resumed
|
|
503
|
+
resolvableLanes.push(lane);
|
|
546
504
|
}
|
|
547
505
|
|
|
548
506
|
if (resolvableLanes.length === 0) {
|
|
@@ -612,8 +570,7 @@ async function resumeLanes(
|
|
|
612
570
|
}
|
|
613
571
|
|
|
614
572
|
pending.delete(lane.name);
|
|
615
|
-
|
|
616
|
-
logger.info(`Starting: ${lane.name} (task ${lane.state!.currentTaskIndex}/${lane.state!.totalTasks})${depsInfo}`);
|
|
573
|
+
logger.info(`Starting: ${lane.name} (task ${lane.state!.currentTaskIndex}/${lane.state!.totalTasks})`);
|
|
617
574
|
|
|
618
575
|
const { child } = spawnLaneResume(lane.name, lane.dir, lane.state!, {
|
|
619
576
|
restart: options.restart,
|