@adaptic/utils 0.0.1038 → 0.0.1039

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 (47) hide show
  1. package/dist/index.cjs +1780 -341
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +1764 -342
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/types/__tests__/llm/client/support/legacy-scenarios.d.ts +48 -0
  6. package/dist/types/__tests__/llm/client/support/legacy-scenarios.d.ts.map +1 -0
  7. package/dist/types/__tests__/llm/client/support/transports.d.ts +18 -0
  8. package/dist/types/__tests__/llm/client/support/transports.d.ts.map +1 -1
  9. package/dist/types/alpaca/index.d.ts.map +1 -1
  10. package/dist/types/alpaca/trading/index.d.ts +1 -0
  11. package/dist/types/alpaca/trading/index.d.ts.map +1 -1
  12. package/dist/types/alpaca/trading/trail-limits.d.ts +8 -0
  13. package/dist/types/alpaca/trading/trail-limits.d.ts.map +1 -0
  14. package/dist/types/alpaca/trading/trail-unit.d.ts +98 -0
  15. package/dist/types/alpaca/trading/trail-unit.d.ts.map +1 -0
  16. package/dist/types/alpaca/trading/trailing-stops.d.ts +28 -15
  17. package/dist/types/alpaca/trading/trailing-stops.d.ts.map +1 -1
  18. package/dist/types/alpaca-trading-api.d.ts.map +1 -1
  19. package/dist/types/index.d.ts.map +1 -1
  20. package/dist/types/llm/alias-client.d.ts +10 -1
  21. package/dist/types/llm/alias-client.d.ts.map +1 -1
  22. package/dist/types/llm/circuit-breaker.d.ts +64 -2
  23. package/dist/types/llm/circuit-breaker.d.ts.map +1 -1
  24. package/dist/types/llm/fallback-chain.d.ts +109 -23
  25. package/dist/types/llm/fallback-chain.d.ts.map +1 -1
  26. package/dist/types/llm/hedge.d.ts +107 -0
  27. package/dist/types/llm/hedge.d.ts.map +1 -0
  28. package/dist/types/llm/index.d.ts +9 -6
  29. package/dist/types/llm/index.d.ts.map +1 -1
  30. package/dist/types/llm/leg-attempt.d.ts +165 -0
  31. package/dist/types/llm/leg-attempt.d.ts.map +1 -0
  32. package/dist/types/llm/leg-latency-tracker.d.ts +126 -0
  33. package/dist/types/llm/leg-latency-tracker.d.ts.map +1 -0
  34. package/dist/types/llm/rate-guard.d.ts +17 -0
  35. package/dist/types/llm/rate-guard.d.ts.map +1 -1
  36. package/dist/types/llm/route-table.d.ts +17 -1
  37. package/dist/types/llm/route-table.d.ts.map +1 -1
  38. package/dist/types/llm/transports/gateway.d.ts +27 -2
  39. package/dist/types/llm/transports/gateway.d.ts.map +1 -1
  40. package/dist/types/llm/types.d.ts +161 -1
  41. package/dist/types/llm/types.d.ts.map +1 -1
  42. package/dist/types/schemas/alpaca-schemas.d.ts +16 -16
  43. package/dist/types/schemas/massive-schemas.d.ts +10 -10
  44. package/dist/types/trading-policy/schemas/effective-policy.schema.d.ts +6 -6
  45. package/dist/types/trading-policy/schemas/policy-mutation.schema.d.ts +12 -12
  46. package/dist/types/trading-policy/schemas/signal-consumption-prefs.schema.d.ts +8 -8
  47. package/package.json +1 -1
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Rolling healthy-latency evidence per (provider, model), split by prompt size.
3
+ *
4
+ * The chain's timeouts and hedge points are only as good as its idea of how
5
+ * long a healthy answer takes. A flat route budget encodes no such idea: it
6
+ * treats a thirty-second wait on a model whose healthy answers arrive in four
7
+ * the same as a thirty-second wait on one that needs twenty-five. This tracker
8
+ * supplies the measured alternative.
9
+ *
10
+ * It is keyed by provider and model rather than by alias and role, because
11
+ * health is a property of the model at its host: the same model reached as one
12
+ * alias's primary and another alias's secondary is one population, and
13
+ * splitting it would halve the evidence each side sees. Samples are split by
14
+ * prompt size, because generation time grows with input and a model that
15
+ * struggles on large prompts would otherwise have its large-prompt tail hidden
16
+ * by a crowd of small, fast calls.
17
+ *
18
+ * Only healthy (answered) attempts are recorded. A timeout says the answer
19
+ * took at least the budget, not how long it took, and folding it in would pull
20
+ * the quantiles toward whatever budget happened to be configured.
21
+ *
22
+ * Unknown stays unknown: a cell with fewer than the minimum samples answers
23
+ * `null`, and every consumer treats `null` as "no evidence", never as a value.
24
+ *
25
+ * @module llm/leg-latency-tracker
26
+ */
27
+ /** How the tracker is sized. */
28
+ export interface LatencyTrackerConfig {
29
+ /** Samples a cell needs before a quantile is reported. */
30
+ readonly minSamples: number;
31
+ /** Samples kept per cell; the oldest is dropped first. */
32
+ readonly windowSize: number;
33
+ /** Samples older than this are discarded, in milliseconds. */
34
+ readonly sampleMaxAgeMs: number;
35
+ /** Ascending prompt-token boundaries; `n` boundaries make `n + 1` buckets. */
36
+ readonly promptTokenBuckets: readonly number[];
37
+ }
38
+ /**
39
+ * Estimate a prompt's size in tokens from its serialised length.
40
+ *
41
+ * Only used to choose a size bucket, and the same estimate is applied when a
42
+ * sample is recorded and when it is looked up, so its bias cancels. Content
43
+ * that cannot be serialised yields `null` rather than a guessed size.
44
+ *
45
+ * @param parts The prompt, developer instruction and prior turns.
46
+ * @returns The estimated token count, or null.
47
+ */
48
+ export declare function estimatePromptTokens(parts: readonly unknown[]): number | null;
49
+ /**
50
+ * The nearest-rank quantile of a sorted sample.
51
+ *
52
+ * @param sorted Ascending values; must be non-empty.
53
+ * @param q The quantile, in (0, 1).
54
+ * @returns The value at that rank.
55
+ */
56
+ export declare function nearestRank(sorted: readonly number[], q: number): number;
57
+ /**
58
+ * Per-process healthy-latency windows.
59
+ */
60
+ export declare class LegLatencyTracker {
61
+ private readonly cells;
62
+ private readonly config;
63
+ private readonly now;
64
+ /**
65
+ * @param config Window sizing and prompt-size buckets.
66
+ * @param now Clock, injected so ageing is testable without waiting.
67
+ */
68
+ constructor(config: LatencyTrackerConfig, now?: () => number);
69
+ /**
70
+ * The size bucket a prompt falls in.
71
+ *
72
+ * @param promptTokens Estimated prompt tokens, or null when unknown.
73
+ * @returns The bucket label.
74
+ */
75
+ bucketOf(promptTokens: number | null): string;
76
+ /**
77
+ * Record one healthy (answered) attempt.
78
+ *
79
+ * @param provider The provider that answered.
80
+ * @param modelId The model it answered with.
81
+ * @param promptTokens Estimated prompt tokens, or null.
82
+ * @param durationMs How long the answer took.
83
+ * @returns void
84
+ */
85
+ record(provider: string, modelId: string, promptTokens: number | null, durationMs: number): void;
86
+ /**
87
+ * A healthy-latency quantile, or null without enough evidence.
88
+ *
89
+ * @param provider The provider.
90
+ * @param modelId The model.
91
+ * @param promptTokens Estimated prompt tokens, or null.
92
+ * @param q The quantile, in (0, 1).
93
+ * @returns The quantile in milliseconds, or null.
94
+ */
95
+ quantile(provider: string, modelId: string, promptTokens: number | null, q: number): number | null;
96
+ /**
97
+ * How many fresh samples a cell holds.
98
+ *
99
+ * @param provider The provider.
100
+ * @param modelId The model.
101
+ * @param promptTokens Estimated prompt tokens, or null.
102
+ * @returns The count.
103
+ */
104
+ sampleCount(provider: string, modelId: string, promptTokens: number | null): number;
105
+ /**
106
+ * Discard all evidence.
107
+ *
108
+ * @returns void
109
+ */
110
+ reset(): void;
111
+ /**
112
+ * @param provider The provider.
113
+ * @param modelId The model.
114
+ * @param promptTokens Estimated prompt tokens, or null.
115
+ * @returns The cell key.
116
+ */
117
+ private cellKey;
118
+ /**
119
+ * A cell's samples with the stale ones removed.
120
+ *
121
+ * @param key The cell key.
122
+ * @returns The fresh samples (the stored array, pruned in place).
123
+ */
124
+ private fresh;
125
+ }
126
+ //# sourceMappingURL=leg-latency-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leg-latency-tracker.d.ts","sourceRoot":"","sources":["../../../src/llm/leg-latency-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,gCAAgC;AAChC,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAcD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAuB7E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC;;;OAGG;gBACgB,MAAM,EAAE,oBAAoB,EAAE,GAAG,GAAE,MAAM,MAAiB;IAK7E;;;;;OAKG;IACI,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAQpD;;;;;;;;OAQG;IACI,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,EAAE,MAAM,GACjB,IAAI;IAaP;;;;;;;;OAQG;IACI,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,CAAC,EAAE,MAAM,GACR,MAAM,GAAG,IAAI;IAShB;;;;;;;OAOG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAI1F;;;;OAIG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAIf;;;;;OAKG;IACH,OAAO,CAAC,KAAK;CAQd"}
@@ -184,6 +184,23 @@ export declare class RateGuardTimeoutError extends Error {
184
184
  * or the caller stopped waiting first.
185
185
  */
186
186
  export declare function withProviderGuards<T>(provider: string, call: () => Promise<T>, maxWaitMs?: number, scope?: GuardCallScope): Promise<T>;
187
+ /**
188
+ * Whether a provider guard has room for a DUPLICATE attempt above a reserve.
189
+ *
190
+ * A duplicate is a hedge: a second request for an answer another attempt is
191
+ * already fetching. It is only worth sending with capacity no first attempt
192
+ * needs, so it is admitted only when nobody is queued behind either bound and
193
+ * both the free concurrency (after the duplicate) and the rate tokens stay at
194
+ * or above the reserved fraction of the guard's ceilings. A provider that is
195
+ * already busy therefore never sees duplicates, which is when they would do
196
+ * the most harm.
197
+ *
198
+ * @param provider The provider key.
199
+ * @param modelId The model the duplicate would address.
200
+ * @param reserveFraction Fraction of each ceiling kept free, in [0, 1).
201
+ * @returns Whether the duplicate may start.
202
+ */
203
+ export declare function hasDuplicateHeadroom(provider: string, modelId: string, reserveFraction: number): boolean;
187
204
  /** Observable guard state, for dashboards and tests. */
188
205
  export interface GuardSnapshot {
189
206
  /** The guard's identity: the provider, or `provider/model` for a per-model guard. */
@@ -1 +1 @@
1
- {"version":3,"file":"rate-guard.d.ts","sourceRoot":"","sources":["../../../src/llm/rate-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAYH,kHAAkH;AAClH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,sBAAsB,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtD,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,kBAAkB,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CAChE;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,kBAAkB,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAoB5E;AAED,uFAAuF;AACvF,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,EAAE,CAIhF;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,qDAAqD;AACrD,UAAU,aAAa;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,yDAAyD;IACzD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC,oDAAoD;IACpD,SAAgB,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAE9C,0FAA0F;IAC1F,SAAgB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5C,qFAAqF;IACrF,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC;;;;;OAKG;gBAED,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,aAAa,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,aAAkB;CAoB7B;AAsND;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,GAAE,cAAmB,GACzB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,EAAE,CAsBhD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C"}
1
+ {"version":3,"file":"rate-guard.d.ts","sourceRoot":"","sources":["../../../src/llm/rate-guard.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * @module llm/route-table
19
19
  */
20
- import type { LlmAlias, LlmAliasDefinition, LlmProvider, LlmRoute, LlmRouteTable, ResolvedRoute } from "./types";
20
+ import type { LlmAlias, LlmAliasDefinition, LlmProvider, LlmRoute, LlmRouteDefaults, LlmRouteTable, ResolvedRoute } from "./types";
21
21
  /** Suffix naming an alias's research-isolated variant (PD-9). */
22
22
  export declare const ISOLATED_SUFFIX = ".isolated";
23
23
  /**
@@ -28,6 +28,22 @@ export declare const ISOLATED_SUFFIX = ".isolated";
28
28
  * caller change every other caller's routing.
29
29
  */
30
30
  export declare const routeTable: LlmRouteTable;
31
+ /** Separates a leg's route key from the provider of one of its equivalents. */
32
+ export declare const EQUIVALENT_SEPARATOR = "~";
33
+ /**
34
+ * Bounds violations in the tail-latency defaults (hedging, probe scaling and
35
+ * the latency trip).
36
+ *
37
+ * These values are mechanics rather than routing choices, but a value outside
38
+ * its bounds turns a mechanic into a routing change — a quantile of 1.0 makes
39
+ * every hedge wait for the slowest answer ever seen, a zero floor lets a
40
+ * measured timeout cut an attempt the instant it starts — so they are checked
41
+ * as strictly as the routing itself.
42
+ *
43
+ * @param defaults The table's defaults.
44
+ * @returns One message per violation; empty when every value is in bounds.
45
+ */
46
+ export declare function tailLatencyViolations(defaults: LlmRouteDefaults): string[];
31
47
  /**
32
48
  * Every alias the table defines.
33
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"route-table.d.ts","sourceRoot":"","sources":["../../../src/llm/route-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;AAKjB,iEAAiE;AACjE,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,aAAoD,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,QAAQ,EAAE,CAExC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,kBAAkB,CAMnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAQvD;AAED,2EAA2E;AAC3E,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,oCAAoC;IACpC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,+DAA+D;IAC/D,SAAgB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC;;;OAGG;gBACgB,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE;CAS3D;AAED,oFAAoF;AACpF,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,0CAA0C;IAC1C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,yDAAyD;IACzD,SAAgB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9C;;;OAGG;gBACgB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE;CAQhE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,QAAQ,EAAE,CAIxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,WAAW,GACpB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoBrE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,aAAa,CA+Cf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAElF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,GACnB,MAAM,CAKR"}
1
+ {"version":3,"file":"route-table.d.ts","sourceRoot":"","sources":["../../../src/llm/route-table.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,11 @@
10
10
  * gateway by its own model name, so the gateway serves one deployment per leg
11
11
  * and needs no fallback of its own. A proxy-side fallback inside a leg would
12
12
  * spend the leg's budget on a model the chain did not choose and report the
13
- * answer as the leg's; the served model is read from the response body so such
14
- * a substitution stays visible while any remains configured.
13
+ * answer as the leg's; the served model is read from the gateway's own
14
+ * served-model header, else from the upstream body's `model`, so such a
15
+ * substitution stays visible while any remains configured. A body `model` that
16
+ * merely echoes the name the leg was addressed by is the gateway naming its
17
+ * model GROUP, not the model that answered, and is reported as unknown.
15
18
  *
16
19
  * The gateway key is read from the environment by NAME at call time and never
17
20
  * stored, logged, or included in an error (PD-2). Reading it per call rather
@@ -20,6 +23,14 @@
20
23
  * @module llm/transports/gateway
21
24
  */
22
25
  import type { LlmTransport, LlmTransportRequest } from "../types";
26
+ /**
27
+ * Response header in which the gateway reports the upstream model that
28
+ * actually answered. Takes precedence over the body's `model`, which a proxy
29
+ * may overwrite with the model-group name it was addressed by.
30
+ */
31
+ export declare const SERVED_MODEL_HEADER = "x-adaptic-served-model";
32
+ /** Response header in which the gateway reports the upstream provider that answered. */
33
+ export declare const SERVED_PROVIDER_HEADER = "x-adaptic-served-provider";
23
34
  /** Configuration for the gateway transport. */
24
35
  export interface GatewayTransportConfig {
25
36
  /** Base URL of the proxy, e.g. `https://llm-gateway.internal`. */
@@ -72,4 +83,18 @@ export declare class GatewayResponseError extends Error {
72
83
  * @returns A transport that executes one leg through the proxy.
73
84
  */
74
85
  export declare function createGatewayTransport(config: GatewayTransportConfig): LlmTransport;
86
+ /**
87
+ * The model that answered, as far as the gateway says.
88
+ *
89
+ * The gateway's served-model header is authoritative when present. Otherwise
90
+ * the body's `model` is used — unless it equals the name the leg was addressed
91
+ * by, which is the proxy echoing its model group rather than naming the
92
+ * upstream model, and would otherwise read as a confirmed same-model answer.
93
+ *
94
+ * @param headers The response headers.
95
+ * @param bodyModel The body's `model` field.
96
+ * @param addressedAs The gateway model name the leg was sent to.
97
+ * @returns The served model, or null when the gateway did not say.
98
+ */
99
+ export declare function servedModelOf(headers: Headers | undefined, bodyModel: unknown, addressedAs: string): string | null;
75
100
  //# sourceMappingURL=gateway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../../src/llm/transports/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAclB,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,MAAM,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD;;;OAGG;gBACgB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAMnD;AAED,4DAA4D;AAC5D,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,uBAAuB;IACvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,8DAA8D;IAC9D,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC;;;OAGG;gBACgB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAMhD;AA+FD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,YAAY,CAkEd"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../../src/llm/transports/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAclB;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,MAAM,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD;;;OAGG;gBACgB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAMnD;AAED,4DAA4D;AAC5D,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,uBAAuB;IACvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,8DAA8D;IAC9D,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC;;;OAGG;gBACgB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAMhD;AA+FD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,YAAY,CAoEd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAOf"}
@@ -68,6 +68,24 @@ export interface LlmPriceAnchor {
68
68
  readonly as_of: string;
69
69
  readonly source?: string;
70
70
  }
71
+ /**
72
+ * The same model served somewhere else: another provider, or another
73
+ * deployment at the same provider.
74
+ *
75
+ * An equivalent is the only thing a leg may be retried or hedged on without
76
+ * changing which model answers. It is admitted by the same rules as a leg — a
77
+ * confirmed model id and a live provider account — so an equivalent that
78
+ * cannot serve today is carried in the table without being reached.
79
+ */
80
+ export interface LlmRouteEquivalent {
81
+ readonly provider: string;
82
+ readonly model_id: string | null;
83
+ readonly model_id_status: LlmModelIdStatus;
84
+ readonly model_id_source?: string | null;
85
+ readonly lumic_model?: string | null;
86
+ readonly params?: LlmRouteParams;
87
+ readonly notes?: string;
88
+ }
71
89
  /** One leg of an alias's fallback chain. */
72
90
  export interface LlmRoute {
73
91
  readonly role: LlmRouteRole;
@@ -80,6 +98,14 @@ export interface LlmRoute {
80
98
  readonly params?: LlmRouteParams;
81
99
  readonly price_per_mtok?: LlmPriceAnchor;
82
100
  readonly shadow_only?: boolean;
101
+ /**
102
+ * The model this leg serves, independent of which provider hosts it.
103
+ * Absent means the model id itself: two legs are the same model exactly when
104
+ * their classes are equal.
105
+ */
106
+ readonly model_class?: string;
107
+ /** The same model at other providers or deployments, reached before any different-model leg. */
108
+ readonly equivalents?: readonly LlmRouteEquivalent[];
83
109
  readonly notes?: string;
84
110
  }
85
111
  /** A provider account the chain can reach. */
@@ -128,12 +154,91 @@ export interface LlmBreakerDefaults {
128
154
  */
129
155
  readonly capacity_cooldown_ms?: number;
130
156
  readonly half_open_probes: number;
157
+ /**
158
+ * Half-open probes as a fraction of the route's concurrency before it
159
+ * opened. The probe budget is the larger of this and `half_open_probes`, so
160
+ * a route that carried forty calls at once is not re-tested by one.
161
+ * Absent means `half_open_probes` alone.
162
+ */
163
+ readonly probe_fraction?: number;
164
+ /** Open on sustained slowness as well as on failures. Absent means failures only. */
165
+ readonly latency_trip?: LlmLatencyTripDefaults;
166
+ }
167
+ /**
168
+ * Tripping a breaker on latency rather than on failure.
169
+ *
170
+ * A route whose answers arrive, but arrive later than the caller can use, is
171
+ * failing in every way that matters to a hot path while never producing an
172
+ * error. The trip reads a quantile of attempt durations over fixed-size
173
+ * windows and opens when M of the last N windows exceeded the latency class's
174
+ * objective.
175
+ */
176
+ export interface LlmLatencyTripDefaults {
177
+ /**
178
+ * Whether the trip is armed. Opening a breaker moves its traffic to the next
179
+ * leg, which is usually a different model; arming it is therefore a routing
180
+ * choice, not a pure latency mechanic, and it ships disarmed.
181
+ */
182
+ readonly enabled: boolean;
183
+ /** Latency objective per latency class, in milliseconds. */
184
+ readonly slo_ms: Readonly<Record<LlmLatencyClass, number>>;
185
+ /** The quantile of a window compared against the objective, in (0, 1). */
186
+ readonly quantile: number;
187
+ /** Attempts per window. */
188
+ readonly window_size: number;
189
+ /** Windows over the objective, of the last `of_windows`, that open the breaker. */
190
+ readonly trip_windows: number;
191
+ readonly of_windows: number;
192
+ }
193
+ /**
194
+ * Tail-latency controls for attempts on the SAME model.
195
+ *
196
+ * None of these selects a different model: they decide when a second attempt
197
+ * on the same model starts, and how long one attempt may hold the caller's
198
+ * deadline while a same-model alternative waits.
199
+ */
200
+ export interface LlmHedgingDefaults {
201
+ /** Extra same-model attempts one leg may start, equivalents and duplicates together. */
202
+ readonly max_same_model_hedges: number;
203
+ /** Healthy-latency quantile after which a hedge starts, in (0, 1). */
204
+ readonly hedge_quantile: number;
205
+ /** Healthy-latency quantile the per-attempt timeout scales, in (0, 1). */
206
+ readonly timeout_quantile: number;
207
+ /** Multiplier on the timeout quantile. */
208
+ readonly k_timeout: number;
209
+ /** Lower bound on a measured per-attempt timeout, in milliseconds. */
210
+ readonly attempt_timeout_floor_ms: number;
211
+ /**
212
+ * Share of a leg's remaining budget one attempt may hold before a waiting
213
+ * same-model equivalent is started beside it, in (0, 1].
214
+ */
215
+ readonly max_attempt_share: number;
216
+ /**
217
+ * Fraction of a provider guard's concurrency and rate capacity kept free:
218
+ * a duplicate on the same provider is started only above it, so hedging
219
+ * never takes the capacity first attempts need.
220
+ */
221
+ readonly duplicate_headroom_reserve: number;
222
+ /** Healthy samples a (provider, model, prompt-size) cell needs before it is used. */
223
+ readonly min_samples: number;
224
+ /** Samples kept per cell. */
225
+ readonly window_size: number;
226
+ /** Samples older than this are discarded, in milliseconds. */
227
+ readonly sample_max_age_ms: number;
228
+ /** Ascending prompt-token boundaries splitting samples into size buckets. */
229
+ readonly prompt_token_buckets: readonly number[];
131
230
  }
132
231
  /** Defaults every alias inherits. */
133
232
  export interface LlmRouteDefaults {
134
233
  readonly request_timeout_ms: Readonly<Record<LlmLatencyClass, number>>;
234
+ /**
235
+ * Retries the GATEWAY makes within one leg (its rendered `num_retries`). The
236
+ * client never retries within a leg; it hedges on the same model instead.
237
+ */
135
238
  readonly retries_per_leg: number;
136
239
  readonly circuit_breaker: LlmBreakerDefaults;
240
+ /** Same-model tail-latency controls. Absent means no hedging and route-budget timeouts. */
241
+ readonly hedging?: LlmHedgingDefaults;
137
242
  }
138
243
  /** A routing question the table cannot settle on its own authority. */
139
244
  export interface LlmOpenItem {
@@ -165,8 +270,36 @@ export interface ResolvedRoute {
165
270
  /** Stable identity of this leg, used to key its circuit breaker and its metrics. */
166
271
  readonly routeKey: string;
167
272
  readonly timeoutMs: number;
168
- readonly retriesPerLeg: number;
273
+ /**
274
+ * @deprecated Never read by the client, which does not retry within a leg;
275
+ * the gateway's own retry count lives in the route table's defaults. No
276
+ * longer populated by the resolver.
277
+ */
278
+ readonly retriesPerLeg?: number;
279
+ /** The model this leg serves, independent of provider. Absent means `modelId`. */
280
+ readonly modelClass?: string;
281
+ /** Latency class of the alias, which selects the latency objective. */
282
+ readonly latencyClass?: LlmLatencyClass;
283
+ /** The same model at other live providers, in table order. */
284
+ readonly equivalents?: readonly ResolvedRoute[];
169
285
  }
286
+ /**
287
+ * How a different-model leg may be used once the configured model's attempts
288
+ * are spent.
289
+ *
290
+ * `allow` and `allow_record` both run it, and both record the relation on
291
+ * every attempt; the distinction is the consumer's, which may alert or gate on
292
+ * `allow_record`. `deny` never runs it: the call ends with a
293
+ * `cross_model_denied` exhaustion, which a caller maps to no decision.
294
+ */
295
+ export type LlmCrossModelPolicy = "allow" | "allow_record" | "deny";
296
+ /**
297
+ * Whether an answer came from the configured model.
298
+ *
299
+ * `unknown` is a leg that should have been the configured model but whose
300
+ * provider did not say which model answered: it is not asserted either way.
301
+ */
302
+ export type LlmModelClassRelation = "same" | "different" | "unknown";
170
303
  /**
171
304
  * Token accounting for one attempt, mirroring the incumbent client's shape.
172
305
  *
@@ -210,6 +343,8 @@ export interface LlmTransportResponse<T> {
210
343
  readonly servedModel?: string | null;
211
344
  /** The proxy's deployment id for the answer (`x-litellm-model-id`), or `null`. */
212
345
  readonly servedDeploymentId?: string | null;
346
+ /** The provider the gateway reports as having served the answer, or `null`. */
347
+ readonly servedProvider?: string | null;
213
348
  }
214
349
  /** What the caller receives, with the routing decision attached for attribution. */
215
350
  export interface AliasCallResult<T> extends LlmTransportResponse<T> {
@@ -227,6 +362,10 @@ export interface AliasCallResult<T> extends LlmTransportResponse<T> {
227
362
  * See {@link LlmTransportResponse.servedModel}.
228
363
  */
229
364
  readonly servedModel?: string | null;
365
+ /** Whether the answer came from the configured model. See {@link LlmModelClassRelation}. */
366
+ readonly modelClassRelation?: LlmModelClassRelation;
367
+ /** Whether the answering attempt was a hedge rather than a leg's first attempt. */
368
+ readonly hedged?: boolean;
230
369
  }
231
370
  /** One attempt against one leg. */
232
371
  export interface AliasAttemptRecord {
@@ -245,6 +384,16 @@ export interface AliasAttemptRecord {
245
384
  readonly servedModel?: string | null;
246
385
  readonly reason?: string;
247
386
  readonly usage?: LlmUsageRecord;
387
+ /** The provider that served, or was asked to serve, this attempt; `null` when unknown. */
388
+ readonly servedProvider?: string | null;
389
+ /** The model class the attempt was addressed to. */
390
+ readonly modelClass?: string;
391
+ /** Whether this attempt's model is the configured one. */
392
+ readonly modelClassRelation?: LlmModelClassRelation;
393
+ /** Whether this attempt was a same-model hedge rather than its leg's first attempt. */
394
+ readonly hedged?: boolean;
395
+ /** Zero-based dispatch order across the whole call. */
396
+ readonly attemptIndex?: number;
248
397
  }
249
398
  /**
250
399
  * A caller's tool-choice policy.
@@ -314,6 +463,12 @@ export interface AliasCallOptions<T = unknown> {
314
463
  readonly validate?: (raw: unknown) => LlmValidationOutcome<T>;
315
464
  /** Correlation id carried into transport metadata for cross-system tracing. */
316
465
  readonly correlationId?: string;
466
+ /**
467
+ * Whether a different-model leg may answer once the configured model's
468
+ * attempts are spent. Absent means `allow_record`, which is the chain's
469
+ * historical behaviour.
470
+ */
471
+ readonly crossModelPolicy?: LlmCrossModelPolicy;
317
472
  }
318
473
  /** A transport that can execute one resolved route. */
319
474
  export interface LlmTransport {
@@ -375,5 +530,10 @@ export interface LlmClientConfig {
375
530
  readonly directTransport?: LlmTransport;
376
531
  /** Clock, injected so timeout and breaker behaviour is testable without waiting. */
377
532
  readonly now?: () => number;
533
+ /**
534
+ * Decides whether a duplicate attempt on the same provider may start.
535
+ * Defaults to the provider guard's headroom check; injectable for tests.
536
+ */
537
+ readonly duplicateAdmission?: (route: ResolvedRoute, reserveFraction: number) => boolean;
378
538
  }
379
539
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/types.ts"],"names":[],"mappings":"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"}