@providerkit/core 0.23.0 → 0.24.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 (62) hide show
  1. package/README.md +29 -7
  2. package/dist/auth/with-token.d.ts +4 -1
  3. package/dist/auth/with-token.d.ts.map +1 -1
  4. package/dist/auth/with-token.js +4 -1
  5. package/dist/auth/with-token.js.map +1 -1
  6. package/dist/gate.d.ts +29 -0
  7. package/dist/gate.d.ts.map +1 -0
  8. package/dist/gate.js +96 -0
  9. package/dist/gate.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/key-pool.d.ts +11 -0
  15. package/dist/key-pool.d.ts.map +1 -1
  16. package/dist/key-pool.js +14 -0
  17. package/dist/key-pool.js.map +1 -1
  18. package/dist/providers/anthropic.d.ts +7 -0
  19. package/dist/providers/anthropic.d.ts.map +1 -1
  20. package/dist/providers/anthropic.js +3 -1
  21. package/dist/providers/anthropic.js.map +1 -1
  22. package/dist/providers/factory.d.ts +26 -0
  23. package/dist/providers/factory.d.ts.map +1 -1
  24. package/dist/providers/factory.js +41 -9
  25. package/dist/providers/factory.js.map +1 -1
  26. package/dist/providers/openai.d.ts +7 -0
  27. package/dist/providers/openai.d.ts.map +1 -1
  28. package/dist/providers/openai.js +3 -1
  29. package/dist/providers/openai.js.map +1 -1
  30. package/dist/providers/responses.d.ts +11 -0
  31. package/dist/providers/responses.d.ts.map +1 -1
  32. package/dist/providers/responses.js +3 -1
  33. package/dist/providers/responses.js.map +1 -1
  34. package/dist/registry.d.ts +105 -0
  35. package/dist/registry.d.ts.map +1 -0
  36. package/dist/registry.js +291 -0
  37. package/dist/registry.js.map +1 -0
  38. package/dist/tools.d.ts +8 -0
  39. package/dist/tools.d.ts.map +1 -1
  40. package/dist/tools.js +2 -2
  41. package/dist/tools.js.map +1 -1
  42. package/dist/turn.d.ts +55 -0
  43. package/dist/turn.d.ts.map +1 -0
  44. package/dist/turn.js +125 -0
  45. package/dist/turn.js.map +1 -0
  46. package/dist/types.d.ts +8 -22
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js +0 -45
  49. package/dist/types.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/auth/with-token.ts +4 -1
  52. package/src/gate.ts +152 -0
  53. package/src/index.ts +3 -0
  54. package/src/key-pool.ts +15 -0
  55. package/src/providers/anthropic.ts +10 -1
  56. package/src/providers/factory.ts +66 -21
  57. package/src/providers/openai.ts +10 -1
  58. package/src/providers/responses.ts +14 -1
  59. package/src/registry.ts +420 -0
  60. package/src/tools.ts +10 -2
  61. package/src/turn.ts +166 -0
  62. package/src/types.ts +8 -62
package/README.md CHANGED
@@ -111,12 +111,31 @@ Pass `watchdog: { idleMs: 60_000 }` to time each model separately, so a model th
111
111
  connection and then goes silent rotates too. Do not wrap the returned pool with
112
112
  `withWatchdog`: that timeout cancels the whole chain. Go refuses a call without a session
113
113
  id, so pass `sessionId` with each call (the conversation or job id). A call without one
114
- uses a random id the provider keeps for its whole life. Keep one provider alive across
115
- calls, so it remembers which models are spent.
114
+ uses a random id the provider keeps for its whole life. If you build a new provider per call
115
+ (`withKeyPool` and `withToken` do), pass `instanceSessionId` so each one sends the same id.
116
+ Keep one provider alive across calls, so it remembers which models are spent.
116
117
 
117
118
  Go also asks each client to send its own user agent, not the runtime's default. Pass
118
119
  `headers: { "user-agent": "my-app" }`, and add it to each Go entry in `fallbacks` too.
119
120
 
121
+ ### Set up providers once
122
+
123
+ ```ts
124
+ import { createRegistry } from "@providerkit/core";
125
+
126
+ const providers = createRegistry({
127
+ connections: { go: { preset: "opencode-go", apiKey } },
128
+ });
129
+
130
+ const provider = providers.get("go");
131
+ ```
132
+
133
+ Name each connection once, with its preset and one credential: an API key, several keys to
134
+ rotate, or a signed-in user's token. `get` hands back a provider that already has the watchdog,
135
+ a fallback chain when the ref names more than one model, and a limit on calls at once when you
136
+ set `maxConcurrent`. Ask for one model with `get("go/glm-5.3-flash")`, or name your own chains
137
+ across connections.
138
+
120
139
  **Full documentation lives at [providerkit.dev](https://providerkit.dev)**. It is the single
121
140
  source of truth for usage, and this README deliberately stays a front door so the two cannot
122
141
  drift.
@@ -125,11 +144,13 @@ drift.
125
144
  | ----------------------------------------------------------------------- | ------------------------------------------------ |
126
145
  | [Getting started](https://providerkit.dev/guides/getting-started/) | Install, first stream, swapping vendors |
127
146
  | [The provider seam](https://providerkit.dev/guides/providers/) | Message, chunk and tool shapes |
147
+ | [Set up providers once](https://providerkit.dev/guides/registry/) | Name each provider once, then ask by name |
128
148
  | [Errors](https://providerkit.dev/guides/errors/) | The thirteen kinds, and why status is not enough |
129
149
  | [Retries and fallback](https://providerkit.dev/guides/retries/) | Backoff, the commitment rule, backup models |
130
150
  | [Streaming and the watchdog](https://providerkit.dev/guides/streaming/) | The stream that stops sending; TTFT |
131
151
  | [Tools](https://providerkit.dev/guides/tools/) | Tool kernel, truncated-argument salvage, zod |
132
152
  | [Context and compaction](https://providerkit.dev/guides/context/) | When to compact, and where to cut |
153
+ | [Resume after a crash](https://providerkit.dev/guides/resume/) | Pick a conversation up after the process stops |
133
154
  | [Usage and cost](https://providerkit.dev/guides/usage/) | Reconciling cache tokens, cost, savings |
134
155
  | [Sign in to a subscription](https://providerkit.dev/guides/auth/) | Device code and PKCE sign-in, token refresh |
135
156
  | [Jev decisions](https://providerkit.dev/guides/jev/) | TypeSafe's decision model on four hosts |
@@ -172,11 +193,12 @@ the invariants worth not regressing, and what is left to build.
172
193
 
173
194
  ## Status
174
195
 
175
- Working and tested (416 tests): the seam, the error classifier, retry and backup-model
176
- fallback, the idle watchdog and its wrapper, structured output on all four shapes, cost math,
177
- the fetch/SSE transport, tool-argument salvage, the Anthropic, OpenAI-shape, Responses and
178
- Gemini adapters, the multi-key rotation pool, rate-limit reset windows, the tool kernel, schema
179
- clamping, and the compaction decisions.
196
+ Working and tested (1,077 tests): the seam, the error classifier, retry and backup-model
197
+ fallback, the watchdog and its wrapper, structured output on all four shapes, cost math, the
198
+ fetch/SSE transport, tool-argument salvage, the Anthropic, OpenAI-shape, Responses and Gemini
199
+ adapters, the multi-key rotation pool, rate-limit reset windows, the tool kernel, schema
200
+ clamping, the compaction decisions, history repair, `collectTurn`, the gate on calls at once,
201
+ the registry, and subscription sign-in (`@providerkit/core/auth`).
180
202
 
181
203
  That is the whole extraction, and the claim it rests on is that an adopting codebase gets
182
204
  **smaller**. Four migrations in, it has held every time. If a repo grows on adopting this, the
@@ -15,7 +15,10 @@ export type TokenAuth = Pick<PresetProviderConfig, "apiKey" | "baseUrl" | "heade
15
15
  * factory. It gets the access token as `apiKey`, the credential's own host as
16
16
  * `baseUrl` (Copilot gives each plan its own) and its `ChatGPT-Account-Id`
17
17
  * header, which the Codex backend refuses the request without. To add headers
18
- * of your own, merge them with `auth.headers` rather than replacing them.
18
+ * of your own, merge them with `auth.headers` rather than replacing them. On
19
+ * a preset that sends a session id (`chatgpt`), pass `instanceSessionId` too:
20
+ * a provider built per call mints a new id per call, and the backend's prompt
21
+ * cache misses on every one.
19
22
  *
20
23
  * A 401 before any output renews the token and replays the call once: a token
21
24
  * can be refused before its expiry, and without this the caller sees an auth
@@ -1 +1 @@
1
- {"version":3,"file":"with-token.d.ts","sourceRoot":"","sources":["../../src/auth/with-token.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAC5C,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ,GACnC,QAAQ,CA4BV"}
1
+ {"version":3,"file":"with-token.d.ts","sourceRoot":"","sources":["../../src/auth/with-token.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAC5C,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ,GACnC,QAAQ,CA4BV"}
@@ -16,7 +16,10 @@ import { ProviderError } from "../errors.js";
16
16
  * factory. It gets the access token as `apiKey`, the credential's own host as
17
17
  * `baseUrl` (Copilot gives each plan its own) and its `ChatGPT-Account-Id`
18
18
  * header, which the Codex backend refuses the request without. To add headers
19
- * of your own, merge them with `auth.headers` rather than replacing them.
19
+ * of your own, merge them with `auth.headers` rather than replacing them. On
20
+ * a preset that sends a session id (`chatgpt`), pass `instanceSessionId` too:
21
+ * a provider built per call mints a new id per call, and the backend's prompt
22
+ * cache misses on every one.
20
23
  *
21
24
  * A 401 before any output renews the token and replays the call once: a token
22
25
  * can be refused before its expiry, and without this the caller sees an auth
@@ -1 +1 @@
1
- {"version":3,"file":"with-token.js","sourceRoot":"","sources":["../../src/auth/with-token.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kEAAkE;AAClE,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,gCAAgC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,SAAS,CACvB,MAAsB,EACtB,KAAoC;IAEpC,uEAAuE;IACvE,mBAAmB;IACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvC,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,KAAK,EAAE,QAAQ,CAAC,KAAK;QAErB,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE;YAC5C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxF,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;oBAAE,MAAM,KAAK,CAAC;YACxF,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,EACrD,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,UAAsB;IACpC,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,WAAW;QAC9B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,UAAU,CAAC,gBAAgB;YAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAI,OAAmB,EAAE,MAA+B;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;;YACzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"with-token.js","sourceRoot":"","sources":["../../src/auth/with-token.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kEAAkE;AAClE,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,gCAAgC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,SAAS,CACvB,MAAsB,EACtB,KAAoC;IAEpC,uEAAuE;IACvE,mBAAmB;IACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvC,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,KAAK,EAAE,QAAQ,CAAC,KAAK;QAErB,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE;YAC5C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxF,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;oBAAE,MAAM,KAAK,CAAC;YACxF,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,EACrD,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,UAAsB;IACpC,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,WAAW;QAC9B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,UAAU,CAAC,gBAAgB;YAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAI,OAAmB,EAAE,MAA+B;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;;YACzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/gate.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ import type { Provider } from "./types.ts";
2
+ export interface Gate {
3
+ /** How many calls may hold a slot at once. */
4
+ readonly max: number;
5
+ /** How many slots are held right now. */
6
+ readonly held: number;
7
+ /** How many calls are queued for a slot. */
8
+ readonly waiting: number;
9
+ /**
10
+ * Wait for a slot, first in, first out. Resolves to its release, which is
11
+ * safe to call more than once. The signal covers the whole life of the slot:
12
+ * an abort while waiting leaves the queue and rejects with `signal.reason`,
13
+ * and an abort while held releases it.
14
+ */
15
+ acquire(signal?: AbortSignal): Promise<() => void>;
16
+ }
17
+ /** A gate with `max` slots. Keep one alive per connection, so every call on
18
+ * it shares the count. */
19
+ export declare function createGate(max: number): Gate;
20
+ /**
21
+ * Let a provider run at most `gate.max` calls at once.
22
+ *
23
+ * Put it outside the watchdog. The watchdog arms on its first read, and this
24
+ * reads it only once a slot is held, so a call queued here never spends its
25
+ * deadlines waiting. Inside it, a call that stood in line for five minutes
26
+ * would time out as a silent provider before it ever sent a byte.
27
+ */
28
+ export declare function withGate(provider: Provider, gate: Gate): Provider;
29
+ //# sourceMappingURL=gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,IAAI;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;CACpD;AAED;2BAC2B;AAC3B,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA8D5C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,CA0BjE"}
package/dist/gate.js ADDED
@@ -0,0 +1,96 @@
1
+ /** A gate with `max` slots. Keep one alive per connection, so every call on
2
+ * it shares the count. */
3
+ export function createGate(max) {
4
+ if (!Number.isInteger(max) || max < 1) {
5
+ throw new Error(`[providerkit] A gate needs a whole number of slots, 1 or more. Got ${max}.`);
6
+ }
7
+ let held = 0;
8
+ const queue = [];
9
+ function acquire(signal) {
10
+ // Rejected before it queues: a caller already gone must not take a place
11
+ // in line, or a slot, even for a moment.
12
+ if (signal?.aborted)
13
+ return Promise.reject(signal.reason);
14
+ return new Promise((resolve, reject) => {
15
+ let state = "waiting";
16
+ const release = () => {
17
+ if (state !== "held")
18
+ return;
19
+ state = "released";
20
+ signal?.removeEventListener("abort", onAbort);
21
+ // Handed straight to the next waiter, so `held` never dips and a
22
+ // newcomer arriving now finds the gate full and queues behind them.
23
+ const next = queue.shift();
24
+ if (next)
25
+ next();
26
+ else
27
+ held--;
28
+ };
29
+ const grant = () => {
30
+ state = "held";
31
+ resolve(release);
32
+ };
33
+ function onAbort() {
34
+ if (state === "held") {
35
+ release();
36
+ }
37
+ else if (state === "waiting") {
38
+ state = "released";
39
+ queue.splice(queue.indexOf(grant), 1);
40
+ reject(signal?.reason);
41
+ }
42
+ }
43
+ if (held < max) {
44
+ held++;
45
+ grant();
46
+ }
47
+ else {
48
+ queue.push(grant);
49
+ }
50
+ signal?.addEventListener("abort", onAbort, { once: true });
51
+ });
52
+ }
53
+ return {
54
+ max,
55
+ get held() {
56
+ return held;
57
+ },
58
+ get waiting() {
59
+ return queue.length;
60
+ },
61
+ acquire,
62
+ };
63
+ }
64
+ /**
65
+ * Let a provider run at most `gate.max` calls at once.
66
+ *
67
+ * Put it outside the watchdog. The watchdog arms on its first read, and this
68
+ * reads it only once a slot is held, so a call queued here never spends its
69
+ * deadlines waiting. Inside it, a call that stood in line for five minutes
70
+ * would time out as a silent provider before it ever sent a byte.
71
+ */
72
+ export function withGate(provider, gate) {
73
+ return {
74
+ ...provider,
75
+ createStream(messages, tools, opts = {}) {
76
+ // A generator, so nothing runs (the wait included) until the first read.
77
+ async function* gated() {
78
+ const release = await gate.acquire(opts.signal);
79
+ try {
80
+ // The slot can be granted and released by the same abort before this
81
+ // line runs (two calls sharing one signal). Such a call is over, and
82
+ // must not reach the wire without a slot.
83
+ opts.signal?.throwIfAborted();
84
+ yield* provider.createStream(messages, tools, opts);
85
+ }
86
+ finally {
87
+ // Covers the end, a throw and a consumer's `break`. An abort may
88
+ // have released it already, and a second call is a no-op.
89
+ release();
90
+ }
91
+ }
92
+ return gated();
93
+ },
94
+ };
95
+ }
96
+ //# sourceMappingURL=gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  export * from "./types.ts";
2
+ export * from "./turn.ts";
2
3
  export * from "./errors.ts";
3
4
  export * from "./retry.ts";
4
5
  export * from "./fallback.ts";
5
6
  export * from "./key-pool.ts";
6
7
  export * from "./watchdog.ts";
8
+ export * from "./gate.ts";
7
9
  export * from "./usage.ts";
8
10
  export * from "./transport.ts";
9
11
  export * from "./rate-limit.ts";
@@ -21,4 +23,5 @@ export * from "./providers/responses.ts";
21
23
  export * from "./providers/gemini.ts";
22
24
  export * from "./providers/zai.ts";
23
25
  export * from "./providers/factory.ts";
26
+ export * from "./registry.ts";
24
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  export * from "./types.js";
2
+ export * from "./turn.js";
2
3
  export * from "./errors.js";
3
4
  export * from "./retry.js";
4
5
  export * from "./fallback.js";
5
6
  export * from "./key-pool.js";
6
7
  export * from "./watchdog.js";
8
+ export * from "./gate.js";
7
9
  export * from "./usage.js";
8
10
  export * from "./transport.js";
9
11
  export * from "./rate-limit.js";
@@ -21,4 +23,5 @@ export * from "./providers/responses.js";
21
23
  export * from "./providers/gemini.js";
22
24
  export * from "./providers/zai.js";
23
25
  export * from "./providers/factory.js";
26
+ export * from "./registry.js";
24
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
@@ -36,6 +36,13 @@ export declare class KeyPool {
36
36
  private cursor;
37
37
  constructor(label: string, opts: KeyPoolOptions);
38
38
  get size(): number;
39
+ /** Each key's tier and when it is back (0 = serving now): free keys in
40
+ * config order, then the paid one. Never the key itself, so a status page
41
+ * can show it as is. */
42
+ status(): Array<{
43
+ tier: KeyTier;
44
+ evictedUntil: number;
45
+ }>;
39
46
  /**
40
47
  * Run `fn` with the next available key, rotating on key-specific and
41
48
  * transient failures. Everything else (a bad request, a content block) throws
@@ -61,6 +68,10 @@ export declare class KeyPool {
61
68
  * committed to one key, exactly as a retry is committed past its first chunk
62
69
  * (retry.ts, rule 2): a mid-stream 429 evicts nothing and rotates nothing,
63
70
  * because there is no way to resume a half-rendered answer on another key.
71
+ *
72
+ * The factory runs once per attempt. An adapter with a session header mints
73
+ * its id when it is built, so give the factory an `instanceSessionId`, or each
74
+ * attempt opens a new session on a gateway that pins sessions to one host.
64
75
  */
65
76
  export declare function withKeyPool(pool: KeyPool, factory: (apiKey: string) => Provider): Provider;
66
77
  //# sourceMappingURL=key-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-pool.d.ts","sourceRoot":"","sources":["../src/key-pool.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAC;AAapB,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAStC,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;mEAC+D;IAC/D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E;4BACwB;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;8EAK8E;AAC9E,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAQ1D;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,MAAM,CAAK;gBAEP,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc;IAe/C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyB5E,qEAAqE;IACrE,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,aAAa;CAKtB;AA0CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,GAAG,QAAQ,CAqE1F"}
1
+ {"version":3,"file":"key-pool.d.ts","sourceRoot":"","sources":["../src/key-pool.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAC;AAapB,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAStC,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;mEAC+D;IAC/D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E;4BACwB;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;8EAK8E;AAC9E,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAQ1D;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,MAAM,CAAK;gBAEP,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc;IAe/C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;6BAEyB;IACzB,MAAM,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAQxD;;;;;OAKG;IACG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyB5E,qEAAqE;IACrE,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,aAAa;CAKtB;AA0CD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,GAAG,QAAQ,CAqE1F"}
package/dist/key-pool.js CHANGED
@@ -65,6 +65,16 @@ export class KeyPool {
65
65
  get size() {
66
66
  return this.free.length + (this.paid ? 1 : 0);
67
67
  }
68
+ /** Each key's tier and when it is back (0 = serving now): free keys in
69
+ * config order, then the paid one. Never the key itself, so a status page
70
+ * can show it as is. */
71
+ status() {
72
+ const now = this.now();
73
+ return [...this.free, ...(this.paid ? [this.paid] : [])].map(({ tier, evictedUntil }) => ({
74
+ tier,
75
+ evictedUntil: evictedUntil > now ? evictedUntil : 0,
76
+ }));
77
+ }
68
78
  /**
69
79
  * Run `fn` with the next available key, rotating on key-specific and
70
80
  * transient failures. Everything else (a bad request, a content block) throws
@@ -171,6 +181,10 @@ function cooldownFor(err, now) {
171
181
  * committed to one key, exactly as a retry is committed past its first chunk
172
182
  * (retry.ts, rule 2): a mid-stream 429 evicts nothing and rotates nothing,
173
183
  * because there is no way to resume a half-rendered answer on another key.
184
+ *
185
+ * The factory runs once per attempt. An adapter with a session header mints
186
+ * its id when it is built, so give the factory an `instanceSessionId`, or each
187
+ * attempt opens a new session on a gateway that pins sessions to one host.
174
188
  */
175
189
  export function withKeyPool(pool, factory) {
176
190
  // The identity every key shares. Building an adapter performs no I/O — it
@@ -1 +1 @@
1
- {"version":3,"file":"key-pool.js","sourceRoot":"","sources":["../src/key-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-pool.js","sourceRoot":"","sources":["../src/key-pool.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,13 @@ export interface AnthropicConfig extends ProviderFallbackConfig {
36
36
  /** Header that carries `StreamOptions.sessionId`. When set and a call has no
37
37
  * sessionId, one stable id for this provider instance rides instead. */
38
38
  sessionHeader?: string;
39
+ /** The id `sessionHeader` carries when a call has no `sessionId`. Absent, the
40
+ * adapter mints one when it is built. Pass one when something rebuilds the
41
+ * adapter (`withKeyPool` and `withToken` build one per attempt): each build
42
+ * mints a new id, and a gateway that pins a session to one upstream host
43
+ * then treats every call as a new session, re-routes it and misses its
44
+ * prompt cache. Ignored without `sessionHeader`. */
45
+ instanceSessionId?: string;
39
46
  /** Say "no thinking" with an explicit `thinking: { type: "disabled" }` when
40
47
  * effort resolves to none, instead of omitting the field. For endpoints
41
48
  * where an absent field means the model's default, not off. Z.ai's coding
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAEV,WAAW,EAEX,MAAM,EAEN,QAAQ,EAKT,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;wCACoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;uEAEmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;wEACoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;iCAC6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;6EACyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;2CAQuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAuPD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,QAAQ,SAAc,GACrB;IACD,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAsDA;AA2BD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAoQzE"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAEV,WAAW,EAEX,MAAM,EAEN,QAAQ,EAKT,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;wCACoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;uEAEmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;wEACoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;iCAC6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;6EACyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;yDAKqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;2CAQuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAuPD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,QAAQ,SAAc,GACrB;IACD,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAsDA;AA2BD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAsQzE"}
@@ -289,7 +289,9 @@ export function toAnthropicMessages(messages, provider = "anthropic") {
289
289
  export function createAnthropicProvider(config) {
290
290
  const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
291
291
  const id = config.id ?? "anthropic";
292
- const instanceSessionId = config.sessionHeader ? crypto.randomUUID() : undefined;
292
+ const instanceSessionId = config.sessionHeader
293
+ ? (config.instanceSessionId ?? crypto.randomUUID())
294
+ : undefined;
293
295
  const provider = {
294
296
  id,
295
297
  model: config.model,
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAA+B,MAAM,gBAAgB,CAAC;AAqEtF,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AACrD,MAAM,eAAe,GAAG,YAAY,CAAC;AACrC,6EAA6E;AAC7E,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,eAAe,GAA4C;IAC/D,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;CACZ,CAAC;AAcF,MAAM,SAAS,GAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrF,4EAA4E;AAC5E,MAAM,MAAM,GAAmB,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,eAAe,GAAwC,IAAI,GAAG,CAAC;IACnE,0EAA0E;IAC1E,wEAAwE;IACxE,6EAA6E;IAC7E,0EAA0E;IAC1E,yBAAyB;IACzB,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAC5B,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAC7B,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC3B,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC7B,CAAC,iBAAiB,EAAE,SAAS,CAAC;IAC9B,CAAC,uBAAuB,EAAE,SAAS,CAAC;IACpC,wEAAwE;IACxE,4EAA4E;IAC5E,sEAAsE;IACtE,kDAAkD;IAClD,CAAC,mBAAmB,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC3D,4EAA4E;IAC5E,8EAA8E;IAC9E,wEAAwE;IACxE,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,uEAAuE;IACvE,uCAAuC;IACvC,CAAC,eAAe,EAAE,SAAS,CAAC;IAC5B,wEAAwE;IACxE,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5E,qDAAqD;IACrD,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxE,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxE,8EAA8E;IAC9E,0EAA0E;IAC1E,wEAAwE;IACxE,4CAA4C;IAC5C,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;CAC1E,CAAC,CAAC;AAEH;8EAC8E;AAC9E,MAAM,oBAAoB,GAAG,8CAA8C,CAAC;AAE5E;;;;;;;;;;;;;GAaG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,iCAAiC;IAC9E,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAC/C,CAAC;AAED;6EAC6E;AAC7E,SAAS,iBAAiB,CAAC,QAAgC;IACzD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,OAAO,EAAE,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,QAAgB,EAAE,MAAc;IACrD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe;YAClB,OAAO,MAAM,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,YAAY,CAAC;QACtB,wEAAwE;QACxE,4DAA4D;QAC5D,KAAK,YAAY,CAAC;QAClB,KAAK,+BAA+B;YAClC,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC;QAC1B;YACE,MAAM,IAAI,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,yBAAyB,MAAM,GAAG,EAAE;gBAC3F,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAQD,SAAS,qBAAqB,CAAC,MAAmC;IAChE,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC/C,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA+B,EAAE,QAAgB;IACzE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACzE,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;SACvE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,SAAS,CAAC,IAAgB;IACjC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO,CAAC,EAAE,EAAE,EAAE;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACjD,IAAI,GAAG,KAAK,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACnB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAgC,EAChC,QAAQ,GAAG,WAAW;IAKtB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACrB,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAiB,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;;YACjD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,UAAU,CAAC,MAAM,EAAE;gBACjB;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACvC,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;wBACvC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;yBACzE,CAAC,CAAC;qBACJ;iBACF;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,0EAA0E;QAC1E,qEAAqE;QACrE,yBAAyB;QACzB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAClE,CAAC;AA2BD,MAAM,UAAU,uBAAuB,CAAC,MAAuB;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,WAAW,CAAC;IACpC,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa;QAC5C,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GAAa;QACzB,EAAE;QACF,KAAK,EAAE,MAAM,CAAC,KAAK;QAEnB,KAAK,CAAC,CAAC,YAAY,CACjB,QAAuB,EACvB,KAAuB,EACvB,OAAsB,EAAE;YAExB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,kBAAkB,CAAC;YAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAC5C,yEAAyE;YACzE,8DAA8D;YAC9D,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;YAC9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAEjE,wEAAwE;YACxE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,aAAa,CACrB,EAAE,EACF,SAAS,EACT,GAAG,EAAE,0FAA0F;oBAC7F,4CAA4C,CAC/C,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAA4B;gBACvC,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;aACb,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClF,IAAI,UAAU,EAAE,MAAM;gBAAE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YACpD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YACvD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM;gBAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5E,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;YACzF,0EAA0E;YAC1E,qEAAqE;YACrE,gEAAgE;YAChE,sEAAsE;YACtE,mEAAmE;YACnE,MAAM,QAAQ,GAAG,UAAU,IAAI,MAAM,EAAE,UAAU,KAAK,KAAK,CAAC;YAC5D,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACrF,MAAM,OAAO,GACX,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,YAAY,EAAE,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC;iBACtD,CAAC,CAAC,CAAC;YACN,CAAC;YACD,MAAM,MAAM,GACV,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,QAAQ;gBACxD,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;gBACxC,CAAC,CAAC,SAAS,CAAC;YAChB,wEAAwE;YACxE,wEAAwE;YACxE,0DAA0D;YAC1D,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtF,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;YAC7F,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;YAC/B,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,yDAAyD;YACzD,yEAAyE;YACzE,2EAA2E;YAC3E,2EAA2E;YAC3E,uDAAuD;YACvD,wEAAwE;YACxE,2EAA2E;YAC3E,0EAA0E;YAC1E,oEAAoE;YACpE,+DAA+D;YAC/D,MAAM,SAAS,GACb,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,IAAI,MAAM,EAAE,CAAC;gBACX,wEAAwE;gBACxE,kDAAkD;gBAClD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;wBAAE,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;oBACxE,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe;wBAAE,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;oBAClF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;wBAAE,OAAO,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBACvE,CAAC;qBAAM,IAAI,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;oBACxC,OAAO,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,CAAC;gBACrC,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,CAAC;gBAC3D,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACjC,OAAO,OAAO,CAAC,WAAW,CAAC;oBAC3B,OAAO,OAAO,CAAC,KAAK,CAAC;gBACvB,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC9E,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC9D,8DAA8D;gBAC9D,OAAO,OAAO,CAAC,WAAW,CAAC;gBAC3B,OAAO,OAAO,CAAC,KAAK,CAAC;YACvB,CAAC;iBAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC/B,qEAAqE;gBACrE,oEAAoE;gBACpE,mEAAmE;gBACnE,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC1C,CAAC;YAED,mEAAmE;YACnE,yEAAyE;YACzE,yEAAyE;YACzE,qEAAqE;YACrE,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,QAAQ,GAA4B,IAAI,CAAC;YAC7C,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;YACpB,mEAAmE;YACnE,2DAA2D;YAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,UAAU,GAAG,GAAkB,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,WAAW,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB;oBACpE,iBAAiB;oBACjB,gBAAgB;oBAChB,YAAY;iBACb;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,SAAS,CAAC;gBACjC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;gBACpC,OAAO,EAAE;oBACP,mBAAmB,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;oBACtD,GAAG,CAAC,MAAM,CAAC,MAAM;wBACf,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE;wBAC9C,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;oBAC7C,GAAG,CAAC,MAAM,CAAC,aAAa;wBACtB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,iBAAiB,EAAE;wBACjE,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,MAAM,CAAC,OAAO;iBAClB;gBACD,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,EAAE;gBACZ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,sEAAsE;gBACtE,4DAA4D;gBAC5D,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO;aACxB,CAAC,EAAE,CAAC;gBACH,MAAM,KAAK,GAAG,UAAU,CAAiB,IAAI,EAAE,EAAE,CAAC,CAAC;gBAEnD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,uEAAuE;oBACvE,uEAAuE;oBACvE,uEAAuE;oBACvE,mEAAmE;oBACnE,KAAK,OAAO;wBACV,MAAM,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBAErC,KAAK,eAAe,CAAC,CAAC,CAAC;wBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;wBACnC,iBAAiB,GAAG,KAAK,EAAE,uBAAuB,IAAI,CAAC,CAAC;wBACxD,gBAAgB,GAAG,KAAK,EAAE,2BAA2B,IAAI,CAAC,CAAC;wBAC3D,gBAAgB,GAAG,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;wBAC5C,MAAM;oBACR,CAAC;oBAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;wBAC3B,UAAU,IAAI,CAAC,CAAC;wBAChB,IAAI,KAAK,CAAC,aAAa,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC7C,QAAQ,GAAG;gCACT,KAAK,EAAE,UAAU;gCACjB,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE;gCAChC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;6BACrC,CAAC;4BACF,gEAAgE;4BAChE,+BAA+B;4BAC/B,eAAe,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAChC,WAAW,GAAG,IAAI,CAAC;4BACnB,MAAM;gCACJ,IAAI,EAAE,OAAO;gCACb,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;6BAC7E,CAAC;wBACJ,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;wBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;wBAC1B,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;4BAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC/C,CAAC;6BAAM,IAAI,KAAK,EAAE,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BAC9D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACrD,CAAC;6BAAM,IAAI,KAAK,EAAE,IAAI,KAAK,kBAAkB,IAAI,QAAQ,EAAE,CAAC;4BAC1D,MAAM;gCACJ,IAAI,EAAE,OAAO;gCACb,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;6BAC5E,CAAC;wBACJ,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,KAAK,oBAAoB;wBACvB,QAAQ,GAAG,IAAI,CAAC;wBAChB,MAAM;oBAER,KAAK,eAAe,CAAC,CAAC,CAAC;wBACrB,sEAAsE;wBACtE,kEAAkE;wBAClE,yEAAyE;wBACzE,gBAAgB,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,IAAI,gBAAgB,CAAC;wBACjE,iBAAiB,GAAG,KAAK,CAAC,KAAK,EAAE,uBAAuB,IAAI,iBAAiB,CAAC;wBAC9E,gBAAgB,GAAG,KAAK,CAAC,KAAK,EAAE,2BAA2B,IAAI,gBAAgB,CAAC;wBAChF,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,IAAI,YAAY,CAAC;wBAC1D,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;4BAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;4BAC1D,OAAO,GAAG,IAAI,CAAC;4BACf,uDAAuD;4BACvD,+DAA+D;4BAC/D,gEAAgE;4BAChE,YAAY;4BACZ,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;4BAC9E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;wBACzC,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,iEAAiE;oBACjE,qEAAqE;oBACrE,+DAA+D;oBAC/D,sCAAsC;oBACtC,KAAK,cAAc;wBACjB,MAAM,UAAU,EAAE,CAAC;wBACnB,OAAO;gBACX,CAAC;YACH,CAAC;YACD,0EAA0E;YAC1E,yEAAyE;YACzE,aAAa;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,UAAU,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;IACF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -21,6 +21,17 @@ export interface PresetProviderConfig extends ProviderFallbackConfig {
21
21
  /** Per-request headers (request ids, `ChatGPT-Account-Id`) on top of the
22
22
  * preset's static protocol headers. */
23
23
  headers?: Record<string, string>;
24
+ /**
25
+ * The session id for a call without `StreamOptions.sessionId`, on a preset
26
+ * that sends one (`opencode-go`, `chatgpt`). Absent, the provider mints its
27
+ * own when it is built. Pass one when you build the provider per attempt
28
+ * (`withKeyPool`, `withToken`): each build would mint a new id, and a gateway
29
+ * that pins a session to one upstream host then treats every call as a new
30
+ * session, re-routes it and misses its prompt cache. Every model in a chain
31
+ * sends the same one. A preset without a session header has nowhere to put
32
+ * it and ignores it.
33
+ */
34
+ instanceSessionId?: string;
24
35
  /**
25
36
  * App attribution for OpenRouter's rankings. The site URL rides as
26
37
  * `HTTP-Referer`, the app name as `X-Title`. Public, not secret. Sent on
@@ -43,5 +54,20 @@ export interface PresetProviderConfig extends ProviderFallbackConfig {
43
54
  serviceTier?: ServiceTier;
44
55
  fetchImpl?: typeof fetch;
45
56
  }
57
+ /** What one adapter for one model takes: a `PresetProviderConfig` without the
58
+ * chain (`models`) and without the layers that go around an adapter. */
59
+ export type PresetAdapterConfig = Omit<PresetProviderConfig, "models" | keyof ProviderFallbackConfig>;
46
60
  export declare function createPresetProvider(id: ProviderPresetId, config: PresetProviderConfig): Provider;
61
+ /**
62
+ * The bare adapter for one preset and one model: the wire that serves the
63
+ * model, its auth style and the preset's quirks, and nothing around them. No
64
+ * fallbacks, no watchdog, no `models` chain. A registry builds one per
65
+ * (connection, model) and puts those layers around all of them once; calling
66
+ * `createPresetProvider` per model would nest a second pool and a second
67
+ * watchdog inside its own.
68
+ *
69
+ * The adapter's `id` is the preset id, because the OpenAI shape reads its
70
+ * effort dialect from it (`opencode-go`, `openrouter`, `deepseek`).
71
+ */
72
+ export declare function presetAdapter(id: ProviderPresetId, config: PresetAdapterConfig): Provider;
47
73
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAiBA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE;6EACyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;8EAE0E;IAC1E,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;qEACiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;4CACwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;uDAGmD;IACnD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;oFACgF;IAChF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAuHjG"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAiBA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE;6EACyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;8EAE0E;IAC1E,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;qEACiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;4CACwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;uDAGmD;IACnD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;oFACgF;IAChF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED;yEACyE;AACzE,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,oBAAoB,EACpB,QAAQ,GAAG,MAAM,sBAAsB,CACxC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAmBjG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,GAAG,QAAQ,CAuGzF"}