@litmers/cursorflow-orchestrator 0.1.5 → 0.1.6

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.
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * CursorFlow signal command
4
+ *
5
+ * Send a direct message to a running lane
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
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ const logger = __importStar(require("../utils/logger"));
43
+ const config_1 = require("../utils/config");
44
+ const state_1 = require("../utils/state");
45
+ function parseArgs(args) {
46
+ const runDirIdx = args.indexOf('--run-dir');
47
+ // First non-option is lane, second (or rest joined) is message
48
+ const nonOptions = args.filter(a => !a.startsWith('--'));
49
+ return {
50
+ lane: nonOptions[0] || null,
51
+ message: nonOptions.slice(1).join(' ') || null,
52
+ runDir: runDirIdx >= 0 ? args[runDirIdx + 1] || null : null,
53
+ };
54
+ }
55
+ function findLatestRunDir(logsDir) {
56
+ const runsDir = path.join(logsDir, 'runs');
57
+ if (!fs.existsSync(runsDir))
58
+ return null;
59
+ const runs = fs.readdirSync(runsDir)
60
+ .filter(d => d.startsWith('run-'))
61
+ .sort()
62
+ .reverse();
63
+ return runs.length > 0 ? path.join(runsDir, runs[0]) : null;
64
+ }
65
+ async function signal(args) {
66
+ const options = parseArgs(args);
67
+ const config = (0, config_1.loadConfig)();
68
+ const logsDir = (0, config_1.getLogsDir)(config);
69
+ if (!options.lane) {
70
+ throw new Error('Lane name required: cursorflow signal <lane> "<message>"');
71
+ }
72
+ if (!options.message) {
73
+ throw new Error('Message required: cursorflow signal <lane> "<message>"');
74
+ }
75
+ let runDir = options.runDir;
76
+ if (!runDir) {
77
+ runDir = findLatestRunDir(logsDir);
78
+ }
79
+ if (!runDir || !fs.existsSync(runDir)) {
80
+ throw new Error(`Run directory not found: ${runDir || 'latest'}`);
81
+ }
82
+ const convoPath = path.join(runDir, 'lanes', options.lane, 'conversation.jsonl');
83
+ if (!fs.existsSync(convoPath)) {
84
+ throw new Error(`Conversation log not found at ${convoPath}. Is the lane running?`);
85
+ }
86
+ logger.info(`Sending signal to lane: ${options.lane}`);
87
+ logger.info(`Message: "${options.message}"`);
88
+ // Append as a "commander" role message
89
+ // Note: We cast to 'system' or similar if 'commander' isn't in the enum,
90
+ // but let's use 'reviewer' or 'system' which agents usually respect,
91
+ // or update the type definition.
92
+ const entry = (0, state_1.createConversationEntry)('system', `[COMMANDER INTERVENTION]\n${options.message}`, {
93
+ task: 'DIRECT_SIGNAL'
94
+ });
95
+ (0, state_1.appendLog)(convoPath, entry);
96
+ logger.success('Signal sent successfully. The agent will see this message in its next turn or via file monitoring.');
97
+ }
98
+ module.exports = signal;
99
+ //# sourceMappingURL=signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/cli/signal.ts"],"names":[],"mappings":"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"}
@@ -46,4 +46,6 @@ export declare function runTask({ task, config, index, worktreeDir, taskBranch,
46
46
  /**
47
47
  * Run all tasks in sequence
48
48
  */
49
- export declare function runTasks(config: RunnerConfig, runDir: string): Promise<TaskExecutionResult[]>;
49
+ export declare function runTasks(tasksFile: string, config: RunnerConfig, runDir: string, options?: {
50
+ startIndex?: number;
51
+ }): Promise<TaskExecutionResult[]>;
@@ -332,7 +332,8 @@ async function runTask({ task, config, index, worktreeDir, taskBranch, chatId, r
332
332
  /**
333
333
  * Run all tasks in sequence
334
334
  */
335
- async function runTasks(config, runDir) {
335
+ async function runTasks(tasksFile, config, runDir, options = {}) {
336
+ const startIndex = options.startIndex || 0;
336
337
  // Ensure cursor-agent is installed
337
338
  (0, cursor_agent_1.ensureCursorAgent)();
338
339
  // Check authentication before starting
@@ -353,37 +354,58 @@ async function runTasks(config, runDir) {
353
354
  }
354
355
  logger.success('✓ Cursor authentication OK');
355
356
  const repoRoot = git.getRepoRoot();
356
- const pipelineBranch = config.pipelineBranch || `${config.branchPrefix || 'cursorflow/'}${Date.now().toString(36)}`;
357
- const worktreeDir = path.join(repoRoot, config.worktreeRoot || '_cursorflow/worktrees', pipelineBranch);
358
- logger.section('🚀 Starting Pipeline');
357
+ // Load existing state if resuming
358
+ const statePath = path.join(runDir, 'state.json');
359
+ let state = null;
360
+ if (startIndex > 0 && fs.existsSync(statePath)) {
361
+ state = JSON.parse(fs.readFileSync(statePath, 'utf8'));
362
+ }
363
+ const pipelineBranch = state?.pipelineBranch || config.pipelineBranch || `${config.branchPrefix || 'cursorflow/'}${Date.now().toString(36)}`;
364
+ const worktreeDir = state?.worktreeDir || path.join(repoRoot, config.worktreeRoot || '_cursorflow/worktrees', pipelineBranch);
365
+ if (startIndex === 0) {
366
+ logger.section('🚀 Starting Pipeline');
367
+ }
368
+ else {
369
+ logger.section(`🔁 Resuming Pipeline from task ${startIndex + 1}`);
370
+ }
359
371
  logger.info(`Pipeline Branch: ${pipelineBranch}`);
360
372
  logger.info(`Worktree: ${worktreeDir}`);
361
373
  logger.info(`Tasks: ${config.tasks.length}`);
362
- // Create worktree
363
- git.createWorktree(worktreeDir, pipelineBranch, {
364
- baseBranch: config.baseBranch || 'main',
365
- cwd: repoRoot,
366
- });
374
+ // Create worktree only if starting fresh
375
+ if (startIndex === 0 || !fs.existsSync(worktreeDir)) {
376
+ git.createWorktree(worktreeDir, pipelineBranch, {
377
+ baseBranch: config.baseBranch || 'main',
378
+ cwd: repoRoot,
379
+ });
380
+ }
367
381
  // Create chat
368
382
  logger.info('Creating chat session...');
369
383
  const chatId = cursorAgentCreateChat();
370
- // Save initial state
371
- const state = {
372
- status: 'running',
373
- pipelineBranch,
374
- worktreeDir,
375
- totalTasks: config.tasks.length,
376
- currentTaskIndex: 0,
377
- label: pipelineBranch,
378
- startTime: Date.now(),
379
- endTime: null,
380
- error: null,
381
- dependencyRequest: null,
382
- };
383
- (0, state_1.saveState)(path.join(runDir, 'state.json'), state);
384
+ // Initialize state if not loaded
385
+ if (!state) {
386
+ state = {
387
+ status: 'running',
388
+ pipelineBranch,
389
+ worktreeDir,
390
+ totalTasks: config.tasks.length,
391
+ currentTaskIndex: 0,
392
+ label: pipelineBranch,
393
+ startTime: Date.now(),
394
+ endTime: null,
395
+ error: null,
396
+ dependencyRequest: null,
397
+ tasksFile, // Store tasks file for resume
398
+ };
399
+ }
400
+ else {
401
+ state.status = 'running';
402
+ state.error = null;
403
+ state.dependencyRequest = null;
404
+ }
405
+ (0, state_1.saveState)(statePath, state);
384
406
  // Run tasks
385
407
  const results = [];
386
- for (let i = 0; i < config.tasks.length; i++) {
408
+ for (let i = startIndex; i < config.tasks.length; i++) {
387
409
  const task = config.tasks[i];
388
410
  const taskBranch = `${pipelineBranch}--${String(i + 1).padStart(2, '0')}-${task.name}`;
389
411
  const result = await runTask({
@@ -399,19 +421,19 @@ async function runTasks(config, runDir) {
399
421
  results.push(result);
400
422
  // Update state
401
423
  state.currentTaskIndex = i + 1;
402
- (0, state_1.saveState)(path.join(runDir, 'state.json'), state);
424
+ (0, state_1.saveState)(statePath, state);
403
425
  // Handle blocked or error
404
426
  if (result.status === 'BLOCKED_DEPENDENCY') {
405
- state.status = 'failed'; // Or blocked if we had a blocked status in LaneState
427
+ state.status = 'failed';
406
428
  state.dependencyRequest = result.dependencyRequest || null;
407
- (0, state_1.saveState)(path.join(runDir, 'state.json'), state);
429
+ (0, state_1.saveState)(statePath, state);
408
430
  logger.warn('Task blocked on dependency change');
409
431
  process.exit(2);
410
432
  }
411
433
  if (result.status !== 'FINISHED') {
412
434
  state.status = 'failed';
413
435
  state.error = result.error || 'Unknown error';
414
- (0, state_1.saveState)(path.join(runDir, 'state.json'), state);
436
+ (0, state_1.saveState)(statePath, state);
415
437
  logger.error(`Task failed: ${result.error}`);
416
438
  process.exit(1);
417
439
  }
@@ -423,7 +445,7 @@ async function runTasks(config, runDir) {
423
445
  // Complete
424
446
  state.status = 'completed';
425
447
  state.endTime = Date.now();
426
- (0, state_1.saveState)(path.join(runDir, 'state.json'), state);
448
+ (0, state_1.saveState)(statePath, state);
427
449
  logger.success('All tasks completed!');
428
450
  return results;
429
451
  }
@@ -438,8 +460,10 @@ if (require.main === module) {
438
460
  }
439
461
  const tasksFile = args[0];
440
462
  const runDirIdx = args.indexOf('--run-dir');
463
+ const startIdxIdx = args.indexOf('--start-index');
441
464
  // const executorIdx = args.indexOf('--executor');
442
465
  const runDir = runDirIdx >= 0 ? args[runDirIdx + 1] : '.';
466
+ const startIndex = startIdxIdx >= 0 ? parseInt(args[startIdxIdx + 1] || '0') : 0;
443
467
  // const executor = executorIdx >= 0 ? args[executorIdx + 1] : 'cursor-agent';
444
468
  if (!fs.existsSync(tasksFile)) {
445
469
  console.error(`Tasks file not found: ${tasksFile}`);
@@ -460,7 +484,7 @@ if (require.main === module) {
460
484
  lockfileReadOnly: true,
461
485
  };
462
486
  // Run tasks
463
- runTasks(config, runDir)
487
+ runTasks(tasksFile, config, runDir, { startIndex })
464
488
  .then(() => {
465
489
  process.exit(0);
466
490
  })
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * CursorFlow Doctor - environment and preflight checks
3
+ *
4
+ * This module provides actionable diagnostics for common run failures:
5
+ * - Not inside a Git work tree
6
+ * - Missing `origin` remote (required for pushing lane branches)
7
+ * - Missing Git worktree support
8
+ * - Missing base branch referenced by lane task files
9
+ * - Missing/invalid tasks directory
10
+ * - Missing Cursor Agent setup (optional)
11
+ */
12
+ export type DoctorSeverity = 'error' | 'warn';
13
+ export interface DoctorIssue {
14
+ /**
15
+ * Stable identifier for machines (NOCC) and tests.
16
+ */
17
+ id: string;
18
+ severity: DoctorSeverity;
19
+ title: string;
20
+ message: string;
21
+ /**
22
+ * Suggested commands or steps to fix the issue.
23
+ */
24
+ fixes?: string[];
25
+ /**
26
+ * Optional technical details (stderr, stdout, etc.)
27
+ */
28
+ details?: string;
29
+ }
30
+ export interface DoctorContext {
31
+ cwd: string;
32
+ repoRoot?: string;
33
+ tasksDir?: string;
34
+ executor?: string;
35
+ }
36
+ export interface DoctorReport {
37
+ ok: boolean;
38
+ issues: DoctorIssue[];
39
+ context: DoctorContext;
40
+ }
41
+ export interface DoctorOptions {
42
+ cwd?: string;
43
+ /**
44
+ * Optional tasks directory (used for `cursorflow run` preflight).
45
+ */
46
+ tasksDir?: string;
47
+ /**
48
+ * Executor type ('cursor-agent' | 'cloud' | ...).
49
+ */
50
+ executor?: string;
51
+ /**
52
+ * When true (default), include Cursor Agent install/auth checks.
53
+ */
54
+ includeCursorAgentChecks?: boolean;
55
+ }
56
+ /**
57
+ * Run doctor checks.
58
+ *
59
+ * If `tasksDir` is provided, additional preflight checks are performed:
60
+ * - tasks directory existence and JSON validity
61
+ * - baseBranch referenced by lanes exists locally
62
+ */
63
+ export declare function runDoctor(options?: DoctorOptions): DoctorReport;
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ /**
3
+ * CursorFlow Doctor - environment and preflight checks
4
+ *
5
+ * This module provides actionable diagnostics for common run failures:
6
+ * - Not inside a Git work tree
7
+ * - Missing `origin` remote (required for pushing lane branches)
8
+ * - Missing Git worktree support
9
+ * - Missing base branch referenced by lane task files
10
+ * - Missing/invalid tasks directory
11
+ * - Missing Cursor Agent setup (optional)
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.runDoctor = runDoctor;
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const git = __importStar(require("./git"));
51
+ const cursor_agent_1 = require("./cursor-agent");
52
+ const setup_commands_1 = require("../cli/setup-commands");
53
+ function addIssue(issues, issue) {
54
+ issues.push(issue);
55
+ }
56
+ function resolveRepoRoot(cwd) {
57
+ const res = git.runGitResult(['rev-parse', '--show-toplevel'], { cwd });
58
+ if (!res.success || !res.stdout)
59
+ return null;
60
+ return res.stdout;
61
+ }
62
+ function isInsideGitWorktree(cwd) {
63
+ const res = git.runGitResult(['rev-parse', '--is-inside-work-tree'], { cwd });
64
+ return res.success && res.stdout.trim() === 'true';
65
+ }
66
+ function hasAtLeastOneCommit(repoRoot) {
67
+ const res = git.runGitResult(['rev-parse', '--verify', 'HEAD'], { cwd: repoRoot });
68
+ return res.success;
69
+ }
70
+ function hasOriginRemote(repoRoot) {
71
+ const res = git.runGitResult(['remote', 'get-url', 'origin'], { cwd: repoRoot });
72
+ return res.success && !!res.stdout;
73
+ }
74
+ function hasWorktreeSupport(repoRoot) {
75
+ const res = git.runGitResult(['worktree', 'list'], { cwd: repoRoot });
76
+ if (res.success)
77
+ return { ok: true };
78
+ return { ok: false, details: res.stderr || res.stdout || 'git worktree failed' };
79
+ }
80
+ function branchExists(repoRoot, branchName) {
81
+ // rev-parse --verify works for both branches and tags; restrict to heads first.
82
+ const headRes = git.runGitResult(['show-ref', '--verify', `refs/heads/${branchName}`], { cwd: repoRoot });
83
+ if (headRes.success)
84
+ return true;
85
+ const anyRes = git.runGitResult(['rev-parse', '--verify', branchName], { cwd: repoRoot });
86
+ return anyRes.success;
87
+ }
88
+ function readLaneJsonFiles(tasksDir) {
89
+ const files = fs
90
+ .readdirSync(tasksDir)
91
+ .filter(f => f.endsWith('.json'))
92
+ .sort()
93
+ .map(f => path.join(tasksDir, f));
94
+ return files.map(p => {
95
+ const raw = fs.readFileSync(p, 'utf8');
96
+ const json = JSON.parse(raw);
97
+ return { path: p, json };
98
+ });
99
+ }
100
+ function collectBaseBranchesFromLanes(lanes, defaultBaseBranch) {
101
+ const set = new Set();
102
+ for (const lane of lanes) {
103
+ const baseBranch = String(lane.json?.baseBranch || defaultBaseBranch || 'main').trim();
104
+ if (baseBranch)
105
+ set.add(baseBranch);
106
+ }
107
+ return Array.from(set);
108
+ }
109
+ /**
110
+ * Run doctor checks.
111
+ *
112
+ * If `tasksDir` is provided, additional preflight checks are performed:
113
+ * - tasks directory existence and JSON validity
114
+ * - baseBranch referenced by lanes exists locally
115
+ */
116
+ function runDoctor(options = {}) {
117
+ const cwd = options.cwd || process.cwd();
118
+ const issues = [];
119
+ const context = {
120
+ cwd,
121
+ executor: options.executor,
122
+ };
123
+ // 1) Git repository checks
124
+ if (!isInsideGitWorktree(cwd)) {
125
+ addIssue(issues, {
126
+ id: 'git.not_repo',
127
+ severity: 'error',
128
+ title: 'Not a Git repository',
129
+ message: 'Current directory is not inside a Git work tree. CursorFlow requires Git to create worktrees and branches.',
130
+ fixes: [
131
+ 'cd into your repository root (or any subdirectory inside it)',
132
+ 'If this is a new project: git init && git commit --allow-empty -m "chore: initial commit"',
133
+ ],
134
+ });
135
+ return { ok: false, issues, context };
136
+ }
137
+ const repoRoot = resolveRepoRoot(cwd) || undefined;
138
+ context.repoRoot = repoRoot;
139
+ const gitCwd = repoRoot || cwd;
140
+ if (!hasAtLeastOneCommit(gitCwd)) {
141
+ addIssue(issues, {
142
+ id: 'git.no_commits',
143
+ severity: 'error',
144
+ title: 'Repository has no commits',
145
+ message: 'CursorFlow needs at least one commit (HEAD) to create worktrees and new branches.',
146
+ fixes: ['git commit --allow-empty -m "chore: initial commit"'],
147
+ });
148
+ }
149
+ if (!hasOriginRemote(gitCwd)) {
150
+ addIssue(issues, {
151
+ id: 'git.no_origin',
152
+ severity: 'error',
153
+ title: "Missing remote 'origin'",
154
+ message: "Remote 'origin' is not configured. CursorFlow pushes lane branches to 'origin' during execution.",
155
+ fixes: [
156
+ 'git remote add origin <your-repo-url>',
157
+ 'git remote -v # verify remotes',
158
+ ],
159
+ });
160
+ }
161
+ const wt = hasWorktreeSupport(gitCwd);
162
+ if (!wt.ok) {
163
+ addIssue(issues, {
164
+ id: 'git.worktree_unavailable',
165
+ severity: 'error',
166
+ title: 'Git worktree not available',
167
+ message: 'Git worktree support is required, but `git worktree` failed.',
168
+ fixes: [
169
+ 'Upgrade Git (worktrees require Git >= 2.5)',
170
+ 'Ensure the repository is not corrupted',
171
+ ],
172
+ details: wt.details,
173
+ });
174
+ }
175
+ // 2) Tasks-dir checks (optional; used by `cursorflow run` preflight)
176
+ if (options.tasksDir) {
177
+ const tasksDirAbs = path.isAbsolute(options.tasksDir)
178
+ ? options.tasksDir
179
+ : path.resolve(cwd, options.tasksDir);
180
+ context.tasksDir = tasksDirAbs;
181
+ if (!fs.existsSync(tasksDirAbs)) {
182
+ addIssue(issues, {
183
+ id: 'tasks.missing_dir',
184
+ severity: 'error',
185
+ title: 'Tasks directory not found',
186
+ message: `Tasks directory does not exist: ${tasksDirAbs}`,
187
+ fixes: [
188
+ 'Double-check the path you passed to `cursorflow run`',
189
+ 'If needed, run: cursorflow init --example',
190
+ ],
191
+ });
192
+ }
193
+ else {
194
+ let lanes = [];
195
+ try {
196
+ lanes = readLaneJsonFiles(tasksDirAbs);
197
+ }
198
+ catch (error) {
199
+ addIssue(issues, {
200
+ id: 'tasks.invalid_json',
201
+ severity: 'error',
202
+ title: 'Invalid lane JSON file',
203
+ message: `Failed to read/parse lane JSON files in: ${tasksDirAbs}`,
204
+ details: error?.message ? String(error.message) : String(error),
205
+ fixes: ['Validate JSON syntax for each lane file (*.json)'],
206
+ });
207
+ lanes = [];
208
+ }
209
+ if (lanes.length === 0) {
210
+ addIssue(issues, {
211
+ id: 'tasks.no_lanes',
212
+ severity: 'error',
213
+ title: 'No lane files found',
214
+ message: `No lane task files (*.json) found in: ${tasksDirAbs}`,
215
+ fixes: ['Ensure the tasks directory contains one or more lane JSON files'],
216
+ });
217
+ }
218
+ else {
219
+ const baseBranches = collectBaseBranchesFromLanes(lanes, 'main');
220
+ for (const baseBranch of baseBranches) {
221
+ if (!branchExists(gitCwd, baseBranch)) {
222
+ addIssue(issues, {
223
+ id: `git.missing_base_branch.${baseBranch}`,
224
+ severity: 'error',
225
+ title: `Missing base branch: ${baseBranch}`,
226
+ message: `Lane files reference baseBranch "${baseBranch}", but it does not exist locally.`,
227
+ fixes: [
228
+ 'git fetch origin --prune',
229
+ `Or update lane JSON baseBranch to an existing branch`,
230
+ ],
231
+ });
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ // 3) Cursor Agent checks (optional)
238
+ const includeCursor = options.includeCursorAgentChecks !== false;
239
+ if (includeCursor && (options.executor || 'cursor-agent') === 'cursor-agent') {
240
+ if (!(0, cursor_agent_1.checkCursorAgentInstalled)()) {
241
+ addIssue(issues, {
242
+ id: 'cursor_agent.missing',
243
+ severity: 'error',
244
+ title: 'cursor-agent CLI not installed',
245
+ message: 'cursor-agent is required for local execution.',
246
+ fixes: ['npm install -g @cursor/agent', 'cursor-agent --version'],
247
+ });
248
+ }
249
+ else {
250
+ const auth = (0, cursor_agent_1.checkCursorAuth)();
251
+ if (!auth.authenticated) {
252
+ addIssue(issues, {
253
+ id: 'cursor_agent.not_authenticated',
254
+ severity: 'error',
255
+ title: 'Cursor authentication required',
256
+ message: auth.message,
257
+ details: auth.details || auth.error,
258
+ fixes: [
259
+ 'Open Cursor IDE and sign in',
260
+ 'Verify AI features work in the IDE',
261
+ 'Re-run: cursorflow doctor',
262
+ ],
263
+ });
264
+ }
265
+ }
266
+ }
267
+ // 4) IDE Integration checks
268
+ if (!(0, setup_commands_1.areCommandsInstalled)()) {
269
+ addIssue(issues, {
270
+ id: 'ide.commands_missing',
271
+ severity: 'warn',
272
+ title: 'Cursor IDE commands not installed',
273
+ message: 'CursorFlow slash commands (e.g., /cursorflow-run) are missing or outdated.',
274
+ fixes: ['cursorflow-setup --force', 'or run `cursorflow run` to auto-install'],
275
+ });
276
+ }
277
+ const ok = issues.every(i => i.severity !== 'error');
278
+ return { ok, issues, context };
279
+ }
280
+ //# sourceMappingURL=doctor.js.map