@litmers/cursorflow-orchestrator 0.1.13 → 0.1.14

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 (68) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +83 -2
  3. package/commands/cursorflow-clean.md +20 -6
  4. package/commands/cursorflow-prepare.md +1 -1
  5. package/commands/cursorflow-resume.md +127 -6
  6. package/commands/cursorflow-run.md +2 -2
  7. package/commands/cursorflow-signal.md +11 -4
  8. package/dist/cli/clean.js +164 -12
  9. package/dist/cli/clean.js.map +1 -1
  10. package/dist/cli/index.d.ts +1 -0
  11. package/dist/cli/index.js +6 -1
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/logs.d.ts +8 -0
  14. package/dist/cli/logs.js +746 -0
  15. package/dist/cli/logs.js.map +1 -0
  16. package/dist/cli/monitor.js +113 -30
  17. package/dist/cli/monitor.js.map +1 -1
  18. package/dist/cli/prepare.js +1 -1
  19. package/dist/cli/resume.js +367 -18
  20. package/dist/cli/resume.js.map +1 -1
  21. package/dist/cli/run.js +2 -0
  22. package/dist/cli/run.js.map +1 -1
  23. package/dist/cli/signal.js +34 -20
  24. package/dist/cli/signal.js.map +1 -1
  25. package/dist/core/orchestrator.d.ts +11 -1
  26. package/dist/core/orchestrator.js +257 -35
  27. package/dist/core/orchestrator.js.map +1 -1
  28. package/dist/core/reviewer.js +20 -0
  29. package/dist/core/reviewer.js.map +1 -1
  30. package/dist/core/runner.js +113 -13
  31. package/dist/core/runner.js.map +1 -1
  32. package/dist/utils/config.js +34 -0
  33. package/dist/utils/config.js.map +1 -1
  34. package/dist/utils/enhanced-logger.d.ts +209 -0
  35. package/dist/utils/enhanced-logger.js +963 -0
  36. package/dist/utils/enhanced-logger.js.map +1 -0
  37. package/dist/utils/events.d.ts +59 -0
  38. package/dist/utils/events.js +37 -0
  39. package/dist/utils/events.js.map +1 -0
  40. package/dist/utils/git.d.ts +5 -0
  41. package/dist/utils/git.js +25 -0
  42. package/dist/utils/git.js.map +1 -1
  43. package/dist/utils/types.d.ts +122 -1
  44. package/dist/utils/webhook.d.ts +5 -0
  45. package/dist/utils/webhook.js +109 -0
  46. package/dist/utils/webhook.js.map +1 -0
  47. package/examples/README.md +1 -1
  48. package/package.json +1 -1
  49. package/scripts/simple-logging-test.sh +97 -0
  50. package/scripts/test-real-logging.sh +289 -0
  51. package/scripts/test-streaming-multi-task.sh +247 -0
  52. package/src/cli/clean.ts +170 -13
  53. package/src/cli/index.ts +4 -1
  54. package/src/cli/logs.ts +848 -0
  55. package/src/cli/monitor.ts +123 -30
  56. package/src/cli/prepare.ts +1 -1
  57. package/src/cli/resume.ts +463 -22
  58. package/src/cli/run.ts +2 -0
  59. package/src/cli/signal.ts +43 -27
  60. package/src/core/orchestrator.ts +303 -37
  61. package/src/core/reviewer.ts +22 -0
  62. package/src/core/runner.ts +128 -12
  63. package/src/utils/config.ts +36 -0
  64. package/src/utils/enhanced-logger.ts +1097 -0
  65. package/src/utils/events.ts +117 -0
  66. package/src/utils/git.ts +25 -0
  67. package/src/utils/types.ts +150 -1
  68. package/src/utils/webhook.ts +85 -0
@@ -44,27 +44,41 @@ const state_1 = require("../utils/state");
44
44
  const doctor_1 = require("../utils/doctor");
45
45
  function printHelp() {
46
46
  console.log(`
47
- Usage: cursorflow resume <lane> [options]
47
+ Usage: cursorflow resume [lane] [options]
48
48
 
49
- Resume an interrupted or failed lane.
49
+ Resume interrupted or failed lanes.
50
50
 
51
51
  Options:
52
- <lane> Lane name to resume
52
+ <lane> Lane name to resume (single lane mode)
53
+ --all Resume ALL incomplete/failed lanes
54
+ --status Show status of all lanes in the run (no resume)
53
55
  --run-dir <path> Use a specific run directory (default: latest)
56
+ --max-concurrent <n> Max lanes to run in parallel (default: 3)
54
57
  --clean Clean up existing worktree before resuming
55
58
  --restart Restart from the first task (index 0)
56
59
  --skip-doctor Skip environment/branch checks (not recommended)
57
60
  --help, -h Show help
61
+
62
+ Examples:
63
+ cursorflow resume --status # Check status of all lanes
64
+ cursorflow resume --all # Resume all incomplete lanes
65
+ cursorflow resume lane-1 # Resume single lane
66
+ cursorflow resume --all --restart # Restart all incomplete lanes from task 0
67
+ cursorflow resume --all --max-concurrent 2 # Resume with max 2 parallel lanes
58
68
  `);
59
69
  }
60
70
  function parseArgs(args) {
61
71
  const runDirIdx = args.indexOf('--run-dir');
72
+ const maxConcurrentIdx = args.indexOf('--max-concurrent');
62
73
  return {
63
74
  lane: args.find(a => !a.startsWith('--')) || null,
64
75
  runDir: runDirIdx >= 0 ? args[runDirIdx + 1] || null : null,
65
76
  clean: args.includes('--clean'),
66
77
  restart: args.includes('--restart'),
67
78
  skipDoctor: args.includes('--skip-doctor') || args.includes('--no-doctor'),
79
+ all: args.includes('--all'),
80
+ status: args.includes('--status'),
81
+ maxConcurrent: maxConcurrentIdx >= 0 ? parseInt(args[maxConcurrentIdx + 1] || '3') : 3,
68
82
  help: args.includes('--help') || args.includes('-h'),
69
83
  };
70
84
  }
@@ -81,6 +95,325 @@ function findLatestRunDir(logsDir) {
81
95
  .reverse();
82
96
  return runs.length > 0 ? path.join(runsDir, runs[0]) : null;
83
97
  }
98
+ /**
99
+ * Status indicator colors
100
+ */
101
+ const STATUS_COLORS = {
102
+ completed: '\x1b[32m', // green
103
+ running: '\x1b[36m', // cyan
104
+ pending: '\x1b[33m', // yellow
105
+ failed: '\x1b[31m', // red
106
+ paused: '\x1b[35m', // magenta
107
+ waiting: '\x1b[33m', // yellow
108
+ reviewing: '\x1b[36m', // cyan
109
+ unknown: '\x1b[90m', // gray
110
+ };
111
+ const RESET = '\x1b[0m';
112
+ /**
113
+ * Get all lane statuses from a run directory
114
+ */
115
+ function getAllLaneStatuses(runDir) {
116
+ const lanesDir = path.join(runDir, 'lanes');
117
+ if (!fs.existsSync(lanesDir)) {
118
+ return [];
119
+ }
120
+ const lanes = fs.readdirSync(lanesDir)
121
+ .filter(f => fs.statSync(path.join(lanesDir, f)).isDirectory())
122
+ .map(name => {
123
+ const dir = path.join(lanesDir, name);
124
+ const statePath = path.join(dir, 'state.json');
125
+ const state = fs.existsSync(statePath) ? (0, state_1.loadState)(statePath) : null;
126
+ // Determine if lane needs resume
127
+ const needsResume = state ? (state.status === 'failed' ||
128
+ state.status === 'paused' ||
129
+ state.status === 'running' || // If process crashed mid-run
130
+ (state.status === 'pending' && state.currentTaskIndex > 0)) : false;
131
+ const isCompleted = state?.status === 'completed';
132
+ const dependsOn = state?.dependsOn || [];
133
+ return { name, dir, state, needsResume, dependsOn, isCompleted };
134
+ });
135
+ return lanes;
136
+ }
137
+ /**
138
+ * Check if all dependencies of a lane are completed
139
+ */
140
+ function areDependenciesCompleted(lane, allLanes, completedLanes) {
141
+ if (!lane.dependsOn || lane.dependsOn.length === 0) {
142
+ return true;
143
+ }
144
+ for (const depName of lane.dependsOn) {
145
+ // Check if dependency is in completed set (already succeeded in this resume session)
146
+ if (completedLanes.has(depName)) {
147
+ continue;
148
+ }
149
+ // Check if dependency was already completed before this resume
150
+ const depLane = allLanes.find(l => l.name === depName);
151
+ if (!depLane || !depLane.isCompleted) {
152
+ return false;
153
+ }
154
+ }
155
+ return true;
156
+ }
157
+ /**
158
+ * Print status of all lanes
159
+ */
160
+ function printAllLaneStatus(runDir) {
161
+ const lanes = getAllLaneStatuses(runDir);
162
+ if (lanes.length === 0) {
163
+ logger.warn('No lanes found in this run.');
164
+ return { total: 0, completed: 0, needsResume: 0 };
165
+ }
166
+ logger.section(`📊 Lane Status (${path.basename(runDir)})`);
167
+ console.log('');
168
+ // Table header
169
+ console.log(' ' +
170
+ 'Lane'.padEnd(25) +
171
+ 'Status'.padEnd(12) +
172
+ 'Progress'.padEnd(12) +
173
+ 'DependsOn'.padEnd(15) +
174
+ 'Resumable');
175
+ console.log(' ' + '-'.repeat(75));
176
+ let completedCount = 0;
177
+ let needsResumeCount = 0;
178
+ const completedSet = new Set();
179
+ // First pass: collect completed lanes
180
+ for (const lane of lanes) {
181
+ if (lane.isCompleted) {
182
+ completedSet.add(lane.name);
183
+ }
184
+ }
185
+ for (const lane of lanes) {
186
+ const state = lane.state;
187
+ const status = state?.status || 'unknown';
188
+ const color = STATUS_COLORS[status] || STATUS_COLORS.unknown;
189
+ const progress = state ? `${state.currentTaskIndex}/${state.totalTasks}` : '-/-';
190
+ const dependsOnStr = lane.dependsOn.length > 0 ? lane.dependsOn.join(',').substring(0, 12) : '-';
191
+ // Check if dependencies are met
192
+ const depsCompleted = areDependenciesCompleted(lane, lanes, completedSet);
193
+ const canResume = lane.needsResume && depsCompleted;
194
+ const blockedByDep = lane.needsResume && !depsCompleted;
195
+ if (status === 'completed')
196
+ completedCount++;
197
+ if (lane.needsResume)
198
+ needsResumeCount++;
199
+ let resumeIndicator = '';
200
+ if (canResume) {
201
+ resumeIndicator = '\x1b[33m✓\x1b[0m';
202
+ }
203
+ else if (blockedByDep) {
204
+ resumeIndicator = '\x1b[90m⏳ waiting\x1b[0m';
205
+ }
206
+ console.log(' ' +
207
+ lane.name.padEnd(25) +
208
+ `${color}${status.padEnd(12)}${RESET}` +
209
+ progress.padEnd(12) +
210
+ dependsOnStr.padEnd(15) +
211
+ resumeIndicator);
212
+ // Show error if failed
213
+ if (status === 'failed' && state?.error) {
214
+ console.log(` ${''.padEnd(25)}\x1b[31m└─ ${state.error.substring(0, 50)}${state.error.length > 50 ? '...' : ''}\x1b[0m`);
215
+ }
216
+ // Show blocked dependency info
217
+ if (blockedByDep) {
218
+ const pendingDeps = lane.dependsOn.filter(d => !completedSet.has(d));
219
+ console.log(` ${''.padEnd(25)}\x1b[90m└─ waiting for: ${pendingDeps.join(', ')}\x1b[0m`);
220
+ }
221
+ }
222
+ console.log('');
223
+ console.log(` Total: ${lanes.length} | Completed: ${completedCount} | Needs Resume: ${needsResumeCount}`);
224
+ if (needsResumeCount > 0) {
225
+ console.log('');
226
+ console.log(' \x1b[33mTip:\x1b[0m Run \x1b[32mcursorflow resume --all\x1b[0m to resume all incomplete lanes');
227
+ console.log(' Lanes with dependencies will wait until their dependencies complete.');
228
+ }
229
+ return { total: lanes.length, completed: completedCount, needsResume: needsResumeCount };
230
+ }
231
+ /**
232
+ * Resume a single lane and return the child process
233
+ */
234
+ function spawnLaneResume(laneName, laneDir, state, options) {
235
+ const runnerPath = require.resolve('../core/runner');
236
+ const startIndex = options.restart ? 0 : state.currentTaskIndex;
237
+ const runnerArgs = [
238
+ runnerPath,
239
+ state.tasksFile,
240
+ '--run-dir', laneDir,
241
+ '--start-index', String(startIndex),
242
+ ];
243
+ const child = (0, child_process_1.spawn)('node', runnerArgs, {
244
+ stdio: 'inherit',
245
+ env: process.env,
246
+ });
247
+ return child;
248
+ }
249
+ /**
250
+ * Wait for a child process to exit
251
+ */
252
+ function waitForChild(child) {
253
+ return new Promise((resolve, reject) => {
254
+ child.on('exit', (code) => {
255
+ resolve(code ?? -1);
256
+ });
257
+ child.on('error', (err) => {
258
+ reject(err);
259
+ });
260
+ });
261
+ }
262
+ /**
263
+ * Resume multiple lanes with concurrency control and dependency awareness
264
+ */
265
+ async function resumeAllLanes(runDir, options) {
266
+ const allLanes = getAllLaneStatuses(runDir);
267
+ const lanesToResume = allLanes.filter(l => l.needsResume && l.state?.tasksFile);
268
+ if (lanesToResume.length === 0) {
269
+ logger.success('All lanes are already completed! Nothing to resume.');
270
+ return { succeeded: [], failed: [], skipped: [] };
271
+ }
272
+ // Check for lanes with unmet dependencies that can never be satisfied
273
+ const completedSet = new Set(allLanes.filter(l => l.isCompleted).map(l => l.name));
274
+ const toResumeNames = new Set(lanesToResume.map(l => l.name));
275
+ const skippedLanes = [];
276
+ const resolvableLanes = [];
277
+ for (const lane of lanesToResume) {
278
+ // Check if all dependencies can be satisfied (either already completed or in the resume list)
279
+ const unmetDeps = lane.dependsOn.filter(dep => !completedSet.has(dep) && !toResumeNames.has(dep));
280
+ if (unmetDeps.length > 0) {
281
+ logger.warn(`⏭ Skipping ${lane.name}: unresolvable dependencies (${unmetDeps.join(', ')})`);
282
+ skippedLanes.push(lane.name);
283
+ }
284
+ else {
285
+ resolvableLanes.push(lane);
286
+ }
287
+ }
288
+ if (resolvableLanes.length === 0) {
289
+ logger.warn('No lanes can be resumed due to dependency constraints.');
290
+ return { succeeded: [], failed: [], skipped: skippedLanes };
291
+ }
292
+ logger.section(`🔁 Resuming ${resolvableLanes.length} Lane(s)`);
293
+ logger.info(`Max concurrent: ${options.maxConcurrent}`);
294
+ logger.info(`Mode: ${options.restart ? 'Restart from beginning' : 'Continue from last task'}`);
295
+ // Show dependency order
296
+ const lanesWithDeps = resolvableLanes.filter(l => l.dependsOn.length > 0);
297
+ if (lanesWithDeps.length > 0) {
298
+ logger.info(`Dependency-aware: ${lanesWithDeps.length} lane(s) have dependencies`);
299
+ }
300
+ console.log('');
301
+ // Run doctor check once if needed (check git status)
302
+ if (!options.skipDoctor) {
303
+ logger.info('Running pre-flight checks...');
304
+ // Use the first lane's tasksDir for doctor check
305
+ const firstLane = resolvableLanes[0];
306
+ const tasksDir = path.dirname(firstLane.state.tasksFile);
307
+ const report = (0, doctor_1.runDoctor)({
308
+ cwd: process.cwd(),
309
+ tasksDir,
310
+ includeCursorAgentChecks: false,
311
+ });
312
+ const blockingIssues = report.issues.filter(i => i.severity === 'error' &&
313
+ (i.id.startsWith('branch.') || i.id.startsWith('git.')));
314
+ if (blockingIssues.length > 0) {
315
+ logger.section('🛑 Pre-resume check found issues');
316
+ for (const issue of blockingIssues) {
317
+ logger.error(`${issue.title} (${issue.id})`, '❌');
318
+ console.log(` ${issue.message}`);
319
+ }
320
+ throw new Error('Pre-resume checks failed. Use --skip-doctor to bypass.');
321
+ }
322
+ }
323
+ const succeeded = [];
324
+ const failed = [];
325
+ // Create a mutable set for tracking completed lanes (including those from this session)
326
+ const sessionCompleted = new Set(completedSet);
327
+ // Queue management with dependency awareness
328
+ const pending = new Set(resolvableLanes.map(l => l.name));
329
+ const active = new Map();
330
+ const laneMap = new Map(resolvableLanes.map(l => [l.name, l]));
331
+ /**
332
+ * Find the next lane that can be started (all dependencies met)
333
+ */
334
+ const findReadyLane = () => {
335
+ for (const laneName of pending) {
336
+ const lane = laneMap.get(laneName);
337
+ if (areDependenciesCompleted(lane, allLanes, sessionCompleted)) {
338
+ return lane;
339
+ }
340
+ }
341
+ return null;
342
+ };
343
+ /**
344
+ * Process lanes with dependency awareness
345
+ */
346
+ const processNext = () => {
347
+ while (active.size < options.maxConcurrent) {
348
+ const lane = findReadyLane();
349
+ if (!lane) {
350
+ // No lane ready to start
351
+ if (pending.size > 0 && active.size === 0) {
352
+ // Deadlock: pending lanes exist but none can start and none are running
353
+ const pendingList = Array.from(pending).join(', ');
354
+ logger.error(`Deadlock detected! Lanes waiting: ${pendingList}`);
355
+ for (const ln of pending) {
356
+ failed.push(ln);
357
+ }
358
+ pending.clear();
359
+ }
360
+ break;
361
+ }
362
+ pending.delete(lane.name);
363
+ const depsInfo = lane.dependsOn.length > 0 ? ` (after: ${lane.dependsOn.join(', ')})` : '';
364
+ logger.info(`Starting: ${lane.name} (task ${lane.state.currentTaskIndex}/${lane.state.totalTasks})${depsInfo}`);
365
+ const child = spawnLaneResume(lane.name, lane.dir, lane.state, {
366
+ restart: options.restart,
367
+ });
368
+ active.set(lane.name, child);
369
+ // Handle completion
370
+ waitForChild(child).then(code => {
371
+ active.delete(lane.name);
372
+ if (code === 0) {
373
+ logger.success(`✓ ${lane.name} completed`);
374
+ succeeded.push(lane.name);
375
+ sessionCompleted.add(lane.name); // Mark as completed for dependency resolution
376
+ }
377
+ else if (code === 2) {
378
+ logger.warn(`⚠ ${lane.name} blocked on dependency change`);
379
+ failed.push(lane.name);
380
+ }
381
+ else {
382
+ logger.error(`✗ ${lane.name} failed (exit ${code})`);
383
+ failed.push(lane.name);
384
+ }
385
+ // Try to start more lanes now that one completed
386
+ processNext();
387
+ }).catch(err => {
388
+ active.delete(lane.name);
389
+ logger.error(`✗ ${lane.name} error: ${err.message}`);
390
+ failed.push(lane.name);
391
+ processNext();
392
+ });
393
+ }
394
+ };
395
+ // Start initial batch
396
+ processNext();
397
+ // Wait for all to complete
398
+ while (active.size > 0 || pending.size > 0) {
399
+ await new Promise(resolve => setTimeout(resolve, 1000));
400
+ // Check if we can start more (in case completion handlers haven't triggered processNext yet)
401
+ if (active.size < options.maxConcurrent && pending.size > 0) {
402
+ processNext();
403
+ }
404
+ }
405
+ // Summary
406
+ console.log('');
407
+ logger.section('📊 Resume Summary');
408
+ logger.info(`Succeeded: ${succeeded.length}`);
409
+ if (failed.length > 0) {
410
+ logger.error(`Failed: ${failed.length} (${failed.join(', ')})`);
411
+ }
412
+ if (skippedLanes.length > 0) {
413
+ logger.warn(`Skipped: ${skippedLanes.length} (${skippedLanes.join(', ')})`);
414
+ }
415
+ return { succeeded, failed, skipped: skippedLanes };
416
+ }
84
417
  async function resume(args) {
85
418
  const options = parseArgs(args);
86
419
  if (options.help) {
@@ -89,15 +422,39 @@ async function resume(args) {
89
422
  }
90
423
  const config = (0, config_1.loadConfig)();
91
424
  const logsDir = (0, config_1.getLogsDir)(config);
92
- if (!options.lane) {
93
- throw new Error('Lane name required (e.g., cursorflow resume lane-1)');
94
- }
425
+ // Find run directory
95
426
  let runDir = options.runDir;
96
427
  if (!runDir) {
97
428
  runDir = findLatestRunDir(logsDir);
98
429
  }
99
430
  if (!runDir || !fs.existsSync(runDir)) {
100
- throw new Error(`Run directory not found: ${runDir || 'latest'}`);
431
+ throw new Error(`Run directory not found: ${runDir || 'latest'}. Have you run any tasks yet?`);
432
+ }
433
+ // Status mode: just show status and exit
434
+ if (options.status) {
435
+ printAllLaneStatus(runDir);
436
+ return;
437
+ }
438
+ // All mode: resume all incomplete lanes
439
+ if (options.all) {
440
+ const result = await resumeAllLanes(runDir, {
441
+ restart: options.restart,
442
+ maxConcurrent: options.maxConcurrent,
443
+ skipDoctor: options.skipDoctor,
444
+ });
445
+ if (result.failed.length > 0) {
446
+ throw new Error(`${result.failed.length} lane(s) failed to complete`);
447
+ }
448
+ return;
449
+ }
450
+ // Single lane mode (original behavior)
451
+ if (!options.lane) {
452
+ // Show status by default if no lane specified
453
+ printAllLaneStatus(runDir);
454
+ console.log('');
455
+ console.log('Usage: cursorflow resume <lane> [options]');
456
+ console.log(' cursorflow resume --all # Resume all incomplete lanes');
457
+ return;
101
458
  }
102
459
  const laneDir = path.join(runDir, 'lanes', options.lane);
103
460
  const statePath = path.join(laneDir, 'state.json');
@@ -149,18 +506,10 @@ async function resume(args) {
149
506
  logger.info(`Run: ${path.basename(runDir)}`);
150
507
  logger.info(`Tasks: ${state.tasksFile}`);
151
508
  logger.info(`Starting from task index: ${options.restart ? 0 : state.currentTaskIndex}`);
152
- const runnerPath = require.resolve('../core/runner');
153
- const runnerArgs = [
154
- runnerPath,
155
- state.tasksFile,
156
- '--run-dir', laneDir,
157
- '--start-index', options.restart ? '0' : String(state.currentTaskIndex),
158
- ];
159
- logger.info(`Spawning runner process...`);
160
- const child = (0, child_process_1.spawn)('node', runnerArgs, {
161
- stdio: 'inherit',
162
- env: process.env,
509
+ const child = spawnLaneResume(options.lane, laneDir, state, {
510
+ restart: options.restart,
163
511
  });
512
+ logger.info(`Spawning runner process...`);
164
513
  return new Promise((resolve, reject) => {
165
514
  child.on('exit', (code) => {
166
515
  if (code === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/cli/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/cli/resume.ts"],"names":[],"mappings":"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"}
package/dist/cli/run.js CHANGED
@@ -147,6 +147,8 @@ async function run(args) {
147
147
  pollInterval: config.pollInterval * 1000,
148
148
  runDir: path.join(logsDir, 'runs', `run-${Date.now()}`),
149
149
  maxConcurrentLanes: options.maxConcurrent || config.maxConcurrentLanes,
150
+ webhooks: config.webhooks || [],
151
+ enhancedLogging: config.enhancedLogging,
150
152
  });
151
153
  }
152
154
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -45,23 +45,27 @@ const state_1 = require("../utils/state");
45
45
  function printHelp() {
46
46
  console.log(`
47
47
  Usage: cursorflow signal <lane> "<message>" [options]
48
+ cursorflow signal <lane> --timeout <ms>
48
49
 
49
- Directly intervene in a running lane by sending a message to the agent.
50
+ Directly intervene in a running lane.
50
51
 
51
52
  Options:
52
53
  <lane> Lane name to signal
53
- "<message>" Message text to send
54
+ "<message>" Message text to send to the agent
55
+ --timeout <ms> Update execution timeout (in milliseconds)
54
56
  --run-dir <path> Use a specific run directory (default: latest)
55
57
  --help, -h Show help
56
58
  `);
57
59
  }
58
60
  function parseArgs(args) {
59
61
  const runDirIdx = args.indexOf('--run-dir');
62
+ const timeoutIdx = args.indexOf('--timeout');
60
63
  // First non-option is lane, second (or rest joined) is message
61
64
  const nonOptions = args.filter(a => !a.startsWith('--'));
62
65
  return {
63
66
  lane: nonOptions[0] || null,
64
67
  message: nonOptions.slice(1).join(' ') || null,
68
+ timeout: timeoutIdx >= 0 ? parseInt(args[timeoutIdx + 1] || '0') || null : null,
65
69
  runDir: runDirIdx >= 0 ? args[runDirIdx + 1] || null : null,
66
70
  help: args.includes('--help') || args.includes('-h'),
67
71
  };
@@ -85,10 +89,7 @@ async function signal(args) {
85
89
  const config = (0, config_1.loadConfig)();
86
90
  const logsDir = (0, config_1.getLogsDir)(config);
87
91
  if (!options.lane) {
88
- throw new Error('Lane name required: cursorflow signal <lane> "<message>"');
89
- }
90
- if (!options.message) {
91
- throw new Error('Message required: cursorflow signal <lane> "<message>"');
92
+ throw new Error('Lane name required: cursorflow signal <lane> ...');
92
93
  }
93
94
  let runDir = options.runDir;
94
95
  if (!runDir) {
@@ -97,21 +98,34 @@ async function signal(args) {
97
98
  if (!runDir || !fs.existsSync(runDir)) {
98
99
  throw new Error(`Run directory not found: ${runDir || 'latest'}`);
99
100
  }
100
- const convoPath = path.join(runDir, 'lanes', options.lane, 'conversation.jsonl');
101
- if (!fs.existsSync(convoPath)) {
102
- throw new Error(`Conversation log not found at ${convoPath}. Is the lane running?`);
101
+ const laneDir = path.join(runDir, 'lanes', options.lane);
102
+ if (!fs.existsSync(laneDir)) {
103
+ throw new Error(`Lane directory not found: ${laneDir}`);
104
+ }
105
+ // Case 1: Timeout update
106
+ if (options.timeout !== null) {
107
+ const timeoutPath = path.join(laneDir, 'timeout.txt');
108
+ fs.writeFileSync(timeoutPath, String(options.timeout));
109
+ logger.success(`Timeout update signal sent to ${options.lane}: ${options.timeout}ms`);
110
+ return;
111
+ }
112
+ // Case 2: Intervention message
113
+ if (options.message) {
114
+ const interventionPath = path.join(laneDir, 'intervention.txt');
115
+ const convoPath = path.join(laneDir, 'conversation.jsonl');
116
+ logger.info(`Sending signal to lane: ${options.lane}`);
117
+ logger.info(`Message: "${options.message}"`);
118
+ // 1. Write to intervention.txt for live agents to pick up immediately via stdin
119
+ fs.writeFileSync(interventionPath, options.message);
120
+ // 2. Also append to conversation log for visibility and history
121
+ const entry = (0, state_1.createConversationEntry)('system', `[COMMANDER INTERVENTION]\n${options.message}`, {
122
+ task: 'DIRECT_SIGNAL'
123
+ });
124
+ (0, state_1.appendLog)(convoPath, entry);
125
+ logger.success('Signal sent successfully. The agent will see this message in its current turn or next step.');
126
+ return;
103
127
  }
104
- logger.info(`Sending signal to lane: ${options.lane}`);
105
- logger.info(`Message: "${options.message}"`);
106
- // Append as a "commander" role message
107
- // Note: We cast to 'system' or similar if 'commander' isn't in the enum,
108
- // but let's use 'reviewer' or 'system' which agents usually respect,
109
- // or update the type definition.
110
- const entry = (0, state_1.createConversationEntry)('system', `[COMMANDER INTERVENTION]\n${options.message}`, {
111
- task: 'DIRECT_SIGNAL'
112
- });
113
- (0, state_1.appendLog)(convoPath, entry);
114
- logger.success('Signal sent successfully. The agent will see this message in its next turn or via file monitoring.');
128
+ throw new Error('Either a message or --timeout is required.');
115
129
  }
116
130
  module.exports = signal;
117
131
  //# sourceMappingURL=signal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/cli/signal.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAC7B,uCAAyB;AACzB,wDAA0C;AAC1C,4CAAyD;AACzD,0CAAoE;AASpE,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;GAUX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI;QAC3B,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI;QAC9C,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;QAC3D,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACjC,IAAI,EAAE;SACN,OAAO,EAAE,CAAC;IAEb,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAc;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAEjF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,wBAAwB,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IAE7C,uCAAuC;IACvC,0EAA0E;IAC1E,sEAAsE;IACtE,iCAAiC;IACjC,MAAM,KAAK,GAAG,IAAA,+BAAuB,EAAC,QAAQ,EAAE,6BAA6B,OAAO,CAAC,OAAO,EAAE,EAAE;QAC9F,IAAI,EAAE,eAAe;KACtB,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE5B,MAAM,CAAC,OAAO,CAAC,oGAAoG,CAAC,CAAC;AACvH,CAAC;AAED,iBAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/cli/signal.ts"],"names":[],"mappings":"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"}