@namzu/bedrock 5.1.4 → 5.3.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 +16 -0
- package/dist/client.d.ts +18 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +89 -12
- package/dist/client.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client.ts +102 -11
- package/src/types.ts +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d8059dc: A response stream that closes without the provider's own end-of-response marker (a final finish reason, `message_stop`, a completed event, `done`) is now reported as a retryable network failure. Before, it ended quietly: a text answer that was cut short was accepted as complete, and a cut tool call reached the model as a cut-off call. A stream that ends with its marker is unchanged.
|
|
8
|
+
|
|
9
|
+
This also reaches servers that speak the OpenAI wire (`@namzu/openai` is the driver behind several hosted and local endpoints): one that closes a finished answer with only `[DONE]` and never sends a finish reason used to read as a finished answer and is now retried, and after the retries are spent the turn pauses. If your server behaves that way, make it send a finish reason on the last chunk. If you test a driver with a fake stream, end it with the marker.
|
|
10
|
+
|
|
11
|
+
## 5.2.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 38d62f7: Compact a large conversation that nobody is using just before its one-hour prompt cache expires, so coming back does not re-write the whole context. Off by default: nothing changes until you set `compaction.idleCompaction: true` (and `compaction.promptCacheTtl: 1h`, because only a one-hour cache is worth it) in the config file. `compaction.idleCompactionMinTokens` (default 200,000) and the `NAMZU_IDLE_COMPACT_MIN_TOKENS` variable set the smallest context worth it. A one-hour cache costs more per write than the five-minute default, which stays the default.
|
|
16
|
+
|
|
17
|
+
Additive for callers: `@namzu/sdk` adds optional `TokenUsage.cacheTtlMs` and `cacheWriteTtlTokens` (per call, never summed), `CacheControl.ttl`, the `cacheTtl` provider capability, a `CacheClock` helper, an optional `cache` field on the `token_usage_updated` event, and `compactSession({ trigger: 'idle' })`. (The widened `trigger` union is in its own `@namzu/sdk` major changeset.) `@namzu/anthropic` and `@namzu/bedrock` take `promptCacheTtl: '5m' | '1h'` (Bedrock sends `1h` only to Claude 4.5 and later) and report the lifetime the service wrote.
|
|
18
|
+
|
|
3
19
|
## 5.1.4
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/client.d.ts
CHANGED
|
@@ -2,6 +2,12 @@ import type { Message as BedrockMessage, ConverseStreamOutput, ToolConfiguration
|
|
|
2
2
|
import type { ChatCompletionParams, LLMProvider, ModelInfo, ProviderCapabilities, StreamChunk, TokenUsage } from '@namzu/sdk';
|
|
3
3
|
import type { BedrockHealthReport } from './health.js';
|
|
4
4
|
import type { BedrockConfig } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Claude models on this wire that accept a one-hour cache point: the 4.5
|
|
7
|
+
* generation and later. An older model rejects the field, so it is gated by
|
|
8
|
+
* name and fails toward the default lifetime.
|
|
9
|
+
*/
|
|
10
|
+
export declare function supportsOneHourCache(modelId: string): boolean;
|
|
5
11
|
/**
|
|
6
12
|
* The conversation in Converse's shape: roles alternating, and — when
|
|
7
13
|
* `cachePoint` is set — a cache point ending the history, before the
|
|
@@ -9,8 +15,9 @@ import type { BedrockConfig } from './types.js';
|
|
|
9
15
|
*/
|
|
10
16
|
export declare function toBedrockMessages(messages: ChatCompletionParams['messages'], options?: {
|
|
11
17
|
cachePoint?: boolean;
|
|
18
|
+
cacheTtl?: '5m' | '1h';
|
|
12
19
|
}): BedrockMessage[];
|
|
13
|
-
export declare function toBedrockToolConfig(params: ChatCompletionParams, cachingEnabled?: boolean): ToolConfiguration | undefined;
|
|
20
|
+
export declare function toBedrockToolConfig(params: ChatCompletionParams, cachingEnabled?: boolean, cacheTtl?: '5m' | '1h'): ToolConfiguration | undefined;
|
|
14
21
|
/**
|
|
15
22
|
* The failure Bedrock reported as a stream EVENT rather than as a throw.
|
|
16
23
|
*
|
|
@@ -27,8 +34,17 @@ interface RawBedrockUsage {
|
|
|
27
34
|
totalTokens?: number;
|
|
28
35
|
cacheReadInputTokenCount?: number;
|
|
29
36
|
cacheWriteInputTokenCount?: number;
|
|
37
|
+
/** Cache writes by lifetime, when the service breaks them down. */
|
|
38
|
+
cacheDetails?: {
|
|
39
|
+
ttl?: string;
|
|
40
|
+
inputTokens?: number;
|
|
41
|
+
}[];
|
|
30
42
|
}
|
|
31
|
-
|
|
43
|
+
/**
|
|
44
|
+
* `requestedTtl` is the lifetime the request asked for; it stands in only when
|
|
45
|
+
* the response carries no breakdown, and only for a call that cached.
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseBedrockUsage(raw?: RawBedrockUsage, requestedTtl?: '5m' | '1h'): TokenUsage;
|
|
32
48
|
/**
|
|
33
49
|
* What this DRIVER does, not what Bedrock could do: tools are mapped
|
|
34
50
|
* to the Converse toolConfig, but user-message image `attachments`
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,OAAO,IAAI,cAAc,EAKzB,oBAAoB,EAGpB,iBAAiB,EAEjB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACX,oBAAoB,EAEpB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,UAAU,EAEV,MAAM,YAAY,CAAA;AASnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,OAAO,IAAI,cAAc,EAKzB,oBAAoB,EAGpB,iBAAiB,EAEjB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACX,oBAAoB,EAEpB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,UAAU,EAEV,MAAM,YAAY,CAAA;AASnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAiC/C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAyGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAC1C,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAO,GAC5D,cAAc,EAAE,CAqElB;AA6BD,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,oBAAoB,EAC5B,cAAc,UAAQ,EACtB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GACpB,iBAAiB,GAAG,SAAS,CA8D/B;AAYD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAQpE;AAED,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;IAClC,mEAAmE;IACnE,YAAY,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACvD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAoB/F;AA0DD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAYlC,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;IAgN3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAmCxC;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAInD;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAsD/D"}
|
package/dist/client.js
CHANGED
|
@@ -19,6 +19,26 @@ import { assertModelReachable, isAnthropicServedModel } from './model-reachabili
|
|
|
19
19
|
* decision rather than a translation.
|
|
20
20
|
*/
|
|
21
21
|
const CACHE_POINT = { cachePoint: { type: 'default' } };
|
|
22
|
+
/**
|
|
23
|
+
* The extended-lifetime cache point. Sent only when a caller asked for `'1h'`
|
|
24
|
+
* (`promptCacheTtl` or `cacheControl.ttl`) AND the model is one that accepts
|
|
25
|
+
* it; `ttl` stays unset otherwise, so a request that did not ask is byte for
|
|
26
|
+
* byte what it was.
|
|
27
|
+
*/
|
|
28
|
+
const CACHE_POINT_1H = {
|
|
29
|
+
cachePoint: { type: 'default', ttl: '1h' },
|
|
30
|
+
};
|
|
31
|
+
function cachePointFor(ttl) {
|
|
32
|
+
return ttl === '1h' ? CACHE_POINT_1H : CACHE_POINT;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Claude models on this wire that accept a one-hour cache point: the 4.5
|
|
36
|
+
* generation and later. An older model rejects the field, so it is gated by
|
|
37
|
+
* name and fails toward the default lifetime.
|
|
38
|
+
*/
|
|
39
|
+
export function supportsOneHourCache(modelId) {
|
|
40
|
+
return /claude-(?:haiku|sonnet|opus)-(?:4-(?:[5-9]|\d{2})|[5-9])(?![0-9])/.test(modelId);
|
|
41
|
+
}
|
|
22
42
|
/**
|
|
23
43
|
* System text, with a cache point after the last STATIC block.
|
|
24
44
|
*
|
|
@@ -32,7 +52,7 @@ const CACHE_POINT = { cachePoint: { type: 'default' } };
|
|
|
32
52
|
* No static block means no system breakpoint, rather than a breakpoint in
|
|
33
53
|
* an arbitrary place.
|
|
34
54
|
*/
|
|
35
|
-
function extractSystemBlocks(messages, cachingEnabled = false) {
|
|
55
|
+
function extractSystemBlocks(messages, cachingEnabled = false, cacheTtl) {
|
|
36
56
|
const blocks = [];
|
|
37
57
|
let lastStatic = -1;
|
|
38
58
|
for (const m of messages) {
|
|
@@ -43,7 +63,7 @@ function extractSystemBlocks(messages, cachingEnabled = false) {
|
|
|
43
63
|
lastStatic = blocks.length - 1;
|
|
44
64
|
}
|
|
45
65
|
if (cachingEnabled && lastStatic >= 0)
|
|
46
|
-
blocks.splice(lastStatic + 1, 0,
|
|
66
|
+
blocks.splice(lastStatic + 1, 0, cachePointFor(cacheTtl));
|
|
47
67
|
return blocks;
|
|
48
68
|
}
|
|
49
69
|
/**
|
|
@@ -74,11 +94,11 @@ function isRequestOnlyContext(msg) {
|
|
|
74
94
|
* point after the request-only context would put text the next request
|
|
75
95
|
* replaces inside the cached prefix, so every read would miss.
|
|
76
96
|
*/
|
|
77
|
-
function applyMessageCachePoint(messages, cacheEnd) {
|
|
97
|
+
function applyMessageCachePoint(messages, cacheEnd, cacheTtl) {
|
|
78
98
|
for (let i = cacheEnd - 1; i >= 0; i--) {
|
|
79
99
|
const content = messages[i]?.content;
|
|
80
100
|
if (content && content.length > 0) {
|
|
81
|
-
content.push(
|
|
101
|
+
content.push(cachePointFor(cacheTtl));
|
|
82
102
|
return;
|
|
83
103
|
}
|
|
84
104
|
}
|
|
@@ -173,7 +193,7 @@ export function toBedrockMessages(messages, options = {}) {
|
|
|
173
193
|
// Placed before the merge, which may fold the context into the last
|
|
174
194
|
// history message; the point then sits between the two in one message.
|
|
175
195
|
if (options.cachePoint)
|
|
176
|
-
applyMessageCachePoint(out, cacheEnd ?? out.length);
|
|
196
|
+
applyMessageCachePoint(out, cacheEnd ?? out.length, options.cacheTtl);
|
|
177
197
|
return mergeConsecutiveRoles(out);
|
|
178
198
|
}
|
|
179
199
|
function messagesContainToolBlocks(messages) {
|
|
@@ -200,7 +220,7 @@ function extractToolNamesFromHistory(messages) {
|
|
|
200
220
|
}
|
|
201
221
|
return Array.from(names);
|
|
202
222
|
}
|
|
203
|
-
export function toBedrockToolConfig(params, cachingEnabled = false) {
|
|
223
|
+
export function toBedrockToolConfig(params, cachingEnabled = false, cacheTtl) {
|
|
204
224
|
// 'none' means the model must not call a tool. This used to map to the
|
|
205
225
|
// wire's 'auto', which means it MAY — the opposite, and silent. No wire
|
|
206
226
|
// format lets a model call a tool it was never given, so send none.
|
|
@@ -232,7 +252,7 @@ export function toBedrockToolConfig(params, cachingEnabled = false) {
|
|
|
232
252
|
// are the literal string `(completed)`, so caching them would pin a
|
|
233
253
|
// prefix that is not the caller's tool set.
|
|
234
254
|
if (cachingEnabled)
|
|
235
|
-
tools.push(
|
|
255
|
+
tools.push(cachePointFor(cacheTtl));
|
|
236
256
|
const toolChoice = formatToolChoice(params.toolChoice);
|
|
237
257
|
return { tools, toolChoice };
|
|
238
258
|
}
|
|
@@ -278,7 +298,11 @@ export function streamFailureIn(event) {
|
|
|
278
298
|
('throttlingException' in event ? event.throttlingException : undefined) ??
|
|
279
299
|
('serviceUnavailableException' in event ? event.serviceUnavailableException : undefined));
|
|
280
300
|
}
|
|
281
|
-
|
|
301
|
+
/**
|
|
302
|
+
* `requestedTtl` is the lifetime the request asked for; it stands in only when
|
|
303
|
+
* the response carries no breakdown, and only for a call that cached.
|
|
304
|
+
*/
|
|
305
|
+
export function parseBedrockUsage(raw, requestedTtl) {
|
|
282
306
|
if (!raw) {
|
|
283
307
|
return {
|
|
284
308
|
promptTokens: 0,
|
|
@@ -296,6 +320,37 @@ export function parseBedrockUsage(raw) {
|
|
|
296
320
|
totalTokens: raw.totalTokens ?? input + output,
|
|
297
321
|
cachedTokens: raw.cacheReadInputTokenCount ?? 0,
|
|
298
322
|
cacheWriteTokens: raw.cacheWriteInputTokenCount ?? 0,
|
|
323
|
+
...cacheLifetime(raw, requestedTtl),
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
function cacheLifetime(raw, requestedTtl) {
|
|
327
|
+
let fiveMin = 0;
|
|
328
|
+
let oneHour = 0;
|
|
329
|
+
for (const detail of raw.cacheDetails ?? []) {
|
|
330
|
+
if (detail.ttl === '1h')
|
|
331
|
+
oneHour += detail.inputTokens ?? 0;
|
|
332
|
+
else if (detail.ttl === '5m')
|
|
333
|
+
fiveMin += detail.inputTokens ?? 0;
|
|
334
|
+
}
|
|
335
|
+
const cacheTtlMs = oneHour > 0
|
|
336
|
+
? 3_600_000
|
|
337
|
+
: fiveMin > 0
|
|
338
|
+
? 300_000
|
|
339
|
+
: requestedTtl === undefined
|
|
340
|
+
? undefined
|
|
341
|
+
: requestedTtl === '1h'
|
|
342
|
+
? 3_600_000
|
|
343
|
+
: 300_000;
|
|
344
|
+
return {
|
|
345
|
+
...(cacheTtlMs !== undefined ? { cacheTtlMs } : {}),
|
|
346
|
+
...(raw.cacheDetails
|
|
347
|
+
? {
|
|
348
|
+
cacheWriteTtlTokens: {
|
|
349
|
+
...(fiveMin > 0 ? { fiveMin } : {}),
|
|
350
|
+
...(oneHour > 0 ? { oneHour } : {}),
|
|
351
|
+
},
|
|
352
|
+
}
|
|
353
|
+
: {}),
|
|
299
354
|
};
|
|
300
355
|
}
|
|
301
356
|
function mapStopReason(reason) {
|
|
@@ -333,6 +388,9 @@ export const BEDROCK_CAPABILITIES = {
|
|
|
333
388
|
supportsDocuments: false,
|
|
334
389
|
supportsToolResultImages: false,
|
|
335
390
|
supportsToolResultDocuments: false,
|
|
391
|
+
// `'1h'` takes effect only on Claude 4.5 and later (`supportsOneHourCache`);
|
|
392
|
+
// any other model keeps the default lifetime.
|
|
393
|
+
cacheTtl: ['5m', '1h'],
|
|
336
394
|
};
|
|
337
395
|
export class BedrockProvider {
|
|
338
396
|
id = 'bedrock';
|
|
@@ -376,9 +434,17 @@ export class BedrockProvider {
|
|
|
376
434
|
// is a rejected request, which costs a caller a working integration
|
|
377
435
|
// rather than a discount they never had.
|
|
378
436
|
const cachingEnabled = params.cacheControl !== undefined && isAnthropicServedModel(params.model);
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
const
|
|
437
|
+
// A lifetime is claimed only for a call that caches. `'1h'` is asked for
|
|
438
|
+
// only where the model accepts it; otherwise the default lifetime stands.
|
|
439
|
+
const asked = params.cacheControl?.ttl ?? this.config.promptCacheTtl;
|
|
440
|
+
const cacheTtl = !cachingEnabled
|
|
441
|
+
? undefined
|
|
442
|
+
: asked === '1h' && supportsOneHourCache(params.model)
|
|
443
|
+
? '1h'
|
|
444
|
+
: '5m';
|
|
445
|
+
const system = extractSystemBlocks(params.messages, cachingEnabled, cacheTtl);
|
|
446
|
+
const messages = toBedrockMessages(params.messages, { cachePoint: cachingEnabled, cacheTtl });
|
|
447
|
+
const toolConfig = toBedrockToolConfig(params, cachingEnabled, cacheTtl);
|
|
382
448
|
const inferenceConfig = {};
|
|
383
449
|
if (params.maxTokens !== undefined)
|
|
384
450
|
inferenceConfig.maxTokens = params.maxTokens;
|
|
@@ -424,6 +490,9 @@ export class BedrockProvider {
|
|
|
424
490
|
const requestId = response.$metadata.requestId ?? `bedrock-${Date.now()}`;
|
|
425
491
|
const activeToolCalls = new Map();
|
|
426
492
|
let toolCallIndex = 0;
|
|
493
|
+
// The stop event arrived. A stream that closes without it was cut by the
|
|
494
|
+
// connection.
|
|
495
|
+
let finished = false;
|
|
427
496
|
try {
|
|
428
497
|
for await (const event of response.stream) {
|
|
429
498
|
// Stop pulling promptly on abort; `for await` calls the stream's
|
|
@@ -500,6 +569,7 @@ export class BedrockProvider {
|
|
|
500
569
|
if ('contentBlockStop' in event) {
|
|
501
570
|
}
|
|
502
571
|
if ('messageStop' in event && event.messageStop) {
|
|
572
|
+
finished = true;
|
|
503
573
|
yield {
|
|
504
574
|
id: requestId,
|
|
505
575
|
delta: {},
|
|
@@ -512,7 +582,7 @@ export class BedrockProvider {
|
|
|
512
582
|
};
|
|
513
583
|
}
|
|
514
584
|
if ('metadata' in event && event.metadata?.usage) {
|
|
515
|
-
const usage = parseBedrockUsage(event.metadata.usage);
|
|
585
|
+
const usage = parseBedrockUsage(event.metadata.usage, cacheTtl);
|
|
516
586
|
yield {
|
|
517
587
|
id: requestId,
|
|
518
588
|
delta: {},
|
|
@@ -530,6 +600,13 @@ export class BedrockProvider {
|
|
|
530
600
|
});
|
|
531
601
|
}
|
|
532
602
|
}
|
|
603
|
+
if (!finished) {
|
|
604
|
+
throw new ProviderRequestError({
|
|
605
|
+
kind: 'network',
|
|
606
|
+
providerId: 'bedrock',
|
|
607
|
+
detail: 'the connection closed before the response finished',
|
|
608
|
+
});
|
|
609
|
+
}
|
|
533
610
|
}
|
|
534
611
|
catch (err) {
|
|
535
612
|
if (isCallerAbortError(err, params.signal))
|
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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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,6 +12,13 @@ export interface BedrockConfig {
|
|
|
12
12
|
secretAccessKey?: string;
|
|
13
13
|
sessionToken?: string;
|
|
14
14
|
timeout?: number;
|
|
15
|
+
/**
|
|
16
|
+
* How long the prompt cache lives: `'5m'` (the default) or `'1h'`. `'1h'` is
|
|
17
|
+
* sent only for Claude 4.5 and later models; any other model keeps the
|
|
18
|
+
* default. A call can override it with `cacheControl.ttl`. The longer
|
|
19
|
+
* lifetime costs more per cache write.
|
|
20
|
+
*/
|
|
21
|
+
promptCacheTtl?: '5m' | '1h';
|
|
15
22
|
}
|
|
16
23
|
export interface BedrockProviderConfig extends BedrockConfig {
|
|
17
24
|
type: 'bedrock';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,IAAI,EAAE,SAAS,CAAA;CACf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/bedrock",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.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
|
"engines": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@types/node": "^22.19.17",
|
|
58
58
|
"typescript": "^5.5.0",
|
|
59
59
|
"vitest": "^4.1.11",
|
|
60
|
-
"@namzu/sdk": "^
|
|
60
|
+
"@namzu/sdk": "^57.0.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "tsc --build",
|
package/src/client.ts
CHANGED
|
@@ -51,6 +51,29 @@ import type { BedrockConfig } from './types.js'
|
|
|
51
51
|
*/
|
|
52
52
|
const CACHE_POINT: { cachePoint: CachePointBlock } = { cachePoint: { type: 'default' } }
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* The extended-lifetime cache point. Sent only when a caller asked for `'1h'`
|
|
56
|
+
* (`promptCacheTtl` or `cacheControl.ttl`) AND the model is one that accepts
|
|
57
|
+
* it; `ttl` stays unset otherwise, so a request that did not ask is byte for
|
|
58
|
+
* byte what it was.
|
|
59
|
+
*/
|
|
60
|
+
const CACHE_POINT_1H: { cachePoint: CachePointBlock } = {
|
|
61
|
+
cachePoint: { type: 'default', ttl: '1h' },
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function cachePointFor(ttl: '5m' | '1h' | undefined): { cachePoint: CachePointBlock } {
|
|
65
|
+
return ttl === '1h' ? CACHE_POINT_1H : CACHE_POINT
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Claude models on this wire that accept a one-hour cache point: the 4.5
|
|
70
|
+
* generation and later. An older model rejects the field, so it is gated by
|
|
71
|
+
* name and fails toward the default lifetime.
|
|
72
|
+
*/
|
|
73
|
+
export function supportsOneHourCache(modelId: string): boolean {
|
|
74
|
+
return /claude-(?:haiku|sonnet|opus)-(?:4-(?:[5-9]|\d{2})|[5-9])(?![0-9])/.test(modelId)
|
|
75
|
+
}
|
|
76
|
+
|
|
54
77
|
/**
|
|
55
78
|
* System text, with a cache point after the last STATIC block.
|
|
56
79
|
*
|
|
@@ -67,6 +90,7 @@ const CACHE_POINT: { cachePoint: CachePointBlock } = { cachePoint: { type: 'defa
|
|
|
67
90
|
function extractSystemBlocks(
|
|
68
91
|
messages: ChatCompletionParams['messages'],
|
|
69
92
|
cachingEnabled = false,
|
|
93
|
+
cacheTtl?: '5m' | '1h',
|
|
70
94
|
): SystemContentBlock[] {
|
|
71
95
|
const blocks: SystemContentBlock[] = []
|
|
72
96
|
let lastStatic = -1
|
|
@@ -77,7 +101,7 @@ function extractSystemBlocks(
|
|
|
77
101
|
if (m.cacheHint === 'cache') lastStatic = blocks.length - 1
|
|
78
102
|
}
|
|
79
103
|
|
|
80
|
-
if (cachingEnabled && lastStatic >= 0) blocks.splice(lastStatic + 1, 0,
|
|
104
|
+
if (cachingEnabled && lastStatic >= 0) blocks.splice(lastStatic + 1, 0, cachePointFor(cacheTtl))
|
|
81
105
|
|
|
82
106
|
return blocks
|
|
83
107
|
}
|
|
@@ -113,11 +137,15 @@ function isRequestOnlyContext(msg: ChatCompletionParams['messages'][number]): bo
|
|
|
113
137
|
* point after the request-only context would put text the next request
|
|
114
138
|
* replaces inside the cached prefix, so every read would miss.
|
|
115
139
|
*/
|
|
116
|
-
function applyMessageCachePoint(
|
|
140
|
+
function applyMessageCachePoint(
|
|
141
|
+
messages: BedrockMessage[],
|
|
142
|
+
cacheEnd: number,
|
|
143
|
+
cacheTtl?: '5m' | '1h',
|
|
144
|
+
): void {
|
|
117
145
|
for (let i = cacheEnd - 1; i >= 0; i--) {
|
|
118
146
|
const content = messages[i]?.content
|
|
119
147
|
if (content && content.length > 0) {
|
|
120
|
-
content.push(
|
|
148
|
+
content.push(cachePointFor(cacheTtl))
|
|
121
149
|
return
|
|
122
150
|
}
|
|
123
151
|
}
|
|
@@ -156,7 +184,7 @@ function toBedrockRole(role: string): ConversationRole {
|
|
|
156
184
|
*/
|
|
157
185
|
export function toBedrockMessages(
|
|
158
186
|
messages: ChatCompletionParams['messages'],
|
|
159
|
-
options: { cachePoint?: boolean } = {},
|
|
187
|
+
options: { cachePoint?: boolean; cacheTtl?: '5m' | '1h' } = {},
|
|
160
188
|
): BedrockMessage[] {
|
|
161
189
|
const out: BedrockMessage[] = []
|
|
162
190
|
let cacheEnd: number | undefined
|
|
@@ -224,7 +252,7 @@ export function toBedrockMessages(
|
|
|
224
252
|
|
|
225
253
|
// Placed before the merge, which may fold the context into the last
|
|
226
254
|
// history message; the point then sits between the two in one message.
|
|
227
|
-
if (options.cachePoint) applyMessageCachePoint(out, cacheEnd ?? out.length)
|
|
255
|
+
if (options.cachePoint) applyMessageCachePoint(out, cacheEnd ?? out.length, options.cacheTtl)
|
|
228
256
|
return mergeConsecutiveRoles(out)
|
|
229
257
|
}
|
|
230
258
|
|
|
@@ -258,6 +286,7 @@ function extractToolNamesFromHistory(messages: ChatCompletionParams['messages'])
|
|
|
258
286
|
export function toBedrockToolConfig(
|
|
259
287
|
params: ChatCompletionParams,
|
|
260
288
|
cachingEnabled = false,
|
|
289
|
+
cacheTtl?: '5m' | '1h',
|
|
261
290
|
): ToolConfiguration | undefined {
|
|
262
291
|
// 'none' means the model must not call a tool. This used to map to the
|
|
263
292
|
// wire's 'auto', which means it MAY — the opposite, and silent. No wire
|
|
@@ -296,7 +325,7 @@ export function toBedrockToolConfig(
|
|
|
296
325
|
// references a tool the caller no longer passes; their descriptions
|
|
297
326
|
// are the literal string `(completed)`, so caching them would pin a
|
|
298
327
|
// prefix that is not the caller's tool set.
|
|
299
|
-
if (cachingEnabled) tools.push(
|
|
328
|
+
if (cachingEnabled) tools.push(cachePointFor(cacheTtl))
|
|
300
329
|
|
|
301
330
|
const toolChoice = formatToolChoice(params.toolChoice)
|
|
302
331
|
return { tools, toolChoice }
|
|
@@ -357,9 +386,15 @@ interface RawBedrockUsage {
|
|
|
357
386
|
totalTokens?: number
|
|
358
387
|
cacheReadInputTokenCount?: number
|
|
359
388
|
cacheWriteInputTokenCount?: number
|
|
389
|
+
/** Cache writes by lifetime, when the service breaks them down. */
|
|
390
|
+
cacheDetails?: { ttl?: string; inputTokens?: number }[]
|
|
360
391
|
}
|
|
361
392
|
|
|
362
|
-
|
|
393
|
+
/**
|
|
394
|
+
* `requestedTtl` is the lifetime the request asked for; it stands in only when
|
|
395
|
+
* the response carries no breakdown, and only for a call that cached.
|
|
396
|
+
*/
|
|
397
|
+
export function parseBedrockUsage(raw?: RawBedrockUsage, requestedTtl?: '5m' | '1h'): TokenUsage {
|
|
363
398
|
if (!raw) {
|
|
364
399
|
return {
|
|
365
400
|
promptTokens: 0,
|
|
@@ -377,6 +412,40 @@ export function parseBedrockUsage(raw?: RawBedrockUsage): TokenUsage {
|
|
|
377
412
|
totalTokens: raw.totalTokens ?? input + output,
|
|
378
413
|
cachedTokens: raw.cacheReadInputTokenCount ?? 0,
|
|
379
414
|
cacheWriteTokens: raw.cacheWriteInputTokenCount ?? 0,
|
|
415
|
+
...cacheLifetime(raw, requestedTtl),
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
function cacheLifetime(
|
|
420
|
+
raw: RawBedrockUsage,
|
|
421
|
+
requestedTtl: '5m' | '1h' | undefined,
|
|
422
|
+
): Pick<TokenUsage, 'cacheTtlMs' | 'cacheWriteTtlTokens'> {
|
|
423
|
+
let fiveMin = 0
|
|
424
|
+
let oneHour = 0
|
|
425
|
+
for (const detail of raw.cacheDetails ?? []) {
|
|
426
|
+
if (detail.ttl === '1h') oneHour += detail.inputTokens ?? 0
|
|
427
|
+
else if (detail.ttl === '5m') fiveMin += detail.inputTokens ?? 0
|
|
428
|
+
}
|
|
429
|
+
const cacheTtlMs =
|
|
430
|
+
oneHour > 0
|
|
431
|
+
? 3_600_000
|
|
432
|
+
: fiveMin > 0
|
|
433
|
+
? 300_000
|
|
434
|
+
: requestedTtl === undefined
|
|
435
|
+
? undefined
|
|
436
|
+
: requestedTtl === '1h'
|
|
437
|
+
? 3_600_000
|
|
438
|
+
: 300_000
|
|
439
|
+
return {
|
|
440
|
+
...(cacheTtlMs !== undefined ? { cacheTtlMs } : {}),
|
|
441
|
+
...(raw.cacheDetails
|
|
442
|
+
? {
|
|
443
|
+
cacheWriteTtlTokens: {
|
|
444
|
+
...(fiveMin > 0 ? { fiveMin } : {}),
|
|
445
|
+
...(oneHour > 0 ? { oneHour } : {}),
|
|
446
|
+
},
|
|
447
|
+
}
|
|
448
|
+
: {}),
|
|
380
449
|
}
|
|
381
450
|
}
|
|
382
451
|
|
|
@@ -418,6 +487,9 @@ export const BEDROCK_CAPABILITIES: ProviderCapabilities = {
|
|
|
418
487
|
supportsDocuments: false,
|
|
419
488
|
supportsToolResultImages: false,
|
|
420
489
|
supportsToolResultDocuments: false,
|
|
490
|
+
// `'1h'` takes effect only on Claude 4.5 and later (`supportsOneHourCache`);
|
|
491
|
+
// any other model keeps the default lifetime.
|
|
492
|
+
cacheTtl: ['5m', '1h'],
|
|
421
493
|
}
|
|
422
494
|
|
|
423
495
|
export class BedrockProvider implements LLMProvider {
|
|
@@ -471,9 +543,17 @@ export class BedrockProvider implements LLMProvider {
|
|
|
471
543
|
// rather than a discount they never had.
|
|
472
544
|
const cachingEnabled = params.cacheControl !== undefined && isAnthropicServedModel(params.model)
|
|
473
545
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
const
|
|
546
|
+
// A lifetime is claimed only for a call that caches. `'1h'` is asked for
|
|
547
|
+
// only where the model accepts it; otherwise the default lifetime stands.
|
|
548
|
+
const asked = params.cacheControl?.ttl ?? this.config.promptCacheTtl
|
|
549
|
+
const cacheTtl: '5m' | '1h' | undefined = !cachingEnabled
|
|
550
|
+
? undefined
|
|
551
|
+
: asked === '1h' && supportsOneHourCache(params.model)
|
|
552
|
+
? '1h'
|
|
553
|
+
: '5m'
|
|
554
|
+
const system = extractSystemBlocks(params.messages, cachingEnabled, cacheTtl)
|
|
555
|
+
const messages = toBedrockMessages(params.messages, { cachePoint: cachingEnabled, cacheTtl })
|
|
556
|
+
const toolConfig = toBedrockToolConfig(params, cachingEnabled, cacheTtl)
|
|
477
557
|
|
|
478
558
|
const inferenceConfig: Record<string, unknown> = {}
|
|
479
559
|
if (params.maxTokens !== undefined) inferenceConfig.maxTokens = params.maxTokens
|
|
@@ -518,6 +598,9 @@ export class BedrockProvider implements LLMProvider {
|
|
|
518
598
|
|
|
519
599
|
const activeToolCalls = new Map<number, { id: string; name: string; args: string }>()
|
|
520
600
|
let toolCallIndex = 0
|
|
601
|
+
// The stop event arrived. A stream that closes without it was cut by the
|
|
602
|
+
// connection.
|
|
603
|
+
let finished = false
|
|
521
604
|
|
|
522
605
|
try {
|
|
523
606
|
for await (const event of response.stream as AsyncIterable<ConverseStreamOutput>) {
|
|
@@ -601,6 +684,7 @@ export class BedrockProvider implements LLMProvider {
|
|
|
601
684
|
}
|
|
602
685
|
|
|
603
686
|
if ('messageStop' in event && event.messageStop) {
|
|
687
|
+
finished = true
|
|
604
688
|
yield {
|
|
605
689
|
id: requestId,
|
|
606
690
|
delta: {},
|
|
@@ -614,7 +698,7 @@ export class BedrockProvider implements LLMProvider {
|
|
|
614
698
|
}
|
|
615
699
|
|
|
616
700
|
if ('metadata' in event && event.metadata?.usage) {
|
|
617
|
-
const usage = parseBedrockUsage(event.metadata.usage as RawBedrockUsage)
|
|
701
|
+
const usage = parseBedrockUsage(event.metadata.usage as RawBedrockUsage, cacheTtl)
|
|
618
702
|
yield {
|
|
619
703
|
id: requestId,
|
|
620
704
|
delta: {},
|
|
@@ -630,6 +714,13 @@ export class BedrockProvider implements LLMProvider {
|
|
|
630
714
|
})
|
|
631
715
|
}
|
|
632
716
|
}
|
|
717
|
+
if (!finished) {
|
|
718
|
+
throw new ProviderRequestError({
|
|
719
|
+
kind: 'network',
|
|
720
|
+
providerId: 'bedrock',
|
|
721
|
+
detail: 'the connection closed before the response finished',
|
|
722
|
+
})
|
|
723
|
+
}
|
|
633
724
|
} catch (err) {
|
|
634
725
|
if (isCallerAbortError(err, params.signal)) throw params.signal?.reason ?? err
|
|
635
726
|
if (isProviderRequestError(err)) throw err
|
package/src/types.ts
CHANGED
|
@@ -13,6 +13,13 @@ export interface BedrockConfig {
|
|
|
13
13
|
secretAccessKey?: string
|
|
14
14
|
sessionToken?: string
|
|
15
15
|
timeout?: number
|
|
16
|
+
/**
|
|
17
|
+
* How long the prompt cache lives: `'5m'` (the default) or `'1h'`. `'1h'` is
|
|
18
|
+
* sent only for Claude 4.5 and later models; any other model keeps the
|
|
19
|
+
* default. A call can override it with `cacheControl.ttl`. The longer
|
|
20
|
+
* lifetime costs more per cache write.
|
|
21
|
+
*/
|
|
22
|
+
promptCacheTtl?: '5m' | '1h'
|
|
16
23
|
}
|
|
17
24
|
|
|
18
25
|
export interface BedrockProviderConfig extends BedrockConfig {
|