@openclaw/ai 2026.10.5 → 2026.10.10-beta.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 (119) hide show
  1. package/README.md +11 -0
  2. package/dist/{anthropic-DIIiiz99.mjs → anthropic-D6spfBri.mjs} +16 -18
  3. package/dist/{anthropic-payload-policy-DGblkHL5.d.mts → anthropic-payload-policy-Cr8xjazC.d.mts} +6 -3
  4. package/dist/{anthropic-stream-reducer-DfMVFm-r.mjs → anthropic-stream-reducer-CzPXOaLM.mjs} +55 -227
  5. package/dist/anthropic-tool-projection-BdAS3rtJ.mjs +165 -0
  6. package/dist/anthropic-tool-projection-DKH-aEWU.d.mts +51 -0
  7. package/dist/{api-registry-BhXXYdRA.d.mts → api-registry-gDt0faai.d.mts} +2 -2
  8. package/dist/{assistant-output-BuhRpLeD.mjs → assistant-output-6iFA1nbC.mjs} +2 -2
  9. package/dist/{azure-openai-responses-DGQnXRMs.mjs → azure-openai-responses-0TqHwnlD.mjs} +8 -8
  10. package/dist/{cloudflare-5qSGvIUH.mjs → cloudflare-Dttf8jKq.mjs} +1 -1
  11. package/dist/{credential-redaction-BHxruEH6.d.mts → credential-redaction-XvsPf7Yi.d.mts} +1 -0
  12. package/dist/{diagnostics-tQasYct1.mjs → diagnostics-Cv7cW3pS.mjs} +3 -3
  13. package/dist/diagnostics.d.mts +6 -6
  14. package/dist/diagnostics.mjs +2 -2
  15. package/dist/{env-api-keys-CrxwdylR.mjs → env-api-keys-Xd8dm_aV.mjs} +10 -34
  16. package/dist/event-stream-CDpFza-M.d.mts +1 -0
  17. package/dist/{event-stream-BcqWLo_u.d.mts → event-stream-CzpE1g_o.d.mts} +1 -1
  18. package/dist/event-stream.d.mts +2 -2
  19. package/dist/{github-copilot-request-facts-DEE6gcB9.mjs → github-copilot-request-facts-F-EmvkpW.mjs} +1 -1
  20. package/dist/{google-interactions-zIz70M2e.mjs → google-interactions-DVQ7AaSF.mjs} +29 -50
  21. package/dist/{google-messages-CNbUJK5E.mjs → google-messages-DfpHVTaD.mjs} +15 -5
  22. package/dist/{google-provider-stream-Cn0XF1MG.mjs → google-provider-stream-DJ8ANfsS.mjs} +6 -6
  23. package/dist/{google-shared-BPnWP4tT.mjs → google-shared-VTcCJLW3.mjs} +21 -29
  24. package/dist/{google-vertex-XQ7OQtaM.mjs → google-vertex-Bkfizj7M.mjs} +3 -3
  25. package/dist/{google-BlbTC1Xp.mjs → google-zWpkDSeN.mjs} +4 -4
  26. package/dist/{host-Bf3NjYNj.mjs → host-B2gk-d1H.mjs} +5 -11
  27. package/dist/{host-CTDz7LXD.d.mts → host-jJOffdlW.d.mts} +4 -6
  28. package/dist/{host-policy-BzZluO6_.mjs → host-policy-mpqGhbeM.mjs} +1 -1
  29. package/dist/{index-BYDvopUB.d.mts → index-DSprYWaz.d.mts} +7 -5
  30. package/dist/index.d.mts +7 -7
  31. package/dist/index.mjs +6 -6
  32. package/dist/internal/anthropic.d.mts +7 -53
  33. package/dist/internal/anthropic.mjs +6 -5
  34. package/dist/internal/google-model-family.mjs +1 -1
  35. package/dist/internal/openai-completions-compat.d.mts +1 -1
  36. package/dist/internal/openai-completions-compat.mjs +1 -1
  37. package/dist/internal/openai-responses-payload-policy.d.mts +3 -3
  38. package/dist/internal/openai-responses-payload-policy.mjs +3 -3
  39. package/dist/internal/openai.d.mts +17 -26
  40. package/dist/internal/openai.mjs +10 -10
  41. package/dist/internal/retry-after.d.mts +1 -1
  42. package/dist/internal/retry-after.mjs +80 -55
  43. package/dist/internal/runtime.d.mts +9 -31
  44. package/dist/internal/runtime.mjs +10 -116
  45. package/dist/internal/shared.d.mts +9 -7
  46. package/dist/internal/shared.mjs +8 -6
  47. package/dist/internal/tool-schema.d.mts +83 -5
  48. package/dist/internal/tool-schema.mjs +4 -3
  49. package/dist/{mistral-dCDCR5ur.mjs → mistral-CATJrwne.mjs} +32 -35
  50. package/dist/model-request-body-BD5vy4rP.d.mts +17 -0
  51. package/dist/{number-coercion-C3hztWoY.mjs → number-coercion-37gmNkuA.mjs} +1 -1
  52. package/dist/{openai-chatgpt-responses-D8-q7cgy.mjs → openai-chatgpt-responses-CtdnpWwe.mjs} +95 -63
  53. package/dist/{openai-completions-CMN24pza.mjs → openai-completions-B6sET3oI.mjs} +10 -8
  54. package/dist/{openai-completions-compat-i-nLZxFy.d.mts → openai-completions-compat-1gsjP-KO.d.mts} +6 -3
  55. package/dist/{openai-completions-compat-CYX18uDk.mjs → openai-completions-compat-CFhQ3UVU.mjs} +7 -2
  56. package/dist/{openai-completions-transport-DuXQOxrH.mjs → openai-completions-transport-DviPEqw3.mjs} +369 -237
  57. package/dist/{openai-prompt-cache-r93BJhjm.mjs → openai-prompt-cache-DJ_P143P.mjs} +1 -1
  58. package/dist/{openai-prompt-cache-DIPMrMFy.d.mts → openai-prompt-cache-DgjD-UL5.d.mts} +2 -2
  59. package/dist/{openai-responses-BMxoJdTC.mjs → openai-responses-BXsJK-mD.mjs} +13 -15
  60. package/dist/{openai-responses-compaction-replay-B2FE4Nw8.d.mts → openai-responses-compaction-replay-Cvnl_nCq.d.mts} +5 -5
  61. package/dist/{openai-responses-contracts-DlKMMTxK.mjs → openai-responses-contracts-Bx-16mnf.mjs} +45 -6
  62. package/dist/{openai-responses-contracts-DKqMJ1Ct.d.mts → openai-responses-contracts-CQ4_AWjL.d.mts} +20 -8
  63. package/dist/{openai-responses-endpoint-CinGh4VZ.mjs → openai-responses-endpoint-D4v-eeYy.mjs} +55 -22
  64. package/dist/{openai-responses-payload-policy-C7GsA1y0.d.mts → openai-responses-payload-policy-BzM52TTH.d.mts} +9 -3
  65. package/dist/openai-responses-request-lifecycle-CTdAb2v1.mjs +246 -0
  66. package/dist/{openai-responses-shared-afo9-s16.mjs → openai-responses-shared-Bv_1NtH9.mjs} +284 -173
  67. package/dist/{openai-responses-terminal-usage-BygjiAdi.d.mts → openai-responses-terminal-usage-CpVjkqn-.d.mts} +2 -2
  68. package/dist/{openai-tool-schema-DDPXsvJP.mjs → openai-tool-schema-Buv0GXFb.mjs} +170 -237
  69. package/dist/overflow-DJHXTNBQ.mjs +117 -0
  70. package/dist/{positive-integer-CqWjqSi9.mjs → positive-integer-Bb4Evc7L.mjs} +1 -1
  71. package/dist/prompt-cache-stability-D_MeCQFI.mjs +32 -0
  72. package/dist/{provider-error-xumb1V3F.d.mts → provider-error-CnaWYTRY.d.mts} +1 -0
  73. package/dist/{provider-error-CF9GWCs2.mjs → provider-error-qtZD2inE.mjs} +75 -13
  74. package/dist/{provider-options-CVrXZBtA.d.mts → provider-options-DeYeaflL.d.mts} +52 -6
  75. package/dist/{transport-utils-34BQoXq3.mjs → provider-replay-context-J6CfU3m1.mjs} +28 -5
  76. package/dist/{provider-transport-turn-state-BYrELw8H.mjs → provider-transport-turn-state-Jxppzuc2.mjs} +5 -5
  77. package/dist/{provider-types-CHtRx0dI.d.mts → provider-types-ODq57rG_.d.mts} +3 -3
  78. package/dist/provider-types.d.mts +6 -6
  79. package/dist/providers.d.mts +2 -2
  80. package/dist/providers.mjs +11 -11
  81. package/dist/{reasoning-tag-text-partitioner-CpOy9-IQ.mjs → reasoning-tag-text-partitioner-DzlRubwU.mjs} +134 -47
  82. package/dist/{required-api-key-CFJvcFy_.mjs → required-api-key-D088S4Cd.mjs} +1 -1
  83. package/dist/{retry-after-CdCURCVg.d.mts → retry-after-sw-XX8aC.d.mts} +1 -1
  84. package/dist/sanitize-unicode-CRGuMONI.mjs +8 -0
  85. package/dist/sanitize-unicode-ZqVLLEKC.d.mts +27 -0
  86. package/dist/{session-resources-D1wgDQ8C.mjs → session-resources-vKvGIE3J.mjs} +1 -10
  87. package/dist/{simple-options-BAu4B54D.mjs → simple-options-BYgC6kse.mjs} +68 -79
  88. package/dist/{src-C44MKrW5.mjs → src-CyA0zJnt.mjs} +6 -2
  89. package/dist/{stream-Dd8DwRFL.mjs → stream-DLBirT0e.mjs} +8 -47
  90. package/dist/{stream-first-event-timeout-Dc42hKv6.mjs → stream-first-event-timeout-D_TfJHRJ.mjs} +1 -1
  91. package/dist/{string-coerce-CtgOVOSv.mjs → string-coerce-Cj8sqWHx.mjs} +26 -1
  92. package/dist/tool-schema-json-projection-B0hHDV7N.mjs +492 -0
  93. package/dist/{transport-stream-shared-BmpzDtdQ.d.mts → transport-stream-shared-8ru8eX4s.d.mts} +5 -5
  94. package/dist/{transport-stream-shared-CWGOuLcA.mjs → transport-stream-shared-CzQlAzJH.mjs} +27 -75
  95. package/dist/transports.d.mts +33 -28
  96. package/dist/transports.mjs +42 -48
  97. package/dist/{types-CQc6JNG4.mjs → types-BXd0kI8-.mjs} +1 -1
  98. package/dist/types-CBJthzJX.d.mts +1 -0
  99. package/dist/{types-Bd2T86VJ.d.mts → types-CVYzKrMl.d.mts} +20 -3
  100. package/dist/types.d.mts +6 -6
  101. package/dist/types.mjs +4 -4
  102. package/dist/{validation-ZX_sPVV0.mjs → validation-9FSkE8T-.mjs} +22 -3
  103. package/dist/{validation-DdGB1yy3.d.mts → validation-BQ5u20Ru.d.mts} +1 -1
  104. package/dist/validation.d.mts +1 -1
  105. package/dist/validation.mjs +1 -1
  106. package/package.json +3 -3
  107. package/dist/assistant-text-phase-mvdMcrY-.mjs +0 -50
  108. package/dist/event-stream-6UNs-AhN.d.mts +0 -1
  109. package/dist/expect-lbe3Hgrh.mjs +0 -8
  110. package/dist/json-schema-Bp07Qui3.mjs +0 -22
  111. package/dist/openai-responses-request-lifecycle-NSIJo9jY.mjs +0 -67
  112. package/dist/openai-tool-projection-793cE3QX.d.mts +0 -37
  113. package/dist/openai-tool-schema-a5ysBBga.d.mts +0 -32
  114. package/dist/rolldown-runtime-BhDjJH2R.mjs +0 -15
  115. package/dist/sanitize-unicode-CjDG6jJx.d.mts +0 -5
  116. package/dist/string-normalization-I3ux50s9.mjs +0 -28
  117. package/dist/text-signature-CUXnvk_c.mjs +0 -34
  118. package/dist/tool-schema-json-projection-B8sG1I9v.mjs +0 -180
  119. package/dist/types-Kdfw_04V.d.mts +0 -1
package/dist/types.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { A as supportsClaudeInHistorySystemMessages, C as resolveClaudeOpus55ModelIdentity, D as supportsClaude1MContext, E as resolveClaudeSonnet5ModelIdentity, M as supportsClaudeNativeXhighEffort, O as supportsClaudeAdaptiveThinking, S as resolveClaudeNativeThinkingLevelMap, T as resolveClaudeSonnet55ModelIdentity, _ as requiresClaudeMandatoryAdaptiveThinking, a as normalizeResolvedPricing, b as resolveClaudeModelIdentity, c as CLAUDE_FABLE_5_THINKING_PROFILE, d as CLAUDE_OPUS_5_THINKING_PROFILE, f as CLAUDE_SONNET_55_THINKING_PROFILE, g as requiresClaudeDefaultSampling, h as requiresClaudeBetweenToolsThinking, i as normalizeModelCostConfig, j as supportsClaudeNativeMaxEffort, k as supportsClaudeFastMode, l as CLAUDE_HAIKU_55_THINKING_PROFILE, m as bindsClaudeThinkingPrefix, n as appendTextDeltaToAssistantMessage, o as ProviderRefusalReview, p as CLAUDE_SONNET_5_THINKING_PROFILE, r as calculateUsageCost, s as readProviderRefusalReview, u as CLAUDE_OPUS_55_THINKING_PROFILE, v as resolveClaudeFable5ModelIdentity, w as resolveClaudeOpus5ModelIdentity, x as resolveClaudeMythos5ModelIdentity, y as resolveClaudeHaiku55ModelIdentity } from "./index-BYDvopUB.mjs";
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-Bd2T86VJ.mjs";
3
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-BcqWLo_u.mjs";
4
- import { n as validateToolCall, t as validateToolArguments } from "./validation-DdGB1yy3.mjs";
5
- import "./types-Kdfw_04V.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, appendTextDeltaToAssistantMessage, 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 };
1
+ import { A as supportsClaudeInHistorySystemMessages, C as resolveClaudeOpus55ModelIdentity, D as supportsClaude1MContext, E as resolveClaudeSonnet5ModelIdentity, M as supportsClaudeNativeXhighEffort, N as supportsClaudeServerCompaction, O as supportsClaudeAdaptiveThinking, S as resolveClaudeNativeThinkingLevelMap, T as resolveClaudeSonnet55ModelIdentity, _ as requiresClaudeMandatoryAdaptiveThinking, a as normalizeResolvedPricing, b as resolveClaudeModelIdentity, c as CLAUDE_FABLE_5_THINKING_PROFILE, d as CLAUDE_OPUS_5_THINKING_PROFILE, f as CLAUDE_SONNET_55_THINKING_PROFILE, g as requiresClaudeDefaultSampling, h as requiresClaudeBetweenToolsThinking, i as normalizeModelCostConfig, j as supportsClaudeNativeMaxEffort, k as supportsClaudeFastMode, l as CLAUDE_HAIKU_55_THINKING_PROFILE, m as bindsClaudeThinkingPrefix, n as appendTextDeltaToAssistantMessage, o as ProviderRefusalReview, p as CLAUDE_SONNET_5_THINKING_PROFILE, r as calculateUsageCost, s as readProviderRefusalReview, u as CLAUDE_OPUS_55_THINKING_PROFILE, v as resolveClaudeFable5ModelIdentity, w as resolveClaudeOpus5ModelIdentity, x as resolveClaudeMythos5ModelIdentity, y as resolveClaudeHaiku55ModelIdentity } from "./index-DSprYWaz.mjs";
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-CVYzKrMl.mjs";
3
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-CzpE1g_o.mjs";
4
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-BQ5u20Ru.mjs";
5
+ import "./types-CBJthzJX.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, appendTextDeltaToAssistantMessage, 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,7 +1,7 @@
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-C44MKrW5.mjs";
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";
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-CyA0zJnt.mjs";
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-BXd0kI8-.mjs";
3
3
  import { t as appendTextDeltaToAssistantMessage } from "./assistant-message-events-CHMJgbhs.mjs";
4
4
  import { a as isProviderRefusalAssistantError, i as formatThrownValue, n as createAssistantMessageDiagnostic, o as readProviderRefusalReview, r as extractDiagnosticError, t as appendAssistantMessageDiagnostic } from "./diagnostics-DzrF1h4J.mjs";
5
5
  import { a as createAssistantMessageEventStream, n as EventStream, t as AssistantMessageEventStream } from "./event-stream-X2gmsUWv.mjs";
6
- import { n as validateToolCall, t as validateToolArguments } from "./validation-ZX_sPVV0.mjs";
7
- 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, appendTextDeltaToAssistantMessage, 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
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-9FSkE8T-.mjs";
7
+ 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, appendTextDeltaToAssistantMessage, 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 };
@@ -1,7 +1,26 @@
1
- import { t as parseLocalSchemaRefPointer } from "./json-schema-Bp07Qui3.mjs";
2
- import { o as parseStrictFiniteNumber } from "./number-coercion-C3hztWoY.mjs";
1
+ import { o as parseStrictFiniteNumber } from "./number-coercion-37gmNkuA.mjs";
2
+ import "typebox/guard";
3
3
  import { Pointer } from "typebox/schema";
4
4
  import { Compile } from "typebox/compile";
5
+ //#region packages/normalization-core/src/json-schema.ts
6
+ /** Decode a local URI fragment before recognizing or splitting its JSON Pointer. */
7
+ function decodeLocalSchemaRefFragment(ref) {
8
+ if (!ref.startsWith("#")) return;
9
+ try {
10
+ return decodeURIComponent(ref.slice(1));
11
+ } catch {
12
+ return;
13
+ }
14
+ }
15
+ function decodeJsonPointerSegment(segment) {
16
+ return segment.replaceAll("~1", "/").replaceAll("~0", "~");
17
+ }
18
+ /** Encoded slashes separate tokens; ~1 remains inside a single token. */
19
+ function parseLocalSchemaRefPointer(ref) {
20
+ const fragment = decodeLocalSchemaRefFragment(ref);
21
+ return fragment?.startsWith("/") ? fragment.slice(1).split("/").map(decodeJsonPointerSegment) : void 0;
22
+ }
23
+ //#endregion
5
24
  //#region packages/llm-core/src/validation.ts
6
25
  const validatorCache = /* @__PURE__ */ new WeakMap();
7
26
  /** Maximum string length accepted for schema-gated JSON coercion. */
@@ -207,4 +226,4 @@ function validateToolArguments(tool, toolCall) {
207
226
  throw new Error(`Validation failed for tool "${toolCall.name}":\n${errors}\n\nReceived arguments:\n${JSON.stringify(toolCall.arguments, null, 2)}`);
208
227
  }
209
228
  //#endregion
210
- export { validateToolCall as n, validateToolArguments as t };
229
+ export { validateToolCall as n, parseLocalSchemaRefPointer as r, validateToolArguments as t };
@@ -1,4 +1,4 @@
1
- import { lt as Tool, ut as ToolCall } from "./types-Bd2T86VJ.mjs";
1
+ import { lt as Tool, ut as ToolCall } from "./types-CVYzKrMl.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-DdGB1yy3.mjs";
1
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-BQ5u20Ru.mjs";
2
2
  export { validateToolArguments, validateToolCall };
@@ -1,2 +1,2 @@
1
- import { n as validateToolCall, t as validateToolArguments } from "./validation-ZX_sPVV0.mjs";
1
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-9FSkE8T-.mjs";
2
2
  export { validateToolArguments, validateToolCall };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/ai",
3
- "version": "2026.10.5",
3
+ "version": "2026.10.10-beta.2",
4
4
  "description": "Reusable model provider adapters and streaming runtime from OpenClaw",
5
5
  "keywords": [
6
6
  "ai",
@@ -121,9 +121,9 @@
121
121
  "@anthropic-ai/sdk": "0.131.0",
122
122
  "@google/genai": "2.27.0",
123
123
  "@mistralai/mistralai": "2.7.0",
124
- "openai": "7.27.0",
124
+ "openai": "7.28.0",
125
125
  "partial-json": "0.1.7",
126
- "typebox": "1.3.34"
126
+ "typebox": "1.3.35"
127
127
  },
128
128
  "devDependencies": {
129
129
  "@openclaw/model-catalog-core": "0.0.0-private",
@@ -1,50 +0,0 @@
1
- import { t as encodeTextSignatureV1 } from "./text-signature-CUXnvk_c.mjs";
2
- import { randomUUID } from "node:crypto";
3
- //#region packages/ai/src/utils/assistant-text-phase.ts
4
- const EMPTY_ASSISTANT_TEXT_BLOCK_SET = /* @__PURE__ */ new Set();
5
- function isAssistantTextPhaseBlock(block) {
6
- if (!block || typeof block !== "object") return false;
7
- const record = block;
8
- return record.type === "text" && typeof record.text === "string";
9
- }
10
- function tagUnphasedText(content, phase) {
11
- const idPrefix = phase === "commentary" ? "commentary" : "final-answer";
12
- const textBlocks = content.filter(isAssistantTextPhaseBlock);
13
- let phaseIndex = textBlocks.filter((block) => block.textSignature !== void 0).length;
14
- const tagged = /* @__PURE__ */ new Map();
15
- for (const block of textBlocks) {
16
- if (block.text.trim().length === 0 || block.textSignature !== void 0) continue;
17
- const signature = encodeTextSignatureV1(`${idPrefix}-${phaseIndex}-${randomUUID().replaceAll("-", "").slice(0, 24)}`, phase);
18
- block.textSignature = signature;
19
- tagged.set(block, signature);
20
- phaseIndex += 1;
21
- }
22
- return tagged;
23
- }
24
- /** Tags unphased narration before a tool-call event becomes consumer-visible. */
25
- function tagPendingCommentaryText(content) {
26
- return tagUnphasedText(content, "commentary");
27
- }
28
- /** Records the confirmed final-answer boundary after reasoning resumes. */
29
- function tagInterruptedTextPhases(content, interruptedText, preservedVisibleText = EMPTY_ASSISTANT_TEXT_BLOCK_SET) {
30
- const interruptedTextIndex = content.indexOf(interruptedText);
31
- if (interruptedTextIndex === -1) return;
32
- const finalAnswerIndex = content.findIndex((block, index) => index > interruptedTextIndex && isAssistantTextPhaseBlock(block) && block.text.trim().length > 0);
33
- if (finalAnswerIndex === -1) return;
34
- tagUnphasedText(content.slice(0, finalAnswerIndex).filter((block) => !preservedVisibleText.has(block)), "commentary");
35
- tagUnphasedText(content.filter((block, index) => index >= finalAnswerIndex || preservedVisibleText.has(block)), "final_answer");
36
- }
37
- /** Prevents unresolved completion text from becoming a fallback answer after stream failure. */
38
- function tagUnresolvedTextAsCommentary(message) {
39
- if (message.openclawDelivery?.textPhaseRequiresTerminal) tagUnphasedText(message.content, "commentary");
40
- }
41
- /** Rolls back only the exact provisional signatures created by this transport turn. */
42
- function clearPendingCommentaryText(tags) {
43
- for (const [block, signature] of tags) if (block.textSignature === signature) delete block.textSignature;
44
- tags.clear();
45
- }
46
- function rememberPendingCommentaryTags(target, tagged) {
47
- for (const [block, signature] of tagged) target.set(block, signature);
48
- }
49
- //#endregion
50
- export { tagUnresolvedTextAsCommentary as a, tagPendingCommentaryText as i, rememberPendingCommentaryTags as n, tagInterruptedTextPhases as r, clearPendingCommentaryText as t };
@@ -1 +0,0 @@
1
- import "./event-stream-BcqWLo_u.mjs";
@@ -1,8 +0,0 @@
1
- //#region packages/normalization-core/src/expect.ts
2
- /** Returns the value or throws with the named context; use for genuine invariants only. */
3
- function expectDefined(value, context) {
4
- if (value === null || value === void 0) throw new Error("expected " + context + " to be defined");
5
- return value;
6
- }
7
- //#endregion
8
- export { expectDefined as t };
@@ -1,22 +0,0 @@
1
- import "typebox/guard";
2
- import "typebox/schema";
3
- //#region packages/normalization-core/src/json-schema.ts
4
- /** Decode a local URI fragment before recognizing or splitting its JSON Pointer. */
5
- function decodeLocalSchemaRefFragment(ref) {
6
- if (!ref.startsWith("#")) return;
7
- try {
8
- return decodeURIComponent(ref.slice(1));
9
- } catch {
10
- return;
11
- }
12
- }
13
- function decodeJsonPointerSegment(segment) {
14
- return segment.replaceAll("~1", "/").replaceAll("~0", "~");
15
- }
16
- /** Encoded slashes separate tokens; ~1 remains inside a single token. */
17
- function parseLocalSchemaRefPointer(ref) {
18
- const fragment = decodeLocalSchemaRefFragment(ref);
19
- return fragment?.startsWith("/") ? fragment.slice(1).split("/").map(decodeJsonPointerSegment) : void 0;
20
- }
21
- //#endregion
22
- export { parseLocalSchemaRefPointer as t };
@@ -1,67 +0,0 @@
1
- import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
- import { h as responsesPromptObserver } from "./openai-responses-contracts-DlKMMTxK.mjs";
3
- import { v as sanitizeTransportPayloadText } from "./transport-stream-shared-CWGOuLcA.mjs";
4
- import { C as stripSystemPromptCacheBoundary } from "./simple-options-BAu4B54D.mjs";
5
- //#region packages/ai/src/transports/openai-responses-prompt-observer-internal.ts
6
- function readFinalResponsesPrompt(request) {
7
- if (typeof request.instructions === "string") return ["instructions", request.instructions];
8
- const message = (Array.isArray(request.input) ? request.input : []).find((item) => {
9
- const role = item.role;
10
- return role === "developer" || role === "system";
11
- });
12
- if (!message) return ["missing", ""];
13
- const content = message.content;
14
- const observedPrompt = typeof content === "string" ? content : Array.isArray(content) ? content.flatMap((part) => part.type === "input_text" ? [part.text] : []).join("") : "";
15
- return [message.role === "developer" ? "input.developer" : "input.system", observedPrompt];
16
- }
17
- function createResponsesPromptEgressObserver(options, assembledPrompt) {
18
- const observer = options ? responsesPromptObserver.get(options) : void 0;
19
- if (!observer) return;
20
- const expectedPrompt = sanitizeTransportPayloadText(stripSystemPromptCacheBoundary(assembledPrompt ?? ""));
21
- return (request, metadata) => {
22
- const [promptSource, observedPrompt] = readFinalResponsesPrompt(request);
23
- observer({
24
- ...metadata,
25
- promptSource,
26
- expectedChars: expectedPrompt.length,
27
- observedChars: observedPrompt.length,
28
- matchesAssembledPrompt: promptSource !== "missing" && observedPrompt === expectedPrompt
29
- });
30
- };
31
- }
32
- //#endregion
33
- //#region packages/ai/src/transports/openai-responses-request-lifecycle.ts
34
- const lifecycleKey = Symbol("openclaw.responsesRequestLifecycle");
35
- /** Private transport carrier: serialized options cannot mint host authority. */
36
- const responsesRequestLifecycle = {
37
- set(options, lifecycle) {
38
- Object.defineProperty(options, lifecycleKey, {
39
- value: lifecycle,
40
- enumerable: true
41
- });
42
- },
43
- get(options) {
44
- if (!options) return;
45
- return Reflect.get(options, lifecycleKey);
46
- }
47
- };
48
- /** A transport receipt must settle before model output can authorize later work. */
49
- function withResponsesRequestAcceptance(events, lifecycle, signal) {
50
- if (!lifecycle) return events;
51
- return { async *[Symbol.asyncIterator]() {
52
- for await (const event of events) {
53
- if (isRecord(event) && event.type === "response.created") {
54
- const response = isRecord(event.response) ? event.response : void 0;
55
- if (typeof response?.id !== "string" || !response.id.trim()) throw new Error("Provider continuation response has no identity");
56
- signal?.throwIfAborted();
57
- lifecycle.assertCurrent();
58
- await lifecycle.accepted(response.id, signal);
59
- signal?.throwIfAborted();
60
- lifecycle.assertCurrent();
61
- }
62
- yield event;
63
- }
64
- } };
65
- }
66
- //#endregion
67
- export { withResponsesRequestAcceptance as n, createResponsesPromptEgressObserver as r, responsesRequestLifecycle as t };
@@ -1,37 +0,0 @@
1
- import OpenAI from "openai";
2
- import { ResponseCreateParamsStreaming } from "openai/resources/responses/responses.js";
3
- //#region packages/ai/src/providers/openai-tool-projection.d.ts
4
- type OpenAIToolDescriptor = {
5
- readonly name?: unknown;
6
- readonly description?: unknown;
7
- readonly parameters: unknown;
8
- };
9
- type OpenAIProjectedTool = {
10
- readonly toolIndex: number;
11
- readonly name: string;
12
- readonly description?: string;
13
- readonly parameters: Record<string, unknown>;
14
- };
15
- type OpenAIToolProjectionDiagnostic = {
16
- readonly toolIndex: number;
17
- readonly toolName?: string;
18
- readonly violations: readonly string[];
19
- };
20
- type OpenAIToolProjection = {
21
- readonly inputToolCount: number;
22
- readonly tools: readonly OpenAIProjectedTool[];
23
- readonly diagnostics: readonly OpenAIToolProjectionDiagnostic[];
24
- };
25
- type OpenAIResponsesToolChoice = ResponseCreateParamsStreaming["tool_choice"];
26
- type OpenAICompletionsSdkToolChoice = OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming["tool_choice"];
27
- type OpenAICompletionsToolChoice = Exclude<OpenAICompletionsSdkToolChoice, {
28
- type: "custom";
29
- }>;
30
- /** Snapshots direct/custom tool descriptors before OpenAI payload construction. */
31
- declare function projectOpenAITools(tools: readonly OpenAIToolDescriptor[]): OpenAIToolProjection;
32
- /** Keeps Responses tool choices aligned with surviving function schemas. */
33
- declare function reconcileOpenAIResponsesToolChoice(choice: OpenAIResponsesToolChoice, projection: OpenAIToolProjection): OpenAIResponsesToolChoice | undefined;
34
- /** Keeps Chat Completions tool choices aligned with surviving function schemas. */
35
- declare function reconcileOpenAICompletionsToolChoice(choice: OpenAICompletionsSdkToolChoice, projection: OpenAIToolProjection): OpenAICompletionsSdkToolChoice | undefined;
36
- //#endregion
37
- export { reconcileOpenAIResponsesToolChoice as a, reconcileOpenAICompletionsToolChoice as i, OpenAIToolProjection as n, projectOpenAITools as r, OpenAICompletionsToolChoice as t };
@@ -1,32 +0,0 @@
1
- import { n as OpenAIToolProjection } from "./openai-tool-projection-793cE3QX.mjs";
2
- import { TSchema } from "typebox";
3
- //#region packages/ai/src/providers/openai-tool-schema-compat.d.ts
4
- /** Repairs recoverable OpenAI tool-schema shapes before canonical normalization. */
5
- declare function normalizeOpenAIStrictCompatSchema(schema: unknown): TSchema;
6
- /** Finds schema paths that violate OpenAI strict tool-schema requirements. */
7
- declare function findOpenAIStrictSchemaViolations(schema: unknown, path: string, options?: {
8
- requireObjectRoot?: boolean;
9
- }): string[];
10
- //#endregion
11
- //#region packages/ai/src/providers/openai-tool-schema.d.ts
12
- type ToolSchemaCompatInput = {
13
- unsupportedToolSchemaKeywords?: unknown;
14
- omitEmptyArrayItems?: unknown;
15
- };
16
- /** Normalizes a tool parameter schema into the OpenAI strict JSON-schema subset. */
17
- declare function normalizeStrictOpenAIJsonSchema(schema: unknown, modelCompat?: ToolSchemaCompatInput | null): unknown;
18
- /** Normalizes tool parameters using strict OpenAI rules only when strict mode is active. */
19
- declare function normalizeOpenAIStrictToolParameters<T>(schema: T, strict: boolean, modelCompat?: ToolSchemaCompatInput | null): T;
20
- /** Returns whether a schema already satisfies OpenAI strict tool-schema constraints. */
21
- declare function isStrictOpenAIJsonSchemaCompatible(schema: unknown): boolean;
22
- type OpenAIStrictToolSchemaDiagnostic = {
23
- toolIndex: number;
24
- toolName?: string;
25
- violations: string[];
26
- };
27
- /** Returns strict-schema diagnostics for an already materialized OpenAI tool projection. */
28
- declare function findOpenAIStrictToolProjectionDiagnostics(projection: OpenAIToolProjection): OpenAIStrictToolSchemaDiagnostic[];
29
- /** Resolves strict mode for the projected tools that will be emitted in the request payload. */
30
- declare function resolveOpenAIProjectedToolsStrictToolFlag(projection: OpenAIToolProjection, strict: boolean | null | undefined): boolean | undefined;
31
- //#endregion
32
- export { resolveOpenAIProjectedToolsStrictToolFlag as a, normalizeStrictOpenAIJsonSchema as i, isStrictOpenAIJsonSchemaCompatible as n, findOpenAIStrictSchemaViolations as o, normalizeOpenAIStrictToolParameters as r, normalizeOpenAIStrictCompatSchema as s, findOpenAIStrictToolProjectionDiagnostics as t };
@@ -1,15 +0,0 @@
1
- import { createRequire } from "node:module";
2
- //#region \0rolldown/runtime.js
3
- var __defProp = Object.defineProperty;
4
- var __exportAll = (all, no_symbols) => {
5
- let target = {};
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
11
- return target;
12
- };
13
- var __require = /* #__PURE__ */ (() => createRequire(import.meta.url))();
14
- //#endregion
15
- export { __require as n, __exportAll as t };
@@ -1,5 +0,0 @@
1
- //#region packages/ai/src/utils/sanitize-unicode.d.ts
2
- /** Remove unpaired surrogates rejected by providers; preserve valid Unicode pairs. */
3
- declare function sanitizeSurrogates(text: string): string;
4
- //#endregion
5
- export { sanitizeSurrogates as t };
@@ -1,28 +0,0 @@
1
- import { a as normalizeOptionalString } from "./string-coerce-CtgOVOSv.mjs";
2
- //#region packages/normalization-core/src/string-normalization.ts
3
- /** Coerces entries to strings, trims them, and drops empty results. */
4
- function normalizeStringEntries(list) {
5
- return (list ?? []).map((entry) => String(entry).trim()).filter(Boolean);
6
- }
7
- /** Returns first-seen unique values while preserving insertion order. */
8
- function uniqueValues(values) {
9
- return [...new Set(values)];
10
- }
11
- /** Returns first-seen unique strings while preserving insertion order. */
12
- function uniqueStrings(values) {
13
- return uniqueValues(values);
14
- }
15
- /** Normalizes array-backed string lists and rejects non-array input as empty. */
16
- function normalizeTrimmedStringList(value) {
17
- if (!Array.isArray(value)) return [];
18
- return value.flatMap((entry) => {
19
- const normalized = normalizeOptionalString(entry);
20
- return normalized ? [normalized] : [];
21
- });
22
- }
23
- /** Normalizes an array-backed string list and removes duplicates. */
24
- function normalizeUniqueTrimmedStringList(value) {
25
- return uniqueStrings(normalizeTrimmedStringList(value));
26
- }
27
- //#endregion
28
- export { uniqueValues as i, normalizeUniqueTrimmedStringList as n, uniqueStrings as r, normalizeStringEntries as t };
@@ -1,34 +0,0 @@
1
- import { o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
- import { A as shortHash } from "./transport-stream-shared-CWGOuLcA.mjs";
3
- //#region packages/ai/src/transports/provider-replay-context.ts
4
- function isProviderReplayContext(value) {
5
- return isRecord(value) && typeof value.provider === "string" && typeof value.api === "string" && typeof value.model === "string" && (value.baseUrlHash === void 0 || typeof value.baseUrlHash === "string") && (value.sessionHash === void 0 || typeof value.sessionHash === "string") && (value.authProfileHash === void 0 || typeof value.authProfileHash === "string");
6
- }
7
- function hashReplayContextValue(value) {
8
- const normalized = value?.trim();
9
- return normalized ? shortHash(normalized) : void 0;
10
- }
11
- function buildProviderReplayContext(model, options) {
12
- return {
13
- provider: model.provider,
14
- api: model.api,
15
- model: model.id,
16
- baseUrlHash: hashReplayContextValue(model.baseUrl),
17
- sessionHash: hashReplayContextValue(options?.sessionId),
18
- authProfileHash: hashReplayContextValue(options?.authProfileId)
19
- };
20
- }
21
- function providerReplayContextMatches(state, context) {
22
- return state.provider === context.provider && state.api === context.api && state.model === context.model && state.baseUrlHash === context.baseUrlHash && state.sessionHash === context.sessionHash && state.authProfileHash === context.authProfileHash;
23
- }
24
- //#endregion
25
- //#region packages/ai/src/utils/text-signature.ts
26
- function encodeTextSignatureV1(id, phase) {
27
- return JSON.stringify({
28
- v: 1,
29
- id,
30
- ...phase ? { phase } : {}
31
- });
32
- }
33
- //#endregion
34
- export { providerReplayContextMatches as i, buildProviderReplayContext as n, isProviderReplayContext as r, encodeTextSignatureV1 as t };
@@ -1,180 +0,0 @@
1
- import { a as asRecord, o as isRecord } from "./record-coerce-CNDovvft.mjs";
2
- import { t as expectDefined } from "./expect-lbe3Hgrh.mjs";
3
- import { types } from "node:util";
4
- //#region packages/ai/src/providers/schema-walk.ts
5
- const SCHEMA_MAP_KEYS = /* @__PURE__ */ new Set([
6
- "$defs",
7
- "definitions",
8
- "dependentSchemas",
9
- "dependencies",
10
- "patternProperties",
11
- "properties"
12
- ]);
13
- /** Containers whose value is a single nested schema. */
14
- const SCHEMA_OBJECT_KEYS = /* @__PURE__ */ new Set([
15
- "additionalItems",
16
- "additionalProperties",
17
- "contains",
18
- "contentSchema",
19
- "else",
20
- "if",
21
- "items",
22
- "not",
23
- "propertyNames",
24
- "then",
25
- "unevaluatedItems",
26
- "unevaluatedProperties"
27
- ]);
28
- /** Containers whose value is a list of nested schemas. */
29
- const SCHEMA_ARRAY_KEYS = /* @__PURE__ */ new Set([
30
- "allOf",
31
- "anyOf",
32
- "items",
33
- "oneOf",
34
- "prefixItems"
35
- ]);
36
- const SCHEMA_NESTED_KEYS = new Set([...SCHEMA_OBJECT_KEYS, ...SCHEMA_ARRAY_KEYS].toSorted());
37
- function* walkSchemaArray(schemas, visit, result = []) {
38
- result.length = schemas.length;
39
- for (let index = 0; index < result.length; index += 1) if (index in schemas) result[index] = yield visit(schemas[index]);
40
- return result;
41
- }
42
- function* walkSchemaValue(schema, ancestors, visitObject) {
43
- if (!schema || typeof schema !== "object") return schema;
44
- if (ancestors.has(schema)) throw new TypeError("Tool schema contains a circular reference.");
45
- ancestors.add(schema);
46
- try {
47
- return yield Array.isArray(schema) ? walkSchemaArray(schema, (entry) => walkSchemaValue(entry, ancestors, visitObject)) : visitObject(asRecord(schema));
48
- } finally {
49
- ancestors.delete(schema);
50
- }
51
- }
52
- /** Resume child schema walks on a heap stack, never through recursive yield delegation. */
53
- function evaluateSchemaWalk(walk) {
54
- const parents = [];
55
- let current = walk;
56
- let value;
57
- try {
58
- while (true) {
59
- const step = current.next(value);
60
- if (!step.done) {
61
- parents.push(current);
62
- current = step.value;
63
- value = void 0;
64
- continue;
65
- }
66
- value = step.value;
67
- const parent = parents.pop();
68
- if (!parent) return value;
69
- current = parent;
70
- }
71
- } finally {
72
- let parent;
73
- while (parent = parents.pop()) parent.return(void 0);
74
- }
75
- }
76
- //#endregion
77
- //#region packages/ai/src/providers/tool-schema-json-projection.ts
78
- function isNonFiniteNumberValue(value) {
79
- if (typeof value === "number") return !Number.isFinite(value);
80
- if (value === null || typeof value !== "object" || !types.isNumberObject(value)) return false;
81
- return !Number.isFinite(Number.prototype.valueOf.call(value));
82
- }
83
- function projectToolInputSchema(value, path, captureJson) {
84
- const nonFiniteNumber = { path: null };
85
- const ancestors = [];
86
- const pathLengths = [];
87
- const segments = [path];
88
- let isRoot = true;
89
- let text;
90
- try {
91
- text = JSON.stringify(value, function(key, entry) {
92
- const invalidNumber = nonFiniteNumber.path === null && isNonFiniteNumberValue(entry);
93
- if (invalidNumber || entry && typeof entry === "object") {
94
- while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this) {
95
- ancestors.pop();
96
- segments.length = expectDefined(pathLengths.pop(), "schema ancestor path length");
97
- }
98
- const prefixLength = segments.length;
99
- if (!isRoot) {
100
- if (Array.isArray(this)) segments.push("[", key, "]");
101
- else segments.push(".", key);
102
- }
103
- if (invalidNumber) {
104
- nonFiniteNumber.path = segments.join("");
105
- segments.length = prefixLength;
106
- } else {
107
- ancestors.push(entry);
108
- pathLengths.push(prefixLength);
109
- }
110
- }
111
- isRoot = false;
112
- return entry;
113
- });
114
- } catch {}
115
- if (!text || nonFiniteNumber.path !== null) return {
116
- schema: {},
117
- violations: [`${text ? nonFiniteNumber.path : path} is not JSON-serializable`]
118
- };
119
- const schema = JSON.parse(text);
120
- captureJson?.(text);
121
- const violations = [];
122
- if (!isRecord(schema)) violations.push(`${path} must be a JSON object schema`);
123
- else if (schema.type !== void 0 && schema.type !== "object") violations.push(`${path}.type must be "object"`);
124
- if (!inspectJsonSchema(schema, [path], violations)) return {
125
- schema: {},
126
- violations: [`${path} is not a JSON value`]
127
- };
128
- return {
129
- schema,
130
- violations
131
- };
132
- }
133
- function inspectJsonSchema(schema, path, violations) {
134
- if (Array.isArray(schema)) {
135
- let index = 0;
136
- for (const entry of schema) {
137
- path.push("[", index++, "]");
138
- const valid = inspectJsonSchema(entry, path, violations);
139
- path.length -= 3;
140
- if (!valid) return false;
141
- }
142
- return true;
143
- }
144
- if (!isRecord(schema)) return typeof schema !== "number" || Number.isFinite(schema);
145
- for (const key of ["$dynamicRef", "$dynamicAnchor"]) if (key in schema) violations.push(`${path.join("")}.${key}`);
146
- for (const [key, value] of Object.entries(schema)) {
147
- if (typeof value === "number" && !Number.isFinite(value)) return false;
148
- if (!value || typeof value !== "object") continue;
149
- path.push(".", key);
150
- if (SCHEMA_MAP_KEYS.has(key) && isRecord(value)) for (const [schemaName, childSchema] of Object.entries(value)) {
151
- path.push(".", schemaName);
152
- const valid = inspectJsonSchema(childSchema, path, violations);
153
- path.length -= 2;
154
- if (!valid) return false;
155
- }
156
- else if (!inspectJsonSchema(value, path, violations)) return false;
157
- path.length -= 2;
158
- }
159
- return true;
160
- }
161
- /** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
162
- function projectRuntimeToolInputSchema(schema, path = "parameters") {
163
- return projectToolInputSchema(schema, path);
164
- }
165
- /** Package-private preparation; public projections never carry normalization provenance. */
166
- function prepareRuntimeToolInputSchema(schema, path) {
167
- let inputJson;
168
- const projection = projectToolInputSchema(schema, path, (text) => {
169
- inputJson = text;
170
- });
171
- return {
172
- projection,
173
- ...schema && typeof schema === "object" && inputJson && projection.violations.length === 0 ? { normalization: {
174
- source: schema,
175
- inputJson
176
- } } : {}
177
- };
178
- }
179
- //#endregion
180
- export { SCHEMA_NESTED_KEYS as a, walkSchemaArray as c, SCHEMA_MAP_KEYS as i, walkSchemaValue as l, projectRuntimeToolInputSchema as n, SCHEMA_OBJECT_KEYS as o, SCHEMA_ARRAY_KEYS as r, evaluateSchemaWalk as s, prepareRuntimeToolInputSchema as t };
@@ -1 +0,0 @@
1
- import "./index-BYDvopUB.mjs";