@oddessentials/odd-ai-reviewers 1.11.0 → 1.12.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.
Files changed (63) hide show
  1. package/README.md +16 -9
  2. package/dist/benchmark/adapter.d.ts.map +1 -1
  3. package/dist/benchmark/adapter.js +4 -2
  4. package/dist/benchmark/adapter.js.map +1 -1
  5. package/dist/cache/store.d.ts.map +1 -1
  6. package/dist/cache/store.js +26 -2
  7. package/dist/cache/store.js.map +1 -1
  8. package/dist/cli/commands/local-review.d.ts +13 -2
  9. package/dist/cli/commands/local-review.d.ts.map +1 -1
  10. package/dist/cli/commands/local-review.js +164 -33
  11. package/dist/cli/commands/local-review.js.map +1 -1
  12. package/dist/cli/execution-plan.d.ts +118 -0
  13. package/dist/cli/execution-plan.d.ts.map +1 -0
  14. package/dist/cli/execution-plan.js +260 -0
  15. package/dist/cli/execution-plan.js.map +1 -0
  16. package/dist/config/schemas.d.ts +103 -21
  17. package/dist/config/schemas.d.ts.map +1 -1
  18. package/dist/config/schemas.js +177 -10
  19. package/dist/config/schemas.js.map +1 -1
  20. package/dist/config.d.ts +8 -3
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +15 -6
  23. package/dist/config.js.map +1 -1
  24. package/dist/main.d.ts.map +1 -1
  25. package/dist/main.js +79 -8
  26. package/dist/main.js.map +1 -1
  27. package/dist/phases/execute.d.ts +3 -0
  28. package/dist/phases/execute.d.ts.map +1 -1
  29. package/dist/phases/execute.js +17 -5
  30. package/dist/phases/execute.js.map +1 -1
  31. package/dist/phases/index.d.ts +1 -1
  32. package/dist/phases/index.d.ts.map +1 -1
  33. package/dist/phases/index.js +1 -1
  34. package/dist/phases/index.js.map +1 -1
  35. package/dist/phases/report.d.ts +28 -4
  36. package/dist/phases/report.d.ts.map +1 -1
  37. package/dist/phases/report.js +86 -36
  38. package/dist/phases/report.js.map +1 -1
  39. package/dist/report/ado.d.ts +2 -1
  40. package/dist/report/ado.d.ts.map +1 -1
  41. package/dist/report/ado.js +9 -5
  42. package/dist/report/ado.js.map +1 -1
  43. package/dist/report/finding-validator.d.ts +1 -4
  44. package/dist/report/finding-validator.d.ts.map +1 -1
  45. package/dist/report/finding-validator.js +23 -54
  46. package/dist/report/finding-validator.js.map +1 -1
  47. package/dist/report/framework-pattern-filter.d.ts +1 -1
  48. package/dist/report/framework-pattern-filter.d.ts.map +1 -1
  49. package/dist/report/framework-pattern-filter.js +114 -99
  50. package/dist/report/framework-pattern-filter.js.map +1 -1
  51. package/dist/report/github.d.ts +2 -1
  52. package/dist/report/github.d.ts.map +1 -1
  53. package/dist/report/github.js +9 -5
  54. package/dist/report/github.js.map +1 -1
  55. package/dist/report/terminal.d.ts +42 -4
  56. package/dist/report/terminal.d.ts.map +1 -1
  57. package/dist/report/terminal.js +36 -8
  58. package/dist/report/terminal.js.map +1 -1
  59. package/dist/report/user-suppressions.d.ts +74 -0
  60. package/dist/report/user-suppressions.d.ts.map +1 -0
  61. package/dist/report/user-suppressions.js +264 -0
  62. package/dist/report/user-suppressions.js.map +1 -0
  63. package/package.json +2 -1
package/README.md CHANGED
@@ -100,7 +100,9 @@ ai-review validate --repo .
100
100
  Create `.ai-review.yml` in your repository root:
101
101
 
102
102
  ```yaml
103
- # AI Provider configuration
103
+ version: 1
104
+
105
+ # AI Provider (optional — auto-detected from API keys if omitted)
104
106
  provider: openai
105
107
 
106
108
  # Model selection
@@ -109,10 +111,14 @@ models:
109
111
 
110
112
  # Review passes
111
113
  passes:
112
- - name: ai-review
114
+ - name: static
115
+ agents: [semgrep]
116
+ enabled: true
117
+ required: true # Fail if semgrep is missing
118
+ - name: cloud-ai
119
+ agents: [opencode, pr_agent]
113
120
  enabled: true
114
- agents:
115
- - opencode
121
+ required: false # Skip if API keys are missing
116
122
 
117
123
  # Resource limits
118
124
  limits:
@@ -151,11 +157,12 @@ Run AI review on local changes.
151
157
 
152
158
  ### Exit Codes
153
159
 
154
- | Code | Meaning |
155
- | ---- | ---------------------------------------------- |
156
- | 0 | Success (no blocking findings) |
157
- | 1 | Failure (blocking findings or execution error) |
158
- | 2 | Invalid arguments or configuration |
160
+ | Code | Meaning |
161
+ | ---- | ------------------------------------------------------- |
162
+ | 0 | Complete review, gating passed (or gating disabled) |
163
+ | 1 | Complete review, gating failure (findings exceeded) |
164
+ | 2 | Fatal error (invalid config or arguments) |
165
+ | 3 | Incomplete review (partial results, some agents failed) |
159
166
 
160
167
  ## Pre-commit Hook Integration
161
168
 
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/benchmark/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiBH,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQtD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAyC5D;AAyED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAiBvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,SAAqB,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAoFpB;AAMD,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,yDAAyD;AACzD,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9C;AAOD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAQvC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,MAAM,GACzB,gBAAgB,CAoBlB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAuEpB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,SAAiD,EACxD,QAAQ,SAAiD,GACxD,gBAAgB,CAiBlB;AAuBD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyC5F"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/benchmark/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkBH,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQtD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAyC5D;AAyED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAiBvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,SAAqB,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAsFpB;AAMD,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,yDAAyD;AACzD,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9C;AAOD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAQvC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,MAAM,GACzB,gBAAgB,CAoBlB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAuEpB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,SAAiD,EACxD,QAAQ,SAAiD,GACxD,gBAAgB,CAiBlB;AAuBD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyC5F"}
@@ -18,7 +18,7 @@ import { readFile, writeFile, mkdir } from 'node:fs/promises';
18
18
  import { existsSync } from 'node:fs';
19
19
  import { join } from 'node:path';
20
20
  import { VulnerabilityDetector } from '../agents/control_flow/vulnerability-detector.js';
21
- import { validateFindingsSemantics, validateNormalizedFindings, } from '../report/finding-validator.js';
21
+ import { validateFindingsSemantics, validateFindings, validateNormalizedFindings, } from '../report/finding-validator.js';
22
22
  import { filterFrameworkConventionFindings, getValidFindings, } from '../report/framework-pattern-filter.js';
23
23
  import { createLogger } from '../agents/control_flow/logger.js';
24
24
  const DETERMINISTIC_PATTERNS = new Set(['A', 'E']);
@@ -194,11 +194,13 @@ export async function runScenario(scenario, timeout = DEFAULT_TIMEOUT_MS) {
194
194
  // Pattern E: Run finding-validator on synthetic findings (self-contradiction,
195
195
  // stale lines, etc.). The control-flow detector doesn't emit these shapes,
196
196
  // so we must inject them from the fixture to actually exercise the validator.
197
+ // FR-018: Uses validateFindings() which runs both Stage 1 (semantic) and
198
+ // Stage 2 (diff-bound) to exercise the full validation pipeline.
197
199
  if (scenario.pattern === 'E') {
198
200
  const inputFindings = scenario.syntheticFindings ?? allFindings;
199
201
  const lineResolver = createBenchmarkLineResolver(diffFiles, scenario.diff);
200
202
  const diffFilePaths = diffFiles.map((df) => df.path);
201
- const summary = validateNormalizedFindings(inputFindings, lineResolver, diffFilePaths);
203
+ const summary = validateFindings(inputFindings, lineResolver, diffFilePaths);
202
204
  return summary.validFindings;
203
205
  }
204
206
  return allFindings;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/benchmark/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/benchmark/adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8GD;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkDxE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,EACnB,UAAU,SAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBhD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAoCtD;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqCnF;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB1E;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8GD;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkDxE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,EACnB,UAAU,SAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBhD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CA4DtD;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqCnF;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB1E;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B"}
@@ -7,7 +7,8 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync, unlink
7
7
  import { join, resolve, sep } from 'path';
8
8
  import { homedir } from 'os';
9
9
  import { AgentResultSchema } from '../agents/types.js';
10
- import { AI_REVIEW_CACHE_PATH, CACHE_KEY_PREFIX, generateRestoreKeyPrefix } from './key.js';
10
+ import { AI_REVIEW_CACHE_PATH, CACHE_KEY_PREFIX, generateRestoreKeyPrefix, parseCacheKey, } from './key.js';
11
+ import { CACHE_SCHEMA_VERSION } from '../agents/types.js';
11
12
  import { buildRouterEnv } from '../agents/security.js';
12
13
  /** Default TTL: 24 hours */
13
14
  const DEFAULT_TTL_SECONDS = 24 * 60 * 60;
@@ -212,7 +213,30 @@ export async function cleanupExpired() {
212
213
  try {
213
214
  const files = readdirSync(dir);
214
215
  for (const file of files) {
215
- if (!file.startsWith(CACHE_KEY_PREFIX) || !file.endsWith('.json'))
216
+ if (!file.endsWith('.json'))
217
+ continue;
218
+ // FR-020: Remove orphan cache files from previous schema versions.
219
+ // These files are inaccessible to the current system and accumulate over time.
220
+ if (!file.startsWith(CACHE_KEY_PREFIX) && file.startsWith('ai-review-')) {
221
+ const key = file.replace(/\.json$/, '');
222
+ const parsed = parseCacheKey(key);
223
+ if (parsed && parsed.version !== undefined && parsed.version !== CACHE_SCHEMA_VERSION) {
224
+ const filePath = join(dir, file);
225
+ unlinkSync(filePath);
226
+ cleaned++;
227
+ console.log(`[cache] Removed orphan from schema v${parsed.version}: ${file}`);
228
+ continue;
229
+ }
230
+ // Legacy files without version also count as orphans
231
+ if (parsed && parsed.version === undefined) {
232
+ const filePath = join(dir, file);
233
+ unlinkSync(filePath);
234
+ cleaned++;
235
+ console.log(`[cache] Removed legacy orphan: ${file}`);
236
+ continue;
237
+ }
238
+ }
239
+ if (!file.startsWith(CACHE_KEY_PREFIX))
216
240
  continue;
217
241
  const filePath = join(dir, file);
218
242
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD,4BAA4B;AAC5B,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzC,0CAA0C;AAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;AAElD,2BAA2B;AAC3B,SAAS,WAAW;IAClB,2DAA2D;IAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAyC,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI,OAAO,EAAE,CAAC;IACxD,OAAO,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAyC,CAAC,CAAC;IACpF,OAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,6CAA6C;IAC7C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6CAA6C;IAC7C,MAAM,eAAe,GAAG,kBAAkB,CAAC;IAC3C,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0DAA0D;IAC1D,yEAAyE;IACzE,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IAE/C,mEAAmE;IACnE,6EAA6E;IAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,MAAe;IAC3C,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,wDAAwD;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAC9C,gEAAgE;YAChE,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAC1C,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,uCAAuC;YACvC,OAAO,CAAC,IAAI,CAAC,0DAA0D,GAAG,EAAE,CAAC,CAAC;YAC9E,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;YAEhD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC3C,gEAAgE;gBAChE,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;oBACxC,sFAAsF;oBACtF,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACvD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;oBACrC,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,2DAA2D;gBAC3D,OAAO,CAAC,IAAI,CAAC,wDAAwD,GAAG,EAAE,CAAC,CAAC;gBAC5E,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,uBAAuB;YACvB,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,MAAmB,EACnB,UAAU,GAAG,mBAAmB;IAEhC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAe;QACxB,GAAG;QACH,MAAM;QACN,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;QAC5B,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;KACnC,CAAC;IAEF,kBAAkB;IAClB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE5B,gBAAgB;IAChB,IAAI,CAAC;QACH,cAAc,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,WAAW,CAAC,KAAK,EAAE,CAAC;IAEpB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YAEtC,mEAAmE;YACnE,+EAA+E;YAC/E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;oBACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACjC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,uCAAuC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC9E,SAAS;gBACX,CAAC;gBACD,qDAAqD;gBACrD,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACjC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;gBAAE,SAAS;YAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;gBAEhD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;oBAC3C,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC9B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;gBACzB,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAC1D,IAAI,EAAE;aACN,OAAO,EAAE,CAAC,CAAC,oBAAoB;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;gBAEhD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;oBAC3C,gEAAgE;oBAChE,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACrD,IAAI,SAAS,EAAE,CAAC;wBACd,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBACrE,OAAO,SAAS,CAAC;oBACnB,CAAC;oBACD,0CAA0C;oBAC1C,OAAO,CAAC,IAAI,CAAC,oDAAoD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAW;IACtD,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9B,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAkB,EAClB,WAAqB;IAErB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5E,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,+CAA+C,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -19,6 +19,7 @@ import type { Result } from '../../types/result.js';
19
19
  import type { GenerateZeroConfigResult } from '../../config/zero-config.js';
20
20
  import type { ValidatedConfig } from '../../types/branded.js';
21
21
  import type { DependencyCheckSummary } from '../dependencies/types.js';
22
+ import { type RunStatus } from '../execution-plan.js';
22
23
  import { parseLocalReviewOptions } from '../options/index.js';
23
24
  import { executeAllPasses } from '../../phases/execute.js';
24
25
  import { reportToTerminal } from '../../report/terminal.js';
@@ -68,8 +69,10 @@ export interface LocalReviewDependencies {
68
69
  * Result from local review execution
69
70
  */
70
71
  export interface LocalReviewResult {
71
- /** Exit code (0=success, 1=failures or execution errors, 2=invalid args/config) */
72
+ /** Exit code (0=success, 1=gating_failed, 2=config_error, 3=incomplete) */
72
73
  exitCode: number;
74
+ /** Machine-readable run status */
75
+ status?: RunStatus;
73
76
  /** Number of findings reported */
74
77
  findingsCount: number;
75
78
  /** Number of partial findings (from interrupted agents) */
@@ -120,7 +123,13 @@ export interface CostEstimateResult {
120
123
  */
121
124
  export declare function createDefaultDependencies(): LocalReviewDependencies;
122
125
  /**
123
- * Exit codes per contracts/cli-interface.md
126
+ * Exit codes per contracts/cli-contract.md
127
+ *
128
+ * Canonical mapping (all exit codes MUST go through exitCodeFromStatus):
129
+ * 0 = complete — all agents succeeded, gating passed or disabled
130
+ * 1 = gating_failed — all agents succeeded, findings exceeded threshold
131
+ * 2 = config_error — config invalid, no passes runnable, suppression error
132
+ * 3 = incomplete — partial results, some agents failed
124
133
  */
125
134
  export declare const ExitCode: {
126
135
  /** Success (no findings, or findings below gating threshold) */
@@ -129,6 +138,8 @@ export declare const ExitCode: {
129
138
  readonly FAILURE: 1;
130
139
  /** Invalid arguments or configuration */
131
140
  readonly INVALID_ARGS: 2;
141
+ /** Incomplete review (partial results available) */
142
+ readonly INCOMPLETE: 3;
132
143
  };
133
144
  /**
134
145
  * Run local review command
@@ -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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"}
@@ -13,7 +13,8 @@
13
13
  * @module cli/commands/local-review
14
14
  */
15
15
  import { isOk } from '../../types/result.js';
16
- import { wrapNonError } from '../../types/errors.js';
16
+ import { wrapNonError, ConfigError } from '../../types/errors.js';
17
+ import { buildExecutionPlan, serializeExecutionPlan, exitCodeFromStatus, } from '../execution-plan.js';
17
18
  import { inferGitContext, GitContextErrorCode } from '../git-context.js';
18
19
  import { parseLocalReviewOptions, applyOptionDefaults, resolveDiffRange, } from '../options/index.js';
19
20
  import { loadConfig, loadConfigFromPath, generateZeroConfigDefaults, isZeroConfigSuccess, } from '../../config.js';
@@ -22,11 +23,11 @@ import { loadReviewIgnore } from '../../reviewignore.js';
22
23
  import { checkBudget, estimateTokens } from '../../budget.js';
23
24
  import { buildRouterEnv } from '../../agents/security.js';
24
25
  import { hashConfig } from '../../cache/key.js';
25
- import { executeAllPasses } from '../../phases/execute.js';
26
+ import { executeAllPasses, FatalExecutionError } from '../../phases/execute.js';
26
27
  import { supportsColor, supportsUnicode, createColorizer } from '../output/colors.js';
27
28
  import { formatCLIError, NotAGitRepoError, NoCredentialsError, InvalidConfigError, GitNotFoundError, InvalidPathError, } from '../output/errors.js';
28
29
  import { reportToTerminal } from '../../report/terminal.js';
29
- import { applyFindingsPipeline } from '../../phases/report.js';
30
+ import { processLocalReportFindings } from '../../phases/report.js';
30
31
  import { setupSignalHandlers, setPartialResultsContext, clearPartialResultsContext, getPartialResultsContext, formatPartialResultsMessage, } from '../signals.js';
31
32
  import { countBySeverity } from '../../report/formats.js';
32
33
  import { existsSync } from 'fs';
@@ -69,7 +70,13 @@ export function createDefaultDependencies() {
69
70
  // Exit Codes
70
71
  // =============================================================================
71
72
  /**
72
- * Exit codes per contracts/cli-interface.md
73
+ * Exit codes per contracts/cli-contract.md
74
+ *
75
+ * Canonical mapping (all exit codes MUST go through exitCodeFromStatus):
76
+ * 0 = complete — all agents succeeded, gating passed or disabled
77
+ * 1 = gating_failed — all agents succeeded, findings exceeded threshold
78
+ * 2 = config_error — config invalid, no passes runnable, suppression error
79
+ * 3 = incomplete — partial results, some agents failed
73
80
  */
74
81
  export const ExitCode = {
75
82
  /** Success (no findings, or findings below gating threshold) */
@@ -78,32 +85,33 @@ export const ExitCode = {
78
85
  FAILURE: 1,
79
86
  /** Invalid arguments or configuration */
80
87
  INVALID_ARGS: 2,
88
+ /** Incomplete review (partial results available) */
89
+ INCOMPLETE: 3,
81
90
  };
82
91
  // =============================================================================
83
92
  // Helper Functions
84
93
  // =============================================================================
85
94
  /**
86
- * Determine exit code based on findings and gating configuration
95
+ * Determine run status based on findings and gating configuration.
96
+ * The RunStatus is then mapped to an exit code via exitCodeFromStatus().
87
97
  */
88
- function determineExitCode(findings, config) {
98
+ function determineRunStatus(findings, config) {
89
99
  if (!config.gating?.enabled) {
90
- return ExitCode.SUCCESS;
100
+ return 'complete';
91
101
  }
92
102
  const counts = countBySeverity(findings);
93
103
  const threshold = config.gating.fail_on_severity ?? 'error';
94
104
  if (threshold === 'warning') {
95
- // Fail on warnings or errors
96
105
  if (counts.error > 0 || counts.warning > 0) {
97
- return ExitCode.FAILURE;
106
+ return 'gating_failed';
98
107
  }
99
108
  }
100
109
  else {
101
- // Default: fail on errors only
102
110
  if (counts.error > 0) {
103
- return ExitCode.FAILURE;
111
+ return 'gating_failed';
104
112
  }
105
113
  }
106
- return ExitCode.SUCCESS;
114
+ return 'complete';
107
115
  }
108
116
  /**
109
117
  * Get package version from package.json
@@ -598,40 +606,115 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
598
606
  }
599
607
  stdout.write(c.gray('Tip: Create .ai-review.yml to customize settings\n\n'));
600
608
  }
601
- // 4. Handle special modes (dry-run and cost-only) - before dependency check
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');
632
+ return {
633
+ exitCode: exitCodeFromStatus('config_error'),
634
+ status: 'config_error',
635
+ findingsCount: 0,
636
+ partialFindingsCount: 0,
637
+ error: error.message,
638
+ };
639
+ }
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
602
656
  // These modes don't execute agents, so dependencies are not required
603
657
  if (resolvedOptions.dryRun) {
604
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]))];
605
661
  const output = formatDryRunOutput(dryRunResult, colored, resolvedOptions.format);
606
662
  stdout.write(output);
607
- return { exitCode: ExitCode.SUCCESS, findingsCount: 0, partialFindingsCount: 0 };
663
+ return {
664
+ exitCode: ExitCode.SUCCESS,
665
+ status: 'complete',
666
+ findingsCount: 0,
667
+ partialFindingsCount: 0,
668
+ };
608
669
  }
609
670
  if (resolvedOptions.costOnly) {
610
- const costResult = await executeCostOnly(resolvedOptions, gitContext, config, deps);
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);
611
682
  const output = formatCostOutput(costResult, colored);
612
683
  stdout.write(output);
613
- return { exitCode: ExitCode.SUCCESS, findingsCount: 0, partialFindingsCount: 0 };
684
+ return {
685
+ exitCode: ExitCode.SUCCESS,
686
+ status: 'complete',
687
+ findingsCount: 0,
688
+ partialFindingsCount: 0,
689
+ };
614
690
  }
615
- // 5. Dependency preflight check (only needed when actually running agents)
691
+ // 6. Dependency preflight check scoped to execution plan's passes only (FR-001)
616
692
  const checkDepsFn = deps.checkDependenciesForPasses ?? checkDependenciesForPasses;
617
- const depSummary = checkDepsFn(config.passes);
693
+ const depSummary = checkDepsFn(planPasses);
618
694
  if (depSummary.hasBlockingIssues) {
619
695
  displayDependencyErrors(depSummary, stderr);
620
696
  return {
621
- exitCode: ExitCode.FAILURE,
697
+ exitCode: exitCodeFromStatus('config_error'),
698
+ status: 'config_error',
622
699
  findingsCount: 0,
623
700
  partialFindingsCount: 0,
624
701
  error: 'Missing required dependencies',
625
702
  };
626
703
  }
627
- // Build skipped pass info for warnings
628
- const skippedPassInfo = buildSkippedPassInfo(config.passes, depSummary);
704
+ // Build skipped pass info for warnings (using plan passes, not raw config)
705
+ const skippedPassInfo = buildSkippedPassInfo(planPasses, depSummary);
629
706
  // Show warnings for skipped passes (graceful degradation)
630
707
  if (skippedPassInfo.length > 0 && !resolvedOptions.quiet) {
631
708
  displaySkippedPassWarnings(skippedPassInfo, stderr);
632
709
  }
633
- // Filter config to only include runnable passes
634
- const runnableConfig = filterToRunnablePasses(config, depSummary.runnablePasses);
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`));
714
+ }
715
+ }
716
+ // Filter config to only include runnable passes from the execution plan
717
+ const runnableConfig = filterToRunnablePasses({ ...config, passes: planPasses }, depSummary.runnablePasses);
635
718
  // Check if all passes were filtered out (all optional, all missing dependencies)
636
719
  const enabledRunnablePasses = runnableConfig.passes.filter((p) => p.enabled);
637
720
  if (enabledRunnablePasses.length === 0) {
@@ -643,13 +726,18 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
643
726
  ` Run 'ai-review check' to see what's missing.\n` +
644
727
  ` No review will be performed.\n`;
645
728
  stderr.write(warnMsg);
646
- return { exitCode: ExitCode.SUCCESS, findingsCount: 0, partialFindingsCount: 0 };
729
+ return {
730
+ exitCode: ExitCode.SUCCESS,
731
+ status: 'complete',
732
+ findingsCount: 0,
733
+ partialFindingsCount: 0,
734
+ };
647
735
  }
648
736
  // Show warnings for other optional missing dependencies
649
737
  if (depSummary.hasWarnings && !resolvedOptions.quiet && skippedPassInfo.length === 0) {
650
738
  displayDependencyErrors(depSummary, stderr);
651
739
  }
652
- // 6. Load .reviewignore patterns (before diff to filter early)
740
+ // 7. Load .reviewignore patterns (before diff to filter early)
653
741
  const reviewIgnoreResult = await loadReviewIgnore(gitContext.repoRoot);
654
742
  // 7. Generate diff once with reviewignore filtering applied
655
743
  const getDiffFn = deps.getLocalDiff ?? getLocalDiff;
@@ -675,7 +763,12 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
675
763
  ? `${c.green('✓')} No changes to review\n\n Base: ${baseRef}\n Head: ${headLabel}\n\n No uncommitted or staged changes found.\n`
676
764
  : `No changes to review\n\n Base: ${baseRef}\n Head: ${headLabel}\n\n No uncommitted or staged changes found.\n`;
677
765
  stdout.write(output);
678
- return { exitCode: ExitCode.SUCCESS, findingsCount: 0, partialFindingsCount: 0 };
766
+ return {
767
+ exitCode: ExitCode.SUCCESS,
768
+ findingsCount: 0,
769
+ partialFindingsCount: 0,
770
+ status: 'complete',
771
+ };
679
772
  }
680
773
  // 9. Build agent context (using runnableConfig with filtered passes)
681
774
  const routerEnv = buildRouterEnv(env);
@@ -740,9 +833,44 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
740
833
  catch (error) {
741
834
  clearPartialResultsContext();
742
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;
846
+ }
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,
858
+ });
859
+ // FR-021: Exit code 3 for incomplete review — partial results are NOT used for gating
860
+ return {
861
+ exitCode: exitCodeFromStatus(incompleteStatus),
862
+ status: incompleteStatus,
863
+ findingsCount: processed.complete.length,
864
+ partialFindingsCount: processed.partial.length,
865
+ error: errorMsg,
866
+ };
867
+ }
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).
743
870
  stderr.write(c.red(`\nExecution error: ${errorMsg}\n`));
744
871
  return {
745
- exitCode: ExitCode.FAILURE,
872
+ exitCode: exitCodeFromStatus('config_error'),
873
+ status: 'config_error',
746
874
  findingsCount: 0,
747
875
  partialFindingsCount: 0,
748
876
  error: errorMsg,
@@ -762,16 +890,19 @@ export async function runLocalReview(rawOptions, deps = createDefaultDependencie
762
890
  terminalContext.executionTimeMs = executionTimeMs;
763
891
  terminalContext.estimatedCostUsd = Math.max(0, estimatedCostUsd); // Clamp to non-negative (FR-REL-002)
764
892
  // 15. Post-process findings (FR-018: CLI parity — sanitize → semantic → framework → diff-bound)
765
- const processedFindings = applyFindingsPipeline(executeResult.completeFindings, diff.files
766
- // No prDescription in CLI mode documented divergence (FR-018e)
767
- );
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);
768
897
  // 16. Report findings to terminal
769
898
  const reportFn = deps.reportToTerminal ?? reportToTerminal;
770
- const reportResult = await reportFn(processedFindings, executeResult.partialFindings, terminalContext, config, diff.files);
771
- // 17. Determine exit code (uses post-processed findings for accurate gating)
772
- const exitCode = determineExitCode(processedFindings, config);
899
+ const reportResult = await reportFn(processed.complete, processed.partial, terminalContext, config, diff.files, {
900
+ status: runStatus,
901
+ suppressionSummary: processed.suppressionSummary,
902
+ });
773
903
  return {
774
904
  exitCode,
905
+ status: runStatus,
775
906
  findingsCount: reportResult.findingsCount,
776
907
  partialFindingsCount: reportResult.partialFindingsCount,
777
908
  };