@openclaw/ai 2026.9.5 → 2026.9.7
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.
- package/dist/{anthropic-COtDvgtt.mjs → anthropic-Cw2pgccz.mjs} +59 -88
- package/dist/{anthropic-payload-policy-5Erq1Nzy.d.mts → anthropic-payload-policy-NIPVYXPq.d.mts} +8 -6
- package/dist/{anthropic-stream-reducer-BvdYYWL8.mjs → anthropic-stream-reducer-D9MCkl8Z.mjs} +194 -247
- package/dist/{api-registry-Ba2Cv-ut.d.mts → api-registry-D-nbmSqr.d.mts} +2 -2
- package/dist/{azure-openai-responses-YrgnD583.mjs → azure-openai-responses-BwT3-X8P.mjs} +22 -33
- package/dist/{base64-BQOzsvUH.mjs → base64-C1PsYcRQ.mjs} +22 -16
- package/dist/{diagnostics-Dm4bisWG.mjs → diagnostics-CJaB6g8J.mjs} +55 -10
- package/dist/{diagnostics-CPeq9F7y.mjs → diagnostics-DzrF1h4J.mjs} +18 -1
- package/dist/diagnostics.d.mts +11 -5
- package/dist/diagnostics.mjs +4 -4
- package/dist/{env-api-keys-bktO00EJ.mjs → env-api-keys-CyX4VKGO.mjs} +7 -5
- package/dist/event-stream-CMQfX_yr.d.mts +1 -0
- package/dist/{event-stream-CCoa-qSI.d.mts → event-stream-DOPFYVqs.d.mts} +2 -2
- package/dist/{event-stream-D8PARQfL.mjs → event-stream-vd9UnCAU.mjs} +10 -0
- package/dist/event-stream.d.mts +2 -2
- package/dist/event-stream.mjs +1 -1
- package/dist/{google-BuhpRO9r.mjs → google-BfapkS_K.mjs} +8 -11
- package/dist/google-interactions-DW3iXzjc.mjs +574 -0
- package/dist/{google-messages-CyWnYlh0.mjs → google-messages-CtjVtVot.mjs} +35 -71
- package/dist/{google-shared-BT5ZeNer.mjs → google-shared-Y2YfotEu.mjs} +43 -47
- package/dist/{google-vertex-C7EplRvt.mjs → google-vertex-Dov4kBWu.mjs} +16 -30
- package/dist/{host-B4MeUNBc.mjs → host-CHi3X87F.mjs} +64 -189
- package/dist/{host-policy-DUnXSx0I.mjs → host-policy-BOAwRg_M.mjs} +2 -14
- package/dist/{host-FZ1RA_qD.d.mts → host-rxlNaBwm.d.mts} +9 -3
- package/dist/{index-DaF2QbwS.d.mts → index-D6KsSE74.d.mts} +57 -9
- package/dist/index.d.mts +7 -7
- package/dist/index.mjs +7 -7
- package/dist/internal/anthropic.d.mts +13 -8
- package/dist/internal/anthropic.mjs +5 -5
- package/dist/internal/openai-completions-compat.d.mts +1 -1
- package/dist/internal/openai-completions-compat.mjs +1 -1
- package/dist/internal/openai-responses-payload-policy.d.mts +1 -1
- package/dist/internal/openai-responses-payload-policy.mjs +2 -2
- package/dist/internal/openai.d.mts +46 -9
- package/dist/internal/openai.mjs +13 -12
- package/dist/internal/runtime.d.mts +31 -70
- package/dist/internal/runtime.mjs +11 -66
- package/dist/internal/shared.d.mts +16 -13
- package/dist/internal/shared.mjs +6 -5
- package/dist/internal/tool-schema.d.mts +2 -2
- package/dist/internal/tool-schema.mjs +2 -2
- package/dist/{mistral-moA-mbwl.mjs → mistral-RS6mboC-.mjs} +46 -93
- package/dist/{model-transport-url-DKocrEsb.d.mts → model-transport-url-C5f59L3Y.d.mts} +1 -1
- package/dist/{openai-chatgpt-responses-DWID3EFO.mjs → openai-chatgpt-responses-CYbidtrn.mjs} +118 -99
- package/dist/{openai-completions-DJ1Vm-CD.mjs → openai-completions-D14ihPYk.mjs} +14 -12
- package/dist/{openai-completions-compat-CkwdxTZx.mjs → openai-completions-compat-BOVWBZDn.mjs} +3 -5
- package/dist/{openai-completions-compat-JE7gqxb9.d.mts → openai-completions-compat-qJjmqQ71.d.mts} +3 -3
- package/dist/{openai-completions-stream-Bu98b0Hv.mjs → openai-completions-stream-CDCuw3DP.mjs} +124 -183
- package/dist/{openai-prompt-cache-CJ_xEevu.d.mts → openai-prompt-cache-CouErLh7.d.mts} +2 -2
- package/dist/{openai-prompt-cache-1wfaIszn.mjs → openai-prompt-cache-D2V7MqR7.mjs} +1 -1
- package/dist/{openai-provider-client-DPo0Hmak.mjs → openai-provider-client-CwfsGBbA.mjs} +2 -2
- package/dist/{openai-reasoning-effort-NlFZmfEu.mjs → openai-reasoning-effort-ConhwkeX.mjs} +14 -5
- package/dist/{openai-responses-BejZzQCP.mjs → openai-responses-CKCBEc2W.mjs} +12 -11
- package/dist/openai-responses-compaction-replay-DiYn-gFM.d.mts +12 -0
- package/dist/{openai-responses-compaction-window-D6P5oZP5.mjs → openai-responses-compaction-window-UNK1GDpy.mjs} +5 -5
- package/dist/{openai-responses-contracts-DWrfMODE.mjs → openai-responses-contracts-CLxnqS9p.mjs} +1 -1
- package/dist/{openai-responses-contracts-Dflvrfa8.d.mts → openai-responses-contracts-D1iZ0njF.d.mts} +4 -4
- package/dist/{openai-responses-prompt-observer-internal-C15_-OwV.mjs → openai-responses-prompt-observer-internal-iAqLb4tk.mjs} +16 -13
- package/dist/openai-responses-request-lifecycle-Fsag-IGZ.mjs +36 -0
- package/dist/{openai-responses-shared-CwsziD_m.mjs → openai-responses-shared-DL4ulQn7.mjs} +838 -577
- package/dist/{openai-responses-terminal-usage-Dl3J6zrf.d.mts → openai-responses-terminal-usage-BE7lf7nW.d.mts} +2 -2
- package/dist/{openai-stop-reason-Drnn_6Qj.mjs → openai-stop-reason-8s70vDXj.mjs} +2 -12
- package/dist/{openai-tool-schema-ynZBgqW-.d.mts → openai-tool-schema-a5ysBBga.d.mts} +0 -6
- package/dist/{openai-tool-schema-BO8rwyAD.mjs → openai-tool-schema-vsl-cE-n.mjs} +365 -429
- package/dist/{openai-transport-params-DQeuAvBl.mjs → openai-transport-params-BwlpzX-2.mjs} +61 -106
- package/dist/{positive-integer-DtjCkbue.mjs → positive-integer-CjN5OJbH.mjs} +1 -1
- package/dist/{provider-error-DDqw9Qda.mjs → provider-error-CwT_j2v0.mjs} +82 -10
- package/dist/{provider-error-CzNw4BWX.d.mts → provider-error-xumb1V3F.d.mts} +3 -1
- package/dist/{provider-options-DprLsWh9.d.mts → provider-options-Df7ov0K1.d.mts} +6 -4
- package/dist/{provider-replay-context-CnUSOwhr.mjs → provider-replay-context-DsyI5jOP.mjs} +1 -1
- package/dist/{provider-transcript-transform-BsRAhuWJ.mjs → provider-transcript-transform-JbFbHV8h.mjs} +17 -2
- package/dist/{provider-transport-turn-state-CkGToCD2.mjs → provider-transport-turn-state-BheUi_hl.mjs} +1 -1
- package/dist/{provider-types-CAKRC7N5.d.mts → provider-types-d4XnoZMd.d.mts} +3 -3
- package/dist/provider-types.d.mts +6 -6
- package/dist/providers.d.mts +2 -2
- package/dist/providers.mjs +15 -11
- package/dist/{reasoning-tag-text-partitioner-Dy9IO8Dc.mjs → reasoning-tag-text-partitioner-B6FIIBt6.mjs} +193 -98
- package/dist/{record-coerce-DwRYMj3t.mjs → record-coerce-CNDovvft.mjs} +1 -1
- package/dist/simple-options-CGAkCwtM.mjs +349 -0
- package/dist/{src-DeKjbE8I.mjs → src-H4aXcFuX.mjs} +53 -26
- package/dist/{stream-CREqxHgU.mjs → stream-DDsCBgd-.mjs} +1 -7
- package/dist/{stream-first-event-timeout-C9ZadkJW.mjs → stream-first-event-timeout-B9o0S4SZ.mjs} +1 -1
- package/dist/{tool-schema-json-projection-CD9c_fK8.mjs → tool-schema-json-projection-Ct8SeBeJ.mjs} +63 -23
- package/dist/{transport-stream-shared-D-6FQSHm.mjs → transport-stream-shared-Dh5qKJ8e.mjs} +63 -37
- package/dist/{transport-stream-shared-BbUkFaHi.d.mts → transport-stream-shared-yYhXa4kX.d.mts} +13 -7
- package/dist/{transport-utils-1cyq5Y7x.mjs → transport-utils-C-4bf2Ok.mjs} +3 -4
- package/dist/transports.d.mts +37 -33
- package/dist/transports.mjs +208 -239
- package/dist/types-CB-_vNyI.d.mts +1 -0
- package/dist/{types-4_uVs5WH.d.mts → types-CLLR3eB4.d.mts} +5 -1
- package/dist/types.d.mts +6 -6
- package/dist/types.mjs +5 -5
- package/dist/{validation-Dw7cb6BV.mjs → validation-BFZc40Ig.mjs} +80 -54
- package/dist/{validation-Ctzu2DhF.d.mts → validation-Cat2wQsc.d.mts} +1 -1
- package/dist/validation.d.mts +1 -1
- package/dist/validation.mjs +1 -1
- package/package.json +6 -6
- package/dist/assistant-output-BsEkB-vU.mjs +0 -16
- package/dist/event-stream-DmSCpi1T.d.mts +0 -1
- package/dist/simple-options-C6cFWj_f.mjs +0 -175
- package/dist/types-DkJfb4W3.d.mts +0 -1
- package/dist/utf16-slice-CvGodqok.mjs +0 -29
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { n as streamAnthropic, r as streamSimpleAnthropic } from "../anthropic-
|
|
5
|
-
export {
|
|
1
|
+
import { S as supportsClaudeAdaptiveThinking, T as supportsClaudeNativeXhighEffort, _ as resolveClaudeOpus55ModelIdentity, b as resolveClaudeSonnet5ModelIdentity, d as requiresClaudeDefaultSampling, f as requiresClaudeMandatoryAdaptiveThinking, g as resolveClaudeNativeThinkingLevelMap, h as resolveClaudeMythos5ModelIdentity, l as bindsClaudeThinkingPrefix, m as resolveClaudeModelIdentity, p as resolveClaudeFable5ModelIdentity, u as requiresClaudeBetweenToolsThinking, v as resolveClaudeOpus5ModelIdentity, w as supportsClaudeNativeMaxEffort, y as resolveClaudeSonnet55ModelIdentity } from "../src-H4aXcFuX.mjs";
|
|
2
|
+
import { _ as requiresClaudeAdaptiveThinking, b as usesClaudeFable5MessagesContract, d as ANTHROPIC_CLAUDE_CODE_VERSION, f as applyClaudeRequestContract, g as prepareClaudeNoPrefillRequestContext, h as mapAnthropicStopReason, m as defaultsClaudeAdaptiveThinking, p as buildAnthropicClaudeCodeIdentity, v as resolveAnthropicThinkingEffort, x as usesClaudeStreamingRefusalContract, y as resolveModelBoundThinkingReplayMode } from "../host-CHi3X87F.mjs";
|
|
3
|
+
import { B as ANTHROPIC_SERVER_SIDE_FALLBACKS, C as applyAnthropicThinkingBindingControls, E as readAnthropicInputTransformations, G as resolveAnthropicFallbackServingModelCost, H as CLAUDE_OPUS_FALLBACK_MODEL_COST, J as usesFoundryBearerAuth, K as isAnthropicOAuthApiKey, S as ANTHROPIC_OMITTED_REASONING_TEXT, T as logAnthropicThinkingDrops, U as applyAnthropicFallbackBoundary, V as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, W as readAnthropicFallbackBoundary, _ as normalizeAnthropicToolChoice, a as readAnthropicPromptUsageSnapshot, b as resolveOriginalAnthropicToolName, c as applyAnthropicRefusal, g as normalizeAnthropicToolCallId, i as readAnthropicCacheWriteUsage, n as applyAnthropicMessageDeltaUsage, o as readAnthropicUsageTokenCount, q as omitFoundryBearerCredentialHeaders, r as applyAnthropicMessageStartUsage, s as readLastAnthropicIterationUsage, v as projectAnthropicTools, w as findActiveAnthropicToolTurnAssistantIndex, x as toClaudeCodeToolName, y as reconcileAnthropicToolChoice, z as resolveAnthropicServerCompactionPlan } from "../anthropic-stream-reducer-D9MCkl8Z.mjs";
|
|
4
|
+
import { n as streamAnthropic, r as streamSimpleAnthropic } from "../anthropic-Cw2pgccz.mjs";
|
|
5
|
+
export { ANTHROPIC_CLAUDE_CODE_VERSION, ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicMessageDeltaUsage, applyAnthropicMessageStartUsage, applyAnthropicRefusal, applyAnthropicThinkingBindingControls, applyClaudeRequestContract, bindsClaudeThinkingPrefix, buildAnthropicClaudeCodeIdentity, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, isAnthropicOAuthApiKey, logAnthropicThinkingDrops, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicInputTransformations, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeBetweenToolsThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicServerCompactionPlan, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus55ModelIdentity, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet55ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as resolveOpenAICompletionsCompat } from "../openai-completions-compat-
|
|
1
|
+
import { a as resolveOpenAICompletionsCompat } from "../openai-completions-compat-qJjmqQ71.mjs";
|
|
2
2
|
export { resolveOpenAICompletionsCompat };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as resolveOpenAICompletionsCompat } from "../openai-completions-compat-
|
|
1
|
+
import { i as resolveOpenAICompletionsCompat } from "../openai-completions-compat-BOVWBZDn.mjs";
|
|
2
2
|
export { resolveOpenAICompletionsCompat };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as readOpenAIResponsesCompactionWindow, s as OpenAIResponsesCompactionOutput, t as OPENAI_RESPONSES_APIS } from "../openai-responses-contracts-
|
|
1
|
+
import { c as readOpenAIResponsesCompactionWindow, s as OpenAIResponsesCompactionOutput, t as OPENAI_RESPONSES_APIS } from "../openai-responses-contracts-D1iZ0njF.mjs";
|
|
2
2
|
import { i as resolveOpenAIResponsesServerCompactionPlan, r as resolveOpenAIResponsesPayloadPolicy } from "../openai-responses-payload-policy-C7GsA1y0.mjs";
|
|
3
3
|
export { OPENAI_RESPONSES_APIS, type OpenAIResponsesCompactionOutput, readOpenAIResponsesCompactionWindow, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as OPENAI_RESPONSES_APIS } from "../openai-responses-contracts-
|
|
2
|
-
import { c as resolveOpenAIResponsesServerCompactionPlan, r as readOpenAIResponsesCompactionWindow, s as resolveOpenAIResponsesPayloadPolicy } from "../openai-responses-compaction-window-
|
|
1
|
+
import { i as OPENAI_RESPONSES_APIS } from "../openai-responses-contracts-CLxnqS9p.mjs";
|
|
2
|
+
import { c as resolveOpenAIResponsesServerCompactionPlan, r as readOpenAIResponsesCompactionWindow, s as resolveOpenAIResponsesPayloadPolicy } from "../openai-responses-compaction-window-UNK1GDpy.mjs";
|
|
3
3
|
export { OPENAI_RESPONSES_APIS, readOpenAIResponsesCompactionWindow, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import "../index-D6KsSE74.mjs";
|
|
2
|
+
import { G as SimpleStreamOptions, J as StreamFunction, K as StopReason, O as Model, d as Context } from "../types-CLLR3eB4.mjs";
|
|
3
|
+
import { C as supportsOpenAITemperature, S as supportsOpenAIReasoningEffort, _ as normalizeOpenAIReasoningEffort, a as BaseOpenAIStreamOptions, b as resolveOpenAIReasoningEffortMapping, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, g as isOpenAIGpt6Model, h as isOpenAIGpt56Model, l as codeModeToolSurfaceObserver, m as isOpenAIGpt55Model, o as CodeModeToolSurfaceObservation, p as isOpenAIGpt54MiniModel, s as OpenAICompletionsOptions, u as reasoningTagTextPolicy, v as resolveOpenAIModelReasoningEfforts, x as resolveOpenAISupportedReasoningEfforts, y as resolveOpenAIReasoningEffortForModel } from "../provider-options-Df7ov0K1.mjs";
|
|
3
4
|
import { a as reconcileOpenAIResponsesToolChoice, i as reconcileOpenAICompletionsToolChoice, n as OpenAIToolProjection, r as projectOpenAITools, t as OpenAICompletionsToolChoice } from "../openai-tool-projection-793cE3QX.mjs";
|
|
4
|
-
import "../types-
|
|
5
|
-
import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-
|
|
6
|
-
import { a as ResponsesPromptObservation, l as OpenAIRequestReasoningEffort, o as responsesPromptObserver } from "../openai-responses-contracts-
|
|
7
|
-
import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-
|
|
8
|
-
import { a as resolveResponsesTerminalStopReason, i as readResponsesReasoningTokens, n as isResponsesOutputLimitToolCallError, r as mapResponsesTerminalUsage, t as ResponsesTerminalUsagePayload } from "../openai-responses-terminal-usage-
|
|
9
|
-
import
|
|
5
|
+
import "../types-CB-_vNyI.mjs";
|
|
6
|
+
import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-qJjmqQ71.mjs";
|
|
7
|
+
import { a as ResponsesPromptObservation, l as OpenAIRequestReasoningEffort, o as responsesPromptObserver } from "../openai-responses-contracts-D1iZ0njF.mjs";
|
|
8
|
+
import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-CouErLh7.mjs";
|
|
9
|
+
import { a as resolveResponsesTerminalStopReason, i as readResponsesReasoningTokens, n as isResponsesOutputLimitToolCallError, r as mapResponsesTerminalUsage, t as ResponsesTerminalUsagePayload } from "../openai-responses-terminal-usage-BE7lf7nW.mjs";
|
|
10
|
+
import "../openai-responses-compaction-replay-DiYn-gFM.mjs";
|
|
11
|
+
import { ResponseCreateParamsStreaming, ResponseInputItem } from "openai/resources/responses/responses.js";
|
|
10
12
|
import { ChatCompletionMessageParam } from "openai/resources/chat/completions.js";
|
|
11
13
|
//#region packages/ai/src/providers/azure-deployment-map.d.ts
|
|
12
14
|
/** Parses AZURE_OPENAI_DEPLOYMENT_MAP-style model=deployment entries. */
|
|
@@ -121,4 +123,39 @@ export declare function mapOpenAIStopReason(reason: string | null, options?: {
|
|
|
121
123
|
allowSingularToolCall?: boolean;
|
|
122
124
|
}): OpenAIStopReasonResult;
|
|
123
125
|
//#endregion
|
|
124
|
-
|
|
126
|
+
//#region packages/ai/src/transports/openai-responses-request-lifecycle.d.ts
|
|
127
|
+
/** Host-owned authority for a single explicitly acknowledged Responses request. */
|
|
128
|
+
type ResponsesRequestLifecycle = {
|
|
129
|
+
beforeDispatch(signal?: AbortSignal): Promise<void>;
|
|
130
|
+
assertCurrent(): void;
|
|
131
|
+
accepted(responseId: string, signal?: AbortSignal): Promise<void>;
|
|
132
|
+
settle(): Promise<void>;
|
|
133
|
+
};
|
|
134
|
+
/** Private transport carrier: serialized options cannot mint host authority. */
|
|
135
|
+
export declare const responsesRequestLifecycle: {
|
|
136
|
+
set(options: object, lifecycle: ResponsesRequestLifecycle): void;
|
|
137
|
+
get(options: object | undefined): ResponsesRequestLifecycle | undefined;
|
|
138
|
+
};
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region packages/ai/src/transports/openai-responses-replay-messages-internal.d.ts
|
|
141
|
+
/** Source identity survives payload spreads but never enters serialized provider input. */
|
|
142
|
+
export declare function bindResponsesInputMessage(source: Extract<Context["messages"][number], {
|
|
143
|
+
role: "user";
|
|
144
|
+
}>): (input: unknown) => boolean;
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region packages/ai/src/transports/model-request-body.d.ts
|
|
147
|
+
type EncodedModelRequestBody = {
|
|
148
|
+
body: Uint8Array<ArrayBuffer>;
|
|
149
|
+
stream: boolean;
|
|
150
|
+
};
|
|
151
|
+
type ModelRequestBodyState = {
|
|
152
|
+
enabled?: boolean;
|
|
153
|
+
encode?: (payload: unknown) => Promise<EncodedModelRequestBody>;
|
|
154
|
+
onBytes?: (bytes: number) => void;
|
|
155
|
+
};
|
|
156
|
+
/** Call-local state survives option spreads; no payload is cached across requests. */
|
|
157
|
+
export declare function modelRequestBodyState(options: object, inheritFrom?: object): ModelRequestBodyState;
|
|
158
|
+
export declare function serializeModelRequestBody(payload: unknown): EncodedModelRequestBody;
|
|
159
|
+
export declare function encodedModelRequestBodyStream(body: unknown): boolean | undefined;
|
|
160
|
+
//#endregion
|
|
161
|
+
export { type CodeModeToolSurfaceObservation, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, type OpenAICompletionsToolChoice, OpenAIReasoningEffort, type OpenAIToolProjection, type ResponsesPromptObservation, ResponsesTerminalUsagePayload, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isOpenAIGpt6Model, isResponsesOutputLimitToolCallError, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, projectOpenAITools, readResponsesReasoningTokens, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveOpenAIModelReasoningEfforts, resolveOpenAIPromptCacheParams, resolveOpenAIReasoningEffortForModel, resolveOpenAIReasoningEffortMapping, resolveOpenAISupportedReasoningEfforts, resolveResponsesTerminalStopReason, responsesPromptObserver, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
package/dist/internal/openai.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-
|
|
3
|
-
import {
|
|
4
|
-
import { a as codeModeToolSurfaceObserver, o as reasoningTagTextPolicy } from "../simple-options-
|
|
5
|
-
import { f as projectOpenAITools, m as reconcileOpenAIResponsesToolChoice, p as reconcileOpenAICompletionsToolChoice } from "../openai-transport-params-
|
|
6
|
-
import { a as convertMessages } from "../openai-completions-stream-
|
|
7
|
-
import { h as responsesPromptObserver } from "../openai-responses-contracts-
|
|
8
|
-
import { t as mapOpenAIStopReason } from "../openai-stop-reason-
|
|
9
|
-
import {
|
|
1
|
+
import { a as normalizeOpenAIReasoningEffort, c as resolveOpenAIReasoningEffortMapping, d as supportsOpenAITemperature, i as isOpenAIGpt6Model, l as resolveOpenAISupportedReasoningEfforts, n as isOpenAIGpt55Model, o as resolveOpenAIModelReasoningEfforts, r as isOpenAIGpt56Model, s as resolveOpenAIReasoningEffortForModel, t as isOpenAIGpt54MiniModel, u as supportsOpenAIReasoningEffort } from "../openai-reasoning-effort-ConhwkeX.mjs";
|
|
2
|
+
import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-D2V7MqR7.mjs";
|
|
3
|
+
import { g as resolveResponsesTerminalStopReason, h as readResponsesReasoningTokens, m as mapResponsesTerminalUsage, p as isResponsesOutputLimitToolCallError } from "../diagnostics-CJaB6g8J.mjs";
|
|
4
|
+
import { a as encodedModelRequestBodyStream, c as serializeModelRequestBody, l as codeModeToolSurfaceObserver, o as modelRequestBodyState, u as reasoningTagTextPolicy } from "../simple-options-CGAkCwtM.mjs";
|
|
5
|
+
import { f as projectOpenAITools, m as reconcileOpenAIResponsesToolChoice, p as reconcileOpenAICompletionsToolChoice } from "../openai-transport-params-BwlpzX-2.mjs";
|
|
6
|
+
import { a as convertMessages } from "../openai-completions-stream-CDCuw3DP.mjs";
|
|
7
|
+
import { h as responsesPromptObserver } from "../openai-responses-contracts-CLxnqS9p.mjs";
|
|
8
|
+
import { t as mapOpenAIStopReason } from "../openai-stop-reason-8s70vDXj.mjs";
|
|
9
|
+
import { M as bindResponsesInputMessage, _ as isResponsesTextContentPartType, d as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, f as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, g as isAzureResponsesTextDeltaEventType, h as isAzureResponsesTextDeltaEvent, l as createResponsesToolCallTracker, m as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, p as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, u as readResponsesToolCallItemIdentity, v as isResponsesTextDeltaEventType, y as resolveResponsesMessageSnapshotCollapse } from "../openai-responses-shared-DL4ulQn7.mjs";
|
|
10
10
|
import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
|
|
11
|
-
import {
|
|
12
|
-
import { n as
|
|
13
|
-
|
|
11
|
+
import { t as responsesRequestLifecycle } from "../openai-responses-request-lifecycle-Fsag-IGZ.mjs";
|
|
12
|
+
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-D14ihPYk.mjs";
|
|
13
|
+
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-CKCBEc2W.mjs";
|
|
14
|
+
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, bindResponsesInputMessage, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, encodedModelRequestBodyStream, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isOpenAIGpt6Model, isResponsesOutputLimitToolCallError, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, modelRequestBodyState, normalizeOpenAIReasoningEffort, parseAzureDeploymentNameMap, projectOpenAITools, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIModelReasoningEfforts, resolveOpenAIPromptCacheParams, resolveOpenAIReasoningEffortForModel, resolveOpenAIReasoningEffortMapping, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, responsesPromptObserver, responsesRequestLifecycle, serializeModelRequestBody, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "../index-
|
|
2
|
-
import { G as SimpleStreamOptions, H as ProviderStreamOptions, O as Model, Y as StreamOptions, a as AssistantMessage, d as Context, j as ModelThinkingLevel, n as Api, ot as Usage, s as AssistantMessageEventStreamContract } from "../types-
|
|
3
|
-
import { i as getEventStreamCompletion } from "../event-stream-
|
|
4
|
-
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-
|
|
5
|
-
import "../types-
|
|
1
|
+
import "../index-D6KsSE74.mjs";
|
|
2
|
+
import { G as SimpleStreamOptions, H as ProviderStreamOptions, O as Model, Y as StreamOptions, a as AssistantMessage, d as Context, j as ModelThinkingLevel, n as Api, ot as Usage, s as AssistantMessageEventStreamContract } from "../types-CLLR3eB4.mjs";
|
|
3
|
+
import { i as getEventStreamCompletion } from "../event-stream-DOPFYVqs.mjs";
|
|
4
|
+
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-D-nbmSqr.mjs";
|
|
5
|
+
import "../types-CB-_vNyI.mjs";
|
|
6
6
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
7
|
-
import {
|
|
7
|
+
import { v as parseTerminalToolCallArguments } from "../transport-stream-shared-yYhXa4kX.mjs";
|
|
8
8
|
//#region packages/ai/src/internal/default-runtime.d.ts
|
|
9
9
|
export declare const defaultApiRegistry: {
|
|
10
10
|
registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
|
|
@@ -26,9 +26,27 @@ export declare const defaultLlmRuntime: {
|
|
|
26
26
|
streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract;
|
|
27
27
|
completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
declare const { getApiProvider, getApiProviders }: {
|
|
30
|
+
registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
|
|
31
|
+
getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
|
|
32
|
+
getApiProviders: () => RegisteredApiProvider[];
|
|
33
|
+
unregisterApiProviders: (sourceId: string) => void;
|
|
34
|
+
clearApiProviders: () => void;
|
|
35
|
+
};
|
|
30
36
|
export declare function clearApiProviders(): void;
|
|
31
|
-
|
|
37
|
+
declare const { stream, complete, streamSimple, completeSimple }: {
|
|
38
|
+
registry: {
|
|
39
|
+
registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
|
|
40
|
+
getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
|
|
41
|
+
getApiProviders: () => RegisteredApiProvider[];
|
|
42
|
+
unregisterApiProviders: (sourceId: string) => void;
|
|
43
|
+
clearApiProviders: () => void;
|
|
44
|
+
};
|
|
45
|
+
stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract;
|
|
46
|
+
complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>;
|
|
47
|
+
streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract;
|
|
48
|
+
completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
|
|
49
|
+
};
|
|
32
50
|
//#endregion
|
|
33
51
|
//#region packages/ai/src/env-api-keys.d.ts
|
|
34
52
|
/**
|
|
@@ -147,55 +165,9 @@ export type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_
|
|
|
147
165
|
/** Match one canonical context-overflow wording scope without applying caller policy. */
|
|
148
166
|
export declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
|
|
149
167
|
/**
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* 1. Error-based overflow: Most providers return stopReason "error" with a
|
|
154
|
-
* specific error message pattern.
|
|
155
|
-
* 2. Silent overflow: Some providers accept overflow requests and return
|
|
156
|
-
* successfully. For these, we check if usage.input exceeds the context window.
|
|
157
|
-
*
|
|
158
|
-
* ## Reliability by Provider
|
|
159
|
-
*
|
|
160
|
-
* **Reliable detection (returns error with detectable message):**
|
|
161
|
-
* - Anthropic: "prompt is too long: X tokens > Y maximum" or "request_too_large"
|
|
162
|
-
* - OpenAI (Completions & Responses): "exceeds the context window" or "exceeds the model's maximum context length of X tokens"
|
|
163
|
-
* - Google Gemini: "input token count exceeds the maximum"
|
|
164
|
-
* - xAI (Grok): "maximum prompt length is X but request contains Y"
|
|
165
|
-
* - Groq: "reduce the length of the messages"
|
|
166
|
-
* - Cerebras: 413 status code (no body)
|
|
167
|
-
* - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
|
|
168
|
-
* - OpenRouter (all backends): "maximum context length is X tokens"
|
|
169
|
-
* - Together AI: "The input (X tokens) is longer than the model's context length (Y tokens)."
|
|
170
|
-
* - llama.cpp: "exceeds the available context size"
|
|
171
|
-
* - LM Studio: "greater than the context length"
|
|
172
|
-
* - Kimi For Coding: "exceeded model token limit: X (requested: Y)"
|
|
173
|
-
* - z.ai: "tokens in request more than max tokens allowed" or "Prompt exceeds max length"
|
|
174
|
-
*
|
|
175
|
-
* **Unreliable detection:**
|
|
176
|
-
* - z.ai: Sometimes accepts overflow silently (detectable via usage.input > contextWindow),
|
|
177
|
-
* sometimes returns rate limit errors instead of the explicit overflow error above. Pass
|
|
178
|
-
* contextWindow param to detect silent overflow.
|
|
179
|
-
* - Xiaomi MiMo: Truncates input to fit contextWindow then returns stopReason "length" with
|
|
180
|
-
* output=0. Pass contextWindow param to detect via the "filled context + zero output" signal.
|
|
181
|
-
* - Ollama: May truncate input silently for some setups, but may also return explicit
|
|
182
|
-
* overflow errors that match the patterns above. Silent truncation still cannot be
|
|
183
|
-
* detected here because we do not know the expected token count.
|
|
184
|
-
*
|
|
185
|
-
* ## Custom Providers
|
|
186
|
-
*
|
|
187
|
-
* If you've added custom models via settings.json, this function may not detect
|
|
188
|
-
* overflow errors from those providers. To add support:
|
|
189
|
-
*
|
|
190
|
-
* 1. Send a request that exceeds the model's context window
|
|
191
|
-
* 2. Check the errorMessage in the response
|
|
192
|
-
* 3. Create a regex pattern that matches the error
|
|
193
|
-
* 4. The pattern should be added to the appropriate canonical scope in this file, or
|
|
194
|
-
* check the errorMessage yourself before calling this function
|
|
195
|
-
*
|
|
196
|
-
* @param message - The assistant message to check
|
|
197
|
-
* @param contextWindow - Optional context window size for detecting silent overflow (z.ai)
|
|
198
|
-
* @returns true if the message indicates a context overflow
|
|
168
|
+
* Match provider overflow errors, or infer overflow from reported context usage.
|
|
169
|
+
* A context window enables silent-overflow detection; silent truncation without
|
|
170
|
+
* a length stop remains undetectable because the original token count is unknown.
|
|
199
171
|
*/
|
|
200
172
|
export declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
|
|
201
173
|
//#endregion
|
|
@@ -251,18 +223,7 @@ export declare function createFirstStreamEventAbortController(parentSignal?: Abo
|
|
|
251
223
|
export declare function withFirstStreamEventTimeout<T>(stream: AsyncIterable<T>, context: FirstStreamEventTimeoutContext): AsyncIterable<T>;
|
|
252
224
|
//#endregion
|
|
253
225
|
//#region packages/ai/src/utils/streaming-byte-guard.d.ts
|
|
254
|
-
/**
|
|
255
|
-
* Bounded SSE / NDJSON stream reader guard.
|
|
256
|
-
*
|
|
257
|
-
* Wraps a `ReadableStreamDefaultReader<Uint8Array>` so the caller's existing
|
|
258
|
-
* chunk-by-chunk parsing logic is unchanged, but accumulated bytes are tracked
|
|
259
|
-
* against a hard cap. On overflow the underlying reader is cancelled and a
|
|
260
|
-
* canonical error is thrown. Mirrors the `readResponseWithLimit` / bounded
|
|
261
|
-
* JSON response pattern (see `src/agents/provider-http-errors.ts`).
|
|
262
|
-
*
|
|
263
|
-
* Internal helper for now. If extensions need it, promote to a plugin-SDK
|
|
264
|
-
* subpath in a separate, dedicated PR with full SDK metadata sync.
|
|
265
|
-
*/
|
|
226
|
+
/** Bounds cumulative stream bytes without waiting for reader cleanup after overflow. */
|
|
266
227
|
export type SseStreamOverflow = {
|
|
267
228
|
size: number;
|
|
268
229
|
maxBytes: number;
|
|
@@ -280,4 +241,4 @@ export type SseByteGuard = {
|
|
|
280
241
|
};
|
|
281
242
|
export declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
|
|
282
243
|
//#endregion
|
|
283
|
-
export { type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, getEventStreamCompletion, parseTerminalToolCallArguments, sanitizeSurrogates };
|
|
244
|
+
export { type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, complete, completeSimple, getApiProvider, getApiProviders, getEventStreamCompletion, parseTerminalToolCallArguments, sanitizeSurrogates, stream, streamSimple };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { a as isProviderRefusalAssistantError } from "../diagnostics-
|
|
2
|
-
import { a as getEventStreamCompletion } from "../event-stream-
|
|
3
|
-
import { n as createApiRegistry, t as createLlmRuntime } from "../stream-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { a as isProviderRefusalAssistantError } from "../diagnostics-DzrF1h4J.mjs";
|
|
2
|
+
import { a as getEventStreamCompletion } from "../event-stream-vd9UnCAU.mjs";
|
|
3
|
+
import { n as createApiRegistry, t as createLlmRuntime } from "../stream-DDsCBgd-.mjs";
|
|
4
|
+
import { C as applyProviderReportedUsageCost, D as modelsAreEqual, E as getSupportedThinkingLevels, S as headersToRecord, T as clampThinkingLevel, w as calculateCost } from "../host-CHi3X87F.mjs";
|
|
5
|
+
import { A as shortHash, D as parseJsonWithRepair, E as createToolArgumentPreviewSchedule, O as parseStreamingJson, g as parseTerminalToolCallArguments, j as sanitizeSurrogates, k as repairJson } from "../transport-stream-shared-Dh5qKJ8e.mjs";
|
|
6
|
+
import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-CyX4VKGO.mjs";
|
|
7
7
|
import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
|
|
8
8
|
import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
|
|
9
|
-
import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-
|
|
10
|
-
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-
|
|
9
|
+
import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-B9o0S4SZ.mjs";
|
|
10
|
+
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-B6FIIBt6.mjs";
|
|
11
11
|
import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
|
|
12
12
|
import { n as registerSessionResourceCleanup, t as cleanupSessionResources } from "../session-resources-CkR4WWy1.mjs";
|
|
13
13
|
import { n as resolveOpenAICodexAccountId, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-KWcgd0d_.mjs";
|
|
@@ -108,15 +108,6 @@ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
|
|
|
108
108
|
function matchesContextOverflowMessage(errorMessage, scope) {
|
|
109
109
|
return CONTEXT_OVERFLOW_PATTERN_SCOPES[scope].some((pattern) => pattern.test(errorMessage));
|
|
110
110
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Patterns that indicate non-overflow errors (e.g. rate limiting, server errors).
|
|
113
|
-
* Error messages matching any of these are excluded from overflow detection
|
|
114
|
-
* even if they also match an OVERFLOW_PATTERN.
|
|
115
|
-
*
|
|
116
|
-
* Example: Bedrock formats throttling errors as "ThrottlingException: Too many tokens,
|
|
117
|
-
* please wait before trying again." which would match the /too many tokens/i overflow
|
|
118
|
-
* pattern without this exclusion.
|
|
119
|
-
*/
|
|
120
111
|
const NON_OVERFLOW_PATTERNS = [
|
|
121
112
|
/^(Throttling error|Service unavailable):/i,
|
|
122
113
|
/rate limit/i,
|
|
@@ -128,55 +119,9 @@ function resolveContextInputTokens(message) {
|
|
|
128
119
|
return message.usage.input + message.usage.cacheRead + message.usage.cacheWrite;
|
|
129
120
|
}
|
|
130
121
|
/**
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
* 1. Error-based overflow: Most providers return stopReason "error" with a
|
|
135
|
-
* specific error message pattern.
|
|
136
|
-
* 2. Silent overflow: Some providers accept overflow requests and return
|
|
137
|
-
* successfully. For these, we check if usage.input exceeds the context window.
|
|
138
|
-
*
|
|
139
|
-
* ## Reliability by Provider
|
|
140
|
-
*
|
|
141
|
-
* **Reliable detection (returns error with detectable message):**
|
|
142
|
-
* - Anthropic: "prompt is too long: X tokens > Y maximum" or "request_too_large"
|
|
143
|
-
* - OpenAI (Completions & Responses): "exceeds the context window" or "exceeds the model's maximum context length of X tokens"
|
|
144
|
-
* - Google Gemini: "input token count exceeds the maximum"
|
|
145
|
-
* - xAI (Grok): "maximum prompt length is X but request contains Y"
|
|
146
|
-
* - Groq: "reduce the length of the messages"
|
|
147
|
-
* - Cerebras: 413 status code (no body)
|
|
148
|
-
* - Mistral: "Prompt contains X tokens ... too large for model with Y maximum context length"
|
|
149
|
-
* - OpenRouter (all backends): "maximum context length is X tokens"
|
|
150
|
-
* - Together AI: "The input (X tokens) is longer than the model's context length (Y tokens)."
|
|
151
|
-
* - llama.cpp: "exceeds the available context size"
|
|
152
|
-
* - LM Studio: "greater than the context length"
|
|
153
|
-
* - Kimi For Coding: "exceeded model token limit: X (requested: Y)"
|
|
154
|
-
* - z.ai: "tokens in request more than max tokens allowed" or "Prompt exceeds max length"
|
|
155
|
-
*
|
|
156
|
-
* **Unreliable detection:**
|
|
157
|
-
* - z.ai: Sometimes accepts overflow silently (detectable via usage.input > contextWindow),
|
|
158
|
-
* sometimes returns rate limit errors instead of the explicit overflow error above. Pass
|
|
159
|
-
* contextWindow param to detect silent overflow.
|
|
160
|
-
* - Xiaomi MiMo: Truncates input to fit contextWindow then returns stopReason "length" with
|
|
161
|
-
* output=0. Pass contextWindow param to detect via the "filled context + zero output" signal.
|
|
162
|
-
* - Ollama: May truncate input silently for some setups, but may also return explicit
|
|
163
|
-
* overflow errors that match the patterns above. Silent truncation still cannot be
|
|
164
|
-
* detected here because we do not know the expected token count.
|
|
165
|
-
*
|
|
166
|
-
* ## Custom Providers
|
|
167
|
-
*
|
|
168
|
-
* If you've added custom models via settings.json, this function may not detect
|
|
169
|
-
* overflow errors from those providers. To add support:
|
|
170
|
-
*
|
|
171
|
-
* 1. Send a request that exceeds the model's context window
|
|
172
|
-
* 2. Check the errorMessage in the response
|
|
173
|
-
* 3. Create a regex pattern that matches the error
|
|
174
|
-
* 4. The pattern should be added to the appropriate canonical scope in this file, or
|
|
175
|
-
* check the errorMessage yourself before calling this function
|
|
176
|
-
*
|
|
177
|
-
* @param message - The assistant message to check
|
|
178
|
-
* @param contextWindow - Optional context window size for detecting silent overflow (z.ai)
|
|
179
|
-
* @returns true if the message indicates a context overflow
|
|
122
|
+
* Match provider overflow errors, or infer overflow from reported context usage.
|
|
123
|
+
* A context window enables silent-overflow detection; silent truncation without
|
|
124
|
+
* a length stop remains undetectable because the original token count is unknown.
|
|
180
125
|
*/
|
|
181
126
|
function isContextOverflow(message, contextWindow) {
|
|
182
127
|
if (isProviderRefusalAssistantError(message)) return false;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { D as Message, G as SimpleStreamOptions, O as Model, Q as ThinkingBudgets, Y as StreamOptions, a as AssistantMessage, et as ThinkingLevel, n as Api } from "../types-
|
|
2
|
-
import { a as readAssistantThinkingAppend } from "../event-stream-
|
|
3
|
-
import "../types-
|
|
1
|
+
import { D as Message, G as SimpleStreamOptions, O as Model, Q as ThinkingBudgets, Y as StreamOptions, a as AssistantMessage, et as ThinkingLevel, n as Api } from "../types-CLLR3eB4.mjs";
|
|
2
|
+
import { a as readAssistantThinkingAppend } from "../event-stream-DOPFYVqs.mjs";
|
|
3
|
+
import "../types-CB-_vNyI.mjs";
|
|
4
4
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
5
|
+
import { i as projectProviderError } from "../provider-error-xumb1V3F.mjs";
|
|
5
6
|
import { n as createDiagnosticRecord } from "../credential-redaction-BKv49aiv.mjs";
|
|
6
7
|
import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
|
|
7
8
|
//#region packages/ai/src/providers/simple-options.d.ts
|
|
@@ -20,15 +21,6 @@ export declare function adjustMaxTokensForThinking(baseMaxTokens: number | undef
|
|
|
20
21
|
};
|
|
21
22
|
//#endregion
|
|
22
23
|
//#region packages/ai/src/providers/tool-result-text.d.ts
|
|
23
|
-
/** Media metadata alone is not an attachment; provider emitters need inline bytes. */
|
|
24
|
-
export declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
|
|
25
|
-
data: string;
|
|
26
|
-
};
|
|
27
|
-
/** Image metadata alone is not an attachment; provider emitters need inline bytes. */
|
|
28
|
-
export declare function isImageWithMediaPayload<T>(block: T): block is T & {
|
|
29
|
-
type: "image";
|
|
30
|
-
data: string;
|
|
31
|
-
};
|
|
32
24
|
export declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
|
|
33
25
|
export declare function extractToolResultBlockText(block: unknown): string | undefined;
|
|
34
26
|
export declare function extractToolResultText(blocks: readonly unknown[], options?: {
|
|
@@ -47,6 +39,17 @@ export declare function formatToolResultText(params: {
|
|
|
47
39
|
isError: boolean;
|
|
48
40
|
}): string;
|
|
49
41
|
//#endregion
|
|
42
|
+
//#region packages/ai/src/media-payload.d.ts
|
|
43
|
+
/** Media metadata alone is not an attachment; provider emitters need inline bytes. */
|
|
44
|
+
export declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
|
|
45
|
+
data: string;
|
|
46
|
+
};
|
|
47
|
+
/** Image metadata alone is not an attachment; provider emitters need inline bytes. */
|
|
48
|
+
export declare function isImageWithMediaPayload<T>(block: T): block is T & {
|
|
49
|
+
type: "image";
|
|
50
|
+
data: string;
|
|
51
|
+
};
|
|
52
|
+
//#endregion
|
|
50
53
|
//#region packages/ai/src/transcript-transform.d.ts
|
|
51
54
|
export declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
|
|
52
55
|
//#endregion
|
|
@@ -112,4 +115,4 @@ export declare function projectCopilotRequestFacts(messages: readonly {
|
|
|
112
115
|
hasImages: boolean;
|
|
113
116
|
};
|
|
114
117
|
//#endregion
|
|
115
|
-
export { createDiagnosticRecord, normalizePromptCapabilityIds, normalizeStructuredPromptSection, readAssistantThinkingAppend, sanitizeSurrogates, sortPromptCacheToolsByName };
|
|
118
|
+
export { createDiagnosticRecord, normalizePromptCapabilityIds, normalizeStructuredPromptSection, projectProviderError, readAssistantThinkingAppend, sanitizeSurrogates, sortPromptCacheToolsByName };
|
package/dist/internal/shared.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { o as readAssistantThinkingAppend } from "../event-stream-
|
|
2
|
-
import {
|
|
3
|
-
import { r as createDiagnosticRecord } from "../provider-error-
|
|
4
|
-
import {
|
|
1
|
+
import { o as readAssistantThinkingAppend } from "../event-stream-vd9UnCAU.mjs";
|
|
2
|
+
import { O as hasMediaPayload, a as FAILED_ASSISTANT_REPLAY_TEXT, c as isReasoningOnlyLengthAssistantTurn, i as transformMessages, k as isImageWithMediaPayload, l as isStreamErrorFallbackContent, o as STREAM_ERROR_FALLBACK_TEXT, s as hasOnlyAssistantReasoningContent, u as resolveFailedAssistantReplay } from "../host-CHi3X87F.mjs";
|
|
3
|
+
import { n as projectProviderError, r as createDiagnosticRecord } from "../provider-error-CwT_j2v0.mjs";
|
|
4
|
+
import { j as sanitizeSurrogates } from "../transport-stream-shared-Dh5qKJ8e.mjs";
|
|
5
|
+
import { C as stripSystemPromptCacheBoundary, D as sortPromptCacheToolsByName, E as normalizeStructuredPromptSection, S as splitSystemPromptRelocatableBoundary, T as normalizePromptCapabilityIds, _ as SYSTEM_PROMPT_RELOCATABLE_BOUNDARY, b as prependSystemPromptAdditionAfterCacheBoundary, d as describeToolResultMediaPlaceholder, f as describeUnsupportedToolResultMedia, g as SYSTEM_PROMPT_CACHE_BOUNDARY, h as formatToolResultText, i as clampReasoning, m as extractToolResultText, n as buildBaseOptions, p as extractToolResultBlockText, r as clampMaxTokensToModel, t as adjustMaxTokensForThinking, v as SYSTEM_PROMPT_RELOCATABLE_BOUNDARY_END, w as stripSystemPromptRelocatableBoundary, x as splitSystemPromptCacheBoundary, y as ensureSystemPromptCacheBoundary } from "../simple-options-CGAkCwtM.mjs";
|
|
5
6
|
import { t as projectCopilotRequestFacts } from "../github-copilot-request-facts-BTEBMeOv.mjs";
|
|
6
7
|
//#region packages/ai/src/utils/tls-certificate-errors.ts
|
|
7
8
|
const HOSTNAME_MISMATCH_CODES = /* @__PURE__ */ new Set(["ERR_TLS_CERT_ALTNAME_INVALID", "HOSTNAME_MISMATCH"]);
|
|
@@ -95,4 +96,4 @@ function inspectTlsCertificateError(error) {
|
|
|
95
96
|
return inspectTlsCertificateErrorInternal(error, /* @__PURE__ */ new Set(), 0);
|
|
96
97
|
}
|
|
97
98
|
//#endregion
|
|
98
|
-
export { FAILED_ASSISTANT_REPLAY_TEXT, STREAM_ERROR_FALLBACK_TEXT, SYSTEM_PROMPT_CACHE_BOUNDARY, SYSTEM_PROMPT_RELOCATABLE_BOUNDARY, SYSTEM_PROMPT_RELOCATABLE_BOUNDARY_END, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, createDiagnosticRecord, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, hasOnlyAssistantReasoningContent, inspectTlsCertificateError, isImageWithMediaPayload, isReasoningOnlyLengthAssistantTurn, isStreamErrorFallbackContent, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, projectCopilotRequestFacts, readAssistantThinkingAppend, resolveFailedAssistantReplay, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, splitSystemPromptRelocatableBoundary, stripSystemPromptCacheBoundary, stripSystemPromptRelocatableBoundary, transformMessages };
|
|
99
|
+
export { FAILED_ASSISTANT_REPLAY_TEXT, STREAM_ERROR_FALLBACK_TEXT, SYSTEM_PROMPT_CACHE_BOUNDARY, SYSTEM_PROMPT_RELOCATABLE_BOUNDARY, SYSTEM_PROMPT_RELOCATABLE_BOUNDARY_END, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, createDiagnosticRecord, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, hasOnlyAssistantReasoningContent, inspectTlsCertificateError, isImageWithMediaPayload, isReasoningOnlyLengthAssistantTurn, isStreamErrorFallbackContent, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, projectCopilotRequestFacts, projectProviderError, readAssistantThinkingAppend, resolveFailedAssistantReplay, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, splitSystemPromptRelocatableBoundary, stripSystemPromptCacheBoundary, stripSystemPromptRelocatableBoundary, transformMessages };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveOpenAIProjectedToolsStrictToolFlag, i as normalizeStrictOpenAIJsonSchema, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics } from "../openai-tool-schema-
|
|
1
|
+
import { a as resolveOpenAIProjectedToolsStrictToolFlag, i as normalizeStrictOpenAIJsonSchema, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics } from "../openai-tool-schema-a5ysBBga.mjs";
|
|
2
2
|
import { TSchema } from "typebox";
|
|
3
3
|
//#region packages/ai/src/providers/agent-tools-parameter-schema.d.ts
|
|
4
4
|
/**
|
|
@@ -44,7 +44,7 @@ export declare function cleanSchemaForLlamacppGbnf(schema: unknown): unknown;
|
|
|
44
44
|
export declare function findLlamacppGbnfSchemaViolations(schema: unknown, path: string): string[];
|
|
45
45
|
//#endregion
|
|
46
46
|
//#region packages/ai/src/providers/schema-keyword-strip.d.ts
|
|
47
|
-
/**
|
|
47
|
+
/** Remove schema keywords unsupported by a target provider/tool surface. */
|
|
48
48
|
export declare function stripUnsupportedSchemaKeywords(schema: unknown, unsupportedKeywords: ReadonlySet<string>): unknown;
|
|
49
49
|
//#endregion
|
|
50
50
|
//#region packages/ai/src/providers/tool-schema-json-projection.d.ts
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-
|
|
2
|
-
import { _ as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, a as resolveOpenAIProjectedToolsStrictToolFlag, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, g as findLlamacppGbnfSchemaViolations, h as cleanSchemaForLlamacppGbnf, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as stripUnsupportedSchemaKeywords, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as cleanSchemaForGemini } from "../openai-tool-schema-
|
|
1
|
+
import { n as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-Ct8SeBeJ.mjs";
|
|
2
|
+
import { _ as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, a as resolveOpenAIProjectedToolsStrictToolFlag, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, g as findLlamacppGbnfSchemaViolations, h as cleanSchemaForLlamacppGbnf, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as stripUnsupportedSchemaKeywords, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as cleanSchemaForGemini } from "../openai-tool-schema-vsl-cE-n.mjs";
|
|
3
3
|
export { GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isStrictOpenAIJsonSchemaCompatible, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, projectRuntimeToolInputSchema, resolveOpenAIProjectedToolsStrictToolFlag, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, stripUnsupportedSchemaKeywords };
|