@openclaw/ai 2026.10.5-beta.4 → 2026.10.6

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 (52) hide show
  1. package/dist/{anthropic-BalhAzs-.mjs → anthropic-DusktpKG.mjs} +6 -6
  2. package/dist/{anthropic-payload-policy-DGblkHL5.d.mts → anthropic-payload-policy-DVv20UCL.d.mts} +1 -1
  3. package/dist/{anthropic-stream-reducer-DkKeXXx4.mjs → anthropic-stream-reducer-BY-gN9EE.mjs} +12 -7
  4. package/dist/{assistant-output-BuhRpLeD.mjs → assistant-output-DDZq4a3j.mjs} +2 -2
  5. package/dist/{assistant-text-phase-Bn1hbvK9.mjs → assistant-text-phase-CgpXhaLS.mjs} +1 -1
  6. package/dist/{azure-openai-responses-DfT9Ndd8.mjs → azure-openai-responses-yuBKi0s4.mjs} +4 -4
  7. package/dist/{google-sYI2wnY6.mjs → google-NMkwYgCy.mjs} +2 -2
  8. package/dist/{google-interactions-9SSqsJg9.mjs → google-interactions-BEV3C85P.mjs} +19 -16
  9. package/dist/{google-messages-DsB7fmoQ.mjs → google-messages-BhdxpH4K.mjs} +6 -4
  10. package/dist/{google-provider-stream-CcEI2-MC.mjs → google-provider-stream-B0GeAuTB.mjs} +6 -6
  11. package/dist/{google-shared-zGR0QUyS.mjs → google-shared-Cpz8bSTL.mjs} +13 -18
  12. package/dist/{google-vertex-Dw_abY1w.mjs → google-vertex-DJvQwNgr.mjs} +2 -2
  13. package/dist/{host-Bf3NjYNj.mjs → host-CIzdzpBn.mjs} +1 -1
  14. package/dist/{host-policy-BzZluO6_.mjs → host-policy-C0y3BC9R.mjs} +1 -1
  15. package/dist/index.mjs +2 -2
  16. package/dist/internal/anthropic.d.mts +2 -2
  17. package/dist/internal/anthropic.mjs +3 -3
  18. package/dist/internal/google-model-family.d.mts +2 -0
  19. package/dist/internal/google-model-family.mjs +6 -2
  20. package/dist/internal/openai-completions-compat.d.mts +1 -1
  21. package/dist/internal/openai-completions-compat.mjs +1 -1
  22. package/dist/internal/openai-responses-payload-policy.d.mts +1 -1
  23. package/dist/internal/openai-responses-payload-policy.mjs +2 -2
  24. package/dist/internal/openai.d.mts +5 -5
  25. package/dist/internal/openai.mjs +9 -9
  26. package/dist/internal/runtime.mjs +4 -4
  27. package/dist/internal/shared.mjs +3 -3
  28. package/dist/{mistral-dCDCR5ur.mjs → mistral-CDK7WGwC.mjs} +4 -4
  29. package/dist/{openai-chatgpt-responses-BHI3uCcA.mjs → openai-chatgpt-responses-BjfLWIK6.mjs} +11 -11
  30. package/dist/{openai-completions-CrVgnFrV.mjs → openai-completions-BkRt2Iy4.mjs} +3 -3
  31. package/dist/{openai-completions-compat-i-nLZxFy.d.mts → openai-completions-compat-B86jN9ii.d.mts} +2 -0
  32. package/dist/{openai-completions-compat-CYX18uDk.mjs → openai-completions-compat-CpeOT7jH.mjs} +3 -1
  33. package/dist/{openai-completions-transport-Dy4CZo9Q.mjs → openai-completions-transport-BRjxCG1C.mjs} +28 -27
  34. package/dist/{openai-prompt-cache-r93BJhjm.mjs → openai-prompt-cache-CvftfMfD.mjs} +1 -1
  35. package/dist/{openai-responses-D5oiAUOG.mjs → openai-responses-BUDpkW8I.mjs} +6 -6
  36. package/dist/{openai-responses-compaction-replay-B2FE4Nw8.d.mts → openai-responses-compaction-replay-DtEbZJbU.d.mts} +2 -2
  37. package/dist/{openai-responses-contracts-DKqMJ1Ct.d.mts → openai-responses-contracts-Cm1QilsO.d.mts} +1 -1
  38. package/dist/{openai-responses-contracts-DlKMMTxK.mjs → openai-responses-contracts-DbD7sGP-.mjs} +7 -1
  39. package/dist/{openai-responses-endpoint-CinGh4VZ.mjs → openai-responses-endpoint-COHJK1MR.mjs} +1 -1
  40. package/dist/{openai-responses-request-lifecycle-NSIJo9jY.mjs → openai-responses-request-lifecycle-Cx2nKN1G.mjs} +3 -3
  41. package/dist/{openai-responses-shared-D-aDYAkJ.mjs → openai-responses-shared-C1GHTB0q.mjs} +26 -13
  42. package/dist/{provider-options-CVrXZBtA.d.mts → provider-options-DTuD2UNR.d.mts} +6 -1
  43. package/dist/{provider-transport-turn-state-BOpxgm-J.mjs → provider-transport-turn-state-O5JWdUL4.mjs} +2 -2
  44. package/dist/providers.mjs +10 -10
  45. package/dist/{simple-options-BAu4B54D.mjs → simple-options-CmtE6whA.mjs} +3 -3
  46. package/dist/{stream-Dd8DwRFL.mjs → stream-BBjz-Jw2.mjs} +1 -1
  47. package/dist/text-signature-an0fgbDz.mjs +34 -0
  48. package/dist/{transport-stream-shared-CWGOuLcA.mjs → transport-stream-shared-Dr_GBa9K.mjs} +1 -1
  49. package/dist/{text-signature-Drb4Erb8.mjs → transport-utils-DmYqQcG7.mjs} +3 -35
  50. package/dist/transports.d.mts +8 -6
  51. package/dist/transports.mjs +14 -14
  52. package/package.json +1 -1
@@ -2,22 +2,22 @@ import { i as formatThrownValue, n as createAssistantMessageDiagnostic, t as app
2
2
  import { t as AssistantMessageEventStream } from "./event-stream-X2gmsUWv.mjs";
3
3
  import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
4
4
  import { i as clampPositiveTimerTimeoutMs } from "./number-coercion-C3hztWoY.mjs";
5
- import { E as headersToRecord, a as resolveAiTransportHeaderSentinels, r as getAiTransportHost } from "./host-Bf3NjYNj.mjs";
6
- import { h as responsesPromptObserver, k as supportsOpenAITemperature } from "./openai-responses-contracts-DlKMMTxK.mjs";
5
+ import { E as headersToRecord, a as resolveAiTransportHeaderSentinels, r as getAiTransportHost } from "./host-CIzdzpBn.mjs";
6
+ import { A as supportsOpenAITemperature, h as responsesPromptObserver } from "./openai-responses-contracts-DbD7sGP-.mjs";
7
7
  import { r as registerSessionResourceCleanup } from "./session-resources-D1wgDQ8C.mjs";
8
8
  import "./provider-error-CF9GWCs2.mjs";
9
- import { n as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-r93BJhjm.mjs";
9
+ import { n as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-CvftfMfD.mjs";
10
10
  import { s as WEBSOCKET_NON_RETRYABLE_CLOSE_ERROR_CODE, v as extractErrorCodeOrErrno, y as toErrorObject } from "./diagnostics-tQasYct1.mjs";
11
- import { a as MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE, d as streamFragmentError, p as consumeResponseBytes } from "./text-signature-Drb4Erb8.mjs";
11
+ import { l as consumeResponseBytes, s as streamFragmentError, t as MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE } from "./transport-utils-DmYqQcG7.mjs";
12
12
  import { parseRetryAfterHeadersSeconds } from "./internal/retry-after.mjs";
13
- import { c as resolveOpenAIResponsesTextFormat } from "./openai-completions-compat-CYX18uDk.mjs";
14
- import { n as buildManagedModelFetch } from "./host-policy-BzZluO6_.mjs";
15
- import { S as withProviderResponseHook, b as transportAbortError, h as notifyProviderStreamOpened, n as assignTransportErrorDetails } from "./transport-stream-shared-CWGOuLcA.mjs";
16
- import { C as stripSystemPromptCacheBoundary, n as buildBaseOptions } from "./simple-options-BAu4B54D.mjs";
17
- import { Dt as createResponseModelTracker, E as ResponsesStreamFailure, Et as createOpenAIResponseHook, F as convertProviderResponsesMessages, S as isInvalidEncryptedContentError, T as resolveNextResponsesEncryptedContentAttempt, Tt as createOpenAIProviderAcceptanceHook, _t as resolveOpenAISimpleReasoningEffort, at as suppressOpenAIResponsesCompaction, b as commitResponsesEncryptedContentAttempt, gt as resolveOpenAIRequestReasoning, i as convertResponsesToolPayload, j as recordResponsesContextUsage, n as applyResponsesServiceTierPricing, nt as buildOpenAIResponsesReasoningReplayMetadata, o as readOpenAIMisalignmentReview, s as processResponsesStream } from "./openai-responses-shared-D-aDYAkJ.mjs";
18
- import { t as createAssistantOutput } from "./assistant-output-BuhRpLeD.mjs";
13
+ import { c as resolveOpenAIResponsesTextFormat } from "./openai-completions-compat-CpeOT7jH.mjs";
14
+ import { n as buildManagedModelFetch } from "./host-policy-C0y3BC9R.mjs";
15
+ import { S as withProviderResponseHook, b as transportAbortError, h as notifyProviderStreamOpened, n as assignTransportErrorDetails } from "./transport-stream-shared-Dr_GBa9K.mjs";
16
+ import { C as stripSystemPromptCacheBoundary, n as buildBaseOptions } from "./simple-options-CmtE6whA.mjs";
17
+ import { Dt as createResponseModelTracker, E as ResponsesStreamFailure, Et as createOpenAIResponseHook, F as convertProviderResponsesMessages, S as isInvalidEncryptedContentError, T as resolveNextResponsesEncryptedContentAttempt, Tt as createOpenAIProviderAcceptanceHook, _t as resolveOpenAISimpleReasoningEffort, at as suppressOpenAIResponsesCompaction, b as commitResponsesEncryptedContentAttempt, gt as resolveOpenAIRequestReasoning, i as convertResponsesToolPayload, j as recordResponsesContextUsage, n as applyResponsesServiceTierPricing, nt as buildOpenAIResponsesReasoningReplayMetadata, o as readOpenAIMisalignmentReview, s as processResponsesStream } from "./openai-responses-shared-C1GHTB0q.mjs";
18
+ import { t as createAssistantOutput } from "./assistant-output-DDZq4a3j.mjs";
19
19
  import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "./stream-first-event-timeout-Dc42hKv6.mjs";
20
- import { n as withResponsesRequestAcceptance, r as createResponsesPromptEgressObserver, t as responsesRequestLifecycle } from "./openai-responses-request-lifecycle-NSIJo9jY.mjs";
20
+ import { n as withResponsesRequestAcceptance, r as createResponsesPromptEgressObserver, t as responsesRequestLifecycle } from "./openai-responses-request-lifecycle-Cx2nKN1G.mjs";
21
21
  import { t as requireApiKey } from "./required-api-key-CFJvcFy_.mjs";
22
22
  import { n as resolveOpenAICodexAccountId } from "./openai-chatgpt-jwt-KWcgd0d_.mjs";
23
23
  //#region packages/ai/src/providers/openai-chatgpt-responses-events.ts
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
2
- import { k as clampThinkingLevel } from "./host-Bf3NjYNj.mjs";
3
- import { n as buildBaseOptions } from "./simple-options-BAu4B54D.mjs";
4
- import { c as convertMessages, n as streamOpenAICompletionsRequest } from "./openai-completions-transport-Dy4CZo9Q.mjs";
2
+ import { k as clampThinkingLevel } from "./host-CIzdzpBn.mjs";
3
+ import { n as buildBaseOptions } from "./simple-options-CmtE6whA.mjs";
4
+ import { c as convertMessages, n as streamOpenAICompletionsRequest } from "./openai-completions-transport-BRjxCG1C.mjs";
5
5
  import { t as requireApiKey } from "./required-api-key-CFJvcFy_.mjs";
6
6
  //#region packages/ai/src/providers/openai-completions.ts
7
7
  var openai_completions_exports = /* @__PURE__ */ __exportAll({
@@ -10,6 +10,7 @@ type OpenAICompletionsCompatDefaults = {
10
10
  supportsUsageInStreaming: boolean;
11
11
  maxTokensField: "max_completion_tokens" | "max_tokens";
12
12
  thinkingFormat: "openai" | "openrouter" | "deepseek" | "together" | "zai";
13
+ emitsDsmlToolCalls: boolean;
13
14
  visibleReasoningDetailTypes: string[];
14
15
  supportsStrictMode: boolean;
15
16
  supportsJsonSchemaResponseFormat: boolean;
@@ -24,6 +25,7 @@ type ResolvedOpenAICompletionsCompat = Omit<Required<OpenAICompletionsCompat>, "
24
25
  openRouterRouting?: OpenAICompletionsCompat["openRouterRouting"];
25
26
  sessionAffinity: OpenAICompletionsSessionAffinity;
26
27
  visibleReasoningDetailTypes: string[];
28
+ emitsDsmlToolCalls: boolean;
27
29
  requiresNonEmptyUserOrAssistantMessage: boolean;
28
30
  configuredSupportsLongCacheRetention?: boolean;
29
31
  reasoningEffortForOff: "none" | null;
@@ -1,5 +1,5 @@
1
1
  import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
- import { a as resolveProviderRequestCapabilities } from "./host-policy-BzZluO6_.mjs";
2
+ import { a as resolveProviderRequestCapabilities } from "./host-policy-C0y3BC9R.mjs";
3
3
  //#region packages/ai/src/providers/openai-response-format.ts
4
4
  const JSON_SCHEMA_RESPONSE_FORMAT_NAME = "openclaw_response";
5
5
  const OLLAMA_CLOUD_ORIGIN = "https://ollama.com";
@@ -109,6 +109,7 @@ function resolveOpenAICompletionsCompatDefaults(input) {
109
109
  supportsReasoningEffort: !isZai && !isTogether && !isMistral && endpointClass !== "xai-native" && (!usesExplicitProxyLikeEndpoint || input.reasoning === true),
110
110
  supportsUsageInStreaming: supportsOpenAICompletionsStreamingUsageCompat || !isNonStandard && (isLocalEndpoint || !usesConfiguredNonOpenAIEndpoint || supportsNativeStreamingUsageCompat),
111
111
  maxTokensField: usesMaxTokens ? "max_tokens" : "max_completion_tokens",
112
+ emitsDsmlToolCalls: isDeepSeek || isXiaomi || /(?:^|\/)deepseek(?:[-/]|$)/i.test(modelId ?? ""),
112
113
  thinkingFormat: isDeepSeek || isXiaomi ? "deepseek" : isZai ? "zai" : isTogether ? "together" : isOpenRouterLike ? "openrouter" : "openai",
113
114
  visibleReasoningDetailTypes: isOpenRouterLike ? ["response.output_text", "response.text"] : [],
114
115
  supportsStrictMode: !isZai && !usesConfiguredNonOpenAIEndpoint,
@@ -166,6 +167,7 @@ function resolveOpenAICompletionsCompat(model, resolveCapabilities) {
166
167
  requiresThinkingAsText: configured?.requiresThinkingAsText ?? false,
167
168
  requiresReasoningContentOnAssistantMessages: configured?.requiresReasoningContentOnAssistantMessages ?? defaults.requiresReasoningContentOnAssistantMessages,
168
169
  thinkingFormat,
170
+ emitsDsmlToolCalls: configured?.thinkingFormat === "deepseek" || defaults.emitsDsmlToolCalls,
169
171
  openRouterRouting: configured?.openRouterRouting,
170
172
  vercelGatewayRouting: configured?.vercelGatewayRouting ?? {},
171
173
  zaiToolStream: configured?.zaiToolStream ?? false,
@@ -3,36 +3,37 @@ import { r as appendAssistantThinking } from "./event-stream-X2gmsUWv.mjs";
3
3
  import { i as asOptionalRecord, o as isRecord, r as asOptionalObjectRecord } from "./record-coerce-CNDovvft.mjs";
4
4
  import { s as readNonEmptyStringPreservingWhitespace, t as hasNonEmptyString } from "./string-coerce-CtgOVOSv.mjs";
5
5
  import { n as asNonNegativeFiniteNumber, r as asPositiveFiniteNumber } from "./number-coercion-C3hztWoY.mjs";
6
- import { N as isImageWithMediaPayload, a as resolveAiTransportHeaderSentinels, r as getAiTransportHost } from "./host-Bf3NjYNj.mjs";
7
- import { M as resolveOpenAIThinkingApi, S as isOpenAIGpt6Model, _ as isResponsesServiceTierRejection, b as isOpenAIGpt55Model, d as OpenAIResponsesWebSocketSafeRetryError, g as responsesServiceTierObserver, k as supportsOpenAITemperature, l as OpenAIResponsesWebSocketPostDispatchError, m as parseOpenAIResponsesWebSocketServerError, r as OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS, t as AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS, u as OpenAIResponsesWebSocketPreDispatchError, v as nextResponsesServiceTier, x as isOpenAIGpt56Model, y as isOpenAIGpt54MiniModel } from "./openai-responses-contracts-DlKMMTxK.mjs";
6
+ import { N as isImageWithMediaPayload, a as resolveAiTransportHeaderSentinels, r as getAiTransportHost } from "./host-CIzdzpBn.mjs";
7
+ import { A as supportsOpenAITemperature, C as isOpenAIGpt6Model, N as resolveOpenAIThinkingApi, _ as isResponsesServiceTierRejection, d as OpenAIResponsesWebSocketSafeRetryError, g as responsesServiceTierObserver, l as OpenAIResponsesWebSocketPostDispatchError, m as parseOpenAIResponsesWebSocketServerError, r as OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS, t as AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS, u as OpenAIResponsesWebSocketPreDispatchError, v as nextResponsesServiceTier, y as applyOpenAICompletionsToolReasoning } from "./openai-responses-contracts-DbD7sGP-.mjs";
8
8
  import { r as uniqueStrings } from "./string-normalization-I3ux50s9.mjs";
9
9
  import { n as getSessionResourceOwnerId, r as registerSessionResourceCleanup } from "./session-resources-D1wgDQ8C.mjs";
10
10
  import { c as stableStringify, s as truncateUtf16Safe } from "./provider-error-CF9GWCs2.mjs";
11
- import { r as resolveOpenAIPromptCacheParams } from "./openai-prompt-cache-r93BJhjm.mjs";
11
+ import { r as resolveOpenAIPromptCacheParams } from "./openai-prompt-cache-CvftfMfD.mjs";
12
12
  import { d as hasOnlyResponsesFunctionTools, i as emitModelTransportError, r as emitModelTransportDebug, t as formatModelTransportDebugBaseUrl } from "./diagnostics-tQasYct1.mjs";
13
- import { f as supportsModelTools, i as providerReplayContextMatches, n as buildProviderReplayContext, o as estimateStringChars, r as isProviderReplayContext } from "./text-signature-Drb4Erb8.mjs";
14
- import { c as resolveOpenAIResponsesTextFormat, i as resolveOpenAICompletionsCompat, l as shouldOmitOllamaCompatResponseFormat, n as isNativeOpenAIEndpoint, o as usesNativeOpenAICodexResponsesBackend, r as isOpenAICodexResponsesModel, s as resolveOpenAICompletionsResponseFormat, t as detectOpenAICompletionsCompat } from "./openai-completions-compat-CYX18uDk.mjs";
15
- import { i as resolveProviderEndpoint, t as buildGuardedModelFetch } from "./host-policy-BzZluO6_.mjs";
13
+ import { c as supportsModelTools, n as estimateStringChars } from "./transport-utils-DmYqQcG7.mjs";
14
+ import { c as resolveOpenAIResponsesTextFormat, i as resolveOpenAICompletionsCompat, l as shouldOmitOllamaCompatResponseFormat, n as isNativeOpenAIEndpoint, o as usesNativeOpenAICodexResponsesBackend, r as isOpenAICodexResponsesModel, s as resolveOpenAICompletionsResponseFormat, t as detectOpenAICompletionsCompat } from "./openai-completions-compat-CpeOT7jH.mjs";
15
+ import { i as resolveProviderEndpoint, t as buildGuardedModelFetch } from "./host-policy-C0y3BC9R.mjs";
16
16
  import { i as resolveCacheRetention, r as buildCopilotDynamicHeaders } from "./cloudflare-5qSGvIUH.mjs";
17
- import { E as createToolArgumentPreviewSchedule, M as racePromiseWithAbortSignal, O as parseStreamingJson, P as sanitizeSurrogates, S as withProviderResponseHook, b as transportAbortError, c as failTransportStream, d as iterateModelStream, h as notifyProviderStreamOpened, l as finalizeTerminalToolCallArguments, s as createWritableTransportEventStream, u as finalizeTransportStream, v as sanitizeTransportPayloadText, y as throwIfModelStreamAborted } from "./transport-stream-shared-CWGOuLcA.mjs";
18
- import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, S as splitSystemPromptRelocatableBoundary, d as describeToolResultMediaPlaceholder, l as codeModeToolSurfaceObserver, m as extractToolResultText, s as prepareModelRequestBody, u as reasoningTagTextPolicy, w as stripSystemPromptRelocatableBoundary, x as splitSystemPromptCacheBoundary } from "./simple-options-BAu4B54D.mjs";
19
- import { $ as replayResponsesReasoningUpdates, A as summarizeResponsesPayload, At as measureUtf8AppendBytes, B as responsesInputFingerprint, C as readResponsesRecoveryEvent, Ct as toOpenAIResponsesToolChoice, D as logResponsesFailedNoDetails, Dt as createResponseModelTracker, E as ResponsesStreamFailure, Ft as resolvePromptCacheKey, G as responsesContinuationRequestFingerprint, H as recordResponsesContinuationState, I as convertResponsesMessages, It as redactIdentifier, Lt as sha256Hex, Mt as readOpenAICompletionsContentDeltas, Nt as readOpenAICompletionsReasoningBatch, O as safeDebugValue, Ot as isOpenAICompletionsThinkingEnabled, P as buildResponsesInputMessage, Pt as resolveOpenAIClientBaseUrl, Q as isConfigurationUpdate, R as readResponsesInputReplayState, S as isInvalidEncryptedContentError, St as reconcileOpenAIResponsesToolChoice, T as resolveNextResponsesEncryptedContentAttempt, Tt as createOpenAIProviderAcceptanceHook, U as resolveResponsesContinuationRequest, V as claimOpenAIResponsesHttpContinuation, W as responsesContinuationPrefixFingerprint, _t as resolveOpenAISimpleReasoningEffort, a as prepareResponsesTools, at as suppressOpenAIResponsesCompaction, bt as projectOpenAITools, c as observeResponsesStream, ct as buildOpenAISdkClientOptions, et as supportsResponsesReasoningUpdate, ft as getCompat, gt as resolveOpenAIRequestReasoning, ht as resolveOpenAIStrictToolFlagWithDiagnostics, j as recordResponsesContextUsage, jt as parseOpenAICompletionsUsage, k as summarizeOpenAITransportError, kt as log, lt as buildOpenAISdkRequestOptions, mt as resolveCodeModeResponsesVisibleToolNames, n as applyResponsesServiceTierPricing, nt as buildOpenAIResponsesReasoningReplayMetadata, ot as assertCodeModeResponsesToolSurface, s as processResponsesStream, st as buildOpenAIClientHeaders, ut as enforceCodeModeResponsesToolSurface, w as resolveAzureOpenAIApiVersion, wt as GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, x as createResponsesStreamWithRecovery, xt as reconcileOpenAICompletionsToolChoice, yt as prepareOpenAITools, z as recordResponsesInputReplay } from "./openai-responses-shared-D-aDYAkJ.mjs";
17
+ import { E as createToolArgumentPreviewSchedule, M as racePromiseWithAbortSignal, O as parseStreamingJson, P as sanitizeSurrogates, S as withProviderResponseHook, b as transportAbortError, c as failTransportStream, d as iterateModelStream, h as notifyProviderStreamOpened, l as finalizeTerminalToolCallArguments, s as createWritableTransportEventStream, u as finalizeTransportStream, v as sanitizeTransportPayloadText, y as throwIfModelStreamAborted } from "./transport-stream-shared-Dr_GBa9K.mjs";
18
+ import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, S as splitSystemPromptRelocatableBoundary, d as describeToolResultMediaPlaceholder, l as codeModeToolSurfaceObserver, m as extractToolResultText, r as clampMaxTokensToModel, s as prepareModelRequestBody, u as reasoningTagTextPolicy, w as stripSystemPromptRelocatableBoundary, x as splitSystemPromptCacheBoundary } from "./simple-options-CmtE6whA.mjs";
19
+ import { $ as replayResponsesReasoningUpdates, A as summarizeResponsesPayload, At as log, B as responsesInputFingerprint, C as readResponsesRecoveryEvent, Ct as toOpenAIResponsesToolChoice, D as logResponsesFailedNoDetails, Dt as createResponseModelTracker, E as ResponsesStreamFailure, Ft as resolveOpenAIClientBaseUrl, G as responsesContinuationRequestFingerprint, H as recordResponsesContinuationState, I as convertResponsesMessages, It as resolvePromptCacheKey, Lt as redactIdentifier, Mt as parseOpenAICompletionsUsage, Nt as readOpenAICompletionsContentDeltas, O as safeDebugValue, Ot as detachPartialSnapshot, P as buildResponsesInputMessage, Pt as readOpenAICompletionsReasoningBatch, Q as isConfigurationUpdate, R as readResponsesInputReplayState, Rt as sha256Hex, S as isInvalidEncryptedContentError, St as reconcileOpenAIResponsesToolChoice, T as resolveNextResponsesEncryptedContentAttempt, Tt as createOpenAIProviderAcceptanceHook, U as resolveResponsesContinuationRequest, V as claimOpenAIResponsesHttpContinuation, W as responsesContinuationPrefixFingerprint, _t as resolveOpenAISimpleReasoningEffort, a as prepareResponsesTools, at as suppressOpenAIResponsesCompaction, bt as projectOpenAITools, c as observeResponsesStream, ct as buildOpenAISdkClientOptions, et as supportsResponsesReasoningUpdate, ft as getCompat, gt as resolveOpenAIRequestReasoning, ht as resolveOpenAIStrictToolFlagWithDiagnostics, j as recordResponsesContextUsage, jt as measureUtf8AppendBytes, k as summarizeOpenAITransportError, kt as isOpenAICompletionsThinkingEnabled, lt as buildOpenAISdkRequestOptions, mt as resolveCodeModeResponsesVisibleToolNames, n as applyResponsesServiceTierPricing, nt as buildOpenAIResponsesReasoningReplayMetadata, ot as assertCodeModeResponsesToolSurface, s as processResponsesStream, st as buildOpenAIClientHeaders, ut as enforceCodeModeResponsesToolSurface, w as resolveAzureOpenAIApiVersion, wt as GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, x as createResponsesStreamWithRecovery, xt as reconcileOpenAICompletionsToolChoice, yt as prepareOpenAITools, z as recordResponsesInputReplay } from "./openai-responses-shared-C1GHTB0q.mjs";
20
20
  import { n as getEnvApiKey } from "./env-api-keys-CrxwdylR.mjs";
21
- import { n as transformProviderMessages, t as createAssistantOutput } from "./assistant-output-BuhRpLeD.mjs";
22
- import { a as tagUnresolvedTextAsCommentary, i as tagPendingCommentaryText, n as rememberPendingCommentaryTags, r as tagInterruptedTextPhases, t as clearPendingCommentaryText } from "./assistant-text-phase-Bn1hbvK9.mjs";
21
+ import { i as providerReplayContextMatches, n as buildProviderReplayContext, r as isProviderReplayContext } from "./text-signature-an0fgbDz.mjs";
22
+ import { n as transformProviderMessages, t as createAssistantOutput } from "./assistant-output-DDZq4a3j.mjs";
23
+ import { a as tagUnresolvedTextAsCommentary, i as tagPendingCommentaryText, n as rememberPendingCommentaryTags, r as tagInterruptedTextPhases, t as clearPendingCommentaryText } from "./assistant-text-phase-CgpXhaLS.mjs";
23
24
  import { t as notifyLlmRequestActivity } from "./llm-request-activity-CfMuh5cC.mjs";
24
25
  import { n as resolveOpencodeSessionHeaders } from "./session-affinity-DA4WHv1h.mjs";
26
+ import { isGoogleGemini3ThinkingLevelModel } from "./internal/google-model-family.mjs";
25
27
  import "./types.mjs";
26
- import { i as createOpenAIProviderClient, n as resolveProviderSimpleCompletionHeaders, r as resolveProviderTransportTurnState, t as filterProviderTurnHeadersForExplicitOpencodeSession } from "./provider-transport-turn-state-BOpxgm-J.mjs";
28
+ import { i as createOpenAIProviderClient, n as resolveProviderSimpleCompletionHeaders, r as resolveProviderTransportTurnState, t as filterProviderTurnHeadersForExplicitOpencodeSession } from "./provider-transport-turn-state-O5JWdUL4.mjs";
27
29
  import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "./stream-first-event-timeout-Dc42hKv6.mjs";
28
30
  import { t as boundResponseBody } from "./streaming-byte-guard-DBXr1XYn.mjs";
29
31
  import { f as withPreparedToolSchemaNormalization, r as normalizeOpenAIStrictToolParameters } from "./openai-tool-schema-DDPXsvJP.mjs";
30
- import { isGoogleGemini3ThinkingLevelModel } from "./internal/google-model-family.mjs";
31
32
  import { t as mapOpenAIStopReason } from "./openai-stop-reason-8s70vDXj.mjs";
32
33
  import { t as createReasoningTagTextPartitioner } from "./reasoning-tag-text-partitioner-CpOy9-IQ.mjs";
33
34
  import { i as resolveAzureDeploymentNameFromMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "./azure-openai-responses-client-compat-D0dvJMbZ.mjs";
34
- import { i as isOpenAIResponsesCompactionOutput, l as resolveOpenAIResponsesPayloadPolicy, n as supportsNativeOpenAIResponsesEndpoint, o as sanitizeResponsesImagePayload, r as createBoundedOpenAIResponsesCompactionFetch, s as applyOpenAIResponsesPayloadPolicy, t as isOfficialOpenAIResponsesBaseUrl } from "./openai-responses-endpoint-CinGh4VZ.mjs";
35
- import { n as withResponsesRequestAcceptance, r as createResponsesPromptEgressObserver, t as responsesRequestLifecycle } from "./openai-responses-request-lifecycle-NSIJo9jY.mjs";
35
+ import { i as isOpenAIResponsesCompactionOutput, l as resolveOpenAIResponsesPayloadPolicy, n as supportsNativeOpenAIResponsesEndpoint, o as sanitizeResponsesImagePayload, r as createBoundedOpenAIResponsesCompactionFetch, s as applyOpenAIResponsesPayloadPolicy, t as isOfficialOpenAIResponsesBaseUrl } from "./openai-responses-endpoint-COHJK1MR.mjs";
36
+ import { n as withResponsesRequestAcceptance, r as createResponsesPromptEgressObserver, t as responsesRequestLifecycle } from "./openai-responses-request-lifecycle-Cx2nKN1G.mjs";
36
37
  import { randomUUID } from "node:crypto";
37
38
  import OpenAI, { AzureOpenAI } from "openai";
38
39
  import { ResponsesWS } from "openai/resources/responses/ws.js";
@@ -1078,10 +1079,7 @@ function buildOpenAICompletionsRequest(model, context, options, policy) {
1078
1079
  }
1079
1080
  applyCompletionsReasoningAndRouting(params, model, reasoning, compat, policy.mode);
1080
1081
  if (policy.mode === "managed" && compat.cacheControlFormat === "anthropic") applyCompletionsAnthropicCacheControl(params, cacheControl ?? null, cacheOptOutIndexes, markTools, !managedCompat?.requiresStringContent);
1081
- if (params.tools?.length && isKnownOpenAICompletionsEndpoint(model)) {
1082
- if (isOpenAIGpt56Model(model)) params.reasoning_effort = "none";
1083
- else if (isOpenAIGpt54MiniModel(model) || isOpenAIGpt55Model(model)) delete params.reasoning_effort;
1084
- }
1082
+ if (params.tools?.length && isKnownOpenAICompletionsEndpoint(model)) applyOpenAICompletionsToolReasoning(params, model);
1085
1083
  return params;
1086
1084
  }
1087
1085
  //#endregion
@@ -1444,9 +1442,8 @@ async function processCompletionsStream(responseStream, output, model, stream, o
1444
1442
  const openAIModel = model;
1445
1443
  const compat = getCompat(openAIModel);
1446
1444
  const visibleReasoningDetailTypes = new Set(compat.visibleReasoningDetailTypes);
1447
- const shouldFilterDeepSeekDsmlText = compat.thinkingFormat === "deepseek";
1448
- const deepSeekTextFilter = shouldFilterDeepSeekDsmlText ? createDeepSeekTextFilter() : null;
1449
- const deepSeekToolCallRecoverer = !directMode && shouldFilterDeepSeekDsmlText ? createDsmlRecoverer() : null;
1445
+ const deepSeekTextFilter = compat.emitsDsmlToolCalls ? createDeepSeekTextFilter() : null;
1446
+ const deepSeekToolCallRecoverer = !directMode && compat.emitsDsmlToolCalls ? createDsmlRecoverer() : null;
1450
1447
  const gemmaToolCallRecoverer = !directMode && /gemma-?4/i.test(model.id) ? createGemmaToolCallRecoverer() : null;
1451
1448
  const reasoningTagTextPartitioner = createReasoningTagTextPartitioner();
1452
1449
  if (options?.strictReasoningTags) reasoningTagTextPartitioner.markStrict();
@@ -1461,7 +1458,7 @@ async function processCompletionsStream(responseStream, output, model, stream, o
1461
1458
  const toolCallBlocksById = /* @__PURE__ */ new Map();
1462
1459
  const encryptedReasoning = createOpenAIEncryptedToolCallReasoningTracker();
1463
1460
  const toolArgumentPreviewSchedules = /* @__PURE__ */ new WeakMap();
1464
- const provisionalCommentaryTags = directMode ? options.provisionalCommentaryTags : /* @__PURE__ */ new Map();
1461
+ const provisionalCommentaryTags = directMode && options.provisionalCommentaryTags ? options.provisionalCommentaryTags : /* @__PURE__ */ new Map();
1465
1462
  const blockIndices = /* @__PURE__ */ new WeakMap();
1466
1463
  let explicitVisibleTextBlocks;
1467
1464
  const normalizeToolCallDeltas = createOpenAICompletionsToolCallDeltaNormalizer();
@@ -1471,7 +1468,7 @@ async function processCompletionsStream(responseStream, output, model, stream, o
1471
1468
  let chunkPushedEvent = false;
1472
1469
  const pushStreamEvent = (event) => {
1473
1470
  chunkPushedEvent = true;
1474
- stream.push(event);
1471
+ stream.push(detachPartialSnapshot(event));
1475
1472
  };
1476
1473
  const appendToolCallBlock = (block) => {
1477
1474
  output.content.push(block);
@@ -1574,6 +1571,7 @@ async function processCompletionsStream(responseStream, output, model, stream, o
1574
1571
  } : delta);
1575
1572
  }
1576
1573
  };
1574
+ const recoveredToolCallBlocks = /* @__PURE__ */ new Set();
1577
1575
  const appendRecoveredToolCall = (toolCall) => {
1578
1576
  if (currentBlock?.type === "toolCall") {
1579
1577
  currentBlock = null;
@@ -1587,6 +1585,7 @@ async function processCompletionsStream(responseStream, output, model, stream, o
1587
1585
  arguments: toolCall.arguments,
1588
1586
  partialArgs: toolCall.partialArgs
1589
1587
  };
1588
+ recoveredToolCallBlocks.add(block);
1590
1589
  currentBlock = block;
1591
1590
  appendToolCallBlock(block);
1592
1591
  pushStreamEvent({
@@ -1800,6 +1799,7 @@ async function processCompletionsStream(responseStream, output, model, stream, o
1800
1799
  for (const part of deepSeekTextFilter?.flush() ?? []) appendVisibleTextDelta(part);
1801
1800
  currentBlock = null;
1802
1801
  flushPendingPostToolCallDeltas();
1802
+ if (sawNativeToolCallDelta && recoveredToolCallBlocks.size > 0) output.content = output.content.filter((block) => block.type !== "toolCall" || !recoveredToolCallBlocks.has(block));
1803
1803
  finalizeOpenAICompletionsToolCalls(output, {
1804
1804
  allowSilentToolCallPromotion: finishReason === "stop" || sawNativeToolCallDelta && (options?.sawStreamDONE?.() ?? false),
1805
1805
  onConfirmedToolCall(block, contentIndex) {
@@ -1947,7 +1947,7 @@ function buildOpenAIResponsesParams(model, context, options, metadata, replayMod
1947
1947
  ...metadata ? { metadata } : {}
1948
1948
  };
1949
1949
  const effectiveMaxTokens = options?.maxTokens || model.maxTokens;
1950
- if (effectiveMaxTokens) params.max_output_tokens = Math.max(effectiveMaxTokens, 16);
1950
+ if (effectiveMaxTokens) params.max_output_tokens = clampMaxTokensToModel(model, Math.max(effectiveMaxTokens, 16));
1951
1951
  if (options?.temperature !== void 0 && supportsOpenAITemperature(model)) params.temperature = options.temperature;
1952
1952
  if (options?.topP !== void 0 && (!isOpenAIGpt6Model(model) || resolveOpenAIThinkingApi(model.api) === "azure-openai-responses")) params.top_p = options.topP;
1953
1953
  if (options?.responseFormat !== void 0) params.text = {
@@ -2773,15 +2773,16 @@ function createResponsesTransportExecutor(config) {
2773
2773
  }
2774
2774
  const sessionId = options?.sessionId;
2775
2775
  if (config.httpContinuation && !websocketMode && !getAiTransportHost().requiresManagedTransport(model) && (supportsNativeOpenAIResponsesEndpoint(model) || resolveOpenAIResponsesPayloadPolicy(model).explicitContinuationOptIn) && sessionId && (params.store === true || supportsResponsesReasoningUpdate(params)) && !params.previous_response_id) {
2776
+ const restoreRequest = () => restoreResponsesReasoningState(context, model, responsesOptions, params);
2776
2777
  continuationClaim = claimOpenAIResponsesHttpContinuation({
2777
2778
  sessionId,
2778
2779
  apiKey,
2779
2780
  baseUrl: model.baseUrl,
2780
2781
  headers: httpHeaders,
2781
2782
  request: params,
2782
- restoreRequest: () => restoreResponsesReasoningState(context, model, responsesOptions, params)
2783
+ restoreRequest
2783
2784
  });
2784
- if (continuationClaim) params = continuationClaim.fullRequest;
2785
+ params = continuationClaim?.fullRequest ?? restoreRequest();
2785
2786
  }
2786
2787
  const observePrompt = createResponsesPromptEgressObserver(responsesOptions, context.systemPrompt);
2787
2788
  const requestStartedAt = Date.now();
@@ -1,4 +1,4 @@
1
- import { n as isNativeOpenAIEndpoint } from "./openai-completions-compat-CYX18uDk.mjs";
1
+ import { n as isNativeOpenAIEndpoint } from "./openai-completions-compat-CpeOT7jH.mjs";
2
2
  //#region packages/normalization-core/src/code-points.ts
3
3
  /** Truncates to a nonnegative code-point budget; grapheme clusters may be split. */
4
4
  function truncateCodePoints(text, maxCodePoints) {
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
2
2
  import { t as AssistantMessageEventStream } from "./event-stream-X2gmsUWv.mjs";
3
- import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams } from "./openai-prompt-cache-r93BJhjm.mjs";
4
- import { i as resolveOpenAICompletionsCompat } from "./openai-completions-compat-CYX18uDk.mjs";
3
+ import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams } from "./openai-prompt-cache-CvftfMfD.mjs";
4
+ import { i as resolveOpenAICompletionsCompat } from "./openai-completions-compat-CpeOT7jH.mjs";
5
5
  import { i as resolveCacheRetention, r as buildCopilotDynamicHeaders } from "./cloudflare-5qSGvIUH.mjs";
6
- import { n as buildBaseOptions } from "./simple-options-BAu4B54D.mjs";
7
- import { F as convertProviderResponsesMessages, _t as resolveOpenAISimpleReasoningEffort, n as applyResponsesServiceTierPricing, r as runResponsesStreamLifecycle, t as applyCommonResponsesParams } from "./openai-responses-shared-D-aDYAkJ.mjs";
6
+ import { n as buildBaseOptions } from "./simple-options-CmtE6whA.mjs";
7
+ import { F as convertProviderResponsesMessages, _t as resolveOpenAISimpleReasoningEffort, n as applyResponsesServiceTierPricing, r as runResponsesStreamLifecycle, t as applyCommonResponsesParams } from "./openai-responses-shared-C1GHTB0q.mjs";
8
8
  import { n as getEnvApiKey } from "./env-api-keys-CrxwdylR.mjs";
9
- import { t as createAssistantOutput } from "./assistant-output-BuhRpLeD.mjs";
10
- import { i as createOpenAIProviderClient, n as resolveProviderSimpleCompletionHeaders } from "./provider-transport-turn-state-BOpxgm-J.mjs";
9
+ import { t as createAssistantOutput } from "./assistant-output-DDZq4a3j.mjs";
10
+ import { i as createOpenAIProviderClient, n as resolveProviderSimpleCompletionHeaders } from "./provider-transport-turn-state-O5JWdUL4.mjs";
11
11
  import { t as requireApiKey } from "./required-api-key-CFJvcFy_.mjs";
12
12
  //#region packages/ai/src/providers/openai-responses.ts
13
13
  var openai_responses_exports = /* @__PURE__ */ __exportAll({
@@ -1,7 +1,7 @@
1
1
  import "./index-BYDvopUB.mjs";
2
2
  import { a as AssistantMessage, k as Model } from "./types-Bd2T86VJ.mjs";
3
- import "./provider-options-CVrXZBtA.mjs";
4
- import { i as ReplayableResponseCompactionItem, l as OpenAIResponsesCompactionOutput, r as OpenAIResponsesReasoningReplayMetadata } from "./openai-responses-contracts-DKqMJ1Ct.mjs";
3
+ import "./provider-options-DTuD2UNR.mjs";
4
+ import { i as ReplayableResponseCompactionItem, l as OpenAIResponsesCompactionOutput, r as OpenAIResponsesReasoningReplayMetadata } from "./openai-responses-contracts-Cm1QilsO.mjs";
5
5
  import "openai/resources/responses/responses.js";
6
6
  //#region packages/ai/src/transports/openai-responses-compaction-replay.d.ts
7
7
  declare function captureOpenAIResponsesCompaction(output: Pick<AssistantMessage, "providerReplay">, item: ReplayableResponseCompactionItem, boundary: number | "retained-users", model: Model, captureMetadata?: OpenAIResponsesReasoningReplayMetadata, compactedOutput?: OpenAIResponsesCompactionOutput): void;
@@ -1,6 +1,6 @@
1
1
  import "./index-BYDvopUB.mjs";
2
2
  import { M as ModelThinkingLevel, k as Model, n as Api } from "./types-Bd2T86VJ.mjs";
3
- import { a as BaseOpenAIStreamOptions, f as OpenAIReasoningEffort } from "./provider-options-CVrXZBtA.mjs";
3
+ import { a as BaseOpenAIStreamOptions, f as OpenAIReasoningEffort } from "./provider-options-DTuD2UNR.mjs";
4
4
  import "./types-Kdfw_04V.mjs";
5
5
  import { ResponseCompactionItem, ResponseCreateParamsStreaming, ResponseInputItem } from "openai/resources/responses/responses.js";
6
6
  //#region packages/ai/src/providers/openai-request-reasoning.d.ts
@@ -159,6 +159,12 @@ function isOpenAIGpt56Model(model) {
159
159
  const name = normalizeModelId(typeof model.name === "string" ? model.name : void 0);
160
160
  return /^gpt-5\.6(?:-|$)/u.test(id) || /^gpt-5\.6(?:\s|\(|-|$)/u.test(name);
161
161
  }
162
+ /** Apply the native Chat Completions tool contract after callers qualify the endpoint and model ID. */
163
+ function applyOpenAICompletionsToolReasoning(payload, model) {
164
+ if (!Array.isArray(payload.tools) || payload.tools.length === 0) return;
165
+ if (isOpenAIGpt56Model(model)) payload.reasoning_effort = "none";
166
+ else if (isOpenAIGpt54MiniModel(model) || isOpenAIGpt55Model(model)) delete payload.reasoning_effort;
167
+ }
162
168
  /** Return whether a model has a known GPT-6 reasoning and sampling contract. */
163
169
  function isOpenAIGpt6Model(model) {
164
170
  const id = normalizeModelId(typeof model.id === "string" ? model.id : void 0);
@@ -360,4 +366,4 @@ const responsesServiceTierObserver = {
360
366
  }
361
367
  };
362
368
  //#endregion
363
- export { MODEL_CATALOG_THINKING_LEVELS as A, normalizeOpenAIReasoningEffort as C, resolveOpenAISupportedReasoningEfforts as D, resolveOpenAIReasoningEffortMapping as E, resolveOpenAIThinkingApi as M, supportsOpenAIReasoningEffort as O, isOpenAIGpt6Model as S, resolveOpenAIReasoningEffortForModel as T, isResponsesServiceTierRejection as _, OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE as a, isOpenAIGpt55Model as b, OPENAI_RESPONSES_RETAINED_COMPACTION_REPLAY_TYPE as c, OpenAIResponsesWebSocketSafeRetryError as d, RESPONSE_FAILED_NO_DETAILS_MESSAGE as f, responsesServiceTierObserver as g, responsesPromptObserver as h, OPENAI_RESPONSES_APIS as i, listMappedModelThinkingLevels as j, supportsOpenAITemperature as k, OpenAIResponsesWebSocketPostDispatchError as l, parseOpenAIResponsesWebSocketServerError as m, DEFAULT_AZURE_OPENAI_API_VERSION as n, OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY as o, isPreviousResponseRejection as p, OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS as r, OPENAI_RESPONSES_REASONING_REPLAY_META_KEY as s, AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS as t, OpenAIResponsesWebSocketPreDispatchError as u, nextResponsesServiceTier as v, resolveOpenAIModelReasoningEfforts as w, isOpenAIGpt56Model as x, isOpenAIGpt54MiniModel as y };
369
+ export { supportsOpenAITemperature as A, isOpenAIGpt6Model as C, resolveOpenAIReasoningEffortMapping as D, resolveOpenAIReasoningEffortForModel as E, listMappedModelThinkingLevels as M, resolveOpenAIThinkingApi as N, resolveOpenAISupportedReasoningEfforts as O, isOpenAIGpt56Model as S, resolveOpenAIModelReasoningEfforts as T, isResponsesServiceTierRejection as _, OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE as a, isOpenAIGpt54MiniModel as b, OPENAI_RESPONSES_RETAINED_COMPACTION_REPLAY_TYPE as c, OpenAIResponsesWebSocketSafeRetryError as d, RESPONSE_FAILED_NO_DETAILS_MESSAGE as f, responsesServiceTierObserver as g, responsesPromptObserver as h, OPENAI_RESPONSES_APIS as i, MODEL_CATALOG_THINKING_LEVELS as j, supportsOpenAIReasoningEffort as k, OpenAIResponsesWebSocketPostDispatchError as l, parseOpenAIResponsesWebSocketServerError as m, DEFAULT_AZURE_OPENAI_API_VERSION as n, OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY as o, isPreviousResponseRejection as p, OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS as r, OPENAI_RESPONSES_REASONING_REPLAY_META_KEY as s, AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS as t, OpenAIResponsesWebSocketPreDispatchError as u, nextResponsesServiceTier as v, normalizeOpenAIReasoningEffort as w, isOpenAIGpt55Model as x, applyOpenAICompletionsToolReasoning as y };
@@ -1,6 +1,6 @@
1
1
  import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
2
  import { c as readStringValue, i as normalizeOptionalLowercaseString, n as normalizeLowercaseStringOrEmpty } from "./string-coerce-CtgOVOSv.mjs";
3
- import { O as supportsOpenAIReasoningEffort, i as OPENAI_RESPONSES_APIS } from "./openai-responses-contracts-DlKMMTxK.mjs";
3
+ import { i as OPENAI_RESPONSES_APIS, k as supportsOpenAIReasoningEffort } from "./openai-responses-contracts-DbD7sGP-.mjs";
4
4
  import { t as canonicalizeBase64 } from "./base64-C8CdcsjU.mjs";
5
5
  import { t as parsePositiveInteger } from "./positive-integer-CqWjqSi9.mjs";
6
6
  import { n as createSseByteGuard } from "./streaming-byte-guard-DBXr1XYn.mjs";
@@ -1,7 +1,7 @@
1
1
  import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
- import { h as responsesPromptObserver } from "./openai-responses-contracts-DlKMMTxK.mjs";
3
- import { v as sanitizeTransportPayloadText } from "./transport-stream-shared-CWGOuLcA.mjs";
4
- import { C as stripSystemPromptCacheBoundary } from "./simple-options-BAu4B54D.mjs";
2
+ import { h as responsesPromptObserver } from "./openai-responses-contracts-DbD7sGP-.mjs";
3
+ import { v as sanitizeTransportPayloadText } from "./transport-stream-shared-Dr_GBa9K.mjs";
4
+ import { C as stripSystemPromptCacheBoundary } from "./simple-options-CmtE6whA.mjs";
5
5
  //#region packages/ai/src/transports/openai-responses-prompt-observer-internal.ts
6
6
  function readFinalResponsesPrompt(request) {
7
7
  if (typeof request.instructions === "string") return ["instructions", request.instructions];
@@ -5,24 +5,25 @@ import { r as appendAssistantThinking } from "./event-stream-X2gmsUWv.mjs";
5
5
  import { o as isRecord, r as asOptionalObjectRecord } from "./record-coerce-CNDovvft.mjs";
6
6
  import { a as normalizeOptionalString, c as readStringValue, n as normalizeLowercaseStringOrEmpty, o as normalizeStringifiedOptionalString } from "./string-coerce-CtgOVOSv.mjs";
7
7
  import { t as asFiniteNumber } from "./number-coercion-C3hztWoY.mjs";
8
- import { D as applyProviderReportedUsageCost, E as headersToRecord, N as isImageWithMediaPayload, O as calculateCost, a as resolveAiTransportHeaderSentinels, k as clampThinkingLevel, r as getAiTransportHost } from "./host-Bf3NjYNj.mjs";
9
- import { A as MODEL_CATALOG_THINKING_LEVELS, C as normalizeOpenAIReasoningEffort, E as resolveOpenAIReasoningEffortMapping, M as resolveOpenAIThinkingApi, O as supportsOpenAIReasoningEffort, T as resolveOpenAIReasoningEffortForModel, _ as isResponsesServiceTierRejection, a as OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE, c as OPENAI_RESPONSES_RETAINED_COMPACTION_REPLAY_TYPE, f as RESPONSE_FAILED_NO_DETAILS_MESSAGE, g as responsesServiceTierObserver, i as OPENAI_RESPONSES_APIS, k as supportsOpenAITemperature, o as OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY, p as isPreviousResponseRejection, s as OPENAI_RESPONSES_REASONING_REPLAY_META_KEY, v as nextResponsesServiceTier, w as resolveOpenAIModelReasoningEfforts } from "./openai-responses-contracts-DlKMMTxK.mjs";
8
+ import { D as applyProviderReportedUsageCost, E as headersToRecord, N as isImageWithMediaPayload, O as calculateCost, a as resolveAiTransportHeaderSentinels, k as clampThinkingLevel, r as getAiTransportHost } from "./host-CIzdzpBn.mjs";
9
+ import { A as supportsOpenAITemperature, D as resolveOpenAIReasoningEffortMapping, E as resolveOpenAIReasoningEffortForModel, N as resolveOpenAIThinkingApi, T as resolveOpenAIModelReasoningEfforts, _ as isResponsesServiceTierRejection, a as OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE, c as OPENAI_RESPONSES_RETAINED_COMPACTION_REPLAY_TYPE, f as RESPONSE_FAILED_NO_DETAILS_MESSAGE, g as responsesServiceTierObserver, i as OPENAI_RESPONSES_APIS, j as MODEL_CATALOG_THINKING_LEVELS, k as supportsOpenAIReasoningEffort, o as OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY, p as isPreviousResponseRejection, s as OPENAI_RESPONSES_REASONING_REPLAY_META_KEY, v as nextResponsesServiceTier, w as normalizeOpenAIReasoningEffort } from "./openai-responses-contracts-DbD7sGP-.mjs";
10
10
  import { n as getSessionResourceOwnerId, r as registerSessionResourceCleanup } from "./session-resources-D1wgDQ8C.mjs";
11
11
  import { c as stableStringify, s as truncateUtf16Safe } from "./provider-error-CF9GWCs2.mjs";
12
- import { n as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-r93BJhjm.mjs";
12
+ import { n as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-CvftfMfD.mjs";
13
13
  import { _ as resolveResponsesTerminalStopReason, a as resolveModelPayloadDebugMode, d as hasOnlyResponsesFunctionTools, f as isResponsesProviderTool, g as readResponsesReasoningTokens, h as mapResponsesTerminalUsage, o as resolveModelSseDebugMode, r as emitModelTransportDebug, u as ResponsesOutputIdentityError } from "./diagnostics-tQasYct1.mjs";
14
- import { i as providerReplayContextMatches, l as redactSensitiveText, n as buildProviderReplayContext, r as isProviderReplayContext, s as isCodeModeModelVisibleToolName, t as encodeTextSignatureV1 } from "./text-signature-Drb4Erb8.mjs";
15
- import { c as resolveOpenAIResponsesTextFormat, i as resolveOpenAICompletionsCompat, o as usesNativeOpenAICodexResponsesBackend } from "./openai-completions-compat-CYX18uDk.mjs";
16
- import { r as resolveModelRequestTimeoutMs } from "./host-policy-BzZluO6_.mjs";
17
- import { A as shortHash, C as parseJsonObjectPreservingUnsafeIntegers, E as createToolArgumentPreviewSchedule, O as parseStreamingJson, S as withProviderResponseHook, b as transportAbortError, c as failTransportStream, d as iterateModelStream, g as parseTerminalToolCallArguments, m as notifyProviderHttpResponse, t as IncompleteToolCallError, u as finalizeTransportStream, v as sanitizeTransportPayloadText } from "./transport-stream-shared-CWGOuLcA.mjs";
18
- import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, d as describeToolResultMediaPlaceholder, m as extractToolResultText, s as prepareModelRequestBody } from "./simple-options-BAu4B54D.mjs";
19
- import { n as transformProviderMessages } from "./assistant-output-BuhRpLeD.mjs";
14
+ import { a as redactSensitiveText, r as isCodeModeModelVisibleToolName } from "./transport-utils-DmYqQcG7.mjs";
15
+ import { c as resolveOpenAIResponsesTextFormat, i as resolveOpenAICompletionsCompat, o as usesNativeOpenAICodexResponsesBackend } from "./openai-completions-compat-CpeOT7jH.mjs";
16
+ import { r as resolveModelRequestTimeoutMs } from "./host-policy-C0y3BC9R.mjs";
17
+ import { A as shortHash, C as parseJsonObjectPreservingUnsafeIntegers, E as createToolArgumentPreviewSchedule, O as parseStreamingJson, S as withProviderResponseHook, b as transportAbortError, c as failTransportStream, d as iterateModelStream, g as parseTerminalToolCallArguments, m as notifyProviderHttpResponse, t as IncompleteToolCallError, u as finalizeTransportStream, v as sanitizeTransportPayloadText } from "./transport-stream-shared-Dr_GBa9K.mjs";
18
+ import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, d as describeToolResultMediaPlaceholder, m as extractToolResultText, r as clampMaxTokensToModel, s as prepareModelRequestBody } from "./simple-options-CmtE6whA.mjs";
19
+ import { i as providerReplayContextMatches, n as buildProviderReplayContext, r as isProviderReplayContext, t as encodeTextSignatureV1 } from "./text-signature-an0fgbDz.mjs";
20
+ import { n as transformProviderMessages } from "./assistant-output-DDZq4a3j.mjs";
20
21
  import { n as projectRuntimeToolInputSchema, t as prepareRuntimeToolInputSchema } from "./tool-schema-json-projection-B8sG1I9v.mjs";
21
22
  import { t as notifyLlmRequestActivity } from "./llm-request-activity-CfMuh5cC.mjs";
22
23
  import { n as resolveOpencodeSessionHeaders } from "./session-affinity-DA4WHv1h.mjs";
23
24
  import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "./stream-first-event-timeout-Dc42hKv6.mjs";
24
25
  import { a as resolveOpenAIProjectedToolsStrictToolFlag, f as withPreparedToolSchemaNormalization, r as normalizeOpenAIStrictToolParameters, t as findOpenAIStrictToolProjectionDiagnostics } from "./openai-tool-schema-DDPXsvJP.mjs";
25
- import { a as readOpenAIResponsesCompactionWindow, i as isOpenAIResponsesCompactionOutput, n as supportsNativeOpenAIResponsesEndpoint } from "./openai-responses-endpoint-CinGh4VZ.mjs";
26
+ import { a as readOpenAIResponsesCompactionWindow, i as isOpenAIResponsesCompactionOutput, n as supportsNativeOpenAIResponsesEndpoint } from "./openai-responses-endpoint-COHJK1MR.mjs";
26
27
  import { hash, randomUUID } from "node:crypto";
27
28
  //#region packages/normalization-core/src/node-crypto.ts
28
29
  function sha256Hex(input) {
@@ -198,6 +199,18 @@ function readOpenAICompletionsReasoningBatch(delta, visibleReasoningDetailTypes)
198
199
  hasVisibleText: mirroredThinking.length < deltas.length
199
200
  };
200
201
  }
202
+ function detachPartialSnapshot(event) {
203
+ const source = event;
204
+ if (!source.partial) return event;
205
+ const partial = source.partial;
206
+ return {
207
+ ...event,
208
+ partial: {
209
+ ...partial,
210
+ content: partial.content.map((block) => block.type === "text" ? Object.assign({}, block) : block)
211
+ }
212
+ };
213
+ }
201
214
  function parseOpenAICompletionsUsage(rawUsage, model, options) {
202
215
  const cacheRead = rawUsage.prompt_tokens_details?.cached_tokens ?? rawUsage.prompt_cache_hit_tokens ?? 0;
203
216
  const cacheWrite = rawUsage.prompt_tokens_details?.cache_write_tokens ?? rawUsage.prompt_tokens_details?.cache_creation_input_tokens ?? rawUsage.cache_creation_input_tokens ?? 0;
@@ -2316,7 +2329,7 @@ function createResponsesOutputTracker(params) {
2316
2329
  trackStream(sink) {
2317
2330
  return { push(event) {
2318
2331
  visibleTextEmitted ||= event.type === "text_delta" && event.delta.length > 0 || event.type === "text_end" && event.content.length > 0;
2319
- sink.push(event);
2332
+ sink.push(detachPartialSnapshot(event));
2320
2333
  } };
2321
2334
  },
2322
2335
  observeEvent(event) {
@@ -3246,7 +3259,7 @@ function applyResponsesServiceTierPricing(usage, serviceTier, model) {
3246
3259
  usage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;
3247
3260
  }
3248
3261
  function applyCommonResponsesParams(params, model, context, options, config) {
3249
- if (options?.maxTokens) params.max_output_tokens = Math.max(options.maxTokens, 16);
3262
+ if (options?.maxTokens) params.max_output_tokens = clampMaxTokensToModel(model, Math.max(options.maxTokens, 16));
3250
3263
  if (options?.temperature !== void 0 && supportsOpenAITemperature(model)) params.temperature = options.temperature;
3251
3264
  if (options?.responseFormat !== void 0) params.text = {
3252
3265
  ...params.text,
@@ -3380,4 +3393,4 @@ async function runResponsesStreamLifecycle(params) {
3380
3393
  }
3381
3394
  }
3382
3395
  //#endregion
3383
- export { replayResponsesReasoningUpdates as $, summarizeResponsesPayload as A, measureUtf8AppendBytes as At, responsesInputFingerprint as B, readResponsesRecoveryEvent as C, toOpenAIResponsesToolChoice as Ct, logResponsesFailedNoDetails as D, createResponseModelTracker as Dt, ResponsesStreamFailure as E, createOpenAIResponseHook as Et, convertProviderResponsesMessages as F, resolvePromptCacheKey as Ft, responsesContinuationRequestFingerprint as G, recordResponsesContinuationState as H, convertResponsesMessages as I, redactIdentifier as It, OPENAI_RESPONSES_ID_MAX_LENGTH as J, OPENAI_RESPONSES_CALL_ID_RE as K, resolveReplayableResponsesMessageId as L, sha256Hex as Lt, resolveResponsesContextUsageBoundary as M, readOpenAICompletionsContentDeltas as Mt, bindResponsesInputMessage as N, readOpenAICompletionsReasoningBatch as Nt, safeDebugValue as O, isOpenAICompletionsThinkingEnabled as Ot, buildResponsesInputMessage as P, resolveOpenAIClientBaseUrl as Pt, isConfigurationUpdate as Q, readResponsesInputReplayState as R, isInvalidEncryptedContentError as S, reconcileOpenAIResponsesToolChoice as St, resolveNextResponsesEncryptedContentAttempt as T, createOpenAIProviderAcceptanceHook as Tt, resolveResponsesContinuationRequest as U, claimOpenAIResponsesHttpContinuation as V, responsesContinuationPrefixFingerprint as W, shouldNormalizeOpenAIResponsesToolCallId as X, normalizeOpenAIResponsesFunctionCallId as Y, splitOpenAIFunctionCallPairing as Z, isResponsesTextContentPartType as _, resolveOpenAISimpleReasoningEffort as _t, prepareResponsesTools as a, suppressOpenAIResponsesCompaction as at, commitResponsesEncryptedContentAttempt as b, projectOpenAITools as bt, observeResponsesStream as c, buildOpenAISdkClientOptions as ct, AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE as d, filterCodeModePayloadTools as dt, supportsResponsesReasoningUpdate as et, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE as f, getCompat as ft, isAzureResponsesTextDeltaEventType as g, resolveOpenAIRequestReasoning as gt, isAzureResponsesTextDeltaEvent as h, resolveOpenAIStrictToolFlagWithDiagnostics as ht, convertResponsesToolPayload as i, resolveNewestOpenAIResponsesCompactionReplay as it, recordResponsesContextUsage as j, parseOpenAICompletionsUsage as jt, summarizeOpenAITransportError as k, log as kt, createResponsesToolCallTracker as l, buildOpenAISdkRequestOptions as lt, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE as m, resolveCodeModeResponsesVisibleToolNames as mt, applyResponsesServiceTierPricing as n, buildOpenAIResponsesReasoningReplayMetadata as nt, readOpenAIMisalignmentReview as o, assertCodeModeResponsesToolSurface as ot, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE as p, readCodeModePayloadToolName as pt, OPENAI_RESPONSES_FUNCTION_CALL_ITEM_ID_RE as q, runResponsesStreamLifecycle as r, captureOpenAIResponsesCompaction as rt, processResponsesStream as s, buildOpenAIClientHeaders as st, applyCommonResponsesParams as t, CompactionReplayRefreshRequiredError as tt, readResponsesToolCallItemIdentity as u, enforceCodeModeResponsesToolSurface as ut, isResponsesTextDeltaEventType as v, resolveOpenAIReasoningEffortMap as vt, resolveAzureOpenAIApiVersion as w, GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP as wt, createResponsesStreamWithRecovery as x, reconcileOpenAICompletionsToolChoice as xt, resolveResponsesMessageSnapshotCollapse as y, prepareOpenAITools as yt, recordResponsesInputReplay as z };
3396
+ export { replayResponsesReasoningUpdates as $, summarizeResponsesPayload as A, log as At, responsesInputFingerprint as B, readResponsesRecoveryEvent as C, toOpenAIResponsesToolChoice as Ct, logResponsesFailedNoDetails as D, createResponseModelTracker as Dt, ResponsesStreamFailure as E, createOpenAIResponseHook as Et, convertProviderResponsesMessages as F, resolveOpenAIClientBaseUrl as Ft, responsesContinuationRequestFingerprint as G, recordResponsesContinuationState as H, convertResponsesMessages as I, resolvePromptCacheKey as It, OPENAI_RESPONSES_ID_MAX_LENGTH as J, OPENAI_RESPONSES_CALL_ID_RE as K, resolveReplayableResponsesMessageId as L, redactIdentifier as Lt, resolveResponsesContextUsageBoundary as M, parseOpenAICompletionsUsage as Mt, bindResponsesInputMessage as N, readOpenAICompletionsContentDeltas as Nt, safeDebugValue as O, detachPartialSnapshot as Ot, buildResponsesInputMessage as P, readOpenAICompletionsReasoningBatch as Pt, isConfigurationUpdate as Q, readResponsesInputReplayState as R, sha256Hex as Rt, isInvalidEncryptedContentError as S, reconcileOpenAIResponsesToolChoice as St, resolveNextResponsesEncryptedContentAttempt as T, createOpenAIProviderAcceptanceHook as Tt, resolveResponsesContinuationRequest as U, claimOpenAIResponsesHttpContinuation as V, responsesContinuationPrefixFingerprint as W, shouldNormalizeOpenAIResponsesToolCallId as X, normalizeOpenAIResponsesFunctionCallId as Y, splitOpenAIFunctionCallPairing as Z, isResponsesTextContentPartType as _, resolveOpenAISimpleReasoningEffort as _t, prepareResponsesTools as a, suppressOpenAIResponsesCompaction as at, commitResponsesEncryptedContentAttempt as b, projectOpenAITools as bt, observeResponsesStream as c, buildOpenAISdkClientOptions as ct, AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE as d, filterCodeModePayloadTools as dt, supportsResponsesReasoningUpdate as et, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE as f, getCompat as ft, isAzureResponsesTextDeltaEventType as g, resolveOpenAIRequestReasoning as gt, isAzureResponsesTextDeltaEvent as h, resolveOpenAIStrictToolFlagWithDiagnostics as ht, convertResponsesToolPayload as i, resolveNewestOpenAIResponsesCompactionReplay as it, recordResponsesContextUsage as j, measureUtf8AppendBytes as jt, summarizeOpenAITransportError as k, isOpenAICompletionsThinkingEnabled as kt, createResponsesToolCallTracker as l, buildOpenAISdkRequestOptions as lt, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE as m, resolveCodeModeResponsesVisibleToolNames as mt, applyResponsesServiceTierPricing as n, buildOpenAIResponsesReasoningReplayMetadata as nt, readOpenAIMisalignmentReview as o, assertCodeModeResponsesToolSurface as ot, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE as p, readCodeModePayloadToolName as pt, OPENAI_RESPONSES_FUNCTION_CALL_ITEM_ID_RE as q, runResponsesStreamLifecycle as r, captureOpenAIResponsesCompaction as rt, processResponsesStream as s, buildOpenAIClientHeaders as st, applyCommonResponsesParams as t, CompactionReplayRefreshRequiredError as tt, readResponsesToolCallItemIdentity as u, enforceCodeModeResponsesToolSurface as ut, isResponsesTextDeltaEventType as v, resolveOpenAIReasoningEffortMap as vt, resolveAzureOpenAIApiVersion as w, GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP as wt, createResponsesStreamWithRecovery as x, reconcileOpenAICompletionsToolChoice as xt, resolveResponsesMessageSnapshotCollapse as y, prepareOpenAITools as yt, recordResponsesInputReplay as z };
@@ -20,6 +20,11 @@ declare function isOpenAIGpt54MiniModel(model: OpenAIReasoningModel): boolean;
20
20
  declare function isOpenAIGpt55Model(model: OpenAIReasoningModel): boolean;
21
21
  /** Return whether a model is the GPT-5.6 family. */
22
22
  declare function isOpenAIGpt56Model(model: OpenAIReasoningModel): boolean;
23
+ /** Apply the native Chat Completions tool contract after callers qualify the endpoint and model ID. */
24
+ declare function applyOpenAICompletionsToolReasoning(payload: Record<string, unknown>, model: {
25
+ id: string;
26
+ name?: string;
27
+ }): void;
23
28
  /** Return whether a model has a known GPT-6 reasoning and sampling contract. */
24
29
  declare function isOpenAIGpt6Model(model: OpenAIReasoningModel): boolean;
25
30
  /** Normalize user-facing reasoning effort names to API effort names. */
@@ -149,4 +154,4 @@ type OpenAICompletionsOptions = BaseOpenAIStreamOptions & {
149
154
  reasoningEffort?: OpenAIReasoningEffort | "off";
150
155
  };
151
156
  //#endregion
152
- export { supportsOpenAITemperature as C, supportsOpenAIReasoningEffort as S, normalizeOpenAIReasoningEffort as _, BaseOpenAIStreamOptions as a, resolveOpenAIReasoningEffortMapping as b, OpenAIResponsesCompactionRejection as c, OpenAIApiReasoningEffort as d, OpenAIReasoningEffort as f, isOpenAIGpt6Model as g, isOpenAIGpt56Model as h, AnthropicThinkingDisplay as i, codeModeToolSurfaceObserver as l, isOpenAIGpt55Model as m, AnthropicEffort as n, CodeModeToolSurfaceObservation as o, isOpenAIGpt54MiniModel as p, AnthropicOptions as r, OpenAICompletionsOptions as s, AnthropicContextManagementOptions as t, reasoningTagTextPolicy as u, resolveOpenAIModelReasoningEfforts as v, resolveOpenAISupportedReasoningEfforts as x, resolveOpenAIReasoningEffortForModel as y };
157
+ export { supportsOpenAIReasoningEffort as C, resolveOpenAISupportedReasoningEfforts as S, isOpenAIGpt6Model as _, BaseOpenAIStreamOptions as a, resolveOpenAIReasoningEffortForModel as b, OpenAIResponsesCompactionRejection as c, OpenAIApiReasoningEffort as d, OpenAIReasoningEffort as f, isOpenAIGpt56Model as g, isOpenAIGpt55Model as h, AnthropicThinkingDisplay as i, codeModeToolSurfaceObserver as l, isOpenAIGpt54MiniModel as m, AnthropicEffort as n, CodeModeToolSurfaceObservation as o, applyOpenAICompletionsToolReasoning as p, AnthropicOptions as r, OpenAICompletionsOptions as s, AnthropicContextManagementOptions as t, reasoningTagTextPolicy as u, normalizeOpenAIReasoningEffort as v, supportsOpenAITemperature as w, resolveOpenAIReasoningEffortMapping as x, resolveOpenAIModelReasoningEfforts as y };
@@ -1,6 +1,6 @@
1
- import { r as getAiTransportHost } from "./host-Bf3NjYNj.mjs";
1
+ import { r as getAiTransportHost } from "./host-CIzdzpBn.mjs";
2
2
  import { n as resolveCloudflareBaseUrl, t as isCloudflareProvider } from "./cloudflare-5qSGvIUH.mjs";
3
- import { Pt as resolveOpenAIClientBaseUrl } from "./openai-responses-shared-D-aDYAkJ.mjs";
3
+ import { Ft as resolveOpenAIClientBaseUrl } from "./openai-responses-shared-C1GHTB0q.mjs";
4
4
  import { n as resolveOpencodeSessionHeaders, t as hasOpencodeSessionHeader } from "./session-affinity-DA4WHv1h.mjs";
5
5
  import { randomUUID } from "node:crypto";
6
6
  import OpenAI from "openai";
@@ -1,6 +1,6 @@
1
1
  import { t as AssistantMessageEventStream } from "./event-stream-X2gmsUWv.mjs";
2
2
  import { n as projectProviderError } from "./provider-error-CF9GWCs2.mjs";
3
- import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "./openai-prompt-cache-r93BJhjm.mjs";
3
+ import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "./openai-prompt-cache-CvftfMfD.mjs";
4
4
  import { t as createZeroUsage } from "./usage-CJH5D6Ea.mjs";
5
5
  //#region packages/ai/src/providers/register-builtins.ts
6
6
  /** Source id used for built-in API provider registrations. */
@@ -50,39 +50,39 @@ function createLazyRegistration(api, importModule, select) {
50
50
  };
51
51
  }
52
52
  const registerBuiltIns = [
53
- createLazyRegistration("anthropic-messages", () => import("./anthropic-BalhAzs-.mjs").then((n) => n.t), (module) => ({
53
+ createLazyRegistration("anthropic-messages", () => import("./anthropic-DusktpKG.mjs").then((n) => n.t), (module) => ({
54
54
  stream: module.streamAnthropic,
55
55
  streamSimple: module.streamSimpleAnthropic
56
56
  })),
57
- createLazyRegistration("openai-completions", () => import("./openai-completions-CrVgnFrV.mjs").then((n) => n.t), (module) => ({
57
+ createLazyRegistration("openai-completions", () => import("./openai-completions-BkRt2Iy4.mjs").then((n) => n.t), (module) => ({
58
58
  stream: module.streamOpenAICompletions,
59
59
  streamSimple: module.streamSimpleOpenAICompletions
60
60
  })),
61
- createLazyRegistration("mistral-conversations", () => import("./mistral-dCDCR5ur.mjs"), (module) => ({
61
+ createLazyRegistration("mistral-conversations", () => import("./mistral-CDK7WGwC.mjs"), (module) => ({
62
62
  stream: module.streamMistral,
63
63
  streamSimple: module.streamSimpleMistral
64
64
  })),
65
- createLazyRegistration("openai-responses", () => import("./openai-responses-D5oiAUOG.mjs").then((n) => n.t), (module) => ({
65
+ createLazyRegistration("openai-responses", () => import("./openai-responses-BUDpkW8I.mjs").then((n) => n.t), (module) => ({
66
66
  stream: module.streamOpenAIResponses,
67
67
  streamSimple: module.streamSimpleOpenAIResponses
68
68
  })),
69
- createLazyRegistration("azure-openai-responses", () => import("./azure-openai-responses-DfT9Ndd8.mjs"), (module) => ({
69
+ createLazyRegistration("azure-openai-responses", () => import("./azure-openai-responses-yuBKi0s4.mjs"), (module) => ({
70
70
  stream: module.streamAzureOpenAIResponses,
71
71
  streamSimple: module.streamSimpleAzureOpenAIResponses
72
72
  })),
73
- createLazyRegistration("openai-chatgpt-responses", () => import("./openai-chatgpt-responses-BHI3uCcA.mjs"), (module) => ({
73
+ createLazyRegistration("openai-chatgpt-responses", () => import("./openai-chatgpt-responses-BjfLWIK6.mjs"), (module) => ({
74
74
  stream: module.streamOpenAICodexResponses,
75
75
  streamSimple: module.streamSimpleOpenAICodexResponses
76
76
  })),
77
- createLazyRegistration("google-generative-ai", () => import("./google-sYI2wnY6.mjs"), (module) => ({
77
+ createLazyRegistration("google-generative-ai", () => import("./google-NMkwYgCy.mjs"), (module) => ({
78
78
  stream: module.streamGoogle,
79
79
  streamSimple: module.streamSimpleGoogle
80
80
  })),
81
- createLazyRegistration("google-interactions", () => import("./google-interactions-9SSqsJg9.mjs"), (module) => ({
81
+ createLazyRegistration("google-interactions", () => import("./google-interactions-BEV3C85P.mjs"), (module) => ({
82
82
  stream: module.streamGoogleInteractions,
83
83
  streamSimple: module.streamSimpleGoogleInteractions
84
84
  })),
85
- createLazyRegistration("google-vertex", () => import("./google-vertex-Dw_abY1w.mjs"), (module) => ({
85
+ createLazyRegistration("google-vertex", () => import("./google-vertex-DJvQwNgr.mjs"), (module) => ({
86
86
  stream: module.streamGoogleVertex,
87
87
  streamSimple: module.streamSimpleGoogleVertex
88
88
  }))
@@ -1,9 +1,9 @@
1
1
  import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
2
  import { n as normalizeLowercaseStringOrEmpty } from "./string-coerce-CtgOVOSv.mjs";
3
- import { M as hasMediaPayload, r as getAiTransportHost } from "./host-Bf3NjYNj.mjs";
4
- import { g as responsesServiceTierObserver } from "./openai-responses-contracts-DlKMMTxK.mjs";
3
+ import { M as hasMediaPayload, r as getAiTransportHost } from "./host-CIzdzpBn.mjs";
4
+ import { g as responsesServiceTierObserver } from "./openai-responses-contracts-DbD7sGP-.mjs";
5
5
  import { s as truncateUtf16Safe } from "./provider-error-CF9GWCs2.mjs";
6
- import { P as sanitizeSurrogates, i as copyProviderAcceptanceObserver } from "./transport-stream-shared-CWGOuLcA.mjs";
6
+ import { P as sanitizeSurrogates, i as copyProviderAcceptanceObserver } from "./transport-stream-shared-Dr_GBa9K.mjs";
7
7
  //#region packages/ai/src/utils/prompt-cache-stability.ts
8
8
  /**
9
9
  * Prompt-cache normalization helpers. They keep generated prompt sections
@@ -1,5 +1,5 @@
1
1
  import { i as bindAssistantMessageEventStream, o as getEventStreamCompletion } from "./event-stream-X2gmsUWv.mjs";
2
- import { i as getDefaultAiTransportHost, n as createAiTransportHost, o as runWithAiTransportHost, s as supportsScopedAiTransportHosts } from "./host-Bf3NjYNj.mjs";
2
+ import { i as getDefaultAiTransportHost, n as createAiTransportHost, o as runWithAiTransportHost, s as supportsScopedAiTransportHosts } from "./host-CIzdzpBn.mjs";
3
3
  import { i as registerSessionResourceCleanupObserver, t as cleanupSessionResources } from "./session-resources-D1wgDQ8C.mjs";
4
4
  //#region packages/ai/src/api-registry.ts
5
5
  function wrapStream(api, stream) {