@esankhan3/anvil-agent-core 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/gemini-adapter-recording.test.d.ts +11 -0
  3. package/dist/__tests__/gemini-adapter-recording.test.d.ts.map +1 -0
  4. package/dist/__tests__/gemini-adapter-recording.test.js +108 -0
  5. package/dist/__tests__/gemini-adapter-recording.test.js.map +1 -0
  6. package/dist/__tests__/legacy-adapter-language-model.test.d.ts +11 -0
  7. package/dist/__tests__/legacy-adapter-language-model.test.d.ts.map +1 -0
  8. package/dist/__tests__/legacy-adapter-language-model.test.js +102 -0
  9. package/dist/__tests__/legacy-adapter-language-model.test.js.map +1 -0
  10. package/dist/__tests__/ollama-adapter-recording.test.d.ts +15 -0
  11. package/dist/__tests__/ollama-adapter-recording.test.d.ts.map +1 -0
  12. package/dist/__tests__/ollama-adapter-recording.test.js +128 -0
  13. package/dist/__tests__/ollama-adapter-recording.test.js.map +1 -0
  14. package/dist/__tests__/openrouter-prefill.integration.test.d.ts +19 -0
  15. package/dist/__tests__/openrouter-prefill.integration.test.d.ts.map +1 -0
  16. package/dist/__tests__/openrouter-prefill.integration.test.js +410 -0
  17. package/dist/__tests__/openrouter-prefill.integration.test.js.map +1 -0
  18. package/dist/__tests__/prefill-truncate.test.d.ts +8 -0
  19. package/dist/__tests__/prefill-truncate.test.d.ts.map +1 -0
  20. package/dist/__tests__/prefill-truncate.test.js +75 -0
  21. package/dist/__tests__/prefill-truncate.test.js.map +1 -0
  22. package/dist/__tests__/router-circuit-breaker.test.js +1 -1
  23. package/dist/__tests__/router-circuit-breaker.test.js.map +1 -1
  24. package/dist/__tests__/router-classify-unified.test.d.ts +12 -0
  25. package/dist/__tests__/router-classify-unified.test.d.ts.map +1 -0
  26. package/dist/__tests__/router-classify-unified.test.js +108 -0
  27. package/dist/__tests__/router-classify-unified.test.js.map +1 -0
  28. package/dist/__tests__/router-fallback.test.js +1 -1
  29. package/dist/__tests__/router-fallback.test.js.map +1 -1
  30. package/dist/__tests__/router-model-registry.test.js +24 -0
  31. package/dist/__tests__/router-model-registry.test.js.map +1 -1
  32. package/dist/__tests__/router-retry.test.js +3 -5
  33. package/dist/__tests__/router-retry.test.js.map +1 -1
  34. package/dist/__tests__/router-runagent.test.d.ts +14 -0
  35. package/dist/__tests__/router-runagent.test.d.ts.map +1 -0
  36. package/dist/__tests__/router-runagent.test.js +95 -0
  37. package/dist/__tests__/router-runagent.test.js.map +1 -0
  38. package/dist/__tests__/router-scaffold.test.js +2 -1
  39. package/dist/__tests__/router-scaffold.test.js.map +1 -1
  40. package/dist/__tests__/router-spend-ledger.test.js +1 -1
  41. package/dist/__tests__/router-spend-ledger.test.js.map +1 -1
  42. package/dist/__tests__/router-stream-fallback.test.d.ts +13 -0
  43. package/dist/__tests__/router-stream-fallback.test.d.ts.map +1 -0
  44. package/dist/__tests__/router-stream-fallback.test.js +129 -0
  45. package/dist/__tests__/router-stream-fallback.test.js.map +1 -0
  46. package/dist/__tests__/router-telemetry.test.js +3 -1
  47. package/dist/__tests__/router-telemetry.test.js.map +1 -1
  48. package/dist/__tests__/util/mock-upstream.d.ts +77 -0
  49. package/dist/__tests__/util/mock-upstream.d.ts.map +1 -0
  50. package/dist/__tests__/util/mock-upstream.js +219 -0
  51. package/dist/__tests__/util/mock-upstream.js.map +1 -0
  52. package/dist/adk-adapter.d.ts.map +1 -1
  53. package/dist/adk-adapter.js +51 -0
  54. package/dist/adk-adapter.js.map +1 -1
  55. package/dist/agent/session/adapter.d.ts +15 -0
  56. package/dist/agent/session/adapter.d.ts.map +1 -1
  57. package/dist/agent/session/adapter.js +3 -0
  58. package/dist/agent/session/adapter.js.map +1 -1
  59. package/dist/agent/session/index.d.ts +1 -0
  60. package/dist/agent/session/index.d.ts.map +1 -1
  61. package/dist/agent/session/index.js +1 -0
  62. package/dist/agent/session/index.js.map +1 -1
  63. package/dist/agent/session/language-model-bridge.d.ts.map +1 -1
  64. package/dist/agent/session/language-model-bridge.js +22 -0
  65. package/dist/agent/session/language-model-bridge.js.map +1 -1
  66. package/dist/agent/session/legacy-adapter-language-model.d.ts +27 -0
  67. package/dist/agent/session/legacy-adapter-language-model.d.ts.map +1 -0
  68. package/dist/agent/session/legacy-adapter-language-model.js +221 -0
  69. package/dist/agent/session/legacy-adapter-language-model.js.map +1 -0
  70. package/dist/agent/session/types.d.ts +20 -0
  71. package/dist/agent/session/types.d.ts.map +1 -1
  72. package/dist/agent/session/types.js.map +1 -1
  73. package/dist/claude-adapter.d.ts.map +1 -1
  74. package/dist/claude-adapter.js +27 -0
  75. package/dist/claude-adapter.js.map +1 -1
  76. package/dist/gemini-adapter.d.ts.map +1 -1
  77. package/dist/gemini-adapter.js +46 -0
  78. package/dist/gemini-adapter.js.map +1 -1
  79. package/dist/index.d.ts +9 -0
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +5 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/ollama-adapter.d.ts.map +1 -1
  84. package/dist/ollama-adapter.js +118 -8
  85. package/dist/ollama-adapter.js.map +1 -1
  86. package/dist/openrouter-adapter.d.ts.map +1 -1
  87. package/dist/openrouter-adapter.js +289 -15
  88. package/dist/openrouter-adapter.js.map +1 -1
  89. package/dist/prefill/strip.d.ts +49 -0
  90. package/dist/prefill/strip.d.ts.map +1 -0
  91. package/dist/prefill/strip.js +93 -0
  92. package/dist/prefill/strip.js.map +1 -0
  93. package/dist/prefill/translate.d.ts +55 -0
  94. package/dist/prefill/translate.d.ts.map +1 -0
  95. package/dist/prefill/translate.js +162 -0
  96. package/dist/prefill/translate.js.map +1 -0
  97. package/dist/prefill/truncate.d.ts +62 -0
  98. package/dist/prefill/truncate.d.ts.map +1 -0
  99. package/dist/prefill/truncate.js +77 -0
  100. package/dist/prefill/truncate.js.map +1 -0
  101. package/dist/router/errors.d.ts +24 -7
  102. package/dist/router/errors.d.ts.map +1 -1
  103. package/dist/router/errors.js +71 -14
  104. package/dist/router/errors.js.map +1 -1
  105. package/dist/router/index.d.ts +3 -2
  106. package/dist/router/index.d.ts.map +1 -1
  107. package/dist/router/index.js +2 -1
  108. package/dist/router/index.js.map +1 -1
  109. package/dist/router/model-registry.d.ts +22 -0
  110. package/dist/router/model-registry.d.ts.map +1 -1
  111. package/dist/router/model-registry.js +64 -1
  112. package/dist/router/model-registry.js.map +1 -1
  113. package/dist/router/provider-registry-resolver.d.ts +25 -0
  114. package/dist/router/provider-registry-resolver.d.ts.map +1 -0
  115. package/dist/router/provider-registry-resolver.js +84 -0
  116. package/dist/router/provider-registry-resolver.js.map +1 -0
  117. package/dist/router/retry.d.ts +3 -0
  118. package/dist/router/retry.d.ts.map +1 -1
  119. package/dist/router/retry.js +4 -1
  120. package/dist/router/retry.js.map +1 -1
  121. package/dist/router/router.d.ts +79 -1
  122. package/dist/router/router.d.ts.map +1 -1
  123. package/dist/router/router.js +256 -2
  124. package/dist/router/router.js.map +1 -1
  125. package/dist/router/types.d.ts +1 -1
  126. package/dist/router/types.d.ts.map +1 -1
  127. package/dist/router/types.js +1 -0
  128. package/dist/router/types.js.map +1 -1
  129. package/dist/turn-recorder/__tests__/turn-recorder.test.d.ts +20 -0
  130. package/dist/turn-recorder/__tests__/turn-recorder.test.d.ts.map +1 -0
  131. package/dist/turn-recorder/__tests__/turn-recorder.test.js +282 -0
  132. package/dist/turn-recorder/__tests__/turn-recorder.test.js.map +1 -0
  133. package/dist/turn-recorder/hash.d.ts +10 -0
  134. package/dist/turn-recorder/hash.d.ts.map +1 -0
  135. package/dist/turn-recorder/hash.js +35 -0
  136. package/dist/turn-recorder/hash.js.map +1 -0
  137. package/dist/turn-recorder/index.d.ts +119 -0
  138. package/dist/turn-recorder/index.d.ts.map +1 -0
  139. package/dist/turn-recorder/index.js +326 -0
  140. package/dist/turn-recorder/index.js.map +1 -0
  141. package/dist/turn-recorder/types.d.ts +227 -0
  142. package/dist/turn-recorder/types.d.ts.map +1 -0
  143. package/dist/turn-recorder/types.js +20 -0
  144. package/dist/turn-recorder/types.js.map +1 -0
  145. package/dist/types.d.ts +35 -2
  146. package/dist/types.d.ts.map +1 -1
  147. package/package.json +2 -2
@@ -7,7 +7,7 @@
7
7
  * never trigger cross-provider fallback (security default).
8
8
  */
9
9
  import type { ErrorClass, InvokeOpts, RouteAttempt, RouteOutcome, RouterConfig } from './types.js';
10
- import type { LanguageModel, LanguageModelInvokeOptions, InvokeResult } from '../types.js';
10
+ import type { LanguageModel, LanguageModelInvokeOptions, InvokeResult, StreamEvent } from '../types.js';
11
11
  import { TokenBucketRateLimiter } from './rate-limiter.js';
12
12
  import { SpendLedger } from './spend-ledger.js';
13
13
  import { CircuitBreaker } from './circuit-breaker.js';
@@ -49,6 +49,51 @@ export interface LlmRouterDeps {
49
49
  /** Adapter-specific error classifiers (per-provider override). */
50
50
  errorClassifiers?: Record<string, (err: unknown) => ErrorClass | undefined>;
51
51
  }
52
+ /**
53
+ * Options for the agentic chain walk (`runAgent`). Unlike `invoke`/`invokeStream`
54
+ * (tag-routed, single-shot adapter calls), the agentic path executes an
55
+ * injected `attempt(model, prefill)` — a full agent spawn the caller owns
56
+ * (e.g. the dashboard's `spawnAndWait` over `AgentManager`). The router
57
+ * supplies the reliability: per-error-class backoff retry, circuit breaking,
58
+ * unified classification, and cross-model burn + durable prefill resume.
59
+ */
60
+ export interface AgentChainOptions<P = unknown> {
61
+ /** Stage label for telemetry / burn events. */
62
+ stage: string;
63
+ /** Resolve the next model id given the burned set (caller's liveness-aware walker). */
64
+ resolveModel: (excluded: ReadonlySet<string>) => string;
65
+ /** Derive a provider key from a model id for the circuit breaker. Defaults to the resolver. */
66
+ providerOf?: (model: string) => string;
67
+ /** After a burn, produce the prefill the next attempt continues from (durable cross-vendor resume). */
68
+ resolvePrefill?: (info: {
69
+ burnedModel: string;
70
+ attemptIndex: number;
71
+ nextModel?: string;
72
+ }) => Promise<P | undefined>;
73
+ /**
74
+ * Fired when a model is burned. `errorClass` is the unified classification
75
+ * (rate_limit / timeout / server_5xx / model_unavailable / …) and `delayMs`
76
+ * is the backoff about to elapse before the next attempt (0 on the final
77
+ * attempt). Lets the UI render the real timeline:
78
+ * "minimax rate_limited → backoff 2.1s → next model".
79
+ */
80
+ onBurn?: (info: {
81
+ stageName: string;
82
+ model: string;
83
+ status: number | string;
84
+ message: string;
85
+ errorClass: ErrorClass;
86
+ delayMs: number;
87
+ }) => void;
88
+ /** Max distinct chain entries to walk. Default 5. */
89
+ maxAttempts?: number;
90
+ signal?: AbortSignal;
91
+ }
92
+ export interface AgentChainResult<T> {
93
+ result: T;
94
+ model: string;
95
+ attempts: RouteAttempt[];
96
+ }
52
97
  export declare class LlmRouter {
53
98
  protected readonly config: RouterConfig;
54
99
  protected readonly resolver?: AdapterResolver;
@@ -75,6 +120,39 @@ export declare class LlmRouter {
75
120
  * - All attempts are ledgered (including failed ones with cost)
76
121
  */
77
122
  invoke(opts: InvokeOpts): Promise<RouteOutcome>;
123
+ /**
124
+ * Streaming sibling of `invoke()`. Walks the same fallback chain with the
125
+ * same reliability kernel — circuit-breaker gate, per-error-class backoff
126
+ * retry, spend ledger — but yields `StreamEvent`s as the provider produces
127
+ * them and RETURNS the final `RouteOutcome`.
128
+ *
129
+ * Stream retry/fallback semantics: the retryable window is "establish the
130
+ * stream + pull its first event". A failure there — the canonical
131
+ * connect-time `fetch failed` that used to burn a whole chain in ~1.5s — is
132
+ * retried with backoff on the same model (letting a poisoned socket recycle)
133
+ * and, once that model's policy is exhausted, burns it and falls back to the
134
+ * next chain entry. Once the first event has been yielded downstream we are
135
+ * committed to that model's stream: a mid-stream failure surfaces (the
136
+ * agentic session layer adds durable mid-stream continuation in Phase 3).
137
+ */
138
+ invokeStream(opts: InvokeOpts): AsyncGenerator<StreamEvent, RouteOutcome>;
139
+ /**
140
+ * Agentic chain walk — the reliability core for full agent spawns (one-shot
141
+ * runner AND each turn of a multi-turn session). Drop-in replacement for the
142
+ * old `runWithChainFallback`, but layered: each chain entry's attempt is
143
+ * wrapped in per-error-class **backoff retry** (`runWithRetry`) and gated by
144
+ * the **circuit breaker**; classification is the unified `classifyError`.
145
+ *
146
+ * On a fall-back-eligible failure the model is burned, the breaker records a
147
+ * failure, the durable `resolvePrefill` produces the continuation for the
148
+ * next model, and the walk advances. Terminal (auth/content/invalid) and
149
+ * non-eligible (`unknown`) errors surface immediately — no burn, no walk.
150
+ *
151
+ * This is what fixes the production failure: a connect-time `fetch failed`
152
+ * now backs off (letting the socket pool recycle) and recovers on the same
153
+ * model before burning, instead of the zero-backoff chain burn-through.
154
+ */
155
+ runAgent<T, P = unknown>(opts: AgentChainOptions<P>, attempt: (model: string, prefill?: P) => Promise<T>): Promise<AgentChainResult<T>>;
78
156
  /** Build the ordered chain of (model, on-gate) steps for a given tag. */
79
157
  protected buildChain(opts: InvokeOpts): Array<{
80
158
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@
6
6
  * fallback steps are eligible. content_policy / auth / invalid_request
7
7
  * never trigger cross-provider fallback (security default).
8
8
  */
9
- import { RouterError, classifyError } from './errors.js';
10
- import { DEFAULT_RETRY_POLICY, runWithRetry } from './retry.js';
9
+ import { RouterError, classifyError, isFallbackEligibleErrorClass, parseRetryAfterMs } from './errors.js';
10
+ import { DEFAULT_RETRY_POLICY, runWithRetry, computeDelay } from './retry.js';
11
11
  import { TokenBucketRateLimiter } from './rate-limiter.js';
12
12
  import { CircuitBreaker } from './circuit-breaker.js';
13
13
  export class LlmRouter {
@@ -163,6 +163,260 @@ export class LlmRouter {
163
163
  cause: finalErr,
164
164
  });
165
165
  }
166
+ /**
167
+ * Streaming sibling of `invoke()`. Walks the same fallback chain with the
168
+ * same reliability kernel — circuit-breaker gate, per-error-class backoff
169
+ * retry, spend ledger — but yields `StreamEvent`s as the provider produces
170
+ * them and RETURNS the final `RouteOutcome`.
171
+ *
172
+ * Stream retry/fallback semantics: the retryable window is "establish the
173
+ * stream + pull its first event". A failure there — the canonical
174
+ * connect-time `fetch failed` that used to burn a whole chain in ~1.5s — is
175
+ * retried with backoff on the same model (letting a poisoned socket recycle)
176
+ * and, once that model's policy is exhausted, burns it and falls back to the
177
+ * next chain entry. Once the first event has been yielded downstream we are
178
+ * committed to that model's stream: a mid-stream failure surfaces (the
179
+ * agentic session layer adds durable mid-stream continuation in Phase 3).
180
+ */
181
+ async *invokeStream(opts) {
182
+ const startedAt = this.now();
183
+ if (!this.resolver) {
184
+ throw new Error('LlmRouter.invokeStream requires an AdapterResolver (deps.resolver)');
185
+ }
186
+ this.enforceBudgetPreflight(opts);
187
+ const chain = this.buildChain(opts);
188
+ const allAttempts = [];
189
+ let totalCostUsd = 0;
190
+ let lastError;
191
+ let lastErrorClass;
192
+ let priorAttempted = false;
193
+ const maxCost = this.config.maxFallbackCostUsd ?? 1.0;
194
+ for (let step = 0; step < chain.length; step += 1) {
195
+ const link = chain[step];
196
+ const adapter = this.resolver.resolve(link.model);
197
+ if (step > 0 && priorAttempted && !this.shouldTryFallback(link, lastErrorClass)) {
198
+ continue;
199
+ }
200
+ if (!this.circuitBreaker.canAttempt(adapter.provider)) {
201
+ continue;
202
+ }
203
+ this.circuitBreaker.reserveAttempt(adapter.provider);
204
+ priorAttempted = true;
205
+ const llmOpts = this.buildInvokeOpts(opts, link.model);
206
+ const estimatedTokens = this.estimateTokens(llmOpts);
207
+ const policyFor = (cls) => this.config.retryPolicy[cls] ?? DEFAULT_RETRY_POLICY[cls];
208
+ const classify = (err) => {
209
+ const override = this.errorClassifiers[adapter.provider];
210
+ return override?.(err) ?? classifyError(err);
211
+ };
212
+ const retryRun = await runWithRetry(async () => {
213
+ await this.rateLimiter.acquire(adapter.provider, estimatedTokens);
214
+ const iterator = adapter.invokeStream(llmOpts)[Symbol.asyncIterator]();
215
+ const first = await iterator.next();
216
+ return { iterator, first };
217
+ }, { policyFor, classify, sleep: this.sleep, now: this.now, random: this.random, signal: opts.signal });
218
+ const stepAttempts = retryRun.attempts.map((a) => ({
219
+ model: link.model,
220
+ provider: adapter.provider,
221
+ attemptIndex: a.index,
222
+ fallbackIndex: step,
223
+ errorClass: a.errorClass,
224
+ durationMs: a.durationMs,
225
+ costUsd: undefined,
226
+ }));
227
+ allAttempts.push(...stepAttempts);
228
+ if (!retryRun.result) {
229
+ lastError = retryRun.error ?? new Error('LlmRouter.invokeStream: unknown failure');
230
+ lastErrorClass = stepAttempts[stepAttempts.length - 1]?.errorClass ?? 'unknown';
231
+ this.recordSpend(opts, adapter.provider, link.model, stepAttempts, undefined, lastError);
232
+ if (!isTerminal(lastErrorClass)) {
233
+ this.circuitBreaker.recordFailure(adapter.provider);
234
+ }
235
+ else {
236
+ break;
237
+ }
238
+ if (totalCostUsd > maxCost)
239
+ break;
240
+ continue;
241
+ }
242
+ // Stream established — drain it, yielding events; capture the final result.
243
+ const { iterator, first } = retryRun.result;
244
+ let result;
245
+ let drainError;
246
+ try {
247
+ if (first.done) {
248
+ result = first.value;
249
+ }
250
+ else {
251
+ yield first.value;
252
+ while (true) {
253
+ const s = await iterator.next();
254
+ if (s.done) {
255
+ result = s.value;
256
+ break;
257
+ }
258
+ yield s.value;
259
+ }
260
+ }
261
+ }
262
+ catch (err) {
263
+ drainError = err;
264
+ }
265
+ if (drainError || !result) {
266
+ // Mid-stream failure AFTER emitting — can't fall back to another model
267
+ // cleanly (events already flowed downstream). Surface it.
268
+ lastError = drainError instanceof Error
269
+ ? drainError
270
+ : new Error(String(drainError ?? 'stream ended without a result'));
271
+ lastErrorClass = classify(lastError) ?? 'unknown';
272
+ this.recordSpend(opts, adapter.provider, link.model, stepAttempts, undefined, lastError);
273
+ if (!isTerminal(lastErrorClass))
274
+ this.circuitBreaker.recordFailure(adapter.provider);
275
+ throw new RouterError(`route '${opts.tag}' stream failed mid-flight on ${link.model}: ${lastError.message}`, { attempts: allAttempts, cause: lastError });
276
+ }
277
+ const last = stepAttempts[stepAttempts.length - 1];
278
+ if (last)
279
+ last.costUsd = result.costUsd;
280
+ totalCostUsd += result.costUsd;
281
+ this.recordSpend(opts, adapter.provider, link.model, stepAttempts, result, undefined);
282
+ this.circuitBreaker.recordSuccess(adapter.provider);
283
+ const outcome = {
284
+ result,
285
+ attempts: allAttempts,
286
+ totalDurationMs: Math.max(0, this.now() - startedAt),
287
+ totalCostUsd,
288
+ };
289
+ this.populateBudgetRemaining(outcome, opts);
290
+ return outcome;
291
+ }
292
+ const finalErr = lastError ?? new Error('LlmRouter.invokeStream: chain produced no error and no result');
293
+ throw new RouterError(`route '${opts.tag}' failed: ${finalErr.message}`, {
294
+ attempts: allAttempts,
295
+ cause: finalErr,
296
+ });
297
+ }
298
+ /**
299
+ * Agentic chain walk — the reliability core for full agent spawns (one-shot
300
+ * runner AND each turn of a multi-turn session). Drop-in replacement for the
301
+ * old `runWithChainFallback`, but layered: each chain entry's attempt is
302
+ * wrapped in per-error-class **backoff retry** (`runWithRetry`) and gated by
303
+ * the **circuit breaker**; classification is the unified `classifyError`.
304
+ *
305
+ * On a fall-back-eligible failure the model is burned, the breaker records a
306
+ * failure, the durable `resolvePrefill` produces the continuation for the
307
+ * next model, and the walk advances. Terminal (auth/content/invalid) and
308
+ * non-eligible (`unknown`) errors surface immediately — no burn, no walk.
309
+ *
310
+ * This is what fixes the production failure: a connect-time `fetch failed`
311
+ * now backs off (letting the socket pool recycle) and recovers on the same
312
+ * model before burning, instead of the zero-backoff chain burn-through.
313
+ */
314
+ async runAgent(opts, attempt) {
315
+ const maxAttempts = Math.max(1, opts.maxAttempts ?? 5);
316
+ const burned = new Set();
317
+ const attempts = [];
318
+ let prefill;
319
+ let lastErr;
320
+ const providerOf = opts.providerOf ?? ((m) => {
321
+ try {
322
+ return this.resolver?.resolve(m).provider ?? 'unknown';
323
+ }
324
+ catch {
325
+ return 'unknown';
326
+ }
327
+ });
328
+ const policyFor = (cls) => this.config.retryPolicy[cls] ?? DEFAULT_RETRY_POLICY[cls];
329
+ const random = this.random ?? Math.random;
330
+ const now = this.now;
331
+ const sleep = this.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
332
+ // ONE attempt per chain entry — agent spawns are expensive, so we do NOT
333
+ // re-spawn the same model in a tight loop (that's what `invoke`'s
334
+ // `runWithRetry` is for). Instead, on a fall-back-eligible failure we burn
335
+ // the model, BACK OFF (the fix — lets a poisoned socket pool / quota
336
+ // recover), then let `resolveModel` pick the next entry. When the caller's
337
+ // resolver ignores the burn set (cli: one pinned model) this naturally
338
+ // becomes same-model retry-with-backoff; when it excludes burns (dashboard
339
+ // liveness walker) it's cross-model fallback. Terminal + `unknown` errors
340
+ // surface immediately — no burn, no backoff — matching the prior
341
+ // `runWithChainFallback` semantics (a generic error is a bug, not a
342
+ // provider fault).
343
+ for (let i = 0; i < maxAttempts; i += 1) {
344
+ let model;
345
+ try {
346
+ model = opts.resolveModel(burned);
347
+ }
348
+ catch (err) {
349
+ lastErr = err;
350
+ break;
351
+ }
352
+ const provider = providerOf(model);
353
+ const classify = (err) => this.errorClassifiers[provider]?.(err) ?? classifyError(err);
354
+ // Circuit breaker open → skip this provider, burn its model, walk on.
355
+ if (!this.circuitBreaker.canAttempt(provider)) {
356
+ attempts.push({ model, provider, attemptIndex: i, fallbackIndex: i, durationMs: 0 });
357
+ burned.add(model);
358
+ continue;
359
+ }
360
+ this.circuitBreaker.reserveAttempt(provider);
361
+ const startedAt = now();
362
+ try {
363
+ const result = await attempt(model, prefill);
364
+ attempts.push({ model, provider, attemptIndex: i, fallbackIndex: i, durationMs: Math.max(0, now() - startedAt) });
365
+ this.circuitBreaker.recordSuccess(provider);
366
+ return { result, model, attempts };
367
+ }
368
+ catch (err) {
369
+ lastErr = err instanceof Error ? err : new Error(String(err));
370
+ const cls = classify(lastErr);
371
+ attempts.push({ model, provider, attemptIndex: i, fallbackIndex: i, errorClass: cls, durationMs: Math.max(0, now() - startedAt) });
372
+ // Terminal or non-eligible (unknown) → surface immediately.
373
+ if (isTerminal(cls) || !isFallbackEligibleErrorClass(cls)) {
374
+ throw lastErr;
375
+ }
376
+ this.circuitBreaker.recordFailure(provider);
377
+ burned.add(model);
378
+ const status = lastErr.status ?? '?';
379
+ const message = lastErr.message?.slice(0, 200) ?? 'unknown';
380
+ // Backoff for the NEXT attempt — honor Retry-After when present, else
381
+ // the per-error-class curve. `model_unavailable` has a zero-delay
382
+ // policy, so a phantom-model id hops instantly. Zero on the final
383
+ // attempt (nothing to wait for). Computed BEFORE onBurn so the UI can
384
+ // render the backoff the burn is about to incur.
385
+ const hasNext = i + 1 < maxAttempts;
386
+ const policy = policyFor(cls);
387
+ const headerDelay = parseRetryAfterMs(lastErr.headers);
388
+ const delayMs = hasNext ? (headerDelay ?? computeDelay(policy, i, random)) : 0;
389
+ opts.onBurn?.({ stageName: opts.stage, model, status, message, errorClass: cls, delayMs });
390
+ if (hasNext) {
391
+ if (delayMs > 0) {
392
+ try {
393
+ await sleep(delayMs, opts.signal);
394
+ }
395
+ catch (e) {
396
+ lastErr = e;
397
+ break;
398
+ }
399
+ }
400
+ if (opts.resolvePrefill) {
401
+ let nextModel;
402
+ try {
403
+ nextModel = opts.resolveModel(burned);
404
+ }
405
+ catch {
406
+ nextModel = undefined;
407
+ }
408
+ try {
409
+ prefill = await opts.resolvePrefill({ burnedModel: model, attemptIndex: i + 1, nextModel });
410
+ }
411
+ catch {
412
+ prefill = undefined;
413
+ }
414
+ }
415
+ }
416
+ }
417
+ }
418
+ throw lastErr ?? new Error(`LlmRouter.runAgent: chain exhausted for stage '${opts.stage}'`);
419
+ }
166
420
  /** Build the ordered chain of (model, on-gate) steps for a given tag. */
167
421
  buildChain(opts) {
168
422
  if (opts.model) {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * declaration-only — runtime behavior lives in router.ts and friends.
6
6
  */
7
7
  import type { LanguageModelInvokeOptions, InvokeResult, ProviderName } from '../types.js';
8
- export type ErrorClass = 'rate_limit' | 'timeout' | 'server_5xx' | 'auth' | 'content_policy' | 'invalid_request' | 'unknown';
8
+ export type ErrorClass = 'rate_limit' | 'timeout' | 'server_5xx' | 'auth' | 'content_policy' | 'invalid_request' | 'model_unavailable' | 'unknown';
9
9
  export declare const ALL_ERROR_CLASSES: readonly ErrorClass[];
10
10
  export interface RetryPolicy {
11
11
  /** 0 = no retry. The total attempt count is `attempts + 1`. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export const ALL_ERROR_CLASSES = [
11
11
  'auth',
12
12
  'content_policy',
13
13
  'invalid_request',
14
+ 'model_unavailable',
14
15
  'unknown',
15
16
  ];
16
17
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,MAAM;IACN,gBAAgB;IAChB,iBAAiB;IACjB,SAAS;CACD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2BH,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,MAAM;IACN,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,SAAS;CACD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Unit tests for TurnRecorder — v2 ADR §2.1 / §2.5.
3
+ *
4
+ * Covers:
5
+ * a) startTurn records `assistant-start` WITHOUT an input-hash guard, so
6
+ * a resume whose prompt drifted (live-requeried KB/memory, cross-vendor
7
+ * continuation) replays the recorded transcript instead of aborting.
8
+ * b) Concurrent recorder instances do not cross-pollinate turn counters.
9
+ * c) runTool records `tool_use:N` AND `tool_result:N`, executes the
10
+ * exec callback exactly once on live, returns its NeutralToolResult.
11
+ * d) Replay path — when the underlying runtime returns recorded
12
+ * payloads, runTool short-circuits the executor (exec never fires).
13
+ * e) endTurn records `assistant-end` with provenance + usage.
14
+ * f) flushPartial emits an AssistantPartial through the sink with the
15
+ * same turnUuid that startTurn minted; idempotent across calls.
16
+ * g) NullTurnRecorder factory produces a recorder whose calls all
17
+ * complete cleanly with no persisted side effects.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=turn-recorder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-recorder.test.d.ts","sourceRoot":"","sources":["../../../src/turn-recorder/__tests__/turn-recorder.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}