@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
|
@@ -0,0 +1,161 @@
|
|
|
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.TASK_RESULTS_DIR = void 0;
|
|
37
|
+
exports.saveTaskResult = saveTaskResult;
|
|
38
|
+
exports.findTaskResultFile = findTaskResultFile;
|
|
39
|
+
exports.loadDependencyResults = loadDependencyResults;
|
|
40
|
+
exports.readDependencyRequestFile = readDependencyRequestFile;
|
|
41
|
+
exports.clearDependencyRequestFile = clearDependencyRequestFile;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const logger = __importStar(require("../../utils/logger"));
|
|
44
|
+
const path_1 = require("../../utils/path");
|
|
45
|
+
const prompt_1 = require("./prompt");
|
|
46
|
+
/**
|
|
47
|
+
* Task result directory name - stores task completion results
|
|
48
|
+
*/
|
|
49
|
+
exports.TASK_RESULTS_DIR = 'task-results';
|
|
50
|
+
/**
|
|
51
|
+
* Save task result (last response text) to file
|
|
52
|
+
* Stored in runDir/task-results/{NN}-{taskName}.txt
|
|
53
|
+
*/
|
|
54
|
+
function saveTaskResult(runDir, taskIndex, taskName, resultText) {
|
|
55
|
+
const resultsDir = (0, path_1.safeJoin)(runDir, exports.TASK_RESULTS_DIR);
|
|
56
|
+
try {
|
|
57
|
+
fs.mkdirSync(resultsDir, { recursive: true });
|
|
58
|
+
const paddedIndex = String(taskIndex + 1).padStart(2, '0');
|
|
59
|
+
const resultPath = (0, path_1.safeJoin)(resultsDir, `${paddedIndex}-${taskName}.txt`);
|
|
60
|
+
fs.writeFileSync(resultPath, resultText, 'utf8');
|
|
61
|
+
logger.info(`📝 Task result saved: ${resultPath}`);
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
logger.warn(`Failed to save task result: ${e}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Find task result file by task name (handles NN-taskName.txt format)
|
|
69
|
+
*/
|
|
70
|
+
function findTaskResultFile(resultsDir, taskName) {
|
|
71
|
+
if (!fs.existsSync(resultsDir)) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const files = fs.readdirSync(resultsDir);
|
|
76
|
+
// Match pattern: NN-taskName.txt (e.g., 01-setup.txt, 02-implement.txt)
|
|
77
|
+
const pattern = new RegExp(`^\\d+-${taskName}\\.txt$`);
|
|
78
|
+
const matchedFile = files.find(f => pattern.test(f));
|
|
79
|
+
if (matchedFile) {
|
|
80
|
+
return (0, path_1.safeJoin)(resultsDir, matchedFile);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
logger.warn(`Failed to scan task results directory: ${e}`);
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Load dependency results based on dependsOn list
|
|
90
|
+
* Reads from runRoot/lanes/{laneName}/task-results/{NN}-{taskName}.txt
|
|
91
|
+
*/
|
|
92
|
+
function loadDependencyResults(dependsOn, runRoot) {
|
|
93
|
+
const results = [];
|
|
94
|
+
for (const dep of dependsOn) {
|
|
95
|
+
const parts = dep.split(':');
|
|
96
|
+
if (parts.length !== 2) {
|
|
97
|
+
logger.warn(`Invalid dependency format: ${dep} (expected "lane:task")`);
|
|
98
|
+
results.push({ taskId: dep, resultText: '(잘못된 의존성 형식)' });
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const [laneName, taskName] = parts;
|
|
102
|
+
const resultsDir = (0, path_1.safeJoin)(runRoot, 'lanes', laneName, exports.TASK_RESULTS_DIR);
|
|
103
|
+
const resultPath = findTaskResultFile(resultsDir, taskName);
|
|
104
|
+
if (resultPath && fs.existsSync(resultPath)) {
|
|
105
|
+
try {
|
|
106
|
+
const text = fs.readFileSync(resultPath, 'utf8');
|
|
107
|
+
results.push({ taskId: dep, resultText: text });
|
|
108
|
+
logger.info(`📖 Loaded dependency result: ${dep}`);
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
logger.warn(`Failed to read dependency result ${dep}: ${e}`);
|
|
112
|
+
results.push({ taskId: dep, resultText: '(읽기 실패)' });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
logger.warn(`Dependency result not found for: ${dep}`);
|
|
117
|
+
results.push({ taskId: dep, resultText: '(결과 없음)' });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return results;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Read dependency request from file if it exists
|
|
124
|
+
*/
|
|
125
|
+
function readDependencyRequestFile(worktreeDir) {
|
|
126
|
+
const filePath = (0, path_1.safeJoin)(worktreeDir, prompt_1.DEPENDENCY_REQUEST_FILE);
|
|
127
|
+
if (!fs.existsSync(filePath)) {
|
|
128
|
+
return { required: false };
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
132
|
+
const plan = JSON.parse(content);
|
|
133
|
+
// Validate required fields
|
|
134
|
+
if (plan.reason && Array.isArray(plan.commands) && plan.commands.length > 0) {
|
|
135
|
+
logger.info(`📦 Dependency request file detected: ${filePath}`);
|
|
136
|
+
return { required: true, plan };
|
|
137
|
+
}
|
|
138
|
+
logger.warn(`Invalid dependency request file format: ${filePath}`);
|
|
139
|
+
return { required: false };
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
logger.warn(`Failed to parse dependency request file: ${e}`);
|
|
143
|
+
return { required: false };
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Clear dependency request file after processing
|
|
148
|
+
*/
|
|
149
|
+
function clearDependencyRequestFile(worktreeDir) {
|
|
150
|
+
const filePath = (0, path_1.safeJoin)(worktreeDir, prompt_1.DEPENDENCY_REQUEST_FILE);
|
|
151
|
+
if (fs.existsSync(filePath)) {
|
|
152
|
+
try {
|
|
153
|
+
fs.unlinkSync(filePath);
|
|
154
|
+
logger.info(`🗑️ Cleared dependency request file: ${filePath}`);
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
logger.warn(`Failed to clear dependency request file: ${e}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/runner/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/core/runner.d.ts
CHANGED
|
@@ -1,100 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core Runner - Execute tasks sequentially in a lane
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* - Enhanced retry with circuit breaker
|
|
6
|
-
* - Checkpoint system for recovery
|
|
7
|
-
* - State validation and repair
|
|
8
|
-
* - Improved dependency management
|
|
4
|
+
* This file is now a wrapper around modular components in ./runner/
|
|
9
5
|
*/
|
|
10
|
-
|
|
11
|
-
import { RunnerConfig, Task, TaskExecutionResult, AgentSendResult, DependencyPolicy, DependencyRequestPlan } from '../types';
|
|
12
|
-
/**
|
|
13
|
-
* Execute cursor-agent command with timeout and better error handling
|
|
14
|
-
*/
|
|
15
|
-
export declare function cursorAgentCreateChat(): string;
|
|
16
|
-
/**
|
|
17
|
-
* Validate task configuration
|
|
18
|
-
* @throws Error if validation fails
|
|
19
|
-
*/
|
|
20
|
-
export declare function validateTaskConfig(config: RunnerConfig): void;
|
|
21
|
-
/**
|
|
22
|
-
* Execute cursor-agent command with retries for transient errors
|
|
23
|
-
*/
|
|
24
|
-
export declare function cursorAgentSend(options: {
|
|
25
|
-
workspaceDir: string;
|
|
26
|
-
chatId: string;
|
|
27
|
-
prompt: string;
|
|
28
|
-
model?: string;
|
|
29
|
-
signalDir?: string;
|
|
30
|
-
timeout?: number;
|
|
31
|
-
enableIntervention?: boolean;
|
|
32
|
-
outputFormat?: 'stream-json' | 'json' | 'plain';
|
|
33
|
-
taskName?: string;
|
|
34
|
-
}): Promise<AgentSendResult>;
|
|
35
|
-
/**
|
|
36
|
-
* Extract dependency change request from agent response
|
|
37
|
-
*/
|
|
38
|
-
export declare function extractDependencyRequest(text: string): {
|
|
39
|
-
required: boolean;
|
|
40
|
-
plan?: DependencyRequestPlan;
|
|
41
|
-
raw: string;
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* Read dependency request from file if it exists
|
|
45
|
-
*/
|
|
46
|
-
export declare function readDependencyRequestFile(worktreeDir: string): {
|
|
47
|
-
required: boolean;
|
|
48
|
-
plan?: DependencyRequestPlan;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Clear dependency request file after processing
|
|
52
|
-
*/
|
|
53
|
-
export declare function clearDependencyRequestFile(worktreeDir: string): void;
|
|
54
|
-
/**
|
|
55
|
-
* Wrap prompt with dependency policy instructions (legacy, used by tests)
|
|
56
|
-
*/
|
|
57
|
-
export declare function wrapPromptForDependencyPolicy(prompt: string, policy: DependencyPolicy): string;
|
|
58
|
-
/**
|
|
59
|
-
* Wrap prompt with global context, dependency policy, and worktree instructions
|
|
60
|
-
*/
|
|
61
|
-
export declare function wrapPrompt(prompt: string, config: RunnerConfig, options?: {
|
|
62
|
-
noGit?: boolean;
|
|
63
|
-
isWorktree?: boolean;
|
|
64
|
-
previousState?: string | null;
|
|
65
|
-
}): string;
|
|
66
|
-
/**
|
|
67
|
-
* Apply file permissions based on dependency policy
|
|
68
|
-
*/
|
|
69
|
-
export declare function applyDependencyFilePermissions(worktreeDir: string, policy: DependencyPolicy): void;
|
|
70
|
-
/**
|
|
71
|
-
* Wait for task-level dependencies to be completed by other lanes
|
|
72
|
-
* Now uses the enhanced dependency module with timeout support
|
|
73
|
-
*/
|
|
74
|
-
export declare function waitForTaskDependencies(deps: string[], runDir: string, options?: DependencyWaitOptions): Promise<void>;
|
|
75
|
-
/**
|
|
76
|
-
* Merge branches from dependency lanes with safe merge
|
|
77
|
-
*/
|
|
78
|
-
export declare function mergeDependencyBranches(deps: string[], runDir: string, worktreeDir: string): Promise<void>;
|
|
79
|
-
/**
|
|
80
|
-
* Run a single task
|
|
81
|
-
*/
|
|
82
|
-
export declare function runTask({ task, config, index, worktreeDir, pipelineBranch, taskBranch, chatId, runDir, noGit, }: {
|
|
83
|
-
task: Task;
|
|
84
|
-
config: RunnerConfig;
|
|
85
|
-
index: number;
|
|
86
|
-
worktreeDir: string;
|
|
87
|
-
pipelineBranch: string;
|
|
88
|
-
taskBranch: string;
|
|
89
|
-
chatId: string;
|
|
90
|
-
runDir: string;
|
|
91
|
-
noGit?: boolean;
|
|
92
|
-
}): Promise<TaskExecutionResult>;
|
|
93
|
-
/**
|
|
94
|
-
* Run all tasks in sequence
|
|
95
|
-
*/
|
|
96
|
-
export declare function runTasks(tasksFile: string, config: RunnerConfig, runDir: string, options?: {
|
|
97
|
-
startIndex?: number;
|
|
98
|
-
noGit?: boolean;
|
|
99
|
-
skipPreflight?: boolean;
|
|
100
|
-
}): Promise<TaskExecutionResult[]>;
|
|
6
|
+
export * from './runner/index';
|