@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.
Files changed (129) hide show
  1. package/README.md +144 -52
  2. package/commands/cursorflow-add.md +159 -0
  3. package/commands/cursorflow-monitor.md +23 -2
  4. package/commands/cursorflow-new.md +87 -0
  5. package/dist/cli/add.d.ts +7 -0
  6. package/dist/cli/add.js +377 -0
  7. package/dist/cli/add.js.map +1 -0
  8. package/dist/cli/clean.js +1 -0
  9. package/dist/cli/clean.js.map +1 -1
  10. package/dist/cli/config.d.ts +7 -0
  11. package/dist/cli/config.js +181 -0
  12. package/dist/cli/config.js.map +1 -0
  13. package/dist/cli/index.js +34 -30
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/cli/logs.js +7 -33
  16. package/dist/cli/logs.js.map +1 -1
  17. package/dist/cli/monitor.js +51 -62
  18. package/dist/cli/monitor.js.map +1 -1
  19. package/dist/cli/new.d.ts +7 -0
  20. package/dist/cli/new.js +232 -0
  21. package/dist/cli/new.js.map +1 -0
  22. package/dist/cli/prepare.js +95 -193
  23. package/dist/cli/prepare.js.map +1 -1
  24. package/dist/cli/resume.js +11 -47
  25. package/dist/cli/resume.js.map +1 -1
  26. package/dist/cli/run.js +27 -22
  27. package/dist/cli/run.js.map +1 -1
  28. package/dist/cli/tasks.js +1 -2
  29. package/dist/cli/tasks.js.map +1 -1
  30. package/dist/core/failure-policy.d.ts +9 -0
  31. package/dist/core/failure-policy.js +9 -0
  32. package/dist/core/failure-policy.js.map +1 -1
  33. package/dist/core/orchestrator.d.ts +20 -6
  34. package/dist/core/orchestrator.js +213 -333
  35. package/dist/core/orchestrator.js.map +1 -1
  36. package/dist/core/runner/agent.d.ts +27 -0
  37. package/dist/core/runner/agent.js +294 -0
  38. package/dist/core/runner/agent.js.map +1 -0
  39. package/dist/core/runner/index.d.ts +5 -0
  40. package/dist/core/runner/index.js +22 -0
  41. package/dist/core/runner/index.js.map +1 -0
  42. package/dist/core/runner/pipeline.d.ts +9 -0
  43. package/dist/core/runner/pipeline.js +539 -0
  44. package/dist/core/runner/pipeline.js.map +1 -0
  45. package/dist/core/runner/prompt.d.ts +25 -0
  46. package/dist/core/runner/prompt.js +175 -0
  47. package/dist/core/runner/prompt.js.map +1 -0
  48. package/dist/core/runner/task.d.ts +26 -0
  49. package/dist/core/runner/task.js +283 -0
  50. package/dist/core/runner/task.js.map +1 -0
  51. package/dist/core/runner/utils.d.ts +37 -0
  52. package/dist/core/runner/utils.js +161 -0
  53. package/dist/core/runner/utils.js.map +1 -0
  54. package/dist/core/runner.d.ts +2 -96
  55. package/dist/core/runner.js +11 -1136
  56. package/dist/core/runner.js.map +1 -1
  57. package/dist/core/stall-detection.d.ts +326 -0
  58. package/dist/core/stall-detection.js +781 -0
  59. package/dist/core/stall-detection.js.map +1 -0
  60. package/dist/types/config.d.ts +6 -6
  61. package/dist/types/flow.d.ts +84 -0
  62. package/dist/types/flow.js +10 -0
  63. package/dist/types/flow.js.map +1 -0
  64. package/dist/types/index.d.ts +1 -0
  65. package/dist/types/index.js +3 -3
  66. package/dist/types/index.js.map +1 -1
  67. package/dist/types/lane.d.ts +0 -2
  68. package/dist/types/logging.d.ts +5 -1
  69. package/dist/types/task.d.ts +7 -11
  70. package/dist/utils/config.js +7 -15
  71. package/dist/utils/config.js.map +1 -1
  72. package/dist/utils/dependency.d.ts +36 -1
  73. package/dist/utils/dependency.js +256 -1
  74. package/dist/utils/dependency.js.map +1 -1
  75. package/dist/utils/enhanced-logger.d.ts +45 -82
  76. package/dist/utils/enhanced-logger.js +238 -844
  77. package/dist/utils/enhanced-logger.js.map +1 -1
  78. package/dist/utils/git.d.ts +29 -0
  79. package/dist/utils/git.js +115 -5
  80. package/dist/utils/git.js.map +1 -1
  81. package/dist/utils/state.js +0 -2
  82. package/dist/utils/state.js.map +1 -1
  83. package/dist/utils/task-service.d.ts +2 -2
  84. package/dist/utils/task-service.js +40 -31
  85. package/dist/utils/task-service.js.map +1 -1
  86. package/package.json +4 -3
  87. package/src/cli/add.ts +397 -0
  88. package/src/cli/clean.ts +1 -0
  89. package/src/cli/config.ts +177 -0
  90. package/src/cli/index.ts +36 -32
  91. package/src/cli/logs.ts +7 -31
  92. package/src/cli/monitor.ts +55 -71
  93. package/src/cli/new.ts +235 -0
  94. package/src/cli/prepare.ts +98 -205
  95. package/src/cli/resume.ts +13 -56
  96. package/src/cli/run.ts +311 -306
  97. package/src/cli/tasks.ts +1 -2
  98. package/src/core/failure-policy.ts +9 -0
  99. package/src/core/orchestrator.ts +277 -378
  100. package/src/core/runner/agent.ts +314 -0
  101. package/src/core/runner/index.ts +6 -0
  102. package/src/core/runner/pipeline.ts +567 -0
  103. package/src/core/runner/prompt.ts +174 -0
  104. package/src/core/runner/task.ts +320 -0
  105. package/src/core/runner/utils.ts +142 -0
  106. package/src/core/runner.ts +8 -1347
  107. package/src/core/stall-detection.ts +936 -0
  108. package/src/types/config.ts +6 -6
  109. package/src/types/flow.ts +91 -0
  110. package/src/types/index.ts +15 -3
  111. package/src/types/lane.ts +0 -2
  112. package/src/types/logging.ts +5 -1
  113. package/src/types/task.ts +7 -11
  114. package/src/utils/config.ts +8 -16
  115. package/src/utils/dependency.ts +311 -2
  116. package/src/utils/enhanced-logger.ts +263 -927
  117. package/src/utils/git.ts +145 -5
  118. package/src/utils/state.ts +0 -2
  119. package/src/utils/task-service.ts +48 -40
  120. package/commands/cursorflow-review.md +0 -56
  121. package/commands/cursorflow-runs.md +0 -59
  122. package/dist/cli/runs.d.ts +0 -5
  123. package/dist/cli/runs.js +0 -214
  124. package/dist/cli/runs.js.map +0 -1
  125. package/dist/core/reviewer.d.ts +0 -66
  126. package/dist/core/reviewer.js +0 -265
  127. package/dist/core/reviewer.js.map +0 -1
  128. package/src/cli/runs.ts +0 -212
  129. 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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"}
@@ -1,100 +1,6 @@
1
1
  /**
2
2
  * Core Runner - Execute tasks sequentially in a lane
3
3
  *
4
- * Features:
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
- import { DependencyWaitOptions } from '../utils/dependency';
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';