audit-tools 0.33.3 → 0.33.4

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 (92) hide show
  1. package/dist/audit/cli/args.d.ts.map +1 -1
  2. package/dist/audit/cli/args.js +0 -3
  3. package/dist/audit/cli/args.js.map +1 -1
  4. package/dist/audit/cli/dispatch/hostFanoutGate.d.ts +7 -0
  5. package/dist/audit/cli/dispatch/hostFanoutGate.d.ts.map +1 -1
  6. package/dist/audit/cli/dispatch/hostFanoutGate.js +18 -4
  7. package/dist/audit/cli/dispatch/hostFanoutGate.js.map +1 -1
  8. package/dist/audit/cli/dispatch/quotaPool.d.ts +12 -0
  9. package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
  10. package/dist/audit/cli/dispatch/quotaPool.js +59 -31
  11. package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
  12. package/dist/audit/cli/dispatch/types.d.ts +7 -0
  13. package/dist/audit/cli/dispatch/types.d.ts.map +1 -1
  14. package/dist/audit/cli/dispatch.d.ts +19 -0
  15. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  16. package/dist/audit/cli/dispatch.js +46 -8
  17. package/dist/audit/cli/dispatch.js.map +1 -1
  18. package/dist/audit/cli/hybridDispatch.d.ts +7 -1
  19. package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
  20. package/dist/audit/cli/hybridDispatch.js +7 -18
  21. package/dist/audit/cli/hybridDispatch.js.map +1 -1
  22. package/dist/audit/cli/nextStepCommand.d.ts +1 -1
  23. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  24. package/dist/audit/cli/nextStepCommand.js +27 -13
  25. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  26. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  27. package/dist/audit/cli/nextStepHelpers.js +29 -8
  28. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  29. package/dist/audit/cli/rollingAuditDispatch.d.ts +14 -2
  30. package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
  31. package/dist/audit/cli/rollingAuditDispatch.js +8 -27
  32. package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
  33. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  34. package/dist/audit/cli/semanticReviewStep.js +30 -7
  35. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  36. package/dist/audit/quota/index.d.ts +2 -668
  37. package/dist/audit/quota/index.d.ts.map +1 -1
  38. package/dist/audit/quota/index.js +5 -30
  39. package/dist/audit/quota/index.js.map +1 -1
  40. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
  41. package/dist/remediate/steps/dispatch/waveScheduling.js +21 -25
  42. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
  43. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  44. package/dist/remediate/steps/nextStep.js +70 -37
  45. package/dist/remediate/steps/nextStep.js.map +1 -1
  46. package/dist/remediate/steps/types.d.ts +7 -27
  47. package/dist/remediate/steps/types.d.ts.map +1 -1
  48. package/dist/remediate/steps/types.js +0 -1
  49. package/dist/remediate/steps/types.js.map +1 -1
  50. package/dist/shared/dispatch/admissionLoop.d.ts +42 -6
  51. package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -1
  52. package/dist/shared/dispatch/admissionLoop.js +82 -1
  53. package/dist/shared/dispatch/admissionLoop.js.map +1 -1
  54. package/dist/shared/dispatch/dispatchQuotaContract.d.ts +720 -0
  55. package/dist/shared/dispatch/dispatchQuotaContract.d.ts.map +1 -0
  56. package/dist/shared/dispatch/dispatchQuotaContract.js +76 -0
  57. package/dist/shared/dispatch/dispatchQuotaContract.js.map +1 -0
  58. package/dist/shared/dispatch/hostDispatchWall.d.ts +39 -0
  59. package/dist/shared/dispatch/hostDispatchWall.d.ts.map +1 -1
  60. package/dist/shared/dispatch/hostDispatchWall.js +22 -1
  61. package/dist/shared/dispatch/hostDispatchWall.js.map +1 -1
  62. package/dist/shared/dispatch/settledPools.d.ts +32 -0
  63. package/dist/shared/dispatch/settledPools.d.ts.map +1 -1
  64. package/dist/shared/dispatch/settledPools.js +37 -0
  65. package/dist/shared/dispatch/settledPools.js.map +1 -1
  66. package/dist/shared/index.d.ts +7 -4
  67. package/dist/shared/index.d.ts.map +1 -1
  68. package/dist/shared/index.js +5 -3
  69. package/dist/shared/index.js.map +1 -1
  70. package/dist/shared/providers/inProcessWorkers.d.ts +42 -0
  71. package/dist/shared/providers/inProcessWorkers.d.ts.map +1 -0
  72. package/dist/shared/providers/inProcessWorkers.js +64 -0
  73. package/dist/shared/providers/inProcessWorkers.js.map +1 -0
  74. package/dist/shared/providers/proxyCatalog.d.ts.map +1 -1
  75. package/dist/shared/providers/proxyCatalog.js +21 -4
  76. package/dist/shared/providers/proxyCatalog.js.map +1 -1
  77. package/dist/shared/quota/apiPool.d.ts +18 -0
  78. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  79. package/dist/shared/quota/apiPool.js +35 -4
  80. package/dist/shared/quota/apiPool.js.map +1 -1
  81. package/dist/shared/quota/capacity.d.ts +8 -1
  82. package/dist/shared/quota/capacity.d.ts.map +1 -1
  83. package/dist/shared/quota/capacity.js +2 -1
  84. package/dist/shared/quota/capacity.js.map +1 -1
  85. package/dist/shared/types/auditorDescriptor.d.ts +0 -8
  86. package/dist/shared/types/auditorDescriptor.d.ts.map +1 -1
  87. package/dist/shared/types/auditorDescriptor.js.map +1 -1
  88. package/dist/shared/validation/sessionConfig.d.ts.map +1 -1
  89. package/dist/shared/validation/sessionConfig.js +10 -0
  90. package/dist/shared/validation/sessionConfig.js.map +1 -1
  91. package/opencode.json +2 -2
  92. package/package.json +1 -1
@@ -0,0 +1,720 @@
1
+ /**
2
+ * The ONE dispatch-quota contract + emit core (unified-routing step H5).
3
+ *
4
+ * Replaces the kept-in-parity fork: audit's `DispatchQuota` (zod, literally
5
+ * annotated "Auditor-only type (not in shared)") vs remediate's
6
+ * `RemediationDispatchQuota` (compile-time only) — 12 identical fields maintained
7
+ * as two, with two version literals and two character-for-character emit wrappers
8
+ * (`finalizeDispatchQuota` ≡ `buildDispatchQuota`, the latter even commented
9
+ * "Mirrors audit's finalizeDispatchQuota"). One shared, runtime-validated contract
10
+ * with optional per-mode extensions; each orchestrator keeps only its thin
11
+ * assembly policy (audit: capacity fold + fanout/capable; remediate: schedule +
12
+ * phase), never the contract or the admission math.
13
+ */
14
+ import { z } from "zod";
15
+ import type { ReservationLedger } from "../quota/reservationLedger.js";
16
+ import { type AdmissionPool, type AdmissionCandidate } from "./admissionLoop.js";
17
+ import { type DispatchModelTier } from "../types/stepContract.js";
18
+ /** The single contract version — both orchestrators emit and validate this. */
19
+ export declare const DISPATCH_QUOTA_CONTRACT_VERSION: "dispatch-quota/v1";
20
+ export declare const DispatchQuotaContractSchema: z.ZodObject<{
21
+ contract_version: z.ZodLiteral<"dispatch-quota/v1">;
22
+ run_id: z.ZodString;
23
+ model: z.ZodNullable<z.ZodString>;
24
+ resolved_limits: z.ZodObject<{
25
+ context_tokens: z.ZodNumber;
26
+ output_tokens: z.ZodNumber;
27
+ requests_per_minute: z.ZodNullable<z.ZodNumber>;
28
+ input_tokens_per_minute: z.ZodNullable<z.ZodNumber>;
29
+ output_tokens_per_minute: z.ZodNullable<z.ZodNumber>;
30
+ }, "strict", z.ZodTypeAny, {
31
+ context_tokens: number;
32
+ output_tokens: number;
33
+ requests_per_minute: number | null;
34
+ input_tokens_per_minute: number | null;
35
+ output_tokens_per_minute: number | null;
36
+ }, {
37
+ context_tokens: number;
38
+ output_tokens: number;
39
+ requests_per_minute: number | null;
40
+ input_tokens_per_minute: number | null;
41
+ output_tokens_per_minute: number | null;
42
+ }>;
43
+ confidence: z.ZodEnum<["high", "medium", "low"]>;
44
+ source: z.ZodEnum<["explicit_config", "discovered_capability", "static_metadata", "cli_flags", "provider_default", "learned", "default"]>;
45
+ host_concurrency_limit: z.ZodNullable<z.ZodObject<{
46
+ active_subagents: z.ZodNumber;
47
+ source: z.ZodEnum<["cli_flags", "host_reported", "session_config", "environment", "discovered_config", "known_default"]>;
48
+ description: z.ZodString;
49
+ }, "strict", z.ZodTypeAny, {
50
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
51
+ active_subagents: number;
52
+ description: string;
53
+ }, {
54
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
55
+ active_subagents: number;
56
+ description: string;
57
+ }>>;
58
+ /**
59
+ * Admission control: the tool GRANTS the affordable admitted set
60
+ * (cost-first-capable, ledger-leased) — the granted set's size is the emergent
61
+ * admission width. See spec/audit/dispatch-admission-control.md.
62
+ */
63
+ admission: z.ZodObject<{
64
+ granted_packet_ids: z.ZodArray<z.ZodString, "many">;
65
+ declared_cap: z.ZodNullable<z.ZodNumber>;
66
+ leases: z.ZodArray<z.ZodObject<{
67
+ packet_id: z.ZodString;
68
+ pool_id: z.ZodString;
69
+ resource_key: z.ZodString;
70
+ lease_id: z.ZodString;
71
+ cost: z.ZodNumber;
72
+ }, "strict", z.ZodTypeAny, {
73
+ pool_id: string;
74
+ cost: number;
75
+ packet_id: string;
76
+ resource_key: string;
77
+ lease_id: string;
78
+ }, {
79
+ pool_id: string;
80
+ cost: number;
81
+ packet_id: string;
82
+ resource_key: string;
83
+ lease_id: string;
84
+ }>, "many">;
85
+ explains: z.ZodArray<z.ZodObject<{
86
+ packet_id: z.ZodString;
87
+ pool_id: z.ZodNullable<z.ZodString>;
88
+ resource_key: z.ZodNullable<z.ZodString>;
89
+ admitted: z.ZodBoolean;
90
+ reason: z.ZodEnum<["admitted", "no_capable_pool", "budget_exhausted", "cap_reached"]>;
91
+ headroom_before: z.ZodOptional<z.ZodNumber>;
92
+ outstanding_before: z.ZodOptional<z.ZodNumber>;
93
+ cost: z.ZodNumber;
94
+ }, "strict", z.ZodTypeAny, {
95
+ reason: "budget_exhausted" | "cap_reached" | "no_capable_pool" | "admitted";
96
+ pool_id: string | null;
97
+ cost: number;
98
+ admitted: boolean;
99
+ packet_id: string;
100
+ resource_key: string | null;
101
+ headroom_before?: number | undefined;
102
+ outstanding_before?: number | undefined;
103
+ }, {
104
+ reason: "budget_exhausted" | "cap_reached" | "no_capable_pool" | "admitted";
105
+ pool_id: string | null;
106
+ cost: number;
107
+ admitted: boolean;
108
+ packet_id: string;
109
+ resource_key: string | null;
110
+ headroom_before?: number | undefined;
111
+ outstanding_before?: number | undefined;
112
+ }>, "many">;
113
+ }, "strict", z.ZodTypeAny, {
114
+ leases: {
115
+ pool_id: string;
116
+ cost: number;
117
+ packet_id: string;
118
+ resource_key: string;
119
+ lease_id: string;
120
+ }[];
121
+ granted_packet_ids: string[];
122
+ declared_cap: number | null;
123
+ explains: {
124
+ reason: "budget_exhausted" | "cap_reached" | "no_capable_pool" | "admitted";
125
+ pool_id: string | null;
126
+ cost: number;
127
+ admitted: boolean;
128
+ packet_id: string;
129
+ resource_key: string | null;
130
+ headroom_before?: number | undefined;
131
+ outstanding_before?: number | undefined;
132
+ }[];
133
+ }, {
134
+ leases: {
135
+ pool_id: string;
136
+ cost: number;
137
+ packet_id: string;
138
+ resource_key: string;
139
+ lease_id: string;
140
+ }[];
141
+ granted_packet_ids: string[];
142
+ declared_cap: number | null;
143
+ explains: {
144
+ reason: "budget_exhausted" | "cap_reached" | "no_capable_pool" | "admitted";
145
+ pool_id: string | null;
146
+ cost: number;
147
+ admitted: boolean;
148
+ packet_id: string;
149
+ resource_key: string | null;
150
+ headroom_before?: number | undefined;
151
+ outstanding_before?: number | undefined;
152
+ }[];
153
+ }>;
154
+ cooldown_until: z.ZodNullable<z.ZodString>;
155
+ binding_cap: z.ZodOptional<z.ZodEnum<["rpm", "tpm", "token_budget", "cooldown", "host_concurrency", "none"]>>;
156
+ capacity_pools: z.ZodOptional<z.ZodArray<z.ZodObject<{
157
+ pool_id: z.ZodString;
158
+ rank: z.ZodOptional<z.ZodEnum<["small", "standard", "deep"]>>;
159
+ slots: z.ZodNumber;
160
+ model: z.ZodNullable<z.ZodString>;
161
+ confidence: z.ZodEnum<["high", "medium", "low"]>;
162
+ source: z.ZodEnum<["explicit_config", "discovered_capability", "static_metadata", "cli_flags", "provider_default", "learned", "default"]>;
163
+ resolved_limits: z.ZodObject<{
164
+ context_tokens: z.ZodNumber;
165
+ output_tokens: z.ZodNumber;
166
+ requests_per_minute: z.ZodNullable<z.ZodNumber>;
167
+ input_tokens_per_minute: z.ZodNullable<z.ZodNumber>;
168
+ output_tokens_per_minute: z.ZodNullable<z.ZodNumber>;
169
+ }, "strict", z.ZodTypeAny, {
170
+ context_tokens: number;
171
+ output_tokens: number;
172
+ requests_per_minute: number | null;
173
+ input_tokens_per_minute: number | null;
174
+ output_tokens_per_minute: number | null;
175
+ }, {
176
+ context_tokens: number;
177
+ output_tokens: number;
178
+ requests_per_minute: number | null;
179
+ input_tokens_per_minute: number | null;
180
+ output_tokens_per_minute: number | null;
181
+ }>;
182
+ host_concurrency_limit: z.ZodNullable<z.ZodObject<{
183
+ active_subagents: z.ZodNumber;
184
+ source: z.ZodEnum<["cli_flags", "host_reported", "session_config", "environment", "discovered_config", "known_default"]>;
185
+ description: z.ZodString;
186
+ }, "strict", z.ZodTypeAny, {
187
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
188
+ active_subagents: number;
189
+ description: string;
190
+ }, {
191
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
192
+ active_subagents: number;
193
+ description: string;
194
+ }>>;
195
+ is_conversation_host: z.ZodBoolean;
196
+ cooldown_until: z.ZodNullable<z.ZodString>;
197
+ estimated_wave_tokens: z.ZodNumber;
198
+ binding_cap: z.ZodEnum<["rpm", "tpm", "token_budget", "cooldown", "host_concurrency", "none"]>;
199
+ remaining_token_budget: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
200
+ binding_window: z.ZodOptional<z.ZodNullable<z.ZodObject<{
201
+ label: z.ZodString;
202
+ reset_at: z.ZodNullable<z.ZodString>;
203
+ budget: z.ZodNumber;
204
+ }, "strip", z.ZodTypeAny, {
205
+ label: string;
206
+ reset_at: string | null;
207
+ budget: number;
208
+ }, {
209
+ label: string;
210
+ reset_at: string | null;
211
+ budget: number;
212
+ }>>>;
213
+ in_flight_tokens: z.ZodOptional<z.ZodNumber>;
214
+ calibrating: z.ZodOptional<z.ZodBoolean>;
215
+ quota_source_snapshot: z.ZodOptional<z.ZodNullable<z.ZodObject<{
216
+ remaining_pct: z.ZodNullable<z.ZodNumber>;
217
+ reset_at: z.ZodNullable<z.ZodString>;
218
+ requests_remaining: z.ZodNullable<z.ZodNumber>;
219
+ tokens_remaining: z.ZodNullable<z.ZodNumber>;
220
+ captured_at: z.ZodString;
221
+ source: z.ZodString;
222
+ windows: z.ZodOptional<z.ZodArray<z.ZodObject<{
223
+ label: z.ZodString;
224
+ remaining_pct: z.ZodNullable<z.ZodNumber>;
225
+ reset_at: z.ZodNullable<z.ZodString>;
226
+ tokens_remaining: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
227
+ }, "strict", z.ZodTypeAny, {
228
+ label: string;
229
+ remaining_pct: number | null;
230
+ reset_at: string | null;
231
+ tokens_remaining?: number | null | undefined;
232
+ }, {
233
+ label: string;
234
+ remaining_pct: number | null;
235
+ reset_at: string | null;
236
+ tokens_remaining?: number | null | undefined;
237
+ }>, "many">>;
238
+ }, "strict", z.ZodTypeAny, {
239
+ remaining_pct: number | null;
240
+ reset_at: string | null;
241
+ tokens_remaining: number | null;
242
+ requests_remaining: number | null;
243
+ captured_at: string;
244
+ source: string;
245
+ windows?: {
246
+ label: string;
247
+ remaining_pct: number | null;
248
+ reset_at: string | null;
249
+ tokens_remaining?: number | null | undefined;
250
+ }[] | undefined;
251
+ }, {
252
+ remaining_pct: number | null;
253
+ reset_at: string | null;
254
+ tokens_remaining: number | null;
255
+ requests_remaining: number | null;
256
+ captured_at: string;
257
+ source: string;
258
+ windows?: {
259
+ label: string;
260
+ remaining_pct: number | null;
261
+ reset_at: string | null;
262
+ tokens_remaining?: number | null | undefined;
263
+ }[] | undefined;
264
+ }>>>;
265
+ quota_signal_degraded: z.ZodOptional<z.ZodBoolean>;
266
+ quota_coverage: z.ZodOptional<z.ZodEnum<["established", "reactive_only", "unestablished"]>>;
267
+ concurrency_cap: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
268
+ declared_cost_per_mtok: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
269
+ capability_rank: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
270
+ context_cap_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
271
+ }, "strict", z.ZodTypeAny, {
272
+ confidence: "high" | "low" | "medium";
273
+ model: string | null;
274
+ source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
275
+ cooldown_until: string | null;
276
+ pool_id: string;
277
+ slots: number;
278
+ resolved_limits: {
279
+ context_tokens: number;
280
+ output_tokens: number;
281
+ requests_per_minute: number | null;
282
+ input_tokens_per_minute: number | null;
283
+ output_tokens_per_minute: number | null;
284
+ };
285
+ host_concurrency_limit: {
286
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
287
+ active_subagents: number;
288
+ description: string;
289
+ } | null;
290
+ is_conversation_host: boolean;
291
+ estimated_wave_tokens: number;
292
+ binding_cap: "rpm" | "tpm" | "token_budget" | "cooldown" | "host_concurrency" | "none";
293
+ capability_rank?: number | null | undefined;
294
+ rank?: "deep" | "small" | "standard" | undefined;
295
+ calibrating?: boolean | undefined;
296
+ remaining_token_budget?: number | null | undefined;
297
+ binding_window?: {
298
+ label: string;
299
+ reset_at: string | null;
300
+ budget: number;
301
+ } | null | undefined;
302
+ in_flight_tokens?: number | undefined;
303
+ quota_source_snapshot?: {
304
+ remaining_pct: number | null;
305
+ reset_at: string | null;
306
+ tokens_remaining: number | null;
307
+ requests_remaining: number | null;
308
+ captured_at: string;
309
+ source: string;
310
+ windows?: {
311
+ label: string;
312
+ remaining_pct: number | null;
313
+ reset_at: string | null;
314
+ tokens_remaining?: number | null | undefined;
315
+ }[] | undefined;
316
+ } | null | undefined;
317
+ quota_signal_degraded?: boolean | undefined;
318
+ quota_coverage?: "established" | "reactive_only" | "unestablished" | undefined;
319
+ concurrency_cap?: number | null | undefined;
320
+ declared_cost_per_mtok?: number | null | undefined;
321
+ context_cap_tokens?: number | null | undefined;
322
+ }, {
323
+ confidence: "high" | "low" | "medium";
324
+ model: string | null;
325
+ source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
326
+ cooldown_until: string | null;
327
+ pool_id: string;
328
+ slots: number;
329
+ resolved_limits: {
330
+ context_tokens: number;
331
+ output_tokens: number;
332
+ requests_per_minute: number | null;
333
+ input_tokens_per_minute: number | null;
334
+ output_tokens_per_minute: number | null;
335
+ };
336
+ host_concurrency_limit: {
337
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
338
+ active_subagents: number;
339
+ description: string;
340
+ } | null;
341
+ is_conversation_host: boolean;
342
+ estimated_wave_tokens: number;
343
+ binding_cap: "rpm" | "tpm" | "token_budget" | "cooldown" | "host_concurrency" | "none";
344
+ capability_rank?: number | null | undefined;
345
+ rank?: "deep" | "small" | "standard" | undefined;
346
+ calibrating?: boolean | undefined;
347
+ remaining_token_budget?: number | null | undefined;
348
+ binding_window?: {
349
+ label: string;
350
+ reset_at: string | null;
351
+ budget: number;
352
+ } | null | undefined;
353
+ in_flight_tokens?: number | undefined;
354
+ quota_source_snapshot?: {
355
+ remaining_pct: number | null;
356
+ reset_at: string | null;
357
+ tokens_remaining: number | null;
358
+ requests_remaining: number | null;
359
+ captured_at: string;
360
+ source: string;
361
+ windows?: {
362
+ label: string;
363
+ remaining_pct: number | null;
364
+ reset_at: string | null;
365
+ tokens_remaining?: number | null | undefined;
366
+ }[] | undefined;
367
+ } | null | undefined;
368
+ quota_signal_degraded?: boolean | undefined;
369
+ quota_coverage?: "established" | "reactive_only" | "unestablished" | undefined;
370
+ concurrency_cap?: number | null | undefined;
371
+ declared_cost_per_mtok?: number | null | undefined;
372
+ context_cap_tokens?: number | null | undefined;
373
+ }>, "many">>;
374
+ quota_source_snapshot: z.ZodOptional<z.ZodNullable<z.ZodObject<{
375
+ remaining_pct: z.ZodNullable<z.ZodNumber>;
376
+ reset_at: z.ZodNullable<z.ZodString>;
377
+ requests_remaining: z.ZodNullable<z.ZodNumber>;
378
+ tokens_remaining: z.ZodNullable<z.ZodNumber>;
379
+ captured_at: z.ZodString;
380
+ source: z.ZodString;
381
+ windows: z.ZodOptional<z.ZodArray<z.ZodObject<{
382
+ label: z.ZodString;
383
+ remaining_pct: z.ZodNullable<z.ZodNumber>;
384
+ reset_at: z.ZodNullable<z.ZodString>;
385
+ tokens_remaining: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
386
+ }, "strict", z.ZodTypeAny, {
387
+ label: string;
388
+ remaining_pct: number | null;
389
+ reset_at: string | null;
390
+ tokens_remaining?: number | null | undefined;
391
+ }, {
392
+ label: string;
393
+ remaining_pct: number | null;
394
+ reset_at: string | null;
395
+ tokens_remaining?: number | null | undefined;
396
+ }>, "many">>;
397
+ }, "strict", z.ZodTypeAny, {
398
+ remaining_pct: number | null;
399
+ reset_at: string | null;
400
+ tokens_remaining: number | null;
401
+ requests_remaining: number | null;
402
+ captured_at: string;
403
+ source: string;
404
+ windows?: {
405
+ label: string;
406
+ remaining_pct: number | null;
407
+ reset_at: string | null;
408
+ tokens_remaining?: number | null | undefined;
409
+ }[] | undefined;
410
+ }, {
411
+ remaining_pct: number | null;
412
+ reset_at: string | null;
413
+ tokens_remaining: number | null;
414
+ requests_remaining: number | null;
415
+ captured_at: string;
416
+ source: string;
417
+ windows?: {
418
+ label: string;
419
+ remaining_pct: number | null;
420
+ reset_at: string | null;
421
+ tokens_remaining?: number | null | undefined;
422
+ }[] | undefined;
423
+ }>>>;
424
+ backoff_state: z.ZodOptional<z.ZodNullable<z.ZodObject<{
425
+ consecutive_429_count: z.ZodNumber;
426
+ current_cooldown_ms: z.ZodNumber;
427
+ }, "strict", z.ZodTypeAny, {
428
+ consecutive_429_count: number;
429
+ current_cooldown_ms: number;
430
+ }, {
431
+ consecutive_429_count: number;
432
+ current_cooldown_ms: number;
433
+ }>>>;
434
+ /** AUDIT: echo of the host-reported model roster (lowest rank first). */
435
+ host_model_roster: z.ZodOptional<z.ZodArray<z.ZodObject<{
436
+ rank: z.ZodEnum<["small", "standard", "deep"]>;
437
+ context_tokens: z.ZodNumber;
438
+ output_tokens: z.ZodNumber;
439
+ model_id: z.ZodOptional<z.ZodString>;
440
+ }, "strict", z.ZodTypeAny, {
441
+ context_tokens: number;
442
+ output_tokens: number;
443
+ rank: "deep" | "small" | "standard";
444
+ model_id?: string | undefined;
445
+ }, {
446
+ context_tokens: number;
447
+ output_tokens: number;
448
+ rank: "deep" | "small" | "standard";
449
+ model_id?: string | undefined;
450
+ }>, "many">>;
451
+ /** AUDIT: per-tier packet input budgets (context − output) from the roster. */
452
+ tier_budgets: z.ZodOptional<z.ZodRecord<z.ZodEnum<["small", "standard", "deep"]>, z.ZodNumber>>;
453
+ /** REMEDIATE: which dispatch phase this quota governs. */
454
+ phase: z.ZodOptional<z.ZodString>;
455
+ /** REMEDIATE: the wave's total estimated tokens. */
456
+ estimated_wave_tokens: z.ZodOptional<z.ZodNumber>;
457
+ }, "strict", z.ZodTypeAny, {
458
+ confidence: "high" | "low" | "medium";
459
+ run_id: string;
460
+ contract_version: "dispatch-quota/v1";
461
+ model: string | null;
462
+ source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
463
+ cooldown_until: string | null;
464
+ resolved_limits: {
465
+ context_tokens: number;
466
+ output_tokens: number;
467
+ requests_per_minute: number | null;
468
+ input_tokens_per_minute: number | null;
469
+ output_tokens_per_minute: number | null;
470
+ };
471
+ host_concurrency_limit: {
472
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
473
+ active_subagents: number;
474
+ description: string;
475
+ } | null;
476
+ admission: {
477
+ leases: {
478
+ pool_id: string;
479
+ cost: number;
480
+ packet_id: string;
481
+ resource_key: string;
482
+ lease_id: string;
483
+ }[];
484
+ granted_packet_ids: string[];
485
+ declared_cap: number | null;
486
+ explains: {
487
+ reason: "budget_exhausted" | "cap_reached" | "no_capable_pool" | "admitted";
488
+ pool_id: string | null;
489
+ cost: number;
490
+ admitted: boolean;
491
+ packet_id: string;
492
+ resource_key: string | null;
493
+ headroom_before?: number | undefined;
494
+ outstanding_before?: number | undefined;
495
+ }[];
496
+ };
497
+ estimated_wave_tokens?: number | undefined;
498
+ binding_cap?: "rpm" | "tpm" | "token_budget" | "cooldown" | "host_concurrency" | "none" | undefined;
499
+ quota_source_snapshot?: {
500
+ remaining_pct: number | null;
501
+ reset_at: string | null;
502
+ tokens_remaining: number | null;
503
+ requests_remaining: number | null;
504
+ captured_at: string;
505
+ source: string;
506
+ windows?: {
507
+ label: string;
508
+ remaining_pct: number | null;
509
+ reset_at: string | null;
510
+ tokens_remaining?: number | null | undefined;
511
+ }[] | undefined;
512
+ } | null | undefined;
513
+ capacity_pools?: {
514
+ confidence: "high" | "low" | "medium";
515
+ model: string | null;
516
+ source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
517
+ cooldown_until: string | null;
518
+ pool_id: string;
519
+ slots: number;
520
+ resolved_limits: {
521
+ context_tokens: number;
522
+ output_tokens: number;
523
+ requests_per_minute: number | null;
524
+ input_tokens_per_minute: number | null;
525
+ output_tokens_per_minute: number | null;
526
+ };
527
+ host_concurrency_limit: {
528
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
529
+ active_subagents: number;
530
+ description: string;
531
+ } | null;
532
+ is_conversation_host: boolean;
533
+ estimated_wave_tokens: number;
534
+ binding_cap: "rpm" | "tpm" | "token_budget" | "cooldown" | "host_concurrency" | "none";
535
+ capability_rank?: number | null | undefined;
536
+ rank?: "deep" | "small" | "standard" | undefined;
537
+ calibrating?: boolean | undefined;
538
+ remaining_token_budget?: number | null | undefined;
539
+ binding_window?: {
540
+ label: string;
541
+ reset_at: string | null;
542
+ budget: number;
543
+ } | null | undefined;
544
+ in_flight_tokens?: number | undefined;
545
+ quota_source_snapshot?: {
546
+ remaining_pct: number | null;
547
+ reset_at: string | null;
548
+ tokens_remaining: number | null;
549
+ requests_remaining: number | null;
550
+ captured_at: string;
551
+ source: string;
552
+ windows?: {
553
+ label: string;
554
+ remaining_pct: number | null;
555
+ reset_at: string | null;
556
+ tokens_remaining?: number | null | undefined;
557
+ }[] | undefined;
558
+ } | null | undefined;
559
+ quota_signal_degraded?: boolean | undefined;
560
+ quota_coverage?: "established" | "reactive_only" | "unestablished" | undefined;
561
+ concurrency_cap?: number | null | undefined;
562
+ declared_cost_per_mtok?: number | null | undefined;
563
+ context_cap_tokens?: number | null | undefined;
564
+ }[] | undefined;
565
+ backoff_state?: {
566
+ consecutive_429_count: number;
567
+ current_cooldown_ms: number;
568
+ } | null | undefined;
569
+ host_model_roster?: {
570
+ context_tokens: number;
571
+ output_tokens: number;
572
+ rank: "deep" | "small" | "standard";
573
+ model_id?: string | undefined;
574
+ }[] | undefined;
575
+ tier_budgets?: Partial<Record<"deep" | "small" | "standard", number>> | undefined;
576
+ phase?: string | undefined;
577
+ }, {
578
+ confidence: "high" | "low" | "medium";
579
+ run_id: string;
580
+ contract_version: "dispatch-quota/v1";
581
+ model: string | null;
582
+ source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
583
+ cooldown_until: string | null;
584
+ resolved_limits: {
585
+ context_tokens: number;
586
+ output_tokens: number;
587
+ requests_per_minute: number | null;
588
+ input_tokens_per_minute: number | null;
589
+ output_tokens_per_minute: number | null;
590
+ };
591
+ host_concurrency_limit: {
592
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
593
+ active_subagents: number;
594
+ description: string;
595
+ } | null;
596
+ admission: {
597
+ leases: {
598
+ pool_id: string;
599
+ cost: number;
600
+ packet_id: string;
601
+ resource_key: string;
602
+ lease_id: string;
603
+ }[];
604
+ granted_packet_ids: string[];
605
+ declared_cap: number | null;
606
+ explains: {
607
+ reason: "budget_exhausted" | "cap_reached" | "no_capable_pool" | "admitted";
608
+ pool_id: string | null;
609
+ cost: number;
610
+ admitted: boolean;
611
+ packet_id: string;
612
+ resource_key: string | null;
613
+ headroom_before?: number | undefined;
614
+ outstanding_before?: number | undefined;
615
+ }[];
616
+ };
617
+ estimated_wave_tokens?: number | undefined;
618
+ binding_cap?: "rpm" | "tpm" | "token_budget" | "cooldown" | "host_concurrency" | "none" | undefined;
619
+ quota_source_snapshot?: {
620
+ remaining_pct: number | null;
621
+ reset_at: string | null;
622
+ tokens_remaining: number | null;
623
+ requests_remaining: number | null;
624
+ captured_at: string;
625
+ source: string;
626
+ windows?: {
627
+ label: string;
628
+ remaining_pct: number | null;
629
+ reset_at: string | null;
630
+ tokens_remaining?: number | null | undefined;
631
+ }[] | undefined;
632
+ } | null | undefined;
633
+ capacity_pools?: {
634
+ confidence: "high" | "low" | "medium";
635
+ model: string | null;
636
+ source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
637
+ cooldown_until: string | null;
638
+ pool_id: string;
639
+ slots: number;
640
+ resolved_limits: {
641
+ context_tokens: number;
642
+ output_tokens: number;
643
+ requests_per_minute: number | null;
644
+ input_tokens_per_minute: number | null;
645
+ output_tokens_per_minute: number | null;
646
+ };
647
+ host_concurrency_limit: {
648
+ source: "cli_flags" | "host_reported" | "session_config" | "environment" | "discovered_config" | "known_default";
649
+ active_subagents: number;
650
+ description: string;
651
+ } | null;
652
+ is_conversation_host: boolean;
653
+ estimated_wave_tokens: number;
654
+ binding_cap: "rpm" | "tpm" | "token_budget" | "cooldown" | "host_concurrency" | "none";
655
+ capability_rank?: number | null | undefined;
656
+ rank?: "deep" | "small" | "standard" | undefined;
657
+ calibrating?: boolean | undefined;
658
+ remaining_token_budget?: number | null | undefined;
659
+ binding_window?: {
660
+ label: string;
661
+ reset_at: string | null;
662
+ budget: number;
663
+ } | null | undefined;
664
+ in_flight_tokens?: number | undefined;
665
+ quota_source_snapshot?: {
666
+ remaining_pct: number | null;
667
+ reset_at: string | null;
668
+ tokens_remaining: number | null;
669
+ requests_remaining: number | null;
670
+ captured_at: string;
671
+ source: string;
672
+ windows?: {
673
+ label: string;
674
+ remaining_pct: number | null;
675
+ reset_at: string | null;
676
+ tokens_remaining?: number | null | undefined;
677
+ }[] | undefined;
678
+ } | null | undefined;
679
+ quota_signal_degraded?: boolean | undefined;
680
+ quota_coverage?: "established" | "reactive_only" | "unestablished" | undefined;
681
+ concurrency_cap?: number | null | undefined;
682
+ declared_cost_per_mtok?: number | null | undefined;
683
+ context_cap_tokens?: number | null | undefined;
684
+ }[] | undefined;
685
+ backoff_state?: {
686
+ consecutive_429_count: number;
687
+ current_cooldown_ms: number;
688
+ } | null | undefined;
689
+ host_model_roster?: {
690
+ context_tokens: number;
691
+ output_tokens: number;
692
+ rank: "deep" | "small" | "standard";
693
+ model_id?: string | undefined;
694
+ }[] | undefined;
695
+ tier_budgets?: Partial<Record<"deep" | "small" | "standard", number>> | undefined;
696
+ phase?: string | undefined;
697
+ }>;
698
+ export type DispatchQuotaContract = z.infer<typeof DispatchQuotaContractSchema>;
699
+ /**
700
+ * The shared emit core: run admission over the caller's pool set and assemble the
701
+ * validated contract. The caller supplies its resolved base fields + per-mode
702
+ * extensions; the admission math and the contract shape live HERE, once.
703
+ */
704
+ export declare function assembleDispatchQuota(params: {
705
+ runId: string;
706
+ pools: AdmissionPool[];
707
+ packets: {
708
+ id: string;
709
+ inputTokens: number;
710
+ complexity: number;
711
+ requiredTier?: DispatchModelTier;
712
+ }[];
713
+ outputCap: number;
714
+ grantLeases: boolean;
715
+ ledger: ReservationLedger;
716
+ capable?: (pool: AdmissionPool, packet: AdmissionCandidate) => boolean;
717
+ dispatchBias?: number;
718
+ base: Omit<DispatchQuotaContract, "contract_version" | "run_id" | "admission">;
719
+ }): Promise<DispatchQuotaContract>;
720
+ //# sourceMappingURL=dispatchQuotaContract.d.ts.map