@oddessentials/odd-ai-reviewers 1.12.1 → 1.13.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"local-review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/local-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/local-review.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ import { setupSignalHandlers, setPartialResultsContext, clearPartialResultsConte
32
32
  import { countBySeverity } from '../../report/formats.js';
33
33
  import { existsSync } from 'fs';
34
34
  import { join, resolve } from 'path';
35
+ import { format as formatConsoleArgs } from 'util';
35
36
  import { checkDependenciesForPasses, displayDependencyErrors, displaySkippedPassWarnings, getDependenciesForAgent, } from '../dependencies/index.js';
36
37
  // =============================================================================
37
38
  // Default Dependencies
@@ -44,23 +45,6 @@ export function createDefaultDependencies() {
44
45
  env: process.env,
45
46
  exitHandler: (code) => {
46
47
  process.exitCode = code;
47
- const exit = () => process.exit(code);
48
- const drainingStreams = [process.stdout, process.stderr].filter((stream) => stream.writableNeedDrain);
49
- if (drainingStreams.length === 0) {
50
- exit();
51
- return;
52
- }
53
- let remaining = drainingStreams.length;
54
- for (const stream of drainingStreams) {
55
- stream.once('drain', () => {
56
- remaining -= 1;
57
- if (remaining === 0) {
58
- exit();
59
- }
60
- });
61
- }
62
- // Safety: avoid hanging if drain never fires
63
- setTimeout(exit, 100);
64
48
  },
65
49
  stdout: process.stdout,
66
50
  stderr: process.stderr,
@@ -88,6 +72,28 @@ export const ExitCode = {
88
72
  /** Incomplete review (partial results available) */
89
73
  INCOMPLETE: 3,
90
74
  };
75
+ async function withConsoleRedirectToStderr(enabled, stderr, fn) {
76
+ if (!enabled) {
77
+ return fn();
78
+ }
79
+ const originalLog = console.log;
80
+ const originalWarn = console.warn;
81
+ const originalInfo = console.info;
82
+ const redirect = (...args) => {
83
+ stderr.write(formatConsoleArgs(...args) + '\n');
84
+ };
85
+ console.log = redirect;
86
+ console.warn = redirect;
87
+ console.info = redirect;
88
+ try {
89
+ return await fn();
90
+ }
91
+ finally {
92
+ console.log = originalLog;
93
+ console.warn = originalWarn;
94
+ console.info = originalInfo;
95
+ }
96
+ }
91
97
  // =============================================================================
92
98
  // Helper Functions
93
99
  // =============================================================================
@@ -536,46 +542,21 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
536
542
  };
537
543
  }
538
544
  const { options, warnings } = parseResult.value;
539
- // Print warnings
540
- for (const warning of warnings) {
541
- stderr.write(c.yellow(`Warning: ${warning}`) + '\n');
542
- }
543
- // 2. Infer git context
544
- const inferFn = deps.inferGitContext ?? inferGitContext;
545
- const gitResult = inferFn(resolve(options.path));
546
- if (!isOk(gitResult)) {
547
- const error = gitResult.error.code === GitContextErrorCode.GIT_NOT_FOUND
548
- ? new GitNotFoundError(gitResult.error.message)
549
- : gitResult.error.code === GitContextErrorCode.INVALID_PATH
550
- ? new InvalidPathError(gitResult.error.message, gitResult.error.path)
551
- : new NotAGitRepoError(gitResult.error.path ?? options.path);
552
- stderr.write(formatCLIError(error, colored) + '\n');
553
- return {
554
- exitCode: ExitCode.INVALID_ARGS,
555
- findingsCount: 0,
556
- partialFindingsCount: 0,
557
- error: error.message,
558
- };
559
- }
560
- const gitContext = gitResult.value;
561
- // Apply defaults from git context
562
- const resolvedOptions = applyOptionDefaults(options, gitContext);
563
- const diffRange = resolveDiffRange(resolvedOptions, gitContext);
564
- const baseRef = diffRange.baseRef;
565
- // 3. Load configuration (with zero-config fallback)
566
- let config;
567
- let configSource;
568
- let configPath;
569
- let zeroConfigResult;
570
- try {
571
- const configResult = await loadConfigWithFallback(gitContext.repoRoot, env, deps, resolvedOptions.config);
572
- config = configResult.config;
573
- configSource = configResult.source;
574
- configPath = configResult.path;
575
- zeroConfigResult = configResult.zeroConfigResult;
576
- }
577
- catch (error) {
578
- if (error instanceof NoCredentialsError) {
545
+ const isMachineReadableFormat = options.format === 'json' || options.format === 'sarif';
546
+ return withConsoleRedirectToStderr(isMachineReadableFormat, stderr, async () => {
547
+ // Print warnings
548
+ for (const warning of warnings) {
549
+ stderr.write(c.yellow(`Warning: ${warning}`) + '\n');
550
+ }
551
+ // 2. Infer git context
552
+ const inferFn = deps.inferGitContext ?? inferGitContext;
553
+ const gitResult = inferFn(resolve(options.path));
554
+ if (!isOk(gitResult)) {
555
+ const error = gitResult.error.code === GitContextErrorCode.GIT_NOT_FOUND
556
+ ? new GitNotFoundError(gitResult.error.message)
557
+ : gitResult.error.code === GitContextErrorCode.INVALID_PATH
558
+ ? new InvalidPathError(gitResult.error.message, gitResult.error.path)
559
+ : new NotAGitRepoError(gitResult.error.path ?? options.path);
579
560
  stderr.write(formatCLIError(error, colored) + '\n');
580
561
  return {
581
562
  exitCode: ExitCode.INVALID_ARGS,
@@ -584,327 +565,359 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
584
565
  error: error.message,
585
566
  };
586
567
  }
587
- const errorMsg = error instanceof Error ? error.message : String(error);
588
- const configError = new InvalidConfigError(resolvedOptions.config ?? '.ai-review.yml', [
589
- errorMsg,
590
- ]);
591
- stderr.write(formatCLIError(configError, colored) + '\n');
592
- return {
593
- exitCode: ExitCode.INVALID_ARGS,
594
- findingsCount: 0,
595
- partialFindingsCount: 0,
596
- error: errorMsg,
597
- };
598
- }
599
- // Show zero-config message if applicable
600
- if (configSource === 'zero-config' && zeroConfigResult && !resolvedOptions.quiet) {
601
- stdout.write(c.yellow(`\nUsing ${zeroConfigResult.provider} (${zeroConfigResult.keySource} found)\n`));
602
- if (zeroConfigResult.ignoredProviders.length > 0) {
603
- for (const ignored of zeroConfigResult.ignoredProviders) {
604
- stdout.write(c.gray(`Note: ${ignored.keySource} also set but ignored due to priority order\n`));
568
+ const gitContext = gitResult.value;
569
+ // Apply defaults from git context
570
+ const resolvedOptions = applyOptionDefaults(options, gitContext);
571
+ const diffRange = resolveDiffRange(resolvedOptions, gitContext);
572
+ const baseRef = diffRange.baseRef;
573
+ // 3. Load configuration (with zero-config fallback)
574
+ let config;
575
+ let configSource;
576
+ let configPath;
577
+ let zeroConfigResult;
578
+ try {
579
+ const configResult = await loadConfigWithFallback(gitContext.repoRoot, env, deps, resolvedOptions.config);
580
+ config = configResult.config;
581
+ configSource = configResult.source;
582
+ configPath = configResult.path;
583
+ zeroConfigResult = configResult.zeroConfigResult;
584
+ }
585
+ catch (error) {
586
+ if (error instanceof NoCredentialsError) {
587
+ stderr.write(formatCLIError(error, colored) + '\n');
588
+ return {
589
+ exitCode: ExitCode.INVALID_ARGS,
590
+ findingsCount: 0,
591
+ partialFindingsCount: 0,
592
+ error: error.message,
593
+ };
605
594
  }
595
+ const errorMsg = error instanceof Error ? error.message : String(error);
596
+ const configError = new InvalidConfigError(resolvedOptions.config ?? '.ai-review.yml', [
597
+ errorMsg,
598
+ ]);
599
+ stderr.write(formatCLIError(configError, colored) + '\n');
600
+ return {
601
+ exitCode: ExitCode.INVALID_ARGS,
602
+ findingsCount: 0,
603
+ partialFindingsCount: 0,
604
+ error: errorMsg,
605
+ };
606
606
  }
607
- stdout.write(c.gray('Tip: Create .ai-review.yml to customize settings\n\n'));
608
- }
609
- // 4. Build execution plan (FR-001 through FR-007)
610
- // The plan is the single source of truth for all downstream code paths.
611
- // No downstream consumer may read raw CLI flags — they operate on the plan.
612
- let executionPlan;
613
- try {
614
- const planMode = resolvedOptions.dryRun
615
- ? 'dry-run'
616
- : resolvedOptions.costOnly
617
- ? 'cost-only'
618
- : 'execute';
619
- executionPlan = buildExecutionPlan({
620
- config,
621
- mode: planMode,
622
- passFilter: resolvedOptions.pass,
623
- agentFilter: resolvedOptions.agent,
624
- provider: zeroConfigResult?.provider ?? config.provider ?? null,
625
- model: config.models?.default ?? null,
626
- configSource: configSource === 'zero-config' ? 'zero-config' : (configPath ?? '.ai-review.yml'),
627
- });
628
- }
629
- catch (error) {
630
- if (error instanceof ConfigError) {
631
- stderr.write(formatCLIError(new InvalidConfigError(resolvedOptions.config ?? '.ai-review.yml', [error.message]), colored) + '\n');
607
+ // Show zero-config guidance only for human-readable terminal output.
608
+ // Machine-readable modes must reserve stdout exclusively for the payload.
609
+ if (configSource === 'zero-config' &&
610
+ zeroConfigResult &&
611
+ !resolvedOptions.quiet &&
612
+ !isMachineReadableFormat) {
613
+ stdout.write(c.yellow(`\nUsing ${zeroConfigResult.provider} (${zeroConfigResult.keySource} found)\n`));
614
+ if (zeroConfigResult.ignoredProviders.length > 0) {
615
+ for (const ignored of zeroConfigResult.ignoredProviders) {
616
+ stdout.write(c.gray(`Note: ${ignored.keySource} also set but ignored due to priority order\n`));
617
+ }
618
+ }
619
+ stdout.write(c.gray('Tip: Create .ai-review.yml to customize settings\n\n'));
620
+ }
621
+ // 4. Build execution plan (FR-001 through FR-007)
622
+ // The plan is the single source of truth for all downstream code paths.
623
+ // No downstream consumer may read raw CLI flags — they operate on the plan.
624
+ let executionPlan;
625
+ try {
626
+ const planMode = resolvedOptions.dryRun
627
+ ? 'dry-run'
628
+ : resolvedOptions.costOnly
629
+ ? 'cost-only'
630
+ : 'execute';
631
+ executionPlan = buildExecutionPlan({
632
+ config,
633
+ mode: planMode,
634
+ passFilter: resolvedOptions.pass,
635
+ agentFilter: resolvedOptions.agent,
636
+ provider: zeroConfigResult?.provider ?? config.provider ?? null,
637
+ model: config.models?.default ?? null,
638
+ configSource: configSource === 'zero-config' ? 'zero-config' : (configPath ?? '.ai-review.yml'),
639
+ });
640
+ }
641
+ catch (error) {
642
+ if (error instanceof ConfigError) {
643
+ stderr.write(formatCLIError(new InvalidConfigError(resolvedOptions.config ?? '.ai-review.yml', [error.message]), colored) + '\n');
644
+ return {
645
+ exitCode: exitCodeFromStatus('config_error'),
646
+ status: 'config_error',
647
+ findingsCount: 0,
648
+ partialFindingsCount: 0,
649
+ error: error.message,
650
+ };
651
+ }
652
+ throw error;
653
+ }
654
+ // Emit plan in verbose mode for debugging
655
+ if (resolvedOptions.verbose && !resolvedOptions.quiet) {
656
+ stderr.write(c.gray('Execution plan:\n'));
657
+ stderr.write(c.gray(serializeExecutionPlan(executionPlan)));
658
+ stderr.write('\n');
659
+ }
660
+ // Build a config-like passes array from the execution plan for downstream compatibility
661
+ const planPasses = executionPlan.passes.map((p) => ({
662
+ name: p.name,
663
+ agents: [...p.agents],
664
+ enabled: true,
665
+ required: p.required,
666
+ }));
667
+ // 5. Handle special modes (dry-run and cost-only) - before dependency check
668
+ // These modes don't execute agents, so dependencies are not required
669
+ if (resolvedOptions.dryRun) {
670
+ const dryRunResult = await executeDryRun(resolvedOptions, gitContext, config, configSource, configPath, deps);
671
+ // Override agents to match the execution plan (FR-002: dry-run shows only plan agents)
672
+ dryRunResult.agents = [...new Set(executionPlan.passes.flatMap((p) => [...p.agents]))];
673
+ const output = formatDryRunOutput(dryRunResult, colored, resolvedOptions.format);
674
+ stdout.write(output);
675
+ return {
676
+ exitCode: ExitCode.SUCCESS,
677
+ status: 'complete',
678
+ findingsCount: 0,
679
+ partialFindingsCount: 0,
680
+ };
681
+ }
682
+ if (resolvedOptions.costOnly) {
683
+ // FR-003: Cost estimation MUST be scoped to the execution plan's passes only
684
+ const planFilteredConfig = {
685
+ ...config,
686
+ passes: planPasses.map((p) => ({
687
+ name: p.name,
688
+ agents: [...p.agents],
689
+ enabled: true,
690
+ required: p.required,
691
+ })),
692
+ };
693
+ const costResult = await executeCostOnly(resolvedOptions, gitContext, planFilteredConfig, deps);
694
+ const output = formatCostOutput(costResult, colored);
695
+ stdout.write(output);
696
+ return {
697
+ exitCode: ExitCode.SUCCESS,
698
+ status: 'complete',
699
+ findingsCount: 0,
700
+ partialFindingsCount: 0,
701
+ };
702
+ }
703
+ // 6. Dependency preflight check — scoped to execution plan's passes only (FR-001)
704
+ const checkDepsFn = deps.checkDependenciesForPasses ?? checkDependenciesForPasses;
705
+ const depSummary = checkDepsFn(planPasses);
706
+ if (depSummary.hasBlockingIssues) {
707
+ displayDependencyErrors(depSummary, stderr);
632
708
  return {
633
709
  exitCode: exitCodeFromStatus('config_error'),
634
710
  status: 'config_error',
635
711
  findingsCount: 0,
636
712
  partialFindingsCount: 0,
637
- error: error.message,
713
+ error: 'Missing required dependencies',
638
714
  };
639
715
  }
640
- throw error;
641
- }
642
- // Emit plan in verbose mode for debugging
643
- if (resolvedOptions.verbose && !resolvedOptions.quiet) {
644
- stderr.write(c.gray('Execution plan:\n'));
645
- stderr.write(c.gray(serializeExecutionPlan(executionPlan)));
646
- stderr.write('\n');
647
- }
648
- // Build a config-like passes array from the execution plan for downstream compatibility
649
- const planPasses = executionPlan.passes.map((p) => ({
650
- name: p.name,
651
- agents: [...p.agents],
652
- enabled: true,
653
- required: p.required,
654
- }));
655
- // 5. Handle special modes (dry-run and cost-only) - before dependency check
656
- // These modes don't execute agents, so dependencies are not required
657
- if (resolvedOptions.dryRun) {
658
- const dryRunResult = await executeDryRun(resolvedOptions, gitContext, config, configSource, configPath, deps);
659
- // Override agents to match the execution plan (FR-002: dry-run shows only plan agents)
660
- dryRunResult.agents = [...new Set(executionPlan.passes.flatMap((p) => [...p.agents]))];
661
- const output = formatDryRunOutput(dryRunResult, colored, resolvedOptions.format);
662
- stdout.write(output);
663
- return {
664
- exitCode: ExitCode.SUCCESS,
665
- status: 'complete',
666
- findingsCount: 0,
667
- partialFindingsCount: 0,
668
- };
669
- }
670
- if (resolvedOptions.costOnly) {
671
- // FR-003: Cost estimation MUST be scoped to the execution plan's passes only
672
- const planFilteredConfig = {
673
- ...config,
674
- passes: planPasses.map((p) => ({
675
- name: p.name,
676
- agents: [...p.agents],
677
- enabled: true,
678
- required: p.required,
679
- })),
680
- };
681
- const costResult = await executeCostOnly(resolvedOptions, gitContext, planFilteredConfig, deps);
682
- const output = formatCostOutput(costResult, colored);
683
- stdout.write(output);
684
- return {
685
- exitCode: ExitCode.SUCCESS,
686
- status: 'complete',
687
- findingsCount: 0,
688
- partialFindingsCount: 0,
689
- };
690
- }
691
- // 6. Dependency preflight check — scoped to execution plan's passes only (FR-001)
692
- const checkDepsFn = deps.checkDependenciesForPasses ?? checkDependenciesForPasses;
693
- const depSummary = checkDepsFn(planPasses);
694
- if (depSummary.hasBlockingIssues) {
695
- displayDependencyErrors(depSummary, stderr);
696
- return {
697
- exitCode: exitCodeFromStatus('config_error'),
698
- status: 'config_error',
699
- findingsCount: 0,
700
- partialFindingsCount: 0,
701
- error: 'Missing required dependencies',
702
- };
703
- }
704
- // Build skipped pass info for warnings (using plan passes, not raw config)
705
- const skippedPassInfo = buildSkippedPassInfo(planPasses, depSummary);
706
- // Show warnings for skipped passes (graceful degradation)
707
- if (skippedPassInfo.length > 0 && !resolvedOptions.quiet) {
708
- displaySkippedPassWarnings(skippedPassInfo, stderr);
709
- }
710
- // Show execution plan's skipped passes
711
- if (executionPlan.skippedPasses.length > 0 && !resolvedOptions.quiet) {
712
- for (const sp of executionPlan.skippedPasses) {
713
- stderr.write(c.yellow(`Note: ${sp.reason}\n`));
716
+ // Build skipped pass info for warnings (using plan passes, not raw config)
717
+ const skippedPassInfo = buildSkippedPassInfo(planPasses, depSummary);
718
+ // Show warnings for skipped passes (graceful degradation)
719
+ if (skippedPassInfo.length > 0 && !resolvedOptions.quiet) {
720
+ displaySkippedPassWarnings(skippedPassInfo, stderr);
714
721
  }
715
- }
716
- // Filter config to only include runnable passes from the execution plan
717
- const runnableConfig = filterToRunnablePasses({ ...config, passes: planPasses }, depSummary.runnablePasses);
718
- // Check if all passes were filtered out (all optional, all missing dependencies)
719
- const enabledRunnablePasses = runnableConfig.passes.filter((p) => p.enabled);
720
- if (enabledRunnablePasses.length === 0) {
721
- const warnMsg = colored
722
- ? `${c.yellow('⚠')} All review passes were skipped due to missing dependencies.\n` +
723
- ` Run 'ai-review check' to see what's missing.\n` +
724
- ` No review will be performed.\n`
725
- : `Warning: All review passes were skipped due to missing dependencies.\n` +
726
- ` Run 'ai-review check' to see what's missing.\n` +
727
- ` No review will be performed.\n`;
728
- stderr.write(warnMsg);
729
- return {
730
- exitCode: ExitCode.SUCCESS,
731
- status: 'complete',
732
- findingsCount: 0,
733
- partialFindingsCount: 0,
734
- };
735
- }
736
- // Show warnings for other optional missing dependencies
737
- if (depSummary.hasWarnings && !resolvedOptions.quiet && skippedPassInfo.length === 0) {
738
- displayDependencyErrors(depSummary, stderr);
739
- }
740
- // 7. Load .reviewignore patterns (before diff to filter early)
741
- const reviewIgnoreResult = await loadReviewIgnore(gitContext.repoRoot);
742
- // 7. Generate diff once with reviewignore filtering applied
743
- const getDiffFn = deps.getLocalDiff ?? getLocalDiff;
744
- const diff = getDiffFn(gitContext.repoRoot, {
745
- baseRef,
746
- headRef: diffRange.headRef,
747
- rangeOperator: diffRange.rangeOperator,
748
- stagedOnly: resolvedOptions.staged,
749
- uncommitted: resolvedOptions.uncommitted,
750
- pathFilter: reviewIgnoreResult.patterns.length > 0
751
- ? { reviewIgnorePatterns: reviewIgnoreResult.patterns }
752
- : undefined,
753
- });
754
- // 8. Check for changes (using already-generated diff)
755
- if (diff.files.length === 0) {
756
- // No changes to review - could be no changes or all filtered by .reviewignore
757
- const headLabel = resolvedOptions.staged
758
- ? 'STAGED'
759
- : resolvedOptions.uncommitted
760
- ? 'WORKTREE'
761
- : diffRange.headRef;
762
- const output = colored
763
- ? `${c.green('✓')} No changes to review\n\n Base: ${baseRef}\n Head: ${headLabel}\n\n No uncommitted or staged changes found.\n`
764
- : `No changes to review\n\n Base: ${baseRef}\n Head: ${headLabel}\n\n No uncommitted or staged changes found.\n`;
765
- stdout.write(output);
766
- return {
767
- exitCode: ExitCode.SUCCESS,
768
- findingsCount: 0,
769
- partialFindingsCount: 0,
770
- status: 'complete',
771
- };
772
- }
773
- // 9. Build agent context (using runnableConfig with filtered passes)
774
- const routerEnv = buildRouterEnv(env);
775
- const agentContext = buildAgentContext(gitContext.repoRoot, diff, runnableConfig, routerEnv);
776
- const configHash = hashConfig(config); // Use original config for consistent cache key
777
- // 10. Check budget
778
- const diffContent = buildCombinedDiff(diff.files, config.limits?.max_diff_lines ?? 5000);
779
- const estimatedTokensCount = estimateTokens(diffContent);
780
- const budgetContext = {
781
- fileCount: diff.files.length,
782
- diffLines: diff.totalAdditions + diff.totalDeletions,
783
- estimatedTokens: estimatedTokensCount,
784
- };
785
- const budgetCheck = checkBudget(budgetContext, config.limits ?? {
786
- max_files: 50,
787
- max_diff_lines: 2000,
788
- max_tokens_per_pr: 50000,
789
- max_usd_per_pr: 0.1,
790
- monthly_budget_usd: 10,
791
- });
792
- // 11. Setup signal handlers for graceful shutdown
793
- // exitOnSignal defaults to true - first Ctrl+C stops execution immediately
794
- // This is the correct behavior for CLI tools to avoid runaway costs
795
- setupSignalHandlers({
796
- // Cleanup must be SYNCHRONOUS to guarantee completion before process.exit()
797
- // Only uses stdout.write() which is sync - no async I/O allowed here
798
- cleanup: () => {
799
- // Log partial results context if available
800
- const ctx = getPartialResultsContext();
801
- if (ctx && ctx.completedAgents > 0) {
802
- const lines = formatPartialResultsMessage(ctx);
803
- for (const line of lines) {
804
- stdout.write(line + '\n');
805
- }
722
+ // Show execution plan's skipped passes
723
+ if (executionPlan.skippedPasses.length > 0 && !resolvedOptions.quiet) {
724
+ for (const sp of executionPlan.skippedPasses) {
725
+ stderr.write(c.yellow(`Note: ${sp.reason}\n`));
806
726
  }
807
- },
808
- showPartialResultsMessage: true,
809
- // exitOnSignal: true (default) - process.exit() called on first signal
810
- exitOnSignal: true,
811
- logger: {
812
- log: (msg) => stdout.write(msg + '\n'),
813
- warn: (msg) => stderr.write(msg + '\n'),
814
- },
815
- });
816
- // 12. Execute agent passes
817
- let executeResult;
818
- try {
819
- // Set up partial results tracking (using runnableConfig which excludes skipped passes)
820
- const totalAgents = runnableConfig.passes.reduce((sum, p) => (p.enabled ? sum + p.agents.length : sum), 0);
821
- setPartialResultsContext({
822
- totalAgents,
823
- completedAgents: 0,
824
- completedAgentNames: [],
825
- currentAgent: undefined,
727
+ }
728
+ // Filter config to only include runnable passes from the execution plan
729
+ const runnableConfig = filterToRunnablePasses({ ...config, passes: planPasses }, depSummary.runnablePasses);
730
+ // Check if all passes were filtered out (all optional, all missing dependencies)
731
+ const enabledRunnablePasses = runnableConfig.passes.filter((p) => p.enabled);
732
+ if (enabledRunnablePasses.length === 0) {
733
+ const warnMsg = colored
734
+ ? `${c.yellow('⚠')} All review passes were skipped due to missing dependencies.\n` +
735
+ ` Run 'ai-review check' to see what's missing.\n` +
736
+ ` No review will be performed.\n`
737
+ : `Warning: All review passes were skipped due to missing dependencies.\n` +
738
+ ` Run 'ai-review check' to see what's missing.\n` +
739
+ ` No review will be performed.\n`;
740
+ stderr.write(warnMsg);
741
+ return {
742
+ exitCode: ExitCode.SUCCESS,
743
+ status: 'complete',
744
+ findingsCount: 0,
745
+ partialFindingsCount: 0,
746
+ };
747
+ }
748
+ // Show warnings for other optional missing dependencies
749
+ if (depSummary.hasWarnings && !resolvedOptions.quiet && skippedPassInfo.length === 0) {
750
+ displayDependencyErrors(depSummary, stderr);
751
+ }
752
+ // 7. Load .reviewignore patterns (before diff to filter early)
753
+ const reviewIgnoreResult = await loadReviewIgnore(gitContext.repoRoot);
754
+ // 7. Generate diff once with reviewignore filtering applied
755
+ const getDiffFn = deps.getLocalDiff ?? getLocalDiff;
756
+ const diff = getDiffFn(gitContext.repoRoot, {
757
+ baseRef,
758
+ headRef: diffRange.headRef,
759
+ rangeOperator: diffRange.rangeOperator,
760
+ stagedOnly: resolvedOptions.staged,
761
+ uncommitted: resolvedOptions.uncommitted,
762
+ pathFilter: reviewIgnoreResult.patterns.length > 0
763
+ ? { reviewIgnorePatterns: reviewIgnoreResult.patterns }
764
+ : undefined,
826
765
  });
827
- const executeFn = deps.executeAllPasses ?? executeAllPasses;
828
- executeResult = await executeFn(runnableConfig, agentContext, routerEnv, budgetCheck, {
829
- configHash,
830
- head: diff.headSha,
766
+ // 8. Check for changes (using already-generated diff)
767
+ if (diff.files.length === 0) {
768
+ // No changes to review - could be no changes or all filtered by .reviewignore
769
+ const headLabel = resolvedOptions.staged
770
+ ? 'STAGED'
771
+ : resolvedOptions.uncommitted
772
+ ? 'WORKTREE'
773
+ : diffRange.headRef;
774
+ const output = colored
775
+ ? `${c.green('✓')} No changes to review\n\n Base: ${baseRef}\n Head: ${headLabel}\n\n No uncommitted or staged changes found.\n`
776
+ : `No changes to review\n\n Base: ${baseRef}\n Head: ${headLabel}\n\n No uncommitted or staged changes found.\n`;
777
+ stdout.write(output);
778
+ return {
779
+ exitCode: ExitCode.SUCCESS,
780
+ findingsCount: 0,
781
+ partialFindingsCount: 0,
782
+ status: 'complete',
783
+ };
784
+ }
785
+ // 9. Build agent context (using runnableConfig with filtered passes)
786
+ const routerEnv = buildRouterEnv(env);
787
+ const agentContext = buildAgentContext(gitContext.repoRoot, diff, runnableConfig, routerEnv);
788
+ const configHash = hashConfig(config); // Use original config for consistent cache key
789
+ // 10. Check budget
790
+ const diffContent = buildCombinedDiff(diff.files, config.limits?.max_diff_lines ?? 5000);
791
+ const estimatedTokensCount = estimateTokens(diffContent);
792
+ const budgetContext = {
793
+ fileCount: diff.files.length,
794
+ diffLines: diff.totalAdditions + diff.totalDeletions,
795
+ estimatedTokens: estimatedTokensCount,
796
+ };
797
+ const budgetCheck = checkBudget(budgetContext, config.limits ?? {
798
+ max_files: 50,
799
+ max_diff_lines: 2000,
800
+ max_tokens_per_pr: 50000,
801
+ max_usd_per_pr: 0.1,
802
+ monthly_budget_usd: 10,
831
803
  });
832
- }
833
- catch (error) {
834
- clearPartialResultsContext();
835
- const errorMsg = error instanceof Error ? error.message : String(error);
836
- // FR-021: Extract partial results from FatalExecutionError when available.
837
- // If agents completed before the failure, report their findings in degraded mode.
838
- if (error instanceof FatalExecutionError && error.partialResults) {
839
- stderr.write(c.yellow(`\n⚠ Incomplete review: ${errorMsg}\n`));
840
- stderr.write(c.yellow(` ${error.partialResults.completeFindings.length} findings from completed agents preserved\n`));
841
- // Process partial results through the standard pipeline
842
- const executionTimeMs = Date.now() - startTime;
843
- const estimatedCostUsd = error.partialResults.allResults.reduce((sum, r) => {
844
- if ('metrics' in r && r.metrics?.estimatedCostUsd) {
845
- return sum + r.metrics.estimatedCostUsd;
804
+ // 11. Setup signal handlers for graceful shutdown
805
+ // exitOnSignal defaults to true - first Ctrl+C stops execution immediately
806
+ // This is the correct behavior for CLI tools to avoid runaway costs
807
+ setupSignalHandlers({
808
+ // Cleanup must be SYNCHRONOUS to guarantee completion before process.exit()
809
+ // Only uses stdout.write() which is sync - no async I/O allowed here
810
+ cleanup: () => {
811
+ // Log partial results context if available
812
+ const ctx = getPartialResultsContext();
813
+ if (ctx && ctx.completedAgents > 0) {
814
+ const lines = formatPartialResultsMessage(ctx);
815
+ for (const line of lines) {
816
+ stdout.write(line + '\n');
817
+ }
846
818
  }
847
- return sum;
848
- }, 0);
849
- const terminalContext = buildTerminalContext(resolvedOptions, gitContext, configSource, configPath, getPackageVersion());
850
- terminalContext.executionTimeMs = executionTimeMs;
851
- terminalContext.estimatedCostUsd = Math.max(0, estimatedCostUsd);
852
- const processed = processLocalReportFindings(error.partialResults.completeFindings, error.partialResults.partialFindings, diff.files, config, 'local');
853
- const incompleteStatus = 'incomplete';
854
- const reportFn = deps.reportToTerminal ?? reportToTerminal;
855
- await reportFn(processed.complete, processed.partial, terminalContext, config, diff.files, {
856
- status: incompleteStatus,
857
- suppressionSummary: processed.suppressionSummary,
819
+ },
820
+ showPartialResultsMessage: true,
821
+ // exitOnSignal: true (default) - process.exit() called on first signal
822
+ exitOnSignal: true,
823
+ logger: {
824
+ log: (msg) => isMachineReadableFormat ? stderr.write(msg + '\n') : stdout.write(msg + '\n'),
825
+ warn: (msg) => stderr.write(msg + '\n'),
826
+ },
827
+ });
828
+ // 12. Execute agent passes
829
+ let executeResult;
830
+ try {
831
+ // Set up partial results tracking (using runnableConfig which excludes skipped passes)
832
+ const totalAgents = runnableConfig.passes.reduce((sum, p) => (p.enabled ? sum + p.agents.length : sum), 0);
833
+ setPartialResultsContext({
834
+ totalAgents,
835
+ completedAgents: 0,
836
+ completedAgentNames: [],
837
+ currentAgent: undefined,
858
838
  });
859
- // FR-021: Exit code 3 for incomplete review — partial results are NOT used for gating
839
+ const executeFn = deps.executeAllPasses ?? executeAllPasses;
840
+ executeResult = await executeFn(runnableConfig, agentContext, routerEnv, budgetCheck, {
841
+ configHash,
842
+ head: diff.headSha,
843
+ });
844
+ }
845
+ catch (error) {
846
+ clearPartialResultsContext();
847
+ const errorMsg = error instanceof Error ? error.message : String(error);
848
+ // FR-021: Extract partial results from FatalExecutionError when available.
849
+ // If agents completed before the failure, report their findings in degraded mode.
850
+ if (error instanceof FatalExecutionError && error.partialResults) {
851
+ stderr.write(c.yellow(`\n⚠ Incomplete review: ${errorMsg}\n`));
852
+ stderr.write(c.yellow(` ${error.partialResults.completeFindings.length} findings from completed agents preserved\n`));
853
+ // Process partial results through the standard pipeline
854
+ const executionTimeMs = Date.now() - startTime;
855
+ const estimatedCostUsd = error.partialResults.allResults.reduce((sum, r) => {
856
+ if ('metrics' in r && r.metrics?.estimatedCostUsd) {
857
+ return sum + r.metrics.estimatedCostUsd;
858
+ }
859
+ return sum;
860
+ }, 0);
861
+ const terminalContext = buildTerminalContext(resolvedOptions, gitContext, configSource, configPath, getPackageVersion());
862
+ terminalContext.executionTimeMs = executionTimeMs;
863
+ terminalContext.estimatedCostUsd = Math.max(0, estimatedCostUsd);
864
+ const processed = processLocalReportFindings(error.partialResults.completeFindings, error.partialResults.partialFindings, diff.files, config, 'local');
865
+ const incompleteStatus = 'incomplete';
866
+ const reportFn = deps.reportToTerminal ?? reportToTerminal;
867
+ await reportFn(processed.complete, processed.partial, terminalContext, config, diff.files, {
868
+ status: incompleteStatus,
869
+ suppressionSummary: processed.suppressionSummary,
870
+ });
871
+ // FR-021: Exit code 3 for incomplete review — partial results are NOT used for gating
872
+ return {
873
+ exitCode: exitCodeFromStatus(incompleteStatus),
874
+ status: incompleteStatus,
875
+ findingsCount: processed.complete.length,
876
+ partialFindingsCount: processed.partial.length,
877
+ error: errorMsg,
878
+ };
879
+ }
880
+ // Fatal failure with no preserved findings — hard crash, not a degraded run.
881
+ // Use config_error (exit 2) to distinguish from incomplete (exit 3, which has findings).
882
+ stderr.write(c.red(`\nExecution error: ${errorMsg}\n`));
860
883
  return {
861
- exitCode: exitCodeFromStatus(incompleteStatus),
862
- status: incompleteStatus,
863
- findingsCount: processed.complete.length,
864
- partialFindingsCount: processed.partial.length,
884
+ exitCode: exitCodeFromStatus('config_error'),
885
+ status: 'config_error',
886
+ findingsCount: 0,
887
+ partialFindingsCount: 0,
865
888
  error: errorMsg,
866
889
  };
867
890
  }
868
- // Fatal failure with no preserved findings — hard crash, not a degraded run.
869
- // Use config_error (exit 2) to distinguish from incomplete (exit 3, which has findings).
870
- stderr.write(c.red(`\nExecution error: ${errorMsg}\n`));
891
+ clearPartialResultsContext();
892
+ // 13. Calculate execution time and cost
893
+ const executionTimeMs = Date.now() - startTime;
894
+ const estimatedCostUsd = executeResult.allResults.reduce((sum, r) => {
895
+ if ('metrics' in r && r.metrics?.estimatedCostUsd) {
896
+ return sum + r.metrics.estimatedCostUsd;
897
+ }
898
+ return sum;
899
+ }, 0);
900
+ // 14. Build terminal context with execution info
901
+ const terminalContext = buildTerminalContext(resolvedOptions, gitContext, configSource, configPath, getPackageVersion());
902
+ terminalContext.executionTimeMs = executionTimeMs;
903
+ terminalContext.estimatedCostUsd = Math.max(0, estimatedCostUsd); // Clamp to non-negative (FR-REL-002)
904
+ // 15. Post-process findings (FR-018: CLI parity — sanitize → semantic → framework → diff-bound)
905
+ // FR-022: Local mode uses working tree config for suppressions (developer trusted)
906
+ const processed = processLocalReportFindings(executeResult.completeFindings, executeResult.partialFindings, diff.files, config, 'local');
907
+ const runStatus = determineRunStatus(processed.complete, config);
908
+ const exitCode = exitCodeFromStatus(runStatus);
909
+ // 16. Report findings to terminal
910
+ const reportFn = deps.reportToTerminal ?? reportToTerminal;
911
+ const reportResult = await reportFn(processed.complete, processed.partial, terminalContext, config, diff.files, {
912
+ status: runStatus,
913
+ suppressionSummary: processed.suppressionSummary,
914
+ });
871
915
  return {
872
- exitCode: exitCodeFromStatus('config_error'),
873
- status: 'config_error',
874
- findingsCount: 0,
875
- partialFindingsCount: 0,
876
- error: errorMsg,
916
+ exitCode,
917
+ status: runStatus,
918
+ findingsCount: reportResult.findingsCount,
919
+ partialFindingsCount: reportResult.partialFindingsCount,
877
920
  };
878
- }
879
- clearPartialResultsContext();
880
- // 13. Calculate execution time and cost
881
- const executionTimeMs = Date.now() - startTime;
882
- const estimatedCostUsd = executeResult.allResults.reduce((sum, r) => {
883
- if ('metrics' in r && r.metrics?.estimatedCostUsd) {
884
- return sum + r.metrics.estimatedCostUsd;
885
- }
886
- return sum;
887
- }, 0);
888
- // 14. Build terminal context with execution info
889
- const terminalContext = buildTerminalContext(resolvedOptions, gitContext, configSource, configPath, getPackageVersion());
890
- terminalContext.executionTimeMs = executionTimeMs;
891
- terminalContext.estimatedCostUsd = Math.max(0, estimatedCostUsd); // Clamp to non-negative (FR-REL-002)
892
- // 15. Post-process findings (FR-018: CLI parity — sanitize → semantic → framework → diff-bound)
893
- // FR-022: Local mode uses working tree config for suppressions (developer trusted)
894
- const processed = processLocalReportFindings(executeResult.completeFindings, executeResult.partialFindings, diff.files, config, 'local');
895
- const runStatus = determineRunStatus(processed.complete, config);
896
- const exitCode = exitCodeFromStatus(runStatus);
897
- // 16. Report findings to terminal
898
- const reportFn = deps.reportToTerminal ?? reportToTerminal;
899
- const reportResult = await reportFn(processed.complete, processed.partial, terminalContext, config, diff.files, {
900
- status: runStatus,
901
- suppressionSummary: processed.suppressionSummary,
902
921
  });
903
- return {
904
- exitCode,
905
- status: runStatus,
906
- findingsCount: reportResult.findingsCount,
907
- partialFindingsCount: reportResult.partialFindingsCount,
908
- };
909
922
  }
910
923
  //# sourceMappingURL=local-review.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-review.js","sourceRoot":"","sources":["../../../src/cli/commands/local-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-review.js","sourceRoot":"","sources":["../../../src/cli/commands/local-review.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oddessentials/odd-ai-reviewers",
3
- "version": "1.12.1",
3
+ "version": "1.13.0",
4
4
  "description": "AI-powered code review CLI - run locally or in CI/CD pipelines",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",