@plurnk/plurnk-providers 1.5.0 → 1.6.1

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 (105) hide show
  1. package/.env.defaults +41 -34
  2. package/README.md +15 -0
  3. package/SPEC.md +242 -89
  4. package/dist/AiSdkProvider.d.ts +33 -33
  5. package/dist/AiSdkProvider.d.ts.map +1 -1
  6. package/dist/AiSdkProvider.js +442 -133
  7. package/dist/AiSdkProvider.js.map +1 -1
  8. package/dist/Mock.d.ts +10 -11
  9. package/dist/Mock.d.ts.map +1 -1
  10. package/dist/Mock.js +87 -25
  11. package/dist/Mock.js.map +1 -1
  12. package/dist/Pool.d.ts +9 -24
  13. package/dist/Pool.d.ts.map +1 -1
  14. package/dist/Pool.js +86 -25
  15. package/dist/Pool.js.map +1 -1
  16. package/dist/accounting.d.ts +5 -2
  17. package/dist/accounting.d.ts.map +1 -1
  18. package/dist/accounting.js +100 -16
  19. package/dist/accounting.js.map +1 -1
  20. package/dist/accountingPublic.d.ts +5 -0
  21. package/dist/accountingPublic.d.ts.map +1 -0
  22. package/dist/accountingPublic.js +3 -0
  23. package/dist/accountingPublic.js.map +1 -0
  24. package/dist/aiSdkTransport.d.ts +9 -2
  25. package/dist/aiSdkTransport.d.ts.map +1 -1
  26. package/dist/aiSdkTransport.js +160 -62
  27. package/dist/aiSdkTransport.js.map +1 -1
  28. package/dist/capacity.d.ts +26 -0
  29. package/dist/capacity.d.ts.map +1 -0
  30. package/dist/capacity.js +90 -0
  31. package/dist/capacity.js.map +1 -0
  32. package/dist/catalogProvider.d.ts +8 -3
  33. package/dist/catalogProvider.d.ts.map +1 -1
  34. package/dist/catalogProvider.js +45 -41
  35. package/dist/catalogProvider.js.map +1 -1
  36. package/dist/compatibleProvider.d.ts.map +1 -1
  37. package/dist/compatibleProvider.js +26 -12
  38. package/dist/compatibleProvider.js.map +1 -1
  39. package/dist/cost.d.ts +10 -10
  40. package/dist/cost.d.ts.map +1 -1
  41. package/dist/cost.js +90 -42
  42. package/dist/cost.js.map +1 -1
  43. package/dist/env.d.ts +13 -11
  44. package/dist/env.d.ts.map +1 -1
  45. package/dist/env.js +83 -46
  46. package/dist/env.js.map +1 -1
  47. package/dist/errors.d.ts +17 -3
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js +91 -8
  50. package/dist/errors.js.map +1 -1
  51. package/dist/index.d.ts +7 -6
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +5 -3
  54. package/dist/index.js.map +1 -1
  55. package/dist/ollama.js +3 -3
  56. package/dist/ollama.js.map +1 -1
  57. package/dist/promptTokens.d.ts.map +1 -1
  58. package/dist/promptTokens.js +7 -4
  59. package/dist/promptTokens.js.map +1 -1
  60. package/dist/sdkModels.d.ts +7 -2
  61. package/dist/sdkModels.d.ts.map +1 -1
  62. package/dist/sdkModels.js +43 -13
  63. package/dist/sdkModels.js.map +1 -1
  64. package/dist/types.d.ts +55 -33
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/usage.d.ts +22 -5
  67. package/dist/usage.d.ts.map +1 -1
  68. package/dist/usage.js +169 -83
  69. package/dist/usage.js.map +1 -1
  70. package/package.json +18 -7
  71. package/src/AiSdkProvider.test.ts +964 -206
  72. package/src/AiSdkProvider.ts +545 -155
  73. package/src/Mock.test.ts +69 -30
  74. package/src/Mock.ts +99 -29
  75. package/src/Pool.test.ts +90 -19
  76. package/src/Pool.ts +96 -27
  77. package/src/ProviderRegistry.test.ts +16 -11
  78. package/src/accounting.test.ts +58 -22
  79. package/src/accounting.ts +119 -18
  80. package/src/accountingPublic.ts +9 -0
  81. package/src/aiSdkTransport.test.ts +42 -49
  82. package/src/aiSdkTransport.ts +174 -62
  83. package/src/boundaries.test.ts +2 -0
  84. package/src/capacity.test.ts +92 -0
  85. package/src/capacity.ts +140 -0
  86. package/src/catalogProvider.test.ts +339 -30
  87. package/src/catalogProvider.ts +65 -47
  88. package/src/compatibleProvider.test.ts +7 -5
  89. package/src/compatibleProvider.ts +29 -13
  90. package/src/cost.test.ts +86 -36
  91. package/src/cost.ts +111 -50
  92. package/src/defaults.test.ts +13 -3
  93. package/src/env.test.ts +103 -25
  94. package/src/env.ts +153 -65
  95. package/src/errors.test.ts +80 -2
  96. package/src/errors.ts +107 -8
  97. package/src/index.ts +26 -7
  98. package/src/ollama.test.ts +5 -3
  99. package/src/ollama.ts +3 -3
  100. package/src/promptTokens.ts +8 -5
  101. package/src/sdkModels.test.ts +77 -8
  102. package/src/sdkModels.ts +51 -15
  103. package/src/types.ts +112 -51
  104. package/src/usage.test.ts +112 -116
  105. package/src/usage.ts +214 -93
package/dist/env.js CHANGED
@@ -8,6 +8,14 @@ export const parseRequiredInt = (raw, name, label) => {
8
8
  throw new Error(`${label} provider: ${name} must be a non-negative integer (got "${raw}")`);
9
9
  return n;
10
10
  };
11
+ export const MAX_PROVIDER_TIMEOUT_MS = 2_147_483_647;
12
+ export const parseTimeoutMs = (raw, name, label) => {
13
+ const timeoutMs = parseRequiredInt(raw, name, label);
14
+ if (timeoutMs > MAX_PROVIDER_TIMEOUT_MS) {
15
+ throw new Error(`${label} provider: ${name} must be at most ${MAX_PROVIDER_TIMEOUT_MS} milliseconds (got "${raw}")`);
16
+ }
17
+ return timeoutMs;
18
+ };
11
19
  export const parseOptionalInt = (raw, name, label) => {
12
20
  if (raw === undefined || raw.length === 0)
13
21
  return null;
@@ -37,14 +45,6 @@ export const requireEnv = (raw, name, label) => {
37
45
  throw new Error(`${label} provider: ${name} must be set`);
38
46
  return raw;
39
47
  };
40
- export const promptCacheKeyFromEnv = (env, label) => {
41
- const name = "PLURNK_PROVIDERS_PROMPT_CACHE_KEY";
42
- const value = env[name];
43
- if (value !== "0" && value !== "1") {
44
- throw new Error(`${label} provider: ${name} must be "0" or "1"`);
45
- }
46
- return value === "1";
47
- };
48
48
  // {§provider-configuration} A still-set retired knob fails
49
49
  // hard pointing at its successor — never silently coexists with the new floor.
50
50
  // The retired names appear ONLY as this function's ARGUMENTS at the call sites
@@ -54,6 +54,23 @@ const shedRenamed = (env, oldName, newName, label, ref) => {
54
54
  if (stale !== undefined && stale.length > 0)
55
55
  throw new Error(`${label} provider: ${oldName} was renamed to ${newName} (${ref}); update the env`);
56
56
  };
57
+ export const cacheAffinityFromEnv = (env, label) => {
58
+ const name = "PLURNK_PROVIDERS_CACHE_AFFINITY";
59
+ shedRenamed(env, "PLURNK_PROVIDERS_PROMPT_CACHE_KEY", name, label, "{§provider-cache-affinity}"); // lexicon-allow
60
+ const value = env[name];
61
+ if (value !== "0" && value !== "1") {
62
+ throw new Error(`${label} provider: ${name} must be "0" or "1"`);
63
+ }
64
+ return value === "1";
65
+ };
66
+ export const cacheWritePolicyFromEnv = (env, label) => {
67
+ const name = "PLURNK_PROVIDERS_CACHE_WRITE_POLICY";
68
+ const value = env[name];
69
+ if (value !== "off" && value !== "stable-system") {
70
+ throw new Error(`${label} provider: ${name} must be "off" or "stable-system"`);
71
+ }
72
+ return value;
73
+ };
57
74
  // {§provider-evidence} Data-capture knobs are read identically by every provider
58
75
  // (standard AND
59
76
  // plugin) so the opt-in surface is one source of truth. Both OFF by default —
@@ -86,9 +103,9 @@ export function effectiveContextWindow(operatorCap, naturalWindow) {
86
103
  ? operatorCap
87
104
  : Math.min(operatorCap, naturalWindow);
88
105
  }
89
- const parseReserve = (raw, name, label) => {
106
+ const parseTokenBudget = (raw, name, label) => {
90
107
  if (raw === undefined || raw.length === 0)
91
- throw new Error(`${label} provider: ${name} must be set (a percentage of the window like "10%", or an absolute token count)`);
108
+ throw new Error(`${label} provider: ${name} must be set (a percentage of the context window like "35%", or an absolute token count)`);
92
109
  const pct = /^([0-9]+(?:\.[0-9]+)?)%$/.exec(raw);
93
110
  if (pct !== null) {
94
111
  const p = Number(pct[1]);
@@ -101,25 +118,53 @@ const parseReserve = (raw, name, label) => {
101
118
  throw new Error(`${label} provider: ${name} must be "<pct>%" or a positive integer token count (got "${raw}")`);
102
119
  return { tokens: n };
103
120
  };
104
- export const envelopeFromEnv = (env, label) => ({
105
- reasoningReserve: parseReserve(env.PLURNK_PROVIDERS_REASONING_RESERVE, "PLURNK_PROVIDERS_REASONING_RESERVE", label),
106
- completionReserve: parseReserve(env.PLURNK_PROVIDERS_COMPLETION_RESERVE, "PLURNK_PROVIDERS_COMPLETION_RESERVE", label),
107
- });
108
- // Resolve a ReserveSpec against a known window: absolutes stand alone; a
121
+ // Resolve a token budget against a known window: absolutes stand alone; a
109
122
  // percentage needs the window (null when unknown — the underivable/no-cap case).
110
- export const resolveReserve = (spec, window) => "tokens" in spec ? spec.tokens : window === null ? null : Math.round(spec.percent * window);
111
- // TOLERANT envelope read for fixtures + consumers that resolve reserves against
112
- // a known window and treat ABSENCE as "no claim" (null), never fail-hard —
113
- // unlike envelopeFromEnv (the REQUIRED provider path, fed by the shipped floor).
114
- // Mock uses this so the service's partition/budget suite drives the SAME
115
- // env→reserve resolution a real provider does, without the floor. An invalid
116
- // value still throws (a malformed reserve is an error, not an absence).
117
- export const resolveEnvelopeFromEnv = (env, window) => {
118
- const one = (raw, name) => raw === undefined || raw.length === 0 ? null : resolveReserve(parseReserve(raw, name, "mock"), window);
119
- return {
120
- reasoningReserve: one(env.PLURNK_PROVIDERS_REASONING_RESERVE, "PLURNK_PROVIDERS_REASONING_RESERVE"),
121
- completionReserve: one(env.PLURNK_PROVIDERS_COMPLETION_RESERVE, "PLURNK_PROVIDERS_COMPLETION_RESERVE"),
122
- };
123
+ export const resolveTokenBudget = (spec, window) => "tokens" in spec
124
+ ? spec.tokens
125
+ : window === null
126
+ ? null
127
+ : Math.max(1, Math.round(spec.percent * window));
128
+ const shedRetiredEnvelope = (env, label) => {
129
+ for (const name of ["PLURNK_PROVIDERS_REASONING_RESERVE", "PLURNK_PROVIDERS_COMPLETION_RESERVE"]) {
130
+ if (env[name] !== undefined && env[name] !== "") {
131
+ throw new Error(`${label} provider: ${name} is retired; reasoning is now a subset of the total generation envelope. Replace the old pair with PLURNK_PROVIDERS_OUTPUT_BUDGET and optional PLURNK_PROVIDERS_REASONING_BUDGET ({§provider-generation-envelope})`);
132
+ }
133
+ }
134
+ };
135
+ const optionalTokenBudget = (raw, name, label) => raw === undefined || raw.length === 0
136
+ ? null
137
+ : parseTokenBudget(raw, name, label);
138
+ const resolveGeneration = (outputSpec, reasoningSpec, contextWindow, maxOutputTokens, label) => {
139
+ const requestedOutput = outputSpec === null ? null : resolveTokenBudget(outputSpec, contextWindow);
140
+ const physicalCaps = [contextWindow, maxOutputTokens].filter((value) => value !== null);
141
+ const outputBudget = requestedOutput === null
142
+ ? null
143
+ : Math.min(requestedOutput, ...physicalCaps);
144
+ if (contextWindow !== null && outputBudget !== null && outputBudget >= contextWindow) {
145
+ throw new Error(`${label} provider: PLURNK_PROVIDERS_OUTPUT_BUDGET (${outputBudget}) must leave positive input capacity inside the context window (${contextWindow})`);
146
+ }
147
+ const reasoningBudget = reasoningSpec === null
148
+ ? null
149
+ : resolveTokenBudget(reasoningSpec, contextWindow);
150
+ if (reasoningBudget !== null && outputBudget === null) {
151
+ throw new Error(`${label} provider: PLURNK_PROVIDERS_REASONING_BUDGET requires a resolved PLURNK_PROVIDERS_OUTPUT_BUDGET; reasoning is a subset of total output`);
152
+ }
153
+ if (reasoningBudget !== null && outputBudget !== null && reasoningBudget >= outputBudget) {
154
+ throw new Error(`${label} provider: PLURNK_PROVIDERS_REASONING_BUDGET (${reasoningBudget}) exceeds the effective PLURNK_PROVIDERS_OUTPUT_BUDGET (${outputBudget}); reasoning is a subset of total output`);
155
+ }
156
+ return { outputBudget, reasoningBudget };
157
+ };
158
+ // Standard providers receive the shipped OUTPUT_BUDGET floor and fail hard if
159
+ // it is absent. Mock uses the tolerant sibling below so ordinary unit fixtures
160
+ // make no generation claim unless a test deliberately configures one.
161
+ export const generationEnvelopeFromEnv = (env, label, contextWindow, maxOutputTokens) => {
162
+ shedRetiredEnvelope(env, label);
163
+ return resolveGeneration(parseTokenBudget(env.PLURNK_PROVIDERS_OUTPUT_BUDGET, "PLURNK_PROVIDERS_OUTPUT_BUDGET", label), optionalTokenBudget(env.PLURNK_PROVIDERS_REASONING_BUDGET, "PLURNK_PROVIDERS_REASONING_BUDGET", label), contextWindow, maxOutputTokens, label);
164
+ };
165
+ export const resolveGenerationEnvelopeFromEnv = (env, contextWindow, maxOutputTokens = null) => {
166
+ shedRetiredEnvelope(env, "mock");
167
+ return resolveGeneration(optionalTokenBudget(env.PLURNK_PROVIDERS_OUTPUT_BUDGET, "PLURNK_PROVIDERS_OUTPUT_BUDGET", "mock"), optionalTokenBudget(env.PLURNK_PROVIDERS_REASONING_BUDGET, "PLURNK_PROVIDERS_REASONING_BUDGET", "mock"), contextWindow, maxOutputTokens, "mock");
123
168
  };
124
169
  export const reasoningResponseStyleFromEnv = (env, label) => {
125
170
  const name = "PLURNK_PROVIDERS_REASONING_RESPONSE_STYLE";
@@ -131,7 +176,7 @@ export const reasoningResponseStyleFromEnv = (env, label) => {
131
176
  }
132
177
  return raw;
133
178
  };
134
- export const reasoningFromEnv = (env, label) => {
179
+ export const reasoningFromEnv = (env, label, resolvedBudget = null) => {
135
180
  shedRenamed(env, "PLURNK_PROVIDERS_THINKING", "PLURNK_PROVIDERS_REASONING", label, "provider configuration contract"); // lexicon-allow
136
181
  shedRenamed(env, "PLURNK_PROVIDERS_THINKING_CAPACITY", "PLURNK_PROVIDERS_REASONING_BUDGET", label, "provider configuration contract"); // lexicon-allow
137
182
  const name = "PLURNK_PROVIDERS_REASONING";
@@ -140,16 +185,7 @@ export const reasoningFromEnv = (env, label) => {
140
185
  throw new Error(`${label} provider: ${name} must be set (off | adaptive | on)`);
141
186
  if (raw !== "off" && raw !== "adaptive" && raw !== "on")
142
187
  throw new Error(`${label} provider: ${name} must be one of "off", "adaptive", "on" (got "${raw}")`);
143
- if (raw !== "on")
144
- return { mode: raw, budget: null };
145
- const capName = "PLURNK_PROVIDERS_REASONING_BUDGET";
146
- const capRaw = env[capName];
147
- if (capRaw === undefined || capRaw.length === 0)
148
- throw new Error(`${label} provider: ${capName} must be set when ${name}=on`);
149
- const n = Number(capRaw);
150
- if (!Number.isInteger(n) || n <= 0)
151
- throw new Error(`${label} provider: ${capName} must be a positive integer (got "${capRaw}")`);
152
- return { mode: "on", budget: n };
188
+ return { mode: raw, budget: raw === "off" ? null : resolvedBudget };
153
189
  };
154
190
  // ── Per-alias knob scoping (per-alias scoping doctrine, user 2026-07-03): PLURNK_PROVIDERS_<KNOB>[_<alias>] ──
155
191
  // Every plurnk-owned knob accepts a per-alias override — the suffixed form wins,
@@ -159,22 +195,24 @@ export const reasoningFromEnv = (env, label) => {
159
195
  // facts (API keys, canonical endpoints) remain vendor-named; the per-alias
160
196
  // endpoint override stays PLURNK_BASEURL_<alias> (its existing precedent).
161
197
  export const PROVIDERS_KNOBS = Object.freeze([
162
- "PLURNK_PROVIDERS_REASONING_RESERVE",
163
- "PLURNK_PROVIDERS_COMPLETION_RESERVE",
198
+ "PLURNK_PROVIDERS_OUTPUT_BUDGET",
164
199
  "PLURNK_PROVIDERS_REASONING_RESPONSE_STYLE",
165
200
  "PLURNK_PROVIDERS_REASONING_BUDGET",
166
201
  "PLURNK_PROVIDERS_REASONING",
167
202
  "PLURNK_PROVIDERS_CONTEXT_WINDOW",
168
203
  "PLURNK_PROVIDERS_RETRY_ATTEMPTS",
169
204
  "PLURNK_PROVIDERS_ERROR_DETAIL_LIMIT",
205
+ "PLURNK_PROVIDERS_OPERATION_TIMEOUT",
170
206
  "PLURNK_PROVIDERS_FETCH_TIMEOUT",
207
+ "PLURNK_PROVIDERS_FIRST_CONTENT_TIMEOUT",
171
208
  "PLURNK_PROVIDERS_STREAM_IDLE_TIMEOUT",
172
209
  "PLURNK_PROVIDERS_LLAMA_SERVER",
173
210
  "PLURNK_PROVIDERS_TEMPERATURE",
174
211
  "PLURNK_PROVIDERS_REPEAT_PENALTY",
175
212
  "PLURNK_PROVIDERS_FREQUENCY_PENALTY",
176
213
  "PLURNK_PROVIDERS_SERVICE_TIER",
177
- "PLURNK_PROVIDERS_PROMPT_CACHE_KEY",
214
+ "PLURNK_PROVIDERS_CACHE_WRITE_POLICY",
215
+ "PLURNK_PROVIDERS_CACHE_AFFINITY",
178
216
  "PLURNK_PROVIDERS_REPEAT_LAST_N",
179
217
  "PLURNK_PROVIDERS_DRY_MULTIPLIER",
180
218
  "PLURNK_PROVIDERS_DRY_BASE",
@@ -192,10 +230,9 @@ export const PROVIDERS_KNOBS = Object.freeze([
192
230
  // single overlay.
193
231
  //
194
232
  // `knobs` (optional) lets a CONSUMER scope its OWN closed knob list with this
195
- // same parser — e.g. the service's window-partition vars (PLURNK_SERVICE_CONTEXT_WINDOW/
196
- // MAX_TURNS/...), so a 64k cloud envelope and a 12k gemma envelope
197
- // coexist per-alias without the service reimplementing the suffix/collision
198
- // rules. Default stays the providers-family list; my call sites pass nothing.
233
+ // same parser — e.g. service loop policy or prompt projection — without
234
+ // reimplementing the suffix/collision rules. Default stays the
235
+ // providers-family list; provider call sites pass nothing.
199
236
  export const scopeEnvToAlias = (env, alias, knobs = PROVIDERS_KNOBS) => {
200
237
  const folded = alias.toLowerCase();
201
238
  const out = { ...env };
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,27 +1,41 @@
1
1
  import { type ProblemDetails } from "@plurnk/plurnk-contracts";
2
- import type { ProviderAttempt } from "./types.ts";
3
- export type ProviderErrorKind = "rate_limit" | "network_failure" | "model_refused" | "invalid_response" | "unauthorized" | "quota_exceeded" | "grammar_invalid" | "resource_interrupted";
2
+ import type { ProviderAttempt, ProviderRequestAccounting, ProviderRequestCapacity } from "./types.ts";
3
+ export type ProviderErrorKind = "rate_limit" | "network_failure" | "deadline_exceeded" | "model_refused" | "invalid_response" | "unauthorized" | "quota_exceeded" | "grammar_invalid" | "capacity_exceeded" | "resource_interrupted";
4
4
  export interface ClassifiedProviderError {
5
5
  kind: ProviderErrorKind;
6
6
  message: string;
7
7
  retryable?: boolean;
8
8
  attempts?: number;
9
9
  retryExhausted?: boolean;
10
+ extensions?: Readonly<Record<string, unknown>>;
10
11
  }
12
+ export type ProviderTimeoutPhase = "attempt" | "first_content" | "stream_idle" | "operation";
13
+ export declare class ProviderTimeoutError extends Error {
14
+ readonly phase: ProviderTimeoutPhase;
15
+ readonly timeoutMs: number;
16
+ constructor(phase: ProviderTimeoutPhase, timeoutMs: number, cause?: unknown);
17
+ }
18
+ export declare const providerTimeoutOf: (error: unknown) => ProviderTimeoutError | null;
11
19
  export declare class ProviderError extends Error {
20
+ #private;
12
21
  readonly source: string;
13
22
  readonly kind: ProviderErrorKind;
14
23
  readonly problem: ProblemDetails;
15
24
  readonly attempt?: ProviderAttempt;
25
+ readonly capacity?: ProviderRequestCapacity;
16
26
  constructor(source: string, kind: ProviderErrorKind, message: string, options?: {
17
27
  status?: number | null;
18
28
  cause?: unknown;
19
29
  retryable?: boolean;
20
30
  extensions?: Readonly<Record<string, unknown>>;
21
31
  attempt?: ProviderAttempt;
32
+ accounting?: readonly ProviderRequestAccounting[];
33
+ capacity?: ProviderRequestCapacity;
22
34
  });
23
35
  get status(): number;
36
+ get accounting(): readonly ProviderRequestAccounting[];
37
+ prependAccounting(accounting: readonly ProviderRequestAccounting[]): void;
24
38
  }
25
39
  export declare const classifyProviderError: (err: unknown, detailLimit?: number) => ClassifiedProviderError;
26
- export declare const toProviderError: (err: unknown, source: string, detailLimit?: number) => ProviderError;
40
+ export declare const toProviderError: (err: unknown, source: string, detailLimit?: number, capacity?: ProviderRequestCapacity) => ProviderError;
27
41
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,iBAAiB,GACvB,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,sBAAsB,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AA4DD,qBAAa,aAAc,SAAQ,KAAK;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAEnC,YACI,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACL,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,EAAE,eAAe,CAAC;KACxB,EAmBT;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACJ;AAkBD,eAAO,MAAM,qBAAqB,QACzB,OAAO,gBACE,MAAM,KACrB,uBA0CF,CAAC;AAEF,eAAO,MAAM,eAAe,QACnB,OAAO,UACJ,MAAM,gBACA,MAAM,KACrB,aAiBF,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEtG,MAAM,MAAM,iBAAiB,GACvB,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,CAAC;AAE7F,qBAAa,oBAAqB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAW1E;CACJ;AAED,eAAO,MAAM,iBAAiB,UAAW,OAAO,KAAG,oBAAoB,GAAG,IASzE,CAAC;AAkEF,qBAAa,aAAc,SAAQ,KAAK;;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAG5C,YACI,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACL,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B,UAAU,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;QAClD,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACjC,EAqBT;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,UAAU,IAAI,SAAS,yBAAyB,EAAE,CAErD;IAID,iBAAiB,CAAC,UAAU,EAAE,SAAS,yBAAyB,EAAE,GAAG,IAAI,CAExE;CACJ;AA0BD,eAAO,MAAM,qBAAqB,QACzB,OAAO,gBACE,MAAM,KACrB,uBAuEF,CAAC;AAEF,eAAO,MAAM,eAAe,QACnB,OAAO,UACJ,MAAM,gBACA,MAAM,aACT,uBAAuB,KACnC,aAsBF,CAAC"}
package/dist/errors.js CHANGED
@@ -1,14 +1,43 @@
1
1
  import { Problems } from "@plurnk/plurnk-contracts";
2
2
  import { APICallError, RetryError } from "ai";
3
3
  import { providerSource } from "./notices.js";
4
+ export class ProviderTimeoutError extends Error {
5
+ phase;
6
+ timeoutMs;
7
+ constructor(phase, timeoutMs, cause) {
8
+ const labels = {
9
+ attempt: "Provider attempt",
10
+ first_content: "First provider content",
11
+ stream_idle: "Provider stream idle",
12
+ operation: "Provider operation",
13
+ };
14
+ super(`${labels[phase]} exceeded its ${timeoutMs} ms deadline.`, cause === undefined ? undefined : { cause });
15
+ this.name = "ProviderTimeoutError";
16
+ this.phase = phase;
17
+ this.timeoutMs = timeoutMs;
18
+ }
19
+ }
20
+ export const providerTimeoutOf = (error) => {
21
+ const seen = new Set();
22
+ let current = error;
23
+ while (typeof current === "object" && current !== null && !seen.has(current)) {
24
+ if (current instanceof ProviderTimeoutError)
25
+ return current;
26
+ seen.add(current);
27
+ current = current.cause;
28
+ }
29
+ return null;
30
+ };
4
31
  const defaultStatus = (kind) => {
5
32
  switch (kind) {
6
33
  case "unauthorized": return 401;
7
34
  case "quota_exceeded": return 402;
35
+ case "capacity_exceeded": return 413;
8
36
  case "rate_limit": return 429;
9
37
  case "model_refused":
10
38
  case "grammar_invalid": return 422;
11
39
  case "invalid_response": return 502;
40
+ case "deadline_exceeded": return 504;
12
41
  case "network_failure":
13
42
  case "resource_interrupted": return 503;
14
43
  }
@@ -18,8 +47,10 @@ const retryable = (kind) => {
18
47
  case "rate_limit":
19
48
  case "network_failure":
20
49
  return true;
50
+ case "deadline_exceeded":
21
51
  case "invalid_response":
22
52
  case "grammar_invalid":
53
+ case "capacity_exceeded":
23
54
  case "resource_interrupted":
24
55
  case "model_refused":
25
56
  case "unauthorized":
@@ -31,11 +62,13 @@ const buildProblem = (source, kind, message, status, extensions, retryableOverri
31
62
  const code = {
32
63
  rate_limit: "rate-limit",
33
64
  network_failure: "network-failure",
65
+ deadline_exceeded: "deadline-exceeded",
34
66
  model_refused: "model-refused",
35
67
  invalid_response: "invalid-response",
36
68
  unauthorized: "unauthorized",
37
69
  quota_exceeded: "quota-exceeded",
38
70
  grammar_invalid: "grammar-invalid",
71
+ capacity_exceeded: "capacity-exceeded",
39
72
  resource_interrupted: "resource-interrupted",
40
73
  };
41
74
  return Problems.create(source, code[kind], status, message, {
@@ -54,12 +87,16 @@ export class ProviderError extends Error {
54
87
  kind;
55
88
  problem;
56
89
  attempt;
90
+ capacity;
91
+ #accounting;
57
92
  constructor(source, kind, message, options = {}) {
58
93
  super(message, options.cause !== undefined ? { cause: options.cause } : undefined);
59
94
  this.name = "ProviderError";
60
95
  this.source = providerSource(source);
61
96
  this.kind = kind;
62
97
  this.attempt = options.attempt;
98
+ this.capacity = options.capacity ?? options.attempt?.capacity;
99
+ this.#accounting = [...(options.accounting ?? options.attempt?.accounting ?? [])];
63
100
  const status = options.status !== null && options.status !== undefined
64
101
  && Number.isInteger(options.status) && options.status >= 400 && options.status <= 599
65
102
  ? options.status
@@ -69,16 +106,32 @@ export class ProviderError extends Error {
69
106
  get status() {
70
107
  return this.problem.status;
71
108
  }
109
+ get accounting() {
110
+ return this.#accounting;
111
+ }
112
+ // A capacity pool adds the already-settled requests from prior backends as
113
+ // the same failure crosses that orchestration boundary.
114
+ prependAccounting(accounting) {
115
+ if (accounting.length > 0)
116
+ this.#accounting = [...accounting, ...this.#accounting];
117
+ }
72
118
  }
73
- const wireErrorType = (body) => {
119
+ const wireError = (body) => {
74
120
  try {
75
121
  const { error } = JSON.parse(body);
76
- return typeof error?.type === "string" ? error.type : null;
122
+ const record = error;
123
+ return {
124
+ type: typeof record?.type === "string" ? record.type : null,
125
+ code: typeof record?.code === "string" || typeof record?.code === "number" ? String(record.code) : null,
126
+ message: typeof record?.message === "string" ? record.message : null,
127
+ };
77
128
  }
78
129
  catch {
79
- return null;
130
+ return { type: null, code: null, message: null };
80
131
  }
81
132
  };
133
+ const CAPACITY_CODE = /^(?:context_length_exceeded|context_window_exceeded|input_too_long|prompt_too_long|request_too_large|token_limit_exceeded|max_tokens_exceeded)$/i;
134
+ const CAPACITY_MESSAGE = /(?:maximum context length|context (?:length|window).*(?:exceed|too (?:large|long)|maximum)|(?:input|prompt|request).*(?:token|length|size).*(?:exceed|too (?:large|long)|maximum))/i;
82
135
  const preview = (value, limit) => {
83
136
  const text = value instanceof Error ? value.message : String(value);
84
137
  return limit !== undefined && text.length > limit
@@ -95,22 +148,47 @@ export const classifyProviderError = (err, detailLimit) => {
95
148
  };
96
149
  }
97
150
  if (APICallError.isInstance(err)) {
151
+ const timeout = providerTimeoutOf(err);
152
+ if (timeout !== null) {
153
+ return {
154
+ kind: "network_failure",
155
+ message: timeout.message,
156
+ extensions: {
157
+ timeoutPhase: timeout.phase,
158
+ timeoutMs: timeout.timeoutMs,
159
+ },
160
+ };
161
+ }
98
162
  const status = err.statusCode ?? 0;
99
163
  const message = err.message.trim().length > 0
100
164
  ? preview(err.message, detailLimit)
101
165
  : "The provider request failed without a diagnostic message.";
102
166
  const body = err.responseBody ?? "";
167
+ const wire = wireError(body);
103
168
  if (status === 401 || status === 403)
104
169
  return { kind: "unauthorized", message };
105
170
  if (status === 402)
106
171
  return { kind: "quota_exceeded", message };
107
172
  if (status === 429)
108
- return { kind: "rate_limit", message };
173
+ return { kind: "rate_limit", message, retryable: err.isRetryable };
174
+ if (status === 408 || status === 409) {
175
+ return { kind: "network_failure", message, retryable: err.isRetryable };
176
+ }
109
177
  if (status === 0 && err.isRetryable)
110
178
  return { kind: "network_failure", message };
111
179
  if (status >= 500)
112
- return { kind: "network_failure", message };
113
- if (status === 422 && wireErrorType(body) === "grammar_invalid") {
180
+ return { kind: "network_failure", message, retryable: err.isRetryable };
181
+ if (status === 413 || ((status === 400 || status === 422)
182
+ && ((wire.code !== null && CAPACITY_CODE.test(wire.code))
183
+ || (wire.type !== null && CAPACITY_CODE.test(wire.type))
184
+ || CAPACITY_MESSAGE.test(wire.message ?? message)))) {
185
+ return {
186
+ kind: "capacity_exceeded",
187
+ message,
188
+ extensions: status === 413 ? undefined : { providerStatus: status },
189
+ };
190
+ }
191
+ if (status === 422 && wire.type === "grammar_invalid") {
114
192
  return { kind: "grammar_invalid", message };
115
193
  }
116
194
  return { kind: "invalid_response", message };
@@ -130,23 +208,28 @@ export const classifyProviderError = (err, detailLimit) => {
130
208
  message: preview((error?.message ?? String(err)) || "The provider request failed.", detailLimit),
131
209
  };
132
210
  };
133
- export const toProviderError = (err, source, detailLimit) => {
211
+ export const toProviderError = (err, source, detailLimit, capacity) => {
134
212
  if (err instanceof ProviderError)
135
213
  return err;
136
214
  const underlying = RetryError.isInstance(err) ? err.lastError : err;
137
215
  const classified = classifyProviderError(err, detailLimit);
138
216
  const { kind, message } = classified;
139
- const status = APICallError.isInstance(underlying) ? underlying.statusCode ?? null : null;
217
+ const upstreamStatus = APICallError.isInstance(underlying) ? underlying.statusCode ?? null : null;
218
+ const status = kind === "capacity_exceeded" ? 413 : upstreamStatus;
140
219
  return new ProviderError(source, kind, message, {
141
220
  status,
142
221
  cause: err,
143
222
  retryable: classified.retryable,
144
223
  extensions: {
224
+ ...(classified.extensions ?? {}),
225
+ ...(kind === "capacity_exceeded" ? { capacityStage: "upstream" } : {}),
226
+ ...(capacity === undefined ? {} : { capacity }),
145
227
  ...(classified.attempts === undefined ? {} : { attempts: classified.attempts }),
146
228
  ...(classified.retryExhausted === undefined
147
229
  ? {}
148
230
  : { retryExhausted: classified.retryExhausted }),
149
231
  },
232
+ capacity,
150
233
  });
151
234
  };
152
235
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export type { ChatMessage, FinishReason, GrammarEvidence, Provider, ProviderAssistant, ProviderAttempt, ProviderAttemptFinishReason, AiSdkProviderPlugin, ProviderOptions, ProviderResponse, ProviderEncryptedReasoningItem, ProviderUsage, PromptTokenMeasurement, TokenLogprob, TokenAlternative, AuthoritativeCharge, } from "./types.ts";
2
- export type { ProviderCost } from "@plurnk/plurnk-contracts";
1
+ export type { ChatMessage, FinishReason, GrammarEvidence, Provider, ProviderAssistant, ProviderAttempt, ProviderAttemptFinishReason, AiSdkProviderPlugin, ProviderOptions, ProviderResponse, ProviderEncryptedReasoningItem, ProviderAccounting, ProviderCost, ProviderCostNormalizer, ProviderCallKind, ProviderGenerateArgs, ProviderRequestAccounting, ProviderRequestCapacity, ProviderRequestCapacityDecision, ProviderRequestIdentity, ProviderRequestObserver, ProviderRequestSettlement, ProviderUsage, PromptTokenMeasurement, TokenLogprob, TokenAlternative, } from "./types.ts";
3
2
  export { assertPromptTokenMeasurement } from "./promptTokens.ts";
3
+ export { assessRequestCapacity, effectiveInputCapacity, effectiveOutputBudget, requestCapacityDecision } from "./capacity.ts";
4
4
  export type { ProviderAlias } from "@plurnk/plurnk-aliases";
5
5
  export { parseAliasesFromEnv, resolveActiveAlias } from "@plurnk/plurnk-aliases";
6
6
  export { instantiateProvider, loadActiveProvider, resetDiscoveryCache, } from "./ProviderRegistry.ts";
@@ -10,10 +10,11 @@ export { default as AiSdkProvider, effortFromBudget } from "./AiSdkProvider.ts";
10
10
  export type { AiSdkProviderConfig, ReasoningStyle, GrammarStyle } from "./AiSdkProvider.ts";
11
11
  export { default as Pool } from "./Pool.ts";
12
12
  export type { ProviderFetch } from "./AiSdkProvider.ts";
13
- export { parseRequiredInt, parseOptionalInt, parseRequiredFloat, parseOptionalFloat, requireEnv, reasoningFromEnv, reasoningResponseStyleFromEnv, scopeEnvToAlias, dataCaptureFromEnv, contextWindowFromEnv, effectiveContextWindow, envelopeFromEnv, resolveReserve, PROVIDERS_KNOBS } from "./env.ts";
14
- export type { Reasoning, ReasoningMode, ReasoningResponseStyle, ReserveSpec } from "./env.ts";
15
- export { normalizeUsage, calculateCostUsd, calculateCostUsdDecimal } from "./usage.ts";
16
- export { providerCostFor, providerCostUsd, resolveProviderCost, validateAuthoritativeCharge, validateProviderCost, } from "./cost.ts";
13
+ export { parseRequiredInt, parseOptionalInt, parseRequiredFloat, parseOptionalFloat, requireEnv, reasoningFromEnv, reasoningResponseStyleFromEnv, scopeEnvToAlias, dataCaptureFromEnv, contextWindowFromEnv, effectiveContextWindow, generationEnvelopeFromEnv, resolveGenerationEnvelopeFromEnv, resolveTokenBudget, PROVIDERS_KNOBS } from "./env.ts";
14
+ export type { GenerationEnvelope, Reasoning, ReasoningMode, ReasoningResponseStyle, TokenBudgetSpec } from "./env.ts";
15
+ export { normalizeUsage, calculateCostUsdDecimal, validateProviderUsage } from "./usage.ts";
16
+ export { addDecimals, estimateProviderCost, providerCostUsd, resolveProviderCost, sumProviderCostsUsd, validateChargedCost, validateDecimal, validateProviderCost, } from "./cost.ts";
17
+ export { aggregateProviderAccounting, plurnkCostNormalizer, providerCostNormalizer, validateProviderRequestAccounting, } from "./accounting.ts";
17
18
  export type { RawUsage, TokenRates } from "./usage.ts";
18
19
  export { ProviderError, classifyProviderError, toProviderError } from "./errors.ts";
19
20
  export { providerSource } from "./notices.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,8BAA8B,EAC9B,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAKjE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI5F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxS,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EACH,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EACR,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,8BAA8B,EAC9B,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAK9H,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI5F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxV,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACtH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EACH,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,GACpC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,YAAY,EACR,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { assertPromptTokenMeasurement } from "./promptTokens.js";
2
+ export { assessRequestCapacity, effectiveInputCapacity, effectiveOutputBudget, requestCapacityDecision } from "./capacity.js";
2
3
  export { parseAliasesFromEnv, resolveActiveAlias } from "@plurnk/plurnk-aliases";
3
4
  export { instantiateProvider, loadActiveProvider, resetDiscoveryCache, } from "./ProviderRegistry.js";
4
5
  // Scope-agnostic plugin discovery ({§plugin-family-kind}).
@@ -9,9 +10,10 @@ export { default as AiSdkProvider, effortFromBudget } from "./AiSdkProvider.js";
9
10
  // worker-sticky for KV-cache reuse, overflow to a healthy sibling; the blend
10
11
  // DECISION stays the consumer's, by choosing which pool to call.
11
12
  export { default as Pool } from "./Pool.js";
12
- export { parseRequiredInt, parseOptionalInt, parseRequiredFloat, parseOptionalFloat, requireEnv, reasoningFromEnv, reasoningResponseStyleFromEnv, scopeEnvToAlias, dataCaptureFromEnv, contextWindowFromEnv, effectiveContextWindow, envelopeFromEnv, resolveReserve, PROVIDERS_KNOBS } from "./env.js";
13
- export { normalizeUsage, calculateCostUsd, calculateCostUsdDecimal } from "./usage.js";
14
- export { providerCostFor, providerCostUsd, resolveProviderCost, validateAuthoritativeCharge, validateProviderCost, } from "./cost.js";
13
+ export { parseRequiredInt, parseOptionalInt, parseRequiredFloat, parseOptionalFloat, requireEnv, reasoningFromEnv, reasoningResponseStyleFromEnv, scopeEnvToAlias, dataCaptureFromEnv, contextWindowFromEnv, effectiveContextWindow, generationEnvelopeFromEnv, resolveGenerationEnvelopeFromEnv, resolveTokenBudget, PROVIDERS_KNOBS } from "./env.js";
14
+ export { normalizeUsage, calculateCostUsdDecimal, validateProviderUsage } from "./usage.js";
15
+ export { addDecimals, estimateProviderCost, providerCostUsd, resolveProviderCost, sumProviderCostsUsd, validateChargedCost, validateDecimal, validateProviderCost, } from "./cost.js";
16
+ export { aggregateProviderAccounting, plurnkCostNormalizer, providerCostNormalizer, validateProviderRequestAccounting, } from "./accounting.js";
15
17
  export { ProviderError, classifyProviderError, toProviderError } from "./errors.js";
16
18
  export { providerSource } from "./notices.js";
17
19
  export { default as Mock } from "./Mock.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAMjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,+EAA+E;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,+EAA+E;AAC/E,6EAA6E;AAC7E,iEAAiE;AACjE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAExS,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EACH,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAM9H,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,+EAA+E;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,+EAA+E;AAC/E,6EAA6E;AAC7E,iEAAiE;AACjE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAExV,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EACH,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,GACpC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}