audit-tools 0.33.0 → 0.33.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +7 -0
  2. package/dist/audit/cli/args.d.ts.map +1 -1
  3. package/dist/audit/cli/args.js +3 -0
  4. package/dist/audit/cli/args.js.map +1 -1
  5. package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
  6. package/dist/audit/cli/hybridDispatch.js +5 -0
  7. package/dist/audit/cli/hybridDispatch.js.map +1 -1
  8. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  9. package/dist/audit/cli/nextStepCommand.js +23 -1
  10. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  11. package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
  12. package/dist/audit/cli/rollingAuditDispatch.js +14 -1
  13. package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
  14. package/dist/audit/cli.js +3 -3
  15. package/dist/audit/cli.js.map +1 -1
  16. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  17. package/dist/audit/orchestrator/rollingDispatch.js +2 -0
  18. package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
  19. package/dist/audit/providers/claudeWorkerProvider.d.ts +10 -0
  20. package/dist/audit/providers/claudeWorkerProvider.d.ts.map +1 -0
  21. package/dist/audit/providers/claudeWorkerProvider.js +15 -0
  22. package/dist/audit/providers/claudeWorkerProvider.js.map +1 -0
  23. package/dist/audit/providers/index.d.ts.map +1 -1
  24. package/dist/audit/providers/index.js +2 -0
  25. package/dist/audit/providers/index.js.map +1 -1
  26. package/dist/audit/quota/index.d.ts +15 -10
  27. package/dist/audit/quota/index.d.ts.map +1 -1
  28. package/dist/remediate/index.d.ts.map +1 -1
  29. package/dist/remediate/index.js +2 -2
  30. package/dist/remediate/index.js.map +1 -1
  31. package/dist/remediate/providers/claudeWorkerProvider.d.ts +11 -0
  32. package/dist/remediate/providers/claudeWorkerProvider.d.ts.map +1 -0
  33. package/dist/remediate/providers/claudeWorkerProvider.js +16 -0
  34. package/dist/remediate/providers/claudeWorkerProvider.js.map +1 -0
  35. package/dist/remediate/providers/index.d.ts.map +1 -1
  36. package/dist/remediate/providers/index.js +2 -0
  37. package/dist/remediate/providers/index.js.map +1 -1
  38. package/dist/remediate/steps/dispatch/acceptNode.d.ts +1 -1
  39. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  40. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  41. package/dist/remediate/steps/nextStep.d.ts +21 -0
  42. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  43. package/dist/remediate/steps/nextStep.js +21 -2
  44. package/dist/remediate/steps/nextStep.js.map +1 -1
  45. package/dist/remediate/steps/sessionConfigLoad.d.ts.map +1 -1
  46. package/dist/remediate/steps/sessionConfigLoad.js +8 -1
  47. package/dist/remediate/steps/sessionConfigLoad.js.map +1 -1
  48. package/dist/shared/config/resolveSessionConfig.d.ts +6 -3
  49. package/dist/shared/config/resolveSessionConfig.d.ts.map +1 -1
  50. package/dist/shared/config/resolveSessionConfig.js +21 -1
  51. package/dist/shared/config/resolveSessionConfig.js.map +1 -1
  52. package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
  53. package/dist/shared/dispatch/coordinator.js +52 -6
  54. package/dist/shared/dispatch/coordinator.js.map +1 -1
  55. package/dist/shared/dispatch/hybridDispatch.d.ts +6 -0
  56. package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
  57. package/dist/shared/dispatch/hybridDispatch.js +6 -0
  58. package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
  59. package/dist/shared/dispatch/providerLaunchFinalize.d.ts +2 -1
  60. package/dist/shared/dispatch/providerLaunchFinalize.d.ts.map +1 -1
  61. package/dist/shared/dispatch/providerLaunchFinalize.js +123 -68
  62. package/dist/shared/dispatch/providerLaunchFinalize.js.map +1 -1
  63. package/dist/shared/dispatch/rollingDispatch.d.ts +69 -2
  64. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  65. package/dist/shared/dispatch/rollingDispatch.js +177 -7
  66. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  67. package/dist/shared/dispatch/unifiedRolling.d.ts +23 -0
  68. package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -1
  69. package/dist/shared/dispatch/unifiedRolling.js +2 -0
  70. package/dist/shared/dispatch/unifiedRolling.js.map +1 -1
  71. package/dist/shared/friction/stepBoundaryCapture.d.ts +31 -1
  72. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  73. package/dist/shared/friction/stepBoundaryCapture.js +47 -0
  74. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  75. package/dist/shared/index.d.ts +8 -4
  76. package/dist/shared/index.d.ts.map +1 -1
  77. package/dist/shared/index.js +10 -2
  78. package/dist/shared/index.js.map +1 -1
  79. package/dist/shared/io/stateDir.d.ts +27 -0
  80. package/dist/shared/io/stateDir.d.ts.map +1 -0
  81. package/dist/shared/io/stateDir.js +40 -0
  82. package/dist/shared/io/stateDir.js.map +1 -0
  83. package/dist/shared/providers/auditorSources.d.ts +94 -4
  84. package/dist/shared/providers/auditorSources.d.ts.map +1 -1
  85. package/dist/shared/providers/auditorSources.js +261 -8
  86. package/dist/shared/providers/auditorSources.js.map +1 -1
  87. package/dist/shared/providers/claudeWorkerProvider.d.ts +71 -0
  88. package/dist/shared/providers/claudeWorkerProvider.d.ts.map +1 -0
  89. package/dist/shared/providers/claudeWorkerProvider.js +133 -0
  90. package/dist/shared/providers/claudeWorkerProvider.js.map +1 -0
  91. package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
  92. package/dist/shared/providers/providerConfirmation.js +24 -3
  93. package/dist/shared/providers/providerConfirmation.js.map +1 -1
  94. package/dist/shared/providers/providerFactory.d.ts +7 -1
  95. package/dist/shared/providers/providerFactory.d.ts.map +1 -1
  96. package/dist/shared/providers/providerFactory.js +6 -0
  97. package/dist/shared/providers/providerFactory.js.map +1 -1
  98. package/dist/shared/providers/proxyCatalog.d.ts +95 -0
  99. package/dist/shared/providers/proxyCatalog.d.ts.map +1 -0
  100. package/dist/shared/providers/proxyCatalog.js +426 -0
  101. package/dist/shared/providers/proxyCatalog.js.map +1 -0
  102. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  103. package/dist/shared/quota/apiPool.js +31 -0
  104. package/dist/shared/quota/apiPool.js.map +1 -1
  105. package/dist/shared/quota/capacity.d.ts +33 -4
  106. package/dist/shared/quota/capacity.d.ts.map +1 -1
  107. package/dist/shared/quota/capacity.js +40 -5
  108. package/dist/shared/quota/capacity.js.map +1 -1
  109. package/dist/shared/quota/errorParsing.d.ts +39 -0
  110. package/dist/shared/quota/errorParsing.d.ts.map +1 -1
  111. package/dist/shared/quota/errorParsing.js +76 -0
  112. package/dist/shared/quota/errorParsing.js.map +1 -1
  113. package/dist/shared/types/auditorDescriptor.d.ts +8 -0
  114. package/dist/shared/types/auditorDescriptor.d.ts.map +1 -1
  115. package/dist/shared/types/auditorDescriptor.js.map +1 -1
  116. package/dist/shared/types/rollingDispatch.d.ts +45 -1
  117. package/dist/shared/types/rollingDispatch.d.ts.map +1 -1
  118. package/dist/shared/types/sessionConfig.d.ts +77 -3
  119. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  120. package/dist/shared/types/sessionConfig.js +39 -2
  121. package/dist/shared/types/sessionConfig.js.map +1 -1
  122. package/dist/shared/validation/sessionConfig.d.ts.map +1 -1
  123. package/dist/shared/validation/sessionConfig.js +25 -1
  124. package/dist/shared/validation/sessionConfig.js.map +1 -1
  125. package/docs/audit-pkg/operator-guide.md +4 -4
  126. package/package.json +1 -1
@@ -0,0 +1,426 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { mkdir } from "node:fs/promises";
3
+ import { dirname, join } from "node:path";
4
+ import { writeJsonFile } from "../io/json.js";
5
+ import { resolveAuditCodeStateDir } from "../io/stateDir.js";
6
+ import { validateSessionConfig } from "../validation/sessionConfig.js";
7
+ /**
8
+ * The POPULATE cache for the repair-proxy lane: `GET <proxy>/registry` expanded into
9
+ * ready-to-fold `claude-worker` {@link DispatchableSource}s, written once per populate
10
+ * (Gate-0 build / explicit refresh) and READ by resolve — never fetched mid-resolve
11
+ * (`docs/reviews/commit3-proxy-kind1-transport-plan-2026-07-16.md` §populate/resolve).
12
+ *
13
+ * Named `catalog-cache.json`, NOT the `catalog-<auditor-id>.json` the reserved-name
14
+ * comment at `auditorSources.ts` anticipates: populate/resolve run on the AMBIENT
15
+ * path, where no auditor id exists to key on. The cache is machine-level like the
16
+ * declaration beside it — and it is a CACHE of live registry state, not resolved
17
+ * per-auditor capability, so an auditor-id key would assert an isolation the data
18
+ * doesn't have. Per-auditor never-inherit still holds: every resolve re-proves proxy
19
+ * REACH itself; the cache only supplies the expansion.
20
+ */
21
+ export const PROXY_CATALOG_FILENAME = "catalog-cache.json";
22
+ /** Top-K models expanded per backend provider when the operator declares no `top_k`. */
23
+ export const DEFAULT_PROXY_TOP_K = 3;
24
+ /** Timeout (ms) for populate-time model verification probes. */
25
+ export const POPULATE_PROBE_TIMEOUT_MS = 3000;
26
+ /** Concurrency limit for populate-time model verification probes. */
27
+ export const POPULATE_PROBE_CONCURRENCY = 4;
28
+ /**
29
+ * A same-endpoint cache younger than this skips the registry fetch + probes
30
+ * entirely (see the freshness short-circuit in {@link populateProxyCatalog}).
31
+ * Refresh throttle only — read-side staleness policy is a separate concern.
32
+ */
33
+ export const POPULATE_CACHE_FRESH_TTL_MS = 10 * 60_000;
34
+ /** Resolve the populate-cache path for this machine (state dir via `io/stateDir.ts`). */
35
+ export function resolveProxyCatalogPath(homeDir) {
36
+ return join(resolveAuditCodeStateDir(homeDir), PROXY_CATALOG_FILENAME);
37
+ }
38
+ function finiteNonNegative(value) {
39
+ return typeof value === "number" && Number.isFinite(value) && value >= 0
40
+ ? value
41
+ : undefined;
42
+ }
43
+ /**
44
+ * Best-effort "higher = better" score for ranking. A flat `score` wins; otherwise
45
+ * the live repair-proxy's `capability` block supplies someone-else-maintained
46
+ * relative-capability RANKS (`composite_rank`, then `arena_rank`; lower = better,
47
+ * so negated). A model with none stays unscored and ranks last — capability-less
48
+ * registry rows are frequently non-chat models (TTS, embeddings) that cannot serve
49
+ * as agentic workers.
50
+ */
51
+ function deriveScore(entry) {
52
+ if (typeof entry.score === "number" && Number.isFinite(entry.score)) {
53
+ return entry.score;
54
+ }
55
+ const capability = entry.capability;
56
+ if (capability === null || typeof capability !== "object")
57
+ return null;
58
+ const rank = finiteNonNegative(capability.composite_rank) ??
59
+ finiteNonNegative(capability.arena_rank);
60
+ return rank === undefined ? null : -rank;
61
+ }
62
+ /**
63
+ * Tolerantly extract context-window field from a registry entry or its nested
64
+ * `capability` block. Checks for `context_length`, `context_tokens`, `max_context`,
65
+ * `context_window` (first finite positive number wins).
66
+ */
67
+ function deriveContextTokens(entry) {
68
+ for (const key of ["context_length", "context_tokens", "max_context", "context_window"]) {
69
+ const value = finiteNonNegative(entry[key]);
70
+ if (value !== undefined)
71
+ return value;
72
+ }
73
+ const capability = entry.capability;
74
+ if (capability !== null && typeof capability === "object") {
75
+ for (const key of ["context_length", "context_tokens", "max_context", "context_window"]) {
76
+ const value = finiteNonNegative(capability[key]);
77
+ if (value !== undefined)
78
+ return value;
79
+ }
80
+ }
81
+ return undefined;
82
+ }
83
+ /**
84
+ * Tolerantly extract `{provider, model, score, price}` rows from a registry payload,
85
+ * keeping only entries this process could actually dispatch through: `reachable` AND
86
+ * `has_key` must be literally `true` (the proxy's own liveness/credential verdicts).
87
+ * Anything malformed — wrong types, missing provider/model — is FILTERED, never thrown:
88
+ * a half-broken registry degrades to a smaller expansion, not a failed populate.
89
+ */
90
+ function extractRegistryModels(payload) {
91
+ // The registry is providers × live models; tolerate a flat entry array, a
92
+ // `{providers|models|entries: [...]}` wrapper, or the live repair-proxy's
93
+ // provider-MAP form (`providers: {<name>: {has_key, reachable, models: [...]}}`
94
+ // — the name is the key, so it is folded into each entry as `name`), plus
95
+ // per-provider nested `models` in every form.
96
+ let container;
97
+ if (Array.isArray(payload)) {
98
+ container = payload;
99
+ }
100
+ else if (payload !== null && typeof payload === "object") {
101
+ for (const key of ["providers", "models", "entries"]) {
102
+ const wrapped = payload[key];
103
+ if (Array.isArray(wrapped)) {
104
+ container = wrapped;
105
+ break;
106
+ }
107
+ if (wrapped !== null && typeof wrapped === "object") {
108
+ container = Object.entries(wrapped).map(([name, entry]) => entry !== null && typeof entry === "object"
109
+ ? { name, ...entry }
110
+ : entry);
111
+ break;
112
+ }
113
+ }
114
+ }
115
+ if (!Array.isArray(container))
116
+ return [];
117
+ const models = [];
118
+ const push = (entry, provider, model) => {
119
+ if (typeof provider !== "string" || provider.trim().length === 0)
120
+ return;
121
+ if (typeof model !== "string" || model.trim().length === 0)
122
+ return;
123
+ if (entry.reachable !== true || entry.has_key !== true)
124
+ return;
125
+ models.push({
126
+ provider: provider.trim(),
127
+ model: model.trim(),
128
+ score: deriveScore(entry),
129
+ costPerMtok: finiteNonNegative(entry.cost_per_mtok) ??
130
+ finiteNonNegative(entry.price_per_mtok) ??
131
+ finiteNonNegative(entry.price),
132
+ contextTokens: deriveContextTokens(entry),
133
+ });
134
+ };
135
+ for (const raw of container) {
136
+ if (raw === null || typeof raw !== "object")
137
+ continue;
138
+ const entry = raw;
139
+ const provider = entry.provider ?? entry.name;
140
+ if (Array.isArray(entry.models)) {
141
+ // Provider-grouped form: reachable/has_key live on the provider row; each
142
+ // model row contributes id + score/price (and may override the flags).
143
+ for (const rawModel of entry.models) {
144
+ if (rawModel === null || typeof rawModel === "string") {
145
+ if (typeof rawModel === "string")
146
+ push(entry, provider, rawModel);
147
+ continue;
148
+ }
149
+ if (typeof rawModel !== "object")
150
+ continue;
151
+ const model = rawModel;
152
+ push({ ...entry, ...model, models: undefined }, provider, model.id ?? model.model);
153
+ }
154
+ continue;
155
+ }
156
+ push(entry, provider, entry.model ?? entry.id);
157
+ }
158
+ return models;
159
+ }
160
+ /**
161
+ * Expand registry models into `claude-worker` sources: per reachable+keyed backend
162
+ * provider, the top-K models by best-effort score (higher = better; unscored last).
163
+ * Shape per the plan's identity section: the transport never enters the identity —
164
+ * `backend_provider` + `model` key quota; `endpoint` is the proxy url the launch
165
+ * transport (3b) fronts the spawn with; `worker_kind` is `agentic` by definition
166
+ * (the whole point of the proxied lane is tool-call repair for a harness worker).
167
+ */
168
+ function expandSources(models, options) {
169
+ const byProvider = new Map();
170
+ // Dedup by (provider, model): live registries list some models twice, and one
171
+ // pool identity must expand to exactly one source (first row wins).
172
+ const seen = new Set();
173
+ for (const model of models) {
174
+ const identity = `${model.provider}/${model.model}`;
175
+ if (seen.has(identity))
176
+ continue;
177
+ seen.add(identity);
178
+ const bucket = byProvider.get(model.provider) ?? [];
179
+ bucket.push(model);
180
+ byProvider.set(model.provider, bucket);
181
+ }
182
+ const sources = [];
183
+ // Stable, content-derived order (provider, then score desc, then model id) so a
184
+ // re-populate over identical registry state emits byte-identical sources.
185
+ for (const provider of [...byProvider.keys()].sort()) {
186
+ const ranked = byProvider
187
+ .get(provider)
188
+ .sort((a, b) => (b.score ?? Number.NEGATIVE_INFINITY) - (a.score ?? Number.NEGATIVE_INFINITY) ||
189
+ a.model.localeCompare(b.model))
190
+ .slice(0, options.topK);
191
+ for (const model of ranked) {
192
+ // Cost precedence: operator-declared (free-to-operator axis) > registry list
193
+ // price > absent (falls through to the models.dev catalog / tier downstream).
194
+ const cost = options.costPerMtok ?? model.costPerMtok;
195
+ sources.push({
196
+ id: `claude-worker:${provider}/${model.model}`,
197
+ provider: "claude-worker",
198
+ endpoint: options.endpoint,
199
+ backend_provider: provider,
200
+ model: model.model,
201
+ worker_kind: "agentic",
202
+ ...(cost !== undefined ? { cost_per_mtok: cost } : {}),
203
+ ...(model.contextTokens !== undefined
204
+ ? { quota: { context_tokens: model.contextTokens } }
205
+ : {}),
206
+ });
207
+ }
208
+ }
209
+ return sources;
210
+ }
211
+ /**
212
+ * Probe a single source to verify the model is actually reachable.
213
+ * Returns { dropped: true, reason } if the model should be excluded (404/unavailable),
214
+ * or { dropped: false } to keep the source.
215
+ */
216
+ async function probeSource(source, endpoint, fetchImpl, timeoutMs) {
217
+ const controller = new AbortController();
218
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
219
+ try {
220
+ const response = await fetchImpl(`${endpoint}/v1/messages`, {
221
+ method: "POST",
222
+ headers: {
223
+ "x-api-key": "audit-tools-populate-probe",
224
+ "anthropic-version": "2023-06-01",
225
+ "content-type": "application/json",
226
+ },
227
+ body: JSON.stringify({
228
+ model: `${source.backend_provider}/${source.model}`,
229
+ max_tokens: 1,
230
+ messages: [{ role: "user", content: "hi" }],
231
+ }),
232
+ signal: controller.signal,
233
+ });
234
+ // Check for 404 or model-not-found patterns
235
+ if (response.status === 404) {
236
+ return { dropped: true, reason: "HTTP 404" };
237
+ }
238
+ if (response.status >= 400) {
239
+ let bodyText = "";
240
+ try {
241
+ bodyText = await response.text();
242
+ }
243
+ catch {
244
+ // If body read fails, just use status code
245
+ }
246
+ const patterns = [/model_not_found/i, /\bmay not exist\b/i, /no such model/i];
247
+ if (patterns.some((p) => p.test(bodyText))) {
248
+ return { dropped: true, reason: `HTTP ${response.status} (model unavailable)` };
249
+ }
250
+ }
251
+ // 200, 401, 429, 5xx, etc. → keep the source
252
+ return { dropped: false };
253
+ }
254
+ catch (error) {
255
+ // Transport failure (timeout, network error) → fail-open, keep the source
256
+ return { dropped: false };
257
+ }
258
+ finally {
259
+ clearTimeout(timeoutId);
260
+ }
261
+ }
262
+ /**
263
+ * Run probes with bounded concurrency using a simple worker pool.
264
+ */
265
+ async function probeSourcesWithConcurrency(sources, endpoint, fetchImpl, timeoutMs, concurrency) {
266
+ const results = [];
267
+ let index = 0;
268
+ const worker = async () => {
269
+ while (index < sources.length) {
270
+ const currentIndex = index++;
271
+ const source = sources[currentIndex];
272
+ const probeResult = await probeSource(source, endpoint, fetchImpl, timeoutMs);
273
+ results[currentIndex] = {
274
+ source,
275
+ dropped: probeResult.dropped,
276
+ reason: probeResult.reason,
277
+ };
278
+ }
279
+ };
280
+ const workers = Array(Math.min(concurrency, sources.length))
281
+ .fill(null)
282
+ .map(() => worker());
283
+ await Promise.all(workers);
284
+ // results is index-assigned (results[currentIndex] = ...), so it is already in
285
+ // the sources' order regardless of probe completion order.
286
+ return results;
287
+ }
288
+ /**
289
+ * POPULATE: fetch `GET <endpoint>/registry` and write the expanded `claude-worker`
290
+ * sources to the machine-level cache. Network-bound and cacheable — runs at Gate-0
291
+ * build / explicit refresh, NEVER inside `resolveAmbientSources` (which only READS
292
+ * via {@link readProxyCatalog}). Never throws: a failed fetch returns
293
+ * `{written:false, reason}` and leaves any prior cache untouched; an empty/zero-match
294
+ * registry WRITES an empty expansion (fresh knowledge — resolve reports the lane
295
+ * unexpanded with a reason).
296
+ */
297
+ export async function populateProxyCatalog(options) {
298
+ const endpoint = options.endpoint.replace(/\/+$/u, "");
299
+ const doFetch = options.fetchImpl ?? fetch;
300
+ // Freshness short-circuit: the populate trigger fires on EVERY
301
+ // confirmation-absent next-step (nextStepCommand.ts), and populate now carries
302
+ // live per-model probes — real `/v1/messages` POSTs through the proxy that cost
303
+ // seconds of wall AND burn free-tier rate quota. A same-endpoint cache younger
304
+ // than the TTL answers instead (measured 2026-07-17: per-invocation populate
305
+ // was ~5.6s live, which alone pushed the e2e wrapper tests past their
306
+ // timeouts). This is a REFRESH throttle, not staleness acceptance — the
307
+ // no-TTL-on-READ residual (backlog: catalog accepted arbitrarily stale by
308
+ // resolve) is unchanged.
309
+ const cached = readProxyCatalog({ homeDir: options.homeDir });
310
+ if (cached && cached.endpoint === endpoint) {
311
+ const nowMs = (options.now?.() ?? new Date()).getTime();
312
+ const fetchedMs = Date.parse(cached.fetched_at);
313
+ if (Number.isFinite(fetchedMs) &&
314
+ nowMs - fetchedMs >= 0 &&
315
+ nowMs - fetchedMs < POPULATE_CACHE_FRESH_TTL_MS) {
316
+ return {
317
+ sources: cached.sources,
318
+ written: false,
319
+ reason: `cache is fresh (fetched ${Math.round((nowMs - fetchedMs) / 1000)}s ago); refresh skipped.`,
320
+ dropped: [],
321
+ };
322
+ }
323
+ }
324
+ let payload;
325
+ try {
326
+ const response = await doFetch(`${endpoint}/registry`);
327
+ if (!response.ok) {
328
+ return {
329
+ sources: [],
330
+ written: false,
331
+ reason: `GET ${endpoint}/registry returned HTTP ${response.status}.`,
332
+ dropped: [],
333
+ };
334
+ }
335
+ payload = await response.json();
336
+ }
337
+ catch (error) {
338
+ return {
339
+ sources: [],
340
+ written: false,
341
+ reason: `GET ${endpoint}/registry failed: ${error instanceof Error ? error.message : String(error)}.`,
342
+ dropped: [],
343
+ };
344
+ }
345
+ let sources = expandSources(extractRegistryModels(payload), {
346
+ endpoint,
347
+ topK: options.topK ?? DEFAULT_PROXY_TOP_K,
348
+ costPerMtok: options.costPerMtok,
349
+ });
350
+ // Probe each source to verify reachability
351
+ const probeResults = await probeSourcesWithConcurrency(sources, endpoint, doFetch, POPULATE_PROBE_TIMEOUT_MS, POPULATE_PROBE_CONCURRENCY);
352
+ const dropped = [];
353
+ sources = probeResults
354
+ .filter((result) => {
355
+ if (result.dropped) {
356
+ dropped.push({
357
+ id: result.source.id ?? `claude-worker:${result.source.backend_provider}/${result.source.model}`,
358
+ reason: result.reason ?? "model unavailable",
359
+ });
360
+ return false;
361
+ }
362
+ return true;
363
+ })
364
+ .map((result) => result.source);
365
+ const catalog = {
366
+ fetched_at: (options.now?.() ?? new Date()).toISOString(),
367
+ endpoint,
368
+ sources,
369
+ };
370
+ const path = resolveProxyCatalogPath(options.homeDir);
371
+ try {
372
+ await mkdir(dirname(path), { recursive: true });
373
+ await writeJsonFile(path, catalog);
374
+ }
375
+ catch (error) {
376
+ return {
377
+ sources,
378
+ written: false,
379
+ reason: `could not write ${path}: ${error instanceof Error ? error.message : String(error)}.`,
380
+ dropped,
381
+ };
382
+ }
383
+ return { sources, written: true, dropped };
384
+ }
385
+ function defaultReadCatalogFile(path) {
386
+ try {
387
+ return readFileSync(path, "utf8");
388
+ }
389
+ catch {
390
+ return null;
391
+ }
392
+ }
393
+ /**
394
+ * READ the populate cache. Returns the entries + `fetched_at` (NO TTL enforcement —
395
+ * staleness policy is a later commit; the caller decides). Degrades to `null` on
396
+ * absent / unparseable / structurally-invalid content — never throws (same bar as
397
+ * `readSourceDeclaration`: the resolve path must not be failable by a bad file).
398
+ * Cached sources are held to the shared source validator, so a hand-edited or
399
+ * version-skewed cache degrades to "no cache" rather than admitting a half-checked pool.
400
+ */
401
+ export function readProxyCatalog(deps = {}) {
402
+ const path = resolveProxyCatalogPath(deps.homeDir);
403
+ const raw = (deps.readCatalogFile ?? defaultReadCatalogFile)(path);
404
+ if (raw === null)
405
+ return null;
406
+ let parsed;
407
+ try {
408
+ parsed = JSON.parse(raw);
409
+ }
410
+ catch {
411
+ return null;
412
+ }
413
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
414
+ return null;
415
+ }
416
+ const { fetched_at, endpoint, sources } = parsed;
417
+ if (typeof fetched_at !== "string" || typeof endpoint !== "string")
418
+ return null;
419
+ if (!Array.isArray(sources))
420
+ return null;
421
+ const issues = validateSessionConfig({ sources });
422
+ if (issues.some((issue) => issue.severity === "error"))
423
+ return null;
424
+ return { fetched_at, endpoint, sources: sources };
425
+ }
426
+ //# sourceMappingURL=proxyCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyCatalog.js","sourceRoot":"","sources":["../../../src/shared/providers/proxyCatalog.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAOtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAIpF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAoBhG;AAmCD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkDvF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,kBAAkB,GAAG,SAAS,GACrC,aAAa,CAEf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,oBAAoB,CAAC;IACnC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACnD,WAAW,EAAE,WAAW,CAAC;CAC1B,GAAG,OAAO,CAAC,YAAY,CAAC,CAmBxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,YAAY,EAAE,oBAAoB,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,CACP,KAAK,EAAE,oBAAoB,GAAG,IAAI,KAC/B,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAA;KAAE,CAAC,GAAG;QACtF,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAC;KACpD,CAAC;CACH,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA0B1B;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC,GACxD,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAMjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC/C,GAAG,OAAO,CAAC,YAAY,CAAC,CAyDxB;AAcD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEtF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,aAAa,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CASV;AAqCD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,MAAM,GAC1B,kBAAkB,GAAG,IAAI,CA+B3B;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,kBAAkB,EAAE,CAoBtB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAE/B;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,gGAAgG;IAChG,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAc1B"}
@@ -18,6 +18,19 @@ import { resolveConversationHostProvider } from "../providers/providerPathGuard.
18
18
  * the gate's `model_id ?? provider` compare key. Do not unify them.
19
19
  */
20
20
  export function dispatchableSourceId(source, account) {
21
+ // Transport-fronted lane (3c): the transport NEVER enters the quota identity. A
22
+ // source declaring `backend_provider` keys on the BACKEND actually serving it —
23
+ // `backend_provider[#account]/model` — so a proxied `claude-worker` lane and a
24
+ // direct lane to the same backend DEDUP to ONE CapacityPool / ledger entry (the
25
+ // `(provider, account)` double-grant boundary). This deliberately outranks an
26
+ // explicit `id`: the populate cache stamps transport-shaped ids
27
+ // (`claude-worker:<backend>/<model>`), and honoring them would re-split the
28
+ // identity the field exists to merge. The declared `account` folds in even when
29
+ // the caller resolves none, so two same-backend lanes on different accounts stay
30
+ // distinct (the gather-time dedup path passes no account).
31
+ if (source.backend_provider) {
32
+ return buildProviderModelKey(source.backend_provider, source.model ?? source.endpoint ?? null, account ?? source.account ?? null);
33
+ }
21
34
  if (source.id)
22
35
  return account ? `${source.id}#${account}` : source.id;
23
36
  return buildProviderModelKey(source.provider, source.model ?? source.endpoint ?? null, account);
@@ -89,6 +102,20 @@ export function sourceProviderConfig(source) {
89
102
  case "worker-command":
90
103
  // worker-command takes no construction config (host-dispatch default).
91
104
  return {};
105
+ case "claude-worker":
106
+ // The proxied isolated worker launches FROM the source itself: endpoint = the
107
+ // repair-proxy url ClaudeWorkerProvider fronts the spawn with, and
108
+ // backend_provider + model compose the `--model <backend_provider>/<model>`
109
+ // namespace argv at launch. `parameters` may carry the launcher tuning
110
+ // (command / prompt_flag / extra_args / dangerously_skip_permissions).
111
+ return {
112
+ claude_worker: {
113
+ endpoint: source.endpoint,
114
+ backend_provider: source.backend_provider,
115
+ model: source.model,
116
+ ...p,
117
+ },
118
+ };
92
119
  case "agy":
93
120
  return {
94
121
  agy: {
@@ -215,6 +242,10 @@ export async function buildSourcePool(params) {
215
242
  // null (uncapped) — never 0, which would ceiling the pool to zero in-flight and
216
243
  // wedge the rolling engine, and would also violate the summary schema's min(1).
217
244
  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),
218
249
  // Operator-declared a-priori $/Mtok for this endpoint → the admission cost rank
219
250
  // (rung 2, authoritative over the models.dev catalog). 0 = declared-free → routes
220
251
  // first. null when unset/invalid ⇒ falls through to the catalog price / tier.
@@ -1 +1 @@
1
- {"version":3,"file":"apiPool.js","sourceRoot":"","sources":["../../../src/shared/quota/apiPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiPool.js","sourceRoot":"","sources":["../../../src/shared/quota/apiPool.ts"],"names":[],"mappings":"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"}