@openclaw/ai 2026.10.1 → 2026.10.2

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 (71) hide show
  1. package/dist/{anthropic-BDfXKgF1.mjs → anthropic-C4qygbtf.mjs} +11 -10
  2. package/dist/{anthropic-payload-policy-BZUAchqb.d.mts → anthropic-payload-policy-DD7vzpxE.d.mts} +5 -2
  3. package/dist/{anthropic-stream-reducer-DHt9uFWX.mjs → anthropic-stream-reducer-CWyWE21W.mjs} +46 -52
  4. package/dist/{api-registry-DcEP_o4h.d.mts → api-registry-B3rC2qu3.d.mts} +1 -1
  5. package/dist/{assistant-output-mJ9cL4Qg.mjs → assistant-output-D5762GPH.mjs} +2 -2
  6. package/dist/{assistant-text-phase-DAv1BdTm.mjs → assistant-text-phase-DVZOxbuR.mjs} +1 -1
  7. package/dist/{azure-openai-responses-gn9hMf8x.mjs → azure-openai-responses-DO-Fv8ha.mjs} +5 -5
  8. package/dist/diagnostics.d.mts +3 -3
  9. package/dist/{google-CyMz2jF_.mjs → google-B2g_Xn4d.mjs} +6 -6
  10. package/dist/{google-interactions-DXu4IYGb.mjs → google-interactions-DNXzPPwQ.mjs} +6 -6
  11. package/dist/{google-messages-Bmheetdg.mjs → google-messages-l7wgIF5I.mjs} +3 -3
  12. package/dist/{google-shared-DE_ddfsC.mjs → google-shared-V8jogVPq.mjs} +5 -5
  13. package/dist/{google-vertex-BEW0OQIA.mjs → google-vertex-_khoip47.mjs} +5 -5
  14. package/dist/{host-BjIYEjwT.d.mts → host-DiPhRjrc.d.mts} +2 -2
  15. package/dist/{host-policy-CC5H0iRZ.mjs → host-policy-BwhNNGQR.mjs} +1 -1
  16. package/dist/{host-JpNulOOs.mjs → host-u3o8XiAp.mjs} +1 -1
  17. package/dist/{index-DJrNQnKw.d.mts → index-D27wAoOr.d.mts} +4 -2
  18. package/dist/index.d.mts +4 -4
  19. package/dist/index.mjs +4 -4
  20. package/dist/internal/anthropic.d.mts +4 -4
  21. package/dist/internal/anthropic.mjs +4 -4
  22. package/dist/internal/openai-completions-compat.d.mts +1 -1
  23. package/dist/internal/openai-completions-compat.mjs +1 -1
  24. package/dist/internal/openai-responses-payload-policy.d.mts +9 -2
  25. package/dist/internal/openai-responses-payload-policy.mjs +3 -2
  26. package/dist/internal/openai.d.mts +8 -8
  27. package/dist/internal/openai.mjs +7 -7
  28. package/dist/internal/runtime.d.mts +5 -5
  29. package/dist/internal/runtime.mjs +3 -3
  30. package/dist/internal/shared.d.mts +1 -1
  31. package/dist/internal/shared.mjs +3 -3
  32. package/dist/internal/tool-schema.mjs +1 -1
  33. package/dist/{mistral-1Bnbneg1.mjs → mistral-cnoBDSIg.mjs} +4 -4
  34. package/dist/{openai-chatgpt-responses-CB1JwNFF.mjs → openai-chatgpt-responses-CHdn8YJ_.mjs} +60 -54
  35. package/dist/{openai-completions-BPadHHKe.mjs → openai-completions-BZfHIaZ7.mjs} +3 -3
  36. package/dist/{openai-completions-compat-CJ0ktmGy.d.mts → openai-completions-compat-BgPg1BRs.d.mts} +2 -2
  37. package/dist/{openai-completions-compat-D7hWYB0G.mjs → openai-completions-compat-GMN8A0fm.mjs} +1 -1
  38. package/dist/{openai-completions-transport-DITBEALX.mjs → openai-completions-transport-CuoQfnKV.mjs} +13 -13
  39. package/dist/{openai-prompt-cache-Dj8qeOHT.mjs → openai-prompt-cache-BK6E2g4Q.mjs} +1 -1
  40. package/dist/{openai-prompt-cache-C-Q1Ksfs.d.mts → openai-prompt-cache-CFviG_D4.d.mts} +1 -1
  41. package/dist/{openai-responses-1_TvcWI3.mjs → openai-responses-BhAZFsL9.mjs} +7 -7
  42. package/dist/{openai-responses-compaction-replay-BB2SWdsx.d.mts → openai-responses-compaction-replay-BBNo098-.d.mts} +3 -3
  43. package/dist/{openai-responses-compaction-window-m878aVpU.mjs → openai-responses-compaction-window-tA4QkU0o.mjs} +3 -3
  44. package/dist/{openai-responses-contracts-sAvdqNjS.d.mts → openai-responses-contracts-D5yVZBp-.d.mts} +3 -3
  45. package/dist/openai-responses-endpoint-TV0y50fb.mjs +11 -0
  46. package/dist/{openai-responses-payload-policy-C7GsA1y0.d.mts → openai-responses-payload-policy-s1apQlZZ.d.mts} +4 -2
  47. package/dist/{openai-responses-prompt-observer-internal-CbH84xIS.mjs → openai-responses-prompt-observer-internal-CefUzh8M.mjs} +2 -2
  48. package/dist/{openai-responses-shared-TCJRAoMW.mjs → openai-responses-shared-CKNmC3vC.mjs} +11 -11
  49. package/dist/{openai-responses-terminal-usage-BVvyXZ8u.d.mts → openai-responses-terminal-usage-CempLedn.d.mts} +1 -1
  50. package/dist/{openai-tool-schema-DYNePiF8.mjs → openai-tool-schema-BIrI0mrA.mjs} +18 -1
  51. package/dist/{openai-transport-params-ildrm49s.mjs → openai-transport-params-D7JMUPjf.mjs} +7 -7
  52. package/dist/{provider-options-Dk4PeQV3.d.mts → provider-options-CkieKvNJ.d.mts} +9 -4
  53. package/dist/{provider-replay-context-ywPKKLjL.mjs → provider-replay-context-CO_Eplnc.mjs} +1 -1
  54. package/dist/{provider-transport-turn-state-8c_Nj2NS.mjs → provider-transport-turn-state-BX6TfCyW.mjs} +2 -2
  55. package/dist/{provider-types-De8PRdR0.d.mts → provider-types-v3bmqsfg.d.mts} +2 -2
  56. package/dist/provider-types.d.mts +3 -3
  57. package/dist/providers.d.mts +2 -2
  58. package/dist/providers.mjs +10 -10
  59. package/dist/{simple-options-wW3117Fu.mjs → simple-options-7QuSKriJ.mjs} +2 -2
  60. package/dist/{src-DWJq14pn.mjs → src-VWy9E7DZ.mjs} +5 -1
  61. package/dist/{stream-CElngO8h.mjs → stream-DFaRxi2D.mjs} +1 -1
  62. package/dist/{text-signature-rOn31nxc.mjs → text-signature-D_vRrx-z.mjs} +2 -2
  63. package/dist/{transport-stream-shared-C5TAc3U_.mjs → transport-stream-shared-CCR7hSW0.mjs} +1 -1
  64. package/dist/{transport-stream-shared-CAxkgOSj.d.mts → transport-stream-shared-DW-7-qLR.d.mts} +1 -1
  65. package/dist/transports.d.mts +13 -13
  66. package/dist/transports.mjs +170 -172
  67. package/dist/types-UlNana-2.d.mts +1 -0
  68. package/dist/types.d.mts +3 -3
  69. package/dist/types.mjs +2 -2
  70. package/package.json +1 -1
  71. package/dist/types-Dlz-8qcy.d.mts +0 -1
@@ -1,34 +1,35 @@
1
- import { w as supportsClaudeAdaptiveThinking } from "./src-DWJq14pn.mjs";
1
+ import { w as supportsClaudeAdaptiveThinking } from "./src-VWy9E7DZ.mjs";
2
2
  import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
3
3
  import { n as normalizeLowercaseStringOrEmpty } from "./string-coerce-CtgOVOSv.mjs";
4
- import { T as usesClaudeStreamingRefusalContract, _ as buildAnthropicClaudeCodeIdentity, a as resolveAiTransportHeaderSentinels, b as prepareClaudeNoPrefillRequestContext, r as getAiTransportHost } from "./host-JpNulOOs.mjs";
4
+ import { T as usesClaudeStreamingRefusalContract, _ as buildAnthropicClaudeCodeIdentity, a as resolveAiTransportHeaderSentinels, b as prepareClaudeNoPrefillRequestContext, r as getAiTransportHost } from "./host-u3o8XiAp.mjs";
5
5
  import { A as resolveOpenAIThinkingApi, D as supportsOpenAITemperature, b as isOpenAIGpt6Model, d as OpenAIResponsesWebSocketSafeRetryError, g as responsesServiceTierObserver, i as OPENAI_RESPONSES_APIS, l as OpenAIResponsesWebSocketPostDispatchError, m as parseOpenAIResponsesWebSocketServerError, r as OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS, t as AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS, u as OpenAIResponsesWebSocketPreDispatchError } from "./openai-responses-contracts-BKu8O7l4.mjs";
6
6
  import { n as getSessionResourceOwnerId, r as registerSessionResourceCleanup } from "./session-resources-D1wgDQ8C.mjs";
7
7
  import { a as redactDiagnosticText, o as truncateUtf16Safe, s as stableStringify } from "./provider-error-DQBE1bUQ.mjs";
8
- import { r as resolveOpenAIPromptCacheParams } from "./openai-prompt-cache-Dj8qeOHT.mjs";
8
+ import { r as resolveOpenAIPromptCacheParams } from "./openai-prompt-cache-BK6E2g4Q.mjs";
9
9
  import { a as resolveModelSseDebugMode, i as resolveModelPayloadDebugMode, n as formatModelTransportDebugUrl, r as emitModelTransportDebug, t as formatModelTransportDebugBaseUrl, u as hasOnlyResponsesFunctionTools, v as toErrorObject } from "./diagnostics-Caj-4RBA.mjs";
10
- import { a as readResponseTextSnippet, i as isCodeModeModelVisibleToolName, n as MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE, s as resolveModelHeaderSentinels } from "./text-signature-rOn31nxc.mjs";
11
- import { a as resolveOpenAIPromptCacheKeySupport, c as resolveOpenAIResponsesTextFormat, i as resolveOpenAICompletionsCompat, n as isNativeOpenAIEndpoint, o as usesNativeOpenAICodexResponsesBackend, r as isOpenAICodexResponsesModel, t as detectOpenAICompletionsCompat } from "./openai-completions-compat-D7hWYB0G.mjs";
12
- import { t as buildGuardedModelFetch } from "./host-policy-CC5H0iRZ.mjs";
13
- import { A as buildAnthropicSystemBlocks, C as isAnthropicReplayRejection, D as applyAnthropicEphemeralCacheControlMarkers, E as applyAnthropicContextManagementToRequest, F as resolveAnthropicEphemeralCacheControl, I as resolveAnthropicPayloadPolicy, J as usesFoundryBearerAuth, K as isAnthropicOAuthApiKey, L as resolveAnthropicRequestBetaHeader, M as isDirectAnthropicModel, N as logAnthropicContextEdits, O as applyAnthropicPayloadPolicyToParams, P as resolveAnthropicCacheOptions, R as resolveAnthropicServerCompactionPlan, T as suppressAnthropicCompaction, d as resolveAnthropicTransportOptions, j as isAnthropicServerToolClearingEnabled, k as applyAnthropicRequestCacheControl, l as buildAnthropicRequest, q as omitFoundryBearerCredentialHeaders, t as consumeAnthropicStream, u as prepareAnthropicRequest, w as resolveNewestAnthropicCompaction, z as supportsAnthropicServerSideFallback } from "./anthropic-stream-reducer-DHt9uFWX.mjs";
10
+ import { a as readResponseTextSnippet, i as isCodeModeModelVisibleToolName, n as MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE, s as resolveModelHeaderSentinels } from "./text-signature-D_vRrx-z.mjs";
11
+ import { a as resolveOpenAIPromptCacheKeySupport, c as resolveOpenAIResponsesTextFormat, i as resolveOpenAICompletionsCompat, n as isNativeOpenAIEndpoint, o as usesNativeOpenAICodexResponsesBackend, r as isOpenAICodexResponsesModel, t as detectOpenAICompletionsCompat } from "./openai-completions-compat-GMN8A0fm.mjs";
12
+ import { t as buildGuardedModelFetch } from "./host-policy-BwhNNGQR.mjs";
13
+ import { A as buildAnthropicSystemBlocks, C as isAnthropicReplayRejection, D as applyAnthropicEphemeralCacheControlMarkers, E as applyAnthropicContextManagementToRequest, F as resolveAnthropicEphemeralCacheControl, I as resolveAnthropicPayloadPolicy, J as usesFoundryBearerAuth, K as isAnthropicOAuthApiKey, L as resolveAnthropicRequestBetaHeader, M as isDirectAnthropicModel, N as logAnthropicContextEdits, O as applyAnthropicPayloadPolicyToParams, P as resolveAnthropicCacheOptions, R as resolveAnthropicServerCompactionPlan, T as suppressAnthropicCompaction, d as resolveAnthropicTransportOptions, j as isAnthropicServerToolClearingEnabled, k as applyAnthropicRequestCacheControl, l as buildAnthropicRequest, q as omitFoundryBearerCredentialHeaders, t as consumeAnthropicStream, u as prepareAnthropicRequest, w as resolveNewestAnthropicCompaction, z as supportsAnthropicServerSideFallback } from "./anthropic-stream-reducer-CWyWE21W.mjs";
14
14
  import { i as resolveCacheRetention } from "./cloudflare-5qSGvIUH.mjs";
15
- import { C as parseJsonObjectPreservingUnsafeIntegers, M as racePromiseWithAbortSignal, S as withProviderResponseHook, T as quoteUnsafeIntegerLiterals, _ as sanitizeNonEmptyTransportPayloadText, a as createEmptyTransportUsage, b as transportAbortError, c as failTransportStream, d as iterateModelStream, f as mergeTransportHeaders, g as parseTerminalToolCallArguments, h as notifyProviderStreamOpened, i as copyProviderAcceptanceObserver, j as createAbortError$1, l as finalizeTerminalToolCallArguments, m as notifyProviderHttpResponse, n as assignTransportErrorDetails, o as createModelStreamCooperativeScheduler, p as notifyProviderHttpMetadata, r as coerceTransportToolCallArguments, s as createWritableTransportEventStream, t as IncompleteToolCallError, u as finalizeTransportStream, v as sanitizeTransportPayloadText, w as parseJsonPreservingUnsafeIntegers, x as withProviderAcceptanceObserver, y as throwIfModelStreamAborted } from "./transport-stream-shared-C5TAc3U_.mjs";
16
- import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, l as codeModeToolSurfaceObserver, s as prepareModelRequestBody } from "./simple-options-wW3117Fu.mjs";
17
- import { A as redactIdentifier, C as log, D as readOpenAICompletionsReasoningBatch, E as readOpenAICompletionsContentDeltas, O as resolveOpenAIClientBaseUrl, S as isOpenAICompletionsThinkingEnabled, T as parseOpenAICompletionsUsage, _ as resolveOpenAIReasoningEffortMap, a as enforceCodeModeResponsesToolSurface, b as createOpenAIResponseHook, c as readCodeModePayloadToolName, g as resolveOpenAISimpleReasoningEffort, h as resolveOpenAIRequestReasoning, i as buildOpenAISdkRequestOptions, j as sha256Hex, k as resolvePromptCacheKey, l as resolveCodeModeResponsesVisibleToolNames, m as reconcileOpenAIResponsesToolChoice, n as buildOpenAIClientHeaders, o as filterCodeModePayloadTools, r as buildOpenAISdkClientOptions, s as getCompat, t as assertCodeModeResponsesToolSurface, u as resolveOpenAIStrictToolFlagWithDiagnostics, v as GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, w as measureUtf8AppendBytes, x as createResponseModelTracker, y as createOpenAIProviderAcceptanceHook } from "./openai-transport-params-ildrm49s.mjs";
15
+ import { C as parseJsonObjectPreservingUnsafeIntegers, M as racePromiseWithAbortSignal, S as withProviderResponseHook, T as quoteUnsafeIntegerLiterals, _ as sanitizeNonEmptyTransportPayloadText, a as createEmptyTransportUsage, b as transportAbortError, c as failTransportStream, d as iterateModelStream, f as mergeTransportHeaders, g as parseTerminalToolCallArguments, h as notifyProviderStreamOpened, i as copyProviderAcceptanceObserver, j as createAbortError$1, l as finalizeTerminalToolCallArguments, m as notifyProviderHttpResponse, n as assignTransportErrorDetails, o as createModelStreamCooperativeScheduler, p as notifyProviderHttpMetadata, r as coerceTransportToolCallArguments, s as createWritableTransportEventStream, t as IncompleteToolCallError, u as finalizeTransportStream, v as sanitizeTransportPayloadText, w as parseJsonPreservingUnsafeIntegers, x as withProviderAcceptanceObserver, y as throwIfModelStreamAborted } from "./transport-stream-shared-CCR7hSW0.mjs";
16
+ import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, l as codeModeToolSurfaceObserver, s as prepareModelRequestBody } from "./simple-options-7QuSKriJ.mjs";
17
+ import { A as redactIdentifier, C as log, D as readOpenAICompletionsReasoningBatch, E as readOpenAICompletionsContentDeltas, O as resolveOpenAIClientBaseUrl, S as isOpenAICompletionsThinkingEnabled, T as parseOpenAICompletionsUsage, _ as resolveOpenAIReasoningEffortMap, a as enforceCodeModeResponsesToolSurface, b as createOpenAIResponseHook, c as readCodeModePayloadToolName, g as resolveOpenAISimpleReasoningEffort, h as resolveOpenAIRequestReasoning, i as buildOpenAISdkRequestOptions, j as sha256Hex, k as resolvePromptCacheKey, l as resolveCodeModeResponsesVisibleToolNames, m as reconcileOpenAIResponsesToolChoice, n as buildOpenAIClientHeaders, o as filterCodeModePayloadTools, r as buildOpenAISdkClientOptions, s as getCompat, t as assertCodeModeResponsesToolSurface, u as resolveOpenAIStrictToolFlagWithDiagnostics, v as GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, w as measureUtf8AppendBytes, x as createResponseModelTracker, y as createOpenAIProviderAcceptanceHook } from "./openai-transport-params-D7JMUPjf.mjs";
18
18
  import { n as getEnvApiKey } from "./env-api-keys-CyX4VKGO.mjs";
19
19
  import { t as createDeferredEventBuffer } from "./deferred-event-buffer-DAvyP7qA.mjs";
20
- import { n as isProviderReplayContext, r as providerReplayContextMatches, t as buildProviderReplayContext } from "./provider-replay-context-ywPKKLjL.mjs";
21
- import { t as createAssistantOutput } from "./assistant-output-mJ9cL4Qg.mjs";
20
+ import { n as isProviderReplayContext, r as providerReplayContextMatches, t as buildProviderReplayContext } from "./provider-replay-context-CO_Eplnc.mjs";
21
+ import { t as createAssistantOutput } from "./assistant-output-D5762GPH.mjs";
22
22
  import { n as resolveOpencodeSessionHeaders } from "./session-affinity-DA4WHv1h.mjs";
23
- import { a as flattenCompletionMessagesToStringContent, c as hasOpenAICompatibleConversationTurn, d as createDeepSeekTextFilter, l as canonicalizeMaxTokensParam, o as stripCompletionMessagesToRoleContent, r as buildOpenAICompletionsParams, s as applyCompletionsAnthropicCacheControl, t as createOpenAICompletionsTransportStreamFn, u as resolveMaxTokensParam } from "./openai-completions-transport-DITBEALX.mjs";
24
- import { a as googleFlashSupportsMinimalThinking, i as consumeGoogleGenerateContentStream, n as projectGoogleMessages, r as requiresGoogleToolCallId, t as convertGoogleTools } from "./google-messages-Bmheetdg.mjs";
25
- import { r as resolveProviderTransportTurnState, t as filterProviderTurnHeadersForExplicitOpencodeSession } from "./provider-transport-turn-state-8c_Nj2NS.mjs";
23
+ import { a as flattenCompletionMessagesToStringContent, c as hasOpenAICompatibleConversationTurn, d as createDeepSeekTextFilter, l as canonicalizeMaxTokensParam, o as stripCompletionMessagesToRoleContent, r as buildOpenAICompletionsParams, s as applyCompletionsAnthropicCacheControl, t as createOpenAICompletionsTransportStreamFn, u as resolveMaxTokensParam } from "./openai-completions-transport-CuoQfnKV.mjs";
24
+ import { a as googleFlashSupportsMinimalThinking, i as consumeGoogleGenerateContentStream, n as projectGoogleMessages, r as requiresGoogleToolCallId, t as convertGoogleTools } from "./google-messages-l7wgIF5I.mjs";
25
+ import { r as resolveProviderTransportTurnState, t as filterProviderTurnHeadersForExplicitOpencodeSession } from "./provider-transport-turn-state-BX6TfCyW.mjs";
26
26
  import { i as getFirstStreamEventTimeoutMs, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "./stream-first-event-timeout-D9ZmL_s9.mjs";
27
- import { a as applyOpenAIResponsesPayloadPolicy, c as resolveOpenAIResponsesServerCompactionPlan, i as sanitizeResponsesImagePayload, n as isOpenAIResponsesCompactionOutput, o as resolveOpenAIResponsesCompactEndpointPlan, s as resolveOpenAIResponsesPayloadPolicy, t as createBoundedOpenAIResponsesCompactionFetch } from "./openai-responses-compaction-window-m878aVpU.mjs";
28
- import { $ as OPENAI_RESPONSES_FUNCTION_CALL_ITEM_ID_RE, A as recordResponsesContextUsage, B as recordResponsesContinuationState, C as resolveAzureOpenAIApiVersion, D as safeDebugValue, E as logResponsesFailedNoDetails, F as convertResponsesMessages, G as replayResponsesReasoningUpdates, H as responsesContinuationPrefixFingerprint, I as readResponsesInputReplayState, J as buildOpenAIResponsesReasoningReplayMetadata, K as supportsResponsesReasoningUpdate, L as recordResponsesInputReplay, N as buildResponsesInputMessage, O as summarizeOpenAITransportError, Q as OPENAI_RESPONSES_CALL_ID_RE, R as responsesInputFingerprint, S as isInvalidEncryptedContentError, T as ResponsesStreamFailure, U as responsesContinuationRequestFingerprint, V as resolveResponsesContinuationRequest, W as isConfigurationUpdate, X as resolveNewestOpenAIResponsesCompactionReplay, Y as captureOpenAIResponsesCompaction, Z as suppressOpenAIResponsesCompaction, a as prepareResponsesTools, c as observeResponsesStream, et as OPENAI_RESPONSES_ID_MAX_LENGTH, it as resolveReplayableResponsesMessageId, j as resolveResponsesContextUsageBoundary, k as summarizeResponsesPayload, n as applyResponsesServiceTierPricing, nt as shouldNormalizeOpenAIResponsesToolCallId, q as CompactionReplayRefreshRequiredError, rt as splitOpenAIFunctionCallPairing, s as processResponsesStream, tt as normalizeOpenAIResponsesFunctionCallId, w as resolveNextResponsesEncryptedContentAttempt, x as createResponsesStreamWithEncryptedContentRetry, z as claimOpenAIResponsesHttpContinuation } from "./openai-responses-shared-TCJRAoMW.mjs";
27
+ import { a as applyOpenAIResponsesPayloadPolicy, c as resolveOpenAIResponsesServerCompactionPlan, i as sanitizeResponsesImagePayload, n as isOpenAIResponsesCompactionOutput, o as resolveOpenAIResponsesCompactEndpointPlan, s as resolveOpenAIResponsesPayloadPolicy, t as createBoundedOpenAIResponsesCompactionFetch } from "./openai-responses-compaction-window-tA4QkU0o.mjs";
28
+ import { $ as OPENAI_RESPONSES_FUNCTION_CALL_ITEM_ID_RE, A as recordResponsesContextUsage, B as recordResponsesContinuationState, C as resolveAzureOpenAIApiVersion, D as safeDebugValue, E as logResponsesFailedNoDetails, F as convertResponsesMessages, G as replayResponsesReasoningUpdates, H as responsesContinuationPrefixFingerprint, I as readResponsesInputReplayState, J as buildOpenAIResponsesReasoningReplayMetadata, K as supportsResponsesReasoningUpdate, L as recordResponsesInputReplay, N as buildResponsesInputMessage, O as summarizeOpenAITransportError, Q as OPENAI_RESPONSES_CALL_ID_RE, R as responsesInputFingerprint, S as isInvalidEncryptedContentError, T as ResponsesStreamFailure, U as responsesContinuationRequestFingerprint, V as resolveResponsesContinuationRequest, W as isConfigurationUpdate, X as resolveNewestOpenAIResponsesCompactionReplay, Y as captureOpenAIResponsesCompaction, Z as suppressOpenAIResponsesCompaction, a as prepareResponsesTools, c as observeResponsesStream, et as OPENAI_RESPONSES_ID_MAX_LENGTH, it as resolveReplayableResponsesMessageId, j as resolveResponsesContextUsageBoundary, k as summarizeResponsesPayload, n as applyResponsesServiceTierPricing, nt as shouldNormalizeOpenAIResponsesToolCallId, q as CompactionReplayRefreshRequiredError, rt as splitOpenAIFunctionCallPairing, s as processResponsesStream, tt as normalizeOpenAIResponsesFunctionCallId, w as resolveNextResponsesEncryptedContentAttempt, x as createResponsesStreamWithEncryptedContentRetry, z as claimOpenAIResponsesHttpContinuation } from "./openai-responses-shared-CKNmC3vC.mjs";
29
29
  import { i as resolveAzureDeploymentNameFromMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "./azure-openai-responses-client-compat-D0dvJMbZ.mjs";
30
+ import { n as supportsNativeOpenAIResponsesEndpoint, t as isOfficialOpenAIResponsesBaseUrl } from "./openai-responses-endpoint-TV0y50fb.mjs";
30
31
  import { t as hasResponsesWebSearchTool } from "./openai-web-search-tools-Cfu0uLyN.mjs";
31
- import { t as createResponsesPromptEgressObserver } from "./openai-responses-prompt-observer-internal-CbH84xIS.mjs";
32
+ import { t as createResponsesPromptEgressObserver } from "./openai-responses-prompt-observer-internal-CefUzh8M.mjs";
32
33
  import { n as withResponsesRequestAcceptance, t as responsesRequestLifecycle } from "./openai-responses-request-lifecycle-Fsag-IGZ.mjs";
33
34
  import { randomUUID } from "node:crypto";
34
35
  import OpenAI, { AzureOpenAI } from "openai";
@@ -256,7 +257,7 @@ function createAnthropicMessagesTransportStreamFn() {
256
257
  (async () => {
257
258
  const output = createAssistantOutput(model, "anthropic-messages");
258
259
  const refusalBuffer = usesClaudeStreamingRefusalContract(model) ? createDeferredEventBuffer(stream) : void 0;
259
- let usedCompactionReplay = false;
260
+ let replayedCompaction;
260
261
  try {
261
262
  const apiKey = options?.apiKey ?? getEnvApiKey(model.provider) ?? "";
262
263
  if (!apiKey) throw new Error(`No API key for provider: ${model.provider}`);
@@ -269,7 +270,7 @@ function createAnthropicMessagesTransportStreamFn() {
269
270
  options: transportOptions
270
271
  });
271
272
  const builtParams = await buildAnthropicRequest(model, requestContext, transportOptions, "transport", isOAuthToken, !isOAuthToken && supportsAnthropicServerSideFallback(model), claudeCodeVersion);
272
- usedCompactionReplay = builtParams.usedCompactionReplay;
273
+ replayedCompaction = builtParams.replayedCompaction;
273
274
  const { params, headers } = await prepareAnthropicRequest(builtParams.params, model, transportOptions, directApiKeyBetaHeader);
274
275
  const { response, stream: anthropicStream } = await request({
275
276
  ...params,
@@ -317,7 +318,7 @@ function createAnthropicMessagesTransportStreamFn() {
317
318
  refusalBuffer.discard();
318
319
  output.content = [];
319
320
  } else output.content = output.content.filter((block) => block.type !== "toolCall");
320
- if (usedCompactionReplay && isAnthropicReplayRejection(output)) suppressAnthropicCompaction(output, model, options);
321
+ if (replayedCompaction && isAnthropicReplayRejection(output)) suppressAnthropicCompaction(output, model, options, replayedCompaction);
321
322
  for (const block of output.content) delete block.index;
322
323
  }
323
324
  });
@@ -467,6 +468,154 @@ function buildOpenAIResponsesParams(model, context, options, metadata, replayMod
467
468
  return sanitizeOpenAICodexResponsesParams(model, params);
468
469
  }
469
470
  //#endregion
471
+ //#region packages/ai/src/transports/openai-responses-compact-client.ts
472
+ async function postOpenAIResponsesCompaction(params) {
473
+ const instructions = typeof params.request.instructions === "string" && params.request.instructions.length > 0 ? params.request.instructions : void 0;
474
+ const body = instructions && !supportsNativeOpenAIResponsesEndpoint(params.model) ? {
475
+ model: params.request.model,
476
+ input: [buildOpenAIResponsesCompactSystemMessage(params.model, instructions), ...params.request.input ?? []]
477
+ } : {
478
+ model: params.request.model,
479
+ input: params.request.input,
480
+ ...instructions ? { instructions } : {}
481
+ };
482
+ const response = await params.client.post("/responses/compact", {
483
+ ...buildOpenAISdkRequestOptions(params.model, params.options?.signal, { timeoutMs: params.options?.timeoutMs }),
484
+ body
485
+ });
486
+ const output = isRecord(response) && Array.isArray(response.output) ? response.output : [];
487
+ const item = output.at(-1);
488
+ const retainedItems = output.slice(0, -1);
489
+ const retainedUserMessageCount = retainedItems.filter((candidate) => isRecord(candidate) && candidate.type === "message" && candidate.role === "user" && Array.isArray(candidate.content)).length;
490
+ const inputUserMessageCount = Array.isArray(params.request.input) ? params.request.input.filter((candidate) => isRecord(candidate) && candidate.type === "message" && candidate.role === "user").length : 0;
491
+ const retainedMessagePrefixSupported = supportsNativeOpenAIResponsesEndpoint(params.model);
492
+ const usage = isRecord(response) && isRecord(response.usage) ? response.usage : void 0;
493
+ if (!isRecord(response) || response.object !== "response.compaction" || !isOpenAIResponsesCompactionOutput(output, params.model) || retainedItems.length > 0 && (!retainedMessagePrefixSupported || retainedUserMessageCount !== inputUserMessageCount) || !isRecord(item) || item.type !== "compaction" || typeof item.encrypted_content !== "string" || item.encrypted_content.length === 0 || !usage || typeof usage.input_tokens !== "number" || typeof usage.output_tokens !== "number") throw new Error("Responses compact endpoint did not return one trailing compaction item");
494
+ return {
495
+ output,
496
+ item,
497
+ historyMode: retainedUserMessageCount > 0 ? "retained-users" : "compacted-prefix",
498
+ usage,
499
+ model: params.model,
500
+ replayMetadata: buildOpenAIResponsesReasoningReplayMetadata(params.model, {
501
+ authProfileId: params.options?.authProfileId,
502
+ sessionId: params.options?.sessionId
503
+ })
504
+ };
505
+ }
506
+ //#endregion
507
+ //#region packages/ai/src/transports/openai-responses-compact-request.ts
508
+ const COMPACT_REQUEST = Symbol("openaiResponsesCompactRequest");
509
+ function claimResponsesCompactRequest(options) {
510
+ const controller = options ? Reflect.get(options, COMPACT_REQUEST) : void 0;
511
+ if (controller?.claimed === false) {
512
+ controller.claimed = true;
513
+ return controller;
514
+ }
515
+ }
516
+ /** Run a compact-endpoint request through the session's prepared stream stack. */
517
+ async function requestPreparedOpenAIResponsesCompaction(streamFn, model, context, options) {
518
+ const preparedOptions = { ...options };
519
+ let resolveResult;
520
+ let rejectResult;
521
+ const result = new Promise((resolve, reject) => {
522
+ resolveResult = resolve;
523
+ rejectResult = reject;
524
+ });
525
+ const controller = {
526
+ claimed: false,
527
+ resolve: resolveResult,
528
+ reject: rejectResult
529
+ };
530
+ Reflect.set(preparedOptions, COMPACT_REQUEST, controller);
531
+ const stream = await Promise.resolve(streamFn(model, context, preparedOptions));
532
+ if (!controller.claimed) throw new Error("Prepared stream did not reach an OpenAI Responses transport");
533
+ try {
534
+ return await result;
535
+ } finally {
536
+ await stream.result().catch(() => void 0);
537
+ }
538
+ }
539
+ //#endregion
540
+ //#region packages/ai/src/transports/openai-responses-reasoning-state.ts
541
+ /** Save only admitted settings and hashes, never another copy of the conversation. */
542
+ function recordResponsesReasoningState(message, model, identity, request, output) {
543
+ if (!supportsResponsesReasoningUpdate(request) || !isRecord(request.reasoning) || !request.input || request.previous_response_id || message.providerReplay || output.some((item) => isRecord(item) && item.type === "compaction")) return;
544
+ const reasoning = {
545
+ ...buildProviderReplayContext(model, identity),
546
+ effort: request.reasoning.effort,
547
+ controls: request.input.flatMap((item, index) => isConfigurationUpdate(item) ? [{
548
+ index,
549
+ item
550
+ }] : []),
551
+ inputLength: request.input.length,
552
+ outputLength: output.length,
553
+ prefixHash: responsesContinuationPrefixFingerprint(request.input, output),
554
+ requestHash: responsesContinuationRequestFingerprint(request)
555
+ };
556
+ Object.assign(message, { openclawResponsesInputReplay: {
557
+ ...readResponsesInputReplayState(message),
558
+ reasoning
559
+ } });
560
+ }
561
+ /** A cold transport can replay controls, but cannot resurrect a server response handle. */
562
+ function restoreResponsesReasoningState(context, model, identity, request) {
563
+ const latest = context.messages.findLast((message) => message.role === "assistant");
564
+ const state = latest ? readResponsesInputReplayState(latest)?.reasoning : void 0;
565
+ if (!isRecord(state)) return request;
566
+ const { effort, inputLength, outputLength, controls, prefixHash, requestHash } = state;
567
+ if (!isProviderReplayContext(state) || !providerReplayContextMatches(state, buildProviderReplayContext(model, identity)) || latest?.providerReplay || !supportsResponsesReasoningUpdate(request) || !isRecord(request.reasoning) || !request.input || request.previous_response_id || request.input.some(isConfigurationUpdate) || typeof effort !== "string" || typeof inputLength !== "number" || !Number.isSafeInteger(inputLength) || inputLength < 0 || typeof outputLength !== "number" || !Number.isSafeInteger(outputLength) || outputLength < 0 || !Array.isArray(controls) || controls.length > inputLength || inputLength + outputLength > request.input.length + controls.length) return request;
568
+ const previousInput = request.input.slice(0, inputLength - controls.length);
569
+ let lastIndex = -1;
570
+ for (const control of controls) {
571
+ if (!isRecord(control) || typeof control.index !== "number" || !Number.isSafeInteger(control.index) || control.index <= lastIndex || control.index > previousInput.length || !isConfigurationUpdate(control.item)) return request;
572
+ previousInput.splice(control.index, 0, control.item);
573
+ lastIndex = control.index;
574
+ }
575
+ const previous = {
576
+ ...request,
577
+ reasoning: {
578
+ ...request.reasoning,
579
+ effort
580
+ },
581
+ input: previousInput
582
+ };
583
+ if (responsesContinuationRequestFingerprint(previous) !== requestHash) return request;
584
+ const prepared = replayResponsesReasoningUpdates(previous, request, outputLength);
585
+ if (responsesContinuationPrefixFingerprint((prepared.input ?? []).slice(0, inputLength + outputLength)) !== prefixHash) return request;
586
+ return prepared;
587
+ }
588
+ //#endregion
589
+ //#region packages/ai/src/transports/openai-responses-request-fetch.ts
590
+ function withDefaultResponsesStreamEncoding(fetch) {
591
+ return (input, init) => {
592
+ const headers = new Headers(init?.headers ?? (input instanceof Request ? input.headers : void 0));
593
+ if (headers.has("accept-encoding")) return fetch(input, init);
594
+ headers.set("accept-encoding", "identity");
595
+ return fetch(input, {
596
+ ...init,
597
+ headers
598
+ });
599
+ };
600
+ }
601
+ /** Preserve the existing fetch policy while binding explicit continuation dispatch to its signal. */
602
+ function createResponsesRequestFetch(model, options) {
603
+ const lifecycle = options.lifecycle;
604
+ if (lifecycle && options.compact) throw new Error("Provider review continuation cannot replace its reviewed input with compaction");
605
+ let fetchOverride = options.compact ? createBoundedOpenAIResponsesCompactionFetch(buildGuardedModelFetch(model)) : options.stream ? withDefaultResponsesStreamEncoding(buildGuardedModelFetch(model)) : void 0;
606
+ if (lifecycle) {
607
+ const dispatchFetch = fetchOverride ?? buildGuardedModelFetch(model);
608
+ fetchOverride = async (input, init) => {
609
+ const signal = init?.signal ?? (input instanceof Request ? input.signal : void 0);
610
+ await lifecycle.beforeDispatch(signal ?? void 0);
611
+ signal?.throwIfAborted();
612
+ lifecycle.assertCurrent();
613
+ return dispatchFetch(input, init);
614
+ };
615
+ }
616
+ return fetchOverride;
617
+ }
618
+ //#endregion
470
619
  //#region packages/ai/src/transports/openai-responses-steering.ts
471
620
  function cloneWireRequest(request) {
472
621
  const serialized = JSON.stringify(request);
@@ -591,14 +740,6 @@ const SESSION_WEBSOCKET_MAX_AGE_MS = 33e5;
591
740
  const WEBSOCKET_OPEN_STATE = 1;
592
741
  const websocketSessionCache = /* @__PURE__ */ new Map();
593
742
  const degradedWebSocketConnections = /* @__PURE__ */ new Map();
594
- function isOfficialOpenAIResponsesBaseUrl(baseUrl) {
595
- if (!baseUrl) return false;
596
- const url = URL.parse(baseUrl);
597
- return url !== null && url.origin === "https://api.openai.com" && url.username === "" && url.password === "" && url.search === "" && url.hash === "" && url.pathname.replace(/\/+$/, "") === "/v1";
598
- }
599
- function supportsNativeOpenAIResponsesEndpoint(params) {
600
- return params.provider.trim().toLowerCase() === "openai" && params.api === "openai-responses" && isOfficialOpenAIResponsesBaseUrl(params.baseUrl);
601
- }
602
743
  function closeWebSocketSilently(socket, reason = "done") {
603
744
  try {
604
745
  socket.close({
@@ -954,149 +1095,6 @@ function closeOpenAIResponsesWebSocketSessions(sessionId, owner) {
954
1095
  }
955
1096
  registerSessionResourceCleanup(closeOpenAIResponsesWebSocketSessions);
956
1097
  //#endregion
957
- //#region packages/ai/src/transports/openai-responses-compact-client.ts
958
- async function postOpenAIResponsesCompaction(params) {
959
- const compactInput = typeof params.request.instructions === "string" && params.request.instructions.length > 0 ? [buildOpenAIResponsesCompactSystemMessage(params.model, params.request.instructions), ...params.request.input ?? []] : params.request.input;
960
- const response = await params.client.post("/responses/compact", {
961
- ...buildOpenAISdkRequestOptions(params.model, params.options?.signal, { timeoutMs: params.options?.timeoutMs }),
962
- body: {
963
- model: params.request.model,
964
- input: compactInput
965
- }
966
- });
967
- const output = isRecord(response) && Array.isArray(response.output) ? response.output : [];
968
- const item = output.at(-1);
969
- const retainedItems = output.slice(0, -1);
970
- const retainedUserMessageCount = retainedItems.filter((candidate) => isRecord(candidate) && candidate.type === "message" && candidate.role === "user" && Array.isArray(candidate.content)).length;
971
- const inputUserMessageCount = Array.isArray(params.request.input) ? params.request.input.filter((candidate) => isRecord(candidate) && candidate.type === "message" && candidate.role === "user").length : 0;
972
- const retainedMessagePrefixSupported = supportsNativeOpenAIResponsesEndpoint(params.model);
973
- const usage = isRecord(response) && isRecord(response.usage) ? response.usage : void 0;
974
- if (!isRecord(response) || response.object !== "response.compaction" || !isOpenAIResponsesCompactionOutput(output, params.model) || retainedItems.length > 0 && (!retainedMessagePrefixSupported || retainedUserMessageCount !== inputUserMessageCount) || !isRecord(item) || item.type !== "compaction" || typeof item.encrypted_content !== "string" || item.encrypted_content.length === 0 || !usage || typeof usage.input_tokens !== "number" || typeof usage.output_tokens !== "number") throw new Error("Responses compact endpoint did not return one trailing compaction item");
975
- return {
976
- output,
977
- item,
978
- historyMode: retainedUserMessageCount > 0 ? "retained-users" : "compacted-prefix",
979
- usage,
980
- model: params.model,
981
- replayMetadata: buildOpenAIResponsesReasoningReplayMetadata(params.model, {
982
- authProfileId: params.options?.authProfileId,
983
- sessionId: params.options?.sessionId
984
- })
985
- };
986
- }
987
- //#endregion
988
- //#region packages/ai/src/transports/openai-responses-compact-request.ts
989
- const COMPACT_REQUEST = Symbol("openaiResponsesCompactRequest");
990
- function claimResponsesCompactRequest(options) {
991
- const controller = options ? Reflect.get(options, COMPACT_REQUEST) : void 0;
992
- if (controller?.claimed === false) {
993
- controller.claimed = true;
994
- return controller;
995
- }
996
- }
997
- /** Run a compact-endpoint request through the session's prepared stream stack. */
998
- async function requestPreparedOpenAIResponsesCompaction(streamFn, model, context, options) {
999
- const preparedOptions = { ...options };
1000
- let resolveResult;
1001
- let rejectResult;
1002
- const result = new Promise((resolve, reject) => {
1003
- resolveResult = resolve;
1004
- rejectResult = reject;
1005
- });
1006
- const controller = {
1007
- claimed: false,
1008
- resolve: resolveResult,
1009
- reject: rejectResult
1010
- };
1011
- Reflect.set(preparedOptions, COMPACT_REQUEST, controller);
1012
- const stream = await Promise.resolve(streamFn(model, context, preparedOptions));
1013
- if (!controller.claimed) throw new Error("Prepared stream did not reach an OpenAI Responses transport");
1014
- try {
1015
- return await result;
1016
- } finally {
1017
- await stream.result().catch(() => void 0);
1018
- }
1019
- }
1020
- //#endregion
1021
- //#region packages/ai/src/transports/openai-responses-reasoning-state.ts
1022
- /** Save only admitted settings and hashes, never another copy of the conversation. */
1023
- function recordResponsesReasoningState(message, model, identity, request, output) {
1024
- if (!supportsResponsesReasoningUpdate(request) || !isRecord(request.reasoning) || !request.input || request.previous_response_id || message.providerReplay || output.some((item) => isRecord(item) && item.type === "compaction")) return;
1025
- const reasoning = {
1026
- ...buildProviderReplayContext(model, identity),
1027
- effort: request.reasoning.effort,
1028
- controls: request.input.flatMap((item, index) => isConfigurationUpdate(item) ? [{
1029
- index,
1030
- item
1031
- }] : []),
1032
- inputLength: request.input.length,
1033
- outputLength: output.length,
1034
- prefixHash: responsesContinuationPrefixFingerprint(request.input, output),
1035
- requestHash: responsesContinuationRequestFingerprint(request)
1036
- };
1037
- Object.assign(message, { openclawResponsesInputReplay: {
1038
- ...readResponsesInputReplayState(message),
1039
- reasoning
1040
- } });
1041
- }
1042
- /** A cold transport can replay controls, but cannot resurrect a server response handle. */
1043
- function restoreResponsesReasoningState(context, model, identity, request) {
1044
- const latest = context.messages.findLast((message) => message.role === "assistant");
1045
- const state = latest ? readResponsesInputReplayState(latest)?.reasoning : void 0;
1046
- if (!isRecord(state)) return request;
1047
- const { effort, inputLength, outputLength, controls, prefixHash, requestHash } = state;
1048
- if (!isProviderReplayContext(state) || !providerReplayContextMatches(state, buildProviderReplayContext(model, identity)) || latest?.providerReplay || !supportsResponsesReasoningUpdate(request) || !isRecord(request.reasoning) || !request.input || request.previous_response_id || request.input.some(isConfigurationUpdate) || typeof effort !== "string" || typeof inputLength !== "number" || !Number.isSafeInteger(inputLength) || inputLength < 0 || typeof outputLength !== "number" || !Number.isSafeInteger(outputLength) || outputLength < 0 || !Array.isArray(controls) || controls.length > inputLength || inputLength + outputLength > request.input.length + controls.length) return request;
1049
- const previousInput = request.input.slice(0, inputLength - controls.length);
1050
- let lastIndex = -1;
1051
- for (const control of controls) {
1052
- if (!isRecord(control) || typeof control.index !== "number" || !Number.isSafeInteger(control.index) || control.index <= lastIndex || control.index > previousInput.length || !isConfigurationUpdate(control.item)) return request;
1053
- previousInput.splice(control.index, 0, control.item);
1054
- lastIndex = control.index;
1055
- }
1056
- const previous = {
1057
- ...request,
1058
- reasoning: {
1059
- ...request.reasoning,
1060
- effort
1061
- },
1062
- input: previousInput
1063
- };
1064
- if (responsesContinuationRequestFingerprint(previous) !== requestHash) return request;
1065
- const prepared = replayResponsesReasoningUpdates(previous, request, outputLength);
1066
- if (responsesContinuationPrefixFingerprint((prepared.input ?? []).slice(0, inputLength + outputLength)) !== prefixHash) return request;
1067
- return prepared;
1068
- }
1069
- //#endregion
1070
- //#region packages/ai/src/transports/openai-responses-request-fetch.ts
1071
- function withDefaultResponsesStreamEncoding(fetch) {
1072
- return (input, init) => {
1073
- const headers = new Headers(init?.headers ?? (input instanceof Request ? input.headers : void 0));
1074
- if (headers.has("accept-encoding")) return fetch(input, init);
1075
- headers.set("accept-encoding", "identity");
1076
- return fetch(input, {
1077
- ...init,
1078
- headers
1079
- });
1080
- };
1081
- }
1082
- /** Preserve the existing fetch policy while binding explicit continuation dispatch to its signal. */
1083
- function createResponsesRequestFetch(model, options) {
1084
- const lifecycle = options.lifecycle;
1085
- if (lifecycle && options.compact) throw new Error("Provider review continuation cannot replace its reviewed input with compaction");
1086
- let fetchOverride = options.compact ? createBoundedOpenAIResponsesCompactionFetch(buildGuardedModelFetch(model)) : options.stream ? withDefaultResponsesStreamEncoding(buildGuardedModelFetch(model)) : void 0;
1087
- if (lifecycle) {
1088
- const dispatchFetch = fetchOverride ?? buildGuardedModelFetch(model);
1089
- fetchOverride = async (input, init) => {
1090
- const signal = init?.signal ?? (input instanceof Request ? input.signal : void 0);
1091
- await lifecycle.beforeDispatch(signal ?? void 0);
1092
- signal?.throwIfAborted();
1093
- lifecycle.assertCurrent();
1094
- return dispatchFetch(input, init);
1095
- };
1096
- }
1097
- return fetchOverride;
1098
- }
1099
- //#endregion
1100
1098
  //#region packages/ai/src/transports/openai-responses-client.ts
1101
1099
  function resolveNativeOpenAIResponsesWebSocketMode(model, transport) {
1102
1100
  if (transport !== "websocket" && transport !== "websocket-cached" && transport !== "auto") return;
@@ -0,0 +1 @@
1
+ import "./index-D27wAoOr.mjs";
package/dist/types.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { A as supportsClaudeNativeMaxEffort, C as resolveClaudeOpus5ModelIdentity, D as supportsClaudeAdaptiveThinking, E as supportsClaude1MContext, O as supportsClaudeFastMode, S as resolveClaudeOpus55ModelIdentity, T as resolveClaudeSonnet5ModelIdentity, _ as resolveClaudeFable5ModelIdentity, a as ProviderRefusalReview, b as resolveClaudeMythos5ModelIdentity, c as CLAUDE_HAIKU_55_THINKING_PROFILE, d as CLAUDE_SONNET_55_THINKING_PROFILE, f as CLAUDE_SONNET_5_THINKING_PROFILE, g as requiresClaudeMandatoryAdaptiveThinking, h as requiresClaudeDefaultSampling, i as normalizeResolvedPricing, j as supportsClaudeNativeXhighEffort, k as supportsClaudeInHistorySystemMessages, l as CLAUDE_OPUS_55_THINKING_PROFILE, m as requiresClaudeBetweenToolsThinking, n as calculateUsageCost, o as readProviderRefusalReview, p as bindsClaudeThinkingPrefix, r as normalizeModelCostConfig, s as CLAUDE_FABLE_5_THINKING_PROFILE, u as CLAUDE_OPUS_5_THINKING_PROFILE, v as resolveClaudeHaiku55ModelIdentity, w as resolveClaudeSonnet55ModelIdentity, x as resolveClaudeNativeThinkingLevelMap, y as resolveClaudeModelIdentity } from "./index-DJrNQnKw.mjs";
1
+ import { A as supportsClaudeNativeMaxEffort, C as resolveClaudeOpus5ModelIdentity, D as supportsClaudeAdaptiveThinking, E as supportsClaude1MContext, M as supportsClaudeServerCompaction, O as supportsClaudeFastMode, S as resolveClaudeOpus55ModelIdentity, T as resolveClaudeSonnet5ModelIdentity, _ as resolveClaudeFable5ModelIdentity, a as ProviderRefusalReview, b as resolveClaudeMythos5ModelIdentity, c as CLAUDE_HAIKU_55_THINKING_PROFILE, d as CLAUDE_SONNET_55_THINKING_PROFILE, f as CLAUDE_SONNET_5_THINKING_PROFILE, g as requiresClaudeMandatoryAdaptiveThinking, h as requiresClaudeDefaultSampling, i as normalizeResolvedPricing, j as supportsClaudeNativeXhighEffort, k as supportsClaudeInHistorySystemMessages, l as CLAUDE_OPUS_55_THINKING_PROFILE, m as requiresClaudeBetweenToolsThinking, n as calculateUsageCost, o as readProviderRefusalReview, p as bindsClaudeThinkingPrefix, r as normalizeModelCostConfig, s as CLAUDE_FABLE_5_THINKING_PROFILE, u as CLAUDE_OPUS_5_THINKING_PROFILE, v as resolveClaudeHaiku55ModelIdentity, w as resolveClaudeSonnet55ModelIdentity, x as resolveClaudeNativeThinkingLevelMap, y as resolveClaudeModelIdentity } from "./index-D27wAoOr.mjs";
2
2
  import { $ as StopReason, A as ModelCostConfig, At as extractDiagnosticError, B as ProviderImagesOptions, C as KnownApi, Ct as readRuntimeContextMetadata, D as MaybePromise, Dt as DiagnosticErrorInfo, E as MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE, Et as AssistantMessageDiagnostic, F as OpenRouterRouting, G as RUNTIME_CONTEXT_CUSTOM_TYPE, H as ProviderResponse, I as PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, J as RUNTIME_CONTEXT_HEADER, K as RUNTIME_CONTEXT_END_MARKER, L as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, M as ModelThinkingLevel, Mt as isProviderRefusalAssistantError, N as OpenAICompletionsCompat, O as Message, Ot as appendAssistantMessageDiagnostic, P as OpenAIResponsesCompat, Q as SimpleStreamOptions, R as PricingTier, S as ImagesStopReason, St as labelRuntimeContextText, T as KnownImagesProvider, Tt as setRuntimeContextRetention, U as ProviderStreamOptions, V as ProviderReplayState, W as RUNTIME_CONTEXT_BEGIN_MARKER, X as RawPricingTier, Y as RawModelCostConfig, Z as RuntimeContextMessage, _ as ImagesInputContent, _t as escapeRuntimeContextFooter, a as AssistantMessage, at as ThinkingBudgets, b as ImagesOutputContent, bt as isRuntimeContextMessage, c as AssistantMessageEventStreamLike, ct as ThinkingLevelMap, d as Context, dt as ToolResultMessage, et as StreamFn, f as DEFAULT_MISSING_TOOL_RESULT_TEXT, ft as Transport, g as ImagesFunction, gt as VercelGatewayRouting, h as ImagesContext, ht as ValidateToolArgumentsFn, i as AssistantImages, it as TextSignatureV1, j as ModelCostRates, jt as formatThrownValue, k as Model, kt as createAssistantMessageDiagnostic, l as CacheRetention, lt as Tool, m as ImagesApi, mt as UserMessage, n as Api, nt as StreamOptions, o as AssistantMessageEvent, ot as ThinkingContent, p as ImageContent, pt as Usage, q as RUNTIME_CONTEXT_FOOTER, r as AssistantDeliveryTtsFacts, rt as TextContent, s as AssistantMessageEventStreamContract, st as ThinkingLevel, t as AnthropicMessagesCompat, tt as StreamFunction, u as CompleteSimpleFn, ut as ToolCall, v as ImagesModel, vt as hasLegacyRuntimeContextEnvelope, w as KnownImagesApi, wt as runtimeContextContentToText, x as ImagesProvider, xt as labelRuntimeContextContent, y as ImagesOptions, yt as hasRuntimeContextMarker, z as Provider } from "./types-DvzmWW8J.mjs";
3
3
  import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-DrRM_90c.mjs";
4
4
  import { n as validateToolCall, t as validateToolArguments } from "./validation-B3lQt_VE.mjs";
5
- import "./types-Dlz-8qcy.mjs";
6
- export { AnthropicMessagesCompat, Api, AssistantDeliveryTtsFacts, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_HAIKU_55_THINKING_PROFILE, CLAUDE_OPUS_55_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_55_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, CacheRetention, CompleteSimpleFn, Context, DEFAULT_MISSING_TOOL_RESULT_TEXT, DiagnosticErrorInfo, EventStream, ImageContent, ImagesApi, ImagesContext, ImagesFunction, ImagesInputContent, ImagesModel, ImagesOptions, ImagesOutputContent, ImagesProvider, ImagesStopReason, KnownApi, KnownImagesApi, KnownImagesProvider, MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE, MaybePromise, Message, Model, ModelCostConfig, ModelCostRates, ModelThinkingLevel, OpenAICompletionsCompat, OpenAIResponsesCompat, OpenRouterRouting, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, PricingTier, Provider, ProviderImagesOptions, type ProviderRefusalReview, ProviderReplayState, ProviderResponse, ProviderStreamOptions, RUNTIME_CONTEXT_BEGIN_MARKER, RUNTIME_CONTEXT_CUSTOM_TYPE, RUNTIME_CONTEXT_END_MARKER, RUNTIME_CONTEXT_FOOTER, RUNTIME_CONTEXT_HEADER, RawModelCostConfig, RawPricingTier, RuntimeContextMessage, SimpleStreamOptions, StopReason, StreamFn, StreamFunction, StreamOptions, TextContent, TextSignatureV1, ThinkingBudgets, ThinkingContent, ThinkingLevel, ThinkingLevelMap, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage, ValidateToolArgumentsFn, VercelGatewayRouting, appendAssistantMessageDiagnostic, bindsClaudeThinkingPrefix, calculateUsageCost, createAssistantMessageDiagnostic, createAssistantMessageEventStream, escapeRuntimeContextFooter, extractDiagnosticError, formatThrownValue, hasLegacyRuntimeContextEnvelope, hasRuntimeContextMarker, isProviderRefusalAssistantError, isRuntimeContextMessage, labelRuntimeContextContent, labelRuntimeContextText, normalizeModelCostConfig, normalizeResolvedPricing, readProviderRefusalReview, readRuntimeContextMetadata, requiresClaudeBetweenToolsThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeHaiku55ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet55ModelIdentity, resolveClaudeSonnet5ModelIdentity, runtimeContextContentToText, setRuntimeContextRetention, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeInHistorySystemMessages, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
5
+ import "./types-UlNana-2.mjs";
6
+ export { AnthropicMessagesCompat, Api, AssistantDeliveryTtsFacts, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_HAIKU_55_THINKING_PROFILE, CLAUDE_OPUS_55_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_55_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, CacheRetention, CompleteSimpleFn, Context, DEFAULT_MISSING_TOOL_RESULT_TEXT, DiagnosticErrorInfo, EventStream, ImageContent, ImagesApi, ImagesContext, ImagesFunction, ImagesInputContent, ImagesModel, ImagesOptions, ImagesOutputContent, ImagesProvider, ImagesStopReason, KnownApi, KnownImagesApi, KnownImagesProvider, MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE, MaybePromise, Message, Model, ModelCostConfig, ModelCostRates, ModelThinkingLevel, OpenAICompletionsCompat, OpenAIResponsesCompat, OpenRouterRouting, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, PricingTier, Provider, ProviderImagesOptions, type ProviderRefusalReview, ProviderReplayState, ProviderResponse, ProviderStreamOptions, RUNTIME_CONTEXT_BEGIN_MARKER, RUNTIME_CONTEXT_CUSTOM_TYPE, RUNTIME_CONTEXT_END_MARKER, RUNTIME_CONTEXT_FOOTER, RUNTIME_CONTEXT_HEADER, RawModelCostConfig, RawPricingTier, RuntimeContextMessage, SimpleStreamOptions, StopReason, StreamFn, StreamFunction, StreamOptions, TextContent, TextSignatureV1, ThinkingBudgets, ThinkingContent, ThinkingLevel, ThinkingLevelMap, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage, ValidateToolArgumentsFn, VercelGatewayRouting, appendAssistantMessageDiagnostic, bindsClaudeThinkingPrefix, calculateUsageCost, createAssistantMessageDiagnostic, createAssistantMessageEventStream, escapeRuntimeContextFooter, extractDiagnosticError, formatThrownValue, hasLegacyRuntimeContextEnvelope, hasRuntimeContextMarker, isProviderRefusalAssistantError, isRuntimeContextMessage, labelRuntimeContextContent, labelRuntimeContextText, normalizeModelCostConfig, normalizeResolvedPricing, readProviderRefusalReview, readRuntimeContextMetadata, requiresClaudeBetweenToolsThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeHaiku55ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet55ModelIdentity, resolveClaudeSonnet5ModelIdentity, runtimeContextContentToText, setRuntimeContextRetention, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeInHistorySystemMessages, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, supportsClaudeServerCompaction, validateToolArguments, validateToolCall };
package/dist/types.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { C as supportsClaude1MContext, D as supportsClaudeNativeMaxEffort, E as supportsClaudeInHistorySystemMessages, O as supportsClaudeNativeXhighEffort, S as resolveClaudeSonnet5ModelIdentity, T as supportsClaudeFastMode, _ as resolveClaudeMythos5ModelIdentity, a as CLAUDE_HAIKU_55_THINKING_PROFILE, b as resolveClaudeOpus5ModelIdentity, c as CLAUDE_SONNET_55_THINKING_PROFILE, d as requiresClaudeBetweenToolsThinking, f as requiresClaudeDefaultSampling, g as resolveClaudeModelIdentity, h as resolveClaudeHaiku55ModelIdentity, i as CLAUDE_FABLE_5_THINKING_PROFILE, l as CLAUDE_SONNET_5_THINKING_PROFILE, m as resolveClaudeFable5ModelIdentity, n as normalizeModelCostConfig, o as CLAUDE_OPUS_55_THINKING_PROFILE, p as requiresClaudeMandatoryAdaptiveThinking, r as normalizeResolvedPricing, s as CLAUDE_OPUS_5_THINKING_PROFILE, t as calculateUsageCost, u as bindsClaudeThinkingPrefix, v as resolveClaudeNativeThinkingLevelMap, w as supportsClaudeAdaptiveThinking, x as resolveClaudeSonnet55ModelIdentity, y as resolveClaudeOpus55ModelIdentity } from "./src-DWJq14pn.mjs";
1
+ import { C as supportsClaude1MContext, D as supportsClaudeNativeMaxEffort, E as supportsClaudeInHistorySystemMessages, O as supportsClaudeNativeXhighEffort, S as resolveClaudeSonnet5ModelIdentity, T as supportsClaudeFastMode, _ as resolveClaudeMythos5ModelIdentity, a as CLAUDE_HAIKU_55_THINKING_PROFILE, b as resolveClaudeOpus5ModelIdentity, c as CLAUDE_SONNET_55_THINKING_PROFILE, d as requiresClaudeBetweenToolsThinking, f as requiresClaudeDefaultSampling, g as resolveClaudeModelIdentity, h as resolveClaudeHaiku55ModelIdentity, i as CLAUDE_FABLE_5_THINKING_PROFILE, k as supportsClaudeServerCompaction, l as CLAUDE_SONNET_5_THINKING_PROFILE, m as resolveClaudeFable5ModelIdentity, n as normalizeModelCostConfig, o as CLAUDE_OPUS_55_THINKING_PROFILE, p as requiresClaudeMandatoryAdaptiveThinking, r as normalizeResolvedPricing, s as CLAUDE_OPUS_5_THINKING_PROFILE, t as calculateUsageCost, u as bindsClaudeThinkingPrefix, v as resolveClaudeNativeThinkingLevelMap, w as supportsClaudeAdaptiveThinking, x as resolveClaudeSonnet55ModelIdentity, y as resolveClaudeOpus55ModelIdentity } from "./src-VWy9E7DZ.mjs";
2
2
  import { _ as runtimeContextContentToText, a as RUNTIME_CONTEXT_BEGIN_MARKER, c as RUNTIME_CONTEXT_FOOTER, d as hasLegacyRuntimeContextEnvelope, f as hasRuntimeContextMarker, g as readRuntimeContextMetadata, h as labelRuntimeContextText, i as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, l as RUNTIME_CONTEXT_HEADER, m as labelRuntimeContextContent, n as MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE, o as RUNTIME_CONTEXT_CUSTOM_TYPE, p as isRuntimeContextMessage, r as PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, s as RUNTIME_CONTEXT_END_MARKER, t as DEFAULT_MISSING_TOOL_RESULT_TEXT, u as escapeRuntimeContextFooter, v as setRuntimeContextRetention } from "./types-CQc6JNG4.mjs";
3
3
  import { a as isProviderRefusalAssistantError, i as formatThrownValue, n as createAssistantMessageDiagnostic, o as readProviderRefusalReview, r as extractDiagnosticError, t as appendAssistantMessageDiagnostic } from "./diagnostics-DzrF1h4J.mjs";
4
4
  import { a as createAssistantMessageEventStream, n as EventStream, t as AssistantMessageEventStream } from "./event-stream-C5AbCAaZ.mjs";
5
5
  import { n as validateToolCall, t as validateToolArguments } from "./validation-DbqlIfDn.mjs";
6
- export { AssistantMessageEventStream, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_HAIKU_55_THINKING_PROFILE, CLAUDE_OPUS_55_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_55_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, DEFAULT_MISSING_TOOL_RESULT_TEXT, EventStream, MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, RUNTIME_CONTEXT_BEGIN_MARKER, RUNTIME_CONTEXT_CUSTOM_TYPE, RUNTIME_CONTEXT_END_MARKER, RUNTIME_CONTEXT_FOOTER, RUNTIME_CONTEXT_HEADER, appendAssistantMessageDiagnostic, bindsClaudeThinkingPrefix, calculateUsageCost, createAssistantMessageDiagnostic, createAssistantMessageEventStream, escapeRuntimeContextFooter, extractDiagnosticError, formatThrownValue, hasLegacyRuntimeContextEnvelope, hasRuntimeContextMarker, isProviderRefusalAssistantError, isRuntimeContextMessage, labelRuntimeContextContent, labelRuntimeContextText, normalizeModelCostConfig, normalizeResolvedPricing, readProviderRefusalReview, readRuntimeContextMetadata, requiresClaudeBetweenToolsThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeHaiku55ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet55ModelIdentity, resolveClaudeSonnet5ModelIdentity, runtimeContextContentToText, setRuntimeContextRetention, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeInHistorySystemMessages, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
6
+ export { AssistantMessageEventStream, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_HAIKU_55_THINKING_PROFILE, CLAUDE_OPUS_55_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_55_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, DEFAULT_MISSING_TOOL_RESULT_TEXT, EventStream, MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE, PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE, PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, RUNTIME_CONTEXT_BEGIN_MARKER, RUNTIME_CONTEXT_CUSTOM_TYPE, RUNTIME_CONTEXT_END_MARKER, RUNTIME_CONTEXT_FOOTER, RUNTIME_CONTEXT_HEADER, appendAssistantMessageDiagnostic, bindsClaudeThinkingPrefix, calculateUsageCost, createAssistantMessageDiagnostic, createAssistantMessageEventStream, escapeRuntimeContextFooter, extractDiagnosticError, formatThrownValue, hasLegacyRuntimeContextEnvelope, hasRuntimeContextMarker, isProviderRefusalAssistantError, isRuntimeContextMessage, labelRuntimeContextContent, labelRuntimeContextText, normalizeModelCostConfig, normalizeResolvedPricing, readProviderRefusalReview, readRuntimeContextMetadata, requiresClaudeBetweenToolsThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveClaudeFable5ModelIdentity, resolveClaudeHaiku55ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet55ModelIdentity, resolveClaudeSonnet5ModelIdentity, runtimeContextContentToText, setRuntimeContextRetention, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeInHistorySystemMessages, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, supportsClaudeServerCompaction, validateToolArguments, validateToolCall };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/ai",
3
- "version": "2026.10.1",
3
+ "version": "2026.10.2",
4
4
  "description": "Reusable model provider adapters and streaming runtime from OpenClaw",
5
5
  "keywords": [
6
6
  "ai",
@@ -1 +0,0 @@
1
- import "./index-DJrNQnKw.mjs";