@openclaw/ai 2026.7.2-beta.7 → 2026.8.1-beta.1
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-CH4UUnZr.mjs → anthropic-CE-7SkF6.mjs} +28 -191
- package/dist/{anthropic-usage-DWU-x8MI.mjs → anthropic-usage-Ma4iX6uG.mjs} +262 -4
- package/dist/{api-registry-DlMgPR39.d.mts → api-registry-EpJoVwM1.d.mts} +1 -1
- package/dist/{azure-openai-responses-CImcwB83.mjs → azure-openai-responses-Cc_kasye.mjs} +4 -4
- package/dist/{event-stream-D8n2uFee.mjs → event-stream-CEV9t6da.mjs} +10 -2
- package/dist/{event-stream-YjaPW20U.d.mts → event-stream-DRmDMRHH.d.mts} +2 -1
- package/dist/event-stream.d.mts +1 -1
- package/dist/event-stream.mjs +1 -1
- package/dist/{google-CtSg0iTS.mjs → google-CGQu21aw.mjs} +5 -5
- package/dist/{google-shared-DNBz5rcD.mjs → google-shared-Cq2UKx1l.mjs} +151 -85
- package/dist/{google-vertex-31f1uS9L.mjs → google-vertex-CusxWzvE.mjs} +10 -7
- package/dist/{host-Dog2WQiR.mjs → host-Bl7Kgddo.mjs} +40 -2
- package/dist/{host-B9GUmcra.d.mts → host-Dn4_SZI2.d.mts} +2 -2
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +2 -2
- package/dist/internal/anthropic.d.mts +19 -3
- package/dist/internal/anthropic.mjs +4 -4
- package/dist/internal/openai.d.mts +4 -4
- package/dist/internal/openai.mjs +7 -7
- package/dist/internal/runtime.d.mts +2 -2
- package/dist/internal/runtime.mjs +3 -3
- package/dist/internal/shared.d.mts +1 -1
- package/dist/internal/shared.mjs +3 -4
- package/dist/{mistral-CWmpvWYh.mjs → mistral-Dx6VzNjf.mjs} +25 -9
- package/dist/model-utils-Dau5dlgm.mjs +64 -0
- package/dist/number-coercion-1Miyb5MO.mjs +66 -0
- package/dist/{openai-chatgpt-responses-B84Ibtrd.mjs → openai-chatgpt-responses-SC9m0FSf.mjs} +94 -131
- package/dist/{openai-completions-DsOxhOD1.mjs → openai-completions-BaIpl93j.mjs} +47 -66
- package/dist/{openai-reasoning-compat-YgeLncHw.mjs → openai-reasoning-compat-DKebnIBL.mjs} +147 -6
- package/dist/{openai-responses-BT7A3sLu.mjs → openai-responses-Bdx3V_Yu.mjs} +6 -22
- package/dist/openai-responses-contracts-BBKBfAqR.d.mts +116 -0
- package/dist/openai-responses-prompt-observer-internal-DDZPxRfr.mjs +46 -0
- package/dist/{openai-responses-shared-pXl6Wd8S.mjs → openai-responses-shared-CCyMvg7M.mjs} +21 -10
- package/dist/{openai-responses-stream-internal-Cw5txaGW.mjs → openai-responses-stream-internal-Bl8YyVtF.mjs} +244 -81
- package/dist/{openai-tool-projection-OhX64DoP.mjs → openai-transport-shared-Cipt7egQ.mjs} +129 -29
- package/dist/{provider-error-CAEvRjry.mjs → provider-error-DI0Ts28U.mjs} +1 -1
- package/dist/{provider-options-D8bB3z9b.d.mts → provider-options-C5kYML7i.d.mts} +1 -1
- package/dist/providers.d.mts +1 -1
- package/dist/providers.mjs +9 -9
- package/dist/{stream-first-event-timeout-BBys9hSb.mjs → stream-first-event-timeout-BIBomOGq.mjs} +1 -1
- package/dist/{tool-result-text-CTpIRbYd.mjs → tool-result-text-Dvkp2Dus.mjs} +51 -2
- package/dist/{tool-schema-json-projection-BwNu3nDi.mjs → tool-schema-json-projection-B1b-XCn5.mjs} +28 -1
- package/dist/transform-messages-DfjpNXNQ.mjs +2 -0
- package/dist/{transport-stream-shared-D81p90xq.mjs → transport-stream-shared-CPNv7A3r.mjs} +4 -4
- package/dist/transports.d.mts +41 -73
- package/dist/transports.mjs +317 -601
- package/dist/{types-bzp5k29J.d.mts → types-CH7ReIcU.d.mts} +4 -0
- package/dist/types.d.mts +3 -3
- package/dist/types.mjs +1 -1
- package/dist/{validation-B-j7cOYp.d.mts → validation-CcPcuEbR.d.mts} +1 -1
- package/dist/validation.d.mts +1 -1
- package/package.json +1 -1
- package/dist/error-coercion-DgxlWC0n.mjs +0 -15
- package/dist/number-coercion-DvG7SNMg.mjs +0 -129
- package/dist/openai-completions-compat-DBWjXoMZ.d.mts +0 -43
- package/dist/simple-options-9lhRrN73.mjs +0 -50
- package/dist/transform-messages-C8mBqZxF.mjs +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, s as resolveClaudeModelIdentity, u as resolveClaudeOpus5ModelIdentity } from "../anthropic-SrGtwsJu.mjs";
|
|
2
2
|
import { t as AssistantMessageDiagnostic } from "../diagnostics-BaTA9eVl.mjs";
|
|
3
|
-
import { E as Model, F as SimpleStreamOptions, R as StreamFunction, u as Context } from "../types-
|
|
4
|
-
import { n as AnthropicOptions, r as AnthropicThinkingDisplay, t as AnthropicEffort } from "../provider-options-
|
|
3
|
+
import { E as Model, F as SimpleStreamOptions, I as StopReason, R as StreamFunction, X as Usage, u as Context } from "../types-CH7ReIcU.mjs";
|
|
4
|
+
import { n as AnthropicOptions, r as AnthropicThinkingDisplay, t as AnthropicEffort } from "../provider-options-C5kYML7i.mjs";
|
|
5
5
|
//#region packages/ai/src/providers/anthropic.d.ts
|
|
6
6
|
declare const streamAnthropic: StreamFunction<"anthropic-messages", AnthropicOptions>;
|
|
7
7
|
type AnthropicSimpleStreamOptions = SimpleStreamOptions & {
|
|
@@ -19,6 +19,8 @@ declare function usesFoundryBearerAuth(model: AnthropicAuthModel): boolean;
|
|
|
19
19
|
declare function omitFoundryBearerCredentialHeaders(headers?: Record<string, string>): Record<string, string> | undefined;
|
|
20
20
|
//#endregion
|
|
21
21
|
//#region packages/ai/src/providers/anthropic-model-contract.d.ts
|
|
22
|
+
declare const ANTHROPIC_CLAUDE_CODE_VERSION = "2.1.75";
|
|
23
|
+
declare const ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK = "x-anthropic-billing-header: cc_version=2.1.75; cc_entrypoint=sdk-cli;";
|
|
22
24
|
type ReplayModelRef = {
|
|
23
25
|
provider?: string;
|
|
24
26
|
api?: string;
|
|
@@ -48,6 +50,10 @@ declare function defaultsClaudeAdaptiveThinking(model: {
|
|
|
48
50
|
params?: Record<string, unknown>;
|
|
49
51
|
api?: string;
|
|
50
52
|
}): boolean;
|
|
53
|
+
/** Resolve provider-native effort once for direct and managed Claude requests. */
|
|
54
|
+
declare function resolveAnthropicThinkingEffort(model: Model<"anthropic-messages">, level: SimpleStreamOptions["reasoning"]): AnthropicEffort;
|
|
55
|
+
/** Normalize Anthropic and Anthropic-compatible terminal reasons identically. */
|
|
56
|
+
declare function mapAnthropicStopReason(reason: string | undefined): StopReason;
|
|
51
57
|
/** Remove unsupported assistant prefills while preserving completed tool-use turns. */
|
|
52
58
|
declare function prepareClaudeNoPrefillRequestContext(model: Model, context: Context): Context;
|
|
53
59
|
declare function applyClaudeRequestContract(params: Record<string, unknown>, model: {
|
|
@@ -149,6 +155,12 @@ type AnthropicProjectedToolChoice = ({
|
|
|
149
155
|
readonly type: "tool";
|
|
150
156
|
readonly name: string;
|
|
151
157
|
} & AnthropicParallelToolChoice);
|
|
158
|
+
/** Preserve Claude Code's canonical tool casing for subscription OAuth requests. */
|
|
159
|
+
declare function toClaudeCodeToolName(name: string): string;
|
|
160
|
+
/** Anthropic rejects forced tools while extended thinking is enabled. */
|
|
161
|
+
declare function normalizeAnthropicToolChoice(thinkingEnabled: boolean, toolChoice: NonNullable<AnthropicOptions["toolChoice"]>): AnthropicProjectedToolChoice;
|
|
162
|
+
/** Anthropic tool identifiers accept only ASCII word characters and dashes. */
|
|
163
|
+
declare function normalizeAnthropicToolCallId(id: string): string;
|
|
152
164
|
/** Snapshots direct/custom tool descriptors before Anthropic payload construction. */
|
|
153
165
|
declare function projectAnthropicTools(tools: readonly AnthropicToolDescriptor[], toWireName: (name: string) => string): AnthropicToolProjection;
|
|
154
166
|
/** Keeps forced Anthropic tool choices aligned with the projected wire names. */
|
|
@@ -190,5 +202,9 @@ declare function readAnthropicUsageTokenCount(value: unknown): number | undefine
|
|
|
190
202
|
declare function readAnthropicCacheWriteUsage(usage: AnthropicUsagePayload): AnthropicCacheWriteUsage;
|
|
191
203
|
declare function readAnthropicPromptUsageSnapshot(usage: AnthropicUsagePayload): AnthropicPromptUsageSnapshot | undefined;
|
|
192
204
|
declare function readLastAnthropicIterationUsage(usage: AnthropicUsagePayload): AnthropicIterationUsageResult;
|
|
205
|
+
/** Record independent billing buckets without treating zero placeholders as context proof. */
|
|
206
|
+
declare function applyAnthropicMessageStartUsage(target: Usage, payload: AnthropicUsagePayload): AnthropicPromptUsageSnapshot | undefined;
|
|
207
|
+
/** Keep cumulative billing separate from the final server-side iteration context. */
|
|
208
|
+
declare function applyAnthropicMessageDeltaUsage(target: Usage, payload: AnthropicUsagePayload | undefined, messageStartPromptUsage: AnthropicPromptUsageSnapshot | undefined): void;
|
|
193
209
|
//#endregion
|
|
194
|
-
export { ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, AnthropicCacheWriteUsage, type AnthropicEffort, AnthropicFallbackBoundary, AnthropicIterationUsageResult, AnthropicIterationUsageSnapshot, type AnthropicOptions, AnthropicProjectedToolChoice, AnthropicPromptUsageSnapshot, type AnthropicThinkingDisplay, AnthropicToolProjection, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
|
|
210
|
+
export { ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, ANTHROPIC_CLAUDE_CODE_VERSION, ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, AnthropicCacheWriteUsage, type AnthropicEffort, AnthropicFallbackBoundary, AnthropicIterationUsageResult, AnthropicIterationUsageSnapshot, type AnthropicOptions, AnthropicProjectedToolChoice, AnthropicPromptUsageSnapshot, type AnthropicThinkingDisplay, AnthropicToolProjection, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicMessageDeltaUsage, applyAnthropicMessageStartUsage, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, s as resolveClaudeModelIdentity, u as resolveClaudeOpus5ModelIdentity } from "../src-QkygScBs.mjs";
|
|
2
|
-
import { a as
|
|
3
|
-
import {
|
|
4
|
-
import { n as streamAnthropic, r as streamSimpleAnthropic } from "../anthropic-
|
|
5
|
-
export { ANTHROPIC_OMITTED_REASONING_TEXT, ANTHROPIC_SERVER_SIDE_FALLBACKS, ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, CLAUDE_OPUS_FALLBACK_MODEL_COST, applyAnthropicFallbackBoundary, applyAnthropicRefusal, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
|
|
2
|
+
import { a as ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, c as defaultsClaudeAdaptiveThinking, d as requiresClaudeAdaptiveThinking, f as resolveAnthropicThinkingEffort, h as usesClaudeStreamingRefusalContract, l as mapAnthropicStopReason, m as usesClaudeFable5MessagesContract, o as ANTHROPIC_CLAUDE_CODE_VERSION, p as resolveModelBoundThinkingReplayMode, s as applyClaudeRequestContract, u as prepareClaudeNoPrefillRequestContext } from "../host-Bl7Kgddo.mjs";
|
|
3
|
+
import { C as usesFoundryBearerAuth, S as omitFoundryBearerCredentialHeaders, _ as CLAUDE_OPUS_FALLBACK_MODEL_COST, a as readAnthropicUsageTokenCount, b as resolveAnthropicFallbackServingModelCost, c as normalizeAnthropicToolChoice, d as resolveOriginalAnthropicToolName, f as toClaudeCodeToolName, g as ANTHROPIC_SERVER_SIDE_FALLBACK_BETA, h as ANTHROPIC_SERVER_SIDE_FALLBACKS, i as readAnthropicPromptUsageSnapshot, l as projectAnthropicTools, m as findActiveAnthropicToolTurnAssistantIndex, n as applyAnthropicMessageStartUsage, o as readLastAnthropicIterationUsage, p as ANTHROPIC_OMITTED_REASONING_TEXT, r as readAnthropicCacheWriteUsage, s as normalizeAnthropicToolCallId, t as applyAnthropicMessageDeltaUsage, u as reconcileAnthropicToolChoice, v as applyAnthropicFallbackBoundary, x as applyAnthropicRefusal, y as readAnthropicFallbackBoundary } from "../anthropic-usage-Ma4iX6uG.mjs";
|
|
4
|
+
import { n as streamAnthropic, r as streamSimpleAnthropic } from "../anthropic-CE-7SkF6.mjs";
|
|
5
|
+
export { ANTHROPIC_CLAUDE_CODE_BILLING_SYSTEM_BLOCK, 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, applyClaudeRequestContract, defaultsClaudeAdaptiveThinking, findActiveAnthropicToolTurnAssistantIndex, mapAnthropicStopReason, normalizeAnthropicToolCallId, normalizeAnthropicToolChoice, omitFoundryBearerCredentialHeaders, prepareClaudeNoPrefillRequestContext, projectAnthropicTools, readAnthropicCacheWriteUsage, readAnthropicFallbackBoundary, readAnthropicPromptUsageSnapshot, readAnthropicUsageTokenCount, readLastAnthropicIterationUsage, reconcileAnthropicToolChoice, requiresClaudeAdaptiveThinking, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAnthropicFallbackServingModelCost, resolveAnthropicThinkingEffort, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, resolveModelBoundThinkingReplayMode, resolveOriginalAnthropicToolName, streamAnthropic, streamSimpleAnthropic, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, toClaudeCodeToolName, usesClaudeFable5MessagesContract, usesClaudeStreamingRefusalContract, usesFoundryBearerAuth };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { E as Model, F as SimpleStreamOptions, I as StopReason, R as StreamFunction, X as Usage, u as Context, z as StreamOptions } from "../types-
|
|
2
|
-
import { _ as resolveOpenAIReasoningEffortForModel, a as OpenAICompletionsOptions, b as supportsOpenAITemperature, c as projectOpenAITools, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, g as normalizeOpenAIReasoningEffort, h as isOpenAIGpt56Model, l as reconcileOpenAICompletionsToolChoice, m as isOpenAIGpt55Model, o as OpenAICompletionsToolChoice, p as isOpenAIGpt54MiniModel, s as OpenAIToolProjection, u as reconcileOpenAIResponsesToolChoice, v as resolveOpenAISupportedReasoningEfforts, y as supportsOpenAIReasoningEffort } from "../provider-options-
|
|
3
|
-
import {
|
|
1
|
+
import { E as Model, F as SimpleStreamOptions, I as StopReason, R as StreamFunction, X as Usage, u as Context, z as StreamOptions } from "../types-CH7ReIcU.mjs";
|
|
2
|
+
import { _ as resolveOpenAIReasoningEffortForModel, a as OpenAICompletionsOptions, b as supportsOpenAITemperature, c as projectOpenAITools, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, g as normalizeOpenAIReasoningEffort, h as isOpenAIGpt56Model, l as reconcileOpenAICompletionsToolChoice, m as isOpenAIGpt55Model, o as OpenAICompletionsToolChoice, p as isOpenAIGpt54MiniModel, s as OpenAIToolProjection, u as reconcileOpenAIResponsesToolChoice, v as resolveOpenAISupportedReasoningEfforts, y as supportsOpenAIReasoningEffort } from "../provider-options-C5kYML7i.mjs";
|
|
3
|
+
import { c as ResolvedOpenAICompletionsCompat, o as ResponsesPromptObservation, s as responsesPromptObserver } from "../openai-responses-contracts-BBKBfAqR.mjs";
|
|
4
4
|
import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-2uo_1OR1.mjs";
|
|
5
5
|
import OpenAI from "openai";
|
|
6
6
|
import { TSchema } from "typebox";
|
|
@@ -257,4 +257,4 @@ type RuntimeToolInputSchemaProjection = {
|
|
|
257
257
|
/** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
|
|
258
258
|
declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
|
|
259
259
|
//#endregion
|
|
260
|
-
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
260
|
+
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, AzureResponsesTextContentPart, AzureResponsesTextDeltaEvent, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIResponsesOptions, OpenAIStopReasonResult, OpenAIToolProjection, ResponsesMessageSnapshotCollapse, type ResponsesPromptObservation, ResponsesTerminalUsagePayload, ResponsesTextContentPartType, ResponsesTextDeltaEventType, ResponsesToolCallIdentity, ResponsesToolCallState, RuntimeToolInputSchemaJson, RuntimeToolInputSchemaProjection, ToolParameterSchemaOptions, ToolSchemaModelCompat, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
package/dist/internal/openai.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-mZTCdRPo.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-B1b-XCn5.mjs";
|
|
3
|
+
import { a as convertMessages, n as mapOpenAIStopReason } from "../openai-reasoning-compat-DKebnIBL.mjs";
|
|
4
|
+
import { $ as shouldOmitEmptyArrayItems, B as responsesPromptObserver, G as normalizeOpenAIStrictToolParameters, H as clearOpenAIToolSchemaCacheForTest, J as findOpenAIStrictSchemaViolations, K as normalizeStrictOpenAIJsonSchema, Q as resolveUnsupportedToolSchemaKeywords, U as findOpenAIStrictToolProjectionDiagnostics, W as isStrictOpenAIJsonSchemaCompatible, X as extractToolSchemaModelCompat, Y as normalizeOpenAIStrictCompatSchema, Z as normalizeToolParameterSchema, _ as resolveResponsesMessageSnapshotCollapse, a as resolveResponsesTerminalStopReason, at as cleanSchemaForGemini, c as readResponsesToolCallItemIdentity, ct as isOpenAIGpt56Model, d as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, dt as resolveOpenAISupportedReasoningEfforts, et as stripUnsupportedSchemaKeywords, f as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, ft as supportsOpenAIReasoningEffort, g as isResponsesTextDeltaEventType, h as isResponsesTextContentPartType, i as readResponsesReasoningTokens, it as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, l as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, lt as normalizeOpenAIReasoningEffort, m as isAzureResponsesTextDeltaEventType, nt as cleanSchemaForLlamacppGbnf, ot as isOpenAIGpt54MiniModel, p as isAzureResponsesTextDeltaEvent, pt as supportsOpenAITemperature, q as resolveOpenAIProjectedToolsStrictToolFlag, r as mapResponsesTerminalUsage, rt as findLlamacppGbnfSchemaViolations, s as createResponsesToolCallTracker, st as isOpenAIGpt55Model, tt as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, u as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, ut as resolveOpenAIReasoningEffortForModel } from "../openai-responses-stream-internal-Bl8YyVtF.mjs";
|
|
5
|
+
import { d as reconcileOpenAIResponsesToolChoice, l as projectOpenAITools, u as reconcileOpenAICompletionsToolChoice } from "../openai-transport-shared-Cipt7egQ.mjs";
|
|
6
6
|
import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
|
|
7
|
-
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-
|
|
8
|
-
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-
|
|
9
|
-
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
7
|
+
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-BaIpl93j.mjs";
|
|
8
|
+
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-Bdx3V_Yu.mjs";
|
|
9
|
+
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, clearOpenAIToolSchemaCacheForTest, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, P as ProviderStreamOptions, X as Usage, i as AssistantMessage, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "../types-
|
|
2
|
-
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-
|
|
1
|
+
import { D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, P as ProviderStreamOptions, X as Usage, i as AssistantMessage, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "../types-CH7ReIcU.mjs";
|
|
2
|
+
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-EpJoVwM1.mjs";
|
|
3
3
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
4
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
5
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-DrgeBuva.mjs";
|
|
2
2
|
import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
|
|
3
|
+
import { a as modelsAreEqual, i as getSupportedThinkingLevels, n as calculateCost, r as clampThinkingLevel, t as applyProviderReportedUsageCost } from "../model-utils-Dau5dlgm.mjs";
|
|
3
4
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
|
|
4
|
-
import { c as calculateCost, d as modelsAreEqual, l as clampThinkingLevel, s as applyProviderReportedUsageCost, u as getSupportedThinkingLevels } from "../number-coercion-DvG7SNMg.mjs";
|
|
5
5
|
import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
|
|
6
6
|
import { n as parseStreamingJson, r as repairJson, t as parseJsonWithRepair } from "../json-parse-BvXNt1-7.mjs";
|
|
7
7
|
import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
|
|
8
8
|
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-CGDyLWUR.mjs";
|
|
9
|
-
import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-
|
|
10
|
-
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-BIBomOGq.mjs";
|
|
11
10
|
import { t as headersToRecord } from "../headers-B_e4-1J0.mjs";
|
|
11
|
+
import { t as shortHash } from "../hash-CHgqbJmD.mjs";
|
|
12
12
|
import { i as registerSessionResourceCleanup, n as resolveOpenAICodexAccountId, r as cleanupSessionResources, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-DhAAzLkj.mjs";
|
|
13
13
|
import { t as createSseByteGuard } from "../streaming-byte-guard-BrbkbwUu.mjs";
|
|
14
14
|
//#region packages/ai/src/internal/default-runtime.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as Model, F as SimpleStreamOptions, H as ThinkingBudgets, T as Message, W as ThinkingLevel, i as AssistantMessage, n as Api, z as StreamOptions } from "../types-
|
|
1
|
+
import { E as Model, F as SimpleStreamOptions, H as ThinkingBudgets, T as Message, W as ThinkingLevel, i as AssistantMessage, n as Api, z as StreamOptions } from "../types-CH7ReIcU.mjs";
|
|
2
2
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
3
3
|
import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
|
|
4
4
|
|
package/dist/internal/shared.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { i as transformMessages } from "../host-
|
|
1
|
+
import { i as transformMessages } from "../host-Bl7Kgddo.mjs";
|
|
2
2
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-DT5o51ur.mjs";
|
|
3
|
-
import { a as isImageWithMediaPayload, c as
|
|
4
|
-
import
|
|
5
|
-
import "../transform-messages-C8mBqZxF.mjs";
|
|
3
|
+
import { _ as normalizeStructuredPromptSection, a as isImageWithMediaPayload, c as buildBaseOptions, d as SYSTEM_PROMPT_CACHE_BOUNDARY, f as ensureSystemPromptCacheBoundary, g as normalizePromptCapabilityIds, h as stripSystemPromptCacheBoundary, i as hasMediaPayload, l as clampMaxTokensToModel, m as splitSystemPromptCacheBoundary, n as extractToolResultBlockText, p as prependSystemPromptAdditionAfterCacheBoundary, r as extractToolResultText, s as adjustMaxTokensForThinking, t as describeToolResultMediaPlaceholder, u as clampReasoning, v as sortPromptCacheToolsByName } from "../tool-result-text-Dvkp2Dus.mjs";
|
|
4
|
+
import "../transform-messages-DfjpNXNQ.mjs";
|
|
6
5
|
import { t as inspectTlsCertificateError } from "../tls-certificate-errors-DXSpluKI.mjs";
|
|
7
6
|
export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { n as getEnvApiKey } from "./env-api-keys-DrgeBuva.mjs";
|
|
2
|
-
import { t as AssistantMessageEventStream } from "./event-stream-
|
|
3
|
-
import { i as transformMessages, n as getAiTransportHost } from "./host-
|
|
2
|
+
import { t as AssistantMessageEventStream } from "./event-stream-CEV9t6da.mjs";
|
|
3
|
+
import { b as isRecord, i as transformMessages, n as getAiTransportHost } from "./host-Bl7Kgddo.mjs";
|
|
4
|
+
import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-Dau5dlgm.mjs";
|
|
4
5
|
import { t as sanitizeSurrogates } from "./sanitize-unicode-DT5o51ur.mjs";
|
|
5
|
-
import { a as isImageWithMediaPayload,
|
|
6
|
-
import { c as calculateCost, l as clampThinkingLevel } from "./number-coercion-DvG7SNMg.mjs";
|
|
6
|
+
import { a as isImageWithMediaPayload, c as buildBaseOptions, h as stripSystemPromptCacheBoundary, l as clampMaxTokensToModel, o as truncateUtf16Safe, r as extractToolResultText, t as describeToolResultMediaPlaceholder } from "./tool-result-text-Dvkp2Dus.mjs";
|
|
7
7
|
import { n as parseStreamingJson } from "./json-parse-BvXNt1-7.mjs";
|
|
8
|
-
import { d as transportAbortError } from "./transport-stream-shared-
|
|
8
|
+
import { d as transportAbortError } from "./transport-stream-shared-CPNv7A3r.mjs";
|
|
9
9
|
import { t as shortHash } from "./hash-CHgqbJmD.mjs";
|
|
10
|
-
import
|
|
11
|
-
import "./transform-messages-C8mBqZxF.mjs";
|
|
10
|
+
import "./transform-messages-DfjpNXNQ.mjs";
|
|
12
11
|
import { t as createSseByteGuard } from "./streaming-byte-guard-BrbkbwUu.mjs";
|
|
13
12
|
import { randomUUID } from "node:crypto";
|
|
14
13
|
import { HTTPClient, Mistral } from "@mistralai/mistralai";
|
|
@@ -97,7 +96,7 @@ const streamMistral = (model, context, options) => {
|
|
|
97
96
|
});
|
|
98
97
|
stream.end();
|
|
99
98
|
} catch (error) {
|
|
100
|
-
|
|
99
|
+
output.content = output.content.filter((block) => block.type !== "toolCall");
|
|
101
100
|
output.stopReason = options?.signal?.aborted ? "aborted" : "error";
|
|
102
101
|
output.errorMessage = formatMistralError(error);
|
|
103
102
|
stream.push({
|
|
@@ -243,6 +242,7 @@ function readMistralCachedPromptTokens(usage, promptTokens) {
|
|
|
243
242
|
}
|
|
244
243
|
async function consumeChatStream(model, output, stream, mistralStream) {
|
|
245
244
|
let currentBlock = null;
|
|
245
|
+
let terminalFinishReason;
|
|
246
246
|
const blocks = output.content;
|
|
247
247
|
const blockIndex = () => blocks.length - 1;
|
|
248
248
|
const toolBlockIdentities = /* @__PURE__ */ new Map();
|
|
@@ -337,7 +337,10 @@ async function consumeChatStream(model, output, stream, mistralStream) {
|
|
|
337
337
|
}
|
|
338
338
|
const choice = chunk.choices[0];
|
|
339
339
|
if (!choice) continue;
|
|
340
|
-
if (choice.finishReason)
|
|
340
|
+
if (choice.finishReason) {
|
|
341
|
+
terminalFinishReason = choice.finishReason;
|
|
342
|
+
output.stopReason = mapChatStopReason(choice.finishReason);
|
|
343
|
+
}
|
|
341
344
|
const delta = choice.delta;
|
|
342
345
|
if (delta.content !== null && delta.content !== void 0) {
|
|
343
346
|
const contentItems = typeof delta.content === "string" ? [delta.content] : delta.content;
|
|
@@ -484,6 +487,19 @@ async function consumeChatStream(model, output, stream, mistralStream) {
|
|
|
484
487
|
}
|
|
485
488
|
}
|
|
486
489
|
finishCurrentBlock(currentBlock);
|
|
490
|
+
if (!terminalFinishReason || output.stopReason !== "toolUse") {
|
|
491
|
+
blocks.splice(0, blocks.length, ...blocks.filter((block) => block.type !== "toolCall"));
|
|
492
|
+
if (!terminalFinishReason) throw new Error("Mistral stream ended without a terminal finish reason");
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
try {
|
|
496
|
+
for (const index of toolBlockIdentities.keys()) {
|
|
497
|
+
const rawArguments = blocks[index].partialArgs ?? "";
|
|
498
|
+
if (!isRecord(JSON.parse(rawArguments))) throw new Error("Mistral tool-call arguments must be a JSON object");
|
|
499
|
+
}
|
|
500
|
+
} catch {
|
|
501
|
+
throw new Error("Mistral completed tool call has invalid JSON arguments");
|
|
502
|
+
}
|
|
487
503
|
for (const index of toolBlockIdentities.keys()) {
|
|
488
504
|
const block = output.content.at(index);
|
|
489
505
|
if (block?.type !== "toolCall") continue;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { a as requiresClaudeMandatoryAdaptiveThinking, l as resolveClaudeNativeThinkingLevelMap } from "./src-QkygScBs.mjs";
|
|
2
|
+
//#region packages/ai/src/model-utils.ts
|
|
3
|
+
/** Calculates and stores model cost fields from token usage and per-million pricing. */
|
|
4
|
+
function calculateCost(model, usage) {
|
|
5
|
+
const cacheWrite1h = Math.min(usage.cacheWrite, Math.max(0, usage.cacheWrite1h ?? 0));
|
|
6
|
+
const cacheWrite5m = usage.cacheWrite - cacheWrite1h;
|
|
7
|
+
usage.cost.input = model.cost.input / 1e6 * usage.input;
|
|
8
|
+
usage.cost.output = model.cost.output / 1e6 * usage.output;
|
|
9
|
+
usage.cost.cacheRead = model.cost.cacheRead / 1e6 * usage.cacheRead;
|
|
10
|
+
usage.cost.cacheWrite = (model.cost.cacheWrite * cacheWrite5m + model.cost.input * 2 * cacheWrite1h) / 1e6;
|
|
11
|
+
usage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;
|
|
12
|
+
return usage.cost;
|
|
13
|
+
}
|
|
14
|
+
/** Replaces the catalog estimate when the provider reports an authoritative billed total. */
|
|
15
|
+
function applyProviderReportedUsageCost(usage, reportedCost) {
|
|
16
|
+
if (typeof reportedCost !== "number" || !Number.isFinite(reportedCost) || reportedCost < 0) return;
|
|
17
|
+
usage.cost.total = reportedCost;
|
|
18
|
+
usage.cost.totalOrigin = "provider-billed";
|
|
19
|
+
}
|
|
20
|
+
const EXTENDED_THINKING_LEVELS = [
|
|
21
|
+
"off",
|
|
22
|
+
"minimal",
|
|
23
|
+
"low",
|
|
24
|
+
"medium",
|
|
25
|
+
"high",
|
|
26
|
+
"xhigh",
|
|
27
|
+
"max"
|
|
28
|
+
];
|
|
29
|
+
function resolveThinkingLevelMap(model) {
|
|
30
|
+
return model.api === "anthropic-messages" ? resolveClaudeNativeThinkingLevelMap(model) ?? model.thinkingLevelMap : model.thinkingLevelMap;
|
|
31
|
+
}
|
|
32
|
+
/** Returns thinking levels exposed by a reasoning-capable model. */
|
|
33
|
+
function getSupportedThinkingLevels(model) {
|
|
34
|
+
const mandatoryAdaptiveContract = model.api === "anthropic-messages" && requiresClaudeMandatoryAdaptiveThinking(model);
|
|
35
|
+
if (!model.reasoning && !mandatoryAdaptiveContract) return ["off"];
|
|
36
|
+
const thinkingLevelMap = resolveThinkingLevelMap(model);
|
|
37
|
+
return EXTENDED_THINKING_LEVELS.filter((level) => {
|
|
38
|
+
const mapped = thinkingLevelMap?.[level];
|
|
39
|
+
if (mapped === null) return false;
|
|
40
|
+
if (level === "xhigh" || level === "max") return mapped !== void 0;
|
|
41
|
+
return true;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/** Clamps a requested thinking level to the closest supported level for a model. */
|
|
45
|
+
function clampThinkingLevel(model, level) {
|
|
46
|
+
const availableLevels = getSupportedThinkingLevels(model);
|
|
47
|
+
if (availableLevels.includes(level)) return level;
|
|
48
|
+
const requestedIndex = EXTENDED_THINKING_LEVELS.indexOf(level);
|
|
49
|
+
if (requestedIndex === -1) return availableLevels[0] ?? "off";
|
|
50
|
+
const thinkingLevelMap = resolveThinkingLevelMap(model);
|
|
51
|
+
if ((level === "xhigh" || level === "max") && thinkingLevelMap?.[level] === null) {
|
|
52
|
+
for (const candidate of EXTENDED_THINKING_LEVELS.slice(0, requestedIndex).toReversed()) if (availableLevels.includes(candidate)) return candidate;
|
|
53
|
+
}
|
|
54
|
+
for (const candidate of EXTENDED_THINKING_LEVELS.slice(requestedIndex)) if (availableLevels.includes(candidate)) return candidate;
|
|
55
|
+
for (const candidate of EXTENDED_THINKING_LEVELS.slice(0, requestedIndex).toReversed()) if (availableLevels.includes(candidate)) return candidate;
|
|
56
|
+
return availableLevels[0] ?? "off";
|
|
57
|
+
}
|
|
58
|
+
/** Compares model identity by provider and id. */
|
|
59
|
+
function modelsAreEqual(a, b) {
|
|
60
|
+
if (!a || !b) return false;
|
|
61
|
+
return a.id === b.id && a.provider === b.provider;
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { modelsAreEqual as a, getSupportedThinkingLevels as i, calculateCost as n, clampThinkingLevel as r, applyProviderReportedUsageCost as t };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
//#region packages/normalization-core/src/number-coercion.ts
|
|
2
|
+
/** Returns a number only when the input is already finite. */
|
|
3
|
+
function asFiniteNumber(value) {
|
|
4
|
+
return typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
5
|
+
}
|
|
6
|
+
/** Returns a finite number only when it satisfies the supplied inclusive/exclusive bounds. */
|
|
7
|
+
function asFiniteNumberInRange(value, range) {
|
|
8
|
+
const number = asFiniteNumber(value);
|
|
9
|
+
if (number === void 0) return;
|
|
10
|
+
if (range.min !== void 0) {
|
|
11
|
+
if (range.minExclusive ? number <= range.min : number < range.min) return;
|
|
12
|
+
}
|
|
13
|
+
if (range.max !== void 0) {
|
|
14
|
+
if (range.maxExclusive ? number >= range.max : number > range.max) return;
|
|
15
|
+
}
|
|
16
|
+
return number;
|
|
17
|
+
}
|
|
18
|
+
function normalizeNumericString(value) {
|
|
19
|
+
const trimmed = value.trim();
|
|
20
|
+
return trimmed ? trimmed : void 0;
|
|
21
|
+
}
|
|
22
|
+
/** Parses only safe integer numbers or base-10 integer strings. */
|
|
23
|
+
function parseStrictInteger(value) {
|
|
24
|
+
if (typeof value === "number") return Number.isSafeInteger(value) ? value : void 0;
|
|
25
|
+
if (typeof value !== "string") return;
|
|
26
|
+
const normalized = normalizeNumericString(value);
|
|
27
|
+
if (!normalized || !/^[+-]?\d+$/.test(normalized)) return;
|
|
28
|
+
const parsed = Number(normalized);
|
|
29
|
+
return Number.isSafeInteger(parsed) ? parsed : void 0;
|
|
30
|
+
}
|
|
31
|
+
/** Parses only finite decimal/scientific string tokens, rejecting partial numbers. */
|
|
32
|
+
function parseStrictFiniteNumber(value) {
|
|
33
|
+
if (typeof value === "number") return Number.isFinite(value) ? value : void 0;
|
|
34
|
+
if (typeof value !== "string") return;
|
|
35
|
+
const normalized = normalizeNumericString(value);
|
|
36
|
+
if (!normalized || !/^[+-]?(?:(?:\d+\.?\d*)|(?:\.\d+))(?:e[+-]?\d+)?$/i.test(normalized)) return;
|
|
37
|
+
const parsed = Number(normalized);
|
|
38
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
39
|
+
}
|
|
40
|
+
/** Conservative upper bound for Node timer delays. */
|
|
41
|
+
const MAX_TIMER_TIMEOUT_MS = 2147e6;
|
|
42
|
+
/** Clamps finite millisecond values into the Node-safe timer range. */
|
|
43
|
+
function clampTimerTimeoutMs(valueMs, minMs = 1) {
|
|
44
|
+
const value = asFiniteNumber(valueMs);
|
|
45
|
+
if (value === void 0) return;
|
|
46
|
+
return Math.min(Math.max(Math.floor(value), Math.max(1, Math.floor(minMs))), MAX_TIMER_TIMEOUT_MS);
|
|
47
|
+
}
|
|
48
|
+
/** Resolves arbitrary timeout input with fallback and minimum timer bounds. */
|
|
49
|
+
function resolveTimerTimeoutMs(valueMs, fallbackMs, minMs = 1) {
|
|
50
|
+
const value = asFiniteNumber(valueMs) ?? asFiniteNumber(fallbackMs);
|
|
51
|
+
const min = Math.max(0, Math.floor(minMs));
|
|
52
|
+
if (value === void 0) return min;
|
|
53
|
+
return Math.min(Math.max(Math.floor(value), min), MAX_TIMER_TIMEOUT_MS);
|
|
54
|
+
}
|
|
55
|
+
/** Parses strict positive integer values from numbers or strings. */
|
|
56
|
+
function parseStrictPositiveInteger(value) {
|
|
57
|
+
const parsed = parseStrictInteger(value);
|
|
58
|
+
return parsed !== void 0 && parsed > 0 ? parsed : void 0;
|
|
59
|
+
}
|
|
60
|
+
/** Parses strict non-negative integer values from numbers or strings. */
|
|
61
|
+
function parseStrictNonNegativeInteger(value) {
|
|
62
|
+
const parsed = parseStrictInteger(value);
|
|
63
|
+
return parsed !== void 0 && parsed >= 0 ? parsed : void 0;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { parseStrictPositiveInteger as a, parseStrictNonNegativeInteger as i, clampTimerTimeoutMs as n, resolveTimerTimeoutMs as o, parseStrictFiniteNumber as r, asFiniteNumberInRange as t };
|