@openclaw/ai 2026.7.2-beta.7 → 2026.8.1-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 (91) hide show
  1. package/dist/{anthropic-CH4UUnZr.mjs → anthropic-B6dLpq5L.mjs} +55 -203
  2. package/dist/{src-QkygScBs.mjs → anthropic-JsNA5KCu.mjs} +0 -1
  3. package/dist/anthropic-compaction-replay-8lJNKXOE.mjs +840 -0
  4. package/dist/anthropic-payload-policy-CiEuQS72.d.mts +49 -0
  5. package/dist/{api-registry-DlMgPR39.d.mts → api-registry-k3zTz0cV.d.mts} +1 -1
  6. package/dist/{azure-openai-responses-CImcwB83.mjs → azure-openai-responses-mxIOtUnn.mjs} +23 -29
  7. package/dist/diagnostics.d.mts +24 -1
  8. package/dist/diagnostics.mjs +2 -1
  9. package/dist/{event-stream-YjaPW20U.d.mts → event-stream-BP6AWT8j.d.mts} +4 -1
  10. package/dist/{event-stream-D8n2uFee.mjs → event-stream-uSMZJ3FA.mjs} +26 -5
  11. package/dist/event-stream.d.mts +1 -1
  12. package/dist/event-stream.mjs +1 -1
  13. package/dist/{google-CtSg0iTS.mjs → google-C7h2QzDX.mjs} +5 -5
  14. package/dist/{google-shared-DNBz5rcD.mjs → google-shared-B0Qr9OR7.mjs} +146 -89
  15. package/dist/google-thinking-level-C-V3tecN.mjs +9 -0
  16. package/dist/{google-vertex-31f1uS9L.mjs → google-vertex-Bhc3TjDl.mjs} +11 -7
  17. package/dist/{llm-request-activity-BjtkplhG.mjs → headers-DdOQtGuU.mjs} +9 -1
  18. package/dist/host-DTqNc7ad.mjs +466 -0
  19. package/dist/{host-B9GUmcra.d.mts → host-vWgMMhiJ.d.mts} +9 -4
  20. package/dist/index.d.mts +6 -6
  21. package/dist/index.mjs +7 -5
  22. package/dist/internal/anthropic.d.mts +29 -5
  23. package/dist/internal/anthropic.mjs +5 -5
  24. package/dist/internal/openai-responses-payload-policy.d.mts +3 -0
  25. package/dist/internal/openai-responses-payload-policy.mjs +3 -0
  26. package/dist/internal/openai.d.mts +6 -6
  27. package/dist/internal/openai.mjs +8 -7
  28. package/dist/internal/runtime.d.mts +17 -5
  29. package/dist/internal/runtime.mjs +85 -73
  30. package/dist/internal/shared.d.mts +1 -6
  31. package/dist/internal/shared.mjs +3 -5
  32. package/dist/{json-parse-BvXNt1-7.mjs → json-parse-CDnesDM_.mjs} +4 -6
  33. package/dist/{mistral-CWmpvWYh.mjs → mistral-CEWoQI_g.mjs} +45 -48
  34. package/dist/number-coercion-H9qHik3g.mjs +71 -0
  35. package/dist/openai-chatgpt-jwt-KWcgd0d_.mjs +19 -0
  36. package/dist/{openai-chatgpt-responses-B84Ibtrd.mjs → openai-chatgpt-responses-CrPmqERt.mjs} +284 -240
  37. package/dist/{openai-completions-DsOxhOD1.mjs → openai-completions-BPnt4Sml.mjs} +65 -99
  38. package/dist/{openai-completions-compat-DBWjXoMZ.d.mts → openai-completions-compat-Dt3dcawL.d.mts} +2 -2
  39. package/dist/{openai-responses-BT7A3sLu.mjs → openai-responses-DhIKtOup.mjs} +18 -41
  40. package/dist/openai-responses-contracts-CyfIkQi5.mjs +253 -0
  41. package/dist/openai-responses-contracts-XpZJxrRG.d.mts +68 -0
  42. package/dist/openai-responses-payload-policy-BDxV-W0c.mjs +206 -0
  43. package/dist/openai-responses-payload-policy-BSs371VM.d.mts +40 -0
  44. package/dist/openai-responses-prompt-observer-internal-DgNTYnRY.mjs +46 -0
  45. package/dist/{openai-responses-stream-internal-Cw5txaGW.mjs → openai-responses-shared-DXIt3iY5.mjs} +1406 -940
  46. package/dist/{openai-reasoning-compat-YgeLncHw.mjs → openai-stop-reason-BkFkqqK0.mjs} +204 -37
  47. package/dist/openai-tool-projection-CY04OcvQ.mjs +338 -0
  48. package/dist/provider-error-BUwEnjXq.mjs +429 -0
  49. package/dist/provider-error-CzNw4BWX.d.mts +12 -0
  50. package/dist/{provider-options-D8bB3z9b.d.mts → provider-options-B96RdNpH.d.mts} +9 -3
  51. package/dist/provider-transcript-transform-ePx-Bbfr.mjs +155 -0
  52. package/dist/provider-types.d.mts +31 -0
  53. package/dist/provider-types.mjs +8 -0
  54. package/dist/providers.d.mts +1 -1
  55. package/dist/providers.mjs +17 -19
  56. package/dist/{reasoning-tag-text-partitioner-CGDyLWUR.mjs → reasoning-tag-text-partitioner-rnPwX2pg.mjs} +14 -8
  57. package/dist/record-coerce-DdXsgUd_.mjs +23 -0
  58. package/dist/sanitize-unicode-BYqrYtC_.mjs +90 -0
  59. package/dist/session-resources-CkR4WWy1.mjs +21 -0
  60. package/dist/simple-options-D58D5Kvw.mjs +117 -0
  61. package/dist/src-D2H6yKkH.mjs +2 -0
  62. package/dist/{stream-first-event-timeout-BBys9hSb.mjs → stream-first-event-timeout-MK28puvq.mjs} +2 -2
  63. package/dist/string-coerce-fsri9iCu.mjs +34 -0
  64. package/dist/{tool-schema-json-projection-BwNu3nDi.mjs → tool-schema-json-projection-q5d7QX5c.mjs} +32 -7
  65. package/dist/transport-utils-DJqkxbhC.mjs +138 -0
  66. package/dist/transports.d.mts +166 -241
  67. package/dist/transports.mjs +1979 -1825
  68. package/dist/types-BDdaOVi2.mjs +6 -0
  69. package/dist/{types-bzp5k29J.d.mts → types-BHNrPS1l.d.mts} +23 -1
  70. package/dist/types.d.mts +4 -4
  71. package/dist/types.mjs +6 -4
  72. package/dist/utf16-slice-CvGodqok.mjs +29 -0
  73. package/dist/{validation-DAa_yFOM.mjs → validation-B61OhAio.mjs} +6 -6
  74. package/dist/{validation-B-j7cOYp.d.mts → validation-DT9SrFn3.d.mts} +1 -1
  75. package/dist/validation.d.mts +1 -1
  76. package/dist/validation.mjs +1 -1
  77. package/package.json +15 -1
  78. package/dist/anthropic-usage-DWU-x8MI.mjs +0 -459
  79. package/dist/error-coercion-DgxlWC0n.mjs +0 -15
  80. package/dist/headers-B_e4-1J0.mjs +0 -9
  81. package/dist/host-Dog2WQiR.mjs +0 -369
  82. package/dist/number-coercion-DvG7SNMg.mjs +0 -129
  83. package/dist/openai-chatgpt-jwt-DhAAzLkj.mjs +0 -39
  84. package/dist/openai-responses-shared-pXl6Wd8S.mjs +0 -392
  85. package/dist/openai-tool-projection-OhX64DoP.mjs +0 -215
  86. package/dist/provider-error-CAEvRjry.mjs +0 -47
  87. package/dist/sanitize-unicode-DT5o51ur.mjs +0 -26
  88. package/dist/simple-options-9lhRrN73.mjs +0 -50
  89. package/dist/tool-result-text-CTpIRbYd.mjs +0 -225
  90. package/dist/transform-messages-C8mBqZxF.mjs +0 -2
  91. package/dist/transport-stream-shared-D81p90xq.mjs +0 -297
@@ -1,45 +1,18 @@
1
- import { E as Model, L as StreamFn, O as OpenAICompletionsCompat, X as Usage, a as AssistantMessageEvent, i as AssistantMessage, n as Api, u as Context } from "./types-bzp5k29J.mjs";
2
- import { t as AssistantMessageEventStream } from "./event-stream-YjaPW20U.mjs";
3
- import { n as ApiRegistry } from "./api-registry-DlMgPR39.mjs";
4
- import { a as OpenAICompletionsOptions, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, i as BaseOpenAIStreamOptions, s as OpenAIToolProjection } from "./provider-options-D8bB3z9b.mjs";
5
- import { n as detectOpenAICompletionsCompat, r as resolveOpenAICompletionsCompat, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-DBWjXoMZ.mjs";
1
+ import { $ as Usage, B as StreamFn, E as Model, F as ProviderReplayState, O as OpenAICompletionsCompat, a as AssistantMessageEvent, i as AssistantMessage, n as Api, u as Context } from "./types-BHNrPS1l.mjs";
2
+ import { t as AssistantMessageEventStream } from "./event-stream-BP6AWT8j.mjs";
3
+ import { n as ApiRegistry } from "./api-registry-k3zTz0cV.mjs";
4
+ import { a as OpenAICompletionsOptions, c as OpenAIToolProjection, i as BaseOpenAIStreamOptions, o as OpenAIResponsesCompactionRejection } from "./provider-options-B96RdNpH.mjs";
5
+ import { a as resolveAnthropicPayloadPolicy, i as resolveAnthropicEphemeralCacheControl, n as applyAnthropicEphemeralCacheControlMarkers, o as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, t as applyAnthropicCacheControlToMessages } from "./anthropic-payload-policy-CiEuQS72.mjs";
6
+ import { a as ReplayableResponseCompactionItem, i as OpenAIResponsesRequestParams, n as OpenAIResponsesOptions, o as ResponsesPromptObservation, r as OpenAIResponsesReasoningReplayMetadata } from "./openai-responses-contracts-XpZJxrRG.mjs";
7
+ import { i as resolveOpenAIResponsesServerCompactionPlan, n as resolveOpenAIResponsesCompactEndpointPlan, r as resolveOpenAIResponsesPayloadPolicy, t as applyOpenAIResponsesPayloadPolicy } from "./openai-responses-payload-policy-BSs371VM.mjs";
8
+ import { n as detectOpenAICompletionsCompat, r as resolveOpenAICompletionsCompat, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-Dt3dcawL.mjs";
6
9
  import { n as FirstStreamEventInternalOptions } from "./stream-first-event-timeout-DvDeSucC.mjs";
7
10
  import { r as sortPromptCacheToolsByName } from "./prompt-cache-stability-Cwcjv_fx.mjs";
11
+ import { t as ProviderErrorProjection } from "./provider-error-CzNw4BWX.mjs";
8
12
  import OpenAI from "openai";
9
- import { FunctionTool, ResponseCreateParamsStreaming, ResponseInput, ResponseReasoningItem } from "openai/resources/responses/responses.js";
13
+ import { ResponseCreateParamsStreaming, ResponseInput } from "openai/resources/responses/responses.js";
10
14
  import { ChatCompletionChunk } from "openai/resources/chat/completions.js";
11
15
 
12
- //#region packages/ai/src/transports/anthropic-payload-policy.d.ts
13
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
14
- type AnthropicServiceTier = "auto" | "standard_only";
15
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
16
- type AnthropicEphemeralCacheControl = {
17
- type: "ephemeral";
18
- ttl?: "1h";
19
- };
20
- type AnthropicPayloadPolicyInput = {
21
- api?: string;
22
- baseUrl?: string;
23
- cacheRetention?: "short" | "long" | "none";
24
- enableCacheControl?: boolean;
25
- provider?: string;
26
- serviceTier?: AnthropicServiceTier;
27
- };
28
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
29
- type AnthropicPayloadPolicy = {
30
- allowsServiceTier: boolean;
31
- cacheControl: AnthropicEphemeralCacheControl | undefined;
32
- serviceTier: AnthropicServiceTier | undefined;
33
- };
34
- /** Resolve Anthropic cache-control marker retention for a request endpoint. */
35
- declare function resolveAnthropicEphemeralCacheControl(baseUrl: string | undefined, cacheRetention: AnthropicPayloadPolicyInput["cacheRetention"]): AnthropicEphemeralCacheControl | undefined;
36
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
37
- declare function resolveAnthropicPayloadPolicy(input: AnthropicPayloadPolicyInput): AnthropicPayloadPolicy;
38
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
39
- declare function applyAnthropicPayloadPolicyToParams(payloadObj: Record<string, unknown>, policy: AnthropicPayloadPolicy, cacheBreakpointOptOutMessageIndexes: ReadonlySet<number>): void;
40
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
41
- declare function applyAnthropicEphemeralCacheControlMarkers(payloadObj: Record<string, unknown>, cacheControl?: AnthropicEphemeralCacheControl | null): void;
42
- //#endregion
43
16
  //#region packages/ai/src/transports/anthropic-transport-stream.d.ts
44
17
  /** Resolve the Anthropic Messages endpoint URL for the effective base URL. */
45
18
  declare function resolveAnthropicMessagesUrl(baseUrl?: string): string;
@@ -56,6 +29,10 @@ interface DeepSeekTextFilter {
56
29
  /** Create an incremental text filter that strips DeepSeek DSML tool blocks. */
57
30
  declare function createDeepSeekTextFilter(): DeepSeekTextFilter;
58
31
  //#endregion
32
+ //#region packages/ai/src/transports/google-thinking-level.d.ts
33
+ /** Returns whether a Gemini Flash model accepts the MINIMAL thinking level. */
34
+ declare function googleFlashSupportsMinimalThinking(modelId: string): boolean;
35
+ //#endregion
59
36
  //#region packages/ai/src/transports/json-unsafe-integers.d.ts
60
37
  /** Quotes integer literals above Number.MAX_SAFE_INTEGER before JSON.parse. */
61
38
  declare function quoteUnsafeIntegerLiterals(input: string): string;
@@ -77,12 +54,6 @@ declare function canonicalizeMaxTokensParam(params: {
77
54
  }): void;
78
55
  //#endregion
79
56
  //#region packages/ai/src/transports/model-transport-debug.d.ts
80
- /**
81
- * Environment-driven debug controls for model transport logging.
82
- *
83
- * Model adapters share these helpers so payload, SSE, and transport diagnostics
84
- * interpret OpenClaw debug environment variables consistently.
85
- */
86
57
  type SubsystemLogger = {
87
58
  info(message: string): void;
88
59
  debug(message: string): void;
@@ -126,6 +97,15 @@ declare const log: {
126
97
  info(message: string, data?: Record<string, unknown>): void;
127
98
  warn(message: string, data?: Record<string, unknown>): void;
128
99
  };
100
+ type OpenAICompletionsContentDelta = {
101
+ kind: "thinking";
102
+ signature?: string;
103
+ text: string;
104
+ } | {
105
+ kind: "text";
106
+ text: string;
107
+ source?: "refusal";
108
+ };
129
109
  type OpenAIModeCompatInput = Omit<OpenAICompletionsCompat, "thinkingFormat"> & {
130
110
  thinkingFormat?: string;
131
111
  requiresStringContent?: boolean;
@@ -160,111 +140,32 @@ type MutableAssistantOutput = {
160
140
  errorType?: string;
161
141
  errorBody?: string;
162
142
  };
143
+ declare function parseOpenAICompletionsUsage(rawUsage: NonNullable<ChatCompletionChunk["usage"]> & {
144
+ cost?: unknown;
145
+ prompt_cache_hit_tokens?: number;
146
+ }, model: Model, options?: {
147
+ includeReasoningTokens?: boolean;
148
+ }): MutableAssistantOutput["usage"];
149
+ declare function createOpenAIResponseHook(onResponse: BaseOpenAIStreamOptions["onResponse"], response: Response, model: Model): (() => void | Promise<void>) | undefined;
163
150
  type ModelStreamCooperativeScheduler = {
164
151
  afterEvent: () => Promise<void>;
165
152
  };
166
153
  declare function throwIfModelStreamAborted(signal?: AbortSignal): void;
154
+ /** Measure one UTF-8 append without double-counting a surrogate pair split across chunks. */
155
+ declare function measureUtf8AppendBytes(bufferEndsWithHighSurrogate: boolean, chunk: string): {
156
+ bytes: number;
157
+ endsWithHighSurrogate: boolean;
158
+ };
167
159
  declare function createModelStreamCooperativeScheduler(signal?: AbortSignal): ModelStreamCooperativeScheduler;
168
160
  declare function resolvePromptCacheKey(options: Pick<BaseOpenAIStreamOptions, "promptCacheKey" | "sessionId"> | undefined, cacheRetention: "short" | "long" | "none"): string | undefined;
161
+ declare function isOpenAICompletionsThinkingEnabled(effort: string): boolean;
162
+ declare function readOpenAICompletionsContentDeltas(content: unknown, topLevelRefusal?: unknown, mirroredThinking?: readonly string[]): OpenAICompletionsContentDelta[];
169
163
  //#endregion
170
- //#region packages/ai/src/transports/openai-transport-params.d.ts
171
- declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
172
- declare function filterCodeModePayloadTools(payload: unknown, visibleToolNames: ReadonlySet<string>): void;
173
- declare function resolveCodeModeResponsesVisibleToolNames(context: Pick<Context, "tools">): ReadonlySet<string>;
174
- declare function enforceCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>): void;
175
- declare function assertCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>): void;
176
- declare function resolveOpenAIStrictToolFlagWithDiagnostics(projection: OpenAIToolProjection, strictSetting: boolean | null | undefined, context: {
177
- transport: "responses" | "completions";
178
- model: OpenAIModeModel;
179
- }): boolean | undefined;
180
- declare function isOpenAICodexResponsesModel(model: Model): boolean;
181
- declare function usesNativeOpenAICodexResponsesBackend(model: Model): boolean;
182
- declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): Record<string, string>;
183
- declare function buildOpenAISdkClientOptions(model: Model): {
184
- timeout?: number;
185
- };
186
- declare function buildOpenAISdkRequestOptions(model: Model, signal?: AbortSignal, options?: {
187
- stream?: boolean;
188
- timeoutMs?: number;
189
- maxRetries?: number;
190
- }): {
191
- signal?: AbortSignal;
192
- timeout?: number;
193
- maxRetries?: number;
194
- headers?: Record<string, string>;
195
- } | undefined;
196
- declare function getCompat(model: OpenAIModeModel): {
197
- cacheControlFormat: "anthropic" | undefined;
198
- reasoningEffortMap: Record<string, string>;
199
- openRouterRouting: Record<string, unknown>;
200
- vercelGatewayRouting: Record<string, unknown>;
201
- requiresStringContent: boolean;
202
- strictMessageKeys: boolean;
203
- supportsStore: boolean;
204
- supportsDeveloperRole: boolean;
205
- supportsReasoningEffort: boolean;
206
- supportsUsageInStreaming: boolean;
207
- maxTokensField: "max_completion_tokens" | "max_tokens";
208
- requiresToolResultName: boolean;
209
- requiresAssistantAfterToolResult: boolean;
210
- requiresThinkingAsText: boolean;
211
- requiresReasoningContentOnAssistantMessages: boolean;
212
- thinkingFormat: "openai" | "openrouter" | "deepseek" | "together" | "zai" | "qwen" | "qwen-chat-template";
213
- zaiToolStream: boolean;
214
- supportsStrictMode: boolean;
215
- supportsJsonSchemaResponseFormat: boolean;
216
- supportsPromptCacheKey: boolean;
217
- supportsLongCacheRetention: boolean;
218
- sessionAffinity: "openai" | "openrouter" | "none";
219
- visibleReasoningDetailTypes: string[];
220
- requiresNonEmptyUserOrAssistantMessage: boolean;
221
- };
164
+ //#region packages/ai/src/transports/openai-completions-params.d.ts
165
+ declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): Record<string, unknown>;
222
166
  //#endregion
223
167
  //#region packages/ai/src/transports/openai-completions-transport.d.ts
224
- declare function createSseDoneDetector(): {
225
- observe(chunk: Uint8Array): void;
226
- finish(): void;
227
- sawDone: () => boolean;
228
- };
229
- declare function createOpenAICompletionsClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, opts?: {
230
- fetch?: typeof globalThis.fetch;
231
- }): OpenAI;
232
- declare function buildOpenAICompletionsClientConfig(model: Model, context: Context, optionHeaders?: Record<string, string>): {
233
- baseURL: string;
234
- defaultHeaders: Record<string, string>;
235
- defaultQuery?: Record<string, string>;
236
- };
237
168
  declare function createOpenAICompletionsTransportStreamFn(): StreamFn;
238
- declare function processOpenAICompletionsStream(responseStream: AsyncIterable<ChatCompletionChunk>, output: MutableAssistantOutput, model: Model, stream: {
239
- push(event: unknown): void;
240
- }, options?: {
241
- signal?: AbortSignal;
242
- emitReasoning?: boolean;
243
- firstEventTimeoutMs?: number;
244
- abortFirstEventStream?: (reason: Error) => void;
245
- onFirstEventTimeout?: (reason: Error) => void;
246
- sawStreamDONE?: () => boolean;
247
- }): Promise<void>;
248
- declare function shouldEmitOpenAICompletionsReasoningForModel(model: OpenAIModeModel, options: OpenAICompletionsOptions | undefined): boolean;
249
- declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): Record<string, unknown>;
250
- declare function parseTransportChunkUsage(rawUsage: NonNullable<ChatCompletionChunk["usage"]> & {
251
- cost?: unknown;
252
- prompt_tokens_details?: {
253
- cache_write_tokens?: number | null;
254
- };
255
- }, model: Model): MutableAssistantOutput["usage"];
256
- declare const completionsTesting: {
257
- getCompat: typeof getCompat;
258
- createSseDoneDetector: typeof createSseDoneDetector;
259
- createOpenAICompletionsClient: typeof createOpenAICompletionsClient;
260
- buildOpenAICompletionsClientConfig: typeof buildOpenAICompletionsClientConfig;
261
- parseTransportChunkUsage: typeof parseTransportChunkUsage;
262
- processOpenAICompletionsStream: typeof processOpenAICompletionsStream;
263
- shouldEmitOpenAICompletionsReasoningForModel: typeof shouldEmitOpenAICompletionsReasoningForModel;
264
- };
265
- declare global {
266
- var openclawOpenAICompletionsTransportTestApi: typeof completionsTesting | undefined;
267
- }
268
169
  //#endregion
269
170
  //#region packages/ai/src/transports/openai-reasoning-compat.d.ts
270
171
  /** Minimal model fields needed to resolve OpenAI reasoning effort compatibility. */
@@ -276,36 +177,6 @@ type OpenAIReasoningCompatModel = {
276
177
  /** Resolves the reasoning effort remap for an OpenAI-compatible model. */
277
178
  declare function resolveOpenAIReasoningEffortMap(model: OpenAIReasoningCompatModel, fallbackMap?: Record<string, string>): Record<string, string>;
278
179
  //#endregion
279
- //#region packages/ai/src/transports/openai-responses-payload-policy.d.ts
280
- type OpenAIResponsesPayloadModel = {
281
- api?: unknown;
282
- baseUrl?: unknown;
283
- id?: unknown;
284
- provider?: unknown;
285
- contextWindow?: unknown;
286
- compat?: unknown;
287
- };
288
- type OpenAIResponsesPayloadPolicyOptions = {
289
- extraParams?: Record<string, unknown>;
290
- storeMode?: "provider-policy" | "disable" | "preserve";
291
- enablePromptCacheStripping?: boolean;
292
- enableServerCompaction?: boolean;
293
- };
294
- type OpenAIResponsesPayloadPolicy = {
295
- allowsServiceTier: boolean;
296
- compactThreshold: number;
297
- explicitStore: boolean | undefined;
298
- shouldStripDisabledReasoningPayload: boolean;
299
- shouldStripInputStatus: boolean;
300
- shouldStripPromptCache: boolean;
301
- shouldStripStore: boolean;
302
- useServerCompaction: boolean;
303
- };
304
- /** Resolve payload mutation policy for one OpenAI Responses-style model endpoint. */
305
- declare function resolveOpenAIResponsesPayloadPolicy(model: OpenAIResponsesPayloadModel, options?: OpenAIResponsesPayloadPolicyOptions): OpenAIResponsesPayloadPolicy;
306
- /** Mutate a Responses request payload according to the resolved endpoint policy. */
307
- declare function applyOpenAIResponsesPayloadPolicy(payloadObj: Record<string, unknown>, policy: OpenAIResponsesPayloadPolicy): void;
308
- //#endregion
309
180
  //#region packages/ai/src/transports/openai-responses-replay.d.ts
310
181
  /** Resolves the assistant message id that can be replayed to OpenAI Responses. */
311
182
  declare function resolveReplayableResponsesMessageId(params: {
@@ -322,6 +193,11 @@ declare function createOpenAIResponsesTransportStreamFn(): StreamFn;
322
193
  declare function createAzureOpenAIResponsesTransportStreamFn(): StreamFn;
323
194
  declare function createAzureOpenAIClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>): OpenAI;
324
195
  //#endregion
196
+ //#region packages/ai/src/transports/openai-responses-compaction-replay.d.ts
197
+ declare function captureOpenAIResponsesCompaction(output: Pick<AssistantMessage, "providerReplay">, item: ReplayableResponseCompactionItem, replayIndex: number | undefined, model: Model, captureMetadata?: OpenAIResponsesReasoningReplayMetadata): void;
198
+ type OpenAIResponsesReplayMode = "checkpoint" | "full-history";
199
+ declare function buildOpenAIResponsesReasoningReplayMetadata(model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): OpenAIResponsesReasoningReplayMetadata;
200
+ //#endregion
325
201
  //#region packages/ai/src/transports/openai-responses-debug.d.ts
326
202
  declare function summarizeResponsesTools(tools: unknown): string;
327
203
  declare function stringifyRedactedPayload(value: unknown): string;
@@ -351,80 +227,45 @@ declare function summarizeResponsesFailedNoDetailsObservation(observation: Respo
351
227
  declare function normalizeResponsesFailedEvent(event: Record<string, unknown>, model: Model): ResponsesFailedEventSummary;
352
228
  declare function summarizeResponsesPayload(params: unknown): string;
353
229
  //#endregion
354
- //#region packages/ai/src/transports/openai-responses-contracts.d.ts
355
- declare const OPENAI_RESPONSES_REASONING_REPLAY_META_KEY = "__openclaw_replay";
356
- type OpenAIResponsesReasoningReplayMetadata = {
357
- v: 1;
358
- source: "openai-responses";
359
- provider: string;
360
- api: Api;
361
- model: string;
362
- baseUrlHash?: string;
363
- sessionHash?: string;
364
- authProfileHash?: string;
365
- };
366
- type ReplayableResponseReasoningItem = Omit<ResponseReasoningItem, "id"> & {
367
- id?: string;
368
- [OPENAI_RESPONSES_REASONING_REPLAY_META_KEY]?: OpenAIResponsesReasoningReplayMetadata;
369
- };
370
- type OpenAIResponsesOptions = BaseOpenAIStreamOptions & {
371
- reasoning?: OpenAIReasoningEffort;
372
- reasoningEffort?: OpenAIReasoningEffort;
373
- reasoningSummary?: "auto" | "detailed" | "concise" | null;
374
- replayResponsesItemIds?: boolean;
375
- serviceTier?: ResponseCreateParamsStreaming["service_tier"];
376
- toolChoice?: ResponseCreateParamsStreaming["tool_choice"];
377
- };
378
- type OpenAIResponsesReplayContext = {
379
- provider: string;
380
- api: Api;
381
- model: string;
382
- baseUrlHash?: string;
383
- sessionHash?: string;
384
- authProfileHash?: string;
385
- };
386
- type OpenAIResponsesRequestParams = {
387
- model: string;
388
- input: ResponseInput;
389
- stream: true;
390
- instructions?: string;
391
- prompt_cache_key?: string;
392
- prompt_cache_retention?: "24h";
393
- metadata?: Record<string, string>;
394
- store?: boolean;
395
- max_output_tokens?: number;
396
- temperature?: number;
397
- top_p?: number;
398
- text?: ResponseCreateParamsStreaming["text"];
399
- service_tier?: ResponseCreateParamsStreaming["service_tier"];
400
- tools?: FunctionTool[];
401
- tool_choice?: ResponseCreateParamsStreaming["tool_choice"];
402
- reasoning?: {
403
- effort: OpenAIApiReasoningEffort;
404
- } | {
405
- effort: OpenAIApiReasoningEffort;
406
- summary: NonNullable<OpenAIResponsesOptions["reasoningSummary"]>;
407
- };
408
- include?: string[];
409
- };
410
- //#endregion
411
230
  //#region packages/ai/src/transports/openai-responses-params-internal.d.ts
412
231
  declare function sanitizeOpenAICodexResponsesParams<T extends Record<string, unknown>>(model: Model, params: T): T;
413
- declare function buildOpenAIResponsesParams(model: Model, context: Context, options: OpenAIResponsesOptions | undefined, metadata?: Record<string, string>): OpenAIResponsesRequestParams;
232
+ declare function buildOpenAIResponsesParams(model: Model, context: Context, options: OpenAIResponsesOptions | undefined, metadata?: Record<string, string>, replayMode?: OpenAIResponsesReplayMode): OpenAIResponsesRequestParams;
233
+ //#endregion
234
+ //#region packages/ai/src/transports/openai-responses-prompt-observer-internal.d.ts
235
+ type ResponsesPromptRequest = {
236
+ instructions?: unknown;
237
+ input?: unknown;
238
+ };
239
+ type ResponsesPromptMetadata = Pick<ResponsesPromptObservation, "egress" | "payloadVariant">;
240
+ declare function createResponsesPromptEgressObserver(options: object | undefined, assembledPrompt: string | undefined): ((request: ResponsesPromptRequest, metadata: ResponsesPromptMetadata) => void) | undefined;
414
241
  //#endregion
415
242
  //#region packages/ai/src/transports/openai-responses-replay-internal.d.ts
416
243
  type ResponsesClientLike = ReturnType<typeof createOpenAIResponsesClient>;
417
244
  declare function isInvalidEncryptedContentError(error: unknown): boolean;
418
- declare function stripResponsesRequestEncryptedContent(params: OpenAIResponsesRequestParams): OpenAIResponsesRequestParams;
419
- declare function buildOpenAIResponsesReasoningReplayMetadata(model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): OpenAIResponsesReasoningReplayMetadata;
420
- declare function tagOpenAIResponsesReasoningReplayItem(item: Record<string, unknown>, model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): Record<string, unknown>;
421
- declare function prepareOpenAIResponsesReasoningItemForReplay(item: ReplayableResponseReasoningItem, context: OpenAIResponsesReplayContext, blockMetadata?: OpenAIResponsesReasoningReplayMetadata): ReplayableResponseReasoningItem;
245
+ type ResponsesEncryptedContentRequest = {
246
+ input?: ResponseInput;
247
+ };
248
+ type ResponsesEncryptedContentAttemptKind = "initial" | "reasoning-stripped" | "compaction-stripped" | "continuation-rejected";
249
+ type ResponsesEncryptedContentAttempt<TRequest extends ResponsesEncryptedContentRequest> = {
250
+ kind: ResponsesEncryptedContentAttemptKind;
251
+ request: TRequest;
252
+ rejectedCompaction?: OpenAIResponsesCompactionRejection;
253
+ };
422
254
  declare function createResponsesStreamWithEncryptedContentRetry(params: {
423
255
  client: ResponsesClientLike;
424
256
  request: OpenAIResponsesRequestParams;
425
257
  requestOptions: unknown;
426
258
  model: Model;
427
- }): Promise<AsyncIterable<unknown>>;
259
+ observePrompt?: NonNullable<ReturnType<typeof createResponsesPromptEgressObserver>>;
260
+ initialAttemptKind?: ResponsesEncryptedContentAttemptKind;
261
+ initialRejectedCompaction?: OpenAIResponsesCompactionRejection;
262
+ onCompactionRejected?: (checkpoint: OpenAIResponsesCompactionRejection) => void;
263
+ buildFullHistoryRequest?: () => OpenAIResponsesRequestParams | Promise<OpenAIResponsesRequestParams>;
264
+ }): Promise<{
265
+ stream: AsyncIterable<unknown>;
266
+ response: Response;
267
+ attempt: ResponsesEncryptedContentAttempt<OpenAIResponsesRequestParams>;
268
+ }>;
428
269
  declare function resolveAzureOpenAIApiVersion(env?: NodeJS.ProcessEnv): string;
429
270
  //#endregion
430
271
  //#region packages/ai/src/transports/openai-responses-stream-terminal-internal.d.ts
@@ -440,7 +281,77 @@ type ResponsesStreamOptions = FirstStreamEventInternalOptions & {
440
281
  signal?: AbortSignal;
441
282
  reasoningReplayMetadata?: OpenAIResponsesReasoningReplayMetadata;
442
283
  };
443
- declare function processResponsesStream<TApi extends Api>(openaiStream: AsyncIterable<unknown>, output: AssistantMessage, stream: ResponsesEventSink, model: Model<TApi>, options?: ResponsesStreamOptions): Promise<void>;
284
+ 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>;
285
+ //#endregion
286
+ //#region packages/ai/src/transports/openai-transport-params.d.ts
287
+ declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
288
+ declare function filterCodeModePayloadTools(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>): void;
289
+ declare function resolveCodeModeResponsesVisibleToolNames(context: Pick<Context, "tools">): ReadonlySet<string>;
290
+ declare function enforceCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>): void;
291
+ declare function assertCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>): void;
292
+ declare function resolveOpenAIStrictToolFlagWithDiagnostics(projection: OpenAIToolProjection, strictSetting: boolean | null | undefined, context: {
293
+ transport: "responses" | "completions";
294
+ model: OpenAIModeModel;
295
+ }): boolean | undefined;
296
+ declare function isOpenAICodexResponsesModel(model: Model): boolean;
297
+ declare function usesNativeOpenAICodexResponsesBackend(model: Model): boolean;
298
+ declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): Record<string, string>;
299
+ declare function buildOpenAISdkClientOptions(model: Model): {
300
+ timeout?: number;
301
+ };
302
+ declare function buildOpenAISdkRequestOptions(model: Model, signal?: AbortSignal, options?: {
303
+ stream?: boolean;
304
+ timeoutMs?: number;
305
+ maxRetries?: number;
306
+ }): {
307
+ signal?: AbortSignal;
308
+ timeout?: number;
309
+ maxRetries?: number;
310
+ headers?: Record<string, string>;
311
+ } | undefined;
312
+ declare function getCompat(model: OpenAIModeModel): {
313
+ cacheControlFormat: "anthropic" | undefined;
314
+ reasoningEffortMap: Record<string, string>;
315
+ openRouterRouting: Record<string, unknown>;
316
+ vercelGatewayRouting: Record<string, unknown>;
317
+ requiresStringContent: boolean;
318
+ strictMessageKeys: boolean;
319
+ supportsStore: boolean;
320
+ supportsDeveloperRole: boolean;
321
+ supportsReasoningEffort: boolean;
322
+ supportsUsageInStreaming: boolean;
323
+ maxTokensField: "max_completion_tokens" | "max_tokens";
324
+ requiresToolResultName: boolean;
325
+ requiresAssistantAfterToolResult: boolean;
326
+ requiresThinkingAsText: boolean;
327
+ requiresReasoningContentOnAssistantMessages: boolean;
328
+ thinkingFormat: "openai" | "openrouter" | "deepseek" | "together" | "zai" | "qwen" | "qwen-chat-template";
329
+ zaiToolStream: boolean;
330
+ supportsStrictMode: boolean;
331
+ supportsJsonSchemaResponseFormat: boolean;
332
+ supportsPromptCacheKey: boolean;
333
+ supportsLongCacheRetention: boolean;
334
+ sessionAffinity: "openai" | "openrouter" | "none";
335
+ visibleReasoningDetailTypes: string[];
336
+ requiresNonEmptyUserOrAssistantMessage: boolean;
337
+ };
338
+ //#endregion
339
+ //#region packages/ai/src/transports/openai-responses-compact-request.d.ts
340
+ type OpenAIResponsesCompactEndpointResult = {
341
+ item: {
342
+ type: "compaction";
343
+ id?: string;
344
+ encrypted_content: string;
345
+ };
346
+ usage: Record<string, unknown> & {
347
+ input_tokens: number;
348
+ output_tokens: number;
349
+ };
350
+ model: Model;
351
+ replayMetadata: OpenAIResponsesReasoningReplayMetadata;
352
+ };
353
+ /** Run a compact-endpoint request through the session's prepared stream stack. */
354
+ declare function requestPreparedOpenAIResponsesCompaction(streamFn: StreamFn, model: Model, context: Context, options: OpenAIResponsesOptions): Promise<OpenAIResponsesCompactEndpointResult>;
444
355
  //#endregion
445
356
  //#region packages/ai/src/transports/openai-responses-transport.d.ts
446
357
  declare const responsesTesting: {
@@ -460,11 +371,8 @@ declare const responsesTesting: {
460
371
  buildOpenAIResponsesReasoningReplayMetadata: typeof buildOpenAIResponsesReasoningReplayMetadata;
461
372
  isInvalidEncryptedContentError: typeof isInvalidEncryptedContentError;
462
373
  normalizeResponsesFailedEvent: typeof normalizeResponsesFailedEvent;
463
- prepareOpenAIResponsesReasoningItemForReplay: typeof prepareOpenAIResponsesReasoningItemForReplay;
464
374
  createResponsesStreamWithEncryptedContentRetry: typeof createResponsesStreamWithEncryptedContentRetry;
465
375
  resolveAzureOpenAIApiVersion: typeof resolveAzureOpenAIApiVersion;
466
- stripResponsesRequestEncryptedContent: typeof stripResponsesRequestEncryptedContent;
467
- tagOpenAIResponsesReasoningReplayItem: typeof tagOpenAIResponsesReasoningReplayItem;
468
376
  summarizeResponsesFailedNoDetailsObservation: typeof summarizeResponsesFailedNoDetailsObservation;
469
377
  summarizeResponsesPayload: typeof summarizeResponsesPayload;
470
378
  summarizeResponsesTools: typeof summarizeResponsesTools;
@@ -475,6 +383,18 @@ declare global {
475
383
  var openclawOpenAIResponsesTransportTestApi: typeof responsesTesting | undefined;
476
384
  }
477
385
  //#endregion
386
+ //#region packages/ai/src/transports/provider-compaction-replay.d.ts
387
+ /** Whether provider replay state is a prefix-bound server compaction checkpoint. */
388
+ declare function isCompactionReplayCheckpoint(replay: unknown): replay is ProviderReplayState;
389
+ /** Strip prefix-bound checkpoints after local history rewrites. */
390
+ declare function stripCompactionReplayCheckpoint(message: AssistantMessage): AssistantMessage;
391
+ /** Strip prefix-bound checkpoint state from an in-place message rewrite. */
392
+ declare function stripCompactionReplayCheckpointInPlace(message: {
393
+ providerReplay?: unknown;
394
+ }): void;
395
+ /** Reindex a prefix-bound checkpoint after known content removals. */
396
+ declare function replaceCompactionReplayOwnerContent(message: AssistantMessage, content: AssistantMessage["content"]): AssistantMessage;
397
+ //#endregion
478
398
  //#region packages/ai/src/transports/provider-transport-stream.d.ts
479
399
  type ProviderTransportStreamContext = {
480
400
  cfg?: unknown;
@@ -525,12 +445,8 @@ type WritableTransportStream = {
525
445
  push(event: unknown): void;
526
446
  end(): void;
527
447
  };
528
- type TransportOutputShape = {
448
+ type TransportOutputShape = Partial<Omit<ProviderErrorProjection, "stopReason">> & {
529
449
  stopReason: string;
530
- errorMessage?: string;
531
- errorCode?: string;
532
- errorType?: string;
533
- errorBody?: string;
534
450
  };
535
451
  declare function sanitizeTransportPayloadText(text: string): string;
536
452
  declare function sanitizeNonEmptyTransportPayloadText(text: string, fallback?: string): string;
@@ -553,11 +469,20 @@ declare function createWritableTransportEventStream(): {
553
469
  * already emits rather than churning it.
554
470
  */
555
471
  declare function transportAbortError(signal?: AbortSignal): Error;
472
+ /** Run a provider-response hook before start/body consumption inside the first-event deadline. */
473
+ declare function withProviderResponseHook<T = never>(params: {
474
+ stream?: AsyncIterable<T>;
475
+ signal: AbortSignal;
476
+ abort: (reason: Error) => void;
477
+ hook?: () => void | Promise<void>;
478
+ onReady?: () => void;
479
+ }): AsyncIterable<T>;
556
480
  declare function finalizeTransportStream(params: {
557
481
  stream: WritableTransportStream;
558
482
  output: TransportOutputShape;
559
483
  signal?: AbortSignal;
560
484
  }): void;
485
+ /** @deprecated Use projectProviderError. v2026.7.2-beta.5 compatibility; remove after 2026.10. */
561
486
  declare function assignTransportErrorDetails(output: TransportOutputShape, error: unknown, signal?: AbortSignal): void;
562
487
  declare function failTransportStream(params: {
563
488
  stream: WritableTransportStream;
@@ -570,4 +495,4 @@ declare function failTransportStream(params: {
570
495
  //#region packages/ai/src/transports/transport-utils.d.ts
571
496
  declare function isCodeModeModelVisibleToolName(name: string, visibleToolNames: ReadonlySet<string>): boolean;
572
497
  //#endregion
573
- export { GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, MutableAssistantOutput, type OpenAICompletionsOptions, OpenAIModeModel, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyOpenAIResponsesPayloadPolicy, assertCodeModeResponsesToolSurface, assignTransportErrorDetails, buildOpenAIClientHeaders, buildOpenAICompletionsParams, buildOpenAISdkClientOptions, buildOpenAISdkRequestOptions, buildTransportAwareSimpleStreamFn, canonicalizeMaxTokensParam, coerceTransportToolCallArguments, createAnthropicMessagesTransportStreamFn, createAzureOpenAIResponsesTransportStreamFn, createBoundaryAwareStreamFnForModel, createDeepSeekTextFilter, createEmptyTransportUsage, createModelStreamCooperativeScheduler, createOpenAICompletionsTransportStreamFn, createOpenAIResponsesTransportStreamFn, createOpenClawTransportStreamFnForModel, createTransportAwareStreamFnForModel, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, enforceCodeModeResponsesToolSurface, failTransportStream, filterCodeModePayloadTools, finalizeTransportStream, flattenCompletionMessagesToStringContent, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, getCompat, hasOpenAICompatibleConversationTurn, isCodeModeModelVisibleToolName, isOpenAICodexResponsesModel, log, mergeTransportHeaders, mergeTransportMetadata, normalizeCodexResponsesBaseUrlForOpenAISdk, parseJsonObjectPreservingUnsafeIntegers, parseJsonPreservingUnsafeIntegers, prepareModelForSimpleCompletion, prepareTransportAwareSimpleModel, quoteUnsafeIntegerLiterals, readCodeModePayloadToolName, resolveAnthropicEphemeralCacheControl, resolveAnthropicMessagesUrl, resolveAnthropicPayloadPolicy, resolveCodeModeResponsesVisibleToolNames, resolveMaxTokensParam, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIReasoningEffortMap, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIStrictToolFlagWithDiagnostics, resolvePromptCacheKey, resolveReplayableResponsesMessageId, resolveTransportAwareSimpleApi, sanitizeNonEmptyTransportPayloadText, sanitizeResponsesImagePayload, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, stripCompletionMessagesToRoleContent, throwIfModelStreamAborted, transportAbortError, usesNativeOpenAICodexResponsesBackend };
498
+ export { GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, MutableAssistantOutput, OpenAICompletionsContentDelta, type OpenAICompletionsOptions, OpenAIModeModel, type OpenAIResponsesCompactionRejection, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicCacheControlToMessages, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyOpenAIResponsesPayloadPolicy, assertCodeModeResponsesToolSurface, assignTransportErrorDetails, buildOpenAIClientHeaders, buildOpenAICompletionsParams, buildOpenAISdkClientOptions, buildOpenAISdkRequestOptions, buildTransportAwareSimpleStreamFn, canonicalizeMaxTokensParam, captureOpenAIResponsesCompaction, coerceTransportToolCallArguments, createAnthropicMessagesTransportStreamFn, createAzureOpenAIResponsesTransportStreamFn, createBoundaryAwareStreamFnForModel, createDeepSeekTextFilter, createEmptyTransportUsage, createModelStreamCooperativeScheduler, createOpenAICompletionsTransportStreamFn, createOpenAIResponseHook, createOpenAIResponsesTransportStreamFn, createOpenClawTransportStreamFnForModel, createTransportAwareStreamFnForModel, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, enforceCodeModeResponsesToolSurface, failTransportStream, filterCodeModePayloadTools, finalizeTransportStream, flattenCompletionMessagesToStringContent, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, getCompat, googleFlashSupportsMinimalThinking, hasOpenAICompatibleConversationTurn, isCodeModeModelVisibleToolName, isCompactionReplayCheckpoint, isOpenAICodexResponsesModel, isOpenAICompletionsThinkingEnabled, log, measureUtf8AppendBytes, mergeTransportHeaders, mergeTransportMetadata, normalizeCodexResponsesBaseUrlForOpenAISdk, parseJsonObjectPreservingUnsafeIntegers, parseJsonPreservingUnsafeIntegers, parseOpenAICompletionsUsage, prepareModelForSimpleCompletion, prepareTransportAwareSimpleModel, quoteUnsafeIntegerLiterals, readCodeModePayloadToolName, readOpenAICompletionsContentDeltas, replaceCompactionReplayOwnerContent, requestPreparedOpenAIResponsesCompaction, resolveAnthropicEphemeralCacheControl, resolveAnthropicMessagesUrl, resolveAnthropicPayloadPolicy, resolveAnthropicServerCompactionPlan, resolveCodeModeResponsesVisibleToolNames, resolveMaxTokensParam, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIReasoningEffortMap, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, resolveOpenAIStrictToolFlagWithDiagnostics, resolvePromptCacheKey, resolveReplayableResponsesMessageId, resolveTransportAwareSimpleApi, sanitizeNonEmptyTransportPayloadText, sanitizeResponsesImagePayload, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, stripCompactionReplayCheckpoint, stripCompactionReplayCheckpointInPlace, stripCompletionMessagesToRoleContent, throwIfModelStreamAborted, transportAbortError, usesNativeOpenAICodexResponsesBackend, withProviderResponseHook };