@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
@@ -5,25 +5,41 @@
5
5
  * Extracted from config.ts to improve modularity.
6
6
  */
7
7
  import { z } from 'zod';
8
+ /**
9
+ * Metadata for a single agent in the canonical registry.
10
+ * Schema validation, CLI help, docs tables, and error messages all derive from this.
11
+ */
12
+ export interface AgentRegistryEntry {
13
+ readonly id: string;
14
+ readonly name: string;
15
+ readonly description: string;
16
+ readonly requiresExternalTool: boolean;
17
+ readonly requiresApiKey: boolean;
18
+ readonly builtIn: boolean;
19
+ readonly compatibleProviders: readonly string[] | 'all';
20
+ }
21
+ /**
22
+ * Canonical agent registry — the sole authority for agent identity.
23
+ * Adding a new agent without updating this registry is impossible because
24
+ * AgentSchema is derived from it.
25
+ */
26
+ export declare const AGENT_REGISTRY: readonly AgentRegistryEntry[];
27
+ /**
28
+ * Look up an agent by ID from the registry.
29
+ */
30
+ export declare function getAgentById(id: string): AgentRegistryEntry | undefined;
31
+ /**
32
+ * Get agents compatible with a given provider.
33
+ * Returns all agents if provider is null/undefined.
34
+ */
35
+ export declare function getCompatibleAgents(provider: string | null | undefined): AgentRegistryEntry[];
8
36
  export declare const AgentSchema: z.ZodEnum<{
9
- control_flow: "control_flow";
10
- semgrep: "semgrep";
11
- reviewdog: "reviewdog";
12
- opencode: "opencode";
13
- pr_agent: "pr_agent";
14
- local_llm: "local_llm";
15
- ai_semantic_review: "ai_semantic_review";
37
+ [x: string]: string;
16
38
  }>;
17
39
  export declare const PassSchema: z.ZodObject<{
18
40
  name: z.ZodString;
19
41
  agents: z.ZodArray<z.ZodEnum<{
20
- control_flow: "control_flow";
21
- semgrep: "semgrep";
22
- reviewdog: "reviewdog";
23
- opencode: "opencode";
24
- pr_agent: "pr_agent";
25
- local_llm: "local_llm";
26
- ai_semantic_review: "ai_semantic_review";
42
+ [x: string]: string;
27
43
  }>>;
28
44
  enabled: z.ZodDefault<z.ZodBoolean>;
29
45
  required: z.ZodDefault<z.ZodBoolean>;
@@ -120,6 +136,50 @@ export declare const ProviderSchema: z.ZodEnum<{
120
136
  "azure-openai": "azure-openai";
121
137
  ollama: "ollama";
122
138
  }>;
139
+ export declare const SuppressionRuleSchema: z.ZodObject<{
140
+ rule: z.ZodOptional<z.ZodString>;
141
+ message: z.ZodOptional<z.ZodString>;
142
+ file: z.ZodOptional<z.ZodString>;
143
+ severity: z.ZodOptional<z.ZodEnum<{
144
+ error: "error";
145
+ warning: "warning";
146
+ info: "info";
147
+ }>>;
148
+ reason: z.ZodString;
149
+ breadth_override: z.ZodOptional<z.ZodBoolean>;
150
+ breadth_override_reason: z.ZodOptional<z.ZodString>;
151
+ approved_by: z.ZodOptional<z.ZodString>;
152
+ }, z.core.$strip>;
153
+ export declare const SuppressionsSchema: z.ZodObject<{
154
+ rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
155
+ rule: z.ZodOptional<z.ZodString>;
156
+ message: z.ZodOptional<z.ZodString>;
157
+ file: z.ZodOptional<z.ZodString>;
158
+ severity: z.ZodOptional<z.ZodEnum<{
159
+ error: "error";
160
+ warning: "warning";
161
+ info: "info";
162
+ }>>;
163
+ reason: z.ZodString;
164
+ breadth_override: z.ZodOptional<z.ZodBoolean>;
165
+ breadth_override_reason: z.ZodOptional<z.ZodString>;
166
+ approved_by: z.ZodOptional<z.ZodString>;
167
+ }, z.core.$strip>>>;
168
+ disable_matchers: z.ZodDefault<z.ZodArray<z.ZodEnum<{
169
+ "express-error-mw": "express-error-mw";
170
+ "ts-unused-prefix": "ts-unused-prefix";
171
+ "exhaustive-switch": "exhaustive-switch";
172
+ "react-query-dedup": "react-query-dedup";
173
+ "promise-allsettled-order": "promise-allsettled-order";
174
+ "safe-local-file-read": "safe-local-file-read";
175
+ "exhaustive-type-narrowed-switch": "exhaustive-type-narrowed-switch";
176
+ "error-object-xss": "error-object-xss";
177
+ "thin-wrapper-stdlib": "thin-wrapper-stdlib";
178
+ }>>>;
179
+ security_override_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
180
+ }, z.core.$strip>;
181
+ export type SuppressionRule = z.infer<typeof SuppressionRuleSchema>;
182
+ export type Suppressions = z.infer<typeof SuppressionsSchema>;
123
183
  export declare const ConfigSchema: z.ZodObject<{
124
184
  version: z.ZodDefault<z.ZodNumber>;
125
185
  trusted_only: z.ZodDefault<z.ZodBoolean>;
@@ -133,13 +193,7 @@ export declare const ConfigSchema: z.ZodObject<{
133
193
  passes: z.ZodDefault<z.ZodArray<z.ZodObject<{
134
194
  name: z.ZodString;
135
195
  agents: z.ZodArray<z.ZodEnum<{
136
- control_flow: "control_flow";
137
- semgrep: "semgrep";
138
- reviewdog: "reviewdog";
139
- opencode: "opencode";
140
- pr_agent: "pr_agent";
141
- local_llm: "local_llm";
142
- ai_semantic_review: "ai_semantic_review";
196
+ [x: string]: string;
143
197
  }>>;
144
198
  enabled: z.ZodDefault<z.ZodBoolean>;
145
199
  required: z.ZodDefault<z.ZodBoolean>;
@@ -272,6 +326,34 @@ export declare const ConfigSchema: z.ZodObject<{
272
326
  "azure-openai": "azure-openai";
273
327
  ollama: "ollama";
274
328
  }>>;
329
+ suppressions: z.ZodOptional<z.ZodObject<{
330
+ rules: z.ZodDefault<z.ZodArray<z.ZodObject<{
331
+ rule: z.ZodOptional<z.ZodString>;
332
+ message: z.ZodOptional<z.ZodString>;
333
+ file: z.ZodOptional<z.ZodString>;
334
+ severity: z.ZodOptional<z.ZodEnum<{
335
+ error: "error";
336
+ warning: "warning";
337
+ info: "info";
338
+ }>>;
339
+ reason: z.ZodString;
340
+ breadth_override: z.ZodOptional<z.ZodBoolean>;
341
+ breadth_override_reason: z.ZodOptional<z.ZodString>;
342
+ approved_by: z.ZodOptional<z.ZodString>;
343
+ }, z.core.$strip>>>;
344
+ disable_matchers: z.ZodDefault<z.ZodArray<z.ZodEnum<{
345
+ "express-error-mw": "express-error-mw";
346
+ "ts-unused-prefix": "ts-unused-prefix";
347
+ "exhaustive-switch": "exhaustive-switch";
348
+ "react-query-dedup": "react-query-dedup";
349
+ "promise-allsettled-order": "promise-allsettled-order";
350
+ "safe-local-file-read": "safe-local-file-read";
351
+ "exhaustive-type-narrowed-switch": "exhaustive-type-narrowed-switch";
352
+ "error-object-xss": "error-object-xss";
353
+ "thin-wrapper-stdlib": "thin-wrapper-stdlib";
354
+ }>>>;
355
+ security_override_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
356
+ }, z.core.$strip>>;
275
357
  }, z.core.$strip>;
276
358
  export type Config = z.infer<typeof ConfigSchema>;
277
359
  export type Pass = z.infer<typeof PassSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW;;;;;;;;EAQtB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;iBAUrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;iBAavB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;iBAMhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;iBAGvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;EAA4D,CAAC;AAExF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BvB,CAAC;AAGH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;CACzD;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAgE9C,CAAC;AAKX;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,kBAAkB,EAAE,CAK7F;AAGD,eAAO,MAAM,WAAW;;EAAoB,CAAC;AAE7C,eAAO,MAAM,UAAU;;;;;;;iBAUrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;iBAavB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;iBAMhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAM7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;iBAGvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;EAA4D,CAAC;AAmBxF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAuE/B,CAAC;AAEJ,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU3B,CAAC;AAEL,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCvB,CAAC;AAGH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -6,16 +6,95 @@
6
6
  */
7
7
  import { z } from 'zod';
8
8
  import { ControlFlowConfigSchema } from '../agents/control_flow/types.js';
9
- // Schema definitions
10
- export const AgentSchema = z.enum([
11
- 'semgrep',
12
- 'reviewdog',
13
- 'opencode',
14
- 'pr_agent',
15
- 'local_llm',
16
- 'ai_semantic_review',
17
- 'control_flow',
18
- ]);
9
+ /**
10
+ * Canonical agent registry — the sole authority for agent identity.
11
+ * Adding a new agent without updating this registry is impossible because
12
+ * AgentSchema is derived from it.
13
+ */
14
+ export const AGENT_REGISTRY = [
15
+ {
16
+ id: 'semgrep',
17
+ name: 'Semgrep',
18
+ description: 'Static analysis via Semgrep CLI',
19
+ requiresExternalTool: true,
20
+ requiresApiKey: false,
21
+ builtIn: false,
22
+ compatibleProviders: 'all',
23
+ },
24
+ {
25
+ id: 'reviewdog',
26
+ name: 'Reviewdog',
27
+ description: 'Lint aggregation via Reviewdog CLI',
28
+ requiresExternalTool: true,
29
+ requiresApiKey: false,
30
+ builtIn: false,
31
+ compatibleProviders: 'all',
32
+ },
33
+ {
34
+ id: 'opencode',
35
+ name: 'OpenCode',
36
+ description: 'AI code review via cloud LLM',
37
+ requiresExternalTool: false,
38
+ requiresApiKey: true,
39
+ builtIn: false,
40
+ compatibleProviders: ['anthropic', 'openai', 'azure-openai'],
41
+ },
42
+ {
43
+ id: 'pr_agent',
44
+ name: 'PR Agent',
45
+ description: 'AI pull request analysis via cloud LLM',
46
+ requiresExternalTool: false,
47
+ requiresApiKey: true,
48
+ builtIn: false,
49
+ compatibleProviders: ['anthropic', 'openai', 'azure-openai'],
50
+ },
51
+ {
52
+ id: 'local_llm',
53
+ name: 'Local LLM',
54
+ description: 'AI code review via local Ollama model',
55
+ requiresExternalTool: false,
56
+ requiresApiKey: false,
57
+ builtIn: false,
58
+ compatibleProviders: ['ollama'],
59
+ },
60
+ {
61
+ id: 'ai_semantic_review',
62
+ name: 'AI Semantic Review',
63
+ description: 'Semantic analysis via cloud LLM',
64
+ requiresExternalTool: false,
65
+ requiresApiKey: true,
66
+ builtIn: false,
67
+ compatibleProviders: ['anthropic', 'openai', 'azure-openai'],
68
+ },
69
+ {
70
+ id: 'control_flow',
71
+ name: 'Control Flow',
72
+ description: 'Built-in TypeScript control flow analysis',
73
+ requiresExternalTool: false,
74
+ requiresApiKey: false,
75
+ builtIn: true,
76
+ compatibleProviders: 'all',
77
+ },
78
+ ];
79
+ /** All valid agent IDs, derived from the registry */
80
+ const AGENT_IDS = AGENT_REGISTRY.map((a) => a.id);
81
+ /**
82
+ * Look up an agent by ID from the registry.
83
+ */
84
+ export function getAgentById(id) {
85
+ return AGENT_REGISTRY.find((a) => a.id === id);
86
+ }
87
+ /**
88
+ * Get agents compatible with a given provider.
89
+ * Returns all agents if provider is null/undefined.
90
+ */
91
+ export function getCompatibleAgents(provider) {
92
+ if (!provider)
93
+ return [...AGENT_REGISTRY];
94
+ return AGENT_REGISTRY.filter((a) => a.compatibleProviders === 'all' || a.compatibleProviders.includes(provider));
95
+ }
96
+ // Schema definitions — AgentSchema derived from registry
97
+ export const AgentSchema = z.enum(AGENT_IDS);
19
98
  export const PassSchema = z.object({
20
99
  name: z.string(),
21
100
  agents: z.array(AgentSchema),
@@ -87,6 +166,92 @@ export const ModelsSchema = z.object({
87
166
  * Required when multiple provider keys are present with MODEL set.
88
167
  */
89
168
  export const ProviderSchema = z.enum(['anthropic', 'openai', 'azure-openai', 'ollama']);
169
+ // =============================================================================
170
+ // Suppression Schema (FR-022)
171
+ // =============================================================================
172
+ /** Valid matcher IDs for disable_matchers */
173
+ const VALID_MATCHER_IDS = [
174
+ 'express-error-mw',
175
+ 'ts-unused-prefix',
176
+ 'exhaustive-switch',
177
+ 'react-query-dedup',
178
+ 'promise-allsettled-order',
179
+ 'safe-local-file-read',
180
+ 'exhaustive-type-narrowed-switch',
181
+ 'error-object-xss',
182
+ 'thin-wrapper-stdlib',
183
+ ];
184
+ export const SuppressionRuleSchema = z
185
+ .object({
186
+ /** Glob pattern against finding.ruleId */
187
+ rule: z.string().optional(),
188
+ /** Anchored regex pattern against finding.message */
189
+ message: z.string().optional(),
190
+ /** Glob pattern against finding.file */
191
+ file: z.string().optional(),
192
+ /** Exact match against finding.severity */
193
+ severity: z.enum(['error', 'warning', 'info']).optional(),
194
+ /** Mandatory audit reason */
195
+ reason: z.string().min(1),
196
+ /** Allow broad suppression (>20 matches in CI) */
197
+ breadth_override: z.boolean().optional(),
198
+ /** Justification for breadth override */
199
+ breadth_override_reason: z.string().optional(),
200
+ /** Person or team who approved the override */
201
+ approved_by: z.string().optional(),
202
+ })
203
+ .refine((rule) => rule.rule !== undefined || rule.message !== undefined || rule.file !== undefined, { message: 'Suppression rule must specify at least one of: rule, message, file' })
204
+ .refine((rule) => {
205
+ if (rule.message === undefined)
206
+ return true;
207
+ if (rule.message.length === 0)
208
+ return false;
209
+ // FR-022: Message patterns MUST be fully anchored (^ and $).
210
+ if (!(rule.message.startsWith('^') && rule.message.endsWith('$')))
211
+ return false;
212
+ // Reject blanket patterns that match everything (^.*$, ^.+$, ^.{0,}$)
213
+ const blanketPatterns = ['^.*$', '^.+$', '^.{0,}$'];
214
+ if (blanketPatterns.includes(rule.message))
215
+ return false;
216
+ return true;
217
+ }, {
218
+ message: "Message pattern must be fully anchored (^...$) and not a blanket match. Use '^specific pattern$' for exact match or '^.*specific.*$' for substring.",
219
+ })
220
+ .refine((rule) => {
221
+ if (rule.rule === undefined)
222
+ return true;
223
+ // Reject blanket rule globs that match all rule IDs
224
+ const blanketGlobs = ['*', '**', '**/*'];
225
+ return !blanketGlobs.includes(rule.rule);
226
+ }, { message: "Rule glob must be scoped (e.g., 'semantic/*'), not a blanket '*'." })
227
+ .refine((rule) => {
228
+ if (rule.file === undefined)
229
+ return true;
230
+ // Reject blanket file globs that match all files
231
+ const blanketGlobs = ['*', '**', '**/*', '**/**'];
232
+ return !blanketGlobs.includes(rule.file);
233
+ }, { message: "File glob must be scoped (e.g., 'tests/**'), not a blanket '**'." })
234
+ .refine((rule) => {
235
+ if (!rule.breadth_override)
236
+ return true;
237
+ return (rule.breadth_override_reason !== undefined &&
238
+ rule.breadth_override_reason.length > 0 &&
239
+ rule.approved_by !== undefined &&
240
+ rule.approved_by.length > 0);
241
+ }, {
242
+ message: 'breadth_override requires both breadth_override_reason and approved_by to be specified',
243
+ });
244
+ export const SuppressionsSchema = z
245
+ .object({
246
+ rules: z.array(SuppressionRuleSchema).default([]),
247
+ /** Matcher IDs to disable in the framework convention filter */
248
+ disable_matchers: z.array(z.enum(VALID_MATCHER_IDS)).default([]),
249
+ /** Rule reasons authorized to suppress error-severity findings with breadth override */
250
+ security_override_allowlist: z.array(z.string()).default([]),
251
+ })
252
+ .refine((s) => s.rules.length <= 50, {
253
+ message: 'Maximum 50 suppression rules allowed',
254
+ });
90
255
  export const ConfigSchema = z.object({
91
256
  version: z.number().default(1),
92
257
  trusted_only: z.boolean().default(true),
@@ -117,5 +282,7 @@ export const ConfigSchema = z.object({
117
282
  * REQUIRED when multiple provider keys are present AND MODEL is set (prevents ambiguity).
118
283
  */
119
284
  provider: ProviderSchema.optional(),
285
+ /** User-configurable finding suppressions (FR-022) */
286
+ suppressions: SuppressionsSchema.optional(),
120
287
  });
121
288
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -13,20 +13,25 @@ export { type ProviderDetectionResult, type ZeroConfigResult, type NoCredentials
13
13
  import { type Config, type AgentId } from './config/schemas.js';
14
14
  /** Validated configuration type - branded to guarantee validation has occurred */
15
15
  export type ValidatedReviewConfig = ValidatedConfig<Config>;
16
+ export interface LoadConfigOptions {
17
+ /** Ignore repository-defined suppressions before schema validation. Used in CI to
18
+ * prevent untrusted PR branches from influencing suppression parsing/validation. */
19
+ ignoreSuppressions?: boolean;
20
+ }
16
21
  /**
17
22
  * Load configuration from the target repository
18
23
  * Falls back to defaults if no config file exists
19
24
  *
20
25
  * @returns ValidatedConfig<Config> - Configuration validated through Zod schema
21
26
  */
22
- export declare function loadConfig(repoRoot: string): Promise<ValidatedConfig<Config>>;
27
+ export declare function loadConfig(repoRoot: string, options?: LoadConfigOptions): Promise<ValidatedConfig<Config>>;
23
28
  /**
24
29
  * Load configuration from an explicit file path.
25
30
  *
26
31
  * @param configPath - Absolute or relative path to a config file
27
32
  * @returns ValidatedConfig<Config> - Configuration validated through Zod schema
28
33
  */
29
- export declare function loadConfigFromPath(configPath: string): Promise<ValidatedConfig<Config>>;
34
+ export declare function loadConfigFromPath(configPath: string, options?: LoadConfigOptions): Promise<ValidatedConfig<Config>>;
30
35
  /**
31
36
  * Load configuration, returning a Result instead of throwing.
32
37
  *
@@ -35,7 +40,7 @@ export declare function loadConfigFromPath(configPath: string): Promise<Validate
35
40
  * @param repoRoot - Repository root path
36
41
  * @returns Result<ValidatedConfig<Config>, ConfigError>
37
42
  */
38
- export declare function loadConfigResult(repoRoot: string): Promise<Result<ValidatedConfig<Config>, ConfigError>>;
43
+ export declare function loadConfigResult(repoRoot: string, options?: LoadConfigOptions): Promise<Result<ValidatedConfig<Config>, ConfigError>>;
39
44
  /**
40
45
  * Deep merge two objects, with source taking precedence.
41
46
  * Exported for use in config init validation to match loadConfig behavior.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -22,18 +22,25 @@ import { ConfigSchema } from './config/schemas.js';
22
22
  const ValidatedConfigHelpers = createValidatedConfigHelpers(ConfigSchema);
23
23
  const CONFIG_FILENAME = '.ai-review.yml';
24
24
  const DEFAULTS_PATH = join(import.meta.dirname, '../../config/defaults.ai-review.yml');
25
+ function maybeStripSuppressions(config, options) {
26
+ if (!options?.ignoreSuppressions || !('suppressions' in config)) {
27
+ return config;
28
+ }
29
+ const { suppressions: _ignoredSuppressions, ...rest } = config;
30
+ return rest;
31
+ }
25
32
  /**
26
33
  * Load configuration from the target repository
27
34
  * Falls back to defaults if no config file exists
28
35
  *
29
36
  * @returns ValidatedConfig<Config> - Configuration validated through Zod schema
30
37
  */
31
- export async function loadConfig(repoRoot) {
38
+ export async function loadConfig(repoRoot, options) {
32
39
  const configPath = join(repoRoot, CONFIG_FILENAME);
33
40
  let userConfig = {};
34
41
  if (existsSync(configPath)) {
35
42
  const content = await readFile(configPath, 'utf-8');
36
- userConfig = parseYaml(content);
43
+ userConfig = maybeStripSuppressions(parseYaml(content), options);
37
44
  console.log(`[config] Loaded ${CONFIG_FILENAME} from repository`);
38
45
  }
39
46
  else {
@@ -68,7 +75,7 @@ export async function loadConfig(repoRoot) {
68
75
  * @param configPath - Absolute or relative path to a config file
69
76
  * @returns ValidatedConfig<Config> - Configuration validated through Zod schema
70
77
  */
71
- export async function loadConfigFromPath(configPath) {
78
+ export async function loadConfigFromPath(configPath, options) {
72
79
  let content;
73
80
  try {
74
81
  content = await readFile(configPath, 'utf-8');
@@ -94,7 +101,9 @@ export async function loadConfigFromPath(configPath) {
94
101
  catch (err) {
95
102
  throw new ConfigError(`Failed to parse YAML: ${err instanceof Error ? err.message : 'Unknown error'}`, ConfigErrorCode.YAML_PARSE_ERROR, { path: configPath }, err instanceof Error ? { cause: err } : undefined);
96
103
  }
97
- const userConfig = parsed && typeof parsed === 'object' ? parsed : {};
104
+ const userConfig = parsed && typeof parsed === 'object'
105
+ ? maybeStripSuppressions(parsed, options)
106
+ : {};
98
107
  // Load defaults and merge with user config
99
108
  let defaults = {};
100
109
  if (existsSync(DEFAULTS_PATH)) {
@@ -122,9 +131,9 @@ export async function loadConfigFromPath(configPath) {
122
131
  * @param repoRoot - Repository root path
123
132
  * @returns Result<ValidatedConfig<Config>, ConfigError>
124
133
  */
125
- export async function loadConfigResult(repoRoot) {
134
+ export async function loadConfigResult(repoRoot, options) {
126
135
  try {
127
- const config = await loadConfig(repoRoot);
136
+ const config = await loadConfig(repoRoot, options);
128
137
  return { ok: true, value: config };
129
138
  }
130
139
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAsCH,OAAO,EAQL,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAO3B;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAEhC,CAAC;AAuoBF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,QAAQ,CAIhF;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,oEAAoE;IACpE,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA2Uf"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAsCH,OAAO,EASL,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAU3B;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAEhC,CAAC;AAuoBF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,QAAQ,CAIhF;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,oEAAoE;IACpE,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6af"}