@kindgi/adapter-model-shared 0.1.6 → 0.1.7

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `@kindgi/adapter-model-shared`
2
2
 
3
- Shared plumbing for Kindgi's model adapters: what every adapter needs to turn a vendor's API into a [`@kindgi/capabilities`](../../capabilities/) `ModelProvider` the same way.
3
+ Shared plumbing for Kindgi's model adapters: what every adapter needs to turn a vendor's API into a [`@kindgi/capabilities`](../../capabilities/) `ModelProvider` the same way. The Azure OpenAI and Amazon Bedrock adapters are built on it.
4
4
 
5
5
  Today's engine for sending the requests is the [AI SDK](https://ai-sdk.dev)'s provider packages (`@ai-sdk/*`), called at the provider-spec level (`doGenerate`). It never uses the `ai` package, its agent loop or Vercel's gateway, so no request goes anywhere but the vendor's own API. The engine sits behind one module, `@kindgi/adapter-model-shared/ai-sdk`, the only entry point whose types are a library's. Swapping it later touches that module and the adapters that hand their models in, nothing else.
6
6
 
@@ -48,8 +48,10 @@ Today's engine for sending the requests is the [AI SDK](https://ai-sdk.dev)'s pr
48
48
  - `metadata`: the registration's `ProviderMetadata`;
49
49
  - `languageModel(name, fetch)`: the engine's model for a model name, sending with the `fetch` it's given (each HTTP attempt is counted through it);
50
50
  - `providerOptions?(model)`: provider options on every call (Azure: `{ azure: { store: false } }`);
51
+ - `cacheMark?(model)`: for a vendor that caches only the prompt prefixes a request marks, the provider options that mark a prompt message for this model, or `undefined` for none (Bedrock: `{ bedrock: { cachePoint: { type: 'default' } } }` for Claude and Nova). The first system message is marked, and the last message when the call will be sent again (it has tools, or an earlier answer), as the Anthropic adapter places `cache_control`;
51
52
  - `cost(model, usage)`: the adapter's cost formula;
52
53
  - `attempts?`: HTTP attempts in all on a retryable failure (default 3);
54
+ - `fetch?`: the fetch each attempt goes through, for an endpoint the registration chose: the runtime's (`AdapterFactoryInput.fetch`, which refuses the hosts its deployment forbids). Default: the global `fetch`;
53
55
  - `beforeAttempt?(signal)`: run before each HTTP attempt, inside the retries, with the call's abort signal. An adapter signs in here (a token, a key, the runtime's identity) when its library would report a failure as a plain error, and throws a `ModelProviderError`. What it returns is that attempt's own: the adapter's code the library calls during the attempt (a credential provider, a fetch wrapper) reads it with `attemptPrepared()`, and calls running at once never see each other's;
54
56
  - `explain?(error)`: a sentence after a failed call's message, where the vendor's words don't say what to check (Bedrock's 403). The kind, status and attempts stay as they are.
55
57
 
@@ -1,4 +1,4 @@
1
- import type { LanguageModelV4, SharedV4ProviderOptions } from '@ai-sdk/provider';
1
+ import type { LanguageModelV4, LanguageModelV4Prompt, SharedV4ProviderOptions } from '@ai-sdk/provider';
2
2
  import type { ModelInfo, ModelProvider, ProviderMetadata, UsageCounters } from '@kindgi/capabilities';
3
3
  import { ModelProviderError } from '../errors.js';
4
4
  export interface AiSdkModelProviderOptions {
@@ -7,10 +7,22 @@ export interface AiSdkModelProviderOptions {
7
7
  readonly languageModel: (name: string, fetch: typeof globalThis.fetch) => LanguageModelV4;
8
8
  /** Provider options on every call (OpenAI: `store: false`). */
9
9
  readonly providerOptions?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
10
+ /**
11
+ * For a vendor that caches only the prompt prefixes a request marks (Bedrock's cache points):
12
+ * the provider options that mark a message, for a model whose prompts get marked, else
13
+ * undefined. Which messages are marked: `withCacheMarks`.
14
+ */
15
+ readonly cacheMark?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
10
16
  /** Our cost formula for this vendor, from its usage. */
11
17
  readonly cost: (model: ModelInfo, usage: UsageCounters) => number;
12
18
  /** HTTP attempts in all on a retryable failure (408, 409, 429, 5xx, network). Default 3. */
13
19
  readonly attempts?: number;
20
+ /**
21
+ * The fetch each HTTP attempt goes through, counted. For an endpoint the registration
22
+ * chose, the runtime's (`AdapterFactoryInput.fetch`, which refuses the hosts its deployment
23
+ * forbids). Default: the global `fetch`.
24
+ */
25
+ readonly fetch?: typeof globalThis.fetch;
14
26
  /**
15
27
  * Run before each HTTP attempt, inside the retries, with the call's abort signal: where an
16
28
  * adapter signs in (the runtime's identity, a key) itself, so a failure is typed by the adapter
@@ -33,4 +45,19 @@ export interface AiSdkModelProviderOptions {
33
45
  */
34
46
  export declare function attemptPrepared<T>(): T | undefined;
35
47
  export declare function createAiSdkModelProvider(options: AiSdkModelProviderOptions): ModelProvider;
48
+ /**
49
+ * The prompt with prompt-cache marks, placed as the Anthropic adapter places `cache_control`
50
+ * (`model-anthropic/src/cache.ts`):
51
+ * - the first system message: the agent's own prompt. The tools render before it, so the
52
+ * marked prefix holds them too. Later system messages (retrieved context) change from turn
53
+ * to turn, so they stay after it;
54
+ * - the last message, when another call will send this prefix again: a call with tools (the
55
+ * next step of a tool loop sends everything again plus the results) or a conversation with an
56
+ * earlier answer (its next turn does). A one-off call leaves it unmarked: its tail is never
57
+ * sent again, so a write would only cost more.
58
+ * Two marks at most, under Bedrock's four per request. A prefix shorter than the model's minimum
59
+ * isn't cached and costs nothing extra (seen live on Claude and Nova on Bedrock, 2026-10-10), so
60
+ * no marks are held back for size. The prompt passed in isn't changed.
61
+ */
62
+ export declare function withCacheMarks(prompt: LanguageModelV4Prompt, mark: SharedV4ProviderOptions, sentAgain: boolean): LanguageModelV4Prompt;
36
63
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,eAAe,EAMf,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAIV,SAAS,EAET,aAAa,EAEb,gBAAgB,EAChB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAGtE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,2FAA2F;IAC3F,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,KAAK,eAAe,CAAC;IAC1F,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,uBAAuB,GAAG,SAAS,CAAC;IACrF,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC;IAClE,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,GAAG,SAAS,CAAC;CACtE;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAElD;AAKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAsI1F"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,eAAe,EAIf,qBAAqB,EAErB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAIV,SAAS,EAET,aAAa,EAEb,gBAAgB,EAChB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAGtE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,2FAA2F;IAC3F,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,KAAK,eAAe,CAAC;IAC1F,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,uBAAuB,GAAG,SAAS,CAAC;IACrF;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,uBAAuB,GAAG,SAAS,CAAC;IAC/E,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC;IAClE,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,GAAG,SAAS,CAAC;CACtE;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAElD;AAQD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAgJ1F;AA2MD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,OAAO,GACjB,qBAAqB,CASvB"}
@@ -17,7 +17,7 @@ import { AsyncLocalStorage } from 'node:async_hooks';
17
17
  import { AISDKError, APICallError, EmptyResponseBodyError, InvalidResponseDataError, JSONParseError, TypeValidationError, } from '@ai-sdk/provider';
18
18
  import { samplingFor } from '@kindgi/capabilities';
19
19
  import { createAttemptCounter } from '@kindgi/capabilities/attempts';
20
- import { nameToolsAsSent } from '@kindgi/capabilities/tool-names';
20
+ import { nameToolsAsSent, toolIdsBySentName } from '@kindgi/capabilities/tool-names';
21
21
  import { ModelProviderError, modelProviderError } from '../errors.js';
22
22
  import { withRetries } from '../retries.js';
23
23
  /** Each attempt's `beforeAttempt` result, for the code the library calls during that attempt. */
@@ -30,12 +30,15 @@ const attemptScope = new AsyncLocalStorage();
30
30
  export function attemptPrepared() {
31
31
  return attemptScope.getStore()?.prepared;
32
32
  }
33
+ // A tool id on the wire: dots aren't allowed in tool names. A call's name comes back
34
+ // through the request's own tools (`toolIdsBySentName`), since an id can hold `__`
35
+ // itself (an MCP server names its tools as it likes); `ourName` is the fallback.
33
36
  const wireName = (name) => name.replace(/\./g, '__');
34
37
  const ourName = (name) => name.replace(/__/g, '.');
35
38
  export function createAiSdkModelProvider(options) {
36
39
  const { metadata } = options;
37
40
  const models = new Map(metadata.models.map((m) => [m.name, m]));
38
- const counter = createAttemptCounter();
41
+ const counter = createAttemptCounter(options.fetch);
39
42
  const built = new Map();
40
43
  const lm = (name) => {
41
44
  let model = built.get(name);
@@ -54,11 +57,16 @@ export function createAiSdkModelProvider(options) {
54
57
  }
55
58
  const startedAt = Date.now();
56
59
  const toolIds = input.tools?.map((t) => t.name) ?? [];
60
+ const toolIdOf = toolIdsBySentName(toolIds, wireName, ourName);
57
61
  const sampling = samplingFor(model, input);
58
62
  const maxOutputTokens = input.maxOutputTokens ?? model.maxOutputTokens;
59
63
  const extra = options.providerOptions?.(model);
64
+ const prompt = toPrompt(input.messages, { provider: metadata.id, model: input.model }, toolIds);
65
+ const mark = options.cacheMark?.(model);
60
66
  const call = {
61
- prompt: toPrompt(input.messages, { provider: metadata.id, model: input.model }, toolIds),
67
+ prompt: mark === undefined
68
+ ? prompt
69
+ : withCacheMarks(prompt, mark, toolIds.length > 0 || continues(input.messages)),
62
70
  ...(maxOutputTokens !== undefined && { maxOutputTokens }),
63
71
  ...(sampling.temperature !== undefined && { temperature: sampling.temperature }),
64
72
  ...(input.tools !== undefined &&
@@ -107,7 +115,7 @@ export function createAiSdkModelProvider(options) {
107
115
  if (part.type === 'tool-call' && part.providerExecuted !== true) {
108
116
  toolCalls.push({
109
117
  id: part.toolCallId,
110
- name: ourName(part.toolName),
118
+ name: toolIdOf(part.toolName),
111
119
  arguments: parseJson(part.input),
112
120
  });
113
121
  }
@@ -327,6 +335,44 @@ function toPrompt(messages, owner, toolIds) {
327
335
  }
328
336
  return prompt;
329
337
  }
338
+ /**
339
+ * The prompt with prompt-cache marks, placed as the Anthropic adapter places `cache_control`
340
+ * (`model-anthropic/src/cache.ts`):
341
+ * - the first system message: the agent's own prompt. The tools render before it, so the
342
+ * marked prefix holds them too. Later system messages (retrieved context) change from turn
343
+ * to turn, so they stay after it;
344
+ * - the last message, when another call will send this prefix again: a call with tools (the
345
+ * next step of a tool loop sends everything again plus the results) or a conversation with an
346
+ * earlier answer (its next turn does). A one-off call leaves it unmarked: its tail is never
347
+ * sent again, so a write would only cost more.
348
+ * Two marks at most, under Bedrock's four per request. A prefix shorter than the model's minimum
349
+ * isn't cached and costs nothing extra (seen live on Claude and Nova on Bedrock, 2026-10-10), so
350
+ * no marks are held back for size. The prompt passed in isn't changed.
351
+ */
352
+ export function withCacheMarks(prompt, mark, sentAgain) {
353
+ const out = [...prompt];
354
+ const system = out.findIndex((m) => m.role === 'system');
355
+ if (system >= 0)
356
+ out[system] = marked(out[system], mark);
357
+ const last = out.length - 1;
358
+ if (sentAgain && last >= 0 && out[last]?.role !== 'system') {
359
+ out[last] = marked(out[last], mark);
360
+ }
361
+ return out;
362
+ }
363
+ /** Whether a conversation goes on after this call: it has an earlier answer. */
364
+ function continues(messages) {
365
+ return messages.some((m) => m.role === 'assistant');
366
+ }
367
+ /** The message with the mark's options merged into its own, per provider. */
368
+ function marked(message, mark) {
369
+ const own = message.providerOptions ?? {};
370
+ const merged = { ...own };
371
+ for (const [provider, values] of Object.entries(mark)) {
372
+ merged[provider] = { ...own[provider], ...values };
373
+ }
374
+ return { ...message, providerOptions: merged };
375
+ }
330
376
  /** The error with the adapter's sentence after its message, when it has one. */
331
377
  function explained(error, explain) {
332
378
  const sentence = explain?.(error);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kindgi/adapter-model-shared",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Shared plumbing for Kindgi's model adapters: retries with counted attempts, typed errors, the reasoning state across a pause, usage onto Kindgi's counters. Today's engine is the AI SDK's provider packages, behind one module.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "@ai-sdk/provider": "4.0.25",
31
- "@kindgi/capabilities": "0.1.6"
31
+ "@kindgi/capabilities": "0.1.7"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^22.10.5",
@@ -47,7 +47,7 @@ import type {
47
47
  UsageCounters,
48
48
  } from '@kindgi/capabilities';
49
49
  import { createAttemptCounter } from '@kindgi/capabilities/attempts';
50
- import { nameToolsAsSent } from '@kindgi/capabilities/tool-names';
50
+ import { nameToolsAsSent, toolIdsBySentName } from '@kindgi/capabilities/tool-names';
51
51
 
52
52
  import { ModelProviderError, modelProviderError } from '../errors.js';
53
53
  import { type RetryableFailure, withRetries } from '../retries.js';
@@ -58,10 +58,22 @@ export interface AiSdkModelProviderOptions {
58
58
  readonly languageModel: (name: string, fetch: typeof globalThis.fetch) => LanguageModelV4;
59
59
  /** Provider options on every call (OpenAI: `store: false`). */
60
60
  readonly providerOptions?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
61
+ /**
62
+ * For a vendor that caches only the prompt prefixes a request marks (Bedrock's cache points):
63
+ * the provider options that mark a message, for a model whose prompts get marked, else
64
+ * undefined. Which messages are marked: `withCacheMarks`.
65
+ */
66
+ readonly cacheMark?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
61
67
  /** Our cost formula for this vendor, from its usage. */
62
68
  readonly cost: (model: ModelInfo, usage: UsageCounters) => number;
63
69
  /** HTTP attempts in all on a retryable failure (408, 409, 429, 5xx, network). Default 3. */
64
70
  readonly attempts?: number;
71
+ /**
72
+ * The fetch each HTTP attempt goes through, counted. For an endpoint the registration
73
+ * chose, the runtime's (`AdapterFactoryInput.fetch`, which refuses the hosts its deployment
74
+ * forbids). Default: the global `fetch`.
75
+ */
76
+ readonly fetch?: typeof globalThis.fetch;
65
77
  /**
66
78
  * Run before each HTTP attempt, inside the retries, with the call's abort signal: where an
67
79
  * adapter signs in (the runtime's identity, a key) itself, so a failure is typed by the adapter
@@ -90,13 +102,16 @@ export function attemptPrepared<T>(): T | undefined {
90
102
  return attemptScope.getStore()?.prepared as T | undefined;
91
103
  }
92
104
 
105
+ // A tool id on the wire: dots aren't allowed in tool names. A call's name comes back
106
+ // through the request's own tools (`toolIdsBySentName`), since an id can hold `__`
107
+ // itself (an MCP server names its tools as it likes); `ourName` is the fallback.
93
108
  const wireName = (name: string) => name.replace(/\./g, '__');
94
109
  const ourName = (name: string) => name.replace(/__/g, '.');
95
110
 
96
111
  export function createAiSdkModelProvider(options: AiSdkModelProviderOptions): ModelProvider {
97
112
  const { metadata } = options;
98
113
  const models = new Map(metadata.models.map((m) => [m.name, m] as const));
99
- const counter = createAttemptCounter();
114
+ const counter = createAttemptCounter(options.fetch);
100
115
  const built = new Map<string, LanguageModelV4>();
101
116
  const lm = (name: string) => {
102
117
  let model = built.get(name);
@@ -120,11 +135,21 @@ export function createAiSdkModelProvider(options: AiSdkModelProviderOptions): Mo
120
135
  }
121
136
  const startedAt = Date.now();
122
137
  const toolIds = input.tools?.map((t) => t.name) ?? [];
138
+ const toolIdOf = toolIdsBySentName(toolIds, wireName, ourName);
123
139
  const sampling = samplingFor(model, input);
124
140
  const maxOutputTokens = input.maxOutputTokens ?? model.maxOutputTokens;
125
141
  const extra = options.providerOptions?.(model);
142
+ const prompt = toPrompt(
143
+ input.messages,
144
+ { provider: metadata.id, model: input.model },
145
+ toolIds,
146
+ );
147
+ const mark = options.cacheMark?.(model);
126
148
  const call: LanguageModelV4CallOptions = {
127
- prompt: toPrompt(input.messages, { provider: metadata.id, model: input.model }, toolIds),
149
+ prompt:
150
+ mark === undefined
151
+ ? prompt
152
+ : withCacheMarks(prompt, mark, toolIds.length > 0 || continues(input.messages)),
128
153
  ...(maxOutputTokens !== undefined && { maxOutputTokens }),
129
154
  ...(sampling.temperature !== undefined && { temperature: sampling.temperature }),
130
155
  ...(input.tools !== undefined &&
@@ -179,7 +204,7 @@ export function createAiSdkModelProvider(options: AiSdkModelProviderOptions): Mo
179
204
  if (part.type === 'tool-call' && part.providerExecuted !== true) {
180
205
  toolCalls.push({
181
206
  id: part.toolCallId,
182
- name: ourName(part.toolName),
207
+ name: toolIdOf(part.toolName),
183
208
  arguments: parseJson(part.input),
184
209
  });
185
210
  }
@@ -430,6 +455,50 @@ function toPrompt(
430
455
  return prompt;
431
456
  }
432
457
 
458
+ /**
459
+ * The prompt with prompt-cache marks, placed as the Anthropic adapter places `cache_control`
460
+ * (`model-anthropic/src/cache.ts`):
461
+ * - the first system message: the agent's own prompt. The tools render before it, so the
462
+ * marked prefix holds them too. Later system messages (retrieved context) change from turn
463
+ * to turn, so they stay after it;
464
+ * - the last message, when another call will send this prefix again: a call with tools (the
465
+ * next step of a tool loop sends everything again plus the results) or a conversation with an
466
+ * earlier answer (its next turn does). A one-off call leaves it unmarked: its tail is never
467
+ * sent again, so a write would only cost more.
468
+ * Two marks at most, under Bedrock's four per request. A prefix shorter than the model's minimum
469
+ * isn't cached and costs nothing extra (seen live on Claude and Nova on Bedrock, 2026-10-10), so
470
+ * no marks are held back for size. The prompt passed in isn't changed.
471
+ */
472
+ export function withCacheMarks(
473
+ prompt: LanguageModelV4Prompt,
474
+ mark: SharedV4ProviderOptions,
475
+ sentAgain: boolean,
476
+ ): LanguageModelV4Prompt {
477
+ const out = [...prompt];
478
+ const system = out.findIndex((m) => m.role === 'system');
479
+ if (system >= 0) out[system] = marked(out[system] as LanguageModelV4Message, mark);
480
+ const last = out.length - 1;
481
+ if (sentAgain && last >= 0 && out[last]?.role !== 'system') {
482
+ out[last] = marked(out[last] as LanguageModelV4Message, mark);
483
+ }
484
+ return out;
485
+ }
486
+
487
+ /** Whether a conversation goes on after this call: it has an earlier answer. */
488
+ function continues(messages: readonly ModelMessage[]): boolean {
489
+ return messages.some((m) => m.role === 'assistant');
490
+ }
491
+
492
+ /** The message with the mark's options merged into its own, per provider. */
493
+ function marked<M extends LanguageModelV4Message>(message: M, mark: SharedV4ProviderOptions): M {
494
+ const own = message.providerOptions ?? {};
495
+ const merged: Record<string, Record<string, unknown>> = { ...own };
496
+ for (const [provider, values] of Object.entries(mark)) {
497
+ merged[provider] = { ...own[provider], ...values };
498
+ }
499
+ return { ...message, providerOptions: merged as SharedV4ProviderOptions };
500
+ }
501
+
433
502
  /** The error with the adapter's sentence after its message, when it has one. */
434
503
  function explained(
435
504
  error: ModelProviderError,