17 lines
696 B
TypeScript
17 lines
696 B
TypeScript
// Shared helpers for provider cache-marker lowering. Anthropic and Bedrock
|
|
// both enforce a 4-breakpoint cap per request and accept the same `5m`/`1h`
|
|
// TTL buckets, so the counter and TTL mapping live here.
|
|
|
|
export interface Breakpoints {
|
|
remaining: number
|
|
dropped: number
|
|
}
|
|
|
|
export const newBreakpoints = (cap: number): Breakpoints => ({ remaining: cap, dropped: 0 })
|
|
|
|
// Returns `"1h"` for any `ttlSeconds >= 3600`, otherwise `undefined` (the
|
|
// provider default 5m). Anthropic & Bedrock both treat anything shorter than
|
|
// an hour as 5m.
|
|
export const ttlBucket = (ttlSeconds: number | undefined): "1h" | undefined =>
|
|
ttlSeconds !== undefined && ttlSeconds >= 3600 ? "1h" : undefined
|