@openclaw/ai 2026.9.2 → 2026.9.4

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 (115) hide show
  1. package/README.md +3 -2
  2. package/dist/anthropic-C4Qu4H0Z.mjs +377 -0
  3. package/dist/{anthropic-payload-policy-d46X2pR0.d.mts → anthropic-payload-policy-BZ8umAbk.d.mts} +16 -6
  4. package/dist/{anthropic-compaction-replay-DB2FGLQc.mjs → anthropic-stream-reducer-CILWF7JD.mjs} +931 -184
  5. package/dist/{api-registry-DWtPjzyn.d.mts → api-registry-ByUwIR0e.d.mts} +2 -2
  6. package/dist/assistant-output-tLt4H-iQ.mjs +16 -0
  7. package/dist/assistant-text-phase-C20rxWwP.mjs +55 -0
  8. package/dist/{azure-openai-responses-C5bZRfAP.mjs → azure-openai-responses-BAlqlKKc.mjs} +5 -5
  9. package/dist/{base64-CEFBpSkN.mjs → base64-D-su8YVo.mjs} +1 -27
  10. package/dist/{diagnostics-DfFyKeX_.mjs → diagnostics-QuErwCIl.mjs} +96 -21
  11. package/dist/diagnostics.d.mts +3 -1
  12. package/dist/diagnostics.mjs +3 -3
  13. package/dist/{event-stream-BhT5T1Ay.d.mts → event-stream-Bt5Y4Pav.d.mts} +11 -3
  14. package/dist/event-stream-C3WGFsum.d.mts +1 -0
  15. package/dist/{event-stream-BgDvQeum.mjs → event-stream-D8PARQfL.mjs} +45 -1
  16. package/dist/event-stream.d.mts +2 -2
  17. package/dist/event-stream.mjs +1 -1
  18. package/dist/{github-copilot-headers-NCJtz9i0.mjs → github-copilot-headers-B37TB3rB.mjs} +3 -10
  19. package/dist/github-copilot-request-facts-BTEBMeOv.mjs +16 -0
  20. package/dist/{google-4qeuE8iX.mjs → google-DPBAOaOW.mjs} +10 -10
  21. package/dist/google-messages-6JkpHrhJ.mjs +448 -0
  22. package/dist/google-shared-BvBeW9aq.mjs +185 -0
  23. package/dist/{google-vertex-O9BcnB6X.mjs → google-vertex-k-TMCAYD.mjs} +7 -6
  24. package/dist/{host-DjzGmdZ2.d.mts → host-4atIX-2V.d.mts} +5 -3
  25. package/dist/{host-CEvLw30U.mjs → host-B8YfDGd4.mjs} +181 -41
  26. package/dist/host-policy-Zcg_cNz8.mjs +37 -0
  27. package/dist/{index-FnHM2FcI.d.mts → index-DdD3qerf.d.mts} +4 -4
  28. package/dist/index.d.mts +7 -7
  29. package/dist/index.mjs +7 -6
  30. package/dist/internal/anthropic.d.mts +7 -7
  31. package/dist/internal/anthropic.mjs +4 -4
  32. package/dist/internal/google-model-family.d.mts +5 -0
  33. package/dist/internal/google-model-family.mjs +15 -0
  34. package/dist/internal/openai-responses-payload-policy.d.mts +3 -3
  35. package/dist/internal/openai-responses-payload-policy.mjs +3 -2
  36. package/dist/internal/openai.d.mts +8 -103
  37. package/dist/internal/openai.mjs +9 -10
  38. package/dist/internal/retry-after.d.mts +2 -4
  39. package/dist/internal/retry-after.mjs +57 -8
  40. package/dist/internal/runtime.d.mts +43 -7
  41. package/dist/internal/runtime.mjs +6 -7
  42. package/dist/internal/shared.d.mts +43 -3
  43. package/dist/internal/shared.mjs +5 -4
  44. package/dist/internal/tool-schema.d.mts +63 -0
  45. package/dist/internal/tool-schema.mjs +3 -0
  46. package/dist/{mistral-Tb6oalqH.mjs → mistral-CxUZ1jUb.mjs} +10 -37
  47. package/dist/model-transport-url-DKocrEsb.d.mts +28 -0
  48. package/dist/{openai-chatgpt-responses-yUXjPNfu.mjs → openai-chatgpt-responses-CgO6kZfo.mjs} +50 -41
  49. package/dist/{openai-completions-compat-CpjYUArk.d.mts → openai-completions-compat-eHgh5UPE.d.mts} +26 -4
  50. package/dist/{openai-completions-stream-BsrBe3Gg.mjs → openai-completions-stream-Da2vvl-S.mjs} +654 -453
  51. package/dist/openai-completions-yJuk7eis.mjs +187 -0
  52. package/dist/openai-prompt-cache-B4eYo2-I.d.mts +16 -0
  53. package/dist/openai-prompt-cache-Bds-n_9Q.mjs +220 -0
  54. package/dist/openai-provider-client-S2gCrM2Z.mjs +24 -0
  55. package/dist/{openai-responses-CCL41ALM.mjs → openai-responses-DaYwH05E.mjs} +14 -29
  56. package/dist/{openai-responses-compaction-window-BMVHFOtq.mjs → openai-responses-compaction-window-CIhBAkkq.mjs} +6 -246
  57. package/dist/{openai-responses-contracts-rF5DDRNS.d.mts → openai-responses-contracts-BjBAqAg_.d.mts} +5 -38
  58. package/dist/openai-responses-contracts-DDOHA62Y.mjs +245 -0
  59. package/dist/{openai-responses-prompt-observer-internal-D0bhBfgL.mjs → openai-responses-prompt-observer-internal-f8J7wpsk.mjs} +3 -3
  60. package/dist/{openai-responses-shared-Bmma_3Qc.mjs → openai-responses-shared-B8RdBPCv.mjs} +47 -118
  61. package/dist/openai-tool-projection-793cE3QX.d.mts +37 -0
  62. package/dist/{openai-tool-schema-_pTAJqKF.mjs → openai-tool-schema-CzjyYXun.mjs} +38 -556
  63. package/dist/openai-tool-schema-ynZBgqW-.d.mts +38 -0
  64. package/dist/openai-transport-params-9aPuV5YY.mjs +675 -0
  65. package/dist/positive-integer-41zhOdcV.mjs +8 -0
  66. package/dist/{provider-error-9TraxGvt.mjs → provider-error-BA-v_tKd.mjs} +70 -11
  67. package/dist/{provider-options-Bcc_p-TU.d.mts → provider-options-Ceqv1OKk.d.mts} +4 -39
  68. package/dist/{provider-replay-context-BuSUaAk5.mjs → provider-replay-context-CJ_YvcEW.mjs} +1 -1
  69. package/dist/{provider-transcript-transform-BaMbI1hr.mjs → provider-transcript-transform-V5YzU9zh.mjs} +1 -1
  70. package/dist/provider-transport-turn-state-D5EXOFL2.mjs +42 -0
  71. package/dist/provider-types-CVjKjsuq.d.mts +29 -0
  72. package/dist/provider-types.d.mts +6 -31
  73. package/dist/providers.d.mts +2 -2
  74. package/dist/providers.mjs +11 -11
  75. package/dist/{reasoning-tag-text-partitioner-DLCNXki6.mjs → reasoning-tag-text-partitioner-BcR5pztD.mjs} +19 -19
  76. package/dist/record-coerce-DwRYMj3t.mjs +32 -0
  77. package/dist/retry-after-CdCURCVg.d.mts +15 -0
  78. package/dist/session-affinity-Bcunsn4I.mjs +23 -0
  79. package/dist/{simple-options-BjHCCh4v.mjs → simple-options-BQbb4yQL.mjs} +24 -5
  80. package/dist/src-DDmEryvj.mjs +2 -0
  81. package/dist/{stream-first-event-timeout-DcNjoFQE.mjs → stream-first-event-timeout-2hfrquuz.mjs} +1 -1
  82. package/dist/string-coerce-fsri9iCu.mjs +34 -0
  83. package/dist/{string-normalization--fwJ4S2q.mjs → string-normalization-CmLIasuf.mjs} +1 -1
  84. package/dist/{tool-schema-json-projection-mJhXDcyz.mjs → tool-schema-json-projection-ClptDdAO.mjs} +2 -38
  85. package/dist/{transport-stream-shared-xnaqxmbP.d.mts → transport-stream-shared-DNvmoWnv.d.mts} +20 -36
  86. package/dist/{transport-stream-shared-CZqMhfIw.mjs → transport-stream-shared-zHll9BxO.mjs} +225 -13
  87. package/dist/transport-utils-zrYjICLZ.mjs +118 -0
  88. package/dist/transports.d.mts +137 -193
  89. package/dist/transports.mjs +204 -1334
  90. package/dist/types-DlfwzH3T.d.mts +1 -0
  91. package/dist/types-LFWwv0cF.mjs +8 -0
  92. package/dist/{types-CJ1-Ht7A.d.mts → types-Ntv5z2g2.d.mts} +74 -57
  93. package/dist/types.d.mts +6 -6
  94. package/dist/types.mjs +6 -5
  95. package/dist/{src-2qBGKg8O.mjs → usage-cost-BNWbbXav.mjs} +0 -1
  96. package/dist/utf16-slice-CvGodqok.mjs +29 -0
  97. package/dist/{validation-AKZBDGQd.d.mts → validation-B0t_G2H6.d.mts} +1 -1
  98. package/dist/{validation-CJZtym2g.mjs → validation-BDzVDnTs.mjs} +9 -1
  99. package/dist/validation.d.mts +1 -1
  100. package/dist/validation.mjs +1 -1
  101. package/package.json +13 -3
  102. package/dist/anthropic-BDdqdVLK.mjs +0 -886
  103. package/dist/event-stream-zctLx0yr.d.mts +0 -1
  104. package/dist/google-shared-CWeG8RIl.mjs +0 -636
  105. package/dist/google-thinking-level-C-V3tecN.mjs +0 -9
  106. package/dist/hash-CHgqbJmD.mjs +0 -16
  107. package/dist/json-parse-BuAJEbdW.mjs +0 -146
  108. package/dist/openai-completions-BIUV3RDT.mjs +0 -403
  109. package/dist/openai-prompt-cache-CGnVB74a.mjs +0 -21
  110. package/dist/openai-prompt-cache-CNoIfHYC.d.mts +0 -16
  111. package/dist/sanitize-unicode-D6xUvZaS.mjs +0 -83
  112. package/dist/transport-utils-7il795_9.mjs +0 -138
  113. package/dist/types-3Lnm-QSJ.d.mts +0 -1
  114. package/dist/types-BDdaOVi2.mjs +0 -6
  115. package/dist/utf16-slice-qz3nsy87.mjs +0 -84
@@ -1,16 +1,21 @@
1
- import "./index-FnHM2FcI.mjs";
2
- import { D as Model, K as StreamFn, Q as ThinkingContent, Y as TextContent, a as AssistantMessage, at as Usage, d as Context, j as OpenAICompletionsCompat, n as Api, nt as ToolCall, o as AssistantMessageEvent, z as ProviderReplayState } from "./types-CJ1-Ht7A.mjs";
3
- import { n as ApiRegistry } from "./api-registry-DWtPjzyn.mjs";
4
- import { a as BaseOpenAIStreamOptions, c as OpenAIResponsesCompactionRejection, f as OpenAIToolProjection, o as CodeModeToolSurfaceObservation, s as OpenAICompletionsOptions } from "./provider-options-Bcc_p-TU.mjs";
5
- import "./types-3Lnm-QSJ.mjs";
6
- import { a as isAnthropicServerToolClearingEnabled, c as resolveAnthropicContextManagementBetaHeader, d as resolveAnthropicServerCompactionPlan, i as applyAnthropicPayloadPolicyToParams, l as resolveAnthropicEphemeralCacheControl, n as applyAnthropicContextManagementToRequest, o as isDirectAnthropicModel, r as applyAnthropicEphemeralCacheControlMarkers, s as logAnthropicContextEdits, t as applyAnthropicCacheControlToMessages, u as resolveAnthropicPayloadPolicy } from "./anthropic-payload-policy-d46X2pR0.mjs";
7
- import { a as ReplayableResponseCompactionItem, c as OpenAIResponsesCompactionOutput, i as OpenAIResponsesRequestParams, n as OpenAIResponsesOptions, o as ResponsesPromptObservation, r as OpenAIResponsesReasoningReplayMetadata } from "./openai-responses-contracts-rF5DDRNS.mjs";
1
+ import "./index-DdD3qerf.mjs";
2
+ import { $ as ThinkingContent, B as ProviderReplayState, K as StopReason, M as OpenAICompletionsCompat, O as Model, X as TextContent, Y as StreamOptions, a as AssistantMessage, d as Context, l as CacheRetention, n as Api, nt as Tool, ot as Usage, q as StreamFn, rt as ToolCall, ut as ModelDataThinkingFormat } from "./types-Ntv5z2g2.mjs";
3
+ import { n as ApiRegistry } from "./api-registry-ByUwIR0e.mjs";
4
+ import { a as BaseOpenAIStreamOptions, c as OpenAIResponsesCompactionRejection, o as CodeModeToolSurfaceObservation, s as OpenAICompletionsOptions } from "./provider-options-Ceqv1OKk.mjs";
5
+ import { n as OpenAIToolProjection } from "./openai-tool-projection-793cE3QX.mjs";
6
+ import "./types-DlfwzH3T.mjs";
7
+ import { a as buildAnthropicSystemBlocks, c as logAnthropicContextEdits, d as resolveAnthropicEphemeralCacheControl, f as resolveAnthropicPayloadPolicy, i as applyAnthropicRequestCacheControl, l as resolveAnthropicCacheOptions, n as applyAnthropicEphemeralCacheControlMarkers, o as isAnthropicServerToolClearingEnabled, p as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, s as isDirectAnthropicModel, t as applyAnthropicContextManagementToRequest, u as resolveAnthropicContextManagementBetaHeader } from "./anthropic-payload-policy-BZ8umAbk.mjs";
8
+ import { i as ReplayableResponseCompactionItem, n as OpenAIResponsesOptions, r as OpenAIResponsesReasoningReplayMetadata, s as OpenAIResponsesCompactionOutput } from "./openai-responses-contracts-BjBAqAg_.mjs";
8
9
  import { i as resolveOpenAIResponsesServerCompactionPlan, n as resolveOpenAIResponsesCompactEndpointPlan, r as resolveOpenAIResponsesPayloadPolicy, t as applyOpenAIResponsesPayloadPolicy } from "./openai-responses-payload-policy-rLRPsSmB.mjs";
9
- import { n as detectOpenAICompletionsCompat, r as resolveOpenAICompletionsCompat, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-CpjYUArk.mjs";
10
- import { C as FirstStreamEventInternalOptions, _ as sanitizeNonEmptyTransportPayloadText, a as copyProviderAcceptanceObserver, b as withProviderAcceptanceObserver, c as failTransportStream, d as mergeTransportHeaders, f as mergeTransportMetadata, g as parseTerminalToolCallArguments, h as notifyProviderStreamOpened, i as coerceTransportToolCallArguments, l as finalizeTerminalToolCallArguments, m as notifyProviderHttpResponse, n as WritableTransportStream, o as createEmptyTransportUsage, p as notifyProviderHttpMetadata, r as assignTransportErrorDetails, s as createWritableTransportEventStream, t as ProviderAcceptance, u as finalizeTransportStream, v as sanitizeTransportPayloadText, x as withProviderResponseHook, y as transportAbortError } from "./transport-stream-shared-xnaqxmbP.mjs";
10
+ import { a as resolveOpenAICompletionsCompat, i as isOpenAICodexResponsesModel, n as detectOpenAICompletionsCompat, o as resolveOpenAIPromptCacheKeySupport, r as isNativeOpenAIEndpoint, s as usesNativeOpenAICodexResponsesBackend, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-eHgh5UPE.mjs";
11
+ import { S as withProviderResponseHook, _ as parseTerminalToolCallArguments, a as coerceTransportToolCallArguments, b as transportAbortError, c as createWritableTransportEventStream, d as finalizeTransportStream, f as mergeTransportHeaders, g as notifyProviderStreamOpened, h as notifyProviderHttpResponse, i as assignTransportErrorDetails, l as failTransportStream, m as notifyProviderHttpMetadata, n as ProviderAcceptance, o as copyProviderAcceptanceObserver, p as mergeTransportMetadata, r as WritableTransportStream, s as createEmptyTransportUsage, t as IncompleteToolCallError, u as finalizeTerminalToolCallArguments, v as sanitizeNonEmptyTransportPayloadText, x as withProviderAcceptanceObserver, y as sanitizeTransportPayloadText } from "./transport-stream-shared-DNvmoWnv.mjs";
11
12
  import { r as sortPromptCacheToolsByName } from "./prompt-cache-stability-Cwcjv_fx.mjs";
13
+ import { r as normalizeOpenAIStrictToolParameters } from "./openai-tool-schema-ynZBgqW-.mjs";
14
+ import { d as VideoContent, i as ProviderContext, s as ProviderModel } from "./provider-types-CVjKjsuq.mjs";
15
+ import { a as resolveModelSseDebugMode, i as resolveModelPayloadDebugMode, n as formatModelTransportDebugUrl, r as emitModelTransportDebug, t as formatModelTransportDebugBaseUrl } from "./model-transport-url-DKocrEsb.mjs";
12
16
  import OpenAI from "openai";
13
- import { ResponseCreateParamsStreaming, ResponseInput, ResponseInputItem as ResponseInputItem$1 } from "openai/resources/responses/responses.js";
17
+ import { Part } from "@google/genai";
18
+ import "openai/resources/responses/responses.js";
14
19
  import { ChatCompletionChunk } from "openai/resources/chat/completions.js";
15
20
  //#region packages/ai/src/transports/anthropic-transport-stream.d.ts
16
21
  /** Resolve the Anthropic Messages endpoint URL for the effective base URL. */
@@ -52,37 +57,18 @@ export declare function canonicalizeMaxTokensParam(params: {
52
57
  sources: Array<Record<string, unknown> | undefined>;
53
58
  }): void;
54
59
  //#endregion
55
- //#region packages/ai/src/transports/model-transport-debug.d.ts
56
- type SubsystemLogger = {
57
- info(message: string): void;
58
- debug(message: string): void;
59
- };
60
- type ModelTransportDebugEnv = NodeJS.ProcessEnv;
61
- /** Payload debug detail levels accepted by `OPENCLAW_DEBUG_MODEL_PAYLOAD`. */
62
- type ModelPayloadDebugMode = "off" | "summary" | "tools" | "full-redacted";
63
- /** SSE debug detail levels accepted by `OPENCLAW_DEBUG_SSE`. */
64
- type ModelSseDebugMode = "off" | "events" | "peek";
65
- /** Resolves model payload debug verbosity from `OPENCLAW_DEBUG_MODEL_PAYLOAD`. */
66
- export declare function resolveModelPayloadDebugMode(env?: ModelTransportDebugEnv): ModelPayloadDebugMode;
67
- /** Resolves SSE stream debug verbosity from `OPENCLAW_DEBUG_SSE`. */
68
- export declare function resolveModelSseDebugMode(env?: ModelTransportDebugEnv): ModelSseDebugMode;
69
- /** Emits model-fetch metadata at info level by default; other diagnostics require debug env. */
70
- export declare function emitModelTransportDebug(log: SubsystemLogger, message: string): void;
71
- //#endregion
72
- //#region packages/ai/src/transports/model-transport-url.d.ts
73
- /**
74
- * Debug formatting helpers for model transport endpoints.
75
- * Keeps logs useful without exposing credentials, request params, or fragments.
76
- */
77
- /** Return a sanitized URL suitable for logs and diagnostics. */
78
- export declare function formatModelTransportDebugUrl(rawUrl: string): string;
79
- /** Format a configured base URL for debug output, or the implicit default. */
80
- export declare function formatModelTransportDebugBaseUrl(rawUrl: string | undefined): string;
81
- //#endregion
82
60
  //#region packages/ai/src/transports/openai-compatible-conversation-turn.d.ts
83
61
  /** Returns whether an OpenAI-compatible messages payload contains a usable turn. */
84
62
  export declare function hasOpenAICompatibleConversationTurn(messages: unknown): boolean;
85
63
  //#endregion
64
+ //#region packages/ai/src/transports/openai-completions-cache-control.d.ts
65
+ type CacheControl = {
66
+ type: "ephemeral";
67
+ ttl?: "1h" | "5m";
68
+ };
69
+ /** Shared Chat Completions policy; repeated wrapper application preserves existing checkpoints. */
70
+ export declare function applyCompletionsAnthropicCacheControl(payload: Record<string, unknown>, cacheControl?: CacheControl | null, cacheOptOutIndexes?: ReadonlySet<number>, markTools?: boolean, markMessages?: boolean): void;
71
+ //#endregion
86
72
  //#region packages/ai/src/transports/openai-completions-string-content.d.ts
87
73
  /** Flatten string-only text block content arrays into newline-joined strings. */
88
74
  export declare function flattenCompletionMessagesToStringContent(messages: unknown[]): unknown[];
@@ -136,6 +122,7 @@ export type MutableAssistantOutput = Omit<AssistantMessage, "content" | "usage">
136
122
  };
137
123
  export declare function parseOpenAICompletionsUsage(rawUsage: NonNullable<ChatCompletionChunk["usage"]> & {
138
124
  cost?: unknown;
125
+ cache_creation_input_tokens?: number;
139
126
  prompt_cache_hit_tokens?: number;
140
127
  prompt_tokens_details?: {
141
128
  cache_creation_input_tokens?: number;
@@ -160,7 +147,25 @@ export declare function isOpenAICompletionsThinkingEnabled(effort: string): bool
160
147
  export declare function readOpenAICompletionsContentDeltas(content: unknown, topLevelRefusal?: unknown, mirroredThinking?: readonly string[]): OpenAICompletionsContentDelta[];
161
148
  //#endregion
162
149
  //#region packages/ai/src/transports/openai-completions-params.d.ts
163
- export declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): Record<string, unknown>;
150
+ declare function convertTools(tools: NonNullable<Context["tools"]>, compat: ResolvedOpenAICompletionsCompat, model: OpenAIModeModel, mode: "direct" | "managed"): {
151
+ projection: OpenAIToolProjection;
152
+ tools: {
153
+ type: "function";
154
+ function: {
155
+ name: string;
156
+ description: string | undefined;
157
+ parameters: ReturnType<typeof normalizeOpenAIStrictToolParameters>;
158
+ strict?: boolean;
159
+ };
160
+ }[];
161
+ };
162
+ export declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): CompletionsRequest;
163
+ type CompletionsRequest = Record<string, unknown> & {
164
+ model: string;
165
+ messages: unknown[];
166
+ stream: true;
167
+ tools?: ReturnType<typeof convertTools>["tools"];
168
+ };
164
169
  //#endregion
165
170
  //#region packages/ai/src/transports/openai-completions-transport.d.ts
166
171
  export declare function createOpenAICompletionsTransportStreamFn(): StreamFn;
@@ -186,115 +191,33 @@ export declare function resolveReplayableResponsesMessageId(params: {
186
191
  }): string | undefined;
187
192
  //#endregion
188
193
  //#region packages/ai/src/transports/openai-responses-client.d.ts
189
- declare function createOpenAIResponsesClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string, fetchOverride?: typeof globalThis.fetch): OpenAI;
190
194
  export declare function createOpenAIResponsesTransportStreamFn(): StreamFn;
191
195
  export declare function createAzureOpenAIResponsesTransportStreamFn(): StreamFn;
192
- declare function createAzureOpenAIClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, _sessionId?: string, fetchOverride?: typeof globalThis.fetch): OpenAI;
196
+ //#endregion
197
+ //#region packages/ai/src/transports/openai-responses-compact-request.d.ts
198
+ type OpenAIResponsesCompactEndpointResult = {
199
+ output: OpenAIResponsesCompactionOutput;
200
+ item: {
201
+ type: "compaction";
202
+ id?: string;
203
+ encrypted_content: string;
204
+ };
205
+ historyMode: "compacted-prefix" | "retained-users";
206
+ usage: Record<string, unknown> & {
207
+ input_tokens: number;
208
+ output_tokens: number;
209
+ };
210
+ model: Model;
211
+ replayMetadata: OpenAIResponsesReasoningReplayMetadata;
212
+ };
213
+ /** Run a compact-endpoint request through the session's prepared stream stack. */
214
+ export declare function requestPreparedOpenAIResponsesCompaction(streamFn: StreamFn, model: Model, context: Context, options: OpenAIResponsesOptions): Promise<OpenAIResponsesCompactEndpointResult>;
193
215
  //#endregion
194
216
  //#region packages/ai/src/transports/openai-responses-compaction-replay.d.ts
195
217
  export declare function captureOpenAIResponsesCompaction(output: Pick<AssistantMessage, "providerReplay">, item: ReplayableResponseCompactionItem, boundary: number | "retained-users", model: Model, captureMetadata?: OpenAIResponsesReasoningReplayMetadata, compactedOutput?: OpenAIResponsesCompactionOutput): void;
196
- type OpenAIResponsesReplayMode = "checkpoint" | "full-history";
197
218
  export declare class CompactionReplayRefreshRequiredError extends Error {
198
219
  constructor();
199
220
  }
200
- declare function buildOpenAIResponsesReasoningReplayMetadata(model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): OpenAIResponsesReasoningReplayMetadata;
201
- //#endregion
202
- //#region packages/ai/src/transports/openai-responses-debug.d.ts
203
- declare function summarizeResponsesTools(tools: unknown): string;
204
- declare function stringifyRedactedPayload(value: unknown): string;
205
- declare function stringifyRedactedEvent(value: unknown): string;
206
- type ResponsesFailedNoDetailsObservation = {
207
- event: "openai_responses_response_failed_without_details";
208
- provider: string;
209
- api: Api;
210
- transportModel: string;
211
- providerRuntimeFailureKind: "no_error_details";
212
- responseId: string;
213
- responseStatus: string;
214
- responseModel: string;
215
- responseObject: string;
216
- metadataKeys: string[];
217
- requestIdHashes: string[];
218
- failureFieldsPreview: string;
219
- responsePreview: string;
220
- };
221
- type ResponsesFailedEventSummary = {
222
- message: string;
223
- responseId?: string;
224
- code?: string;
225
- observation?: ResponsesFailedNoDetailsObservation;
226
- };
227
- declare function buildResponsesFailedNoDetailsObservation(event: Record<string, unknown>, model: Model, response?: Record<string, unknown> | undefined): ResponsesFailedNoDetailsObservation;
228
- declare function summarizeResponsesFailedNoDetailsObservation(observation: ResponsesFailedNoDetailsObservation): string;
229
- declare function normalizeResponsesFailedEvent(event: Record<string, unknown>, model: Model): ResponsesFailedEventSummary;
230
- declare function summarizeResponsesPayload(params: unknown): string;
231
- //#endregion
232
- //#region packages/ai/src/transports/openai-responses-params-internal.d.ts
233
- declare function sanitizeOpenAICodexResponsesParams<T extends Record<string, unknown>>(model: Model, params: T): T;
234
- declare function buildOpenAIResponsesParams(model: Model, context: Context, options: OpenAIResponsesOptions | undefined, metadata?: Record<string, string>, replayMode?: OpenAIResponsesReplayMode): OpenAIResponsesRequestParams;
235
- //#endregion
236
- //#region packages/ai/src/transports/openai-responses-prompt-observer-internal.d.ts
237
- type ResponsesPromptRequest = {
238
- instructions?: unknown;
239
- input?: unknown;
240
- };
241
- type ResponsesPromptMetadata = Pick<ResponsesPromptObservation, "egress" | "payloadVariant">;
242
- declare function createResponsesPromptEgressObserver(options: object | undefined, assembledPrompt: string | undefined): ((request: ResponsesPromptRequest, metadata: ResponsesPromptMetadata) => void) | undefined;
243
- //#endregion
244
- //#region packages/ai/src/transports/openai-responses-replay-internal.d.ts
245
- type ResponsesClientLike = ReturnType<typeof createOpenAIResponsesClient>;
246
- declare function isInvalidEncryptedContentError(error: unknown): boolean;
247
- type ResponsesEncryptedContentRequest = {
248
- input?: ResponseInput;
249
- };
250
- type ResponsesEncryptedContentAttemptKind = "initial" | "reasoning-stripped" | "compaction-stripped" | "continuation-rejected";
251
- type ResponsesEncryptedContentAttempt<TRequest extends ResponsesEncryptedContentRequest> = {
252
- kind: ResponsesEncryptedContentAttemptKind;
253
- request: TRequest;
254
- rejectedCompaction?: OpenAIResponsesCompactionRejection;
255
- };
256
- declare function createResponsesStreamWithEncryptedContentRetry(params: {
257
- client: ResponsesClientLike;
258
- request: OpenAIResponsesRequestParams;
259
- requestOptions: {
260
- signal?: AbortSignal;
261
- } | undefined;
262
- model: Model;
263
- observePrompt?: NonNullable<ReturnType<typeof createResponsesPromptEgressObserver>>;
264
- initialAttemptKind?: ResponsesEncryptedContentAttemptKind;
265
- initialRejectedCompaction?: OpenAIResponsesCompactionRejection;
266
- onCompactionRejected?: (checkpoint: OpenAIResponsesCompactionRejection) => void;
267
- canRetryStream?: () => boolean;
268
- wrapStream?: (result: {
269
- stream: AsyncIterable<unknown>;
270
- response: Response;
271
- attempt: ResponsesEncryptedContentAttempt<OpenAIResponsesRequestParams>;
272
- }) => AsyncIterable<unknown>;
273
- buildFullHistoryRequest?: () => OpenAIResponsesRequestParams | Promise<OpenAIResponsesRequestParams>;
274
- }): Promise<{
275
- stream: AsyncIterable<unknown>;
276
- response: Response;
277
- attempt: ResponsesEncryptedContentAttempt<OpenAIResponsesRequestParams>;
278
- }>;
279
- declare function resolveAzureOpenAIApiVersion(env?: NodeJS.ProcessEnv): string;
280
- //#endregion
281
- //#region packages/ai/src/transports/openai-responses-stream-terminal-internal.d.ts
282
- type ResponsesEventSink = {
283
- push(event: AssistantMessageEvent): void;
284
- };
285
- //#endregion
286
- //#region packages/ai/src/transports/openai-responses-stream-types-internal.d.ts
287
- type ResponsesStreamOptions = FirstStreamEventInternalOptions & {
288
- asyncToolExecution?: boolean;
289
- serviceTier?: ResponseCreateParamsStreaming["service_tier"];
290
- resolveServiceTier?: (responseServiceTier: ResponseCreateParamsStreaming["service_tier"] | undefined, requestServiceTier: ResponseCreateParamsStreaming["service_tier"] | undefined) => ResponseCreateParamsStreaming["service_tier"] | undefined;
291
- applyServiceTierPricing?: (usage: Usage, serviceTier: ResponseCreateParamsStreaming["service_tier"] | undefined) => void;
292
- signal?: AbortSignal;
293
- reasoningReplayMetadata?: OpenAIResponsesReasoningReplayMetadata;
294
- };
295
- //#endregion
296
- //#region packages/ai/src/transports/openai-responses-stream-internal.d.ts
297
- declare function processResponsesStream<TApi extends Api>(openaiStream: AsyncIterable<unknown>, output: AssistantMessage, stream: ResponsesEventSink, model: Model<TApi>, options?: ResponsesStreamOptions): Promise<import("openai/resources/responses/responses.js").Response | undefined>;
298
221
  //#endregion
299
222
  //#region packages/ai/src/transports/openai-transport-params.d.ts
300
223
  export declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
@@ -306,9 +229,7 @@ export declare function resolveOpenAIStrictToolFlagWithDiagnostics(projection: O
306
229
  transport: "responses" | "completions";
307
230
  model: OpenAIModeModel;
308
231
  }): boolean | undefined;
309
- export declare function isOpenAICodexResponsesModel(model: Model): boolean;
310
- export declare function usesNativeOpenAICodexResponsesBackend(model: Model): boolean;
311
- export declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): Record<string, string>;
232
+ export declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string, cacheRetention?: CacheRetention): Record<string, string>;
312
233
  export declare function buildOpenAISdkClientOptions(model: Model): {
313
234
  timeout?: number;
314
235
  maxRetries: 0;
@@ -338,7 +259,7 @@ export declare function getCompat(model: OpenAIModeModel): {
338
259
  requiresAssistantAfterToolResult: boolean;
339
260
  requiresThinkingAsText: boolean;
340
261
  requiresReasoningContentOnAssistantMessages: boolean;
341
- thinkingFormat: "openai" | "openrouter" | "deepseek" | "together" | "zai" | "qwen" | "qwen-chat-template";
262
+ thinkingFormat: ModelDataThinkingFormat;
342
263
  zaiToolStream: boolean;
343
264
  supportsStrictMode: boolean;
344
265
  supportsJsonSchemaResponseFormat: boolean;
@@ -347,57 +268,9 @@ export declare function getCompat(model: OpenAIModeModel): {
347
268
  sessionAffinity: "openai" | "openrouter" | "none";
348
269
  visibleReasoningDetailTypes: string[];
349
270
  requiresNonEmptyUserOrAssistantMessage: boolean;
271
+ configuredSupportsLongCacheRetention?: boolean;
350
272
  };
351
273
  //#endregion
352
- //#region packages/ai/src/transports/openai-responses-compact-request.d.ts
353
- type OpenAIResponsesCompactEndpointResult = {
354
- output: OpenAIResponsesCompactionOutput;
355
- item: {
356
- type: "compaction";
357
- id?: string;
358
- encrypted_content: string;
359
- };
360
- historyMode: "compacted-prefix" | "retained-users";
361
- usage: Record<string, unknown> & {
362
- input_tokens: number;
363
- output_tokens: number;
364
- };
365
- model: Model;
366
- replayMetadata: OpenAIResponsesReasoningReplayMetadata;
367
- };
368
- /** Run a compact-endpoint request through the session's prepared stream stack. */
369
- export declare function requestPreparedOpenAIResponsesCompaction(streamFn: StreamFn, model: Model, context: Context, options: OpenAIResponsesOptions): Promise<OpenAIResponsesCompactEndpointResult>;
370
- //#endregion
371
- //#region packages/ai/src/transports/openai-responses-transport.d.ts
372
- declare const responsesTesting: {
373
- getCompat: typeof getCompat;
374
- assertCodeModeResponsesToolSurface: typeof assertCodeModeResponsesToolSurface;
375
- buildOpenAIResponsesParams: typeof buildOpenAIResponsesParams;
376
- buildOpenAIClientHeaders: typeof buildOpenAIClientHeaders;
377
- buildOpenAISdkClientOptions: typeof buildOpenAISdkClientOptions;
378
- buildOpenAISdkRequestOptions: typeof buildOpenAISdkRequestOptions;
379
- createAzureOpenAIClient: typeof createAzureOpenAIClient;
380
- createOpenAIResponsesClient: typeof createOpenAIResponsesClient;
381
- enforceCodeModeResponsesToolSurface: typeof enforceCodeModeResponsesToolSurface;
382
- sanitizeOpenAICodexResponsesParams: typeof sanitizeOpenAICodexResponsesParams;
383
- processResponsesStream: typeof processResponsesStream;
384
- formatModelTransportDebugBaseUrl: typeof formatModelTransportDebugBaseUrl;
385
- buildResponsesFailedNoDetailsObservation: typeof buildResponsesFailedNoDetailsObservation;
386
- buildOpenAIResponsesReasoningReplayMetadata: typeof buildOpenAIResponsesReasoningReplayMetadata;
387
- isInvalidEncryptedContentError: typeof isInvalidEncryptedContentError;
388
- normalizeResponsesFailedEvent: typeof normalizeResponsesFailedEvent;
389
- createResponsesStreamWithEncryptedContentRetry: typeof createResponsesStreamWithEncryptedContentRetry;
390
- resolveAzureOpenAIApiVersion: typeof resolveAzureOpenAIApiVersion;
391
- summarizeResponsesFailedNoDetailsObservation: typeof summarizeResponsesFailedNoDetailsObservation;
392
- summarizeResponsesPayload: typeof summarizeResponsesPayload;
393
- summarizeResponsesTools: typeof summarizeResponsesTools;
394
- stringifyRedactedEvent: typeof stringifyRedactedEvent;
395
- stringifyRedactedPayload: typeof stringifyRedactedPayload;
396
- };
397
- declare global {
398
- var openclawOpenAIResponsesTransportTestApi: typeof responsesTesting | undefined;
399
- }
400
- //#endregion
401
274
  //#region packages/ai/src/transports/provider-compaction-replay.d.ts
402
275
  type ReplayIdentity = {
403
276
  sessionId?: string;
@@ -459,6 +332,8 @@ export declare function buildTransportAwareSimpleStreamFn(model: Model, ctx?: Pr
459
332
  export declare function sanitizeResponsesImagePayload<T extends Record<string, unknown>>(params: T): T;
460
333
  //#endregion
461
334
  //#region packages/ai/src/transports/simple-completion-transport.d.ts
335
+ /** Standalone completions have no durable session, but may require routing identity. */
336
+ export declare function prepareHeadersForSimpleCompletion(model: Pick<Model, "baseUrl" | "headers">, options?: Pick<StreamOptions, "sessionId" | "headers">): Record<string, string> | undefined;
462
337
  export declare function normalizeCodexResponsesBaseUrlForOpenAISdk(baseUrl?: string): string;
463
338
  export declare function prepareModelForSimpleCompletion<TApi extends Api>(params: {
464
339
  apiRegistry: ApiRegistry;
@@ -470,4 +345,73 @@ export declare function prepareModelForSimpleCompletion<TApi extends Api>(params
470
345
  export declare const MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE = "OpenClaw transport error: malformed_streaming_fragment";
471
346
  export declare function isCodeModeModelVisibleToolName(name: string, visibleToolNames: ReadonlySet<string>): boolean;
472
347
  //#endregion
473
- export { type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicCacheControlToMessages, applyAnthropicContextManagementToRequest, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createEmptyTransportUsage, createWritableTransportEventStream, detectOpenAICompletionsCompat, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, isAnthropicServerToolClearingEnabled, isDirectAnthropicModel, logAnthropicContextEdits, mergeTransportHeaders, mergeTransportMetadata, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicContextManagementBetaHeader, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicServerCompactionPlan, resolveOpenAICompletionsCompat, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, transportAbortError, withProviderAcceptanceObserver, withProviderResponseHook };
348
+ //#region packages/ai/src/providers/google-stream.d.ts
349
+ type GoogleStreamChunk = {
350
+ responseId?: string;
351
+ modelVersion?: string;
352
+ promptFeedback?: {
353
+ blockReason?: string;
354
+ blockReasonMessage?: string;
355
+ };
356
+ candidates?: Array<{
357
+ content?: {
358
+ parts?: Array<{
359
+ text?: string;
360
+ thought?: boolean;
361
+ thoughtSignature?: string;
362
+ functionCall?: {
363
+ id?: string;
364
+ name?: string;
365
+ args?: Record<string, unknown>;
366
+ };
367
+ }>;
368
+ };
369
+ finishReason?: string;
370
+ finishMessage?: string;
371
+ }>;
372
+ usageMetadata?: {
373
+ promptTokenCount?: number;
374
+ cachedContentTokenCount?: number;
375
+ candidatesTokenCount?: number;
376
+ thoughtsTokenCount?: number;
377
+ toolUsePromptTokenCount?: number;
378
+ totalTokenCount?: number;
379
+ };
380
+ };
381
+ /** @internal Directly tested provider implementation detail. */
382
+ export declare function consumeGoogleGenerateContentStream(params: {
383
+ chunks: AsyncIterable<GoogleStreamChunk>;
384
+ model: Model;
385
+ output: AssistantMessage;
386
+ stream: WritableTransportStream;
387
+ signal?: AbortSignal;
388
+ nextToolCallId: (name: string | undefined) => string;
389
+ profile?: "sdk" | "managed";
390
+ normalizeModelId?: (id: string) => string;
391
+ resolveStopReason?: (reason: string) => StopReason;
392
+ }): Promise<void>;
393
+ //#endregion
394
+ //#region packages/ai/src/providers/google-messages.d.ts
395
+ type GoogleContentPart = Part & Record<string, unknown>;
396
+ type GoogleContent = {
397
+ role: string;
398
+ parts: GoogleContentPart[];
399
+ };
400
+ export declare function requiresGoogleToolCallId(modelId: string): boolean;
401
+ /** Project a prepared transcript; route repair and trusted video admission remain caller-owned. */
402
+ export declare function projectGoogleMessages(params: {
403
+ model: Pick<ProviderModel, "id" | "api" | "provider" | "input">;
404
+ messages: ProviderContext["messages"];
405
+ replay: "signed-parts" | "managed";
406
+ requiresToolCallSignature: boolean;
407
+ videoPart?: (video: VideoContent) => GoogleContentPart;
408
+ }): GoogleContent[];
409
+ /**
410
+ * Convert tools to Gemini function declarations format.
411
+ * @internal Directly tested provider implementation detail.
412
+ */
413
+ export declare function convertGoogleTools(tools: Tool[]): {
414
+ functionDeclarations: Record<string, unknown>[];
415
+ }[] | undefined;
416
+ //#endregion
417
+ export { type GoogleStreamChunk, IncompleteToolCallError, type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicContextManagementToRequest, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyAnthropicRequestCacheControl, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, buildAnthropicSystemBlocks, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createEmptyTransportUsage, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, isAnthropicServerToolClearingEnabled, isDirectAnthropicModel, isNativeOpenAIEndpoint, isOpenAICodexResponsesModel, logAnthropicContextEdits, mergeTransportHeaders, mergeTransportMetadata, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicCacheOptions, resolveAnthropicContextManagementBetaHeader, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicServerCompactionPlan, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIPromptCacheKeySupport, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, transportAbortError, usesNativeOpenAICodexResponsesBackend, withProviderAcceptanceObserver, withProviderResponseHook };