@openclaw/ai 2026.7.2-beta.4 → 2026.7.2-beta.6

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 (68) hide show
  1. package/dist/{anthropic-CrUDIBpM.mjs → anthropic-CH4UUnZr.mjs} +26 -441
  2. package/dist/{anthropic-BoTnz8cv.d.mts → anthropic-SrGtwsJu.d.mts} +27 -1
  3. package/dist/anthropic-usage-DWU-x8MI.mjs +459 -0
  4. package/dist/{api-registry-BMphkFf1.d.mts → api-registry-DlMgPR39.d.mts} +1 -1
  5. package/dist/{azure-openai-responses-CbrpVeEv.mjs → azure-openai-responses-CImcwB83.mjs} +4 -4
  6. package/dist/cache-retention-0x979a5V.mjs +12 -0
  7. package/dist/deferred-event-buffer-DAvyP7qA.mjs +19 -0
  8. package/dist/error-coercion-DgxlWC0n.mjs +15 -0
  9. package/dist/{event-stream-Douf9dob.d.mts → event-stream-YjaPW20U.d.mts} +1 -1
  10. package/dist/event-stream.d.mts +1 -1
  11. package/dist/{github-copilot-headers-BsH5cqGj.mjs → github-copilot-headers-NCJtz9i0.mjs} +1 -12
  12. package/dist/{google-Cs62KA7t.mjs → google-CtSg0iTS.mjs} +3 -3
  13. package/dist/{google-shared-CMLI-tCZ.mjs → google-shared-DNBz5rcD.mjs} +7 -4
  14. package/dist/{google-vertex-B4SD3U0f.mjs → google-vertex-31f1uS9L.mjs} +3 -3
  15. package/dist/{host-WvWBo4h8.d.mts → host-B9GUmcra.d.mts} +2 -2
  16. package/dist/host-Dog2WQiR.mjs +369 -0
  17. package/dist/index.d.mts +7 -7
  18. package/dist/index.mjs +3 -3
  19. package/dist/internal/anthropic.d.mts +16 -62
  20. package/dist/internal/anthropic.mjs +5 -4
  21. package/dist/internal/openai.d.mts +260 -2
  22. package/dist/internal/openai.mjs +7 -5
  23. package/dist/internal/runtime.d.mts +8 -32
  24. package/dist/internal/runtime.mjs +7 -6
  25. package/dist/internal/shared.d.mts +14 -9
  26. package/dist/internal/shared.mjs +6 -2
  27. package/dist/{llm-request-activity-CehVkZP-.mjs → llm-request-activity-BjtkplhG.mjs} +1 -19
  28. package/dist/{mistral-D5Ps7Led.mjs → mistral-CWmpvWYh.mjs} +7 -4
  29. package/dist/number-coercion-DvG7SNMg.mjs +129 -0
  30. package/dist/{openai-chatgpt-responses-h0o5yV8Y.mjs → openai-chatgpt-responses-B84Ibtrd.mjs} +33 -29
  31. package/dist/{openai-completions-exO8NFQf.mjs → openai-completions-DsOxhOD1.mjs} +28 -482
  32. package/dist/openai-completions-compat-DBWjXoMZ.d.mts +43 -0
  33. package/dist/openai-prompt-cache-2uo_1OR1.d.mts +7 -0
  34. package/dist/openai-prompt-cache-mZTCdRPo.mjs +12 -0
  35. package/dist/openai-reasoning-compat-YgeLncHw.mjs +396 -0
  36. package/dist/{openai-responses-BHpmtUKo.mjs → openai-responses-BT7A3sLu.mjs} +7 -5
  37. package/dist/openai-responses-shared-pXl6Wd8S.mjs +392 -0
  38. package/dist/{openai-responses-shared-CzCurmY1.mjs → openai-responses-stream-internal-Cw5txaGW.mjs} +1609 -1037
  39. package/dist/{openai-tool-projection-ITOU9bG1.mjs → openai-tool-projection-OhX64DoP.mjs} +26 -11
  40. package/dist/prompt-cache-stability-Cwcjv_fx.d.mts +13 -0
  41. package/dist/{provider-error-C4VvV_3t.mjs → provider-error-CAEvRjry.mjs} +8 -2
  42. package/dist/provider-options-D8bB3z9b.d.mts +144 -0
  43. package/dist/providers.d.mts +3 -2
  44. package/dist/providers.mjs +10 -9
  45. package/dist/reasoning-tag-text-partitioner-CGDyLWUR.mjs +12209 -0
  46. package/dist/simple-options-9lhRrN73.mjs +50 -0
  47. package/dist/{src-CXno1H5g.mjs → src-QkygScBs.mjs} +23 -4
  48. package/dist/stream-first-event-timeout-BBys9hSb.mjs +86 -0
  49. package/dist/stream-first-event-timeout-DvDeSucC.d.mts +29 -0
  50. package/dist/tls-certificate-errors-DXSpluKI.mjs +93 -0
  51. package/dist/tool-result-text-CTpIRbYd.mjs +225 -0
  52. package/dist/transform-messages-C8mBqZxF.mjs +2 -0
  53. package/dist/transport-stream-shared-D81p90xq.mjs +297 -0
  54. package/dist/transports.d.mts +115 -132
  55. package/dist/transports.mjs +400 -1991
  56. package/dist/{types-AFwwWium.d.mts → types-bzp5k29J.d.mts} +7 -0
  57. package/dist/types.d.mts +5 -5
  58. package/dist/types.mjs +2 -2
  59. package/dist/{validation-sxvxC8J-.d.mts → validation-B-j7cOYp.d.mts} +1 -1
  60. package/dist/validation.d.mts +1 -1
  61. package/package.json +4 -5
  62. package/dist/host-XYGZcgO8.mjs +0 -98
  63. package/dist/model-utils-1GiZ2_rr.mjs +0 -64
  64. package/dist/openai-CoGicoDt.d.mts +0 -332
  65. package/dist/reasoning-tag-text-partitioner-BlVe67g6.mjs +0 -400
  66. package/dist/stream-first-event-timeout-DP4xEyBY.mjs +0 -150
  67. package/dist/system-prompt-cache-boundary-CbHeV4_l.mjs +0 -526
  68. package/npm-shrinkwrap.json +0 -638
@@ -1,2 +1,260 @@
1
- import { $ as convertMessages, A as ResponsesTextContentPartType, B as OpenAIApiReasoningEffort, C as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, D as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, E as AzureResponsesTextDeltaEvent, F as isResponsesTextDeltaEventType, G as normalizeOpenAIReasoningEffort, H as isOpenAIGpt54MiniModel, I as resolveResponsesMessageSnapshotCollapse, J as supportsOpenAIReasoningEffort, K as resolveOpenAIReasoningEffortForModel, L as OpenAIResponsesOptions, M as isAzureResponsesTextDeltaEvent, N as isAzureResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, P as isResponsesTextContentPartType, Q as OpenAICompletionsOptions, R as streamOpenAIResponses, S as resolveResponsesTerminalStopReason, T as AzureResponsesTextContentPart, U as isOpenAIGpt55Model, V as OpenAIReasoningEffort, W as isOpenAIGpt56Model, X as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, Y as supportsOpenAITemperature, Z as clampOpenAIPromptCacheKey, _ as createResponsesToolCallTracker, _t as resolveUnsupportedToolSchemaKeywords, a as clearOpenAIToolSchemaCacheForTest, at as reconcileOpenAICompletionsToolChoice, b as mapResponsesTerminalUsage, c as normalizeOpenAIStrictToolParameters, ct as cleanSchemaForGemini, d as findOpenAIStrictSchemaViolations, dt as parseAzureDeploymentNameMap, et as streamOpenAICompletions, f as normalizeOpenAIStrictCompatSchema, ft as resolveAzureDeploymentNameFromMap, g as ResponsesToolCallState, gt as normalizeToolParameterSchema, h as ResponsesToolCallIdentity, ht as extractToolSchemaModelCompat, i as stripUnsupportedSchemaKeywords, it as projectOpenAITools, j as ResponsesTextDeltaEventType, k as ResponsesMessageSnapshotCollapse, l as normalizeStrictOpenAIJsonSchema, lt as isOpenAICompatibleAzureResponsesBaseUrl, m as mapOpenAIStopReason, mt as ToolSchemaModelCompat, n as RuntimeToolInputSchemaProjection, nt as OpenAICompletionsToolChoice, o as findOpenAIStrictToolProjectionDiagnostics, ot as reconcileOpenAIResponsesToolChoice, p as OpenAIStopReasonResult, pt as ToolParameterSchemaOptions, q as resolveOpenAISupportedReasoningEfforts, r as projectRuntimeToolInputSchema, rt as OpenAIToolProjection, s as isStrictOpenAIJsonSchemaCompatible, st as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, t as RuntimeToolInputSchemaJson, tt as streamSimpleOpenAICompletions, u as resolveOpenAIProjectedToolsStrictToolFlag, ut as isTraditionalAzureOpenAIHost, v as readResponsesToolCallItemIdentity, vt as shouldOmitEmptyArrayItems, w as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, x as readResponsesReasoningTokens, y as ResponsesTerminalUsagePayload, z as streamSimpleOpenAIResponses } from "../openai-CoGicoDt.mjs";
2
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
1
+ import { E as Model, F as SimpleStreamOptions, I as StopReason, R as StreamFunction, X as Usage, u as Context, z as StreamOptions } from "../types-bzp5k29J.mjs";
2
+ import { _ as resolveOpenAIReasoningEffortForModel, a as OpenAICompletionsOptions, b as supportsOpenAITemperature, c as projectOpenAITools, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, g as normalizeOpenAIReasoningEffort, h as isOpenAIGpt56Model, l as reconcileOpenAICompletionsToolChoice, m as isOpenAIGpt55Model, o as OpenAICompletionsToolChoice, p as isOpenAIGpt54MiniModel, s as OpenAIToolProjection, u as reconcileOpenAIResponsesToolChoice, v as resolveOpenAISupportedReasoningEfforts, y as supportsOpenAIReasoningEffort } from "../provider-options-D8bB3z9b.mjs";
3
+ import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-DBWjXoMZ.mjs";
4
+ import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-2uo_1OR1.mjs";
5
+ import OpenAI from "openai";
6
+ import { TSchema } from "typebox";
7
+ import { ResponseCreateParamsStreaming } from "openai/resources/responses/responses.js";
8
+ import { ChatCompletionMessageParam } from "openai/resources/chat/completions.js";
9
+
10
+ //#region packages/ai/src/providers/agent-tools-parameter-schema.d.ts
11
+ /**
12
+ * Narrow structural view of the host's model compat config. packages/ai must stay
13
+ * config-agnostic, so only tool-schema-relevant fields are modeled here; the host's
14
+ * ModelCompatConfig remains structurally assignable.
15
+ */
16
+ type ToolSchemaModelCompat = {
17
+ toolSchemaProfile?: string;
18
+ unsupportedToolSchemaKeywords?: string[];
19
+ omitEmptyArrayItems?: boolean;
20
+ };
21
+ /** Extracts the compat record whether callers pass a model (`{ compat }`) or the compat itself. */
22
+ declare function extractToolSchemaModelCompat(modelOrCompat: {
23
+ compat?: unknown;
24
+ } | ToolSchemaModelCompat | undefined): ToolSchemaModelCompat | undefined;
25
+ /** JSON Schema keywords this model/provider rejects in tool schemas. */
26
+ declare function resolveUnsupportedToolSchemaKeywords(modelOrCompat: {
27
+ compat?: unknown;
28
+ } | ToolSchemaModelCompat | undefined): ReadonlySet<string>;
29
+ /** Whether empty `items: {}` on array schemas must be omitted for this model/provider. */
30
+ declare function shouldOmitEmptyArrayItems(modelOrCompat: {
31
+ compat?: unknown;
32
+ } | ToolSchemaModelCompat | undefined): boolean;
33
+ type ToolParameterSchemaOptions = {
34
+ modelProvider?: string;
35
+ modelId?: string;
36
+ modelCompat?: ToolSchemaModelCompat;
37
+ };
38
+ /** Return a provider-compatible JSON schema for a model-facing tool. */
39
+ declare function normalizeToolParameterSchema(schema: unknown, options?: ToolParameterSchemaOptions): TSchema;
40
+ //#endregion
41
+ //#region packages/ai/src/providers/azure-deployment-map.d.ts
42
+ /** Parses AZURE_OPENAI_DEPLOYMENT_MAP-style model=deployment entries. */
43
+ declare function parseAzureDeploymentNameMap(value: string | undefined): Map<string, string>;
44
+ /**
45
+ * Resolves the Azure deployment name for a model id, falling back to the model id.
46
+ *
47
+ * An exact-case match always wins, so configs that intentionally distinguish keys by
48
+ * case keep their exact mappings; a case-insensitive match is only used as a fallback
49
+ * (e.g. `GPT-4o` against a `gpt-4o=...` map) to avoid 404s from casing differences.
50
+ */
51
+ declare function resolveAzureDeploymentNameFromMap(params: {
52
+ modelId: string;
53
+ deploymentMap?: string;
54
+ }): string;
55
+ //#endregion
56
+ //#region packages/ai/src/providers/azure-openai-responses-client-compat.d.ts
57
+ declare function isTraditionalAzureOpenAIHost(hostname: string): boolean;
58
+ declare function isOpenAICompatibleAzureResponsesBaseUrl(baseUrl: string): boolean;
59
+ //#endregion
60
+ //#region packages/ai/src/providers/clean-for-gemini.d.ts
61
+ declare const GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS: Set<string>;
62
+ declare function cleanSchemaForGemini(schema: unknown): TSchema;
63
+ //#endregion
64
+ //#region packages/ai/src/providers/clean-for-llamacpp-gbnf.d.ts
65
+ /** llama.cpp rejects grammar repetitions whose expanded rule count reaches 2000. */
66
+ declare const LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD = 2000;
67
+ /** Removes JSON Schema constraints that llama.cpp cannot compile into GBNF. */
68
+ declare function cleanSchemaForLlamacppGbnf(schema: unknown): unknown;
69
+ /** Reports schema paths that llama.cpp cannot compile into GBNF. */
70
+ declare function findLlamacppGbnfSchemaViolations(schema: unknown, path: string): string[];
71
+ //#endregion
72
+ //#region packages/ai/src/openai-completions-messages.d.ts
73
+ /** Convert a normalized transcript to OpenAI Chat Completions messages. */
74
+ declare function convertMessages(model: Model<"openai-completions">, context: Context, compat: ResolvedOpenAICompletionsCompat, options?: {
75
+ cacheOptOutIndexes?: Set<number>;
76
+ preserveSystemPromptCacheBoundary?: boolean;
77
+ }): ChatCompletionMessageParam[];
78
+ //#endregion
79
+ //#region packages/ai/src/providers/openai-completions.d.ts
80
+ declare const streamOpenAICompletions: StreamFunction<"openai-completions", OpenAICompletionsOptions>;
81
+ declare const streamSimpleOpenAICompletions: StreamFunction<"openai-completions", SimpleStreamOptions>;
82
+ //#endregion
83
+ //#region packages/ai/src/providers/openai-responses.d.ts
84
+ interface OpenAIResponsesOptions extends StreamOptions {
85
+ reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
86
+ reasoningSummary?: "auto" | "detailed" | "concise" | null;
87
+ replayResponsesItemIds?: boolean;
88
+ serviceTier?: ResponseCreateParamsStreaming["service_tier"];
89
+ }
90
+ /**
91
+ * Generate function for OpenAI Responses API
92
+ */
93
+ declare const streamOpenAIResponses: StreamFunction<"openai-responses", OpenAIResponsesOptions>;
94
+ declare const streamSimpleOpenAIResponses: StreamFunction<"openai-responses", SimpleStreamOptions>;
95
+ //#endregion
96
+ //#region packages/ai/src/providers/openai-responses-stream-compat.d.ts
97
+ declare const OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE = "output_text";
98
+ declare const AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE = "text";
99
+ declare const OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE = "response.output_text.delta";
100
+ declare const AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE = "response.text.delta";
101
+ type ResponsesTextContentPartType = typeof OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE | typeof AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE;
102
+ type ResponsesTextDeltaEventType = typeof OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE | typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
103
+ type AzureResponsesTextContentPart = {
104
+ type: typeof AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE;
105
+ text: string;
106
+ };
107
+ type AzureResponsesTextDeltaEvent = {
108
+ type: typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
109
+ delta: string;
110
+ };
111
+ declare function isResponsesTextContentPartType(type: unknown): type is ResponsesTextContentPartType;
112
+ declare function isResponsesTextDeltaEventType(type: unknown): type is ResponsesTextDeltaEventType;
113
+ declare function isAzureResponsesTextDeltaEventType(type: unknown): type is typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
114
+ declare function isAzureResponsesTextDeltaEvent(event: {
115
+ type?: unknown;
116
+ delta?: unknown;
117
+ }): event is AzureResponsesTextDeltaEvent;
118
+ type ResponsesMessageSnapshotCollapse = {
119
+ kind: "extend";
120
+ text: string;
121
+ } | {
122
+ kind: "keep";
123
+ };
124
+ declare function resolveResponsesMessageSnapshotCollapse(params: {
125
+ prior: {
126
+ text: string;
127
+ phase: string | undefined;
128
+ } | null;
129
+ nextText: string;
130
+ nextPhase: string | undefined;
131
+ }): ResponsesMessageSnapshotCollapse;
132
+ //#endregion
133
+ //#region packages/ai/src/providers/openai-responses-terminal-usage.d.ts
134
+ /** Terminal usage payload, modeled structurally so untyped callers can pass raw records. */
135
+ type ResponsesTerminalUsagePayload = {
136
+ input_tokens?: number | null;
137
+ output_tokens?: number | null;
138
+ total_tokens?: number | null;
139
+ input_tokens_details?: {
140
+ cached_tokens?: number | null;
141
+ cache_write_tokens?: number | null;
142
+ } | null;
143
+ output_tokens_details?: {
144
+ reasoning_tokens?: number | null;
145
+ } | null;
146
+ };
147
+ /**
148
+ * Split a terminal usage payload into the priced buckets.
149
+ *
150
+ * OpenAI includes cache reads and writes in `input_tokens`, so both are subtracted out of the
151
+ * billable input bucket. `total_tokens` comes from the payload, but never below the sum of the
152
+ * split buckets: proxies routinely omit it (reporting 0 would understate the turn), and a payload
153
+ * whose `cached_tokens` exceeds `input_tokens` clamps the input bucket, leaving the reported total
154
+ * short of what the buckets actually price.
155
+ */
156
+ declare function mapResponsesTerminalUsage(usage: ResponsesTerminalUsagePayload | undefined | null): Pick<Usage, "input" | "output" | "cacheRead" | "cacheWrite" | "totalTokens"> | undefined;
157
+ /** Reasoning tokens are reported by the agent path only; the package path does not track them. */
158
+ declare function readResponsesReasoningTokens(usage: ResponsesTerminalUsagePayload | undefined | null): number | undefined;
159
+ /**
160
+ * Resolve the terminal stop reason, including the two overrides every Responses path shares: a
161
+ * content-filtered turn is a provider error rather than a truncated answer, and a turn that
162
+ * produced tool calls reports `toolUse` instead of a plain stop.
163
+ */
164
+ declare function resolveResponsesTerminalStopReason(params: {
165
+ status: OpenAI.Responses.ResponseStatus | undefined;
166
+ terminalEventType?: "response.completed" | "response.incomplete";
167
+ incompleteReason?: string;
168
+ hasToolCall: boolean;
169
+ }): {
170
+ stopReason: StopReason;
171
+ errorMessage?: string;
172
+ };
173
+ //#endregion
174
+ //#region packages/ai/src/providers/openai-responses-tool-call-tracker.d.ts
175
+ type ResponsesToolCallIdentity = {
176
+ itemId?: string;
177
+ callId?: string;
178
+ };
179
+ type ResponsesToolCallState = ResponsesToolCallIdentity & {
180
+ argumentStreamReliable: boolean;
181
+ };
182
+ type ResponsesToolCallEvent = {
183
+ output_index?: unknown;
184
+ item_id?: unknown;
185
+ };
186
+ declare function readResponsesToolCallItemIdentity(item: {
187
+ id?: unknown;
188
+ call_id?: unknown;
189
+ }): ResponsesToolCallIdentity;
190
+ declare function createResponsesToolCallTracker<TState extends ResponsesToolCallState>(): {
191
+ register(event: ResponsesToolCallEvent, state: TState): void;
192
+ resolve(event: ResponsesToolCallEvent, identity?: ResponsesToolCallIdentity): TState | undefined;
193
+ forget(toolCall: TState): void;
194
+ markArgumentsUnreliable(): void;
195
+ hasActive(): boolean;
196
+ };
197
+ //#endregion
198
+ //#region packages/ai/src/providers/openai-stop-reason.d.ts
199
+ type OpenAIStopReasonResult = {
200
+ stopReason: StopReason;
201
+ errorMessage?: string;
202
+ };
203
+ declare function mapOpenAIStopReason(reason: string | null, options?: {
204
+ allowSingularToolCall?: boolean;
205
+ }): OpenAIStopReasonResult;
206
+ //#endregion
207
+ //#region packages/ai/src/providers/openai-tool-schema-compat.d.ts
208
+ /** Repairs recoverable OpenAI tool-schema shapes before canonical normalization. */
209
+ declare function normalizeOpenAIStrictCompatSchema(schema: unknown): TSchema;
210
+ /** Finds schema paths that violate OpenAI strict tool-schema requirements. */
211
+ declare function findOpenAIStrictSchemaViolations(schema: unknown, path: string, options?: {
212
+ requireObjectRoot?: boolean;
213
+ }): string[];
214
+ //#endregion
215
+ //#region packages/ai/src/providers/openai-tool-schema.d.ts
216
+ /**
217
+ * OpenAI strict-tool-schema normalization and diagnostics.
218
+ *
219
+ * Strict schemas need all object properties required and `additionalProperties: false`; model
220
+ * compatibility settings can also remove unsupported schema constructs before strict checks run.
221
+ */
222
+ type ToolSchemaCompatInput = {
223
+ unsupportedToolSchemaKeywords?: unknown;
224
+ omitEmptyArrayItems?: unknown;
225
+ };
226
+ declare function clearOpenAIToolSchemaCacheForTest(): void;
227
+ /** Normalizes a tool parameter schema into the OpenAI strict JSON-schema subset. */
228
+ declare function normalizeStrictOpenAIJsonSchema(schema: unknown, modelCompat?: ToolSchemaCompatInput | null): unknown;
229
+ /** Normalizes tool parameters using strict OpenAI rules only when strict mode is active. */
230
+ declare function normalizeOpenAIStrictToolParameters<T>(schema: T, strict: boolean, modelCompat?: ToolSchemaCompatInput | null): T;
231
+ /** Returns whether a schema already satisfies OpenAI strict tool-schema constraints. */
232
+ declare function isStrictOpenAIJsonSchemaCompatible(schema: unknown): boolean;
233
+ type OpenAIStrictToolSchemaDiagnostic = {
234
+ toolIndex: number;
235
+ toolName?: string;
236
+ violations: string[];
237
+ };
238
+ /** Returns strict-schema diagnostics for an already materialized OpenAI tool projection. */
239
+ declare function findOpenAIStrictToolProjectionDiagnostics(projection: OpenAIToolProjection): OpenAIStrictToolSchemaDiagnostic[];
240
+ /** Resolves strict mode for the projected tools that will be emitted in the request payload. */
241
+ declare function resolveOpenAIProjectedToolsStrictToolFlag(projection: OpenAIToolProjection, strict: boolean | null | undefined): boolean | undefined;
242
+ //#endregion
243
+ //#region packages/ai/src/providers/schema-keyword-strip.d.ts
244
+ /** Recursively remove schema keywords unsupported by a target provider/tool surface. */
245
+ declare function stripUnsupportedSchemaKeywords(schema: unknown, unsupportedKeywords: ReadonlySet<string>): unknown;
246
+ //#endregion
247
+ //#region packages/ai/src/providers/tool-schema-json-projection.d.ts
248
+ /** JSON-safe schema value used when projecting runtime tool parameters. */
249
+ type RuntimeToolInputSchemaJson = null | boolean | number | string | RuntimeToolInputSchemaJson[] | {
250
+ [key: string]: RuntimeToolInputSchemaJson;
251
+ };
252
+ /** Projected runtime tool schema plus validation violations. */
253
+ type RuntimeToolInputSchemaProjection = {
254
+ readonly schema: RuntimeToolInputSchemaJson;
255
+ readonly violations: readonly string[];
256
+ };
257
+ /** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
258
+ declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
259
+ //#endregion
260
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,7 +1,9 @@
1
+ import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-mZTCdRPo.mjs";
2
+ import { n as reconcileOpenAICompletionsToolChoice, r as reconcileOpenAIResponsesToolChoice, t as projectOpenAITools } from "../openai-tool-projection-OhX64DoP.mjs";
1
3
  import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-BwNu3nDi.mjs";
2
- import { a as mapOpenAIStopReason, i as streamSimpleOpenAICompletions, r as streamOpenAICompletions, t as convertMessages } from "../openai-completions-exO8NFQf.mjs";
3
- import { A as isOpenAIGpt54MiniModel, B as resolveUnsupportedToolSchemaKeywords, C as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, D as isResponsesTextContentPartType, E as isAzureResponsesTextDeltaEventType, F as resolveOpenAISupportedReasoningEfforts, H as stripUnsupportedSchemaKeywords, I as supportsOpenAIReasoningEffort, L as supportsOpenAITemperature, M as isOpenAIGpt56Model, N as normalizeOpenAIReasoningEffort, O as isResponsesTextDeltaEventType, P as resolveOpenAIReasoningEffortForModel, R as extractToolSchemaModelCompat, S as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, T as isAzureResponsesTextDeltaEvent, U as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, V as shouldOmitEmptyArrayItems, W as cleanSchemaForGemini, _ as readResponsesToolCallItemIdentity, b as resolveResponsesTerminalStopReason, c as clearOpenAIToolSchemaCacheForTest, d as normalizeOpenAIStrictToolParameters, f as normalizeStrictOpenAIJsonSchema, g as createResponsesToolCallTracker, h as normalizeOpenAIStrictCompatSchema, j as isOpenAIGpt55Model, k as resolveResponsesMessageSnapshotCollapse, l as findOpenAIStrictToolProjectionDiagnostics, m as findOpenAIStrictSchemaViolations, p as resolveOpenAIProjectedToolsStrictToolFlag, u as isStrictOpenAIJsonSchemaCompatible, v as mapResponsesTerminalUsage, w as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, x as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, y as readResponsesReasoningTokens, z as normalizeToolParameterSchema } from "../openai-responses-shared-CzCurmY1.mjs";
4
+ import { n as mapOpenAIStopReason, r as convertMessages } from "../openai-reasoning-compat-YgeLncHw.mjs";
5
+ import { $ as normalizeOpenAIStrictCompatSchema, J as isStrictOpenAIJsonSchemaCompatible, K as clearOpenAIToolSchemaCacheForTest, Q as findOpenAIStrictSchemaViolations, X as normalizeStrictOpenAIJsonSchema, Y as normalizeOpenAIStrictToolParameters, Z as resolveOpenAIProjectedToolsStrictToolFlag, _ as resolveResponsesMessageSnapshotCollapse, _t as supportsOpenAITemperature, a as resolveResponsesTerminalStopReason, at as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, c as readResponsesToolCallItemIdentity, ct as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, d as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, dt as isOpenAIGpt55Model, et as extractToolSchemaModelCompat, f as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, ft as isOpenAIGpt56Model, g as isResponsesTextDeltaEventType, gt as supportsOpenAIReasoningEffort, h as isResponsesTextContentPartType, ht as resolveOpenAISupportedReasoningEfforts, i as readResponsesReasoningTokens, it as stripUnsupportedSchemaKeywords, l as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, lt as cleanSchemaForGemini, m as isAzureResponsesTextDeltaEventType, mt as resolveOpenAIReasoningEffortForModel, nt as resolveUnsupportedToolSchemaKeywords, ot as cleanSchemaForLlamacppGbnf, p as isAzureResponsesTextDeltaEvent, pt as normalizeOpenAIReasoningEffort, q as findOpenAIStrictToolProjectionDiagnostics, r as mapResponsesTerminalUsage, rt as shouldOmitEmptyArrayItems, s as createResponsesToolCallTracker, st as findLlamacppGbnfSchemaViolations, tt as normalizeToolParameterSchema, u as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, ut as isOpenAIGpt54MiniModel } from "../openai-responses-stream-internal-Cw5txaGW.mjs";
4
6
  import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
5
- import { a as clampOpenAIPromptCacheKey, i as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, n as reconcileOpenAICompletionsToolChoice, r as reconcileOpenAIResponsesToolChoice, t as projectOpenAITools } from "../openai-tool-projection-ITOU9bG1.mjs";
6
- import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BHpmtUKo.mjs";
7
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
7
+ import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-DsOxhOD1.mjs";
8
+ import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BT7A3sLu.mjs";
9
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,6 +1,7 @@
1
- import { D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, P as ProviderStreamOptions, X as Usage, i as AssistantMessage, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "../types-AFwwWium.mjs";
2
- import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-BMphkFf1.mjs";
1
+ import { D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, P as ProviderStreamOptions, X as Usage, i as AssistantMessage, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "../types-bzp5k29J.mjs";
2
+ import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-DlMgPR39.mjs";
3
3
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
4
+ import { a as createFirstStreamEventTimeoutError, c as withFirstStreamEventTimeout, i as createFirstStreamEventAbortController, n as FirstStreamEventInternalOptions, o as getFirstStreamEventTimeoutHandler, r as FirstStreamEventTimeoutContext, s as getFirstStreamEventTimeoutMs, t as FirstStreamEventAbortController } from "../stream-first-event-timeout-DvDeSucC.mjs";
4
5
 
5
6
  //#region packages/ai/src/internal/default-runtime.d.ts
6
7
  declare const defaultApiRegistry: {
@@ -169,7 +170,7 @@ declare function isConfiguredContextSizeOverflowError(errorMessage: string): boo
169
170
  */
170
171
  declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
171
172
  //#endregion
172
- //#region packages/ai/src/utils/reasoning-tag-text-partitioner.d.ts
173
+ //#region packages/markdown-core/src/reasoning-tag-parser.d.ts
173
174
  type ReasoningTagTextDelta = {
174
175
  kind: "text";
175
176
  text: string;
@@ -177,6 +178,8 @@ type ReasoningTagTextDelta = {
177
178
  kind: "thinking";
178
179
  text: string;
179
180
  };
181
+ //#endregion
182
+ //#region packages/markdown-core/src/reasoning-tags.d.ts
180
183
  interface ReasoningTagTextPartitioner {
181
184
  markStrict(): void;
182
185
  push(chunk: string): ReasoningTagTextDelta[];
@@ -185,36 +188,9 @@ interface ReasoningTagTextPartitioner {
185
188
  hasPending(): boolean;
186
189
  isInsideReasoning(): boolean;
187
190
  }
191
+ /** Creates a block-incremental parser that emits only Markdown-stable text. */
188
192
  declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
189
193
  //#endregion
190
- //#region packages/ai/src/utils/stream-first-event-timeout.d.ts
191
- type StreamStage = "responses" | "completions";
192
- type FirstStreamEventTimeoutContext = {
193
- provider?: string;
194
- api?: string;
195
- model?: string;
196
- timeoutMs: number;
197
- stage?: StreamStage;
198
- hint?: string;
199
- abort?: (reason: Error) => void;
200
- onTimeout?: (reason: Error) => void;
201
- };
202
- type FirstStreamEventInternalOptions = {
203
- firstEventTimeoutMs?: number;
204
- abortFirstEventStream?: (reason: Error) => void;
205
- onFirstEventTimeout?: (reason: Error) => void;
206
- };
207
- type FirstStreamEventAbortController = {
208
- signal: AbortSignal;
209
- abort: (reason: Error) => void;
210
- dispose: () => void;
211
- };
212
- declare function getFirstStreamEventTimeoutMs(options: unknown): number | undefined;
213
- declare function getFirstStreamEventTimeoutHandler(options: unknown): ((reason: Error) => void) | undefined;
214
- declare function createFirstStreamEventTimeoutError(context: FirstStreamEventTimeoutContext): Error;
215
- declare function createFirstStreamEventAbortController(parentSignal?: AbortSignal): FirstStreamEventAbortController;
216
- declare function withFirstStreamEventTimeout<T>(stream: AsyncIterable<T>, context: FirstStreamEventTimeoutContext): AsyncIterable<T>;
217
- //#endregion
218
194
  //#region packages/ai/src/utils/streaming-byte-guard.d.ts
219
195
  /**
220
196
  * Bounded SSE / NDJSON stream reader guard.
@@ -245,4 +221,4 @@ type SseByteGuard = {
245
221
  };
246
222
  declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
247
223
  //#endregion
248
- export { FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, OpenAICodexJwtPayload, ReadSseStreamWithLimitOptions, ReasoningTagTextDelta, ReasoningTagTextPartitioner, SessionResourceCleanup, SseByteGuard, SseStreamOverflow, applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
224
+ export { FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, OpenAICodexJwtPayload, ReadSseStreamWithLimitOptions, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, SessionResourceCleanup, SseByteGuard, SseStreamOverflow, applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
@@ -1,14 +1,15 @@
1
1
  import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-DrgeBuva.mjs";
2
2
  import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
3
3
  import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
4
- import { a as modelsAreEqual, i as getSupportedThinkingLevels, n as calculateCost, r as clampThinkingLevel, t as applyProviderReportedUsageCost } from "../model-utils-1GiZ2_rr.mjs";
5
- import { n as onLlmRequestActivity, r as createDeferredEventBuffer, t as notifyLlmRequestActivity } from "../llm-request-activity-CehVkZP-.mjs";
6
- import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
4
+ import { c as calculateCost, d as modelsAreEqual, l as clampThinkingLevel, s as applyProviderReportedUsageCost, u as getSupportedThinkingLevels } from "../number-coercion-DvG7SNMg.mjs";
5
+ import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
7
6
  import { n as parseStreamingJson, r as repairJson, t as parseJsonWithRepair } from "../json-parse-BvXNt1-7.mjs";
8
- import { i as registerSessionResourceCleanup, n as resolveOpenAICodexAccountId, r as cleanupSessionResources, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-DhAAzLkj.mjs";
7
+ import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
8
+ import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-CGDyLWUR.mjs";
9
+ import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-BBys9hSb.mjs";
9
10
  import { t as shortHash } from "../hash-CHgqbJmD.mjs";
10
- import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-BlVe67g6.mjs";
11
- import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-DP4xEyBY.mjs";
11
+ import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
12
+ import { i as registerSessionResourceCleanup, n as resolveOpenAICodexAccountId, r as cleanupSessionResources, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-DhAAzLkj.mjs";
12
13
  import { t as createSseByteGuard } from "../streaming-byte-guard-BrbkbwUu.mjs";
13
14
  //#region packages/ai/src/internal/default-runtime.ts
14
15
  const DEFAULT_RUNTIME_KEY = Symbol.for("openclaw.ai.defaultRuntime");
@@ -1,5 +1,6 @@
1
- import { E as Model, F as SimpleStreamOptions, H as ThinkingBudgets, T as Message, W as ThinkingLevel, i as AssistantMessage, n as Api, z as StreamOptions } from "../types-AFwwWium.mjs";
1
+ import { E as Model, F as SimpleStreamOptions, H as ThinkingBudgets, T as Message, W as ThinkingLevel, i as AssistantMessage, n as Api, z as StreamOptions } from "../types-bzp5k29J.mjs";
2
2
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
3
+ import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
3
4
 
4
5
  //#region packages/ai/src/providers/simple-options.d.ts
5
6
  type FirstEventStreamOptions = {
@@ -30,7 +31,7 @@ declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]):
30
31
  declare function extractToolResultBlockText(block: unknown): string | undefined;
31
32
  declare function extractToolResultText(blocks: readonly unknown[]): string;
32
33
  //#endregion
33
- //#region packages/ai/src/providers/transform-messages.d.ts
34
+ //#region packages/ai/src/transcript-transform.d.ts
34
35
  /**
35
36
  * Normalize tool call ID for cross-provider compatibility.
36
37
  * OpenAI Responses API generates IDs that are 450+ chars with special characters like `|`.
@@ -38,12 +39,6 @@ declare function extractToolResultText(blocks: readonly unknown[]): string;
38
39
  */
39
40
  declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
40
41
  //#endregion
41
- //#region packages/ai/src/utils/prompt-cache-stability.d.ts
42
- /** Normalize structured prompt text before hashing or snapshot comparison. */
43
- declare function normalizeStructuredPromptSection(text: string): string;
44
- /** Normalize, de-dupe, and sort capability ids for stable prompt payloads. */
45
- declare function normalizePromptCapabilityIds(capabilities: ReadonlyArray<string>): string[];
46
- //#endregion
47
42
  //#region packages/ai/src/utils/system-prompt-cache-boundary.d.ts
48
43
  declare const SYSTEM_PROMPT_CACHE_BOUNDARY = "\n<!-- OPENCLAW_CACHE_BOUNDARY -->\n";
49
44
  declare function stripSystemPromptCacheBoundary(text: string): string;
@@ -57,4 +52,14 @@ declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
57
52
  systemPromptAddition?: string;
58
53
  }): string;
59
54
  //#endregion
60
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
55
+ //#region packages/ai/src/utils/tls-certificate-errors.d.ts
56
+ type TlsCertificateErrorKind = "certificate_invalid" | "hostname_mismatch";
57
+ type TlsCertificateErrorDetails = {
58
+ kind: TlsCertificateErrorKind;
59
+ code?: string;
60
+ message: string;
61
+ };
62
+ /** Classify deterministic Node/OpenSSL certificate validation failures. */
63
+ declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
64
+ //#endregion
65
+ export { SYSTEM_PROMPT_CACHE_BOUNDARY, TlsCertificateErrorDetails, TlsCertificateErrorKind, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
@@ -1,3 +1,7 @@
1
- import { C as isImageWithMediaPayload, D as buildBaseOptions, E as adjustMaxTokensForThinking, O as clampMaxTokensToModel, S as hasMediaPayload, a as stripSystemPromptCacheBoundary, b as extractToolResultBlockText, c as transformMessages, i as splitSystemPromptCacheBoundary, k as clampReasoning, n as ensureSystemPromptCacheBoundary, o as normalizePromptCapabilityIds, r as prependSystemPromptAdditionAfterCacheBoundary, s as normalizeStructuredPromptSection, t as SYSTEM_PROMPT_CACHE_BOUNDARY, x as extractToolResultText, y as describeToolResultMediaPlaceholder } from "../system-prompt-cache-boundary-CbHeV4_l.mjs";
1
+ import { i as transformMessages } from "../host-Dog2WQiR.mjs";
2
2
  import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
3
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
3
+ import { a as isImageWithMediaPayload, c as ensureSystemPromptCacheBoundary, d as stripSystemPromptCacheBoundary, f as normalizePromptCapabilityIds, i as hasMediaPayload, l as prependSystemPromptAdditionAfterCacheBoundary, m as sortPromptCacheToolsByName, n as extractToolResultBlockText, p as normalizeStructuredPromptSection, r as extractToolResultText, s as SYSTEM_PROMPT_CACHE_BOUNDARY, t as describeToolResultMediaPlaceholder, u as splitSystemPromptCacheBoundary } from "../tool-result-text-CTpIRbYd.mjs";
4
+ import { i as clampReasoning, n as buildBaseOptions, r as clampMaxTokensToModel, t as adjustMaxTokensForThinking } from "../simple-options-9lhRrN73.mjs";
5
+ import "../transform-messages-C8mBqZxF.mjs";
6
+ import { t as inspectTlsCertificateError } from "../tls-certificate-errors-DXSpluKI.mjs";
7
+ export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
@@ -1,21 +1,3 @@
1
- //#region packages/ai/src/utils/deferred-event-buffer.ts
2
- function createDeferredEventBuffer(sink, onBufferedEvent) {
3
- let events = [];
4
- return {
5
- push(event) {
6
- events.push(event);
7
- onBufferedEvent?.();
8
- },
9
- flush() {
10
- for (const event of events) sink.push(event);
11
- events = [];
12
- },
13
- discard() {
14
- events = [];
15
- }
16
- };
17
- }
18
- //#endregion
19
1
  //#region packages/ai/src/utils/llm-request-activity.ts
20
2
  const requestActivityListeners = /* @__PURE__ */ new WeakMap();
21
3
  function notifyLlmRequestActivity(signal) {
@@ -32,4 +14,4 @@ function onLlmRequestActivity(signal, listener) {
32
14
  };
33
15
  }
34
16
  //#endregion
35
- export { onLlmRequestActivity as n, createDeferredEventBuffer as r, notifyLlmRequestActivity as t };
17
+ export { onLlmRequestActivity as n, notifyLlmRequestActivity as t };
@@ -1,11 +1,14 @@
1
1
  import { n as getEnvApiKey } from "./env-api-keys-DrgeBuva.mjs";
2
2
  import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
3
- import { n as getAiTransportHost } from "./host-XYGZcgO8.mjs";
4
- import { C as isImageWithMediaPayload, D as buildBaseOptions, O as clampMaxTokensToModel, a as stripSystemPromptCacheBoundary, c as transformMessages, w as truncateUtf16Safe, x as extractToolResultText, y as describeToolResultMediaPlaceholder } from "./system-prompt-cache-boundary-CbHeV4_l.mjs";
3
+ import { i as transformMessages, n as getAiTransportHost } from "./host-Dog2WQiR.mjs";
5
4
  import { t as sanitizeSurrogates } from "./sanitize-unicode-DT5o51ur.mjs";
6
- import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-1GiZ2_rr.mjs";
5
+ import { a as isImageWithMediaPayload, d as stripSystemPromptCacheBoundary, o as truncateUtf16Safe, r as extractToolResultText, t as describeToolResultMediaPlaceholder } from "./tool-result-text-CTpIRbYd.mjs";
6
+ import { c as calculateCost, l as clampThinkingLevel } from "./number-coercion-DvG7SNMg.mjs";
7
7
  import { n as parseStreamingJson } from "./json-parse-BvXNt1-7.mjs";
8
+ import { d as transportAbortError } from "./transport-stream-shared-D81p90xq.mjs";
8
9
  import { t as shortHash } from "./hash-CHgqbJmD.mjs";
10
+ import { n as buildBaseOptions, r as clampMaxTokensToModel } from "./simple-options-9lhRrN73.mjs";
11
+ import "./transform-messages-C8mBqZxF.mjs";
9
12
  import { t as createSseByteGuard } from "./streaming-byte-guard-BrbkbwUu.mjs";
10
13
  import { randomUUID } from "node:crypto";
11
14
  import { HTTPClient, Mistral } from "@mistralai/mistralai";
@@ -85,7 +88,7 @@ const streamMistral = (model, context, options) => {
85
88
  partial: output
86
89
  });
87
90
  await consumeChatStream(model, output, stream, mistralStream);
88
- if (options?.signal?.aborted) throw new Error("Request was aborted");
91
+ if (options?.signal?.aborted) throw transportAbortError(options.signal);
89
92
  if (output.stopReason === "aborted" || output.stopReason === "error") throw new Error("An unknown error occurred");
90
93
  stream.push({
91
94
  type: "done",