@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":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAoB,MAAM,6BAA6B,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAmB,MAAM,0BAA0B,CAAC;AAKxF,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EAGxB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EAAE,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAUhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
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
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
const
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
? new
|
|
551
|
-
:
|
|
552
|
-
|
|
553
|
-
|
|
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
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
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
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
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:
|
|
713
|
+
error: 'Missing required dependencies',
|
|
638
714
|
};
|
|
639
715
|
}
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
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
|
-
|
|
717
|
-
|
|
718
|
-
|
|
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
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
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
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
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
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
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
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
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
|
-
|
|
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(
|
|
862
|
-
status:
|
|
863
|
-
findingsCount:
|
|
864
|
-
partialFindingsCount:
|
|
884
|
+
exitCode: exitCodeFromStatus('config_error'),
|
|
885
|
+
status: 'config_error',
|
|
886
|
+
findingsCount: 0,
|
|
887
|
+
partialFindingsCount: 0,
|
|
865
888
|
error: errorMsg,
|
|
866
889
|
};
|
|
867
890
|
}
|
|
868
|
-
|
|
869
|
-
//
|
|
870
|
-
|
|
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
|
|
873
|
-
status:
|
|
874
|
-
findingsCount:
|
|
875
|
-
partialFindingsCount:
|
|
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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"}
|