@namzu/bedrock 3.1.0 → 4.0.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 +50 -0
- package/dist/__tests__/error-taxonomy.test.js +16 -4
- package/dist/__tests__/error-taxonomy.test.js.map +1 -1
- package/dist/__tests__/tool-schema-dialect.test.d.ts +2 -0
- package/dist/__tests__/tool-schema-dialect.test.d.ts.map +1 -0
- package/dist/__tests__/tool-schema-dialect.test.js +98 -0
- package/dist/__tests__/tool-schema-dialect.test.js.map +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +10 -3
- package/dist/client.js.map +1 -1
- package/dist/model-reachability.d.ts +12 -0
- package/dist/model-reachability.d.ts.map +1 -1
- package/dist/model-reachability.js +14 -0
- package/dist/model-reachability.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/error-taxonomy.test.ts +16 -4
- package/src/__tests__/tool-schema-dialect.test.ts +108 -0
- package/src/client.ts +14 -4
- package/src/model-reachability.ts +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- f8355de: tool schemas are rendered in the dialect each wire actually parses
|
|
8
|
+
|
|
9
|
+
A tool with a tuple-shaped field took down every request that offered it. The
|
|
10
|
+
kernel renders one canonical JSON Schema in draft-07, where a tuple is
|
|
11
|
+
`items: [a, b]`; one of the wires namzu speaks validates tool input as JSON
|
|
12
|
+
Schema 2020-12, where that spelling is invalid and a tuple must be
|
|
13
|
+
`prefixItems`. Every driver forwarded the rendering verbatim, so the built-in
|
|
14
|
+
`read` tool — whose `readRange` is a Zod tuple — produced a 400 that rejected
|
|
15
|
+
the **whole** request, taking every other tool in the call down with it. The
|
|
16
|
+
turn died before generating a token.
|
|
17
|
+
|
|
18
|
+
The failure had nothing to do with strict tool use, which is why the guard
|
|
19
|
+
added for the previous schema outage never saw it: it fires with strict
|
|
20
|
+
validation unset, and with strict on the dialect error arrives _first_.
|
|
21
|
+
|
|
22
|
+
Which dialect a wire parses is a property of the wire, so the conversion now
|
|
23
|
+
happens at each driver's boundary rather than in the renderer:
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { toSchemaDialect, findDraft07Only } from "@namzu/sdk";
|
|
27
|
+
|
|
28
|
+
toSchemaDialect(schema, "2020-12"); // items: [a, b] -> prefixItems: [a, b]
|
|
29
|
+
findDraft07Only(schema); // paths that no 2020-12 parser will accept
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`renderToolSchema` is exported now too, so a caller assembling its own tool
|
|
33
|
+
payload gets the same memoized, `$schema`-stripped, deep-frozen rendering the
|
|
34
|
+
kernel puts on the wire — byte-identical across iterations, which matters
|
|
35
|
+
because the tools block sits at position 0 of the prompt-cache prefix.
|
|
36
|
+
|
|
37
|
+
`ToolCatalog` used to convert schemas through its own inline call with the same
|
|
38
|
+
options. Same output, none of the guarantees: no `$schema` stripping, no
|
|
39
|
+
memoization, no freeze. It goes through `renderToolSchema` now.
|
|
40
|
+
|
|
41
|
+
**Breaking, for the three drivers.** Their `@namzu/sdk` peer range was
|
|
42
|
+
`>=1.3.0` and is now `>=6.0.0`. That range was already wrong — the drivers call
|
|
43
|
+
kernel functions added well after 1.3.0 — and it would now let a package
|
|
44
|
+
manager install a combination that throws on every request carrying a tool.
|
|
45
|
+
Upgrade the kernel alongside the driver.
|
|
46
|
+
|
|
47
|
+
The conversion follows the model on multi-vendor wires. Bedrock's Converse API
|
|
48
|
+
carries several vendors through one request shape, and the 2020-12 requirement
|
|
49
|
+
was measured on one of them, so schemas bound for the others are left in the
|
|
50
|
+
dialect they were rendered in. Guessing there would trade a known break for an
|
|
51
|
+
unmeasured one.
|
|
52
|
+
|
|
3
53
|
## 3.1.0
|
|
4
54
|
|
|
5
55
|
### Minor Changes
|
|
@@ -162,10 +162,21 @@ describe('@namzu/bedrock — provider error taxonomy', () => {
|
|
|
162
162
|
providerId: 'bedrock',
|
|
163
163
|
});
|
|
164
164
|
});
|
|
165
|
-
it('
|
|
166
|
-
|
|
165
|
+
it('keeps a validation stream event’s complaint, scrubbed, and still retains no cause', async () => {
|
|
166
|
+
// This test used to assert the opposite half: that the vendor's sentence
|
|
167
|
+
// was dropped whole. That was the safe-looking reading of "an error body
|
|
168
|
+
// can echo a credential", and it cost a day of production downtime —
|
|
169
|
+
// the wire had been naming the exact offending field the entire time and
|
|
170
|
+
// the SDK deleted the sentence before anyone could read it.
|
|
171
|
+
//
|
|
172
|
+
// So the guarantee changed shape rather than weakening: what is scrubbed
|
|
173
|
+
// is anything CREDENTIAL-SHAPED, and what survives is the complaint. The
|
|
174
|
+
// `cause` half is unchanged and still matters — a `cause` survives every
|
|
175
|
+
// logger that serializes an error chain, which is how the raw body would
|
|
176
|
+
// get out regardless of what the message says.
|
|
177
|
+
const key = 'AKIAIOSFODNN7EXAMPLE';
|
|
167
178
|
const aws = new ValidationException({
|
|
168
|
-
message: `invalid
|
|
179
|
+
message: `inputSchema is invalid, echoed from key ${key}`,
|
|
169
180
|
$metadata: { httpStatusCode: 400 },
|
|
170
181
|
});
|
|
171
182
|
const err = await captureChatStreamError(providerStreaming({ validationException: aws }));
|
|
@@ -174,7 +185,8 @@ describe('@namzu/bedrock — provider error taxonomy', () => {
|
|
|
174
185
|
kind: 'bad_request',
|
|
175
186
|
providerId: 'bedrock',
|
|
176
187
|
});
|
|
177
|
-
expect(err.message).
|
|
188
|
+
expect(err.message).toContain('inputSchema is invalid');
|
|
189
|
+
expect(err.message).not.toContain(key);
|
|
178
190
|
expect('cause' in err).toBe(false);
|
|
179
191
|
});
|
|
180
192
|
it('preserves the caller abort reason when the SDK replaces the error object', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-taxonomy.test.js","sourceRoot":"","sources":["../../src/__tests__/error-taxonomy.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"error-taxonomy.test.js","sourceRoot":"","sources":["../../src/__tests__/error-taxonomy.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,gEAAgE;AAChE,SAAS,qBAAqB,CAAC,GAAY;IAC1C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC5D;IAAC,QAAkE,CAAC,MAAM,GAAG;QAC7E,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;KAC/B,CAAA;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAG,MAA8B;IAC3D,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC5D;IAAC,QAAoE,CAAC,MAAM,GAAG;QAC/E,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAClB,SAAS,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;YACxC,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;gBACvB,KAAK,CAAC,CAAC,MAAM,CAAA;YACd,CAAC,CAAC,EAAE;SACJ,CAAC;KACF,CAAA;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACpC,QAAyB,EACzB,MAAoB;IAEpB,IAAI,CAAC;QACJ,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC;YAC9C,KAAK,EAAE,2CAA2C;YAClD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3C,MAAM;SACN,CAAC,EAAE,CAAC;YACJ,QAAQ;QACT,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAA;IACX,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAChD,CAAC;AAED,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,yGAAyG,EAAE,KAAK,IAAI,EAAE;QACxH,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC;YACnC,OAAO,EAAE,qDAAqD;YAC9D,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CACD;QAAC,GAAyC,CAAC,SAAS,GAAG;YACvD,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;SAC/B,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC;YACnC,OAAO,EACN,kGAAkG;YACnG,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC;YACnC,OAAO,EAAE,6DAA6D;YACtE,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC;YACrC,OAAO,EAAE,kEAAkE;YAC3E,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,GAAG,GAAG,IAAI,2BAA2B,CAAC;YAC3C,OAAO,EAAE,8CAA8C;YACvD,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC;YACnC,OAAO,EAAE,gDAAgD;YACzD,kBAAkB,EAAE,GAAG;YACvB,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,GAAG,GAAG,IAAI,6BAA6B,CAAC;YAC7C,OAAO,EAAE,mCAAmC;YAC5C,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC;YACnC,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAEzF,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QAClG,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,yEAAyE;QACzE,4DAA4D;QAC5D,EAAE;QACF,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,+CAA+C;QAC/C,MAAM,GAAG,GAAG,sBAAsB,CAAA;QAClC,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC;YACnC,OAAO,EAAE,2CAA2C,GAAG,EAAE;YACzD,SAAS,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE;SAClC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAEzF,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,SAAS;SACrB,CAAC,CAAA;QACF,MAAM,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QAClE,MAAM,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACjD,MAAM,CAAC,OAAO,IAAK,GAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE;YAC5D,IAAI,EAAE,YAAY;SAClB,CAAC,CAAA;QACF,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExB,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAE5F,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-schema-dialect.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tool-schema-dialect.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { findDraft07Only } from '@namzu/sdk';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { toBedrockToolConfig } from '../client.js';
|
|
4
|
+
/**
|
|
5
|
+
* Converse carries Claude, so it carries Claude's schema dialect too.
|
|
6
|
+
*
|
|
7
|
+
* The kernel renders tool schemas as draft-07, where a tuple is
|
|
8
|
+
* `items: [a, b]`. Anthropic's serving layer validates `input_schema` as JSON
|
|
9
|
+
* Schema 2020-12, where that spelling is invalid — the tuple has to be
|
|
10
|
+
* `prefixItems` — and it rejects the whole request rather than ignoring the
|
|
11
|
+
* field, so one tuple-shaped tool takes down every tool in the call.
|
|
12
|
+
*
|
|
13
|
+
* That fix landed on the direct Anthropic driver and on the HTTP driver's
|
|
14
|
+
* Anthropic branch, and this driver was missed. It reaches the same models
|
|
15
|
+
* through a different front door; the validation happens in the same place.
|
|
16
|
+
*
|
|
17
|
+
* The conversion follows the MODEL, not the endpoint, because Converse is
|
|
18
|
+
* multi-vendor: `meta.llama*` and `mistral.*` come through this same function,
|
|
19
|
+
* and nothing establishes that they read 2020-12. Converting their schemas
|
|
20
|
+
* would be trading a known break for an unmeasured one.
|
|
21
|
+
*/
|
|
22
|
+
const TUPLE_TOOL = [
|
|
23
|
+
{
|
|
24
|
+
type: 'function',
|
|
25
|
+
function: {
|
|
26
|
+
name: 'read',
|
|
27
|
+
description: 'reads',
|
|
28
|
+
parameters: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
// What `z.tuple([z.number(), z.number()])` renders to.
|
|
32
|
+
readRange: {
|
|
33
|
+
type: 'array',
|
|
34
|
+
items: [{ type: 'number' }, { type: 'number' }],
|
|
35
|
+
minItems: 2,
|
|
36
|
+
maxItems: 2,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
function rangeOf(model) {
|
|
44
|
+
const config = toBedrockToolConfig({ model, messages: [], tools: TUPLE_TOOL });
|
|
45
|
+
const json = config?.tools?.[0]?.toolSpec?.inputSchema?.json;
|
|
46
|
+
const properties = json.properties;
|
|
47
|
+
return properties.readRange;
|
|
48
|
+
}
|
|
49
|
+
function schemaOf(model) {
|
|
50
|
+
const config = toBedrockToolConfig({ model, messages: [], tools: TUPLE_TOOL });
|
|
51
|
+
return config?.tools?.[0]?.toolSpec?.inputSchema?.json;
|
|
52
|
+
}
|
|
53
|
+
describe('a tuple reaches Claude on Converse in the dialect Claude reads', () => {
|
|
54
|
+
it.each([
|
|
55
|
+
['anthropic.claude-sonnet-4-20250514', 'a bare vendor id'],
|
|
56
|
+
['us.anthropic.claude-sonnet-4-5-20250929-v1:0', 'behind an inference profile'],
|
|
57
|
+
['EU.Anthropic.Claude-Opus-4-1-v1:0', 'in whatever case the caller wrote'],
|
|
58
|
+
])('converts for %s (%s)', (model) => {
|
|
59
|
+
expect(findDraft07Only(schemaOf(model))).toEqual([]);
|
|
60
|
+
const range = rangeOf(model);
|
|
61
|
+
expect(range.prefixItems).toHaveLength(2);
|
|
62
|
+
expect(range.items).toBeUndefined();
|
|
63
|
+
});
|
|
64
|
+
it('leaves another vendor on this wire alone', () => {
|
|
65
|
+
// Not timidity — the absence of a measurement. Anthropic's requirement
|
|
66
|
+
// was measured against its own wire; no such reading exists for these,
|
|
67
|
+
// and converting on a guess swaps a known break for an unknown one.
|
|
68
|
+
const range = rangeOf('meta.llama3-70b-instruct-v1:0');
|
|
69
|
+
expect(range.items).toHaveLength(2);
|
|
70
|
+
expect(range.prefixItems).toBeUndefined();
|
|
71
|
+
});
|
|
72
|
+
it('does not disturb a schema with no tuple in it', () => {
|
|
73
|
+
const config = toBedrockToolConfig({
|
|
74
|
+
model: 'anthropic.claude-sonnet-4-20250514',
|
|
75
|
+
messages: [],
|
|
76
|
+
tools: [
|
|
77
|
+
{
|
|
78
|
+
type: 'function',
|
|
79
|
+
function: {
|
|
80
|
+
name: 'ls',
|
|
81
|
+
description: 'lists',
|
|
82
|
+
parameters: {
|
|
83
|
+
type: 'object',
|
|
84
|
+
properties: { path: { type: 'string' } },
|
|
85
|
+
required: ['path'],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
expect(config?.tools?.[0]?.toolSpec?.inputSchema?.json).toEqual({
|
|
92
|
+
type: 'object',
|
|
93
|
+
properties: { path: { type: 'string' } },
|
|
94
|
+
required: ['path'],
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=tool-schema-dialect.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-schema-dialect.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-schema-dialect.test.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,OAAO,IAAI,cAAc,EAOzB,iBAAiB,EAEjB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACX,oBAAoB,EAEpB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,UAAU,EAEV,MAAM,YAAY,CAAA;AAUnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAY/C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,cAAc,EAAE,CAgE9F;AA6BD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,OAAO,IAAI,cAAc,EAOzB,iBAAiB,EAEjB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACX,oBAAoB,EAEpB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,UAAU,EAEV,MAAM,YAAY,CAAA;AAUnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAY/C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,cAAc,EAAE,CAgE9F;AA6BD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,SAAS,CAoD/F;AAYD,UAAU,eAAe;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,UAAU,CAmBnE;AAoBD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAOlC,CAAA;AAED,qBAAa,eAAgB,YAAW,WAAW;IAClD,QAAQ,CAAC,EAAE,aAAY;IACvB,QAAQ,CAAC,IAAI,iBAAgB;IAC7B,QAAQ,CAAC,YAAY,uBAAuB;IAE5C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,aAAa;IAoB1B,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IAuKrE,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAmClC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAerC"}
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BedrockRuntimeClient, ConverseCommand, ConverseStreamCommand, } from '@aws-sdk/client-bedrock-runtime';
|
|
2
|
-
import { assertThinkingUnsupported, toolResultToText } from '@namzu/sdk';
|
|
2
|
+
import { assertThinkingUnsupported, toSchemaDialect, toolResultToText } from '@namzu/sdk';
|
|
3
3
|
import { ProviderRequestError, isCallerAbortError, isProviderRequestError, providerVendorError, } from '@namzu/sdk';
|
|
4
|
-
import { assertModelReachable } from './model-reachability.js';
|
|
4
|
+
import { assertModelReachable, isAnthropicServedModel } from './model-reachability.js';
|
|
5
5
|
function extractSystemBlocks(messages) {
|
|
6
6
|
return messages
|
|
7
7
|
.filter((m) => m.role === 'system')
|
|
@@ -98,12 +98,19 @@ export function toBedrockToolConfig(params) {
|
|
|
98
98
|
if (params.toolChoice === 'none')
|
|
99
99
|
return undefined;
|
|
100
100
|
if (params.tools && params.tools.length > 0) {
|
|
101
|
+
// Claude reached through Converse is still Claude: its serving layer
|
|
102
|
+
// validates `inputSchema.json` as JSON Schema 2020-12, so a tuple
|
|
103
|
+
// rendered in draft-07's `items: [a, b]` spelling fails here for the
|
|
104
|
+
// same reason it fails on the direct wire. Converse carries other
|
|
105
|
+
// vendors too, and nothing says they read 2020-12, so the conversion
|
|
106
|
+
// follows the model rather than the endpoint.
|
|
107
|
+
const dialect = isAnthropicServedModel(params.model) ? '2020-12' : 'draft-07';
|
|
101
108
|
const tools = params.tools.map((t) => ({
|
|
102
109
|
toolSpec: {
|
|
103
110
|
name: t.function.name,
|
|
104
111
|
description: t.function.description ?? '',
|
|
105
112
|
inputSchema: {
|
|
106
|
-
json: (t.function.parameters ?? {}),
|
|
113
|
+
json: toSchemaDialect((t.function.parameters ?? {}), dialect),
|
|
107
114
|
},
|
|
108
115
|
},
|
|
109
116
|
}));
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,17 @@
|
|
|
24
24
|
* ARN-versioned model passes without this file changing, which is the correct
|
|
25
25
|
* failure direction for a list that will go stale.
|
|
26
26
|
*/
|
|
27
|
+
/**
|
|
28
|
+
* Whether this id names a model Anthropic serves.
|
|
29
|
+
*
|
|
30
|
+
* Converse is a multi-vendor wire — the same request shape carries Claude,
|
|
31
|
+
* Llama, Mistral and more — so a property of the Anthropic models is not a
|
|
32
|
+
* property of the wire. Tool input schemas are one: Anthropic's serving layer
|
|
33
|
+
* validates them against JSON Schema 2020-12 regardless of which front door the
|
|
34
|
+
* request came through, while nothing says the other vendors on this wire do.
|
|
35
|
+
* Rendering the dialect Anthropic requires, only for the models that require
|
|
36
|
+
* it, is the claim that can actually be defended.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isAnthropicServedModel(modelId: string): boolean;
|
|
27
39
|
export declare function assertModelReachable(modelId: string): void;
|
|
28
40
|
//# sourceMappingURL=model-reachability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-reachability.d.ts","sourceRoot":"","sources":["../src/model-reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA0BH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAS1D"}
|
|
1
|
+
{"version":3,"file":"model-reachability.d.ts","sourceRoot":"","sources":["../src/model-reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA0BH;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAS1D"}
|
|
@@ -45,6 +45,20 @@ const UNVERSIONED_CLAUDE = /^anthropic\.claude-(?:haiku|sonnet|opus|fable|mythos
|
|
|
45
45
|
function hasArnVersion(modelId) {
|
|
46
46
|
return /-v\d+(?::\d+)?$/.test(modelId);
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether this id names a model Anthropic serves.
|
|
50
|
+
*
|
|
51
|
+
* Converse is a multi-vendor wire — the same request shape carries Claude,
|
|
52
|
+
* Llama, Mistral and more — so a property of the Anthropic models is not a
|
|
53
|
+
* property of the wire. Tool input schemas are one: Anthropic's serving layer
|
|
54
|
+
* validates them against JSON Schema 2020-12 regardless of which front door the
|
|
55
|
+
* request came through, while nothing says the other vendors on this wire do.
|
|
56
|
+
* Rendering the dialect Anthropic requires, only for the models that require
|
|
57
|
+
* it, is the claim that can actually be defended.
|
|
58
|
+
*/
|
|
59
|
+
export function isAnthropicServedModel(modelId) {
|
|
60
|
+
return stripProfilePrefix(modelId.trim().toLowerCase()).startsWith('anthropic.');
|
|
61
|
+
}
|
|
48
62
|
export function assertModelReachable(modelId) {
|
|
49
63
|
const bare = stripProfilePrefix(modelId.trim().toLowerCase());
|
|
50
64
|
if (!bare.startsWith('anthropic.'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-reachability.js","sourceRoot":"","sources":["../src/model-reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAElE,SAAS,kBAAkB,CAAC,OAAe;IAC1C,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,oEAAoE,CAAA;AAE/F,SAAS,aAAa,CAAC,OAAe;IACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAM;IAC1C,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAM;IAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAM;IAE1C,MAAM,IAAI,KAAK,CACd,6BAA6B,OAAO,4dAA4d,CAChgB,CAAA;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"model-reachability.js","sourceRoot":"","sources":["../src/model-reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAElE,SAAS,kBAAkB,CAAC,OAAe;IAC1C,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,oEAAoE,CAAA;AAE/F,SAAS,aAAa,CAAC,OAAe;IACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACrD,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAM;IAC1C,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAM;IAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAM;IAE1C,MAAM,IAAI,KAAK,CACd,6BAA6B,OAAO,4dAA4d,CAChgB,CAAA;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/bedrock",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "AWS Bedrock LLM provider for @namzu/sdk. Provides Converse API (chat + streaming) with full tool-use support.",
|
|
5
5
|
"license": "FSL-1.1-MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"@aws-sdk/client-bedrock-runtime": "^3.1101.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@namzu/sdk": ">=
|
|
40
|
+
"@namzu/sdk": ">=6.0.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@biomejs/biome": "^1.9.4",
|
|
44
44
|
"@types/node": "^22.19.17",
|
|
45
45
|
"typescript": "^5.5.0",
|
|
46
46
|
"vitest": "^3.2.6",
|
|
47
|
-
"@namzu/sdk": "^
|
|
47
|
+
"@namzu/sdk": "^6.0.0"
|
|
48
48
|
},
|
|
49
49
|
"scripts": {
|
|
50
50
|
"build": "tsc --build",
|
|
@@ -202,10 +202,21 @@ describe('@namzu/bedrock — provider error taxonomy', () => {
|
|
|
202
202
|
})
|
|
203
203
|
})
|
|
204
204
|
|
|
205
|
-
it('
|
|
206
|
-
|
|
205
|
+
it('keeps a validation stream event’s complaint, scrubbed, and still retains no cause', async () => {
|
|
206
|
+
// This test used to assert the opposite half: that the vendor's sentence
|
|
207
|
+
// was dropped whole. That was the safe-looking reading of "an error body
|
|
208
|
+
// can echo a credential", and it cost a day of production downtime —
|
|
209
|
+
// the wire had been naming the exact offending field the entire time and
|
|
210
|
+
// the SDK deleted the sentence before anyone could read it.
|
|
211
|
+
//
|
|
212
|
+
// So the guarantee changed shape rather than weakening: what is scrubbed
|
|
213
|
+
// is anything CREDENTIAL-SHAPED, and what survives is the complaint. The
|
|
214
|
+
// `cause` half is unchanged and still matters — a `cause` survives every
|
|
215
|
+
// logger that serializes an error chain, which is how the raw body would
|
|
216
|
+
// get out regardless of what the message says.
|
|
217
|
+
const key = 'AKIAIOSFODNN7EXAMPLE'
|
|
207
218
|
const aws = new ValidationException({
|
|
208
|
-
message: `invalid
|
|
219
|
+
message: `inputSchema is invalid, echoed from key ${key}`,
|
|
209
220
|
$metadata: { httpStatusCode: 400 },
|
|
210
221
|
})
|
|
211
222
|
|
|
@@ -216,7 +227,8 @@ describe('@namzu/bedrock — provider error taxonomy', () => {
|
|
|
216
227
|
kind: 'bad_request',
|
|
217
228
|
providerId: 'bedrock',
|
|
218
229
|
})
|
|
219
|
-
expect((err as Error).message).
|
|
230
|
+
expect((err as Error).message).toContain('inputSchema is invalid')
|
|
231
|
+
expect((err as Error).message).not.toContain(key)
|
|
220
232
|
expect('cause' in (err as object)).toBe(false)
|
|
221
233
|
})
|
|
222
234
|
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { findDraft07Only } from '@namzu/sdk'
|
|
2
|
+
import { describe, expect, it } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import { toBedrockToolConfig } from '../client.js'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Converse carries Claude, so it carries Claude's schema dialect too.
|
|
8
|
+
*
|
|
9
|
+
* The kernel renders tool schemas as draft-07, where a tuple is
|
|
10
|
+
* `items: [a, b]`. Anthropic's serving layer validates `input_schema` as JSON
|
|
11
|
+
* Schema 2020-12, where that spelling is invalid — the tuple has to be
|
|
12
|
+
* `prefixItems` — and it rejects the whole request rather than ignoring the
|
|
13
|
+
* field, so one tuple-shaped tool takes down every tool in the call.
|
|
14
|
+
*
|
|
15
|
+
* That fix landed on the direct Anthropic driver and on the HTTP driver's
|
|
16
|
+
* Anthropic branch, and this driver was missed. It reaches the same models
|
|
17
|
+
* through a different front door; the validation happens in the same place.
|
|
18
|
+
*
|
|
19
|
+
* The conversion follows the MODEL, not the endpoint, because Converse is
|
|
20
|
+
* multi-vendor: `meta.llama*` and `mistral.*` come through this same function,
|
|
21
|
+
* and nothing establishes that they read 2020-12. Converting their schemas
|
|
22
|
+
* would be trading a known break for an unmeasured one.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const TUPLE_TOOL = [
|
|
26
|
+
{
|
|
27
|
+
type: 'function' as const,
|
|
28
|
+
function: {
|
|
29
|
+
name: 'read',
|
|
30
|
+
description: 'reads',
|
|
31
|
+
parameters: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
// What `z.tuple([z.number(), z.number()])` renders to.
|
|
35
|
+
readRange: {
|
|
36
|
+
type: 'array',
|
|
37
|
+
items: [{ type: 'number' }, { type: 'number' }],
|
|
38
|
+
minItems: 2,
|
|
39
|
+
maxItems: 2,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
function rangeOf(model: string): Record<string, unknown> {
|
|
48
|
+
const config = toBedrockToolConfig({ model, messages: [], tools: TUPLE_TOOL })
|
|
49
|
+
const json = config?.tools?.[0]?.toolSpec?.inputSchema?.json as Record<string, unknown>
|
|
50
|
+
const properties = json.properties as Record<string, Record<string, unknown>>
|
|
51
|
+
return properties.readRange as Record<string, unknown>
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function schemaOf(model: string): Record<string, unknown> {
|
|
55
|
+
const config = toBedrockToolConfig({ model, messages: [], tools: TUPLE_TOOL })
|
|
56
|
+
return config?.tools?.[0]?.toolSpec?.inputSchema?.json as Record<string, unknown>
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
describe('a tuple reaches Claude on Converse in the dialect Claude reads', () => {
|
|
60
|
+
it.each([
|
|
61
|
+
['anthropic.claude-sonnet-4-20250514', 'a bare vendor id'],
|
|
62
|
+
['us.anthropic.claude-sonnet-4-5-20250929-v1:0', 'behind an inference profile'],
|
|
63
|
+
['EU.Anthropic.Claude-Opus-4-1-v1:0', 'in whatever case the caller wrote'],
|
|
64
|
+
])('converts for %s (%s)', (model) => {
|
|
65
|
+
expect(findDraft07Only(schemaOf(model))).toEqual([])
|
|
66
|
+
|
|
67
|
+
const range = rangeOf(model)
|
|
68
|
+
expect(range.prefixItems).toHaveLength(2)
|
|
69
|
+
expect(range.items).toBeUndefined()
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
it('leaves another vendor on this wire alone', () => {
|
|
73
|
+
// Not timidity — the absence of a measurement. Anthropic's requirement
|
|
74
|
+
// was measured against its own wire; no such reading exists for these,
|
|
75
|
+
// and converting on a guess swaps a known break for an unknown one.
|
|
76
|
+
const range = rangeOf('meta.llama3-70b-instruct-v1:0')
|
|
77
|
+
|
|
78
|
+
expect(range.items).toHaveLength(2)
|
|
79
|
+
expect(range.prefixItems).toBeUndefined()
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
it('does not disturb a schema with no tuple in it', () => {
|
|
83
|
+
const config = toBedrockToolConfig({
|
|
84
|
+
model: 'anthropic.claude-sonnet-4-20250514',
|
|
85
|
+
messages: [],
|
|
86
|
+
tools: [
|
|
87
|
+
{
|
|
88
|
+
type: 'function',
|
|
89
|
+
function: {
|
|
90
|
+
name: 'ls',
|
|
91
|
+
description: 'lists',
|
|
92
|
+
parameters: {
|
|
93
|
+
type: 'object',
|
|
94
|
+
properties: { path: { type: 'string' } },
|
|
95
|
+
required: ['path'],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
expect(config?.tools?.[0]?.toolSpec?.inputSchema?.json).toEqual({
|
|
103
|
+
type: 'object',
|
|
104
|
+
properties: { path: { type: 'string' } },
|
|
105
|
+
required: ['path'],
|
|
106
|
+
})
|
|
107
|
+
})
|
|
108
|
+
})
|
package/src/client.ts
CHANGED
|
@@ -24,15 +24,15 @@ import type {
|
|
|
24
24
|
TokenUsage,
|
|
25
25
|
ToolChoice,
|
|
26
26
|
} from '@namzu/sdk'
|
|
27
|
-
import type { ToolResultContent } from '@namzu/sdk'
|
|
28
|
-
import { assertThinkingUnsupported, toolResultToText } from '@namzu/sdk'
|
|
27
|
+
import type { JsonSchemaDialect, ToolResultContent } from '@namzu/sdk'
|
|
28
|
+
import { assertThinkingUnsupported, toSchemaDialect, toolResultToText } from '@namzu/sdk'
|
|
29
29
|
import {
|
|
30
30
|
ProviderRequestError,
|
|
31
31
|
isCallerAbortError,
|
|
32
32
|
isProviderRequestError,
|
|
33
33
|
providerVendorError,
|
|
34
34
|
} from '@namzu/sdk'
|
|
35
|
-
import { assertModelReachable } from './model-reachability.js'
|
|
35
|
+
import { assertModelReachable, isAnthropicServedModel } from './model-reachability.js'
|
|
36
36
|
import type { BedrockConfig } from './types.js'
|
|
37
37
|
|
|
38
38
|
function extractSystemBlocks(messages: ChatCompletionParams['messages']): SystemContentBlock[] {
|
|
@@ -145,6 +145,13 @@ export function toBedrockToolConfig(params: ChatCompletionParams): ToolConfigura
|
|
|
145
145
|
if (params.toolChoice === 'none') return undefined
|
|
146
146
|
|
|
147
147
|
if (params.tools && params.tools.length > 0) {
|
|
148
|
+
// Claude reached through Converse is still Claude: its serving layer
|
|
149
|
+
// validates `inputSchema.json` as JSON Schema 2020-12, so a tuple
|
|
150
|
+
// rendered in draft-07's `items: [a, b]` spelling fails here for the
|
|
151
|
+
// same reason it fails on the direct wire. Converse carries other
|
|
152
|
+
// vendors too, and nothing says they read 2020-12, so the conversion
|
|
153
|
+
// follows the model rather than the endpoint.
|
|
154
|
+
const dialect: JsonSchemaDialect = isAnthropicServedModel(params.model) ? '2020-12' : 'draft-07'
|
|
148
155
|
const tools: Tool[] = params.tools.map(
|
|
149
156
|
(t) =>
|
|
150
157
|
({
|
|
@@ -152,7 +159,10 @@ export function toBedrockToolConfig(params: ChatCompletionParams): ToolConfigura
|
|
|
152
159
|
name: t.function.name,
|
|
153
160
|
description: t.function.description ?? '',
|
|
154
161
|
inputSchema: {
|
|
155
|
-
json: (
|
|
162
|
+
json: toSchemaDialect(
|
|
163
|
+
(t.function.parameters ?? {}) as Record<string, unknown>,
|
|
164
|
+
dialect,
|
|
165
|
+
),
|
|
156
166
|
},
|
|
157
167
|
},
|
|
158
168
|
}) as Tool,
|
|
@@ -49,6 +49,21 @@ function hasArnVersion(modelId: string): boolean {
|
|
|
49
49
|
return /-v\d+(?::\d+)?$/.test(modelId)
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Whether this id names a model Anthropic serves.
|
|
54
|
+
*
|
|
55
|
+
* Converse is a multi-vendor wire — the same request shape carries Claude,
|
|
56
|
+
* Llama, Mistral and more — so a property of the Anthropic models is not a
|
|
57
|
+
* property of the wire. Tool input schemas are one: Anthropic's serving layer
|
|
58
|
+
* validates them against JSON Schema 2020-12 regardless of which front door the
|
|
59
|
+
* request came through, while nothing says the other vendors on this wire do.
|
|
60
|
+
* Rendering the dialect Anthropic requires, only for the models that require
|
|
61
|
+
* it, is the claim that can actually be defended.
|
|
62
|
+
*/
|
|
63
|
+
export function isAnthropicServedModel(modelId: string): boolean {
|
|
64
|
+
return stripProfilePrefix(modelId.trim().toLowerCase()).startsWith('anthropic.')
|
|
65
|
+
}
|
|
66
|
+
|
|
52
67
|
export function assertModelReachable(modelId: string): void {
|
|
53
68
|
const bare = stripProfilePrefix(modelId.trim().toLowerCase())
|
|
54
69
|
if (!bare.startsWith('anthropic.')) return
|