@openclaw/ai 2026.8.1-beta.3 → 2026.8.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-B8KwTtlb.mjs → anthropic-DTGZ4VMY.mjs} +25 -23
  2. package/dist/{anthropic-compaction-replay-4Zx7-aCr.mjs → anthropic-compaction-replay-CKCDrZJv.mjs} +34 -35
  3. package/dist/{anthropic-payload-policy-CSx7MoKH.d.mts → anthropic-payload-policy-BTzmNC14.d.mts} +3 -2
  4. package/dist/{api-registry-DFxSnFqG.d.mts → api-registry-BbUHEKER.d.mts} +2 -1
  5. package/dist/{azure-openai-responses-Aa4mVcYG.mjs → azure-openai-responses-BmqaDXM1.mjs} +6 -5
  6. package/dist/{number-coercion-H9qHik3g.mjs → base64-CEFBpSkN.mjs} +73 -1
  7. package/dist/diagnostics.d.mts +2 -3
  8. package/dist/diagnostics.mjs +1 -1
  9. package/dist/{env-api-keys-DrgeBuva.mjs → env-api-keys-bktO00EJ.mjs} +2 -15
  10. package/dist/{event-stream-D91-ohD_.d.mts → event-stream-DcvAPSBe.d.mts} +1 -2
  11. package/dist/event-stream-pXT3FI6X.d.mts +1 -0
  12. package/dist/event-stream.d.mts +2 -1
  13. package/dist/{google-yDRnipeq.mjs → google-CqjVZMwo.mjs} +8 -6
  14. package/dist/{google-shared-M1dl64nz.mjs → google-shared-Bnqni5j3.mjs} +34 -25
  15. package/dist/{google-vertex-DCJHM_a5.mjs → google-vertex-D_WREEJi.mjs} +8 -6
  16. package/dist/{host-DF_yxOsA.mjs → host-BIaiBURL.mjs} +4 -8
  17. package/dist/{host-DJq_FGcz.d.mts → host-DKFUAmCn.d.mts} +3 -3
  18. package/dist/index-CefaUGSS.d.mts +111 -0
  19. package/dist/index.d.mts +9 -10
  20. package/dist/index.mjs +4 -5
  21. package/dist/internal/anthropic.d.mts +51 -49
  22. package/dist/internal/anthropic.mjs +5 -5
  23. package/dist/internal/openai-responses-payload-policy.d.mts +3 -3
  24. package/dist/internal/openai-responses-payload-policy.mjs +2 -3
  25. package/dist/internal/openai.d.mts +65 -63
  26. package/dist/internal/openai.mjs +10 -9
  27. package/dist/internal/retry-after.d.mts +2 -3
  28. package/dist/internal/runtime.d.mts +51 -40
  29. package/dist/internal/runtime.mjs +9 -9
  30. package/dist/internal/shared.d.mts +25 -25
  31. package/dist/internal/shared.mjs +3 -3
  32. package/dist/{json-parse-CDnesDM_.mjs → json-parse-BuAJEbdW.mjs} +18 -2
  33. package/dist/{mistral-D6hRXI7A.mjs → mistral-C24jVd6f.mjs} +34 -32
  34. package/dist/{openai-chatgpt-responses-C339VIfT.mjs → openai-chatgpt-responses-Czum0oXz.mjs} +38 -20
  35. package/dist/openai-completions-BfFwac6f.mjs +404 -0
  36. package/dist/{openai-completions-compat-B0KTleXp.d.mts → openai-completions-compat-SZhi0Lf4.d.mts} +3 -3
  37. package/dist/openai-completions-stream-DGOvau4J.mjs +1625 -0
  38. package/dist/{openai-responses-BXEcr-Tp.mjs → openai-responses-BAryVEJM.mjs} +11 -7
  39. package/dist/openai-responses-compaction-window-DO7yV7az.mjs +686 -0
  40. package/dist/{openai-responses-contracts-CD75pQ0m.d.mts → openai-responses-contracts-BthRXano.d.mts} +14 -5
  41. package/dist/{openai-responses-payload-policy-CNGFT9zr.d.mts → openai-responses-payload-policy-rLRPsSmB.d.mts} +1 -0
  42. package/dist/{openai-responses-prompt-observer-internal-BG-1AsBI.mjs → openai-responses-prompt-observer-internal--R0kZLOZ.mjs} +3 -2
  43. package/dist/{openai-responses-shared-Cvt5MgEm.mjs → openai-responses-shared-CxgdGBvm.mjs} +332 -1484
  44. package/dist/openai-stop-reason-Drnn_6Qj.mjs +28 -0
  45. package/dist/openai-tool-schema-CSMh5e9O.mjs +1697 -0
  46. package/dist/{provider-error-C8mBRJDl.mjs → provider-error-BI8kIViN.mjs} +14 -88
  47. package/dist/{provider-options-Cc5ZQ6Aa.d.mts → provider-options-DJd_9euj.d.mts} +13 -4
  48. package/dist/{provider-transcript-transform--gtf0ZbR.mjs → provider-transcript-transform-WvJmFUAf.mjs} +1 -1
  49. package/dist/provider-types.d.mts +18 -17
  50. package/dist/providers.d.mts +5 -6
  51. package/dist/providers.mjs +9 -9
  52. package/dist/{reasoning-tag-text-partitioner-5ygO2rZc.mjs → reasoning-tag-text-partitioner-BsUX44Tq.mjs} +30 -20
  53. package/dist/rolldown-runtime-BhDjJH2R.mjs +15 -0
  54. package/dist/{sanitize-unicode-BP7HLLZn.mjs → sanitize-unicode-S6binQG-.mjs} +2 -9
  55. package/dist/simple-options-rdOPzr7Z.mjs +155 -0
  56. package/dist/{anthropic-BQXQudmA.mjs → src-C8U7lkoa.mjs} +75 -1
  57. package/dist/{stream-first-event-timeout-MK28puvq.mjs → stream-first-event-timeout-DcNjoFQE.mjs} +1 -1
  58. package/dist/{streaming-byte-guard-BrbkbwUu.mjs → streaming-byte-guard-CC-HMn_u.mjs} +5 -6
  59. package/dist/string-normalization--fwJ4S2q.mjs +16 -0
  60. package/dist/{tool-schema-json-projection-FEr-jOoZ.mjs → tool-schema-json-projection-BtZiml7r.mjs} +22 -32
  61. package/dist/transport-stream-shared-BbG7PThh.d.mts +138 -0
  62. package/dist/{simple-options-oqsXB6U3.mjs → transport-stream-shared-D8nQWCUo.mjs} +10 -118
  63. package/dist/{transport-utils-Bv0FHkd0.mjs → transport-utils-CtuS1Upe.mjs} +10 -10
  64. package/dist/transports.d.mts +130 -189
  65. package/dist/transports.mjs +227 -1249
  66. package/dist/{types-DTAP49HF.d.mts → types-Beemor2E.d.mts} +58 -24
  67. package/dist/types-COdhCX0U.d.mts +1 -0
  68. package/dist/types.d.mts +6 -5
  69. package/dist/types.mjs +3 -4
  70. package/dist/utf16-slice-qz3nsy87.mjs +84 -0
  71. package/dist/{validation-DYNNrU9u.d.mts → validation-CC6s7Smp.d.mts} +1 -2
  72. package/dist/{validation-B61OhAio.mjs → validation-CJZtym2g.mjs} +7 -5
  73. package/dist/validation.d.mts +1 -1
  74. package/dist/validation.mjs +1 -1
  75. package/package.json +6 -6
  76. package/dist/anthropic-BECQCNdF.d.mts +0 -98
  77. package/dist/event-stream-BVVgDSdq.d.mts +0 -1
  78. package/dist/headers-B_e4-1J0.mjs +0 -9
  79. package/dist/index-BVVgDSdq.d.mts +0 -1
  80. package/dist/openai-completions-D88orSJ9.mjs +0 -632
  81. package/dist/openai-responses-contracts-DvILoqBk.mjs +0 -247
  82. package/dist/openai-responses-payload-policy-BDo8CQsx.mjs +0 -208
  83. package/dist/openai-stop-reason-9OONKyAm.mjs +0 -579
  84. package/dist/openai-tool-projection-CHGLt03m.mjs +0 -426
  85. package/dist/provider-options-AvldWZt8.mjs +0 -21
  86. package/dist/record-coerce-DdXsgUd_.mjs +0 -23
  87. package/dist/src-D2H6yKkH.mjs +0 -2
  88. package/dist/stream-first-event-timeout-DvDeSucC.d.mts +0 -29
  89. package/dist/string-coerce-fsri9iCu.mjs +0 -34
  90. package/dist/types-BVVgDSdq.d.mts +0 -1
  91. package/dist/utf16-slice-CvGodqok.mjs +0 -29
@@ -1,23 +1,22 @@
1
- import { D as Model, I as ProviderReplayState, L as ProviderResponse, U as StreamOptions, V as StreamFn, W as TextContent, Z as ToolCall, a as AssistantMessage, d as Context, et as Usage, k as OpenAICompletionsCompat, n as Api, o as AssistantMessageEvent, q as ThinkingContent } from "./types-DTAP49HF.mjs";
2
- import { r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-D91-ohD_.mjs";
3
- import { n as ApiRegistry } from "./api-registry-DFxSnFqG.mjs";
4
- import { a as CodeModeToolSurfaceObservation, i as BaseOpenAIStreamOptions, o as OpenAICompletionsOptions, s as OpenAIResponsesCompactionRejection, u as OpenAIToolProjection } from "./provider-options-Cc5ZQ6Aa.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-CSx7MoKH.mjs";
6
- import { a as ReplayableResponseCompactionItem, i as OpenAIResponsesRequestParams, n as OpenAIResponsesOptions, o as ResponsesPromptObservation, r as OpenAIResponsesReasoningReplayMetadata } from "./openai-responses-contracts-CD75pQ0m.mjs";
7
- import { i as resolveOpenAIResponsesServerCompactionPlan, n as resolveOpenAIResponsesCompactEndpointPlan, r as resolveOpenAIResponsesPayloadPolicy, t as applyOpenAIResponsesPayloadPolicy } from "./openai-responses-payload-policy-CNGFT9zr.mjs";
8
- import { n as detectOpenAICompletionsCompat, r as resolveOpenAICompletionsCompat, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-B0KTleXp.mjs";
9
- import { n as FirstStreamEventInternalOptions } from "./stream-first-event-timeout-DvDeSucC.mjs";
1
+ import "./index-CefaUGSS.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-Beemor2E.mjs";
3
+ import { n as ApiRegistry } from "./api-registry-BbUHEKER.mjs";
4
+ import { a as CodeModeToolSurfaceObservation, d as OpenAIToolProjection, i as BaseOpenAIStreamOptions, o as OpenAICompletionsOptions, s as OpenAIResponsesCompactionRejection } from "./provider-options-DJd_9euj.mjs";
5
+ import "./types-COdhCX0U.mjs";
6
+ import { a as resolveAnthropicPayloadPolicy, i as resolveAnthropicEphemeralCacheControl, n as applyAnthropicEphemeralCacheControlMarkers, o as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, t as applyAnthropicCacheControlToMessages } from "./anthropic-payload-policy-BTzmNC14.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-BthRXano.mjs";
8
+ 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-SZhi0Lf4.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-BbG7PThh.mjs";
10
11
  import { r as sortPromptCacheToolsByName } from "./prompt-cache-stability-Cwcjv_fx.mjs";
11
- import { t as ProviderErrorProjection } from "./provider-error-CzNw4BWX.mjs";
12
12
  import OpenAI from "openai";
13
- import { ResponseCreateParamsStreaming, ResponseInput } from "openai/resources/responses/responses.js";
13
+ import { ResponseCreateParamsStreaming, ResponseInput, ResponseInputItem as ResponseInputItem$1 } from "openai/resources/responses/responses.js";
14
14
  import { ChatCompletionChunk } from "openai/resources/chat/completions.js";
15
-
16
15
  //#region packages/ai/src/transports/anthropic-transport-stream.d.ts
17
16
  /** Resolve the Anthropic Messages endpoint URL for the effective base URL. */
18
- declare function resolveAnthropicMessagesUrl(baseUrl?: string): string;
17
+ export declare function resolveAnthropicMessagesUrl(baseUrl?: string): string;
19
18
  /** Create the stream function used by Anthropic Messages transport models. */
20
- declare function createAnthropicMessagesTransportStreamFn(): StreamFn;
19
+ export declare function createAnthropicMessagesTransportStreamFn(): StreamFn;
21
20
  //#endregion
22
21
  //#region packages/ai/src/transports/deepseek-text-filter.d.ts
23
22
  interface DeepSeekTextFilter {
@@ -27,28 +26,28 @@ interface DeepSeekTextFilter {
27
26
  flush(): string[];
28
27
  }
29
28
  /** Create an incremental text filter that strips DeepSeek DSML tool blocks. */
30
- declare function createDeepSeekTextFilter(): DeepSeekTextFilter;
29
+ export declare function createDeepSeekTextFilter(): DeepSeekTextFilter;
31
30
  //#endregion
32
31
  //#region packages/ai/src/transports/google-thinking-level.d.ts
33
32
  /** Returns whether a Gemini Flash model accepts the MINIMAL thinking level. */
34
- declare function googleFlashSupportsMinimalThinking(modelId: string): boolean;
33
+ export declare function googleFlashSupportsMinimalThinking(modelId: string): boolean;
35
34
  //#endregion
36
35
  //#region packages/ai/src/transports/json-unsafe-integers.d.ts
37
36
  /** Quotes integer literals above Number.MAX_SAFE_INTEGER before JSON.parse. */
38
- declare function quoteUnsafeIntegerLiterals(input: string): string;
37
+ export declare function quoteUnsafeIntegerLiterals(input: string): string;
39
38
  /** Parses JSON while preserving unsafe integer literals as strings. */
40
- declare function parseJsonPreservingUnsafeIntegers(input: string): unknown;
39
+ export declare function parseJsonPreservingUnsafeIntegers(input: string): unknown;
41
40
  /** Parses or accepts an object while preserving unsafe integer literals in string input. */
42
- declare function parseJsonObjectPreservingUnsafeIntegers(value: unknown): Record<string, unknown> | null;
41
+ export declare function parseJsonObjectPreservingUnsafeIntegers(value: unknown): Record<string, unknown> | null;
43
42
  //#endregion
44
43
  //#region packages/ai/src/transports/model-max-tokens-params.d.ts
45
44
  /** Resolve the first supported max-token parameter present in a params object. */
46
- declare function resolveMaxTokensParam(params: Record<string, unknown> | undefined): number | undefined;
45
+ export declare function resolveMaxTokensParam(params: Record<string, unknown> | undefined): number | undefined;
47
46
  /**
48
47
  * Canonicalize merged params to `maxTokens`, preserving source precedence from
49
48
  * left to right across the provided source objects.
50
49
  */
51
- declare function canonicalizeMaxTokensParam(params: {
50
+ export declare function canonicalizeMaxTokensParam(params: {
52
51
  merged: Record<string, unknown>;
53
52
  sources: Array<Record<string, unknown> | undefined>;
54
53
  }): void;
@@ -64,11 +63,11 @@ type ModelPayloadDebugMode = "off" | "summary" | "tools" | "full-redacted";
64
63
  /** SSE debug detail levels accepted by `OPENCLAW_DEBUG_SSE`. */
65
64
  type ModelSseDebugMode = "off" | "events" | "peek";
66
65
  /** Resolves model payload debug verbosity from `OPENCLAW_DEBUG_MODEL_PAYLOAD`. */
67
- declare function resolveModelPayloadDebugMode(env?: ModelTransportDebugEnv): ModelPayloadDebugMode;
66
+ export declare function resolveModelPayloadDebugMode(env?: ModelTransportDebugEnv): ModelPayloadDebugMode;
68
67
  /** Resolves SSE stream debug verbosity from `OPENCLAW_DEBUG_SSE`. */
69
- declare function resolveModelSseDebugMode(env?: ModelTransportDebugEnv): ModelSseDebugMode;
68
+ export declare function resolveModelSseDebugMode(env?: ModelTransportDebugEnv): ModelSseDebugMode;
70
69
  /** Emits model-fetch metadata at info level by default; other diagnostics require debug env. */
71
- declare function emitModelTransportDebug(log: SubsystemLogger, message: string): void;
70
+ export declare function emitModelTransportDebug(log: SubsystemLogger, message: string): void;
72
71
  //#endregion
73
72
  //#region packages/ai/src/transports/model-transport-url.d.ts
74
73
  /**
@@ -76,29 +75,30 @@ declare function emitModelTransportDebug(log: SubsystemLogger, message: string):
76
75
  * Keeps logs useful without exposing credentials, request params, or fragments.
77
76
  */
78
77
  /** Return a sanitized URL suitable for logs and diagnostics. */
79
- declare function formatModelTransportDebugUrl(rawUrl: string): string;
78
+ export declare function formatModelTransportDebugUrl(rawUrl: string): string;
80
79
  /** Format a configured base URL for debug output, or the implicit default. */
81
- declare function formatModelTransportDebugBaseUrl(rawUrl: string | undefined): string;
80
+ export declare function formatModelTransportDebugBaseUrl(rawUrl: string | undefined): string;
82
81
  //#endregion
83
82
  //#region packages/ai/src/transports/openai-compatible-conversation-turn.d.ts
84
83
  /** Returns whether an OpenAI-compatible messages payload contains a usable turn. */
85
- declare function hasOpenAICompatibleConversationTurn(messages: unknown): boolean;
84
+ export declare function hasOpenAICompatibleConversationTurn(messages: unknown): boolean;
86
85
  //#endregion
87
86
  //#region packages/ai/src/transports/openai-completions-string-content.d.ts
88
87
  /** Flatten string-only text block content arrays into newline-joined strings. */
89
- declare function flattenCompletionMessagesToStringContent(messages: unknown[]): unknown[];
88
+ export declare function flattenCompletionMessagesToStringContent(messages: unknown[]): unknown[];
90
89
  /** Strip completion messages to role/content fields for strict providers. */
91
- declare function stripCompletionMessagesToRoleContent(messages: unknown[]): unknown[];
90
+ export declare function stripCompletionMessagesToRoleContent(messages: unknown[]): unknown[];
92
91
  //#endregion
93
92
  //#region packages/ai/src/transports/openai-transport-shared.d.ts
94
- declare const GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP = "skip_thought_signature_validator";
95
- declare const log: {
93
+ export declare const GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP = "skip_thought_signature_validator";
94
+ export declare const log: {
96
95
  debug(message: string, data?: Record<string, unknown>): void;
97
96
  info(message: string, data?: Record<string, unknown>): void;
98
97
  warn(message: string, data?: Record<string, unknown>): void;
99
98
  };
100
- type OpenAICompletionsTextSource = "reasoning_detail" | "refusal";
101
- type OpenAICompletionsContentDelta = {
99
+ export declare function resolveOpenAIClientBaseUrl(model: Pick<Model, "provider" | "baseUrl">, baseUrl?: string | undefined): string | undefined;
100
+ export type OpenAICompletionsTextSource = "reasoning_detail" | "refusal";
101
+ export type OpenAICompletionsContentDelta = {
102
102
  kind: "thinking";
103
103
  signature?: string;
104
104
  text: string;
@@ -113,7 +113,7 @@ type OpenAICompletionsReasoningBatch = {
113
113
  readonly hasThinking: boolean;
114
114
  readonly hasVisibleText: boolean;
115
115
  };
116
- declare function readOpenAICompletionsReasoningBatch(delta: Record<string, unknown>, visibleReasoningDetailTypes: ReadonlySet<string>): OpenAICompletionsReasoningBatch;
116
+ export declare function readOpenAICompletionsReasoningBatch(delta: Record<string, unknown>, visibleReasoningDetailTypes: ReadonlySet<string>): OpenAICompletionsReasoningBatch;
117
117
  type OpenAIModeCompatInput = Omit<OpenAICompletionsCompat, "thinkingFormat"> & {
118
118
  thinkingFormat?: string;
119
119
  requiresStringContent?: boolean;
@@ -122,45 +122,48 @@ type OpenAIModeCompatInput = Omit<OpenAICompletionsCompat, "thinkingFormat"> & {
122
122
  omitEmptyArrayItems?: unknown;
123
123
  visibleReasoningDetailTypes?: string[];
124
124
  };
125
- type OpenAIModeModel = Omit<Model, "compat"> & {
125
+ export type OpenAIModeModel = Omit<Model, "compat"> & {
126
126
  compat?: OpenAIModeCompatInput | null;
127
127
  };
128
128
  type MutableToolCall = ToolCall & {
129
129
  partialArgs?: string;
130
130
  };
131
- type MutableAssistantOutput = Omit<AssistantMessage, "content" | "usage"> & {
131
+ export type MutableAssistantOutput = Omit<AssistantMessage, "content" | "usage"> & {
132
132
  content: Array<TextContent | ThinkingContent | MutableToolCall>;
133
133
  usage: Usage & {
134
134
  reasoningTokens?: number;
135
135
  };
136
136
  };
137
- declare function parseOpenAICompletionsUsage(rawUsage: NonNullable<ChatCompletionChunk["usage"]> & {
137
+ export declare function parseOpenAICompletionsUsage(rawUsage: NonNullable<ChatCompletionChunk["usage"]> & {
138
138
  cost?: unknown;
139
139
  prompt_cache_hit_tokens?: number;
140
+ prompt_tokens_details?: {
141
+ cache_creation_input_tokens?: number;
142
+ };
140
143
  }, model: Model, options?: {
141
144
  includeReasoningTokens?: boolean;
142
145
  }): MutableAssistantOutput["usage"];
143
- declare function createOpenAIResponseHook(onResponse: BaseOpenAIStreamOptions["onResponse"], response: Response, model: Model): (() => void | Promise<void>) | undefined;
144
- declare function createOpenAIProviderAcceptanceHook(options: Pick<BaseOpenAIStreamOptions, "onResponse" | "signal"> | undefined, response: Response, model: Model): () => Promise<void>;
146
+ export declare function createOpenAIResponseHook(onResponse: BaseOpenAIStreamOptions["onResponse"], response: Response, model: Model): (() => void | Promise<void>) | undefined;
147
+ export declare function createOpenAIProviderAcceptanceHook(options: Pick<BaseOpenAIStreamOptions, "onResponse" | "signal"> | undefined, response: Response, model: Model): () => Promise<void>;
145
148
  type ModelStreamCooperativeScheduler = {
146
149
  afterEvent: () => Promise<void>;
147
150
  };
148
- declare function throwIfModelStreamAborted(signal?: AbortSignal): void;
151
+ export declare function throwIfModelStreamAborted(signal?: AbortSignal): void;
149
152
  /** Measure one UTF-8 append without double-counting a surrogate pair split across chunks. */
150
- declare function measureUtf8AppendBytes(bufferEndsWithHighSurrogate: boolean, chunk: string): {
153
+ export declare function measureUtf8AppendBytes(bufferEndsWithHighSurrogate: boolean, chunk: string): {
151
154
  bytes: number;
152
155
  endsWithHighSurrogate: boolean;
153
156
  };
154
- declare function createModelStreamCooperativeScheduler(signal?: AbortSignal): ModelStreamCooperativeScheduler;
155
- declare function resolvePromptCacheKey(options: Pick<BaseOpenAIStreamOptions, "promptCacheKey" | "sessionId"> | undefined, cacheRetention: "short" | "long" | "none"): string | undefined;
156
- declare function isOpenAICompletionsThinkingEnabled(effort: string): boolean;
157
- declare function readOpenAICompletionsContentDeltas(content: unknown, topLevelRefusal?: unknown, mirroredThinking?: readonly string[]): OpenAICompletionsContentDelta[];
157
+ export declare function createModelStreamCooperativeScheduler(signal?: AbortSignal): ModelStreamCooperativeScheduler;
158
+ export declare function resolvePromptCacheKey(options: Pick<BaseOpenAIStreamOptions, "promptCacheKey" | "sessionId"> | undefined, cacheRetention: "short" | "long" | "none"): string | undefined;
159
+ export declare function isOpenAICompletionsThinkingEnabled(effort: string): boolean;
160
+ export declare function readOpenAICompletionsContentDeltas(content: unknown, topLevelRefusal?: unknown, mirroredThinking?: readonly string[]): OpenAICompletionsContentDelta[];
158
161
  //#endregion
159
162
  //#region packages/ai/src/transports/openai-completions-params.d.ts
160
- declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): Record<string, unknown>;
163
+ export declare function buildOpenAICompletionsParams(model: OpenAIModeModel, context: Context, options: OpenAICompletionsOptions | undefined): Record<string, unknown>;
161
164
  //#endregion
162
165
  //#region packages/ai/src/transports/openai-completions-transport.d.ts
163
- declare function createOpenAICompletionsTransportStreamFn(): StreamFn;
166
+ export declare function createOpenAICompletionsTransportStreamFn(): StreamFn;
164
167
  //#endregion
165
168
  //#region packages/ai/src/transports/openai-reasoning-compat.d.ts
166
169
  /** Minimal model fields needed to resolve OpenAI reasoning effort compatibility. */
@@ -170,11 +173,11 @@ type OpenAIReasoningCompatModel = {
170
173
  compat?: unknown;
171
174
  };
172
175
  /** Resolves the reasoning effort remap for an OpenAI-compatible model. */
173
- declare function resolveOpenAIReasoningEffortMap(model: OpenAIReasoningCompatModel, fallbackMap?: Record<string, string>): Record<string, string>;
176
+ export declare function resolveOpenAIReasoningEffortMap(model: OpenAIReasoningCompatModel, fallbackMap?: Record<string, string>): Record<string, string>;
174
177
  //#endregion
175
178
  //#region packages/ai/src/transports/openai-responses-replay.d.ts
176
179
  /** Resolves the assistant message id that can be replayed to OpenAI Responses. */
177
- declare function resolveReplayableResponsesMessageId(params: {
180
+ export declare function resolveReplayableResponsesMessageId(params: {
178
181
  replayResponsesItemIds: boolean;
179
182
  textSignatureId?: string;
180
183
  fallbackId: string;
@@ -183,14 +186,17 @@ declare function resolveReplayableResponsesMessageId(params: {
183
186
  }): string | undefined;
184
187
  //#endregion
185
188
  //#region packages/ai/src/transports/openai-responses-client.d.ts
186
- declare function createOpenAIResponsesClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): OpenAI;
187
- declare function createOpenAIResponsesTransportStreamFn(): StreamFn;
188
- declare function createAzureOpenAIResponsesTransportStreamFn(): StreamFn;
189
- declare function createAzureOpenAIClient(model: Model, context: Context, apiKey: string, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>): OpenAI;
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
+ export declare function createOpenAIResponsesTransportStreamFn(): StreamFn;
191
+ 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;
190
193
  //#endregion
191
194
  //#region packages/ai/src/transports/openai-responses-compaction-replay.d.ts
192
- declare function captureOpenAIResponsesCompaction(output: Pick<AssistantMessage, "providerReplay">, item: ReplayableResponseCompactionItem, boundary: number | "retained-users", model: Model, captureMetadata?: OpenAIResponsesReasoningReplayMetadata): void;
195
+ export declare function captureOpenAIResponsesCompaction(output: Pick<AssistantMessage, "providerReplay">, item: ReplayableResponseCompactionItem, boundary: number | "retained-users", model: Model, captureMetadata?: OpenAIResponsesReasoningReplayMetadata, compactedOutput?: OpenAIResponsesCompactionOutput): void;
193
196
  type OpenAIResponsesReplayMode = "checkpoint" | "full-history";
197
+ export declare class CompactionReplayRefreshRequiredError extends Error {
198
+ constructor();
199
+ }
194
200
  declare function buildOpenAIResponsesReasoningReplayMetadata(model: Model, options?: Pick<BaseOpenAIStreamOptions, "authProfileId" | "sessionId">): OpenAIResponsesReasoningReplayMetadata;
195
201
  //#endregion
196
202
  //#region packages/ai/src/transports/openai-responses-debug.d.ts
@@ -215,6 +221,7 @@ type ResponsesFailedNoDetailsObservation = {
215
221
  type ResponsesFailedEventSummary = {
216
222
  message: string;
217
223
  responseId?: string;
224
+ code?: string;
218
225
  observation?: ResponsesFailedNoDetailsObservation;
219
226
  };
220
227
  declare function buildResponsesFailedNoDetailsObservation(event: Record<string, unknown>, model: Model, response?: Record<string, unknown> | undefined): ResponsesFailedNoDetailsObservation;
@@ -249,12 +256,20 @@ type ResponsesEncryptedContentAttempt<TRequest extends ResponsesEncryptedContent
249
256
  declare function createResponsesStreamWithEncryptedContentRetry(params: {
250
257
  client: ResponsesClientLike;
251
258
  request: OpenAIResponsesRequestParams;
252
- requestOptions: unknown;
259
+ requestOptions: {
260
+ signal?: AbortSignal;
261
+ } | undefined;
253
262
  model: Model;
254
263
  observePrompt?: NonNullable<ReturnType<typeof createResponsesPromptEgressObserver>>;
255
264
  initialAttemptKind?: ResponsesEncryptedContentAttemptKind;
256
265
  initialRejectedCompaction?: OpenAIResponsesCompactionRejection;
257
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>;
258
273
  buildFullHistoryRequest?: () => OpenAIResponsesRequestParams | Promise<OpenAIResponsesRequestParams>;
259
274
  }): Promise<{
260
275
  stream: AsyncIterable<unknown>;
@@ -268,7 +283,7 @@ type ResponsesEventSink = {
268
283
  push(event: AssistantMessageEvent): void;
269
284
  };
270
285
  //#endregion
271
- //#region packages/ai/src/transports/openai-responses-stream-internal.d.ts
286
+ //#region packages/ai/src/transports/openai-responses-stream-types-internal.d.ts
272
287
  type ResponsesStreamOptions = FirstStreamEventInternalOptions & {
273
288
  serviceTier?: ResponseCreateParamsStreaming["service_tier"];
274
289
  resolveServiceTier?: (responseServiceTier: ResponseCreateParamsStreaming["service_tier"] | undefined, requestServiceTier: ResponseCreateParamsStreaming["service_tier"] | undefined) => ResponseCreateParamsStreaming["service_tier"] | undefined;
@@ -276,25 +291,27 @@ type ResponsesStreamOptions = FirstStreamEventInternalOptions & {
276
291
  signal?: AbortSignal;
277
292
  reasoningReplayMetadata?: OpenAIResponsesReasoningReplayMetadata;
278
293
  };
294
+ //#endregion
295
+ //#region packages/ai/src/transports/openai-responses-stream-internal.d.ts
279
296
  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>;
280
297
  //#endregion
281
298
  //#region packages/ai/src/transports/openai-transport-params.d.ts
282
- declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
283
- declare function filterCodeModePayloadTools(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>, observer?: (observation: CodeModeToolSurfaceObservation) => void): void;
284
- declare function resolveCodeModeResponsesVisibleToolNames(context: Pick<Context, "tools">): ReadonlySet<string>;
285
- declare function enforceCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>, observer?: (observation: CodeModeToolSurfaceObservation) => void): void;
286
- declare function assertCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>): void;
287
- declare function resolveOpenAIStrictToolFlagWithDiagnostics(projection: OpenAIToolProjection, strictSetting: boolean | null | undefined, context: {
299
+ export declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
300
+ export declare function filterCodeModePayloadTools(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>, observer?: (observation: CodeModeToolSurfaceObservation) => void): void;
301
+ export declare function resolveCodeModeResponsesVisibleToolNames(context: Pick<Context, "tools">): ReadonlySet<string>;
302
+ export declare function enforceCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>, observer?: (observation: CodeModeToolSurfaceObservation) => void): void;
303
+ export declare function assertCodeModeResponsesToolSurface(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>): void;
304
+ export declare function resolveOpenAIStrictToolFlagWithDiagnostics(projection: OpenAIToolProjection, strictSetting: boolean | null | undefined, context: {
288
305
  transport: "responses" | "completions";
289
306
  model: OpenAIModeModel;
290
307
  }): boolean | undefined;
291
- declare function isOpenAICodexResponsesModel(model: Model): boolean;
292
- declare function usesNativeOpenAICodexResponsesBackend(model: Model): boolean;
293
- declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): Record<string, string>;
294
- declare function buildOpenAISdkClientOptions(model: Model): {
308
+ export declare function isOpenAICodexResponsesModel(model: Model): boolean;
309
+ export declare function usesNativeOpenAICodexResponsesBackend(model: Model): boolean;
310
+ export declare function buildOpenAIClientHeaders(model: Model, context: Context, optionHeaders?: Record<string, string>, turnHeaders?: Record<string, string>, sessionId?: string): Record<string, string>;
311
+ export declare function buildOpenAISdkClientOptions(model: Model): {
295
312
  timeout?: number;
296
313
  };
297
- declare function buildOpenAISdkRequestOptions(model: Model, signal?: AbortSignal, options?: {
314
+ export declare function buildOpenAISdkRequestOptions(model: Model, signal?: AbortSignal, options?: {
298
315
  stream?: boolean;
299
316
  timeoutMs?: number;
300
317
  maxRetries?: number;
@@ -304,7 +321,7 @@ declare function buildOpenAISdkRequestOptions(model: Model, signal?: AbortSignal
304
321
  maxRetries?: number;
305
322
  headers?: Record<string, string>;
306
323
  } | undefined;
307
- declare function getCompat(model: OpenAIModeModel): {
324
+ export declare function getCompat(model: OpenAIModeModel): {
308
325
  cacheControlFormat: "anthropic" | undefined;
309
326
  reasoningEffortMap: Record<string, string>;
310
327
  openRouterRouting: Record<string, unknown>;
@@ -333,6 +350,7 @@ declare function getCompat(model: OpenAIModeModel): {
333
350
  //#endregion
334
351
  //#region packages/ai/src/transports/openai-responses-compact-request.d.ts
335
352
  type OpenAIResponsesCompactEndpointResult = {
353
+ output: OpenAIResponsesCompactionOutput;
336
354
  item: {
337
355
  type: "compaction";
338
356
  id?: string;
@@ -347,7 +365,7 @@ type OpenAIResponsesCompactEndpointResult = {
347
365
  replayMetadata: OpenAIResponsesReasoningReplayMetadata;
348
366
  };
349
367
  /** Run a compact-endpoint request through the session's prepared stream stack. */
350
- declare function requestPreparedOpenAIResponsesCompaction(streamFn: StreamFn, model: Model, context: Context, options: OpenAIResponsesOptions): Promise<OpenAIResponsesCompactEndpointResult>;
368
+ export declare function requestPreparedOpenAIResponsesCompaction(streamFn: StreamFn, model: Model, context: Context, options: OpenAIResponsesOptions): Promise<OpenAIResponsesCompactEndpointResult>;
351
369
  //#endregion
352
370
  //#region packages/ai/src/transports/openai-responses-transport.d.ts
353
371
  declare const responsesTesting: {
@@ -380,16 +398,43 @@ declare global {
380
398
  }
381
399
  //#endregion
382
400
  //#region packages/ai/src/transports/provider-compaction-replay.d.ts
401
+ type ReplayIdentity = {
402
+ sessionId?: string;
403
+ authProfileId?: string;
404
+ enabled?: boolean;
405
+ };
406
+ type ReplayMessage = {
407
+ role: string;
408
+ };
409
+ type ReplayPressureEstimator = {
410
+ text(value: string): number;
411
+ image(): number;
412
+ json(value: unknown): number;
413
+ };
414
+ /** Resolve from prepared transport facts; never retain or return credential material. */
415
+ export declare function resolveCompactionReplayEligibility(model: Model, options: {
416
+ extraParams?: Record<string, unknown>;
417
+ apiKey?: string;
418
+ }): boolean;
419
+ /** Manual recovery uses the durable client compactor, never a guessed retained-user prefix. */
420
+ export declare function requiresCompactionReplayRefresh(messages: readonly ReplayMessage[], model: Model, identity: ReplayIdentity): boolean;
421
+ /** Carry a checkpoint immediately after reference-preserving history limiting, before repair. */
422
+ export declare function preserveCompactionReplayWindow<T extends ReplayMessage>(source: readonly T[], windowed: T[], model: Model, identity: ReplayIdentity): T[];
423
+ /** Estimate the canonical prefix and its tail once, independent of unbound usage snapshots. */
424
+ export declare function resolveCompactionReplayPressure<T extends ReplayMessage>(messages: T[], model: Model, identity: ReplayIdentity, estimate: ReplayPressureEstimator): {
425
+ messages: T[];
426
+ prefixTokens: number;
427
+ } | undefined;
383
428
  /** Whether provider replay state is a prefix-bound server compaction checkpoint. */
384
- declare function isCompactionReplayCheckpoint(replay: unknown): replay is ProviderReplayState;
429
+ export declare function isCompactionReplayCheckpoint(replay: unknown): replay is ProviderReplayState;
385
430
  /** Strip prefix-bound checkpoints after local history rewrites. */
386
- declare function stripCompactionReplayCheckpoint(message: AssistantMessage): AssistantMessage;
431
+ export declare function stripCompactionReplayCheckpoint(message: AssistantMessage): AssistantMessage;
387
432
  /** Strip prefix-bound checkpoint state from an in-place message rewrite. */
388
- declare function stripCompactionReplayCheckpointInPlace(message: {
433
+ export declare function stripCompactionReplayCheckpointInPlace(message: {
389
434
  providerReplay?: unknown;
390
435
  }): void;
391
436
  /** Reindex a prefix-bound checkpoint after known content removals. */
392
- declare function replaceCompactionReplayOwnerContent(message: AssistantMessage, content: AssistantMessage["content"]): AssistantMessage;
437
+ export declare function replaceCompactionReplayOwnerContent(message: AssistantMessage, content: AssistantMessage["content"]): AssistantMessage;
393
438
  //#endregion
394
439
  //#region packages/ai/src/transports/provider-transport-stream.d.ts
395
440
  type ProviderTransportStreamContext = {
@@ -399,133 +444,29 @@ type ProviderTransportStreamContext = {
399
444
  env?: NodeJS.ProcessEnv;
400
445
  };
401
446
  /** Maps public model APIs to the internal transport API id used by simple runtime dispatch. */
402
- declare function resolveTransportAwareSimpleApi(api: Api): Api | undefined;
447
+ export declare function resolveTransportAwareSimpleApi(api: Api): Api | undefined;
403
448
  /** Creates a managed transport stream only when request overrides require it. */
404
- declare function createTransportAwareStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
449
+ export declare function createTransportAwareStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
405
450
  /** Creates a managed OpenClaw transport stream for explicit fallback/runtime callers. */
406
- declare function createOpenClawTransportStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
407
- declare function createBoundaryAwareStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
408
- declare function prepareTransportAwareSimpleModel<TApi extends Api>(model: Model<TApi>, ctx?: ProviderTransportStreamContext): Model;
409
- declare function buildTransportAwareSimpleStreamFn(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
451
+ export declare function createOpenClawTransportStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
452
+ export declare function createBoundaryAwareStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
453
+ export declare function prepareTransportAwareSimpleModel<TApi extends Api>(model: Model<TApi>, ctx?: ProviderTransportStreamContext): Model;
454
+ export declare function buildTransportAwareSimpleStreamFn(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
410
455
  //#endregion
411
456
  //#region packages/ai/src/transports/responses-image-payload-sanitizer.d.ts
412
457
  /** Sanitize inline image fields inside a Responses API payload. */
413
- declare function sanitizeResponsesImagePayload<T extends Record<string, unknown>>(params: T): T;
458
+ export declare function sanitizeResponsesImagePayload<T extends Record<string, unknown>>(params: T): T;
414
459
  //#endregion
415
460
  //#region packages/ai/src/transports/simple-completion-transport.d.ts
416
- declare function normalizeCodexResponsesBaseUrlForOpenAISdk(baseUrl?: string): string;
417
- declare function prepareModelForSimpleCompletion<TApi extends Api>(params: {
461
+ export declare function normalizeCodexResponsesBaseUrlForOpenAISdk(baseUrl?: string): string;
462
+ export declare function prepareModelForSimpleCompletion<TApi extends Api>(params: {
418
463
  apiRegistry: ApiRegistry;
419
464
  model: Model<TApi>;
420
465
  cfg?: unknown;
421
466
  }): Model;
422
467
  //#endregion
423
- //#region packages/ai/src/transports/transport-stream-shared.d.ts
424
- type ContextUsage = NonNullable<Usage["contextUsage"]>;
425
- type TransportUsage = {
426
- input: number;
427
- output: number;
428
- cacheRead: number;
429
- cacheWrite: number;
430
- contextUsage?: ContextUsage;
431
- totalTokens: number;
432
- cost: {
433
- input: number;
434
- output: number;
435
- cacheRead: number;
436
- cacheWrite: number;
437
- total: number;
438
- };
439
- };
440
- type WritableTransportStream = Pick<ReturnType<typeof createAssistantMessageEventStream>, "push" | "end">;
441
- declare function sanitizeTransportPayloadText(text: string): string;
442
- declare function sanitizeNonEmptyTransportPayloadText(text: string, fallback?: string): string;
443
- declare function coerceTransportToolCallArguments(argumentsValue: unknown): Record<string, unknown>;
444
- /** Admit only complete object-shaped terminal tool arguments; partial parsing is preview-only. */
445
- declare function parseTerminalToolCallArguments(value: unknown, errorMessage?: string): Record<string, unknown>;
446
- /** Validate a complete sibling set before mutating any call into executable state. */
447
- declare function finalizeTerminalToolCallArguments<T extends {
448
- arguments: Record<string, unknown>;
449
- }>(calls: readonly T[], readArguments: (call: T) => unknown, errorMessage?: string): void;
450
- declare function mergeTransportHeaders(...headerSources: Array<Record<string, string> | undefined>): Record<string, string> | undefined;
451
- declare function mergeTransportMetadata<T extends Record<string, unknown>>(payload: T, metadata?: Record<string, string>): T;
452
- declare function createEmptyTransportUsage(): TransportUsage;
453
- declare function createWritableTransportEventStream(): {
454
- eventStream: AssistantMessageEventStream;
455
- stream: AssistantMessageEventStream;
456
- };
457
- /**
458
- * Abort error to surface for an aborted `signal`.
459
- *
460
- * Rethrows the caller's abort reason only when it carries a `code`, so that code
461
- * survives into `errorCode` on the persisted assistant message and consumers can
462
- * recognize an abort's origin without matching error text. A default
463
- * `abort()` reason is an uncoded DOMException that carries nothing the synthetic
464
- * error does not, so it keeps the "Request was aborted" text every transport
465
- * already emits rather than churning it.
466
- */
467
- declare function transportAbortError(signal?: AbortSignal): Error;
468
- type ProviderAcceptance = {
469
- kind: "http_response";
470
- status: number;
471
- headers: Record<string, string>;
472
- } | {
473
- kind: "provider_stream_opened";
474
- };
475
- type ProviderAcceptanceObserver = (acceptance: ProviderAcceptance) => void;
476
- type ProviderAcceptanceOptions = Pick<StreamOptions, "onResponse" | "signal">;
477
- type ProviderStreamCancel = (reason: Error) => void | Promise<void>;
478
- /** Attach an OpenClaw-internal provider acceptance observer to one model call. */
479
- declare function withProviderAcceptanceObserver<T extends object>(options: T, observer: ProviderAcceptanceObserver): T;
480
- /** Preserve the private provider acceptance observer when a built-in wrapper rebuilds options. */
481
- declare function copyProviderAcceptanceObserver<T extends object>(source: unknown, target: T): T;
482
- /** Report observed HTTP metadata; rejected responses use only onResponse. */
483
- declare function notifyProviderHttpMetadata(params: {
484
- options?: ProviderAcceptanceOptions;
485
- response: ProviderResponse;
486
- model: Model;
487
- cancelStream: ProviderStreamCancel;
488
- signal?: AbortSignal;
489
- }): Promise<void>;
490
- /** Report a real HTTP response before body consumption. */
491
- declare function notifyProviderHttpResponse(params: {
492
- options?: ProviderAcceptanceOptions;
493
- response: Response;
494
- model: Model;
495
- cancelStream?: ProviderStreamCancel;
496
- signal?: AbortSignal;
497
- }): Promise<void>;
498
- /** Report an accepted SDK stream when the SDK does not expose HTTP metadata. */
499
- declare function notifyProviderStreamOpened(params: {
500
- options?: Pick<StreamOptions, "signal">;
501
- cancelStream: ProviderStreamCancel;
502
- signal?: AbortSignal;
503
- }): Promise<void>;
504
- /** Run a provider-response hook before start/body consumption inside the first-event deadline. */
505
- declare function withProviderResponseHook<T = never>(params: {
506
- stream?: AsyncIterable<T>;
507
- signal: AbortSignal;
508
- abort: (reason: Error) => void;
509
- hook?: () => void | Promise<void>;
510
- onReady?: () => void;
511
- }): AsyncIterable<T>;
512
- declare function finalizeTransportStream(params: {
513
- stream: WritableTransportStream;
514
- output: AssistantMessage;
515
- signal?: AbortSignal;
516
- }): void;
517
- /** @deprecated Use projectProviderError. v2026.7.2-beta.5 compatibility; remove after 2026.10. */
518
- declare function assignTransportErrorDetails(output: AssistantMessage, error: unknown, signal?: AbortSignal): ProviderErrorProjection;
519
- declare function failTransportStream(params: {
520
- stream: WritableTransportStream;
521
- output: AssistantMessage;
522
- signal?: AbortSignal;
523
- error: unknown;
524
- cleanup?: () => void;
525
- }): void;
526
- //#endregion
527
468
  //#region packages/ai/src/transports/transport-utils.d.ts
528
- declare const MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE = "OpenClaw transport error: malformed_streaming_fragment";
529
- declare function isCodeModeModelVisibleToolName(name: string, visibleToolNames: ReadonlySet<string>): boolean;
469
+ export declare const MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE = "OpenClaw transport error: malformed_streaming_fragment";
470
+ export declare function isCodeModeModelVisibleToolName(name: string, visibleToolNames: ReadonlySet<string>): boolean;
530
471
  //#endregion
531
- export { GEMINI_THOUGHT_SIGNATURE_VALIDATOR_SKIP, MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE, MutableAssistantOutput, OpenAICompletionsContentDelta, type OpenAICompletionsOptions, OpenAICompletionsTextSource, OpenAIModeModel, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicCacheControlToMessages, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyOpenAIResponsesPayloadPolicy, assertCodeModeResponsesToolSurface, assignTransportErrorDetails, buildOpenAIClientHeaders, buildOpenAICompletionsParams, buildOpenAISdkClientOptions, buildOpenAISdkRequestOptions, buildTransportAwareSimpleStreamFn, canonicalizeMaxTokensParam, captureOpenAIResponsesCompaction, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createAnthropicMessagesTransportStreamFn, createAzureOpenAIResponsesTransportStreamFn, createBoundaryAwareStreamFnForModel, createDeepSeekTextFilter, createEmptyTransportUsage, createModelStreamCooperativeScheduler, createOpenAICompletionsTransportStreamFn, createOpenAIProviderAcceptanceHook, createOpenAIResponseHook, createOpenAIResponsesTransportStreamFn, createOpenClawTransportStreamFnForModel, createTransportAwareStreamFnForModel, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, enforceCodeModeResponsesToolSurface, failTransportStream, filterCodeModePayloadTools, finalizeTerminalToolCallArguments, finalizeTransportStream, flattenCompletionMessagesToStringContent, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, getCompat, googleFlashSupportsMinimalThinking, hasOpenAICompatibleConversationTurn, isCodeModeModelVisibleToolName, isCompactionReplayCheckpoint, isOpenAICodexResponsesModel, isOpenAICompletionsThinkingEnabled, log, measureUtf8AppendBytes, mergeTransportHeaders, mergeTransportMetadata, normalizeCodexResponsesBaseUrlForOpenAISdk, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseJsonObjectPreservingUnsafeIntegers, parseJsonPreservingUnsafeIntegers, parseOpenAICompletionsUsage, parseTerminalToolCallArguments, prepareModelForSimpleCompletion, prepareTransportAwareSimpleModel, quoteUnsafeIntegerLiterals, readCodeModePayloadToolName, readOpenAICompletionsContentDeltas, readOpenAICompletionsReasoningBatch, 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, withProviderAcceptanceObserver, withProviderResponseHook };
472
+ export { type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicCacheControlToMessages, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createEmptyTransportUsage, createWritableTransportEventStream, detectOpenAICompletionsCompat, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, mergeTransportHeaders, mergeTransportMetadata, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicServerCompactionPlan, resolveOpenAICompletionsCompat, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, transportAbortError, withProviderAcceptanceObserver, withProviderResponseHook };