@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,47 +1,47 @@
1
- import { B as StopReason, D as Model, H as StreamFunction, d as Context, et as Usage, z as SimpleStreamOptions } from "../types-DTAP49HF.mjs";
2
- import { C as supportsOpenAITemperature, S as supportsOpenAIReasoningEffort, _ as isOpenAIGpt55Model, a as CodeModeToolSurfaceObservation, b as resolveOpenAIReasoningEffortForModel, c as codeModeToolSurfaceObserver, d as projectOpenAITools, f as reconcileOpenAICompletionsToolChoice, g as isOpenAIGpt54MiniModel, h as OpenAIReasoningEffort, i as BaseOpenAIStreamOptions, l as OpenAICompletionsToolChoice, m as OpenAIApiReasoningEffort, o as OpenAICompletionsOptions, p as reconcileOpenAIResponsesToolChoice, u as OpenAIToolProjection, v as isOpenAIGpt56Model, x as resolveOpenAISupportedReasoningEfforts, y as normalizeOpenAIReasoningEffort } from "../provider-options-Cc5ZQ6Aa.mjs";
3
- import { o as ResponsesPromptObservation, s as responsesPromptObserver } from "../openai-responses-contracts-CD75pQ0m.mjs";
4
- import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-B0KTleXp.mjs";
1
+ import { D as Model, G as StopReason, W as SimpleStreamOptions, at as Usage, d as Context, q as StreamFunction } from "../types-Beemor2E.mjs";
2
+ import { C as supportsOpenAIReasoningEffort, S as resolveOpenAISupportedReasoningEfforts, _ as isOpenAIGpt54MiniModel, a as CodeModeToolSurfaceObservation, b as normalizeOpenAIReasoningEffort, c as codeModeToolSurfaceObserver, d as OpenAIToolProjection, f as projectOpenAITools, g as OpenAIReasoningEffort, h as OpenAIApiReasoningEffort, i as BaseOpenAIStreamOptions, l as reasoningTagTextPolicy, m as reconcileOpenAIResponsesToolChoice, o as OpenAICompletionsOptions, p as reconcileOpenAICompletionsToolChoice, u as OpenAICompletionsToolChoice, v as isOpenAIGpt55Model, w as supportsOpenAITemperature, x as resolveOpenAIReasoningEffortForModel, y as isOpenAIGpt56Model } from "../provider-options-DJd_9euj.mjs";
3
+ import "../types-COdhCX0U.mjs";
4
+ import { o as ResponsesPromptObservation, s as responsesPromptObserver } from "../openai-responses-contracts-BthRXano.mjs";
5
+ import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-SZhi0Lf4.mjs";
5
6
  import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-2uo_1OR1.mjs";
6
7
  import OpenAI from "openai";
7
8
  import { TSchema } from "typebox";
8
9
  import { ResponseCreateParamsStreaming } from "openai/resources/responses/responses.js";
9
10
  import { ChatCompletionMessageParam } from "openai/resources/chat/completions.js";
10
-
11
11
  //#region packages/ai/src/providers/agent-tools-parameter-schema.d.ts
12
12
  /**
13
13
  * Narrow structural view of the host's model compat config. packages/ai must stay
14
14
  * config-agnostic, so only tool-schema-relevant fields are modeled here; the host's
15
15
  * ModelCompatConfig remains structurally assignable.
16
16
  */
17
- type ToolSchemaModelCompat = {
17
+ export type ToolSchemaModelCompat = {
18
18
  toolSchemaProfile?: string;
19
19
  unsupportedToolSchemaKeywords?: string[];
20
20
  omitEmptyArrayItems?: boolean;
21
21
  };
22
22
  /** Extracts the compat record whether callers pass a model (`{ compat }`) or the compat itself. */
23
- declare function extractToolSchemaModelCompat(modelOrCompat: {
23
+ export declare function extractToolSchemaModelCompat(modelOrCompat: {
24
24
  compat?: unknown;
25
25
  } | ToolSchemaModelCompat | undefined): ToolSchemaModelCompat | undefined;
26
26
  /** JSON Schema keywords this model/provider rejects in tool schemas. */
27
- declare function resolveUnsupportedToolSchemaKeywords(modelOrCompat: {
27
+ export declare function resolveUnsupportedToolSchemaKeywords(modelOrCompat: {
28
28
  compat?: unknown;
29
29
  } | ToolSchemaModelCompat | undefined): ReadonlySet<string>;
30
30
  /** Whether empty `items: {}` on array schemas must be omitted for this model/provider. */
31
- declare function shouldOmitEmptyArrayItems(modelOrCompat: {
31
+ export declare function shouldOmitEmptyArrayItems(modelOrCompat: {
32
32
  compat?: unknown;
33
33
  } | ToolSchemaModelCompat | undefined): boolean;
34
- type ToolParameterSchemaOptions = {
34
+ export type ToolParameterSchemaOptions = {
35
35
  modelProvider?: string;
36
36
  modelId?: string;
37
37
  modelCompat?: ToolSchemaModelCompat;
38
38
  };
39
39
  /** Return a provider-compatible JSON schema for a model-facing tool. */
40
- declare function normalizeToolParameterSchema(schema: unknown, options?: ToolParameterSchemaOptions): TSchema;
40
+ export declare function normalizeToolParameterSchema(schema: unknown, options?: ToolParameterSchemaOptions): TSchema;
41
41
  //#endregion
42
42
  //#region packages/ai/src/providers/azure-deployment-map.d.ts
43
43
  /** Parses AZURE_OPENAI_DEPLOYMENT_MAP-style model=deployment entries. */
44
- declare function parseAzureDeploymentNameMap(value: string | undefined): Map<string, string>;
44
+ export declare function parseAzureDeploymentNameMap(value: string | undefined): Map<string, string>;
45
45
  /**
46
46
  * Resolves the Azure deployment name for a model id, falling back to the model id.
47
47
  *
@@ -49,40 +49,40 @@ declare function parseAzureDeploymentNameMap(value: string | undefined): Map<str
49
49
  * case keep their exact mappings; a case-insensitive match is only used as a fallback
50
50
  * (e.g. `GPT-4o` against a `gpt-4o=...` map) to avoid 404s from casing differences.
51
51
  */
52
- declare function resolveAzureDeploymentNameFromMap(params: {
52
+ export declare function resolveAzureDeploymentNameFromMap(params: {
53
53
  modelId: string;
54
54
  deploymentMap?: string;
55
55
  }): string;
56
56
  //#endregion
57
57
  //#region packages/ai/src/providers/azure-openai-responses-client-compat.d.ts
58
- declare function isTraditionalAzureOpenAIHost(hostname: string): boolean;
59
- declare function isOpenAICompatibleAzureResponsesBaseUrl(baseUrl: string): boolean;
58
+ export declare function isTraditionalAzureOpenAIHost(hostname: string): boolean;
59
+ export declare function isOpenAICompatibleAzureResponsesBaseUrl(baseUrl: string): boolean;
60
60
  //#endregion
61
61
  //#region packages/ai/src/providers/clean-for-gemini.d.ts
62
- declare const GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS: Set<string>;
63
- declare function cleanSchemaForGemini(schema: unknown): TSchema;
62
+ export declare const GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS: Set<string>;
63
+ export declare function cleanSchemaForGemini(schema: unknown): TSchema;
64
64
  //#endregion
65
65
  //#region packages/ai/src/providers/clean-for-llamacpp-gbnf.d.ts
66
66
  /** llama.cpp rejects grammar repetitions whose expanded rule count reaches 2000. */
67
- declare const LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD = 2000;
67
+ export declare const LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD = 2000;
68
68
  /** Removes JSON Schema constraints that llama.cpp cannot compile into GBNF. */
69
- declare function cleanSchemaForLlamacppGbnf(schema: unknown): unknown;
69
+ export declare function cleanSchemaForLlamacppGbnf(schema: unknown): unknown;
70
70
  /** Reports schema paths that llama.cpp cannot compile into GBNF. */
71
- declare function findLlamacppGbnfSchemaViolations(schema: unknown, path: string): string[];
71
+ export declare function findLlamacppGbnfSchemaViolations(schema: unknown, path: string): string[];
72
72
  //#endregion
73
73
  //#region packages/ai/src/openai-completions-messages.d.ts
74
74
  /** Convert a normalized transcript to OpenAI Chat Completions messages. */
75
- declare function convertMessages(model: Model<"openai-completions">, context: Context, compat: ResolvedOpenAICompletionsCompat, options?: {
75
+ export declare function convertMessages(model: Model<"openai-completions">, context: Context, compat: ResolvedOpenAICompletionsCompat, options?: {
76
76
  cacheOptOutIndexes?: Set<number>;
77
77
  preserveSystemPromptCacheBoundary?: boolean;
78
78
  }): ChatCompletionMessageParam[];
79
79
  //#endregion
80
80
  //#region packages/ai/src/providers/openai-completions.d.ts
81
- declare const streamOpenAICompletions: StreamFunction<"openai-completions", OpenAICompletionsOptions>;
82
- declare const streamSimpleOpenAICompletions: StreamFunction<"openai-completions", SimpleStreamOptions>;
81
+ export declare const streamOpenAICompletions: StreamFunction<"openai-completions", OpenAICompletionsOptions>;
82
+ export declare const streamSimpleOpenAICompletions: StreamFunction<"openai-completions", SimpleStreamOptions>;
83
83
  //#endregion
84
84
  //#region packages/ai/src/providers/openai-responses.d.ts
85
- interface OpenAIResponsesOptions extends BaseOpenAIStreamOptions {
85
+ export interface OpenAIResponsesOptions extends BaseOpenAIStreamOptions {
86
86
  reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
87
87
  reasoningSummary?: "auto" | "detailed" | "concise" | null;
88
88
  replayResponsesItemIds?: boolean;
@@ -91,38 +91,38 @@ interface OpenAIResponsesOptions extends BaseOpenAIStreamOptions {
91
91
  /**
92
92
  * Generate function for OpenAI Responses API
93
93
  */
94
- declare const streamOpenAIResponses: StreamFunction<"openai-responses", OpenAIResponsesOptions>;
95
- declare const streamSimpleOpenAIResponses: StreamFunction<"openai-responses", SimpleStreamOptions>;
94
+ export declare const streamOpenAIResponses: StreamFunction<"openai-responses", OpenAIResponsesOptions>;
95
+ export declare const streamSimpleOpenAIResponses: StreamFunction<"openai-responses", SimpleStreamOptions>;
96
96
  //#endregion
97
97
  //#region packages/ai/src/providers/openai-responses-stream-compat.d.ts
98
- declare const OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE = "output_text";
99
- declare const AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE = "text";
100
- declare const OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE = "response.output_text.delta";
101
- declare const AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE = "response.text.delta";
102
- type ResponsesTextContentPartType = typeof OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE | typeof AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE;
103
- type ResponsesTextDeltaEventType = typeof OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE | typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
104
- type AzureResponsesTextContentPart = {
98
+ export declare const OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE = "output_text";
99
+ export declare const AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE = "text";
100
+ export declare const OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE = "response.output_text.delta";
101
+ export declare const AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE = "response.text.delta";
102
+ export type ResponsesTextContentPartType = typeof OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE | typeof AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE;
103
+ export type ResponsesTextDeltaEventType = typeof OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE | typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
104
+ export type AzureResponsesTextContentPart = {
105
105
  type: typeof AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE;
106
106
  text: string;
107
107
  };
108
- type AzureResponsesTextDeltaEvent = {
108
+ export type AzureResponsesTextDeltaEvent = {
109
109
  type: typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
110
110
  delta: string;
111
111
  };
112
- declare function isResponsesTextContentPartType(type: unknown): type is ResponsesTextContentPartType;
113
- declare function isResponsesTextDeltaEventType(type: unknown): type is ResponsesTextDeltaEventType;
114
- declare function isAzureResponsesTextDeltaEventType(type: unknown): type is typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
115
- declare function isAzureResponsesTextDeltaEvent(event: {
112
+ export declare function isResponsesTextContentPartType(type: unknown): type is ResponsesTextContentPartType;
113
+ export declare function isResponsesTextDeltaEventType(type: unknown): type is ResponsesTextDeltaEventType;
114
+ export declare function isAzureResponsesTextDeltaEventType(type: unknown): type is typeof AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE;
115
+ export declare function isAzureResponsesTextDeltaEvent(event: {
116
116
  type?: unknown;
117
117
  delta?: unknown;
118
118
  }): event is AzureResponsesTextDeltaEvent;
119
- type ResponsesMessageSnapshotCollapse = {
119
+ export type ResponsesMessageSnapshotCollapse = {
120
120
  kind: "extend";
121
121
  text: string;
122
122
  } | {
123
123
  kind: "keep";
124
124
  };
125
- declare function resolveResponsesMessageSnapshotCollapse(params: {
125
+ export declare function resolveResponsesMessageSnapshotCollapse(params: {
126
126
  prior: {
127
127
  text: string;
128
128
  phase: string | undefined;
@@ -133,7 +133,7 @@ declare function resolveResponsesMessageSnapshotCollapse(params: {
133
133
  //#endregion
134
134
  //#region packages/ai/src/providers/openai-responses-terminal-usage.d.ts
135
135
  /** Terminal usage payload, modeled structurally so untyped callers can pass raw records. */
136
- type ResponsesTerminalUsagePayload = {
136
+ export type ResponsesTerminalUsagePayload = {
137
137
  input_tokens?: number | null;
138
138
  output_tokens?: number | null;
139
139
  total_tokens?: number | null;
@@ -154,15 +154,15 @@ type ResponsesTerminalUsagePayload = {
154
154
  * whose `cached_tokens` exceeds `input_tokens` clamps the input bucket, leaving the reported total
155
155
  * short of what the buckets actually price.
156
156
  */
157
- declare function mapResponsesTerminalUsage(usage: ResponsesTerminalUsagePayload | undefined | null): Pick<Usage, "input" | "output" | "cacheRead" | "cacheWrite" | "totalTokens"> | undefined;
157
+ export declare function mapResponsesTerminalUsage(usage: ResponsesTerminalUsagePayload | undefined | null): Pick<Usage, "input" | "output" | "cacheRead" | "cacheWrite" | "contextUsage" | "totalTokens"> | undefined;
158
158
  /** Reasoning tokens are reported by the agent path only; the package path does not track them. */
159
- declare function readResponsesReasoningTokens(usage: ResponsesTerminalUsagePayload | undefined | null): number | undefined;
159
+ export declare function readResponsesReasoningTokens(usage: ResponsesTerminalUsagePayload | undefined | null): number | undefined;
160
160
  /**
161
161
  * Resolve the terminal stop reason, including the two overrides every Responses path shares: a
162
162
  * content-filtered turn is a provider error rather than a truncated answer, and a turn that
163
163
  * produced tool calls reports `toolUse` instead of a plain stop.
164
164
  */
165
- declare function resolveResponsesTerminalStopReason(params: {
165
+ export declare function resolveResponsesTerminalStopReason(params: {
166
166
  status: OpenAI.Responses.ResponseStatus | undefined;
167
167
  terminalEventType?: "response.completed" | "response.incomplete";
168
168
  incompleteReason?: string;
@@ -173,43 +173,45 @@ declare function resolveResponsesTerminalStopReason(params: {
173
173
  };
174
174
  //#endregion
175
175
  //#region packages/ai/src/providers/openai-responses-tool-call-tracker.d.ts
176
- type ResponsesToolCallIdentity = {
176
+ export type ResponsesToolCallIdentity = {
177
177
  itemId?: string;
178
178
  callId?: string;
179
179
  };
180
- type ResponsesToolCallState = ResponsesToolCallIdentity & {
180
+ export type ResponsesToolCallState = ResponsesToolCallIdentity & {
181
181
  argumentStreamReliable: boolean;
182
+ outputIndex?: number;
182
183
  };
183
184
  type ResponsesToolCallEvent = {
184
185
  output_index?: unknown;
185
186
  item_id?: unknown;
186
187
  };
187
- declare function readResponsesToolCallItemIdentity(item: {
188
+ export declare function readResponsesToolCallItemIdentity(item: {
188
189
  id?: unknown;
189
190
  call_id?: unknown;
190
191
  }): ResponsesToolCallIdentity;
191
- declare function createResponsesToolCallTracker<TState extends ResponsesToolCallState>(): {
192
+ export declare function createResponsesToolCallTracker<TState extends ResponsesToolCallState>(): {
192
193
  register(event: ResponsesToolCallEvent, state: TState): void;
193
- resolve(event: ResponsesToolCallEvent, identity?: ResponsesToolCallIdentity): TState | undefined;
194
+ resolve(event: ResponsesToolCallEvent, identity?: ResponsesToolCallIdentity, allowUnmatchedIdentity?: boolean): TState | undefined;
194
195
  forget(toolCall: TState): void;
195
196
  markArgumentsUnreliable(): void;
196
197
  hasActive(): boolean;
198
+ hasExactlyActive(expected: readonly TState[]): boolean;
197
199
  };
198
200
  //#endregion
199
201
  //#region packages/ai/src/providers/openai-stop-reason.d.ts
200
- type OpenAIStopReasonResult = {
202
+ export type OpenAIStopReasonResult = {
201
203
  stopReason: StopReason;
202
204
  errorMessage?: string;
203
205
  };
204
- declare function mapOpenAIStopReason(reason: string | null, options?: {
206
+ export declare function mapOpenAIStopReason(reason: string | null, options?: {
205
207
  allowSingularToolCall?: boolean;
206
208
  }): OpenAIStopReasonResult;
207
209
  //#endregion
208
210
  //#region packages/ai/src/providers/openai-tool-schema-compat.d.ts
209
211
  /** Repairs recoverable OpenAI tool-schema shapes before canonical normalization. */
210
- declare function normalizeOpenAIStrictCompatSchema(schema: unknown): TSchema;
212
+ export declare function normalizeOpenAIStrictCompatSchema(schema: unknown): TSchema;
211
213
  /** Finds schema paths that violate OpenAI strict tool-schema requirements. */
212
- declare function findOpenAIStrictSchemaViolations(schema: unknown, path: string, options?: {
214
+ export declare function findOpenAIStrictSchemaViolations(schema: unknown, path: string, options?: {
213
215
  requireObjectRoot?: boolean;
214
216
  }): string[];
215
217
  //#endregion
@@ -225,36 +227,36 @@ type ToolSchemaCompatInput = {
225
227
  omitEmptyArrayItems?: unknown;
226
228
  };
227
229
  /** Normalizes a tool parameter schema into the OpenAI strict JSON-schema subset. */
228
- declare function normalizeStrictOpenAIJsonSchema(schema: unknown, modelCompat?: ToolSchemaCompatInput | null): unknown;
230
+ export declare function normalizeStrictOpenAIJsonSchema(schema: unknown, modelCompat?: ToolSchemaCompatInput | null): unknown;
229
231
  /** 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;
232
+ export declare function normalizeOpenAIStrictToolParameters<T>(schema: T, strict: boolean, modelCompat?: ToolSchemaCompatInput | null): T;
231
233
  /** Returns whether a schema already satisfies OpenAI strict tool-schema constraints. */
232
- declare function isStrictOpenAIJsonSchemaCompatible(schema: unknown): boolean;
234
+ export declare function isStrictOpenAIJsonSchemaCompatible(schema: unknown): boolean;
233
235
  type OpenAIStrictToolSchemaDiagnostic = {
234
236
  toolIndex: number;
235
237
  toolName?: string;
236
238
  violations: string[];
237
239
  };
238
240
  /** Returns strict-schema diagnostics for an already materialized OpenAI tool projection. */
239
- declare function findOpenAIStrictToolProjectionDiagnostics(projection: OpenAIToolProjection): OpenAIStrictToolSchemaDiagnostic[];
241
+ export declare function findOpenAIStrictToolProjectionDiagnostics(projection: OpenAIToolProjection): OpenAIStrictToolSchemaDiagnostic[];
240
242
  /** 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;
243
+ export declare function resolveOpenAIProjectedToolsStrictToolFlag(projection: OpenAIToolProjection, strict: boolean | null | undefined): boolean | undefined;
242
244
  //#endregion
243
245
  //#region packages/ai/src/providers/schema-keyword-strip.d.ts
244
246
  /** Recursively remove schema keywords unsupported by a target provider/tool surface. */
245
- declare function stripUnsupportedSchemaKeywords(schema: unknown, unsupportedKeywords: ReadonlySet<string>): unknown;
247
+ export declare function stripUnsupportedSchemaKeywords(schema: unknown, unsupportedKeywords: ReadonlySet<string>): unknown;
246
248
  //#endregion
247
249
  //#region packages/ai/src/providers/tool-schema-json-projection.d.ts
248
250
  /** JSON-safe schema value used when projecting runtime tool parameters. */
249
- type RuntimeToolInputSchemaJson = null | boolean | number | string | RuntimeToolInputSchemaJson[] | {
251
+ export type RuntimeToolInputSchemaJson = null | boolean | number | string | RuntimeToolInputSchemaJson[] | {
250
252
  [key: string]: RuntimeToolInputSchemaJson;
251
253
  };
252
254
  /** Projected runtime tool schema plus validation violations. */
253
- type RuntimeToolInputSchemaProjection = {
255
+ export type RuntimeToolInputSchemaProjection = {
254
256
  readonly schema: RuntimeToolInputSchemaJson;
255
257
  readonly violations: readonly string[];
256
258
  };
257
259
  /** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
258
- declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
260
+ export declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
259
261
  //#endregion
260
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, type CodeModeToolSurfaceObservation, 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, type ResponsesPromptObservation, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, 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, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
262
+ export { type CodeModeToolSurfaceObservation, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIToolProjection, type ResponsesPromptObservation, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, normalizeOpenAIReasoningEffort, projectOpenAITools, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, responsesPromptObserver, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,11 +1,12 @@
1
- import { S as supportsOpenAITemperature, _ as isOpenAIGpt56Model, b as resolveOpenAISupportedReasoningEfforts, g as isOpenAIGpt55Model, h as isOpenAIGpt54MiniModel, m as responsesPromptObserver, v as normalizeOpenAIReasoningEffort, x as supportsOpenAIReasoningEffort, y as resolveOpenAIReasoningEffortForModel } from "../openai-responses-contracts-DvILoqBk.mjs";
2
1
  import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-mZTCdRPo.mjs";
3
- import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-FEr-jOoZ.mjs";
4
- import { r as convertMessages, t as mapOpenAIStopReason } from "../openai-stop-reason-9OONKyAm.mjs";
5
- import { $ as normalizeOpenAIStrictCompatSchema, A as isAzureResponsesTextDeltaEvent, D as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, E as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, J as isStrictOpenAIJsonSchemaCompatible, M as isResponsesTextContentPartType, N as isResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, P as resolveResponsesMessageSnapshotCollapse, Q as findOpenAIStrictSchemaViolations, T as readResponsesToolCallItemIdentity, X as normalizeStrictOpenAIJsonSchema, Y as normalizeOpenAIStrictToolParameters, Z as resolveOpenAIProjectedToolsStrictToolFlag, at as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, ct as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, d as resolveResponsesTerminalStopReason, et as extractToolSchemaModelCompat, it as stripUnsupportedSchemaKeywords, j as isAzureResponsesTextDeltaEventType, k as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, l as mapResponsesTerminalUsage, lt as cleanSchemaForGemini, nt as resolveUnsupportedToolSchemaKeywords, ot as cleanSchemaForLlamacppGbnf, q as findOpenAIStrictToolProjectionDiagnostics, rt as shouldOmitEmptyArrayItems, st as findLlamacppGbnfSchemaViolations, tt as normalizeToolParameterSchema, u as readResponsesReasoningTokens, w as createResponsesToolCallTracker } from "../openai-responses-shared-Cvt5MgEm.mjs";
6
- import { t as codeModeToolSurfaceObserver } from "../provider-options-AvldWZt8.mjs";
7
- import { n as reconcileOpenAICompletionsToolChoice, r as reconcileOpenAIResponsesToolChoice, t as projectOpenAITools } from "../openai-tool-projection-CHGLt03m.mjs";
2
+ import { a as codeModeToolSurfaceObserver, o as reasoningTagTextPolicy } from "../simple-options-rdOPzr7Z.mjs";
3
+ import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-BtZiml7r.mjs";
4
+ import { g as convertMessages } from "../openai-completions-stream-DGOvau4J.mjs";
5
+ import { A as isAzureResponsesTextDeltaEvent, D as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, E as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, M as isResponsesTextContentPartType, N as isResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, P as resolveResponsesMessageSnapshotCollapse, T as readResponsesToolCallItemIdentity, d as resolveResponsesTerminalStopReason, j as isAzureResponsesTextDeltaEventType, k as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, l as mapResponsesTerminalUsage, u as readResponsesReasoningTokens, w as createResponsesToolCallTracker } from "../openai-responses-shared-CxgdGBvm.mjs";
6
+ import { _ as cleanSchemaForGemini, a as resolveOpenAIProjectedToolsStrictToolFlag, b as reconcileOpenAIResponsesToolChoice, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, f as stripUnsupportedSchemaKeywords, g as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, h as findLlamacppGbnfSchemaViolations, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as cleanSchemaForLlamacppGbnf, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as projectOpenAITools, y as reconcileOpenAICompletionsToolChoice } from "../openai-tool-schema-CSMh5e9O.mjs";
7
+ import { A as supportsOpenAITemperature, C as isOpenAIGpt54MiniModel, D as resolveOpenAIReasoningEffortForModel, E as normalizeOpenAIReasoningEffort, O as resolveOpenAISupportedReasoningEfforts, S as responsesPromptObserver, T as isOpenAIGpt56Model, k as supportsOpenAIReasoningEffort, w as isOpenAIGpt55Model } from "../openai-responses-compaction-window-DO7yV7az.mjs";
8
+ import { t as mapOpenAIStopReason } from "../openai-stop-reason-Drnn_6Qj.mjs";
8
9
  import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
9
- import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-D88orSJ9.mjs";
10
- import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BXEcr-Tp.mjs";
11
- 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, codeModeToolSurfaceObserver, 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, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
10
+ import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-BfFwac6f.mjs";
11
+ import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BAryVEJM.mjs";
12
+ 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, codeModeToolSurfaceObserver, 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, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,5 +1,4 @@
1
1
  //#region packages/ai/src/internal/retry-after.d.ts
2
2
  /** Parses the three HTTP-date forms accepted for Retry-After without Date.parse normalization. */
3
- declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
4
- //#endregion
5
- export { parseRetryAfterHttpDateMs };
3
+ export declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
4
+ //#endregion
@@ -1,17 +1,18 @@
1
- import { D as Model, O as ModelThinkingLevel, R as ProviderStreamOptions, U as StreamOptions, a as AssistantMessage, d as Context, et as Usage, n as Api, s as AssistantMessageEventStreamContract, z as SimpleStreamOptions } from "../types-DTAP49HF.mjs";
2
- import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-DFxSnFqG.mjs";
1
+ import "../index-CefaUGSS.mjs";
2
+ import { A as ModelThinkingLevel, D as Model, J as StreamOptions, V as ProviderStreamOptions, W as SimpleStreamOptions, a as AssistantMessage, at as Usage, d as Context, n as Api, s as AssistantMessageEventStreamContract } from "../types-Beemor2E.mjs";
3
+ import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-BbUHEKER.mjs";
4
+ import "../types-COdhCX0U.mjs";
3
5
  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";
5
-
6
+ import { C as FirstStreamEventInternalOptions, D as getFirstStreamEventTimeoutHandler, E as createFirstStreamEventTimeoutError, O as getFirstStreamEventTimeoutMs, S as FirstStreamEventAbortController, T as createFirstStreamEventAbortController, g as parseTerminalToolCallArguments, k as withFirstStreamEventTimeout, w as FirstStreamEventTimeoutContext } from "../transport-stream-shared-BbG7PThh.mjs";
6
7
  //#region packages/ai/src/internal/default-runtime.d.ts
7
- declare const defaultApiRegistry: {
8
+ export declare const defaultApiRegistry: {
8
9
  registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
9
10
  getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
10
11
  getApiProviders: () => RegisteredApiProvider[];
11
12
  unregisterApiProviders: (sourceId: string) => void;
12
13
  clearApiProviders: () => void;
13
14
  };
14
- declare const defaultLlmRuntime: {
15
+ export declare const defaultLlmRuntime: {
15
16
  registry: {
16
17
  registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
17
18
  getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
@@ -24,9 +25,9 @@ declare const defaultLlmRuntime: {
24
25
  streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract;
25
26
  completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
26
27
  };
27
- declare const getApiProvider: (api: Api) => RegisteredApiProvider | undefined, getApiProviders: () => RegisteredApiProvider[];
28
- declare function clearApiProviders(): void;
29
- declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract, complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>, streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract, completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
28
+ export declare const getApiProvider: (api: Api) => RegisteredApiProvider | undefined, getApiProviders: () => RegisteredApiProvider[];
29
+ export declare function clearApiProviders(): void;
30
+ export declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract, complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>, streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract, completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
30
31
  //#endregion
31
32
  //#region packages/ai/src/env-api-keys.d.ts
32
33
  /**
@@ -36,39 +37,39 @@ declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, o
36
37
  * credential sources such as AWS profiles, AWS IAM credentials, and Google
37
38
  * Application Default Credentials.
38
39
  */
39
- declare function findEnvKeys(provider: string): string[] | undefined;
40
+ export declare function findEnvKeys(provider: string): string[] | undefined;
40
41
  /**
41
42
  * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.
42
43
  *
43
44
  * Will not return API keys for providers that require OAuth tokens.
44
45
  */
45
- declare function getEnvApiKey(provider: string): string | undefined;
46
+ export declare function getEnvApiKey(provider: string): string | undefined;
46
47
  //#endregion
47
48
  //#region packages/ai/src/model-utils.d.ts
48
49
  /** Calculates and stores model cost fields from token usage and per-million pricing. */
49
- declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
50
+ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
50
51
  /** Replaces the catalog estimate when the provider reports an authoritative billed total. */
51
- declare function applyProviderReportedUsageCost(usage: Usage, reportedCost: unknown): void;
52
+ export declare function applyProviderReportedUsageCost(usage: Usage, reportedCost: unknown): void;
52
53
  /** Returns thinking levels exposed by a reasoning-capable model. */
53
- declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
54
+ export declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
54
55
  /** Clamps a requested thinking level to the closest supported level for a model. */
55
- declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
56
+ export declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
56
57
  /** Compares model identity by provider and id. */
57
- declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
58
+ export declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
58
59
  //#endregion
59
60
  //#region packages/ai/src/session-resources.d.ts
60
61
  /** Cleanup callback for resources tied to an LLM session or all sessions. */
61
- type SessionResourceCleanup = (sessionId?: string) => void;
62
+ export type SessionResourceCleanup = (sessionId?: string) => void;
62
63
  /** Registers a session-resource cleanup hook and returns an unregister function. */
63
- declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
64
+ export declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
64
65
  /** Runs all registered cleanup hooks, aggregating failures after every hook has run. */
65
- declare function cleanupSessionResources(sessionId?: string): void;
66
+ export declare function cleanupSessionResources(sessionId?: string): void;
66
67
  //#endregion
67
68
  //#region packages/ai/src/utils/deferred-event-buffer.d.ts
68
69
  type EventSink<T> = {
69
70
  push(event: T): void;
70
71
  };
71
- declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEvent?: () => void): {
72
+ export declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEvent?: () => void): {
72
73
  push(event: T): void;
73
74
  flush(): void;
74
75
  discard(): void;
@@ -76,11 +77,11 @@ declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEven
76
77
  //#endregion
77
78
  //#region packages/ai/src/utils/hash.d.ts
78
79
  /** Fast deterministic hash to shorten long strings */
79
- declare function shortHash(str: string): string;
80
+ export declare function shortHash(str: string): string;
80
81
  //#endregion
81
82
  //#region packages/ai/src/utils/headers.d.ts
82
83
  /** Converts a Headers object to a plain record for provider request handling. */
83
- declare function headersToRecord(headers: Headers): Record<string, string>;
84
+ export declare function headersToRecord(headers: Headers): Record<string, string>;
84
85
  //#endregion
85
86
  //#region packages/ai/src/utils/json-parse.d.ts
86
87
  /**
@@ -88,8 +89,8 @@ declare function headersToRecord(headers: Headers): Record<string, string>;
88
89
  * - escaping raw control characters inside strings
89
90
  * - doubling backslashes before invalid escape characters
90
91
  */
91
- declare function repairJson(json: string): string;
92
- declare function parseJsonWithRepair(json: string): unknown;
92
+ export declare function repairJson(json: string): string;
93
+ export declare function parseJsonWithRepair(json: string): unknown;
93
94
  /**
94
95
  * Attempts to parse potentially incomplete JSON during streaming.
95
96
  * Always returns a valid object, even if the JSON is incomplete.
@@ -97,26 +98,36 @@ declare function parseJsonWithRepair(json: string): unknown;
97
98
  * @param partialJson The partial JSON string from streaming
98
99
  * @returns Parsed object or empty object if parsing fails
99
100
  */
100
- declare function parseStreamingJson(partialJson: string | undefined): Record<string, unknown>;
101
+ export declare function parseStreamingJson(partialJson: string | undefined): Record<string, unknown>;
102
+ /** Returns true when the streamed argument buffer crossed its next preview checkpoint. */
103
+ export type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
104
+ /**
105
+ * Streamed tool-call arguments are preview-only; the terminal parse re-reads
106
+ * the full buffer authoritatively at content_block_stop. Reparsing every delta
107
+ * scans an ever-growing buffer and makes assembly quadratic in the argument
108
+ * size, so refresh previews on a geometric length schedule instead — bounded
109
+ * staleness, linear total parse work.
110
+ */
111
+ export declare function createToolArgumentPreviewSchedule(): ToolArgumentPreviewSchedule;
101
112
  //#endregion
102
113
  //#region packages/ai/src/utils/llm-request-activity.d.ts
103
- declare function notifyLlmRequestActivity(signal: AbortSignal | undefined): void;
104
- declare function onLlmRequestActivity(signal: AbortSignal, listener: () => void): () => void;
114
+ export declare function notifyLlmRequestActivity(signal: AbortSignal | undefined): void;
115
+ export declare function onLlmRequestActivity(signal: AbortSignal, listener: () => void): () => void;
105
116
  //#endregion
106
117
  //#region packages/ai/src/utils/oauth/openai-chatgpt-jwt.d.ts
107
118
  declare const OPENAI_CODEX_AUTH_CLAIM = "https://api.openai.com/auth";
108
- type OpenAICodexJwtPayload = {
119
+ export type OpenAICodexJwtPayload = {
109
120
  [OPENAI_CODEX_AUTH_CLAIM]?: {
110
121
  chatgpt_account_id?: unknown;
111
122
  };
112
123
  [key: string]: unknown;
113
124
  };
114
- declare function decodeOpenAICodexJwtPayload(token: string): OpenAICodexJwtPayload | null;
115
- declare function resolveOpenAICodexAccountId(token: string): string | null;
125
+ export declare function decodeOpenAICodexJwtPayload(token: string): OpenAICodexJwtPayload | null;
126
+ export declare function resolveOpenAICodexAccountId(token: string): string | null;
116
127
  //#endregion
117
128
  //#region packages/ai/src/utils/overflow.d.ts
118
129
  /** Detects DS4-style raw token-count context overflow errors. */
119
- declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
130
+ export declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
120
131
  declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
121
132
  readonly "assistant-error": RegExp[];
122
133
  readonly "failover-explicit": RegExp[];
@@ -126,9 +137,9 @@ declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
126
137
  readonly "tpm-rate-limit-hint": readonly [RegExp];
127
138
  readonly "rate-limit-hint": readonly [RegExp];
128
139
  };
129
- type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
140
+ export type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
130
141
  /** Match one canonical context-overflow wording scope without applying caller policy. */
131
- declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
142
+ export declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
132
143
  /**
133
144
  * Check if an assistant message represents a context overflow error.
134
145
  *
@@ -180,7 +191,7 @@ declare function matchesContextOverflowMessage(errorMessage: string, scope: Cont
180
191
  * @param contextWindow - Optional context window size for detecting silent overflow (z.ai)
181
192
  * @returns true if the message indicates a context overflow
182
193
  */
183
- declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
194
+ export declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
184
195
  //#endregion
185
196
  //#region packages/markdown-core/src/reasoning-tag-parser.d.ts
186
197
  type ReasoningTagTextDelta = {
@@ -203,7 +214,7 @@ interface ReasoningTagTextPartitioner {
203
214
  isInsideReasoning(): boolean;
204
215
  }
205
216
  /** Creates a block-incremental parser that emits only Markdown-stable text. */
206
- declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
217
+ export declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
207
218
  //#endregion
208
219
  //#region packages/ai/src/utils/streaming-byte-guard.d.ts
209
220
  /**
@@ -218,21 +229,21 @@ declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitione
218
229
  * Internal helper for now. If extensions need it, promote to a plugin-SDK
219
230
  * subpath in a separate, dedicated PR with full SDK metadata sync.
220
231
  */
221
- type SseStreamOverflow = {
232
+ export type SseStreamOverflow = {
222
233
  size: number;
223
234
  maxBytes: number;
224
235
  };
225
- type ReadSseStreamWithLimitOptions = {
236
+ export type ReadSseStreamWithLimitOptions = {
226
237
  maxBytes: number;
227
238
  onOverflow?: (params: SseStreamOverflow) => Error;
228
239
  };
229
- type SseByteGuard = {
240
+ export type SseByteGuard = {
230
241
  read(): Promise<ReadableStreamReadResult<Uint8Array>>;
231
242
  cancel(reason?: unknown): Promise<void>;
232
243
  totalBytes(): number;
233
244
  overflowed(): boolean;
234
245
  cancelled(): boolean;
235
246
  };
236
- declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
247
+ export declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
237
248
  //#endregion
238
- export { ContextOverflowMessageScope, 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, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
249
+ export { FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, parseTerminalToolCallArguments, sanitizeSurrogates, withFirstStreamEventTimeout };
@@ -1,16 +1,16 @@
1
- import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-DrgeBuva.mjs";
2
1
  import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
3
- import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-BP7HLLZn.mjs";
4
- import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
2
+ import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-S6binQG-.mjs";
3
+ import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-bktO00EJ.mjs";
4
+ import { C as headersToRecord, m as parseTerminalToolCallArguments } from "../transport-stream-shared-D8nQWCUo.mjs";
5
5
  import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
6
- import { n as parseStreamingJson, r as repairJson, t as parseJsonWithRepair } from "../json-parse-CDnesDM_.mjs";
6
+ import { i as repairJson, n as parseJsonWithRepair, r as parseStreamingJson, t as createToolArgumentPreviewSchedule } from "../json-parse-BuAJEbdW.mjs";
7
7
  import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
8
8
  import { t as shortHash } from "../hash-CHgqbJmD.mjs";
9
- import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-MK28puvq.mjs";
10
- import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-5ygO2rZc.mjs";
9
+ import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-DcNjoFQE.mjs";
10
+ import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-BsUX44Tq.mjs";
11
+ import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
11
12
  import { n as registerSessionResourceCleanup, t as cleanupSessionResources } from "../session-resources-CkR4WWy1.mjs";
12
13
  import { n as resolveOpenAICodexAccountId, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-KWcgd0d_.mjs";
13
- import { t as createSseByteGuard } from "../streaming-byte-guard-BrbkbwUu.mjs";
14
14
  //#region packages/ai/src/internal/default-runtime.ts
15
15
  const DEFAULT_RUNTIME_KEY = Symbol.for("openclaw.ai.defaultRuntime");
16
16
  function resolveDefaultRuntime() {
@@ -88,7 +88,7 @@ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
88
88
  /exceed context limit/i,
89
89
  /exceeds the model'?s maximum context/i,
90
90
  /max_tokens[\s\S]*exceed[\s\S]*context/i,
91
- /input length[\s\S]*exceed[\s\S]*context/i,
91
+ /input(?: length[\s\S]*exceed[\s\S]*context| \([\d,]+\s*tokens?\) is longer than (?:the )?model'?s context length)/i,
92
92
  /413[\s\S]*too large/i,
93
93
  /context_window_exceeded/i,
94
94
  /input length [\d,]+\s+tokens? exceeds the model limit/i,
@@ -198,4 +198,4 @@ function isContextOverflow(message, contextWindow) {
198
198
  return false;
199
199
  }
200
200
  //#endregion
201
- export { 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, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
201
+ export { applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, createToolArgumentPreviewSchedule, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, parseTerminalToolCallArguments, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };