@openclaw/ai 2026.8.1-beta.1 → 2026.8.1-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 (88) hide show
  1. package/dist/{anthropic-CE-7SkF6.mjs → anthropic-B8KwTtlb.mjs} +62 -37
  2. package/dist/{anthropic-SrGtwsJu.d.mts → anthropic-BECQCNdF.d.mts} +0 -2
  3. package/dist/{src-QkygScBs.mjs → anthropic-BQXQudmA.mjs} +0 -2
  4. package/dist/{anthropic-usage-Ma4iX6uG.mjs → anthropic-compaction-replay-4Zx7-aCr.mjs} +225 -103
  5. package/dist/anthropic-payload-policy-CSx7MoKH.d.mts +50 -0
  6. package/dist/{api-registry-EpJoVwM1.d.mts → api-registry-DFxSnFqG.d.mts} +1 -1
  7. package/dist/{azure-openai-responses-Cc_kasye.mjs → azure-openai-responses-Aa4mVcYG.mjs} +23 -29
  8. package/dist/diagnostics.d.mts +24 -1
  9. package/dist/diagnostics.mjs +2 -1
  10. package/dist/event-stream-BVVgDSdq.d.mts +1 -0
  11. package/dist/{event-stream-DRmDMRHH.d.mts → event-stream-D91-ohD_.d.mts} +3 -1
  12. package/dist/{event-stream-CEV9t6da.mjs → event-stream-uSMZJ3FA.mjs} +16 -3
  13. package/dist/event-stream.d.mts +1 -1
  14. package/dist/event-stream.mjs +1 -1
  15. package/dist/{google-shared-Cq2UKx1l.mjs → google-shared-M1dl64nz.mjs} +17 -19
  16. package/dist/google-thinking-level-C-V3tecN.mjs +9 -0
  17. package/dist/{google-vertex-CusxWzvE.mjs → google-vertex-DCJHM_a5.mjs} +5 -4
  18. package/dist/{google-CGQu21aw.mjs → google-yDRnipeq.mjs} +4 -4
  19. package/dist/host-DF_yxOsA.mjs +477 -0
  20. package/dist/{host-Dn4_SZI2.d.mts → host-DJq_FGcz.d.mts} +13 -8
  21. package/dist/index.d.mts +7 -7
  22. package/dist/index.mjs +7 -5
  23. package/dist/internal/anthropic.d.mts +21 -7
  24. package/dist/internal/anthropic.mjs +5 -5
  25. package/dist/internal/openai-responses-payload-policy.d.mts +3 -0
  26. package/dist/internal/openai-responses-payload-policy.mjs +3 -0
  27. package/dist/internal/openai.d.mts +6 -6
  28. package/dist/internal/openai.mjs +9 -7
  29. package/dist/internal/runtime.d.mts +19 -5
  30. package/dist/internal/runtime.mjs +85 -72
  31. package/dist/internal/shared.d.mts +17 -8
  32. package/dist/internal/shared.mjs +4 -5
  33. package/dist/{json-parse-BvXNt1-7.mjs → json-parse-CDnesDM_.mjs} +4 -6
  34. package/dist/{mistral-Dx6VzNjf.mjs → mistral-D6hRXI7A.mjs} +67 -72
  35. package/dist/{number-coercion-1Miyb5MO.mjs → number-coercion-H9qHik3g.mjs} +7 -2
  36. package/dist/openai-chatgpt-jwt-KWcgd0d_.mjs +19 -0
  37. package/dist/{openai-chatgpt-responses-SC9m0FSf.mjs → openai-chatgpt-responses-C339VIfT.mjs} +235 -146
  38. package/dist/{openai-completions-BaIpl93j.mjs → openai-completions-D88orSJ9.mjs} +88 -67
  39. package/dist/openai-completions-compat-B0KTleXp.d.mts +43 -0
  40. package/dist/{openai-responses-Bdx3V_Yu.mjs → openai-responses-BXEcr-Tp.mjs} +17 -24
  41. package/dist/openai-responses-contracts-CD75pQ0m.d.mts +68 -0
  42. package/dist/openai-responses-contracts-DvILoqBk.mjs +247 -0
  43. package/dist/openai-responses-payload-policy-BDo8CQsx.mjs +208 -0
  44. package/dist/openai-responses-payload-policy-CNGFT9zr.d.mts +41 -0
  45. package/dist/{openai-responses-prompt-observer-internal-DDZPxRfr.mjs → openai-responses-prompt-observer-internal-BG-1AsBI.mjs} +2 -3
  46. package/dist/{openai-responses-stream-internal-Bl8YyVtF.mjs → openai-responses-shared-Cvt5MgEm.mjs} +1287 -1039
  47. package/dist/{openai-reasoning-compat-DKebnIBL.mjs → openai-stop-reason-9OONKyAm.mjs} +222 -180
  48. package/dist/{openai-transport-shared-Cipt7egQ.mjs → openai-tool-projection-CHGLt03m.mjs} +239 -128
  49. package/dist/provider-error-C8mBRJDl.mjs +424 -0
  50. package/dist/provider-error-CzNw4BWX.d.mts +12 -0
  51. package/dist/provider-options-AvldWZt8.mjs +21 -0
  52. package/dist/{provider-options-C5kYML7i.d.mts → provider-options-Cc5ZQ6Aa.d.mts} +19 -3
  53. package/dist/provider-transcript-transform--gtf0ZbR.mjs +32 -0
  54. package/dist/provider-types.d.mts +31 -0
  55. package/dist/provider-types.mjs +8 -0
  56. package/dist/providers.d.mts +1 -1
  57. package/dist/providers.mjs +17 -19
  58. package/dist/{reasoning-tag-text-partitioner-CGDyLWUR.mjs → reasoning-tag-text-partitioner-5ygO2rZc.mjs} +17 -8
  59. package/dist/record-coerce-DdXsgUd_.mjs +23 -0
  60. package/dist/{model-utils-Dau5dlgm.mjs → sanitize-unicode-BP7HLLZn.mjs} +28 -2
  61. package/dist/session-resources-CkR4WWy1.mjs +21 -0
  62. package/dist/simple-options-oqsXB6U3.mjs +450 -0
  63. package/dist/src-D2H6yKkH.mjs +2 -0
  64. package/dist/{stream-first-event-timeout-BIBomOGq.mjs → stream-first-event-timeout-MK28puvq.mjs} +2 -2
  65. package/dist/string-coerce-fsri9iCu.mjs +34 -0
  66. package/dist/{tool-schema-json-projection-B1b-XCn5.mjs → tool-schema-json-projection-FEr-jOoZ.mjs} +20 -13
  67. package/dist/transport-utils-Bv0FHkd0.mjs +138 -0
  68. package/dist/transports.d.mts +199 -209
  69. package/dist/transports.mjs +1842 -1364
  70. package/dist/types-BDdaOVi2.mjs +6 -0
  71. package/dist/{types-CH7ReIcU.d.mts → types-DTAP49HF.d.mts} +35 -2
  72. package/dist/types.d.mts +5 -5
  73. package/dist/types.mjs +6 -4
  74. package/dist/utf16-slice-CvGodqok.mjs +29 -0
  75. package/dist/{validation-DAa_yFOM.mjs → validation-B61OhAio.mjs} +6 -6
  76. package/dist/{validation-CcPcuEbR.d.mts → validation-DYNNrU9u.d.mts} +1 -1
  77. package/dist/validation.d.mts +1 -1
  78. package/dist/validation.mjs +1 -1
  79. package/package.json +15 -1
  80. package/dist/host-Bl7Kgddo.mjs +0 -407
  81. package/dist/openai-chatgpt-jwt-DhAAzLkj.mjs +0 -39
  82. package/dist/openai-responses-contracts-BBKBfAqR.d.mts +0 -116
  83. package/dist/openai-responses-shared-CCyMvg7M.mjs +0 -403
  84. package/dist/provider-error-DI0Ts28U.mjs +0 -47
  85. package/dist/sanitize-unicode-DT5o51ur.mjs +0 -26
  86. package/dist/tool-result-text-Dvkp2Dus.mjs +0 -274
  87. package/dist/transform-messages-DfjpNXNQ.mjs +0 -2
  88. package/dist/transport-stream-shared-CPNv7A3r.mjs +0 -297
@@ -1,11 +1,19 @@
1
- import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, s as resolveClaudeModelIdentity, u as resolveClaudeOpus5ModelIdentity } from "../anthropic-SrGtwsJu.mjs";
1
+ import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, s as resolveClaudeModelIdentity, u as resolveClaudeOpus5ModelIdentity } from "../anthropic-BECQCNdF.mjs";
2
2
  import { t as AssistantMessageDiagnostic } from "../diagnostics-BaTA9eVl.mjs";
3
- import { E as Model, F as SimpleStreamOptions, I as StopReason, R as StreamFunction, X as Usage, u as Context } from "../types-CH7ReIcU.mjs";
4
- import { n as AnthropicOptions, r as AnthropicThinkingDisplay, t as AnthropicEffort } from "../provider-options-C5kYML7i.mjs";
3
+ import { B as StopReason, D as Model, H as StreamFunction, d as Context, et as Usage, z as SimpleStreamOptions } from "../types-DTAP49HF.mjs";
4
+ import { n as AnthropicOptions, r as AnthropicThinkingDisplay, t as AnthropicEffort } from "../provider-options-Cc5ZQ6Aa.mjs";
5
+ import { o as resolveAnthropicServerCompactionPlan } from "../anthropic-payload-policy-CSx7MoKH.mjs";
6
+
5
7
  //#region packages/ai/src/providers/anthropic.d.ts
6
- declare const streamAnthropic: StreamFunction<"anthropic-messages", AnthropicOptions>;
8
+ type AnthropicCompactionOptions = AnthropicOptions & {
9
+ anthropicServerCompaction?: boolean;
10
+ authProfileId?: string;
11
+ };
12
+ declare const streamAnthropic: StreamFunction<"anthropic-messages", AnthropicCompactionOptions>;
7
13
  type AnthropicSimpleStreamOptions = SimpleStreamOptions & {
8
- toolChoice?: AnthropicOptions["toolChoice"];
14
+ anthropicServerCompaction?: boolean;
15
+ authProfileId?: string;
16
+ toolChoice?: AnthropicCompactionOptions["toolChoice"];
9
17
  };
10
18
  declare const streamSimpleAnthropic: StreamFunction<"anthropic-messages", AnthropicSimpleStreamOptions>;
11
19
  //#endregion
@@ -56,7 +64,13 @@ declare function resolveAnthropicThinkingEffort(model: Model<"anthropic-messages
56
64
  declare function mapAnthropicStopReason(reason: string | undefined): StopReason;
57
65
  /** Remove unsupported assistant prefills while preserving completed tool-use turns. */
58
66
  declare function prepareClaudeNoPrefillRequestContext(model: Model, context: Context): Context;
59
- declare function applyClaudeRequestContract(params: Record<string, unknown>, model: {
67
+ type ClaudeSamplingRequestParams = {
68
+ temperature?: unknown;
69
+ top_p?: unknown;
70
+ top_k?: unknown;
71
+ service_tier?: unknown;
72
+ };
73
+ declare function applyClaudeRequestContract(params: ClaudeSamplingRequestParams, model: {
60
74
  id?: string;
61
75
  params?: Record<string, unknown>;
62
76
  api?: string;
@@ -207,4 +221,4 @@ declare function applyAnthropicMessageStartUsage(target: Usage, payload: Anthrop
207
221
  /** Keep cumulative billing separate from the final server-side iteration context. */
208
222
  declare function applyAnthropicMessageDeltaUsage(target: Usage, payload: AnthropicUsagePayload | undefined, messageStartPromptUsage: AnthropicPromptUsageSnapshot | undefined): void;
209
223
  //#endregion
210
- export { ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, ANTHROPIC_CLAUDE_CODE_VERSION, ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, AnthropicCacheWriteUsage, type AnthropicEffort, AnthropicFallbackBoundary, AnthropicIterationUsageResult, AnthropicIterationUsageSnapshot, type AnthropicOptions, AnthropicProjectedToolChoice, AnthropicPromptUsageSnapshot, type AnthropicThinkingDisplay, AnthropicToolProjection, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicMessageDeltaUsage, applyAnthropicMessageStartUsage, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
224
+ export { ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, ANTHROPIC_CLAUDE_CODE_VERSION, ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, AnthropicCacheWriteUsage, type AnthropicEffort, AnthropicFallbackBoundary, AnthropicIterationUsageResult, AnthropicIterationUsageSnapshot, type AnthropicOptions, AnthropicProjectedToolChoice, AnthropicPromptUsageSnapshot, type AnthropicThinkingDisplay, AnthropicToolProjection, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicMessageDeltaUsage, applyAnthropicMessageStartUsage, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicServerCompactionPlan, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
@@ -1,5 +1,5 @@
1
- import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, s as resolveClaudeModelIdentity, u as resolveClaudeOpus5ModelIdentity } from "../src-QkygScBs.mjs";
2
- import { a as ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, c as defaultsClaudeAdaptiveThinking, d as requiresClaudeAdaptiveThinking, f as resolveAnthropicThinkingEffort, h as usesClaudeStreamingRefusalContract, l as mapAnthropicStopReason, m as usesClaudeFable5MessagesContract, o as ANTHROPIC_CLAUDE_CODE_VERSION, p as resolveModelBoundThinkingReplayMode, s as applyClaudeRequestContract, u as prepareClaudeNoPrefillRequestContext } from "../host-Bl7Kgddo.mjs";
3
- import { C as usesFoundryBearerAuth, S as omitFoundryBearerCredentialHeaders, _ as CLAUDE_OPUS_FALLBACK_MODEL_COST, a as readAnthropicUsageTokenCount, b as resolveAnthropicFallbackServingModelCost, c as normalizeAnthropicToolChoice, d as resolveOriginalAnthropicToolName, f as toClaudeCodeToolName, g as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, h as ANTHROPIC_SERVER_SIDE_FALLBACKS, i as readAnthropicPromptUsageSnapshot, l as projectAnthropicTools, m as findActiveAnthropicToolTurnAssistantIndex, n as applyAnthropicMessageStartUsage, o as readLastAnthropicIterationUsage, p as ANTHROPIC_OMITTED_REASONING_TEXT, r as readAnthropicCacheWriteUsage, s as normalizeAnthropicToolCallId, t as applyAnthropicMessageDeltaUsage, u as reconcileAnthropicToolChoice, v as applyAnthropicFallbackBoundary, x as applyAnthropicRefusal, y as readAnthropicFallbackBoundary } from "../anthropic-usage-Ma4iX6uG.mjs";
4
- import { n as streamAnthropic, r as streamSimpleAnthropic } from "../anthropic-CE-7SkF6.mjs";
5
- export { ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, ANTHROPIC_CLAUDE_CODE_VERSION, ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicMessageDeltaUsage, applyAnthropicMessageStartUsage, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
1
+ import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, s as resolveClaudeModelIdentity, u as resolveClaudeOpus5ModelIdentity } from "../anthropic-BQXQudmA.mjs";
2
+ import { S as usesClaudeStreamingRefusalContract, _ as prepareClaudeNoPrefillRequestContext, b as resolveModelBoundThinkingReplayMode, f as ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, g as mapAnthropicStopReason, h as defaultsClaudeAdaptiveThinking, m as applyClaudeRequestContract, p as ANTHROPIC_CLAUDE_CODE_VERSION, v as requiresClaudeAdaptiveThinking, x as usesClaudeFable5MessagesContract, y as resolveAnthropicThinkingEffort } from "../host-DF_yxOsA.mjs";
3
+ import { C as readAnthropicFallbackBoundary, D as usesFoundryBearerAuth, E as omitFoundryBearerCredentialHeaders, I as resolveAnthropicServerCompactionPlan, S as applyAnthropicFallbackBoundary, T as applyAnthropicRefusal, _ as ANTHROPIC_OMITTED_REASONING_TEXT, a as applyAnthropicMessageDeltaUsage, b as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, c as readAnthropicPromptUsageSnapshot, d as normalizeAnthropicToolCallId, f as normalizeAnthropicToolChoice, g as toClaudeCodeToolName, h as resolveOriginalAnthropicToolName, l as readAnthropicUsageTokenCount, m as reconcileAnthropicToolChoice, o as applyAnthropicMessageStartUsage, p as projectAnthropicTools, s as readAnthropicCacheWriteUsage, u as readLastAnthropicIterationUsage, v as findActiveAnthropicToolTurnAssistantIndex, w as resolveAnthropicFallbackServingModelCost, x as CLAUDE_OPUS_FALLBACK_MODEL_COST, y as ANTHROPIC_SERVER_SIDE_FALLBACKS } from "../anthropic-compaction-replay-4Zx7-aCr.mjs";
4
+ import { n as streamAnthropic, r as streamSimpleAnthropic } from "../anthropic-B8KwTtlb.mjs";
5
+ export { ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, ANTHROPIC_CLAUDE_CODE_VERSION, ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicMessageDeltaUsage, applyAnthropicMessageStartUsage, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicServerCompactionPlan, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
@@ -0,0 +1,3 @@
1
+ import { t as OPENAI_RESPONSES_APIS } from "../openai-responses-contracts-CD75pQ0m.mjs";
2
+ import { i as resolveOpenAIResponsesServerCompactionPlan } from "../openai-responses-payload-policy-CNGFT9zr.mjs";
3
+ export { OPENAI_RESPONSES_APIS, resolveOpenAIResponsesServerCompactionPlan };
@@ -0,0 +1,3 @@
1
+ import { i as OPENAI_RESPONSES_APIS } from "../openai-responses-contracts-DvILoqBk.mjs";
2
+ import { i as resolveOpenAIResponsesServerCompactionPlan } from "../openai-responses-payload-policy-BDo8CQsx.mjs";
3
+ export { OPENAI_RESPONSES_APIS, resolveOpenAIResponsesServerCompactionPlan };
@@ -1,6 +1,7 @@
1
- import { E as Model, F as SimpleStreamOptions, I as StopReason, R as StreamFunction, X as Usage, u as Context, z as StreamOptions } from "../types-CH7ReIcU.mjs";
2
- import { _ as resolveOpenAIReasoningEffortForModel, a as OpenAICompletionsOptions, b as supportsOpenAITemperature, c as projectOpenAITools, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, g as normalizeOpenAIReasoningEffort, h as isOpenAIGpt56Model, l as reconcileOpenAICompletionsToolChoice, m as isOpenAIGpt55Model, o as OpenAICompletionsToolChoice, p as isOpenAIGpt54MiniModel, s as OpenAIToolProjection, u as reconcileOpenAIResponsesToolChoice, v as resolveOpenAISupportedReasoningEfforts, y as supportsOpenAIReasoningEffort } from "../provider-options-C5kYML7i.mjs";
3
- import { c as ResolvedOpenAICompletionsCompat, o as ResponsesPromptObservation, s as responsesPromptObserver } from "../openai-responses-contracts-BBKBfAqR.mjs";
1
+ import { B as StopReason, D as Model, H as StreamFunction, d as Context, et as Usage, z as SimpleStreamOptions } from "../types-DTAP49HF.mjs";
2
+ import { C as supportsOpenAITemperature, S as supportsOpenAIReasoningEffort, _ as isOpenAIGpt55Model, a as CodeModeToolSurfaceObservation, b as resolveOpenAIReasoningEffortForModel, c as codeModeToolSurfaceObserver, d as projectOpenAITools, f as reconcileOpenAICompletionsToolChoice, g as isOpenAIGpt54MiniModel, h as OpenAIReasoningEffort, i as BaseOpenAIStreamOptions, l as OpenAICompletionsToolChoice, m as OpenAIApiReasoningEffort, o as OpenAICompletionsOptions, p as reconcileOpenAIResponsesToolChoice, u as OpenAIToolProjection, v as isOpenAIGpt56Model, x as resolveOpenAISupportedReasoningEfforts, y as normalizeOpenAIReasoningEffort } from "../provider-options-Cc5ZQ6Aa.mjs";
3
+ import { o as ResponsesPromptObservation, s as responsesPromptObserver } from "../openai-responses-contracts-CD75pQ0m.mjs";
4
+ import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-B0KTleXp.mjs";
4
5
  import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-2uo_1OR1.mjs";
5
6
  import OpenAI from "openai";
6
7
  import { TSchema } from "typebox";
@@ -81,7 +82,7 @@ declare const streamOpenAICompletions: StreamFunction<"openai-completions", Open
81
82
  declare const streamSimpleOpenAICompletions: StreamFunction<"openai-completions", SimpleStreamOptions>;
82
83
  //#endregion
83
84
  //#region packages/ai/src/providers/openai-responses.d.ts
84
- interface OpenAIResponsesOptions extends StreamOptions {
85
+ interface OpenAIResponsesOptions extends BaseOpenAIStreamOptions {
85
86
  reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
86
87
  reasoningSummary?: "auto" | "detailed" | "concise" | null;
87
88
  replayResponsesItemIds?: boolean;
@@ -223,7 +224,6 @@ type ToolSchemaCompatInput = {
223
224
  unsupportedToolSchemaKeywords?: unknown;
224
225
  omitEmptyArrayItems?: unknown;
225
226
  };
226
- declare function clearOpenAIToolSchemaCacheForTest(): void;
227
227
  /** Normalizes a tool parameter schema into the OpenAI strict JSON-schema subset. */
228
228
  declare function normalizeStrictOpenAIJsonSchema(schema: unknown, modelCompat?: ToolSchemaCompatInput | null): unknown;
229
229
  /** Normalizes tool parameters using strict OpenAI rules only when strict mode is active. */
@@ -257,4 +257,4 @@ type RuntimeToolInputSchemaProjection = {
257
257
  /** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
258
258
  declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
259
259
  //#endregion
260
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, type ResponsesPromptObservation, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
260
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, type CodeModeToolSurfaceObservation, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, type ResponsesPromptObservation, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,9 +1,11 @@
1
+ import { S as supportsOpenAITemperature, _ as isOpenAIGpt56Model, b as resolveOpenAISupportedReasoningEfforts, g as isOpenAIGpt55Model, h as isOpenAIGpt54MiniModel, m as responsesPromptObserver, v as normalizeOpenAIReasoningEffort, x as supportsOpenAIReasoningEffort, y as resolveOpenAIReasoningEffortForModel } from "../openai-responses-contracts-DvILoqBk.mjs";
1
2
  import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-mZTCdRPo.mjs";
2
- import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-B1b-XCn5.mjs";
3
- import { a as convertMessages, n as mapOpenAIStopReason } from "../openai-reasoning-compat-DKebnIBL.mjs";
4
- import { $ as shouldOmitEmptyArrayItems, B as responsesPromptObserver, G as normalizeOpenAIStrictToolParameters, H as clearOpenAIToolSchemaCacheForTest, J as findOpenAIStrictSchemaViolations, K as normalizeStrictOpenAIJsonSchema, Q as resolveUnsupportedToolSchemaKeywords, U as findOpenAIStrictToolProjectionDiagnostics, W as isStrictOpenAIJsonSchemaCompatible, X as extractToolSchemaModelCompat, Y as normalizeOpenAIStrictCompatSchema, Z as normalizeToolParameterSchema, _ as resolveResponsesMessageSnapshotCollapse, a as resolveResponsesTerminalStopReason, at as cleanSchemaForGemini, c as readResponsesToolCallItemIdentity, ct as isOpenAIGpt56Model, d as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, dt as resolveOpenAISupportedReasoningEfforts, et as stripUnsupportedSchemaKeywords, f as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, ft as supportsOpenAIReasoningEffort, g as isResponsesTextDeltaEventType, h as isResponsesTextContentPartType, i as readResponsesReasoningTokens, it as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, l as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, lt as normalizeOpenAIReasoningEffort, m as isAzureResponsesTextDeltaEventType, nt as cleanSchemaForLlamacppGbnf, ot as isOpenAIGpt54MiniModel, p as isAzureResponsesTextDeltaEvent, pt as supportsOpenAITemperature, q as resolveOpenAIProjectedToolsStrictToolFlag, r as mapResponsesTerminalUsage, rt as findLlamacppGbnfSchemaViolations, s as createResponsesToolCallTracker, st as isOpenAIGpt55Model, tt as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, u as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, ut as resolveOpenAIReasoningEffortForModel } from "../openai-responses-stream-internal-Bl8YyVtF.mjs";
5
- import { d as reconcileOpenAIResponsesToolChoice, l as projectOpenAITools, u as reconcileOpenAICompletionsToolChoice } from "../openai-transport-shared-Cipt7egQ.mjs";
3
+ import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-FEr-jOoZ.mjs";
4
+ import { r as convertMessages, t as mapOpenAIStopReason } from "../openai-stop-reason-9OONKyAm.mjs";
5
+ import { $ as normalizeOpenAIStrictCompatSchema, A as isAzureResponsesTextDeltaEvent, D as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, E as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, J as isStrictOpenAIJsonSchemaCompatible, M as isResponsesTextContentPartType, N as isResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, P as resolveResponsesMessageSnapshotCollapse, Q as findOpenAIStrictSchemaViolations, T as readResponsesToolCallItemIdentity, X as normalizeStrictOpenAIJsonSchema, Y as normalizeOpenAIStrictToolParameters, Z as resolveOpenAIProjectedToolsStrictToolFlag, at as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, ct as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, d as resolveResponsesTerminalStopReason, et as extractToolSchemaModelCompat, it as stripUnsupportedSchemaKeywords, j as isAzureResponsesTextDeltaEventType, k as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, l as mapResponsesTerminalUsage, lt as cleanSchemaForGemini, nt as resolveUnsupportedToolSchemaKeywords, ot as cleanSchemaForLlamacppGbnf, q as findOpenAIStrictToolProjectionDiagnostics, rt as shouldOmitEmptyArrayItems, st as findLlamacppGbnfSchemaViolations, tt as normalizeToolParameterSchema, u as readResponsesReasoningTokens, w as createResponsesToolCallTracker } from "../openai-responses-shared-Cvt5MgEm.mjs";
6
+ import { t as codeModeToolSurfaceObserver } from "../provider-options-AvldWZt8.mjs";
7
+ import { n as reconcileOpenAICompletionsToolChoice, r as reconcileOpenAIResponsesToolChoice, t as projectOpenAITools } from "../openai-tool-projection-CHGLt03m.mjs";
6
8
  import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
7
- import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-BaIpl93j.mjs";
8
- import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-Bdx3V_Yu.mjs";
9
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
9
+ import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-D88orSJ9.mjs";
10
+ import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BXEcr-Tp.mjs";
11
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, 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-CH7ReIcU.mjs";
2
- import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-EpJoVwM1.mjs";
1
+ import { D as Model, O as ModelThinkingLevel, R as ProviderStreamOptions, U as StreamOptions, a as AssistantMessage, d as Context, et as Usage, n as Api, s as AssistantMessageEventStreamContract, z as SimpleStreamOptions } from "../types-DTAP49HF.mjs";
2
+ import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-DFxSnFqG.mjs";
3
3
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
4
4
  import { a as createFirstStreamEventTimeoutError, c as withFirstStreamEventTimeout, i as createFirstStreamEventAbortController, n as FirstStreamEventInternalOptions, o as getFirstStreamEventTimeoutHandler, r as FirstStreamEventTimeoutContext, s as getFirstStreamEventTimeoutMs, t as FirstStreamEventAbortController } from "../stream-first-event-timeout-DvDeSucC.mjs";
5
5
 
@@ -117,6 +117,18 @@ declare function resolveOpenAICodexAccountId(token: string): string | null;
117
117
  //#region packages/ai/src/utils/overflow.d.ts
118
118
  /** Detects DS4-style raw token-count context overflow errors. */
119
119
  declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
120
+ declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
121
+ readonly "assistant-error": RegExp[];
122
+ readonly "failover-explicit": RegExp[];
123
+ readonly "provider-fallback": RegExp[];
124
+ readonly "failover-hint": readonly [RegExp];
125
+ readonly "context-window-too-small": readonly [RegExp];
126
+ readonly "tpm-rate-limit-hint": readonly [RegExp];
127
+ readonly "rate-limit-hint": readonly [RegExp];
128
+ };
129
+ type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
130
+ /** Match one canonical context-overflow wording scope without applying caller policy. */
131
+ declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
120
132
  /**
121
133
  * Check if an assistant message represents a context overflow error.
122
134
  *
@@ -134,7 +146,7 @@ declare function isConfiguredContextSizeOverflowError(errorMessage: string): boo
134
146
  * - Google Gemini: "input token count exceeds the maximum"
135
147
  * - xAI (Grok): "maximum prompt length is X but request contains Y"
136
148
  * - Groq: "reduce the length of the messages"
137
- * - Cerebras: 400/413 status code (no body)
149
+ * - Cerebras: 413 status code (no body)
138
150
  * - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
139
151
  * - OpenRouter (all backends): "maximum context length is X tokens"
140
152
  * - Together AI: "The input (X tokens) is longer than the model's context length (Y tokens)."
@@ -161,7 +173,7 @@ declare function isConfiguredContextSizeOverflowError(errorMessage: string): boo
161
173
  * 1. Send a request that exceeds the model's context window
162
174
  * 2. Check the errorMessage in the response
163
175
  * 3. Create a regex pattern that matches the error
164
- * 4. The pattern should be added to OVERFLOW_PATTERNS in this file, or
176
+ * 4. The pattern should be added to the appropriate canonical scope in this file, or
165
177
  * check the errorMessage yourself before calling this function
166
178
  *
167
179
  * @param message - The assistant message to check
@@ -186,6 +198,8 @@ interface ReasoningTagTextPartitioner {
186
198
  pushVisible(chunk: string): ReasoningTagTextDelta[];
187
199
  flush(): ReasoningTagTextDelta[];
188
200
  hasPending(): boolean;
201
+ /** Whether more input can change buffered Markdown or reasoning-tag ownership. */
202
+ hasPendingSyntax(): boolean;
189
203
  isInsideReasoning(): boolean;
190
204
  }
191
205
  /** Creates a block-incremental parser that emits only Markdown-stable text. */
@@ -221,4 +235,4 @@ type SseByteGuard = {
221
235
  };
222
236
  declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
223
237
  //#endregion
224
- export { FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, OpenAICodexJwtPayload, ReadSseStreamWithLimitOptions, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, SessionResourceCleanup, SseByteGuard, SseStreamOverflow, applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
238
+ export { ContextOverflowMessageScope, FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, OpenAICodexJwtPayload, ReadSseStreamWithLimitOptions, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, SessionResourceCleanup, SseByteGuard, SseStreamOverflow, applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
@@ -1,15 +1,15 @@
1
1
  import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-DrgeBuva.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-Dau5dlgm.mjs";
4
- import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
3
+ import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-BP7HLLZn.mjs";
4
+ import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
5
5
  import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
6
- import { n as parseStreamingJson, r as repairJson, t as parseJsonWithRepair } from "../json-parse-BvXNt1-7.mjs";
6
+ import { n as parseStreamingJson, r as repairJson, t as parseJsonWithRepair } from "../json-parse-CDnesDM_.mjs";
7
7
  import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
8
- import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-CGDyLWUR.mjs";
9
- import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-BIBomOGq.mjs";
10
- import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
11
8
  import { t as shortHash } from "../hash-CHgqbJmD.mjs";
12
- import { i as registerSessionResourceCleanup, n as resolveOpenAICodexAccountId, r as cleanupSessionResources, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-DhAAzLkj.mjs";
9
+ import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-MK28puvq.mjs";
10
+ import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-5ygO2rZc.mjs";
11
+ import { n as registerSessionResourceCleanup, t as cleanupSessionResources } from "../session-resources-CkR4WWy1.mjs";
12
+ import { n as resolveOpenAICodexAccountId, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-KWcgd0d_.mjs";
13
13
  import { t as createSseByteGuard } from "../streaming-byte-guard-BrbkbwUu.mjs";
14
14
  //#region packages/ai/src/internal/default-runtime.ts
15
15
  const DEFAULT_RUNTIME_KEY = Symbol.for("openclaw.ai.defaultRuntime");
@@ -39,69 +39,82 @@ const CONFIGURED_CONTEXT_SIZE_OVERFLOW_RE = /prompt has [\d,]+ tokens?, but the
39
39
  function isConfiguredContextSizeOverflowError(errorMessage) {
40
40
  return CONFIGURED_CONTEXT_SIZE_OVERFLOW_RE.test(errorMessage);
41
41
  }
42
- /**
43
- * Regex patterns to detect context overflow errors from different providers.
44
- *
45
- * These patterns match error messages returned when the input exceeds
46
- * the model's context window.
47
- *
48
- * Provider-specific patterns (with example error messages):
49
- *
50
- * - Anthropic: "prompt is too long: 213462 tokens > 200000 maximum"
51
- * - Anthropic: "413 {\"error\":{\"type\":\"request_too_large\",\"message\":\"Request exceeds the maximum size\"}}"
52
- * - OpenAI: "Your input exceeds the context window of this model"
53
- * - OpenAI/LiteLLM: "Requested token count exceeds the model's maximum context length of 131072 tokens"
54
- * - Google: "The input token count (1196265) exceeds the maximum number of tokens allowed (1048575)"
55
- * - xAI: "This model's maximum prompt length is 131072 but the request contains 537812 tokens"
56
- * - Groq: "Please reduce the length of the messages or completion"
57
- * - OpenRouter: "This endpoint's maximum context length is X tokens. However, you requested about Y tokens"
58
- * - Together AI: "The input (X tokens) is longer than the model's context length (Y tokens)."
59
- * - llama.cpp: "the request exceeds the available context size, try increasing it"
60
- * - LM Studio: "tokens to keep from the initial prompt is greater than the context length"
61
- * - GitHub Copilot: "prompt token count of X exceeds the limit of Y"
62
- * - MiniMax: "invalid params, context window exceeds limit"
63
- * - Kimi For Coding: "Your request exceeded model token limit: X (requested: Y)"
64
- * - Cerebras: "400/413 status code (no body)"
65
- * - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
66
- * - z.ai: May return "tokens in request more than max tokens allowed" (code 1210),
67
- * "Prompt exceeds max length" (code 1261), or accept overflow silently; handled via the
68
- * error patterns or usage.input > contextWindow
69
- * - Xiaomi MiMo: Truncates input to fill contextWindow exactly, then returns finish_reason "length"
70
- * with output=0 (no room left to generate). Detected via stopReason "length" + zero output +
71
- * input filling the context window.
72
- * - Ollama: Some deployments truncate silently, others return errors like "prompt too long; exceeded max context length by X tokens"
73
- */
74
- const OVERFLOW_PATTERNS = [
75
- /prompt is too long/i,
76
- /request_too_large/i,
77
- /input is too long for requested model/i,
78
- /exceeds the context window/i,
79
- /exceeds (?:the )?(?:model'?s )?maximum context length(?: of [\d,]+ tokens?|\s*\([\d,]+\))/i,
80
- /input token count.*exceeds the maximum/i,
81
- /maximum prompt length is \d+/i,
82
- /reduce the length of the messages/i,
83
- /maximum context length is \d+ tokens/i,
84
- /exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,
85
- /input \(\d+ tokens\) is longer than the model'?s context length \(\d+ tokens\)/i,
86
- /exceeds the limit of \d+/i,
87
- /exceeds the available context size/i,
88
- /greater than the context length/i,
89
- /context window exceeds limit/i,
90
- /exceeded model token limit/i,
91
- /tokens? in request more than max tokens? allowed/i,
92
- /prompt exceeds max(?:imum)? length/i,
93
- /too large for model with \d+ maximum context length/i,
94
- CONFIGURED_CONTEXT_SIZE_OVERFLOW_RE,
95
- /model_context_window_exceeded/i,
96
- /prompt too long; exceeded (?:max )?context length/i,
97
- /context[_ ]length[_ ]exceeded/i,
98
- /too many tokens/i,
99
- /token limit exceeded/i,
100
- /^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i
101
- ];
42
+ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
43
+ "assistant-error": [
44
+ /prompt is too long/i,
45
+ /request_too_large/i,
46
+ /input length and `?max_tokens`? exceed context limit: [\d,]+ \+ [\d,]+ > [\d,]+/i,
47
+ /input is too long for requested model/i,
48
+ /exceeds the context window/i,
49
+ /exceeds (?:the )?(?:model'?s )?maximum context length(?: of [\d,]+ tokens?|\s*\([\d,]+\))/i,
50
+ /input token count.*exceeds the maximum/i,
51
+ /maximum prompt length is \d+/i,
52
+ /reduce the length of the messages/i,
53
+ /maximum context length is \d+ tokens/i,
54
+ /exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,
55
+ /input \(\d+ tokens\) is longer than the model'?s context length \(\d+ tokens\)/i,
56
+ /exceeds the limit of \d+/i,
57
+ /exceeds the available context size/i,
58
+ /greater than the context length/i,
59
+ /context window exceeds limit/i,
60
+ /exceeded model token limit/i,
61
+ /tokens? in request more than max tokens? allowed/i,
62
+ /prompt exceeds max(?:imum)? length/i,
63
+ /too large for model with \d+ maximum context length/i,
64
+ CONFIGURED_CONTEXT_SIZE_OVERFLOW_RE,
65
+ /model_context_window_exceeded/i,
66
+ /prompt too long; exceeded (?:max )?context length/i,
67
+ /context[_ ]length[_ ]exceeded/i,
68
+ /too many tokens/i,
69
+ /token limit exceeded/i,
70
+ /^413\s*(?:status code)?\s*\(no body\)/i
71
+ ],
72
+ "failover-explicit": [
73
+ /request_too_large/i,
74
+ /context_overflow/i,
75
+ CONFIGURED_CONTEXT_SIZE_OVERFLOW_RE,
76
+ /invalid_argument[\s\S]*maximum number of tokens/i,
77
+ /request exceeds the maximum size/i,
78
+ /context length exceeded/i,
79
+ /maximum context length/i,
80
+ /prompt is too long/i,
81
+ /prompt too long/i,
82
+ /exceeds model context window/i,
83
+ /model token limit/i,
84
+ /input exceeds[\s\S]*maximum number of tokens/i,
85
+ /^(?=[\s\S]*context window)(?=[\s\S]*ran out of (?:room|space))/i,
86
+ /request size exceeds[\s\S]*context window/i,
87
+ /context overflow:/i,
88
+ /exceed context limit/i,
89
+ /exceeds the model'?s maximum context/i,
90
+ /max_tokens[\s\S]*exceed[\s\S]*context/i,
91
+ /input length[\s\S]*exceed[\s\S]*context/i,
92
+ /413[\s\S]*too large/i,
93
+ /context_window_exceeded/i,
94
+ /input length [\d,]+\s+tokens? exceeds the model limit/i,
95
+ /上下文过长|上下文超出|上下文长度超|超出最大上下文|请压缩上下文/
96
+ ],
97
+ "provider-fallback": [
98
+ /\binput token count exceeds the maximum number of input tokens\b/i,
99
+ /\binput is too long for this model\b/i,
100
+ /\binput exceeds the maximum number of tokens\b/i,
101
+ /\bollama error:\s*context length exceeded(?:,\s*too many tokens)?\b/i,
102
+ /\btotal tokens?.*exceeds? (?:the )?(?:model(?:'s)? )?(?:max|maximum|limit)/i,
103
+ /\b(?:request|prompt) \(\d[\d,]*\s*tokens?\) exceeds (?:the )?available context size\b/i,
104
+ /\binput (?:is )?too long for (?:the )?model\b/i
105
+ ],
106
+ "failover-hint": [/context.*overflow|context window.*(too (?:large|long)|exceed|over|limit|max(?:imum)?|requested|sent|tokens)|prompt.*(too (?:large|long)|exceed|over|limit|max(?:imum)?)|(?:request|input).*(?:context|window|length|token).*(too (?:large|long)|exceed|over|limit|max(?:imum)?)/i],
107
+ "context-window-too-small": [/context window.*(too small|minimum is)/i],
108
+ "tpm-rate-limit-hint": [/\btpm\b|tokens per minute/i],
109
+ "rate-limit-hint": [/rate limit|too many requests|requests per (?:minute|hour|day)|quota|throttl|429\b|tokens per day/i]
110
+ };
111
+ /** Match one canonical context-overflow wording scope without applying caller policy. */
112
+ function matchesContextOverflowMessage(errorMessage, scope) {
113
+ return CONTEXT_OVERFLOW_PATTERN_SCOPES[scope].some((pattern) => pattern.test(errorMessage));
114
+ }
102
115
  /**
103
116
  * Patterns that indicate non-overflow errors (e.g. rate limiting, server errors).
104
- * Error messages matching unknown of these are excluded from overflow detection
117
+ * Error messages matching any of these are excluded from overflow detection
105
118
  * even if they also match an OVERFLOW_PATTERN.
106
119
  *
107
120
  * Example: Bedrock formats throttling errors as "ThrottlingException: Too many tokens,
@@ -135,7 +148,7 @@ function resolveContextInputTokens(message) {
135
148
  * - Google Gemini: "input token count exceeds the maximum"
136
149
  * - xAI (Grok): "maximum prompt length is X but request contains Y"
137
150
  * - Groq: "reduce the length of the messages"
138
- * - Cerebras: 400/413 status code (no body)
151
+ * - Cerebras: 413 status code (no body)
139
152
  * - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
140
153
  * - OpenRouter (all backends): "maximum context length is X tokens"
141
154
  * - Together AI: "The input (X tokens) is longer than the model's context length (Y tokens)."
@@ -162,7 +175,7 @@ function resolveContextInputTokens(message) {
162
175
  * 1. Send a request that exceeds the model's context window
163
176
  * 2. Check the errorMessage in the response
164
177
  * 3. Create a regex pattern that matches the error
165
- * 4. The pattern should be added to OVERFLOW_PATTERNS in this file, or
178
+ * 4. The pattern should be added to the appropriate canonical scope in this file, or
166
179
  * check the errorMessage yourself before calling this function
167
180
  *
168
181
  * @param message - The assistant message to check
@@ -172,7 +185,7 @@ function resolveContextInputTokens(message) {
172
185
  function isContextOverflow(message, contextWindow) {
173
186
  if (message.stopReason === "error" && message.errorMessage) {
174
187
  const errorMessage = message.errorMessage;
175
- if (!NON_OVERFLOW_PATTERNS.some((p) => p.test(errorMessage)) && OVERFLOW_PATTERNS.some((p) => p.test(errorMessage))) return true;
188
+ if (!NON_OVERFLOW_PATTERNS.some((p) => p.test(errorMessage)) && matchesContextOverflowMessage(errorMessage, "assistant-error")) return true;
176
189
  }
177
190
  if (contextWindow && message.stopReason === "stop") {
178
191
  const inputTokens = resolveContextInputTokens(message);
@@ -185,4 +198,4 @@ function isContextOverflow(message, contextWindow) {
185
198
  return false;
186
199
  }
187
200
  //#endregion
188
- export { applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
201
+ export { applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
@@ -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-CH7ReIcU.mjs";
1
+ import { D as Model, E as Message, J as ThinkingLevel, K as ThinkingBudgets, U as StreamOptions, a as AssistantMessage, n as Api, z as SimpleStreamOptions } from "../types-DTAP49HF.mjs";
2
2
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
3
3
  import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
4
4
 
@@ -29,14 +29,23 @@ declare function isImageWithMediaPayload<T>(block: T): block is T & {
29
29
  };
30
30
  declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
31
31
  declare function extractToolResultBlockText(block: unknown): string | undefined;
32
- declare function extractToolResultText(blocks: readonly unknown[]): string;
32
+ declare function extractToolResultText(blocks: readonly unknown[], options?: {
33
+ includeStructured?: boolean;
34
+ }): string;
35
+ type ToolResultMediaSupport = {
36
+ images: boolean;
37
+ audio: boolean;
38
+ };
39
+ /** Describe media that cannot be represented on the target provider wire. */
40
+ declare function describeUnsupportedToolResultMedia(blocks: readonly unknown[], support: ToolResultMediaSupport): string | undefined;
41
+ declare function formatToolResultText(params: {
42
+ text: string;
43
+ mediaPlaceholder?: string;
44
+ omittedMediaPlaceholder?: string;
45
+ isError: boolean;
46
+ }): string;
33
47
  //#endregion
34
48
  //#region packages/ai/src/transcript-transform.d.ts
35
- /**
36
- * Normalize tool call ID for cross-provider compatibility.
37
- * OpenAI Responses API generates IDs that are 450+ chars with special characters like `|`.
38
- * Anthropic APIs require IDs matching ^[a-zA-Z0-9_-]+$ (max 64 chars).
39
- */
40
49
  declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
41
50
  //#endregion
42
51
  //#region packages/ai/src/utils/system-prompt-cache-boundary.d.ts
@@ -62,4 +71,4 @@ type TlsCertificateErrorDetails = {
62
71
  /** Classify deterministic Node/OpenSSL certificate validation failures. */
63
72
  declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
64
73
  //#endregion
65
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, TlsCertificateErrorDetails, TlsCertificateErrorKind, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
74
+ export { SYSTEM_PROMPT_CACHE_BOUNDARY, TlsCertificateErrorDetails, TlsCertificateErrorKind, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
@@ -1,6 +1,5 @@
1
- import { i as transformMessages } from "../host-Bl7Kgddo.mjs";
2
- import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
3
- import { _ as normalizeStructuredPromptSection, a as isImageWithMediaPayload, c as buildBaseOptions, d as SYSTEM_PROMPT_CACHE_BOUNDARY, f as ensureSystemPromptCacheBoundary, g as normalizePromptCapabilityIds, h as stripSystemPromptCacheBoundary, i as hasMediaPayload, l as clampMaxTokensToModel, m as splitSystemPromptCacheBoundary, n as extractToolResultBlockText, p as prependSystemPromptAdditionAfterCacheBoundary, r as extractToolResultText, s as adjustMaxTokensForThinking, t as describeToolResultMediaPlaceholder, u as clampReasoning, v as sortPromptCacheToolsByName } from "../tool-result-text-Dvkp2Dus.mjs";
4
- import "../transform-messages-DfjpNXNQ.mjs";
1
+ import { t as sanitizeSurrogates } from "../sanitize-unicode-BP7HLLZn.mjs";
2
+ import { a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, i as transformMessages, l as formatToolResultText, o as describeUnsupportedToolResultMedia, s as extractToolResultBlockText, u as hasMediaPayload } from "../host-DF_yxOsA.mjs";
3
+ import { A as splitSystemPromptCacheBoundary, D as SYSTEM_PROMPT_CACHE_BOUNDARY, M as normalizePromptCapabilityIds, N as normalizeStructuredPromptSection, O as ensureSystemPromptCacheBoundary, P as sortPromptCacheToolsByName, i as clampReasoning, j as stripSystemPromptCacheBoundary, k as prependSystemPromptAdditionAfterCacheBoundary, n as buildBaseOptions, r as clampMaxTokensToModel, t as adjustMaxTokensForThinking } from "../simple-options-oqsXB6U3.mjs";
5
4
  import { t as inspectTlsCertificateError } from "../tls-certificate-errors-DXSpluKI.mjs";
6
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
5
+ export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
@@ -1,3 +1,4 @@
1
+ import { t as asNonArrayRecord } from "./record-coerce-DdXsgUd_.mjs";
1
2
  import { parse } from "partial-json";
2
3
  //#region packages/ai/src/utils/json-parse.ts
3
4
  const VALID_JSON_ESCAPES = /* @__PURE__ */ new Set([
@@ -102,9 +103,6 @@ function looksLikeWindowsPathPrefix(prefix) {
102
103
  const tail = prefix.slice(-160);
103
104
  return /(?:^|[^A-Za-z0-9])[A-Za-z]:(?:[\\/][^"\\/:*?<>|\r\n]*)*$/.test(tail);
104
105
  }
105
- function asStreamingJsonRecord(value) {
106
- return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
107
- }
108
106
  /**
109
107
  * Attempts to parse potentially incomplete JSON during streaming.
110
108
  * Always returns a valid object, even if the JSON is incomplete.
@@ -115,13 +113,13 @@ function asStreamingJsonRecord(value) {
115
113
  function parseStreamingJson(partialJson) {
116
114
  if (!partialJson || partialJson.trim() === "") return {};
117
115
  try {
118
- return asStreamingJsonRecord(parseJsonWithRepair(partialJson));
116
+ return asNonArrayRecord(parseJsonWithRepair(partialJson));
119
117
  } catch {
120
118
  try {
121
- return asStreamingJsonRecord(parse(partialJson));
119
+ return asNonArrayRecord(parse(partialJson));
122
120
  } catch {
123
121
  try {
124
- return asStreamingJsonRecord(parse(repairJson(partialJson)));
122
+ return asNonArrayRecord(parse(repairJson(partialJson)));
125
123
  } catch {
126
124
  return {};
127
125
  }