@bradtaylorsf/alpha-loop 1.13.1 → 1.14.1

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 (79) hide show
  1. package/README.md +99 -1
  2. package/dist/cli.js +40 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/eval.d.ts +22 -0
  5. package/dist/commands/eval.js +105 -1
  6. package/dist/commands/eval.js.map +1 -1
  7. package/dist/commands/evolve-routing.d.ts +24 -0
  8. package/dist/commands/evolve-routing.js +320 -0
  9. package/dist/commands/evolve-routing.js.map +1 -0
  10. package/dist/commands/history.d.ts +2 -0
  11. package/dist/commands/history.js +95 -1
  12. package/dist/commands/history.js.map +1 -1
  13. package/dist/commands/init.d.ts +6 -0
  14. package/dist/commands/init.js +28 -1
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/report.d.ts +7 -0
  17. package/dist/commands/report.js +27 -0
  18. package/dist/commands/report.js.map +1 -0
  19. package/dist/commands/run.d.ts +16 -0
  20. package/dist/commands/run.js +265 -36
  21. package/dist/commands/run.js.map +1 -1
  22. package/dist/commands/scan.d.ts +1 -1
  23. package/dist/commands/scan.js.map +1 -1
  24. package/dist/engine/agents.d.ts +30 -8
  25. package/dist/engine/agents.js +94 -10
  26. package/dist/engine/agents.js.map +1 -1
  27. package/dist/engine/prerequisites.d.ts +40 -2
  28. package/dist/engine/prerequisites.js +126 -2
  29. package/dist/engine/prerequisites.js.map +1 -1
  30. package/dist/lib/agent.d.ts +39 -2
  31. package/dist/lib/agent.js +106 -4
  32. package/dist/lib/agent.js.map +1 -1
  33. package/dist/lib/config.d.ts +78 -1
  34. package/dist/lib/config.js +217 -1
  35. package/dist/lib/config.js.map +1 -1
  36. package/dist/lib/epics.d.ts +57 -0
  37. package/dist/lib/epics.js +76 -0
  38. package/dist/lib/epics.js.map +1 -0
  39. package/dist/lib/escalation.d.ts +102 -0
  40. package/dist/lib/escalation.js +241 -0
  41. package/dist/lib/escalation.js.map +1 -0
  42. package/dist/lib/eval-matrix.d.ts +125 -0
  43. package/dist/lib/eval-matrix.js +317 -0
  44. package/dist/lib/eval-matrix.js.map +1 -0
  45. package/dist/lib/eval-report.d.ts +12 -0
  46. package/dist/lib/eval-report.js +132 -0
  47. package/dist/lib/eval-report.js.map +1 -0
  48. package/dist/lib/eval-secret-scan.d.ts +41 -0
  49. package/dist/lib/eval-secret-scan.js +163 -0
  50. package/dist/lib/eval-secret-scan.js.map +1 -0
  51. package/dist/lib/eval.js +7 -4
  52. package/dist/lib/eval.js.map +1 -1
  53. package/dist/lib/github.d.ts +25 -0
  54. package/dist/lib/github.js +75 -0
  55. package/dist/lib/github.js.map +1 -1
  56. package/dist/lib/hardware.d.ts +9 -0
  57. package/dist/lib/hardware.js +32 -0
  58. package/dist/lib/hardware.js.map +1 -0
  59. package/dist/lib/pipeline.d.ts +6 -1
  60. package/dist/lib/pipeline.js +223 -19
  61. package/dist/lib/pipeline.js.map +1 -1
  62. package/dist/lib/prerequisites.js +11 -3
  63. package/dist/lib/prerequisites.js.map +1 -1
  64. package/dist/lib/routing-history.d.ts +43 -0
  65. package/dist/lib/routing-history.js +112 -0
  66. package/dist/lib/routing-history.js.map +1 -0
  67. package/dist/lib/routing-promotion.d.ts +95 -0
  68. package/dist/lib/routing-promotion.js +229 -0
  69. package/dist/lib/routing-promotion.js.map +1 -0
  70. package/dist/lib/session.d.ts +10 -1
  71. package/dist/lib/session.js +38 -7
  72. package/dist/lib/session.js.map +1 -1
  73. package/dist/lib/telemetry.d.ts +147 -0
  74. package/dist/lib/telemetry.js +353 -0
  75. package/dist/lib/telemetry.js.map +1 -0
  76. package/dist/lib/verify-epic.d.ts +31 -0
  77. package/dist/lib/verify-epic.js +237 -0
  78. package/dist/lib/verify-epic.js.map +1 -0
  79. package/package.json +1 -1
@@ -6,7 +6,9 @@ import * as readline from 'node:readline';
6
6
  import { log } from '../lib/logger.js';
7
7
  import { exec } from '../lib/shell.js';
8
8
  import { loadConfig, assertSafeShellArg } from '../lib/config.js';
9
- import { pollIssues, listMilestones } from '../lib/github.js';
9
+ import { pollIssues, listMilestones, listEpics, getEpicSubIssues, getIssueWithComments, getMergedPRForIssue, updateEpicChecklist, commentIssue, closeIssue, labelIssue, } from '../lib/github.js';
10
+ import { buildEpicSummary } from '../lib/epics.js';
11
+ import { verifyEpic } from '../lib/verify-epic.js';
10
12
  import { processIssue, processBatch } from '../lib/pipeline.js';
11
13
  import { createSession, finalizeSession } from '../lib/session.js';
12
14
  import { cleanupWorktree } from '../lib/worktree.js';
@@ -117,39 +119,125 @@ function askChoice(prompt, max) {
117
119
  });
118
120
  }
119
121
  /**
120
- * Show open milestones and let the user pick one, or choose "all in order".
121
- * Returns the milestone title to filter by, or empty string for all issues.
122
+ * Show open epics + milestones and let the user pick one, or choose "all in order".
123
+ * Epics are listed first (they're typically what the user actually wants).
124
+ *
125
+ * When `preferEpics` is true and there's exactly one open epic, the picker
126
+ * auto-selects it without prompting.
127
+ *
128
+ * When `hideEpics` is true, epics are not shown or auto-selected (the `--skip-epic`
129
+ * flag path).
122
130
  */
123
- async function pickMilestone(repo) {
131
+ async function pickTarget(repo, opts) {
132
+ const epics = opts.hideEpics ? [] : listEpics(repo);
124
133
  const milestones = listMilestones(repo);
125
- if (milestones.length === 0) {
126
- log.info('No open milestones found — processing all ready issues');
127
- return '';
134
+ if (epics.length === 0 && milestones.length === 0) {
135
+ log.info('No open epics or milestones found — processing all ready issues');
136
+ return { type: 'all' };
137
+ }
138
+ // preferEpics: when there's exactly one open epic and the user has opted in,
139
+ // skip the picker and use it. This is the common case for a single-initiative repo.
140
+ if (opts.preferEpics && epics.length === 1) {
141
+ const only = epics[0];
142
+ log.info(`preferEpics: auto-selecting sole open epic #${only.number}`);
143
+ return { type: 'epic', epicNum: only.number, epicTitle: only.title };
128
144
  }
129
145
  const BOLD = '\x1b[1m';
130
146
  const DIM = '\x1b[2m';
131
147
  const NC = '\x1b[0m';
132
148
  console.error('');
133
- console.error(`${BOLD} Open Milestones${NC}`);
134
- console.error('');
135
- console.error(` ${BOLD}0${NC} All issues (no milestone filter)`);
136
- for (let i = 0; i < milestones.length; i++) {
137
- const m = milestones[i];
138
- const progress = m.openIssues + m.closedIssues > 0
139
- ? `${m.closedIssues}/${m.openIssues + m.closedIssues} done`
140
- : 'empty';
141
- const due = m.dueOn ? ` · due ${m.dueOn.split('T')[0]}` : '';
142
- console.error(` ${BOLD}${i + 1}${NC} ${m.title} ${DIM}(${m.openIssues} open, ${progress}${due})${NC}`);
149
+ if (epics.length > 0) {
150
+ console.error(`${BOLD} Open Epics${NC}`);
151
+ console.error('');
152
+ for (let i = 0; i < epics.length; i++) {
153
+ const e = epics[i];
154
+ const summary = buildEpicSummary(e);
155
+ const progress = summary.totalCount > 0
156
+ ? `${summary.doneCount}/${summary.totalCount} done`
157
+ : 'no sub-issues';
158
+ console.error(` ${BOLD}${i + 1}${NC} ${e.title} #${e.number} ${DIM}(${progress})${NC}`);
159
+ }
160
+ console.error('');
161
+ }
162
+ if (milestones.length > 0) {
163
+ console.error(`${BOLD} Open Milestones${NC}`);
164
+ console.error('');
165
+ for (let i = 0; i < milestones.length; i++) {
166
+ const m = milestones[i];
167
+ const progress = m.openIssues + m.closedIssues > 0
168
+ ? `${m.closedIssues}/${m.openIssues + m.closedIssues} done`
169
+ : 'empty';
170
+ const due = m.dueOn ? ` · due ${m.dueOn.split('T')[0]}` : '';
171
+ console.error(` ${BOLD}${epics.length + i + 1}${NC} ${m.title} ${DIM}(${m.openIssues} open, ${progress}${due})${NC}`);
172
+ }
173
+ console.error('');
143
174
  }
175
+ const total = epics.length + milestones.length;
176
+ console.error(` ${BOLD}0${NC} All ready issues (no filter)`);
144
177
  console.error('');
145
- const choice = await askChoice(` Select milestone [0-${milestones.length}]: `, milestones.length);
178
+ const choice = await askChoice(` Select [0-${total}]: `, total);
146
179
  if (choice <= 0) {
147
- log.info('Processing all ready issues (no milestone filter)');
148
- return '';
180
+ log.info('Processing all ready issues (no filter)');
181
+ return { type: 'all' };
182
+ }
183
+ if (choice <= epics.length) {
184
+ const selected = epics[choice - 1];
185
+ log.success(`Epic selected: ${selected.title} (#${selected.number})`);
186
+ return { type: 'epic', epicNum: selected.number, epicTitle: selected.title };
149
187
  }
150
- const selected = milestones[choice - 1];
188
+ const milestoneIdx = choice - epics.length - 1;
189
+ const selected = milestones[milestoneIdx];
151
190
  log.success(`Milestone selected: ${selected.title} (${selected.openIssues} open issues)`);
152
- return selected.title;
191
+ return { type: 'milestone', title: selected.title };
192
+ }
193
+ /**
194
+ * Run the verification pass on an epic: fetch sub-issues + merged PRs, evaluate
195
+ * AC via the review model, post a summary comment, and close the epic on pass
196
+ * (or add `needs-human-input` on partial/fail).
197
+ *
198
+ * Shared between the post-loop trigger and the `--verify-only` entry point.
199
+ */
200
+ async function runEpicVerificationFlow(epicNum, config, session) {
201
+ const epic = getIssueWithComments(config.repo, epicNum);
202
+ if (!epic) {
203
+ log.error(`Could not fetch epic #${epicNum}`);
204
+ return;
205
+ }
206
+ const refs = getEpicSubIssues(config.repo, epicNum);
207
+ if (refs.length === 0) {
208
+ log.warn(`Epic #${epicNum} has no sub-issues in its checklist — nothing to verify`);
209
+ return;
210
+ }
211
+ const subIssues = [];
212
+ const mergedPRUrls = [];
213
+ for (const ref of refs) {
214
+ const sub = getIssueWithComments(config.repo, ref.number);
215
+ if (!sub)
216
+ continue;
217
+ subIssues.push(sub);
218
+ mergedPRUrls.push(getMergedPRForIssue(config.repo, ref.number));
219
+ }
220
+ const logsDir = session?.logsDir
221
+ ?? join(process.cwd(), '.alpha-loop', 'sessions', `verify-${epicNum}-${Date.now()}`, 'logs');
222
+ if (!session) {
223
+ const { mkdirSync } = await import('node:fs');
224
+ mkdirSync(logsDir, { recursive: true });
225
+ }
226
+ const result = await verifyEpic({ epic, subIssues, mergedPRUrls }, config, logsDir);
227
+ if (config.dryRun) {
228
+ log.dry(`[verify-only] Would post comment on #${epicNum} (verdict=${result.verdict})`);
229
+ console.error(result.comment);
230
+ return;
231
+ }
232
+ commentIssue(config.repo, epicNum, result.comment);
233
+ if (result.verdict === 'pass') {
234
+ closeIssue(config.repo, epicNum, 'completed');
235
+ log.success(`Epic #${epicNum} verified and closed`);
236
+ }
237
+ else {
238
+ labelIssue(config.repo, epicNum, 'needs-human-input');
239
+ log.warn(`Epic #${epicNum} needs human review: verdict=${result.verdict}`);
240
+ }
153
241
  }
154
242
  /**
155
243
  * Run the main loop: poll for issues, process them, finalize session.
@@ -184,16 +272,61 @@ export async function runCommand(options) {
184
272
  log.error('No repository configured. Run "alpha-loop init" or set repo in .alpha-loop.yaml');
185
273
  process.exit(1);
186
274
  }
187
- // Milestone selection (interactive or from config/CLI flag) must happen before session creation
275
+ // --- Verify-only path: bypass the normal loop entirely ---
276
+ if (options.verifyOnly !== undefined) {
277
+ if (!Number.isFinite(options.verifyOnly) || options.verifyOnly <= 0) {
278
+ log.error('--verify-only requires a positive integer issue number (e.g. --verify-only 165)');
279
+ process.exit(1);
280
+ }
281
+ log.step(`Running verify-only pass for epic #${options.verifyOnly}`);
282
+ await runEpicVerificationFlow(options.verifyOnly, config, null);
283
+ return;
284
+ }
285
+ // --- Target selection (epic or milestone) — must happen before session creation ---
286
+ let activeEpic;
287
+ let activeEpicTitle;
188
288
  let activeMilestone = config.milestone;
189
- if (!activeMilestone && !config.dryRun && process.stdin.isTTY) {
190
- activeMilestone = await pickMilestone(config.repo);
289
+ // --epic <N> overrides everything except --verify-only
290
+ if (options.epic !== undefined) {
291
+ if (typeof options.epic !== 'number' || !Number.isFinite(options.epic) || options.epic <= 0) {
292
+ log.error('--epic requires a positive integer issue number (e.g. --epic 165)');
293
+ process.exit(1);
294
+ }
295
+ const epic = getIssueWithComments(config.repo, options.epic);
296
+ if (!epic) {
297
+ log.error(`Could not fetch epic #${options.epic}`);
298
+ process.exit(1);
299
+ }
300
+ activeEpic = epic.number;
301
+ activeEpicTitle = epic.title;
302
+ activeMilestone = '';
303
+ }
304
+ // Interactive picker when TTY and nothing preset
305
+ if (activeEpic === undefined && !activeMilestone && !config.dryRun && process.stdin.isTTY) {
306
+ const target = await pickTarget(config.repo, {
307
+ preferEpics: config.preferEpics,
308
+ hideEpics: options.skipEpic === true,
309
+ });
310
+ if (target.type === 'epic') {
311
+ activeEpic = target.epicNum;
312
+ activeEpicTitle = target.epicTitle;
313
+ }
314
+ else if (target.type === 'milestone') {
315
+ activeMilestone = target.title;
316
+ }
317
+ }
318
+ if (activeEpic !== undefined) {
319
+ log.info(`Processing epic #${activeEpic}${activeEpicTitle ? ': ' + activeEpicTitle : ''}`);
191
320
  }
192
- if (activeMilestone) {
321
+ else if (activeMilestone) {
193
322
  log.info(`Filtering issues by milestone: ${activeMilestone}`);
194
323
  }
195
- // Create session (named after milestone if selected)
196
- const session = createSession(config, activeMilestone || undefined);
324
+ // Create session (named after epic or milestone if selected)
325
+ const session = createSession(config, {
326
+ milestone: activeMilestone || undefined,
327
+ epicNum: activeEpic,
328
+ epicTitle: activeEpicTitle,
329
+ });
197
330
  // Print startup banner
198
331
  printBanner(config, session);
199
332
  // Check prerequisites
@@ -289,14 +422,45 @@ export async function runCommand(options) {
289
422
  }
290
423
  }
291
424
  }
292
- // Fetch all matching issues
293
- const milestoneMsg = activeMilestone ? ` in milestone '${activeMilestone}'` : '';
294
- log.info(`Fetching issues${milestoneMsg}...`);
295
- const issues = pollIssues(config.repo, config.labelReady, 100, {
296
- project: config.project,
297
- repoOwner: config.repoOwner,
298
- milestone: activeMilestone || undefined,
299
- });
425
+ // --- Fetch issue queue ---
426
+ // When an epic is selected, the queue is its sub-issues in checklist order.
427
+ // Otherwise, fetch via the usual project/label/milestone path and exclude
428
+ // epic-labeled issues (AC #2: epics never picked up by the normal `ready` flow).
429
+ let issues;
430
+ if (activeEpic !== undefined) {
431
+ log.info(`Fetching sub-issues of epic #${activeEpic} in checklist order...`);
432
+ const refs = getEpicSubIssues(config.repo, activeEpic);
433
+ issues = [];
434
+ for (const ref of refs) {
435
+ if (ref.checked)
436
+ continue; // already done
437
+ const sub = getIssueWithComments(config.repo, ref.number);
438
+ if (!sub) {
439
+ log.warn(`Sub-issue #${ref.number} skipped: could not fetch`);
440
+ continue;
441
+ }
442
+ if (sub.labels.includes('epic')) {
443
+ log.warn(`Sub-issue #${sub.number} skipped: is itself an epic (nested epics unsupported in v1)`);
444
+ continue;
445
+ }
446
+ if (!sub.labels.includes(config.labelReady)) {
447
+ log.warn(`Sub-issue #${sub.number} skipped: not labeled '${config.labelReady}'`);
448
+ continue;
449
+ }
450
+ issues.push(sub);
451
+ }
452
+ }
453
+ else {
454
+ const milestoneMsg = activeMilestone ? ` in milestone '${activeMilestone}'` : '';
455
+ log.info(`Fetching issues${milestoneMsg}...`);
456
+ issues = pollIssues(config.repo, config.labelReady, 100, {
457
+ project: config.project,
458
+ repoOwner: config.repoOwner,
459
+ milestone: activeMilestone || undefined,
460
+ }).filter((iss) => !iss.labels.includes('epic'));
461
+ }
462
+ // When set mid-loop, skip post-loop epic verification (e.g. checklist body inconsistency).
463
+ let epicAbort = false;
300
464
  if (issues.length === 0) {
301
465
  log.info('No issues found. Nothing to do.');
302
466
  }
@@ -363,6 +527,37 @@ export async function runCommand(options) {
363
527
  try {
364
528
  const results = await processBatch(batchIssues, config, session);
365
529
  session.results.push(...results);
530
+ // Flip epic checklist for each successful sub-issue.
531
+ // Skipped in dry-run: `processIssue` returns status='success' when tests are
532
+ // stubbed in dry-run, which would otherwise mutate the live epic body.
533
+ if (activeEpic !== undefined && !config.dryRun) {
534
+ let checklistError = false;
535
+ for (const r of results) {
536
+ if (r.status !== 'success')
537
+ continue;
538
+ try {
539
+ updateEpicChecklist(config.repo, activeEpic, r.issueNum, true);
540
+ }
541
+ catch (err) {
542
+ log.error(`Epic #${activeEpic} checklist update failed for sub-issue #${r.issueNum}: ${err instanceof Error ? err.message : err}`);
543
+ // One-agent-per-epic contract — halt further processing on body inconsistency
544
+ epicAbort = true;
545
+ checklistError = true;
546
+ break;
547
+ }
548
+ }
549
+ if (checklistError) {
550
+ activeIssueNum = null;
551
+ break;
552
+ }
553
+ }
554
+ else if (activeEpic !== undefined && config.dryRun) {
555
+ for (const r of results) {
556
+ if (r.status === 'success') {
557
+ log.dry(`Would flip epic #${activeEpic} checklist for sub-issue #${r.issueNum}`);
558
+ }
559
+ }
560
+ }
366
561
  // Stop if any issue hit a transient error
367
562
  if (results.some((r) => r.failureReason === 'transient')) {
368
563
  log.warn('Agent hit a rate/usage limit — stopping session to avoid wasting cycles');
@@ -393,6 +588,24 @@ export async function runCommand(options) {
393
588
  try {
394
589
  const result = await processIssue(issue.number, issue.title, issue.body, config, session);
395
590
  session.results.push(result);
591
+ // Flip the epic checklist box when this sub-issue succeeded.
592
+ // Skipped in dry-run: `processIssue` stubs tests in dry-run and returns success,
593
+ // which would otherwise mutate the live epic body.
594
+ if (activeEpic !== undefined && result.status === 'success' && !config.dryRun) {
595
+ try {
596
+ updateEpicChecklist(config.repo, activeEpic, issue.number, true);
597
+ }
598
+ catch (err) {
599
+ log.error(`Epic #${activeEpic} checklist update failed for sub-issue #${issue.number}: ${err instanceof Error ? err.message : err}`);
600
+ // One-agent-per-epic contract — halt further processing on body inconsistency
601
+ epicAbort = true;
602
+ activeIssueNum = null;
603
+ break;
604
+ }
605
+ }
606
+ else if (activeEpic !== undefined && result.status === 'success' && config.dryRun) {
607
+ log.dry(`Would flip epic #${activeEpic} checklist for sub-issue #${issue.number}`);
608
+ }
396
609
  // Stop processing if agent hit a transient error (usage/rate limit)
397
610
  if (result.failureReason === 'transient') {
398
611
  log.warn('Agent hit a rate/usage limit — stopping session to avoid wasting cycles');
@@ -406,6 +619,22 @@ export async function runCommand(options) {
406
619
  }
407
620
  }
408
621
  }
622
+ // --- Epic completion check: verify and close if all sub-issues are now done ---
623
+ if (activeEpic !== undefined && !epicAbort && !config.dryRun) {
624
+ try {
625
+ const remaining = getEpicSubIssues(config.repo, activeEpic).filter((r) => !r.checked);
626
+ if (remaining.length === 0) {
627
+ log.step(`All sub-issues of epic #${activeEpic} are complete — running verification pass`);
628
+ await runEpicVerificationFlow(activeEpic, config, session);
629
+ }
630
+ else {
631
+ log.info(`Epic #${activeEpic}: ${remaining.length} sub-issue(s) still open — verification deferred`);
632
+ }
633
+ }
634
+ catch (err) {
635
+ log.warn(`Epic completion check failed: ${err instanceof Error ? err.message : err}`);
636
+ }
637
+ }
409
638
  // Auto-capture failures as eval case skeletons
410
639
  if (config.autoCapture && session.results.length > 0) {
411
640
  const failures = session.results.filter((r) => r.status === 'failure');
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@ export declare function scanCommand(): void;
3
3
  * Generate or update the instructions file at .alpha-loop/templates/instructions.md.
4
4
  * If no existing file, generates from scratch. If existing, merges with fresh scan.
5
5
  */
6
- export declare function generateInstructions(projectDir: string, agent: 'claude' | 'codex' | 'opencode', model: string): void;
6
+ export declare function generateInstructions(projectDir: string, agent: 'claude' | 'codex' | 'opencode' | 'lmstudio' | 'ollama', model: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -2,30 +2,39 @@
2
2
  * Agent Spawn Module
3
3
  * ==================
4
4
  *
5
- * Handles spawning different AI CLI agents (Claude, Codex, OpenCode)
5
+ * Handles spawning different AI CLI agents (Claude, Codex, OpenCode, LM Studio, Ollama)
6
6
  * with the correct CLI flags per agent type.
7
7
  *
8
+ * lmstudio and ollama piggy-back on existing CLIs: lmstudio uses the `claude`
9
+ * CLI pointed at an Anthropic-compatible local endpoint, ollama uses the
10
+ * `codex` CLI pointed at an OpenAI-compatible local endpoint. Endpoint
11
+ * selection is done via env vars (see `buildEndpointEnv`).
12
+ *
8
13
  * Adding a new agent: add a case to AGENT_CLI_MAP and buildAgentArgs().
9
14
  */
10
15
  import { type ChildProcess } from 'node:child_process';
16
+ import type { RoutingEndpoint } from '../lib/config.js';
11
17
  /** Minimal config needed to build agent CLI args. */
12
18
  export type AgentConfig = {
13
19
  agent: string;
14
20
  model: string;
15
21
  maxTurns?: number;
16
22
  };
17
- /**
18
- * CLI reference for each supported agent.
19
- * Extend this map to add new agent types.
20
- */
21
- export declare const AGENT_CLI_MAP: Record<string, {
23
+ export type AgentCliDef = {
22
24
  command: string;
23
25
  promptFlag: string;
24
26
  modelFlag: string;
25
27
  permissionFlag?: string;
26
28
  supportsMaxTurns: boolean;
27
29
  maxTurnsFlag?: string;
28
- }>;
30
+ /** True when promptFlag is a subcommand (codex 'exec', opencode 'run') rather than a flag like '-p'. */
31
+ isSubcommand: boolean;
32
+ };
33
+ /**
34
+ * CLI reference for each supported agent.
35
+ * Extend this map to add new agent types.
36
+ */
37
+ export declare const AGENT_CLI_MAP: Record<string, AgentCliDef>;
29
38
  export interface AgentArgs {
30
39
  command: string;
31
40
  args: string[];
@@ -37,10 +46,23 @@ export interface AgentArgs {
37
46
  export declare function buildAgentArgs(config: AgentConfig & {
38
47
  model: string;
39
48
  }, prompt: string): AgentArgs;
49
+ /**
50
+ * Build the env-var overrides needed to point a child CLI at a specific
51
+ * routing endpoint. Anthropic-shaped endpoints (`anthropic`, `anthropic_compat`)
52
+ * set ANTHROPIC_BASE_URL / ANTHROPIC_MODEL; OpenAI-compatible endpoints set
53
+ * OPENAI_BASE_URL / OPENAI_MODEL.
54
+ *
55
+ * Callers MUST compute this per stage and not share envs across stages, so
56
+ * that a frontier stage does not inherit a local endpoint from a prior stage.
57
+ */
58
+ export declare function buildEndpointEnv(endpoint: RoutingEndpoint, model: string): Record<string, string>;
59
+ /** Default base URLs for single-agent lmstudio/ollama mode. */
60
+ export declare const DEFAULT_LMSTUDIO_BASE_URL = "http://localhost:1234";
61
+ export declare const DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1";
40
62
  /**
41
63
  * Spawns an agent subprocess with the correct CLI flags.
42
64
  * Returns the ChildProcess for the caller to manage (listen to events, pipe stdio, etc.).
43
65
  */
44
66
  export declare function spawnAgent(config: AgentConfig & {
45
67
  model: string;
46
- }, prompt: string, cwd: string): ChildProcess;
68
+ }, prompt: string, cwd: string, envOverrides?: Record<string, string>): ChildProcess;