@openclaw/ai 2026.8.1-beta.1 → 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 (86) hide show
  1. package/dist/{anthropic-CE-7SkF6.mjs → anthropic-B6dLpq5L.mjs} +37 -22
  2. package/dist/{src-QkygScBs.mjs → anthropic-JsNA5KCu.mjs} +0 -1
  3. package/dist/{anthropic-usage-Ma4iX6uG.mjs → anthropic-compaction-replay-8lJNKXOE.mjs} +225 -102
  4. package/dist/anthropic-payload-policy-CiEuQS72.d.mts +49 -0
  5. package/dist/{api-registry-EpJoVwM1.d.mts → api-registry-k3zTz0cV.d.mts} +1 -1
  6. package/dist/{azure-openai-responses-Cc_kasye.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-DRmDMRHH.d.mts → event-stream-BP6AWT8j.d.mts} +3 -1
  10. package/dist/{event-stream-CEV9t6da.mjs → event-stream-uSMZJ3FA.mjs} +16 -3
  11. package/dist/event-stream.d.mts +1 -1
  12. package/dist/event-stream.mjs +1 -1
  13. package/dist/{google-CGQu21aw.mjs → google-C7h2QzDX.mjs} +4 -4
  14. package/dist/{google-shared-Cq2UKx1l.mjs → google-shared-B0Qr9OR7.mjs} +9 -18
  15. package/dist/google-thinking-level-C-V3tecN.mjs +9 -0
  16. package/dist/{google-vertex-CusxWzvE.mjs → google-vertex-Bhc3TjDl.mjs} +5 -4
  17. package/dist/{llm-request-activity-BjtkplhG.mjs → headers-DdOQtGuU.mjs} +9 -1
  18. package/dist/{host-Bl7Kgddo.mjs → host-DTqNc7ad.mjs} +227 -168
  19. package/dist/{host-Dn4_SZI2.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 +13 -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 -4
  32. package/dist/{json-parse-BvXNt1-7.mjs → json-parse-CDnesDM_.mjs} +4 -6
  33. package/dist/{mistral-Dx6VzNjf.mjs → mistral-CEWoQI_g.mjs} +26 -45
  34. package/dist/{number-coercion-1Miyb5MO.mjs → number-coercion-H9qHik3g.mjs} +7 -2
  35. package/dist/openai-chatgpt-jwt-KWcgd0d_.mjs +19 -0
  36. package/dist/{openai-chatgpt-responses-SC9m0FSf.mjs → openai-chatgpt-responses-CrPmqERt.mjs} +225 -144
  37. package/dist/{openai-completions-BaIpl93j.mjs → openai-completions-BPnt4Sml.mjs} +28 -43
  38. package/dist/openai-completions-compat-Dt3dcawL.d.mts +43 -0
  39. package/dist/{openai-responses-Bdx3V_Yu.mjs → openai-responses-DhIKtOup.mjs} +17 -24
  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-DDZPxRfr.mjs → openai-responses-prompt-observer-internal-DgNTYnRY.mjs} +3 -3
  45. package/dist/{openai-responses-stream-internal-Bl8YyVtF.mjs → openai-responses-shared-DXIt3iY5.mjs} +1211 -908
  46. package/dist/{openai-reasoning-compat-DKebnIBL.mjs → openai-stop-reason-BkFkqqK0.mjs} +198 -172
  47. package/dist/{openai-transport-shared-Cipt7egQ.mjs → openai-tool-projection-CY04OcvQ.mjs} +151 -128
  48. package/dist/provider-error-BUwEnjXq.mjs +429 -0
  49. package/dist/provider-error-CzNw4BWX.d.mts +12 -0
  50. package/dist/{provider-options-C5kYML7i.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/{model-utils-Dau5dlgm.mjs → sanitize-unicode-BYqrYtC_.mjs} +28 -2
  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-BIBomOGq.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-B1b-XCn5.mjs → tool-schema-json-projection-q5d7QX5c.mjs} +5 -7
  65. package/dist/transport-utils-DJqkxbhC.mjs +138 -0
  66. package/dist/transports.d.mts +135 -178
  67. package/dist/transports.mjs +1732 -1294
  68. package/dist/types-BDdaOVi2.mjs +6 -0
  69. package/dist/{types-CH7ReIcU.d.mts → types-BHNrPS1l.d.mts} +19 -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-CcPcuEbR.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/headers-B_e4-1J0.mjs +0 -9
  79. package/dist/openai-chatgpt-jwt-DhAAzLkj.mjs +0 -39
  80. package/dist/openai-responses-contracts-BBKBfAqR.d.mts +0 -116
  81. package/dist/openai-responses-shared-CCyMvg7M.mjs +0 -403
  82. package/dist/provider-error-DI0Ts28U.mjs +0 -47
  83. package/dist/sanitize-unicode-DT5o51ur.mjs +0 -26
  84. package/dist/tool-result-text-Dvkp2Dus.mjs +0 -274
  85. package/dist/transform-messages-DfjpNXNQ.mjs +0 -2
  86. package/dist/transport-stream-shared-CPNv7A3r.mjs +0 -297
@@ -1,47 +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-CH7ReIcU.mjs";
2
- import { t as AssistantMessageEventStream } from "./event-stream-DRmDMRHH.mjs";
3
- import { n as ApiRegistry } from "./api-registry-EpJoVwM1.mjs";
4
- import { a as OpenAICompletionsOptions, i as BaseOpenAIStreamOptions, s as OpenAIToolProjection } from "./provider-options-C5kYML7i.mjs";
5
- import { a as ReplayableResponseReasoningItem, c as ResolvedOpenAICompletionsCompat, i as OpenAIResponsesRequestParams, l as detectOpenAICompletionsCompat, n as OpenAIResponsesReasoningReplayMetadata, o as ResponsesPromptObservation, r as OpenAIResponsesReplayContext, t as OpenAIResponsesOptions, u as resolveOpenAICompletionsCompat } from "./openai-responses-contracts-BBKBfAqR.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
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" | "5m";
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
- /** Apply one shared deepest-stable-message cache breakpoint policy. */
37
- declare function applyAnthropicCacheControlToMessages(messages: unknown, cacheControl: AnthropicEphemeralCacheControl, markerLimit: number, cacheBreakpointOptOutMessageIndexes: ReadonlySet<number>): void;
38
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
39
- declare function resolveAnthropicPayloadPolicy(input: AnthropicPayloadPolicyInput): AnthropicPayloadPolicy;
40
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
41
- declare function applyAnthropicPayloadPolicyToParams(payloadObj: Record<string, unknown>, policy: AnthropicPayloadPolicy, cacheBreakpointOptOutMessageIndexes: ReadonlySet<number>): void;
42
- /** @deprecated Anthropic-family provider payload helper; do not use from third-party plugins. */
43
- declare function applyAnthropicEphemeralCacheControlMarkers(payloadObj: Record<string, unknown>, cacheControl?: AnthropicEphemeralCacheControl | null): void;
44
- //#endregion
45
16
  //#region packages/ai/src/transports/anthropic-transport-stream.d.ts
46
17
  /** Resolve the Anthropic Messages endpoint URL for the effective base URL. */
47
18
  declare function resolveAnthropicMessagesUrl(baseUrl?: string): string;
@@ -58,6 +29,10 @@ interface DeepSeekTextFilter {
58
29
  /** Create an incremental text filter that strips DeepSeek DSML tool blocks. */
59
30
  declare function createDeepSeekTextFilter(): DeepSeekTextFilter;
60
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
61
36
  //#region packages/ai/src/transports/json-unsafe-integers.d.ts
62
37
  /** Quotes integer literals above Number.MAX_SAFE_INTEGER before JSON.parse. */
63
38
  declare function quoteUnsafeIntegerLiterals(input: string): string;
@@ -79,12 +54,6 @@ declare function canonicalizeMaxTokensParam(params: {
79
54
  }): void;
80
55
  //#endregion
81
56
  //#region packages/ai/src/transports/model-transport-debug.d.ts
82
- /**
83
- * Environment-driven debug controls for model transport logging.
84
- *
85
- * Model adapters share these helpers so payload, SSE, and transport diagnostics
86
- * interpret OpenClaw debug environment variables consistently.
87
- */
88
57
  type SubsystemLogger = {
89
58
  info(message: string): void;
90
59
  debug(message: string): void;
@@ -177,107 +146,26 @@ declare function parseOpenAICompletionsUsage(rawUsage: NonNullable<ChatCompletio
177
146
  }, model: Model, options?: {
178
147
  includeReasoningTokens?: boolean;
179
148
  }): MutableAssistantOutput["usage"];
149
+ declare function createOpenAIResponseHook(onResponse: BaseOpenAIStreamOptions["onResponse"], response: Response, model: Model): (() => void | Promise<void>) | undefined;
180
150
  type ModelStreamCooperativeScheduler = {
181
151
  afterEvent: () => Promise<void>;
182
152
  };
183
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
+ };
184
159
  declare function createModelStreamCooperativeScheduler(signal?: AbortSignal): ModelStreamCooperativeScheduler;
185
160
  declare function resolvePromptCacheKey(options: Pick<BaseOpenAIStreamOptions, "promptCacheKey" | "sessionId"> | undefined, cacheRetention: "short" | "long" | "none"): string | undefined;
186
161
  declare function isOpenAICompletionsThinkingEnabled(effort: string): boolean;
187
162
  declare function readOpenAICompletionsContentDeltas(content: unknown, topLevelRefusal?: unknown, mirroredThinking?: readonly string[]): OpenAICompletionsContentDelta[];
188
163
  //#endregion
189
- //#region packages/ai/src/transports/openai-transport-params.d.ts
190
- declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
191
- declare function filterCodeModePayloadTools(payload: unknown, visibleToolNames: ReadonlySet<string>): void;
192
- declare function resolveCodeModeResponsesVisibleToolNames(context: Pick<Context, "tools">): ReadonlySet<string>;
193
- declare function enforceCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>): void;
194
- declare function assertCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>): void;
195
- declare function resolveOpenAIStrictToolFlagWithDiagnostics(projection: OpenAIToolProjection, strictSetting: boolean | null | undefined, context: {
196
- transport: "responses" | "completions";
197
- model: OpenAIModeModel;
198
- }): boolean | undefined;
199
- declare function isOpenAICodexResponsesModel(model: Model): boolean;
200
- declare function usesNativeOpenAICodexResponsesBackend(model: Model): boolean;
201
- declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): Record<string, string>;
202
- declare function buildOpenAISdkClientOptions(model: Model): {
203
- timeout?: number;
204
- };
205
- declare function buildOpenAISdkRequestOptions(model: Model, signal?: AbortSignal, options?: {
206
- stream?: boolean;
207
- timeoutMs?: number;
208
- maxRetries?: number;
209
- }): {
210
- signal?: AbortSignal;
211
- timeout?: number;
212
- maxRetries?: number;
213
- headers?: Record<string, string>;
214
- } | undefined;
215
- declare function getCompat(model: OpenAIModeModel): {
216
- cacheControlFormat: "anthropic" | undefined;
217
- reasoningEffortMap: Record<string, string>;
218
- openRouterRouting: Record<string, unknown>;
219
- vercelGatewayRouting: Record<string, unknown>;
220
- requiresStringContent: boolean;
221
- strictMessageKeys: boolean;
222
- supportsStore: boolean;
223
- supportsDeveloperRole: boolean;
224
- supportsReasoningEffort: boolean;
225
- supportsUsageInStreaming: boolean;
226
- maxTokensField: "max_completion_tokens" | "max_tokens";
227
- requiresToolResultName: boolean;
228
- requiresAssistantAfterToolResult: boolean;
229
- requiresThinkingAsText: boolean;
230
- requiresReasoningContentOnAssistantMessages: boolean;
231
- thinkingFormat: "openai" | "openrouter" | "deepseek" | "together" | "zai" | "qwen" | "qwen-chat-template";
232
- zaiToolStream: boolean;
233
- supportsStrictMode: boolean;
234
- supportsJsonSchemaResponseFormat: boolean;
235
- supportsPromptCacheKey: boolean;
236
- supportsLongCacheRetention: boolean;
237
- sessionAffinity: "openai" | "openrouter" | "none";
238
- visibleReasoningDetailTypes: string[];
239
- requiresNonEmptyUserOrAssistantMessage: boolean;
240
- };
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>;
241
166
  //#endregion
242
167
  //#region packages/ai/src/transports/openai-completions-transport.d.ts
243
- declare function createSseDoneDetector(): {
244
- observe(chunk: Uint8Array): void;
245
- finish(): void;
246
- sawDone: () => boolean;
247
- };
248
- declare function createOpenAICompletionsClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, opts?: {
249
- fetch?: typeof globalThis.fetch;
250
- }): OpenAI;
251
- declare function buildOpenAICompletionsClientConfig(model: Model, context: Context, optionHeaders?: Record<string, string>): {
252
- baseURL: string;
253
- defaultHeaders: Record<string, string>;
254
- defaultQuery?: Record<string, string>;
255
- };
256
168
  declare function createOpenAICompletionsTransportStreamFn(): StreamFn;
257
- declare function processOpenAICompletionsStream(responseStream: AsyncIterable<ChatCompletionChunk>, output: MutableAssistantOutput, model: Model, stream: {
258
- push(event: unknown): void;
259
- }, options?: {
260
- signal?: AbortSignal;
261
- emitReasoning?: boolean;
262
- firstEventTimeoutMs?: number;
263
- abortFirstEventStream?: (reason: Error) => void;
264
- onFirstEventTimeout?: (reason: Error) => void;
265
- sawStreamDONE?: () => boolean;
266
- }): Promise<void>;
267
- declare function shouldEmitOpenAICompletionsReasoningForModel(model: OpenAIModeModel, options: OpenAICompletionsOptions | undefined): boolean;
268
- declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): Record<string, unknown>;
269
- declare const completionsTesting: {
270
- getCompat: typeof getCompat;
271
- createSseDoneDetector: typeof createSseDoneDetector;
272
- createOpenAICompletionsClient: typeof createOpenAICompletionsClient;
273
- buildOpenAICompletionsClientConfig: typeof buildOpenAICompletionsClientConfig;
274
- parseTransportChunkUsage: typeof parseOpenAICompletionsUsage;
275
- processOpenAICompletionsStream: typeof processOpenAICompletionsStream;
276
- shouldEmitOpenAICompletionsReasoningForModel: typeof shouldEmitOpenAICompletionsReasoningForModel;
277
- };
278
- declare global {
279
- var openclawOpenAICompletionsTransportTestApi: typeof completionsTesting | undefined;
280
- }
281
169
  //#endregion
282
170
  //#region packages/ai/src/transports/openai-reasoning-compat.d.ts
283
171
  /** Minimal model fields needed to resolve OpenAI reasoning effort compatibility. */
@@ -289,36 +177,6 @@ type OpenAIReasoningCompatModel = {
289
177
  /** Resolves the reasoning effort remap for an OpenAI-compatible model. */
290
178
  declare function resolveOpenAIReasoningEffortMap(model: OpenAIReasoningCompatModel, fallbackMap?: Record<string, string>): Record<string, string>;
291
179
  //#endregion
292
- //#region packages/ai/src/transports/openai-responses-payload-policy.d.ts
293
- type OpenAIResponsesPayloadModel = {
294
- api?: unknown;
295
- baseUrl?: unknown;
296
- id?: unknown;
297
- provider?: unknown;
298
- contextWindow?: unknown;
299
- compat?: unknown;
300
- };
301
- type OpenAIResponsesPayloadPolicyOptions = {
302
- extraParams?: Record<string, unknown>;
303
- storeMode?: "provider-policy" | "disable" | "preserve";
304
- enablePromptCacheStripping?: boolean;
305
- enableServerCompaction?: boolean;
306
- };
307
- type OpenAIResponsesPayloadPolicy = {
308
- allowsServiceTier: boolean;
309
- compactThreshold: number;
310
- explicitStore: boolean | undefined;
311
- shouldStripDisabledReasoningPayload: boolean;
312
- shouldStripInputStatus: boolean;
313
- shouldStripPromptCache: boolean;
314
- shouldStripStore: boolean;
315
- useServerCompaction: boolean;
316
- };
317
- /** Resolve payload mutation policy for one OpenAI Responses-style model endpoint. */
318
- declare function resolveOpenAIResponsesPayloadPolicy(model: OpenAIResponsesPayloadModel, options?: OpenAIResponsesPayloadPolicyOptions): OpenAIResponsesPayloadPolicy;
319
- /** Mutate a Responses request payload according to the resolved endpoint policy. */
320
- declare function applyOpenAIResponsesPayloadPolicy(payloadObj: Record<string, unknown>, policy: OpenAIResponsesPayloadPolicy): void;
321
- //#endregion
322
180
  //#region packages/ai/src/transports/openai-responses-replay.d.ts
323
181
  /** Resolves the assistant message id that can be replayed to OpenAI Responses. */
324
182
  declare function resolveReplayableResponsesMessageId(params: {
@@ -335,6 +193,11 @@ declare function createOpenAIResponsesTransportStreamFn(): StreamFn;
335
193
  declare function createAzureOpenAIResponsesTransportStreamFn(): StreamFn;
336
194
  declare function createAzureOpenAIClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>): OpenAI;
337
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
338
201
  //#region packages/ai/src/transports/openai-responses-debug.d.ts
339
202
  declare function summarizeResponsesTools(tools: unknown): string;
340
203
  declare function stringifyRedactedPayload(value: unknown): string;
@@ -366,7 +229,7 @@ declare function summarizeResponsesPayload(params: unknown): string;
366
229
  //#endregion
367
230
  //#region packages/ai/src/transports/openai-responses-params-internal.d.ts
368
231
  declare function sanitizeOpenAICodexResponsesParams<T extends Record<string, unknown>>(model: Model, params: T): T;
369
- 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;
370
233
  //#endregion
371
234
  //#region packages/ai/src/transports/openai-responses-prompt-observer-internal.d.ts
372
235
  type ResponsesPromptRequest = {
@@ -379,19 +242,29 @@ declare function createResponsesPromptEgressObserver(options: object | undefined
379
242
  //#region packages/ai/src/transports/openai-responses-replay-internal.d.ts
380
243
  type ResponsesClientLike = ReturnType<typeof createOpenAIResponsesClient>;
381
244
  declare function isInvalidEncryptedContentError(error: unknown): boolean;
382
- declare function stripResponsesRequestEncryptedContent(params: OpenAIResponsesRequestParams): OpenAIResponsesRequestParams;
383
- declare function buildOpenAIResponsesReasoningReplayMetadata(model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): OpenAIResponsesReasoningReplayMetadata;
384
- declare function tagOpenAIResponsesReasoningReplayItem(item: Record<string, unknown>, model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): Record<string, unknown>;
385
- 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
+ };
386
254
  declare function createResponsesStreamWithEncryptedContentRetry(params: {
387
255
  client: ResponsesClientLike;
388
256
  request: OpenAIResponsesRequestParams;
389
257
  requestOptions: unknown;
390
258
  model: Model;
391
259
  observePrompt?: NonNullable<ReturnType<typeof createResponsesPromptEgressObserver>>;
260
+ initialAttemptKind?: ResponsesEncryptedContentAttemptKind;
261
+ initialRejectedCompaction?: OpenAIResponsesCompactionRejection;
262
+ onCompactionRejected?: (checkpoint: OpenAIResponsesCompactionRejection) => void;
263
+ buildFullHistoryRequest?: () => OpenAIResponsesRequestParams | Promise<OpenAIResponsesRequestParams>;
392
264
  }): Promise<{
393
265
  stream: AsyncIterable<unknown>;
394
266
  response: Response;
267
+ attempt: ResponsesEncryptedContentAttempt<OpenAIResponsesRequestParams>;
395
268
  }>;
396
269
  declare function resolveAzureOpenAIApiVersion(env?: NodeJS.ProcessEnv): string;
397
270
  //#endregion
@@ -408,7 +281,77 @@ type ResponsesStreamOptions = FirstStreamEventInternalOptions & {
408
281
  signal?: AbortSignal;
409
282
  reasoningReplayMetadata?: OpenAIResponsesReasoningReplayMetadata;
410
283
  };
411
- 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>;
412
355
  //#endregion
413
356
  //#region packages/ai/src/transports/openai-responses-transport.d.ts
414
357
  declare const responsesTesting: {
@@ -428,11 +371,8 @@ declare const responsesTesting: {
428
371
  buildOpenAIResponsesReasoningReplayMetadata: typeof buildOpenAIResponsesReasoningReplayMetadata;
429
372
  isInvalidEncryptedContentError: typeof isInvalidEncryptedContentError;
430
373
  normalizeResponsesFailedEvent: typeof normalizeResponsesFailedEvent;
431
- prepareOpenAIResponsesReasoningItemForReplay: typeof prepareOpenAIResponsesReasoningItemForReplay;
432
374
  createResponsesStreamWithEncryptedContentRetry: typeof createResponsesStreamWithEncryptedContentRetry;
433
375
  resolveAzureOpenAIApiVersion: typeof resolveAzureOpenAIApiVersion;
434
- stripResponsesRequestEncryptedContent: typeof stripResponsesRequestEncryptedContent;
435
- tagOpenAIResponsesReasoningReplayItem: typeof tagOpenAIResponsesReasoningReplayItem;
436
376
  summarizeResponsesFailedNoDetailsObservation: typeof summarizeResponsesFailedNoDetailsObservation;
437
377
  summarizeResponsesPayload: typeof summarizeResponsesPayload;
438
378
  summarizeResponsesTools: typeof summarizeResponsesTools;
@@ -443,6 +383,18 @@ declare global {
443
383
  var openclawOpenAIResponsesTransportTestApi: typeof responsesTesting | undefined;
444
384
  }
445
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
446
398
  //#region packages/ai/src/transports/provider-transport-stream.d.ts
447
399
  type ProviderTransportStreamContext = {
448
400
  cfg?: unknown;
@@ -493,12 +445,8 @@ type WritableTransportStream = {
493
445
  push(event: unknown): void;
494
446
  end(): void;
495
447
  };
496
- type TransportOutputShape = {
448
+ type TransportOutputShape = Partial<Omit<ProviderErrorProjection, "stopReason">> & {
497
449
  stopReason: string;
498
- errorMessage?: string;
499
- errorCode?: string;
500
- errorType?: string;
501
- errorBody?: string;
502
450
  };
503
451
  declare function sanitizeTransportPayloadText(text: string): string;
504
452
  declare function sanitizeNonEmptyTransportPayloadText(text: string, fallback?: string): string;
@@ -521,11 +469,20 @@ declare function createWritableTransportEventStream(): {
521
469
  * already emits rather than churning it.
522
470
  */
523
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>;
524
480
  declare function finalizeTransportStream(params: {
525
481
  stream: WritableTransportStream;
526
482
  output: TransportOutputShape;
527
483
  signal?: AbortSignal;
528
484
  }): void;
485
+ /** @deprecated Use projectProviderError. v2026.7.2-beta.5 compatibility; remove after 2026.10. */
529
486
  declare function assignTransportErrorDetails(output: TransportOutputShape, error: unknown, signal?: AbortSignal): void;
530
487
  declare function failTransportStream(params: {
531
488
  stream: WritableTransportStream;
@@ -538,4 +495,4 @@ declare function failTransportStream(params: {
538
495
  //#region packages/ai/src/transports/transport-utils.d.ts
539
496
  declare function isCodeModeModelVisibleToolName(name: string, visibleToolNames: ReadonlySet<string>): boolean;
540
497
  //#endregion
541
- export { GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, MutableAssistantOutput, OpenAICompletionsContentDelta, type OpenAICompletionsOptions, OpenAIModeModel, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicCacheControlToMessages, 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, isOpenAICompletionsThinkingEnabled, log, mergeTransportHeaders, mergeTransportMetadata, normalizeCodexResponsesBaseUrlForOpenAISdk, parseJsonObjectPreservingUnsafeIntegers, parseJsonPreservingUnsafeIntegers, parseOpenAICompletionsUsage, prepareModelForSimpleCompletion, prepareTransportAwareSimpleModel, quoteUnsafeIntegerLiterals, readCodeModePayloadToolName, readOpenAICompletionsContentDeltas, 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 };