@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.
- package/README.md +16 -9
- package/dist/benchmark/adapter.d.ts.map +1 -1
- package/dist/benchmark/adapter.js +4 -2
- package/dist/benchmark/adapter.js.map +1 -1
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +26 -2
- package/dist/cache/store.js.map +1 -1
- package/dist/cli/commands/local-review.d.ts +13 -2
- package/dist/cli/commands/local-review.d.ts.map +1 -1
- package/dist/cli/commands/local-review.js +164 -33
- package/dist/cli/commands/local-review.js.map +1 -1
- package/dist/cli/execution-plan.d.ts +118 -0
- package/dist/cli/execution-plan.d.ts.map +1 -0
- package/dist/cli/execution-plan.js +260 -0
- package/dist/cli/execution-plan.js.map +1 -0
- package/dist/config/schemas.d.ts +103 -21
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/schemas.js +177 -10
- package/dist/config/schemas.js.map +1 -1
- package/dist/config.d.ts +8 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -6
- package/dist/config.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +79 -8
- package/dist/main.js.map +1 -1
- package/dist/phases/execute.d.ts +3 -0
- package/dist/phases/execute.d.ts.map +1 -1
- package/dist/phases/execute.js +17 -5
- package/dist/phases/execute.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +1 -1
- package/dist/phases/index.js.map +1 -1
- package/dist/phases/report.d.ts +28 -4
- package/dist/phases/report.d.ts.map +1 -1
- package/dist/phases/report.js +86 -36
- package/dist/phases/report.js.map +1 -1
- package/dist/report/ado.d.ts +2 -1
- package/dist/report/ado.d.ts.map +1 -1
- package/dist/report/ado.js +9 -5
- package/dist/report/ado.js.map +1 -1
- package/dist/report/finding-validator.d.ts +1 -4
- package/dist/report/finding-validator.d.ts.map +1 -1
- package/dist/report/finding-validator.js +23 -54
- package/dist/report/finding-validator.js.map +1 -1
- package/dist/report/framework-pattern-filter.d.ts +1 -1
- package/dist/report/framework-pattern-filter.d.ts.map +1 -1
- package/dist/report/framework-pattern-filter.js +114 -99
- package/dist/report/framework-pattern-filter.js.map +1 -1
- package/dist/report/github.d.ts +2 -1
- package/dist/report/github.d.ts.map +1 -1
- package/dist/report/github.js +9 -5
- package/dist/report/github.js.map +1 -1
- package/dist/report/terminal.d.ts +42 -4
- package/dist/report/terminal.d.ts.map +1 -1
- package/dist/report/terminal.js +36 -8
- package/dist/report/terminal.js.map +1 -1
- package/dist/report/user-suppressions.d.ts +74 -0
- package/dist/report/user-suppressions.d.ts.map +1 -0
- package/dist/report/user-suppressions.js +264 -0
- package/dist/report/user-suppressions.js.map +1 -0
- package/package.json +2 -1
package/dist/config/schemas.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/config/schemas.js
CHANGED
|
@@ -6,16 +6,95 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
import { ControlFlowConfigSchema } from '../agents/control_flow/types.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;
|
|
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.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,WAAW,EAAgC,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,KAAK,eAAe,EAAgC,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EACL,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,OAAO,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAK9E,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAK5D;;;;;GAKG;AACH,wBAAsB,UAAU,
|
|
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'
|
|
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) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAwB,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAe,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAErD,yEAAyE;AACzE,OAAO,EACL,YAAY,GAMb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,8BAA8B,EAC9B,kCAAkC,EAClC,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,sCAAsC;AACtC,OAAO,EAKL,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAA6B,MAAM,qBAAqB,CAAC;AAE9E,iDAAiD;AACjD,MAAM,sBAAsB,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAC;AAK1E,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAsCH,OAAO,
|
|
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"}
|