@litmers/cursorflow-orchestrator 0.1.18 → 0.1.26

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 (234) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +25 -7
  3. package/commands/cursorflow-clean.md +19 -0
  4. package/commands/cursorflow-runs.md +59 -0
  5. package/commands/cursorflow-stop.md +55 -0
  6. package/dist/cli/clean.js +178 -6
  7. package/dist/cli/clean.js.map +1 -1
  8. package/dist/cli/index.js +12 -1
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/init.js +8 -7
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/cli/logs.js +126 -77
  13. package/dist/cli/logs.js.map +1 -1
  14. package/dist/cli/monitor.d.ts +7 -0
  15. package/dist/cli/monitor.js +1021 -202
  16. package/dist/cli/monitor.js.map +1 -1
  17. package/dist/cli/prepare.js +39 -21
  18. package/dist/cli/prepare.js.map +1 -1
  19. package/dist/cli/resume.js +268 -163
  20. package/dist/cli/resume.js.map +1 -1
  21. package/dist/cli/run.js +11 -5
  22. package/dist/cli/run.js.map +1 -1
  23. package/dist/cli/runs.d.ts +5 -0
  24. package/dist/cli/runs.js +214 -0
  25. package/dist/cli/runs.js.map +1 -0
  26. package/dist/cli/setup-commands.js +0 -0
  27. package/dist/cli/signal.js +8 -8
  28. package/dist/cli/signal.js.map +1 -1
  29. package/dist/cli/stop.d.ts +5 -0
  30. package/dist/cli/stop.js +215 -0
  31. package/dist/cli/stop.js.map +1 -0
  32. package/dist/cli/tasks.d.ts +10 -0
  33. package/dist/cli/tasks.js +165 -0
  34. package/dist/cli/tasks.js.map +1 -0
  35. package/dist/core/auto-recovery.d.ts +212 -0
  36. package/dist/core/auto-recovery.js +737 -0
  37. package/dist/core/auto-recovery.js.map +1 -0
  38. package/dist/core/failure-policy.d.ts +156 -0
  39. package/dist/core/failure-policy.js +488 -0
  40. package/dist/core/failure-policy.js.map +1 -0
  41. package/dist/core/orchestrator.d.ts +16 -2
  42. package/dist/core/orchestrator.js +439 -105
  43. package/dist/core/orchestrator.js.map +1 -1
  44. package/dist/core/reviewer.d.ts +2 -0
  45. package/dist/core/reviewer.js +2 -0
  46. package/dist/core/reviewer.js.map +1 -1
  47. package/dist/core/runner.d.ts +33 -10
  48. package/dist/core/runner.js +374 -164
  49. package/dist/core/runner.js.map +1 -1
  50. package/dist/services/logging/buffer.d.ts +67 -0
  51. package/dist/services/logging/buffer.js +309 -0
  52. package/dist/services/logging/buffer.js.map +1 -0
  53. package/dist/services/logging/console.d.ts +89 -0
  54. package/dist/services/logging/console.js +169 -0
  55. package/dist/services/logging/console.js.map +1 -0
  56. package/dist/services/logging/file-writer.d.ts +71 -0
  57. package/dist/services/logging/file-writer.js +516 -0
  58. package/dist/services/logging/file-writer.js.map +1 -0
  59. package/dist/services/logging/formatter.d.ts +39 -0
  60. package/dist/services/logging/formatter.js +227 -0
  61. package/dist/services/logging/formatter.js.map +1 -0
  62. package/dist/services/logging/index.d.ts +11 -0
  63. package/dist/services/logging/index.js +30 -0
  64. package/dist/services/logging/index.js.map +1 -0
  65. package/dist/services/logging/parser.d.ts +31 -0
  66. package/dist/services/logging/parser.js +222 -0
  67. package/dist/services/logging/parser.js.map +1 -0
  68. package/dist/services/process/index.d.ts +59 -0
  69. package/dist/services/process/index.js +257 -0
  70. package/dist/services/process/index.js.map +1 -0
  71. package/dist/types/agent.d.ts +20 -0
  72. package/dist/types/agent.js +6 -0
  73. package/dist/types/agent.js.map +1 -0
  74. package/dist/types/config.d.ts +65 -0
  75. package/dist/types/config.js +6 -0
  76. package/dist/types/config.js.map +1 -0
  77. package/dist/types/events.d.ts +125 -0
  78. package/dist/types/events.js +6 -0
  79. package/dist/types/events.js.map +1 -0
  80. package/dist/types/index.d.ts +12 -0
  81. package/dist/types/index.js +37 -0
  82. package/dist/types/index.js.map +1 -0
  83. package/dist/types/lane.d.ts +43 -0
  84. package/dist/types/lane.js +6 -0
  85. package/dist/types/lane.js.map +1 -0
  86. package/dist/types/logging.d.ts +71 -0
  87. package/dist/types/logging.js +16 -0
  88. package/dist/types/logging.js.map +1 -0
  89. package/dist/types/review.d.ts +17 -0
  90. package/dist/types/review.js +6 -0
  91. package/dist/types/review.js.map +1 -0
  92. package/dist/types/run.d.ts +32 -0
  93. package/dist/types/run.js +6 -0
  94. package/dist/types/run.js.map +1 -0
  95. package/dist/types/task.d.ts +71 -0
  96. package/dist/types/task.js +6 -0
  97. package/dist/types/task.js.map +1 -0
  98. package/dist/ui/components.d.ts +134 -0
  99. package/dist/ui/components.js +389 -0
  100. package/dist/ui/components.js.map +1 -0
  101. package/dist/ui/log-viewer.d.ts +49 -0
  102. package/dist/ui/log-viewer.js +449 -0
  103. package/dist/ui/log-viewer.js.map +1 -0
  104. package/dist/utils/checkpoint.d.ts +87 -0
  105. package/dist/utils/checkpoint.js +317 -0
  106. package/dist/utils/checkpoint.js.map +1 -0
  107. package/dist/utils/config.d.ts +4 -0
  108. package/dist/utils/config.js +18 -8
  109. package/dist/utils/config.js.map +1 -1
  110. package/dist/utils/cursor-agent.js.map +1 -1
  111. package/dist/utils/dependency.d.ts +74 -0
  112. package/dist/utils/dependency.js +420 -0
  113. package/dist/utils/dependency.js.map +1 -0
  114. package/dist/utils/doctor.js +17 -11
  115. package/dist/utils/doctor.js.map +1 -1
  116. package/dist/utils/enhanced-logger.d.ts +10 -33
  117. package/dist/utils/enhanced-logger.js +108 -20
  118. package/dist/utils/enhanced-logger.js.map +1 -1
  119. package/dist/utils/git.d.ts +121 -0
  120. package/dist/utils/git.js +484 -11
  121. package/dist/utils/git.js.map +1 -1
  122. package/dist/utils/health.d.ts +91 -0
  123. package/dist/utils/health.js +556 -0
  124. package/dist/utils/health.js.map +1 -0
  125. package/dist/utils/lock.d.ts +95 -0
  126. package/dist/utils/lock.js +332 -0
  127. package/dist/utils/lock.js.map +1 -0
  128. package/dist/utils/log-buffer.d.ts +17 -0
  129. package/dist/utils/log-buffer.js +14 -0
  130. package/dist/utils/log-buffer.js.map +1 -0
  131. package/dist/utils/log-constants.d.ts +23 -0
  132. package/dist/utils/log-constants.js +28 -0
  133. package/dist/utils/log-constants.js.map +1 -0
  134. package/dist/utils/log-formatter.d.ts +25 -0
  135. package/dist/utils/log-formatter.js +237 -0
  136. package/dist/utils/log-formatter.js.map +1 -0
  137. package/dist/utils/log-service.d.ts +19 -0
  138. package/dist/utils/log-service.js +47 -0
  139. package/dist/utils/log-service.js.map +1 -0
  140. package/dist/utils/logger.d.ts +46 -27
  141. package/dist/utils/logger.js +82 -60
  142. package/dist/utils/logger.js.map +1 -1
  143. package/dist/utils/path.d.ts +19 -0
  144. package/dist/utils/path.js +77 -0
  145. package/dist/utils/path.js.map +1 -0
  146. package/dist/utils/process-manager.d.ts +21 -0
  147. package/dist/utils/process-manager.js +138 -0
  148. package/dist/utils/process-manager.js.map +1 -0
  149. package/dist/utils/retry.d.ts +121 -0
  150. package/dist/utils/retry.js +374 -0
  151. package/dist/utils/retry.js.map +1 -0
  152. package/dist/utils/run-service.d.ts +88 -0
  153. package/dist/utils/run-service.js +412 -0
  154. package/dist/utils/run-service.js.map +1 -0
  155. package/dist/utils/state.d.ts +62 -3
  156. package/dist/utils/state.js +317 -11
  157. package/dist/utils/state.js.map +1 -1
  158. package/dist/utils/task-service.d.ts +82 -0
  159. package/dist/utils/task-service.js +348 -0
  160. package/dist/utils/task-service.js.map +1 -0
  161. package/dist/utils/template.d.ts +14 -0
  162. package/dist/utils/template.js +122 -0
  163. package/dist/utils/template.js.map +1 -0
  164. package/dist/utils/types.d.ts +2 -271
  165. package/dist/utils/types.js +16 -0
  166. package/dist/utils/types.js.map +1 -1
  167. package/package.json +38 -23
  168. package/scripts/ai-security-check.js +0 -1
  169. package/scripts/local-security-gate.sh +0 -0
  170. package/scripts/monitor-lanes.sh +94 -0
  171. package/scripts/patches/test-cursor-agent.js +0 -1
  172. package/scripts/release.sh +0 -0
  173. package/scripts/setup-security.sh +0 -0
  174. package/scripts/stream-logs.sh +72 -0
  175. package/scripts/verify-and-fix.sh +0 -0
  176. package/src/cli/clean.ts +187 -6
  177. package/src/cli/index.ts +12 -1
  178. package/src/cli/init.ts +8 -7
  179. package/src/cli/logs.ts +124 -77
  180. package/src/cli/monitor.ts +1815 -898
  181. package/src/cli/prepare.ts +41 -21
  182. package/src/cli/resume.ts +753 -626
  183. package/src/cli/run.ts +12 -5
  184. package/src/cli/runs.ts +212 -0
  185. package/src/cli/setup-commands.ts +0 -0
  186. package/src/cli/signal.ts +8 -7
  187. package/src/cli/stop.ts +209 -0
  188. package/src/cli/tasks.ts +154 -0
  189. package/src/core/auto-recovery.ts +909 -0
  190. package/src/core/failure-policy.ts +592 -0
  191. package/src/core/orchestrator.ts +1131 -704
  192. package/src/core/reviewer.ts +4 -0
  193. package/src/core/runner.ts +444 -180
  194. package/src/services/logging/buffer.ts +326 -0
  195. package/src/services/logging/console.ts +193 -0
  196. package/src/services/logging/file-writer.ts +526 -0
  197. package/src/services/logging/formatter.ts +268 -0
  198. package/src/services/logging/index.ts +16 -0
  199. package/src/services/logging/parser.ts +232 -0
  200. package/src/services/process/index.ts +261 -0
  201. package/src/types/agent.ts +24 -0
  202. package/src/types/config.ts +79 -0
  203. package/src/types/events.ts +156 -0
  204. package/src/types/index.ts +29 -0
  205. package/src/types/lane.ts +56 -0
  206. package/src/types/logging.ts +96 -0
  207. package/src/types/review.ts +20 -0
  208. package/src/types/run.ts +37 -0
  209. package/src/types/task.ts +79 -0
  210. package/src/ui/components.ts +430 -0
  211. package/src/ui/log-viewer.ts +485 -0
  212. package/src/utils/checkpoint.ts +374 -0
  213. package/src/utils/config.ts +18 -8
  214. package/src/utils/cursor-agent.ts +1 -1
  215. package/src/utils/dependency.ts +482 -0
  216. package/src/utils/doctor.ts +18 -11
  217. package/src/utils/enhanced-logger.ts +122 -60
  218. package/src/utils/git.ts +517 -11
  219. package/src/utils/health.ts +596 -0
  220. package/src/utils/lock.ts +346 -0
  221. package/src/utils/log-buffer.ts +28 -0
  222. package/src/utils/log-constants.ts +26 -0
  223. package/src/utils/log-formatter.ts +245 -0
  224. package/src/utils/log-service.ts +49 -0
  225. package/src/utils/logger.ts +100 -51
  226. package/src/utils/path.ts +45 -0
  227. package/src/utils/process-manager.ts +100 -0
  228. package/src/utils/retry.ts +413 -0
  229. package/src/utils/run-service.ts +433 -0
  230. package/src/utils/state.ts +385 -11
  231. package/src/utils/task-service.ts +370 -0
  232. package/src/utils/template.ts +92 -0
  233. package/src/utils/types.ts +2 -314
  234. package/templates/basic.json +21 -0
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ /**
3
+ * Process Management Service
4
+ *
5
+ * Utilities for detecting and managing lane processes.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.checkProcess = checkProcess;
42
+ exports.getLaneProcessStatus = getLaneProcessStatus;
43
+ exports.getAllLaneProcessStatuses = getAllLaneProcessStatuses;
44
+ exports.isFlowAlive = isFlowAlive;
45
+ exports.getFlowSummary = getFlowSummary;
46
+ exports.killLaneProcess = killLaneProcess;
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const child_process_1 = require("child_process");
50
+ /**
51
+ * Check if a process exists and is running
52
+ */
53
+ function checkProcess(pid) {
54
+ const result = {
55
+ pid,
56
+ exists: false,
57
+ isRunning: false,
58
+ };
59
+ try {
60
+ // Send signal 0 to check if process exists
61
+ process.kill(pid, 0);
62
+ result.exists = true;
63
+ result.isRunning = true;
64
+ // Try to get more info on Linux/macOS
65
+ if (process.platform !== 'win32') {
66
+ try {
67
+ const psResult = (0, child_process_1.spawnSync)('ps', ['-p', pid.toString(), '-o', 'pid,stat,comm,etime,%cpu,%mem'], {
68
+ encoding: 'utf8',
69
+ timeout: 1000,
70
+ });
71
+ if (psResult.status === 0) {
72
+ const psOutput = psResult.stdout.trim();
73
+ const lines = psOutput.split('\n');
74
+ if (lines.length > 1) {
75
+ const fields = lines[1].trim().split(/\s+/);
76
+ if (fields.length >= 4) {
77
+ result.command = fields[2];
78
+ // Parse elapsed time (formats: MM:SS, HH:MM:SS, D-HH:MM:SS)
79
+ const etime = fields[3];
80
+ result.uptime = parseElapsedTime(etime);
81
+ if (fields.length >= 5) {
82
+ result.cpuPercent = parseFloat(fields[4]);
83
+ }
84
+ if (fields.length >= 6) {
85
+ result.memoryMb = parseFloat(fields[5]);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ catch {
92
+ // ps failed, but process exists
93
+ }
94
+ }
95
+ }
96
+ catch (err) {
97
+ // ESRCH = no such process
98
+ // EPERM = permission denied but process exists
99
+ if (err.code === 'EPERM') {
100
+ result.exists = true;
101
+ result.isRunning = true;
102
+ }
103
+ }
104
+ return result;
105
+ }
106
+ /**
107
+ * Parse ps elapsed time format to milliseconds
108
+ */
109
+ function parseElapsedTime(etime) {
110
+ // Formats: SS, MM:SS, HH:MM:SS, D-HH:MM:SS
111
+ const parts = etime.split('-');
112
+ let days = 0;
113
+ let timeStr = etime;
114
+ if (parts.length === 2) {
115
+ days = parseInt(parts[0], 10);
116
+ timeStr = parts[1];
117
+ }
118
+ const timeParts = timeStr.split(':').reverse();
119
+ let seconds = 0;
120
+ if (timeParts.length >= 1)
121
+ seconds += parseInt(timeParts[0], 10);
122
+ if (timeParts.length >= 2)
123
+ seconds += parseInt(timeParts[1], 10) * 60;
124
+ if (timeParts.length >= 3)
125
+ seconds += parseInt(timeParts[2], 10) * 3600;
126
+ seconds += days * 86400;
127
+ return seconds * 1000;
128
+ }
129
+ /**
130
+ * Get accurate lane process status
131
+ */
132
+ function getLaneProcessStatus(lanePath, laneName) {
133
+ const statePath = path.join(lanePath, 'state.json');
134
+ const result = {
135
+ laneName,
136
+ pid: null,
137
+ processExists: false,
138
+ processRunning: false,
139
+ stateStatus: 'unknown',
140
+ actualStatus: 'unknown',
141
+ startTime: null,
142
+ endTime: null,
143
+ duration: 0,
144
+ isStale: false,
145
+ };
146
+ if (!fs.existsSync(statePath)) {
147
+ result.stateStatus = 'pending';
148
+ result.actualStatus = 'pending';
149
+ return result;
150
+ }
151
+ try {
152
+ const state = JSON.parse(fs.readFileSync(statePath, 'utf8'));
153
+ result.stateStatus = state.status || 'unknown';
154
+ result.pid = state.pid || null;
155
+ result.startTime = state.startTime || null;
156
+ result.endTime = state.endTime || null;
157
+ // Calculate duration
158
+ if (result.startTime) {
159
+ if (result.endTime) {
160
+ result.duration = result.endTime - result.startTime;
161
+ }
162
+ else if (result.stateStatus === 'running' || result.stateStatus === 'reviewing') {
163
+ result.duration = Date.now() - result.startTime;
164
+ }
165
+ }
166
+ // Determine actual status based on process check
167
+ if (result.stateStatus === 'completed') {
168
+ result.actualStatus = 'completed';
169
+ }
170
+ else if (result.stateStatus === 'failed') {
171
+ result.actualStatus = 'failed';
172
+ }
173
+ else if (result.stateStatus === 'pending' || result.stateStatus === 'waiting') {
174
+ result.actualStatus = 'pending';
175
+ }
176
+ else if (result.pid) {
177
+ // Check if process is actually running
178
+ const processInfo = checkProcess(result.pid);
179
+ result.processInfo = processInfo;
180
+ result.processExists = processInfo.exists;
181
+ result.processRunning = processInfo.isRunning;
182
+ if (processInfo.isRunning) {
183
+ result.actualStatus = 'running';
184
+ }
185
+ else {
186
+ // Process is gone but state says running - stale state
187
+ result.actualStatus = 'dead';
188
+ result.isStale = true;
189
+ }
190
+ }
191
+ else {
192
+ // No PID but state says running
193
+ if (result.stateStatus === 'running') {
194
+ result.actualStatus = 'dead';
195
+ result.isStale = true;
196
+ }
197
+ else {
198
+ result.actualStatus = 'pending';
199
+ }
200
+ }
201
+ }
202
+ catch {
203
+ result.actualStatus = 'unknown';
204
+ }
205
+ return result;
206
+ }
207
+ /**
208
+ * Get all lane process statuses for a run directory
209
+ */
210
+ function getAllLaneProcessStatuses(runDir) {
211
+ const lanesDir = path.join(runDir, 'lanes');
212
+ if (!fs.existsSync(lanesDir))
213
+ return [];
214
+ const lanes = fs.readdirSync(lanesDir).filter(name => {
215
+ const dirPath = path.join(lanesDir, name);
216
+ return fs.statSync(dirPath).isDirectory();
217
+ });
218
+ return lanes.map(laneName => {
219
+ const lanePath = path.join(lanesDir, laneName);
220
+ return getLaneProcessStatus(lanePath, laneName);
221
+ });
222
+ }
223
+ /**
224
+ * Check if any flow process is alive
225
+ */
226
+ function isFlowAlive(runDir) {
227
+ const statuses = getAllLaneProcessStatuses(runDir);
228
+ return statuses.some(s => s.actualStatus === 'running');
229
+ }
230
+ /**
231
+ * Get flow status summary
232
+ */
233
+ function getFlowSummary(runDir) {
234
+ const statuses = getAllLaneProcessStatuses(runDir);
235
+ return {
236
+ total: statuses.length,
237
+ running: statuses.filter(s => s.actualStatus === 'running').length,
238
+ completed: statuses.filter(s => s.actualStatus === 'completed').length,
239
+ failed: statuses.filter(s => s.actualStatus === 'failed').length,
240
+ pending: statuses.filter(s => s.actualStatus === 'pending').length,
241
+ dead: statuses.filter(s => s.actualStatus === 'dead').length,
242
+ isAlive: statuses.some(s => s.actualStatus === 'running'),
243
+ };
244
+ }
245
+ /**
246
+ * Kill a lane process
247
+ */
248
+ function killLaneProcess(pid, signal = 'SIGTERM') {
249
+ try {
250
+ process.kill(pid, signal);
251
+ return true;
252
+ }
253
+ catch {
254
+ return false;
255
+ }
256
+ }
257
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/process/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Agent-related type definitions
3
+ */
4
+ export interface DependencyPolicy {
5
+ allowDependencyChange: boolean;
6
+ lockfileReadOnly: boolean;
7
+ }
8
+ export interface DependencyRequestPlan {
9
+ reason: string;
10
+ changes: string[];
11
+ commands: string[];
12
+ notes?: string;
13
+ }
14
+ export interface AgentSendResult {
15
+ ok: boolean;
16
+ exitCode: number;
17
+ error?: string;
18
+ sessionId?: string;
19
+ resultText?: string;
20
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Agent-related type definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Configuration-related type definitions
3
+ */
4
+ export interface LaneConfig {
5
+ devPort: number;
6
+ autoCreatePr: boolean;
7
+ }
8
+ export interface WebhookConfig {
9
+ enabled?: boolean;
10
+ url: string;
11
+ secret?: string;
12
+ events?: string[];
13
+ headers?: Record<string, string>;
14
+ retries?: number;
15
+ timeoutMs?: number;
16
+ }
17
+ export interface EnhancedLogConfig {
18
+ /** Enable enhanced logging features (default: true) */
19
+ enabled: boolean;
20
+ /** Strip ANSI escape codes from clean logs (default: true) */
21
+ stripAnsi: boolean;
22
+ /** Add timestamps to each line (default: true) */
23
+ addTimestamps: boolean;
24
+ /** Maximum size in bytes before rotation (default: 50MB) */
25
+ maxFileSize: number;
26
+ /** Number of rotated files to keep (default: 5) */
27
+ maxFiles: number;
28
+ /** Write raw output with ANSI codes to separate file (default: true) */
29
+ keepRawLogs: boolean;
30
+ /** Keep absolute raw logs without any processing */
31
+ keepAbsoluteRawLogs?: boolean;
32
+ /** Write structured JSON log entries (default: true) */
33
+ writeJsonLog: boolean;
34
+ /** Timestamp format: 'iso' | 'relative' | 'short' (default: 'iso') */
35
+ timestampFormat: 'iso' | 'relative' | 'short';
36
+ /** Raw output mode */
37
+ raw?: boolean;
38
+ }
39
+ export interface CursorFlowConfig {
40
+ tasksDir: string;
41
+ logsDir: string;
42
+ pofDir: string;
43
+ /** Base branch (optional, auto-detected from current branch if not specified) */
44
+ baseBranch?: string;
45
+ branchPrefix: string;
46
+ executor: 'cursor-agent' | 'cloud';
47
+ pollInterval: number;
48
+ allowDependencyChange: boolean;
49
+ lockfileReadOnly: boolean;
50
+ enableReview: boolean;
51
+ reviewModel: string;
52
+ reviewAllTasks?: boolean;
53
+ maxReviewIterations: number;
54
+ defaultLaneConfig: LaneConfig;
55
+ logLevel: string;
56
+ verboseGit: boolean;
57
+ worktreePrefix: string;
58
+ maxConcurrentLanes: number;
59
+ projectRoot: string;
60
+ /** Output format for cursor-agent (default: 'stream-json') */
61
+ agentOutputFormat: 'stream-json' | 'json' | 'plain';
62
+ webhooks?: WebhookConfig[];
63
+ /** Enhanced logging configuration */
64
+ enhancedLogging?: Partial<EnhancedLogConfig>;
65
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration-related type definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Event-related type definitions
3
+ */
4
+ import type { DependencyRequestPlan } from './agent';
5
+ export interface CursorFlowEvent<T = Record<string, any>> {
6
+ id: string;
7
+ type: string;
8
+ timestamp: string;
9
+ runId: string;
10
+ payload: T;
11
+ }
12
+ export type EventHandler<T = any> = (event: CursorFlowEvent<T>) => void | Promise<void>;
13
+ export interface OrchestrationStartedPayload {
14
+ runId: string;
15
+ tasksDir: string;
16
+ laneCount: number;
17
+ runRoot: string;
18
+ }
19
+ export interface OrchestrationCompletedPayload {
20
+ runId: string;
21
+ laneCount: number;
22
+ completedCount: number;
23
+ failedCount: number;
24
+ }
25
+ export interface OrchestrationFailedPayload {
26
+ error: string;
27
+ blockedLanes?: string[];
28
+ }
29
+ export interface LaneStartedPayload {
30
+ laneName: string;
31
+ pid?: number;
32
+ logPath: string;
33
+ }
34
+ export interface LaneCompletedPayload {
35
+ laneName: string;
36
+ exitCode: number;
37
+ }
38
+ export interface LaneFailedPayload {
39
+ laneName: string;
40
+ exitCode: number;
41
+ error: string;
42
+ }
43
+ export interface LaneDependencyRequestedPayload {
44
+ laneName: string;
45
+ dependencyRequest: DependencyRequestPlan;
46
+ }
47
+ export interface TaskStartedPayload {
48
+ taskName: string;
49
+ taskBranch: string;
50
+ index: number;
51
+ }
52
+ export interface TaskCompletedPayload {
53
+ taskName: string;
54
+ taskBranch: string;
55
+ status: string;
56
+ }
57
+ export interface TaskFailedPayload {
58
+ taskName: string;
59
+ taskBranch: string;
60
+ error: string;
61
+ }
62
+ export interface AgentPromptSentPayload {
63
+ taskName: string;
64
+ model: string;
65
+ promptLength: number;
66
+ }
67
+ export interface AgentResponseReceivedPayload {
68
+ taskName: string;
69
+ ok: boolean;
70
+ duration: number;
71
+ responseLength: number;
72
+ error?: string;
73
+ }
74
+ export interface ReviewStartedPayload {
75
+ taskName: string;
76
+ taskBranch: string;
77
+ }
78
+ export interface ReviewCompletedPayload {
79
+ taskName: string;
80
+ status: 'approved' | 'needs_changes';
81
+ issueCount: number;
82
+ summary: string;
83
+ raw: string;
84
+ }
85
+ export interface ReviewApprovedPayload {
86
+ taskName: string;
87
+ iterations: number;
88
+ }
89
+ export interface ReviewRejectedPayload {
90
+ taskName: string;
91
+ reason: string;
92
+ iterations: number;
93
+ }
94
+ export interface RecoveryContinueSignalPayload {
95
+ laneName: string;
96
+ idleSeconds: number;
97
+ signalCount: number;
98
+ }
99
+ export interface RecoveryStrongerPromptPayload {
100
+ laneName: string;
101
+ prompt?: string;
102
+ }
103
+ export interface RecoveryRestartPayload {
104
+ laneName: string;
105
+ restartCount: number;
106
+ maxRestarts: number;
107
+ }
108
+ export interface RecoveryDiagnosedPayload {
109
+ laneName: string;
110
+ diagnostic: {
111
+ timestamp?: number;
112
+ agentHealthy: boolean;
113
+ authHealthy: boolean;
114
+ systemHealthy?: boolean;
115
+ suggestedAction?: string;
116
+ details?: string;
117
+ issues?: string[];
118
+ };
119
+ }
120
+ export interface RecoveryConflictResolutionPayload {
121
+ success: boolean;
122
+ strategy: string;
123
+ resolvedCount: number;
124
+ unresolvedCount: number;
125
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Event-related type definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Central type definitions for CursorFlow
3
+ * Re-exports all types from separate modules
4
+ */
5
+ export * from './config';
6
+ export * from './lane';
7
+ export * from './task';
8
+ export * from './agent';
9
+ export * from './review';
10
+ export * from './events';
11
+ export * from './logging';
12
+ export * from './run';
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * Central type definitions for CursorFlow
4
+ * Re-exports all types from separate modules
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // Config
22
+ __exportStar(require("./config"), exports);
23
+ // Lane
24
+ __exportStar(require("./lane"), exports);
25
+ // Task
26
+ __exportStar(require("./task"), exports);
27
+ // Agent
28
+ __exportStar(require("./agent"), exports);
29
+ // Review
30
+ __exportStar(require("./review"), exports);
31
+ // Events
32
+ __exportStar(require("./events"), exports);
33
+ // Logging
34
+ __exportStar(require("./logging"), exports);
35
+ // Run
36
+ __exportStar(require("./run"), exports);
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,SAAS;AACT,2CAAyB;AAEzB,OAAO;AACP,yCAAuB;AAEvB,OAAO;AACP,yCAAuB;AAEvB,QAAQ;AACR,0CAAwB;AAExB,SAAS;AACT,2CAAyB;AAEzB,SAAS;AACT,2CAAyB;AAEzB,UAAU;AACV,4CAA0B;AAE1B,MAAM;AACN,wCAAsB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Lane-related type definitions
3
+ */
4
+ import type { DependencyRequestPlan } from './agent';
5
+ export type LaneStatus = 'pending' | 'running' | 'completed' | 'failed' | 'paused' | 'waiting' | 'reviewing';
6
+ export interface LaneInfo {
7
+ name: string;
8
+ status: string;
9
+ currentTask: number;
10
+ totalTasks: number;
11
+ pid?: number;
12
+ pipelineBranch?: string;
13
+ }
14
+ export interface LaneState {
15
+ label: string;
16
+ status: LaneStatus;
17
+ currentTaskIndex: number;
18
+ totalTasks: number;
19
+ worktreeDir: string | null;
20
+ pipelineBranch: string | null;
21
+ startTime: number;
22
+ endTime: number | null;
23
+ error: string | null;
24
+ dependencyRequest: DependencyRequestPlan | null;
25
+ updatedAt?: number;
26
+ tasksFile?: string;
27
+ dependsOn?: string[];
28
+ pid?: number;
29
+ /** List of completed task names in this lane */
30
+ completedTasks?: string[];
31
+ /** Task-level dependencies currently being waited for (format: "lane:task") */
32
+ waitingFor?: string[];
33
+ /** Chat session ID */
34
+ chatId?: string;
35
+ }
36
+ export interface LaneFileInfo {
37
+ fileName: string;
38
+ laneName: string;
39
+ preset: string;
40
+ taskCount: number;
41
+ taskFlow: string;
42
+ dependsOn: string[];
43
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Lane-related type definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=lane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane.js","sourceRoot":"","sources":["../../src/types/lane.ts"],"names":[],"mappings":";AAAA;;GAEG"}