@zigrivers/mmr 1.3.0 → 1.4.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 (126) hide show
  1. package/README.md +422 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +4 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/ack.d.ts +11 -0
  6. package/dist/commands/ack.d.ts.map +1 -0
  7. package/dist/commands/ack.js +123 -0
  8. package/dist/commands/ack.js.map +1 -0
  9. package/dist/commands/config.d.ts +5 -0
  10. package/dist/commands/config.d.ts.map +1 -1
  11. package/dist/commands/config.js +248 -14
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/jobs.d.ts.map +1 -1
  14. package/dist/commands/jobs.js +3 -4
  15. package/dist/commands/jobs.js.map +1 -1
  16. package/dist/commands/reconcile.d.ts.map +1 -1
  17. package/dist/commands/reconcile.js +12 -5
  18. package/dist/commands/reconcile.js.map +1 -1
  19. package/dist/commands/results.d.ts.map +1 -1
  20. package/dist/commands/results.js +13 -5
  21. package/dist/commands/results.js.map +1 -1
  22. package/dist/commands/review.d.ts +25 -0
  23. package/dist/commands/review.d.ts.map +1 -1
  24. package/dist/commands/review.js +457 -44
  25. package/dist/commands/review.js.map +1 -1
  26. package/dist/commands/sessions.d.ts +58 -0
  27. package/dist/commands/sessions.d.ts.map +1 -0
  28. package/dist/commands/sessions.js +266 -0
  29. package/dist/commands/sessions.js.map +1 -0
  30. package/dist/commands/status.d.ts.map +1 -1
  31. package/dist/commands/status.js +2 -3
  32. package/dist/commands/status.js.map +1 -1
  33. package/dist/config/defaults.d.ts +2 -2
  34. package/dist/config/defaults.d.ts.map +1 -1
  35. package/dist/config/defaults.js +66 -0
  36. package/dist/config/defaults.js.map +1 -1
  37. package/dist/config/loader.d.ts +22 -0
  38. package/dist/config/loader.d.ts.map +1 -1
  39. package/dist/config/loader.js +279 -36
  40. package/dist/config/loader.js.map +1 -1
  41. package/dist/config/schema.d.ts +869 -53
  42. package/dist/config/schema.d.ts.map +1 -1
  43. package/dist/config/schema.js +151 -4
  44. package/dist/config/schema.js.map +1 -1
  45. package/dist/core/ack-store.d.ts +109 -0
  46. package/dist/core/ack-store.d.ts.map +1 -0
  47. package/dist/core/ack-store.js +363 -0
  48. package/dist/core/ack-store.js.map +1 -0
  49. package/dist/core/auth.d.ts +10 -1
  50. package/dist/core/auth.d.ts.map +1 -1
  51. package/dist/core/auth.js +65 -2
  52. package/dist/core/auth.js.map +1 -1
  53. package/dist/core/compensator.d.ts +32 -4
  54. package/dist/core/compensator.d.ts.map +1 -1
  55. package/dist/core/compensator.js +118 -15
  56. package/dist/core/compensator.js.map +1 -1
  57. package/dist/core/diff-introspect.d.ts +21 -0
  58. package/dist/core/diff-introspect.d.ts.map +1 -0
  59. package/dist/core/diff-introspect.js +42 -0
  60. package/dist/core/diff-introspect.js.map +1 -0
  61. package/dist/core/dispatcher.d.ts +7 -0
  62. package/dist/core/dispatcher.d.ts.map +1 -1
  63. package/dist/core/dispatcher.js +21 -3
  64. package/dist/core/dispatcher.js.map +1 -1
  65. package/dist/core/git-show.d.ts +31 -0
  66. package/dist/core/git-show.d.ts.map +1 -0
  67. package/dist/core/git-show.js +72 -0
  68. package/dist/core/git-show.js.map +1 -0
  69. package/dist/core/http-dispatcher.d.ts +20 -0
  70. package/dist/core/http-dispatcher.d.ts.map +1 -0
  71. package/dist/core/http-dispatcher.js +125 -0
  72. package/dist/core/http-dispatcher.js.map +1 -0
  73. package/dist/core/job-store.d.ts +7 -1
  74. package/dist/core/job-store.d.ts.map +1 -1
  75. package/dist/core/job-store.js +21 -1
  76. package/dist/core/job-store.js.map +1 -1
  77. package/dist/core/jsonpath.d.ts +15 -0
  78. package/dist/core/jsonpath.d.ts.map +1 -0
  79. package/dist/core/jsonpath.js +63 -0
  80. package/dist/core/jsonpath.js.map +1 -0
  81. package/dist/core/oss-examples.d.ts +18 -0
  82. package/dist/core/oss-examples.d.ts.map +1 -0
  83. package/dist/core/oss-examples.js +66 -0
  84. package/dist/core/oss-examples.js.map +1 -0
  85. package/dist/core/parser.d.ts +8 -3
  86. package/dist/core/parser.d.ts.map +1 -1
  87. package/dist/core/parser.js +157 -6
  88. package/dist/core/parser.js.map +1 -1
  89. package/dist/core/project-root.d.ts +10 -0
  90. package/dist/core/project-root.d.ts.map +1 -0
  91. package/dist/core/project-root.js +23 -0
  92. package/dist/core/project-root.js.map +1 -0
  93. package/dist/core/reconciler.d.ts +1 -1
  94. package/dist/core/reconciler.d.ts.map +1 -1
  95. package/dist/core/reconciler.js +100 -18
  96. package/dist/core/reconciler.js.map +1 -1
  97. package/dist/core/redact.d.ts +17 -0
  98. package/dist/core/redact.d.ts.map +1 -0
  99. package/dist/core/redact.js +140 -0
  100. package/dist/core/redact.js.map +1 -0
  101. package/dist/core/results-pipeline.d.ts +8 -2
  102. package/dist/core/results-pipeline.d.ts.map +1 -1
  103. package/dist/core/results-pipeline.js +50 -3
  104. package/dist/core/results-pipeline.js.map +1 -1
  105. package/dist/core/runtime-probe.d.ts +14 -0
  106. package/dist/core/runtime-probe.d.ts.map +1 -0
  107. package/dist/core/runtime-probe.js +57 -0
  108. package/dist/core/runtime-probe.js.map +1 -0
  109. package/dist/core/stable-id.d.ts +19 -0
  110. package/dist/core/stable-id.d.ts.map +1 -0
  111. package/dist/core/stable-id.js +148 -0
  112. package/dist/core/stable-id.js.map +1 -0
  113. package/dist/core/trust-mode.d.ts +29 -0
  114. package/dist/core/trust-mode.d.ts.map +1 -0
  115. package/dist/core/trust-mode.js +103 -0
  116. package/dist/core/trust-mode.js.map +1 -0
  117. package/dist/formatters/markdown.d.ts.map +1 -1
  118. package/dist/formatters/markdown.js +9 -0
  119. package/dist/formatters/markdown.js.map +1 -1
  120. package/dist/formatters/text.d.ts.map +1 -1
  121. package/dist/formatters/text.js +9 -0
  122. package/dist/formatters/text.js.map +1 -1
  123. package/dist/types.d.ts +44 -1
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/types.js.map +1 -1
  126. package/package.json +2 -2
@@ -1,12 +1,136 @@
1
1
  import { z } from 'zod';
2
2
  export declare const Severity: z.ZodEnum<["P0", "P1", "P2", "P3"]>;
3
3
  export declare const OutputFormat: z.ZodEnum<["json", "text", "markdown"]>;
4
- declare const ChannelConfigSchema: z.ZodObject<{
4
+ declare const HttpAuthConfigSchema: z.ZodObject<{
5
+ check_endpoint: z.ZodOptional<z.ZodString>;
6
+ check_method: z.ZodDefault<z.ZodString>;
7
+ check_status_ok: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
8
+ timeout: z.ZodDefault<z.ZodNumber>;
9
+ recovery: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ timeout: number;
12
+ check_method: string;
13
+ check_status_ok: number[];
14
+ recovery?: string | undefined;
15
+ check_endpoint?: string | undefined;
16
+ }, {
17
+ timeout?: number | undefined;
18
+ recovery?: string | undefined;
19
+ check_endpoint?: string | undefined;
20
+ check_method?: string | undefined;
21
+ check_status_ok?: number[] | undefined;
22
+ }>;
23
+ /**
24
+ * Derive the auth-probe URL from an openai-chat endpoint by replacing a
25
+ * trailing `/chat/completions` with `/models` (handles both `.../v1/chat/...`
26
+ * and bare `.../chat/...` shapes). Returns undefined when there is no trailing
27
+ * `/chat/completions` — callers then require an explicit `auth.check_endpoint`.
28
+ */
29
+ export declare function deriveProbeUrl(endpoint: string): string | undefined;
30
+ type SeverityConfig = z.infer<typeof Severity>;
31
+ export interface RegexFindingsParserConfig {
32
+ kind: 'regex-findings';
33
+ pattern: string;
34
+ flags?: string;
35
+ default_severity?: SeverityConfig;
36
+ fields: {
37
+ id?: number;
38
+ category?: number;
39
+ severity?: number;
40
+ location: number;
41
+ description: number;
42
+ suggestion?: number;
43
+ };
44
+ }
45
+ export interface UnwrapJsonpathParserConfig {
46
+ kind: 'unwrap-jsonpath';
47
+ wrap: string;
48
+ then?: OutputParserConfig;
49
+ }
50
+ export type OutputParserConfig = string | UnwrapJsonpathParserConfig | RegexFindingsParserConfig;
51
+ export declare const RegexFindingsParserSchema: z.ZodObject<{
52
+ kind: z.ZodLiteral<"regex-findings">;
53
+ pattern: z.ZodString;
54
+ flags: z.ZodDefault<z.ZodString>;
55
+ default_severity: z.ZodDefault<z.ZodEnum<["P0", "P1", "P2", "P3"]>>;
56
+ fields: z.ZodObject<{
57
+ id: z.ZodOptional<z.ZodNumber>;
58
+ category: z.ZodOptional<z.ZodNumber>;
59
+ severity: z.ZodOptional<z.ZodNumber>;
60
+ location: z.ZodNumber;
61
+ description: z.ZodNumber;
62
+ suggestion: z.ZodOptional<z.ZodNumber>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ location: number;
65
+ description: number;
66
+ id?: number | undefined;
67
+ category?: number | undefined;
68
+ severity?: number | undefined;
69
+ suggestion?: number | undefined;
70
+ }, {
71
+ location: number;
72
+ description: number;
73
+ id?: number | undefined;
74
+ category?: number | undefined;
75
+ severity?: number | undefined;
76
+ suggestion?: number | undefined;
77
+ }>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ fields: {
80
+ location: number;
81
+ description: number;
82
+ id?: number | undefined;
83
+ category?: number | undefined;
84
+ severity?: number | undefined;
85
+ suggestion?: number | undefined;
86
+ };
87
+ kind: "regex-findings";
88
+ pattern: string;
89
+ flags: string;
90
+ default_severity: "P0" | "P1" | "P2" | "P3";
91
+ }, {
92
+ fields: {
93
+ location: number;
94
+ description: number;
95
+ id?: number | undefined;
96
+ category?: number | undefined;
97
+ severity?: number | undefined;
98
+ suggestion?: number | undefined;
99
+ };
100
+ kind: "regex-findings";
101
+ pattern: string;
102
+ flags?: string | undefined;
103
+ default_severity?: "P0" | "P1" | "P2" | "P3" | undefined;
104
+ }>;
105
+ export declare const UnwrapJsonpathParserSchema: z.ZodObject<{
106
+ kind: z.ZodLiteral<"unwrap-jsonpath">;
107
+ wrap: z.ZodString;
108
+ then: z.ZodDefault<z.ZodLazy<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ kind: "unwrap-jsonpath";
111
+ wrap: string;
112
+ then: OutputParserConfig;
113
+ }, {
114
+ kind: "unwrap-jsonpath";
115
+ wrap: string;
116
+ then?: OutputParserConfig | undefined;
117
+ }>;
118
+ export declare const OutputParserSchema: z.ZodType<OutputParserConfig>;
119
+ declare const SubprocessChannelSchema: z.ZodObject<{
5
120
  enabled: z.ZodDefault<z.ZodBoolean>;
6
- command: z.ZodString;
121
+ command: z.ZodOptional<z.ZodString>;
7
122
  flags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
8
123
  env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
9
- auth: z.ZodObject<{
124
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
125
+ prompt_wrapper: z.ZodDefault<z.ZodString>;
126
+ prompt_delivery: z.ZodOptional<z.ZodEnum<["stdin", "prompt-file"]>>;
127
+ output_parser: z.ZodDefault<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>;
128
+ stderr: z.ZodDefault<z.ZodEnum<["suppress", "capture", "passthrough"]>>;
129
+ timeout: z.ZodOptional<z.ZodNumber>;
130
+ extends: z.ZodOptional<z.ZodString>;
131
+ abstract: z.ZodDefault<z.ZodBoolean>;
132
+ kind: z.ZodLiteral<"subprocess">;
133
+ auth: z.ZodOptional<z.ZodObject<{
10
134
  check: z.ZodString;
11
135
  timeout: z.ZodDefault<z.ZodNumber>;
12
136
  failure_exit_codes: z.ZodArray<z.ZodNumber, "many">;
@@ -21,42 +145,417 @@ declare const ChannelConfigSchema: z.ZodObject<{
21
145
  failure_exit_codes: number[];
22
146
  recovery: string;
23
147
  timeout?: number | undefined;
24
- }>;
148
+ }>>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ kind: "subprocess";
151
+ flags: string[];
152
+ enabled: boolean;
153
+ env: Record<string, string>;
154
+ prompt_wrapper: string;
155
+ output_parser: OutputParserConfig;
156
+ stderr: "passthrough" | "suppress" | "capture";
157
+ abstract: boolean;
158
+ timeout?: number | undefined;
159
+ auth?: {
160
+ check: string;
161
+ timeout: number;
162
+ failure_exit_codes: number[];
163
+ recovery: string;
164
+ } | undefined;
165
+ command?: string | undefined;
166
+ headers?: Record<string, string> | undefined;
167
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
168
+ extends?: string | undefined;
169
+ }, {
170
+ kind: "subprocess";
171
+ timeout?: number | undefined;
172
+ flags?: string[] | undefined;
173
+ auth?: {
174
+ check: string;
175
+ failure_exit_codes: number[];
176
+ recovery: string;
177
+ timeout?: number | undefined;
178
+ } | undefined;
179
+ enabled?: boolean | undefined;
180
+ command?: string | undefined;
181
+ env?: Record<string, string> | undefined;
182
+ headers?: Record<string, string> | undefined;
183
+ prompt_wrapper?: string | undefined;
184
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
185
+ output_parser?: OutputParserConfig | undefined;
186
+ stderr?: "passthrough" | "suppress" | "capture" | undefined;
187
+ extends?: string | undefined;
188
+ abstract?: boolean | undefined;
189
+ }>;
190
+ declare const HttpChannelSchema: z.ZodObject<{
191
+ enabled: z.ZodDefault<z.ZodBoolean>;
192
+ command: z.ZodOptional<z.ZodString>;
193
+ flags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
194
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
195
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
25
196
  prompt_wrapper: z.ZodDefault<z.ZodString>;
26
- output_parser: z.ZodDefault<z.ZodString>;
197
+ prompt_delivery: z.ZodOptional<z.ZodEnum<["stdin", "prompt-file"]>>;
198
+ output_parser: z.ZodDefault<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>;
27
199
  stderr: z.ZodDefault<z.ZodEnum<["suppress", "capture", "passthrough"]>>;
28
200
  timeout: z.ZodOptional<z.ZodNumber>;
201
+ extends: z.ZodOptional<z.ZodString>;
202
+ abstract: z.ZodDefault<z.ZodBoolean>;
203
+ kind: z.ZodLiteral<"http">;
204
+ endpoint: z.ZodString;
205
+ model: z.ZodString;
206
+ endpoint_convention: z.ZodLiteral<"openai-chat">;
207
+ api_key_env: z.ZodOptional<z.ZodString>;
208
+ api_key_header: z.ZodDefault<z.ZodString>;
209
+ api_key_prefix: z.ZodDefault<z.ZodString>;
210
+ auth: z.ZodDefault<z.ZodObject<{
211
+ check_endpoint: z.ZodOptional<z.ZodString>;
212
+ check_method: z.ZodDefault<z.ZodString>;
213
+ check_status_ok: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
214
+ timeout: z.ZodDefault<z.ZodNumber>;
215
+ recovery: z.ZodOptional<z.ZodString>;
216
+ }, "strip", z.ZodTypeAny, {
217
+ timeout: number;
218
+ check_method: string;
219
+ check_status_ok: number[];
220
+ recovery?: string | undefined;
221
+ check_endpoint?: string | undefined;
222
+ }, {
223
+ timeout?: number | undefined;
224
+ recovery?: string | undefined;
225
+ check_endpoint?: string | undefined;
226
+ check_method?: string | undefined;
227
+ check_status_ok?: number[] | undefined;
228
+ }>>;
29
229
  }, "strip", z.ZodTypeAny, {
30
- enabled: boolean;
31
- command: string;
230
+ kind: "http";
32
231
  flags: string[];
33
- env: Record<string, string>;
34
232
  auth: {
233
+ timeout: number;
234
+ check_method: string;
235
+ check_status_ok: number[];
236
+ recovery?: string | undefined;
237
+ check_endpoint?: string | undefined;
238
+ };
239
+ enabled: boolean;
240
+ env: Record<string, string>;
241
+ prompt_wrapper: string;
242
+ output_parser: OutputParserConfig;
243
+ stderr: "passthrough" | "suppress" | "capture";
244
+ abstract: boolean;
245
+ endpoint: string;
246
+ model: string;
247
+ endpoint_convention: "openai-chat";
248
+ api_key_header: string;
249
+ api_key_prefix: string;
250
+ timeout?: number | undefined;
251
+ command?: string | undefined;
252
+ headers?: Record<string, string> | undefined;
253
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
254
+ extends?: string | undefined;
255
+ api_key_env?: string | undefined;
256
+ }, {
257
+ kind: "http";
258
+ endpoint: string;
259
+ model: string;
260
+ endpoint_convention: "openai-chat";
261
+ timeout?: number | undefined;
262
+ flags?: string[] | undefined;
263
+ auth?: {
264
+ timeout?: number | undefined;
265
+ recovery?: string | undefined;
266
+ check_endpoint?: string | undefined;
267
+ check_method?: string | undefined;
268
+ check_status_ok?: number[] | undefined;
269
+ } | undefined;
270
+ enabled?: boolean | undefined;
271
+ command?: string | undefined;
272
+ env?: Record<string, string> | undefined;
273
+ headers?: Record<string, string> | undefined;
274
+ prompt_wrapper?: string | undefined;
275
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
276
+ output_parser?: OutputParserConfig | undefined;
277
+ stderr?: "passthrough" | "suppress" | "capture" | undefined;
278
+ extends?: string | undefined;
279
+ abstract?: boolean | undefined;
280
+ api_key_env?: string | undefined;
281
+ api_key_header?: string | undefined;
282
+ api_key_prefix?: string | undefined;
283
+ }>;
284
+ declare const ChannelConfigSchema: z.ZodEffects<z.ZodEffects<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
285
+ enabled: z.ZodDefault<z.ZodBoolean>;
286
+ command: z.ZodOptional<z.ZodString>;
287
+ flags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
288
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
289
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
290
+ prompt_wrapper: z.ZodDefault<z.ZodString>;
291
+ prompt_delivery: z.ZodOptional<z.ZodEnum<["stdin", "prompt-file"]>>;
292
+ output_parser: z.ZodDefault<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>;
293
+ stderr: z.ZodDefault<z.ZodEnum<["suppress", "capture", "passthrough"]>>;
294
+ timeout: z.ZodOptional<z.ZodNumber>;
295
+ extends: z.ZodOptional<z.ZodString>;
296
+ abstract: z.ZodDefault<z.ZodBoolean>;
297
+ kind: z.ZodLiteral<"subprocess">;
298
+ auth: z.ZodOptional<z.ZodObject<{
299
+ check: z.ZodString;
300
+ timeout: z.ZodDefault<z.ZodNumber>;
301
+ failure_exit_codes: z.ZodArray<z.ZodNumber, "many">;
302
+ recovery: z.ZodString;
303
+ }, "strip", z.ZodTypeAny, {
35
304
  check: string;
36
305
  timeout: number;
37
306
  failure_exit_codes: number[];
38
307
  recovery: string;
39
- };
308
+ }, {
309
+ check: string;
310
+ failure_exit_codes: number[];
311
+ recovery: string;
312
+ timeout?: number | undefined;
313
+ }>>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ kind: "subprocess";
316
+ flags: string[];
317
+ enabled: boolean;
318
+ env: Record<string, string>;
40
319
  prompt_wrapper: string;
41
- output_parser: string;
320
+ output_parser: OutputParserConfig;
42
321
  stderr: "passthrough" | "suppress" | "capture";
322
+ abstract: boolean;
43
323
  timeout?: number | undefined;
324
+ auth?: {
325
+ check: string;
326
+ timeout: number;
327
+ failure_exit_codes: number[];
328
+ recovery: string;
329
+ } | undefined;
330
+ command?: string | undefined;
331
+ headers?: Record<string, string> | undefined;
332
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
333
+ extends?: string | undefined;
44
334
  }, {
45
- command: string;
46
- auth: {
335
+ kind: "subprocess";
336
+ timeout?: number | undefined;
337
+ flags?: string[] | undefined;
338
+ auth?: {
47
339
  check: string;
48
340
  failure_exit_codes: number[];
49
341
  recovery: string;
50
342
  timeout?: number | undefined;
343
+ } | undefined;
344
+ enabled?: boolean | undefined;
345
+ command?: string | undefined;
346
+ env?: Record<string, string> | undefined;
347
+ headers?: Record<string, string> | undefined;
348
+ prompt_wrapper?: string | undefined;
349
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
350
+ output_parser?: OutputParserConfig | undefined;
351
+ stderr?: "passthrough" | "suppress" | "capture" | undefined;
352
+ extends?: string | undefined;
353
+ abstract?: boolean | undefined;
354
+ }>, z.ZodObject<{
355
+ enabled: z.ZodDefault<z.ZodBoolean>;
356
+ command: z.ZodOptional<z.ZodString>;
357
+ flags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
358
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
359
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
360
+ prompt_wrapper: z.ZodDefault<z.ZodString>;
361
+ prompt_delivery: z.ZodOptional<z.ZodEnum<["stdin", "prompt-file"]>>;
362
+ output_parser: z.ZodDefault<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>;
363
+ stderr: z.ZodDefault<z.ZodEnum<["suppress", "capture", "passthrough"]>>;
364
+ timeout: z.ZodOptional<z.ZodNumber>;
365
+ extends: z.ZodOptional<z.ZodString>;
366
+ abstract: z.ZodDefault<z.ZodBoolean>;
367
+ kind: z.ZodLiteral<"http">;
368
+ endpoint: z.ZodString;
369
+ model: z.ZodString;
370
+ endpoint_convention: z.ZodLiteral<"openai-chat">;
371
+ api_key_env: z.ZodOptional<z.ZodString>;
372
+ api_key_header: z.ZodDefault<z.ZodString>;
373
+ api_key_prefix: z.ZodDefault<z.ZodString>;
374
+ auth: z.ZodDefault<z.ZodObject<{
375
+ check_endpoint: z.ZodOptional<z.ZodString>;
376
+ check_method: z.ZodDefault<z.ZodString>;
377
+ check_status_ok: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
378
+ timeout: z.ZodDefault<z.ZodNumber>;
379
+ recovery: z.ZodOptional<z.ZodString>;
380
+ }, "strip", z.ZodTypeAny, {
381
+ timeout: number;
382
+ check_method: string;
383
+ check_status_ok: number[];
384
+ recovery?: string | undefined;
385
+ check_endpoint?: string | undefined;
386
+ }, {
387
+ timeout?: number | undefined;
388
+ recovery?: string | undefined;
389
+ check_endpoint?: string | undefined;
390
+ check_method?: string | undefined;
391
+ check_status_ok?: number[] | undefined;
392
+ }>>;
393
+ }, "strip", z.ZodTypeAny, {
394
+ kind: "http";
395
+ flags: string[];
396
+ auth: {
397
+ timeout: number;
398
+ check_method: string;
399
+ check_status_ok: number[];
400
+ recovery?: string | undefined;
401
+ check_endpoint?: string | undefined;
51
402
  };
403
+ enabled: boolean;
404
+ env: Record<string, string>;
405
+ prompt_wrapper: string;
406
+ output_parser: OutputParserConfig;
407
+ stderr: "passthrough" | "suppress" | "capture";
408
+ abstract: boolean;
409
+ endpoint: string;
410
+ model: string;
411
+ endpoint_convention: "openai-chat";
412
+ api_key_header: string;
413
+ api_key_prefix: string;
414
+ timeout?: number | undefined;
415
+ command?: string | undefined;
416
+ headers?: Record<string, string> | undefined;
417
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
418
+ extends?: string | undefined;
419
+ api_key_env?: string | undefined;
420
+ }, {
421
+ kind: "http";
422
+ endpoint: string;
423
+ model: string;
424
+ endpoint_convention: "openai-chat";
52
425
  timeout?: number | undefined;
53
- enabled?: boolean | undefined;
54
426
  flags?: string[] | undefined;
427
+ auth?: {
428
+ timeout?: number | undefined;
429
+ recovery?: string | undefined;
430
+ check_endpoint?: string | undefined;
431
+ check_method?: string | undefined;
432
+ check_status_ok?: number[] | undefined;
433
+ } | undefined;
434
+ enabled?: boolean | undefined;
435
+ command?: string | undefined;
55
436
  env?: Record<string, string> | undefined;
437
+ headers?: Record<string, string> | undefined;
56
438
  prompt_wrapper?: string | undefined;
57
- output_parser?: string | undefined;
439
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
440
+ output_parser?: OutputParserConfig | undefined;
58
441
  stderr?: "passthrough" | "suppress" | "capture" | undefined;
442
+ extends?: string | undefined;
443
+ abstract?: boolean | undefined;
444
+ api_key_env?: string | undefined;
445
+ api_key_header?: string | undefined;
446
+ api_key_prefix?: string | undefined;
447
+ }>]>, {
448
+ kind: "subprocess";
449
+ flags: string[];
450
+ enabled: boolean;
451
+ env: Record<string, string>;
452
+ prompt_wrapper: string;
453
+ output_parser: OutputParserConfig;
454
+ stderr: "passthrough" | "suppress" | "capture";
455
+ abstract: boolean;
456
+ timeout?: number | undefined;
457
+ auth?: {
458
+ check: string;
459
+ timeout: number;
460
+ failure_exit_codes: number[];
461
+ recovery: string;
462
+ } | undefined;
463
+ command?: string | undefined;
464
+ headers?: Record<string, string> | undefined;
465
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
466
+ extends?: string | undefined;
467
+ } | {
468
+ kind: "http";
469
+ flags: string[];
470
+ auth: {
471
+ timeout: number;
472
+ check_method: string;
473
+ check_status_ok: number[];
474
+ recovery?: string | undefined;
475
+ check_endpoint?: string | undefined;
476
+ };
477
+ enabled: boolean;
478
+ env: Record<string, string>;
479
+ prompt_wrapper: string;
480
+ output_parser: OutputParserConfig;
481
+ stderr: "passthrough" | "suppress" | "capture";
482
+ abstract: boolean;
483
+ endpoint: string;
484
+ model: string;
485
+ endpoint_convention: "openai-chat";
486
+ api_key_header: string;
487
+ api_key_prefix: string;
488
+ timeout?: number | undefined;
489
+ command?: string | undefined;
490
+ headers?: Record<string, string> | undefined;
491
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
492
+ extends?: string | undefined;
493
+ api_key_env?: string | undefined;
494
+ }, unknown>, {
495
+ kind: "subprocess";
496
+ flags: string[];
497
+ enabled: boolean;
498
+ env: Record<string, string>;
499
+ prompt_wrapper: string;
500
+ output_parser: OutputParserConfig;
501
+ stderr: "passthrough" | "suppress" | "capture";
502
+ abstract: boolean;
503
+ timeout?: number | undefined;
504
+ auth?: {
505
+ check: string;
506
+ timeout: number;
507
+ failure_exit_codes: number[];
508
+ recovery: string;
509
+ } | undefined;
510
+ command?: string | undefined;
511
+ headers?: Record<string, string> | undefined;
512
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
513
+ extends?: string | undefined;
514
+ } | {
515
+ kind: "http";
516
+ flags: string[];
517
+ auth: {
518
+ timeout: number;
519
+ check_method: string;
520
+ check_status_ok: number[];
521
+ recovery?: string | undefined;
522
+ check_endpoint?: string | undefined;
523
+ };
524
+ enabled: boolean;
525
+ env: Record<string, string>;
526
+ prompt_wrapper: string;
527
+ output_parser: OutputParserConfig;
528
+ stderr: "passthrough" | "suppress" | "capture";
529
+ abstract: boolean;
530
+ endpoint: string;
531
+ model: string;
532
+ endpoint_convention: "openai-chat";
533
+ api_key_header: string;
534
+ api_key_prefix: string;
535
+ timeout?: number | undefined;
536
+ command?: string | undefined;
537
+ headers?: Record<string, string> | undefined;
538
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
539
+ extends?: string | undefined;
540
+ api_key_env?: string | undefined;
541
+ }, unknown>;
542
+ export declare const CompensatorConfigSchema: z.ZodEffects<z.ZodObject<{
543
+ channel: z.ZodOptional<z.ZodString>;
544
+ channel_focus_map: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
545
+ }, "strict", z.ZodTypeAny, {
546
+ channel?: string | undefined;
547
+ channel_focus_map?: Record<string, string> | undefined;
548
+ }, {
549
+ channel?: string | undefined;
550
+ channel_focus_map?: Record<string, string> | undefined;
551
+ }>, {
552
+ channel?: string | undefined;
553
+ channel_focus_map?: Record<string, string> | undefined;
554
+ }, {
555
+ channel?: string | undefined;
556
+ channel_focus_map?: Record<string, string> | undefined;
59
557
  }>;
558
+ export type CompensatorConfig = z.infer<typeof CompensatorConfigSchema>;
60
559
  export declare const MmrConfigSchema: z.ZodObject<{
61
560
  version: z.ZodNumber;
62
561
  defaults: z.ZodDefault<z.ZodObject<{
@@ -65,18 +564,90 @@ export declare const MmrConfigSchema: z.ZodObject<{
65
564
  format: z.ZodDefault<z.ZodEnum<["json", "text", "markdown"]>>;
66
565
  parallel: z.ZodDefault<z.ZodBoolean>;
67
566
  job_retention_days: z.ZodDefault<z.ZodNumber>;
567
+ loop_control: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodObject<{
568
+ max_rounds_default: z.ZodDefault<z.ZodNumber>;
569
+ repeat_suppression_enabled: z.ZodDefault<z.ZodBoolean>;
570
+ repeat_downgrade_after: z.ZodOptional<z.ZodNumber>;
571
+ repeat_suppress_after: z.ZodOptional<z.ZodNumber>;
572
+ }, "strip", z.ZodTypeAny, {
573
+ max_rounds_default: number;
574
+ repeat_suppression_enabled: boolean;
575
+ repeat_downgrade_after?: number | undefined;
576
+ repeat_suppress_after?: number | undefined;
577
+ }, {
578
+ max_rounds_default?: number | undefined;
579
+ repeat_suppression_enabled?: boolean | undefined;
580
+ repeat_downgrade_after?: number | undefined;
581
+ repeat_suppress_after?: number | undefined;
582
+ }>, {
583
+ max_rounds_default: number;
584
+ repeat_suppression_enabled: boolean;
585
+ repeat_downgrade_after?: number | undefined;
586
+ repeat_suppress_after?: number | undefined;
587
+ }, {
588
+ max_rounds_default?: number | undefined;
589
+ repeat_suppression_enabled?: boolean | undefined;
590
+ repeat_downgrade_after?: number | undefined;
591
+ repeat_suppress_after?: number | undefined;
592
+ }>, {
593
+ max_rounds_default: number;
594
+ repeat_suppression_enabled: boolean;
595
+ repeat_downgrade_after?: number | undefined;
596
+ repeat_suppress_after?: number | undefined;
597
+ }, {
598
+ max_rounds_default?: number | undefined;
599
+ repeat_suppression_enabled?: boolean | undefined;
600
+ repeat_downgrade_after?: number | undefined;
601
+ repeat_suppress_after?: number | undefined;
602
+ }>>;
603
+ compensator: z.ZodOptional<z.ZodEffects<z.ZodObject<{
604
+ channel: z.ZodOptional<z.ZodString>;
605
+ channel_focus_map: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
606
+ }, "strict", z.ZodTypeAny, {
607
+ channel?: string | undefined;
608
+ channel_focus_map?: Record<string, string> | undefined;
609
+ }, {
610
+ channel?: string | undefined;
611
+ channel_focus_map?: Record<string, string> | undefined;
612
+ }>, {
613
+ channel?: string | undefined;
614
+ channel_focus_map?: Record<string, string> | undefined;
615
+ }, {
616
+ channel?: string | undefined;
617
+ channel_focus_map?: Record<string, string> | undefined;
618
+ }>>;
68
619
  }, "strip", z.ZodTypeAny, {
69
620
  timeout: number;
70
621
  fix_threshold: "P0" | "P1" | "P2" | "P3";
71
622
  format: "json" | "text" | "markdown";
72
623
  parallel: boolean;
73
624
  job_retention_days: number;
625
+ loop_control: {
626
+ max_rounds_default: number;
627
+ repeat_suppression_enabled: boolean;
628
+ repeat_downgrade_after?: number | undefined;
629
+ repeat_suppress_after?: number | undefined;
630
+ };
631
+ compensator?: {
632
+ channel?: string | undefined;
633
+ channel_focus_map?: Record<string, string> | undefined;
634
+ } | undefined;
74
635
  }, {
75
636
  timeout?: number | undefined;
76
637
  fix_threshold?: "P0" | "P1" | "P2" | "P3" | undefined;
77
638
  format?: "json" | "text" | "markdown" | undefined;
78
639
  parallel?: boolean | undefined;
79
640
  job_retention_days?: number | undefined;
641
+ loop_control?: {
642
+ max_rounds_default?: number | undefined;
643
+ repeat_suppression_enabled?: boolean | undefined;
644
+ repeat_downgrade_after?: number | undefined;
645
+ repeat_suppress_after?: number | undefined;
646
+ } | undefined;
647
+ compensator?: {
648
+ channel?: string | undefined;
649
+ channel_focus_map?: Record<string, string> | undefined;
650
+ } | undefined;
80
651
  }>>;
81
652
  review_criteria: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
82
653
  templates: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -86,12 +657,21 @@ export declare const MmrConfigSchema: z.ZodObject<{
86
657
  }, {
87
658
  criteria?: string[] | undefined;
88
659
  }>>>;
89
- channels: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
660
+ channels: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodEffects<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
90
661
  enabled: z.ZodDefault<z.ZodBoolean>;
91
- command: z.ZodString;
662
+ command: z.ZodOptional<z.ZodString>;
92
663
  flags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
93
664
  env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
94
- auth: z.ZodObject<{
665
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
666
+ prompt_wrapper: z.ZodDefault<z.ZodString>;
667
+ prompt_delivery: z.ZodOptional<z.ZodEnum<["stdin", "prompt-file"]>>;
668
+ output_parser: z.ZodDefault<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>;
669
+ stderr: z.ZodDefault<z.ZodEnum<["suppress", "capture", "passthrough"]>>;
670
+ timeout: z.ZodOptional<z.ZodNumber>;
671
+ extends: z.ZodOptional<z.ZodString>;
672
+ abstract: z.ZodDefault<z.ZodBoolean>;
673
+ kind: z.ZodLiteral<"subprocess">;
674
+ auth: z.ZodOptional<z.ZodObject<{
95
675
  check: z.ZodString;
96
676
  timeout: z.ZodDefault<z.ZodNumber>;
97
677
  failure_exit_codes: z.ZodArray<z.ZodNumber, "many">;
@@ -106,42 +686,236 @@ export declare const MmrConfigSchema: z.ZodObject<{
106
686
  failure_exit_codes: number[];
107
687
  recovery: string;
108
688
  timeout?: number | undefined;
109
- }>;
689
+ }>>;
690
+ }, "strip", z.ZodTypeAny, {
691
+ kind: "subprocess";
692
+ flags: string[];
693
+ enabled: boolean;
694
+ env: Record<string, string>;
695
+ prompt_wrapper: string;
696
+ output_parser: OutputParserConfig;
697
+ stderr: "passthrough" | "suppress" | "capture";
698
+ abstract: boolean;
699
+ timeout?: number | undefined;
700
+ auth?: {
701
+ check: string;
702
+ timeout: number;
703
+ failure_exit_codes: number[];
704
+ recovery: string;
705
+ } | undefined;
706
+ command?: string | undefined;
707
+ headers?: Record<string, string> | undefined;
708
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
709
+ extends?: string | undefined;
710
+ }, {
711
+ kind: "subprocess";
712
+ timeout?: number | undefined;
713
+ flags?: string[] | undefined;
714
+ auth?: {
715
+ check: string;
716
+ failure_exit_codes: number[];
717
+ recovery: string;
718
+ timeout?: number | undefined;
719
+ } | undefined;
720
+ enabled?: boolean | undefined;
721
+ command?: string | undefined;
722
+ env?: Record<string, string> | undefined;
723
+ headers?: Record<string, string> | undefined;
724
+ prompt_wrapper?: string | undefined;
725
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
726
+ output_parser?: OutputParserConfig | undefined;
727
+ stderr?: "passthrough" | "suppress" | "capture" | undefined;
728
+ extends?: string | undefined;
729
+ abstract?: boolean | undefined;
730
+ }>, z.ZodObject<{
731
+ enabled: z.ZodDefault<z.ZodBoolean>;
732
+ command: z.ZodOptional<z.ZodString>;
733
+ flags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
734
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
735
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
110
736
  prompt_wrapper: z.ZodDefault<z.ZodString>;
111
- output_parser: z.ZodDefault<z.ZodString>;
737
+ prompt_delivery: z.ZodOptional<z.ZodEnum<["stdin", "prompt-file"]>>;
738
+ output_parser: z.ZodDefault<z.ZodType<OutputParserConfig, z.ZodTypeDef, OutputParserConfig>>;
112
739
  stderr: z.ZodDefault<z.ZodEnum<["suppress", "capture", "passthrough"]>>;
113
740
  timeout: z.ZodOptional<z.ZodNumber>;
741
+ extends: z.ZodOptional<z.ZodString>;
742
+ abstract: z.ZodDefault<z.ZodBoolean>;
743
+ kind: z.ZodLiteral<"http">;
744
+ endpoint: z.ZodString;
745
+ model: z.ZodString;
746
+ endpoint_convention: z.ZodLiteral<"openai-chat">;
747
+ api_key_env: z.ZodOptional<z.ZodString>;
748
+ api_key_header: z.ZodDefault<z.ZodString>;
749
+ api_key_prefix: z.ZodDefault<z.ZodString>;
750
+ auth: z.ZodDefault<z.ZodObject<{
751
+ check_endpoint: z.ZodOptional<z.ZodString>;
752
+ check_method: z.ZodDefault<z.ZodString>;
753
+ check_status_ok: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
754
+ timeout: z.ZodDefault<z.ZodNumber>;
755
+ recovery: z.ZodOptional<z.ZodString>;
756
+ }, "strip", z.ZodTypeAny, {
757
+ timeout: number;
758
+ check_method: string;
759
+ check_status_ok: number[];
760
+ recovery?: string | undefined;
761
+ check_endpoint?: string | undefined;
762
+ }, {
763
+ timeout?: number | undefined;
764
+ recovery?: string | undefined;
765
+ check_endpoint?: string | undefined;
766
+ check_method?: string | undefined;
767
+ check_status_ok?: number[] | undefined;
768
+ }>>;
114
769
  }, "strip", z.ZodTypeAny, {
770
+ kind: "http";
771
+ flags: string[];
772
+ auth: {
773
+ timeout: number;
774
+ check_method: string;
775
+ check_status_ok: number[];
776
+ recovery?: string | undefined;
777
+ check_endpoint?: string | undefined;
778
+ };
115
779
  enabled: boolean;
116
- command: string;
780
+ env: Record<string, string>;
781
+ prompt_wrapper: string;
782
+ output_parser: OutputParserConfig;
783
+ stderr: "passthrough" | "suppress" | "capture";
784
+ abstract: boolean;
785
+ endpoint: string;
786
+ model: string;
787
+ endpoint_convention: "openai-chat";
788
+ api_key_header: string;
789
+ api_key_prefix: string;
790
+ timeout?: number | undefined;
791
+ command?: string | undefined;
792
+ headers?: Record<string, string> | undefined;
793
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
794
+ extends?: string | undefined;
795
+ api_key_env?: string | undefined;
796
+ }, {
797
+ kind: "http";
798
+ endpoint: string;
799
+ model: string;
800
+ endpoint_convention: "openai-chat";
801
+ timeout?: number | undefined;
802
+ flags?: string[] | undefined;
803
+ auth?: {
804
+ timeout?: number | undefined;
805
+ recovery?: string | undefined;
806
+ check_endpoint?: string | undefined;
807
+ check_method?: string | undefined;
808
+ check_status_ok?: number[] | undefined;
809
+ } | undefined;
810
+ enabled?: boolean | undefined;
811
+ command?: string | undefined;
812
+ env?: Record<string, string> | undefined;
813
+ headers?: Record<string, string> | undefined;
814
+ prompt_wrapper?: string | undefined;
815
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
816
+ output_parser?: OutputParserConfig | undefined;
817
+ stderr?: "passthrough" | "suppress" | "capture" | undefined;
818
+ extends?: string | undefined;
819
+ abstract?: boolean | undefined;
820
+ api_key_env?: string | undefined;
821
+ api_key_header?: string | undefined;
822
+ api_key_prefix?: string | undefined;
823
+ }>]>, {
824
+ kind: "subprocess";
117
825
  flags: string[];
826
+ enabled: boolean;
118
827
  env: Record<string, string>;
119
- auth: {
828
+ prompt_wrapper: string;
829
+ output_parser: OutputParserConfig;
830
+ stderr: "passthrough" | "suppress" | "capture";
831
+ abstract: boolean;
832
+ timeout?: number | undefined;
833
+ auth?: {
120
834
  check: string;
121
835
  timeout: number;
122
836
  failure_exit_codes: number[];
123
837
  recovery: string;
838
+ } | undefined;
839
+ command?: string | undefined;
840
+ headers?: Record<string, string> | undefined;
841
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
842
+ extends?: string | undefined;
843
+ } | {
844
+ kind: "http";
845
+ flags: string[];
846
+ auth: {
847
+ timeout: number;
848
+ check_method: string;
849
+ check_status_ok: number[];
850
+ recovery?: string | undefined;
851
+ check_endpoint?: string | undefined;
124
852
  };
853
+ enabled: boolean;
854
+ env: Record<string, string>;
125
855
  prompt_wrapper: string;
126
- output_parser: string;
856
+ output_parser: OutputParserConfig;
127
857
  stderr: "passthrough" | "suppress" | "capture";
858
+ abstract: boolean;
859
+ endpoint: string;
860
+ model: string;
861
+ endpoint_convention: "openai-chat";
862
+ api_key_header: string;
863
+ api_key_prefix: string;
128
864
  timeout?: number | undefined;
129
- }, {
130
- command: string;
131
- auth: {
865
+ command?: string | undefined;
866
+ headers?: Record<string, string> | undefined;
867
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
868
+ extends?: string | undefined;
869
+ api_key_env?: string | undefined;
870
+ }, unknown>, {
871
+ kind: "subprocess";
872
+ flags: string[];
873
+ enabled: boolean;
874
+ env: Record<string, string>;
875
+ prompt_wrapper: string;
876
+ output_parser: OutputParserConfig;
877
+ stderr: "passthrough" | "suppress" | "capture";
878
+ abstract: boolean;
879
+ timeout?: number | undefined;
880
+ auth?: {
132
881
  check: string;
882
+ timeout: number;
133
883
  failure_exit_codes: number[];
134
884
  recovery: string;
135
- timeout?: number | undefined;
885
+ } | undefined;
886
+ command?: string | undefined;
887
+ headers?: Record<string, string> | undefined;
888
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
889
+ extends?: string | undefined;
890
+ } | {
891
+ kind: "http";
892
+ flags: string[];
893
+ auth: {
894
+ timeout: number;
895
+ check_method: string;
896
+ check_status_ok: number[];
897
+ recovery?: string | undefined;
898
+ check_endpoint?: string | undefined;
136
899
  };
900
+ enabled: boolean;
901
+ env: Record<string, string>;
902
+ prompt_wrapper: string;
903
+ output_parser: OutputParserConfig;
904
+ stderr: "passthrough" | "suppress" | "capture";
905
+ abstract: boolean;
906
+ endpoint: string;
907
+ model: string;
908
+ endpoint_convention: "openai-chat";
909
+ api_key_header: string;
910
+ api_key_prefix: string;
137
911
  timeout?: number | undefined;
138
- enabled?: boolean | undefined;
139
- flags?: string[] | undefined;
140
- env?: Record<string, string> | undefined;
141
- prompt_wrapper?: string | undefined;
142
- output_parser?: string | undefined;
143
- stderr?: "passthrough" | "suppress" | "capture" | undefined;
144
- }>>>;
912
+ command?: string | undefined;
913
+ headers?: Record<string, string> | undefined;
914
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
915
+ extends?: string | undefined;
916
+ api_key_env?: string | undefined;
917
+ }, unknown>>>;
918
+ channels_disabled: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
145
919
  }, "strip", z.ZodTypeAny, {
146
920
  version: number;
147
921
  defaults: {
@@ -150,27 +924,70 @@ export declare const MmrConfigSchema: z.ZodObject<{
150
924
  format: "json" | "text" | "markdown";
151
925
  parallel: boolean;
152
926
  job_retention_days: number;
927
+ loop_control: {
928
+ max_rounds_default: number;
929
+ repeat_suppression_enabled: boolean;
930
+ repeat_downgrade_after?: number | undefined;
931
+ repeat_suppress_after?: number | undefined;
932
+ };
933
+ compensator?: {
934
+ channel?: string | undefined;
935
+ channel_focus_map?: Record<string, string> | undefined;
936
+ } | undefined;
153
937
  };
154
938
  channels: Record<string, {
155
- enabled: boolean;
156
- command: string;
939
+ kind: "subprocess";
157
940
  flags: string[];
941
+ enabled: boolean;
158
942
  env: Record<string, string>;
159
- auth: {
943
+ prompt_wrapper: string;
944
+ output_parser: OutputParserConfig;
945
+ stderr: "passthrough" | "suppress" | "capture";
946
+ abstract: boolean;
947
+ timeout?: number | undefined;
948
+ auth?: {
160
949
  check: string;
161
950
  timeout: number;
162
951
  failure_exit_codes: number[];
163
952
  recovery: string;
953
+ } | undefined;
954
+ command?: string | undefined;
955
+ headers?: Record<string, string> | undefined;
956
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
957
+ extends?: string | undefined;
958
+ } | {
959
+ kind: "http";
960
+ flags: string[];
961
+ auth: {
962
+ timeout: number;
963
+ check_method: string;
964
+ check_status_ok: number[];
965
+ recovery?: string | undefined;
966
+ check_endpoint?: string | undefined;
164
967
  };
968
+ enabled: boolean;
969
+ env: Record<string, string>;
165
970
  prompt_wrapper: string;
166
- output_parser: string;
971
+ output_parser: OutputParserConfig;
167
972
  stderr: "passthrough" | "suppress" | "capture";
973
+ abstract: boolean;
974
+ endpoint: string;
975
+ model: string;
976
+ endpoint_convention: "openai-chat";
977
+ api_key_header: string;
978
+ api_key_prefix: string;
168
979
  timeout?: number | undefined;
980
+ command?: string | undefined;
981
+ headers?: Record<string, string> | undefined;
982
+ prompt_delivery?: "stdin" | "prompt-file" | undefined;
983
+ extends?: string | undefined;
984
+ api_key_env?: string | undefined;
169
985
  }>;
170
986
  review_criteria?: string[] | undefined;
171
987
  templates?: Record<string, {
172
988
  criteria?: string[] | undefined;
173
989
  }> | undefined;
990
+ channels_disabled?: string[] | undefined;
174
991
  }, {
175
992
  version: number;
176
993
  defaults?: {
@@ -179,29 +996,28 @@ export declare const MmrConfigSchema: z.ZodObject<{
179
996
  format?: "json" | "text" | "markdown" | undefined;
180
997
  parallel?: boolean | undefined;
181
998
  job_retention_days?: number | undefined;
999
+ loop_control?: {
1000
+ max_rounds_default?: number | undefined;
1001
+ repeat_suppression_enabled?: boolean | undefined;
1002
+ repeat_downgrade_after?: number | undefined;
1003
+ repeat_suppress_after?: number | undefined;
1004
+ } | undefined;
1005
+ compensator?: {
1006
+ channel?: string | undefined;
1007
+ channel_focus_map?: Record<string, string> | undefined;
1008
+ } | undefined;
182
1009
  } | undefined;
183
1010
  review_criteria?: string[] | undefined;
184
1011
  templates?: Record<string, {
185
1012
  criteria?: string[] | undefined;
186
1013
  }> | undefined;
187
- channels?: Record<string, {
188
- command: string;
189
- auth: {
190
- check: string;
191
- failure_exit_codes: number[];
192
- recovery: string;
193
- timeout?: number | undefined;
194
- };
195
- timeout?: number | undefined;
196
- enabled?: boolean | undefined;
197
- flags?: string[] | undefined;
198
- env?: Record<string, string> | undefined;
199
- prompt_wrapper?: string | undefined;
200
- output_parser?: string | undefined;
201
- stderr?: "passthrough" | "suppress" | "capture" | undefined;
202
- }> | undefined;
1014
+ channels?: Record<string, unknown> | undefined;
1015
+ channels_disabled?: string[] | undefined;
203
1016
  }>;
204
1017
  export type MmrConfigParsed = z.infer<typeof MmrConfigSchema>;
205
1018
  export type ChannelConfigParsed = z.infer<typeof ChannelConfigSchema>;
1019
+ export type SubprocessChannelParsed = z.infer<typeof SubprocessChannelSchema>;
1020
+ export type HttpChannelParsed = z.infer<typeof HttpChannelSchema>;
1021
+ export type HttpAuthConfigParsed = z.infer<typeof HttpAuthConfigSchema>;
206
1022
  export {};
207
1023
  //# sourceMappingURL=schema.d.ts.map