@providerkit/core 0.22.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 (131) hide show
  1. package/README.md +29 -7
  2. package/dist/auth/flows.d.ts.map +1 -1
  3. package/dist/auth/flows.js +5 -5
  4. package/dist/auth/flows.js.map +1 -1
  5. package/dist/auth/index.d.ts +1 -0
  6. package/dist/auth/index.d.ts.map +1 -1
  7. package/dist/auth/index.js +1 -0
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/auth/oauth.d.ts +12 -0
  10. package/dist/auth/oauth.d.ts.map +1 -1
  11. package/dist/auth/oauth.js +19 -1
  12. package/dist/auth/oauth.js.map +1 -1
  13. package/dist/auth/token-source.d.ts +9 -3
  14. package/dist/auth/token-source.d.ts.map +1 -1
  15. package/dist/auth/token-source.js +24 -9
  16. package/dist/auth/token-source.js.map +1 -1
  17. package/dist/auth/with-token.d.ts +32 -0
  18. package/dist/auth/with-token.d.ts.map +1 -0
  19. package/dist/auth/with-token.js +88 -0
  20. package/dist/auth/with-token.js.map +1 -0
  21. package/dist/context.d.ts +39 -1
  22. package/dist/context.d.ts.map +1 -1
  23. package/dist/context.js +119 -0
  24. package/dist/context.js.map +1 -1
  25. package/dist/errors.d.ts +12 -3
  26. package/dist/errors.d.ts.map +1 -1
  27. package/dist/errors.js +44 -5
  28. package/dist/errors.js.map +1 -1
  29. package/dist/fallback.d.ts +45 -1
  30. package/dist/fallback.d.ts.map +1 -1
  31. package/dist/fallback.js +138 -75
  32. package/dist/fallback.js.map +1 -1
  33. package/dist/gate.d.ts +29 -0
  34. package/dist/gate.d.ts.map +1 -0
  35. package/dist/gate.js +96 -0
  36. package/dist/gate.js.map +1 -0
  37. package/dist/index.d.ts +3 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +3 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/key-pool.d.ts +21 -4
  42. package/dist/key-pool.d.ts.map +1 -1
  43. package/dist/key-pool.js +43 -12
  44. package/dist/key-pool.js.map +1 -1
  45. package/dist/presets.d.ts +7 -2
  46. package/dist/presets.d.ts.map +1 -1
  47. package/dist/presets.js +12 -2
  48. package/dist/presets.js.map +1 -1
  49. package/dist/providers/anthropic.d.ts +7 -0
  50. package/dist/providers/anthropic.d.ts.map +1 -1
  51. package/dist/providers/anthropic.js +83 -26
  52. package/dist/providers/anthropic.js.map +1 -1
  53. package/dist/providers/factory.d.ts +26 -0
  54. package/dist/providers/factory.d.ts.map +1 -1
  55. package/dist/providers/factory.js +41 -9
  56. package/dist/providers/factory.js.map +1 -1
  57. package/dist/providers/gemini.d.ts +6 -0
  58. package/dist/providers/gemini.d.ts.map +1 -1
  59. package/dist/providers/gemini.js +102 -27
  60. package/dist/providers/gemini.js.map +1 -1
  61. package/dist/providers/openai.d.ts +7 -0
  62. package/dist/providers/openai.d.ts.map +1 -1
  63. package/dist/providers/openai.js +66 -15
  64. package/dist/providers/openai.js.map +1 -1
  65. package/dist/providers/responses.d.ts +11 -0
  66. package/dist/providers/responses.d.ts.map +1 -1
  67. package/dist/providers/responses.js +101 -53
  68. package/dist/providers/responses.js.map +1 -1
  69. package/dist/rate-limit.d.ts +10 -0
  70. package/dist/rate-limit.d.ts.map +1 -1
  71. package/dist/rate-limit.js +7 -1
  72. package/dist/rate-limit.js.map +1 -1
  73. package/dist/registry.d.ts +105 -0
  74. package/dist/registry.d.ts.map +1 -0
  75. package/dist/registry.js +291 -0
  76. package/dist/registry.js.map +1 -0
  77. package/dist/retry.d.ts +11 -0
  78. package/dist/retry.d.ts.map +1 -1
  79. package/dist/retry.js +25 -12
  80. package/dist/retry.js.map +1 -1
  81. package/dist/tool-args.d.ts +22 -0
  82. package/dist/tool-args.d.ts.map +1 -1
  83. package/dist/tool-args.js +28 -0
  84. package/dist/tool-args.js.map +1 -1
  85. package/dist/tools.d.ts +8 -0
  86. package/dist/tools.d.ts.map +1 -1
  87. package/dist/tools.js +2 -2
  88. package/dist/tools.js.map +1 -1
  89. package/dist/transport.d.ts +34 -4
  90. package/dist/transport.d.ts.map +1 -1
  91. package/dist/transport.js +77 -16
  92. package/dist/transport.js.map +1 -1
  93. package/dist/turn.d.ts +55 -0
  94. package/dist/turn.d.ts.map +1 -0
  95. package/dist/turn.js +125 -0
  96. package/dist/turn.js.map +1 -0
  97. package/dist/types.d.ts +21 -22
  98. package/dist/types.d.ts.map +1 -1
  99. package/dist/types.js +0 -53
  100. package/dist/types.js.map +1 -1
  101. package/dist/watchdog.d.ts +2 -0
  102. package/dist/watchdog.d.ts.map +1 -1
  103. package/dist/watchdog.js +25 -6
  104. package/dist/watchdog.js.map +1 -1
  105. package/package.json +1 -1
  106. package/src/auth/flows.ts +5 -4
  107. package/src/auth/index.ts +1 -0
  108. package/src/auth/oauth.ts +23 -1
  109. package/src/auth/token-source.ts +30 -11
  110. package/src/auth/with-token.ts +100 -0
  111. package/src/context.ts +137 -2
  112. package/src/errors.ts +46 -6
  113. package/src/fallback.ts +173 -75
  114. package/src/gate.ts +152 -0
  115. package/src/index.ts +3 -0
  116. package/src/key-pool.ts +45 -13
  117. package/src/presets.ts +12 -2
  118. package/src/providers/anthropic.ts +93 -25
  119. package/src/providers/factory.ts +66 -21
  120. package/src/providers/gemini.ts +102 -28
  121. package/src/providers/openai.ts +71 -14
  122. package/src/providers/responses.ts +116 -51
  123. package/src/rate-limit.ts +31 -3
  124. package/src/registry.ts +420 -0
  125. package/src/retry.ts +41 -10
  126. package/src/tool-args.ts +44 -0
  127. package/src/tools.ts +10 -2
  128. package/src/transport.ts +97 -17
  129. package/src/turn.ts +166 -0
  130. package/src/types.ts +21 -62
  131. package/src/watchdog.ts +25 -6
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
@@ -1 +1 @@
1
- {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/auth/flows.ts"],"names":[],"mappings":"AAMA,OAAO,EAaL,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAGpB,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3F;6CACyC;IACzC,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,UAAU,GACpB,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,GAAG,MAAM,GAAG,YAAY,CAAC;AAE9E,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAyBvE;AAwDD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB5E;AA+DD;;qDAEqD;AACrD,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5E;AAuED,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,6CAA6C,CAAC;AAEnF;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU9F"}
1
+ {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/auth/flows.ts"],"names":[],"mappings":"AAMA,OAAO,EAcL,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAGpB,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3F;6CACyC;IACzC,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,UAAU,GACpB,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,GAAG,MAAM,GAAG,YAAY,CAAC;AAE9E,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAyBvE;AAwDD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB5E;AA+DD;;qDAEqD;AACrD,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5E;AAuED,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,6CAA6C,CAAC;AAEnF;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU9F"}
@@ -4,7 +4,7 @@
4
4
  // ponytail: public client ids and fixed redirect ports. The ceiling is that a
5
5
  // vendor can rotate a client id, add client attestation or refuse a port, and
6
6
  // that vendor's sign-in breaks. Its entry below is then the only thing to fix.
7
- import { accountFromToken, asRecord, authError, generatePKCE, jwtClaims, num, postToken, randomState, REFRESH_SKEW_MS, str, toCredential, webUrl, } from "./oauth.js";
7
+ import { accountFromToken, asRecord, authError, authFetch, generatePKCE, jwtClaims, num, postToken, randomState, REFRESH_SKEW_MS, str, toCredential, webUrl, } from "./oauth.js";
8
8
  import { pollDeviceToken, requestDeviceCode } from "./device.js";
9
9
  export function createAuthFlow(id, host) {
10
10
  switch (id) {
@@ -208,7 +208,7 @@ export function copilotHeaders(appName, turn) {
208
208
  };
209
209
  }
210
210
  async function mintCopilotToken(host, githubToken) {
211
- const res = await (host.fetchImpl ?? fetch)(COPILOT_TOKEN_URL, {
211
+ const res = await authFetch(host, COPILOT_TOKEN_URL, {
212
212
  headers: {
213
213
  Accept: "application/json",
214
214
  Authorization: `Bearer ${githubToken}`,
@@ -251,7 +251,7 @@ async function refreshCopilot(host, credential) {
251
251
  * lookup did, so any failure means no name. */
252
252
  async function githubLogin(host, githubToken) {
253
253
  try {
254
- const res = await (host.fetchImpl ?? fetch)(GITHUB_USER_URL, {
254
+ const res = await authFetch(host, GITHUB_USER_URL, {
255
255
  headers: { Accept: "application/json", Authorization: `Bearer ${githubToken}` },
256
256
  });
257
257
  return res.ok ? str(asRecord(await res.json()).login) : undefined;
@@ -289,7 +289,7 @@ const META_KEY_URL = "https://api.meta.ai/muse-code/key";
289
289
  /** Meta doesn't say how long a key lasts. */
290
290
  const META_KEY_LIFETIME_MS = 24 * 60 * 60 * 1000;
291
291
  async function mintMetaKey(host, identityToken) {
292
- const res = await (host.fetchImpl ?? fetch)(META_KEY_URL, {
292
+ const res = await authFetch(host, META_KEY_URL, {
293
293
  method: "POST",
294
294
  headers: {
295
295
  Accept: "application/json",
@@ -363,7 +363,7 @@ function openrouterFlow(host) {
363
363
  redirectUri: OPENROUTER.redirectUri,
364
364
  signal,
365
365
  });
366
- const res = await (host.fetchImpl ?? fetch)(OPENROUTER.keysUrl, {
366
+ const res = await authFetch(host, OPENROUTER.keysUrl, {
367
367
  method: "POST",
368
368
  headers: { "Content-Type": "application/json", Accept: "application/json" },
369
369
  body: JSON.stringify({ code, code_verifier: verifier, code_challenge_method: "S256" }),
@@ -1 +1 @@
1
- {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/auth/flows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/auth/flows.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from "./oauth.ts";
2
2
  export * from "./device.ts";
3
3
  export * from "./flows.ts";
4
4
  export * from "./token-source.ts";
5
+ export * from "./with-token.ts";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -5,4 +5,5 @@ export * from "./oauth.js";
5
5
  export * from "./device.js";
6
6
  export * from "./flows.js";
7
7
  export * from "./token-source.js";
8
+ export * from "./with-token.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -21,6 +21,8 @@ export interface AuthHost {
21
21
  }): Promise<string>;
22
22
  /** Replaces `fetch`, for tests. */
23
23
  fetchImpl?: typeof fetch;
24
+ /** How long one request to a sign-in server may take, in ms. Default 30 s. */
25
+ timeoutMs?: number;
24
26
  }
25
27
  /** The stored result of a sign-in. */
26
28
  export interface Credential {
@@ -52,6 +54,16 @@ export declare function authError(code: AuthErrorCode, message: string, opts?: {
52
54
  }): ProviderError;
53
55
  /** Refresh this long before the server's own expiry. */
54
56
  export declare const REFRESH_SKEW_MS: number;
57
+ /**
58
+ * `fetch` with a deadline, for every request in `auth/`.
59
+ *
60
+ * A sign-in server that accepts the connection and never answers would hold
61
+ * the one shared refresh forever, and every call waiting on it with it. No
62
+ * clock above this one cuts it: the watchdog only starts once the model request
63
+ * is sent. The timeout rejects with a `TimeoutError`, which is not a refusal,
64
+ * so `tokenSource` keeps the stored credential.
65
+ */
66
+ export declare function authFetch(host: AuthHost, url: string, init?: RequestInit): Promise<Response>;
55
67
  export declare const str: (value: unknown) => string | undefined;
56
68
  export declare const num: (value: unknown) => number | undefined;
57
69
  export declare const asRecord: (value: unknown) => Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,24 @@ export function authError(code, message, opts = {}) {
19
19
  }
20
20
  /** Refresh this long before the server's own expiry. */
21
21
  export const REFRESH_SKEW_MS = 5 * 60 * 1000;
22
+ /** The deadline cc-proxy puts on its own token requests. */
23
+ const AUTH_TIMEOUT_MS = 30_000;
24
+ /**
25
+ * `fetch` with a deadline, for every request in `auth/`.
26
+ *
27
+ * A sign-in server that accepts the connection and never answers would hold
28
+ * the one shared refresh forever, and every call waiting on it with it. No
29
+ * clock above this one cuts it: the watchdog only starts once the model request
30
+ * is sent. The timeout rejects with a `TimeoutError`, which is not a refusal,
31
+ * so `tokenSource` keeps the stored credential.
32
+ */
33
+ export function authFetch(host, url, init = {}) {
34
+ const deadline = AbortSignal.timeout(host.timeoutMs ?? AUTH_TIMEOUT_MS);
35
+ return (host.fetchImpl ?? fetch)(url, {
36
+ ...init,
37
+ signal: init.signal ? AbortSignal.any([init.signal, deadline]) : deadline,
38
+ });
39
+ }
22
40
  export const str = (value) => typeof value === "string" && value.length > 0 ? value : undefined;
23
41
  export const num = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
24
42
  export const asRecord = (value) => typeof value === "object" && value !== null ? Object.fromEntries(Object.entries(value)) : {};
@@ -49,7 +67,7 @@ function toBase64Url(bytes) {
49
67
  */
50
68
  export async function postToken(host, url, params, opts) {
51
69
  const json = opts.encode === "json";
52
- const res = await (host.fetchImpl ?? fetch)(url, {
70
+ const res = await authFetch(host, url, {
53
71
  method: "POST",
54
72
  headers: {
55
73
  "Content-Type": json ? "application/json" : "application/x-www-form-urlencoded",
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,17 @@ export interface TokenSourceOptions<C extends Credential = Credential> {
10
10
  }
11
11
  export interface TokenSource<C extends Credential = Credential> {
12
12
  /** A credential whose `accessToken` is good now. Throws a `ProviderError`
13
- * coded `refresh_dead` when the user must sign in again. */
14
- getToken(): Promise<C>;
13
+ * coded `refresh_dead` when the user must sign in again.
14
+ *
15
+ * Pass `rejected`, the access token a server just answered 401 to, to renew
16
+ * it even though it has not expired. A server can refuse a token early: it
17
+ * was revoked, or another client rotated it. */
18
+ getToken(opts?: {
19
+ rejected?: string;
20
+ }): Promise<C>;
15
21
  }
16
22
  /**
17
- * Refresh when the stored credential has expired, and only then.
23
+ * Refresh when the stored credential has expired or was rejected, and only then.
18
24
  *
19
25
  * - Concurrent calls share one refresh and the result is saved before use.
20
26
  * - When the server rejects the refresh, the stored credential is reloaded. If
@@ -1 +1 @@
1
- {"version":3,"file":"token-source.d.ts","sourceRoot":"","sources":["../../src/auth/token-source.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IACnE;iFAC6E;IAC7E,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gFAAgF;IAChF,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC5D;iEAC6D;IAC7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA6BhG"}
1
+ {"version":3,"file":"token-source.d.ts","sourceRoot":"","sources":["../../src/auth/token-source.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IACnE;iFAC6E;IAC7E,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gFAAgF;IAChF,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC5D;;;;;qDAKiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAuChG"}
@@ -4,7 +4,7 @@
4
4
  import { isTransportFailure, ProviderError } from "../errors.js";
5
5
  import { authError } from "./oauth.js";
6
6
  /**
7
- * Refresh when the stored credential has expired, and only then.
7
+ * Refresh when the stored credential has expired or was rejected, and only then.
8
8
  *
9
9
  * - Concurrent calls share one refresh and the result is saved before use.
10
10
  * - When the server rejects the refresh, the stored credential is reloaded. If
@@ -18,7 +18,21 @@ import { authError } from "./oauth.js";
18
18
  */
19
19
  export function tokenSource(options) {
20
20
  let inFlight;
21
- async function refreshStored(stale) {
21
+ async function loadSignedIn() {
22
+ const credential = await options.load();
23
+ if (!credential)
24
+ throw authError("refresh_dead", "Not signed in. Sign in first.");
25
+ return credential;
26
+ }
27
+ async function refreshStored(rejected) {
28
+ // Read again inside the single flight. A caller whose read raced a refresh
29
+ // that had just saved would otherwise start a second one with the refresh
30
+ // token the first already spent. Five calls refused on one token is the
31
+ // normal case for that race, and a server that rotates refresh tokens may
32
+ // take a reused one as stolen and end the whole sign-in.
33
+ const stale = await loadSignedIn();
34
+ if (isUsable(stale, rejected))
35
+ return stale;
22
36
  try {
23
37
  const fresh = await options.refresh(stale);
24
38
  await options.save(fresh);
@@ -34,20 +48,21 @@ export function tokenSource(options) {
34
48
  }
35
49
  }
36
50
  return {
37
- async getToken() {
38
- const credential = await options.load();
39
- if (!credential) {
40
- throw authError("refresh_dead", "Not signed in. Sign in first.");
41
- }
42
- if (Date.now() < credential.expiresAt)
51
+ async getToken({ rejected } = {}) {
52
+ const credential = await loadSignedIn();
53
+ if (isUsable(credential, rejected))
43
54
  return credential;
44
- inFlight ??= refreshStored(credential).finally(() => {
55
+ inFlight ??= refreshStored(rejected).finally(() => {
45
56
  inFlight = undefined;
46
57
  });
47
58
  return inFlight;
48
59
  },
49
60
  };
50
61
  }
62
+ /** Unexpired, and not the token a server just refused. */
63
+ function isUsable(credential, rejected) {
64
+ return Date.now() < credential.expiresAt && credential.accessToken !== rejected;
65
+ }
51
66
  /** A refresh the server turned down for good, as opposed to one that never
52
67
  * reached it or came back unreadable. */
53
68
  function isRejected(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"token-source.js","sourceRoot":"","sources":["../../src/auth/token-source.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AAkBxD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAuB,OAA8B;IAC9E,IAAI,QAAgC,CAAC;IAErC,KAAK,UAAU,aAAa,CAAC,KAAQ;QACnC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS;gBAAE,OAAO,MAAM,CAAC;YACrF,MAAM,SAAS,CAAC,cAAc,EAAE,0DAA0D,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS;gBAAE,OAAO,UAAU,CAAC;YACzD,QAAQ,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClD,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;0CAC0C;AAC1C,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,MAAkB,EAAE,KAAiB;IACpD,OAAO,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"token-source.js","sourceRoot":"","sources":["../../src/auth/token-source.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AAsBxD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAuB,OAA8B;IAC9E,IAAI,QAAgC,CAAC;IAErC,KAAK,UAAU,YAAY;QACzB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,MAAM,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAClF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,QAA4B;QACvD,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,yDAAyD;QACzD,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS;gBAAE,OAAO,MAAM,CAAC;YACrF,MAAM,SAAS,CAAC,cAAc,EAAE,0DAA0D,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC9B,MAAM,UAAU,GAAG,MAAM,YAAY,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;gBAAE,OAAO,UAAU,CAAC;YACtD,QAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChD,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,SAAS,QAAQ,CAAC,UAAsB,EAAE,QAA4B;IACpE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,WAAW,KAAK,QAAQ,CAAC;AAClF,CAAC;AAED;0CAC0C;AAC1C,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,OAAO,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,MAAkB,EAAE,KAAiB;IACpD,OAAO,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { PresetProviderConfig } from "../providers/factory.ts";
2
+ import type { Provider } from "../types.ts";
3
+ import type { Credential } from "./oauth.ts";
4
+ import type { TokenSource } from "./token-source.ts";
5
+ /** The credential half of `PresetProviderConfig`, so `build` can spread it in. */
6
+ export type TokenAuth = Pick<PresetProviderConfig, "apiKey" | "baseUrl" | "headers">;
7
+ /**
8
+ * Give any provider the signed-in user's token, read fresh on every call.
9
+ *
10
+ * ```ts
11
+ * const provider = withToken(token, (auth) => createPresetProvider("github-copilot", auth));
12
+ * ```
13
+ *
14
+ * `build` runs once per attempt and must do no I/O, like `withKeyPool`'s
15
+ * factory. It gets the access token as `apiKey`, the credential's own host as
16
+ * `baseUrl` (Copilot gives each plan its own) and its `ChatGPT-Account-Id`
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. 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.
22
+ *
23
+ * A 401 before any output renews the token and replays the call once: a token
24
+ * can be refused before its expiry, and without this the caller sees an auth
25
+ * failure that a fallback pool benches for an hour. A second 401 is a real one
26
+ * and surfaces. A 401 after output never replays (invariant 1).
27
+ *
28
+ * Only 401 counts. A 400 or 403 on a model call is a bad request or a plan
29
+ * that lacks the model, and a new token fixes neither.
30
+ */
31
+ export declare function withToken<C extends Credential>(source: TokenSource<C>, build: (auth: TokenAuth) => Provider): Provider;
32
+ //# sourceMappingURL=with-token.d.ts.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -0,0 +1,88 @@
1
+ // A provider that signs every call with the stored sign-in, and renews the token
2
+ // once when a server refuses it before it expired. The sibling of
3
+ // `withKeyPool`: that one rotates between keys, this one renews the one token.
4
+ //
5
+ // Type-only imports from the sign-in side, so core's root can export this
6
+ // without pulling the flows in.
7
+ import { ProviderError } from "../errors.js";
8
+ /**
9
+ * Give any provider the signed-in user's token, read fresh on every call.
10
+ *
11
+ * ```ts
12
+ * const provider = withToken(token, (auth) => createPresetProvider("github-copilot", auth));
13
+ * ```
14
+ *
15
+ * `build` runs once per attempt and must do no I/O, like `withKeyPool`'s
16
+ * factory. It gets the access token as `apiKey`, the credential's own host as
17
+ * `baseUrl` (Copilot gives each plan its own) and its `ChatGPT-Account-Id`
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. 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.
23
+ *
24
+ * A 401 before any output renews the token and replays the call once: a token
25
+ * can be refused before its expiry, and without this the caller sees an auth
26
+ * failure that a fallback pool benches for an hour. A second 401 is a real one
27
+ * and surfaces. A 401 after output never replays (invariant 1).
28
+ *
29
+ * Only 401 counts. A 400 or 403 on a model call is a bad request or a plan
30
+ * that lacks the model, and a new token fixes neither.
31
+ */
32
+ export function withToken(source, build) {
33
+ // Building does no I/O, so a throwaway instance reads `id` and `model`
34
+ // without a token.
35
+ const identity = build({ apiKey: "" });
36
+ return {
37
+ id: identity.id,
38
+ model: identity.model,
39
+ async *createStream(messages, tools, opts = {}) {
40
+ const credential = await unlessAborted(source.getToken(), opts.signal);
41
+ let emitted = false;
42
+ try {
43
+ for await (const chunk of build(authOf(credential)).createStream(messages, tools, opts)) {
44
+ emitted = true;
45
+ yield chunk;
46
+ }
47
+ return;
48
+ }
49
+ catch (error) {
50
+ if (emitted || !(error instanceof ProviderError) || error.status !== 401)
51
+ throw error;
52
+ }
53
+ const renewed = await unlessAborted(source.getToken({ rejected: credential.accessToken }), opts.signal);
54
+ yield* build(authOf(renewed)).createStream(messages, tools, opts);
55
+ },
56
+ };
57
+ }
58
+ function authOf(credential) {
59
+ return {
60
+ apiKey: credential.accessToken,
61
+ ...(credential.baseUrl ? { baseUrl: credential.baseUrl } : {}),
62
+ ...(credential.chatgptAccountId
63
+ ? { headers: { "ChatGPT-Account-Id": credential.chatgptAccountId } }
64
+ : {}),
65
+ };
66
+ }
67
+ /**
68
+ * Wait for the token, or reject with the caller's abort, whichever is first.
69
+ *
70
+ * The refresh itself is never aborted. It is shared by every caller, and once
71
+ * its POST is out the server may already have rotated the refresh token, so
72
+ * abandoning it before the save loses the only copy of the new one. And
73
+ * without the race an unanswered refresh would outlive the watchdog, which
74
+ * aborts the signal but never races a read.
75
+ */
76
+ function unlessAborted(pending, signal) {
77
+ if (!signal)
78
+ return pending;
79
+ return new Promise((resolve, reject) => {
80
+ const onAbort = () => reject(signal.reason);
81
+ if (signal.aborted)
82
+ onAbort();
83
+ else
84
+ signal.addEventListener("abort", onAbort, { once: true });
85
+ pending.then(resolve, reject).finally(() => signal.removeEventListener("abort", onAbort));
86
+ });
87
+ }
88
+ //# sourceMappingURL=with-token.js.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;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/context.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ChatMessage } from "./types.ts";
1
+ import type { ChatMessage, ToolCall } from "./types.ts";
2
2
  /**
3
3
  * What the answer needs after the prompt: an output budget, plus the tools'
4
4
  * own schemas, plus the slack no provider documents.
@@ -55,6 +55,44 @@ export declare function pickCut(messages: readonly ChatMessage[], budget: number
55
55
  * several providers require the system block to be first and singular anyway.
56
56
  */
57
57
  export declare function applyCompaction(messages: readonly ChatMessage[], cut: number, summary: string): ChatMessage[];
58
+ /**
59
+ * Make a saved, resumed or interrupted history valid to send: every call has
60
+ * exactly one result, right after it, under an id no other call uses.
61
+ *
62
+ * A span runs from an assistant message with tool calls to the next assistant
63
+ * message. Its results move to just after the calls, in call order, and the
64
+ * rest of the span (a steer the user typed while the tools ran) keeps its
65
+ * order after them. Then:
66
+ *
67
+ * - A call with no result in its span gets one under the same id, saying it was
68
+ * interrupted. `isReadOnly` picks the wording; without it every tool may
69
+ * have partly run. These calls come back as `interrupted`, under the ids
70
+ * the request carries.
71
+ * - A result whose call is not in its span becomes a user note, images kept.
72
+ * Paired against the span only, because chat and Messages both require the
73
+ * result in the turn right after its call: a looser pairing still 400s.
74
+ * - A repeated id becomes `{id}_{k}`, the smallest free k, call and result
75
+ * together. Kimi and Gemini restart their ids every reply
76
+ * (`functions.search:0`, `call_0`), and Anthropic and Responses reject the
77
+ * second use.
78
+ * - An empty id becomes `call_{message}_{call}`, never `normalizeToolId`'s
79
+ * random fallback.
80
+ * - An assistant message with no calls and only whitespace is dropped, as if
81
+ * it were never there, so a placeholder saved before the tools ran orphans
82
+ * nothing.
83
+ *
84
+ * No side effects, and the same input always gives the same bytes: a span's
85
+ * output and every id depend only on what came before, so repairing a longer
86
+ * history keeps the shorter one's bytes and the prompt cache keeps hitting.
87
+ * Repairing a repaired history changes nothing. Every adapter here runs this
88
+ * on what it sends; call it yourself to know what `interrupted` holds.
89
+ */
90
+ export declare function repairHistory(messages: readonly ChatMessage[], opts?: {
91
+ isReadOnly?: (toolName: string) => boolean;
92
+ }): {
93
+ messages: ChatMessage[];
94
+ interrupted: ToolCall[];
95
+ };
58
96
  /**
59
97
  * The context window for a model, when nothing volunteered one.
60
98
  *
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAWD;sCACsC;AACtC,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAO1D;AAiBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAE3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CASnF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BhF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,WAAW,EAAE,CAQf;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAWD;sCACsC;AACtC,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAO1D;AAiBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAE3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CASnF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BhF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,WAAW,EAAE,CAQf;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GACxD;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAAC,WAAW,EAAE,QAAQ,EAAE,CAAA;CAAE,CAsDtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD"}