@openclaw/ai 2026.10.1-beta.2 → 2026.10.5-beta.1

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 (104) hide show
  1. package/README.md +6 -0
  2. package/dist/{anthropic-CZv6XFER.mjs → anthropic-BAHKgWam.mjs} +30 -59
  3. package/dist/{anthropic-payload-policy-BhCcgNdm.d.mts → anthropic-payload-policy-DGblkHL5.d.mts} +19 -16
  4. package/dist/{anthropic-stream-reducer-BQ1tjd7x.mjs → anthropic-stream-reducer-g6w1YVii.mjs} +197 -285
  5. package/dist/{api-registry-DpU0Rj-I.d.mts → api-registry-BhXXYdRA.d.mts} +2 -2
  6. package/dist/assistant-message-events-CHMJgbhs.mjs +18 -0
  7. package/dist/{assistant-output-OLm-Oln0.mjs → assistant-output-CUEeSotf.mjs} +2 -2
  8. package/dist/{assistant-text-phase-Bl1aDCB7.mjs → assistant-text-phase-BrV8KdFO.mjs} +7 -6
  9. package/dist/{azure-openai-responses-DH7bd3QT.mjs → azure-openai-responses-C7qBuR23.mjs} +8 -9
  10. package/dist/{credential-redaction-BKv49aiv.d.mts → credential-redaction-BHxruEH6.d.mts} +3 -1
  11. package/dist/{diagnostics-Caj-4RBA.mjs → diagnostics-tQasYct1.mjs} +10 -3
  12. package/dist/diagnostics.d.mts +7 -7
  13. package/dist/diagnostics.mjs +3 -3
  14. package/dist/{env-api-keys-CyX4VKGO.mjs → env-api-keys-CrxwdylR.mjs} +24 -35
  15. package/dist/event-stream-6UNs-AhN.d.mts +1 -0
  16. package/dist/{event-stream-DrRM_90c.d.mts → event-stream-BcqWLo_u.d.mts} +1 -1
  17. package/dist/{event-stream-C5AbCAaZ.mjs → event-stream-X2gmsUWv.mjs} +5 -8
  18. package/dist/event-stream.d.mts +2 -2
  19. package/dist/event-stream.mjs +1 -1
  20. package/dist/google-Boz2QcpK.mjs +20 -0
  21. package/dist/{google-interactions-wrnE6MLw.mjs → google-interactions-tjAb1mc5.mjs} +52 -84
  22. package/dist/{google-messages-BwPPycw6.mjs → google-messages-C-RZzloH.mjs} +25 -35
  23. package/dist/google-provider-stream-CMImyxbX.mjs +58 -0
  24. package/dist/{google-shared-Eql1OMPU.mjs → google-shared-OyAtMTZv.mjs} +6 -15
  25. package/dist/google-vertex-hCxTJea7.mjs +40 -0
  26. package/dist/{host-BinBeGcQ.d.mts → host-CTDz7LXD.d.mts} +6 -3
  27. package/dist/{host-DCW52iHe.mjs → host-JWXZWa-c.mjs} +12 -8
  28. package/dist/{host-policy-B3jc4Rpn.mjs → host-policy-q4Azym9F.mjs} +1 -1
  29. package/dist/{index-a8e_oKnu.d.mts → index-BYDvopUB.d.mts} +27 -6
  30. package/dist/index.d.mts +7 -7
  31. package/dist/index.mjs +7 -6
  32. package/dist/internal/anthropic.d.mts +6 -6
  33. package/dist/internal/anthropic.mjs +5 -5
  34. package/dist/internal/openai-completions-compat.d.mts +1 -1
  35. package/dist/internal/openai-completions-compat.mjs +1 -1
  36. package/dist/internal/openai-responses-payload-policy.d.mts +8 -1
  37. package/dist/internal/openai-responses-payload-policy.mjs +3 -3
  38. package/dist/internal/openai.d.mts +9 -9
  39. package/dist/internal/openai.mjs +9 -11
  40. package/dist/internal/runtime.d.mts +14 -11
  41. package/dist/internal/runtime.mjs +10 -13
  42. package/dist/internal/shared.d.mts +5 -5
  43. package/dist/internal/shared.mjs +6 -7
  44. package/dist/internal/tool-schema.mjs +2 -2
  45. package/dist/{llm-request-activity-D8f_oxHj.mjs → llm-request-activity-CfMuh5cC.mjs} +2 -2
  46. package/dist/{mistral-DSt4vQAO.mjs → mistral-DUveP4hF.mjs} +71 -146
  47. package/dist/{model-transport-url-C5f59L3Y.d.mts → model-transport-url-BrsjjdjR.d.mts} +5 -1
  48. package/dist/{number-coercion-V8-BhME4.mjs → number-coercion-C3hztWoY.mjs} +5 -4
  49. package/dist/{openai-chatgpt-responses-BC2x0Oqx.mjs → openai-chatgpt-responses-OCwckGhY.mjs} +173 -242
  50. package/dist/{openai-completions-DNyHnXKg.mjs → openai-completions-DOltBUe9.mjs} +7 -6
  51. package/dist/{openai-completions-compat-BYdYpXhU.d.mts → openai-completions-compat-i-nLZxFy.d.mts} +10 -11
  52. package/dist/{openai-completions-compat-BdmlhD4u.mjs → openai-completions-compat-pg1q4uNG.mjs} +10 -6
  53. package/dist/openai-completions-transport-OMrn7gnZ.mjs +3319 -0
  54. package/dist/{openai-prompt-cache-I8YQTzf8.mjs → openai-prompt-cache-Cr2xKVrS.mjs} +1 -1
  55. package/dist/{openai-prompt-cache-45-AH_xv.d.mts → openai-prompt-cache-DIPMrMFy.d.mts} +2 -2
  56. package/dist/{openai-responses-uZ5oWSp7.mjs → openai-responses-BSBJUA19.mjs} +9 -10
  57. package/dist/{openai-responses-compaction-replay-BClApUIf.d.mts → openai-responses-compaction-replay-B2FE4Nw8.d.mts} +4 -4
  58. package/dist/{openai-responses-contracts-Br5IIw_h.d.mts → openai-responses-contracts-DKqMJ1Ct.d.mts} +9 -4
  59. package/dist/{openai-responses-contracts-BKu8O7l4.mjs → openai-responses-contracts-DlKMMTxK.mjs} +26 -6
  60. package/dist/{openai-responses-compaction-window-m878aVpU.mjs → openai-responses-endpoint-CinGh4VZ.mjs} +14 -4
  61. package/dist/{openai-responses-prompt-observer-internal-CCg7B6l4.mjs → openai-responses-request-lifecycle-D2IFiI0-.mjs} +39 -4
  62. package/dist/{openai-responses-shared-C7oVyjED.mjs → openai-responses-shared-DVGhq5xF.mjs} +1036 -327
  63. package/dist/{openai-responses-terminal-usage-DgImcyJu.d.mts → openai-responses-terminal-usage-BygjiAdi.d.mts} +2 -2
  64. package/dist/{openai-tool-schema-DYNePiF8.mjs → openai-tool-schema-DDPXsvJP.mjs} +236 -399
  65. package/dist/{positive-integer-CwLi8LUL.mjs → positive-integer-CqWjqSi9.mjs} +1 -1
  66. package/dist/{provider-error-DQBE1bUQ.mjs → provider-error-CF9GWCs2.mjs} +5 -3
  67. package/dist/{provider-options-D5ABCV_l.d.mts → provider-options-CVrXZBtA.d.mts} +3 -2
  68. package/dist/{provider-transport-turn-state-_M2kLdUE.mjs → provider-transport-turn-state-LuCaTsSO.mjs} +2 -2
  69. package/dist/{provider-types-F8Mqc9Ma.d.mts → provider-types-CHtRx0dI.d.mts} +3 -3
  70. package/dist/provider-types.d.mts +6 -6
  71. package/dist/providers.d.mts +2 -2
  72. package/dist/providers.mjs +12 -12
  73. package/dist/{reasoning-tag-text-partitioner-Ju9VpUGl.mjs → reasoning-tag-text-partitioner-0-Rsezog.mjs} +13 -12
  74. package/dist/{required-api-key-D4kn3252.mjs → required-api-key-CFJvcFy_.mjs} +1 -1
  75. package/dist/{simple-options-BkKTXxhp.mjs → simple-options-BARFAzk9.mjs} +9 -11
  76. package/dist/{src-B0NIt2UK.mjs → src-C_wfIUmV.mjs} +35 -10
  77. package/dist/{stream-DSdzKsDK.mjs → stream-DwrETW0_.mjs} +12 -21
  78. package/dist/{stream-first-event-timeout-D9ZmL_s9.mjs → stream-first-event-timeout-Dc42hKv6.mjs} +8 -21
  79. package/dist/{streaming-byte-guard-CC-HMn_u.mjs → streaming-byte-guard-DBXr1XYn.mjs} +16 -1
  80. package/dist/{string-normalization-PN10hf6d.mjs → string-normalization-I3ux50s9.mjs} +1 -1
  81. package/dist/{text-signature-MLwfi6fq.mjs → text-signature-B_MB6U_9.mjs} +32 -5
  82. package/dist/{tool-schema-json-projection-Ct8SeBeJ.mjs → tool-schema-json-projection-B8sG1I9v.mjs} +29 -23
  83. package/dist/{transport-stream-shared-BcAKh2XH.d.mts → transport-stream-shared-BmpzDtdQ.d.mts} +4 -4
  84. package/dist/{transport-stream-shared-CxXXz_Dd.mjs → transport-stream-shared-DH08b7Il.mjs} +31 -20
  85. package/dist/transports.d.mts +33 -22
  86. package/dist/transports.mjs +73 -1234
  87. package/dist/{types-DvzmWW8J.d.mts → types-Bd2T86VJ.d.mts} +5 -23
  88. package/dist/types-Kdfw_04V.d.mts +1 -0
  89. package/dist/types.d.mts +6 -6
  90. package/dist/types.mjs +5 -4
  91. package/dist/{validation-B3lQt_VE.d.mts → validation-DdGB1yy3.d.mts} +1 -1
  92. package/dist/{validation-DbqlIfDn.mjs → validation-opC2pjk9.mjs} +2 -3
  93. package/dist/validation.d.mts +1 -1
  94. package/dist/validation.mjs +1 -1
  95. package/package.json +4 -4
  96. package/dist/event-stream-DqDQWqiy.d.mts +0 -1
  97. package/dist/google-1WLOtb8w.mjs +0 -54
  98. package/dist/google-vertex-0LrlRoO3.mjs +0 -88
  99. package/dist/openai-completions-transport-DWM2mQDB.mjs +0 -2081
  100. package/dist/openai-responses-request-lifecycle-Fsag-IGZ.mjs +0 -36
  101. package/dist/openai-transport-params-JFsnIyto.mjs +0 -735
  102. package/dist/openai-web-search-tools-Cfu0uLyN.mjs +0 -14
  103. package/dist/provider-replay-context-C7Bmi84a.mjs +0 -25
  104. package/dist/types-BuiEBM3u.d.mts +0 -1
@@ -119,14 +119,11 @@ interface ThinkingBudgets {
119
119
  type CacheRetention = "none" | "short" | "long";
120
120
  /** Streaming transport preference for providers that support multiple transports. */
121
121
  type Transport = "sse" | "websocket" | "websocket-cached" | "auto";
122
- /** Helper for hooks that may be synchronous or asynchronous. */
123
122
  type MaybePromise<T> = T | Promise<T>;
124
- /** Minimal HTTP response metadata surfaced through provider hooks. */
125
123
  interface ProviderResponse {
126
124
  status: number;
127
125
  headers: Record<string, string>;
128
126
  }
129
- /** Request options shared by text streaming providers. */
130
127
  interface StreamOptions {
131
128
  temperature?: number;
132
129
  maxTokens?: number;
@@ -225,7 +222,6 @@ interface StreamOptions {
225
222
  metadata?: Record<string, unknown>;
226
223
  }
227
224
  type ProviderStreamOptions = StreamOptions & Record<string, unknown>;
228
- /** Request options shared by image-generation providers. */
229
225
  interface ImagesOptions {
230
226
  signal?: AbortSignal;
231
227
  apiKey?: string;
@@ -234,9 +230,6 @@ interface ImagesOptions {
234
230
  * Return undefined to keep the payload unchanged.
235
231
  */
236
232
  onPayload?: (payload: unknown, model: ImagesModel) => MaybePromise<unknown>;
237
- /**
238
- * Optional callback invoked after an HTTP response is received.
239
- */
240
233
  onResponse?: (response: ProviderResponse, model: ImagesModel) => void | Promise<void>;
241
234
  /**
242
235
  * Optional custom HTTP headers to include in API requests.
@@ -281,13 +274,11 @@ interface TextSignatureV1 {
281
274
  id: string;
282
275
  phase?: "commentary" | "final_answer";
283
276
  }
284
- /** Plain assistant/user text content block. */
285
277
  interface TextContent {
286
278
  type: "text";
287
279
  text: string;
288
280
  textSignature?: string;
289
281
  }
290
- /** Provider reasoning/thinking content block, including opaque replay signatures. */
291
282
  interface ThinkingContent {
292
283
  type: "thinking";
293
284
  thinking: string;
@@ -328,7 +319,6 @@ interface ToolCall {
328
319
  thoughtSignature?: string;
329
320
  executionMode?: "sequential" | "parallel";
330
321
  }
331
- /** Normalized token and cost accounting for a provider response. */
332
322
  interface Usage {
333
323
  input: number;
334
324
  output: number;
@@ -374,7 +364,6 @@ type ModelCostConfig = ModelCostRates & {
374
364
  type RawModelCostConfig = ModelCostRates & {
375
365
  tieredPricing?: RawPricingTier[];
376
366
  };
377
- /** Normalized assistant stop reasons across text providers. */
378
367
  type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
379
368
  /** Stable error codes for provider outcomes that cannot be replayed safely. */
380
369
  declare const PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE = "PROVIDER_POST_DISPATCH_AMBIGUITY";
@@ -382,7 +371,6 @@ declare const PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE = "PROVIDER_FAILURE_WITH_O
382
371
  /** Pre-dispatch argument rejection; callers still enforce output and effect guards. */
383
372
  declare const MALFORMED_TOOL_CALL_ARGUMENTS_ERROR_CODE = "malformed_tool_call_arguments";
384
373
  declare const DEFAULT_MISSING_TOOL_RESULT_TEXT = "Tool call interrupted before a result was recorded; its outcome is unknown. Retry only if the operation is read-only or idempotent. If it may have had side effects, verify the current state first instead of repeating it.";
385
- /** User turn in a text-model conversation. */
386
374
  interface UserMessage {
387
375
  role: "user";
388
376
  content: string | (TextContent | ImageContent)[];
@@ -447,7 +435,6 @@ declare function isRuntimeContextMessage(message: {
447
435
  declare function readRuntimeContextMetadata(message: RuntimeContextMessage): NonNullable<UserMessage["runtimeContext"]>;
448
436
  /** Updates canonical retention and its shipped compatibility projection together. */
449
437
  declare function setRuntimeContextRetention(message: RuntimeContextMessage, retained: boolean | undefined): void;
450
- /** Assistant turn, including provider identity and final stop state. */
451
438
  type AssistantDeliveryTtsFacts = {
452
439
  tagged: true;
453
440
  text?: string;
@@ -488,7 +475,6 @@ interface AssistantMessage {
488
475
  errorBody?: string;
489
476
  timestamp: number;
490
477
  }
491
- /** Tool result turn that answers a prior assistant tool call. */
492
478
  interface ToolResultMessage<TDetails = unknown> {
493
479
  role: "toolResult";
494
480
  toolCallId: string;
@@ -498,19 +484,13 @@ interface ToolResultMessage<TDetails = unknown> {
498
484
  isError: boolean;
499
485
  timestamp: number;
500
486
  }
501
- /** Any text-model conversation message supported by LLM core. */
502
487
  type Message = UserMessage | AssistantMessage | ToolResultMessage;
503
- /** Image request input content accepted by image providers. */
504
488
  type ImagesInputContent = TextContent | ImageContent;
505
- /** Image response output content returned by image providers. */
506
489
  type ImagesOutputContent = TextContent | ImageContent;
507
- /** Image-generation request context. */
508
490
  interface ImagesContext {
509
491
  input: ImagesInputContent[];
510
492
  }
511
- /** Normalized image-generation stop reasons. */
512
493
  type ImagesStopReason = "stop" | "error" | "aborted";
513
- /** Final image-generation response shape. */
514
494
  interface AssistantImages {
515
495
  api: ImagesApi;
516
496
  provider: ImagesProvider;
@@ -522,13 +502,16 @@ interface AssistantImages {
522
502
  errorMessage?: string;
523
503
  timestamp: number;
524
504
  }
525
- /** Provider tool declaration with a TypeBox/JSON-schema parameter object. */
526
505
  interface Tool<TParameters extends TSchema = TSchema> {
527
506
  name: string;
528
507
  description: string;
529
508
  parameters: TParameters;
509
+ /**
510
+ * `false` keeps calls synchronous where the provider can keep generating after a call
511
+ * (OpenAI async tools): the response pauses until earlier results are delivered.
512
+ */
513
+ async?: false;
530
514
  }
531
- /** Text-model request context shared by provider adapters. */
532
515
  interface Context {
533
516
  systemPrompt?: string;
534
517
  messages: Message[];
@@ -603,7 +586,6 @@ type AssistantMessageEvent = {
603
586
  error: AssistantMessage;
604
587
  };
605
588
  interface AssistantMessageEventStreamContract extends AsyncIterable<AssistantMessageEvent> {
606
- /** Queue one stream event for consumers. */
607
589
  push(event: AssistantMessageEvent): void;
608
590
  /** Complete the stream and optionally resolve the final message. */
609
591
  end(result?: AssistantMessage): void;
@@ -0,0 +1 @@
1
+ import "./index-BYDvopUB.mjs";
package/dist/types.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { C as resolveClaudeSonnet5ModelIdentity, D as supportsClaudeInHistorySystemMessages, E as supportsClaudeFastMode, O as supportsClaudeNativeMaxEffort, S as resolveClaudeSonnet55ModelIdentity, T as supportsClaudeAdaptiveThinking, _ as resolveClaudeModelIdentity, a as ProviderRefusalReview, b as resolveClaudeOpus55ModelIdentity, c as CLAUDE_OPUS_55_THINKING_PROFILE, d as CLAUDE_SONNET_5_THINKING_PROFILE, f as bindsClaudeThinkingPrefix, g as resolveClaudeFable5ModelIdentity, h as requiresClaudeMandatoryAdaptiveThinking, i as normalizeResolvedPricing, k as supportsClaudeNativeXhighEffort, l as CLAUDE_OPUS_5_THINKING_PROFILE, m as requiresClaudeDefaultSampling, n as calculateUsageCost, o as readProviderRefusalReview, p as requiresClaudeBetweenToolsThinking, r as normalizeModelCostConfig, s as CLAUDE_FABLE_5_THINKING_PROFILE, u as CLAUDE_SONNET_55_THINKING_PROFILE, v as resolveClaudeMythos5ModelIdentity, w as supportsClaude1MContext, x as resolveClaudeOpus5ModelIdentity, y as resolveClaudeNativeThinkingLevelMap } from "./index-a8e_oKnu.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-DvzmWW8J.mjs";
3
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-DrRM_90c.mjs";
4
- import { n as validateToolCall, t as validateToolArguments } from "./validation-B3lQt_VE.mjs";
5
- import "./types-BuiEBM3u.mjs";
6
- export { AnthropicMessagesCompat, Api, AssistantDeliveryTtsFacts, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_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, 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, 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 };
package/dist/types.mjs CHANGED
@@ -1,6 +1,7 @@
1
- import { C as supportsClaudeFastMode, E as supportsClaudeNativeXhighEffort, S as supportsClaudeAdaptiveThinking, T as supportsClaudeNativeMaxEffort, _ as resolveClaudeOpus55ModelIdentity, a as CLAUDE_OPUS_55_THINKING_PROFILE, b as resolveClaudeSonnet5ModelIdentity, c as CLAUDE_SONNET_5_THINKING_PROFILE, d as requiresClaudeDefaultSampling, f as requiresClaudeMandatoryAdaptiveThinking, g as resolveClaudeNativeThinkingLevelMap, h as resolveClaudeMythos5ModelIdentity, i as CLAUDE_FABLE_5_THINKING_PROFILE, l as bindsClaudeThinkingPrefix, m as resolveClaudeModelIdentity, n as normalizeModelCostConfig, o as CLAUDE_OPUS_5_THINKING_PROFILE, p as resolveClaudeFable5ModelIdentity, r as normalizeResolvedPricing, s as CLAUDE_SONNET_55_THINKING_PROFILE, t as calculateUsageCost, u as requiresClaudeBetweenToolsThinking, v as resolveClaudeOpus5ModelIdentity, w as supportsClaudeInHistorySystemMessages, x as supportsClaude1MContext, y as resolveClaudeSonnet55ModelIdentity } from "./src-B0NIt2UK.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, 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-C_wfIUmV.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
+ import { t as appendTextDeltaToAssistantMessage } from "./assistant-message-events-CHMJgbhs.mjs";
3
4
  import { a as isProviderRefusalAssistantError, i as formatThrownValue, n as createAssistantMessageDiagnostic, o as readProviderRefusalReview, r as extractDiagnosticError, t as appendAssistantMessageDiagnostic } from "./diagnostics-DzrF1h4J.mjs";
4
- import { a as createAssistantMessageEventStream, n as EventStream, t as AssistantMessageEventStream } from "./event-stream-C5AbCAaZ.mjs";
5
- import { n as validateToolCall, t as validateToolArguments } from "./validation-DbqlIfDn.mjs";
6
- export { AssistantMessageEventStream, CLAUDE_FABLE_5_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, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet55ModelIdentity, resolveClaudeSonnet5ModelIdentity, runtimeContextContentToText, setRuntimeContextRetention, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeInHistorySystemMessages, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
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-opC2pjk9.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 };
@@ -1,4 +1,4 @@
1
- import { lt as Tool, ut as ToolCall } from "./types-DvzmWW8J.mjs";
1
+ import { lt as Tool, ut as ToolCall } from "./types-Bd2T86VJ.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,5 +1,5 @@
1
1
  import { t as parseLocalSchemaRefPointer } from "./json-schema-Bp07Qui3.mjs";
2
- import { a as parseStrictFiniteNumber } from "./number-coercion-V8-BhME4.mjs";
2
+ import { o as parseStrictFiniteNumber } from "./number-coercion-C3hztWoY.mjs";
3
3
  import { Pointer } from "typebox/schema";
4
4
  import { Compile } from "typebox/compile";
5
5
  //#region packages/llm-core/src/validation.ts
@@ -141,8 +141,7 @@ function coerceWithJsonSchema(value, schema, contextRoot, refs) {
141
141
  nextValue = coerceWithJsonSchema(nextValue, target, root, nextRefs);
142
142
  }
143
143
  if (Array.isArray(schema.allOf)) for (const nested of schema.allOf) nextValue = coerceWithJsonSchema(nextValue, nested, root, refs);
144
- if (Array.isArray(schema.anyOf)) nextValue = coerceWithUnionSchema(nextValue, schema.anyOf, root, refs);
145
- if (Array.isArray(schema.oneOf)) nextValue = coerceWithUnionSchema(nextValue, schema.oneOf, root, refs);
144
+ for (const keyword of ["anyOf", "oneOf"]) if (Array.isArray(schema[keyword])) nextValue = coerceWithUnionSchema(nextValue, schema[keyword], root, refs);
146
145
  const schemaTypes = getSchemaTypes(schema, root);
147
146
  const matchesUnionMember = schemaTypes.length > 1 && schemaTypes.some((schemaType) => matchesJsonType(nextValue, schemaType));
148
147
  if (schemaTypes.length > 0 && !matchesUnionMember) for (const schemaType of schemaTypes) {
@@ -1,2 +1,2 @@
1
- import { n as validateToolCall, t as validateToolArguments } from "./validation-B3lQt_VE.mjs";
1
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-DdGB1yy3.mjs";
2
2
  export { validateToolArguments, validateToolCall };
@@ -1,2 +1,2 @@
1
- import { n as validateToolCall, t as validateToolArguments } from "./validation-DbqlIfDn.mjs";
1
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-opC2pjk9.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.1-beta.2",
3
+ "version": "2026.10.5-beta.1",
4
4
  "description": "Reusable model provider adapters and streaming runtime from OpenClaw",
5
5
  "keywords": [
6
6
  "ai",
@@ -118,10 +118,10 @@
118
118
  }
119
119
  },
120
120
  "dependencies": {
121
- "@anthropic-ai/sdk": "0.128.0",
122
- "@google/genai": "2.24.0",
121
+ "@anthropic-ai/sdk": "0.131.0",
122
+ "@google/genai": "2.25.0",
123
123
  "@mistralai/mistralai": "2.7.0",
124
- "openai": "7.23.0",
124
+ "openai": "7.25.0",
125
125
  "partial-json": "0.1.7",
126
126
  "typebox": "1.3.34"
127
127
  },
@@ -1 +0,0 @@
1
- import "./event-stream-DrRM_90c.mjs";
@@ -1,54 +0,0 @@
1
- import { t as AssistantMessageEventStream } from "./event-stream-C5AbCAaZ.mjs";
2
- import { a as resolveAiTransportHeaderSentinels, r as getAiTransportHost } from "./host-DCW52iHe.mjs";
3
- import { n as buildManagedModelFetch } from "./host-policy-B3jc4Rpn.mjs";
4
- import { f as mergeTransportHeaders } from "./transport-stream-shared-CxXXz_Dd.mjs";
5
- import { n as buildBaseOptions } from "./simple-options-BkKTXxhp.mjs";
6
- import { n as getEnvApiKey } from "./env-api-keys-CyX4VKGO.mjs";
7
- import { t as createAssistantOutput } from "./assistant-output-OLm-Oln0.mjs";
8
- import { n as resolveOpencodeSessionHeaders } from "./session-affinity-DA4WHv1h.mjs";
9
- import { t as requireApiKey } from "./required-api-key-D4kn3252.mjs";
10
- import { i as runGoogleGenerateContentLifecycle, r as buildGoogleSimpleThinking, t as buildGoogleGenerateContentParams } from "./google-shared-Eql1OMPU.mjs";
11
- import { GoogleGenAI } from "@google/genai";
12
- //#region packages/ai/src/providers/google.ts
13
- let toolCallCounter = 0;
14
- const streamGoogle = (model, context, options) => {
15
- const stream = new AssistantMessageEventStream();
16
- const output = createAssistantOutput(model, "google-generative-ai");
17
- runGoogleGenerateContentLifecycle({
18
- stream,
19
- model,
20
- output,
21
- options,
22
- createClient: () => {
23
- return createClient(model, options?.apiKey || getEnvApiKey(model.provider) || "", resolveOpencodeSessionHeaders(model, options));
24
- },
25
- buildParams: () => buildGoogleGenerateContentParams(model, context, options),
26
- nextToolCallId: (name) => `${name}_${Date.now()}_${++toolCallCounter}`
27
- });
28
- return stream;
29
- };
30
- const streamSimpleGoogle = (model, context, options) => {
31
- const apiKey = requireApiKey(model.provider, options?.apiKey);
32
- const base = buildBaseOptions(model, options, apiKey);
33
- return streamGoogle(model, context, {
34
- ...base,
35
- thinking: buildGoogleSimpleThinking(model, options)
36
- });
37
- };
38
- function createClient(model, apiKey, optionsHeaders) {
39
- const httpOptions = {};
40
- const fetcher = buildManagedModelFetch(model);
41
- if (fetcher) httpOptions.fetch = fetcher;
42
- if (model.baseUrl) {
43
- httpOptions.baseUrl = model.baseUrl;
44
- httpOptions.apiVersion = "";
45
- }
46
- if (model.headers || optionsHeaders) httpOptions.headers = resolveAiTransportHeaderSentinels(mergeTransportHeaders(model.headers, optionsHeaders));
47
- const resolvedApiKey = apiKey ? getAiTransportHost().resolveSecretSentinel(apiKey) : void 0;
48
- return new GoogleGenAI({
49
- apiKey: resolvedApiKey,
50
- httpOptions: Object.keys(httpOptions).length > 0 ? httpOptions : void 0
51
- });
52
- }
53
- //#endregion
54
- export { streamGoogle, streamSimpleGoogle };
@@ -1,88 +0,0 @@
1
- import { t as AssistantMessageEventStream } from "./event-stream-C5AbCAaZ.mjs";
2
- import { a as normalizeOptionalString } from "./string-coerce-CtgOVOSv.mjs";
3
- import { a as resolveAiTransportHeaderSentinels, r as getAiTransportHost } from "./host-DCW52iHe.mjs";
4
- import { n as buildManagedModelFetch } from "./host-policy-B3jc4Rpn.mjs";
5
- import { n as buildBaseOptions } from "./simple-options-BkKTXxhp.mjs";
6
- import { t as createAssistantOutput } from "./assistant-output-OLm-Oln0.mjs";
7
- import { i as runGoogleGenerateContentLifecycle, r as buildGoogleSimpleThinking, t as buildGoogleGenerateContentParams } from "./google-shared-Eql1OMPU.mjs";
8
- import { GoogleGenAI, ResourceScope } from "@google/genai";
9
- //#region packages/ai/src/providers/google-vertex.ts
10
- const API_VERSION = "v1";
11
- const GCP_VERTEX_CREDENTIALS_MARKER = "gcp-vertex-credentials";
12
- let toolCallCounter = 0;
13
- const streamGoogleVertex = (model, context, options) => {
14
- const stream = new AssistantMessageEventStream();
15
- const output = createAssistantOutput(model, "google-vertex");
16
- runGoogleGenerateContentLifecycle({
17
- stream,
18
- model,
19
- output,
20
- options,
21
- createClient: () => createClient(model, options),
22
- buildParams: () => buildGoogleGenerateContentParams(model, context, options),
23
- nextToolCallId: (name) => `${name}_${Date.now()}_${++toolCallCounter}`
24
- });
25
- return stream;
26
- };
27
- const streamSimpleGoogleVertex = (model, context, options) => {
28
- const base = buildBaseOptions(model, options, void 0);
29
- return streamGoogleVertex(model, context, {
30
- ...base,
31
- thinking: buildGoogleSimpleThinking(model, options)
32
- });
33
- };
34
- function createClient(model, options) {
35
- const apiKey = resolveApiKey(options);
36
- const credentials = apiKey ? { apiKey: getAiTransportHost().resolveSecretSentinel(apiKey) } : {
37
- project: resolveProject(options),
38
- location: resolveLocation(options)
39
- };
40
- return new GoogleGenAI({
41
- vertexai: true,
42
- ...credentials,
43
- apiVersion: API_VERSION,
44
- httpOptions: buildHttpOptions(model, options?.headers)
45
- });
46
- }
47
- function buildHttpOptions(model, optionsHeaders) {
48
- const httpOptions = {};
49
- const fetcher = buildManagedModelFetch(model);
50
- if (fetcher) httpOptions.fetch = fetcher;
51
- const baseUrl = resolveCustomBaseUrl(model.baseUrl);
52
- if (baseUrl) {
53
- httpOptions.baseUrl = baseUrl;
54
- httpOptions.baseUrlResourceScope = ResourceScope.COLLECTION;
55
- if (baseUrlIncludesApiVersion(baseUrl)) httpOptions.apiVersion = "";
56
- }
57
- if (model.headers || optionsHeaders) httpOptions.headers = resolveAiTransportHeaderSentinels({
58
- ...model.headers,
59
- ...optionsHeaders
60
- });
61
- return Object.keys(httpOptions).length > 0 ? httpOptions : void 0;
62
- }
63
- function resolveCustomBaseUrl(baseUrl) {
64
- const trimmed = baseUrl.trim();
65
- if (!trimmed || trimmed.includes("{location}")) return;
66
- return trimmed;
67
- }
68
- function baseUrlIncludesApiVersion(baseUrl) {
69
- const url = URL.parse(baseUrl);
70
- return url ? url.pathname.split("/").some((part) => /^v\d+(?:beta\d*)?$/.test(part)) : /(?:^|\/)v\d+(?:beta\d*)?(?:\/|$)/.test(baseUrl);
71
- }
72
- function resolveApiKey(options) {
73
- const apiKey = options?.apiKey?.trim() || process.env.GOOGLE_CLOUD_API_KEY?.trim();
74
- if (!apiKey || apiKey === GCP_VERTEX_CREDENTIALS_MARKER || /^<[^>]+>$/.test(apiKey)) return;
75
- return apiKey;
76
- }
77
- function resolveProject(options) {
78
- const project = normalizeOptionalString(options?.project) || normalizeOptionalString(process.env.GOOGLE_CLOUD_PROJECT) || normalizeOptionalString(process.env.GCLOUD_PROJECT);
79
- if (!project) throw new Error("Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.");
80
- return project;
81
- }
82
- function resolveLocation(options) {
83
- const location = normalizeOptionalString(options?.location) || normalizeOptionalString(process.env.GOOGLE_CLOUD_LOCATION);
84
- if (!location) throw new Error("Vertex AI requires a location. Set GOOGLE_CLOUD_LOCATION or pass location in options.");
85
- return location;
86
- }
87
- //#endregion
88
- export { streamGoogleVertex, streamSimpleGoogleVertex };