audit-tools 0.33.3 → 0.33.6

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 (110) hide show
  1. package/dist/audit/cli/args.d.ts +1 -1
  2. package/dist/audit/cli/args.d.ts.map +1 -1
  3. package/dist/audit/cli/args.js +1 -4
  4. package/dist/audit/cli/args.js.map +1 -1
  5. package/dist/audit/cli/dispatch/hostFanoutGate.d.ts +7 -0
  6. package/dist/audit/cli/dispatch/hostFanoutGate.d.ts.map +1 -1
  7. package/dist/audit/cli/dispatch/hostFanoutGate.js +18 -4
  8. package/dist/audit/cli/dispatch/hostFanoutGate.js.map +1 -1
  9. package/dist/audit/cli/dispatch/quotaPool.d.ts +12 -0
  10. package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
  11. package/dist/audit/cli/dispatch/quotaPool.js +59 -31
  12. package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
  13. package/dist/audit/cli/dispatch/types.d.ts +7 -0
  14. package/dist/audit/cli/dispatch/types.d.ts.map +1 -1
  15. package/dist/audit/cli/dispatch.d.ts +19 -0
  16. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  17. package/dist/audit/cli/dispatch.js +46 -8
  18. package/dist/audit/cli/dispatch.js.map +1 -1
  19. package/dist/audit/cli/hybridDispatch.d.ts +16 -3
  20. package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
  21. package/dist/audit/cli/hybridDispatch.js +16 -23
  22. package/dist/audit/cli/hybridDispatch.js.map +1 -1
  23. package/dist/audit/cli/nextStepCommand.d.ts +1 -1
  24. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  25. package/dist/audit/cli/nextStepCommand.js +32 -18
  26. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  27. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  28. package/dist/audit/cli/nextStepHelpers.js +74 -51
  29. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  30. package/dist/audit/cli/reviewRun.d.ts +1 -0
  31. package/dist/audit/cli/reviewRun.d.ts.map +1 -1
  32. package/dist/audit/cli/reviewRun.js +5 -1
  33. package/dist/audit/cli/reviewRun.js.map +1 -1
  34. package/dist/audit/cli/rollingAuditDispatch.d.ts +12 -30
  35. package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
  36. package/dist/audit/cli/rollingAuditDispatch.js +11 -60
  37. package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
  38. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  39. package/dist/audit/cli/semanticReviewStep.js +30 -7
  40. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  41. package/dist/audit/quota/index.d.ts +2 -668
  42. package/dist/audit/quota/index.d.ts.map +1 -1
  43. package/dist/audit/quota/index.js +5 -30
  44. package/dist/audit/quota/index.js.map +1 -1
  45. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
  46. package/dist/remediate/steps/dispatch/marshal.js +8 -1
  47. package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
  48. package/dist/remediate/steps/dispatch/waveScheduling.d.ts +9 -2
  49. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
  50. package/dist/remediate/steps/dispatch/waveScheduling.js +48 -42
  51. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
  52. package/dist/remediate/steps/nextStep.d.ts +79 -65
  53. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  54. package/dist/remediate/steps/nextStep.js +379 -380
  55. package/dist/remediate/steps/nextStep.js.map +1 -1
  56. package/dist/remediate/steps/types.d.ts +7 -27
  57. package/dist/remediate/steps/types.d.ts.map +1 -1
  58. package/dist/remediate/steps/types.js +0 -1
  59. package/dist/remediate/steps/types.js.map +1 -1
  60. package/dist/shared/dispatch/admissionLoop.d.ts +66 -8
  61. package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -1
  62. package/dist/shared/dispatch/admissionLoop.js +168 -3
  63. package/dist/shared/dispatch/admissionLoop.js.map +1 -1
  64. package/dist/shared/dispatch/dispatchQuotaContract.d.ts +720 -0
  65. package/dist/shared/dispatch/dispatchQuotaContract.d.ts.map +1 -0
  66. package/dist/shared/dispatch/dispatchQuotaContract.js +76 -0
  67. package/dist/shared/dispatch/dispatchQuotaContract.js.map +1 -0
  68. package/dist/shared/dispatch/hostDispatchWall.d.ts +39 -0
  69. package/dist/shared/dispatch/hostDispatchWall.d.ts.map +1 -1
  70. package/dist/shared/dispatch/hostDispatchWall.js +22 -1
  71. package/dist/shared/dispatch/hostDispatchWall.js.map +1 -1
  72. package/dist/shared/dispatch/rollingDispatch.d.ts +18 -1
  73. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  74. package/dist/shared/dispatch/rollingDispatch.js +35 -9
  75. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  76. package/dist/shared/dispatch/settledPools.d.ts +32 -0
  77. package/dist/shared/dispatch/settledPools.d.ts.map +1 -1
  78. package/dist/shared/dispatch/settledPools.js +37 -0
  79. package/dist/shared/dispatch/settledPools.js.map +1 -1
  80. package/dist/shared/index.d.ts +9 -6
  81. package/dist/shared/index.d.ts.map +1 -1
  82. package/dist/shared/index.js +7 -5
  83. package/dist/shared/index.js.map +1 -1
  84. package/dist/shared/providers/inProcessWorkers.d.ts +42 -0
  85. package/dist/shared/providers/inProcessWorkers.d.ts.map +1 -0
  86. package/dist/shared/providers/inProcessWorkers.js +64 -0
  87. package/dist/shared/providers/inProcessWorkers.js.map +1 -0
  88. package/dist/shared/providers/providerPathGuard.d.ts +33 -4
  89. package/dist/shared/providers/providerPathGuard.d.ts.map +1 -1
  90. package/dist/shared/providers/providerPathGuard.js +33 -4
  91. package/dist/shared/providers/providerPathGuard.js.map +1 -1
  92. package/dist/shared/providers/proxyCatalog.d.ts.map +1 -1
  93. package/dist/shared/providers/proxyCatalog.js +21 -4
  94. package/dist/shared/providers/proxyCatalog.js.map +1 -1
  95. package/dist/shared/quota/apiPool.d.ts +94 -44
  96. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  97. package/dist/shared/quota/apiPool.js +173 -75
  98. package/dist/shared/quota/apiPool.js.map +1 -1
  99. package/dist/shared/quota/capacity.d.ts +8 -1
  100. package/dist/shared/quota/capacity.d.ts.map +1 -1
  101. package/dist/shared/quota/capacity.js +2 -1
  102. package/dist/shared/quota/capacity.js.map +1 -1
  103. package/dist/shared/types/auditorDescriptor.d.ts +0 -8
  104. package/dist/shared/types/auditorDescriptor.d.ts.map +1 -1
  105. package/dist/shared/types/auditorDescriptor.js.map +1 -1
  106. package/dist/shared/validation/sessionConfig.d.ts.map +1 -1
  107. package/dist/shared/validation/sessionConfig.js +10 -0
  108. package/dist/shared/validation/sessionConfig.js.map +1 -1
  109. package/opencode.json +2 -2
  110. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"proxyCatalog.js","sourceRoot":"","sources":["../../../src/shared/providers/proxyCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxyCatalog.js","sourceRoot":"","sources":["../../../src/shared/providers/proxyCatalog.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,24 @@ import type { DispatchExclusion } from "../providers/sharedProviderConfirmation.
17
17
  * the gate's `model_id ?? provider` compare key. Do not unify them.
18
18
  */
19
19
  export declare function dispatchableSourceId(source: DispatchableSource, account?: string | null): string;
20
+ /**
21
+ * The effective per-request context window (tokens) for a dispatchable source — a
22
+ * positive integer that is NEVER null. This is the invariant that makes context-fit
23
+ * gating REAL: a `null` cap meant "unknown ⇒ always fits", which silently no-op'd
24
+ * every fit gate for a proxy pool whose registry entry carried no context field (the
25
+ * 2026-07-17 host-only-collapse root cause — oversized packets were dispatched and
26
+ * 413'd instead of being skipped). Fallback chain:
27
+ * 1. operator/registry-declared `quota.context_tokens` (the stamp populate sets),
28
+ * 2. else the BACKEND model's models.dev window (`resolveModelStatics(model,
29
+ * backend_provider ?? provider)` — a synced, someone-else-maintained table),
30
+ * 3. else the blind `DEFAULT_CONTEXT_TOKENS` floor.
31
+ * Single-sourced (exported) as the one fit-window resolver. Only `buildSourcePool`
32
+ * stamps it — host-model pools carry no `contextCapTokens` and gate (on the admission
33
+ * path) against their own per-pool `resolved_limits` window instead; the admission
34
+ * builder folds the two (`context_cap_tokens ?? resolved_limits.context_tokens`) so
35
+ * BOTH pool classes share one fit predicate (unified-routing step B).
36
+ */
37
+ export declare function resolveSourceContextWindowTokens(source: DispatchableSource): number;
20
38
  /**
21
39
  * Bridge a generic {@link DispatchableSource} to the concrete per-provider config
22
40
  * block its provider constructor expects, so `createFreshSessionProvider` can build
@@ -97,57 +115,31 @@ export declare function buildSourcePool(params: {
97
115
  quotaSource: QuotaSource;
98
116
  quotaEntries: Record<string, QuotaStateEntry>;
99
117
  }): Promise<CapacityPool>;
100
- /**
101
- * Whether a provider is an in-process backend that DEMOTES to a source pool when an
102
- * attended host drives (defect-1): the API/CLI worker backends only. Callers gate the
103
- * in-process-monopoly branch on this so an attended host fans out onto the backend as a
104
- * source (host + backend + NIM concurrent) while a non-demotable in-process provider
105
- * (`subprocess-template` / `worker-command`, which carry no standalone source pool)
106
- * keeps self-driving. Also the discriminator for demoting the host-pool identity back
107
- * to the conversation host when the configured primary is one of these backends.
108
- */
109
- export declare function isDemotableInProcessProvider(providerName: string | undefined): boolean;
110
- /**
111
- * Whether an attended host should DEMOTE its configured primary in-process backend
112
- * to a separate source pool (defect-1 concurrent fan-out). True only when the host
113
- * can dispatch subagents AND the primary is a demotable backend AND — the B1
114
- * same-agent guard — the resolved CONVERSATION HOST is a DIFFERENT provider than
115
- * that backend.
116
- *
117
- * The same-agent guard is load-bearing: the primary demoted source shares the
118
- * host's own credential (it carries no `credentials_path`), so when the host
119
- * provider equals the primary provider they are ONE account. Emitting both a
120
- * host pool AND a demoted-source pool for that one account double-books its
121
- * budget/concurrency and — because `dispatchableSourceId` falls through to the
122
- * same `buildProviderModelKey` format the host pool uses — can even collide on a
123
- * single pool id. In that case there is no distinct host to fan out alongside;
124
- * the host self-drives the backend as its single pool. Single-sourced so audit
125
- * and remediate apply the identical guard. [[host-provider-misattribution-nim-codex]]
126
- */
127
- export declare function shouldDemotePrimaryInProcess(options: {
128
- sessionConfig: SessionConfig | null | undefined;
129
- hostCanDispatch: boolean;
130
- env?: NodeJS.ProcessEnv;
131
- }): boolean;
132
118
  /**
133
119
  * The DispatchableSource for the primary in-process backend, built from its own config
134
- * block, so an attended host can fan out onto it as a source pool ALONGSIDE its own
135
- * subagents (defect-1: host + codex + NIM concurrent, no backend monopoly). Returns
136
- * null when the primary provider is not a demotable in-process backend, or its config
137
- * block is absent. The dispatch worker rebuilds the concrete provider from this
138
- * source's `{endpoint, model, parameters}` via `withSourceConfig`.
120
+ * block, so the primary is just a SOURCE POOL in the one eligible pool set (H2+H4
121
+ * collapse): an attended host fans out onto it alongside its own subagents, and a
122
+ * headless run's engine drives it as an ordinary member pool — there is no demote
123
+ * flag and no monopoly branch. Returns null when the primary provider is not a
124
+ * self-drivable in-process backend under the DRAW's policy (`commandWorkers` —
125
+ * remediate admits the command-shaped backends, audit does not), or its config block
126
+ * is absent where one is required. The dispatch worker rebuilds the concrete provider
127
+ * from this source's `{endpoint, model, parameters}` via `withSourceConfig`.
139
128
  */
140
- export declare function primaryInProcessSource(sessionConfig: SessionConfig, primaryProviderName: string): DispatchableSource | null;
129
+ export declare function primaryInProcessSource(sessionConfig: SessionConfig, primaryProviderName: string, options?: {
130
+ commandWorkers?: boolean;
131
+ }): DispatchableSource | null;
141
132
  /**
142
133
  * Every dispatchable backend source configured for a run, in pool order: the explicit
143
- * `sessionConfig.sources`, optionally the DEMOTED primary in-process backend (defect-1,
144
- * when an attended host drives — `demotePrimaryInProcess`), plus — for back-compat — a
134
+ * `sessionConfig.sources`, the primary in-process backend folded in UNCONDITIONALLY
135
+ * (H2+H4 collapse: the primary is just a source pool — there is no demote flag; which
136
+ * providers fold is the draw's `commandWorkers` policy), plus — for back-compat — a
145
137
  * single implicit source folded in from a legacy `openai_compatible` block when it
146
138
  * isn't the primary provider and isn't already covered by an explicit source of the
147
139
  * same id.
148
140
  */
149
141
  export declare function collectDispatchableSources(sessionConfig: SessionConfig, primaryProviderName: string, options?: {
150
- demotePrimaryInProcess?: boolean;
142
+ commandWorkers?: boolean;
151
143
  }): DispatchableSource[];
152
144
  /**
153
145
  * The FULL dispatchable source list for a run — the configured
@@ -158,7 +150,7 @@ export declare function collectDispatchableSources(sessionConfig: SessionConfig,
158
150
  * inventory resolution the handshake will feed here.
159
151
  */
160
152
  export declare function gatherDispatchableSources(sessionConfig: SessionConfig, primaryProviderName: string, options?: {
161
- demotePrimaryInProcess?: boolean;
153
+ commandWorkers?: boolean;
162
154
  }): Promise<DispatchableSource[]>;
163
155
  /**
164
156
  * Build the CapacityPool for every configured dispatchable backend source (the
@@ -172,8 +164,8 @@ export declare function buildSourcePools(params: {
172
164
  primaryProviderName: string;
173
165
  quotaSource: QuotaSource;
174
166
  quotaEntries: Record<string, QuotaStateEntry>;
175
- /** Defect-1: demote the primary in-process backend to a source when an attended host drives. */
176
- demotePrimaryInProcess?: boolean;
167
+ /** The draw's fold policy: admit command-shaped primaries (remediate) or not (audit). */
168
+ commandWorkers?: boolean;
177
169
  /**
178
170
  * The backends the operator ruled out at Gate-0, plus any recomputed as
179
171
  * self-spawn-blocked in THIS process (`resolveDispatchExclusion`). Applied as a
@@ -193,4 +185,62 @@ export declare function buildSourcePools(params: {
193
185
  */
194
186
  excludedBackends?: DispatchExclusion;
195
187
  }): Promise<CapacityPool[]>;
188
+ /**
189
+ * Re-derive each pool's `quotaStateEntry` by folding in the account-scoped
190
+ * cooldown/429 signal from its siblings (Bug 3 / Slice A3: account-axis pool
191
+ * identity). Applied ONCE across the whole freshly-built pool set — after
192
+ * this, every pool's frozen `quotaStateEntry` already reflects the worst
193
+ * cooldown its account has seen, so a peer whose OWN key never recorded a 429
194
+ * still shows up degraded. This is the construction-time counterpart to the
195
+ * live fold `selectProvider` applies mid-run in `rollingDispatch.ts` (same
196
+ * {@link foldAccountCooldown} primitive, single-sourced). A pool with no
197
+ * derivable account (not `openai-compatible`, missing endpoint/api_key_env, or
198
+ * an explicit `source.account` override) is returned unchanged.
199
+ */
200
+ /**
201
+ * Cross-class host-vs-source pool dedup (H2+H4 collapse, plan D1) — the ONE shared
202
+ * collision rule both draws apply when assembling their eligible pool set. With the
203
+ * primary in-process backend folded in UNCONDITIONALLY, the attended host's pool
204
+ * identity can collide with a folded source's `dispatchableSourceId` (the classic
205
+ * case: conversation host codex + `provider: codex` — one credential, one account;
206
+ * emitting both pools double-books that one meter and can collide on a single pool
207
+ * id, the retired B1 same-agent guard's bug class
208
+ * [[host-provider-misattribution-nim-codex]]).
209
+ *
210
+ * Collision = same provider identity on the same account axis. Provider identity is
211
+ * the BACKEND when the source declares one (`backend_provider` — a proxied lane onto
212
+ * the host's own backend is exactly the double-grant this guards; review h2c3 F5),
213
+ * else the pool's providerName. The account compare is DIRECTIONAL (review h2c3 F3):
214
+ * a source with NO declared account collides on provider alone — the synthesized
215
+ * primary fold shares the host credential by construction — but a source with an
216
+ * EXPLICIT account collides only when the host's account resolves equal; a host
217
+ * whose account is merely unresolved (dark credential) must never lose its lane to
218
+ * a source declared on a DIFFERENT account. Deliberately NOT model-granular: the
219
+ * double-grant boundary this protects is `(provider, account)`, not the model axis.
220
+ *
221
+ * Survivor rule (D1): on collision the SOURCE/engine pool survives when its provider
222
+ * is an in-process worker — the engine drives that one account and the host has no
223
+ * separate pool to double-book (preserving self-drive for attended
224
+ * provider=codex=host); the HOST pool survives otherwise (a host-shaped identity is
225
+ * not an engine-drivable source).
226
+ *
227
+ * `hostProviderName` serves the draw whose host is NOT a member pool (audit, plan
228
+ * D6: the host is the coverage-driven complement): with no host pools to drop, the
229
+ * rule degenerates to dropping a colliding non-in-process source.
230
+ */
231
+ export declare function dedupHostAndSourcePools(params: {
232
+ hostPools: CapacityPool[];
233
+ sourcePools: CapacityPool[];
234
+ /** Attended host identity for a draw whose host is not a member pool (audit). */
235
+ hostProviderName?: ResolvedProviderName | null;
236
+ /**
237
+ * The DRAW's worker policy for the D1 survivor rule (remediate admits
238
+ * command-shaped workers; audit does not) — a command-shaped source can only
239
+ * survive a collision on a draw whose engine can actually drive it.
240
+ */
241
+ commandWorkers?: boolean;
242
+ }): {
243
+ hostPools: CapacityPool[];
244
+ sourcePools: CapacityPool[];
245
+ };
196
246
  //# sourceMappingURL=apiPool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiPool.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/apiPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiPool.d.ts","sourceRoot":"","sources":["../../../src/shared/quota/apiPool.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@ import { parseProviderModelKey } from "./httpQuotaSource.js";
4
4
  import { buildAccountScopedQuotaSource } from "./compositeQuotaSource.js";
5
5
  import { deriveLocalAccountId, foldAccountCooldown } from "./accountId.js";
6
6
  import { classifyQuotaCoverage, sourceCoversProvider } from "./coverage.js";
7
+ import { resolveModelStatics } from "./modelStatics.js";
8
+ import { DEFAULT_CONTEXT_TOKENS } from "../tokens.js";
7
9
  import { hasConfiguredOpenAiCompatible } from "../providers/providerFactory.js";
8
- import { resolveConversationHostProvider } from "../providers/providerPathGuard.js";
10
+ import { isHeadlessPrimaryProvider, isInProcessWorkerProvider, } from "../providers/inProcessWorkers.js";
9
11
  /**
10
12
  * The stable id of a dispatchable source — its explicit `id`, or the quota-ledger
11
13
  * pool identity `provider[#account]/(model ?? endpoint ?? *)` ({@link buildProviderModelKey})
@@ -46,6 +48,33 @@ function positiveIntCapOrNull(value) {
46
48
  return null;
47
49
  return Math.floor(value);
48
50
  }
51
+ /**
52
+ * The effective per-request context window (tokens) for a dispatchable source — a
53
+ * positive integer that is NEVER null. This is the invariant that makes context-fit
54
+ * gating REAL: a `null` cap meant "unknown ⇒ always fits", which silently no-op'd
55
+ * every fit gate for a proxy pool whose registry entry carried no context field (the
56
+ * 2026-07-17 host-only-collapse root cause — oversized packets were dispatched and
57
+ * 413'd instead of being skipped). Fallback chain:
58
+ * 1. operator/registry-declared `quota.context_tokens` (the stamp populate sets),
59
+ * 2. else the BACKEND model's models.dev window (`resolveModelStatics(model,
60
+ * backend_provider ?? provider)` — a synced, someone-else-maintained table),
61
+ * 3. else the blind `DEFAULT_CONTEXT_TOKENS` floor.
62
+ * Single-sourced (exported) as the one fit-window resolver. Only `buildSourcePool`
63
+ * stamps it — host-model pools carry no `contextCapTokens` and gate (on the admission
64
+ * path) against their own per-pool `resolved_limits` window instead; the admission
65
+ * builder folds the two (`context_cap_tokens ?? resolved_limits.context_tokens`) so
66
+ * BOTH pool classes share one fit predicate (unified-routing step B).
67
+ */
68
+ export function resolveSourceContextWindowTokens(source) {
69
+ const declared = positiveIntCapOrNull(source.quota?.context_tokens);
70
+ if (declared !== null)
71
+ return declared;
72
+ const statics = resolveModelStatics(source.model ?? null, source.backend_provider ?? source.provider);
73
+ const fromCatalog = positiveIntCapOrNull(statics?.context_tokens);
74
+ if (fromCatalog !== null)
75
+ return fromCatalog;
76
+ return DEFAULT_CONTEXT_TOKENS;
77
+ }
49
78
  /**
50
79
  * A source's operator-declared `$/Mtok`, normalized to a non-negative finite number
51
80
  * or null (unknown → fall through to the models.dev price / tier at rank time). `0`
@@ -242,10 +271,12 @@ export async function buildSourcePool(params) {
242
271
  // null (uncapped) — never 0, which would ceiling the pool to zero in-flight and
243
272
  // wedge the rolling engine, and would also violate the summary schema's min(1).
244
273
  concurrencyCap: positiveIntCapOrNull(source.quota?.max_concurrent),
245
- // Endpoint-declared per-request context-token cap (from source.quota.context_tokens).
246
- // null/absent = unknown cap → no fit filtering. A non-positive / non-finite value
247
- // degrades to null (no finer signal).
248
- contextCapTokens: positiveIntCapOrNull(source.quota?.context_tokens),
274
+ // Effective per-request context window — NEVER null (declared quota.context_tokens
275
+ // → backend model's models.dev window → DEFAULT_CONTEXT_TOKENS). A null cap used to
276
+ // mean "always fits", which no-op'd every fit gate for a registry pool carrying no
277
+ // context field; resolving to a concrete window means an oversized packet is skipped,
278
+ // not 413'd. See resolveSourceContextWindowTokens.
279
+ contextCapTokens: resolveSourceContextWindowTokens(source),
249
280
  // Operator-declared a-priori $/Mtok for this endpoint → the admission cost rank
250
281
  // (rung 2, authoritative over the models.dev catalog). 0 = declared-free → routes
251
282
  // first. null when unset/invalid ⇒ falls through to the catalog price / tier.
@@ -264,60 +295,8 @@ export async function buildSourcePool(params) {
264
295
  source,
265
296
  };
266
297
  }
267
- /**
268
- * The in-process backends that can be DEMOTED to a source pool when an attended host
269
- * drives (defect-1): the API/CLI worker backends. Excludes `worker-command` /
270
- * `subprocess-template` — those are host-dispatch defaults, not standalone source
271
- * pools to fan out onto alongside the host.
272
- */
273
- const DEMOTABLE_IN_PROCESS_PROVIDERS = new Set([
274
- "openai-compatible",
275
- "codex",
276
- "opencode",
277
- ]);
278
- /**
279
- * Whether a provider is an in-process backend that DEMOTES to a source pool when an
280
- * attended host drives (defect-1): the API/CLI worker backends only. Callers gate the
281
- * in-process-monopoly branch on this so an attended host fans out onto the backend as a
282
- * source (host + backend + NIM concurrent) while a non-demotable in-process provider
283
- * (`subprocess-template` / `worker-command`, which carry no standalone source pool)
284
- * keeps self-driving. Also the discriminator for demoting the host-pool identity back
285
- * to the conversation host when the configured primary is one of these backends.
286
- */
287
- export function isDemotableInProcessProvider(providerName) {
288
- return providerName !== undefined && DEMOTABLE_IN_PROCESS_PROVIDERS.has(providerName);
289
- }
290
- /**
291
- * Whether an attended host should DEMOTE its configured primary in-process backend
292
- * to a separate source pool (defect-1 concurrent fan-out). True only when the host
293
- * can dispatch subagents AND the primary is a demotable backend AND — the B1
294
- * same-agent guard — the resolved CONVERSATION HOST is a DIFFERENT provider than
295
- * that backend.
296
- *
297
- * The same-agent guard is load-bearing: the primary demoted source shares the
298
- * host's own credential (it carries no `credentials_path`), so when the host
299
- * provider equals the primary provider they are ONE account. Emitting both a
300
- * host pool AND a demoted-source pool for that one account double-books its
301
- * budget/concurrency and — because `dispatchableSourceId` falls through to the
302
- * same `buildProviderModelKey` format the host pool uses — can even collide on a
303
- * single pool id. In that case there is no distinct host to fan out alongside;
304
- * the host self-drives the backend as its single pool. Single-sourced so audit
305
- * and remediate apply the identical guard. [[host-provider-misattribution-nim-codex]]
306
- */
307
- export function shouldDemotePrimaryInProcess(options) {
308
- if (!options.hostCanDispatch)
309
- return false;
310
- const provider = options.sessionConfig?.provider;
311
- if (!isDemotableInProcessProvider(provider))
312
- return false;
313
- const conversationHost = resolveConversationHostProvider({
314
- sessionConfig: options.sessionConfig,
315
- env: options.env,
316
- });
317
- return conversationHost !== provider;
318
- }
319
298
  /** Build a DispatchableSource for a configured `openai_compatible` block (the legacy
320
- * NIM source shape), reused by both the back-compat fold and the primary demote. */
299
+ * NIM source shape), reused by both the back-compat fold and the primary fold. */
321
300
  function openAiCompatibleSource(oc) {
322
301
  return {
323
302
  provider: "openai-compatible",
@@ -350,14 +329,17 @@ function openAiCompatibleSource(oc) {
350
329
  }
351
330
  /**
352
331
  * The DispatchableSource for the primary in-process backend, built from its own config
353
- * block, so an attended host can fan out onto it as a source pool ALONGSIDE its own
354
- * subagents (defect-1: host + codex + NIM concurrent, no backend monopoly). Returns
355
- * null when the primary provider is not a demotable in-process backend, or its config
356
- * block is absent. The dispatch worker rebuilds the concrete provider from this
357
- * source's `{endpoint, model, parameters}` via `withSourceConfig`.
332
+ * block, so the primary is just a SOURCE POOL in the one eligible pool set (H2+H4
333
+ * collapse): an attended host fans out onto it alongside its own subagents, and a
334
+ * headless run's engine drives it as an ordinary member pool — there is no demote
335
+ * flag and no monopoly branch. Returns null when the primary provider is not a
336
+ * self-drivable in-process backend under the DRAW's policy (`commandWorkers` —
337
+ * remediate admits the command-shaped backends, audit does not), or its config block
338
+ * is absent where one is required. The dispatch worker rebuilds the concrete provider
339
+ * from this source's `{endpoint, model, parameters}` via `withSourceConfig`.
358
340
  */
359
- export function primaryInProcessSource(sessionConfig, primaryProviderName) {
360
- if (!DEMOTABLE_IN_PROCESS_PROVIDERS.has(primaryProviderName))
341
+ export function primaryInProcessSource(sessionConfig, primaryProviderName, options) {
342
+ if (!isHeadlessPrimaryProvider(primaryProviderName, options))
361
343
  return null;
362
344
  switch (primaryProviderName) {
363
345
  case "openai-compatible":
@@ -386,13 +368,55 @@ export function primaryInProcessSource(sessionConfig, primaryProviderName) {
386
368
  },
387
369
  };
388
370
  }
371
+ // D4: agy needs an EXPLICIT synthesis case (it does not "fall out" of un-gating):
372
+ // without one, an attended `provider: agy` run would have NO pool and — with the
373
+ // monopoly branch gone — no dispatch at all. Synthesized from its config block,
374
+ // mirroring `sourceProviderConfig`'s agy mapping (command→endpoint, model→model).
375
+ case "agy": {
376
+ const a = sessionConfig.agy ?? {};
377
+ return {
378
+ provider: "agy",
379
+ ...(a.command !== undefined ? { endpoint: a.command } : {}),
380
+ ...(a.model !== undefined ? { model: a.model } : {}),
381
+ parameters: {
382
+ ...(a.extra_args !== undefined ? { extra_args: a.extra_args } : {}),
383
+ ...(a.dangerously_skip_permissions !== undefined
384
+ ? { dangerously_skip_permissions: a.dangerously_skip_permissions }
385
+ : {}),
386
+ },
387
+ };
388
+ }
389
+ // D3 (command-shaped primaries — reachable only under a draw whose policy sets
390
+ // `commandWorkers: true`, i.e. remediate): without these an attended run whose
391
+ // primary is command-shaped would silently lose ALL dispatch
392
+ // ([[silent-fail-closed-on-one-draw]] class).
393
+ case "subprocess-template": {
394
+ const s = sessionConfig.subprocess_template;
395
+ // The template block is the whole launch contract — absent/empty ⇒ no pool
396
+ // (mirrors the unconfigured openai-compatible case).
397
+ if (!s || s.command_template.length === 0)
398
+ return null;
399
+ return {
400
+ provider: "subprocess-template",
401
+ parameters: {
402
+ command_template: s.command_template,
403
+ ...(s.env !== undefined ? { env: s.env } : {}),
404
+ },
405
+ };
406
+ }
407
+ case "worker-command":
408
+ // No session-level config block exists for worker-command: each node carries
409
+ // its own `task.worker_command`, resolved at dispatch. A bare provider source
410
+ // is the correct pool identity.
411
+ return { provider: "worker-command" };
389
412
  }
390
413
  return null;
391
414
  }
392
415
  /**
393
416
  * Every dispatchable backend source configured for a run, in pool order: the explicit
394
- * `sessionConfig.sources`, optionally the DEMOTED primary in-process backend (defect-1,
395
- * when an attended host drives — `demotePrimaryInProcess`), plus — for back-compat — a
417
+ * `sessionConfig.sources`, the primary in-process backend folded in UNCONDITIONALLY
418
+ * (H2+H4 collapse: the primary is just a source pool — there is no demote flag; which
419
+ * providers fold is the draw's `commandWorkers` policy), plus — for back-compat — a
396
420
  * single implicit source folded in from a legacy `openai_compatible` block when it
397
421
  * isn't the primary provider and isn't already covered by an explicit source of the
398
422
  * same id.
@@ -404,13 +428,15 @@ export function collectDispatchableSources(sessionConfig, primaryProviderName, o
404
428
  if (!out.some((s) => dispatchableSourceId(s) === id))
405
429
  out.push(source);
406
430
  };
407
- // Defect-1: an attended host demotes its configured primary in-process backend to a
408
- // source pool so it fans out ALONGSIDE the host's subagents rather than monopolizing
409
- // the frontier. Inert (null) when the primary is the conversation host / an IDE.
410
- if (options?.demotePrimaryInProcess) {
411
- const demoted = primaryInProcessSource(sessionConfig, primaryProviderName);
412
- if (demoted)
413
- pushUnique(demoted);
431
+ // The unconditional primary fold: a self-drivable in-process primary is a member
432
+ // pool of the ONE eligible set, whether the run is attended (host + backend + NIM
433
+ // fan out concurrently) or headless (the engine drives it as its pool). Inert
434
+ // (null) when the primary is the conversation host / an IDE, or the draw's policy
435
+ // excludes a command-shaped primary.
436
+ {
437
+ const primary = primaryInProcessSource(sessionConfig, primaryProviderName, options);
438
+ if (primary)
439
+ pushUnique(primary);
414
440
  }
415
441
  if (primaryProviderName !== "openai-compatible" &&
416
442
  hasConfiguredOpenAiCompatible(sessionConfig.openai_compatible)) {
@@ -438,7 +464,7 @@ export async function gatherDispatchableSources(sessionConfig, primaryProviderNa
438
464
  */
439
465
  export async function buildSourcePools(params) {
440
466
  const gathered = await gatherDispatchableSources(params.sessionConfig, params.primaryProviderName, {
441
- demotePrimaryInProcess: params.demotePrimaryInProcess,
467
+ commandWorkers: params.commandWorkers,
442
468
  });
443
469
  const excluded = params.excludedBackends;
444
470
  const sources = excluded
@@ -459,6 +485,78 @@ export async function buildSourcePools(params) {
459
485
  * derivable account (not `openai-compatible`, missing endpoint/api_key_env, or
460
486
  * an explicit `source.account` override) is returned unchanged.
461
487
  */
488
+ /**
489
+ * Cross-class host-vs-source pool dedup (H2+H4 collapse, plan D1) — the ONE shared
490
+ * collision rule both draws apply when assembling their eligible pool set. With the
491
+ * primary in-process backend folded in UNCONDITIONALLY, the attended host's pool
492
+ * identity can collide with a folded source's `dispatchableSourceId` (the classic
493
+ * case: conversation host codex + `provider: codex` — one credential, one account;
494
+ * emitting both pools double-books that one meter and can collide on a single pool
495
+ * id, the retired B1 same-agent guard's bug class
496
+ * [[host-provider-misattribution-nim-codex]]).
497
+ *
498
+ * Collision = same provider identity on the same account axis. Provider identity is
499
+ * the BACKEND when the source declares one (`backend_provider` — a proxied lane onto
500
+ * the host's own backend is exactly the double-grant this guards; review h2c3 F5),
501
+ * else the pool's providerName. The account compare is DIRECTIONAL (review h2c3 F3):
502
+ * a source with NO declared account collides on provider alone — the synthesized
503
+ * primary fold shares the host credential by construction — but a source with an
504
+ * EXPLICIT account collides only when the host's account resolves equal; a host
505
+ * whose account is merely unresolved (dark credential) must never lose its lane to
506
+ * a source declared on a DIFFERENT account. Deliberately NOT model-granular: the
507
+ * double-grant boundary this protects is `(provider, account)`, not the model axis.
508
+ *
509
+ * Survivor rule (D1): on collision the SOURCE/engine pool survives when its provider
510
+ * is an in-process worker — the engine drives that one account and the host has no
511
+ * separate pool to double-book (preserving self-drive for attended
512
+ * provider=codex=host); the HOST pool survives otherwise (a host-shaped identity is
513
+ * not an engine-drivable source).
514
+ *
515
+ * `hostProviderName` serves the draw whose host is NOT a member pool (audit, plan
516
+ * D6: the host is the coverage-driven complement): with no host pools to drop, the
517
+ * rule degenerates to dropping a colliding non-in-process source.
518
+ */
519
+ export function dedupHostAndSourcePools(params) {
520
+ const identityOf = (pool) => {
521
+ const parsed = parseProviderModelKey(pool.id);
522
+ // Backend outranks transport (h2c3 F5): a proxied lane's double-grant axis is
523
+ // its backend, the same axis `dispatchableSourceId` keys such pools on. A
524
+ // source with an explicit non-provider-shaped `id` parses to an arbitrary
525
+ // head; providerName is the fallback routing identity.
526
+ return { provider: pool.source?.backend_provider ?? pool.providerName, account: parsed.account };
527
+ };
528
+ const hostIdentities = params.hostPools.length > 0
529
+ ? params.hostPools.map(identityOf)
530
+ : params.hostProviderName
531
+ ? [{ provider: params.hostProviderName, account: null }]
532
+ : [];
533
+ if (hostIdentities.length === 0) {
534
+ return { hostPools: params.hostPools, sourcePools: params.sourcePools };
535
+ }
536
+ // Directional account compare (h2c3 F3): an accountless SOURCE shares the host
537
+ // credential by construction (the synthesized primary fold) → provider-only
538
+ // collide; an explicitly-accounted source collides only on a RESOLVED equal
539
+ // host account — an unresolved host account is never surrendered to it.
540
+ const collide = (host, source) => host.provider === source.provider &&
541
+ (source.account === null ? true : host.account === source.account);
542
+ const survivingSourceIdentities = [];
543
+ const sourcePools = params.sourcePools.filter((source) => {
544
+ const id = identityOf(source);
545
+ if (!hostIdentities.some((host) => collide(host, id)))
546
+ return true;
547
+ if (isInProcessWorkerProvider(source.providerName, {
548
+ commandWorkers: params.commandWorkers === true,
549
+ })) {
550
+ // D1: the engine pool survives; the colliding host pool(s) drop below.
551
+ survivingSourceIdentities.push(id);
552
+ return true;
553
+ }
554
+ // Host survives; the colliding non-in-process source drops.
555
+ return false;
556
+ });
557
+ const hostPools = params.hostPools.filter((pool) => !survivingSourceIdentities.some((id) => collide(identityOf(pool), id)));
558
+ return { hostPools, sourcePools };
559
+ }
462
560
  function foldAccountCooldownAcrossPools(pools) {
463
561
  return pools.map((pool) => {
464
562
  const accountId = pool.source ? deriveLocalAccountId(pool.source) : null;