@plurnk/plurnk-providers 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.env.defaults +4 -11
  2. package/README.md +6 -2
  3. package/SPEC.md +50 -25
  4. package/dist/AiSdkProvider.d.ts +0 -3
  5. package/dist/AiSdkProvider.d.ts.map +1 -1
  6. package/dist/AiSdkProvider.js +6 -32
  7. package/dist/AiSdkProvider.js.map +1 -1
  8. package/dist/accounting.d.ts.map +1 -1
  9. package/dist/accounting.js +39 -46
  10. package/dist/accounting.js.map +1 -1
  11. package/dist/aiSdkTransport.d.ts +5 -8
  12. package/dist/aiSdkTransport.d.ts.map +1 -1
  13. package/dist/aiSdkTransport.js +95 -177
  14. package/dist/aiSdkTransport.js.map +1 -1
  15. package/dist/catalogProvider.d.ts.map +1 -1
  16. package/dist/catalogProvider.js +0 -3
  17. package/dist/catalogProvider.js.map +1 -1
  18. package/dist/compatibleProvider.d.ts.map +1 -1
  19. package/dist/compatibleProvider.js +0 -3
  20. package/dist/compatibleProvider.js.map +1 -1
  21. package/dist/cost.d.ts.map +1 -1
  22. package/dist/cost.js +4 -5
  23. package/dist/cost.js.map +1 -1
  24. package/dist/env.d.ts.map +1 -1
  25. package/dist/env.js +0 -3
  26. package/dist/env.js.map +1 -1
  27. package/dist/errors.d.ts +2 -4
  28. package/dist/errors.d.ts.map +1 -1
  29. package/dist/errors.js +3 -32
  30. package/dist/errors.js.map +1 -1
  31. package/dist/native-tools.d.ts +5 -0
  32. package/dist/native-tools.d.ts.map +1 -0
  33. package/dist/native-tools.js +18 -0
  34. package/dist/native-tools.js.map +1 -0
  35. package/dist/ollama.d.ts.map +1 -1
  36. package/dist/ollama.js +2 -0
  37. package/dist/ollama.js.map +1 -1
  38. package/dist/providerError.d.ts +1 -1
  39. package/dist/providerError.d.ts.map +1 -1
  40. package/dist/providerError.js +1 -3
  41. package/dist/providerError.js.map +1 -1
  42. package/dist/sdkModels.d.ts.map +1 -1
  43. package/dist/sdkModels.js +11 -9
  44. package/dist/sdkModels.js.map +1 -1
  45. package/dist/types.d.ts +1 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +5 -5
  48. package/dist/RepeatedLine.d.ts +0 -9
  49. package/dist/RepeatedLine.d.ts.map +0 -1
  50. package/dist/RepeatedLine.js +0 -27
  51. package/dist/RepeatedLine.js.map +0 -1
package/.env.defaults CHANGED
@@ -99,21 +99,14 @@ PLURNK_PROVIDERS_CACHE_WRITE_POLICY=stable-system
99
99
  # Supported keys: input, output, reasoning, cacheRead, cacheWrite. This is estimation, not billing truth.
100
100
  # PLURNK_PROVIDERS_COST=input=0.22,output=0.66,reasoning=0.66,cacheRead=0.007
101
101
 
102
- # --- Connectivity (milliseconds; each deadline accepts 0 = off) ---
102
+ # --- Connectivity (milliseconds; 0 = off) ---
103
103
  # Logical generation deadline, including admission queues, physical attempts and retry delays.
104
104
  PLURNK_PROVIDERS_OPERATION_TIMEOUT=2700000
105
- # Deadline per physical generation attempt; a streamed attempt is bounded only until content flows.
105
+ # Discovery and tokenizer HTTP requests only; never a generation deadline.
106
106
  PLURNK_PROVIDERS_FETCH_TIMEOUT=600000
107
- # Wait from dispatch (after admission, before response headers) to first semantic content;
108
- # metadata/empty deltas do not count.
109
- PLURNK_PROVIDERS_FIRST_CONTENT_TIMEOUT=180000
110
- # Maximum silence between semantic content chunks after content begins.
111
- PLURNK_PROVIDERS_STREAM_IDLE_TIMEOUT=120000
112
- # A line of 16+ characters streamed this many times stops the response as a repetition; 0 = off.
113
- PLURNK_PROVIDERS_REPEATED_LINE_LIMIT=32
114
107
  # A response billed for this many more output tokens than it streamed characters (text and reasoning)
115
- # never delivered its output; it fails as output_dropped and is re-issued (a tool-call finish always
116
- # does). Reasoning billed but not streamed is exempt. 0 = off.
108
+ # never delivered its output; it fails as output_dropped. Native tool calls are retained with a
109
+ # warning, not retried for this reason. Reasoning billed but not streamed is exempt. 0 = off.
117
110
  PLURNK_PROVIDERS_DROPPED_OUTPUT_TOKENS=32
118
111
  # Retries for 429, Retry-After, or X-Should-Retry:true; 0 = none. Other failures return immediately
119
112
  # to Core's separate recovery window. Retry-After takes precedence over backoff.
package/README.md CHANGED
@@ -12,6 +12,9 @@ Ordinary provider behavior is intentionally not reimplemented here:
12
12
  - PLURNK owns aliases, generation envelopes, normalized usage and errors,
13
13
  evidence capture, first-party metadata, and local endpoint capabilities.
14
14
 
15
+ Native tool calling is explicitly disabled through each protocol's standard
16
+ controls; PLURNK operations travel as text ({§provider-native-tools-disabled}).
17
+
15
18
  See [SPEC.md](SPEC.md) for the contract, [the model reference](docs/models.md)
16
19
  for what a model is told about routes and generation, and
17
20
  [.env.defaults](.env.defaults) for every knob.
@@ -188,9 +191,10 @@ opt-in for endpoints that emit a leading `<think>` envelope, not a reasoning swi
188
191
  | Concern | Boundary |
189
192
  | --- | --- |
190
193
  | Inference concurrency | Optional per-endpoint, process-local admission; queued calls remain cancellable. The default is unrestricted ({§provider-inference-admission}). |
191
- | Attempt, first-content, idle deadlines | Provider transport; a timeout surfaces a failure, not a fabricated response. |
194
+ | Generation deadline | One whole-call allowance across queueing, requests and retries; caller cancellation still applies. No first-content or inter-chunk cutoff. |
195
+ | Discovery/tokenizer HTTP | Separate non-generation fetch bound; does not limit inference. |
192
196
  | Provider-directed waits | Bounded retries honor `Retry-After`; other recoverable failures return to Core. |
193
- | Loop recovery | Core reissues within its recovery window, then parks for a prompt or wake. |
197
+ | Loop recovery | Core reissues within its recovery window, then parks attended loops or concludes unattended loops on the failure. |
194
198
  | Cache affinity | Stable Worker identity through documented provider controls; not a cache-hit guarantee. |
195
199
  | Explicit cache writes | Separate policy on supported routes; can affect billing. |
196
200
  | Service tier | Explicit route choice that may change price and availability. |
package/SPEC.md CHANGED
@@ -167,6 +167,25 @@ message count, grammar presence, worker identity, or another incidental request
167
167
  shape. The signal never enters model-facing messages. Generic
168
168
  provider callers MAY omit it; Core supplies it for every model call.
169
169
 
170
+ §provider-native-tools-disabled Generation requests declare no native tools and
171
+ select the SDK's portable `none` tool choice, for emissions and BARE alike.
172
+ The built-in transports preserve that intent after SDK serialization:
173
+
174
+ | Protocol | No-tool wire representation |
175
+ | --- | --- |
176
+ | OpenAI-compatible Chat Completions and Responses | `tools: []`, `tool_choice: "none"` |
177
+ | Anthropic Messages | `tools: []`, `tool_choice: {"type":"none"}` |
178
+ | Gemini GenerateContent | `tools: []`, `toolConfig: {"functionCallingConfig":{"mode":"NONE"}}` |
179
+ | Bedrock Converse | No tool configuration; the protocol has no `none` choice. |
180
+ | Installed SDK provider plugins | Portable `none` intent; the plugin owns its wire projection. |
181
+
182
+ This is a text-generation contract, not provider/model tuning or prompt
183
+ teaching. Callers cannot supply tools or override the choice through request
184
+ extensions. Do not add deprecated function-call fields, dummy tools, or fields
185
+ from another protocol. The opt-out neither constrains arbitrary prose nor
186
+ proves that an endpoint honors it; unexpected native calls retain their full
187
+ evidence and follow {§provider-native-tool-calls}.
188
+
170
189
  A successful return carries the model's raw content and reasoning, normalized
171
190
  finish reason, model identity, its ordered {§provider-request-accounting}, the
172
191
  request's `ProviderRequestCapacity`, opaque evidence, optional metadata, and
@@ -175,6 +194,12 @@ accounting evidence. The provider transports and observes model
175
194
  output; it never retries, discards, or repairs an otherwise completed exchange
176
195
  because PLURNK grammar did not accept it.
177
196
 
197
+ §provider-generation-completion Stream consumption follows the provider's
198
+ completion boundary, subject to caller cancellation and configured deadlines.
199
+ Repeated content or reasoning does not interrupt a response or request another
200
+ generation. Preserve the complete response, its finish reason, and trailing
201
+ usage and charge evidence before returning it to the consumer.
202
+
178
203
  §provider-request-observer When a consumer supplies the request observer, the
179
204
  adapter opens one durable identity through it immediately before each physical
180
205
  I/O and settles that identity with the resulting
@@ -184,6 +209,15 @@ observer is a durability sink, not an alternate evidence representation; the
184
209
  same ordered records remain on the final generation result or
185
210
  error.
186
211
 
212
+ The adapter also settles {§provider-request-evidence}. A successful request
213
+ retains its normalized transport response; a failed request retains received
214
+ SDK raw chunks (or the error response body), partial content and reasoning,
215
+ available response identity/headers, usage/charge evidence, and its error and
216
+ cancellation cause. Failure capture is independent of successful raw-body
217
+ capture. These are the SDK's received values, not a claim of byte-for-byte
218
+ HTTP capture. Settlement is durable before returning the failure; a process
219
+ crash before settlement leaves a pending request, not an invented response.
220
+
187
221
  §provider-reasoning-observer When a consumer supplies `observeReasoning`, the
188
222
  provider synchronously delivers each exact, ordered, nonempty readable-reasoning
189
223
  delta as it becomes available. A transport without incremental reasoning emits
@@ -446,7 +480,7 @@ The universal groups are:
446
480
  - reasoning activation and optional explicit budget;
447
481
  - explicit reasoning response-content style;
448
482
  - decode tuning;
449
- - operation, physical-attempt, first-content, stream-idle, retry, and probe budgets;
483
+ - whole-call generation, discovery/tokenizer HTTP, retry, and probe budgets;
450
484
  - local GBNF and llama-server capability pins;
451
485
  - context-window and generation-envelope overrides;
452
486
  - provider-documented cache affinity and explicit cache-write policy;
@@ -643,16 +677,6 @@ reasoning enclosure only after preserving grammar evidence. Process-wide
643
677
  llama-server flags are fallback server configuration, not part of the PLURNK
644
678
  contract and need not be synchronized with an alias.
645
679
 
646
- §repetition-stop **A response that repeats itself is stopped.** A degenerate model can stream one line
647
- without end; content keeps arriving, so no silence deadline fires, and the call runs to its output
648
- allowance. The transport counts the complete lines of each streamed channel, text and reasoning, and
649
- when one line of 16 or more characters has appeared `PLURNK_PROVIDERS_REPEATED_LINE_LIMIT` times it stops
650
- reading: the stream is cancelled, the physical request settles with whatever usage the chunks carried,
651
- and the call fails as `repetition` (422, not retryable) carrying the partial attempt and the sentence
652
- "The response repeated one line N times and was stopped: `<line>`". The consumer reads it as an invalid
653
- emission, never as a provider failure to recover. Measured: a granite-4.2-8b run repeated one line 358
654
- times across 45,875 tokens and 9 min 42 s; a limit of 32 stops it 14.6% of the way in (#876).
655
-
656
680
  §llama-reasoning-request The allowance is cumulative across the complete response. Opening a second or
657
681
  later reasoning block does not replenish it. Template parsing, the reasoning
658
682
  sampler, normalized usage, and the returned reasoning channel MUST agree on that
@@ -772,29 +796,30 @@ unconfigured. Their grammar protection remains at {§provider-grammar-transport}
772
796
  §provider-connectivity The provider adapter owns one attempt scheduler around
773
797
  the complete generation exchange; SDK-internal retries are disabled.
774
798
  `PLURNK_PROVIDERS_RETRY_ATTEMPTS=N` permits at most `N + 1` physical requests.
775
- The layers are independent and a configured value of zero disables only that
776
- deadline:
799
+ Generation has one configurable deadline; `0` disables it. Caller cancellation
800
+ and the caller's task allowance remain authoritative. Initial silence, a pause
801
+ between chunks, and buffered output do not acquire separate deadlines.
777
802
 
778
803
  | Layer | Operator knob | Boundary | Expiry |
779
804
  | --- | --- | --- | --- |
780
805
  | Operation | `PLURNK_PROVIDERS_OPERATION_TIMEOUT` | Complete logical call, including admission queueing, every attempt and retry delay. | Final `deadline_exceeded` Problem at 504 with `timeoutPhase=operation`; not retried inside this operation. Consumer recovery is separate. Enforced as a race, not only the advisory signal, so a wedged transport that never observes the abort cannot hang the loop past the deadline (#505); a well-behaved transport unwinds within a short grace and settles its own attempt evidence first. |
781
- | Attempt | `PLURNK_PROVIDERS_FETCH_TIMEOUT` | One physical generation request. A non-streamed request is bounded through response consumption; a streamed one only until its first semantic content. After content begins, stream-idle bounds silence and the operation deadline still bounds the whole call. | Surfaced `network_failure` with `timeoutPhase=attempt`; never transport-retried (#479) — the consumer's recovery owns re-issue. |
782
- | First content | `PLURNK_PROVIDERS_FIRST_CONTENT_TIMEOUT` | Dispatch through first semantic model content ({§provider-first-content-at-dispatch}); metadata, empty deltas, and transport activity do not satisfy it. | Surfaced `network_failure` with `timeoutPhase=first_content`; never transport-retried (#479). |
783
- | Stream idle | `PLURNK_PROVIDERS_STREAM_IDLE_TIMEOUT` | Silence between semantic content chunks after content begins. | Surfaced `network_failure` with `timeoutPhase=stream_idle`; never transport-retried (#479). |
784
- | Repeated line | `PLURNK_PROVIDERS_REPEATED_LINE_LIMIT` | A streamed line of 16 or more characters repeated this many times; `0` disables. | Stopped as `repetition` ({§repetition-stop}); never transport-retried. |
785
-
786
- §provider-first-content-at-dispatch The first-content deadline is armed when the
787
- admitted attempt is dispatched, before response headers, so an endpoint that accepts
788
- the request and never answers fails at `timeoutPhase=first_content` instead of holding
789
- the attempt for the whole attempt deadline. It still begins only after admission
790
- ({§provider-inference-admission}).
806
+ | Discovery/tokenizer HTTP | `PLURNK_PROVIDERS_FETCH_TIMEOUT` | Non-generation endpoint discovery and tokenizer requests only. | Ordinary HTTP failure at the owning discovery or measurement boundary. Never interrupts generation. |
791
807
 
792
808
  Settled calls remove their deadline timers and cancellation subscriptions.
793
809
 
794
810
  Caller cancellation spans the operation and preserves the caller's reason.
811
+
812
+ §provider-cancellation-evidence Received usage/charge evidence and available
813
+ response identity survive cancellation and deadline normalization through
814
+ physical-request settlement, independently of optional raw-body capture.
815
+ This includes SDK abort events and non-Error cancellation reasons. Concurrent
816
+ requests keep independent evidence even when cancelled by the same scope.
817
+ Absent evidence remains absent; stopping a request neither invents usage nor
818
+ retries generation to obtain it. Partial output is never a completed response.
819
+
795
820
  A 2xx exchange whose body cannot be processed (a provider invalid-response)
796
821
  classifies as the non-retryable 502 on the first failure unless an explicit
797
- `x-should-retry` directive says otherwise (#479). Inner deadline failures surface on the first failure; when a
822
+ `x-should-retry` directive says otherwise (#479). When a
798
823
  directive-driven retry sequence exhausts, `attempts` and `retryExhausted`
799
824
  are added and the classification is final. Every admitted physical attempt opens
800
825
  and settles exactly one ordered {§provider-request-accounting} record, including
@@ -988,7 +1013,7 @@ alias scoping. Zero, other negative values and non-integers are invalid.
988
1013
  | Admission | FIFO among live waiters. The lease begins before the physical request observer and ends after the complete response or transport failure settles, including streamed bodies. |
989
1014
  | Cancellation | A queued abort removes that waiter and preserves the caller's reason. It opens no physical request or accounting row. In-flight cancellation signals the transport; capacity is released when that attempt unwinds. A transport still running despite abort does not authorize exceeding the limit. |
990
1015
  | Retries | Backoff holds no lease. Each retry rejoins admission as a new physical attempt. |
991
- | Deadlines | The existing operation deadline includes queueing. Attempt, first-content and stream-idle deadlines begin only after admission; queued work is not a stalled stream. |
1016
+ | Deadline | The whole-call operation deadline includes queueing, every physical attempt and retry wait. Transport adds no generation deadline. |
992
1017
  | Scope | Workers, tools, messages, waits, token measurement and endpoint discovery are not serialized by inference admission. Independent endpoints progress independently. No cross-process or machine-wide capacity guarantee is implied. |
993
1018
 
994
1019
  Admission neither changes worker lifecycle nor selects another model or endpoint.
@@ -28,9 +28,6 @@ export type AiSdkProviderConfig = {
28
28
  attributions?: (context: PluginAttributionContext) => PluginAttribution;
29
29
  fetchTimeoutMs: number;
30
30
  operationTimeoutMs: number;
31
- firstContentTimeoutMs: number;
32
- streamIdleTimeoutMs?: number;
33
- repeatedLineLimit?: number;
34
31
  droppedOutputTokens?: number;
35
32
  headers?: Record<string, string>;
36
33
  fetch?: ProviderFetch;
@@ -1 +1 @@
1
- {"version":3,"file":"AiSdkProvider.d.ts","sourceRoot":"","sources":["../src/AiSdkProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiSdkProvider.d.ts","sourceRoot":"","sources":["../src/AiSdkProvider.ts"],"names":[],"mappings":"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"}
@@ -89,9 +89,6 @@ export default class AiSdkProvider {
89
89
  #languageModel;
90
90
  #fetchTimeoutMs;
91
91
  #operationTimeoutMs;
92
- #firstContentTimeoutMs;
93
- #streamIdleTimeoutMs;
94
- #repeatedLineLimit;
95
92
  #droppedOutputTokens;
96
93
  #headers;
97
94
  #fetch;
@@ -156,8 +153,6 @@ export default class AiSdkProvider {
156
153
  for (const [name, value] of [
157
154
  ["fetchTimeoutMs", config.fetchTimeoutMs],
158
155
  ["operationTimeoutMs", config.operationTimeoutMs],
159
- ["firstContentTimeoutMs", config.firstContentTimeoutMs],
160
- ["streamIdleTimeoutMs", config.streamIdleTimeoutMs],
161
156
  ]) {
162
157
  if (value !== undefined && (!Number.isInteger(value) || value < 0 || value > MAX_TIMER_MS)) {
163
158
  throw new Error(`${config.source ?? "provider"}: ${name} must be an integer from 0 through ${MAX_TIMER_MS} milliseconds`);
@@ -165,9 +160,6 @@ export default class AiSdkProvider {
165
160
  }
166
161
  this.#fetchTimeoutMs = config.fetchTimeoutMs;
167
162
  this.#operationTimeoutMs = config.operationTimeoutMs;
168
- this.#firstContentTimeoutMs = config.firstContentTimeoutMs;
169
- this.#streamIdleTimeoutMs = config.streamIdleTimeoutMs;
170
- this.#repeatedLineLimit = config.repeatedLineLimit ?? 0;
171
163
  this.#droppedOutputTokens = config.droppedOutputTokens ?? 0;
172
164
  this.#headers = config.headers ?? {};
173
165
  this.#fetch = config.fetch ?? ((input, init) => globalThis.fetch(input, init));
@@ -529,7 +521,7 @@ export default class AiSdkProvider {
529
521
  catch (cause) {
530
522
  throw new ProviderRequestObserverError(cause);
531
523
  }
532
- const settleAccounting = async (outcome, usage, evidence, status) => {
524
+ const settleAccounting = async (outcome, usage, evidence, forensicEvidence, status) => {
533
525
  let requestAccounting;
534
526
  let normalizationFailure;
535
527
  try {
@@ -558,7 +550,7 @@ export default class AiSdkProvider {
558
550
  }
559
551
  accounting.push(requestAccounting);
560
552
  try {
561
- await settle?.(requestAccounting);
553
+ await settle?.(requestAccounting, forensicEvidence);
562
554
  }
563
555
  catch (cause) {
564
556
  throw new ProviderRequestObserverError(cause);
@@ -579,10 +571,6 @@ export default class AiSdkProvider {
579
571
  messages,
580
572
  signal: operationSignal,
581
573
  fetch: this.#fetch,
582
- fetchTimeoutMs: this.#fetchTimeoutMs,
583
- firstContentTimeoutMs: this.#firstContentTimeoutMs,
584
- streamIdleTimeoutMs: this.#streamIdleTimeoutMs,
585
- repeatedLineLimit: this.#repeatedLineLimit,
586
574
  streaming: this.#streaming,
587
575
  captureRawBody: this.#rawBody,
588
576
  ...observers,
@@ -596,10 +584,6 @@ export default class AiSdkProvider {
596
584
  systemProviderOptions: this.#systemCacheProviderOptions,
597
585
  messages,
598
586
  signal: operationSignal,
599
- fetchTimeoutMs: this.#fetchTimeoutMs,
600
- firstContentTimeoutMs: this.#firstContentTimeoutMs,
601
- streamIdleTimeoutMs: this.#streamIdleTimeoutMs,
602
- repeatedLineLimit: this.#repeatedLineLimit,
603
587
  streaming: this.#streaming,
604
588
  captureRawBody: this.#rawBody,
605
589
  ...observers,
@@ -628,13 +612,13 @@ export default class AiSdkProvider {
628
612
  if (transportFailureOutputObserved(error))
629
613
  recoveredAfterOutput = true;
630
614
  const failure = transportFailureEvidence(error);
631
- await settleAccounting("error", failure.usage, failure.chargeEvidence, failure.status);
615
+ await settleAccounting("error", failure.usage, failure.chargeEvidence, failure, failure.status);
632
616
  throw error;
633
617
  }
634
618
  if (!structuredReasoning && liveProjection !== undefined)
635
619
  observeRequestReasoning(liveProjection.finish());
636
620
  successfulReasoningStream = requestReasoningStream;
637
- await settleAccounting("response", response.usage, response.chargeEvidence);
621
+ await settleAccounting("response", response.usage, response.chargeEvidence, response);
638
622
  return response;
639
623
  };
640
624
  const executeRequest = async () => {
@@ -667,9 +651,9 @@ export default class AiSdkProvider {
667
651
  || err instanceof ProviderReasoningObserverError)
668
652
  throw err.cause;
669
653
  if (signal?.aborted)
670
- throw err;
654
+ throw signal.reason;
671
655
  if (operationTimeout?.aborted) {
672
- const timeout = new ProviderTimeoutError("operation", this.#operationTimeoutMs, err);
656
+ const timeout = new ProviderTimeoutError(this.#operationTimeoutMs, err);
673
657
  throw new ProviderError(this.#source, "deadline_exceeded", timeout.message, {
674
658
  status: 504,
675
659
  cause: timeout,
@@ -850,16 +834,6 @@ export default class AiSdkProvider {
850
834
  },
851
835
  });
852
836
  }
853
- if (raw.finishReason === "repetition") {
854
- // {§repetition-stop}: the stream was stopped at a repeated line; the partial attempt is evidence, and the
855
- // consumer reads it as an invalid emission, never as a provider failure to recover.
856
- const attempt = {
857
- assistant: { ...assistant, finishReason: raw.finishReason },
858
- ...evidence,
859
- };
860
- const { line, count } = raw.repetition;
861
- throw new ProviderError(this.#source, "repetition", `The response repeated one line ${count} times and was stopped: \`${line}\``, { attempt, accounting, extensions: { stage: "provider-response", finishReason: "repetition", repeatedLine: line, repeatedCount: count } });
862
- }
863
837
  if (raw.finishReason === "resource_interrupted") {
864
838
  const attempt = {
865
839
  assistant: { ...assistant, finishReason: raw.finishReason },
@@ -1 +1 @@
1
- {"version":3,"file":"AiSdkProvider.js","sourceRoot":"","sources":["../src/AiSdkProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiSdkProvider.js","sourceRoot":"","sources":["../src/AiSdkProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,YAAY,CAAC;AAkFpB,eAAO,MAAM,sBAAsB,eACnB,MAAM,KACnB,sBAAsB,GAAG,SAM3B,CAAC;AAEF,eAAO,MAAM,iCAAiC,UACnC,OAAO,KACf,yBAmBF,CAAC;AAoBF,eAAO,MAAM,2BAA2B,WAC5B,SAAS,yBAAyB,EAAE,KAC7C,kBA6DF,CAAC"}
1
+ {"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,YAAY,CAAC;AAmFpB,eAAO,MAAM,sBAAsB,eACnB,MAAM,KACnB,sBAAsB,GAAG,SAM3B,CAAC;AAEF,eAAO,MAAM,iCAAiC,UACnC,OAAO,KACf,yBAmBF,CAAC;AA6DF,eAAO,MAAM,2BAA2B,WAC5B,SAAS,yBAAyB,EAAE,KAC7C,kBAWF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { addDecimals, sumProviderCostsUsd, validateProviderCost, } from "./cost.js";
1
+ import { addDecimals, providerCostUsd, sumProviderCostsUsd, validateProviderCost, } from "./cost.js";
2
2
  import { validateProviderUsage } from "./usage.js";
3
3
  const recordOf = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
4
4
  ? value
@@ -107,48 +107,38 @@ export const validateProviderRequestAccounting = (value) => {
107
107
  validateProviderCost(request.cost);
108
108
  return value;
109
109
  };
110
- const sumKnown = (requests, read) => {
111
- // {§tokenomics-provider-usage} — aggregate usage sums every reported
112
- // quantity; an unreported one (a response-less failure) is skipped, never
113
- // invented as zero and never allowed to erase the reported evidence.
114
- const known = requests
115
- .map((request) => request.usage === undefined ? undefined : read(request.usage))
116
- .filter((value) => value !== undefined);
117
- if (known.length === 0)
118
- return undefined;
119
- const sum = known.reduce((total, value) => total + value, 0);
120
- if (!Number.isSafeInteger(sum)) {
121
- throw new TypeError("aggregate provider usage exceeds the safe-integer range");
122
- }
123
- return sum;
124
- };
125
- export const aggregateProviderAccounting = (values) => {
126
- const requests = values.map(validateProviderRequestAccounting);
110
+ const projectUsage = (requests, complete) => {
127
111
  if (requests.length === 0) {
128
112
  return {
129
- requests: [],
130
- usage: {
131
- inputTokens: 0,
132
- outputTokens: 0,
133
- totalTokens: 0,
134
- inputTokenDetails: {
135
- noCacheTokens: 0,
136
- cacheReadTokens: 0,
137
- cacheWriteTokens: 0,
138
- },
139
- outputTokenDetails: { textTokens: 0, reasoningTokens: 0 },
113
+ inputTokens: 0,
114
+ outputTokens: 0,
115
+ totalTokens: 0,
116
+ inputTokenDetails: {
117
+ noCacheTokens: 0,
118
+ cacheReadTokens: 0,
119
+ cacheWriteTokens: 0,
140
120
  },
141
- costUsd: "0",
121
+ outputTokenDetails: { textTokens: 0, reasoningTokens: 0 },
142
122
  };
143
123
  }
144
- const inputTokens = sumKnown(requests, (usage) => usage.inputTokens);
145
- const outputTokens = sumKnown(requests, (usage) => usage.outputTokens);
146
- const totalTokens = sumKnown(requests, (usage) => usage.totalTokens);
147
- const noCacheTokens = sumKnown(requests, (usage) => usage.inputTokenDetails?.noCacheTokens);
148
- const cacheReadTokens = sumKnown(requests, (usage) => usage.inputTokenDetails?.cacheReadTokens);
149
- const cacheWriteTokens = sumKnown(requests, (usage) => usage.inputTokenDetails?.cacheWriteTokens);
150
- const textTokens = sumKnown(requests, (usage) => usage.outputTokenDetails?.textTokens);
151
- const reasoningTokens = sumKnown(requests, (usage) => usage.outputTokenDetails?.reasoningTokens);
124
+ const sum = (read) => {
125
+ const known = requests.map(({ usage }) => usage === undefined ? undefined : read(usage))
126
+ .filter((value) => value !== undefined);
127
+ if (known.length === 0 || (complete && known.length !== requests.length))
128
+ return undefined;
129
+ const total = known.reduce((a, b) => a + b, 0);
130
+ if (!Number.isSafeInteger(total))
131
+ throw new TypeError("aggregate provider usage exceeds the safe-integer range");
132
+ return total;
133
+ };
134
+ const inputTokens = sum((usage) => usage.inputTokens);
135
+ const outputTokens = sum((usage) => usage.outputTokens);
136
+ const totalTokens = sum((usage) => usage.totalTokens);
137
+ const noCacheTokens = sum((usage) => usage.inputTokenDetails?.noCacheTokens);
138
+ const cacheReadTokens = sum((usage) => usage.inputTokenDetails?.cacheReadTokens);
139
+ const cacheWriteTokens = sum((usage) => usage.inputTokenDetails?.cacheWriteTokens);
140
+ const textTokens = sum((usage) => usage.outputTokenDetails?.textTokens);
141
+ const reasoningTokens = sum((usage) => usage.outputTokenDetails?.reasoningTokens);
152
142
  const inputTokenDetails = noCacheTokens === undefined
153
143
  && cacheReadTokens === undefined && cacheWriteTokens === undefined
154
144
  ? undefined
@@ -163,11 +153,7 @@ export const aggregateProviderAccounting = (values) => {
163
153
  ...(textTokens === undefined ? {} : { textTokens }),
164
154
  ...(reasoningTokens === undefined ? {} : { reasoningTokens }),
165
155
  };
166
- // Each physical request was validated above. Aggregate fields deliberately
167
- // sum their own known evidence independently: heterogeneous providers may
168
- // report different detail subsets, so the projection must not reinterpret
169
- // their union as one complete per-request partition.
170
- const usage = inputTokens === undefined && outputTokens === undefined && totalTokens === undefined
156
+ return inputTokens === undefined && outputTokens === undefined && totalTokens === undefined
171
157
  && inputTokenDetails === undefined && outputTokenDetails === undefined
172
158
  ? null
173
159
  : {
@@ -177,10 +163,17 @@ export const aggregateProviderAccounting = (values) => {
177
163
  ...(inputTokenDetails === undefined ? {} : { inputTokenDetails }),
178
164
  ...(outputTokenDetails === undefined ? {} : { outputTokenDetails }),
179
165
  };
166
+ };
167
+ export const aggregateProviderAccounting = (values) => {
168
+ const requests = values.map(validateProviderRequestAccounting);
169
+ const costs = requests.map(({ cost }) => cost);
170
+ const knownCosts = costs.map(providerCostUsd).filter((cost) => cost !== null);
180
171
  return {
181
- requests: [...requests],
182
- usage,
183
- costUsd: sumProviderCostsUsd(requests.map(({ cost }) => cost)),
172
+ requests,
173
+ usage: projectUsage(requests, true),
174
+ knownUsage: projectUsage(requests, false),
175
+ costUsd: sumProviderCostsUsd(costs),
176
+ knownCostUsd: requests.length === 0 ? "0" : knownCosts.length === 0 ? null : addDecimals(knownCosts),
184
177
  };
185
178
  };
186
179
  //# sourceMappingURL=accounting.js.map