@openclaw/ai 2026.8.1 → 2026.8.33

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 (70) hide show
  1. package/dist/{anthropic-Djj7L1rx.mjs → anthropic-BNeFhAh3.mjs} +197 -185
  2. package/dist/{anthropic-compaction-replay-CY4tkD4V.mjs → anthropic-compaction-replay-B6sEzXhr.mjs} +24 -7
  3. package/dist/{anthropic-payload-policy-i_5_inWe.d.mts → anthropic-payload-policy-kkq8L7tJ.d.mts} +2 -2
  4. package/dist/{api-registry-C9-wZd_W.d.mts → api-registry-CAK4bNkq.d.mts} +2 -2
  5. package/dist/{azure-openai-responses-Bj3czHNa.mjs → azure-openai-responses-CPvqFff1.mjs} +6 -5
  6. package/dist/diagnostics.mjs +1 -1
  7. package/dist/event-stream-CDHaMazK.d.mts +1 -0
  8. package/dist/{event-stream-UhnxHuqt.d.mts → event-stream-DcQzYRWO.d.mts} +1 -1
  9. package/dist/event-stream.d.mts +2 -2
  10. package/dist/{google-0Ca6TYbw.mjs → google-B6pXyWB0.mjs} +7 -5
  11. package/dist/{google-shared-DVfL9COU.mjs → google-shared-C_3CT37v.mjs} +25 -23
  12. package/dist/{google-vertex-5dAMxprN.mjs → google-vertex-BA2c1toq.mjs} +7 -5
  13. package/dist/{host-DoPJJ1KD.d.mts → host-DL2Zd9ep.d.mts} +3 -3
  14. package/dist/{host-D51fmkH6.mjs → host-DhlhmyR6.mjs} +17 -2
  15. package/dist/index-DcGDVDnC.d.mts +118 -0
  16. package/dist/index.d.mts +7 -7
  17. package/dist/index.mjs +4 -4
  18. package/dist/internal/anthropic.d.mts +11 -6
  19. package/dist/internal/anthropic.mjs +5 -5
  20. package/dist/internal/openai-responses-payload-policy.d.mts +1 -1
  21. package/dist/internal/openai-responses-payload-policy.mjs +1 -1
  22. package/dist/internal/openai.d.mts +7 -7
  23. package/dist/internal/openai.mjs +10 -10
  24. package/dist/internal/runtime.d.mts +5 -5
  25. package/dist/internal/runtime.mjs +3 -3
  26. package/dist/internal/shared.d.mts +2 -2
  27. package/dist/internal/shared.mjs +3 -3
  28. package/dist/{mistral-BCnrI-kV.mjs → mistral-CTcM9TGz.mjs} +18 -13
  29. package/dist/{openai-chatgpt-responses-CGBGWSqr.mjs → openai-chatgpt-responses-QqHf1o9v.mjs} +17 -16
  30. package/dist/{openai-completions-BaTuwID7.mjs → openai-completions-BCmKwgsc.mjs} +17 -14
  31. package/dist/{openai-completions-compat-DB7FFq7k.d.mts → openai-completions-compat-BJE92duO.d.mts} +3 -3
  32. package/dist/{openai-completions-stream-Bpns6uNc.mjs → openai-completions-stream-0mm4YUag.mjs} +30 -27
  33. package/dist/openai-prompt-cache-BUJI5cW-.d.mts +16 -0
  34. package/dist/openai-prompt-cache-CGnVB74a.mjs +21 -0
  35. package/dist/{openai-responses-compaction-window-DwydGZI8.mjs → openai-responses-compaction-window-vuCaZYLS.mjs} +3 -3
  36. package/dist/{openai-responses-contracts-DgaR3t5T.d.mts → openai-responses-contracts-DFJOyjd1.d.mts} +6 -3
  37. package/dist/{openai-responses-1GBcQujk.mjs → openai-responses-pMJVxhHW.mjs} +11 -12
  38. package/dist/{openai-responses-prompt-observer-internal-_nhGTn2b.mjs → openai-responses-prompt-observer-internal-COaImuDp.mjs} +3 -3
  39. package/dist/{openai-responses-shared-zPmKnhF5.mjs → openai-responses-shared-CZTRmOFP.mjs} +27 -26
  40. package/dist/{openai-tool-schema-Dgl4H2MU.mjs → openai-tool-schema-DjS9-DHe.mjs} +14 -12
  41. package/dist/{provider-error-jZP5NMTZ.mjs → provider-error-BI8kIViN.mjs} +11 -11
  42. package/dist/{provider-options-HvA_slFa.d.mts → provider-options-CedgbINH.d.mts} +2 -2
  43. package/dist/{provider-transcript-transform-C01bQ5a3.mjs → provider-transcript-transform-BnsgCK8K.mjs} +1 -1
  44. package/dist/provider-types.d.mts +6 -6
  45. package/dist/providers.d.mts +2 -2
  46. package/dist/providers.mjs +10 -10
  47. package/dist/{reasoning-tag-text-partitioner-CwzKb0bA.mjs → reasoning-tag-text-partitioner-BsUX44Tq.mjs} +29 -19
  48. package/dist/{sanitize-unicode-DCkltN94.mjs → sanitize-unicode-Cfcaqa9V.mjs} +2 -8
  49. package/dist/{simple-options-DKx86yX9.mjs → simple-options-Bwi0x0bX.mjs} +2 -2
  50. package/dist/{src-Bu3FiFAG.mjs → src-BhgSqnbz.mjs} +88 -2
  51. package/dist/{tool-schema-json-projection-qvTEs5Am.mjs → tool-schema-json-projection-_gcOC21Y.mjs} +21 -31
  52. package/dist/{transport-stream-shared-NjwWNaRY.d.mts → transport-stream-shared-B38NWYTa.d.mts} +4 -4
  53. package/dist/{transport-stream-shared-CT5ycdzn.mjs → transport-stream-shared-y1YR1k5K.mjs} +2 -2
  54. package/dist/{transport-utils-BHx9z8Cl.mjs → transport-utils-DdLjoPMb.mjs} +2 -2
  55. package/dist/transports.d.mts +12 -9
  56. package/dist/transports.mjs +91 -73
  57. package/dist/types-DmdQ-xcq.d.mts +1 -0
  58. package/dist/{types-h38Azne1.d.mts → types-DmeScJQe.d.mts} +25 -13
  59. package/dist/types.d.mts +6 -6
  60. package/dist/types.mjs +3 -3
  61. package/dist/{validation-B61OhAio.mjs → validation-CJZtym2g.mjs} +7 -5
  62. package/dist/{validation-C68lP2uy.d.mts → validation-DPDgbaD3.d.mts} +1 -1
  63. package/dist/validation.d.mts +1 -1
  64. package/dist/validation.mjs +1 -1
  65. package/package.json +2 -2
  66. package/dist/event-stream-C988TSLe.d.mts +0 -1
  67. package/dist/index-N3zr6__t.d.mts +0 -105
  68. package/dist/openai-prompt-cache-2uo_1OR1.d.mts +0 -7
  69. package/dist/openai-prompt-cache-mZTCdRPo.mjs +0 -12
  70. package/dist/types-DtGu2d3C.d.mts +0 -1
@@ -1,27 +1,28 @@
1
- import { d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, p as supportsClaudeAdaptiveThinking, u as resolveClaudeOpus5ModelIdentity } from "./src-Bu3FiFAG.mjs";
1
+ import { g as resolveClaudeSonnet5ModelIdentity, h as resolveClaudeOpus5ModelIdentity, v as supportsClaudeAdaptiveThinking, x as supportsClaudeNativeXhighEffort } from "./src-BhgSqnbz.mjs";
2
2
  import { c as normalizeLowercaseStringOrEmpty, o as isRecord, s as hasNonEmptyString } from "./utf16-slice-qz3nsy87.mjs";
3
- import { r as calculateCost } from "./sanitize-unicode-DCkltN94.mjs";
4
- import { S as usesClaudeStreamingRefusalContract, _ as prepareClaudeNoPrefillRequestContext, a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, f as ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, g as mapAnthropicStopReason, h as defaultsClaudeAdaptiveThinking, m as applyClaudeRequestContract, n as getAiTransportHost, p as ANTHROPIC_CLAUDE_CODE_VERSION, r as resolveAiTransportHeaderSentinels, s as extractToolResultBlockText, v as requiresClaudeAdaptiveThinking, x as usesClaudeFable5MessagesContract, y as resolveAnthropicThinkingEffort } from "./host-D51fmkH6.mjs";
5
- import { i as stableStringify } from "./provider-error-jZP5NMTZ.mjs";
6
- import { n as toErrorObject, t as createResponsesPromptEgressObserver } from "./openai-responses-prompt-observer-internal-_nhGTn2b.mjs";
3
+ import { r as calculateCost } from "./sanitize-unicode-Cfcaqa9V.mjs";
4
+ import { S as usesClaudeStreamingRefusalContract, _ as prepareClaudeNoPrefillRequestContext, a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, f as ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, g as mapAnthropicStopReason, h as defaultsClaudeAdaptiveThinking, m as applyClaudeRequestContract, n as getAiTransportHost, p as ANTHROPIC_CLAUDE_CODE_VERSION, r as resolveAiTransportHeaderSentinels, s as extractToolResultBlockText, v as requiresClaudeAdaptiveThinking, x as usesClaudeFable5MessagesContract, y as resolveAnthropicThinkingEffort } from "./host-DhlhmyR6.mjs";
5
+ import { i as stableStringify } from "./provider-error-BI8kIViN.mjs";
6
+ import { n as toErrorObject, t as createResponsesPromptEgressObserver } from "./openai-responses-prompt-observer-internal-COaImuDp.mjs";
7
7
  import { a as asNonNegativeFiniteNumber } from "./base64-CEFBpSkN.mjs";
8
8
  import { n as uniqueStrings } from "./string-normalization--fwJ4S2q.mjs";
9
- import { A as applyAnthropicCacheControlToMessages, C as applyAnthropicFallbackBoundary, D as createAnthropicInlineImageBudget, E as applyAnthropicRefusal, F as resolveAnthropicServerCompactionPlan, I as isAnthropicOAuthApiKey, L as omitFoundryBearerCredentialHeaders, M as applyAnthropicPayloadPolicyToParams, N as resolveAnthropicEphemeralCacheControl, O as normalizeAnthropicInlineContent, P as resolveAnthropicPayloadPolicy, R as usesFoundryBearerAuth, T as resolveAnthropicFallbackServingModelCost, _ as toClaudeCodeToolName, a as suppressAnthropicCompaction, b as ANTHROPIC_SERVER_SIDE_FALLBACKS, f as normalizeAnthropicToolCallId, g as resolveOriginalAnthropicToolName, h as reconcileAnthropicToolChoice, i as resolveNewestAnthropicCompaction, j as applyAnthropicEphemeralCacheControlMarkers, k as resolveAnthropicImageMediaType, m as projectAnthropicTools, n as createCompactionCapture, o as applyAnthropicMessageDeltaUsage, p as normalizeAnthropicToolChoice, r as isAnthropicReplayRejection, s as applyAnthropicMessageStartUsage, t as buildAnthropicReplayPlan, v as ANTHROPIC_OMITTED_REASONING_TEXT, w as readAnthropicFallbackBoundary, x as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, y as findActiveAnthropicToolTurnAssistantIndex } from "./anthropic-compaction-replay-CY4tkD4V.mjs";
9
+ import { r as resolveOpenAIResponsesCacheParams } from "./openai-prompt-cache-CGnVB74a.mjs";
10
+ import { A as createAnthropicInlineImageBudget, B as omitFoundryBearerCredentialHeaders, C as ANTHROPIC_SERVER_SIDE_FALLBACKS, D as readAnthropicFallbackBoundary, E as applyAnthropicFallbackBoundary, F as applyAnthropicPayloadPolicyToParams, I as resolveAnthropicEphemeralCacheControl, L as resolveAnthropicPayloadPolicy, M as resolveAnthropicImageMediaType, N as applyAnthropicCacheControlToMessages, O as resolveAnthropicFallbackServingModelCost, P as applyAnthropicEphemeralCacheControlMarkers, R as resolveAnthropicServerCompactionPlan, S as readAnthropicInputTransformations, V as usesFoundryBearerAuth, _ as toClaudeCodeToolName, a as suppressAnthropicCompaction, b as findActiveAnthropicToolTurnAssistantIndex, f as normalizeAnthropicToolCallId, g as resolveOriginalAnthropicToolName, h as reconcileAnthropicToolChoice, i as resolveNewestAnthropicCompaction, j as normalizeAnthropicInlineContent, k as applyAnthropicRefusal, m as projectAnthropicTools, n as createCompactionCapture, o as applyAnthropicMessageDeltaUsage, p as normalizeAnthropicToolChoice, r as isAnthropicReplayRejection, s as applyAnthropicMessageStartUsage, t as buildAnthropicReplayPlan, v as ANTHROPIC_OMITTED_REASONING_TEXT, w as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, x as logAnthropicThinkingDrops, y as applyAnthropicThinkingBindingControls, z as isAnthropicOAuthApiKey } from "./anthropic-compaction-replay-B6sEzXhr.mjs";
10
11
  import { t as resolveCacheRetention } from "./cache-retention-0x979a5V.mjs";
11
- import { a as codeModeToolSurfaceObserver, d as stripSystemPromptCacheBoundary, m as sortPromptCacheToolsByName, o as reasoningTagTextPolicy, t as adjustMaxTokensForThinking } from "./simple-options-DKx86yX9.mjs";
12
- import { a as resolveProviderEndpoint, c as transformTransportMessages, i as resolveOpenAIStrictToolSetting, n as buildGuardedModelFetch } from "./tool-schema-json-projection-qvTEs5Am.mjs";
13
- import { a as isGoogleGemini3FlashModel, c as parseRetryAfterSeconds, f as resolveModelHeaderSentinels$1, i as isCodeModeModelVisibleToolName, l as readResponseTextSnippet, m as supportsModelTools, n as createAbortError$1, o as isGoogleGemini3ProModel, p as sha256Hex, r as estimateStringChars, t as MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE, u as redactIdentifier } from "./transport-utils-BHx9z8Cl.mjs";
12
+ import { a as codeModeToolSurfaceObserver, d as stripSystemPromptCacheBoundary, m as sortPromptCacheToolsByName, o as reasoningTagTextPolicy, t as adjustMaxTokensForThinking } from "./simple-options-Bwi0x0bX.mjs";
13
+ import { a as resolveProviderEndpoint, c as transformTransportMessages, i as resolveOpenAIStrictToolSetting, n as buildGuardedModelFetch } from "./tool-schema-json-projection-_gcOC21Y.mjs";
14
+ import { a as isGoogleGemini3FlashModel, c as parseRetryAfterSeconds, f as resolveModelHeaderSentinels$1, i as isCodeModeModelVisibleToolName, l as readResponseTextSnippet, m as supportsModelTools, n as createAbortError$1, o as isGoogleGemini3ProModel, p as sha256Hex, r as estimateStringChars, t as MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE, u as redactIdentifier } from "./transport-utils-DdLjoPMb.mjs";
14
15
  import { n as getEnvApiKey } from "./env-api-keys-bktO00EJ.mjs";
15
- import { S as quoteUnsafeIntegerLiterals, _ as transportAbortError, a as createWritableTransportEventStream, b as parseJsonObjectPreservingUnsafeIntegers, c as finalizeTransportStream, d as notifyProviderHttpMetadata, f as notifyProviderHttpResponse, g as sanitizeTransportPayloadText, h as sanitizeNonEmptyTransportPayloadText, i as createEmptyTransportUsage, l as mergeTransportHeaders, m as parseTerminalToolCallArguments, n as coerceTransportToolCallArguments, o as failTransportStream, p as notifyProviderStreamOpened, r as copyProviderAcceptanceObserver, s as finalizeTerminalToolCallArguments, t as assignTransportErrorDetails, u as mergeTransportMetadata, v as withProviderAcceptanceObserver, x as parseJsonPreservingUnsafeIntegers, y as withProviderResponseHook } from "./transport-stream-shared-CT5ycdzn.mjs";
16
- import { C as createDeepSeekTextFilter, E as tagUnresolvedTextAsCommentary, S as shouldOmitOllamaCompatResponseFormat, T as tagPendingCommentaryText, _ as hasToolCallHistory, a as buildOpenAISdkClientOptions, b as resolveOpenAICompletionsCompat, c as filterCodeModePayloadTools, d as readCodeModePayloadToolName, f as resolveCodeModeResponsesVisibleToolNames, g as convertMessages, h as resolveOpenAIReasoningEffortMap, i as buildOpenAIClientHeaders, l as getCompat, m as usesNativeOpenAICodexResponsesBackend, n as shouldEmitOpenAICompletionsReasoning, o as buildOpenAISdkRequestOptions, p as resolveOpenAIStrictToolFlagWithDiagnostics, r as assertCodeModeResponsesToolSurface, s as enforceCodeModeResponsesToolSurface, t as processCompletionsStream, u as isOpenAICodexResponsesModel, v as finalizeOpenAICompletionsToolCalls, x as resolveOpenAICompletionsResponseFormat, y as detectOpenAICompletionsCompat } from "./openai-completions-stream-Bpns6uNc.mjs";
16
+ import { S as quoteUnsafeIntegerLiterals, _ as transportAbortError, a as createWritableTransportEventStream, b as parseJsonObjectPreservingUnsafeIntegers, c as finalizeTransportStream, d as notifyProviderHttpMetadata, f as notifyProviderHttpResponse, g as sanitizeTransportPayloadText, h as sanitizeNonEmptyTransportPayloadText, i as createEmptyTransportUsage, l as mergeTransportHeaders, m as parseTerminalToolCallArguments, n as coerceTransportToolCallArguments, o as failTransportStream, p as notifyProviderStreamOpened, r as copyProviderAcceptanceObserver, s as finalizeTerminalToolCallArguments, t as assignTransportErrorDetails, u as mergeTransportMetadata, v as withProviderAcceptanceObserver, x as parseJsonPreservingUnsafeIntegers, y as withProviderResponseHook } from "./transport-stream-shared-y1YR1k5K.mjs";
17
+ import { C as createDeepSeekTextFilter, E as tagUnresolvedTextAsCommentary, S as shouldOmitOllamaCompatResponseFormat, T as tagPendingCommentaryText, _ as hasToolCallHistory, a as buildOpenAISdkClientOptions, b as resolveOpenAICompletionsCompat, c as filterCodeModePayloadTools, d as readCodeModePayloadToolName, f as resolveCodeModeResponsesVisibleToolNames, g as convertMessages, h as resolveOpenAIReasoningEffortMap, i as buildOpenAIClientHeaders, l as getCompat, m as usesNativeOpenAICodexResponsesBackend, n as shouldEmitOpenAICompletionsReasoning, o as buildOpenAISdkRequestOptions, p as resolveOpenAIStrictToolFlagWithDiagnostics, r as assertCodeModeResponsesToolSurface, s as enforceCodeModeResponsesToolSurface, t as processCompletionsStream, u as isOpenAICodexResponsesModel, v as finalizeOpenAICompletionsToolCalls, x as resolveOpenAICompletionsResponseFormat, y as detectOpenAICompletionsCompat } from "./openai-completions-stream-0mm4YUag.mjs";
17
18
  import { t as createDeferredEventBuffer } from "./deferred-event-buffer-DAvyP7qA.mjs";
18
19
  import { r as parseStreamingJson, t as createToolArgumentPreviewSchedule } from "./json-parse-BuAJEbdW.mjs";
19
20
  import { t as notifyLlmRequestActivity } from "./llm-request-activity-BjtkplhG.mjs";
20
21
  import { t as googleFlashSupportsMinimalThinking } from "./google-thinking-level-C-V3tecN.mjs";
21
- import { B as buildResponsesInputMessage, C as summarizeResponsesTools, G as captureOpenAIResponsesCompaction, H as createOpenAIResponsesAssistantOutput, I as createResponsesStreamWithEncryptedContentRetry, J as resolveReplayableResponsesMessageId, K as resolveNewestOpenAIResponsesCompactionReplay, L as isInvalidEncryptedContentError, R as resolveAzureOpenAIApiVersion, S as summarizeResponsesPayload, U as CompactionReplayRefreshRequiredError, V as convertResponsesMessages, W as buildOpenAIResponsesReasoningReplayMetadata, X as resolveModelPayloadDebugMode, Y as emitModelTransportDebug, Z as resolveModelSseDebugMode, _ as safeDebugValue, b as summarizeOpenAITransportError, c as processResponsesStream, f as observeResponsesStream, g as normalizeResponsesFailedEvent, h as logResponsesFailedNoDetails, m as buildResponsesFailedNoDetailsObservation, n as applyResponsesServiceTierPricing, p as ResponsesStreamFailure, q as suppressOpenAIResponsesCompaction, v as stringifyRedactedEvent, x as summarizeResponsesFailedNoDetailsObservation, y as stringifyRedactedPayload, z as resolveNextResponsesEncryptedContentAttempt } from "./openai-responses-shared-zPmKnhF5.mjs";
22
- import { A as readOpenAICompletionsReasoningBatch, C as createOpenAIProviderAcceptanceHook, D as measureUtf8AppendBytes, E as log, M as resolvePromptCacheKey, N as throwIfModelStreamAborted, O as parseOpenAICompletionsUsage, S as createModelStreamCooperativeScheduler, T as isOpenAICompletionsThinkingEnabled, b as reconcileOpenAIResponsesToolChoice, j as resolveOpenAIClientBaseUrl, k as readOpenAICompletionsContentDeltas, r as normalizeOpenAIStrictToolParameters, v as projectOpenAITools, w as createOpenAIResponseHook, x as GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, y as reconcileOpenAICompletionsToolChoice } from "./openai-tool-schema-Dgl4H2MU.mjs";
22
+ import { B as buildResponsesInputMessage, C as summarizeResponsesTools, G as captureOpenAIResponsesCompaction, H as createOpenAIResponsesAssistantOutput, I as createResponsesStreamWithEncryptedContentRetry, J as resolveReplayableResponsesMessageId, K as resolveNewestOpenAIResponsesCompactionReplay, L as isInvalidEncryptedContentError, R as resolveAzureOpenAIApiVersion, S as summarizeResponsesPayload, U as CompactionReplayRefreshRequiredError, V as convertResponsesMessages, W as buildOpenAIResponsesReasoningReplayMetadata, X as resolveModelPayloadDebugMode, Y as emitModelTransportDebug, Z as resolveModelSseDebugMode, _ as safeDebugValue, b as summarizeOpenAITransportError, c as processResponsesStream, f as observeResponsesStream, g as normalizeResponsesFailedEvent, h as logResponsesFailedNoDetails, m as buildResponsesFailedNoDetailsObservation, n as applyResponsesServiceTierPricing, p as ResponsesStreamFailure, q as suppressOpenAIResponsesCompaction, v as stringifyRedactedEvent, x as summarizeResponsesFailedNoDetailsObservation, y as stringifyRedactedPayload, z as resolveNextResponsesEncryptedContentAttempt } from "./openai-responses-shared-CZTRmOFP.mjs";
23
+ import { A as readOpenAICompletionsReasoningBatch, C as createOpenAIProviderAcceptanceHook, D as measureUtf8AppendBytes, E as log, M as resolvePromptCacheKey, N as throwIfModelStreamAborted, O as parseOpenAICompletionsUsage, S as createModelStreamCooperativeScheduler, T as isOpenAICompletionsThinkingEnabled, b as reconcileOpenAIResponsesToolChoice, j as resolveOpenAIClientBaseUrl, k as readOpenAICompletionsContentDeltas, r as normalizeOpenAIStrictToolParameters, v as projectOpenAITools, w as createOpenAIResponseHook, x as GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, y as reconcileOpenAICompletionsToolChoice } from "./openai-tool-schema-DjS9-DHe.mjs";
23
24
  import { i as getFirstStreamEventTimeoutMs, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "./stream-first-event-timeout-DcNjoFQE.mjs";
24
- import { C as isOpenAIGpt54MiniModel, D as resolveOpenAIReasoningEffortForModel, E as normalizeOpenAIReasoningEffort, T as isOpenAIGpt56Model, _ as OpenAIResponsesWebSocketPostDispatchError, a as applyOpenAIResponsesPayloadPolicy, c as resolveOpenAIResponsesServerCompactionPlan, d as OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS, f as OPENAI_RESPONSES_APIS, i as sanitizeResponsesImagePayload, l as AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS, n as isOpenAIResponsesCompactionOutput, o as resolveOpenAIResponsesCompactEndpointPlan, s as resolveOpenAIResponsesPayloadPolicy, t as createBoundedOpenAIResponsesCompactionFetch, v as OpenAIResponsesWebSocketPreDispatchError, w as isOpenAIGpt55Model, x as parseOpenAIResponsesWebSocketServerError, y as OpenAIResponsesWebSocketSafeRetryError } from "./openai-responses-compaction-window-DwydGZI8.mjs";
25
+ import { A as supportsOpenAITemperature, C as isOpenAIGpt54MiniModel, D as resolveOpenAIReasoningEffortForModel, E as normalizeOpenAIReasoningEffort, T as isOpenAIGpt56Model, _ as OpenAIResponsesWebSocketPostDispatchError, a as applyOpenAIResponsesPayloadPolicy, c as resolveOpenAIResponsesServerCompactionPlan, d as OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS, f as OPENAI_RESPONSES_APIS, i as sanitizeResponsesImagePayload, l as AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS, n as isOpenAIResponsesCompactionOutput, o as resolveOpenAIResponsesCompactEndpointPlan, s as resolveOpenAIResponsesPayloadPolicy, t as createBoundedOpenAIResponsesCompactionFetch, v as OpenAIResponsesWebSocketPreDispatchError, w as isOpenAIGpt55Model, x as parseOpenAIResponsesWebSocketServerError, y as OpenAIResponsesWebSocketSafeRetryError } from "./openai-responses-compaction-window-vuCaZYLS.mjs";
25
26
  import { i as resolveAzureDeploymentNameFromMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "./azure-openai-responses-client-compat-C7K7QfUE.mjs";
26
27
  import { n as registerSessionResourceCleanup } from "./session-resources-CkR4WWy1.mjs";
27
28
  import { randomUUID } from "node:crypto";
@@ -33,12 +34,12 @@ import { ResponsesWS } from "openai/resources/responses/ws.js";
33
34
  * Converts OpenClaw contexts/tools into Anthropic payloads, streams SSE events
34
35
  * back into runtime output blocks, and applies provider request policy.
35
36
  */
36
- const ANTHROPIC_MESSAGES_ERROR_BODY_MAX_BYTES = 8 * 1024;
37
+ const ANTHROPIC_MESSAGES_ERROR_BODY_MAX_BYTES = 8192;
37
38
  const ANTHROPIC_MESSAGES_ERROR_BODY_MAX_CHARS = 400;
38
39
  const ANTHROPIC_MESSAGES_ERROR_BODY_READ_IDLE_TIMEOUT_MS = 1e4;
39
40
  const ANTHROPIC_MESSAGES_DEFAULT_MAX_TOKENS = 4096;
40
41
  const ANTHROPIC_MESSAGES_FALLBACK_CONTEXT_DIVISOR = 4;
41
- const ANTHROPIC_MESSAGES_SSE_PENDING_BUFFER_MAX_CHARS = 16 * 1024 * 1024;
42
+ const ANTHROPIC_MESSAGES_SSE_PENDING_BUFFER_MAX_CHARS = 16777216;
42
43
  function resolveAnthropicRequestModelId(model) {
43
44
  if (isDirectAnthropicModel(model) && /^anthropic\//i.test(model.id)) return model.id.replace(/^anthropic\//i, "");
44
45
  return model.id;
@@ -132,14 +133,13 @@ async function convertAnthropicMessages(messages, model, isOAuthToken, options)
132
133
  const msg = transformedMessages[i];
133
134
  if (!msg) continue;
134
135
  if (msg.role === "user") {
135
- const isRuntimeContextCarrier = msg.runtimeContextCarrier === true;
136
136
  if (typeof msg.content === "string") {
137
137
  if (msg.content.trim().length > 0) {
138
+ if (msg.runtimeContextCarrier && !msg.runtimeContextCarrierRetained) options.cacheBreakpointOptOutMessageIndexes?.add(params.length);
138
139
  const userParam = {
139
140
  role: "user",
140
141
  content: sanitizeTransportPayloadText(msg.content)
141
142
  };
142
- if (isRuntimeContextCarrier) options.cacheBreakpointOptOutMessageIndexes.add(params.length);
143
143
  params.push(userParam);
144
144
  }
145
145
  continue;
@@ -161,11 +161,11 @@ async function convertAnthropicMessages(messages, model, isOAuthToken, options)
161
161
  let filteredBlocks = model.input.includes("image") ? blocks : blocks.filter((block) => block.type !== "image");
162
162
  filteredBlocks = filteredBlocks.filter((block) => block.type !== "text" || block.text.trim().length > 0);
163
163
  if (filteredBlocks.length === 0) continue;
164
+ if (msg.runtimeContextCarrier && !msg.runtimeContextCarrierRetained) options.cacheBreakpointOptOutMessageIndexes?.add(params.length);
164
165
  const userParam = {
165
166
  role: "user",
166
167
  content: filteredBlocks
167
168
  };
168
- if (isRuntimeContextCarrier) options.cacheBreakpointOptOutMessageIndexes.add(params.length);
169
169
  params.push(userParam);
170
170
  continue;
171
171
  }
@@ -401,12 +401,13 @@ async function* parseAnthropicSseBody(body, signal) {
401
401
  function createAnthropicMessagesClient(params) {
402
402
  const url = resolveAnthropicMessagesUrl(params.baseURL);
403
403
  return { messages: { async stream(body, options) {
404
- const headers = mergeTransportHeaders({
404
+ const headers = new Headers(mergeTransportHeaders({
405
405
  "content-type": "application/json",
406
406
  "anthropic-version": "2023-06-01",
407
407
  ...params.apiKey ? { "x-api-key": params.apiKey } : {},
408
408
  ...params.authToken ? { authorization: `Bearer ${params.authToken}` } : {}
409
- }, params.defaultHeaders);
409
+ }, params.defaultHeaders));
410
+ for (const [name, value] of Object.entries(options?.headers ?? {})) headers.set(name, value);
410
411
  const response = await params.fetch(url, {
411
412
  method: "POST",
412
413
  headers,
@@ -498,18 +499,20 @@ function createAnthropicTransportClient(params) {
498
499
  }
499
500
  if (useAnthropicServerSideFallback(model)) betaFeatures.push(ANTHROPIC_SERVER_SIDE_FALLBACK_BETA);
500
501
  const betaHeader = buildAnthropicBetaHeader(model, betaFeatures, { oauth: false });
502
+ const defaultHeaders = mergeTransportHeaders({
503
+ accept: "application/json",
504
+ "anthropic-dangerous-direct-browser-access": "true",
505
+ ...betaHeader ? { "anthropic-beta": betaHeader } : {}
506
+ }, model.headers, options?.headers);
501
507
  return {
502
508
  client: createAnthropicMessagesClient({
503
509
  apiKey,
504
510
  baseURL: model.baseUrl,
505
- defaultHeaders: mergeTransportHeaders({
506
- accept: "application/json",
507
- "anthropic-dangerous-direct-browser-access": "true",
508
- ...betaHeader ? { "anthropic-beta": betaHeader } : {}
509
- }, model.headers, options?.headers),
511
+ defaultHeaders,
510
512
  fetch
511
513
  }),
512
- isOAuthToken: false
514
+ isOAuthToken: false,
515
+ directApiKeyBetaHeader: isDirectAnthropicModel(model) ? new Headers(defaultHeaders).get("anthropic-beta") ?? "" : void 0
513
516
  };
514
517
  }
515
518
  async function buildAnthropicParams(model, context, isOAuthToken, options) {
@@ -528,17 +531,17 @@ async function buildAnthropicParams(model, context, isOAuthToken, options) {
528
531
  cacheRetention: options?.cacheRetention,
529
532
  enableCacheControl: true
530
533
  }, model);
531
- const cacheBreakpointOptOutMessageIndexes = /* @__PURE__ */ new Set();
532
534
  const replayPlan = buildAnthropicReplayPlan(context.messages, model, {
533
535
  enabled: !isOAuthToken && options?.anthropicServerCompaction === true,
534
536
  authProfileId: options?.authProfileId,
535
537
  sessionId: options?.sessionId
536
538
  });
539
+ const cacheBreakpointOptOutMessageIndexes = /* @__PURE__ */ new Set();
537
540
  const messages = await convertAnthropicMessages(replayPlan.messages, model, isOAuthToken, {
538
541
  allowReasoningContentReplay: supportsReasoningContentReplay(model),
539
- cacheBreakpointOptOutMessageIndexes,
540
542
  compaction: replayPlan.compaction,
541
- replayThinkingEnabled
543
+ replayThinkingEnabled,
544
+ cacheBreakpointOptOutMessageIndexes
542
545
  });
543
546
  const params = {
544
547
  model: resolveAnthropicRequestModelId(model),
@@ -574,18 +577,19 @@ async function buildAnthropicParams(model, context, isOAuthToken, options) {
574
577
  if (convertedTools.tools.length > 0) params.tools = convertedTools.tools;
575
578
  }
576
579
  if (mandatoryAdaptiveThinking || model.reasoning || supportsClaudeAdaptiveThinking(model)) {
577
- if (mandatoryAdaptiveThinking || options?.thinkingEnabled) if (supportsClaudeAdaptiveThinking(model)) {
578
- params.thinking = {
579
- type: "adaptive",
580
- display: options?.thinkingDisplay ?? "summarized"
580
+ if (mandatoryAdaptiveThinking || options?.thinkingEnabled) {
581
+ if (supportsClaudeAdaptiveThinking(model)) {
582
+ params.thinking = {
583
+ type: "adaptive",
584
+ display: options?.thinkingDisplay ?? "summarized"
585
+ };
586
+ const effort = options?.effort ?? (mandatoryAdaptiveThinking ? "high" : void 0);
587
+ if (effort) params.output_config = { effort };
588
+ } else params.thinking = {
589
+ type: "enabled",
590
+ budget_tokens: options?.thinkingBudgetTokens ?? 1024
581
591
  };
582
- const effort = options?.effort ?? (mandatoryAdaptiveThinking ? "high" : void 0);
583
- if (effort) params.output_config = { effort };
584
- } else params.thinking = {
585
- type: "enabled",
586
- budget_tokens: options?.thinkingBudgetTokens ?? 1024
587
- };
588
- else if (options?.thinkingEnabled === false) params.thinking = { type: "disabled" };
592
+ } else if (options?.thinkingEnabled === false) params.thinking = { type: "disabled" };
589
593
  }
590
594
  if (options?.metadata && typeof options.metadata.user_id === "string") params.metadata = { user_id: options.metadata.user_id };
591
595
  if (options?.toolChoice) {
@@ -674,12 +678,13 @@ function createAnthropicMessagesTransportStreamFn() {
674
678
  let costModel = model;
675
679
  let messageStartPromptUsage;
676
680
  let usedCompactionReplay = false;
681
+ let inputTransformations;
677
682
  try {
678
683
  const apiKey = options?.apiKey ?? getEnvApiKey(model.provider) ?? "";
679
684
  if (!apiKey) throw new Error(`No API key for provider: ${model.provider}`);
680
685
  const transportOptions = resolveAnthropicTransportOptions(model, options, apiKey);
681
686
  const requestContext = prepareClaudeNoPrefillRequestContext(model, context);
682
- const { client, isOAuthToken } = createAnthropicTransportClient({
687
+ const { client, isOAuthToken, directApiKeyBetaHeader } = createAnthropicTransportClient({
683
688
  model,
684
689
  context: requestContext,
685
690
  apiKey,
@@ -692,10 +697,14 @@ function createAnthropicMessagesTransportStreamFn() {
692
697
  const nextParams = await transportOptions.onPayload?.(params, model);
693
698
  if (nextParams !== void 0) params = nextParams;
694
699
  applyClaudeRequestContract(params, model);
700
+ const bindingHeaders = applyAnthropicThinkingBindingControls(params, directApiKeyBetaHeader);
695
701
  const { response, stream: anthropicStream } = await client.messages.stream({
696
702
  ...params,
697
703
  stream: true
698
- }, transportOptions.signal ? { signal: transportOptions.signal } : void 0);
704
+ }, {
705
+ signal: transportOptions.signal,
706
+ headers: bindingHeaders
707
+ });
699
708
  await notifyProviderHttpResponse({
700
709
  options: transportOptions,
701
710
  response,
@@ -810,6 +819,7 @@ function createAnthropicMessagesTransportStreamFn() {
810
819
  });
811
820
  };
812
821
  for await (const event of anthropicStream) {
822
+ inputTransformations = readAnthropicInputTransformations(event) ?? inputTransformations;
813
823
  if (event.type === "error") {
814
824
  const error = event.error;
815
825
  throw new Error(error?.message || "Anthropic Messages stream failed");
@@ -982,16 +992,18 @@ function createAnthropicMessagesTransportStreamFn() {
982
992
  let appendedContent = false;
983
993
  if (!hasNativeAnthropicDelta && typeof delta?.content === "string" && delta.content.length > 0) {
984
994
  const text = sanitizeTransportPayloadText(delta.content);
985
- if (text.length > 0) if (block?.type === "text" && index !== void 0) {
986
- block.text += text;
987
- eventSink.push({
988
- type: "text_delta",
989
- contentIndex: index,
990
- delta: text,
991
- partial: output
992
- });
993
- appendedContent = true;
994
- } else appendedContent = appendReasoningContentTextDelta(event.index, text);
995
+ if (text.length > 0) {
996
+ if (block?.type === "text" && index !== void 0) {
997
+ block.text += text;
998
+ eventSink.push({
999
+ type: "text_delta",
1000
+ contentIndex: index,
1001
+ delta: text,
1002
+ partial: output
1003
+ });
1004
+ appendedContent = true;
1005
+ } else appendedContent = appendReasoningContentTextDelta(event.index, text);
1006
+ }
995
1007
  }
996
1008
  if ((appendedThinking || appendedContent) && !hasNativeAnthropicDelta) continue;
997
1009
  }
@@ -1099,8 +1111,10 @@ function createAnthropicMessagesTransportStreamFn() {
1099
1111
  if (event.type === "message_delta") {
1100
1112
  const delta = event.delta;
1101
1113
  const usage = event.usage;
1102
- if (delta?.stop_reason) if (delta.stop_reason === "refusal") applyAnthropicRefusal(output, delta.stop_details, model.provider);
1103
- else output.stopReason = mapAnthropicStopReason(delta.stop_reason);
1114
+ if (delta?.stop_reason) {
1115
+ if (delta.stop_reason === "refusal") applyAnthropicRefusal(output, delta.stop_details, model.provider);
1116
+ else output.stopReason = mapAnthropicStopReason(delta.stop_reason);
1117
+ }
1104
1118
  applyAnthropicMessageDeltaUsage(output.usage, usage, messageStartPromptUsage);
1105
1119
  calculateCost(costModel, output.usage);
1106
1120
  if (output.stopReason === "toolUse" || output.content.some((block) => block.type === "toolCall")) tagPendingCommentaryText(output.content);
@@ -1143,6 +1157,8 @@ function createAnthropicMessagesTransportStreamFn() {
1143
1157
  for (const block of output.content) delete block.index;
1144
1158
  }
1145
1159
  });
1160
+ } finally {
1161
+ logAnthropicThinkingDrops(inputTransformations);
1146
1162
  }
1147
1163
  })();
1148
1164
  return eventStream;
@@ -1590,10 +1606,11 @@ function convertTools(tools, compat, model) {
1590
1606
  function buildOpenAICompletionsParams(model, context, options) {
1591
1607
  const compat = getCompat(model);
1592
1608
  const compatDetection = detectOpenAICompletionsCompat(model);
1593
- let messages = convertMessages(model, context.systemPrompt ? {
1609
+ const completionsContext = context.systemPrompt ? {
1594
1610
  ...context,
1595
1611
  systemPrompt: stripSystemPromptCacheBoundary(context.systemPrompt)
1596
- } : context, compat);
1612
+ } : context;
1613
+ let messages = convertMessages(model, completionsContext, compat);
1597
1614
  applyCompletionsReplay(messages, context, model, compat);
1598
1615
  if (compat.strictMessageKeys) messages = stripCompletionMessagesToRoleContent(messages);
1599
1616
  const cacheRetention = resolveCacheRetention(options?.cacheRetention);
@@ -1654,8 +1671,10 @@ function buildOpenAICompletionsParams(model, context, options) {
1654
1671
  emitModelTransportDebug(log, `[completions] clamp_max_tokens provider=${model.provider} api=${model.api} model=${model.id} requested=${effectiveMaxTokens} output=${clampedMaxTokens} effectiveContext=${effectiveContextTokens} estimatedInput=${estimatedInputTokens}`);
1655
1672
  }
1656
1673
  }
1657
- if (clampedMaxTokens) if (compat.maxTokensField === "max_tokens") params.max_tokens = clampedMaxTokens;
1658
- else params.max_completion_tokens = clampedMaxTokens;
1674
+ if (clampedMaxTokens) {
1675
+ if (compat.maxTokensField === "max_tokens") params.max_tokens = clampedMaxTokens;
1676
+ else params.max_completion_tokens = clampedMaxTokens;
1677
+ }
1659
1678
  }
1660
1679
  const completionsReasoningEffort = resolveOpenAICompletionsReasoningEffort(options);
1661
1680
  const resolvedCompletionsReasoningEffort = completionsReasoningEffort ? resolveOpenAIReasoningEffortForModel({
@@ -1830,7 +1849,7 @@ function createOpenAICompletionsTransportStreamFn() {
1830
1849
  timeoutMs: options?.timeoutMs,
1831
1850
  maxRetries: options?.maxRetries
1832
1851
  })).withResponse();
1833
- await processCompletionsStream(withProviderResponseHook({
1852
+ const hookedResponseStream = withProviderResponseHook({
1834
1853
  stream: responseStream,
1835
1854
  signal: firstEventAbort.signal,
1836
1855
  abort: firstEventAbort.abort,
@@ -1839,7 +1858,8 @@ function createOpenAICompletionsTransportStreamFn() {
1839
1858
  type: "start",
1840
1859
  partial: output
1841
1860
  })
1842
- }), output, model, stream, {
1861
+ });
1862
+ await processCompletionsStream(hookedResponseStream, output, model, stream, {
1843
1863
  signal: options?.signal,
1844
1864
  emitReasoning,
1845
1865
  strictReasoningTags: reasoningTagTextPolicy.isStrict(options),
@@ -1907,7 +1927,7 @@ async function requestPreparedOpenAIResponsesCompaction(streamFn, model, context
1907
1927
  }
1908
1928
  //#endregion
1909
1929
  //#region packages/ai/src/transports/openai-responses-continuation.ts
1910
- const HTTP_CONTINUATION_IDLE_TTL_MS = 300 * 1e3;
1930
+ const HTTP_CONTINUATION_IDLE_TTL_MS = 3e5;
1911
1931
  const TURN_HEADERS = /* @__PURE__ */ new Set([
1912
1932
  "traceparent",
1913
1933
  "x-openclaw-turn-id",
@@ -2054,10 +2074,6 @@ function convertResponsesTools(tools, model, options) {
2054
2074
  })
2055
2075
  };
2056
2076
  }
2057
- function getPromptCacheRetention(baseUrl, cacheRetention) {
2058
- if (cacheRetention !== "long") return;
2059
- return baseUrl?.includes("api.openai.com") ? "24h" : void 0;
2060
- }
2061
2077
  function resolveOpenAIReasoningEffort(options) {
2062
2078
  return normalizeOpenAIReasoningEffort(options?.reasoningEffort ?? options?.reasoning ?? "high");
2063
2079
  }
@@ -2121,7 +2137,8 @@ function resolveOpenAIResponsesInstructions(model, context, usesInstructionsFiel
2121
2137
  function buildOpenAIResponsesCompactSystemMessage(model, instructions) {
2122
2138
  const compat = getCompat(model);
2123
2139
  const supportsDeveloperRole = typeof compat.supportsDeveloperRole === "boolean" ? compat.supportsDeveloperRole : void 0;
2124
- return buildResponsesInputMessage(model.reasoning && supportsDeveloperRole !== false ? "developer" : "system", [{
2140
+ const role = model.reasoning && supportsDeveloperRole !== false ? "developer" : "system";
2141
+ return buildResponsesInputMessage(role, [{
2125
2142
  type: "input_text",
2126
2143
  text: instructions
2127
2144
  }]);
@@ -2167,14 +2184,14 @@ function buildOpenAIResponsesParams(model, context, options, metadata, replayMod
2167
2184
  input: messages,
2168
2185
  stream: true,
2169
2186
  prompt_cache_key: promptCacheKey,
2170
- prompt_cache_retention: getPromptCacheRetention(model.baseUrl, cacheRetention),
2187
+ ...resolveOpenAIResponsesCacheParams(model, cacheRetention, model.baseUrl?.includes("api.openai.com")),
2171
2188
  ...instructions ? { instructions } : {},
2172
2189
  ...metadata ? { metadata } : {}
2173
2190
  };
2174
2191
  const effectiveMaxTokens = options?.maxTokens || model.maxTokens;
2175
2192
  if (effectiveMaxTokens) params.max_output_tokens = effectiveMaxTokens;
2176
- if (options?.temperature !== void 0) params.temperature = options.temperature;
2177
- if (options?.topP !== void 0) params.top_p = options.topP;
2193
+ if (options?.temperature !== void 0 && supportsOpenAITemperature(model)) params.temperature = options.temperature;
2194
+ if (options?.topP !== void 0 && model.id !== "gpt-6-astra") params.top_p = options.topP;
2178
2195
  if (options?.responseFormat !== void 0) params.text = {
2179
2196
  ...params.text,
2180
2197
  format: resolveOpenAIResponsesTextFormat(options.responseFormat)
@@ -2190,9 +2207,10 @@ function buildOpenAIResponsesParams(model, context, options, metadata, replayMod
2190
2207
  }
2191
2208
  if (model.reasoning) {
2192
2209
  if (options?.reasoningEffort || options?.reasoning || options?.reasoningSummary) {
2210
+ const requestedReasoningEffort = resolveOpenAIReasoningEffort(options);
2193
2211
  const resolvedReasoningEffort = resolveOpenAIReasoningEffortForModel({
2194
2212
  model,
2195
- effort: resolveOpenAIReasoningEffort(options)
2213
+ effort: requestedReasoningEffort
2196
2214
  });
2197
2215
  const reasoningEffort = resolvedReasoningEffort ? raiseMinimalReasoningForResponsesWebSearch({
2198
2216
  model,
@@ -2219,8 +2237,8 @@ function buildOpenAIResponsesParams(model, context, options, metadata, replayMod
2219
2237
  }
2220
2238
  //#endregion
2221
2239
  //#region packages/ai/src/transports/openai-responses-websocket.ts
2222
- const SESSION_WEBSOCKET_CACHE_TTL_MS = 300 * 1e3;
2223
- const SESSION_WEBSOCKET_MAX_AGE_MS = 3300 * 1e3;
2240
+ const SESSION_WEBSOCKET_CACHE_TTL_MS = 3e5;
2241
+ const SESSION_WEBSOCKET_MAX_AGE_MS = 33e5;
2224
2242
  const WEBSOCKET_OPEN_STATE = 1;
2225
2243
  const websocketSessionCache = /* @__PURE__ */ new Map();
2226
2244
  const degradedWebSocketConnections = /* @__PURE__ */ new Map();
@@ -0,0 +1 @@
1
+ import "./index-DcGDVDnC.mjs";
@@ -255,6 +255,24 @@ interface Usage {
255
255
  totalOrigin?: "provider-billed";
256
256
  };
257
257
  }
258
+ /** Per-million-token rates for separately billed token buckets. */
259
+ type ModelCostRates = Pick<Usage["cost"], "input" | "output" | "cacheRead" | "cacheWrite">;
260
+ /** One whole-request tier on the cache-inclusive prompt-token axis. */
261
+ type PricingTier = ModelCostRates & {
262
+ /** Half-open prompt-token interval `[start, end)`. */
263
+ range: [number, number];
264
+ };
265
+ type RawPricingTier = ModelCostRates & {
266
+ /** `[start]` is an open-ended upper tier. */
267
+ range: [number, number] | [number];
268
+ };
269
+ /** Normalized pricing used by token accounting and usage summaries. */
270
+ type ModelCostConfig = ModelCostRates & {
271
+ tieredPricing?: PricingTier[];
272
+ };
273
+ type RawModelCostConfig = ModelCostRates & {
274
+ tieredPricing?: RawPricingTier[];
275
+ };
258
276
  /** Normalized assistant stop reasons across text providers. */
259
277
  type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
260
278
  /** Stable error codes for provider outcomes that cannot be replayed safely. */
@@ -266,14 +284,13 @@ interface UserMessage {
266
284
  content: string | (TextContent | ImageContent)[];
267
285
  timestamp: number;
268
286
  /**
269
- * Marks a user message that carries transient current-turn runtime context
270
- * (e.g. an OpenClaw runtime-context carrier appended after the active user
271
- * turn). Such messages are volatile — present only on the turn they belong to
272
- * and stripped on replay — so providers must NOT anchor a prompt-cache
273
- * breakpoint on them, or the breakpoint would land on bytes that change every
274
- * turn. Anchoring stays on the last stable (non-carrier) user message.
287
+ * Marks a user message carrying runtime context. Provider replay policy decides
288
+ * whether the carrier is transient or retained append-only; only retained
289
+ * carriers are stable prompt-cache anchors.
275
290
  */
276
291
  runtimeContextCarrier?: boolean;
292
+ /** True when the owning replay policy retains this carrier across turns. */
293
+ runtimeContextCarrierRetained?: boolean;
277
294
  }
278
295
  /** Assistant turn, including provider identity and final stop state. */
279
296
  type AssistantDeliveryTtsFacts = {
@@ -620,12 +637,7 @@ interface Model<TApi extends Api = Api> {
620
637
  */
621
638
  thinkingLevelMap?: ThinkingLevelMap;
622
639
  input: ("text" | "image")[];
623
- cost: {
624
- input: number;
625
- output: number;
626
- cacheRead: number;
627
- cacheWrite: number;
628
- };
640
+ cost: RawModelCostConfig;
629
641
  contextWindow?: number;
630
642
  /**
631
643
  * Optional effective runtime cap used for compaction/session budgeting.
@@ -661,4 +673,4 @@ type StreamFn = (model: Model, context: Context, options?: SimpleStreamOptions)
661
673
  type CompleteSimpleFn = (model: Model, context: Pick<Context, "systemPrompt" | "messages">, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
662
674
  type ValidateToolArgumentsFn = (tool: Tool, toolCall: ToolCall) => unknown;
663
675
  //#endregion
664
- export { Transport as $, OpenAIResponsesCompat as A, StopReason as B, KnownImagesApi as C, Model as D, Message as E, ProviderImagesOptions as F, TextSignatureV1 as G, StreamFunction as H, ProviderReplayState as I, ThinkingLevel as J, ThinkingBudgets as K, ProviderResponse as L, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE as M, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE as N, ModelThinkingLevel as O, Provider as P, ToolResultMessage as Q, ProviderStreamOptions as R, KnownApi as S, MaybePromise as T, StreamOptions as U, StreamFn as V, TextContent as W, Tool as X, ThinkingLevelMap as Y, ToolCall as Z, ImagesModel as _, AssistantMessage as a, ImagesProvider as b, AssistantMessageEventStreamLike as c, Context as d, Usage as et, ImageContent as f, ImagesInputContent as g, ImagesFunction as h, AssistantImages as i, OpenRouterRouting as j, OpenAICompletionsCompat as k, CacheRetention as l, ImagesContext as m, Api as n, ValidateToolArgumentsFn as nt, AssistantMessageEvent as o, ImagesApi as p, ThinkingContent as q, AssistantDeliveryTtsFacts as r, VercelGatewayRouting as rt, AssistantMessageEventStreamContract as s, AnthropicMessagesCompat as t, UserMessage as tt, CompleteSimpleFn as u, ImagesOptions as v, KnownImagesProvider as w, ImagesStopReason as x, ImagesOutputContent as y, SimpleStreamOptions as z };
676
+ export { ThinkingLevel as $, ModelThinkingLevel as A, ProviderResponse as B, KnownImagesApi as C, Model as D, Message as E, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE as F, StopReason as G, RawModelCostConfig as H, PricingTier as I, StreamOptions as J, StreamFn as K, Provider as L, OpenAIResponsesCompat as M, OpenRouterRouting as N, ModelCostConfig as O, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE as P, ThinkingContent as Q, ProviderImagesOptions as R, KnownApi as S, MaybePromise as T, RawPricingTier as U, ProviderStreamOptions as V, SimpleStreamOptions as W, TextSignatureV1 as X, TextContent as Y, ThinkingBudgets as Z, ImagesModel as _, AssistantMessage as a, Usage as at, ImagesProvider as b, AssistantMessageEventStreamLike as c, VercelGatewayRouting as ct, Context as d, ThinkingLevelMap as et, ImageContent as f, ImagesInputContent as g, ImagesFunction as h, AssistantImages as i, Transport as it, OpenAICompletionsCompat as j, ModelCostRates as k, CacheRetention as l, ImagesContext as m, Api as n, ToolCall as nt, AssistantMessageEvent as o, UserMessage as ot, ImagesApi as p, StreamFunction as q, AssistantDeliveryTtsFacts as r, ToolResultMessage as rt, AssistantMessageEventStreamContract as s, ValidateToolArgumentsFn as st, AnthropicMessagesCompat as t, Tool as tt, CompleteSimpleFn as u, ImagesOptions as v, KnownImagesProvider as w, ImagesStopReason as x, ImagesOutputContent as y, ProviderReplayState as z };
package/dist/types.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { _ as supportsClaudeNativeXhighEffort, a as requiresClaudeDefaultSampling, c as resolveClaudeModelIdentity, d as resolveClaudeOpus5ModelIdentity, f as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeMaxEffort, h as supportsClaudeFastMode, i as CLAUDE_SONNET_5_THINKING_PROFILE, l as resolveClaudeMythos5ModelIdentity, m as supportsClaudeAdaptiveThinking, n as CLAUDE_FABLE_5_THINKING_PROFILE, o as requiresClaudeMandatoryAdaptiveThinking, p as supportsClaude1MContext, r as CLAUDE_OPUS_5_THINKING_PROFILE, s as resolveClaudeFable5ModelIdentity, u as resolveClaudeNativeThinkingLevelMap } from "./index-N3zr6__t.mjs";
1
+ import { S as supportsClaudeNativeXhighEffort, _ as resolveClaudeSonnet5ModelIdentity, a as CLAUDE_FABLE_5_THINKING_PROFILE, b as supportsClaudeFastMode, c as bindsClaudeThinkingPrefix, d as resolveClaudeFable5ModelIdentity, f as resolveClaudeModelIdentity, g as resolveClaudeOpus5ModelIdentity, h as resolveClaudeOpus55ModelIdentity, i as normalizeResolvedPricing, l as requiresClaudeDefaultSampling, m as resolveClaudeNativeThinkingLevelMap, n as calculateUsageCost, o as CLAUDE_OPUS_5_THINKING_PROFILE, p as resolveClaudeMythos5ModelIdentity, r as normalizeModelCostConfig, s as CLAUDE_SONNET_5_THINKING_PROFILE, u as requiresClaudeMandatoryAdaptiveThinking, v as supportsClaude1MContext, x as supportsClaudeNativeMaxEffort, y as supportsClaudeAdaptiveThinking } from "./index-DcGDVDnC.mjs";
2
2
  import { a as extractDiagnosticError, i as createAssistantMessageDiagnostic, n as DiagnosticErrorInfo, o as formatThrownValue, r as appendAssistantMessageDiagnostic, t as AssistantMessageDiagnostic } from "./diagnostics-BaTA9eVl.mjs";
3
- import { $ as Transport, A as OpenAIResponsesCompat, B as StopReason, C as KnownImagesApi, D as Model, E as Message, F as ProviderImagesOptions, G as TextSignatureV1, H as StreamFunction, I as ProviderReplayState, J as ThinkingLevel, K as ThinkingBudgets, L as ProviderResponse, M as PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, N as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, O as ModelThinkingLevel, P as Provider, Q as ToolResultMessage, R as ProviderStreamOptions, S as KnownApi, T as MaybePromise, U as StreamOptions, V as StreamFn, W as TextContent, X as Tool, Y as ThinkingLevelMap, Z as ToolCall, _ as ImagesModel, a as AssistantMessage, b as ImagesProvider, c as AssistantMessageEventStreamLike, d as Context, et as Usage, f as ImageContent, g as ImagesInputContent, h as ImagesFunction, i as AssistantImages, j as OpenRouterRouting, k as OpenAICompletionsCompat, l as CacheRetention, m as ImagesContext, n as Api, nt as ValidateToolArgumentsFn, o as AssistantMessageEvent, p as ImagesApi, q as ThinkingContent, r as AssistantDeliveryTtsFacts, rt as VercelGatewayRouting, s as AssistantMessageEventStreamContract, t as AnthropicMessagesCompat, tt as UserMessage, u as CompleteSimpleFn, v as ImagesOptions, w as KnownImagesProvider, x as ImagesStopReason, y as ImagesOutputContent, z as SimpleStreamOptions } from "./types-h38Azne1.mjs";
4
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-UhnxHuqt.mjs";
5
- import { n as validateToolCall, t as validateToolArguments } from "./validation-C68lP2uy.mjs";
6
- import "./types-DtGu2d3C.mjs";
7
- export { AnthropicMessagesCompat, Api, AssistantDeliveryTtsFacts, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, CacheRetention, CompleteSimpleFn, Context, DiagnosticErrorInfo, EventStream, ImageContent, ImagesApi, ImagesContext, ImagesFunction, ImagesInputContent, ImagesModel, ImagesOptions, ImagesOutputContent, ImagesProvider, ImagesStopReason, KnownApi, KnownImagesApi, KnownImagesProvider, MaybePromise, Message, Model, ModelThinkingLevel, OpenAICompletionsCompat, OpenAIResponsesCompat, OpenRouterRouting, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, Provider, ProviderImagesOptions, ProviderReplayState, ProviderResponse, ProviderStreamOptions, SimpleStreamOptions, StopReason, StreamFn, StreamFunction, StreamOptions, TextContent, TextSignatureV1, ThinkingBudgets, ThinkingContent, ThinkingLevel, ThinkingLevelMap, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage, ValidateToolArgumentsFn, VercelGatewayRouting, appendAssistantMessageDiagnostic, createAssistantMessageDiagnostic, createAssistantMessageEventStream, extractDiagnosticError, formatThrownValue, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
3
+ import { $ as ThinkingLevel, A as ModelThinkingLevel, B as ProviderResponse, C as KnownImagesApi, D as Model, E as Message, F as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, G as StopReason, H as RawModelCostConfig, I as PricingTier, J as StreamOptions, K as StreamFn, L as Provider, M as OpenAIResponsesCompat, N as OpenRouterRouting, O as ModelCostConfig, P as PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, Q as ThinkingContent, R as ProviderImagesOptions, S as KnownApi, T as MaybePromise, U as RawPricingTier, V as ProviderStreamOptions, W as SimpleStreamOptions, X as TextSignatureV1, Y as TextContent, Z as ThinkingBudgets, _ as ImagesModel, a as AssistantMessage, at as Usage, b as ImagesProvider, c as AssistantMessageEventStreamLike, ct as VercelGatewayRouting, d as Context, et as ThinkingLevelMap, f as ImageContent, g as ImagesInputContent, h as ImagesFunction, i as AssistantImages, it as Transport, j as OpenAICompletionsCompat, k as ModelCostRates, l as CacheRetention, m as ImagesContext, n as Api, nt as ToolCall, o as AssistantMessageEvent, ot as UserMessage, p as ImagesApi, q as StreamFunction, r as AssistantDeliveryTtsFacts, rt as ToolResultMessage, s as AssistantMessageEventStreamContract, st as ValidateToolArgumentsFn, t as AnthropicMessagesCompat, tt as Tool, u as CompleteSimpleFn, v as ImagesOptions, w as KnownImagesProvider, x as ImagesStopReason, y as ImagesOutputContent, z as ProviderReplayState } from "./types-DmeScJQe.mjs";
4
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-DcQzYRWO.mjs";
5
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-DPDgbaD3.mjs";
6
+ import "./types-DmdQ-xcq.mjs";
7
+ export { AnthropicMessagesCompat, Api, AssistantDeliveryTtsFacts, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, CacheRetention, CompleteSimpleFn, Context, DiagnosticErrorInfo, EventStream, ImageContent, ImagesApi, ImagesContext, ImagesFunction, ImagesInputContent, ImagesModel, ImagesOptions, ImagesOutputContent, ImagesProvider, ImagesStopReason, KnownApi, KnownImagesApi, KnownImagesProvider, MaybePromise, Message, Model, ModelCostConfig, ModelCostRates, ModelThinkingLevel, OpenAICompletionsCompat, OpenAIResponsesCompat, OpenRouterRouting, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, PricingTier, Provider, ProviderImagesOptions, ProviderReplayState, ProviderResponse, ProviderStreamOptions, RawModelCostConfig, RawPricingTier, SimpleStreamOptions, StopReason, StreamFn, StreamFunction, StreamOptions, TextContent, TextSignatureV1, ThinkingBudgets, ThinkingContent, ThinkingLevel, ThinkingLevelMap, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage, ValidateToolArgumentsFn, VercelGatewayRouting, appendAssistantMessageDiagnostic, bindsClaudeThinkingPrefix, calculateUsageCost, createAssistantMessageDiagnostic, createAssistantMessageEventStream, extractDiagnosticError, formatThrownValue, normalizeModelCostConfig, normalizeResolvedPricing, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
package/dist/types.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, f as supportsClaude1MContext, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, m as supportsClaudeFastMode, n as CLAUDE_OPUS_5_THINKING_PROFILE, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, r as CLAUDE_SONNET_5_THINKING_PROFILE, s as resolveClaudeModelIdentity, t as CLAUDE_FABLE_5_THINKING_PROFILE, u as resolveClaudeOpus5ModelIdentity } from "./src-Bu3FiFAG.mjs";
1
+ import { _ as supportsClaude1MContext, a as CLAUDE_OPUS_5_THINKING_PROFILE, b as supportsClaudeNativeMaxEffort, c as requiresClaudeDefaultSampling, d as resolveClaudeModelIdentity, f as resolveClaudeMythos5ModelIdentity, g as resolveClaudeSonnet5ModelIdentity, h as resolveClaudeOpus5ModelIdentity, i as CLAUDE_FABLE_5_THINKING_PROFILE, l as requiresClaudeMandatoryAdaptiveThinking, m as resolveClaudeOpus55ModelIdentity, n as normalizeModelCostConfig, o as CLAUDE_SONNET_5_THINKING_PROFILE, p as resolveClaudeNativeThinkingLevelMap, r as normalizeResolvedPricing, s as bindsClaudeThinkingPrefix, t as calculateUsageCost, u as resolveClaudeFable5ModelIdentity, v as supportsClaudeAdaptiveThinking, x as supportsClaudeNativeXhighEffort, y as supportsClaudeFastMode } from "./src-BhgSqnbz.mjs";
2
2
  import { n as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, t as PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE } from "./types-BDdaOVi2.mjs";
3
3
  import { i as formatThrownValue, n as createAssistantMessageDiagnostic, r as extractDiagnosticError, t as appendAssistantMessageDiagnostic } from "./diagnostics-COpOtRwq.mjs";
4
4
  import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-uSMZJ3FA.mjs";
5
- import { n as validateToolCall, t as validateToolArguments } from "./validation-B61OhAio.mjs";
6
- export { AssistantMessageEventStream, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, EventStream, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, appendAssistantMessageDiagnostic, createAssistantMessageDiagnostic, createAssistantMessageEventStream, extractDiagnosticError, formatThrownValue, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
5
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-CJZtym2g.mjs";
6
+ export { AssistantMessageEventStream, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, EventStream, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, appendAssistantMessageDiagnostic, bindsClaudeThinkingPrefix, calculateUsageCost, createAssistantMessageDiagnostic, createAssistantMessageEventStream, extractDiagnosticError, formatThrownValue, normalizeModelCostConfig, normalizeResolvedPricing, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
@@ -2,7 +2,7 @@ import { Compile } from "typebox/compile";
2
2
  //#region packages/llm-core/src/validation.ts
3
3
  const validatorCache = /* @__PURE__ */ new WeakMap();
4
4
  /** Maximum string length accepted for schema-gated JSON coercion. */
5
- const MAX_JSON_COERCE_LENGTH = 64 * 1024;
5
+ const MAX_JSON_COERCE_LENGTH = 65536;
6
6
  function isObjectBackedRecord(value) {
7
7
  return typeof value === "object" && value !== null;
8
8
  }
@@ -181,10 +181,12 @@ function validateToolArguments(tool, toolCall) {
181
181
  validator.Convert(args);
182
182
  if (isJsonSchemaObject(tool.parameters)) {
183
183
  const coerced = coerceWithJsonSchema(args, tool.parameters);
184
- if (coerced !== args) if (isObjectBackedRecord(args) && isObjectBackedRecord(coerced)) {
185
- for (const key of Object.keys(args)) delete args[key];
186
- Object.assign(args, coerced);
187
- } else return validator.Check(coerced) ? coerced : args;
184
+ if (coerced !== args) {
185
+ if (isObjectBackedRecord(args) && isObjectBackedRecord(coerced)) {
186
+ for (const key of Object.keys(args)) delete args[key];
187
+ Object.assign(args, coerced);
188
+ } else return validator.Check(coerced) ? coerced : args;
189
+ }
188
190
  }
189
191
  if (validator.Check(args)) return args;
190
192
  const errors = validator.Errors(args).map((error) => ` - ${formatValidationPath(error)}: ${error.message}`).join("\n") || "Unknown validation error";
@@ -1,4 +1,4 @@
1
- import { X as Tool, Z as ToolCall } from "./types-h38Azne1.mjs";
1
+ import { nt as ToolCall, tt as Tool } from "./types-DmeScJQe.mjs";
2
2
  //#region packages/llm-core/src/validation.d.ts
3
3
  /** Finds the target tool and validates/coerces a model-emitted tool call. */
4
4
  declare function validateToolCall(tools: Tool[], toolCall: ToolCall): unknown;
@@ -1,2 +1,2 @@
1
- import { n as validateToolCall, t as validateToolArguments } from "./validation-C68lP2uy.mjs";
1
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-DPDgbaD3.mjs";
2
2
  export { validateToolArguments, validateToolCall };
@@ -1,2 +1,2 @@
1
- import { n as validateToolCall, t as validateToolArguments } from "./validation-B61OhAio.mjs";
1
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-CJZtym2g.mjs";
2
2
  export { validateToolArguments, validateToolCall };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/ai",
3
- "version": "2026.8.1",
3
+ "version": "2026.8.33",
4
4
  "description": "Reusable model provider adapters and streaming runtime from OpenClaw",
5
5
  "keywords": [
6
6
  "ai",
@@ -108,7 +108,7 @@
108
108
  "@mistralai/mistralai": "2.6.4",
109
109
  "openai": "7.5.0",
110
110
  "partial-json": "0.1.7",
111
- "typebox": "1.3.16"
111
+ "typebox": "1.3.17"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@openclaw/model-catalog-core": "0.0.0-private",
@@ -1 +0,0 @@
1
- import "./event-stream-UhnxHuqt.mjs";