@namzu/sdk 5.0.0 → 5.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 +102 -0
- package/README.md +2 -2
- package/dist/provider/__tests__/typed-error-classification.test.d.ts +2 -0
- package/dist/provider/__tests__/typed-error-classification.test.d.ts.map +1 -0
- package/dist/provider/__tests__/typed-error-classification.test.js +123 -0
- package/dist/provider/__tests__/typed-error-classification.test.js.map +1 -0
- package/dist/provider/retry.d.ts.map +1 -1
- package/dist/provider/retry.js +23 -7
- package/dist/provider/retry.js.map +1 -1
- package/dist/public-tools.d.ts +1 -0
- package/dist/public-tools.d.ts.map +1 -1
- package/dist/public-tools.js +4 -0
- package/dist/public-tools.js.map +1 -1
- package/dist/runtime/query/__tests__/stream-recovery.test.js +5 -0
- package/dist/runtime/query/__tests__/stream-recovery.test.js.map +1 -1
- package/dist/types/provider/errors.d.ts +0 -17
- package/dist/types/provider/errors.d.ts.map +1 -1
- package/dist/types/provider/errors.js +60 -0
- package/dist/types/provider/errors.js.map +1 -1
- package/package.json +1 -1
- package/src/provider/__tests__/typed-error-classification.test.ts +143 -0
- package/src/provider/retry.ts +23 -7
- package/src/public-tools.ts +4 -0
- package/src/runtime/query/__tests__/stream-recovery.test.ts +5 -0
- package/src/types/provider/errors.ts +71 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,107 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8dbb98b: Adds `@namzu/project` — a conventional agent directory, read into typed,
|
|
8
|
+
inspectable definitions.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
my-agent/agent/
|
|
12
|
+
├── agent.ts # optional — model, temperature, budgets
|
|
13
|
+
├── instructions.md # optional — the system prompt
|
|
14
|
+
├── tools/search.ts # default-exports defineTool(…)
|
|
15
|
+
└── skills/plan-a-trip/SKILL.md
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
const { manifest, ok, diagnostics } = await loadProject("./agent");
|
|
20
|
+
await runAgent(deriveRunOptions(manifest, { provider, prompt: "go" }));
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
A **loader, not a runner**, and not in `@namzu/sdk`: the kernel does not
|
|
24
|
+
mandate a directory layout any more than a kernel mandates `/etc/foo.conf`.
|
|
25
|
+
`deriveRunOptions` returns ordinary `RunAgentOptions`, so there is no second
|
|
26
|
+
code path and no behaviour reachable only through the convention.
|
|
27
|
+
|
|
28
|
+
**Importing a directory runs it.** `loadProject` imports every module-backed
|
|
29
|
+
file, in this process, with this process's privileges — a top-level side effect
|
|
30
|
+
in `tools/search.ts` happens during the load. There is no in-process boundary
|
|
31
|
+
that would change that, and `@namzu/sandbox` confines tool execution rather
|
|
32
|
+
than module import. For a directory whose author you are not,
|
|
33
|
+
`modules: 'skip'` imports nothing while still returning the full structural
|
|
34
|
+
truth: every path, the instructions, the skills, duplicate detection. That is
|
|
35
|
+
also the mode a CI gate and a UI file tree want.
|
|
36
|
+
|
|
37
|
+
**TypeScript without a build step.** Files load through `await import()`, so
|
|
38
|
+
`.ts` is handled by Node's own type stripping. Stripping erases types rather
|
|
39
|
+
than transforming code, so `enum`, decorators, parameter properties, runtime
|
|
40
|
+
`namespace`, extensionless relative imports and tsconfig `paths` aliases do not
|
|
41
|
+
work — the README tables each one against what to write instead, and the errors
|
|
42
|
+
name the remedy. A host that needs them passes `importModule` and hands in
|
|
43
|
+
`jiti` or a `tsx`-registered importer: three lines in the host, no bundler in
|
|
44
|
+
this dependency tree.
|
|
45
|
+
|
|
46
|
+
**Nothing fails silently.** A file that cannot load is reported with its path
|
|
47
|
+
and reason, never dropped. Two behaviours worth knowing: a symlink is refused
|
|
48
|
+
rather than followed, because the file that would be imported is not the file
|
|
49
|
+
that was listed; and a timed-out import is `'abandoned'`, not `'failed'`, since
|
|
50
|
+
`import()` cannot be cancelled — the module may still finish, and Node caches
|
|
51
|
+
it, so a later load in the same process can see the same file succeed.
|
|
52
|
+
|
|
53
|
+
`channels/` and `schedules/` are **not** in this version. A trigger of
|
|
54
|
+
`{ id, handler }` cannot express a signed webhook — verification needs the raw
|
|
55
|
+
body, and a handler receiving a parsed one can never check an HMAC — carries no
|
|
56
|
+
idempotency key while webhooks retry and schedules double-fire, and a cron
|
|
57
|
+
field with no timezone story is a declaration nothing drives. Each would be a
|
|
58
|
+
breaking change to a published type; the shape question gets its own pass.
|
|
59
|
+
|
|
60
|
+
`@namzu/sdk` additionally exports `resolveWithin`, `resolveWithinReal` and
|
|
61
|
+
`isWithin`, the containment helpers its own filesystem tools use. They were
|
|
62
|
+
internal while three call sites outside that file needed them.
|
|
63
|
+
|
|
64
|
+
### Patch Changes
|
|
65
|
+
|
|
66
|
+
- 7ac89da: A driver that classified its own failure was being punished for it, in two
|
|
67
|
+
places, and both shipped in 5.0.0.
|
|
68
|
+
|
|
69
|
+
**`classifyProviderError` never read `kind`.** A `ProviderRequestError` — the
|
|
70
|
+
type first-party drivers throw when they have diagnosed a failure themselves —
|
|
71
|
+
fell through to the status heuristics, where a carefully-determined
|
|
72
|
+
`context_overflow` carrying a 400 became `invalid_request`. Three of the six
|
|
73
|
+
kinds landed wrong that way:
|
|
74
|
+
|
|
75
|
+
| kind | was | now |
|
|
76
|
+
| ------------------ | -------------------------------- | ---------------------------------------- |
|
|
77
|
+
| `context_overflow` | `invalid_request`, not retryable | `context_length_exceeded`, not retryable |
|
|
78
|
+
| `server` | `invalid_request`, not retryable | `server_error`, **retryable** |
|
|
79
|
+
| `network` | `invalid_request`, not retryable | `network`, **retryable** |
|
|
80
|
+
|
|
81
|
+
The overflow case was not cosmetic. The run loop reaches for compaction when it
|
|
82
|
+
sees `context_length_exceeded`, so relief — the one provider failure this
|
|
83
|
+
kernel can actually do something about — was unreachable for exactly the
|
|
84
|
+
drivers that had diagnosed the problem correctly.
|
|
85
|
+
|
|
86
|
+
**`withProviderRetry` rethrew such errors before the retry loop.** Its comment
|
|
87
|
+
justified preserving the driver's classification, which is right; the code also
|
|
88
|
+
skipped retrying, which is a separate decision nobody made. A first-party HTTP
|
|
89
|
+
or OpenRouter driver reporting a 429 as `kind: 'throttle'` got exactly one
|
|
90
|
+
attempt, while the identical failure from a driver that classified nothing got
|
|
91
|
+
the full backoff.
|
|
92
|
+
|
|
93
|
+
Retry is now decided the same way for both, from the classification's
|
|
94
|
+
`retryable`. The original error still escapes to the run boundary, so
|
|
95
|
+
`run.lastProviderError` keeps reporting the driver's own
|
|
96
|
+
`{ kind, status, retryAfterMs }` — wrapping there would have fixed the retry
|
|
97
|
+
and lost the vendor's `kind`, which the existing stream-recovery test caught.
|
|
98
|
+
|
|
99
|
+
**What changes for you.** A 429, a 5xx or a socket failure from
|
|
100
|
+
`@namzu/http` or `@namzu/openrouter` is now retried with backoff instead of
|
|
101
|
+
failing on the first attempt, and a context overflow from those drivers now
|
|
102
|
+
triggers compaction instead of failing the run. If you were relying on a typed
|
|
103
|
+
error failing fast, `retry: { maxRetries: 0 }` on `drainQuery` restores that.
|
|
104
|
+
|
|
3
105
|
## 5.0.0
|
|
4
106
|
|
|
5
107
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Namzu is a single-process TypeScript kernel with the following responsibilities:
|
|
|
29
29
|
- **Scheduling.** Per-run token, cost, wall-clock, and iteration budgets. Limit checker, task router (cheap model for compaction, expensive for coding), tool tiering (LLM learns to prefer cheaper tools first).
|
|
30
30
|
- **Signals.** `AbortController` tree spanning parent and children. `cancel(taskId)` and `cancelAll(parentRunId)` propagate. Runs can be paused and resumed, aborted cleanly, and emit lifecycle events for every transition.
|
|
31
31
|
- **Memory management.** Working memory via structured compaction to a typed `WorkingState`. Long-term memory via an indexed, tag/query/status-searchable store with disk persistence. No vector database required by default.
|
|
32
|
-
- **Durability.** Atomic per-iteration checkpoints,
|
|
32
|
+
- **Durability.** Atomic per-iteration checkpoints, an opt-in emergency core-dump on SIGINT/SIGTERM (`emergencySave: true` — a library must not seize a host process termination path by default), separate storage for runs, threads, conversations, activities, memories, and tasks.
|
|
33
33
|
- **IPC.** Native A2A (agent-to-agent) and MCP (Model Context Protocol) — both client and server, one SDK. An internal event bus with circuit breakers, file lock manager, and edit ownership tracking so concurrent agents do not stomp on each other.
|
|
34
34
|
- **Capability system.** Tools are first-class, typed, permissioned, and progressively disclosed. The LLM does not see the full tool catalog; tools start deferred, get activated on demand, and can be suspended. Each tool declares `readOnly`, `destructive`, `concurrencySafe`, `permissions`, `category`.
|
|
35
35
|
- **Syscall filtering.** Every tool call goes through a verification gate — allow / deny / ask, with built-in rules for read-only allowlist and dangerous pattern deny-list, plus custom regex rules. This is separate from sandbox isolation; it is the decision layer, the sandbox is the enforcement layer.
|
|
@@ -375,7 +375,7 @@ const result = await agent.run(
|
|
|
375
375
|
)
|
|
376
376
|
```
|
|
377
377
|
|
|
378
|
-
That is a complete, sandbox-isolated, checkpointed, telemetrized agent run with prompt caching, progressive tool disclosure, structured compaction
|
|
378
|
+
That is a complete, sandbox-isolated, checkpointed, telemetrized agent run with prompt caching, progressive tool disclosure, and structured compaction all wired in by default — those are not features you enable, they are how the kernel runs. Emergency save is the exception and is opt-in: pass `emergencySave: true` when the process owns its run end to end. Swap `registerOpenRouter()` for `registerOllama()`, `registerAnthropic()`, `registerBedrock()`, `registerOpenAI()`, `registerLMStudio()`, or `registerHttp()` — the code below the registration line stays identical.
|
|
379
379
|
|
|
380
380
|
Examples for `PipelineAgent`, `RouterAgent`, and `SupervisorAgent` are in `src/agents/`.
|
|
381
381
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-error-classification.test.d.ts","sourceRoot":"","sources":["../../../src/provider/__tests__/typed-error-classification.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { classifyProviderError } from '../../types/provider/errors.js';
|
|
3
|
+
import { ProviderRequestError } from '../errors.js';
|
|
4
|
+
import { withProviderRetry } from '../retry.js';
|
|
5
|
+
/**
|
|
6
|
+
* A driver that classified its own failure was coming out WORSE than one that
|
|
7
|
+
* did not, in two independent places, and both shipped.
|
|
8
|
+
*
|
|
9
|
+
* `classifyProviderError` never read `kind`. A `ProviderRequestError` fell
|
|
10
|
+
* through to the status heuristics, where a carefully-diagnosed
|
|
11
|
+
* `context_overflow` carrying a 400 became `invalid_request` — so the run
|
|
12
|
+
* loop's overflow branch, which tests for `context_length_exceeded`, could
|
|
13
|
+
* never fire for a first-party driver, and compaction relief was unreachable
|
|
14
|
+
* for exactly the drivers that had diagnosed the problem correctly.
|
|
15
|
+
*
|
|
16
|
+
* And `withProviderRetry` rethrew any such error before the retry loop. Its
|
|
17
|
+
* comment justified preserving the classification, which is right; the code
|
|
18
|
+
* also skipped retrying, which is a different decision that nobody made.
|
|
19
|
+
*/
|
|
20
|
+
function providerThatFails(err) {
|
|
21
|
+
let calls = 0;
|
|
22
|
+
const provider = {
|
|
23
|
+
id: 'test',
|
|
24
|
+
name: 'Test',
|
|
25
|
+
async *chatStream() {
|
|
26
|
+
calls++;
|
|
27
|
+
throw err;
|
|
28
|
+
// biome-ignore lint/correctness/useYield: it fails before producing anything
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
return { provider, calls: () => calls };
|
|
32
|
+
}
|
|
33
|
+
const typed = (kind, status) => new ProviderRequestError({ kind, providerId: 'test', status, message: `a ${kind}` });
|
|
34
|
+
describe('a driver that classified its own failure is believed', () => {
|
|
35
|
+
const cases = [
|
|
36
|
+
['throttle', 429, 'rate_limit', true],
|
|
37
|
+
['server', 500, 'server_error', true],
|
|
38
|
+
['network', 0, 'network', true],
|
|
39
|
+
['auth', 401, 'auth', false],
|
|
40
|
+
['bad_request', 400, 'invalid_request', false],
|
|
41
|
+
// The one that mattered most: a 400 whose kind says the prompt was too
|
|
42
|
+
// long is not a bad request, and the difference decides whether the
|
|
43
|
+
// kernel reaches for compaction.
|
|
44
|
+
['context_overflow', 400, 'context_length_exceeded', false],
|
|
45
|
+
];
|
|
46
|
+
for (const [kind, status, code, retryable] of cases) {
|
|
47
|
+
it(`maps kind "${kind}" to ${code}`, () => {
|
|
48
|
+
const classified = classifyProviderError(typed(kind, status), 'test');
|
|
49
|
+
expect(classified.code).toBe(code);
|
|
50
|
+
expect(classified.retryable).toBe(retryable);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
it('keeps the driver-supplied status and provider id', () => {
|
|
54
|
+
const classified = classifyProviderError(typed('throttle', 429), 'other');
|
|
55
|
+
expect(classified.status).toBe(429);
|
|
56
|
+
expect(classified.providerId).toBe('test');
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('a classified failure still goes through the retry loop', () => {
|
|
60
|
+
it('retries a typed throttle', async () => {
|
|
61
|
+
// This is the regression: a first-party driver reporting a 429 as
|
|
62
|
+
// `kind: 'throttle'` used to get exactly one attempt, while the same
|
|
63
|
+
// failure from a driver that classified nothing got the full backoff.
|
|
64
|
+
const { provider, calls } = providerThatFails(typed('throttle', 429));
|
|
65
|
+
const wrapped = withProviderRetry(provider, {
|
|
66
|
+
config: { maxRetries: 2 },
|
|
67
|
+
sleepFn: async () => { },
|
|
68
|
+
random: () => 0,
|
|
69
|
+
});
|
|
70
|
+
await expect(async () => {
|
|
71
|
+
for await (const _ of wrapped.chatStream({})) {
|
|
72
|
+
// drain
|
|
73
|
+
}
|
|
74
|
+
}).rejects.toThrow();
|
|
75
|
+
expect(calls()).toBe(3);
|
|
76
|
+
});
|
|
77
|
+
it('does not retry a typed auth failure', async () => {
|
|
78
|
+
const { provider, calls } = providerThatFails(typed('auth', 401));
|
|
79
|
+
const wrapped = withProviderRetry(provider, {
|
|
80
|
+
config: { maxRetries: 2 },
|
|
81
|
+
sleepFn: async () => { },
|
|
82
|
+
});
|
|
83
|
+
await expect(async () => {
|
|
84
|
+
for await (const _ of wrapped.chatStream({})) {
|
|
85
|
+
// drain
|
|
86
|
+
}
|
|
87
|
+
}).rejects.toThrow();
|
|
88
|
+
expect(calls()).toBe(1);
|
|
89
|
+
});
|
|
90
|
+
it('does not retry a typed context overflow', async () => {
|
|
91
|
+
// Correctly non-retryable — an identical prompt overflows identically.
|
|
92
|
+
// The remedy is compaction, which the run loop reaches for once the
|
|
93
|
+
// code is `context_length_exceeded`.
|
|
94
|
+
const { provider, calls } = providerThatFails(typed('context_overflow', 400));
|
|
95
|
+
const wrapped = withProviderRetry(provider, {
|
|
96
|
+
config: { maxRetries: 2 },
|
|
97
|
+
sleepFn: async () => { },
|
|
98
|
+
});
|
|
99
|
+
await expect(async () => {
|
|
100
|
+
for await (const _ of wrapped.chatStream({})) {
|
|
101
|
+
// drain
|
|
102
|
+
}
|
|
103
|
+
// The ORIGINAL escapes, so the boundary still sees the driver's
|
|
104
|
+
// own kind rather than a wrapper's code.
|
|
105
|
+
}).rejects.toMatchObject({ kind: 'context_overflow', status: 400 });
|
|
106
|
+
expect(calls()).toBe(1);
|
|
107
|
+
});
|
|
108
|
+
it('leaves an abort alone', async () => {
|
|
109
|
+
const abort = Object.assign(new Error('aborted'), { name: 'AbortError' });
|
|
110
|
+
const { provider, calls } = providerThatFails(abort);
|
|
111
|
+
const wrapped = withProviderRetry(provider, {
|
|
112
|
+
config: { maxRetries: 2 },
|
|
113
|
+
sleepFn: async () => { },
|
|
114
|
+
});
|
|
115
|
+
await expect(async () => {
|
|
116
|
+
for await (const _ of wrapped.chatStream({})) {
|
|
117
|
+
// drain
|
|
118
|
+
}
|
|
119
|
+
}).rejects.toThrow(/aborted/);
|
|
120
|
+
expect(calls()).toBe(1);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=typed-error-classification.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-error-classification.test.js","sourceRoot":"","sources":["../../../src/provider/__tests__/typed-error-classification.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;;;;OAIG;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,
|
|
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;;;;OAIG;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,CAkIb"}
|
package/dist/provider/retry.js
CHANGED
|
@@ -79,12 +79,19 @@ export function withProviderRetry(provider, options = {}) {
|
|
|
79
79
|
catch (err) {
|
|
80
80
|
if (isAbortError(err) || params.signal?.aborted)
|
|
81
81
|
throw err;
|
|
82
|
-
// A driver that already classified its own failure
|
|
83
|
-
//
|
|
84
|
-
// first
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
// A driver that already classified its own failure keeps that
|
|
83
|
+
// classification — `classifyProviderError` reads its `kind`
|
|
84
|
+
// first and does not re-guess.
|
|
85
|
+
//
|
|
86
|
+
// This used to rethrow such an error outright. The stated reason
|
|
87
|
+
// was sound and the code did more than it said: preserving a
|
|
88
|
+
// first-hand classification is one thing, and skipping the retry
|
|
89
|
+
// loop is another. A first-party driver that correctly reported
|
|
90
|
+
// a 429 as `kind: 'throttle'` got ZERO attempts, while the same
|
|
91
|
+
// failure from a driver that classified nothing got the full
|
|
92
|
+
// backoff — so diagnosing your own error was punished. Whether
|
|
93
|
+
// to retry is now decided the same way for both, by the
|
|
94
|
+
// classification's own `retryable`.
|
|
88
95
|
const classified = classifyProviderError(err, provider.id);
|
|
89
96
|
const exhausted = attempt >= config.maxRetries;
|
|
90
97
|
if (produced || !classified.retryable || exhausted) {
|
|
@@ -100,7 +107,16 @@ export function withProviderRetry(provider, options = {}) {
|
|
|
100
107
|
? 'retries exhausted'
|
|
101
108
|
: 'not retryable',
|
|
102
109
|
});
|
|
103
|
-
|
|
110
|
+
// The ORIGINAL escapes when the driver classified it. Two
|
|
111
|
+
// different consumers want two different things and both are
|
|
112
|
+
// right: this loop needs a retryable verdict, which the
|
|
113
|
+
// classification supplies, and the run boundary reports
|
|
114
|
+
// `lastProviderError` as the driver's own `{kind, status,
|
|
115
|
+
// retryAfterMs}`, which only survives if the error itself
|
|
116
|
+
// does. Wrapping here would have kept the retry fix and lost
|
|
117
|
+
// the vendor's `kind` at the boundary — the existing
|
|
118
|
+
// stream-recovery test caught exactly that.
|
|
119
|
+
throw isProviderRequestError(err) ? err : classified;
|
|
104
120
|
}
|
|
105
121
|
const serverDirected = classified.retryAfterMs;
|
|
106
122
|
const delay = serverDirected !== undefined && serverDirected <= config.maxRetryAfterMs
|
|
@@ -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;AAiBpD,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IAC1D,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,MAAM;IAClB,eAAe,EAAE,MAAM;CACvB,CAAA;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,MAA2B,EAAE,MAAoB;IAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,IAAI,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IACrF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC9C,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IACrC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACrB,OAAM;QACP,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7C,OAAO,EAAE,CAAA;QACV,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvB,CAAC,CAAA;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;AACH,CAAC;AAUD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAChC,QAAqB,EACrB,UAAoC,EAAE;IAEtC,MAAM,MAAM,GAAwB,EAAE,GAAG,sBAAsB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IAEvB,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAA;IAE3C,KAAK,SAAS,CAAC,CAAC,UAAU,CAAC,MAA4B;QACtD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YACnC,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,IAAI,CAAC;gBACJ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvD,0DAA0D;oBAC1D,2DAA2D;oBAC3D,iDAAiD;oBACjD,MAAM,WAAW,GAChB,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAA;oBAEpF,IAAI,CAAC,WAAW;wBAAE,QAAQ,GAAG,IAAI,CAAA;oBAEjC,IAAI,WAAW,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC7D,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC7B,CAAC;oBACD,MAAM,KAAK,CAAA;gBACZ,CAAC;gBACD,OAAM;YACP,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM,GAAG,CAAA;gBAC1D,4DAA4D;gBAC5D,
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/provider/retry.ts"],"names":[],"mappings":"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"}
|
package/dist/public-tools.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { defineTool } from './tools/defineTool.js';
|
|
2
|
+
export { isWithin, resolveWithin, resolveWithinReal } from './tools/paths.js';
|
|
2
3
|
export { neutralizeEnvelopeDelimiter, wrapUntrusted } from './tools/untrusted-envelope.js';
|
|
3
4
|
export type { UntrustedEnvelope } from './tools/untrusted-envelope.js';
|
|
4
5
|
export { getBuiltinTools } from './tools/builtins/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-tools.d.ts","sourceRoot":"","sources":["../src/public-tools.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"public-tools.d.ts","sourceRoot":"","sources":["../src/public-tools.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIlD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAG7E,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC1F,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAItE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,GAC3B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,kCAAkC,CAAA;AAIzC,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAIpF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAI9C,OAAO,EACN,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,GACpB,MAAM,mCAAmC,CAAA"}
|
package/dist/public-tools.js
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
// See §4.3 of `docs.local/sessions/ses_011-sdk-public-surface/design.md`.
|
|
11
11
|
// ─── Tool definition primitive ───────────────────────────────────────────
|
|
12
12
|
export { defineTool } from './tools/defineTool.js';
|
|
13
|
+
// Containment, for a host or sibling package that resolves caller-supplied
|
|
14
|
+
// paths against a root. Both were internal while three call sites outside
|
|
15
|
+
// this file needed them.
|
|
16
|
+
export { isWithin, resolveWithin, resolveWithinReal } from './tools/paths.js';
|
|
13
17
|
// A host that surfaces its own untrusted content to a model needs the same
|
|
14
18
|
// framing the kernel applies to connector prompts and delegated results.
|
|
15
19
|
export { neutralizeEnvelopeDelimiter, wrapUntrusted } from './tools/untrusted-envelope.js';
|
package/dist/public-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-tools.js","sourceRoot":"","sources":["../src/public-tools.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,yEAAyE;AACzE,EAAE;AACF,0EAA0E;AAE1E,4EAA4E;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,2EAA2E;AAC3E,yEAAyE;AACzE,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAG1F,4EAA4E;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,GAC3B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,kCAAkC,CAAA;AAEzC,4EAA4E;AAE5E,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAyB,MAAM,8BAA8B,CAAA;AAEpF,4EAA4E;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,4EAA4E;AAE5E,OAAO,EACN,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,GACpB,MAAM,mCAAmC,CAAA"}
|
|
1
|
+
{"version":3,"file":"public-tools.js","sourceRoot":"","sources":["../src/public-tools.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,yEAAyE;AACzE,EAAE;AACF,0EAA0E;AAE1E,4EAA4E;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,2EAA2E;AAC3E,0EAA0E;AAC1E,yBAAyB;AACzB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,2EAA2E;AAC3E,yEAAyE;AACzE,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAG1F,4EAA4E;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,GAC3B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,kCAAkC,CAAA;AAEzC,4EAA4E;AAE5E,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAyB,MAAM,8BAA8B,CAAA;AAEpF,4EAA4E;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,4EAA4E;AAE5E,OAAO,EACN,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,GACpB,MAAM,mCAAmC,CAAA"}
|
|
@@ -144,6 +144,11 @@ describe('query stream recovery', () => {
|
|
|
144
144
|
const events = [];
|
|
145
145
|
const run = await drainQuery({
|
|
146
146
|
provider: new ClassifiedFailureProvider(),
|
|
147
|
+
// Retry off: this pins METADATA at the boundary, and a throttle
|
|
148
|
+
// is genuinely retryable — leaving retry on would spend the run's
|
|
149
|
+
// whole timeout backing off and settle it as a timeout instead,
|
|
150
|
+
// testing the retry policy rather than the thing named here.
|
|
151
|
+
retry: { maxRetries: 0 },
|
|
147
152
|
tools: new ToolRegistry(),
|
|
148
153
|
runConfig: {
|
|
149
154
|
model: 'mock-model',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-recovery.test.js","sourceRoot":"","sources":["../../../../src/runtime/query/__tests__/stream-recovery.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stream-recovery.test.js","sourceRoot":"","sources":["../../../../src/runtime/query/__tests__/stream-recovery.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,22 +81,5 @@ export declare function isProviderError(err: unknown): err is ProviderError;
|
|
|
81
81
|
* settles it as `cancelled`. It must never be reclassified or retried.
|
|
82
82
|
*/
|
|
83
83
|
export declare function isAbortError(err: unknown): boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Turn whatever a driver threw into a {@link ProviderError}.
|
|
86
|
-
*
|
|
87
|
-
* Precedence is deliberate: a STRUCTURAL code is the most specific
|
|
88
|
-
* signal, then HTTP status, then transport errno, then message text. `context_length_exceeded` is checked
|
|
89
|
-
* ahead of the generic 400 mapping because it is the one 4xx the runtime
|
|
90
|
-
* can actually act on (shed history and retry) rather than surface.
|
|
91
|
-
*
|
|
92
|
-
* Every signal is read across the WHOLE cause chain, not off the error
|
|
93
|
-
* handed in. Wrapping is the normal case — a vendor SDK wraps its
|
|
94
|
-
* transport error and the runtime wraps again on the way out — and reading
|
|
95
|
-
* only the outer link meant a rate limit wrapped once classified as
|
|
96
|
-
* `unknown`, which is non-retryable. The retry policy was therefore dead
|
|
97
|
-
* for every failure that was not the outermost throwable.
|
|
98
|
-
*
|
|
99
|
-
* Aborts are passed through untouched — see {@link isAbortError}.
|
|
100
|
-
*/
|
|
101
84
|
export declare function classifyProviderError(err: unknown, providerId?: string, now?: number): ProviderError;
|
|
102
85
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/provider/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB;AAC5B,qEAAqE;AACnE,YAAY;AACd,2DAA2D;GACzD,YAAY;AACd,+BAA+B;GAC7B,cAAc;AAChB,+CAA+C;GAC7C,SAAS;AACX,uDAAuD;GACrD,SAAS;AACX,sCAAsC;GACpC,MAAM;AACR,4CAA4C;GAC1C,iBAAiB;AACnB,0EAA0E;GACxE,yBAAyB;AAC3B,8CAA8C;GAC5C,gBAAgB;AAClB,uCAAuC;GACrC,WAAW;AACb,gDAAgD;GAC9C,SAAS,CAAA;AAEZ,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAMnE;AAWD,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;gBAEf,IAAI,EAAE,iBAAiB;CAenC;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAElE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOlD;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/provider/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB;AAC5B,qEAAqE;AACnE,YAAY;AACd,2DAA2D;GACzD,YAAY;AACd,+BAA+B;GAC7B,cAAc;AAChB,+CAA+C;GAC7C,SAAS;AACX,uDAAuD;GACrD,SAAS;AACX,sCAAsC;GACpC,MAAM;AACR,4CAA4C;GAC1C,iBAAiB;AACnB,0EAA0E;GACxE,yBAAyB;AAC3B,8CAA8C;GAC5C,gBAAgB;AAClB,uCAAuC;GACrC,WAAW;AACb,gDAAgD;GAC9C,SAAS,CAAA;AAEZ,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAMnE;AAWD,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;gBAEf,IAAI,EAAE,iBAAiB;CAenC;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAElE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOlD;AAsSD,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,OAAO,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,GAAG,GAAE,MAAmB,GACtB,aAAa,CAsHf"}
|
|
@@ -293,9 +293,69 @@ function codeFromStructure(err) {
|
|
|
293
293
|
*
|
|
294
294
|
* Aborts are passed through untouched — see {@link isAbortError}.
|
|
295
295
|
*/
|
|
296
|
+
/**
|
|
297
|
+
* Every `ProviderErrorKind`, mapped to what the runtime acts on.
|
|
298
|
+
*
|
|
299
|
+
* Read structurally rather than with `instanceof`: a driver in one package
|
|
300
|
+
* throws this and the runtime in another reads it, and two copies of the SDK
|
|
301
|
+
* in one process make `instanceof` unreliable — the same reason
|
|
302
|
+
* `isProviderRequestError` exists.
|
|
303
|
+
*
|
|
304
|
+
* `retryable` here is about whether resending the SAME request could succeed.
|
|
305
|
+
* `context_overflow` is correctly false — an identical prompt overflows
|
|
306
|
+
* identically — and it maps to `context_length_exceeded` so the loop can reach
|
|
307
|
+
* for compaction, which is a different remedy than a retry.
|
|
308
|
+
*/
|
|
309
|
+
const KIND_TO_CODE = {
|
|
310
|
+
throttle: { code: 'rate_limit', retryable: true },
|
|
311
|
+
network: { code: 'network', retryable: true },
|
|
312
|
+
server: { code: 'server_error', retryable: true },
|
|
313
|
+
auth: { code: 'auth', retryable: false },
|
|
314
|
+
context_overflow: { code: 'context_length_exceeded', retryable: false },
|
|
315
|
+
bad_request: { code: 'invalid_request', retryable: false },
|
|
316
|
+
};
|
|
317
|
+
function classifyFromProviderRequestError(err, providerId, now) {
|
|
318
|
+
if (!(err instanceof Error) || err.name !== 'ProviderRequestError')
|
|
319
|
+
return undefined;
|
|
320
|
+
const candidate = err;
|
|
321
|
+
if (typeof candidate.kind !== 'string')
|
|
322
|
+
return undefined;
|
|
323
|
+
const mapped = KIND_TO_CODE[candidate.kind];
|
|
324
|
+
if (!mapped)
|
|
325
|
+
return undefined;
|
|
326
|
+
const retryAfterMs = typeof candidate.retryAfterMs === 'number' ? candidate.retryAfterMs : readRetryAfterMs(err, now);
|
|
327
|
+
return new ProviderError({
|
|
328
|
+
code: mapped.code,
|
|
329
|
+
message: err.message,
|
|
330
|
+
retryable: mapped.retryable,
|
|
331
|
+
cause: err,
|
|
332
|
+
...(typeof candidate.providerId === 'string'
|
|
333
|
+
? { providerId: candidate.providerId }
|
|
334
|
+
: providerId !== undefined
|
|
335
|
+
? { providerId }
|
|
336
|
+
: {}),
|
|
337
|
+
...(typeof candidate.status === 'number' ? { status: candidate.status } : {}),
|
|
338
|
+
...(retryAfterMs !== undefined ? { retryAfterMs } : {}),
|
|
339
|
+
});
|
|
340
|
+
}
|
|
296
341
|
export function classifyProviderError(err, providerId, now = Date.now()) {
|
|
297
342
|
if (isProviderError(err))
|
|
298
343
|
return err;
|
|
344
|
+
// A driver that already classified its own failure is read FIRST, and by
|
|
345
|
+
// its `kind` — the field it set on purpose.
|
|
346
|
+
//
|
|
347
|
+
// Without this the classifier fell through to the status heuristics, where
|
|
348
|
+
// a `ProviderRequestError` carrying `kind: 'context_overflow'` and a 400
|
|
349
|
+
// became `invalid_request`, non-retryable. Three of the six kinds landed
|
|
350
|
+
// wrong that way, and the consequences were not cosmetic: the loop's
|
|
351
|
+
// overflow branch tests for `context_length_exceeded`, so compaction relief
|
|
352
|
+
// — the one provider failure this kernel can actually do something about —
|
|
353
|
+
// was unreachable for exactly the drivers that had diagnosed it correctly.
|
|
354
|
+
// A driver that classified its own error came out worse than one that did
|
|
355
|
+
// not, which is the opposite of the incentive the type was created for.
|
|
356
|
+
const fromKind = classifyFromProviderRequestError(err, providerId, now);
|
|
357
|
+
if (fromKind)
|
|
358
|
+
return fromKind;
|
|
299
359
|
const message = err instanceof Error ? err.message : String(err);
|
|
300
360
|
const status = readStatus(err);
|
|
301
361
|
const errno = readErrnoCode(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/provider/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/provider/errors.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
|
|
3
|
+
import { classifyProviderError } from '../../types/provider/errors.js'
|
|
4
|
+
import type { LLMProvider, StreamChunk } from '../../types/provider/index.js'
|
|
5
|
+
import { ProviderRequestError } from '../errors.js'
|
|
6
|
+
import { withProviderRetry } from '../retry.js'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A driver that classified its own failure was coming out WORSE than one that
|
|
10
|
+
* did not, in two independent places, and both shipped.
|
|
11
|
+
*
|
|
12
|
+
* `classifyProviderError` never read `kind`. A `ProviderRequestError` fell
|
|
13
|
+
* through to the status heuristics, where a carefully-diagnosed
|
|
14
|
+
* `context_overflow` carrying a 400 became `invalid_request` — so the run
|
|
15
|
+
* loop's overflow branch, which tests for `context_length_exceeded`, could
|
|
16
|
+
* never fire for a first-party driver, and compaction relief was unreachable
|
|
17
|
+
* for exactly the drivers that had diagnosed the problem correctly.
|
|
18
|
+
*
|
|
19
|
+
* And `withProviderRetry` rethrew any such error before the retry loop. Its
|
|
20
|
+
* comment justified preserving the classification, which is right; the code
|
|
21
|
+
* also skipped retrying, which is a different decision that nobody made.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function providerThatFails(err: unknown): { provider: LLMProvider; calls: () => number } {
|
|
25
|
+
let calls = 0
|
|
26
|
+
const provider = {
|
|
27
|
+
id: 'test',
|
|
28
|
+
name: 'Test',
|
|
29
|
+
async *chatStream(): AsyncIterable<StreamChunk> {
|
|
30
|
+
calls++
|
|
31
|
+
throw err
|
|
32
|
+
// biome-ignore lint/correctness/useYield: it fails before producing anything
|
|
33
|
+
},
|
|
34
|
+
} as unknown as LLMProvider
|
|
35
|
+
return { provider, calls: () => calls }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const typed = (kind: string, status: number) =>
|
|
39
|
+
new ProviderRequestError({ kind, providerId: 'test', status, message: `a ${kind}` } as never)
|
|
40
|
+
|
|
41
|
+
describe('a driver that classified its own failure is believed', () => {
|
|
42
|
+
const cases: readonly [string, number, string, boolean][] = [
|
|
43
|
+
['throttle', 429, 'rate_limit', true],
|
|
44
|
+
['server', 500, 'server_error', true],
|
|
45
|
+
['network', 0, 'network', true],
|
|
46
|
+
['auth', 401, 'auth', false],
|
|
47
|
+
['bad_request', 400, 'invalid_request', false],
|
|
48
|
+
// The one that mattered most: a 400 whose kind says the prompt was too
|
|
49
|
+
// long is not a bad request, and the difference decides whether the
|
|
50
|
+
// kernel reaches for compaction.
|
|
51
|
+
['context_overflow', 400, 'context_length_exceeded', false],
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
for (const [kind, status, code, retryable] of cases) {
|
|
55
|
+
it(`maps kind "${kind}" to ${code}`, () => {
|
|
56
|
+
const classified = classifyProviderError(typed(kind, status), 'test')
|
|
57
|
+
expect(classified.code).toBe(code)
|
|
58
|
+
expect(classified.retryable).toBe(retryable)
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
it('keeps the driver-supplied status and provider id', () => {
|
|
63
|
+
const classified = classifyProviderError(typed('throttle', 429), 'other')
|
|
64
|
+
expect(classified.status).toBe(429)
|
|
65
|
+
expect(classified.providerId).toBe('test')
|
|
66
|
+
})
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
describe('a classified failure still goes through the retry loop', () => {
|
|
70
|
+
it('retries a typed throttle', async () => {
|
|
71
|
+
// This is the regression: a first-party driver reporting a 429 as
|
|
72
|
+
// `kind: 'throttle'` used to get exactly one attempt, while the same
|
|
73
|
+
// failure from a driver that classified nothing got the full backoff.
|
|
74
|
+
const { provider, calls } = providerThatFails(typed('throttle', 429))
|
|
75
|
+
const wrapped = withProviderRetry(provider, {
|
|
76
|
+
config: { maxRetries: 2 },
|
|
77
|
+
sleepFn: async () => {},
|
|
78
|
+
random: () => 0,
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
await expect(async () => {
|
|
82
|
+
for await (const _ of wrapped.chatStream({} as never)) {
|
|
83
|
+
// drain
|
|
84
|
+
}
|
|
85
|
+
}).rejects.toThrow()
|
|
86
|
+
|
|
87
|
+
expect(calls()).toBe(3)
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('does not retry a typed auth failure', async () => {
|
|
91
|
+
const { provider, calls } = providerThatFails(typed('auth', 401))
|
|
92
|
+
const wrapped = withProviderRetry(provider, {
|
|
93
|
+
config: { maxRetries: 2 },
|
|
94
|
+
sleepFn: async () => {},
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
await expect(async () => {
|
|
98
|
+
for await (const _ of wrapped.chatStream({} as never)) {
|
|
99
|
+
// drain
|
|
100
|
+
}
|
|
101
|
+
}).rejects.toThrow()
|
|
102
|
+
|
|
103
|
+
expect(calls()).toBe(1)
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
it('does not retry a typed context overflow', async () => {
|
|
107
|
+
// Correctly non-retryable — an identical prompt overflows identically.
|
|
108
|
+
// The remedy is compaction, which the run loop reaches for once the
|
|
109
|
+
// code is `context_length_exceeded`.
|
|
110
|
+
const { provider, calls } = providerThatFails(typed('context_overflow', 400))
|
|
111
|
+
const wrapped = withProviderRetry(provider, {
|
|
112
|
+
config: { maxRetries: 2 },
|
|
113
|
+
sleepFn: async () => {},
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
await expect(async () => {
|
|
117
|
+
for await (const _ of wrapped.chatStream({} as never)) {
|
|
118
|
+
// drain
|
|
119
|
+
}
|
|
120
|
+
// The ORIGINAL escapes, so the boundary still sees the driver's
|
|
121
|
+
// own kind rather than a wrapper's code.
|
|
122
|
+
}).rejects.toMatchObject({ kind: 'context_overflow', status: 400 })
|
|
123
|
+
|
|
124
|
+
expect(calls()).toBe(1)
|
|
125
|
+
})
|
|
126
|
+
|
|
127
|
+
it('leaves an abort alone', async () => {
|
|
128
|
+
const abort = Object.assign(new Error('aborted'), { name: 'AbortError' })
|
|
129
|
+
const { provider, calls } = providerThatFails(abort)
|
|
130
|
+
const wrapped = withProviderRetry(provider, {
|
|
131
|
+
config: { maxRetries: 2 },
|
|
132
|
+
sleepFn: async () => {},
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
await expect(async () => {
|
|
136
|
+
for await (const _ of wrapped.chatStream({} as never)) {
|
|
137
|
+
// drain
|
|
138
|
+
}
|
|
139
|
+
}).rejects.toThrow(/aborted/)
|
|
140
|
+
|
|
141
|
+
expect(calls()).toBe(1)
|
|
142
|
+
})
|
|
143
|
+
})
|
package/src/provider/retry.ts
CHANGED
|
@@ -111,12 +111,19 @@ export function withProviderRetry(
|
|
|
111
111
|
return
|
|
112
112
|
} catch (err) {
|
|
113
113
|
if (isAbortError(err) || params.signal?.aborted) throw err
|
|
114
|
-
// A driver that already classified its own failure
|
|
115
|
-
//
|
|
116
|
-
// first
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
114
|
+
// A driver that already classified its own failure keeps that
|
|
115
|
+
// classification — `classifyProviderError` reads its `kind`
|
|
116
|
+
// first and does not re-guess.
|
|
117
|
+
//
|
|
118
|
+
// This used to rethrow such an error outright. The stated reason
|
|
119
|
+
// was sound and the code did more than it said: preserving a
|
|
120
|
+
// first-hand classification is one thing, and skipping the retry
|
|
121
|
+
// loop is another. A first-party driver that correctly reported
|
|
122
|
+
// a 429 as `kind: 'throttle'` got ZERO attempts, while the same
|
|
123
|
+
// failure from a driver that classified nothing got the full
|
|
124
|
+
// backoff — so diagnosing your own error was punished. Whether
|
|
125
|
+
// to retry is now decided the same way for both, by the
|
|
126
|
+
// classification's own `retryable`.
|
|
120
127
|
const classified = classifyProviderError(err, provider.id)
|
|
121
128
|
const exhausted = attempt >= config.maxRetries
|
|
122
129
|
|
|
@@ -133,7 +140,16 @@ export function withProviderRetry(
|
|
|
133
140
|
? 'retries exhausted'
|
|
134
141
|
: 'not retryable',
|
|
135
142
|
})
|
|
136
|
-
|
|
143
|
+
// The ORIGINAL escapes when the driver classified it. Two
|
|
144
|
+
// different consumers want two different things and both are
|
|
145
|
+
// right: this loop needs a retryable verdict, which the
|
|
146
|
+
// classification supplies, and the run boundary reports
|
|
147
|
+
// `lastProviderError` as the driver's own `{kind, status,
|
|
148
|
+
// retryAfterMs}`, which only survives if the error itself
|
|
149
|
+
// does. Wrapping here would have kept the retry fix and lost
|
|
150
|
+
// the vendor's `kind` at the boundary — the existing
|
|
151
|
+
// stream-recovery test caught exactly that.
|
|
152
|
+
throw isProviderRequestError(err) ? err : classified
|
|
137
153
|
}
|
|
138
154
|
|
|
139
155
|
const serverDirected = classified.retryAfterMs
|
package/src/public-tools.ts
CHANGED
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
// ─── Tool definition primitive ───────────────────────────────────────────
|
|
13
13
|
|
|
14
14
|
export { defineTool } from './tools/defineTool.js'
|
|
15
|
+
// Containment, for a host or sibling package that resolves caller-supplied
|
|
16
|
+
// paths against a root. Both were internal while three call sites outside
|
|
17
|
+
// this file needed them.
|
|
18
|
+
export { isWithin, resolveWithin, resolveWithinReal } from './tools/paths.js'
|
|
15
19
|
// A host that surfaces its own untrusted content to a model needs the same
|
|
16
20
|
// framing the kernel applies to connector prompts and delegated results.
|
|
17
21
|
export { neutralizeEnvelopeDelimiter, wrapUntrusted } from './tools/untrusted-envelope.js'
|
|
@@ -182,6 +182,11 @@ describe('query stream recovery', () => {
|
|
|
182
182
|
const run = await drainQuery(
|
|
183
183
|
{
|
|
184
184
|
provider: new ClassifiedFailureProvider(),
|
|
185
|
+
// Retry off: this pins METADATA at the boundary, and a throttle
|
|
186
|
+
// is genuinely retryable — leaving retry on would spend the run's
|
|
187
|
+
// whole timeout backing off and settle it as a timeout instead,
|
|
188
|
+
// testing the retry policy rather than the thing named here.
|
|
189
|
+
retry: { maxRetries: 0 },
|
|
185
190
|
tools: new ToolRegistry(),
|
|
186
191
|
runConfig: {
|
|
187
192
|
model: 'mock-model',
|
|
@@ -362,6 +362,62 @@ function codeFromStructure(err: unknown): ProviderErrorCode | undefined {
|
|
|
362
362
|
*
|
|
363
363
|
* Aborts are passed through untouched — see {@link isAbortError}.
|
|
364
364
|
*/
|
|
365
|
+
/**
|
|
366
|
+
* Every `ProviderErrorKind`, mapped to what the runtime acts on.
|
|
367
|
+
*
|
|
368
|
+
* Read structurally rather than with `instanceof`: a driver in one package
|
|
369
|
+
* throws this and the runtime in another reads it, and two copies of the SDK
|
|
370
|
+
* in one process make `instanceof` unreliable — the same reason
|
|
371
|
+
* `isProviderRequestError` exists.
|
|
372
|
+
*
|
|
373
|
+
* `retryable` here is about whether resending the SAME request could succeed.
|
|
374
|
+
* `context_overflow` is correctly false — an identical prompt overflows
|
|
375
|
+
* identically — and it maps to `context_length_exceeded` so the loop can reach
|
|
376
|
+
* for compaction, which is a different remedy than a retry.
|
|
377
|
+
*/
|
|
378
|
+
const KIND_TO_CODE: Readonly<Record<string, { code: ProviderErrorCode; retryable: boolean }>> = {
|
|
379
|
+
throttle: { code: 'rate_limit', retryable: true },
|
|
380
|
+
network: { code: 'network', retryable: true },
|
|
381
|
+
server: { code: 'server_error', retryable: true },
|
|
382
|
+
auth: { code: 'auth', retryable: false },
|
|
383
|
+
context_overflow: { code: 'context_length_exceeded', retryable: false },
|
|
384
|
+
bad_request: { code: 'invalid_request', retryable: false },
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
function classifyFromProviderRequestError(
|
|
388
|
+
err: unknown,
|
|
389
|
+
providerId: string | undefined,
|
|
390
|
+
now: number,
|
|
391
|
+
): ProviderError | undefined {
|
|
392
|
+
if (!(err instanceof Error) || err.name !== 'ProviderRequestError') return undefined
|
|
393
|
+
const candidate = err as Error & {
|
|
394
|
+
kind?: unknown
|
|
395
|
+
providerId?: unknown
|
|
396
|
+
status?: unknown
|
|
397
|
+
retryAfterMs?: unknown
|
|
398
|
+
}
|
|
399
|
+
if (typeof candidate.kind !== 'string') return undefined
|
|
400
|
+
const mapped = KIND_TO_CODE[candidate.kind]
|
|
401
|
+
if (!mapped) return undefined
|
|
402
|
+
|
|
403
|
+
const retryAfterMs =
|
|
404
|
+
typeof candidate.retryAfterMs === 'number' ? candidate.retryAfterMs : readRetryAfterMs(err, now)
|
|
405
|
+
|
|
406
|
+
return new ProviderError({
|
|
407
|
+
code: mapped.code,
|
|
408
|
+
message: err.message,
|
|
409
|
+
retryable: mapped.retryable,
|
|
410
|
+
cause: err,
|
|
411
|
+
...(typeof candidate.providerId === 'string'
|
|
412
|
+
? { providerId: candidate.providerId }
|
|
413
|
+
: providerId !== undefined
|
|
414
|
+
? { providerId }
|
|
415
|
+
: {}),
|
|
416
|
+
...(typeof candidate.status === 'number' ? { status: candidate.status } : {}),
|
|
417
|
+
...(retryAfterMs !== undefined ? { retryAfterMs } : {}),
|
|
418
|
+
})
|
|
419
|
+
}
|
|
420
|
+
|
|
365
421
|
export function classifyProviderError(
|
|
366
422
|
err: unknown,
|
|
367
423
|
providerId?: string,
|
|
@@ -369,6 +425,21 @@ export function classifyProviderError(
|
|
|
369
425
|
): ProviderError {
|
|
370
426
|
if (isProviderError(err)) return err
|
|
371
427
|
|
|
428
|
+
// A driver that already classified its own failure is read FIRST, and by
|
|
429
|
+
// its `kind` — the field it set on purpose.
|
|
430
|
+
//
|
|
431
|
+
// Without this the classifier fell through to the status heuristics, where
|
|
432
|
+
// a `ProviderRequestError` carrying `kind: 'context_overflow'` and a 400
|
|
433
|
+
// became `invalid_request`, non-retryable. Three of the six kinds landed
|
|
434
|
+
// wrong that way, and the consequences were not cosmetic: the loop's
|
|
435
|
+
// overflow branch tests for `context_length_exceeded`, so compaction relief
|
|
436
|
+
// — the one provider failure this kernel can actually do something about —
|
|
437
|
+
// was unreachable for exactly the drivers that had diagnosed it correctly.
|
|
438
|
+
// A driver that classified its own error came out worse than one that did
|
|
439
|
+
// not, which is the opposite of the incentive the type was created for.
|
|
440
|
+
const fromKind = classifyFromProviderRequestError(err, providerId, now)
|
|
441
|
+
if (fromKind) return fromKind
|
|
442
|
+
|
|
372
443
|
const message = err instanceof Error ? err.message : String(err)
|
|
373
444
|
const status = readStatus(err)
|
|
374
445
|
const errno = readErrnoCode(err)
|