@openclaw/ai 2026.7.2-beta.1 → 2026.7.2-beta.3

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.
Files changed (34) hide show
  1. package/dist/{anthropic-Cvm71xlk.mjs → anthropic-D7SyZQ5v.mjs} +58 -39
  2. package/dist/{api-registry-Byvoz8Ha.d.mts → api-registry-DXBIXISf.d.mts} +1 -1
  3. package/dist/{azure-openai-responses-b4lfJxYS.mjs → azure-openai-responses-BkZgyZ3I.mjs} +5 -4
  4. package/dist/{event-stream-uQspnL8S.d.mts → event-stream-BPemFrFW.d.mts} +1 -1
  5. package/dist/event-stream.d.mts +1 -1
  6. package/dist/{google-C7PoDjpW.mjs → google-C_biGbV7.mjs} +2 -2
  7. package/dist/{google-shared-C7ohrmOI.mjs → google-shared-BK-NoHl8.mjs} +5 -4
  8. package/dist/{google-vertex-L_ABazIA.mjs → google-vertex-CvdzF1U7.mjs} +2 -2
  9. package/dist/index.d.mts +4 -4
  10. package/dist/internal/anthropic.d.mts +8 -2
  11. package/dist/internal/anthropic.mjs +3 -3
  12. package/dist/internal/openai.d.mts +27 -2
  13. package/dist/internal/openai.mjs +5 -5
  14. package/dist/internal/runtime.d.mts +2 -2
  15. package/dist/internal/runtime.mjs +3 -2
  16. package/dist/internal/shared.d.mts +13 -2
  17. package/dist/internal/shared.mjs +2 -2
  18. package/dist/{mistral-D-39Trax.mjs → mistral-BdrQmDWp.mjs} +25 -9
  19. package/dist/{model-utils-Q1LSRIdo.mjs → model-utils-1GiZ2_rr.mjs} +3 -1
  20. package/dist/{openai-chatgpt-responses-DCA0K85L.mjs → openai-chatgpt-responses-DP63Qt01.mjs} +11 -9
  21. package/dist/{openai-completions-B2jr3vtJ.mjs → openai-completions-zLDfebnN.mjs} +42 -21
  22. package/dist/{openai-responses-DTpD8YVy.mjs → openai-responses-ClspWt4I.mjs} +3 -3
  23. package/dist/{openai-responses-shared-B9mtGvXq.mjs → openai-responses-shared-CwnGU0KW.mjs} +412 -284
  24. package/dist/{openai-tool-projection-cTLC4F65.mjs → openai-tool-projection-WHf2nuOI.mjs} +1 -1
  25. package/dist/provider-error-LMfTEkfO.mjs +40 -0
  26. package/dist/providers.d.mts +1 -1
  27. package/dist/providers.mjs +8 -8
  28. package/dist/{transform-messages-DNWpwvXA.mjs → transform-messages-eb6lxDLB.mjs} +18 -3
  29. package/dist/{types-Cx2zJtyz.d.mts → types-CYORveZ7.d.mts} +6 -0
  30. package/dist/types.d.mts +3 -3
  31. package/dist/{validation-Cej7htKc.d.mts → validation-BX8euiDv.d.mts} +1 -1
  32. package/dist/validation.d.mts +1 -1
  33. package/npm-shrinkwrap.json +2 -2
  34. package/package.json +1 -1
@@ -2,12 +2,12 @@ import { n as getEnvApiKey, r as __exportAll } from "./env-api-keys-DnhYpc27.mjs
2
2
  import { c as resolveClaudeNativeThinkingLevelMap, d as supportsClaudeNativeMaxEffort, f as supportsClaudeNativeXhighEffort, l as resolveClaudeSonnet5ModelIdentity, u as supportsClaudeAdaptiveThinking } from "./src-CXno1H5g.mjs";
3
3
  import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
4
4
  import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-4t713IeR.mjs";
5
- import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-Q1LSRIdo.mjs";
5
+ import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-1GiZ2_rr.mjs";
6
6
  import { r as createDeferredEventBuffer, t as notifyLlmRequestActivity } from "./llm-request-activity-CehVkZP-.mjs";
7
7
  import { t as headersToRecord } from "./headers-B_e4-1J0.mjs";
8
8
  import { n as parseStreamingJson, t as parseJsonWithRepair } from "./json-parse-BvXNt1-7.mjs";
9
9
  import { t as sanitizeSurrogates } from "./sanitize-unicode-DT5o51ur.mjs";
10
- import { b as splitSystemPromptCacheBoundary, f as prepareClaudeSonnet5RequestContext, g as usesClaudeStreamingRefusalContract, h as usesClaudeFable5MessagesContract, i as extractToolResultText, l as isRecord, n as describeToolResultMediaPlaceholder, o as adjustMaxTokensForThinking, p as requiresClaudeAdaptiveThinking, r as extractToolResultBlockText, s as buildBaseOptions, t as transformMessages, u as applyClaudeRequestContract, x as stripSystemPromptCacheBoundary } from "./transform-messages-DNWpwvXA.mjs";
10
+ import { C as splitSystemPromptCacheBoundary, c as adjustMaxTokensForThinking, f as isRecord, g as requiresClaudeAdaptiveThinking, h as prepareClaudeSonnet5RequestContext, i as extractToolResultText, l as buildBaseOptions, n as describeToolResultMediaPlaceholder, o as isImageWithMediaPayload, p as applyClaudeRequestContract, r as extractToolResultBlockText, t as transformMessages, u as clampMaxTokensToModel, v as usesClaudeFable5MessagesContract, w as stripSystemPromptCacheBoundary, y as usesClaudeStreamingRefusalContract } from "./transform-messages-eb6lxDLB.mjs";
11
11
  import { t as projectRuntimeToolInputSchema } from "./tool-schema-json-projection-BwNu3nDi.mjs";
12
12
  import { a as resolveCacheRetention, i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-BsH5cqGj.mjs";
13
13
  import Anthropic from "@anthropic-ai/sdk";
@@ -295,6 +295,16 @@ function resolveOriginalAnthropicToolName(name, projection) {
295
295
  function readAnthropicUsageTokenCount(value) {
296
296
  return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : void 0;
297
297
  }
298
+ function readAnthropicCacheWriteUsage(usage) {
299
+ if (!usage.cache_creation || typeof usage.cache_creation !== "object") return {};
300
+ const cacheCreation = usage.cache_creation;
301
+ const cacheWrite5m = readAnthropicUsageTokenCount(cacheCreation.ephemeral_5m_input_tokens);
302
+ const cacheWrite1h = readAnthropicUsageTokenCount(cacheCreation.ephemeral_1h_input_tokens);
303
+ return {
304
+ ...cacheWrite5m !== void 0 ? { cacheWrite5m } : {},
305
+ ...cacheWrite1h !== void 0 ? { cacheWrite1h } : {}
306
+ };
307
+ }
298
308
  function readAnthropicPromptUsageSnapshot(usage) {
299
309
  const input = readAnthropicUsageTokenCount(usage.input_tokens);
300
310
  const cacheRead = usage.cache_read_input_tokens == null ? 0 : readAnthropicUsageTokenCount(usage.cache_read_input_tokens);
@@ -374,13 +384,13 @@ const toClaudeCodeName = (name) => ccToolLookup.get(name.toLowerCase()) ?? name;
374
384
  function convertContentBlocks(content, isError) {
375
385
  const text = extractToolResultText(content);
376
386
  const mediaPlaceholder = describeToolResultMediaPlaceholder(content);
377
- if (!(Array.isArray(content) && content.some((item) => item && typeof item === "object" && item.type === "image"))) {
387
+ if (!content.some(isImageWithMediaPayload)) {
378
388
  const sanitized = sanitizeSurrogates(text);
379
389
  return sanitized.trim().length > 0 ? sanitized : mediaPlaceholder ?? (isError ? EMPTY_ERROR_TOOL_RESULT_TEXT : "");
380
390
  }
381
391
  const blocks = [];
382
392
  let hasTextBlock = false;
383
- for (const block of Array.isArray(content) ? content : []) {
393
+ for (const block of content) {
384
394
  if (!block || typeof block !== "object") continue;
385
395
  const record = block;
386
396
  const blockText = extractToolResultBlockText(block);
@@ -391,13 +401,13 @@ function convertContentBlocks(content, isError) {
391
401
  });
392
402
  hasTextBlock = true;
393
403
  }
394
- if (record.type !== "image") continue;
404
+ if (!isImageWithMediaPayload(record)) continue;
395
405
  blocks.push({
396
406
  type: "image",
397
407
  source: {
398
408
  type: "base64",
399
409
  media_type: typeof record.mimeType === "string" ? record.mimeType : "image/jpeg",
400
- data: typeof record.data === "string" ? record.data : ""
410
+ data: record.data
401
411
  }
402
412
  });
403
413
  }
@@ -417,7 +427,8 @@ function getAnthropicCompat(model) {
417
427
  supportsEagerToolInputStreaming: model.compat?.supportsEagerToolInputStreaming ?? !isFireworks,
418
428
  supportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? !isFireworks,
419
429
  sendSessionAffinityHeaders: model.compat?.sendSessionAffinityHeaders ?? (isFireworks || isCloudflareAiGatewayAnthropic),
420
- supportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? !isFireworks
430
+ supportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? !isFireworks,
431
+ allowEmptySignature: model.compat?.allowEmptySignature ?? false
421
432
  };
422
433
  }
423
434
  function mergeHeaders(...headerSources) {
@@ -516,7 +527,7 @@ const streamAnthropic = (model, context, options) => {
516
527
  const sdkRequestOptions = {
517
528
  ...requestOptions?.signal ? { signal: requestOptions.signal } : {},
518
529
  ...requestOptions?.timeoutMs !== void 0 ? { timeout: requestOptions.timeoutMs } : {},
519
- ...requestOptions?.maxRetries !== void 0 ? { maxRetries: requestOptions.maxRetries } : {}
530
+ maxRetries: requestOptions?.maxRetries ?? 0
520
531
  };
521
532
  const response = await client.messages.create({
522
533
  ...params,
@@ -542,6 +553,8 @@ const streamAnthropic = (model, context, options) => {
542
553
  if (cacheReadTokens !== void 0) output.usage.cacheRead = cacheReadTokens;
543
554
  const cacheWriteTokens = event.message.usage.cache_creation_input_tokens == null ? 0 : readAnthropicUsageTokenCount(event.message.usage.cache_creation_input_tokens);
544
555
  if (cacheWriteTokens !== void 0) output.usage.cacheWrite = cacheWriteTokens;
556
+ const cacheWriteUsage = readAnthropicCacheWriteUsage(event.message.usage);
557
+ if (cacheWriteUsage.cacheWrite1h !== void 0) output.usage.cacheWrite1h = cacheWriteUsage.cacheWrite1h;
545
558
  output.usage.totalTokens = output.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;
546
559
  if (messageStartPromptUsage && outputTokens !== void 0) output.usage.contextUsage = {
547
560
  state: "available",
@@ -730,30 +743,34 @@ const streamAnthropic = (model, context, options) => {
730
743
  } else if (event.type === "message_delta") {
731
744
  if (event.delta.stop_reason) if (event.delta.stop_reason === "refusal") applyAnthropicRefusal(output, event.delta.stop_details, model.provider);
732
745
  else output.stopReason = mapStopReason(event.delta.stop_reason);
733
- const inputTokens = readAnthropicUsageTokenCount(event.usage.input_tokens);
734
- if (inputTokens !== void 0) output.usage.input = inputTokens;
735
- const outputTokens = readAnthropicUsageTokenCount(event.usage.output_tokens);
736
- if (outputTokens !== void 0) output.usage.output = outputTokens;
737
- const cacheReadTokens = readAnthropicUsageTokenCount(event.usage.cache_read_input_tokens);
738
- if (cacheReadTokens !== void 0) output.usage.cacheRead = cacheReadTokens;
739
- const cacheWriteTokens = readAnthropicUsageTokenCount(event.usage.cache_creation_input_tokens);
740
- if (cacheWriteTokens !== void 0) output.usage.cacheWrite = cacheWriteTokens;
741
- output.usage.totalTokens = output.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;
742
- const iterationUsage = readLastAnthropicIterationUsage(event.usage);
743
- if (iterationUsage.state === "valid") output.usage.contextUsage = {
744
- state: "available",
745
- promptTokens: iterationUsage.usage.contextPromptTokens,
746
- totalTokens: iterationUsage.usage.totalTokens
747
- };
748
- else if (iterationUsage.state === "invalid") output.usage.contextUsage = { state: "unavailable" };
749
- else if (outputTokens !== void 0 && (messageStartPromptUsage !== void 0 || inputTokens !== void 0 && cacheReadTokens !== void 0 && cacheWriteTokens !== void 0)) {
750
- const promptTokens = output.usage.input + output.usage.cacheRead + output.usage.cacheWrite;
751
- output.usage.contextUsage = {
746
+ if (event.usage) {
747
+ const inputTokens = readAnthropicUsageTokenCount(event.usage.input_tokens);
748
+ if (inputTokens !== void 0) output.usage.input = inputTokens;
749
+ const outputTokens = readAnthropicUsageTokenCount(event.usage.output_tokens);
750
+ if (outputTokens !== void 0) output.usage.output = outputTokens;
751
+ const cacheReadTokens = readAnthropicUsageTokenCount(event.usage.cache_read_input_tokens);
752
+ if (cacheReadTokens !== void 0) output.usage.cacheRead = cacheReadTokens;
753
+ const cacheWriteTokens = readAnthropicUsageTokenCount(event.usage.cache_creation_input_tokens);
754
+ if (cacheWriteTokens !== void 0) output.usage.cacheWrite = cacheWriteTokens;
755
+ const cacheWriteUsage = readAnthropicCacheWriteUsage(event.usage);
756
+ if (cacheWriteUsage.cacheWrite1h !== void 0) output.usage.cacheWrite1h = cacheWriteUsage.cacheWrite1h;
757
+ output.usage.totalTokens = output.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;
758
+ const iterationUsage = readLastAnthropicIterationUsage(event.usage);
759
+ if (iterationUsage.state === "valid") output.usage.contextUsage = {
752
760
  state: "available",
753
- promptTokens,
754
- totalTokens: promptTokens + output.usage.output
761
+ promptTokens: iterationUsage.usage.contextPromptTokens,
762
+ totalTokens: iterationUsage.usage.totalTokens
755
763
  };
756
- } else output.usage.contextUsage = { state: "unavailable" };
764
+ else if (iterationUsage.state === "invalid") output.usage.contextUsage = { state: "unavailable" };
765
+ else if (outputTokens !== void 0 && (messageStartPromptUsage !== void 0 || inputTokens !== void 0 && cacheReadTokens !== void 0 && cacheWriteTokens !== void 0)) {
766
+ const promptTokens = output.usage.input + output.usage.cacheRead + output.usage.cacheWrite;
767
+ output.usage.contextUsage = {
768
+ state: "available",
769
+ promptTokens,
770
+ totalTokens: promptTokens + output.usage.output
771
+ };
772
+ } else output.usage.contextUsage = { state: "unavailable" };
773
+ }
757
774
  calculateCost(costModel, output.usage);
758
775
  }
759
776
  if (requestOptions?.signal?.aborted) throw new Error("Request was aborted");
@@ -842,6 +859,7 @@ const streamSimpleAnthropic = (model, context, options) => {
842
859
  if (!apiKey) throw new Error(`No API key for provider: ${model.provider}`);
843
860
  const base = {
844
861
  ...buildBaseOptions(model, options, apiKey),
862
+ maxTokens: clampMaxTokensToModel(model, options?.maxTokens ?? model.maxTokens),
845
863
  toolChoice: options?.toolChoice
846
864
  };
847
865
  const mandatoryAdaptiveThinking = requiresClaudeAdaptiveThinking(model);
@@ -869,10 +887,11 @@ const streamSimpleAnthropic = (model, context, options) => {
869
887
  });
870
888
  }
871
889
  const adjusted = adjustMaxTokensForThinking(base.maxTokens, model.maxTokens, reasoning, options?.thinkingBudgets);
872
- const thinkingEnabled = adjusted.thinkingBudget >= 1024;
890
+ const thinkingEnabled = adjusted.thinkingBudget >= ANTHROPIC_MIN_THINKING_BUDGET_TOKENS;
891
+ const maxTokens = thinkingEnabled ? adjusted.maxTokens : clampMaxTokensToModel(model, options?.maxTokens ?? model.maxTokens);
873
892
  return streamAnthropic(model, context, {
874
893
  ...base,
875
- maxTokens: adjusted.maxTokens,
894
+ maxTokens,
876
895
  thinkingEnabled,
877
896
  thinkingBudgetTokens: thinkingEnabled ? adjusted.thinkingBudget : void 0
878
897
  });
@@ -1003,8 +1022,8 @@ function buildParams(model, context, isOAuthTokenResult, options, serverSideFall
1003
1022
  const replayThinkingEnabled = mandatoryAdaptiveThinking || options?.thinkingEnabled === true;
1004
1023
  const { cacheControl } = getCacheControl(model, options?.cacheRetention);
1005
1024
  const system = buildAnthropicSystemBlocks(context.systemPrompt, isOAuthTokenResult, cacheControl);
1006
- const compat = context.tools ? getAnthropicCompat(model) : void 0;
1007
- const convertedTools = context.tools && compat ? convertTools(context.tools, isOAuthTokenResult, compat.supportsEagerToolInputStreaming, compat.supportsCacheControlOnTools ? cacheControl : void 0) : void 0;
1025
+ const compat = getAnthropicCompat(model);
1026
+ const convertedTools = context.tools ? convertTools(context.tools, isOAuthTokenResult, compat.supportsEagerToolInputStreaming, compat.supportsCacheControlOnTools ? cacheControl : void 0) : void 0;
1008
1027
  const tools = convertedTools?.tools;
1009
1028
  const toolProjection = convertedTools?.projection;
1010
1029
  const systemCacheControlCount = countNativeCacheControlMarkers(system);
@@ -1012,7 +1031,7 @@ function buildParams(model, context, isOAuthTokenResult, options, serverSideFall
1012
1031
  const messageCacheControlLimit = Math.max(0, ANTHROPIC_CACHE_CONTROL_LIMIT - systemCacheControlCount - toolCacheControlCount);
1013
1032
  const params = {
1014
1033
  model: model.id,
1015
- messages: convertMessages(context.messages, model, isOAuthTokenResult, cacheControl, messageCacheControlLimit, replayThinkingEnabled),
1034
+ messages: convertMessages(context.messages, model, isOAuthTokenResult, cacheControl, messageCacheControlLimit, replayThinkingEnabled, compat.allowEmptySignature),
1016
1035
  max_tokens: options?.maxTokens ?? model.maxTokens,
1017
1036
  stream: true
1018
1037
  };
@@ -1055,7 +1074,7 @@ function buildParams(model, context, isOAuthTokenResult, options, serverSideFall
1055
1074
  function normalizeToolCallId(id) {
1056
1075
  return id.replace(/[^a-zA-Z0-9_-]/g, "_").slice(0, 64);
1057
1076
  }
1058
- function convertMessages(messages, model, isOAuthTokenValue, cacheControl, messageCacheControlLimit = 4, replayThinkingEnabled = true) {
1077
+ function convertMessages(messages, model, isOAuthTokenValue, cacheControl, messageCacheControlLimit = 4, replayThinkingEnabled = true, allowEmptySignature = false) {
1059
1078
  const params = [];
1060
1079
  const cacheBreakpointOptOutParamIndexes = /* @__PURE__ */ new Set();
1061
1080
  const transformedMessages = transformMessages(messages, model, normalizeToolCallId);
@@ -1123,7 +1142,7 @@ function convertMessages(messages, model, isOAuthTokenValue, cacheControl, messa
1123
1142
  const thinkingSignature = block.thinkingSignature?.trim();
1124
1143
  const hasNativeThinkingSignature = Boolean(thinkingSignature) && thinkingSignature !== "reasoning_content";
1125
1144
  if (block.thinking.trim().length === 0 && !hasNativeThinkingSignature) continue;
1126
- if (!thinkingSignature) blocks.push({
1145
+ if (!thinkingSignature && !allowEmptySignature) blocks.push({
1127
1146
  type: "text",
1128
1147
  text: sanitizeSurrogates(block.thinking)
1129
1148
  });
@@ -1132,7 +1151,7 @@ function convertMessages(messages, model, isOAuthTokenValue, cacheControl, messa
1132
1151
  blocks.push({
1133
1152
  type: "thinking",
1134
1153
  thinking: block.thinking,
1135
- signature: thinkingSignature
1154
+ signature: thinkingSignature ?? ""
1136
1155
  });
1137
1156
  }
1138
1157
  } else if (block.type === "toolCall") blocks.push({
@@ -1302,4 +1321,4 @@ function mapStopReason(reason) {
1302
1321
  }
1303
1322
  }
1304
1323
  //#endregion
1305
- export { readAnthropicFallbackBoundary as _, readAnthropicUsageTokenCount as a, usesFoundryBearerAuth as b, reconcileAnthropicToolChoice as c, findActiveAnthropicToolTurnAssistantIndex as d, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA as f, buildAnthropicServerSideFallbacks as g, applyAnthropicFallbackBoundary as h, readAnthropicPromptUsageSnapshot as i, resolveOriginalAnthropicToolName as l, CLAUDE_FABLE_5_FALLBACK_MODEL_COST as m, streamAnthropic as n, readLastAnthropicIterationUsage as o, CLAUDE_FABLE_5_FALLBACK_MODEL as p, streamSimpleAnthropic as r, projectAnthropicTools as s, anthropic_exports as t, ANTHROPIC_OMITTED_REASONING_TEXT as u, applyAnthropicRefusal as v, omitFoundryBearerCredentialHeaders as y };
1324
+ export { buildAnthropicServerSideFallbacks as _, readAnthropicPromptUsageSnapshot as a, omitFoundryBearerCredentialHeaders as b, projectAnthropicTools as c, ANTHROPIC_OMITTED_REASONING_TEXT as d, findActiveAnthropicToolTurnAssistantIndex as f, applyAnthropicFallbackBoundary as g, CLAUDE_FABLE_5_FALLBACK_MODEL_COST as h, readAnthropicCacheWriteUsage as i, reconcileAnthropicToolChoice as l, CLAUDE_FABLE_5_FALLBACK_MODEL as m, streamAnthropic as n, readAnthropicUsageTokenCount as o, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA as p, streamSimpleAnthropic as r, readLastAnthropicIterationUsage as s, anthropic_exports as t, resolveOriginalAnthropicToolName as u, readAnthropicFallbackBoundary as v, usesFoundryBearerAuth as x, applyAnthropicRefusal as y };
@@ -1,4 +1,4 @@
1
- import { E as Model, F as SimpleStreamOptions, R as StreamFunction, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "./types-Cx2zJtyz.mjs";
1
+ import { E as Model, F as SimpleStreamOptions, R as StreamFunction, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "./types-CYORveZ7.mjs";
2
2
 
3
3
  //#region packages/ai/src/api-registry.d.ts
4
4
  /** Runtime stream adapter signature stored in the API provider registry. */
@@ -1,10 +1,10 @@
1
1
  import { n as getEnvApiKey } from "./env-api-keys-DnhYpc27.mjs";
2
2
  import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
3
3
  import { n as getAiTransportHost } from "./host-4t713IeR.mjs";
4
- import { s as buildBaseOptions } from "./transform-messages-DNWpwvXA.mjs";
5
- import { a as resolveResponsesReasoningEffort, n as convertResponsesMessages, o as runResponsesStreamLifecycle, r as createResponsesAssistantOutput, t as applyCommonResponsesParams } from "./openai-responses-shared-B9mtGvXq.mjs";
4
+ import { l as buildBaseOptions } from "./transform-messages-eb6lxDLB.mjs";
5
+ import { a as resolveResponsesReasoningEffort, n as convertResponsesMessages, o as runResponsesStreamLifecycle, r as createResponsesAssistantOutput, t as applyCommonResponsesParams } from "./openai-responses-shared-CwnGU0KW.mjs";
6
6
  import { i as resolveAzureDeploymentNameFromMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "./azure-openai-responses-client-compat-C7K7QfUE.mjs";
7
- import { a as clampOpenAIPromptCacheKey } from "./openai-tool-projection-cTLC4F65.mjs";
7
+ import { a as clampOpenAIPromptCacheKey } from "./openai-tool-projection-WHf2nuOI.mjs";
8
8
  import OpenAI, { AzureOpenAI } from "openai";
9
9
  //#region packages/ai/src/providers/azure-openai-responses.ts
10
10
  const DEFAULT_AZURE_API_VERSION = "v1";
@@ -127,7 +127,8 @@ function buildParams(model, context, options, deploymentName) {
127
127
  model: deploymentName,
128
128
  input: convertResponsesMessages(model, context, AZURE_TOOL_CALL_PROVIDERS),
129
129
  stream: true,
130
- prompt_cache_key: options?.cacheRetention === "none" ? void 0 : clampOpenAIPromptCacheKey(options?.promptCacheKey ?? options?.sessionId)
130
+ prompt_cache_key: options?.cacheRetention === "none" ? void 0 : clampOpenAIPromptCacheKey(options?.promptCacheKey ?? options?.sessionId),
131
+ store: false
131
132
  };
132
133
  applyCommonResponsesParams(params, model, context, options);
133
134
  return params;
@@ -1,4 +1,4 @@
1
- import { a as AssistantMessageEvent, i as AssistantMessage, o as AssistantMessageEventStreamContract } from "./types-Cx2zJtyz.mjs";
1
+ import { a as AssistantMessageEvent, i as AssistantMessage, o as AssistantMessageEventStreamContract } from "./types-CYORveZ7.mjs";
2
2
 
3
3
  //#region packages/llm-core/src/utils/event-stream.d.ts
4
4
  /** Generic async-iterable event stream with a separately awaited final result. */
@@ -1,2 +1,2 @@
1
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-uQspnL8S.mjs";
1
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-BPemFrFW.mjs";
2
2
  export { AssistantMessageEventStream, EventStream, createAssistantMessageEventStream };
@@ -1,8 +1,8 @@
1
1
  import { n as getEnvApiKey } from "./env-api-keys-DnhYpc27.mjs";
2
2
  import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
3
3
  import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-4t713IeR.mjs";
4
- import { s as buildBaseOptions } from "./transform-messages-DNWpwvXA.mjs";
5
- import { a as runGoogleGenerateContentLifecycle, i as getDisabledGoogleThinkingConfig, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-C7ohrmOI.mjs";
4
+ import { l as buildBaseOptions } from "./transform-messages-eb6lxDLB.mjs";
5
+ import { a as runGoogleGenerateContentLifecycle, i as getDisabledGoogleThinkingConfig, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-BK-NoHl8.mjs";
6
6
  import { GoogleGenAI } from "@google/genai";
7
7
  //#region packages/ai/src/providers/google.ts
8
8
  let toolCallCounter = 0;
@@ -1,6 +1,7 @@
1
- import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-Q1LSRIdo.mjs";
1
+ import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-1GiZ2_rr.mjs";
2
2
  import { t as sanitizeSurrogates } from "./sanitize-unicode-DT5o51ur.mjs";
3
- import { i as extractToolResultText, n as describeToolResultMediaPlaceholder, t as transformMessages, x as stripSystemPromptCacheBoundary } from "./transform-messages-DNWpwvXA.mjs";
3
+ import { i as extractToolResultText, n as describeToolResultMediaPlaceholder, o as isImageWithMediaPayload, t as transformMessages, w as stripSystemPromptCacheBoundary } from "./transform-messages-eb6lxDLB.mjs";
4
+ import { t as formatProviderError } from "./provider-error-LMfTEkfO.mjs";
4
5
  import { FinishReason, FunctionCallingConfigMode, ThinkingLevel } from "@google/genai";
5
6
  //#region packages/ai/src/providers/google-shared.ts
6
7
  /**
@@ -145,7 +146,7 @@ function convertMessages(model, context) {
145
146
  });
146
147
  } else if (msg.role === "toolResult") {
147
148
  const textResult = extractToolResultText(msg.content);
148
- const imageContent = model.input.includes("image") ? msg.content.filter((c) => c.type === "image") : [];
149
+ const imageContent = model.input.includes("image") ? msg.content.filter(isImageWithMediaPayload) : [];
149
150
  const hasText = textResult.length > 0;
150
151
  const hasImages = imageContent.length > 0;
151
152
  const mediaPlaceholder = describeToolResultMediaPlaceholder(msg.content);
@@ -273,7 +274,7 @@ async function runGoogleGenerateContentLifecycle(params) {
273
274
  } catch (error) {
274
275
  for (const block of output.content) if ("index" in block) delete block.index;
275
276
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
276
- output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
277
+ output.errorMessage = formatProviderError(error);
277
278
  stream.push({
278
279
  type: "error",
279
280
  reason: output.stopReason,
@@ -1,7 +1,7 @@
1
1
  import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
2
2
  import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-4t713IeR.mjs";
3
- import { s as buildBaseOptions } from "./transform-messages-DNWpwvXA.mjs";
4
- import { a as runGoogleGenerateContentLifecycle, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-C7ohrmOI.mjs";
3
+ import { l as buildBaseOptions } from "./transform-messages-eb6lxDLB.mjs";
4
+ import { a as runGoogleGenerateContentLifecycle, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-BK-NoHl8.mjs";
5
5
  import { GoogleGenAI, ResourceScope } from "@google/genai";
6
6
  //#region packages/ai/src/providers/google-vertex.ts
7
7
  const API_VERSION = "v1";
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { a as resolveClaudeFable5ModelIdentity, c as resolveClaudeNativeThinkingLevelMap, d as supportsClaudeNativeMaxEffort, f as supportsClaudeNativeXhighEffort, i as requiresClaudeMandatoryAdaptiveThinking, l as resolveClaudeSonnet5ModelIdentity, n as CLAUDE_SONNET_5_THINKING_PROFILE, o as resolveClaudeModelIdentity, r as requiresClaudeDefaultSampling, s as resolveClaudeMythos5ModelIdentity, t as CLAUDE_FABLE_5_THINKING_PROFILE, u as supportsClaudeAdaptiveThinking } from "./index-BoTnz8cv.mjs";
2
2
  import { a as extractDiagnosticError, i as createAssistantMessageDiagnostic, n as DiagnosticErrorInfo, o as formatThrownValue, r as appendAssistantMessageDiagnostic, t as AssistantMessageDiagnostic } from "./diagnostics-BaTA9eVl.mjs";
3
- import { $ as VercelGatewayRouting, A as OpenRouterRouting, B as TextContent, C as KnownImagesProvider, D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, G as ThinkingLevelMap, H as ThinkingBudgets, I as StopReason, J as ToolResultMessage, K as Tool, L as StreamFn, M as ProviderImagesOptions, N as ProviderResponse, O as OpenAICompletionsCompat, P as ProviderStreamOptions, Q as ValidateToolArgumentsFn, R as StreamFunction, S as KnownImagesApi, T as Message, U as ThinkingContent, V as TextSignatureV1, W as ThinkingLevel, X as Usage, Y as Transport, Z as UserMessage, _ as ImagesOptions, a as AssistantMessageEvent, b as ImagesStopReason, c as CacheRetention, d as ImageContent, f as ImagesApi, g as ImagesModel, h as ImagesInputContent, i as AssistantMessage, j as Provider, k as OpenAIResponsesCompat, l as CompleteSimpleFn, m as ImagesFunction, n as Api, o as AssistantMessageEventStreamContract, p as ImagesContext, q as ToolCall, r as AssistantImages, s as AssistantMessageEventStreamLike, t as AnthropicMessagesCompat, u as Context, v as ImagesOutputContent, w as MaybePromise, x as KnownApi, y as ImagesProvider, z as StreamOptions } from "./types-Cx2zJtyz.mjs";
4
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-uQspnL8S.mjs";
5
- import { n as validateToolCall, t as validateToolArguments } from "./validation-Cej7htKc.mjs";
6
- import { a as RegisteredApiProvider, i as ApiStreamSimpleFunction, n as ApiRegistry, o as createApiRegistry, r as ApiStreamFunction, t as ApiProvider } from "./api-registry-Byvoz8Ha.mjs";
3
+ import { $ as VercelGatewayRouting, A as OpenRouterRouting, B as TextContent, C as KnownImagesProvider, D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, G as ThinkingLevelMap, H as ThinkingBudgets, I as StopReason, J as ToolResultMessage, K as Tool, L as StreamFn, M as ProviderImagesOptions, N as ProviderResponse, O as OpenAICompletionsCompat, P as ProviderStreamOptions, Q as ValidateToolArgumentsFn, R as StreamFunction, S as KnownImagesApi, T as Message, U as ThinkingContent, V as TextSignatureV1, W as ThinkingLevel, X as Usage, Y as Transport, Z as UserMessage, _ as ImagesOptions, a as AssistantMessageEvent, b as ImagesStopReason, c as CacheRetention, d as ImageContent, f as ImagesApi, g as ImagesModel, h as ImagesInputContent, i as AssistantMessage, j as Provider, k as OpenAIResponsesCompat, l as CompleteSimpleFn, m as ImagesFunction, n as Api, o as AssistantMessageEventStreamContract, p as ImagesContext, q as ToolCall, r as AssistantImages, s as AssistantMessageEventStreamLike, t as AnthropicMessagesCompat, u as Context, v as ImagesOutputContent, w as MaybePromise, x as KnownApi, y as ImagesProvider, z as StreamOptions } from "./types-CYORveZ7.mjs";
4
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-BPemFrFW.mjs";
5
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-BX8euiDv.mjs";
6
+ import { a as RegisteredApiProvider, i as ApiStreamSimpleFunction, n as ApiRegistry, o as createApiRegistry, r as ApiStreamFunction, t as ApiProvider } from "./api-registry-DXBIXISf.mjs";
7
7
 
8
8
  //#region packages/ai/src/host.d.ts
9
9
  /** Strict-tool policy inputs for OpenAI-compatible routes. */
@@ -1,6 +1,6 @@
1
1
  import { a as resolveClaudeFable5ModelIdentity, c as resolveClaudeNativeThinkingLevelMap, d as supportsClaudeNativeMaxEffort, f as supportsClaudeNativeXhighEffort, i as requiresClaudeMandatoryAdaptiveThinking, l as resolveClaudeSonnet5ModelIdentity, o as resolveClaudeModelIdentity, r as requiresClaudeDefaultSampling, s as resolveClaudeMythos5ModelIdentity, u as supportsClaudeAdaptiveThinking } from "../index-BoTnz8cv.mjs";
2
2
  import { t as AssistantMessageDiagnostic } from "../diagnostics-BaTA9eVl.mjs";
3
- import { E as Model, F as SimpleStreamOptions, R as StreamFunction, u as Context, z as StreamOptions } from "../types-Cx2zJtyz.mjs";
3
+ import { E as Model, F as SimpleStreamOptions, R as StreamFunction, u as Context, z as StreamOptions } from "../types-CYORveZ7.mjs";
4
4
  import Anthropic from "@anthropic-ai/sdk";
5
5
 
6
6
  //#region packages/ai/src/providers/anthropic.d.ts
@@ -208,8 +208,13 @@ type AnthropicUsagePayload = {
208
208
  output_tokens?: unknown;
209
209
  cache_read_input_tokens?: unknown;
210
210
  cache_creation_input_tokens?: unknown;
211
+ cache_creation?: unknown;
211
212
  iterations?: unknown;
212
213
  };
214
+ type AnthropicCacheWriteUsage = {
215
+ cacheWrite5m?: number;
216
+ cacheWrite1h?: number;
217
+ };
213
218
  type AnthropicPromptUsageSnapshot = {
214
219
  input: number;
215
220
  cacheRead: number;
@@ -228,7 +233,8 @@ type AnthropicIterationUsageResult = {
228
233
  usage: AnthropicIterationUsageSnapshot;
229
234
  };
230
235
  declare function readAnthropicUsageTokenCount(value: unknown): number | undefined;
236
+ declare function readAnthropicCacheWriteUsage(usage: AnthropicUsagePayload): AnthropicCacheWriteUsage;
231
237
  declare function readAnthropicPromptUsageSnapshot(usage: AnthropicUsagePayload): AnthropicPromptUsageSnapshot | undefined;
232
238
  declare function readLastAnthropicIterationUsage(usage: AnthropicUsagePayload): AnthropicIterationUsageResult;
233
239
  //#endregion
234
- export { ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, AnthropicEffort, AnthropicFallbackBoundary, AnthropicIterationUsageResult, AnthropicIterationUsageSnapshot, AnthropicOptions, AnthropicProjectedToolChoice, AnthropicPromptUsageSnapshot, AnthropicThinkingDisplay, AnthropicToolProjection, CLAUDE_FABLE_5_FALLBACK_MODEL, CLAUDE_FABLE_5_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicRefusal, applyClaudeRequestContract, buildAnthropicServerSideFallbacks, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, omitFoundryBearerCredentialHeaders, prepareClaudeSonnet5RequestContext, projectAnthropicTools, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
240
+ export { ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, AnthropicCacheWriteUsage, AnthropicEffort, AnthropicFallbackBoundary, AnthropicIterationUsageResult, AnthropicIterationUsageSnapshot, AnthropicOptions, AnthropicProjectedToolChoice, AnthropicPromptUsageSnapshot, AnthropicThinkingDisplay, AnthropicToolProjection, CLAUDE_FABLE_5_FALLBACK_MODEL, CLAUDE_FABLE_5_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicRefusal, applyClaudeRequestContract, buildAnthropicServerSideFallbacks, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, omitFoundryBearerCredentialHeaders, prepareClaudeSonnet5RequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
@@ -1,4 +1,4 @@
1
1
  import { a as resolveClaudeFable5ModelIdentity, c as resolveClaudeNativeThinkingLevelMap, d as supportsClaudeNativeMaxEffort, f as supportsClaudeNativeXhighEffort, i as requiresClaudeMandatoryAdaptiveThinking, l as resolveClaudeSonnet5ModelIdentity, o as resolveClaudeModelIdentity, r as requiresClaudeDefaultSampling, s as resolveClaudeMythos5ModelIdentity, u as supportsClaudeAdaptiveThinking } from "../src-CXno1H5g.mjs";
2
- import { d as defaultsClaudeAdaptiveThinking, f as prepareClaudeSonnet5RequestContext, g as usesClaudeStreamingRefusalContract, h as usesClaudeFable5MessagesContract, m as resolveModelBoundThinkingReplayMode, p as requiresClaudeAdaptiveThinking, u as applyClaudeRequestContract } from "../transform-messages-DNWpwvXA.mjs";
3
- import { _ as readAnthropicFallbackBoundary, a as readAnthropicUsageTokenCount, b as usesFoundryBearerAuth, c as reconcileAnthropicToolChoice, d as findActiveAnthropicToolTurnAssistantIndex, f as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, g as buildAnthropicServerSideFallbacks, h as applyAnthropicFallbackBoundary, i as readAnthropicPromptUsageSnapshot, l as resolveOriginalAnthropicToolName, m as CLAUDE_FABLE_5_FALLBACK_MODEL_COST, n as streamAnthropic, o as readLastAnthropicIterationUsage, p as CLAUDE_FABLE_5_FALLBACK_MODEL, r as streamSimpleAnthropic, s as projectAnthropicTools, u as ANTHROPIC_OMITTED_REASONING_TEXT, v as applyAnthropicRefusal, y as omitFoundryBearerCredentialHeaders } from "../anthropic-Cvm71xlk.mjs";
4
- export { ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, CLAUDE_FABLE_5_FALLBACK_MODEL, CLAUDE_FABLE_5_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicRefusal, applyClaudeRequestContract, buildAnthropicServerSideFallbacks, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, omitFoundryBearerCredentialHeaders, prepareClaudeSonnet5RequestContext, projectAnthropicTools, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
2
+ import { _ as resolveModelBoundThinkingReplayMode, g as requiresClaudeAdaptiveThinking, h as prepareClaudeSonnet5RequestContext, m as defaultsClaudeAdaptiveThinking, p as applyClaudeRequestContract, v as usesClaudeFable5MessagesContract, y as usesClaudeStreamingRefusalContract } from "../transform-messages-eb6lxDLB.mjs";
3
+ import { _ as buildAnthropicServerSideFallbacks, a as readAnthropicPromptUsageSnapshot, b as omitFoundryBearerCredentialHeaders, c as projectAnthropicTools, d as ANTHROPIC_OMITTED_REASONING_TEXT, f as findActiveAnthropicToolTurnAssistantIndex, g as applyAnthropicFallbackBoundary, h as CLAUDE_FABLE_5_FALLBACK_MODEL_COST, i as readAnthropicCacheWriteUsage, l as reconcileAnthropicToolChoice, m as CLAUDE_FABLE_5_FALLBACK_MODEL, n as streamAnthropic, o as readAnthropicUsageTokenCount, p as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, r as streamSimpleAnthropic, s as readLastAnthropicIterationUsage, u as resolveOriginalAnthropicToolName, v as readAnthropicFallbackBoundary, x as usesFoundryBearerAuth, y as applyAnthropicRefusal } from "../anthropic-D7SyZQ5v.mjs";
4
+ export { ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, CLAUDE_FABLE_5_FALLBACK_MODEL, CLAUDE_FABLE_5_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicRefusal, applyClaudeRequestContract, buildAnthropicServerSideFallbacks, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, omitFoundryBearerCredentialHeaders, prepareClaudeSonnet5RequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
@@ -1,4 +1,4 @@
1
- import { E as Model, F as SimpleStreamOptions, I as StopReason, O as OpenAICompletionsCompat, R as StreamFunction, u as Context, z as StreamOptions } from "../types-Cx2zJtyz.mjs";
1
+ import { E as Model, F as SimpleStreamOptions, I as StopReason, O as OpenAICompletionsCompat, R as StreamFunction, u as Context, z as StreamOptions } from "../types-CYORveZ7.mjs";
2
2
  import OpenAI from "openai";
3
3
  import { TSchema } from "typebox";
4
4
  import { ChatCompletionMessageParam } from "openai/resources/chat/completions.js";
@@ -99,6 +99,7 @@ interface OpenAICompletionsOptions extends StreamOptions {
99
99
  }
100
100
  type ResolvedOpenAICompletionsCompat = Omit<Required<OpenAICompletionsCompat>, "cacheControlFormat"> & {
101
101
  cacheControlFormat?: OpenAICompletionsCompat["cacheControlFormat"];
102
+ sessionAffinityFormat: "openai" | "openrouter";
102
103
  };
103
104
  declare const streamOpenAICompletions: StreamFunction<"openai-completions", OpenAICompletionsOptions>;
104
105
  declare const streamSimpleOpenAICompletions: StreamFunction<"openai-completions", SimpleStreamOptions>;
@@ -198,6 +199,30 @@ declare function resolveResponsesMessageSnapshotCollapse(params: {
198
199
  nextPhase: string | undefined;
199
200
  }): ResponsesMessageSnapshotCollapse;
200
201
  //#endregion
202
+ //#region packages/ai/src/providers/openai-responses-tool-call-tracker.d.ts
203
+ type ResponsesToolCallIdentity = {
204
+ itemId?: string;
205
+ callId?: string;
206
+ };
207
+ type ResponsesToolCallState = ResponsesToolCallIdentity & {
208
+ argumentStreamReliable: boolean;
209
+ };
210
+ type ResponsesToolCallEvent = {
211
+ output_index?: unknown;
212
+ item_id?: unknown;
213
+ };
214
+ declare function readResponsesToolCallItemIdentity(item: {
215
+ id?: unknown;
216
+ call_id?: unknown;
217
+ }): ResponsesToolCallIdentity;
218
+ declare function createResponsesToolCallTracker<TState extends ResponsesToolCallState>(): {
219
+ register(event: ResponsesToolCallEvent, state: TState): void;
220
+ resolve(event: ResponsesToolCallEvent, identity?: ResponsesToolCallIdentity): TState | undefined;
221
+ forget(toolCall: TState): void;
222
+ markArgumentsUnreliable(): void;
223
+ hasActive(): boolean;
224
+ };
225
+ //#endregion
201
226
  //#region packages/ai/src/providers/openai-stop-reason.d.ts
202
227
  type OpenAIStopReasonResult = {
203
228
  stopReason: StopReason;
@@ -252,4 +277,4 @@ type RuntimeToolInputSchemaProjection = {
252
277
  /** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
253
278
  declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
254
279
  //#endregion
255
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, ResponsesTextContentPartType, ResponsesTextDeltaEventType, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, clearOpenAIToolSchemaCacheForTest, convertMessages, extractToolSchemaModelCompat, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
280
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,7 +1,7 @@
1
1
  import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-BwNu3nDi.mjs";
2
- import { A as supportsOpenAITemperature, C as isOpenAIGpt54MiniModel, D as resolveOpenAIReasoningEffortForModel, E as normalizeOpenAIReasoningEffort, F as stripUnsupportedSchemaKeywords, I as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, L as cleanSchemaForGemini, M as normalizeToolParameterSchema, N as resolveUnsupportedToolSchemaKeywords, O as resolveOpenAISupportedReasoningEfforts, P as shouldOmitEmptyArrayItems, S as resolveResponsesMessageSnapshotCollapse, T as isOpenAIGpt56Model, _ as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, b as isResponsesTextContentPartType, c as clearOpenAIToolSchemaCacheForTest, d as normalizeOpenAIStrictToolParameters, f as normalizeStrictOpenAIJsonSchema, g as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, h as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, j as extractToolSchemaModelCompat, k as supportsOpenAIReasoningEffort, l as findOpenAIStrictToolProjectionDiagnostics, m as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, p as resolveOpenAIProjectedToolsStrictToolFlag, u as isStrictOpenAIJsonSchemaCompatible, v as isAzureResponsesTextDeltaEvent, w as isOpenAIGpt55Model, x as isResponsesTextDeltaEventType, y as isAzureResponsesTextDeltaEventType } from "../openai-responses-shared-B9mtGvXq.mjs";
2
+ import { A as resolveOpenAISupportedReasoningEfforts, C as isResponsesTextDeltaEventType, D as isOpenAIGpt56Model, E as isOpenAIGpt55Model, F as resolveUnsupportedToolSchemaKeywords, I as shouldOmitEmptyArrayItems, L as stripUnsupportedSchemaKeywords, M as supportsOpenAITemperature, N as extractToolSchemaModelCompat, O as normalizeOpenAIReasoningEffort, P as normalizeToolParameterSchema, R as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, S as isResponsesTextContentPartType, T as isOpenAIGpt54MiniModel, _ as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, b as isAzureResponsesTextDeltaEvent, c as clearOpenAIToolSchemaCacheForTest, d as normalizeOpenAIStrictToolParameters, f as normalizeStrictOpenAIJsonSchema, g as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, h as readResponsesToolCallItemIdentity, j as supportsOpenAIReasoningEffort, k as resolveOpenAIReasoningEffortForModel, l as findOpenAIStrictToolProjectionDiagnostics, m as createResponsesToolCallTracker, p as resolveOpenAIProjectedToolsStrictToolFlag, u as isStrictOpenAIJsonSchemaCompatible, v as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, w as resolveResponsesMessageSnapshotCollapse, x as isAzureResponsesTextDeltaEventType, y as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, z as cleanSchemaForGemini } from "../openai-responses-shared-CwnGU0KW.mjs";
3
3
  import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
4
- import { a as clampOpenAIPromptCacheKey, i as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, n as reconcileOpenAICompletionsToolChoice, r as reconcileOpenAIResponsesToolChoice, t as projectOpenAITools } from "../openai-tool-projection-cTLC4F65.mjs";
5
- import { a as mapOpenAIStopReason, i as streamSimpleOpenAICompletions, r as streamOpenAICompletions, t as convertMessages } from "../openai-completions-B2jr3vtJ.mjs";
6
- import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-DTpD8YVy.mjs";
7
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, clearOpenAIToolSchemaCacheForTest, convertMessages, extractToolSchemaModelCompat, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
4
+ import { a as clampOpenAIPromptCacheKey, i as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, n as reconcileOpenAICompletionsToolChoice, r as reconcileOpenAIResponsesToolChoice, t as projectOpenAITools } from "../openai-tool-projection-WHf2nuOI.mjs";
5
+ import { a as mapOpenAIStopReason, i as streamSimpleOpenAICompletions, r as streamOpenAICompletions, t as convertMessages } from "../openai-completions-zLDfebnN.mjs";
6
+ import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-ClspWt4I.mjs";
7
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,5 +1,5 @@
1
- import { D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, P as ProviderStreamOptions, X as Usage, i as AssistantMessage, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "../types-Cx2zJtyz.mjs";
2
- import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-Byvoz8Ha.mjs";
1
+ import { D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, P as ProviderStreamOptions, X as Usage, i as AssistantMessage, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "../types-CYORveZ7.mjs";
2
+ import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-DXBIXISf.mjs";
3
3
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
4
4
 
5
5
  //#region packages/ai/src/internal/default-runtime.d.ts
@@ -1,6 +1,6 @@
1
1
  import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-DnhYpc27.mjs";
2
2
  import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
3
- import { a as modelsAreEqual, i as getSupportedThinkingLevels, n as calculateCost, r as clampThinkingLevel, t as applyProviderReportedUsageCost } from "../model-utils-Q1LSRIdo.mjs";
3
+ import { a as modelsAreEqual, i as getSupportedThinkingLevels, n as calculateCost, r as clampThinkingLevel, t as applyProviderReportedUsageCost } from "../model-utils-1GiZ2_rr.mjs";
4
4
  import { n as onLlmRequestActivity, r as createDeferredEventBuffer, t as notifyLlmRequestActivity } from "../llm-request-activity-CehVkZP-.mjs";
5
5
  import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
6
6
  import { n as parseStreamingJson, r as repairJson, t as parseJsonWithRepair } from "../json-parse-BvXNt1-7.mjs";
@@ -70,11 +70,12 @@ const OVERFLOW_PATTERNS = [
70
70
  /request_too_large/i,
71
71
  /input is too long for requested model/i,
72
72
  /exceeds the context window/i,
73
- /exceeds (?:the )?(?:model'?s )?maximum context length of [\d,]+ tokens?/i,
73
+ /exceeds (?:the )?(?:model'?s )?maximum context length(?: of [\d,]+ tokens?|\s*\([\d,]+\))/i,
74
74
  /input token count.*exceeds the maximum/i,
75
75
  /maximum prompt length is \d+/i,
76
76
  /reduce the length of the messages/i,
77
77
  /maximum context length is \d+ tokens/i,
78
+ /exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,
78
79
  /input \(\d+ tokens\) is longer than the model'?s context length \(\d+ tokens\)/i,
79
80
  /exceeds the limit of \d+/i,
80
81
  /exceeds the available context size/i,
@@ -1,4 +1,4 @@
1
- import { E as Model, F as SimpleStreamOptions, H as ThinkingBudgets, T as Message, W as ThinkingLevel, i as AssistantMessage, n as Api, z as StreamOptions } from "../types-Cx2zJtyz.mjs";
1
+ import { E as Model, F as SimpleStreamOptions, H as ThinkingBudgets, T as Message, W as ThinkingLevel, i as AssistantMessage, n as Api, z as StreamOptions } from "../types-CYORveZ7.mjs";
2
2
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
3
3
 
4
4
  //#region packages/ai/src/providers/simple-options.d.ts
@@ -7,6 +7,8 @@ type FirstEventStreamOptions = {
7
7
  onFirstEventTimeout?: (reason: Error) => void;
8
8
  };
9
9
  declare function buildBaseOptions(model: Model, options?: SimpleStreamOptions, apiKey?: string): StreamOptions & FirstEventStreamOptions;
10
+ declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number): number;
11
+ declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number | undefined): number | undefined;
10
12
  declare function clampReasoning(effort: ThinkingLevel): Exclude<ThinkingLevel, "xhigh">;
11
13
  declare function clampReasoning(effort: ThinkingLevel | undefined): Exclude<ThinkingLevel, "xhigh"> | undefined;
12
14
  declare function adjustMaxTokensForThinking(baseMaxTokens: number | undefined, modelMaxTokens: number, reasoningLevel: ThinkingLevel, customBudgets?: ThinkingBudgets): {
@@ -15,6 +17,15 @@ declare function adjustMaxTokensForThinking(baseMaxTokens: number | undefined, m
15
17
  };
16
18
  //#endregion
17
19
  //#region packages/ai/src/providers/tool-result-text.d.ts
20
+ /** Media metadata alone is not an attachment; provider emitters need inline bytes. */
21
+ declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
22
+ data: string;
23
+ };
24
+ /** Image metadata alone is not an attachment; provider emitters need inline bytes. */
25
+ declare function isImageWithMediaPayload<T>(block: T): block is T & {
26
+ type: "image";
27
+ data: string;
28
+ };
18
29
  declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
19
30
  declare function extractToolResultBlockText(block: unknown): string | undefined;
20
31
  declare function extractToolResultText(blocks: readonly unknown[]): string;
@@ -46,4 +57,4 @@ declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
46
57
  systemPromptAddition?: string;
47
58
  }): string;
48
59
  //#endregion
49
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
60
+ export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
@@ -1,3 +1,3 @@
1
1
  import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
2
- import { C as normalizeStructuredPromptSection, S as normalizePromptCapabilityIds, _ as SYSTEM_PROMPT_CACHE_BOUNDARY, b as splitSystemPromptCacheBoundary, c as clampReasoning, i as extractToolResultText, n as describeToolResultMediaPlaceholder, o as adjustMaxTokensForThinking, r as extractToolResultBlockText, s as buildBaseOptions, t as transformMessages, v as ensureSystemPromptCacheBoundary, x as stripSystemPromptCacheBoundary, y as prependSystemPromptAdditionAfterCacheBoundary } from "../transform-messages-DNWpwvXA.mjs";
3
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
2
+ import { C as splitSystemPromptCacheBoundary, E as normalizeStructuredPromptSection, S as prependSystemPromptAdditionAfterCacheBoundary, T as normalizePromptCapabilityIds, a as hasMediaPayload, b as SYSTEM_PROMPT_CACHE_BOUNDARY, c as adjustMaxTokensForThinking, d as clampReasoning, i as extractToolResultText, l as buildBaseOptions, n as describeToolResultMediaPlaceholder, o as isImageWithMediaPayload, r as extractToolResultBlockText, t as transformMessages, u as clampMaxTokensToModel, w as stripSystemPromptCacheBoundary, x as ensureSystemPromptCacheBoundary } from "../transform-messages-eb6lxDLB.mjs";
3
+ export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };