@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
@@ -1,9 +1,9 @@
1
1
  import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
2
2
  import { APICallError, generateText, streamText } from "ai";
3
- import { prepareRetries } from "ai/internal";
4
3
  import { z } from "zod/v4";
5
4
  import { normalizeUsage } from "./usage.js";
6
5
  import { emitWarningOnce } from "./warnings.js";
6
+ import { ProviderTimeoutError, providerTimeoutOf } from "./errors.js";
7
7
  const errorSchema = z.object({
8
8
  error: z.object({
9
9
  message: z.string(),
@@ -12,21 +12,27 @@ const errorSchema = z.object({
12
12
  code: z.union([z.string(), z.number()]).nullish(),
13
13
  }).passthrough(),
14
14
  }).passthrough();
15
+ const retryDirective = (status, headers) => {
16
+ const raw = headers instanceof Headers
17
+ ? headers.get("x-should-retry")
18
+ : Object.entries(headers).find(([name]) => name.toLowerCase() === "x-should-retry")?.[1];
19
+ const directive = raw?.trim().toLowerCase();
20
+ if (directive === "false")
21
+ return false;
22
+ if (directive === "true")
23
+ return true;
24
+ if (status !== undefined && status >= 520 && status <= 527)
25
+ return false;
26
+ return null;
27
+ };
15
28
  const errorStructure = {
16
29
  errorSchema,
17
30
  errorToMessage: ({ error }) => error.message,
18
31
  isRetryable(response) {
19
- const directive = response.headers.get("x-should-retry")?.trim().toLowerCase();
20
- if (directive === "false")
21
- return false;
22
- if (directive === "true")
23
- return true;
24
- if (response.status >= 520 && response.status <= 527)
25
- return false;
26
- return response.status === 408
32
+ return retryDirective(response.status, response.headers) ?? (response.status === 408
27
33
  || response.status === 409
28
34
  || response.status === 429
29
- || response.status >= 500;
35
+ || response.status >= 500);
30
36
  },
31
37
  };
32
38
  const baseUrl = (completionUrl) => {
@@ -37,23 +43,26 @@ const baseUrl = (completionUrl) => {
37
43
  url.pathname = url.pathname.slice(0, -"/chat/completions".length);
38
44
  return url.toString().replace(/\/$/, "");
39
45
  };
40
- const usageOf = (usage, reasoningText, contentText) => normalizeUsage({
46
+ const usageOf = (usage) => normalizeUsage({
41
47
  prompt_tokens: usage.inputTokens,
42
48
  completion_tokens: usage.outputTokens,
43
49
  total_tokens: usage.totalTokens,
44
- prompt_tokens_details: { cached_tokens: usage.inputTokenDetails.cacheReadTokens },
50
+ prompt_tokens_details: {
51
+ cached_tokens: usage.inputTokenDetails.cacheReadTokens,
52
+ cache_write_tokens: usage.inputTokenDetails.cacheWriteTokens,
53
+ },
45
54
  completion_tokens_details: usage.outputTokenDetails.reasoningTokens !== undefined
46
55
  ? { reasoning_tokens: usage.outputTokenDetails.reasoningTokens }
47
56
  : undefined,
48
- }, reasoningText, contentText);
49
- const wireUsageOf = (values, reasoningText, contentText) => {
57
+ });
58
+ const wireUsageOf = (values) => {
50
59
  for (let index = values.length - 1; index >= 0; index -= 1) {
51
60
  const usage = recordOf(values[index])?.usage;
52
61
  if (usage !== null && typeof usage === "object") {
53
- return normalizeUsage(usage, reasoningText, contentText);
62
+ return normalizeUsage(usage);
54
63
  }
55
64
  }
56
- return null;
65
+ return undefined;
57
66
  };
58
67
  const wireUsageEvidenceOf = (values) => {
59
68
  for (let index = values.length - 1; index >= 0; index -= 1) {
@@ -63,6 +72,14 @@ const wireUsageEvidenceOf = (values) => {
63
72
  }
64
73
  return undefined;
65
74
  };
75
+ const wireChargeEvidenceOf = (values) => {
76
+ for (let index = values.length - 1; index >= 0; index -= 1) {
77
+ const record = recordOf(values[index]);
78
+ if (record !== null && record.charge !== undefined)
79
+ return record.charge;
80
+ }
81
+ return undefined;
82
+ };
66
83
  const finishReasonOf = (reason) => {
67
84
  switch (reason?.toLowerCase()) {
68
85
  case "stop":
@@ -102,50 +119,75 @@ const metadataOf = (values) => {
102
119
  if (record === null)
103
120
  continue;
104
121
  for (const [key, item] of Object.entries(record)) {
105
- if (key !== "choices" && key !== "usage")
122
+ if (key !== "choices" && key !== "usage" && key !== "charge")
106
123
  metadata[key] = item;
107
124
  }
108
125
  }
109
126
  return metadata;
110
127
  };
111
- const isStreamIdleTimeout = (cause) => typeof cause === "object"
112
- && cause !== null
113
- && cause.name === "TimeoutError"
114
- && /chunk timeout/i.test(String(cause.message ?? ""));
115
- const executeModel = async (request) => {
116
- const timeoutSignal = AbortSignal.timeout(request.fetchTimeoutMs);
117
- const operationSignal = request.signal === undefined
118
- ? timeoutSignal
119
- : AbortSignal.any([request.signal, timeoutSignal]);
120
- const { retry } = prepareRetries({
121
- maxRetries: request.retryAttempts,
122
- abortSignal: operationSignal,
123
- });
124
- return retry(async () => {
125
- try {
126
- return await executeModelOnce({
127
- ...request,
128
- signal: operationSignal,
129
- retryAttempts: 0,
130
- });
131
- }
132
- catch (cause) {
133
- if (operationSignal.aborted)
134
- throw operationSignal.reason;
135
- if (!isStreamIdleTimeout(cause))
136
- throw cause;
137
- throw new APICallError({
138
- message: cause.message,
139
- url: "model:generation",
140
- requestBodyValues: {},
141
- cause,
142
- isRetryable: true,
143
- });
144
- }
128
+ const transportTimeout = (cause, request) => {
129
+ const owned = providerTimeoutOf(cause);
130
+ if (owned !== null)
131
+ return owned;
132
+ const seen = new Set();
133
+ let current = cause;
134
+ while (typeof current === "object" && current !== null && !seen.has(current)) {
135
+ if (current.name === "TimeoutError")
136
+ break;
137
+ seen.add(current);
138
+ current = current.cause;
139
+ }
140
+ if (typeof current !== "object" || current === null)
141
+ return null;
142
+ const message = String(current.message ?? "");
143
+ if (/first chunk timeout/i.test(message)) {
144
+ return new ProviderTimeoutError("first_content", request.firstContentTimeoutMs ?? 0, cause);
145
+ }
146
+ if (/chunk timeout/i.test(message)) {
147
+ return new ProviderTimeoutError("stream_idle", request.streamIdleTimeoutMs ?? 0, cause);
148
+ }
149
+ return new ProviderTimeoutError("attempt", request.fetchTimeoutMs, cause);
150
+ };
151
+ const streamFailureValues = new WeakMap();
152
+ const applyRetryDirective = (error) => {
153
+ if (!APICallError.isInstance(error))
154
+ return error;
155
+ const directed = retryDirective(error.statusCode, error.responseHeaders ?? {});
156
+ if (directed === null || directed === error.isRetryable)
157
+ return error;
158
+ return new APICallError({
159
+ message: error.message,
160
+ url: error.url,
161
+ requestBodyValues: error.requestBodyValues,
162
+ statusCode: error.statusCode,
163
+ responseHeaders: error.responseHeaders,
164
+ responseBody: error.responseBody,
165
+ cause: error,
166
+ isRetryable: directed,
167
+ data: error.data,
145
168
  });
146
169
  };
170
+ const executeModel = async (request) => {
171
+ try {
172
+ return await executeModelOnce(request);
173
+ }
174
+ catch (cause) {
175
+ if (request.signal?.aborted)
176
+ throw request.signal.reason;
177
+ const timeout = transportTimeout(cause, request);
178
+ if (timeout === null)
179
+ throw applyRetryDirective(cause);
180
+ throw new APICallError({
181
+ message: timeout.message,
182
+ url: "model:generation",
183
+ requestBodyValues: {},
184
+ cause: timeout,
185
+ isRetryable: true,
186
+ });
187
+ }
188
+ };
147
189
  const executeModelOnce = async (request) => {
148
- const { languageModel: model, providerOptions, temperature, topP, topK, presencePenalty, frequencyPenalty, stopSequences, seed, maxOutputTokens, reasoning, } = request;
190
+ const { languageModel: model, providerOptions, systemProviderOptions, temperature, topP, topK, presencePenalty, frequencyPenalty, stopSequences, seed, maxOutputTokens, reasoning, } = request;
149
191
  const settings = {
150
192
  ...(temperature === undefined ? {} : { temperature }),
151
193
  ...(topP === undefined ? {} : { topP }),
@@ -163,9 +205,12 @@ const executeModelOnce = async (request) => {
163
205
  if (request.messages.slice(instructionCount).some((message) => message.role === "system")) {
164
206
  throw new Error("provider messages: system instructions must precede conversational messages");
165
207
  }
166
- const instructions = request.messages.slice(0, instructionCount).map(({ content }) => ({
208
+ const instructions = request.messages.slice(0, instructionCount).map(({ content }, index) => ({
167
209
  role: "system",
168
210
  content,
211
+ ...(systemProviderOptions !== undefined && index === instructionCount - 1
212
+ ? { providerOptions: systemProviderOptions }
213
+ : {}),
169
214
  }));
170
215
  const messages = request.messages.slice(instructionCount);
171
216
  const common = {
@@ -174,12 +219,21 @@ const executeModelOnce = async (request) => {
174
219
  messages: messages.length > 0
175
220
  ? messages
176
221
  : [{ role: "user", content: "" }],
177
- maxRetries: request.retryAttempts,
222
+ // AiSdkProvider owns retries so every physical request is independently
223
+ // observed and accounted. The SDK transport executes exactly once.
224
+ maxRetries: 0,
178
225
  abortSignal: request.signal,
179
226
  headers: request.headers,
180
227
  timeout: {
181
- totalMs: request.fetchTimeoutMs,
182
- ...(request.streamIdleTimeoutMs !== undefined && request.streamIdleTimeoutMs > 0
228
+ ...(request.fetchTimeoutMs > 0 ? { totalMs: request.fetchTimeoutMs } : {}),
229
+ ...(request.streaming
230
+ && request.firstContentTimeoutMs !== undefined
231
+ && request.firstContentTimeoutMs > 0
232
+ ? { firstChunkMs: request.firstContentTimeoutMs }
233
+ : {}),
234
+ ...(request.streaming
235
+ && request.streamIdleTimeoutMs !== undefined
236
+ && request.streamIdleTimeoutMs > 0
183
237
  ? { chunkMs: request.streamIdleTimeoutMs }
184
238
  : {}),
185
239
  },
@@ -203,12 +257,14 @@ const executeModelOnce = async (request) => {
203
257
  reasoningProjected: evidence.reasoningProjected,
204
258
  finishReason: finishReasonOf(rawFinishReason),
205
259
  ...(rawFinishReason === undefined ? {} : { rawFinishReason }),
206
- usage: wireUsageOf(values, reasoningText, result.text)
207
- ?? usageOf(result.usage, reasoningText, result.text),
260
+ usage: wireUsageOf(values) ?? usageOf(result.usage),
208
261
  metadata: metadataOf(values),
209
262
  reasoningEncrypted: evidence.reasoningEncrypted,
210
263
  logprobs: evidence.logprobs,
211
264
  chargeEvidence: {
265
+ ...(wireChargeEvidenceOf(values) === undefined
266
+ ? {}
267
+ : { charge: wireChargeEvidenceOf(values) }),
212
268
  ...(accountingUsage === undefined ? {} : { usage: accountingUsage }),
213
269
  ...(result.providerMetadata === undefined
214
270
  ? {}
@@ -236,8 +292,12 @@ const executeModelOnce = async (request) => {
236
292
  if (part.type === "error")
237
293
  streamError ??= part.error;
238
294
  }
239
- if (streamError !== undefined)
295
+ if (streamError !== undefined) {
296
+ if (typeof streamError === "object" && streamError !== null) {
297
+ streamFailureValues.set(streamError, [...rawChunks, streamError]);
298
+ }
240
299
  throw streamError;
300
+ }
241
301
  const evidence = extractEvidence(rawChunks);
242
302
  const accountingUsage = wireUsageEvidenceOf(rawChunks);
243
303
  const content = await result.text;
@@ -254,12 +314,14 @@ const executeModelOnce = async (request) => {
254
314
  reasoningProjected: evidence.reasoningProjected,
255
315
  finishReason: finishReasonOf(rawFinishReason),
256
316
  ...(rawFinishReason === undefined ? {} : { rawFinishReason }),
257
- usage: wireUsageOf(rawChunks, reasoningText, content)
258
- ?? usageOf(await result.usage, reasoningText, content),
317
+ usage: wireUsageOf(rawChunks) ?? usageOf(await result.usage),
259
318
  metadata: metadataOf(rawChunks),
260
319
  reasoningEncrypted: evidence.reasoningEncrypted,
261
320
  logprobs: evidence.logprobs,
262
321
  chargeEvidence: {
322
+ ...(wireChargeEvidenceOf(rawChunks) === undefined
323
+ ? {}
324
+ : { charge: wireChargeEvidenceOf(rawChunks) }),
263
325
  ...(accountingUsage === undefined ? {} : { usage: accountingUsage }),
264
326
  ...(providerMetadata === undefined ? {} : { providerMetadata }),
265
327
  response: {
@@ -294,12 +356,48 @@ export const executeOpenAICompatible = async (request) => {
294
356
  messages: request.messages,
295
357
  signal: request.signal,
296
358
  fetchTimeoutMs: request.fetchTimeoutMs,
359
+ firstContentTimeoutMs: request.firstContentTimeoutMs,
297
360
  streamIdleTimeoutMs: request.streamIdleTimeoutMs,
298
- retryAttempts: request.retryAttempts,
299
361
  streaming: request.streaming,
300
362
  captureRawBody: request.captureRawBody,
301
363
  });
302
364
  };
365
+ const responseBodyValues = (error) => {
366
+ if (error.responseBody === undefined || error.responseBody.length === 0)
367
+ return [];
368
+ try {
369
+ return [JSON.parse(error.responseBody)];
370
+ }
371
+ catch {
372
+ return [];
373
+ }
374
+ };
375
+ export const transportFailureEvidence = (error) => {
376
+ const values = typeof error === "object" && error !== null
377
+ ? streamFailureValues.get(error) ?? (APICallError.isInstance(error) ? responseBodyValues(error) : [])
378
+ : [];
379
+ const usage = wireUsageOf(values);
380
+ const usageEvidence = wireUsageEvidenceOf(values);
381
+ const charge = wireChargeEvidenceOf(values);
382
+ const wireStatus = values
383
+ .map(recordOf)
384
+ .find((record) => Number.isInteger(record?.status))?.status;
385
+ const apiStatus = APICallError.isInstance(error) ? error.statusCode : undefined;
386
+ const status = Number.isInteger(apiStatus) && apiStatus >= 100 && apiStatus <= 599
387
+ ? apiStatus
388
+ : Number.isInteger(wireStatus) && wireStatus >= 100 && wireStatus <= 599
389
+ ? wireStatus
390
+ : undefined;
391
+ return {
392
+ ...(usage === undefined ? {} : { usage }),
393
+ chargeEvidence: {
394
+ ...(charge === undefined ? {} : { charge }),
395
+ ...(usageEvidence === undefined ? {} : { usage: usageEvidence }),
396
+ response: {},
397
+ },
398
+ ...(status === undefined ? {} : { status }),
399
+ };
400
+ };
303
401
  const extractEvidence = (values) => {
304
402
  const encrypted = new Map();
305
403
  const logprobs = [];
@@ -1 +1 @@
1
- {"version":3,"file":"aiSdkTransport.js","sourceRoot":"","sources":["../src/aiSdkTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aiSdkTransport.js","sourceRoot":"","sources":["../src/aiSdkTransport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { PromptTokenMeasurement, ProviderRequestCapacity } from "./types.ts";
2
+ export declare const effectiveOutputBudget: ({ requested, configured, maxOutputTokens, contextWindow, }: {
3
+ requested?: number;
4
+ configured: number | null;
5
+ maxOutputTokens: number | null;
6
+ contextWindow: number | null;
7
+ }) => number | null;
8
+ export declare const effectiveReasoningBudget: ({ configured, outputBudget, }: {
9
+ configured: number | null;
10
+ outputBudget: number | null;
11
+ }) => number | null;
12
+ export declare const effectiveInputCapacity: ({ contextWindow, maxInputTokens, outputBudget, }: {
13
+ contextWindow: number | null;
14
+ maxInputTokens: number | null;
15
+ outputBudget: number | null;
16
+ }) => number | null;
17
+ export declare const requestCapacityDecision: (inputCapacity: number | null, measurement: PromptTokenMeasurement) => ProviderRequestCapacity["decision"];
18
+ export declare const assessRequestCapacity: ({ contextWindow, maxInputTokens, maxOutputTokens, outputBudget, reasoningBudget, measurement, }: {
19
+ contextWindow: number | null;
20
+ maxInputTokens: number | null;
21
+ maxOutputTokens: number | null;
22
+ outputBudget: number | null;
23
+ reasoningBudget: number | null;
24
+ measurement: PromptTokenMeasurement;
25
+ }) => ProviderRequestCapacity;
26
+ //# sourceMappingURL=capacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,uBAAuB,EAC1B,MAAM,YAAY,CAAC;AAWpB,eAAO,MAAM,qBAAqB,+DAK/B;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,KAAG,MAAM,GAAG,IAWZ,CAAC;AAEF,eAAO,MAAM,wBAAwB,kCAGlC;IACC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG,MAAM,GAAG,IAWZ,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDAIhC;IACC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG,MAAM,GAAG,IAiBZ,CAAC;AAEF,eAAO,MAAM,uBAAuB,kBACjB,MAAM,GAAG,IAAI,eACf,sBAAsB,KACpC,uBAAuB,CAAC,UAAU,CAcpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oGAO/B;IACC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,sBAAsB,CAAC;CACvC,KAAG,uBAuBH,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { assertPromptTokenMeasurement } from "./promptTokens.js";
2
+ const positiveOrNull = (value, name) => {
3
+ if (value === null)
4
+ return null;
5
+ if (!Number.isSafeInteger(value) || value <= 0) {
6
+ throw new TypeError(`${name} must be a positive safe integer or null`);
7
+ }
8
+ return value;
9
+ };
10
+ export const effectiveOutputBudget = ({ requested, configured, maxOutputTokens, contextWindow, }) => {
11
+ if (requested !== undefined && (!Number.isSafeInteger(requested) || requested <= 0)) {
12
+ throw new TypeError("maxOutputTokens must be a positive safe integer");
13
+ }
14
+ const policies = [requested ?? null, configured].filter((value) => value !== null);
15
+ if (policies.length === 0)
16
+ return null;
17
+ const physical = [
18
+ positiveOrNull(maxOutputTokens, "maxOutputTokens"),
19
+ positiveOrNull(contextWindow, "contextWindow"),
20
+ ].filter((value) => value !== null);
21
+ return Math.min(...policies, ...physical);
22
+ };
23
+ export const effectiveReasoningBudget = ({ configured, outputBudget, }) => {
24
+ positiveOrNull(configured, "reasoningBudget");
25
+ positiveOrNull(outputBudget, "outputBudget");
26
+ if (configured === null)
27
+ return null;
28
+ if (outputBudget === null) {
29
+ throw new TypeError("a reasoning budget requires a resolved total output budget");
30
+ }
31
+ if (outputBudget < 2) {
32
+ throw new TypeError("maxOutputTokens must leave at least one token outside the reasoning budget");
33
+ }
34
+ return Math.min(configured, outputBudget - 1);
35
+ };
36
+ export const effectiveInputCapacity = ({ contextWindow, maxInputTokens, outputBudget, }) => {
37
+ positiveOrNull(contextWindow, "contextWindow");
38
+ positiveOrNull(maxInputTokens, "maxInputTokens");
39
+ positiveOrNull(outputBudget, "outputBudget");
40
+ const combinedCapacity = contextWindow !== null && outputBudget !== null
41
+ ? contextWindow - outputBudget
42
+ : null;
43
+ if (combinedCapacity !== null && combinedCapacity <= 0) {
44
+ throw new TypeError(`outputBudget (${outputBudget}) must leave positive input capacity inside contextWindow (${contextWindow})`);
45
+ }
46
+ const capacities = [
47
+ maxInputTokens,
48
+ combinedCapacity,
49
+ ].filter((value) => value !== null);
50
+ return capacities.length === 0 ? null : Math.min(...capacities);
51
+ };
52
+ export const requestCapacityDecision = (inputCapacity, measurement) => {
53
+ const prompt = assertPromptTokenMeasurement(measurement, "provider capacity");
54
+ // An upper bound can prove fit when it is below the limit, but exceeding
55
+ // the limit proves nothing about the unknown exact count. Estimates never
56
+ // authorize or reject; the provider remains the capacity oracle.
57
+ return inputCapacity === null
58
+ || prompt.kind === "estimate"
59
+ || prompt.kind === "unavailable"
60
+ ? "defer"
61
+ : prompt.tokens <= inputCapacity
62
+ ? "admit"
63
+ : prompt.kind === "exact"
64
+ ? "reject"
65
+ : "defer";
66
+ };
67
+ export const assessRequestCapacity = ({ contextWindow, maxInputTokens, maxOutputTokens, outputBudget, reasoningBudget, measurement, }) => {
68
+ positiveOrNull(contextWindow, "contextWindow");
69
+ positiveOrNull(maxInputTokens, "maxInputTokens");
70
+ positiveOrNull(maxOutputTokens, "maxOutputTokens");
71
+ positiveOrNull(outputBudget, "outputBudget");
72
+ positiveOrNull(reasoningBudget, "reasoningBudget");
73
+ if (reasoningBudget !== null
74
+ && (outputBudget === null || reasoningBudget >= outputBudget)) {
75
+ throw new TypeError("reasoningBudget must be a strict subset of outputBudget");
76
+ }
77
+ const prompt = assertPromptTokenMeasurement(measurement, "provider capacity");
78
+ const inputCapacity = effectiveInputCapacity({ contextWindow, maxInputTokens, outputBudget });
79
+ return {
80
+ decision: requestCapacityDecision(inputCapacity, prompt),
81
+ contextWindow,
82
+ maxInputTokens,
83
+ maxOutputTokens,
84
+ outputBudget,
85
+ reasoningBudget,
86
+ inputCapacity,
87
+ prompt,
88
+ };
89
+ };
90
+ //# sourceMappingURL=capacity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capacity.js","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,23 @@
1
1
  import { type ModelInfo } from "@plurnk/plurnk-models";
2
- import type { AuthoritativeChargeNormalizer, Provider } from "./types.ts";
2
+ import type { Provider, ProviderCostNormalizer } from "./types.ts";
3
3
  import type { LanguageModel } from "ai";
4
+ import type { AiSdkProviderOptions, CacheAffinity } from "./AiSdkProvider.ts";
4
5
  import type { PluginAttribution, PluginAttributionContext } from "@plurnk/plurnk-meta";
5
- export declare const providerFromSdkModel: ({ name, env, model, languageModel, normalizeCharge, url, headers, contextWindow, info, attributions, }: {
6
+ export declare const providerFromSdkModel: ({ name, env, model, languageModel, normalizeCost, url, headers, contextWindow, info, attributions, cacheAffinity, systemCacheProviderOptions, reasoningResponseProviderOptions, additiveReasoningProvider, }: {
6
7
  name: string;
7
8
  env: NodeJS.ProcessEnv;
8
9
  model: string;
9
10
  languageModel?: LanguageModel;
10
- normalizeCharge?: AuthoritativeChargeNormalizer;
11
+ normalizeCost?: ProviderCostNormalizer;
11
12
  url?: string;
12
13
  headers?: Readonly<Record<string, string>>;
13
14
  contextWindow: number;
14
15
  info?: ModelInfo;
15
16
  attributions?: (context: PluginAttributionContext) => PluginAttribution;
17
+ cacheAffinity?: CacheAffinity;
18
+ systemCacheProviderOptions?: AiSdkProviderOptions;
19
+ reasoningResponseProviderOptions?: AiSdkProviderOptions;
20
+ additiveReasoningProvider?: "anthropic" | "bedrock";
16
21
  }) => Provider;
17
22
  export declare const catalogProviderFromEnv: (name: string, env: NodeJS.ProcessEnv, model: string, baseUrlOverride?: string) => Provider | null;
18
23
  //# sourceMappingURL=catalogProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalogProvider.d.ts","sourceRoot":"","sources":["../src/catalogProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAGzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAoBvF,eAAO,MAAM,oBAAoB,2GAW9B;IACC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;CAC3E,KAAG,QAuEH,CAAC;AAEF,eAAO,MAAM,sBAAsB,SACzB,MAAM,OACP,MAAM,CAAC,UAAU,SACf,MAAM,oBACK,MAAM,KACzB,QAAQ,GAAG,IAgCb,CAAC"}
1
+ {"version":3,"file":"catalogProvider.d.ts","sourceRoot":"","sources":["../src/catalogProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBrF,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAmBvF,eAAO,MAAM,oBAAoB,iNAe9B;IACC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0BAA0B,CAAC,EAAE,oBAAoB,CAAC;IAClD,gCAAgC,CAAC,EAAE,oBAAoB,CAAC;IACxD,yBAAyB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACvD,KAAG,QA6EH,CAAC;AAEF,eAAO,MAAM,sBAAsB,SACzB,MAAM,OACP,MAAM,CAAC,UAAU,SACf,MAAM,oBACK,MAAM,KACzB,QAAQ,GAAG,IAoCb,CAAC"}