@namzu/sdk 17.0.0 → 18.1.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.
- package/CHANGELOG.md +123 -0
- package/dist/manager/run/persistence.d.ts +11 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +13 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/provider/fallback.d.ts +66 -0
- package/dist/provider/fallback.d.ts.map +1 -1
- package/dist/provider/fallback.js +20 -0
- package/dist/provider/fallback.js.map +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/retry.d.ts +9 -0
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +40 -3
- package/dist/provider/retry.js.map +1 -1
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +22 -2
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +40 -1
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +17 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/types/provider/interface.d.ts +34 -0
- package/dist/types/provider/interface.d.ts.map +1 -1
- package/dist/types/run/entity.d.ts +38 -0
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/step.d.ts +53 -0
- package/dist/types/run/step.d.ts.map +1 -1
- package/dist/types/run/step.js.map +1 -1
- package/package.json +1 -1
- package/src/manager/run/persistence.ts +14 -0
- package/src/provider/fallback.ts +88 -0
- package/src/provider/index.ts +5 -1
- package/src/provider/retry.ts +51 -4
- package/src/runtime/query/index.ts +26 -2
- package/src/runtime/query/iteration/index.ts +43 -1
- package/src/runtime/query/iteration/phases/context.ts +17 -0
- package/src/types/provider/interface.ts +35 -0
- package/src/types/run/entity.ts +38 -0
- package/src/types/run/step.ts +54 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,128 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 18.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d3bd080: A wrong API key is no longer reported as working
|
|
8
|
+
|
|
9
|
+
Typing a key into the picker ran a check that could not fail for two providers.
|
|
10
|
+
Measured against deliberately invalid keys, both said the key was good.
|
|
11
|
+
|
|
12
|
+
**With an OpenRouter key, any string at all passed.** A typo, the wrong
|
|
13
|
+
clipboard entry, a revoked key — all were accepted and reported as verified. The
|
|
14
|
+
check listed the model catalogue and treated a successful list as a passed
|
|
15
|
+
check, and OpenRouter's catalogue endpoint does not authenticate, so it answered
|
|
16
|
+
the same way whatever was sent. Nothing was wrong with that driver's listing; a
|
|
17
|
+
catalogue was simply never evidence about a key.
|
|
18
|
+
|
|
19
|
+
**With an Anthropic key, a real rejection was discarded.** The listing caught
|
|
20
|
+
the `401` and returned a hardcoded three-model list, which the check read as
|
|
21
|
+
success — so the truth existed, was thrown away, and was replaced by something
|
|
22
|
+
that looked like an answer.
|
|
23
|
+
|
|
24
|
+
A credential check is now a separate, declared capability. A driver that
|
|
25
|
+
declares no probe is reported as **not checked**, never as verified, so a driver
|
|
26
|
+
added in future cannot silently inherit a check it does not perform. Anthropic,
|
|
27
|
+
OpenRouter, OpenAI and Ollama declare one; OpenRouter's asks about the key
|
|
28
|
+
rather than the catalogue.
|
|
29
|
+
|
|
30
|
+
Refusal and doubt stay distinct. A `401` means the key is genuinely refused; a
|
|
31
|
+
timeout or a DNS failure means nothing was learned, and is reported that way —
|
|
32
|
+
telling someone on a broken connection to rotate a working key is a different
|
|
33
|
+
error, not a smaller one.
|
|
34
|
+
|
|
35
|
+
**Anthropic's model listing also never once ran.** The SDK method was pulled out
|
|
36
|
+
of its namespace and called bare, so it lost `this`, threw a `TypeError` on
|
|
37
|
+
every call, and was swallowed by the same catch — the hardcoded models were not
|
|
38
|
+
a fallback but the only answer the method could give. It now calls the live
|
|
39
|
+
endpoint, and falls back only when that genuinely fails.
|
|
40
|
+
|
|
41
|
+
The four driver packages are `minor` rather than `patch`: each gains a method
|
|
42
|
+
it did not have, and added functionality is a minor whatever the size of the
|
|
43
|
+
diff. Anthropic's earns it twice over, because its listing now returns the live
|
|
44
|
+
catalogue where it previously returned the same three hardcoded entries to every
|
|
45
|
+
caller - so the value every existing caller receives changes.
|
|
46
|
+
|
|
47
|
+
## 18.0.0
|
|
48
|
+
|
|
49
|
+
### Major Changes
|
|
50
|
+
|
|
51
|
+
- 52b339e: **`ProviderRetryConfig.maxRetryAfterMs` now does what it documents.** It said
|
|
52
|
+
"past this we surface the error and let the caller decide"; the code fell
|
|
53
|
+
through to the ordinary jittered backoff instead, so a provider asking for a
|
|
54
|
+
fifteen-minute wait was re-asked in half a second. The documentation was
|
|
55
|
+
correct and the code was not.
|
|
56
|
+
|
|
57
|
+
**What you see differently.** A server-directed `Retry-After` **greater than**
|
|
58
|
+
`maxRetryAfterMs` (60s by default) now surfaces the provider error instead of
|
|
59
|
+
retrying. A `Retry-After` at or under the ceiling is unchanged — still slept
|
|
60
|
+
exactly as instructed — and a failure with no `Retry-After` at all is
|
|
61
|
+
unchanged.
|
|
62
|
+
|
|
63
|
+
Nothing settles differently. The error thrown is the same one the
|
|
64
|
+
retries-exhausted path throws, carrying `retryAfterMs`, so a run that used to
|
|
65
|
+
fail after four attempts now fails after one, sooner and with the number a host
|
|
66
|
+
needs to schedule its own retry. What changes is the attempts in between: they
|
|
67
|
+
were sent to an endpoint that had already said it would not serve them, and
|
|
68
|
+
they cost the run its budget to rediscover a rate limit it had been told about
|
|
69
|
+
in advance.
|
|
70
|
+
|
|
71
|
+
**If you relied on the old behaviour** — on a provider whose `Retry-After` is
|
|
72
|
+
routinely longer than you are willing to wait, and which serves anyway if you
|
|
73
|
+
ask again immediately — raise `maxRetryAfterMs` past that value to keep
|
|
74
|
+
retrying, or set it low and handle the surfaced error. There is no setting that
|
|
75
|
+
restores "ignore the header and back off short", because that was the defect.
|
|
76
|
+
|
|
77
|
+
**With a provider chain this is where the ceiling pays.** A rate limit is a
|
|
78
|
+
fact about the member, not the request, so surfacing it advances the chain to
|
|
79
|
+
the next member at once rather than after the primary's whole retry budget is
|
|
80
|
+
spent.
|
|
81
|
+
|
|
82
|
+
- 5be5007: **The run record names the member that served.** After a provider chain fell
|
|
83
|
+
over, `run.metadata.provider` and every step's `model` still named the head. The
|
|
84
|
+
wire and the metering followed the member that answered; the durable record did
|
|
85
|
+
not, so a run read back six months later said the primary served a turn it never
|
|
86
|
+
saw. A missing field reads as unknown and a wrong one reads as a fact.
|
|
87
|
+
|
|
88
|
+
**What is major: `StepResult.model` reports a different value.** It now names
|
|
89
|
+
the model the step **asked for** — the run's configured model, or a
|
|
90
|
+
`prepareStep` override. It used to be the run's model unconditionally, so a host
|
|
91
|
+
that routed one step to a cheaper model read the expensive one back out of the
|
|
92
|
+
ledger. That defect needed no chain to see. Nothing stops compiling; the value
|
|
93
|
+
changes. If you were reading `step.model` to recover the run's configured model,
|
|
94
|
+
read `run.metadata.config.model`, which has always held it.
|
|
95
|
+
|
|
96
|
+
**New, and additive:**
|
|
97
|
+
|
|
98
|
+
- `StepResult.servedBy` — `{ providerId, model, chainIndex }`, who actually
|
|
99
|
+
answered the step. Equal to `model` and to `run.metadata.provider` on every
|
|
100
|
+
run without a chain; it diverges exactly when the chain advanced.
|
|
101
|
+
`chainIndex` is the member's position in the chain you declared (`0` is the
|
|
102
|
+
head) and is carried because a chain may name the same provider twice with
|
|
103
|
+
two models, which `providerId` alone cannot tell apart.
|
|
104
|
+
- `RunStateMetadata.servingProvider` — the member the run was routed to at the
|
|
105
|
+
end, absent when the configured provider served throughout.
|
|
106
|
+
`RunStateMetadata.provider` is unchanged and still names what you configured:
|
|
107
|
+
what was asked for and what answered are two facts, and collapsing them into
|
|
108
|
+
one field is how the original defect was made.
|
|
109
|
+
- `WithProviderFallbackOptions.onSwap` and the `ServingMember` type, for a host
|
|
110
|
+
composing `withProviderFallback` itself.
|
|
111
|
+
|
|
112
|
+
**Two limits, stated rather than papered over.** The loop records a step only
|
|
113
|
+
for a tool-calling turn, so the turn that produces the final answer is not in
|
|
114
|
+
`steps` — on a chain that falls over and answers immediately,
|
|
115
|
+
`metadata.servingProvider` is the only record of the swap. And the built-in disk
|
|
116
|
+
store writes `metadata`, not `steps`: per-step provenance reaches you on the
|
|
117
|
+
returned `Run`, so persist that if you need it.
|
|
118
|
+
|
|
119
|
+
**Nothing is backfilled.** Records written by 17.0.0 could fall over without
|
|
120
|
+
recording it, so their `servedBy` is absent and their `servingProvider` reads as
|
|
121
|
+
"no swap" whether or not there was one; the transcript's `provider_fallback`
|
|
122
|
+
events are the record for those runs. Filling them in from the declared head
|
|
123
|
+
would state as fact the exact thing that release got wrong, on exactly the runs
|
|
124
|
+
where it was wrong.
|
|
125
|
+
|
|
3
126
|
## 17.0.0
|
|
4
127
|
|
|
5
128
|
### Major Changes
|
|
@@ -110,6 +110,17 @@ export declare class RunPersistence {
|
|
|
110
110
|
*/
|
|
111
111
|
setAbandonedTaskIds(taskIds: readonly string[]): void;
|
|
112
112
|
setSteps(steps: readonly StepResult[]): void;
|
|
113
|
+
/**
|
|
114
|
+
* Record that a provider chain advanced, so the run record stops naming a
|
|
115
|
+
* member that did not serve.
|
|
116
|
+
*
|
|
117
|
+
* Last writer wins on purpose: a chain of four can advance three times in
|
|
118
|
+
* one run, and `metadata.servingProvider` answers "who was serving when
|
|
119
|
+
* this ended", not "who was ever asked". The full sequence is in the
|
|
120
|
+
* transcript's `provider_fallback` events and, per turn, in
|
|
121
|
+
* `steps[].servedBy`.
|
|
122
|
+
*/
|
|
123
|
+
setServingProvider(providerId: string): void;
|
|
113
124
|
clearLastPromptTokens(): void;
|
|
114
125
|
/**
|
|
115
126
|
* Provider-reported size of the most recent main-loop prompt, or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -240,6 +240,19 @@ export class RunPersistence {
|
|
|
240
240
|
setSteps(steps) {
|
|
241
241
|
this.run.steps = steps;
|
|
242
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Record that a provider chain advanced, so the run record stops naming a
|
|
245
|
+
* member that did not serve.
|
|
246
|
+
*
|
|
247
|
+
* Last writer wins on purpose: a chain of four can advance three times in
|
|
248
|
+
* one run, and `metadata.servingProvider` answers "who was serving when
|
|
249
|
+
* this ended", not "who was ever asked". The full sequence is in the
|
|
250
|
+
* transcript's `provider_fallback` events and, per turn, in
|
|
251
|
+
* `steps[].servedBy`.
|
|
252
|
+
*/
|
|
253
|
+
setServingProvider(providerId) {
|
|
254
|
+
this.run.metadata.servingProvider = providerId;
|
|
255
|
+
}
|
|
243
256
|
clearLastPromptTokens() {
|
|
244
257
|
this._lastPromptTokens = undefined;
|
|
245
258
|
this._lastPromptMessageCount = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,8 +41,74 @@ export interface ProviderChainMember {
|
|
|
41
41
|
readonly provider: LLMProvider;
|
|
42
42
|
readonly model?: string;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* The member serving from now on.
|
|
46
|
+
*
|
|
47
|
+
* `index` is a position in the chain the host declared, so a reader can name
|
|
48
|
+
* the member without holding the chain: "member 2 of 4" is the sentence an
|
|
49
|
+
* operator writes in an incident note.
|
|
50
|
+
*/
|
|
51
|
+
export interface ServingMember {
|
|
52
|
+
readonly index: number;
|
|
53
|
+
readonly providerId: string;
|
|
54
|
+
/** Absent for a member declared without one — see {@link ProviderChainMember.model}. */
|
|
55
|
+
readonly model?: string;
|
|
56
|
+
}
|
|
44
57
|
export interface WithProviderFallbackOptions {
|
|
45
58
|
readonly log?: Logger;
|
|
59
|
+
/**
|
|
60
|
+
* Called once per swap, with the member that serves from here on.
|
|
61
|
+
*
|
|
62
|
+
* A callback is enough to describe the WHOLE truth, not a sample of it,
|
|
63
|
+
* and that is a property of the cursor rather than of this option: the
|
|
64
|
+
* chain never rewinds, so "who is serving" is exactly "the head, plus
|
|
65
|
+
* every swap so far". A listener that starts at member 0 and applies each
|
|
66
|
+
* call is never behind.
|
|
67
|
+
*
|
|
68
|
+
* It exists beside the in-band `fallback` chunk rather than instead of it
|
|
69
|
+
* because the two have different observers and neither covers the other's
|
|
70
|
+
* case. The chunk reaches whoever is iterating the stream, at the moment
|
|
71
|
+
* of the swap — that is the operator. This reaches a party that has to
|
|
72
|
+
* know AFTER the request is over and may never have iterated the stream at
|
|
73
|
+
* all — that is the run record. Two things follow that the chunk alone
|
|
74
|
+
* cannot give it:
|
|
75
|
+
*
|
|
76
|
+
* - the cursor outlives the request, so a swap on the turn at step 3
|
|
77
|
+
* still describes steps 4..N, which emit no further chunk;
|
|
78
|
+
* - a side call that aggregates the stream through `collect()` — the
|
|
79
|
+
* compaction verifier and the forced-final summary both do — drops the
|
|
80
|
+
* `fallback` chunk on the floor, so a swap inside one is invisible to
|
|
81
|
+
* every chunk consumer. (The advisory executor calls its OWN advisor's
|
|
82
|
+
* provider, not the run's, so it is not one of these.)
|
|
83
|
+
*
|
|
84
|
+
* ## Fired when the replacement is ASKED, not when the cursor moves
|
|
85
|
+
*
|
|
86
|
+
* The two are not the same instant and the difference is observable. The
|
|
87
|
+
* cursor moves inside the catch; the notice chunk is then yielded, and the
|
|
88
|
+
* replacement request is only issued when the consumer comes back for
|
|
89
|
+
* another chunk. A consumer that stops there — a Stop, a `break`, a host
|
|
90
|
+
* that abandons the iterator — leaves a chain that selected a member and
|
|
91
|
+
* never asked it.
|
|
92
|
+
*
|
|
93
|
+
* Announcing at cursor-move would report that member as serving, and a
|
|
94
|
+
* ledger saying a provider served a turn it was never sent is the exact
|
|
95
|
+
* defect this callback exists to end, reintroduced one layer down. So the
|
|
96
|
+
* announcement sits at the top of the loop, immediately before the
|
|
97
|
+
* replacement's `chatStream` — the earliest moment at which the member is
|
|
98
|
+
* actually being asked.
|
|
99
|
+
*
|
|
100
|
+
* ## One stream at a time
|
|
101
|
+
*
|
|
102
|
+
* `cursor` is shared by every concurrent `chatStream` on this wrapper, so
|
|
103
|
+
* two overlapping calls can advance it under one another: one call's
|
|
104
|
+
* failure moves the cursor while the other is still being served by the
|
|
105
|
+
* head, and a listener would hear about a member that answered nothing for
|
|
106
|
+
* that call. Nothing here serializes or refuses concurrency — the
|
|
107
|
+
* property held before this option existed and is not introduced by it.
|
|
108
|
+
* `query()` issues its main turn and its side calls in sequence, which is
|
|
109
|
+
* what makes the reading exact there.
|
|
110
|
+
*/
|
|
111
|
+
readonly onSwap?: (to: ServingMember) => void;
|
|
46
112
|
}
|
|
47
113
|
/**
|
|
48
114
|
* Wrap an ordered chain so a member that cannot serve is replaced in place.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/provider/fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAwB,WAAW,EAAe,MAAM,4BAA4B,CAAA;AAChG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/provider/fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAwB,WAAW,EAAe,MAAM,4BAA4B,CAAA;AAChG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAA;CAC7C;AAgGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,OAAO,GAAE,2BAAgC,GACvC,WAAW,CA+Hb"}
|
|
@@ -165,10 +165,22 @@ export function withProviderFallback(members, options = {}) {
|
|
|
165
165
|
// A one-member chain is the identity. Returning the provider itself rather
|
|
166
166
|
// than a wrapper that can never advance keeps the no-chain path byte-identical
|
|
167
167
|
// to what it was before this file existed.
|
|
168
|
+
//
|
|
169
|
+
// `onSwap` is therefore never called on this path, and that is the correct
|
|
170
|
+
// reading rather than a hole: a listener starts at member 0 and a one-member
|
|
171
|
+
// chain never leaves it. Announcing member 0 here would say "the chain
|
|
172
|
+
// advanced" about a chain that cannot.
|
|
168
173
|
if (members.length === 1)
|
|
169
174
|
return first.provider;
|
|
170
175
|
const log = options.log;
|
|
171
176
|
let cursor = 0;
|
|
177
|
+
/**
|
|
178
|
+
* The last position {@link WithProviderFallbackOptions.onSwap} was told
|
|
179
|
+
* about. Lags `cursor` for exactly as long as the consumer has the notice
|
|
180
|
+
* chunk and has not come back for more — which is the window in which a
|
|
181
|
+
* selected member has not been asked anything. See that option's doc.
|
|
182
|
+
*/
|
|
183
|
+
let announced = 0;
|
|
172
184
|
async function* chatStream(params) {
|
|
173
185
|
for (;;) {
|
|
174
186
|
const member = members[cursor];
|
|
@@ -178,6 +190,14 @@ export function withProviderFallback(members, options = {}) {
|
|
|
178
190
|
// the fix.
|
|
179
191
|
if (!member)
|
|
180
192
|
throw new Error(`provider chain has no member at position ${cursor}`);
|
|
193
|
+
if (announced !== cursor) {
|
|
194
|
+
announced = cursor;
|
|
195
|
+
options.onSwap?.({
|
|
196
|
+
index: cursor,
|
|
197
|
+
providerId: member.provider.id,
|
|
198
|
+
...(member.model !== undefined ? { model: member.model } : {}),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
181
201
|
const request = member.model !== undefined ? { ...params, model: member.model } : params;
|
|
182
202
|
let produced = false;
|
|
183
203
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/provider/fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/provider/fallback.ts"],"names":[],"mappings":"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"}
|
package/dist/provider/index.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export { ProviderError, classifyProviderError, isAbortError, isProviderError, }
|
|
|
9
9
|
export { DEFAULT_PROVIDER_RETRY, withProviderRetry } from './retry.js';
|
|
10
10
|
export type { ProviderRetryConfig, WithProviderRetryOptions } from './retry.js';
|
|
11
11
|
export { withProviderFallback } from './fallback.js';
|
|
12
|
-
export type { ProviderChainMember, WithProviderFallbackOptions } from './fallback.js';
|
|
12
|
+
export type { ProviderChainMember, ServingMember, WithProviderFallbackOptions, } from './fallback.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,aAAa,CAAA;AACpB,YAAY,EACX,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,EACN,gCAAgC,EAChC,2BAA2B,GAC3B,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,eAAe,GACf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,aAAa,CAAA;AACpB,YAAY,EACX,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,EACN,gCAAgC,EAChC,2BAA2B,GAC3B,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,eAAe,GACf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,YAAY,EACX,mBAAmB,EACnB,aAAa,EACb,2BAA2B,GAC3B,MAAM,eAAe,CAAA"}
|
package/dist/provider/retry.d.ts
CHANGED
|
@@ -11,6 +11,15 @@ export interface ProviderRetryConfig {
|
|
|
11
11
|
* Cap on a server-directed `Retry-After`. A provider asking for 15
|
|
12
12
|
* minutes should not silently park an interactive run for 15 minutes;
|
|
13
13
|
* past this we surface the error and let the caller decide.
|
|
14
|
+
*
|
|
15
|
+
* "Surface" is the whole of it: there is no shorter retry underneath. A
|
|
16
|
+
* server that named a wait has said something specific, and answering it
|
|
17
|
+
* with a half-second backoff neither honours the wait nor tells anyone it
|
|
18
|
+
* was refused. The error carries `retryAfterMs`, so a host that wants to
|
|
19
|
+
* come back in fifteen minutes can — that decision is above this loop.
|
|
20
|
+
*
|
|
21
|
+
* Raise it to let the run sleep longer; a request under the ceiling is
|
|
22
|
+
* still slept exactly as instructed.
|
|
14
23
|
*/
|
|
15
24
|
readonly maxRetryAfterMs: number;
|
|
16
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/provider/retry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,WAAW,EAAe,MAAM,4BAA4B,CAAA;AAChG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,WAAW,mBAAmB;IACnC,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/provider/retry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,WAAW,EAAe,MAAM,4BAA4B,CAAA;AAChG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,WAAW,mBAAmB;IACnC,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,sBAAsB,EAAE,mBAKpC,CAAA;AAgCD,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,wBAA6B,GACpC,WAAW,CAwKb"}
|
package/dist/provider/retry.js
CHANGED
|
@@ -119,9 +119,46 @@ export function withProviderRetry(provider, options = {}) {
|
|
|
119
119
|
throw isProviderRequestError(err) ? err : classified;
|
|
120
120
|
}
|
|
121
121
|
const serverDirected = classified.retryAfterMs;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
// The server named a wait longer than the caller's ceiling, so the
|
|
123
|
+
// error goes to the caller — which is what `maxRetryAfterMs`
|
|
124
|
+
// documents and what it now does.
|
|
125
|
+
//
|
|
126
|
+
// It used to fall through to the jittered backoff instead, and that
|
|
127
|
+
// is degrading where the contract says refuse
|
|
128
|
+
// (`docs/conventions/refuse-do-not-degrade.md`). The ceiling was
|
|
129
|
+
// read as "how long may I sleep", so a provider asking for fifteen
|
|
130
|
+
// minutes was re-asked in half a second: the one instruction the
|
|
131
|
+
// server gave was the one thing discarded, and the retries that
|
|
132
|
+
// followed were sent to an endpoint that had already said it would
|
|
133
|
+
// not serve them. They cost the run its whole budget to rediscover
|
|
134
|
+
// a 429 it had been told about in advance.
|
|
135
|
+
//
|
|
136
|
+
// The caller loses nothing it had. This throws the SAME error the
|
|
137
|
+
// exhausted path throws, so the run settles exactly as it did
|
|
138
|
+
// before — only sooner, and with `retryAfterMs` intact for a host
|
|
139
|
+
// that wants to schedule against it. What it gains is the wait
|
|
140
|
+
// itself, which no backoff of ours can honour: fifteen minutes is
|
|
141
|
+
// not a number this loop is allowed to sleep for.
|
|
142
|
+
//
|
|
143
|
+
// With a chain declared it gains more than that. The error is a
|
|
144
|
+
// `rate_limit`, which is a fact about the MEMBER, so
|
|
145
|
+
// `withProviderFallback` moves to the next one — the run continues
|
|
146
|
+
// on another provider instead of spending its budget arguing with
|
|
147
|
+
// the first. Under the old behaviour the chain did not see the
|
|
148
|
+
// failure until those attempts were gone.
|
|
149
|
+
if (serverDirected !== undefined && serverDirected > config.maxRetryAfterMs) {
|
|
150
|
+
log?.warn('Provider call failed — server-directed wait exceeds the ceiling', {
|
|
151
|
+
provider: provider.id,
|
|
152
|
+
code: classified.code,
|
|
153
|
+
status: classified.status,
|
|
154
|
+
attempt: attempt + 1,
|
|
155
|
+
retryAfterMs: serverDirected,
|
|
156
|
+
maxRetryAfterMs: config.maxRetryAfterMs,
|
|
157
|
+
reason: 'surfacing rather than retrying — the caller decides how to wait',
|
|
158
|
+
});
|
|
159
|
+
throw isProviderRequestError(err) ? err : classified;
|
|
160
|
+
}
|
|
161
|
+
const delay = serverDirected ?? backoffWithJitter(attempt, config, random);
|
|
125
162
|
log?.warn('Provider call failed — retrying', {
|
|
126
163
|
provider: provider.id,
|
|
127
164
|
code: classified.code,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/provider/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAGjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/provider/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAGjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAI/D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { restoreWorkingState, snapshotWorkingState } from '../../compaction/wire
|
|
|
8
8
|
import { TOOL_OUTPUT_DIR_NAME } from '../../constants/tools/index.js';
|
|
9
9
|
import { EmergencySaveManager } from '../../manager/run/emergency.js';
|
|
10
10
|
import { resolveProviderCapabilities } from '../../provider/capabilities.js';
|
|
11
|
-
import { withProviderFallback } from '../../provider/fallback.js';
|
|
11
|
+
import { withProviderFallback, } from '../../provider/fallback.js';
|
|
12
12
|
import { withProviderRetry } from '../../provider/retry.js';
|
|
13
13
|
import { GENAI, NAMZU, agentRunSpanName, parentContext, serializeSpan, } from '../../telemetry/attributes.js';
|
|
14
14
|
import { recordRunDuration } from '../../telemetry/metrics.js';
|
|
@@ -108,7 +108,26 @@ export async function* query(params) {
|
|
|
108
108
|
const withRetry = (provider) => params.retry === false
|
|
109
109
|
? provider
|
|
110
110
|
: withProviderRetry(provider, { config: params.retry, log: getRootLogger() });
|
|
111
|
-
|
|
111
|
+
// Who is serving right now, for the run RECORD rather than for the request.
|
|
112
|
+
//
|
|
113
|
+
// It starts at the head and moves only when the chain does, which is the
|
|
114
|
+
// whole of the truth because the cursor never rewinds. The run cannot read
|
|
115
|
+
// this off `resilientProvider`: that wrapper reports the head's `id` on
|
|
116
|
+
// purpose, so asking it produces the declaration back — the defect this
|
|
117
|
+
// record exists to fix.
|
|
118
|
+
const serving = {
|
|
119
|
+
current: { index: 0, providerId: params.provider.id },
|
|
120
|
+
};
|
|
121
|
+
const resilientProvider = withProviderFallback(chain.map((member) => ({ ...member, provider: withRetry(member.provider) })), {
|
|
122
|
+
log: getRootLogger(),
|
|
123
|
+
onSwap: (to) => {
|
|
124
|
+
serving.current = to;
|
|
125
|
+
// `ctx` is declared below and is initialized before anything can
|
|
126
|
+
// call the provider: this fires from inside a `chatStream`, and
|
|
127
|
+
// the first one is issued by the loop that `ctx` is built for.
|
|
128
|
+
ctx.runMgr.setServingProvider(to.providerId);
|
|
129
|
+
},
|
|
130
|
+
});
|
|
112
131
|
const ctx = RunContextFactory.build({
|
|
113
132
|
agentId: params.agentId,
|
|
114
133
|
agentName: params.agentName,
|
|
@@ -390,6 +409,7 @@ export async function* query(params) {
|
|
|
390
409
|
: undefined;
|
|
391
410
|
const iterationOrchestrator = new IterationOrchestrator({
|
|
392
411
|
provider: resilientProvider,
|
|
412
|
+
servingMember: () => serving.current,
|
|
393
413
|
runConfig: params.runConfig,
|
|
394
414
|
...(params.stopWhen ? { stopWhen: params.stopWhen } : {}),
|
|
395
415
|
...(params.prepareStep ? { prepareStep: params.prepareStep } : {}),
|