@cat-factory/contracts 0.223.0 → 0.224.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 (77) hide show
  1. package/dist/agent-gating.d.ts.map +1 -1
  2. package/dist/agent-gating.js +14 -0
  3. package/dist/agent-gating.js.map +1 -1
  4. package/dist/debug-api.d.ts +9 -0
  5. package/dist/debug-api.d.ts.map +1 -1
  6. package/dist/debug-api.js +6 -0
  7. package/dist/debug-api.js.map +1 -1
  8. package/dist/errors.d.ts +1 -1
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +5 -0
  11. package/dist/errors.js.map +1 -1
  12. package/dist/execution.d.ts +147 -2
  13. package/dist/execution.d.ts.map +1 -1
  14. package/dist/execution.js +74 -1
  15. package/dist/execution.js.map +1 -1
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/merge.d.ts +2210 -157
  21. package/dist/merge.d.ts.map +1 -1
  22. package/dist/merge.js +83 -0
  23. package/dist/merge.js.map +1 -1
  24. package/dist/observability.d.ts +71 -0
  25. package/dist/observability.d.ts.map +1 -1
  26. package/dist/observability.js +47 -0
  27. package/dist/observability.js.map +1 -1
  28. package/dist/pr-report.d.ts +351 -1
  29. package/dist/pr-report.d.ts.map +1 -1
  30. package/dist/pr-report.js +164 -1
  31. package/dist/pr-report.js.map +1 -1
  32. package/dist/reproduction.js +1 -1
  33. package/dist/reproduction.js.map +1 -1
  34. package/dist/requests.d.ts +8 -0
  35. package/dist/requests.d.ts.map +1 -1
  36. package/dist/requests.js +9 -0
  37. package/dist/requests.js.map +1 -1
  38. package/dist/routes/agent-runs.d.ts +10 -0
  39. package/dist/routes/agent-runs.d.ts.map +1 -1
  40. package/dist/routes/bug-hunt.d.ts +10 -0
  41. package/dist/routes/bug-hunt.d.ts.map +1 -1
  42. package/dist/routes/debug-api.d.ts +4 -0
  43. package/dist/routes/debug-api.d.ts.map +1 -1
  44. package/dist/routes/execution.d.ts +44 -0
  45. package/dist/routes/execution.d.ts.map +1 -1
  46. package/dist/routes/human-review.d.ts +5 -0
  47. package/dist/routes/human-review.d.ts.map +1 -1
  48. package/dist/routes/human-test.d.ts +25 -0
  49. package/dist/routes/human-test.d.ts.map +1 -1
  50. package/dist/routes/index.d.ts +1 -0
  51. package/dist/routes/index.d.ts.map +1 -1
  52. package/dist/routes/index.js +1 -0
  53. package/dist/routes/index.js.map +1 -1
  54. package/dist/routes/merge.d.ts +3109 -157
  55. package/dist/routes/merge.d.ts.map +1 -1
  56. package/dist/routes/tutorial.d.ts +149 -0
  57. package/dist/routes/tutorial.d.ts.map +1 -0
  58. package/dist/routes/tutorial.js +46 -0
  59. package/dist/routes/tutorial.js.map +1 -0
  60. package/dist/routes/visual-confirm.d.ts +15 -0
  61. package/dist/routes/visual-confirm.d.ts.map +1 -1
  62. package/dist/routes/workspace-members.d.ts +5 -5
  63. package/dist/routes/workspaces.d.ts +1008 -4
  64. package/dist/routes/workspaces.d.ts.map +1 -1
  65. package/dist/snapshot.d.ts +510 -1
  66. package/dist/snapshot.d.ts.map +1 -1
  67. package/dist/snapshot.js +9 -0
  68. package/dist/snapshot.js.map +1 -1
  69. package/dist/tutorial.d.ts +69 -0
  70. package/dist/tutorial.d.ts.map +1 -0
  71. package/dist/tutorial.js +83 -0
  72. package/dist/tutorial.js.map +1 -0
  73. package/dist/workspace-members.d.ts +6 -5
  74. package/dist/workspace-members.d.ts.map +1 -1
  75. package/dist/workspace-members.js +2 -1
  76. package/dist/workspace-members.js.map +1 -1
  77. package/package.json +1 -1
package/dist/merge.d.ts CHANGED
@@ -91,6 +91,531 @@ export declare const mergeClassRulesSchema: Omit<v.StrictObjectSchema<{
91
91
  } | undefined;
92
92
  };
93
93
  export type MergeClassRules = v.InferOutput<typeof mergeClassRulesSchema>;
94
+ /**
95
+ * ROLE-SCOPED per-class rules: the rules above, narrowed by WHO started the run.
96
+ *
97
+ * A partial map from {@link workspaceRoleSchema} to that role's own {@link mergeClassRulesSchema}.
98
+ * The base `classRules` say what the WORK may do; this says what a given tier of person may do
99
+ * with it, so a workspace can widen `dependency` to `always` for everyone and still hold a
100
+ * non-engineer's runs to review on `source`.
101
+ *
102
+ * Composition is NARROW-ONLY (`narrowMergeClassRule` in kernel): a role entry may only make a
103
+ * class MORE restrictive than the base rule, never less. That is the whole safety property — an
104
+ * allowlist authored per role can subtract capability but can never hand a role something the
105
+ * preset itself withholds, so a role entry can be reviewed on its own without re-reading the base
106
+ * map. `unknown` stays unruleable here for the same reason it is in the base map.
107
+ *
108
+ * A role with no entry is exactly the base rules, so `{}` is the identity. So is a run with no
109
+ * pinned role (a schedule fire, a public-API start, auth-disabled dev): see
110
+ * {@link ExecutionInstance.initiatedByRole} for why those are left on the base policy rather than
111
+ * guessed onto a tier.
112
+ */
113
+ export declare const classRulesByRoleSchema: Omit<v.StrictObjectSchema<{
114
+ admin: Omit<v.StrictObjectSchema<{
115
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
116
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
117
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
118
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
119
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
120
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
121
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
122
+ readonly entries: {
123
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
124
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
125
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
126
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
127
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
128
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
129
+ };
130
+ readonly "~standard": v.StandardProps<{
131
+ config?: "always" | "never" | "thresholds" | undefined;
132
+ dependency?: "always" | "never" | "thresholds" | undefined;
133
+ docs?: "always" | "never" | "thresholds" | undefined;
134
+ schema?: "always" | "never" | "thresholds" | undefined;
135
+ source?: "always" | "never" | "thresholds" | undefined;
136
+ test?: "always" | "never" | "thresholds" | undefined;
137
+ }, {
138
+ config?: "always" | "never" | "thresholds" | undefined;
139
+ dependency?: "always" | "never" | "thresholds" | undefined;
140
+ docs?: "always" | "never" | "thresholds" | undefined;
141
+ schema?: "always" | "never" | "thresholds" | undefined;
142
+ source?: "always" | "never" | "thresholds" | undefined;
143
+ test?: "always" | "never" | "thresholds" | undefined;
144
+ }>;
145
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
146
+ config?: "always" | "never" | "thresholds" | undefined;
147
+ dependency?: "always" | "never" | "thresholds" | undefined;
148
+ docs?: "always" | "never" | "thresholds" | undefined;
149
+ schema?: "always" | "never" | "thresholds" | undefined;
150
+ source?: "always" | "never" | "thresholds" | undefined;
151
+ test?: "always" | "never" | "thresholds" | undefined;
152
+ }, v.PicklistIssue | v.StrictObjectIssue>;
153
+ readonly "~types"?: {
154
+ readonly input: {
155
+ config?: "always" | "never" | "thresholds" | undefined;
156
+ dependency?: "always" | "never" | "thresholds" | undefined;
157
+ docs?: "always" | "never" | "thresholds" | undefined;
158
+ schema?: "always" | "never" | "thresholds" | undefined;
159
+ source?: "always" | "never" | "thresholds" | undefined;
160
+ test?: "always" | "never" | "thresholds" | undefined;
161
+ };
162
+ readonly output: {
163
+ config?: "always" | "never" | "thresholds" | undefined;
164
+ dependency?: "always" | "never" | "thresholds" | undefined;
165
+ docs?: "always" | "never" | "thresholds" | undefined;
166
+ schema?: "always" | "never" | "thresholds" | undefined;
167
+ source?: "always" | "never" | "thresholds" | undefined;
168
+ test?: "always" | "never" | "thresholds" | undefined;
169
+ };
170
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
171
+ } | undefined;
172
+ };
173
+ member: Omit<v.StrictObjectSchema<{
174
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
175
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
176
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
177
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
178
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
179
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
180
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
181
+ readonly entries: {
182
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
183
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
184
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
185
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
186
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
187
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
188
+ };
189
+ readonly "~standard": v.StandardProps<{
190
+ config?: "always" | "never" | "thresholds" | undefined;
191
+ dependency?: "always" | "never" | "thresholds" | undefined;
192
+ docs?: "always" | "never" | "thresholds" | undefined;
193
+ schema?: "always" | "never" | "thresholds" | undefined;
194
+ source?: "always" | "never" | "thresholds" | undefined;
195
+ test?: "always" | "never" | "thresholds" | undefined;
196
+ }, {
197
+ config?: "always" | "never" | "thresholds" | undefined;
198
+ dependency?: "always" | "never" | "thresholds" | undefined;
199
+ docs?: "always" | "never" | "thresholds" | undefined;
200
+ schema?: "always" | "never" | "thresholds" | undefined;
201
+ source?: "always" | "never" | "thresholds" | undefined;
202
+ test?: "always" | "never" | "thresholds" | undefined;
203
+ }>;
204
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
205
+ config?: "always" | "never" | "thresholds" | undefined;
206
+ dependency?: "always" | "never" | "thresholds" | undefined;
207
+ docs?: "always" | "never" | "thresholds" | undefined;
208
+ schema?: "always" | "never" | "thresholds" | undefined;
209
+ source?: "always" | "never" | "thresholds" | undefined;
210
+ test?: "always" | "never" | "thresholds" | undefined;
211
+ }, v.PicklistIssue | v.StrictObjectIssue>;
212
+ readonly "~types"?: {
213
+ readonly input: {
214
+ config?: "always" | "never" | "thresholds" | undefined;
215
+ dependency?: "always" | "never" | "thresholds" | undefined;
216
+ docs?: "always" | "never" | "thresholds" | undefined;
217
+ schema?: "always" | "never" | "thresholds" | undefined;
218
+ source?: "always" | "never" | "thresholds" | undefined;
219
+ test?: "always" | "never" | "thresholds" | undefined;
220
+ };
221
+ readonly output: {
222
+ config?: "always" | "never" | "thresholds" | undefined;
223
+ dependency?: "always" | "never" | "thresholds" | undefined;
224
+ docs?: "always" | "never" | "thresholds" | undefined;
225
+ schema?: "always" | "never" | "thresholds" | undefined;
226
+ source?: "always" | "never" | "thresholds" | undefined;
227
+ test?: "always" | "never" | "thresholds" | undefined;
228
+ };
229
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
230
+ } | undefined;
231
+ };
232
+ viewer: Omit<v.StrictObjectSchema<{
233
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
234
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
235
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
236
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
237
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
238
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
239
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
240
+ readonly entries: {
241
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
242
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
243
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
244
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
245
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
246
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
247
+ };
248
+ readonly "~standard": v.StandardProps<{
249
+ config?: "always" | "never" | "thresholds" | undefined;
250
+ dependency?: "always" | "never" | "thresholds" | undefined;
251
+ docs?: "always" | "never" | "thresholds" | undefined;
252
+ schema?: "always" | "never" | "thresholds" | undefined;
253
+ source?: "always" | "never" | "thresholds" | undefined;
254
+ test?: "always" | "never" | "thresholds" | undefined;
255
+ }, {
256
+ config?: "always" | "never" | "thresholds" | undefined;
257
+ dependency?: "always" | "never" | "thresholds" | undefined;
258
+ docs?: "always" | "never" | "thresholds" | undefined;
259
+ schema?: "always" | "never" | "thresholds" | undefined;
260
+ source?: "always" | "never" | "thresholds" | undefined;
261
+ test?: "always" | "never" | "thresholds" | undefined;
262
+ }>;
263
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
264
+ config?: "always" | "never" | "thresholds" | undefined;
265
+ dependency?: "always" | "never" | "thresholds" | undefined;
266
+ docs?: "always" | "never" | "thresholds" | undefined;
267
+ schema?: "always" | "never" | "thresholds" | undefined;
268
+ source?: "always" | "never" | "thresholds" | undefined;
269
+ test?: "always" | "never" | "thresholds" | undefined;
270
+ }, v.PicklistIssue | v.StrictObjectIssue>;
271
+ readonly "~types"?: {
272
+ readonly input: {
273
+ config?: "always" | "never" | "thresholds" | undefined;
274
+ dependency?: "always" | "never" | "thresholds" | undefined;
275
+ docs?: "always" | "never" | "thresholds" | undefined;
276
+ schema?: "always" | "never" | "thresholds" | undefined;
277
+ source?: "always" | "never" | "thresholds" | undefined;
278
+ test?: "always" | "never" | "thresholds" | undefined;
279
+ };
280
+ readonly output: {
281
+ config?: "always" | "never" | "thresholds" | undefined;
282
+ dependency?: "always" | "never" | "thresholds" | undefined;
283
+ docs?: "always" | "never" | "thresholds" | undefined;
284
+ schema?: "always" | "never" | "thresholds" | undefined;
285
+ source?: "always" | "never" | "thresholds" | undefined;
286
+ test?: "always" | "never" | "thresholds" | undefined;
287
+ };
288
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
289
+ } | undefined;
290
+ };
291
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
292
+ readonly entries: {
293
+ admin: v.OptionalSchema<Omit<v.StrictObjectSchema<{
294
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
295
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
296
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
297
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
298
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
299
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
300
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
301
+ readonly entries: {
302
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
303
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
304
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
305
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
306
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
307
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
308
+ };
309
+ readonly "~standard": v.StandardProps<{
310
+ config?: "always" | "never" | "thresholds" | undefined;
311
+ dependency?: "always" | "never" | "thresholds" | undefined;
312
+ docs?: "always" | "never" | "thresholds" | undefined;
313
+ schema?: "always" | "never" | "thresholds" | undefined;
314
+ source?: "always" | "never" | "thresholds" | undefined;
315
+ test?: "always" | "never" | "thresholds" | undefined;
316
+ }, {
317
+ config?: "always" | "never" | "thresholds" | undefined;
318
+ dependency?: "always" | "never" | "thresholds" | undefined;
319
+ docs?: "always" | "never" | "thresholds" | undefined;
320
+ schema?: "always" | "never" | "thresholds" | undefined;
321
+ source?: "always" | "never" | "thresholds" | undefined;
322
+ test?: "always" | "never" | "thresholds" | undefined;
323
+ }>;
324
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
325
+ config?: "always" | "never" | "thresholds" | undefined;
326
+ dependency?: "always" | "never" | "thresholds" | undefined;
327
+ docs?: "always" | "never" | "thresholds" | undefined;
328
+ schema?: "always" | "never" | "thresholds" | undefined;
329
+ source?: "always" | "never" | "thresholds" | undefined;
330
+ test?: "always" | "never" | "thresholds" | undefined;
331
+ }, v.PicklistIssue | v.StrictObjectIssue>;
332
+ readonly "~types"?: {
333
+ readonly input: {
334
+ config?: "always" | "never" | "thresholds" | undefined;
335
+ dependency?: "always" | "never" | "thresholds" | undefined;
336
+ docs?: "always" | "never" | "thresholds" | undefined;
337
+ schema?: "always" | "never" | "thresholds" | undefined;
338
+ source?: "always" | "never" | "thresholds" | undefined;
339
+ test?: "always" | "never" | "thresholds" | undefined;
340
+ };
341
+ readonly output: {
342
+ config?: "always" | "never" | "thresholds" | undefined;
343
+ dependency?: "always" | "never" | "thresholds" | undefined;
344
+ docs?: "always" | "never" | "thresholds" | undefined;
345
+ schema?: "always" | "never" | "thresholds" | undefined;
346
+ source?: "always" | "never" | "thresholds" | undefined;
347
+ test?: "always" | "never" | "thresholds" | undefined;
348
+ };
349
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
350
+ } | undefined;
351
+ }, undefined>;
352
+ member: v.OptionalSchema<Omit<v.StrictObjectSchema<{
353
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
354
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
355
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
356
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
357
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
358
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
359
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
360
+ readonly entries: {
361
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
362
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
363
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
364
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
365
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
366
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
367
+ };
368
+ readonly "~standard": v.StandardProps<{
369
+ config?: "always" | "never" | "thresholds" | undefined;
370
+ dependency?: "always" | "never" | "thresholds" | undefined;
371
+ docs?: "always" | "never" | "thresholds" | undefined;
372
+ schema?: "always" | "never" | "thresholds" | undefined;
373
+ source?: "always" | "never" | "thresholds" | undefined;
374
+ test?: "always" | "never" | "thresholds" | undefined;
375
+ }, {
376
+ config?: "always" | "never" | "thresholds" | undefined;
377
+ dependency?: "always" | "never" | "thresholds" | undefined;
378
+ docs?: "always" | "never" | "thresholds" | undefined;
379
+ schema?: "always" | "never" | "thresholds" | undefined;
380
+ source?: "always" | "never" | "thresholds" | undefined;
381
+ test?: "always" | "never" | "thresholds" | undefined;
382
+ }>;
383
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
384
+ config?: "always" | "never" | "thresholds" | undefined;
385
+ dependency?: "always" | "never" | "thresholds" | undefined;
386
+ docs?: "always" | "never" | "thresholds" | undefined;
387
+ schema?: "always" | "never" | "thresholds" | undefined;
388
+ source?: "always" | "never" | "thresholds" | undefined;
389
+ test?: "always" | "never" | "thresholds" | undefined;
390
+ }, v.PicklistIssue | v.StrictObjectIssue>;
391
+ readonly "~types"?: {
392
+ readonly input: {
393
+ config?: "always" | "never" | "thresholds" | undefined;
394
+ dependency?: "always" | "never" | "thresholds" | undefined;
395
+ docs?: "always" | "never" | "thresholds" | undefined;
396
+ schema?: "always" | "never" | "thresholds" | undefined;
397
+ source?: "always" | "never" | "thresholds" | undefined;
398
+ test?: "always" | "never" | "thresholds" | undefined;
399
+ };
400
+ readonly output: {
401
+ config?: "always" | "never" | "thresholds" | undefined;
402
+ dependency?: "always" | "never" | "thresholds" | undefined;
403
+ docs?: "always" | "never" | "thresholds" | undefined;
404
+ schema?: "always" | "never" | "thresholds" | undefined;
405
+ source?: "always" | "never" | "thresholds" | undefined;
406
+ test?: "always" | "never" | "thresholds" | undefined;
407
+ };
408
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
409
+ } | undefined;
410
+ }, undefined>;
411
+ viewer: v.OptionalSchema<Omit<v.StrictObjectSchema<{
412
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
413
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
414
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
415
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
416
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
417
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
418
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
419
+ readonly entries: {
420
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
421
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
422
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
423
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
424
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
425
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
426
+ };
427
+ readonly "~standard": v.StandardProps<{
428
+ config?: "always" | "never" | "thresholds" | undefined;
429
+ dependency?: "always" | "never" | "thresholds" | undefined;
430
+ docs?: "always" | "never" | "thresholds" | undefined;
431
+ schema?: "always" | "never" | "thresholds" | undefined;
432
+ source?: "always" | "never" | "thresholds" | undefined;
433
+ test?: "always" | "never" | "thresholds" | undefined;
434
+ }, {
435
+ config?: "always" | "never" | "thresholds" | undefined;
436
+ dependency?: "always" | "never" | "thresholds" | undefined;
437
+ docs?: "always" | "never" | "thresholds" | undefined;
438
+ schema?: "always" | "never" | "thresholds" | undefined;
439
+ source?: "always" | "never" | "thresholds" | undefined;
440
+ test?: "always" | "never" | "thresholds" | undefined;
441
+ }>;
442
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
443
+ config?: "always" | "never" | "thresholds" | undefined;
444
+ dependency?: "always" | "never" | "thresholds" | undefined;
445
+ docs?: "always" | "never" | "thresholds" | undefined;
446
+ schema?: "always" | "never" | "thresholds" | undefined;
447
+ source?: "always" | "never" | "thresholds" | undefined;
448
+ test?: "always" | "never" | "thresholds" | undefined;
449
+ }, v.PicklistIssue | v.StrictObjectIssue>;
450
+ readonly "~types"?: {
451
+ readonly input: {
452
+ config?: "always" | "never" | "thresholds" | undefined;
453
+ dependency?: "always" | "never" | "thresholds" | undefined;
454
+ docs?: "always" | "never" | "thresholds" | undefined;
455
+ schema?: "always" | "never" | "thresholds" | undefined;
456
+ source?: "always" | "never" | "thresholds" | undefined;
457
+ test?: "always" | "never" | "thresholds" | undefined;
458
+ };
459
+ readonly output: {
460
+ config?: "always" | "never" | "thresholds" | undefined;
461
+ dependency?: "always" | "never" | "thresholds" | undefined;
462
+ docs?: "always" | "never" | "thresholds" | undefined;
463
+ schema?: "always" | "never" | "thresholds" | undefined;
464
+ source?: "always" | "never" | "thresholds" | undefined;
465
+ test?: "always" | "never" | "thresholds" | undefined;
466
+ };
467
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
468
+ } | undefined;
469
+ }, undefined>;
470
+ };
471
+ readonly "~standard": v.StandardProps<{
472
+ admin?: {
473
+ config?: "always" | "never" | "thresholds" | undefined;
474
+ dependency?: "always" | "never" | "thresholds" | undefined;
475
+ docs?: "always" | "never" | "thresholds" | undefined;
476
+ schema?: "always" | "never" | "thresholds" | undefined;
477
+ source?: "always" | "never" | "thresholds" | undefined;
478
+ test?: "always" | "never" | "thresholds" | undefined;
479
+ } | undefined;
480
+ member?: {
481
+ config?: "always" | "never" | "thresholds" | undefined;
482
+ dependency?: "always" | "never" | "thresholds" | undefined;
483
+ docs?: "always" | "never" | "thresholds" | undefined;
484
+ schema?: "always" | "never" | "thresholds" | undefined;
485
+ source?: "always" | "never" | "thresholds" | undefined;
486
+ test?: "always" | "never" | "thresholds" | undefined;
487
+ } | undefined;
488
+ viewer?: {
489
+ config?: "always" | "never" | "thresholds" | undefined;
490
+ dependency?: "always" | "never" | "thresholds" | undefined;
491
+ docs?: "always" | "never" | "thresholds" | undefined;
492
+ schema?: "always" | "never" | "thresholds" | undefined;
493
+ source?: "always" | "never" | "thresholds" | undefined;
494
+ test?: "always" | "never" | "thresholds" | undefined;
495
+ } | undefined;
496
+ }, {
497
+ admin?: {
498
+ config?: "always" | "never" | "thresholds" | undefined;
499
+ dependency?: "always" | "never" | "thresholds" | undefined;
500
+ docs?: "always" | "never" | "thresholds" | undefined;
501
+ schema?: "always" | "never" | "thresholds" | undefined;
502
+ source?: "always" | "never" | "thresholds" | undefined;
503
+ test?: "always" | "never" | "thresholds" | undefined;
504
+ } | undefined;
505
+ member?: {
506
+ config?: "always" | "never" | "thresholds" | undefined;
507
+ dependency?: "always" | "never" | "thresholds" | undefined;
508
+ docs?: "always" | "never" | "thresholds" | undefined;
509
+ schema?: "always" | "never" | "thresholds" | undefined;
510
+ source?: "always" | "never" | "thresholds" | undefined;
511
+ test?: "always" | "never" | "thresholds" | undefined;
512
+ } | undefined;
513
+ viewer?: {
514
+ config?: "always" | "never" | "thresholds" | undefined;
515
+ dependency?: "always" | "never" | "thresholds" | undefined;
516
+ docs?: "always" | "never" | "thresholds" | undefined;
517
+ schema?: "always" | "never" | "thresholds" | undefined;
518
+ source?: "always" | "never" | "thresholds" | undefined;
519
+ test?: "always" | "never" | "thresholds" | undefined;
520
+ } | undefined;
521
+ }>;
522
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
523
+ admin?: {
524
+ config?: "always" | "never" | "thresholds" | undefined;
525
+ dependency?: "always" | "never" | "thresholds" | undefined;
526
+ docs?: "always" | "never" | "thresholds" | undefined;
527
+ schema?: "always" | "never" | "thresholds" | undefined;
528
+ source?: "always" | "never" | "thresholds" | undefined;
529
+ test?: "always" | "never" | "thresholds" | undefined;
530
+ } | undefined;
531
+ member?: {
532
+ config?: "always" | "never" | "thresholds" | undefined;
533
+ dependency?: "always" | "never" | "thresholds" | undefined;
534
+ docs?: "always" | "never" | "thresholds" | undefined;
535
+ schema?: "always" | "never" | "thresholds" | undefined;
536
+ source?: "always" | "never" | "thresholds" | undefined;
537
+ test?: "always" | "never" | "thresholds" | undefined;
538
+ } | undefined;
539
+ viewer?: {
540
+ config?: "always" | "never" | "thresholds" | undefined;
541
+ dependency?: "always" | "never" | "thresholds" | undefined;
542
+ docs?: "always" | "never" | "thresholds" | undefined;
543
+ schema?: "always" | "never" | "thresholds" | undefined;
544
+ source?: "always" | "never" | "thresholds" | undefined;
545
+ test?: "always" | "never" | "thresholds" | undefined;
546
+ } | undefined;
547
+ }, v.PicklistIssue | v.StrictObjectIssue>;
548
+ readonly "~types"?: {
549
+ readonly input: {
550
+ admin?: {
551
+ config?: "always" | "never" | "thresholds" | undefined;
552
+ dependency?: "always" | "never" | "thresholds" | undefined;
553
+ docs?: "always" | "never" | "thresholds" | undefined;
554
+ schema?: "always" | "never" | "thresholds" | undefined;
555
+ source?: "always" | "never" | "thresholds" | undefined;
556
+ test?: "always" | "never" | "thresholds" | undefined;
557
+ } | undefined;
558
+ member?: {
559
+ config?: "always" | "never" | "thresholds" | undefined;
560
+ dependency?: "always" | "never" | "thresholds" | undefined;
561
+ docs?: "always" | "never" | "thresholds" | undefined;
562
+ schema?: "always" | "never" | "thresholds" | undefined;
563
+ source?: "always" | "never" | "thresholds" | undefined;
564
+ test?: "always" | "never" | "thresholds" | undefined;
565
+ } | undefined;
566
+ viewer?: {
567
+ config?: "always" | "never" | "thresholds" | undefined;
568
+ dependency?: "always" | "never" | "thresholds" | undefined;
569
+ docs?: "always" | "never" | "thresholds" | undefined;
570
+ schema?: "always" | "never" | "thresholds" | undefined;
571
+ source?: "always" | "never" | "thresholds" | undefined;
572
+ test?: "always" | "never" | "thresholds" | undefined;
573
+ } | undefined;
574
+ };
575
+ readonly output: {
576
+ admin?: {
577
+ config?: "always" | "never" | "thresholds" | undefined;
578
+ dependency?: "always" | "never" | "thresholds" | undefined;
579
+ docs?: "always" | "never" | "thresholds" | undefined;
580
+ schema?: "always" | "never" | "thresholds" | undefined;
581
+ source?: "always" | "never" | "thresholds" | undefined;
582
+ test?: "always" | "never" | "thresholds" | undefined;
583
+ } | undefined;
584
+ member?: {
585
+ config?: "always" | "never" | "thresholds" | undefined;
586
+ dependency?: "always" | "never" | "thresholds" | undefined;
587
+ docs?: "always" | "never" | "thresholds" | undefined;
588
+ schema?: "always" | "never" | "thresholds" | undefined;
589
+ source?: "always" | "never" | "thresholds" | undefined;
590
+ test?: "always" | "never" | "thresholds" | undefined;
591
+ } | undefined;
592
+ viewer?: {
593
+ config?: "always" | "never" | "thresholds" | undefined;
594
+ dependency?: "always" | "never" | "thresholds" | undefined;
595
+ docs?: "always" | "never" | "thresholds" | undefined;
596
+ schema?: "always" | "never" | "thresholds" | undefined;
597
+ source?: "always" | "never" | "thresholds" | undefined;
598
+ test?: "always" | "never" | "thresholds" | undefined;
599
+ } | undefined;
600
+ };
601
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
602
+ } | undefined;
603
+ };
604
+ export type ClassRulesByRole = v.InferOutput<typeof classRulesByRoleSchema>;
605
+ /**
606
+ * The roles whose runs are FORCED into dry-run mode ({@link RunMode}) by this preset: every run
607
+ * such a role starts does the work and opens its PR, but nothing merges — not automatically, and
608
+ * not through the manual merge endpoint either.
609
+ *
610
+ * This is the "sandboxed run for a non-engineer" setting. It is expressed on the preset rather
611
+ * than on the role catalog because it is a POLICY about a body of work (this service's tasks),
612
+ * not a capability of the person: the same product manager may be trusted to land copy changes on
613
+ * one service and nothing at all on another, and the preset is already what a task selects.
614
+ *
615
+ * Empty on every built-in, so the default is byte-for-byte the historical behaviour. A role that
616
+ * cannot start runs at all (`viewer`, which holds no `runs.execute`) may be listed without effect.
617
+ */
618
+ export declare const dryRunRolesSchema: v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>;
94
619
  export declare const mergeAssessmentSchema: v.ObjectSchema<{
95
620
  /** How intricate the change is (size, coupling, subtlety). */
96
621
  readonly complexity: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
@@ -120,76 +645,678 @@ export declare const riskPolicySchema: v.ObjectSchema<{
120
645
  /** How many times the `ci-fixer` agent may try to turn CI green before giving up. */
121
646
  readonly ciMaxAttempts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
122
647
  /**
123
- * How many reviewer passes the iterative requirements-review loop may run before it
124
- * stops on its own and asks the human to pick (extra round / proceed anyway / reset the
125
- * task). One reviewer pass = one iteration; the initial review counts as iteration 1.
648
+ * How many reviewer passes the iterative requirements-review loop may run before it
649
+ * stops on its own and asks the human to pick (extra round / proceed anyway / reset the
650
+ * task). One reviewer pass = one iteration; the initial review counts as iteration 1.
651
+ */
652
+ readonly maxRequirementIterations: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
653
+ /**
654
+ * The highest finding severity the requirements review tolerates WITHOUT stopping. When
655
+ * every outstanding finding from a reviewer pass is at or below this level, the findings
656
+ * are recorded but the run does NOT pause for human approval — the incorporation
657
+ * companion is skipped and the next pipeline step runs automatically. `none` (the
658
+ * default) tolerates nothing, so any finding pauses for a human; `high` tolerates
659
+ * everything. Severity order: none < low < medium < high.
660
+ */
661
+ readonly maxRequirementConcernAllowed: v.PicklistSchema<["none", "low", "medium", "high"], undefined>;
662
+ /**
663
+ * How many times the test quality-control companion may loop the Tester for a more
664
+ * complete report before it stops gating and lets the run proceed to the greenlight /
665
+ * fixer decision. One QC-driven Tester re-run = one iteration, so this is the maximum
666
+ * number of QC re-runs: `1` permits a single re-run before the gate gives up. Independent
667
+ * of the `ciMaxAttempts` fixer budget.
668
+ */
669
+ readonly maxTesterQualityIterations: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
670
+ /**
671
+ * How long (minutes) the post-release-health gate watches the deployed release's
672
+ * Datadog monitors/SLOs before declaring it healthy and advancing.
673
+ */
674
+ readonly releaseWatchWindowMinutes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
675
+ /**
676
+ * How many `on-call` investigations the post-release-health gate may dispatch while
677
+ * watching before it gives up and raises a notification. The on-call agent investigates
678
+ * rather than fixing prod, so 1 is the sensible default.
679
+ */
680
+ readonly releaseMaxAttempts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
681
+ /**
682
+ * How long (minutes) the `human-review` gate waits after the latest review comment before
683
+ * dispatching the `fixer` to address the batch — a grace window so a reviewer leaving a
684
+ * series of comments isn't churned mid-stream. Only the unapproved path waits; an approved
685
+ * PR's outstanding comments are addressed immediately.
686
+ */
687
+ readonly humanReviewGraceMinutes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
688
+ /**
689
+ * The minimum score (0..1) a JUDGE step's verdict must reach for the run to advance
690
+ * without a human. Below it, the judge applies its registration's `onFail` disposition
691
+ * (park / bounce / fail). The per-task counterpart of `maxRequirementConcernAllowed`:
692
+ * how much rubric deviation THIS task tolerates. See `docs/initiatives/judge-registry.md`.
693
+ */
694
+ readonly judgeMinScore: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
695
+ /**
696
+ * How many BOUNCE rounds a judge may spend — re-arming the preceding producing step with
697
+ * the verdict's findings as rework feedback — before it must stop and ask a human. `0`
698
+ * means never bounce (a failing verdict goes straight to the registration's park/fail).
699
+ */
700
+ readonly judgeMaxBounces: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
701
+ /**
702
+ * When false the `merger` step never auto-merges: every PR is routed to a human
703
+ * `merge_review` notification regardless of the assessment scores. The built-in
704
+ * "Manual review only" preset sets this; a custom preset may too. Defaults to true
705
+ * (the historical behaviour: auto-merge a within-threshold, explained assessment).
706
+ */
707
+ readonly autoMergeEnabled: v.BooleanSchema<undefined>;
708
+ /**
709
+ * Estimate gating for the optional implementation-fork decision phase on the Coder step
710
+ * (the same three axes / `onMissingEstimate` as any other {@link stepGatingSchema}). When
711
+ * present and `enabled`, a task whose Coder config resolves to `auto` surfaces materially
712
+ * different implementation approaches and parks for a human whenever ANY supplied axis of
713
+ * its estimate is met/exceeded; `onMissingEstimate: 'run'` proposes even without an
714
+ * estimate (fail toward asking). Absent/disabled ⇒ fork surfacing is off in `auto` mode
715
+ * (a task can still force it via its `always` tri-state). Disabled by default on the
716
+ * built-in presets.
717
+ */
718
+ readonly forkDecision: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
719
+ readonly enabled: v.BooleanSchema<undefined>;
720
+ readonly minComplexity: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
721
+ readonly minRisk: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
722
+ readonly minImpact: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
723
+ readonly onMissingEstimate: v.OptionalSchema<v.PicklistSchema<["run", "skip"], undefined>, "run">;
724
+ }, undefined>, undefined>, undefined>;
725
+ /**
726
+ * Per-change-class auto-merge rules ({@link mergeClassRulesSchema}). An absent class — and
727
+ * therefore an empty object — means "use the score ceilings above", so `{}` is the identity.
728
+ * A rule NEVER overrides `autoMergeEnabled: false`: that master switch wins first.
729
+ */
730
+ readonly classRules: Omit<v.StrictObjectSchema<{
731
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
732
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
733
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
734
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
735
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
736
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
737
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
738
+ readonly entries: {
739
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
740
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
741
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
742
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
743
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
744
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
745
+ };
746
+ readonly "~standard": v.StandardProps<{
747
+ config?: "always" | "never" | "thresholds" | undefined;
748
+ dependency?: "always" | "never" | "thresholds" | undefined;
749
+ docs?: "always" | "never" | "thresholds" | undefined;
750
+ schema?: "always" | "never" | "thresholds" | undefined;
751
+ source?: "always" | "never" | "thresholds" | undefined;
752
+ test?: "always" | "never" | "thresholds" | undefined;
753
+ }, {
754
+ config?: "always" | "never" | "thresholds" | undefined;
755
+ dependency?: "always" | "never" | "thresholds" | undefined;
756
+ docs?: "always" | "never" | "thresholds" | undefined;
757
+ schema?: "always" | "never" | "thresholds" | undefined;
758
+ source?: "always" | "never" | "thresholds" | undefined;
759
+ test?: "always" | "never" | "thresholds" | undefined;
760
+ }>;
761
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
762
+ config?: "always" | "never" | "thresholds" | undefined;
763
+ dependency?: "always" | "never" | "thresholds" | undefined;
764
+ docs?: "always" | "never" | "thresholds" | undefined;
765
+ schema?: "always" | "never" | "thresholds" | undefined;
766
+ source?: "always" | "never" | "thresholds" | undefined;
767
+ test?: "always" | "never" | "thresholds" | undefined;
768
+ }, v.PicklistIssue | v.StrictObjectIssue>;
769
+ readonly "~types"?: {
770
+ readonly input: {
771
+ config?: "always" | "never" | "thresholds" | undefined;
772
+ dependency?: "always" | "never" | "thresholds" | undefined;
773
+ docs?: "always" | "never" | "thresholds" | undefined;
774
+ schema?: "always" | "never" | "thresholds" | undefined;
775
+ source?: "always" | "never" | "thresholds" | undefined;
776
+ test?: "always" | "never" | "thresholds" | undefined;
777
+ };
778
+ readonly output: {
779
+ config?: "always" | "never" | "thresholds" | undefined;
780
+ dependency?: "always" | "never" | "thresholds" | undefined;
781
+ docs?: "always" | "never" | "thresholds" | undefined;
782
+ schema?: "always" | "never" | "thresholds" | undefined;
783
+ source?: "always" | "never" | "thresholds" | undefined;
784
+ test?: "always" | "never" | "thresholds" | undefined;
785
+ };
786
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
787
+ } | undefined;
788
+ };
789
+ /**
790
+ * Per-ROLE narrowing of `classRules` ({@link classRulesByRoleSchema}), keyed on the workspace
791
+ * role the run's initiator held when it was admitted. Narrow-only, so an empty map is the
792
+ * identity and a role entry can never widen what `classRules` already allows.
793
+ */
794
+ readonly classRulesByRole: Omit<v.StrictObjectSchema<{
795
+ admin: Omit<v.StrictObjectSchema<{
796
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
797
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
798
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
799
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
800
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
801
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
802
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
803
+ readonly entries: {
804
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
805
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
806
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
807
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
808
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
809
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
810
+ };
811
+ readonly "~standard": v.StandardProps<{
812
+ config?: "always" | "never" | "thresholds" | undefined;
813
+ dependency?: "always" | "never" | "thresholds" | undefined;
814
+ docs?: "always" | "never" | "thresholds" | undefined;
815
+ schema?: "always" | "never" | "thresholds" | undefined;
816
+ source?: "always" | "never" | "thresholds" | undefined;
817
+ test?: "always" | "never" | "thresholds" | undefined;
818
+ }, {
819
+ config?: "always" | "never" | "thresholds" | undefined;
820
+ dependency?: "always" | "never" | "thresholds" | undefined;
821
+ docs?: "always" | "never" | "thresholds" | undefined;
822
+ schema?: "always" | "never" | "thresholds" | undefined;
823
+ source?: "always" | "never" | "thresholds" | undefined;
824
+ test?: "always" | "never" | "thresholds" | undefined;
825
+ }>;
826
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
827
+ config?: "always" | "never" | "thresholds" | undefined;
828
+ dependency?: "always" | "never" | "thresholds" | undefined;
829
+ docs?: "always" | "never" | "thresholds" | undefined;
830
+ schema?: "always" | "never" | "thresholds" | undefined;
831
+ source?: "always" | "never" | "thresholds" | undefined;
832
+ test?: "always" | "never" | "thresholds" | undefined;
833
+ }, v.PicklistIssue | v.StrictObjectIssue>;
834
+ readonly "~types"?: {
835
+ readonly input: {
836
+ config?: "always" | "never" | "thresholds" | undefined;
837
+ dependency?: "always" | "never" | "thresholds" | undefined;
838
+ docs?: "always" | "never" | "thresholds" | undefined;
839
+ schema?: "always" | "never" | "thresholds" | undefined;
840
+ source?: "always" | "never" | "thresholds" | undefined;
841
+ test?: "always" | "never" | "thresholds" | undefined;
842
+ };
843
+ readonly output: {
844
+ config?: "always" | "never" | "thresholds" | undefined;
845
+ dependency?: "always" | "never" | "thresholds" | undefined;
846
+ docs?: "always" | "never" | "thresholds" | undefined;
847
+ schema?: "always" | "never" | "thresholds" | undefined;
848
+ source?: "always" | "never" | "thresholds" | undefined;
849
+ test?: "always" | "never" | "thresholds" | undefined;
850
+ };
851
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
852
+ } | undefined;
853
+ };
854
+ member: Omit<v.StrictObjectSchema<{
855
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
856
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
857
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
858
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
859
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
860
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
861
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
862
+ readonly entries: {
863
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
864
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
865
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
866
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
867
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
868
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
869
+ };
870
+ readonly "~standard": v.StandardProps<{
871
+ config?: "always" | "never" | "thresholds" | undefined;
872
+ dependency?: "always" | "never" | "thresholds" | undefined;
873
+ docs?: "always" | "never" | "thresholds" | undefined;
874
+ schema?: "always" | "never" | "thresholds" | undefined;
875
+ source?: "always" | "never" | "thresholds" | undefined;
876
+ test?: "always" | "never" | "thresholds" | undefined;
877
+ }, {
878
+ config?: "always" | "never" | "thresholds" | undefined;
879
+ dependency?: "always" | "never" | "thresholds" | undefined;
880
+ docs?: "always" | "never" | "thresholds" | undefined;
881
+ schema?: "always" | "never" | "thresholds" | undefined;
882
+ source?: "always" | "never" | "thresholds" | undefined;
883
+ test?: "always" | "never" | "thresholds" | undefined;
884
+ }>;
885
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
886
+ config?: "always" | "never" | "thresholds" | undefined;
887
+ dependency?: "always" | "never" | "thresholds" | undefined;
888
+ docs?: "always" | "never" | "thresholds" | undefined;
889
+ schema?: "always" | "never" | "thresholds" | undefined;
890
+ source?: "always" | "never" | "thresholds" | undefined;
891
+ test?: "always" | "never" | "thresholds" | undefined;
892
+ }, v.PicklistIssue | v.StrictObjectIssue>;
893
+ readonly "~types"?: {
894
+ readonly input: {
895
+ config?: "always" | "never" | "thresholds" | undefined;
896
+ dependency?: "always" | "never" | "thresholds" | undefined;
897
+ docs?: "always" | "never" | "thresholds" | undefined;
898
+ schema?: "always" | "never" | "thresholds" | undefined;
899
+ source?: "always" | "never" | "thresholds" | undefined;
900
+ test?: "always" | "never" | "thresholds" | undefined;
901
+ };
902
+ readonly output: {
903
+ config?: "always" | "never" | "thresholds" | undefined;
904
+ dependency?: "always" | "never" | "thresholds" | undefined;
905
+ docs?: "always" | "never" | "thresholds" | undefined;
906
+ schema?: "always" | "never" | "thresholds" | undefined;
907
+ source?: "always" | "never" | "thresholds" | undefined;
908
+ test?: "always" | "never" | "thresholds" | undefined;
909
+ };
910
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
911
+ } | undefined;
912
+ };
913
+ viewer: Omit<v.StrictObjectSchema<{
914
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
915
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
916
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
917
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
918
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
919
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
920
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
921
+ readonly entries: {
922
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
923
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
924
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
925
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
926
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
927
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
928
+ };
929
+ readonly "~standard": v.StandardProps<{
930
+ config?: "always" | "never" | "thresholds" | undefined;
931
+ dependency?: "always" | "never" | "thresholds" | undefined;
932
+ docs?: "always" | "never" | "thresholds" | undefined;
933
+ schema?: "always" | "never" | "thresholds" | undefined;
934
+ source?: "always" | "never" | "thresholds" | undefined;
935
+ test?: "always" | "never" | "thresholds" | undefined;
936
+ }, {
937
+ config?: "always" | "never" | "thresholds" | undefined;
938
+ dependency?: "always" | "never" | "thresholds" | undefined;
939
+ docs?: "always" | "never" | "thresholds" | undefined;
940
+ schema?: "always" | "never" | "thresholds" | undefined;
941
+ source?: "always" | "never" | "thresholds" | undefined;
942
+ test?: "always" | "never" | "thresholds" | undefined;
943
+ }>;
944
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
945
+ config?: "always" | "never" | "thresholds" | undefined;
946
+ dependency?: "always" | "never" | "thresholds" | undefined;
947
+ docs?: "always" | "never" | "thresholds" | undefined;
948
+ schema?: "always" | "never" | "thresholds" | undefined;
949
+ source?: "always" | "never" | "thresholds" | undefined;
950
+ test?: "always" | "never" | "thresholds" | undefined;
951
+ }, v.PicklistIssue | v.StrictObjectIssue>;
952
+ readonly "~types"?: {
953
+ readonly input: {
954
+ config?: "always" | "never" | "thresholds" | undefined;
955
+ dependency?: "always" | "never" | "thresholds" | undefined;
956
+ docs?: "always" | "never" | "thresholds" | undefined;
957
+ schema?: "always" | "never" | "thresholds" | undefined;
958
+ source?: "always" | "never" | "thresholds" | undefined;
959
+ test?: "always" | "never" | "thresholds" | undefined;
960
+ };
961
+ readonly output: {
962
+ config?: "always" | "never" | "thresholds" | undefined;
963
+ dependency?: "always" | "never" | "thresholds" | undefined;
964
+ docs?: "always" | "never" | "thresholds" | undefined;
965
+ schema?: "always" | "never" | "thresholds" | undefined;
966
+ source?: "always" | "never" | "thresholds" | undefined;
967
+ test?: "always" | "never" | "thresholds" | undefined;
968
+ };
969
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
970
+ } | undefined;
971
+ };
972
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
973
+ readonly entries: {
974
+ admin: v.OptionalSchema<Omit<v.StrictObjectSchema<{
975
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
976
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
977
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
978
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
979
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
980
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
981
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
982
+ readonly entries: {
983
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
984
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
985
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
986
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
987
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
988
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
989
+ };
990
+ readonly "~standard": v.StandardProps<{
991
+ config?: "always" | "never" | "thresholds" | undefined;
992
+ dependency?: "always" | "never" | "thresholds" | undefined;
993
+ docs?: "always" | "never" | "thresholds" | undefined;
994
+ schema?: "always" | "never" | "thresholds" | undefined;
995
+ source?: "always" | "never" | "thresholds" | undefined;
996
+ test?: "always" | "never" | "thresholds" | undefined;
997
+ }, {
998
+ config?: "always" | "never" | "thresholds" | undefined;
999
+ dependency?: "always" | "never" | "thresholds" | undefined;
1000
+ docs?: "always" | "never" | "thresholds" | undefined;
1001
+ schema?: "always" | "never" | "thresholds" | undefined;
1002
+ source?: "always" | "never" | "thresholds" | undefined;
1003
+ test?: "always" | "never" | "thresholds" | undefined;
1004
+ }>;
1005
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1006
+ config?: "always" | "never" | "thresholds" | undefined;
1007
+ dependency?: "always" | "never" | "thresholds" | undefined;
1008
+ docs?: "always" | "never" | "thresholds" | undefined;
1009
+ schema?: "always" | "never" | "thresholds" | undefined;
1010
+ source?: "always" | "never" | "thresholds" | undefined;
1011
+ test?: "always" | "never" | "thresholds" | undefined;
1012
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1013
+ readonly "~types"?: {
1014
+ readonly input: {
1015
+ config?: "always" | "never" | "thresholds" | undefined;
1016
+ dependency?: "always" | "never" | "thresholds" | undefined;
1017
+ docs?: "always" | "never" | "thresholds" | undefined;
1018
+ schema?: "always" | "never" | "thresholds" | undefined;
1019
+ source?: "always" | "never" | "thresholds" | undefined;
1020
+ test?: "always" | "never" | "thresholds" | undefined;
1021
+ };
1022
+ readonly output: {
1023
+ config?: "always" | "never" | "thresholds" | undefined;
1024
+ dependency?: "always" | "never" | "thresholds" | undefined;
1025
+ docs?: "always" | "never" | "thresholds" | undefined;
1026
+ schema?: "always" | "never" | "thresholds" | undefined;
1027
+ source?: "always" | "never" | "thresholds" | undefined;
1028
+ test?: "always" | "never" | "thresholds" | undefined;
1029
+ };
1030
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1031
+ } | undefined;
1032
+ }, undefined>;
1033
+ member: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1034
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1035
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1036
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1037
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1038
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1039
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1040
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1041
+ readonly entries: {
1042
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1043
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1044
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1045
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1046
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1047
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1048
+ };
1049
+ readonly "~standard": v.StandardProps<{
1050
+ config?: "always" | "never" | "thresholds" | undefined;
1051
+ dependency?: "always" | "never" | "thresholds" | undefined;
1052
+ docs?: "always" | "never" | "thresholds" | undefined;
1053
+ schema?: "always" | "never" | "thresholds" | undefined;
1054
+ source?: "always" | "never" | "thresholds" | undefined;
1055
+ test?: "always" | "never" | "thresholds" | undefined;
1056
+ }, {
1057
+ config?: "always" | "never" | "thresholds" | undefined;
1058
+ dependency?: "always" | "never" | "thresholds" | undefined;
1059
+ docs?: "always" | "never" | "thresholds" | undefined;
1060
+ schema?: "always" | "never" | "thresholds" | undefined;
1061
+ source?: "always" | "never" | "thresholds" | undefined;
1062
+ test?: "always" | "never" | "thresholds" | undefined;
1063
+ }>;
1064
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1065
+ config?: "always" | "never" | "thresholds" | undefined;
1066
+ dependency?: "always" | "never" | "thresholds" | undefined;
1067
+ docs?: "always" | "never" | "thresholds" | undefined;
1068
+ schema?: "always" | "never" | "thresholds" | undefined;
1069
+ source?: "always" | "never" | "thresholds" | undefined;
1070
+ test?: "always" | "never" | "thresholds" | undefined;
1071
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1072
+ readonly "~types"?: {
1073
+ readonly input: {
1074
+ config?: "always" | "never" | "thresholds" | undefined;
1075
+ dependency?: "always" | "never" | "thresholds" | undefined;
1076
+ docs?: "always" | "never" | "thresholds" | undefined;
1077
+ schema?: "always" | "never" | "thresholds" | undefined;
1078
+ source?: "always" | "never" | "thresholds" | undefined;
1079
+ test?: "always" | "never" | "thresholds" | undefined;
1080
+ };
1081
+ readonly output: {
1082
+ config?: "always" | "never" | "thresholds" | undefined;
1083
+ dependency?: "always" | "never" | "thresholds" | undefined;
1084
+ docs?: "always" | "never" | "thresholds" | undefined;
1085
+ schema?: "always" | "never" | "thresholds" | undefined;
1086
+ source?: "always" | "never" | "thresholds" | undefined;
1087
+ test?: "always" | "never" | "thresholds" | undefined;
1088
+ };
1089
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1090
+ } | undefined;
1091
+ }, undefined>;
1092
+ viewer: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1093
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1094
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1095
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1096
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1097
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1098
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1099
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1100
+ readonly entries: {
1101
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1102
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1103
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1104
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1105
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1106
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1107
+ };
1108
+ readonly "~standard": v.StandardProps<{
1109
+ config?: "always" | "never" | "thresholds" | undefined;
1110
+ dependency?: "always" | "never" | "thresholds" | undefined;
1111
+ docs?: "always" | "never" | "thresholds" | undefined;
1112
+ schema?: "always" | "never" | "thresholds" | undefined;
1113
+ source?: "always" | "never" | "thresholds" | undefined;
1114
+ test?: "always" | "never" | "thresholds" | undefined;
1115
+ }, {
1116
+ config?: "always" | "never" | "thresholds" | undefined;
1117
+ dependency?: "always" | "never" | "thresholds" | undefined;
1118
+ docs?: "always" | "never" | "thresholds" | undefined;
1119
+ schema?: "always" | "never" | "thresholds" | undefined;
1120
+ source?: "always" | "never" | "thresholds" | undefined;
1121
+ test?: "always" | "never" | "thresholds" | undefined;
1122
+ }>;
1123
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1124
+ config?: "always" | "never" | "thresholds" | undefined;
1125
+ dependency?: "always" | "never" | "thresholds" | undefined;
1126
+ docs?: "always" | "never" | "thresholds" | undefined;
1127
+ schema?: "always" | "never" | "thresholds" | undefined;
1128
+ source?: "always" | "never" | "thresholds" | undefined;
1129
+ test?: "always" | "never" | "thresholds" | undefined;
1130
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1131
+ readonly "~types"?: {
1132
+ readonly input: {
1133
+ config?: "always" | "never" | "thresholds" | undefined;
1134
+ dependency?: "always" | "never" | "thresholds" | undefined;
1135
+ docs?: "always" | "never" | "thresholds" | undefined;
1136
+ schema?: "always" | "never" | "thresholds" | undefined;
1137
+ source?: "always" | "never" | "thresholds" | undefined;
1138
+ test?: "always" | "never" | "thresholds" | undefined;
1139
+ };
1140
+ readonly output: {
1141
+ config?: "always" | "never" | "thresholds" | undefined;
1142
+ dependency?: "always" | "never" | "thresholds" | undefined;
1143
+ docs?: "always" | "never" | "thresholds" | undefined;
1144
+ schema?: "always" | "never" | "thresholds" | undefined;
1145
+ source?: "always" | "never" | "thresholds" | undefined;
1146
+ test?: "always" | "never" | "thresholds" | undefined;
1147
+ };
1148
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1149
+ } | undefined;
1150
+ }, undefined>;
1151
+ };
1152
+ readonly "~standard": v.StandardProps<{
1153
+ admin?: {
1154
+ config?: "always" | "never" | "thresholds" | undefined;
1155
+ dependency?: "always" | "never" | "thresholds" | undefined;
1156
+ docs?: "always" | "never" | "thresholds" | undefined;
1157
+ schema?: "always" | "never" | "thresholds" | undefined;
1158
+ source?: "always" | "never" | "thresholds" | undefined;
1159
+ test?: "always" | "never" | "thresholds" | undefined;
1160
+ } | undefined;
1161
+ member?: {
1162
+ config?: "always" | "never" | "thresholds" | undefined;
1163
+ dependency?: "always" | "never" | "thresholds" | undefined;
1164
+ docs?: "always" | "never" | "thresholds" | undefined;
1165
+ schema?: "always" | "never" | "thresholds" | undefined;
1166
+ source?: "always" | "never" | "thresholds" | undefined;
1167
+ test?: "always" | "never" | "thresholds" | undefined;
1168
+ } | undefined;
1169
+ viewer?: {
1170
+ config?: "always" | "never" | "thresholds" | undefined;
1171
+ dependency?: "always" | "never" | "thresholds" | undefined;
1172
+ docs?: "always" | "never" | "thresholds" | undefined;
1173
+ schema?: "always" | "never" | "thresholds" | undefined;
1174
+ source?: "always" | "never" | "thresholds" | undefined;
1175
+ test?: "always" | "never" | "thresholds" | undefined;
1176
+ } | undefined;
1177
+ }, {
1178
+ admin?: {
1179
+ config?: "always" | "never" | "thresholds" | undefined;
1180
+ dependency?: "always" | "never" | "thresholds" | undefined;
1181
+ docs?: "always" | "never" | "thresholds" | undefined;
1182
+ schema?: "always" | "never" | "thresholds" | undefined;
1183
+ source?: "always" | "never" | "thresholds" | undefined;
1184
+ test?: "always" | "never" | "thresholds" | undefined;
1185
+ } | undefined;
1186
+ member?: {
1187
+ config?: "always" | "never" | "thresholds" | undefined;
1188
+ dependency?: "always" | "never" | "thresholds" | undefined;
1189
+ docs?: "always" | "never" | "thresholds" | undefined;
1190
+ schema?: "always" | "never" | "thresholds" | undefined;
1191
+ source?: "always" | "never" | "thresholds" | undefined;
1192
+ test?: "always" | "never" | "thresholds" | undefined;
1193
+ } | undefined;
1194
+ viewer?: {
1195
+ config?: "always" | "never" | "thresholds" | undefined;
1196
+ dependency?: "always" | "never" | "thresholds" | undefined;
1197
+ docs?: "always" | "never" | "thresholds" | undefined;
1198
+ schema?: "always" | "never" | "thresholds" | undefined;
1199
+ source?: "always" | "never" | "thresholds" | undefined;
1200
+ test?: "always" | "never" | "thresholds" | undefined;
1201
+ } | undefined;
1202
+ }>;
1203
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1204
+ admin?: {
1205
+ config?: "always" | "never" | "thresholds" | undefined;
1206
+ dependency?: "always" | "never" | "thresholds" | undefined;
1207
+ docs?: "always" | "never" | "thresholds" | undefined;
1208
+ schema?: "always" | "never" | "thresholds" | undefined;
1209
+ source?: "always" | "never" | "thresholds" | undefined;
1210
+ test?: "always" | "never" | "thresholds" | undefined;
1211
+ } | undefined;
1212
+ member?: {
1213
+ config?: "always" | "never" | "thresholds" | undefined;
1214
+ dependency?: "always" | "never" | "thresholds" | undefined;
1215
+ docs?: "always" | "never" | "thresholds" | undefined;
1216
+ schema?: "always" | "never" | "thresholds" | undefined;
1217
+ source?: "always" | "never" | "thresholds" | undefined;
1218
+ test?: "always" | "never" | "thresholds" | undefined;
1219
+ } | undefined;
1220
+ viewer?: {
1221
+ config?: "always" | "never" | "thresholds" | undefined;
1222
+ dependency?: "always" | "never" | "thresholds" | undefined;
1223
+ docs?: "always" | "never" | "thresholds" | undefined;
1224
+ schema?: "always" | "never" | "thresholds" | undefined;
1225
+ source?: "always" | "never" | "thresholds" | undefined;
1226
+ test?: "always" | "never" | "thresholds" | undefined;
1227
+ } | undefined;
1228
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1229
+ readonly "~types"?: {
1230
+ readonly input: {
1231
+ admin?: {
1232
+ config?: "always" | "never" | "thresholds" | undefined;
1233
+ dependency?: "always" | "never" | "thresholds" | undefined;
1234
+ docs?: "always" | "never" | "thresholds" | undefined;
1235
+ schema?: "always" | "never" | "thresholds" | undefined;
1236
+ source?: "always" | "never" | "thresholds" | undefined;
1237
+ test?: "always" | "never" | "thresholds" | undefined;
1238
+ } | undefined;
1239
+ member?: {
1240
+ config?: "always" | "never" | "thresholds" | undefined;
1241
+ dependency?: "always" | "never" | "thresholds" | undefined;
1242
+ docs?: "always" | "never" | "thresholds" | undefined;
1243
+ schema?: "always" | "never" | "thresholds" | undefined;
1244
+ source?: "always" | "never" | "thresholds" | undefined;
1245
+ test?: "always" | "never" | "thresholds" | undefined;
1246
+ } | undefined;
1247
+ viewer?: {
1248
+ config?: "always" | "never" | "thresholds" | undefined;
1249
+ dependency?: "always" | "never" | "thresholds" | undefined;
1250
+ docs?: "always" | "never" | "thresholds" | undefined;
1251
+ schema?: "always" | "never" | "thresholds" | undefined;
1252
+ source?: "always" | "never" | "thresholds" | undefined;
1253
+ test?: "always" | "never" | "thresholds" | undefined;
1254
+ } | undefined;
1255
+ };
1256
+ readonly output: {
1257
+ admin?: {
1258
+ config?: "always" | "never" | "thresholds" | undefined;
1259
+ dependency?: "always" | "never" | "thresholds" | undefined;
1260
+ docs?: "always" | "never" | "thresholds" | undefined;
1261
+ schema?: "always" | "never" | "thresholds" | undefined;
1262
+ source?: "always" | "never" | "thresholds" | undefined;
1263
+ test?: "always" | "never" | "thresholds" | undefined;
1264
+ } | undefined;
1265
+ member?: {
1266
+ config?: "always" | "never" | "thresholds" | undefined;
1267
+ dependency?: "always" | "never" | "thresholds" | undefined;
1268
+ docs?: "always" | "never" | "thresholds" | undefined;
1269
+ schema?: "always" | "never" | "thresholds" | undefined;
1270
+ source?: "always" | "never" | "thresholds" | undefined;
1271
+ test?: "always" | "never" | "thresholds" | undefined;
1272
+ } | undefined;
1273
+ viewer?: {
1274
+ config?: "always" | "never" | "thresholds" | undefined;
1275
+ dependency?: "always" | "never" | "thresholds" | undefined;
1276
+ docs?: "always" | "never" | "thresholds" | undefined;
1277
+ schema?: "always" | "never" | "thresholds" | undefined;
1278
+ source?: "always" | "never" | "thresholds" | undefined;
1279
+ test?: "always" | "never" | "thresholds" | undefined;
1280
+ } | undefined;
1281
+ };
1282
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1283
+ } | undefined;
1284
+ };
1285
+ /**
1286
+ * Roles whose runs are forced into dry-run mode ({@link dryRunRolesSchema}) — the work happens
1287
+ * and the PR opens, but nothing merges. Empty on the built-ins.
126
1288
  */
127
- readonly maxRequirementIterations: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
1289
+ readonly dryRunRoles: v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>;
1290
+ /** The workspace's fallback preset, used by tasks that pick none. Exactly one is true. */
1291
+ readonly isDefault: v.BooleanSchema<undefined>;
128
1292
  /**
129
- * The highest finding severity the requirements review tolerates WITHOUT stopping. When
130
- * every outstanding finding from a reviewer pass is at or below this level, the findings
131
- * are recorded but the run does NOT pause for human approval the incorporation
132
- * companion is skipped and the next pipeline step runs automatically. `none` (the
133
- * default) tolerates nothing, so any finding pauses for a human; `high` tolerates
134
- * everything. Severity order: none < low < medium < high.
1293
+ * Monotonic seed version for a BUILT-IN preset (`seedRiskPolicies()` assigns it). When the
1294
+ * current catalog version for this id exceeds the persisted copy's `version`, the SPA offers
1295
+ * to reseed it. Absent on user-created presets (not version-tracked) and on rows persisted
1296
+ * before versioning existed (treated as 0).
135
1297
  */
1298
+ readonly version: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1299
+ readonly createdAt: v.NumberSchema<undefined>;
1300
+ }, undefined>;
1301
+ export type RiskPolicy = v.InferOutput<typeof riskPolicySchema>;
1302
+ /** Create a new merge threshold preset in a workspace. */
1303
+ export declare const createRiskPolicySchema: v.ObjectSchema<{
1304
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 60, undefined>]>;
1305
+ readonly maxComplexity: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
1306
+ readonly maxRisk: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
1307
+ readonly maxImpact: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
1308
+ readonly ciMaxAttempts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 50, undefined>]>;
1309
+ readonly maxRequirementIterations: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 20, undefined>]>;
136
1310
  readonly maxRequirementConcernAllowed: v.PicklistSchema<["none", "low", "medium", "high"], undefined>;
137
- /**
138
- * How many times the test quality-control companion may loop the Tester for a more
139
- * complete report before it stops gating and lets the run proceed to the greenlight /
140
- * fixer decision. One QC-driven Tester re-run = one iteration, so this is the maximum
141
- * number of QC re-runs: `1` permits a single re-run before the gate gives up. Independent
142
- * of the `ciMaxAttempts` fixer budget.
143
- */
144
- readonly maxTesterQualityIterations: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
145
- /**
146
- * How long (minutes) the post-release-health gate watches the deployed release's
147
- * Datadog monitors/SLOs before declaring it healthy and advancing.
148
- */
149
- readonly releaseWatchWindowMinutes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
150
- /**
151
- * How many `on-call` investigations the post-release-health gate may dispatch while
152
- * watching before it gives up and raises a notification. The on-call agent investigates
153
- * rather than fixing prod, so 1 is the sensible default.
154
- */
155
- readonly releaseMaxAttempts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
156
- /**
157
- * How long (minutes) the `human-review` gate waits after the latest review comment before
158
- * dispatching the `fixer` to address the batch — a grace window so a reviewer leaving a
159
- * series of comments isn't churned mid-stream. Only the unapproved path waits; an approved
160
- * PR's outstanding comments are addressed immediately.
161
- */
162
- readonly humanReviewGraceMinutes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
163
- /**
164
- * The minimum score (0..1) a JUDGE step's verdict must reach for the run to advance
165
- * without a human. Below it, the judge applies its registration's `onFail` disposition
166
- * (park / bounce / fail). The per-task counterpart of `maxRequirementConcernAllowed`:
167
- * how much rubric deviation THIS task tolerates. See `docs/initiatives/judge-registry.md`.
168
- */
169
- readonly judgeMinScore: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
170
- /**
171
- * How many BOUNCE rounds a judge may spend — re-arming the preceding producing step with
172
- * the verdict's findings as rework feedback — before it must stop and ask a human. `0`
173
- * means never bounce (a failing verdict goes straight to the registration's park/fail).
174
- */
175
- readonly judgeMaxBounces: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
176
- /**
177
- * When false the `merger` step never auto-merges: every PR is routed to a human
178
- * `merge_review` notification regardless of the assessment scores. The built-in
179
- * "Manual review only" preset sets this; a custom preset may too. Defaults to true
180
- * (the historical behaviour: auto-merge a within-threshold, explained assessment).
181
- */
182
- readonly autoMergeEnabled: v.BooleanSchema<undefined>;
183
- /**
184
- * Estimate gating for the optional implementation-fork decision phase on the Coder step
185
- * (the same three axes / `onMissingEstimate` as any other {@link stepGatingSchema}). When
186
- * present and `enabled`, a task whose Coder config resolves to `auto` surfaces materially
187
- * different implementation approaches and parks for a human whenever ANY supplied axis of
188
- * its estimate is met/exceeded; `onMissingEstimate: 'run'` proposes even without an
189
- * estimate (fail toward asking). Absent/disabled ⇒ fork surfacing is off in `auto` mode
190
- * (a task can still force it via its `always` tri-state). Disabled by default on the
191
- * built-in presets.
192
- */
1311
+ readonly maxTesterQualityIterations: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 20, undefined>]>, 3>;
1312
+ readonly releaseWatchWindowMinutes: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 720, undefined>]>, 30>;
1313
+ readonly releaseMaxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 10, undefined>]>, 1>;
1314
+ readonly humanReviewGraceMinutes: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1440, undefined>]>, 10>;
1315
+ readonly judgeMinScore: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, 0.7>;
1316
+ readonly judgeMaxBounces: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 10, undefined>]>, 1>;
1317
+ /** Allow auto-merge of a within-threshold, explained assessment (default true). */
1318
+ readonly autoMergeEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
1319
+ /** Estimate gating for the implementation-fork decision phase; absent ⇒ off in `auto` mode. */
193
1320
  readonly forkDecision: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
194
1321
  readonly enabled: v.BooleanSchema<undefined>;
195
1322
  readonly minComplexity: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
@@ -197,12 +1324,8 @@ export declare const riskPolicySchema: v.ObjectSchema<{
197
1324
  readonly minImpact: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
198
1325
  readonly onMissingEstimate: v.OptionalSchema<v.PicklistSchema<["run", "skip"], undefined>, "run">;
199
1326
  }, undefined>, undefined>, undefined>;
200
- /**
201
- * Per-change-class auto-merge rules ({@link mergeClassRulesSchema}). An absent class — and
202
- * therefore an empty object — means "use the score ceilings above", so `{}` is the identity.
203
- * A rule NEVER overrides `autoMergeEnabled: false`: that master switch wins first.
204
- */
205
- readonly classRules: Omit<v.StrictObjectSchema<{
1327
+ /** Per-change-class auto-merge rules; absent ⇒ every class uses the score ceilings. */
1328
+ readonly classRules: v.OptionalSchema<Omit<v.StrictObjectSchema<{
206
1329
  config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
207
1330
  dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
208
1331
  docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
@@ -249,115 +1372,512 @@ export declare const riskPolicySchema: v.ObjectSchema<{
249
1372
  schema?: "always" | "never" | "thresholds" | undefined;
250
1373
  source?: "always" | "never" | "thresholds" | undefined;
251
1374
  test?: "always" | "never" | "thresholds" | undefined;
252
- };
253
- readonly output: {
1375
+ };
1376
+ readonly output: {
1377
+ config?: "always" | "never" | "thresholds" | undefined;
1378
+ dependency?: "always" | "never" | "thresholds" | undefined;
1379
+ docs?: "always" | "never" | "thresholds" | undefined;
1380
+ schema?: "always" | "never" | "thresholds" | undefined;
1381
+ source?: "always" | "never" | "thresholds" | undefined;
1382
+ test?: "always" | "never" | "thresholds" | undefined;
1383
+ };
1384
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1385
+ } | undefined;
1386
+ }, {}>;
1387
+ /** Per-role narrowing of `classRules`; absent ⇒ every role uses the rules above unchanged. */
1388
+ readonly classRulesByRole: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1389
+ admin: Omit<v.StrictObjectSchema<{
1390
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1391
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1392
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1393
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1394
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1395
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1396
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1397
+ readonly entries: {
1398
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1399
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1400
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1401
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1402
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1403
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1404
+ };
1405
+ readonly "~standard": v.StandardProps<{
1406
+ config?: "always" | "never" | "thresholds" | undefined;
1407
+ dependency?: "always" | "never" | "thresholds" | undefined;
1408
+ docs?: "always" | "never" | "thresholds" | undefined;
1409
+ schema?: "always" | "never" | "thresholds" | undefined;
1410
+ source?: "always" | "never" | "thresholds" | undefined;
1411
+ test?: "always" | "never" | "thresholds" | undefined;
1412
+ }, {
1413
+ config?: "always" | "never" | "thresholds" | undefined;
1414
+ dependency?: "always" | "never" | "thresholds" | undefined;
1415
+ docs?: "always" | "never" | "thresholds" | undefined;
1416
+ schema?: "always" | "never" | "thresholds" | undefined;
1417
+ source?: "always" | "never" | "thresholds" | undefined;
1418
+ test?: "always" | "never" | "thresholds" | undefined;
1419
+ }>;
1420
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1421
+ config?: "always" | "never" | "thresholds" | undefined;
1422
+ dependency?: "always" | "never" | "thresholds" | undefined;
1423
+ docs?: "always" | "never" | "thresholds" | undefined;
1424
+ schema?: "always" | "never" | "thresholds" | undefined;
1425
+ source?: "always" | "never" | "thresholds" | undefined;
1426
+ test?: "always" | "never" | "thresholds" | undefined;
1427
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1428
+ readonly "~types"?: {
1429
+ readonly input: {
1430
+ config?: "always" | "never" | "thresholds" | undefined;
1431
+ dependency?: "always" | "never" | "thresholds" | undefined;
1432
+ docs?: "always" | "never" | "thresholds" | undefined;
1433
+ schema?: "always" | "never" | "thresholds" | undefined;
1434
+ source?: "always" | "never" | "thresholds" | undefined;
1435
+ test?: "always" | "never" | "thresholds" | undefined;
1436
+ };
1437
+ readonly output: {
1438
+ config?: "always" | "never" | "thresholds" | undefined;
1439
+ dependency?: "always" | "never" | "thresholds" | undefined;
1440
+ docs?: "always" | "never" | "thresholds" | undefined;
1441
+ schema?: "always" | "never" | "thresholds" | undefined;
1442
+ source?: "always" | "never" | "thresholds" | undefined;
1443
+ test?: "always" | "never" | "thresholds" | undefined;
1444
+ };
1445
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1446
+ } | undefined;
1447
+ };
1448
+ member: Omit<v.StrictObjectSchema<{
1449
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1450
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1451
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1452
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1453
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1454
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1455
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1456
+ readonly entries: {
1457
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1458
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1459
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1460
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1461
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1462
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1463
+ };
1464
+ readonly "~standard": v.StandardProps<{
1465
+ config?: "always" | "never" | "thresholds" | undefined;
1466
+ dependency?: "always" | "never" | "thresholds" | undefined;
1467
+ docs?: "always" | "never" | "thresholds" | undefined;
1468
+ schema?: "always" | "never" | "thresholds" | undefined;
1469
+ source?: "always" | "never" | "thresholds" | undefined;
1470
+ test?: "always" | "never" | "thresholds" | undefined;
1471
+ }, {
1472
+ config?: "always" | "never" | "thresholds" | undefined;
1473
+ dependency?: "always" | "never" | "thresholds" | undefined;
1474
+ docs?: "always" | "never" | "thresholds" | undefined;
1475
+ schema?: "always" | "never" | "thresholds" | undefined;
1476
+ source?: "always" | "never" | "thresholds" | undefined;
1477
+ test?: "always" | "never" | "thresholds" | undefined;
1478
+ }>;
1479
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1480
+ config?: "always" | "never" | "thresholds" | undefined;
1481
+ dependency?: "always" | "never" | "thresholds" | undefined;
1482
+ docs?: "always" | "never" | "thresholds" | undefined;
1483
+ schema?: "always" | "never" | "thresholds" | undefined;
1484
+ source?: "always" | "never" | "thresholds" | undefined;
1485
+ test?: "always" | "never" | "thresholds" | undefined;
1486
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1487
+ readonly "~types"?: {
1488
+ readonly input: {
1489
+ config?: "always" | "never" | "thresholds" | undefined;
1490
+ dependency?: "always" | "never" | "thresholds" | undefined;
1491
+ docs?: "always" | "never" | "thresholds" | undefined;
1492
+ schema?: "always" | "never" | "thresholds" | undefined;
1493
+ source?: "always" | "never" | "thresholds" | undefined;
1494
+ test?: "always" | "never" | "thresholds" | undefined;
1495
+ };
1496
+ readonly output: {
1497
+ config?: "always" | "never" | "thresholds" | undefined;
1498
+ dependency?: "always" | "never" | "thresholds" | undefined;
1499
+ docs?: "always" | "never" | "thresholds" | undefined;
1500
+ schema?: "always" | "never" | "thresholds" | undefined;
1501
+ source?: "always" | "never" | "thresholds" | undefined;
1502
+ test?: "always" | "never" | "thresholds" | undefined;
1503
+ };
1504
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1505
+ } | undefined;
1506
+ };
1507
+ viewer: Omit<v.StrictObjectSchema<{
1508
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1509
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1510
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1511
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1512
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1513
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1514
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1515
+ readonly entries: {
1516
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1517
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1518
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1519
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1520
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1521
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1522
+ };
1523
+ readonly "~standard": v.StandardProps<{
1524
+ config?: "always" | "never" | "thresholds" | undefined;
1525
+ dependency?: "always" | "never" | "thresholds" | undefined;
1526
+ docs?: "always" | "never" | "thresholds" | undefined;
1527
+ schema?: "always" | "never" | "thresholds" | undefined;
1528
+ source?: "always" | "never" | "thresholds" | undefined;
1529
+ test?: "always" | "never" | "thresholds" | undefined;
1530
+ }, {
1531
+ config?: "always" | "never" | "thresholds" | undefined;
1532
+ dependency?: "always" | "never" | "thresholds" | undefined;
1533
+ docs?: "always" | "never" | "thresholds" | undefined;
1534
+ schema?: "always" | "never" | "thresholds" | undefined;
1535
+ source?: "always" | "never" | "thresholds" | undefined;
1536
+ test?: "always" | "never" | "thresholds" | undefined;
1537
+ }>;
1538
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1539
+ config?: "always" | "never" | "thresholds" | undefined;
1540
+ dependency?: "always" | "never" | "thresholds" | undefined;
1541
+ docs?: "always" | "never" | "thresholds" | undefined;
1542
+ schema?: "always" | "never" | "thresholds" | undefined;
1543
+ source?: "always" | "never" | "thresholds" | undefined;
1544
+ test?: "always" | "never" | "thresholds" | undefined;
1545
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1546
+ readonly "~types"?: {
1547
+ readonly input: {
1548
+ config?: "always" | "never" | "thresholds" | undefined;
1549
+ dependency?: "always" | "never" | "thresholds" | undefined;
1550
+ docs?: "always" | "never" | "thresholds" | undefined;
1551
+ schema?: "always" | "never" | "thresholds" | undefined;
1552
+ source?: "always" | "never" | "thresholds" | undefined;
1553
+ test?: "always" | "never" | "thresholds" | undefined;
1554
+ };
1555
+ readonly output: {
1556
+ config?: "always" | "never" | "thresholds" | undefined;
1557
+ dependency?: "always" | "never" | "thresholds" | undefined;
1558
+ docs?: "always" | "never" | "thresholds" | undefined;
1559
+ schema?: "always" | "never" | "thresholds" | undefined;
1560
+ source?: "always" | "never" | "thresholds" | undefined;
1561
+ test?: "always" | "never" | "thresholds" | undefined;
1562
+ };
1563
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1564
+ } | undefined;
1565
+ };
1566
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1567
+ readonly entries: {
1568
+ admin: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1569
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1570
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1571
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1572
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1573
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1574
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1575
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1576
+ readonly entries: {
1577
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1578
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1579
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1580
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1581
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1582
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1583
+ };
1584
+ readonly "~standard": v.StandardProps<{
1585
+ config?: "always" | "never" | "thresholds" | undefined;
1586
+ dependency?: "always" | "never" | "thresholds" | undefined;
1587
+ docs?: "always" | "never" | "thresholds" | undefined;
1588
+ schema?: "always" | "never" | "thresholds" | undefined;
1589
+ source?: "always" | "never" | "thresholds" | undefined;
1590
+ test?: "always" | "never" | "thresholds" | undefined;
1591
+ }, {
1592
+ config?: "always" | "never" | "thresholds" | undefined;
1593
+ dependency?: "always" | "never" | "thresholds" | undefined;
1594
+ docs?: "always" | "never" | "thresholds" | undefined;
1595
+ schema?: "always" | "never" | "thresholds" | undefined;
1596
+ source?: "always" | "never" | "thresholds" | undefined;
1597
+ test?: "always" | "never" | "thresholds" | undefined;
1598
+ }>;
1599
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1600
+ config?: "always" | "never" | "thresholds" | undefined;
1601
+ dependency?: "always" | "never" | "thresholds" | undefined;
1602
+ docs?: "always" | "never" | "thresholds" | undefined;
1603
+ schema?: "always" | "never" | "thresholds" | undefined;
1604
+ source?: "always" | "never" | "thresholds" | undefined;
1605
+ test?: "always" | "never" | "thresholds" | undefined;
1606
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1607
+ readonly "~types"?: {
1608
+ readonly input: {
1609
+ config?: "always" | "never" | "thresholds" | undefined;
1610
+ dependency?: "always" | "never" | "thresholds" | undefined;
1611
+ docs?: "always" | "never" | "thresholds" | undefined;
1612
+ schema?: "always" | "never" | "thresholds" | undefined;
1613
+ source?: "always" | "never" | "thresholds" | undefined;
1614
+ test?: "always" | "never" | "thresholds" | undefined;
1615
+ };
1616
+ readonly output: {
1617
+ config?: "always" | "never" | "thresholds" | undefined;
1618
+ dependency?: "always" | "never" | "thresholds" | undefined;
1619
+ docs?: "always" | "never" | "thresholds" | undefined;
1620
+ schema?: "always" | "never" | "thresholds" | undefined;
1621
+ source?: "always" | "never" | "thresholds" | undefined;
1622
+ test?: "always" | "never" | "thresholds" | undefined;
1623
+ };
1624
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1625
+ } | undefined;
1626
+ }, undefined>;
1627
+ member: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1628
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1629
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1630
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1631
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1632
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1633
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1634
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1635
+ readonly entries: {
1636
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1637
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1638
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1639
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1640
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1641
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1642
+ };
1643
+ readonly "~standard": v.StandardProps<{
1644
+ config?: "always" | "never" | "thresholds" | undefined;
1645
+ dependency?: "always" | "never" | "thresholds" | undefined;
1646
+ docs?: "always" | "never" | "thresholds" | undefined;
1647
+ schema?: "always" | "never" | "thresholds" | undefined;
1648
+ source?: "always" | "never" | "thresholds" | undefined;
1649
+ test?: "always" | "never" | "thresholds" | undefined;
1650
+ }, {
1651
+ config?: "always" | "never" | "thresholds" | undefined;
1652
+ dependency?: "always" | "never" | "thresholds" | undefined;
1653
+ docs?: "always" | "never" | "thresholds" | undefined;
1654
+ schema?: "always" | "never" | "thresholds" | undefined;
1655
+ source?: "always" | "never" | "thresholds" | undefined;
1656
+ test?: "always" | "never" | "thresholds" | undefined;
1657
+ }>;
1658
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1659
+ config?: "always" | "never" | "thresholds" | undefined;
1660
+ dependency?: "always" | "never" | "thresholds" | undefined;
1661
+ docs?: "always" | "never" | "thresholds" | undefined;
1662
+ schema?: "always" | "never" | "thresholds" | undefined;
1663
+ source?: "always" | "never" | "thresholds" | undefined;
1664
+ test?: "always" | "never" | "thresholds" | undefined;
1665
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1666
+ readonly "~types"?: {
1667
+ readonly input: {
1668
+ config?: "always" | "never" | "thresholds" | undefined;
1669
+ dependency?: "always" | "never" | "thresholds" | undefined;
1670
+ docs?: "always" | "never" | "thresholds" | undefined;
1671
+ schema?: "always" | "never" | "thresholds" | undefined;
1672
+ source?: "always" | "never" | "thresholds" | undefined;
1673
+ test?: "always" | "never" | "thresholds" | undefined;
1674
+ };
1675
+ readonly output: {
1676
+ config?: "always" | "never" | "thresholds" | undefined;
1677
+ dependency?: "always" | "never" | "thresholds" | undefined;
1678
+ docs?: "always" | "never" | "thresholds" | undefined;
1679
+ schema?: "always" | "never" | "thresholds" | undefined;
1680
+ source?: "always" | "never" | "thresholds" | undefined;
1681
+ test?: "always" | "never" | "thresholds" | undefined;
1682
+ };
1683
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1684
+ } | undefined;
1685
+ }, undefined>;
1686
+ viewer: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1687
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1688
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1689
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1690
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1691
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1692
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1693
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1694
+ readonly entries: {
1695
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1696
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1697
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1698
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1699
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1700
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1701
+ };
1702
+ readonly "~standard": v.StandardProps<{
1703
+ config?: "always" | "never" | "thresholds" | undefined;
1704
+ dependency?: "always" | "never" | "thresholds" | undefined;
1705
+ docs?: "always" | "never" | "thresholds" | undefined;
1706
+ schema?: "always" | "never" | "thresholds" | undefined;
1707
+ source?: "always" | "never" | "thresholds" | undefined;
1708
+ test?: "always" | "never" | "thresholds" | undefined;
1709
+ }, {
1710
+ config?: "always" | "never" | "thresholds" | undefined;
1711
+ dependency?: "always" | "never" | "thresholds" | undefined;
1712
+ docs?: "always" | "never" | "thresholds" | undefined;
1713
+ schema?: "always" | "never" | "thresholds" | undefined;
1714
+ source?: "always" | "never" | "thresholds" | undefined;
1715
+ test?: "always" | "never" | "thresholds" | undefined;
1716
+ }>;
1717
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1718
+ config?: "always" | "never" | "thresholds" | undefined;
1719
+ dependency?: "always" | "never" | "thresholds" | undefined;
1720
+ docs?: "always" | "never" | "thresholds" | undefined;
1721
+ schema?: "always" | "never" | "thresholds" | undefined;
1722
+ source?: "always" | "never" | "thresholds" | undefined;
1723
+ test?: "always" | "never" | "thresholds" | undefined;
1724
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1725
+ readonly "~types"?: {
1726
+ readonly input: {
1727
+ config?: "always" | "never" | "thresholds" | undefined;
1728
+ dependency?: "always" | "never" | "thresholds" | undefined;
1729
+ docs?: "always" | "never" | "thresholds" | undefined;
1730
+ schema?: "always" | "never" | "thresholds" | undefined;
1731
+ source?: "always" | "never" | "thresholds" | undefined;
1732
+ test?: "always" | "never" | "thresholds" | undefined;
1733
+ };
1734
+ readonly output: {
1735
+ config?: "always" | "never" | "thresholds" | undefined;
1736
+ dependency?: "always" | "never" | "thresholds" | undefined;
1737
+ docs?: "always" | "never" | "thresholds" | undefined;
1738
+ schema?: "always" | "never" | "thresholds" | undefined;
1739
+ source?: "always" | "never" | "thresholds" | undefined;
1740
+ test?: "always" | "never" | "thresholds" | undefined;
1741
+ };
1742
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
1743
+ } | undefined;
1744
+ }, undefined>;
1745
+ };
1746
+ readonly "~standard": v.StandardProps<{
1747
+ admin?: {
1748
+ config?: "always" | "never" | "thresholds" | undefined;
1749
+ dependency?: "always" | "never" | "thresholds" | undefined;
1750
+ docs?: "always" | "never" | "thresholds" | undefined;
1751
+ schema?: "always" | "never" | "thresholds" | undefined;
1752
+ source?: "always" | "never" | "thresholds" | undefined;
1753
+ test?: "always" | "never" | "thresholds" | undefined;
1754
+ } | undefined;
1755
+ member?: {
1756
+ config?: "always" | "never" | "thresholds" | undefined;
1757
+ dependency?: "always" | "never" | "thresholds" | undefined;
1758
+ docs?: "always" | "never" | "thresholds" | undefined;
1759
+ schema?: "always" | "never" | "thresholds" | undefined;
1760
+ source?: "always" | "never" | "thresholds" | undefined;
1761
+ test?: "always" | "never" | "thresholds" | undefined;
1762
+ } | undefined;
1763
+ viewer?: {
254
1764
  config?: "always" | "never" | "thresholds" | undefined;
255
1765
  dependency?: "always" | "never" | "thresholds" | undefined;
256
1766
  docs?: "always" | "never" | "thresholds" | undefined;
257
1767
  schema?: "always" | "never" | "thresholds" | undefined;
258
1768
  source?: "always" | "never" | "thresholds" | undefined;
259
1769
  test?: "always" | "never" | "thresholds" | undefined;
260
- };
261
- readonly issue: v.PicklistIssue | v.StrictObjectIssue;
262
- } | undefined;
263
- };
264
- /** The workspace's fallback preset, used by tasks that pick none. Exactly one is true. */
265
- readonly isDefault: v.BooleanSchema<undefined>;
266
- /**
267
- * Monotonic seed version for a BUILT-IN preset (`seedRiskPolicies()` assigns it). When the
268
- * current catalog version for this id exceeds the persisted copy's `version`, the SPA offers
269
- * to reseed it. Absent on user-created presets (not version-tracked) and on rows persisted
270
- * before versioning existed (treated as 0).
271
- */
272
- readonly version: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
273
- readonly createdAt: v.NumberSchema<undefined>;
274
- }, undefined>;
275
- export type RiskPolicy = v.InferOutput<typeof riskPolicySchema>;
276
- /** Create a new merge threshold preset in a workspace. */
277
- export declare const createRiskPolicySchema: v.ObjectSchema<{
278
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 60, undefined>]>;
279
- readonly maxComplexity: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
280
- readonly maxRisk: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
281
- readonly maxImpact: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>;
282
- readonly ciMaxAttempts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 50, undefined>]>;
283
- readonly maxRequirementIterations: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 20, undefined>]>;
284
- readonly maxRequirementConcernAllowed: v.PicklistSchema<["none", "low", "medium", "high"], undefined>;
285
- readonly maxTesterQualityIterations: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 20, undefined>]>, 3>;
286
- readonly releaseWatchWindowMinutes: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 720, undefined>]>, 30>;
287
- readonly releaseMaxAttempts: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 10, undefined>]>, 1>;
288
- readonly humanReviewGraceMinutes: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1440, undefined>]>, 10>;
289
- readonly judgeMinScore: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, 0.7>;
290
- readonly judgeMaxBounces: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 10, undefined>]>, 1>;
291
- /** Allow auto-merge of a within-threshold, explained assessment (default true). */
292
- readonly autoMergeEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
293
- /** Estimate gating for the implementation-fork decision phase; absent ⇒ off in `auto` mode. */
294
- readonly forkDecision: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
295
- readonly enabled: v.BooleanSchema<undefined>;
296
- readonly minComplexity: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
297
- readonly minRisk: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
298
- readonly minImpact: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 1, undefined>]>, undefined>;
299
- readonly onMissingEstimate: v.OptionalSchema<v.PicklistSchema<["run", "skip"], undefined>, "run">;
300
- }, undefined>, undefined>, undefined>;
301
- /** Per-change-class auto-merge rules; absent ⇒ every class uses the score ceilings. */
302
- readonly classRules: v.OptionalSchema<Omit<v.StrictObjectSchema<{
303
- config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
304
- dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
305
- docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
306
- schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
307
- source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
308
- test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
309
- }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
310
- readonly entries: {
311
- config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
312
- dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
313
- docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
314
- schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
315
- source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
316
- test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
317
- };
318
- readonly "~standard": v.StandardProps<{
319
- config?: "always" | "never" | "thresholds" | undefined;
320
- dependency?: "always" | "never" | "thresholds" | undefined;
321
- docs?: "always" | "never" | "thresholds" | undefined;
322
- schema?: "always" | "never" | "thresholds" | undefined;
323
- source?: "always" | "never" | "thresholds" | undefined;
324
- test?: "always" | "never" | "thresholds" | undefined;
1770
+ } | undefined;
325
1771
  }, {
326
- config?: "always" | "never" | "thresholds" | undefined;
327
- dependency?: "always" | "never" | "thresholds" | undefined;
328
- docs?: "always" | "never" | "thresholds" | undefined;
329
- schema?: "always" | "never" | "thresholds" | undefined;
330
- source?: "always" | "never" | "thresholds" | undefined;
331
- test?: "always" | "never" | "thresholds" | undefined;
1772
+ admin?: {
1773
+ config?: "always" | "never" | "thresholds" | undefined;
1774
+ dependency?: "always" | "never" | "thresholds" | undefined;
1775
+ docs?: "always" | "never" | "thresholds" | undefined;
1776
+ schema?: "always" | "never" | "thresholds" | undefined;
1777
+ source?: "always" | "never" | "thresholds" | undefined;
1778
+ test?: "always" | "never" | "thresholds" | undefined;
1779
+ } | undefined;
1780
+ member?: {
1781
+ config?: "always" | "never" | "thresholds" | undefined;
1782
+ dependency?: "always" | "never" | "thresholds" | undefined;
1783
+ docs?: "always" | "never" | "thresholds" | undefined;
1784
+ schema?: "always" | "never" | "thresholds" | undefined;
1785
+ source?: "always" | "never" | "thresholds" | undefined;
1786
+ test?: "always" | "never" | "thresholds" | undefined;
1787
+ } | undefined;
1788
+ viewer?: {
1789
+ config?: "always" | "never" | "thresholds" | undefined;
1790
+ dependency?: "always" | "never" | "thresholds" | undefined;
1791
+ docs?: "always" | "never" | "thresholds" | undefined;
1792
+ schema?: "always" | "never" | "thresholds" | undefined;
1793
+ source?: "always" | "never" | "thresholds" | undefined;
1794
+ test?: "always" | "never" | "thresholds" | undefined;
1795
+ } | undefined;
332
1796
  }>;
333
1797
  readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
334
- config?: "always" | "never" | "thresholds" | undefined;
335
- dependency?: "always" | "never" | "thresholds" | undefined;
336
- docs?: "always" | "never" | "thresholds" | undefined;
337
- schema?: "always" | "never" | "thresholds" | undefined;
338
- source?: "always" | "never" | "thresholds" | undefined;
339
- test?: "always" | "never" | "thresholds" | undefined;
340
- }, v.PicklistIssue | v.StrictObjectIssue>;
341
- readonly "~types"?: {
342
- readonly input: {
1798
+ admin?: {
343
1799
  config?: "always" | "never" | "thresholds" | undefined;
344
1800
  dependency?: "always" | "never" | "thresholds" | undefined;
345
1801
  docs?: "always" | "never" | "thresholds" | undefined;
346
1802
  schema?: "always" | "never" | "thresholds" | undefined;
347
1803
  source?: "always" | "never" | "thresholds" | undefined;
348
1804
  test?: "always" | "never" | "thresholds" | undefined;
349
- };
350
- readonly output: {
1805
+ } | undefined;
1806
+ member?: {
1807
+ config?: "always" | "never" | "thresholds" | undefined;
1808
+ dependency?: "always" | "never" | "thresholds" | undefined;
1809
+ docs?: "always" | "never" | "thresholds" | undefined;
1810
+ schema?: "always" | "never" | "thresholds" | undefined;
1811
+ source?: "always" | "never" | "thresholds" | undefined;
1812
+ test?: "always" | "never" | "thresholds" | undefined;
1813
+ } | undefined;
1814
+ viewer?: {
351
1815
  config?: "always" | "never" | "thresholds" | undefined;
352
1816
  dependency?: "always" | "never" | "thresholds" | undefined;
353
1817
  docs?: "always" | "never" | "thresholds" | undefined;
354
1818
  schema?: "always" | "never" | "thresholds" | undefined;
355
1819
  source?: "always" | "never" | "thresholds" | undefined;
356
1820
  test?: "always" | "never" | "thresholds" | undefined;
1821
+ } | undefined;
1822
+ }, v.PicklistIssue | v.StrictObjectIssue>;
1823
+ readonly "~types"?: {
1824
+ readonly input: {
1825
+ admin?: {
1826
+ config?: "always" | "never" | "thresholds" | undefined;
1827
+ dependency?: "always" | "never" | "thresholds" | undefined;
1828
+ docs?: "always" | "never" | "thresholds" | undefined;
1829
+ schema?: "always" | "never" | "thresholds" | undefined;
1830
+ source?: "always" | "never" | "thresholds" | undefined;
1831
+ test?: "always" | "never" | "thresholds" | undefined;
1832
+ } | undefined;
1833
+ member?: {
1834
+ config?: "always" | "never" | "thresholds" | undefined;
1835
+ dependency?: "always" | "never" | "thresholds" | undefined;
1836
+ docs?: "always" | "never" | "thresholds" | undefined;
1837
+ schema?: "always" | "never" | "thresholds" | undefined;
1838
+ source?: "always" | "never" | "thresholds" | undefined;
1839
+ test?: "always" | "never" | "thresholds" | undefined;
1840
+ } | undefined;
1841
+ viewer?: {
1842
+ config?: "always" | "never" | "thresholds" | undefined;
1843
+ dependency?: "always" | "never" | "thresholds" | undefined;
1844
+ docs?: "always" | "never" | "thresholds" | undefined;
1845
+ schema?: "always" | "never" | "thresholds" | undefined;
1846
+ source?: "always" | "never" | "thresholds" | undefined;
1847
+ test?: "always" | "never" | "thresholds" | undefined;
1848
+ } | undefined;
1849
+ };
1850
+ readonly output: {
1851
+ admin?: {
1852
+ config?: "always" | "never" | "thresholds" | undefined;
1853
+ dependency?: "always" | "never" | "thresholds" | undefined;
1854
+ docs?: "always" | "never" | "thresholds" | undefined;
1855
+ schema?: "always" | "never" | "thresholds" | undefined;
1856
+ source?: "always" | "never" | "thresholds" | undefined;
1857
+ test?: "always" | "never" | "thresholds" | undefined;
1858
+ } | undefined;
1859
+ member?: {
1860
+ config?: "always" | "never" | "thresholds" | undefined;
1861
+ dependency?: "always" | "never" | "thresholds" | undefined;
1862
+ docs?: "always" | "never" | "thresholds" | undefined;
1863
+ schema?: "always" | "never" | "thresholds" | undefined;
1864
+ source?: "always" | "never" | "thresholds" | undefined;
1865
+ test?: "always" | "never" | "thresholds" | undefined;
1866
+ } | undefined;
1867
+ viewer?: {
1868
+ config?: "always" | "never" | "thresholds" | undefined;
1869
+ dependency?: "always" | "never" | "thresholds" | undefined;
1870
+ docs?: "always" | "never" | "thresholds" | undefined;
1871
+ schema?: "always" | "never" | "thresholds" | undefined;
1872
+ source?: "always" | "never" | "thresholds" | undefined;
1873
+ test?: "always" | "never" | "thresholds" | undefined;
1874
+ } | undefined;
357
1875
  };
358
1876
  readonly issue: v.PicklistIssue | v.StrictObjectIssue;
359
1877
  } | undefined;
360
1878
  }, {}>;
1879
+ /** Roles whose runs are forced into dry-run mode; absent ⇒ nobody is sandboxed. */
1880
+ readonly dryRunRoles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, readonly []>;
361
1881
  /** Make this the workspace default (demotes the previous default). */
362
1882
  readonly isDefault: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
363
1883
  }, undefined>;
@@ -445,6 +1965,500 @@ export declare const updateRiskPolicySchema: v.ObjectSchema<{
445
1965
  readonly issue: v.PicklistIssue | v.StrictObjectIssue;
446
1966
  } | undefined;
447
1967
  }, undefined>;
1968
+ /** Replaces the whole per-role map (not merged), so clearing a role is a plain omission. */
1969
+ readonly classRulesByRole: v.OptionalSchema<Omit<v.StrictObjectSchema<{
1970
+ admin: Omit<v.StrictObjectSchema<{
1971
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1972
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1973
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1974
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1975
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1976
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
1977
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1978
+ readonly entries: {
1979
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1980
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1981
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1982
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1983
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1984
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
1985
+ };
1986
+ readonly "~standard": v.StandardProps<{
1987
+ config?: "always" | "never" | "thresholds" | undefined;
1988
+ dependency?: "always" | "never" | "thresholds" | undefined;
1989
+ docs?: "always" | "never" | "thresholds" | undefined;
1990
+ schema?: "always" | "never" | "thresholds" | undefined;
1991
+ source?: "always" | "never" | "thresholds" | undefined;
1992
+ test?: "always" | "never" | "thresholds" | undefined;
1993
+ }, {
1994
+ config?: "always" | "never" | "thresholds" | undefined;
1995
+ dependency?: "always" | "never" | "thresholds" | undefined;
1996
+ docs?: "always" | "never" | "thresholds" | undefined;
1997
+ schema?: "always" | "never" | "thresholds" | undefined;
1998
+ source?: "always" | "never" | "thresholds" | undefined;
1999
+ test?: "always" | "never" | "thresholds" | undefined;
2000
+ }>;
2001
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2002
+ config?: "always" | "never" | "thresholds" | undefined;
2003
+ dependency?: "always" | "never" | "thresholds" | undefined;
2004
+ docs?: "always" | "never" | "thresholds" | undefined;
2005
+ schema?: "always" | "never" | "thresholds" | undefined;
2006
+ source?: "always" | "never" | "thresholds" | undefined;
2007
+ test?: "always" | "never" | "thresholds" | undefined;
2008
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2009
+ readonly "~types"?: {
2010
+ readonly input: {
2011
+ config?: "always" | "never" | "thresholds" | undefined;
2012
+ dependency?: "always" | "never" | "thresholds" | undefined;
2013
+ docs?: "always" | "never" | "thresholds" | undefined;
2014
+ schema?: "always" | "never" | "thresholds" | undefined;
2015
+ source?: "always" | "never" | "thresholds" | undefined;
2016
+ test?: "always" | "never" | "thresholds" | undefined;
2017
+ };
2018
+ readonly output: {
2019
+ config?: "always" | "never" | "thresholds" | undefined;
2020
+ dependency?: "always" | "never" | "thresholds" | undefined;
2021
+ docs?: "always" | "never" | "thresholds" | undefined;
2022
+ schema?: "always" | "never" | "thresholds" | undefined;
2023
+ source?: "always" | "never" | "thresholds" | undefined;
2024
+ test?: "always" | "never" | "thresholds" | undefined;
2025
+ };
2026
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2027
+ } | undefined;
2028
+ };
2029
+ member: Omit<v.StrictObjectSchema<{
2030
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2031
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2032
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2033
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2034
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2035
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2036
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
2037
+ readonly entries: {
2038
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2039
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2040
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2041
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2042
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2043
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2044
+ };
2045
+ readonly "~standard": v.StandardProps<{
2046
+ config?: "always" | "never" | "thresholds" | undefined;
2047
+ dependency?: "always" | "never" | "thresholds" | undefined;
2048
+ docs?: "always" | "never" | "thresholds" | undefined;
2049
+ schema?: "always" | "never" | "thresholds" | undefined;
2050
+ source?: "always" | "never" | "thresholds" | undefined;
2051
+ test?: "always" | "never" | "thresholds" | undefined;
2052
+ }, {
2053
+ config?: "always" | "never" | "thresholds" | undefined;
2054
+ dependency?: "always" | "never" | "thresholds" | undefined;
2055
+ docs?: "always" | "never" | "thresholds" | undefined;
2056
+ schema?: "always" | "never" | "thresholds" | undefined;
2057
+ source?: "always" | "never" | "thresholds" | undefined;
2058
+ test?: "always" | "never" | "thresholds" | undefined;
2059
+ }>;
2060
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2061
+ config?: "always" | "never" | "thresholds" | undefined;
2062
+ dependency?: "always" | "never" | "thresholds" | undefined;
2063
+ docs?: "always" | "never" | "thresholds" | undefined;
2064
+ schema?: "always" | "never" | "thresholds" | undefined;
2065
+ source?: "always" | "never" | "thresholds" | undefined;
2066
+ test?: "always" | "never" | "thresholds" | undefined;
2067
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2068
+ readonly "~types"?: {
2069
+ readonly input: {
2070
+ config?: "always" | "never" | "thresholds" | undefined;
2071
+ dependency?: "always" | "never" | "thresholds" | undefined;
2072
+ docs?: "always" | "never" | "thresholds" | undefined;
2073
+ schema?: "always" | "never" | "thresholds" | undefined;
2074
+ source?: "always" | "never" | "thresholds" | undefined;
2075
+ test?: "always" | "never" | "thresholds" | undefined;
2076
+ };
2077
+ readonly output: {
2078
+ config?: "always" | "never" | "thresholds" | undefined;
2079
+ dependency?: "always" | "never" | "thresholds" | undefined;
2080
+ docs?: "always" | "never" | "thresholds" | undefined;
2081
+ schema?: "always" | "never" | "thresholds" | undefined;
2082
+ source?: "always" | "never" | "thresholds" | undefined;
2083
+ test?: "always" | "never" | "thresholds" | undefined;
2084
+ };
2085
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2086
+ } | undefined;
2087
+ };
2088
+ viewer: Omit<v.StrictObjectSchema<{
2089
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2090
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2091
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2092
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2093
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2094
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2095
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
2096
+ readonly entries: {
2097
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2098
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2099
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2100
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2101
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2102
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2103
+ };
2104
+ readonly "~standard": v.StandardProps<{
2105
+ config?: "always" | "never" | "thresholds" | undefined;
2106
+ dependency?: "always" | "never" | "thresholds" | undefined;
2107
+ docs?: "always" | "never" | "thresholds" | undefined;
2108
+ schema?: "always" | "never" | "thresholds" | undefined;
2109
+ source?: "always" | "never" | "thresholds" | undefined;
2110
+ test?: "always" | "never" | "thresholds" | undefined;
2111
+ }, {
2112
+ config?: "always" | "never" | "thresholds" | undefined;
2113
+ dependency?: "always" | "never" | "thresholds" | undefined;
2114
+ docs?: "always" | "never" | "thresholds" | undefined;
2115
+ schema?: "always" | "never" | "thresholds" | undefined;
2116
+ source?: "always" | "never" | "thresholds" | undefined;
2117
+ test?: "always" | "never" | "thresholds" | undefined;
2118
+ }>;
2119
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2120
+ config?: "always" | "never" | "thresholds" | undefined;
2121
+ dependency?: "always" | "never" | "thresholds" | undefined;
2122
+ docs?: "always" | "never" | "thresholds" | undefined;
2123
+ schema?: "always" | "never" | "thresholds" | undefined;
2124
+ source?: "always" | "never" | "thresholds" | undefined;
2125
+ test?: "always" | "never" | "thresholds" | undefined;
2126
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2127
+ readonly "~types"?: {
2128
+ readonly input: {
2129
+ config?: "always" | "never" | "thresholds" | undefined;
2130
+ dependency?: "always" | "never" | "thresholds" | undefined;
2131
+ docs?: "always" | "never" | "thresholds" | undefined;
2132
+ schema?: "always" | "never" | "thresholds" | undefined;
2133
+ source?: "always" | "never" | "thresholds" | undefined;
2134
+ test?: "always" | "never" | "thresholds" | undefined;
2135
+ };
2136
+ readonly output: {
2137
+ config?: "always" | "never" | "thresholds" | undefined;
2138
+ dependency?: "always" | "never" | "thresholds" | undefined;
2139
+ docs?: "always" | "never" | "thresholds" | undefined;
2140
+ schema?: "always" | "never" | "thresholds" | undefined;
2141
+ source?: "always" | "never" | "thresholds" | undefined;
2142
+ test?: "always" | "never" | "thresholds" | undefined;
2143
+ };
2144
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2145
+ } | undefined;
2146
+ };
2147
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
2148
+ readonly entries: {
2149
+ admin: v.OptionalSchema<Omit<v.StrictObjectSchema<{
2150
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2151
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2152
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2153
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2154
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2155
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2156
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
2157
+ readonly entries: {
2158
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2159
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2160
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2161
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2162
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2163
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2164
+ };
2165
+ readonly "~standard": v.StandardProps<{
2166
+ config?: "always" | "never" | "thresholds" | undefined;
2167
+ dependency?: "always" | "never" | "thresholds" | undefined;
2168
+ docs?: "always" | "never" | "thresholds" | undefined;
2169
+ schema?: "always" | "never" | "thresholds" | undefined;
2170
+ source?: "always" | "never" | "thresholds" | undefined;
2171
+ test?: "always" | "never" | "thresholds" | undefined;
2172
+ }, {
2173
+ config?: "always" | "never" | "thresholds" | undefined;
2174
+ dependency?: "always" | "never" | "thresholds" | undefined;
2175
+ docs?: "always" | "never" | "thresholds" | undefined;
2176
+ schema?: "always" | "never" | "thresholds" | undefined;
2177
+ source?: "always" | "never" | "thresholds" | undefined;
2178
+ test?: "always" | "never" | "thresholds" | undefined;
2179
+ }>;
2180
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2181
+ config?: "always" | "never" | "thresholds" | undefined;
2182
+ dependency?: "always" | "never" | "thresholds" | undefined;
2183
+ docs?: "always" | "never" | "thresholds" | undefined;
2184
+ schema?: "always" | "never" | "thresholds" | undefined;
2185
+ source?: "always" | "never" | "thresholds" | undefined;
2186
+ test?: "always" | "never" | "thresholds" | undefined;
2187
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2188
+ readonly "~types"?: {
2189
+ readonly input: {
2190
+ config?: "always" | "never" | "thresholds" | undefined;
2191
+ dependency?: "always" | "never" | "thresholds" | undefined;
2192
+ docs?: "always" | "never" | "thresholds" | undefined;
2193
+ schema?: "always" | "never" | "thresholds" | undefined;
2194
+ source?: "always" | "never" | "thresholds" | undefined;
2195
+ test?: "always" | "never" | "thresholds" | undefined;
2196
+ };
2197
+ readonly output: {
2198
+ config?: "always" | "never" | "thresholds" | undefined;
2199
+ dependency?: "always" | "never" | "thresholds" | undefined;
2200
+ docs?: "always" | "never" | "thresholds" | undefined;
2201
+ schema?: "always" | "never" | "thresholds" | undefined;
2202
+ source?: "always" | "never" | "thresholds" | undefined;
2203
+ test?: "always" | "never" | "thresholds" | undefined;
2204
+ };
2205
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2206
+ } | undefined;
2207
+ }, undefined>;
2208
+ member: v.OptionalSchema<Omit<v.StrictObjectSchema<{
2209
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2210
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2211
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2212
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2213
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2214
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2215
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
2216
+ readonly entries: {
2217
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2218
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2219
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2220
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2221
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2222
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2223
+ };
2224
+ readonly "~standard": v.StandardProps<{
2225
+ config?: "always" | "never" | "thresholds" | undefined;
2226
+ dependency?: "always" | "never" | "thresholds" | undefined;
2227
+ docs?: "always" | "never" | "thresholds" | undefined;
2228
+ schema?: "always" | "never" | "thresholds" | undefined;
2229
+ source?: "always" | "never" | "thresholds" | undefined;
2230
+ test?: "always" | "never" | "thresholds" | undefined;
2231
+ }, {
2232
+ config?: "always" | "never" | "thresholds" | undefined;
2233
+ dependency?: "always" | "never" | "thresholds" | undefined;
2234
+ docs?: "always" | "never" | "thresholds" | undefined;
2235
+ schema?: "always" | "never" | "thresholds" | undefined;
2236
+ source?: "always" | "never" | "thresholds" | undefined;
2237
+ test?: "always" | "never" | "thresholds" | undefined;
2238
+ }>;
2239
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2240
+ config?: "always" | "never" | "thresholds" | undefined;
2241
+ dependency?: "always" | "never" | "thresholds" | undefined;
2242
+ docs?: "always" | "never" | "thresholds" | undefined;
2243
+ schema?: "always" | "never" | "thresholds" | undefined;
2244
+ source?: "always" | "never" | "thresholds" | undefined;
2245
+ test?: "always" | "never" | "thresholds" | undefined;
2246
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2247
+ readonly "~types"?: {
2248
+ readonly input: {
2249
+ config?: "always" | "never" | "thresholds" | undefined;
2250
+ dependency?: "always" | "never" | "thresholds" | undefined;
2251
+ docs?: "always" | "never" | "thresholds" | undefined;
2252
+ schema?: "always" | "never" | "thresholds" | undefined;
2253
+ source?: "always" | "never" | "thresholds" | undefined;
2254
+ test?: "always" | "never" | "thresholds" | undefined;
2255
+ };
2256
+ readonly output: {
2257
+ config?: "always" | "never" | "thresholds" | undefined;
2258
+ dependency?: "always" | "never" | "thresholds" | undefined;
2259
+ docs?: "always" | "never" | "thresholds" | undefined;
2260
+ schema?: "always" | "never" | "thresholds" | undefined;
2261
+ source?: "always" | "never" | "thresholds" | undefined;
2262
+ test?: "always" | "never" | "thresholds" | undefined;
2263
+ };
2264
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2265
+ } | undefined;
2266
+ }, undefined>;
2267
+ viewer: v.OptionalSchema<Omit<v.StrictObjectSchema<{
2268
+ config: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2269
+ dependency: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2270
+ docs: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2271
+ schema: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2272
+ source: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2273
+ test: v.PicklistSchema<["thresholds", "always", "never"], undefined>;
2274
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
2275
+ readonly entries: {
2276
+ config: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2277
+ dependency: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2278
+ docs: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2279
+ schema: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2280
+ source: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2281
+ test: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2282
+ };
2283
+ readonly "~standard": v.StandardProps<{
2284
+ config?: "always" | "never" | "thresholds" | undefined;
2285
+ dependency?: "always" | "never" | "thresholds" | undefined;
2286
+ docs?: "always" | "never" | "thresholds" | undefined;
2287
+ schema?: "always" | "never" | "thresholds" | undefined;
2288
+ source?: "always" | "never" | "thresholds" | undefined;
2289
+ test?: "always" | "never" | "thresholds" | undefined;
2290
+ }, {
2291
+ config?: "always" | "never" | "thresholds" | undefined;
2292
+ dependency?: "always" | "never" | "thresholds" | undefined;
2293
+ docs?: "always" | "never" | "thresholds" | undefined;
2294
+ schema?: "always" | "never" | "thresholds" | undefined;
2295
+ source?: "always" | "never" | "thresholds" | undefined;
2296
+ test?: "always" | "never" | "thresholds" | undefined;
2297
+ }>;
2298
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2299
+ config?: "always" | "never" | "thresholds" | undefined;
2300
+ dependency?: "always" | "never" | "thresholds" | undefined;
2301
+ docs?: "always" | "never" | "thresholds" | undefined;
2302
+ schema?: "always" | "never" | "thresholds" | undefined;
2303
+ source?: "always" | "never" | "thresholds" | undefined;
2304
+ test?: "always" | "never" | "thresholds" | undefined;
2305
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2306
+ readonly "~types"?: {
2307
+ readonly input: {
2308
+ config?: "always" | "never" | "thresholds" | undefined;
2309
+ dependency?: "always" | "never" | "thresholds" | undefined;
2310
+ docs?: "always" | "never" | "thresholds" | undefined;
2311
+ schema?: "always" | "never" | "thresholds" | undefined;
2312
+ source?: "always" | "never" | "thresholds" | undefined;
2313
+ test?: "always" | "never" | "thresholds" | undefined;
2314
+ };
2315
+ readonly output: {
2316
+ config?: "always" | "never" | "thresholds" | undefined;
2317
+ dependency?: "always" | "never" | "thresholds" | undefined;
2318
+ docs?: "always" | "never" | "thresholds" | undefined;
2319
+ schema?: "always" | "never" | "thresholds" | undefined;
2320
+ source?: "always" | "never" | "thresholds" | undefined;
2321
+ test?: "always" | "never" | "thresholds" | undefined;
2322
+ };
2323
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2324
+ } | undefined;
2325
+ }, undefined>;
2326
+ };
2327
+ readonly "~standard": v.StandardProps<{
2328
+ admin?: {
2329
+ config?: "always" | "never" | "thresholds" | undefined;
2330
+ dependency?: "always" | "never" | "thresholds" | undefined;
2331
+ docs?: "always" | "never" | "thresholds" | undefined;
2332
+ schema?: "always" | "never" | "thresholds" | undefined;
2333
+ source?: "always" | "never" | "thresholds" | undefined;
2334
+ test?: "always" | "never" | "thresholds" | undefined;
2335
+ } | undefined;
2336
+ member?: {
2337
+ config?: "always" | "never" | "thresholds" | undefined;
2338
+ dependency?: "always" | "never" | "thresholds" | undefined;
2339
+ docs?: "always" | "never" | "thresholds" | undefined;
2340
+ schema?: "always" | "never" | "thresholds" | undefined;
2341
+ source?: "always" | "never" | "thresholds" | undefined;
2342
+ test?: "always" | "never" | "thresholds" | undefined;
2343
+ } | undefined;
2344
+ viewer?: {
2345
+ config?: "always" | "never" | "thresholds" | undefined;
2346
+ dependency?: "always" | "never" | "thresholds" | undefined;
2347
+ docs?: "always" | "never" | "thresholds" | undefined;
2348
+ schema?: "always" | "never" | "thresholds" | undefined;
2349
+ source?: "always" | "never" | "thresholds" | undefined;
2350
+ test?: "always" | "never" | "thresholds" | undefined;
2351
+ } | undefined;
2352
+ }, {
2353
+ admin?: {
2354
+ config?: "always" | "never" | "thresholds" | undefined;
2355
+ dependency?: "always" | "never" | "thresholds" | undefined;
2356
+ docs?: "always" | "never" | "thresholds" | undefined;
2357
+ schema?: "always" | "never" | "thresholds" | undefined;
2358
+ source?: "always" | "never" | "thresholds" | undefined;
2359
+ test?: "always" | "never" | "thresholds" | undefined;
2360
+ } | undefined;
2361
+ member?: {
2362
+ config?: "always" | "never" | "thresholds" | undefined;
2363
+ dependency?: "always" | "never" | "thresholds" | undefined;
2364
+ docs?: "always" | "never" | "thresholds" | undefined;
2365
+ schema?: "always" | "never" | "thresholds" | undefined;
2366
+ source?: "always" | "never" | "thresholds" | undefined;
2367
+ test?: "always" | "never" | "thresholds" | undefined;
2368
+ } | undefined;
2369
+ viewer?: {
2370
+ config?: "always" | "never" | "thresholds" | undefined;
2371
+ dependency?: "always" | "never" | "thresholds" | undefined;
2372
+ docs?: "always" | "never" | "thresholds" | undefined;
2373
+ schema?: "always" | "never" | "thresholds" | undefined;
2374
+ source?: "always" | "never" | "thresholds" | undefined;
2375
+ test?: "always" | "never" | "thresholds" | undefined;
2376
+ } | undefined;
2377
+ }>;
2378
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
2379
+ admin?: {
2380
+ config?: "always" | "never" | "thresholds" | undefined;
2381
+ dependency?: "always" | "never" | "thresholds" | undefined;
2382
+ docs?: "always" | "never" | "thresholds" | undefined;
2383
+ schema?: "always" | "never" | "thresholds" | undefined;
2384
+ source?: "always" | "never" | "thresholds" | undefined;
2385
+ test?: "always" | "never" | "thresholds" | undefined;
2386
+ } | undefined;
2387
+ member?: {
2388
+ config?: "always" | "never" | "thresholds" | undefined;
2389
+ dependency?: "always" | "never" | "thresholds" | undefined;
2390
+ docs?: "always" | "never" | "thresholds" | undefined;
2391
+ schema?: "always" | "never" | "thresholds" | undefined;
2392
+ source?: "always" | "never" | "thresholds" | undefined;
2393
+ test?: "always" | "never" | "thresholds" | undefined;
2394
+ } | undefined;
2395
+ viewer?: {
2396
+ config?: "always" | "never" | "thresholds" | undefined;
2397
+ dependency?: "always" | "never" | "thresholds" | undefined;
2398
+ docs?: "always" | "never" | "thresholds" | undefined;
2399
+ schema?: "always" | "never" | "thresholds" | undefined;
2400
+ source?: "always" | "never" | "thresholds" | undefined;
2401
+ test?: "always" | "never" | "thresholds" | undefined;
2402
+ } | undefined;
2403
+ }, v.PicklistIssue | v.StrictObjectIssue>;
2404
+ readonly "~types"?: {
2405
+ readonly input: {
2406
+ admin?: {
2407
+ config?: "always" | "never" | "thresholds" | undefined;
2408
+ dependency?: "always" | "never" | "thresholds" | undefined;
2409
+ docs?: "always" | "never" | "thresholds" | undefined;
2410
+ schema?: "always" | "never" | "thresholds" | undefined;
2411
+ source?: "always" | "never" | "thresholds" | undefined;
2412
+ test?: "always" | "never" | "thresholds" | undefined;
2413
+ } | undefined;
2414
+ member?: {
2415
+ config?: "always" | "never" | "thresholds" | undefined;
2416
+ dependency?: "always" | "never" | "thresholds" | undefined;
2417
+ docs?: "always" | "never" | "thresholds" | undefined;
2418
+ schema?: "always" | "never" | "thresholds" | undefined;
2419
+ source?: "always" | "never" | "thresholds" | undefined;
2420
+ test?: "always" | "never" | "thresholds" | undefined;
2421
+ } | undefined;
2422
+ viewer?: {
2423
+ config?: "always" | "never" | "thresholds" | undefined;
2424
+ dependency?: "always" | "never" | "thresholds" | undefined;
2425
+ docs?: "always" | "never" | "thresholds" | undefined;
2426
+ schema?: "always" | "never" | "thresholds" | undefined;
2427
+ source?: "always" | "never" | "thresholds" | undefined;
2428
+ test?: "always" | "never" | "thresholds" | undefined;
2429
+ } | undefined;
2430
+ };
2431
+ readonly output: {
2432
+ admin?: {
2433
+ config?: "always" | "never" | "thresholds" | undefined;
2434
+ dependency?: "always" | "never" | "thresholds" | undefined;
2435
+ docs?: "always" | "never" | "thresholds" | undefined;
2436
+ schema?: "always" | "never" | "thresholds" | undefined;
2437
+ source?: "always" | "never" | "thresholds" | undefined;
2438
+ test?: "always" | "never" | "thresholds" | undefined;
2439
+ } | undefined;
2440
+ member?: {
2441
+ config?: "always" | "never" | "thresholds" | undefined;
2442
+ dependency?: "always" | "never" | "thresholds" | undefined;
2443
+ docs?: "always" | "never" | "thresholds" | undefined;
2444
+ schema?: "always" | "never" | "thresholds" | undefined;
2445
+ source?: "always" | "never" | "thresholds" | undefined;
2446
+ test?: "always" | "never" | "thresholds" | undefined;
2447
+ } | undefined;
2448
+ viewer?: {
2449
+ config?: "always" | "never" | "thresholds" | undefined;
2450
+ dependency?: "always" | "never" | "thresholds" | undefined;
2451
+ docs?: "always" | "never" | "thresholds" | undefined;
2452
+ schema?: "always" | "never" | "thresholds" | undefined;
2453
+ source?: "always" | "never" | "thresholds" | undefined;
2454
+ test?: "always" | "never" | "thresholds" | undefined;
2455
+ } | undefined;
2456
+ };
2457
+ readonly issue: v.PicklistIssue | v.StrictObjectIssue;
2458
+ } | undefined;
2459
+ }, undefined>;
2460
+ /** Replaces the whole list, so un-sandboxing a role is a plain omission. */
2461
+ readonly dryRunRoles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
448
2462
  readonly isDefault: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
449
2463
  }, undefined>;
450
2464
  export type UpdateRiskPolicyInput = v.InferOutput<typeof updateRiskPolicySchema>;
@@ -468,6 +2482,21 @@ export declare const mergeDecisionThresholdsSchema: v.ObjectSchema<{
468
2482
  * `unknown` (rules never match it) or the preset left the class on `thresholds`.
469
2483
  */
470
2484
  readonly classRule: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2485
+ /**
2486
+ * The workspace role the run's initiator held when the run was ADMITTED, when one was pinned.
2487
+ * Absent for an unattributed run (a schedule fire, a public-API start, auth-disabled dev), which
2488
+ * is a real and different state from "started by a viewer" — see
2489
+ * {@link ExecutionInstance.initiatedByRole}. Recorded so the banner can attribute a narrowed
2490
+ * decision to the tier it was narrowed for rather than implying the scores did it.
2491
+ */
2492
+ readonly initiatorRole: v.OptionalSchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>;
2493
+ /**
2494
+ * The rule after the initiator's role narrowed it, recorded ONLY when the narrowing actually
2495
+ * changed the outcome (`roleRule` more restrictive than `classRule`). Absent when the role left
2496
+ * the class alone, so its presence always means "this decision would have gone differently for
2497
+ * someone else".
2498
+ */
2499
+ readonly roleRule: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
471
2500
  }, undefined>;
472
2501
  export type MergeDecisionThresholds = v.InferOutput<typeof mergeDecisionThresholdsSchema>;
473
2502
  export declare const mergeDecisionSchema: v.ObjectSchema<{
@@ -491,8 +2520,17 @@ export declare const mergeDecisionSchema: v.ObjectSchema<{
491
2520
  * explicit operator policy keyed on the DETERMINISTIC backend classification.
492
2521
  * - `class_requires_review`: review; the preset's rule for the change class is `never`,
493
2522
  * regardless of how low the scores were.
2523
+ * - `role_requires_review`: review; the preset's rule for the change class is permissive
2524
+ * enough, but the initiator's ROLE narrows that class to `never`. Kept distinct from
2525
+ * `class_requires_review` because the two need opposite fixes: one is a policy about the
2526
+ * KIND of change (edit the class rule), the other about WHO started it (a teammate on a
2527
+ * higher tier can merge this PR as it stands).
2528
+ * - `dry_run`: review; the run was a DRY RUN, so no outcome of the assessment could have
2529
+ * merged it. The master switch above every other reason, including `auto_merge_disabled`:
2530
+ * a preset that would otherwise auto-merge must not report a dry run's PR as "held back by
2531
+ * the scores", which would send someone editing thresholds that were never consulted.
494
2532
  */
495
- readonly reason: v.PicklistSchema<["within_thresholds", "exceeded_thresholds", "auto_merge_disabled", "no_rationale", "no_assessment", "merge_failed", "merge_partial", "class_auto_merge", "class_requires_review"], undefined>;
2533
+ readonly reason: v.PicklistSchema<["within_thresholds", "exceeded_thresholds", "auto_merge_disabled", "no_rationale", "no_assessment", "merge_failed", "merge_partial", "class_auto_merge", "class_requires_review", "role_requires_review", "dry_run"], undefined>;
496
2534
  /** The merger's assessment (absent only when it produced no parseable one). */
497
2535
  readonly assessment: v.OptionalSchema<v.ObjectSchema<{
498
2536
  /** How intricate the change is (size, coupling, subtlety). */
@@ -518,6 +2556,21 @@ export declare const mergeDecisionSchema: v.ObjectSchema<{
518
2556
  * `unknown` (rules never match it) or the preset left the class on `thresholds`.
519
2557
  */
520
2558
  readonly classRule: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
2559
+ /**
2560
+ * The workspace role the run's initiator held when the run was ADMITTED, when one was pinned.
2561
+ * Absent for an unattributed run (a schedule fire, a public-API start, auth-disabled dev), which
2562
+ * is a real and different state from "started by a viewer" — see
2563
+ * {@link ExecutionInstance.initiatedByRole}. Recorded so the banner can attribute a narrowed
2564
+ * decision to the tier it was narrowed for rather than implying the scores did it.
2565
+ */
2566
+ readonly initiatorRole: v.OptionalSchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>;
2567
+ /**
2568
+ * The rule after the initiator's role narrowed it, recorded ONLY when the narrowing actually
2569
+ * changed the outcome (`roleRule` more restrictive than `classRule`). Absent when the role left
2570
+ * the class alone, so its presence always means "this decision would have gone differently for
2571
+ * someone else".
2572
+ */
2573
+ readonly roleRule: v.OptionalSchema<v.PicklistSchema<["thresholds", "always", "never"], undefined>, undefined>;
521
2574
  }, undefined>;
522
2575
  /** The axes that exceeded their ceiling (empty unless `reason` is `exceeded_thresholds`). */
523
2576
  readonly exceededAxes: v.ArraySchema<v.PicklistSchema<["complexity", "risk", "impact"], undefined>, undefined>;