@motivation-labs/crosscheck 0.5.0 → 0.6.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 (81) hide show
  1. package/README.md +24 -7
  2. package/crosscheck.config.example.yml +90 -4
  3. package/dist/__tests__/backtrace.test.d.ts +2 -0
  4. package/dist/__tests__/backtrace.test.d.ts.map +1 -0
  5. package/dist/__tests__/backtrace.test.js +158 -0
  6. package/dist/__tests__/backtrace.test.js.map +1 -0
  7. package/dist/__tests__/optimize.test.js +16 -3
  8. package/dist/__tests__/optimize.test.js.map +1 -1
  9. package/dist/cli.js +8 -2
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/diagnose.d.ts +1 -0
  12. package/dist/commands/diagnose.d.ts.map +1 -1
  13. package/dist/commands/diagnose.js +14 -0
  14. package/dist/commands/diagnose.js.map +1 -1
  15. package/dist/commands/init.d.ts.map +1 -1
  16. package/dist/commands/init.js +55 -18
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/review.d.ts.map +1 -1
  19. package/dist/commands/review.js +11 -5
  20. package/dist/commands/review.js.map +1 -1
  21. package/dist/commands/serve.d.ts +7 -1
  22. package/dist/commands/serve.d.ts.map +1 -1
  23. package/dist/commands/serve.js +109 -16
  24. package/dist/commands/serve.js.map +1 -1
  25. package/dist/commands/status.d.ts.map +1 -1
  26. package/dist/commands/status.js +1 -0
  27. package/dist/commands/status.js.map +1 -1
  28. package/dist/commands/watch.d.ts +7 -1
  29. package/dist/commands/watch.d.ts.map +1 -1
  30. package/dist/commands/watch.js +349 -143
  31. package/dist/commands/watch.js.map +1 -1
  32. package/dist/config/loader.d.ts +8 -0
  33. package/dist/config/loader.d.ts.map +1 -1
  34. package/dist/config/loader.js +143 -0
  35. package/dist/config/loader.js.map +1 -1
  36. package/dist/config/schema.d.ts +445 -27
  37. package/dist/config/schema.d.ts.map +1 -1
  38. package/dist/config/schema.js +70 -7
  39. package/dist/config/schema.js.map +1 -1
  40. package/dist/github/client.d.ts +26 -0
  41. package/dist/github/client.d.ts.map +1 -1
  42. package/dist/github/client.js +153 -0
  43. package/dist/github/client.js.map +1 -1
  44. package/dist/github/detector.d.ts +8 -1
  45. package/dist/github/detector.d.ts.map +1 -1
  46. package/dist/github/detector.js +84 -12
  47. package/dist/github/detector.js.map +1 -1
  48. package/dist/lib/backtrace.d.ts +20 -0
  49. package/dist/lib/backtrace.d.ts.map +1 -0
  50. package/dist/lib/backtrace.js +75 -0
  51. package/dist/lib/backtrace.js.map +1 -0
  52. package/dist/lib/board.d.ts +52 -0
  53. package/dist/lib/board.d.ts.map +1 -0
  54. package/dist/lib/board.js +394 -0
  55. package/dist/lib/board.js.map +1 -0
  56. package/dist/lib/runner.d.ts +10 -1
  57. package/dist/lib/runner.d.ts.map +1 -1
  58. package/dist/lib/runner.js +129 -51
  59. package/dist/lib/runner.js.map +1 -1
  60. package/dist/lib/verdict.d.ts +1 -0
  61. package/dist/lib/verdict.d.ts.map +1 -1
  62. package/dist/lib/verdict.js +27 -7
  63. package/dist/lib/verdict.js.map +1 -1
  64. package/dist/lib/workflow.d.ts +8 -8
  65. package/dist/lib/workflow.d.ts.map +1 -1
  66. package/dist/lib/workflow.js +22 -5
  67. package/dist/lib/workflow.js.map +1 -1
  68. package/dist/reviewers/claude.d.ts +1 -1
  69. package/dist/reviewers/claude.d.ts.map +1 -1
  70. package/dist/reviewers/claude.js +4 -6
  71. package/dist/reviewers/claude.js.map +1 -1
  72. package/dist/reviewers/codex.d.ts +2 -2
  73. package/dist/reviewers/codex.d.ts.map +1 -1
  74. package/dist/reviewers/codex.js +6 -6
  75. package/dist/reviewers/codex.js.map +1 -1
  76. package/dist/reviewers/fix.d.ts +5 -0
  77. package/dist/reviewers/fix.d.ts.map +1 -0
  78. package/dist/reviewers/fix.js +87 -0
  79. package/dist/reviewers/fix.js.map +1 -0
  80. package/get-started.md +190 -21
  81. package/package.json +1 -1
@@ -1,20 +1,40 @@
1
1
  import { z } from 'zod';
2
2
  export declare const VendorConfigSchema: z.ZodObject<{
3
3
  enabled: z.ZodDefault<z.ZodBoolean>;
4
- model: z.ZodOptional<z.ZodString>;
4
+ model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
5
5
  auth: z.ZodDefault<z.ZodEnum<["subscription", "api-key"]>>;
6
6
  effort: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "max"]>>;
7
7
  }, "strip", z.ZodTypeAny, {
8
8
  enabled: boolean;
9
+ model: string | null;
9
10
  auth: "subscription" | "api-key";
10
11
  effort: "low" | "medium" | "high" | "max";
11
- model?: string | undefined;
12
12
  }, {
13
13
  enabled?: boolean | undefined;
14
- model?: string | undefined;
14
+ model?: string | null | undefined;
15
15
  auth?: "subscription" | "api-key" | undefined;
16
16
  effort?: "low" | "medium" | "high" | "max" | undefined;
17
17
  }>;
18
+ export declare const CodexVendorConfigSchema: z.ZodObject<{
19
+ enabled: z.ZodDefault<z.ZodBoolean>;
20
+ model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
21
+ auth: z.ZodDefault<z.ZodEnum<["subscription", "api-key"]>>;
22
+ effort: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "max"]>>;
23
+ } & {
24
+ quality: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ enabled: boolean;
27
+ model: string | null;
28
+ auth: "subscription" | "api-key";
29
+ effort: "low" | "medium" | "high" | "max";
30
+ quality: "low" | "medium" | "high";
31
+ }, {
32
+ enabled?: boolean | undefined;
33
+ model?: string | null | undefined;
34
+ auth?: "subscription" | "api-key" | undefined;
35
+ effort?: "low" | "medium" | "high" | "max" | undefined;
36
+ quality?: "low" | "medium" | "high" | undefined;
37
+ }>;
18
38
  export declare const QualityConfigSchema: z.ZodObject<{
19
39
  tier: z.ZodDefault<z.ZodEnum<["fast", "balanced", "thorough"]>>;
20
40
  focus: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -51,18 +71,27 @@ export declare const RepoConfigSchema: z.ZodObject<{
51
71
  export declare const RoutingConfigSchema: z.ZodObject<{
52
72
  codex_reviews_patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
53
73
  claude_reviews_patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
74
+ claude_branch_prefixes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
75
+ codex_branch_prefixes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
54
76
  allowed_authors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
55
77
  author_routes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["claude", "codex"]>>>;
78
+ fallback_reviewer: z.ZodDefault<z.ZodNullable<z.ZodEnum<["auto", "codex", "claude"]>>>;
56
79
  }, "strip", z.ZodTypeAny, {
57
80
  codex_reviews_patterns: string[];
58
81
  claude_reviews_patterns: string[];
82
+ claude_branch_prefixes: string[];
83
+ codex_branch_prefixes: string[];
59
84
  allowed_authors: string[];
60
85
  author_routes: Record<string, "claude" | "codex">;
86
+ fallback_reviewer: "claude" | "codex" | "auto" | null;
61
87
  }, {
62
88
  codex_reviews_patterns?: string[] | undefined;
63
89
  claude_reviews_patterns?: string[] | undefined;
90
+ claude_branch_prefixes?: string[] | undefined;
91
+ codex_branch_prefixes?: string[] | undefined;
64
92
  allowed_authors?: string[] | undefined;
65
93
  author_routes?: Record<string, "claude" | "codex"> | undefined;
94
+ fallback_reviewer?: "claude" | "codex" | "auto" | null | undefined;
66
95
  }>;
67
96
  export declare const ServerConfigSchema: z.ZodObject<{
68
97
  port: z.ZodDefault<z.ZodNumber>;
@@ -107,66 +136,261 @@ export declare const ImpactConfigSchema: z.ZodObject<{
107
136
  hourly_rate_usd?: number | undefined;
108
137
  defect_cost_usd?: number | undefined;
109
138
  }>;
139
+ export declare const BacktraceConfigSchema: z.ZodObject<{
140
+ enabled: z.ZodDefault<z.ZodBoolean>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ enabled: boolean;
143
+ }, {
144
+ enabled?: boolean | undefined;
145
+ }>;
146
+ export declare const PostReviewDeliverySchema: z.ZodObject<{
147
+ mode: z.ZodDefault<z.ZodEnum<["pull_request", "commit", "comment"]>>;
148
+ pr_title: z.ZodDefault<z.ZodString>;
149
+ label: z.ZodDefault<z.ZodString>;
150
+ }, "strip", z.ZodTypeAny, {
151
+ mode: "pull_request" | "commit" | "comment";
152
+ pr_title: string;
153
+ label: string;
154
+ }, {
155
+ mode?: "pull_request" | "commit" | "comment" | undefined;
156
+ pr_title?: string | undefined;
157
+ label?: string | undefined;
158
+ }>;
159
+ export declare const PostReviewFixSchema: z.ZodObject<{
160
+ enabled: z.ZodDefault<z.ZodBoolean>;
161
+ trigger: z.ZodDefault<z.ZodEnum<["on_issues", "always", "never"]>>;
162
+ min_severity: z.ZodDefault<z.ZodEnum<["error", "warning", "info"]>>;
163
+ fixer: z.ZodDefault<z.ZodEnum<["same-as-author", "same-as-reviewer", "codex", "claude"]>>;
164
+ delivery: z.ZodDefault<z.ZodObject<{
165
+ mode: z.ZodDefault<z.ZodEnum<["pull_request", "commit", "comment"]>>;
166
+ pr_title: z.ZodDefault<z.ZodString>;
167
+ label: z.ZodDefault<z.ZodString>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ mode: "pull_request" | "commit" | "comment";
170
+ pr_title: string;
171
+ label: string;
172
+ }, {
173
+ mode?: "pull_request" | "commit" | "comment" | undefined;
174
+ pr_title?: string | undefined;
175
+ label?: string | undefined;
176
+ }>>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ enabled: boolean;
179
+ trigger: "never" | "on_issues" | "always";
180
+ min_severity: "error" | "warning" | "info";
181
+ fixer: "claude" | "codex" | "same-as-author" | "same-as-reviewer";
182
+ delivery: {
183
+ mode: "pull_request" | "commit" | "comment";
184
+ pr_title: string;
185
+ label: string;
186
+ };
187
+ }, {
188
+ enabled?: boolean | undefined;
189
+ trigger?: "never" | "on_issues" | "always" | undefined;
190
+ min_severity?: "error" | "warning" | "info" | undefined;
191
+ fixer?: "claude" | "codex" | "same-as-author" | "same-as-reviewer" | undefined;
192
+ delivery?: {
193
+ mode?: "pull_request" | "commit" | "comment" | undefined;
194
+ pr_title?: string | undefined;
195
+ label?: string | undefined;
196
+ } | undefined;
197
+ }>;
198
+ export declare const PostReviewConfigSchema: z.ZodObject<{
199
+ auto_fix: z.ZodDefault<z.ZodObject<{
200
+ enabled: z.ZodDefault<z.ZodBoolean>;
201
+ trigger: z.ZodDefault<z.ZodEnum<["on_issues", "always", "never"]>>;
202
+ min_severity: z.ZodDefault<z.ZodEnum<["error", "warning", "info"]>>;
203
+ fixer: z.ZodDefault<z.ZodEnum<["same-as-author", "same-as-reviewer", "codex", "claude"]>>;
204
+ delivery: z.ZodDefault<z.ZodObject<{
205
+ mode: z.ZodDefault<z.ZodEnum<["pull_request", "commit", "comment"]>>;
206
+ pr_title: z.ZodDefault<z.ZodString>;
207
+ label: z.ZodDefault<z.ZodString>;
208
+ }, "strip", z.ZodTypeAny, {
209
+ mode: "pull_request" | "commit" | "comment";
210
+ pr_title: string;
211
+ label: string;
212
+ }, {
213
+ mode?: "pull_request" | "commit" | "comment" | undefined;
214
+ pr_title?: string | undefined;
215
+ label?: string | undefined;
216
+ }>>;
217
+ }, "strip", z.ZodTypeAny, {
218
+ enabled: boolean;
219
+ trigger: "never" | "on_issues" | "always";
220
+ min_severity: "error" | "warning" | "info";
221
+ fixer: "claude" | "codex" | "same-as-author" | "same-as-reviewer";
222
+ delivery: {
223
+ mode: "pull_request" | "commit" | "comment";
224
+ pr_title: string;
225
+ label: string;
226
+ };
227
+ }, {
228
+ enabled?: boolean | undefined;
229
+ trigger?: "never" | "on_issues" | "always" | undefined;
230
+ min_severity?: "error" | "warning" | "info" | undefined;
231
+ fixer?: "claude" | "codex" | "same-as-author" | "same-as-reviewer" | undefined;
232
+ delivery?: {
233
+ mode?: "pull_request" | "commit" | "comment" | undefined;
234
+ pr_title?: string | undefined;
235
+ label?: string | undefined;
236
+ } | undefined;
237
+ }>>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ auto_fix: {
240
+ enabled: boolean;
241
+ trigger: "never" | "on_issues" | "always";
242
+ min_severity: "error" | "warning" | "info";
243
+ fixer: "claude" | "codex" | "same-as-author" | "same-as-reviewer";
244
+ delivery: {
245
+ mode: "pull_request" | "commit" | "comment";
246
+ pr_title: string;
247
+ label: string;
248
+ };
249
+ };
250
+ }, {
251
+ auto_fix?: {
252
+ enabled?: boolean | undefined;
253
+ trigger?: "never" | "on_issues" | "always" | undefined;
254
+ min_severity?: "error" | "warning" | "info" | undefined;
255
+ fixer?: "claude" | "codex" | "same-as-author" | "same-as-reviewer" | undefined;
256
+ delivery?: {
257
+ mode?: "pull_request" | "commit" | "comment" | undefined;
258
+ pr_title?: string | undefined;
259
+ label?: string | undefined;
260
+ } | undefined;
261
+ } | undefined;
262
+ }>;
263
+ export declare const DisplayThemeSchema: z.ZodObject<{
264
+ bar_fill: z.ZodDefault<z.ZodString>;
265
+ bar_empty: z.ZodDefault<z.ZodString>;
266
+ cr_approve: z.ZodDefault<z.ZodString>;
267
+ cr_needs_work: z.ZodDefault<z.ZodString>;
268
+ cr_block: z.ZodDefault<z.ZodString>;
269
+ fix_fill: z.ZodDefault<z.ZodString>;
270
+ }, "strip", z.ZodTypeAny, {
271
+ bar_fill: string;
272
+ bar_empty: string;
273
+ cr_approve: string;
274
+ cr_needs_work: string;
275
+ cr_block: string;
276
+ fix_fill: string;
277
+ }, {
278
+ bar_fill?: string | undefined;
279
+ bar_empty?: string | undefined;
280
+ cr_approve?: string | undefined;
281
+ cr_needs_work?: string | undefined;
282
+ cr_block?: string | undefined;
283
+ fix_fill?: string | undefined;
284
+ }>;
285
+ export declare const DisplayConfigSchema: z.ZodObject<{
286
+ theme: z.ZodDefault<z.ZodObject<{
287
+ bar_fill: z.ZodDefault<z.ZodString>;
288
+ bar_empty: z.ZodDefault<z.ZodString>;
289
+ cr_approve: z.ZodDefault<z.ZodString>;
290
+ cr_needs_work: z.ZodDefault<z.ZodString>;
291
+ cr_block: z.ZodDefault<z.ZodString>;
292
+ fix_fill: z.ZodDefault<z.ZodString>;
293
+ }, "strip", z.ZodTypeAny, {
294
+ bar_fill: string;
295
+ bar_empty: string;
296
+ cr_approve: string;
297
+ cr_needs_work: string;
298
+ cr_block: string;
299
+ fix_fill: string;
300
+ }, {
301
+ bar_fill?: string | undefined;
302
+ bar_empty?: string | undefined;
303
+ cr_approve?: string | undefined;
304
+ cr_needs_work?: string | undefined;
305
+ cr_block?: string | undefined;
306
+ fix_fill?: string | undefined;
307
+ }>>;
308
+ }, "strip", z.ZodTypeAny, {
309
+ theme: {
310
+ bar_fill: string;
311
+ bar_empty: string;
312
+ cr_approve: string;
313
+ cr_needs_work: string;
314
+ cr_block: string;
315
+ fix_fill: string;
316
+ };
317
+ }, {
318
+ theme?: {
319
+ bar_fill?: string | undefined;
320
+ bar_empty?: string | undefined;
321
+ cr_approve?: string | undefined;
322
+ cr_needs_work?: string | undefined;
323
+ cr_block?: string | undefined;
324
+ fix_fill?: string | undefined;
325
+ } | undefined;
326
+ }>;
110
327
  export declare const ConfigSchema: z.ZodObject<{
328
+ deployment: z.ZodOptional<z.ZodEnum<["personal", "team"]>>;
111
329
  mode: z.ZodDefault<z.ZodEnum<["single-vendor", "cross-vendor"]>>;
112
330
  vendors: z.ZodDefault<z.ZodObject<{
113
331
  codex: z.ZodDefault<z.ZodObject<{
114
332
  enabled: z.ZodDefault<z.ZodBoolean>;
115
- model: z.ZodOptional<z.ZodString>;
333
+ model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
116
334
  auth: z.ZodDefault<z.ZodEnum<["subscription", "api-key"]>>;
117
335
  effort: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "max"]>>;
336
+ } & {
337
+ quality: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
118
338
  }, "strip", z.ZodTypeAny, {
119
339
  enabled: boolean;
340
+ model: string | null;
120
341
  auth: "subscription" | "api-key";
121
342
  effort: "low" | "medium" | "high" | "max";
122
- model?: string | undefined;
343
+ quality: "low" | "medium" | "high";
123
344
  }, {
124
345
  enabled?: boolean | undefined;
125
- model?: string | undefined;
346
+ model?: string | null | undefined;
126
347
  auth?: "subscription" | "api-key" | undefined;
127
348
  effort?: "low" | "medium" | "high" | "max" | undefined;
349
+ quality?: "low" | "medium" | "high" | undefined;
128
350
  }>>;
129
351
  claude: z.ZodDefault<z.ZodObject<{
130
352
  enabled: z.ZodDefault<z.ZodBoolean>;
131
- model: z.ZodOptional<z.ZodString>;
353
+ model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
132
354
  auth: z.ZodDefault<z.ZodEnum<["subscription", "api-key"]>>;
133
355
  effort: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "max"]>>;
134
356
  }, "strip", z.ZodTypeAny, {
135
357
  enabled: boolean;
358
+ model: string | null;
136
359
  auth: "subscription" | "api-key";
137
360
  effort: "low" | "medium" | "high" | "max";
138
- model?: string | undefined;
139
361
  }, {
140
362
  enabled?: boolean | undefined;
141
- model?: string | undefined;
363
+ model?: string | null | undefined;
142
364
  auth?: "subscription" | "api-key" | undefined;
143
365
  effort?: "low" | "medium" | "high" | "max" | undefined;
144
366
  }>>;
145
367
  }, "strip", z.ZodTypeAny, {
146
368
  claude: {
147
369
  enabled: boolean;
370
+ model: string | null;
148
371
  auth: "subscription" | "api-key";
149
372
  effort: "low" | "medium" | "high" | "max";
150
- model?: string | undefined;
151
373
  };
152
374
  codex: {
153
375
  enabled: boolean;
376
+ model: string | null;
154
377
  auth: "subscription" | "api-key";
155
378
  effort: "low" | "medium" | "high" | "max";
156
- model?: string | undefined;
379
+ quality: "low" | "medium" | "high";
157
380
  };
158
381
  }, {
159
382
  claude?: {
160
383
  enabled?: boolean | undefined;
161
- model?: string | undefined;
384
+ model?: string | null | undefined;
162
385
  auth?: "subscription" | "api-key" | undefined;
163
386
  effort?: "low" | "medium" | "high" | "max" | undefined;
164
387
  } | undefined;
165
388
  codex?: {
166
389
  enabled?: boolean | undefined;
167
- model?: string | undefined;
390
+ model?: string | null | undefined;
168
391
  auth?: "subscription" | "api-key" | undefined;
169
392
  effort?: "low" | "medium" | "high" | "max" | undefined;
393
+ quality?: "low" | "medium" | "high" | undefined;
170
394
  } | undefined;
171
395
  }>>;
172
396
  quality: z.ZodDefault<z.ZodObject<{
@@ -193,6 +417,7 @@ export declare const ConfigSchema: z.ZodObject<{
193
417
  per_review_usd?: number | undefined;
194
418
  }>>;
195
419
  orgs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
420
+ users: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
196
421
  repos: z.ZodDefault<z.ZodArray<z.ZodObject<{
197
422
  owner: z.ZodString;
198
423
  name: z.ZodString;
@@ -206,18 +431,27 @@ export declare const ConfigSchema: z.ZodObject<{
206
431
  routing: z.ZodDefault<z.ZodObject<{
207
432
  codex_reviews_patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
208
433
  claude_reviews_patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
434
+ claude_branch_prefixes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
435
+ codex_branch_prefixes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
209
436
  allowed_authors: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
210
437
  author_routes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["claude", "codex"]>>>;
438
+ fallback_reviewer: z.ZodDefault<z.ZodNullable<z.ZodEnum<["auto", "codex", "claude"]>>>;
211
439
  }, "strip", z.ZodTypeAny, {
212
440
  codex_reviews_patterns: string[];
213
441
  claude_reviews_patterns: string[];
442
+ claude_branch_prefixes: string[];
443
+ codex_branch_prefixes: string[];
214
444
  allowed_authors: string[];
215
445
  author_routes: Record<string, "claude" | "codex">;
446
+ fallback_reviewer: "claude" | "codex" | "auto" | null;
216
447
  }, {
217
448
  codex_reviews_patterns?: string[] | undefined;
218
449
  claude_reviews_patterns?: string[] | undefined;
450
+ claude_branch_prefixes?: string[] | undefined;
451
+ codex_branch_prefixes?: string[] | undefined;
219
452
  allowed_authors?: string[] | undefined;
220
453
  author_routes?: Record<string, "claude" | "codex"> | undefined;
454
+ fallback_reviewer?: "claude" | "codex" | "auto" | null | undefined;
221
455
  }>>;
222
456
  server: z.ZodDefault<z.ZodObject<{
223
457
  port: z.ZodDefault<z.ZodNumber>;
@@ -262,32 +496,148 @@ export declare const ConfigSchema: z.ZodObject<{
262
496
  hourly_rate_usd?: number | undefined;
263
497
  defect_cost_usd?: number | undefined;
264
498
  }>>;
499
+ backtrace: z.ZodDefault<z.ZodObject<{
500
+ enabled: z.ZodDefault<z.ZodBoolean>;
501
+ }, "strip", z.ZodTypeAny, {
502
+ enabled: boolean;
503
+ }, {
504
+ enabled?: boolean | undefined;
505
+ }>>;
506
+ post_review: z.ZodDefault<z.ZodObject<{
507
+ auto_fix: z.ZodDefault<z.ZodObject<{
508
+ enabled: z.ZodDefault<z.ZodBoolean>;
509
+ trigger: z.ZodDefault<z.ZodEnum<["on_issues", "always", "never"]>>;
510
+ min_severity: z.ZodDefault<z.ZodEnum<["error", "warning", "info"]>>;
511
+ fixer: z.ZodDefault<z.ZodEnum<["same-as-author", "same-as-reviewer", "codex", "claude"]>>;
512
+ delivery: z.ZodDefault<z.ZodObject<{
513
+ mode: z.ZodDefault<z.ZodEnum<["pull_request", "commit", "comment"]>>;
514
+ pr_title: z.ZodDefault<z.ZodString>;
515
+ label: z.ZodDefault<z.ZodString>;
516
+ }, "strip", z.ZodTypeAny, {
517
+ mode: "pull_request" | "commit" | "comment";
518
+ pr_title: string;
519
+ label: string;
520
+ }, {
521
+ mode?: "pull_request" | "commit" | "comment" | undefined;
522
+ pr_title?: string | undefined;
523
+ label?: string | undefined;
524
+ }>>;
525
+ }, "strip", z.ZodTypeAny, {
526
+ enabled: boolean;
527
+ trigger: "never" | "on_issues" | "always";
528
+ min_severity: "error" | "warning" | "info";
529
+ fixer: "claude" | "codex" | "same-as-author" | "same-as-reviewer";
530
+ delivery: {
531
+ mode: "pull_request" | "commit" | "comment";
532
+ pr_title: string;
533
+ label: string;
534
+ };
535
+ }, {
536
+ enabled?: boolean | undefined;
537
+ trigger?: "never" | "on_issues" | "always" | undefined;
538
+ min_severity?: "error" | "warning" | "info" | undefined;
539
+ fixer?: "claude" | "codex" | "same-as-author" | "same-as-reviewer" | undefined;
540
+ delivery?: {
541
+ mode?: "pull_request" | "commit" | "comment" | undefined;
542
+ pr_title?: string | undefined;
543
+ label?: string | undefined;
544
+ } | undefined;
545
+ }>>;
546
+ }, "strip", z.ZodTypeAny, {
547
+ auto_fix: {
548
+ enabled: boolean;
549
+ trigger: "never" | "on_issues" | "always";
550
+ min_severity: "error" | "warning" | "info";
551
+ fixer: "claude" | "codex" | "same-as-author" | "same-as-reviewer";
552
+ delivery: {
553
+ mode: "pull_request" | "commit" | "comment";
554
+ pr_title: string;
555
+ label: string;
556
+ };
557
+ };
558
+ }, {
559
+ auto_fix?: {
560
+ enabled?: boolean | undefined;
561
+ trigger?: "never" | "on_issues" | "always" | undefined;
562
+ min_severity?: "error" | "warning" | "info" | undefined;
563
+ fixer?: "claude" | "codex" | "same-as-author" | "same-as-reviewer" | undefined;
564
+ delivery?: {
565
+ mode?: "pull_request" | "commit" | "comment" | undefined;
566
+ pr_title?: string | undefined;
567
+ label?: string | undefined;
568
+ } | undefined;
569
+ } | undefined;
570
+ }>>;
571
+ display: z.ZodDefault<z.ZodObject<{
572
+ theme: z.ZodDefault<z.ZodObject<{
573
+ bar_fill: z.ZodDefault<z.ZodString>;
574
+ bar_empty: z.ZodDefault<z.ZodString>;
575
+ cr_approve: z.ZodDefault<z.ZodString>;
576
+ cr_needs_work: z.ZodDefault<z.ZodString>;
577
+ cr_block: z.ZodDefault<z.ZodString>;
578
+ fix_fill: z.ZodDefault<z.ZodString>;
579
+ }, "strip", z.ZodTypeAny, {
580
+ bar_fill: string;
581
+ bar_empty: string;
582
+ cr_approve: string;
583
+ cr_needs_work: string;
584
+ cr_block: string;
585
+ fix_fill: string;
586
+ }, {
587
+ bar_fill?: string | undefined;
588
+ bar_empty?: string | undefined;
589
+ cr_approve?: string | undefined;
590
+ cr_needs_work?: string | undefined;
591
+ cr_block?: string | undefined;
592
+ fix_fill?: string | undefined;
593
+ }>>;
594
+ }, "strip", z.ZodTypeAny, {
595
+ theme: {
596
+ bar_fill: string;
597
+ bar_empty: string;
598
+ cr_approve: string;
599
+ cr_needs_work: string;
600
+ cr_block: string;
601
+ fix_fill: string;
602
+ };
603
+ }, {
604
+ theme?: {
605
+ bar_fill?: string | undefined;
606
+ bar_empty?: string | undefined;
607
+ cr_approve?: string | undefined;
608
+ cr_needs_work?: string | undefined;
609
+ cr_block?: string | undefined;
610
+ fix_fill?: string | undefined;
611
+ } | undefined;
612
+ }>>;
265
613
  }, "strip", z.ZodTypeAny, {
614
+ quality: {
615
+ tier: "fast" | "balanced" | "thorough";
616
+ focus: string[];
617
+ custom_prompt?: string | undefined;
618
+ };
266
619
  mode: "single-vendor" | "cross-vendor";
267
620
  vendors: {
268
621
  claude: {
269
622
  enabled: boolean;
623
+ model: string | null;
270
624
  auth: "subscription" | "api-key";
271
625
  effort: "low" | "medium" | "high" | "max";
272
- model?: string | undefined;
273
626
  };
274
627
  codex: {
275
628
  enabled: boolean;
629
+ model: string | null;
276
630
  auth: "subscription" | "api-key";
277
631
  effort: "low" | "medium" | "high" | "max";
278
- model?: string | undefined;
632
+ quality: "low" | "medium" | "high";
279
633
  };
280
634
  };
281
- quality: {
282
- tier: "fast" | "balanced" | "thorough";
283
- focus: string[];
284
- custom_prompt?: string | undefined;
285
- };
286
635
  budget: {
287
636
  codex_monthly_usd: number | null;
288
637
  per_review_usd: number;
289
638
  };
290
639
  orgs: string[];
640
+ users: string[];
291
641
  repos: {
292
642
  owner: string;
293
643
  name: string;
@@ -295,8 +645,11 @@ export declare const ConfigSchema: z.ZodObject<{
295
645
  routing: {
296
646
  codex_reviews_patterns: string[];
297
647
  claude_reviews_patterns: string[];
648
+ claude_branch_prefixes: string[];
649
+ codex_branch_prefixes: string[];
298
650
  allowed_authors: string[];
299
651
  author_routes: Record<string, "claude" | "codex">;
652
+ fallback_reviewer: "claude" | "codex" | "auto" | null;
300
653
  };
301
654
  server: {
302
655
  port: number;
@@ -315,32 +668,62 @@ export declare const ConfigSchema: z.ZodObject<{
315
668
  hourly_rate_usd: number;
316
669
  defect_cost_usd: number;
317
670
  };
671
+ backtrace: {
672
+ enabled: boolean;
673
+ };
674
+ post_review: {
675
+ auto_fix: {
676
+ enabled: boolean;
677
+ trigger: "never" | "on_issues" | "always";
678
+ min_severity: "error" | "warning" | "info";
679
+ fixer: "claude" | "codex" | "same-as-author" | "same-as-reviewer";
680
+ delivery: {
681
+ mode: "pull_request" | "commit" | "comment";
682
+ pr_title: string;
683
+ label: string;
684
+ };
685
+ };
686
+ };
687
+ display: {
688
+ theme: {
689
+ bar_fill: string;
690
+ bar_empty: string;
691
+ cr_approve: string;
692
+ cr_needs_work: string;
693
+ cr_block: string;
694
+ fix_fill: string;
695
+ };
696
+ };
697
+ deployment?: "personal" | "team" | undefined;
318
698
  }, {
699
+ quality?: {
700
+ tier?: "fast" | "balanced" | "thorough" | undefined;
701
+ focus?: string[] | undefined;
702
+ custom_prompt?: string | undefined;
703
+ } | undefined;
319
704
  mode?: "single-vendor" | "cross-vendor" | undefined;
705
+ deployment?: "personal" | "team" | undefined;
320
706
  vendors?: {
321
707
  claude?: {
322
708
  enabled?: boolean | undefined;
323
- model?: string | undefined;
709
+ model?: string | null | undefined;
324
710
  auth?: "subscription" | "api-key" | undefined;
325
711
  effort?: "low" | "medium" | "high" | "max" | undefined;
326
712
  } | undefined;
327
713
  codex?: {
328
714
  enabled?: boolean | undefined;
329
- model?: string | undefined;
715
+ model?: string | null | undefined;
330
716
  auth?: "subscription" | "api-key" | undefined;
331
717
  effort?: "low" | "medium" | "high" | "max" | undefined;
718
+ quality?: "low" | "medium" | "high" | undefined;
332
719
  } | undefined;
333
720
  } | undefined;
334
- quality?: {
335
- tier?: "fast" | "balanced" | "thorough" | undefined;
336
- focus?: string[] | undefined;
337
- custom_prompt?: string | undefined;
338
- } | undefined;
339
721
  budget?: {
340
722
  codex_monthly_usd?: number | null | undefined;
341
723
  per_review_usd?: number | undefined;
342
724
  } | undefined;
343
725
  orgs?: string[] | undefined;
726
+ users?: string[] | undefined;
344
727
  repos?: {
345
728
  owner: string;
346
729
  name: string;
@@ -348,8 +731,11 @@ export declare const ConfigSchema: z.ZodObject<{
348
731
  routing?: {
349
732
  codex_reviews_patterns?: string[] | undefined;
350
733
  claude_reviews_patterns?: string[] | undefined;
734
+ claude_branch_prefixes?: string[] | undefined;
735
+ codex_branch_prefixes?: string[] | undefined;
351
736
  allowed_authors?: string[] | undefined;
352
737
  author_routes?: Record<string, "claude" | "codex"> | undefined;
738
+ fallback_reviewer?: "claude" | "codex" | "auto" | null | undefined;
353
739
  } | undefined;
354
740
  server?: {
355
741
  port?: number | undefined;
@@ -368,11 +754,43 @@ export declare const ConfigSchema: z.ZodObject<{
368
754
  hourly_rate_usd?: number | undefined;
369
755
  defect_cost_usd?: number | undefined;
370
756
  } | undefined;
757
+ backtrace?: {
758
+ enabled?: boolean | undefined;
759
+ } | undefined;
760
+ post_review?: {
761
+ auto_fix?: {
762
+ enabled?: boolean | undefined;
763
+ trigger?: "never" | "on_issues" | "always" | undefined;
764
+ min_severity?: "error" | "warning" | "info" | undefined;
765
+ fixer?: "claude" | "codex" | "same-as-author" | "same-as-reviewer" | undefined;
766
+ delivery?: {
767
+ mode?: "pull_request" | "commit" | "comment" | undefined;
768
+ pr_title?: string | undefined;
769
+ label?: string | undefined;
770
+ } | undefined;
771
+ } | undefined;
772
+ } | undefined;
773
+ display?: {
774
+ theme?: {
775
+ bar_fill?: string | undefined;
776
+ bar_empty?: string | undefined;
777
+ cr_approve?: string | undefined;
778
+ cr_needs_work?: string | undefined;
779
+ cr_block?: string | undefined;
780
+ fix_fill?: string | undefined;
781
+ } | undefined;
782
+ } | undefined;
371
783
  }>;
372
784
  export type Config = z.infer<typeof ConfigSchema>;
373
785
  export type VendorConfig = z.infer<typeof VendorConfigSchema>;
786
+ export type CodexVendorConfig = z.infer<typeof CodexVendorConfigSchema>;
374
787
  export type QualityConfig = z.infer<typeof QualityConfigSchema>;
375
788
  export type LogsConfig = z.infer<typeof LogsConfigSchema>;
376
789
  export type TunnelConfig = z.infer<typeof TunnelConfigSchema>;
377
790
  export type ImpactConfig = z.infer<typeof ImpactConfigSchema>;
791
+ export type PostReviewConfig = z.infer<typeof PostReviewConfigSchema>;
792
+ export type PostReviewFixConfig = z.infer<typeof PostReviewFixSchema>;
793
+ export type DisplayConfig = z.infer<typeof DisplayConfigSchema>;
794
+ export type DisplayTheme = z.infer<typeof DisplayThemeSchema>;
795
+ export type BacktraceConfig = z.infer<typeof BacktraceConfigSchema>;
378
796
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAgB9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAM7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}