@intutic/shared-types 2.9.0 → 3.0.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 (119) hide show
  1. package/dist/decide.d.ts +269 -0
  2. package/dist/decide.d.ts.map +1 -0
  3. package/dist/decide.js +781 -0
  4. package/dist/decide.js.map +1 -0
  5. package/dist/decideEngine.d.ts +195 -0
  6. package/dist/decideEngine.d.ts.map +1 -0
  7. package/dist/decideEngine.js +720 -0
  8. package/dist/decideEngine.js.map +1 -0
  9. package/dist/decideEvaluate.d.ts +250 -0
  10. package/dist/decideEvaluate.d.ts.map +1 -0
  11. package/dist/decideEvaluate.js +518 -0
  12. package/dist/decideEvaluate.js.map +1 -0
  13. package/dist/decideHostGuard.d.ts +56 -0
  14. package/dist/decideHostGuard.d.ts.map +1 -0
  15. package/dist/decideHostGuard.js +200 -0
  16. package/dist/decideHostGuard.js.map +1 -0
  17. package/dist/decideLog.d.ts +287 -0
  18. package/dist/decideLog.d.ts.map +1 -0
  19. package/dist/decideLog.js +543 -0
  20. package/dist/decideLog.js.map +1 -0
  21. package/dist/decideLogRedaction.d.ts +12 -0
  22. package/dist/decideLogRedaction.d.ts.map +1 -0
  23. package/dist/decideLogRedaction.js +19 -0
  24. package/dist/decideLogRedaction.js.map +1 -0
  25. package/dist/decideRecord.d.ts +128 -0
  26. package/dist/decideRecord.d.ts.map +1 -0
  27. package/dist/decideRecord.js +266 -0
  28. package/dist/decideRecord.js.map +1 -0
  29. package/dist/decideSdk.d.ts +86 -0
  30. package/dist/decideSdk.d.ts.map +1 -0
  31. package/dist/decideSdk.js +151 -0
  32. package/dist/decideSdk.js.map +1 -0
  33. package/dist/errors.d.ts +11 -1
  34. package/dist/errors.d.ts.map +1 -1
  35. package/dist/errors.js +12 -1
  36. package/dist/errors.js.map +1 -1
  37. package/dist/gateLimits.d.ts +27 -0
  38. package/dist/gateLimits.d.ts.map +1 -1
  39. package/dist/gateLimits.js +29 -1
  40. package/dist/gateLimits.js.map +1 -1
  41. package/dist/gateRuleRecord.d.ts +244 -0
  42. package/dist/gateRuleRecord.d.ts.map +1 -0
  43. package/dist/gateRuleRecord.js +474 -0
  44. package/dist/gateRuleRecord.js.map +1 -0
  45. package/dist/guardrailIr.d.ts +301 -10
  46. package/dist/guardrailIr.d.ts.map +1 -1
  47. package/dist/guardrailIr.js +86 -7
  48. package/dist/guardrailIr.js.map +1 -1
  49. package/dist/guardrailRender.d.ts +38 -4
  50. package/dist/guardrailRender.d.ts.map +1 -1
  51. package/dist/guardrailRender.js +155 -14
  52. package/dist/guardrailRender.js.map +1 -1
  53. package/dist/index.d.ts +28 -6
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +162 -8
  56. package/dist/index.js.map +1 -1
  57. package/dist/lanes.d.ts +94 -0
  58. package/dist/lanes.d.ts.map +1 -0
  59. package/dist/lanes.js +160 -0
  60. package/dist/lanes.js.map +1 -0
  61. package/dist/loopVerify.d.ts +49 -0
  62. package/dist/loopVerify.d.ts.map +1 -0
  63. package/dist/loopVerify.js +77 -0
  64. package/dist/loopVerify.js.map +1 -0
  65. package/dist/mcpBudgets.d.ts +8 -8
  66. package/dist/notifications.d.ts +1 -1
  67. package/dist/notifications.d.ts.map +1 -1
  68. package/dist/notifications.js +14 -0
  69. package/dist/notifications.js.map +1 -1
  70. package/dist/providers.d.ts +13 -0
  71. package/dist/providers.d.ts.map +1 -1
  72. package/dist/providers.js +31 -0
  73. package/dist/providers.js.map +1 -1
  74. package/dist/refusalDetail.d.ts +58 -0
  75. package/dist/refusalDetail.d.ts.map +1 -0
  76. package/dist/refusalDetail.js +128 -0
  77. package/dist/refusalDetail.js.map +1 -0
  78. package/dist/responses/decide.d.ts +1858 -0
  79. package/dist/responses/decide.d.ts.map +1 -0
  80. package/dist/responses/decide.js +166 -0
  81. package/dist/responses/decide.js.map +1 -0
  82. package/dist/responses/gateways.d.ts +745 -101
  83. package/dist/responses/gateways.d.ts.map +1 -1
  84. package/dist/responses/gateways.js +34 -2
  85. package/dist/responses/gateways.js.map +1 -1
  86. package/dist/responses/guardrails.d.ts +1434 -144
  87. package/dist/responses/guardrails.d.ts.map +1 -1
  88. package/dist/responses/identity.d.ts +6 -6
  89. package/dist/responses/index.d.ts +1 -0
  90. package/dist/responses/index.d.ts.map +1 -1
  91. package/dist/responses/index.js +1 -0
  92. package/dist/responses/index.js.map +1 -1
  93. package/dist/responses/integrations.d.ts +84 -84
  94. package/dist/responses/observability.d.ts +272 -92
  95. package/dist/responses/observability.d.ts.map +1 -1
  96. package/dist/responses/observability.js +31 -1
  97. package/dist/responses/observability.js.map +1 -1
  98. package/dist/responses/rules.d.ts +1026 -187
  99. package/dist/responses/rules.d.ts.map +1 -1
  100. package/dist/responses/rules.js +47 -1
  101. package/dist/responses/rules.js.map +1 -1
  102. package/dist/scopeMatch.d.ts +156 -0
  103. package/dist/scopeMatch.d.ts.map +1 -0
  104. package/dist/scopeMatch.js +451 -0
  105. package/dist/scopeMatch.js.map +1 -0
  106. package/dist/sopKeySince.d.ts +41 -0
  107. package/dist/sopKeySince.d.ts.map +1 -0
  108. package/dist/sopKeySince.js +81 -0
  109. package/dist/sopKeySince.js.map +1 -0
  110. package/dist/testOutcome.d.ts +164 -0
  111. package/dist/testOutcome.d.ts.map +1 -0
  112. package/dist/testOutcome.js +454 -0
  113. package/dist/testOutcome.js.map +1 -0
  114. package/dist/upstreamRetry.d.ts +2 -2
  115. package/dist/workspaceSettings.d.ts +91 -0
  116. package/dist/workspaceSettings.d.ts.map +1 -1
  117. package/dist/workspaceSettings.js +48 -2
  118. package/dist/workspaceSettings.js.map +1 -1
  119. package/package.json +2 -2
@@ -0,0 +1,1858 @@
1
+ /**
2
+ * Decide (Intutic 3.0): the responses of `routes/decide.ts`
3
+ * (`/api/v1/decide/…`) and the `decideRules` that `GET /api/v1/policy/resolve`
4
+ * serves.
5
+ *
6
+ * @module
7
+ */
8
+ import { z } from 'zod';
9
+ /** A calibration a rule may enforce under, as `decideRecord.ts`'s `DecidePin` reads it. */
10
+ export declare const DecidePinResponse: z.ZodObject<{
11
+ modelDigest: z.ZodString;
12
+ temperature: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
13
+ band: z.ZodOptional<z.ZodObject<{
14
+ yes_at: z.ZodNumber;
15
+ no_below: z.ZodNumber;
16
+ }, "strip", z.ZodTypeAny, {
17
+ yes_at: number;
18
+ no_below: number;
19
+ }, {
20
+ yes_at: number;
21
+ no_below: number;
22
+ }>>;
23
+ combiner: z.ZodOptional<z.ZodObject<{
24
+ bias: z.ZodNumber;
25
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ bias: number;
28
+ weights: Record<string, number>;
29
+ }, {
30
+ bias: number;
31
+ weights: Record<string, number>;
32
+ }>>;
33
+ evalRunId: z.ZodString;
34
+ source: z.ZodEnum<["local", "server"]>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ modelDigest: string;
37
+ evalRunId: string;
38
+ source: "local" | "server";
39
+ band?: {
40
+ yes_at: number;
41
+ no_below: number;
42
+ } | undefined;
43
+ temperature?: Record<string, number> | undefined;
44
+ combiner?: {
45
+ bias: number;
46
+ weights: Record<string, number>;
47
+ } | undefined;
48
+ }, {
49
+ modelDigest: string;
50
+ evalRunId: string;
51
+ source: "local" | "server";
52
+ band?: {
53
+ yes_at: number;
54
+ no_below: number;
55
+ } | undefined;
56
+ temperature?: Record<string, number> | undefined;
57
+ combiner?: {
58
+ bias: number;
59
+ weights: Record<string, number>;
60
+ } | undefined;
61
+ }>;
62
+ /**
63
+ * One `decide:` line of an enforced SOP or a decide guardrail, as the sync
64
+ * daemon's `ServedDecideRule` reads it. `ir` is the line's text after
65
+ * `decide:`; the daemon validates it itself, so a line that does not read is
66
+ * served too (every gate then refuses what it names).
67
+ */
68
+ export declare const ServedDecideRuleResponse: z.ZodObject<{
69
+ sopId: z.ZodString;
70
+ sopTitle: z.ZodString;
71
+ ruleText: z.ZodString;
72
+ ir: z.ZodString;
73
+ rollout: z.ZodOptional<z.ZodLiteral<"shadow">>;
74
+ ruleHash: z.ZodOptional<z.ZodString>;
75
+ pins: z.ZodArray<z.ZodObject<{
76
+ modelDigest: z.ZodString;
77
+ temperature: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
78
+ band: z.ZodOptional<z.ZodObject<{
79
+ yes_at: z.ZodNumber;
80
+ no_below: z.ZodNumber;
81
+ }, "strip", z.ZodTypeAny, {
82
+ yes_at: number;
83
+ no_below: number;
84
+ }, {
85
+ yes_at: number;
86
+ no_below: number;
87
+ }>>;
88
+ combiner: z.ZodOptional<z.ZodObject<{
89
+ bias: z.ZodNumber;
90
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
91
+ }, "strip", z.ZodTypeAny, {
92
+ bias: number;
93
+ weights: Record<string, number>;
94
+ }, {
95
+ bias: number;
96
+ weights: Record<string, number>;
97
+ }>>;
98
+ evalRunId: z.ZodString;
99
+ source: z.ZodEnum<["local", "server"]>;
100
+ }, "strip", z.ZodTypeAny, {
101
+ modelDigest: string;
102
+ evalRunId: string;
103
+ source: "local" | "server";
104
+ band?: {
105
+ yes_at: number;
106
+ no_below: number;
107
+ } | undefined;
108
+ temperature?: Record<string, number> | undefined;
109
+ combiner?: {
110
+ bias: number;
111
+ weights: Record<string, number>;
112
+ } | undefined;
113
+ }, {
114
+ modelDigest: string;
115
+ evalRunId: string;
116
+ source: "local" | "server";
117
+ band?: {
118
+ yes_at: number;
119
+ no_below: number;
120
+ } | undefined;
121
+ temperature?: Record<string, number> | undefined;
122
+ combiner?: {
123
+ bias: number;
124
+ weights: Record<string, number>;
125
+ } | undefined;
126
+ }>, "many">;
127
+ }, "strip", z.ZodTypeAny, {
128
+ ir: string;
129
+ pins: {
130
+ modelDigest: string;
131
+ evalRunId: string;
132
+ source: "local" | "server";
133
+ band?: {
134
+ yes_at: number;
135
+ no_below: number;
136
+ } | undefined;
137
+ temperature?: Record<string, number> | undefined;
138
+ combiner?: {
139
+ bias: number;
140
+ weights: Record<string, number>;
141
+ } | undefined;
142
+ }[];
143
+ ruleText: string;
144
+ sopTitle: string;
145
+ sopId: string;
146
+ rollout?: "shadow" | undefined;
147
+ ruleHash?: string | undefined;
148
+ }, {
149
+ ir: string;
150
+ pins: {
151
+ modelDigest: string;
152
+ evalRunId: string;
153
+ source: "local" | "server";
154
+ band?: {
155
+ yes_at: number;
156
+ no_below: number;
157
+ } | undefined;
158
+ temperature?: Record<string, number> | undefined;
159
+ combiner?: {
160
+ bias: number;
161
+ weights: Record<string, number>;
162
+ } | undefined;
163
+ }[];
164
+ ruleText: string;
165
+ sopTitle: string;
166
+ sopId: string;
167
+ rollout?: "shadow" | undefined;
168
+ ruleHash?: string | undefined;
169
+ }>;
170
+ export type ServedDecideRuleResponse = z.infer<typeof ServedDecideRuleResponse>;
171
+ /** `POST /api/v1/decide/events`. */
172
+ export declare const DecideEventsIngestResponse: z.ZodObject<{
173
+ accepted: z.ZodNumber;
174
+ duplicates: z.ZodNumber;
175
+ overBudget: z.ZodNumber;
176
+ outOfWindow: z.ZodNumber;
177
+ invalid: z.ZodNumber;
178
+ ignored: z.ZodNumber;
179
+ argsDropped: z.ZodBoolean;
180
+ }, "strip", z.ZodTypeAny, {
181
+ invalid: number;
182
+ duplicates: number;
183
+ accepted: number;
184
+ overBudget: number;
185
+ outOfWindow: number;
186
+ ignored: number;
187
+ argsDropped: boolean;
188
+ }, {
189
+ invalid: number;
190
+ duplicates: number;
191
+ accepted: number;
192
+ overBudget: number;
193
+ outOfWindow: number;
194
+ ignored: number;
195
+ argsDropped: boolean;
196
+ }>;
197
+ export type DecideEventsIngestResponse = z.infer<typeof DecideEventsIngestResponse>;
198
+ export declare const DecideEventResponse: z.ZodObject<{
199
+ eventId: z.ZodString;
200
+ createdAt: z.ZodString;
201
+ receivedAt: z.ZodString;
202
+ source: z.ZodString;
203
+ harness: z.ZodNullable<z.ZodString>;
204
+ ruleRef: z.ZodString;
205
+ ruleHash: z.ZodString;
206
+ modelId: z.ZodNullable<z.ZodString>;
207
+ modelDigest: z.ZodNullable<z.ZodString>;
208
+ adapter: z.ZodNullable<z.ZodString>;
209
+ rollout: z.ZodString;
210
+ effective: z.ZodString;
211
+ outcome: z.ZodString;
212
+ answers: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
213
+ whenValue: z.ZodNullable<z.ZodString>;
214
+ stateHash: z.ZodNullable<z.ZodString>;
215
+ argsExcerpt: z.ZodNullable<z.ZodString>;
216
+ latencyMs: z.ZodNullable<z.ZodNumber>;
217
+ errorCode: z.ZodNullable<z.ZodString>;
218
+ reviewId: z.ZodNullable<z.ZodString>;
219
+ }, "strip", z.ZodTypeAny, {
220
+ rollout: string;
221
+ outcome: string;
222
+ adapter: string | null;
223
+ latencyMs: number | null;
224
+ modelDigest: string | null;
225
+ answers: Record<string, unknown> | null;
226
+ ruleHash: string;
227
+ source: string;
228
+ harness: string | null;
229
+ argsExcerpt: string | null;
230
+ ruleRef: string;
231
+ createdAt: string;
232
+ eventId: string;
233
+ receivedAt: string;
234
+ modelId: string | null;
235
+ effective: string;
236
+ whenValue: string | null;
237
+ stateHash: string | null;
238
+ errorCode: string | null;
239
+ reviewId: string | null;
240
+ }, {
241
+ rollout: string;
242
+ outcome: string;
243
+ adapter: string | null;
244
+ latencyMs: number | null;
245
+ modelDigest: string | null;
246
+ answers: Record<string, unknown> | null;
247
+ ruleHash: string;
248
+ source: string;
249
+ harness: string | null;
250
+ argsExcerpt: string | null;
251
+ ruleRef: string;
252
+ createdAt: string;
253
+ eventId: string;
254
+ receivedAt: string;
255
+ modelId: string | null;
256
+ effective: string;
257
+ whenValue: string | null;
258
+ stateHash: string | null;
259
+ errorCode: string | null;
260
+ reviewId: string | null;
261
+ }>;
262
+ /** `GET /api/v1/decide/events`. */
263
+ export declare const DecideEventListResponse: z.ZodObject<{
264
+ events: z.ZodArray<z.ZodObject<{
265
+ eventId: z.ZodString;
266
+ createdAt: z.ZodString;
267
+ receivedAt: z.ZodString;
268
+ source: z.ZodString;
269
+ harness: z.ZodNullable<z.ZodString>;
270
+ ruleRef: z.ZodString;
271
+ ruleHash: z.ZodString;
272
+ modelId: z.ZodNullable<z.ZodString>;
273
+ modelDigest: z.ZodNullable<z.ZodString>;
274
+ adapter: z.ZodNullable<z.ZodString>;
275
+ rollout: z.ZodString;
276
+ effective: z.ZodString;
277
+ outcome: z.ZodString;
278
+ answers: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
279
+ whenValue: z.ZodNullable<z.ZodString>;
280
+ stateHash: z.ZodNullable<z.ZodString>;
281
+ argsExcerpt: z.ZodNullable<z.ZodString>;
282
+ latencyMs: z.ZodNullable<z.ZodNumber>;
283
+ errorCode: z.ZodNullable<z.ZodString>;
284
+ reviewId: z.ZodNullable<z.ZodString>;
285
+ }, "strip", z.ZodTypeAny, {
286
+ rollout: string;
287
+ outcome: string;
288
+ adapter: string | null;
289
+ latencyMs: number | null;
290
+ modelDigest: string | null;
291
+ answers: Record<string, unknown> | null;
292
+ ruleHash: string;
293
+ source: string;
294
+ harness: string | null;
295
+ argsExcerpt: string | null;
296
+ ruleRef: string;
297
+ createdAt: string;
298
+ eventId: string;
299
+ receivedAt: string;
300
+ modelId: string | null;
301
+ effective: string;
302
+ whenValue: string | null;
303
+ stateHash: string | null;
304
+ errorCode: string | null;
305
+ reviewId: string | null;
306
+ }, {
307
+ rollout: string;
308
+ outcome: string;
309
+ adapter: string | null;
310
+ latencyMs: number | null;
311
+ modelDigest: string | null;
312
+ answers: Record<string, unknown> | null;
313
+ ruleHash: string;
314
+ source: string;
315
+ harness: string | null;
316
+ argsExcerpt: string | null;
317
+ ruleRef: string;
318
+ createdAt: string;
319
+ eventId: string;
320
+ receivedAt: string;
321
+ modelId: string | null;
322
+ effective: string;
323
+ whenValue: string | null;
324
+ stateHash: string | null;
325
+ errorCode: string | null;
326
+ reviewId: string | null;
327
+ }>, "many">;
328
+ nextCursor: z.ZodNullable<z.ZodString>;
329
+ }, "strip", z.ZodTypeAny, {
330
+ events: {
331
+ rollout: string;
332
+ outcome: string;
333
+ adapter: string | null;
334
+ latencyMs: number | null;
335
+ modelDigest: string | null;
336
+ answers: Record<string, unknown> | null;
337
+ ruleHash: string;
338
+ source: string;
339
+ harness: string | null;
340
+ argsExcerpt: string | null;
341
+ ruleRef: string;
342
+ createdAt: string;
343
+ eventId: string;
344
+ receivedAt: string;
345
+ modelId: string | null;
346
+ effective: string;
347
+ whenValue: string | null;
348
+ stateHash: string | null;
349
+ errorCode: string | null;
350
+ reviewId: string | null;
351
+ }[];
352
+ nextCursor: string | null;
353
+ }, {
354
+ events: {
355
+ rollout: string;
356
+ outcome: string;
357
+ adapter: string | null;
358
+ latencyMs: number | null;
359
+ modelDigest: string | null;
360
+ answers: Record<string, unknown> | null;
361
+ ruleHash: string;
362
+ source: string;
363
+ harness: string | null;
364
+ argsExcerpt: string | null;
365
+ ruleRef: string;
366
+ createdAt: string;
367
+ eventId: string;
368
+ receivedAt: string;
369
+ modelId: string | null;
370
+ effective: string;
371
+ whenValue: string | null;
372
+ stateHash: string | null;
373
+ errorCode: string | null;
374
+ reviewId: string | null;
375
+ }[];
376
+ nextCursor: string | null;
377
+ }>;
378
+ export type DecideEventListResponse = z.infer<typeof DecideEventListResponse>;
379
+ export declare const DecideCalibrationResponse: z.ZodObject<{
380
+ calibrationId: z.ZodString;
381
+ ruleHash: z.ZodString;
382
+ modelDigest: z.ZodString;
383
+ modelId: z.ZodNullable<z.ZodString>;
384
+ status: z.ZodEnum<["candidate", "active", "retired"]>;
385
+ temperature: z.ZodRecord<z.ZodString, z.ZodNumber>;
386
+ combiner: z.ZodNullable<z.ZodObject<{
387
+ bias: z.ZodNumber;
388
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
389
+ }, "strip", z.ZodTypeAny, {
390
+ bias: number;
391
+ weights: Record<string, number>;
392
+ }, {
393
+ bias: number;
394
+ weights: Record<string, number>;
395
+ }>>;
396
+ band: z.ZodObject<{
397
+ yes_at: z.ZodNumber;
398
+ no_below: z.ZodNumber;
399
+ }, "strip", z.ZodTypeAny, {
400
+ yes_at: number;
401
+ no_below: number;
402
+ }, {
403
+ yes_at: number;
404
+ no_below: number;
405
+ }>;
406
+ evalRunId: z.ZodNullable<z.ZodString>;
407
+ labelsN: z.ZodNullable<z.ZodNumber>;
408
+ fittedAt: z.ZodString;
409
+ promotedBy: z.ZodNullable<z.ZodString>;
410
+ promotedAt: z.ZodNullable<z.ZodString>;
411
+ retiredAt: z.ZodNullable<z.ZodString>;
412
+ }, "strip", z.ZodTypeAny, {
413
+ status: "retired" | "candidate" | "active";
414
+ band: {
415
+ yes_at: number;
416
+ no_below: number;
417
+ };
418
+ modelDigest: string;
419
+ temperature: Record<string, number>;
420
+ ruleHash: string;
421
+ combiner: {
422
+ bias: number;
423
+ weights: Record<string, number>;
424
+ } | null;
425
+ evalRunId: string | null;
426
+ promotedAt: string | null;
427
+ modelId: string | null;
428
+ calibrationId: string;
429
+ labelsN: number | null;
430
+ fittedAt: string;
431
+ promotedBy: string | null;
432
+ retiredAt: string | null;
433
+ }, {
434
+ status: "retired" | "candidate" | "active";
435
+ band: {
436
+ yes_at: number;
437
+ no_below: number;
438
+ };
439
+ modelDigest: string;
440
+ temperature: Record<string, number>;
441
+ ruleHash: string;
442
+ combiner: {
443
+ bias: number;
444
+ weights: Record<string, number>;
445
+ } | null;
446
+ evalRunId: string | null;
447
+ promotedAt: string | null;
448
+ modelId: string | null;
449
+ calibrationId: string;
450
+ labelsN: number | null;
451
+ fittedAt: string;
452
+ promotedBy: string | null;
453
+ retiredAt: string | null;
454
+ }>;
455
+ /** `GET /api/v1/decide/calibrations`. */
456
+ export declare const DecideCalibrationListResponse: z.ZodObject<{
457
+ calibrations: z.ZodArray<z.ZodObject<{
458
+ calibrationId: z.ZodString;
459
+ ruleHash: z.ZodString;
460
+ modelDigest: z.ZodString;
461
+ modelId: z.ZodNullable<z.ZodString>;
462
+ status: z.ZodEnum<["candidate", "active", "retired"]>;
463
+ temperature: z.ZodRecord<z.ZodString, z.ZodNumber>;
464
+ combiner: z.ZodNullable<z.ZodObject<{
465
+ bias: z.ZodNumber;
466
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
467
+ }, "strip", z.ZodTypeAny, {
468
+ bias: number;
469
+ weights: Record<string, number>;
470
+ }, {
471
+ bias: number;
472
+ weights: Record<string, number>;
473
+ }>>;
474
+ band: z.ZodObject<{
475
+ yes_at: z.ZodNumber;
476
+ no_below: z.ZodNumber;
477
+ }, "strip", z.ZodTypeAny, {
478
+ yes_at: number;
479
+ no_below: number;
480
+ }, {
481
+ yes_at: number;
482
+ no_below: number;
483
+ }>;
484
+ evalRunId: z.ZodNullable<z.ZodString>;
485
+ labelsN: z.ZodNullable<z.ZodNumber>;
486
+ fittedAt: z.ZodString;
487
+ promotedBy: z.ZodNullable<z.ZodString>;
488
+ promotedAt: z.ZodNullable<z.ZodString>;
489
+ retiredAt: z.ZodNullable<z.ZodString>;
490
+ }, "strip", z.ZodTypeAny, {
491
+ status: "retired" | "candidate" | "active";
492
+ band: {
493
+ yes_at: number;
494
+ no_below: number;
495
+ };
496
+ modelDigest: string;
497
+ temperature: Record<string, number>;
498
+ ruleHash: string;
499
+ combiner: {
500
+ bias: number;
501
+ weights: Record<string, number>;
502
+ } | null;
503
+ evalRunId: string | null;
504
+ promotedAt: string | null;
505
+ modelId: string | null;
506
+ calibrationId: string;
507
+ labelsN: number | null;
508
+ fittedAt: string;
509
+ promotedBy: string | null;
510
+ retiredAt: string | null;
511
+ }, {
512
+ status: "retired" | "candidate" | "active";
513
+ band: {
514
+ yes_at: number;
515
+ no_below: number;
516
+ };
517
+ modelDigest: string;
518
+ temperature: Record<string, number>;
519
+ ruleHash: string;
520
+ combiner: {
521
+ bias: number;
522
+ weights: Record<string, number>;
523
+ } | null;
524
+ evalRunId: string | null;
525
+ promotedAt: string | null;
526
+ modelId: string | null;
527
+ calibrationId: string;
528
+ labelsN: number | null;
529
+ fittedAt: string;
530
+ promotedBy: string | null;
531
+ retiredAt: string | null;
532
+ }>, "many">;
533
+ }, "strip", z.ZodTypeAny, {
534
+ calibrations: {
535
+ status: "retired" | "candidate" | "active";
536
+ band: {
537
+ yes_at: number;
538
+ no_below: number;
539
+ };
540
+ modelDigest: string;
541
+ temperature: Record<string, number>;
542
+ ruleHash: string;
543
+ combiner: {
544
+ bias: number;
545
+ weights: Record<string, number>;
546
+ } | null;
547
+ evalRunId: string | null;
548
+ promotedAt: string | null;
549
+ modelId: string | null;
550
+ calibrationId: string;
551
+ labelsN: number | null;
552
+ fittedAt: string;
553
+ promotedBy: string | null;
554
+ retiredAt: string | null;
555
+ }[];
556
+ }, {
557
+ calibrations: {
558
+ status: "retired" | "candidate" | "active";
559
+ band: {
560
+ yes_at: number;
561
+ no_below: number;
562
+ };
563
+ modelDigest: string;
564
+ temperature: Record<string, number>;
565
+ ruleHash: string;
566
+ combiner: {
567
+ bias: number;
568
+ weights: Record<string, number>;
569
+ } | null;
570
+ evalRunId: string | null;
571
+ promotedAt: string | null;
572
+ modelId: string | null;
573
+ calibrationId: string;
574
+ labelsN: number | null;
575
+ fittedAt: string;
576
+ promotedBy: string | null;
577
+ retiredAt: string | null;
578
+ }[];
579
+ }>;
580
+ export type DecideCalibrationListResponse = z.infer<typeof DecideCalibrationListResponse>;
581
+ /** `POST /api/v1/decide/calibrations/:id/promote` and `…/retire`. */
582
+ export declare const DecideCalibrationChangedResponse: z.ZodObject<{
583
+ calibration: z.ZodObject<{
584
+ calibrationId: z.ZodString;
585
+ ruleHash: z.ZodString;
586
+ modelDigest: z.ZodString;
587
+ modelId: z.ZodNullable<z.ZodString>;
588
+ status: z.ZodEnum<["candidate", "active", "retired"]>;
589
+ temperature: z.ZodRecord<z.ZodString, z.ZodNumber>;
590
+ combiner: z.ZodNullable<z.ZodObject<{
591
+ bias: z.ZodNumber;
592
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
593
+ }, "strip", z.ZodTypeAny, {
594
+ bias: number;
595
+ weights: Record<string, number>;
596
+ }, {
597
+ bias: number;
598
+ weights: Record<string, number>;
599
+ }>>;
600
+ band: z.ZodObject<{
601
+ yes_at: z.ZodNumber;
602
+ no_below: z.ZodNumber;
603
+ }, "strip", z.ZodTypeAny, {
604
+ yes_at: number;
605
+ no_below: number;
606
+ }, {
607
+ yes_at: number;
608
+ no_below: number;
609
+ }>;
610
+ evalRunId: z.ZodNullable<z.ZodString>;
611
+ labelsN: z.ZodNullable<z.ZodNumber>;
612
+ fittedAt: z.ZodString;
613
+ promotedBy: z.ZodNullable<z.ZodString>;
614
+ promotedAt: z.ZodNullable<z.ZodString>;
615
+ retiredAt: z.ZodNullable<z.ZodString>;
616
+ }, "strip", z.ZodTypeAny, {
617
+ status: "retired" | "candidate" | "active";
618
+ band: {
619
+ yes_at: number;
620
+ no_below: number;
621
+ };
622
+ modelDigest: string;
623
+ temperature: Record<string, number>;
624
+ ruleHash: string;
625
+ combiner: {
626
+ bias: number;
627
+ weights: Record<string, number>;
628
+ } | null;
629
+ evalRunId: string | null;
630
+ promotedAt: string | null;
631
+ modelId: string | null;
632
+ calibrationId: string;
633
+ labelsN: number | null;
634
+ fittedAt: string;
635
+ promotedBy: string | null;
636
+ retiredAt: string | null;
637
+ }, {
638
+ status: "retired" | "candidate" | "active";
639
+ band: {
640
+ yes_at: number;
641
+ no_below: number;
642
+ };
643
+ modelDigest: string;
644
+ temperature: Record<string, number>;
645
+ ruleHash: string;
646
+ combiner: {
647
+ bias: number;
648
+ weights: Record<string, number>;
649
+ } | null;
650
+ evalRunId: string | null;
651
+ promotedAt: string | null;
652
+ modelId: string | null;
653
+ calibrationId: string;
654
+ labelsN: number | null;
655
+ fittedAt: string;
656
+ promotedBy: string | null;
657
+ retiredAt: string | null;
658
+ }>;
659
+ }, "strip", z.ZodTypeAny, {
660
+ calibration: {
661
+ status: "retired" | "candidate" | "active";
662
+ band: {
663
+ yes_at: number;
664
+ no_below: number;
665
+ };
666
+ modelDigest: string;
667
+ temperature: Record<string, number>;
668
+ ruleHash: string;
669
+ combiner: {
670
+ bias: number;
671
+ weights: Record<string, number>;
672
+ } | null;
673
+ evalRunId: string | null;
674
+ promotedAt: string | null;
675
+ modelId: string | null;
676
+ calibrationId: string;
677
+ labelsN: number | null;
678
+ fittedAt: string;
679
+ promotedBy: string | null;
680
+ retiredAt: string | null;
681
+ };
682
+ }, {
683
+ calibration: {
684
+ status: "retired" | "candidate" | "active";
685
+ band: {
686
+ yes_at: number;
687
+ no_below: number;
688
+ };
689
+ modelDigest: string;
690
+ temperature: Record<string, number>;
691
+ ruleHash: string;
692
+ combiner: {
693
+ bias: number;
694
+ weights: Record<string, number>;
695
+ } | null;
696
+ evalRunId: string | null;
697
+ promotedAt: string | null;
698
+ modelId: string | null;
699
+ calibrationId: string;
700
+ labelsN: number | null;
701
+ fittedAt: string;
702
+ promotedBy: string | null;
703
+ retiredAt: string | null;
704
+ };
705
+ }>;
706
+ export type DecideCalibrationChangedResponse = z.infer<typeof DecideCalibrationChangedResponse>;
707
+ export declare const DecideEvalRunResponse: z.ZodObject<{
708
+ evalRunId: z.ZodString;
709
+ ruleHash: z.ZodString;
710
+ modelDigest: z.ZodString;
711
+ preregHash: z.ZodString;
712
+ prereg: z.ZodRecord<z.ZodString, z.ZodUnknown>;
713
+ registeredAt: z.ZodString;
714
+ setHash: z.ZodNullable<z.ZodString>;
715
+ results: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
716
+ passed: z.ZodNullable<z.ZodBoolean>;
717
+ completedAt: z.ZodNullable<z.ZodString>;
718
+ source: z.ZodEnum<["cli", "job"]>;
719
+ reusedSet: z.ZodNullable<z.ZodBoolean>;
720
+ }, "strip", z.ZodTypeAny, {
721
+ modelDigest: string;
722
+ ruleHash: string;
723
+ evalRunId: string;
724
+ source: "cli" | "job";
725
+ passed: boolean | null;
726
+ preregHash: string;
727
+ prereg: Record<string, unknown>;
728
+ registeredAt: string;
729
+ setHash: string | null;
730
+ results: Record<string, unknown> | null;
731
+ completedAt: string | null;
732
+ reusedSet: boolean | null;
733
+ }, {
734
+ modelDigest: string;
735
+ ruleHash: string;
736
+ evalRunId: string;
737
+ source: "cli" | "job";
738
+ passed: boolean | null;
739
+ preregHash: string;
740
+ prereg: Record<string, unknown>;
741
+ registeredAt: string;
742
+ setHash: string | null;
743
+ results: Record<string, unknown> | null;
744
+ completedAt: string | null;
745
+ reusedSet: boolean | null;
746
+ }>;
747
+ /** `POST /api/v1/decide/eval-runs` and `…/:id/results`. */
748
+ export declare const DecideEvalRunChangedResponse: z.ZodObject<{
749
+ evalRun: z.ZodObject<{
750
+ evalRunId: z.ZodString;
751
+ ruleHash: z.ZodString;
752
+ modelDigest: z.ZodString;
753
+ preregHash: z.ZodString;
754
+ prereg: z.ZodRecord<z.ZodString, z.ZodUnknown>;
755
+ registeredAt: z.ZodString;
756
+ setHash: z.ZodNullable<z.ZodString>;
757
+ results: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
758
+ passed: z.ZodNullable<z.ZodBoolean>;
759
+ completedAt: z.ZodNullable<z.ZodString>;
760
+ source: z.ZodEnum<["cli", "job"]>;
761
+ reusedSet: z.ZodNullable<z.ZodBoolean>;
762
+ }, "strip", z.ZodTypeAny, {
763
+ modelDigest: string;
764
+ ruleHash: string;
765
+ evalRunId: string;
766
+ source: "cli" | "job";
767
+ passed: boolean | null;
768
+ preregHash: string;
769
+ prereg: Record<string, unknown>;
770
+ registeredAt: string;
771
+ setHash: string | null;
772
+ results: Record<string, unknown> | null;
773
+ completedAt: string | null;
774
+ reusedSet: boolean | null;
775
+ }, {
776
+ modelDigest: string;
777
+ ruleHash: string;
778
+ evalRunId: string;
779
+ source: "cli" | "job";
780
+ passed: boolean | null;
781
+ preregHash: string;
782
+ prereg: Record<string, unknown>;
783
+ registeredAt: string;
784
+ setHash: string | null;
785
+ results: Record<string, unknown> | null;
786
+ completedAt: string | null;
787
+ reusedSet: boolean | null;
788
+ }>;
789
+ marks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
790
+ }, "strip", z.ZodTypeAny, {
791
+ evalRun: {
792
+ modelDigest: string;
793
+ ruleHash: string;
794
+ evalRunId: string;
795
+ source: "cli" | "job";
796
+ passed: boolean | null;
797
+ preregHash: string;
798
+ prereg: Record<string, unknown>;
799
+ registeredAt: string;
800
+ setHash: string | null;
801
+ results: Record<string, unknown> | null;
802
+ completedAt: string | null;
803
+ reusedSet: boolean | null;
804
+ };
805
+ marks?: Record<string, boolean> | undefined;
806
+ }, {
807
+ evalRun: {
808
+ modelDigest: string;
809
+ ruleHash: string;
810
+ evalRunId: string;
811
+ source: "cli" | "job";
812
+ passed: boolean | null;
813
+ preregHash: string;
814
+ prereg: Record<string, unknown>;
815
+ registeredAt: string;
816
+ setHash: string | null;
817
+ results: Record<string, unknown> | null;
818
+ completedAt: string | null;
819
+ reusedSet: boolean | null;
820
+ };
821
+ marks?: Record<string, boolean> | undefined;
822
+ }>;
823
+ export type DecideEvalRunChangedResponse = z.infer<typeof DecideEvalRunChangedResponse>;
824
+ /** `GET /api/v1/decide/eval-runs`. */
825
+ export declare const DecideEvalRunListResponse: z.ZodObject<{
826
+ evalRuns: z.ZodArray<z.ZodObject<{
827
+ evalRunId: z.ZodString;
828
+ ruleHash: z.ZodString;
829
+ modelDigest: z.ZodString;
830
+ preregHash: z.ZodString;
831
+ prereg: z.ZodRecord<z.ZodString, z.ZodUnknown>;
832
+ registeredAt: z.ZodString;
833
+ setHash: z.ZodNullable<z.ZodString>;
834
+ results: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
835
+ passed: z.ZodNullable<z.ZodBoolean>;
836
+ completedAt: z.ZodNullable<z.ZodString>;
837
+ source: z.ZodEnum<["cli", "job"]>;
838
+ reusedSet: z.ZodNullable<z.ZodBoolean>;
839
+ }, "strip", z.ZodTypeAny, {
840
+ modelDigest: string;
841
+ ruleHash: string;
842
+ evalRunId: string;
843
+ source: "cli" | "job";
844
+ passed: boolean | null;
845
+ preregHash: string;
846
+ prereg: Record<string, unknown>;
847
+ registeredAt: string;
848
+ setHash: string | null;
849
+ results: Record<string, unknown> | null;
850
+ completedAt: string | null;
851
+ reusedSet: boolean | null;
852
+ }, {
853
+ modelDigest: string;
854
+ ruleHash: string;
855
+ evalRunId: string;
856
+ source: "cli" | "job";
857
+ passed: boolean | null;
858
+ preregHash: string;
859
+ prereg: Record<string, unknown>;
860
+ registeredAt: string;
861
+ setHash: string | null;
862
+ results: Record<string, unknown> | null;
863
+ completedAt: string | null;
864
+ reusedSet: boolean | null;
865
+ }>, "many">;
866
+ }, "strip", z.ZodTypeAny, {
867
+ evalRuns: {
868
+ modelDigest: string;
869
+ ruleHash: string;
870
+ evalRunId: string;
871
+ source: "cli" | "job";
872
+ passed: boolean | null;
873
+ preregHash: string;
874
+ prereg: Record<string, unknown>;
875
+ registeredAt: string;
876
+ setHash: string | null;
877
+ results: Record<string, unknown> | null;
878
+ completedAt: string | null;
879
+ reusedSet: boolean | null;
880
+ }[];
881
+ }, {
882
+ evalRuns: {
883
+ modelDigest: string;
884
+ ruleHash: string;
885
+ evalRunId: string;
886
+ source: "cli" | "job";
887
+ passed: boolean | null;
888
+ preregHash: string;
889
+ prereg: Record<string, unknown>;
890
+ registeredAt: string;
891
+ setHash: string | null;
892
+ results: Record<string, unknown> | null;
893
+ completedAt: string | null;
894
+ reusedSet: boolean | null;
895
+ }[];
896
+ }>;
897
+ export type DecideEvalRunListResponse = z.infer<typeof DecideEvalRunListResponse>;
898
+ export type DecideEvalRun = z.infer<typeof DecideEvalRunResponse>;
899
+ export type DecideCalibration = z.infer<typeof DecideCalibrationResponse>;
900
+ /** One probability bucket of a question's answers: `[lo, hi)`, the last one closed. */
901
+ export declare const DecideQuestionBucket: z.ZodObject<{
902
+ lo: z.ZodNumber;
903
+ hi: z.ZodNumber;
904
+ n: z.ZodNumber;
905
+ unknown: z.ZodNumber;
906
+ labelled: z.ZodNumber;
907
+ refuseLabels: z.ZodNumber;
908
+ }, "strip", z.ZodTypeAny, {
909
+ unknown: number;
910
+ n: number;
911
+ lo: number;
912
+ hi: number;
913
+ labelled: number;
914
+ refuseLabels: number;
915
+ }, {
916
+ unknown: number;
917
+ n: number;
918
+ lo: number;
919
+ hi: number;
920
+ labelled: number;
921
+ refuseLabels: number;
922
+ }>;
923
+ export declare const DecideQuestionStats: z.ZodObject<{
924
+ name: z.ZodString;
925
+ type: z.ZodEnum<["yes_no", "choice"]>;
926
+ ask: z.ZodString;
927
+ n: z.ZodNumber;
928
+ unknownRate: z.ZodNullable<z.ZodNumber>;
929
+ buckets: z.ZodArray<z.ZodObject<{
930
+ lo: z.ZodNumber;
931
+ hi: z.ZodNumber;
932
+ n: z.ZodNumber;
933
+ unknown: z.ZodNumber;
934
+ labelled: z.ZodNumber;
935
+ refuseLabels: z.ZodNumber;
936
+ }, "strip", z.ZodTypeAny, {
937
+ unknown: number;
938
+ n: number;
939
+ lo: number;
940
+ hi: number;
941
+ labelled: number;
942
+ refuseLabels: number;
943
+ }, {
944
+ unknown: number;
945
+ n: number;
946
+ lo: number;
947
+ hi: number;
948
+ labelled: number;
949
+ refuseLabels: number;
950
+ }>, "many">;
951
+ }, "strip", z.ZodTypeAny, {
952
+ type: "yes_no" | "choice";
953
+ name: string;
954
+ ask: string;
955
+ n: number;
956
+ unknownRate: number | null;
957
+ buckets: {
958
+ unknown: number;
959
+ n: number;
960
+ lo: number;
961
+ hi: number;
962
+ labelled: number;
963
+ refuseLabels: number;
964
+ }[];
965
+ }, {
966
+ type: "yes_no" | "choice";
967
+ name: string;
968
+ ask: string;
969
+ n: number;
970
+ unknownRate: number | null;
971
+ buckets: {
972
+ unknown: number;
973
+ n: number;
974
+ lo: number;
975
+ hi: number;
976
+ labelled: number;
977
+ refuseLabels: number;
978
+ }[];
979
+ }>;
980
+ export declare const DecideRuleStats: z.ZodObject<{
981
+ decisions: z.ZodNumber;
982
+ outcomes: z.ZodObject<{
983
+ allow: z.ZodNumber;
984
+ refuse: z.ZodNumber;
985
+ escalate: z.ZodNumber;
986
+ unavailable: z.ZodNumber;
987
+ }, "strip", z.ZodTypeAny, {
988
+ allow: number;
989
+ refuse: number;
990
+ escalate: number;
991
+ unavailable: number;
992
+ }, {
993
+ allow: number;
994
+ refuse: number;
995
+ escalate: number;
996
+ unavailable: number;
997
+ }>;
998
+ shadow: z.ZodNumber;
999
+ enforce: z.ZodNumber;
1000
+ shadowWouldAct: z.ZodNumber;
1001
+ enforceActed: z.ZodNumber;
1002
+ escalationRate: z.ZodNullable<z.ZodNumber>;
1003
+ shadowDisagreementRate: z.ZodNullable<z.ZodNumber>;
1004
+ questions: z.ZodArray<z.ZodObject<{
1005
+ name: z.ZodString;
1006
+ type: z.ZodEnum<["yes_no", "choice"]>;
1007
+ ask: z.ZodString;
1008
+ n: z.ZodNumber;
1009
+ unknownRate: z.ZodNullable<z.ZodNumber>;
1010
+ buckets: z.ZodArray<z.ZodObject<{
1011
+ lo: z.ZodNumber;
1012
+ hi: z.ZodNumber;
1013
+ n: z.ZodNumber;
1014
+ unknown: z.ZodNumber;
1015
+ labelled: z.ZodNumber;
1016
+ refuseLabels: z.ZodNumber;
1017
+ }, "strip", z.ZodTypeAny, {
1018
+ unknown: number;
1019
+ n: number;
1020
+ lo: number;
1021
+ hi: number;
1022
+ labelled: number;
1023
+ refuseLabels: number;
1024
+ }, {
1025
+ unknown: number;
1026
+ n: number;
1027
+ lo: number;
1028
+ hi: number;
1029
+ labelled: number;
1030
+ refuseLabels: number;
1031
+ }>, "many">;
1032
+ }, "strip", z.ZodTypeAny, {
1033
+ type: "yes_no" | "choice";
1034
+ name: string;
1035
+ ask: string;
1036
+ n: number;
1037
+ unknownRate: number | null;
1038
+ buckets: {
1039
+ unknown: number;
1040
+ n: number;
1041
+ lo: number;
1042
+ hi: number;
1043
+ labelled: number;
1044
+ refuseLabels: number;
1045
+ }[];
1046
+ }, {
1047
+ type: "yes_no" | "choice";
1048
+ name: string;
1049
+ ask: string;
1050
+ n: number;
1051
+ unknownRate: number | null;
1052
+ buckets: {
1053
+ unknown: number;
1054
+ n: number;
1055
+ lo: number;
1056
+ hi: number;
1057
+ labelled: number;
1058
+ refuseLabels: number;
1059
+ }[];
1060
+ }>, "many">;
1061
+ }, "strip", z.ZodTypeAny, {
1062
+ shadow: number;
1063
+ enforce: number;
1064
+ questions: {
1065
+ type: "yes_no" | "choice";
1066
+ name: string;
1067
+ ask: string;
1068
+ n: number;
1069
+ unknownRate: number | null;
1070
+ buckets: {
1071
+ unknown: number;
1072
+ n: number;
1073
+ lo: number;
1074
+ hi: number;
1075
+ labelled: number;
1076
+ refuseLabels: number;
1077
+ }[];
1078
+ }[];
1079
+ decisions: number;
1080
+ escalationRate: number | null;
1081
+ outcomes: {
1082
+ allow: number;
1083
+ refuse: number;
1084
+ escalate: number;
1085
+ unavailable: number;
1086
+ };
1087
+ shadowWouldAct: number;
1088
+ enforceActed: number;
1089
+ shadowDisagreementRate: number | null;
1090
+ }, {
1091
+ shadow: number;
1092
+ enforce: number;
1093
+ questions: {
1094
+ type: "yes_no" | "choice";
1095
+ name: string;
1096
+ ask: string;
1097
+ n: number;
1098
+ unknownRate: number | null;
1099
+ buckets: {
1100
+ unknown: number;
1101
+ n: number;
1102
+ lo: number;
1103
+ hi: number;
1104
+ labelled: number;
1105
+ refuseLabels: number;
1106
+ }[];
1107
+ }[];
1108
+ decisions: number;
1109
+ escalationRate: number | null;
1110
+ outcomes: {
1111
+ allow: number;
1112
+ refuse: number;
1113
+ escalate: number;
1114
+ unavailable: number;
1115
+ };
1116
+ shadowWouldAct: number;
1117
+ enforceActed: number;
1118
+ shadowDisagreementRate: number | null;
1119
+ }>;
1120
+ export declare const DecideRuleSummary: z.ZodObject<{
1121
+ sopId: z.ZodString;
1122
+ sopTitle: z.ZodString;
1123
+ guardrailId: z.ZodNullable<z.ZodString>;
1124
+ ruleRef: z.ZodNullable<z.ZodString>;
1125
+ ruleHash: z.ZodNullable<z.ZodString>;
1126
+ rule: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1127
+ error: z.ZodNullable<z.ZodString>;
1128
+ stamp: z.ZodNullable<z.ZodLiteral<"shadow">>;
1129
+ pins: z.ZodArray<z.ZodObject<{
1130
+ modelDigest: z.ZodString;
1131
+ temperature: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1132
+ band: z.ZodOptional<z.ZodObject<{
1133
+ yes_at: z.ZodNumber;
1134
+ no_below: z.ZodNumber;
1135
+ }, "strip", z.ZodTypeAny, {
1136
+ yes_at: number;
1137
+ no_below: number;
1138
+ }, {
1139
+ yes_at: number;
1140
+ no_below: number;
1141
+ }>>;
1142
+ combiner: z.ZodOptional<z.ZodObject<{
1143
+ bias: z.ZodNumber;
1144
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
1145
+ }, "strip", z.ZodTypeAny, {
1146
+ bias: number;
1147
+ weights: Record<string, number>;
1148
+ }, {
1149
+ bias: number;
1150
+ weights: Record<string, number>;
1151
+ }>>;
1152
+ evalRunId: z.ZodString;
1153
+ source: z.ZodEnum<["local", "server"]>;
1154
+ }, "strip", z.ZodTypeAny, {
1155
+ modelDigest: string;
1156
+ evalRunId: string;
1157
+ source: "local" | "server";
1158
+ band?: {
1159
+ yes_at: number;
1160
+ no_below: number;
1161
+ } | undefined;
1162
+ temperature?: Record<string, number> | undefined;
1163
+ combiner?: {
1164
+ bias: number;
1165
+ weights: Record<string, number>;
1166
+ } | undefined;
1167
+ }, {
1168
+ modelDigest: string;
1169
+ evalRunId: string;
1170
+ source: "local" | "server";
1171
+ band?: {
1172
+ yes_at: number;
1173
+ no_below: number;
1174
+ } | undefined;
1175
+ temperature?: Record<string, number> | undefined;
1176
+ combiner?: {
1177
+ bias: number;
1178
+ weights: Record<string, number>;
1179
+ } | undefined;
1180
+ }>, "many">;
1181
+ stats: z.ZodObject<{
1182
+ decisions: z.ZodNumber;
1183
+ outcomes: z.ZodObject<{
1184
+ allow: z.ZodNumber;
1185
+ refuse: z.ZodNumber;
1186
+ escalate: z.ZodNumber;
1187
+ unavailable: z.ZodNumber;
1188
+ }, "strip", z.ZodTypeAny, {
1189
+ allow: number;
1190
+ refuse: number;
1191
+ escalate: number;
1192
+ unavailable: number;
1193
+ }, {
1194
+ allow: number;
1195
+ refuse: number;
1196
+ escalate: number;
1197
+ unavailable: number;
1198
+ }>;
1199
+ shadow: z.ZodNumber;
1200
+ enforce: z.ZodNumber;
1201
+ shadowWouldAct: z.ZodNumber;
1202
+ enforceActed: z.ZodNumber;
1203
+ escalationRate: z.ZodNullable<z.ZodNumber>;
1204
+ shadowDisagreementRate: z.ZodNullable<z.ZodNumber>;
1205
+ questions: z.ZodArray<z.ZodObject<{
1206
+ name: z.ZodString;
1207
+ type: z.ZodEnum<["yes_no", "choice"]>;
1208
+ ask: z.ZodString;
1209
+ n: z.ZodNumber;
1210
+ unknownRate: z.ZodNullable<z.ZodNumber>;
1211
+ buckets: z.ZodArray<z.ZodObject<{
1212
+ lo: z.ZodNumber;
1213
+ hi: z.ZodNumber;
1214
+ n: z.ZodNumber;
1215
+ unknown: z.ZodNumber;
1216
+ labelled: z.ZodNumber;
1217
+ refuseLabels: z.ZodNumber;
1218
+ }, "strip", z.ZodTypeAny, {
1219
+ unknown: number;
1220
+ n: number;
1221
+ lo: number;
1222
+ hi: number;
1223
+ labelled: number;
1224
+ refuseLabels: number;
1225
+ }, {
1226
+ unknown: number;
1227
+ n: number;
1228
+ lo: number;
1229
+ hi: number;
1230
+ labelled: number;
1231
+ refuseLabels: number;
1232
+ }>, "many">;
1233
+ }, "strip", z.ZodTypeAny, {
1234
+ type: "yes_no" | "choice";
1235
+ name: string;
1236
+ ask: string;
1237
+ n: number;
1238
+ unknownRate: number | null;
1239
+ buckets: {
1240
+ unknown: number;
1241
+ n: number;
1242
+ lo: number;
1243
+ hi: number;
1244
+ labelled: number;
1245
+ refuseLabels: number;
1246
+ }[];
1247
+ }, {
1248
+ type: "yes_no" | "choice";
1249
+ name: string;
1250
+ ask: string;
1251
+ n: number;
1252
+ unknownRate: number | null;
1253
+ buckets: {
1254
+ unknown: number;
1255
+ n: number;
1256
+ lo: number;
1257
+ hi: number;
1258
+ labelled: number;
1259
+ refuseLabels: number;
1260
+ }[];
1261
+ }>, "many">;
1262
+ }, "strip", z.ZodTypeAny, {
1263
+ shadow: number;
1264
+ enforce: number;
1265
+ questions: {
1266
+ type: "yes_no" | "choice";
1267
+ name: string;
1268
+ ask: string;
1269
+ n: number;
1270
+ unknownRate: number | null;
1271
+ buckets: {
1272
+ unknown: number;
1273
+ n: number;
1274
+ lo: number;
1275
+ hi: number;
1276
+ labelled: number;
1277
+ refuseLabels: number;
1278
+ }[];
1279
+ }[];
1280
+ decisions: number;
1281
+ escalationRate: number | null;
1282
+ outcomes: {
1283
+ allow: number;
1284
+ refuse: number;
1285
+ escalate: number;
1286
+ unavailable: number;
1287
+ };
1288
+ shadowWouldAct: number;
1289
+ enforceActed: number;
1290
+ shadowDisagreementRate: number | null;
1291
+ }, {
1292
+ shadow: number;
1293
+ enforce: number;
1294
+ questions: {
1295
+ type: "yes_no" | "choice";
1296
+ name: string;
1297
+ ask: string;
1298
+ n: number;
1299
+ unknownRate: number | null;
1300
+ buckets: {
1301
+ unknown: number;
1302
+ n: number;
1303
+ lo: number;
1304
+ hi: number;
1305
+ labelled: number;
1306
+ refuseLabels: number;
1307
+ }[];
1308
+ }[];
1309
+ decisions: number;
1310
+ escalationRate: number | null;
1311
+ outcomes: {
1312
+ allow: number;
1313
+ refuse: number;
1314
+ escalate: number;
1315
+ unavailable: number;
1316
+ };
1317
+ shadowWouldAct: number;
1318
+ enforceActed: number;
1319
+ shadowDisagreementRate: number | null;
1320
+ }>;
1321
+ }, "strip", z.ZodTypeAny, {
1322
+ rule: Record<string, unknown> | null;
1323
+ error: string | null;
1324
+ pins: {
1325
+ modelDigest: string;
1326
+ evalRunId: string;
1327
+ source: "local" | "server";
1328
+ band?: {
1329
+ yes_at: number;
1330
+ no_below: number;
1331
+ } | undefined;
1332
+ temperature?: Record<string, number> | undefined;
1333
+ combiner?: {
1334
+ bias: number;
1335
+ weights: Record<string, number>;
1336
+ } | undefined;
1337
+ }[];
1338
+ ruleHash: string | null;
1339
+ sopTitle: string;
1340
+ ruleRef: string | null;
1341
+ sopId: string;
1342
+ guardrailId: string | null;
1343
+ stamp: "shadow" | null;
1344
+ stats: {
1345
+ shadow: number;
1346
+ enforce: number;
1347
+ questions: {
1348
+ type: "yes_no" | "choice";
1349
+ name: string;
1350
+ ask: string;
1351
+ n: number;
1352
+ unknownRate: number | null;
1353
+ buckets: {
1354
+ unknown: number;
1355
+ n: number;
1356
+ lo: number;
1357
+ hi: number;
1358
+ labelled: number;
1359
+ refuseLabels: number;
1360
+ }[];
1361
+ }[];
1362
+ decisions: number;
1363
+ escalationRate: number | null;
1364
+ outcomes: {
1365
+ allow: number;
1366
+ refuse: number;
1367
+ escalate: number;
1368
+ unavailable: number;
1369
+ };
1370
+ shadowWouldAct: number;
1371
+ enforceActed: number;
1372
+ shadowDisagreementRate: number | null;
1373
+ };
1374
+ }, {
1375
+ rule: Record<string, unknown> | null;
1376
+ error: string | null;
1377
+ pins: {
1378
+ modelDigest: string;
1379
+ evalRunId: string;
1380
+ source: "local" | "server";
1381
+ band?: {
1382
+ yes_at: number;
1383
+ no_below: number;
1384
+ } | undefined;
1385
+ temperature?: Record<string, number> | undefined;
1386
+ combiner?: {
1387
+ bias: number;
1388
+ weights: Record<string, number>;
1389
+ } | undefined;
1390
+ }[];
1391
+ ruleHash: string | null;
1392
+ sopTitle: string;
1393
+ ruleRef: string | null;
1394
+ sopId: string;
1395
+ guardrailId: string | null;
1396
+ stamp: "shadow" | null;
1397
+ stats: {
1398
+ shadow: number;
1399
+ enforce: number;
1400
+ questions: {
1401
+ type: "yes_no" | "choice";
1402
+ name: string;
1403
+ ask: string;
1404
+ n: number;
1405
+ unknownRate: number | null;
1406
+ buckets: {
1407
+ unknown: number;
1408
+ n: number;
1409
+ lo: number;
1410
+ hi: number;
1411
+ labelled: number;
1412
+ refuseLabels: number;
1413
+ }[];
1414
+ }[];
1415
+ decisions: number;
1416
+ escalationRate: number | null;
1417
+ outcomes: {
1418
+ allow: number;
1419
+ refuse: number;
1420
+ escalate: number;
1421
+ unavailable: number;
1422
+ };
1423
+ shadowWouldAct: number;
1424
+ enforceActed: number;
1425
+ shadowDisagreementRate: number | null;
1426
+ };
1427
+ }>;
1428
+ /** `GET /api/v1/decide/rules`. */
1429
+ export declare const DecideRuleListResponse: z.ZodObject<{
1430
+ mode: z.ZodEnum<["off", "shadow", "on"]>;
1431
+ windowDays: z.ZodNumber;
1432
+ rules: z.ZodArray<z.ZodObject<{
1433
+ sopId: z.ZodString;
1434
+ sopTitle: z.ZodString;
1435
+ guardrailId: z.ZodNullable<z.ZodString>;
1436
+ ruleRef: z.ZodNullable<z.ZodString>;
1437
+ ruleHash: z.ZodNullable<z.ZodString>;
1438
+ rule: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1439
+ error: z.ZodNullable<z.ZodString>;
1440
+ stamp: z.ZodNullable<z.ZodLiteral<"shadow">>;
1441
+ pins: z.ZodArray<z.ZodObject<{
1442
+ modelDigest: z.ZodString;
1443
+ temperature: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1444
+ band: z.ZodOptional<z.ZodObject<{
1445
+ yes_at: z.ZodNumber;
1446
+ no_below: z.ZodNumber;
1447
+ }, "strip", z.ZodTypeAny, {
1448
+ yes_at: number;
1449
+ no_below: number;
1450
+ }, {
1451
+ yes_at: number;
1452
+ no_below: number;
1453
+ }>>;
1454
+ combiner: z.ZodOptional<z.ZodObject<{
1455
+ bias: z.ZodNumber;
1456
+ weights: z.ZodRecord<z.ZodString, z.ZodNumber>;
1457
+ }, "strip", z.ZodTypeAny, {
1458
+ bias: number;
1459
+ weights: Record<string, number>;
1460
+ }, {
1461
+ bias: number;
1462
+ weights: Record<string, number>;
1463
+ }>>;
1464
+ evalRunId: z.ZodString;
1465
+ source: z.ZodEnum<["local", "server"]>;
1466
+ }, "strip", z.ZodTypeAny, {
1467
+ modelDigest: string;
1468
+ evalRunId: string;
1469
+ source: "local" | "server";
1470
+ band?: {
1471
+ yes_at: number;
1472
+ no_below: number;
1473
+ } | undefined;
1474
+ temperature?: Record<string, number> | undefined;
1475
+ combiner?: {
1476
+ bias: number;
1477
+ weights: Record<string, number>;
1478
+ } | undefined;
1479
+ }, {
1480
+ modelDigest: string;
1481
+ evalRunId: string;
1482
+ source: "local" | "server";
1483
+ band?: {
1484
+ yes_at: number;
1485
+ no_below: number;
1486
+ } | undefined;
1487
+ temperature?: Record<string, number> | undefined;
1488
+ combiner?: {
1489
+ bias: number;
1490
+ weights: Record<string, number>;
1491
+ } | undefined;
1492
+ }>, "many">;
1493
+ stats: z.ZodObject<{
1494
+ decisions: z.ZodNumber;
1495
+ outcomes: z.ZodObject<{
1496
+ allow: z.ZodNumber;
1497
+ refuse: z.ZodNumber;
1498
+ escalate: z.ZodNumber;
1499
+ unavailable: z.ZodNumber;
1500
+ }, "strip", z.ZodTypeAny, {
1501
+ allow: number;
1502
+ refuse: number;
1503
+ escalate: number;
1504
+ unavailable: number;
1505
+ }, {
1506
+ allow: number;
1507
+ refuse: number;
1508
+ escalate: number;
1509
+ unavailable: number;
1510
+ }>;
1511
+ shadow: z.ZodNumber;
1512
+ enforce: z.ZodNumber;
1513
+ shadowWouldAct: z.ZodNumber;
1514
+ enforceActed: z.ZodNumber;
1515
+ escalationRate: z.ZodNullable<z.ZodNumber>;
1516
+ shadowDisagreementRate: z.ZodNullable<z.ZodNumber>;
1517
+ questions: z.ZodArray<z.ZodObject<{
1518
+ name: z.ZodString;
1519
+ type: z.ZodEnum<["yes_no", "choice"]>;
1520
+ ask: z.ZodString;
1521
+ n: z.ZodNumber;
1522
+ unknownRate: z.ZodNullable<z.ZodNumber>;
1523
+ buckets: z.ZodArray<z.ZodObject<{
1524
+ lo: z.ZodNumber;
1525
+ hi: z.ZodNumber;
1526
+ n: z.ZodNumber;
1527
+ unknown: z.ZodNumber;
1528
+ labelled: z.ZodNumber;
1529
+ refuseLabels: z.ZodNumber;
1530
+ }, "strip", z.ZodTypeAny, {
1531
+ unknown: number;
1532
+ n: number;
1533
+ lo: number;
1534
+ hi: number;
1535
+ labelled: number;
1536
+ refuseLabels: number;
1537
+ }, {
1538
+ unknown: number;
1539
+ n: number;
1540
+ lo: number;
1541
+ hi: number;
1542
+ labelled: number;
1543
+ refuseLabels: number;
1544
+ }>, "many">;
1545
+ }, "strip", z.ZodTypeAny, {
1546
+ type: "yes_no" | "choice";
1547
+ name: string;
1548
+ ask: string;
1549
+ n: number;
1550
+ unknownRate: number | null;
1551
+ buckets: {
1552
+ unknown: number;
1553
+ n: number;
1554
+ lo: number;
1555
+ hi: number;
1556
+ labelled: number;
1557
+ refuseLabels: number;
1558
+ }[];
1559
+ }, {
1560
+ type: "yes_no" | "choice";
1561
+ name: string;
1562
+ ask: string;
1563
+ n: number;
1564
+ unknownRate: number | null;
1565
+ buckets: {
1566
+ unknown: number;
1567
+ n: number;
1568
+ lo: number;
1569
+ hi: number;
1570
+ labelled: number;
1571
+ refuseLabels: number;
1572
+ }[];
1573
+ }>, "many">;
1574
+ }, "strip", z.ZodTypeAny, {
1575
+ shadow: number;
1576
+ enforce: number;
1577
+ questions: {
1578
+ type: "yes_no" | "choice";
1579
+ name: string;
1580
+ ask: string;
1581
+ n: number;
1582
+ unknownRate: number | null;
1583
+ buckets: {
1584
+ unknown: number;
1585
+ n: number;
1586
+ lo: number;
1587
+ hi: number;
1588
+ labelled: number;
1589
+ refuseLabels: number;
1590
+ }[];
1591
+ }[];
1592
+ decisions: number;
1593
+ escalationRate: number | null;
1594
+ outcomes: {
1595
+ allow: number;
1596
+ refuse: number;
1597
+ escalate: number;
1598
+ unavailable: number;
1599
+ };
1600
+ shadowWouldAct: number;
1601
+ enforceActed: number;
1602
+ shadowDisagreementRate: number | null;
1603
+ }, {
1604
+ shadow: number;
1605
+ enforce: number;
1606
+ questions: {
1607
+ type: "yes_no" | "choice";
1608
+ name: string;
1609
+ ask: string;
1610
+ n: number;
1611
+ unknownRate: number | null;
1612
+ buckets: {
1613
+ unknown: number;
1614
+ n: number;
1615
+ lo: number;
1616
+ hi: number;
1617
+ labelled: number;
1618
+ refuseLabels: number;
1619
+ }[];
1620
+ }[];
1621
+ decisions: number;
1622
+ escalationRate: number | null;
1623
+ outcomes: {
1624
+ allow: number;
1625
+ refuse: number;
1626
+ escalate: number;
1627
+ unavailable: number;
1628
+ };
1629
+ shadowWouldAct: number;
1630
+ enforceActed: number;
1631
+ shadowDisagreementRate: number | null;
1632
+ }>;
1633
+ }, "strip", z.ZodTypeAny, {
1634
+ rule: Record<string, unknown> | null;
1635
+ error: string | null;
1636
+ pins: {
1637
+ modelDigest: string;
1638
+ evalRunId: string;
1639
+ source: "local" | "server";
1640
+ band?: {
1641
+ yes_at: number;
1642
+ no_below: number;
1643
+ } | undefined;
1644
+ temperature?: Record<string, number> | undefined;
1645
+ combiner?: {
1646
+ bias: number;
1647
+ weights: Record<string, number>;
1648
+ } | undefined;
1649
+ }[];
1650
+ ruleHash: string | null;
1651
+ sopTitle: string;
1652
+ ruleRef: string | null;
1653
+ sopId: string;
1654
+ guardrailId: string | null;
1655
+ stamp: "shadow" | null;
1656
+ stats: {
1657
+ shadow: number;
1658
+ enforce: number;
1659
+ questions: {
1660
+ type: "yes_no" | "choice";
1661
+ name: string;
1662
+ ask: string;
1663
+ n: number;
1664
+ unknownRate: number | null;
1665
+ buckets: {
1666
+ unknown: number;
1667
+ n: number;
1668
+ lo: number;
1669
+ hi: number;
1670
+ labelled: number;
1671
+ refuseLabels: number;
1672
+ }[];
1673
+ }[];
1674
+ decisions: number;
1675
+ escalationRate: number | null;
1676
+ outcomes: {
1677
+ allow: number;
1678
+ refuse: number;
1679
+ escalate: number;
1680
+ unavailable: number;
1681
+ };
1682
+ shadowWouldAct: number;
1683
+ enforceActed: number;
1684
+ shadowDisagreementRate: number | null;
1685
+ };
1686
+ }, {
1687
+ rule: Record<string, unknown> | null;
1688
+ error: string | null;
1689
+ pins: {
1690
+ modelDigest: string;
1691
+ evalRunId: string;
1692
+ source: "local" | "server";
1693
+ band?: {
1694
+ yes_at: number;
1695
+ no_below: number;
1696
+ } | undefined;
1697
+ temperature?: Record<string, number> | undefined;
1698
+ combiner?: {
1699
+ bias: number;
1700
+ weights: Record<string, number>;
1701
+ } | undefined;
1702
+ }[];
1703
+ ruleHash: string | null;
1704
+ sopTitle: string;
1705
+ ruleRef: string | null;
1706
+ sopId: string;
1707
+ guardrailId: string | null;
1708
+ stamp: "shadow" | null;
1709
+ stats: {
1710
+ shadow: number;
1711
+ enforce: number;
1712
+ questions: {
1713
+ type: "yes_no" | "choice";
1714
+ name: string;
1715
+ ask: string;
1716
+ n: number;
1717
+ unknownRate: number | null;
1718
+ buckets: {
1719
+ unknown: number;
1720
+ n: number;
1721
+ lo: number;
1722
+ hi: number;
1723
+ labelled: number;
1724
+ refuseLabels: number;
1725
+ }[];
1726
+ }[];
1727
+ decisions: number;
1728
+ escalationRate: number | null;
1729
+ outcomes: {
1730
+ allow: number;
1731
+ refuse: number;
1732
+ escalate: number;
1733
+ unavailable: number;
1734
+ };
1735
+ shadowWouldAct: number;
1736
+ enforceActed: number;
1737
+ shadowDisagreementRate: number | null;
1738
+ };
1739
+ }>, "many">;
1740
+ }, "strip", z.ZodTypeAny, {
1741
+ mode: "shadow" | "on" | "off";
1742
+ rules: {
1743
+ rule: Record<string, unknown> | null;
1744
+ error: string | null;
1745
+ pins: {
1746
+ modelDigest: string;
1747
+ evalRunId: string;
1748
+ source: "local" | "server";
1749
+ band?: {
1750
+ yes_at: number;
1751
+ no_below: number;
1752
+ } | undefined;
1753
+ temperature?: Record<string, number> | undefined;
1754
+ combiner?: {
1755
+ bias: number;
1756
+ weights: Record<string, number>;
1757
+ } | undefined;
1758
+ }[];
1759
+ ruleHash: string | null;
1760
+ sopTitle: string;
1761
+ ruleRef: string | null;
1762
+ sopId: string;
1763
+ guardrailId: string | null;
1764
+ stamp: "shadow" | null;
1765
+ stats: {
1766
+ shadow: number;
1767
+ enforce: number;
1768
+ questions: {
1769
+ type: "yes_no" | "choice";
1770
+ name: string;
1771
+ ask: string;
1772
+ n: number;
1773
+ unknownRate: number | null;
1774
+ buckets: {
1775
+ unknown: number;
1776
+ n: number;
1777
+ lo: number;
1778
+ hi: number;
1779
+ labelled: number;
1780
+ refuseLabels: number;
1781
+ }[];
1782
+ }[];
1783
+ decisions: number;
1784
+ escalationRate: number | null;
1785
+ outcomes: {
1786
+ allow: number;
1787
+ refuse: number;
1788
+ escalate: number;
1789
+ unavailable: number;
1790
+ };
1791
+ shadowWouldAct: number;
1792
+ enforceActed: number;
1793
+ shadowDisagreementRate: number | null;
1794
+ };
1795
+ }[];
1796
+ windowDays: number;
1797
+ }, {
1798
+ mode: "shadow" | "on" | "off";
1799
+ rules: {
1800
+ rule: Record<string, unknown> | null;
1801
+ error: string | null;
1802
+ pins: {
1803
+ modelDigest: string;
1804
+ evalRunId: string;
1805
+ source: "local" | "server";
1806
+ band?: {
1807
+ yes_at: number;
1808
+ no_below: number;
1809
+ } | undefined;
1810
+ temperature?: Record<string, number> | undefined;
1811
+ combiner?: {
1812
+ bias: number;
1813
+ weights: Record<string, number>;
1814
+ } | undefined;
1815
+ }[];
1816
+ ruleHash: string | null;
1817
+ sopTitle: string;
1818
+ ruleRef: string | null;
1819
+ sopId: string;
1820
+ guardrailId: string | null;
1821
+ stamp: "shadow" | null;
1822
+ stats: {
1823
+ shadow: number;
1824
+ enforce: number;
1825
+ questions: {
1826
+ type: "yes_no" | "choice";
1827
+ name: string;
1828
+ ask: string;
1829
+ n: number;
1830
+ unknownRate: number | null;
1831
+ buckets: {
1832
+ unknown: number;
1833
+ n: number;
1834
+ lo: number;
1835
+ hi: number;
1836
+ labelled: number;
1837
+ refuseLabels: number;
1838
+ }[];
1839
+ }[];
1840
+ decisions: number;
1841
+ escalationRate: number | null;
1842
+ outcomes: {
1843
+ allow: number;
1844
+ refuse: number;
1845
+ escalate: number;
1846
+ unavailable: number;
1847
+ };
1848
+ shadowWouldAct: number;
1849
+ enforceActed: number;
1850
+ shadowDisagreementRate: number | null;
1851
+ };
1852
+ }[];
1853
+ windowDays: number;
1854
+ }>;
1855
+ export type DecideRuleListResponse = z.infer<typeof DecideRuleListResponse>;
1856
+ export type DecideRuleSummary = z.infer<typeof DecideRuleSummary>;
1857
+ export type DecideQuestionStats = z.infer<typeof DecideQuestionStats>;
1858
+ //# sourceMappingURL=decide.d.ts.map