@openclaw/ai 2026.9.1-beta.1 → 2026.9.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-compaction-replay-nhKaCXu6.mjs → anthropic-compaction-replay-OMJZ0uyo.mjs} +37 -34
- package/dist/{anthropic-DI4PZKKB.mjs → anthropic-hk7F7ptG.mjs} +28 -25
- package/dist/{anthropic-payload-policy-B_0n0enE.d.mts → anthropic-payload-policy-DBT1itQ-.d.mts} +3 -3
- package/dist/{api-registry-CTd8NzcD.d.mts → api-registry-Cs6HGNqY.d.mts} +2 -2
- package/dist/{azure-openai-responses-D8dI0ekg.mjs → azure-openai-responses-CN4Fy5zV.mjs} +10 -7
- package/dist/{number-coercion-H9qHik3g.mjs → base64-CEFBpSkN.mjs} +73 -1
- package/dist/{diagnostics-COpOtRwq.mjs → diagnostics-CPeq9F7y.mjs} +5 -1
- package/dist/{diagnostics-BaTA9eVl.d.mts → diagnostics-DnPnOui6.d.mts} +5 -1
- package/dist/diagnostics-KhXK-QJI.mjs +136 -0
- package/dist/diagnostics.d.mts +8 -3
- package/dist/diagnostics.mjs +4 -3
- package/dist/{env-api-keys-DrgeBuva.mjs → env-api-keys-bktO00EJ.mjs} +2 -15
- package/dist/event-stream-DeDhbCc5.d.mts +1 -0
- package/dist/{event-stream-LiXePESD.d.mts → event-stream-vK_7r3bj.d.mts} +1 -1
- package/dist/event-stream.d.mts +2 -2
- package/dist/{google-Od-LLdVK.mjs → google-CC-nrwXg.mjs} +8 -6
- package/dist/{google-shared-Bgr9lFPw.mjs → google-shared-CjPY0hZM.mjs} +25 -23
- package/dist/{google-vertex-aerRSXc4.mjs → google-vertex-DCr0pyzQ.mjs} +7 -5
- package/dist/{host-D51fmkH6.mjs → host-BIaiBURL.mjs} +2 -2
- package/dist/{host-DsbPMFU6.d.mts → host-BztR4tQj.d.mts} +3 -3
- package/dist/index-AfaxKT8w.d.mts +111 -0
- package/dist/index.d.mts +10 -11
- package/dist/index.mjs +5 -5
- package/dist/internal/anthropic.d.mts +53 -52
- package/dist/internal/anthropic.mjs +5 -5
- package/dist/internal/openai-responses-payload-policy.d.mts +3 -3
- package/dist/internal/openai-responses-payload-policy.mjs +2 -3
- package/dist/internal/openai.d.mts +65 -63
- package/dist/internal/openai.mjs +9 -9
- package/dist/internal/retry-after.d.mts +2 -3
- package/dist/internal/runtime.d.mts +43 -43
- package/dist/internal/runtime.mjs +10 -8
- package/dist/internal/shared.d.mts +25 -25
- package/dist/internal/shared.mjs +95 -4
- package/dist/{mistral-EiHdymeb.mjs → mistral-B7etBd_H.mjs} +25 -20
- package/dist/{openai-chatgpt-responses-DHpF9o1e.mjs → openai-chatgpt-responses-BAJ4gq3i.mjs} +63 -122
- package/dist/{openai-completions-EFPiUGfS.mjs → openai-completions-D0QZ0AyB.mjs} +24 -20
- package/dist/{openai-completions-compat-BefmHT26.d.mts → openai-completions-compat-4IjSBpr6.d.mts} +5 -5
- package/dist/{openai-completions-stream-DUlGwRMz.mjs → openai-completions-stream-DZjwK8vp.mjs} +97 -90
- package/dist/{openai-responses-BogP8OjX.mjs → openai-responses-BEUlxfDu.mjs} +12 -8
- package/dist/openai-responses-compaction-window-DO7yV7az.mjs +686 -0
- package/dist/{openai-responses-contracts-Dvj_UtPy.d.mts → openai-responses-contracts-bPzSN_Ba.d.mts} +14 -5
- package/dist/{openai-responses-payload-policy-CNGFT9zr.d.mts → openai-responses-payload-policy-rLRPsSmB.d.mts} +1 -0
- package/dist/{openai-responses-prompt-observer-internal-Cd4hJG-S.mjs → openai-responses-prompt-observer-internal-C7x4IK7r.mjs} +4 -18
- package/dist/{openai-responses-shared-DJThc6jW.mjs → openai-responses-shared-DiAdpNAM.mjs} +274 -221
- package/dist/{openai-tool-schema-ho-hIkQf.mjs → openai-tool-schema-BMiHFH36.mjs} +14 -12
- package/dist/{provider-error-DDOs_Bz0.mjs → provider-error-B6EGq6gg.mjs} +14 -85
- package/dist/{provider-options-MdMBLzlU.d.mts → provider-options-CxFPtvh7.d.mts} +11 -3
- package/dist/{provider-transcript-transform-C01bQ5a3.mjs → provider-transcript-transform-WvJmFUAf.mjs} +1 -1
- package/dist/provider-types.d.mts +19 -20
- package/dist/providers.d.mts +5 -5
- package/dist/providers.mjs +9 -9
- package/dist/{reasoning-tag-text-partitioner-5ygO2rZc.mjs → reasoning-tag-text-partitioner-C-4uedDb.mjs} +93 -77
- package/dist/rolldown-runtime-BhDjJH2R.mjs +15 -0
- package/dist/{sanitize-unicode-DCkltN94.mjs → sanitize-unicode-S6binQG-.mjs} +2 -8
- package/dist/{simple-options-CFj7x3J4.mjs → simple-options-0PLDyJ-d.mjs} +42 -6
- package/dist/{src-Bu3FiFAG.mjs → src-C8U7lkoa.mjs} +75 -2
- package/dist/{stream-first-event-timeout-MK28puvq.mjs → stream-first-event-timeout-DcNjoFQE.mjs} +1 -1
- package/dist/{tool-schema-json-projection-qvTEs5Am.mjs → tool-schema-json-projection-BtZiml7r.mjs} +21 -31
- package/dist/{transport-stream-shared-rvaCyFYt.d.mts → transport-stream-shared-BrvFTkoO.d.mts} +5 -5
- package/dist/{transport-stream-shared-ljShVIZB.mjs → transport-stream-shared-CytPVLIg.mjs} +18 -5
- package/dist/{transport-utils-LJ1_rbi-.mjs → transport-utils-CtuS1Upe.mjs} +5 -8
- package/dist/transports.d.mts +120 -85
- package/dist/transports.mjs +218 -249
- package/dist/types-B5EFUmXs.d.mts +1 -0
- package/dist/{types-DhLoJbFm.d.mts → types-DbrhszyQ.d.mts} +27 -13
- package/dist/types.d.mts +7 -7
- package/dist/types.mjs +4 -4
- package/dist/{validation-Dk7q7NMN.d.mts → validation-BOwtcl9X.d.mts} +1 -1
- package/dist/{validation-B61OhAio.mjs → validation-CJZtym2g.mjs} +7 -5
- package/dist/validation.d.mts +1 -1
- package/dist/validation.mjs +1 -1
- package/package.json +5 -5
- package/dist/anthropic-BECQCNdF.d.mts +0 -98
- package/dist/event-stream-BKp4fOt_.d.mts +0 -1
- package/dist/index-Qbej8io0.d.mts +0 -3
- package/dist/openai-responses-contracts-QUY12X0B.mjs +0 -233
- package/dist/openai-responses-payload-policy-D8EdimYe.mjs +0 -204
- package/dist/provider-options-AvldWZt8.mjs +0 -21
- package/dist/tls-certificate-errors-DXSpluKI.mjs +0 -93
- package/dist/types-GiAjXatj.d.mts +0 -1
package/dist/internal/openai.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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 {
|
|
6
|
-
import { _ as cleanSchemaForGemini, a as resolveOpenAIProjectedToolsStrictToolFlag, b as reconcileOpenAIResponsesToolChoice, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, f as stripUnsupportedSchemaKeywords, g as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, h as findLlamacppGbnfSchemaViolations, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as cleanSchemaForLlamacppGbnf, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as projectOpenAITools, y as reconcileOpenAICompletionsToolChoice } from "../openai-tool-schema-
|
|
7
|
-
import {
|
|
2
|
+
import { a as codeModeToolSurfaceObserver, o as reasoningTagTextPolicy } from "../simple-options-0PLDyJ-d.mjs";
|
|
3
|
+
import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-BtZiml7r.mjs";
|
|
4
|
+
import { g as convertMessages } from "../openai-completions-stream-DZjwK8vp.mjs";
|
|
5
|
+
import { A as isAzureResponsesTextDeltaEvent, D as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, E as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, M as isResponsesTextContentPartType, N as isResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, P as resolveResponsesMessageSnapshotCollapse, T as readResponsesToolCallItemIdentity, d as resolveResponsesTerminalStopReason, j as isAzureResponsesTextDeltaEventType, k as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, l as mapResponsesTerminalUsage, u as readResponsesReasoningTokens, w as createResponsesToolCallTracker } from "../openai-responses-shared-DiAdpNAM.mjs";
|
|
6
|
+
import { _ as cleanSchemaForGemini, a as resolveOpenAIProjectedToolsStrictToolFlag, b as reconcileOpenAIResponsesToolChoice, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, f as stripUnsupportedSchemaKeywords, g as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, h as findLlamacppGbnfSchemaViolations, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as cleanSchemaForLlamacppGbnf, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as projectOpenAITools, y as reconcileOpenAICompletionsToolChoice } from "../openai-tool-schema-BMiHFH36.mjs";
|
|
7
|
+
import { A as supportsOpenAITemperature, C as isOpenAIGpt54MiniModel, D as resolveOpenAIReasoningEffortForModel, E as normalizeOpenAIReasoningEffort, O as resolveOpenAISupportedReasoningEfforts, S as responsesPromptObserver, T as isOpenAIGpt56Model, k as supportsOpenAIReasoningEffort, w as isOpenAIGpt55Model } from "../openai-responses-compaction-window-DO7yV7az.mjs";
|
|
8
8
|
import { t as mapOpenAIStopReason } from "../openai-stop-reason-Drnn_6Qj.mjs";
|
|
9
9
|
import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
|
|
10
|
-
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-
|
|
11
|
-
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-
|
|
12
|
-
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
10
|
+
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-D0QZ0AyB.mjs";
|
|
11
|
+
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BEUlxfDu.mjs";
|
|
12
|
+
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
//#region packages/ai/src/internal/retry-after.d.ts
|
|
2
2
|
/** Parses the three HTTP-date forms accepted for Retry-After without Date.parse normalization. */
|
|
3
|
-
declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { parseRetryAfterHttpDateMs };
|
|
3
|
+
export declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
|
|
4
|
+
//#endregion
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../
|
|
3
|
-
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-
|
|
4
|
-
import "../types-
|
|
1
|
+
import "../index-AfaxKT8w.mjs";
|
|
2
|
+
import { A as ModelThinkingLevel, D as Model, J as StreamOptions, V as ProviderStreamOptions, W as SimpleStreamOptions, a as AssistantMessage, at as Usage, d as Context, n as Api, s as AssistantMessageEventStreamContract } from "../types-DbrhszyQ.mjs";
|
|
3
|
+
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-Cs6HGNqY.mjs";
|
|
4
|
+
import "../types-B5EFUmXs.mjs";
|
|
5
5
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
6
|
-
import { C as FirstStreamEventInternalOptions, D as getFirstStreamEventTimeoutHandler, E as createFirstStreamEventTimeoutError, O as getFirstStreamEventTimeoutMs, S as FirstStreamEventAbortController, T as createFirstStreamEventAbortController, g as parseTerminalToolCallArguments, k as withFirstStreamEventTimeout, w as FirstStreamEventTimeoutContext } from "../transport-stream-shared-
|
|
6
|
+
import { C as FirstStreamEventInternalOptions, D as getFirstStreamEventTimeoutHandler, E as createFirstStreamEventTimeoutError, O as getFirstStreamEventTimeoutMs, S as FirstStreamEventAbortController, T as createFirstStreamEventAbortController, g as parseTerminalToolCallArguments, k as withFirstStreamEventTimeout, w as FirstStreamEventTimeoutContext } from "../transport-stream-shared-BrvFTkoO.mjs";
|
|
7
7
|
//#region packages/ai/src/internal/default-runtime.d.ts
|
|
8
|
-
declare const defaultApiRegistry: {
|
|
8
|
+
export declare const defaultApiRegistry: {
|
|
9
9
|
registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
|
|
10
10
|
getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
|
|
11
11
|
getApiProviders: () => RegisteredApiProvider[];
|
|
12
12
|
unregisterApiProviders: (sourceId: string) => void;
|
|
13
13
|
clearApiProviders: () => void;
|
|
14
14
|
};
|
|
15
|
-
declare const defaultLlmRuntime: {
|
|
15
|
+
export declare const defaultLlmRuntime: {
|
|
16
16
|
registry: {
|
|
17
17
|
registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
|
|
18
18
|
getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
|
|
@@ -25,9 +25,9 @@ declare const defaultLlmRuntime: {
|
|
|
25
25
|
streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract;
|
|
26
26
|
completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
|
|
27
27
|
};
|
|
28
|
-
declare const getApiProvider: (api: Api) => RegisteredApiProvider | undefined, getApiProviders: () => RegisteredApiProvider[];
|
|
29
|
-
declare function clearApiProviders(): void;
|
|
30
|
-
declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract, complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>, streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract, completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
|
|
28
|
+
export declare const getApiProvider: (api: Api) => RegisteredApiProvider | undefined, getApiProviders: () => RegisteredApiProvider[];
|
|
29
|
+
export declare function clearApiProviders(): void;
|
|
30
|
+
export declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract, complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>, streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract, completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
|
|
31
31
|
//#endregion
|
|
32
32
|
//#region packages/ai/src/env-api-keys.d.ts
|
|
33
33
|
/**
|
|
@@ -37,39 +37,39 @@ declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, o
|
|
|
37
37
|
* credential sources such as AWS profiles, AWS IAM credentials, and Google
|
|
38
38
|
* Application Default Credentials.
|
|
39
39
|
*/
|
|
40
|
-
declare function findEnvKeys(provider: string): string[] | undefined;
|
|
40
|
+
export declare function findEnvKeys(provider: string): string[] | undefined;
|
|
41
41
|
/**
|
|
42
42
|
* Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.
|
|
43
43
|
*
|
|
44
44
|
* Will not return API keys for providers that require OAuth tokens.
|
|
45
45
|
*/
|
|
46
|
-
declare function getEnvApiKey(provider: string): string | undefined;
|
|
46
|
+
export declare function getEnvApiKey(provider: string): string | undefined;
|
|
47
47
|
//#endregion
|
|
48
48
|
//#region packages/ai/src/model-utils.d.ts
|
|
49
49
|
/** Calculates and stores model cost fields from token usage and per-million pricing. */
|
|
50
|
-
declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
|
|
50
|
+
export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
|
|
51
51
|
/** Replaces the catalog estimate when the provider reports an authoritative billed total. */
|
|
52
|
-
declare function applyProviderReportedUsageCost(usage: Usage, reportedCost: unknown): void;
|
|
52
|
+
export declare function applyProviderReportedUsageCost(usage: Usage, reportedCost: unknown): void;
|
|
53
53
|
/** Returns thinking levels exposed by a reasoning-capable model. */
|
|
54
|
-
declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
|
|
54
|
+
export declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
|
|
55
55
|
/** Clamps a requested thinking level to the closest supported level for a model. */
|
|
56
|
-
declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
|
|
56
|
+
export declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
|
|
57
57
|
/** Compares model identity by provider and id. */
|
|
58
|
-
declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
|
|
58
|
+
export declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
|
|
59
59
|
//#endregion
|
|
60
60
|
//#region packages/ai/src/session-resources.d.ts
|
|
61
61
|
/** Cleanup callback for resources tied to an LLM session or all sessions. */
|
|
62
|
-
type SessionResourceCleanup = (sessionId?: string) => void;
|
|
62
|
+
export type SessionResourceCleanup = (sessionId?: string) => void;
|
|
63
63
|
/** Registers a session-resource cleanup hook and returns an unregister function. */
|
|
64
|
-
declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
|
|
64
|
+
export declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
|
|
65
65
|
/** Runs all registered cleanup hooks, aggregating failures after every hook has run. */
|
|
66
|
-
declare function cleanupSessionResources(sessionId?: string): void;
|
|
66
|
+
export declare function cleanupSessionResources(sessionId?: string): void;
|
|
67
67
|
//#endregion
|
|
68
68
|
//#region packages/ai/src/utils/deferred-event-buffer.d.ts
|
|
69
69
|
type EventSink<T> = {
|
|
70
70
|
push(event: T): void;
|
|
71
71
|
};
|
|
72
|
-
declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEvent?: () => void): {
|
|
72
|
+
export declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEvent?: () => void): {
|
|
73
73
|
push(event: T): void;
|
|
74
74
|
flush(): void;
|
|
75
75
|
discard(): void;
|
|
@@ -77,11 +77,11 @@ declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEven
|
|
|
77
77
|
//#endregion
|
|
78
78
|
//#region packages/ai/src/utils/hash.d.ts
|
|
79
79
|
/** Fast deterministic hash to shorten long strings */
|
|
80
|
-
declare function shortHash(str: string): string;
|
|
80
|
+
export declare function shortHash(str: string): string;
|
|
81
81
|
//#endregion
|
|
82
82
|
//#region packages/ai/src/utils/headers.d.ts
|
|
83
83
|
/** Converts a Headers object to a plain record for provider request handling. */
|
|
84
|
-
declare function headersToRecord(headers: Headers): Record<string, string>;
|
|
84
|
+
export declare function headersToRecord(headers: Headers): Record<string, string>;
|
|
85
85
|
//#endregion
|
|
86
86
|
//#region packages/ai/src/utils/json-parse.d.ts
|
|
87
87
|
/**
|
|
@@ -89,8 +89,8 @@ declare function headersToRecord(headers: Headers): Record<string, string>;
|
|
|
89
89
|
* - escaping raw control characters inside strings
|
|
90
90
|
* - doubling backslashes before invalid escape characters
|
|
91
91
|
*/
|
|
92
|
-
declare function repairJson(json: string): string;
|
|
93
|
-
declare function parseJsonWithRepair(json: string): unknown;
|
|
92
|
+
export declare function repairJson(json: string): string;
|
|
93
|
+
export declare function parseJsonWithRepair(json: string): unknown;
|
|
94
94
|
/**
|
|
95
95
|
* Attempts to parse potentially incomplete JSON during streaming.
|
|
96
96
|
* Always returns a valid object, even if the JSON is incomplete.
|
|
@@ -98,9 +98,9 @@ declare function parseJsonWithRepair(json: string): unknown;
|
|
|
98
98
|
* @param partialJson The partial JSON string from streaming
|
|
99
99
|
* @returns Parsed object or empty object if parsing fails
|
|
100
100
|
*/
|
|
101
|
-
declare function parseStreamingJson(partialJson: string | undefined): Record<string, unknown>;
|
|
101
|
+
export declare function parseStreamingJson(partialJson: string | undefined): Record<string, unknown>;
|
|
102
102
|
/** Returns true when the streamed argument buffer crossed its next preview checkpoint. */
|
|
103
|
-
type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
|
|
103
|
+
export type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
|
|
104
104
|
/**
|
|
105
105
|
* Streamed tool-call arguments are preview-only; the terminal parse re-reads
|
|
106
106
|
* the full buffer authoritatively at content_block_stop. Reparsing every delta
|
|
@@ -108,26 +108,26 @@ type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
|
|
|
108
108
|
* size, so refresh previews on a geometric length schedule instead — bounded
|
|
109
109
|
* staleness, linear total parse work.
|
|
110
110
|
*/
|
|
111
|
-
declare function createToolArgumentPreviewSchedule(): ToolArgumentPreviewSchedule;
|
|
111
|
+
export declare function createToolArgumentPreviewSchedule(): ToolArgumentPreviewSchedule;
|
|
112
112
|
//#endregion
|
|
113
113
|
//#region packages/ai/src/utils/llm-request-activity.d.ts
|
|
114
|
-
declare function notifyLlmRequestActivity(signal: AbortSignal | undefined): void;
|
|
115
|
-
declare function onLlmRequestActivity(signal: AbortSignal, listener: () => void): () => void;
|
|
114
|
+
export declare function notifyLlmRequestActivity(signal: AbortSignal | undefined): void;
|
|
115
|
+
export declare function onLlmRequestActivity(signal: AbortSignal, listener: () => void): () => void;
|
|
116
116
|
//#endregion
|
|
117
117
|
//#region packages/ai/src/utils/oauth/openai-chatgpt-jwt.d.ts
|
|
118
118
|
declare const OPENAI_CODEX_AUTH_CLAIM = "https://api.openai.com/auth";
|
|
119
|
-
type OpenAICodexJwtPayload = {
|
|
119
|
+
export type OpenAICodexJwtPayload = {
|
|
120
120
|
[OPENAI_CODEX_AUTH_CLAIM]?: {
|
|
121
121
|
chatgpt_account_id?: unknown;
|
|
122
122
|
};
|
|
123
123
|
[key: string]: unknown;
|
|
124
124
|
};
|
|
125
|
-
declare function decodeOpenAICodexJwtPayload(token: string): OpenAICodexJwtPayload | null;
|
|
126
|
-
declare function resolveOpenAICodexAccountId(token: string): string | null;
|
|
125
|
+
export declare function decodeOpenAICodexJwtPayload(token: string): OpenAICodexJwtPayload | null;
|
|
126
|
+
export declare function resolveOpenAICodexAccountId(token: string): string | null;
|
|
127
127
|
//#endregion
|
|
128
128
|
//#region packages/ai/src/utils/overflow.d.ts
|
|
129
129
|
/** Detects DS4-style raw token-count context overflow errors. */
|
|
130
|
-
declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
|
|
130
|
+
export declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
|
|
131
131
|
declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
|
|
132
132
|
readonly "assistant-error": RegExp[];
|
|
133
133
|
readonly "failover-explicit": RegExp[];
|
|
@@ -137,9 +137,9 @@ declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
|
|
|
137
137
|
readonly "tpm-rate-limit-hint": readonly [RegExp];
|
|
138
138
|
readonly "rate-limit-hint": readonly [RegExp];
|
|
139
139
|
};
|
|
140
|
-
type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
|
|
140
|
+
export type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
|
|
141
141
|
/** Match one canonical context-overflow wording scope without applying caller policy. */
|
|
142
|
-
declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
|
|
142
|
+
export declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
|
|
143
143
|
/**
|
|
144
144
|
* Check if an assistant message represents a context overflow error.
|
|
145
145
|
*
|
|
@@ -191,7 +191,7 @@ declare function matchesContextOverflowMessage(errorMessage: string, scope: Cont
|
|
|
191
191
|
* @param contextWindow - Optional context window size for detecting silent overflow (z.ai)
|
|
192
192
|
* @returns true if the message indicates a context overflow
|
|
193
193
|
*/
|
|
194
|
-
declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
|
|
194
|
+
export declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
|
|
195
195
|
//#endregion
|
|
196
196
|
//#region packages/markdown-core/src/reasoning-tag-parser.d.ts
|
|
197
197
|
type ReasoningTagTextDelta = {
|
|
@@ -214,7 +214,7 @@ interface ReasoningTagTextPartitioner {
|
|
|
214
214
|
isInsideReasoning(): boolean;
|
|
215
215
|
}
|
|
216
216
|
/** Creates a block-incremental parser that emits only Markdown-stable text. */
|
|
217
|
-
declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
|
|
217
|
+
export declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
|
|
218
218
|
//#endregion
|
|
219
219
|
//#region packages/ai/src/utils/streaming-byte-guard.d.ts
|
|
220
220
|
/**
|
|
@@ -229,21 +229,21 @@ declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitione
|
|
|
229
229
|
* Internal helper for now. If extensions need it, promote to a plugin-SDK
|
|
230
230
|
* subpath in a separate, dedicated PR with full SDK metadata sync.
|
|
231
231
|
*/
|
|
232
|
-
type SseStreamOverflow = {
|
|
232
|
+
export type SseStreamOverflow = {
|
|
233
233
|
size: number;
|
|
234
234
|
maxBytes: number;
|
|
235
235
|
};
|
|
236
|
-
type ReadSseStreamWithLimitOptions = {
|
|
236
|
+
export type ReadSseStreamWithLimitOptions = {
|
|
237
237
|
maxBytes: number;
|
|
238
238
|
onOverflow?: (params: SseStreamOverflow) => Error;
|
|
239
239
|
};
|
|
240
|
-
type SseByteGuard = {
|
|
240
|
+
export type SseByteGuard = {
|
|
241
241
|
read(): Promise<ReadableStreamReadResult<Uint8Array>>;
|
|
242
242
|
cancel(reason?: unknown): Promise<void>;
|
|
243
243
|
totalBytes(): number;
|
|
244
244
|
overflowed(): boolean;
|
|
245
245
|
cancelled(): boolean;
|
|
246
246
|
};
|
|
247
|
-
declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
|
|
247
|
+
export declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
|
|
248
248
|
//#endregion
|
|
249
|
-
export {
|
|
249
|
+
export { FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, parseTerminalToolCallArguments, sanitizeSurrogates, withFirstStreamEventTimeout };
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as isProviderRefusalAssistantError } from "../diagnostics-CPeq9F7y.mjs";
|
|
2
2
|
import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
|
|
3
|
-
import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-
|
|
4
|
-
import {
|
|
3
|
+
import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-S6binQG-.mjs";
|
|
4
|
+
import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-bktO00EJ.mjs";
|
|
5
|
+
import { C as headersToRecord, m as parseTerminalToolCallArguments } from "../transport-stream-shared-CytPVLIg.mjs";
|
|
5
6
|
import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
|
|
6
7
|
import { i as repairJson, n as parseJsonWithRepair, r as parseStreamingJson, t as createToolArgumentPreviewSchedule } from "../json-parse-BuAJEbdW.mjs";
|
|
7
8
|
import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
|
|
8
9
|
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-
|
|
10
|
-
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-
|
|
10
|
+
import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-DcNjoFQE.mjs";
|
|
11
|
+
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-C-4uedDb.mjs";
|
|
12
|
+
import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
|
|
11
13
|
import { n as registerSessionResourceCleanup, t as cleanupSessionResources } from "../session-resources-CkR4WWy1.mjs";
|
|
12
14
|
import { n as resolveOpenAICodexAccountId, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-KWcgd0d_.mjs";
|
|
13
|
-
import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
|
|
14
15
|
//#region packages/ai/src/internal/default-runtime.ts
|
|
15
16
|
const DEFAULT_RUNTIME_KEY = Symbol.for("openclaw.ai.defaultRuntime");
|
|
16
17
|
function resolveDefaultRuntime() {
|
|
@@ -54,7 +55,7 @@ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
|
|
|
54
55
|
/exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,
|
|
55
56
|
/input \(\d+ tokens\) is longer than the model'?s context length \(\d+ tokens\)/i,
|
|
56
57
|
/exceeds the limit of \d+/i,
|
|
57
|
-
/exceeds the available context size/i,
|
|
58
|
+
/(?:exceeds the available context size|context size has been exceeded)/i,
|
|
58
59
|
/greater than the context length/i,
|
|
59
60
|
/context window exceeds limit/i,
|
|
60
61
|
/exceeded model token limit/i,
|
|
@@ -100,7 +101,7 @@ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
|
|
|
100
101
|
/\binput exceeds the maximum number of tokens\b/i,
|
|
101
102
|
/\bollama error:\s*context length exceeded(?:,\s*too many tokens)?\b/i,
|
|
102
103
|
/\btotal tokens?.*exceeds? (?:the )?(?:model(?:'s)? )?(?:max|maximum|limit)/i,
|
|
103
|
-
/\b(?:request|prompt) \(\d[\d,]*\s*tokens?\) exceeds (?:the )?available context size\b/i,
|
|
104
|
+
/\b(?:(?:request|prompt) \(\d[\d,]*\s*tokens?\) exceeds (?:the )?available context size|context size has been exceeded)\b/i,
|
|
104
105
|
/\binput (?:is )?too long for (?:the )?model\b/i
|
|
105
106
|
],
|
|
106
107
|
"failover-hint": [/context.*overflow|context window.*(too (?:large|long)|exceed|over|limit|max(?:imum)?|requested|sent|tokens)|prompt.*(too (?:large|long)|exceed|over|limit|max(?:imum)?)|(?:request|input).*(?:context|window|length|token).*(too (?:large|long)|exceed|over|limit|max(?:imum)?)/i],
|
|
@@ -183,6 +184,7 @@ function resolveContextInputTokens(message) {
|
|
|
183
184
|
* @returns true if the message indicates a context overflow
|
|
184
185
|
*/
|
|
185
186
|
function isContextOverflow(message, contextWindow) {
|
|
187
|
+
if (isProviderRefusalAssistantError(message)) return false;
|
|
186
188
|
if (message.stopReason === "error" && message.errorMessage) {
|
|
187
189
|
const errorMessage = message.errorMessage;
|
|
188
190
|
if (!NON_OVERFLOW_PATTERNS.some((p) => p.test(errorMessage)) && matchesContextOverflowMessage(errorMessage, "assistant-error")) return true;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as Model, E as Message, J as
|
|
2
|
-
import "../types-
|
|
1
|
+
import { $ as ThinkingLevel, D as Model, E as Message, J as StreamOptions, W as SimpleStreamOptions, Z as ThinkingBudgets, a as AssistantMessage, n as Api } from "../types-DbrhszyQ.mjs";
|
|
2
|
+
import "../types-B5EFUmXs.mjs";
|
|
3
3
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
4
4
|
import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
|
|
5
5
|
//#region packages/ai/src/providers/simple-options.d.ts
|
|
@@ -7,29 +7,29 @@ type FirstEventStreamOptions = {
|
|
|
7
7
|
firstEventTimeoutMs?: number;
|
|
8
8
|
onFirstEventTimeout?: (reason: Error) => void;
|
|
9
9
|
};
|
|
10
|
-
declare function buildBaseOptions(model: Model, options?: SimpleStreamOptions, apiKey?: string): StreamOptions & FirstEventStreamOptions;
|
|
11
|
-
declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number): number;
|
|
12
|
-
declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number | undefined): number | undefined;
|
|
13
|
-
declare function clampReasoning(effort: ThinkingLevel): Exclude<ThinkingLevel, "xhigh">;
|
|
14
|
-
declare function clampReasoning(effort: ThinkingLevel | undefined): Exclude<ThinkingLevel, "xhigh"> | undefined;
|
|
15
|
-
declare function adjustMaxTokensForThinking(baseMaxTokens: number | undefined, modelMaxTokens: number, reasoningLevel: ThinkingLevel, customBudgets?: ThinkingBudgets): {
|
|
10
|
+
export declare function buildBaseOptions(model: Model, options?: SimpleStreamOptions, apiKey?: string): StreamOptions & FirstEventStreamOptions;
|
|
11
|
+
export declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number): number;
|
|
12
|
+
export declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number | undefined): number | undefined;
|
|
13
|
+
export declare function clampReasoning(effort: ThinkingLevel): Exclude<ThinkingLevel, "xhigh">;
|
|
14
|
+
export declare function clampReasoning(effort: ThinkingLevel | undefined): Exclude<ThinkingLevel, "xhigh"> | undefined;
|
|
15
|
+
export declare function adjustMaxTokensForThinking(baseMaxTokens: number | undefined, modelMaxTokens: number, reasoningLevel: ThinkingLevel, customBudgets?: ThinkingBudgets): {
|
|
16
16
|
maxTokens: number;
|
|
17
17
|
thinkingBudget: number;
|
|
18
18
|
};
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region packages/ai/src/providers/tool-result-text.d.ts
|
|
21
21
|
/** Media metadata alone is not an attachment; provider emitters need inline bytes. */
|
|
22
|
-
declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
|
|
22
|
+
export declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
|
|
23
23
|
data: string;
|
|
24
24
|
};
|
|
25
25
|
/** Image metadata alone is not an attachment; provider emitters need inline bytes. */
|
|
26
|
-
declare function isImageWithMediaPayload<T>(block: T): block is T & {
|
|
26
|
+
export declare function isImageWithMediaPayload<T>(block: T): block is T & {
|
|
27
27
|
type: "image";
|
|
28
28
|
data: string;
|
|
29
29
|
};
|
|
30
|
-
declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
|
|
31
|
-
declare function extractToolResultBlockText(block: unknown): string | undefined;
|
|
32
|
-
declare function extractToolResultText(blocks: readonly unknown[], options?: {
|
|
30
|
+
export declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
|
|
31
|
+
export declare function extractToolResultBlockText(block: unknown): string | undefined;
|
|
32
|
+
export declare function extractToolResultText(blocks: readonly unknown[], options?: {
|
|
33
33
|
includeStructured?: boolean;
|
|
34
34
|
}): string;
|
|
35
35
|
type ToolResultMediaSupport = {
|
|
@@ -37,8 +37,8 @@ type ToolResultMediaSupport = {
|
|
|
37
37
|
audio: boolean;
|
|
38
38
|
};
|
|
39
39
|
/** Describe media that cannot be represented on the target provider wire. */
|
|
40
|
-
declare function describeUnsupportedToolResultMedia(blocks: readonly unknown[], support: ToolResultMediaSupport): string | undefined;
|
|
41
|
-
declare function formatToolResultText(params: {
|
|
40
|
+
export declare function describeUnsupportedToolResultMedia(blocks: readonly unknown[], support: ToolResultMediaSupport): string | undefined;
|
|
41
|
+
export declare function formatToolResultText(params: {
|
|
42
42
|
text: string;
|
|
43
43
|
mediaPlaceholder?: string;
|
|
44
44
|
omittedMediaPlaceholder?: string;
|
|
@@ -46,29 +46,29 @@ declare function formatToolResultText(params: {
|
|
|
46
46
|
}): string;
|
|
47
47
|
//#endregion
|
|
48
48
|
//#region packages/ai/src/transcript-transform.d.ts
|
|
49
|
-
declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
|
|
49
|
+
export declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
|
|
50
50
|
//#endregion
|
|
51
51
|
//#region packages/ai/src/utils/system-prompt-cache-boundary.d.ts
|
|
52
|
-
declare const SYSTEM_PROMPT_CACHE_BOUNDARY = "\n<!-- OPENCLAW_CACHE_BOUNDARY -->\n";
|
|
53
|
-
declare function stripSystemPromptCacheBoundary(text: string): string;
|
|
54
|
-
declare function ensureSystemPromptCacheBoundary(systemPrompt: string): string;
|
|
55
|
-
declare function splitSystemPromptCacheBoundary(text: string): {
|
|
52
|
+
export declare const SYSTEM_PROMPT_CACHE_BOUNDARY = "\n<!-- OPENCLAW_CACHE_BOUNDARY -->\n";
|
|
53
|
+
export declare function stripSystemPromptCacheBoundary(text: string): string;
|
|
54
|
+
export declare function ensureSystemPromptCacheBoundary(systemPrompt: string): string;
|
|
55
|
+
export declare function splitSystemPromptCacheBoundary(text: string): {
|
|
56
56
|
stablePrefix: string;
|
|
57
57
|
dynamicSuffix: string;
|
|
58
58
|
} | undefined;
|
|
59
|
-
declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
|
|
59
|
+
export declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
|
|
60
60
|
systemPrompt: string;
|
|
61
61
|
systemPromptAddition?: string;
|
|
62
62
|
}): string;
|
|
63
63
|
//#endregion
|
|
64
64
|
//#region packages/ai/src/utils/tls-certificate-errors.d.ts
|
|
65
|
-
type TlsCertificateErrorKind = "certificate_invalid" | "hostname_mismatch";
|
|
66
|
-
type TlsCertificateErrorDetails = {
|
|
65
|
+
export type TlsCertificateErrorKind = "certificate_invalid" | "hostname_mismatch";
|
|
66
|
+
export type TlsCertificateErrorDetails = {
|
|
67
67
|
kind: TlsCertificateErrorKind;
|
|
68
68
|
code?: string;
|
|
69
69
|
message: string;
|
|
70
70
|
};
|
|
71
71
|
/** Classify deterministic Node/OpenSSL certificate validation failures. */
|
|
72
|
-
declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
|
|
72
|
+
export declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
|
|
73
73
|
//#endregion
|
|
74
|
-
export {
|
|
74
|
+
export { normalizePromptCapabilityIds, normalizeStructuredPromptSection, sanitizeSurrogates, sortPromptCacheToolsByName };
|
package/dist/internal/shared.mjs
CHANGED
|
@@ -1,5 +1,96 @@
|
|
|
1
|
-
import { t as sanitizeSurrogates } from "../sanitize-unicode-
|
|
2
|
-
import { a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, i as transformMessages, l as formatToolResultText, o as describeUnsupportedToolResultMedia, s as extractToolResultBlockText, u as hasMediaPayload } from "../host-
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { t as sanitizeSurrogates } from "../sanitize-unicode-S6binQG-.mjs";
|
|
2
|
+
import { a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, i as transformMessages, l as formatToolResultText, o as describeUnsupportedToolResultMedia, s as extractToolResultBlockText, u as hasMediaPayload } from "../host-BIaiBURL.mjs";
|
|
3
|
+
import { c as ensureSystemPromptCacheBoundary, d as stripSystemPromptCacheBoundary, f as normalizePromptCapabilityIds, i as clampReasoning, l as prependSystemPromptAdditionAfterCacheBoundary, m as sortPromptCacheToolsByName, n as buildBaseOptions, p as normalizeStructuredPromptSection, r as clampMaxTokensToModel, s as SYSTEM_PROMPT_CACHE_BOUNDARY, t as adjustMaxTokensForThinking, u as splitSystemPromptCacheBoundary } from "../simple-options-0PLDyJ-d.mjs";
|
|
4
|
+
//#region packages/ai/src/utils/tls-certificate-errors.ts
|
|
5
|
+
const HOSTNAME_MISMATCH_CODES = /* @__PURE__ */ new Set(["ERR_TLS_CERT_ALTNAME_INVALID", "HOSTNAME_MISMATCH"]);
|
|
6
|
+
const CERTIFICATE_INVALID_CODES = /* @__PURE__ */ new Set([
|
|
7
|
+
"CERT_CHAIN_TOO_LONG",
|
|
8
|
+
"CERT_HAS_EXPIRED",
|
|
9
|
+
"CERT_NOT_YET_VALID",
|
|
10
|
+
"CERT_REJECTED",
|
|
11
|
+
"CERT_REVOKED",
|
|
12
|
+
"CERT_SIGNATURE_FAILURE",
|
|
13
|
+
"CERT_UNTRUSTED",
|
|
14
|
+
"CRL_HAS_EXPIRED",
|
|
15
|
+
"CRL_NOT_YET_VALID",
|
|
16
|
+
"CRL_SIGNATURE_FAILURE",
|
|
17
|
+
"DEPTH_ZERO_SELF_SIGNED_CERT",
|
|
18
|
+
"ERROR_IN_CERT_NOT_AFTER_FIELD",
|
|
19
|
+
"ERROR_IN_CERT_NOT_BEFORE_FIELD",
|
|
20
|
+
"ERROR_IN_CRL_LAST_UPDATE_FIELD",
|
|
21
|
+
"ERROR_IN_CRL_NEXT_UPDATE_FIELD",
|
|
22
|
+
"INVALID_CA",
|
|
23
|
+
"INVALID_PURPOSE",
|
|
24
|
+
"PATH_LENGTH_EXCEEDED",
|
|
25
|
+
"SELF_SIGNED_CERT_IN_CHAIN",
|
|
26
|
+
"UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY",
|
|
27
|
+
"UNABLE_TO_DECRYPT_CERT_SIGNATURE",
|
|
28
|
+
"UNABLE_TO_DECRYPT_CRL_SIGNATURE",
|
|
29
|
+
"UNABLE_TO_GET_CRL",
|
|
30
|
+
"UNABLE_TO_GET_ISSUER_CERT",
|
|
31
|
+
"UNABLE_TO_GET_ISSUER_CERT_LOCALLY",
|
|
32
|
+
"UNABLE_TO_VERIFY_LEAF_SIGNATURE"
|
|
33
|
+
]);
|
|
34
|
+
const HOSTNAME_MISMATCH_PATTERNS = [
|
|
35
|
+
/hostname\/ip does not match certificate(?:'s)? altnames/i,
|
|
36
|
+
/hostname mismatch/i,
|
|
37
|
+
/host: .+ is not in the cert(?:ificate)?(?:'s)? altnames/i
|
|
38
|
+
];
|
|
39
|
+
const CERTIFICATE_INVALID_PATTERNS = [
|
|
40
|
+
/certificate has expired/i,
|
|
41
|
+
/certificate is not yet valid/i,
|
|
42
|
+
/self[- ]signed certificate/i,
|
|
43
|
+
/unable to get local issuer certificate/i,
|
|
44
|
+
/unable to verify the first certificate/i
|
|
45
|
+
];
|
|
46
|
+
const MAX_TLS_ERROR_DEPTH = 8;
|
|
47
|
+
function classifyCode(code) {
|
|
48
|
+
if (HOSTNAME_MISMATCH_CODES.has(code)) return "hostname_mismatch";
|
|
49
|
+
return CERTIFICATE_INVALID_CODES.has(code) ? "certificate_invalid" : null;
|
|
50
|
+
}
|
|
51
|
+
function classifyMessage(message) {
|
|
52
|
+
if (HOSTNAME_MISMATCH_PATTERNS.some((pattern) => pattern.test(message))) return "hostname_mismatch";
|
|
53
|
+
return CERTIFICATE_INVALID_PATTERNS.some((pattern) => pattern.test(message)) ? "certificate_invalid" : null;
|
|
54
|
+
}
|
|
55
|
+
function inspectTlsCertificateErrorInternal(error, seen, depth) {
|
|
56
|
+
if (depth > MAX_TLS_ERROR_DEPTH) return null;
|
|
57
|
+
if (typeof error === "string") {
|
|
58
|
+
const kind = classifyMessage(error);
|
|
59
|
+
return kind ? {
|
|
60
|
+
kind,
|
|
61
|
+
message: error
|
|
62
|
+
} : null;
|
|
63
|
+
}
|
|
64
|
+
if (!error || typeof error !== "object" || seen.has(error)) return null;
|
|
65
|
+
seen.add(error);
|
|
66
|
+
const candidate = error;
|
|
67
|
+
const code = typeof candidate.code === "string" ? candidate.code.trim().toUpperCase() : void 0;
|
|
68
|
+
const message = typeof candidate.message === "string" && candidate.message.trim() ? candidate.message : void 0;
|
|
69
|
+
const codeKind = code ? classifyCode(code) : null;
|
|
70
|
+
if (code && codeKind) return {
|
|
71
|
+
kind: codeKind,
|
|
72
|
+
code,
|
|
73
|
+
message: message ?? code
|
|
74
|
+
};
|
|
75
|
+
const nestedErrors = Array.isArray(candidate.errors) ? candidate.errors : [];
|
|
76
|
+
for (const nested of [
|
|
77
|
+
candidate.cause,
|
|
78
|
+
candidate.error,
|
|
79
|
+
...nestedErrors
|
|
80
|
+
]) {
|
|
81
|
+
if (nested === void 0 || nested === error) continue;
|
|
82
|
+
const details = inspectTlsCertificateErrorInternal(nested, seen, depth + 1);
|
|
83
|
+
if (details) return details;
|
|
84
|
+
}
|
|
85
|
+
const messageKind = message ? classifyMessage(message) : null;
|
|
86
|
+
return messageKind && message ? {
|
|
87
|
+
kind: messageKind,
|
|
88
|
+
message
|
|
89
|
+
} : null;
|
|
90
|
+
}
|
|
91
|
+
/** Classify deterministic Node/OpenSSL certificate validation failures. */
|
|
92
|
+
function inspectTlsCertificateError(error) {
|
|
93
|
+
return inspectTlsCertificateErrorInternal(error, /* @__PURE__ */ new Set(), 0);
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
5
96
|
export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
|