@openclaw/ai 2026.9.2 → 2026.9.4
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/README.md +3 -2
- package/dist/anthropic-C4Qu4H0Z.mjs +377 -0
- package/dist/{anthropic-payload-policy-d46X2pR0.d.mts → anthropic-payload-policy-BZ8umAbk.d.mts} +16 -6
- package/dist/{anthropic-compaction-replay-DB2FGLQc.mjs → anthropic-stream-reducer-CILWF7JD.mjs} +931 -184
- package/dist/{api-registry-DWtPjzyn.d.mts → api-registry-ByUwIR0e.d.mts} +2 -2
- package/dist/assistant-output-tLt4H-iQ.mjs +16 -0
- package/dist/assistant-text-phase-C20rxWwP.mjs +55 -0
- package/dist/{azure-openai-responses-C5bZRfAP.mjs → azure-openai-responses-BAlqlKKc.mjs} +5 -5
- package/dist/{base64-CEFBpSkN.mjs → base64-D-su8YVo.mjs} +1 -27
- package/dist/{diagnostics-DfFyKeX_.mjs → diagnostics-QuErwCIl.mjs} +96 -21
- package/dist/diagnostics.d.mts +3 -1
- package/dist/diagnostics.mjs +3 -3
- package/dist/{event-stream-BhT5T1Ay.d.mts → event-stream-Bt5Y4Pav.d.mts} +11 -3
- package/dist/event-stream-C3WGFsum.d.mts +1 -0
- package/dist/{event-stream-BgDvQeum.mjs → event-stream-D8PARQfL.mjs} +45 -1
- package/dist/event-stream.d.mts +2 -2
- package/dist/event-stream.mjs +1 -1
- package/dist/{github-copilot-headers-NCJtz9i0.mjs → github-copilot-headers-B37TB3rB.mjs} +3 -10
- package/dist/github-copilot-request-facts-BTEBMeOv.mjs +16 -0
- package/dist/{google-4qeuE8iX.mjs → google-DPBAOaOW.mjs} +10 -10
- package/dist/google-messages-6JkpHrhJ.mjs +448 -0
- package/dist/google-shared-BvBeW9aq.mjs +185 -0
- package/dist/{google-vertex-O9BcnB6X.mjs → google-vertex-k-TMCAYD.mjs} +7 -6
- package/dist/{host-DjzGmdZ2.d.mts → host-4atIX-2V.d.mts} +5 -3
- package/dist/{host-CEvLw30U.mjs → host-B8YfDGd4.mjs} +181 -41
- package/dist/host-policy-Zcg_cNz8.mjs +37 -0
- package/dist/{index-FnHM2FcI.d.mts → index-DdD3qerf.d.mts} +4 -4
- package/dist/index.d.mts +7 -7
- package/dist/index.mjs +7 -6
- package/dist/internal/anthropic.d.mts +7 -7
- package/dist/internal/anthropic.mjs +4 -4
- package/dist/internal/google-model-family.d.mts +5 -0
- package/dist/internal/google-model-family.mjs +15 -0
- package/dist/internal/openai-responses-payload-policy.d.mts +3 -3
- package/dist/internal/openai-responses-payload-policy.mjs +3 -2
- package/dist/internal/openai.d.mts +8 -103
- package/dist/internal/openai.mjs +9 -10
- package/dist/internal/retry-after.d.mts +2 -4
- package/dist/internal/retry-after.mjs +57 -8
- package/dist/internal/runtime.d.mts +43 -7
- package/dist/internal/runtime.mjs +6 -7
- package/dist/internal/shared.d.mts +43 -3
- package/dist/internal/shared.mjs +5 -4
- package/dist/internal/tool-schema.d.mts +63 -0
- package/dist/internal/tool-schema.mjs +3 -0
- package/dist/{mistral-Tb6oalqH.mjs → mistral-CxUZ1jUb.mjs} +10 -37
- package/dist/model-transport-url-DKocrEsb.d.mts +28 -0
- package/dist/{openai-chatgpt-responses-yUXjPNfu.mjs → openai-chatgpt-responses-CgO6kZfo.mjs} +50 -41
- package/dist/{openai-completions-compat-CpjYUArk.d.mts → openai-completions-compat-eHgh5UPE.d.mts} +26 -4
- package/dist/{openai-completions-stream-BsrBe3Gg.mjs → openai-completions-stream-Da2vvl-S.mjs} +654 -453
- package/dist/openai-completions-yJuk7eis.mjs +187 -0
- package/dist/openai-prompt-cache-B4eYo2-I.d.mts +16 -0
- package/dist/openai-prompt-cache-Bds-n_9Q.mjs +220 -0
- package/dist/openai-provider-client-S2gCrM2Z.mjs +24 -0
- package/dist/{openai-responses-CCL41ALM.mjs → openai-responses-DaYwH05E.mjs} +14 -29
- package/dist/{openai-responses-compaction-window-BMVHFOtq.mjs → openai-responses-compaction-window-CIhBAkkq.mjs} +6 -246
- package/dist/{openai-responses-contracts-rF5DDRNS.d.mts → openai-responses-contracts-BjBAqAg_.d.mts} +5 -38
- package/dist/openai-responses-contracts-DDOHA62Y.mjs +245 -0
- package/dist/{openai-responses-prompt-observer-internal-D0bhBfgL.mjs → openai-responses-prompt-observer-internal-f8J7wpsk.mjs} +3 -3
- package/dist/{openai-responses-shared-Bmma_3Qc.mjs → openai-responses-shared-B8RdBPCv.mjs} +47 -118
- package/dist/openai-tool-projection-793cE3QX.d.mts +37 -0
- package/dist/{openai-tool-schema-_pTAJqKF.mjs → openai-tool-schema-CzjyYXun.mjs} +38 -556
- package/dist/openai-tool-schema-ynZBgqW-.d.mts +38 -0
- package/dist/openai-transport-params-9aPuV5YY.mjs +675 -0
- package/dist/positive-integer-41zhOdcV.mjs +8 -0
- package/dist/{provider-error-9TraxGvt.mjs → provider-error-BA-v_tKd.mjs} +70 -11
- package/dist/{provider-options-Bcc_p-TU.d.mts → provider-options-Ceqv1OKk.d.mts} +4 -39
- package/dist/{provider-replay-context-BuSUaAk5.mjs → provider-replay-context-CJ_YvcEW.mjs} +1 -1
- package/dist/{provider-transcript-transform-BaMbI1hr.mjs → provider-transcript-transform-V5YzU9zh.mjs} +1 -1
- package/dist/provider-transport-turn-state-D5EXOFL2.mjs +42 -0
- package/dist/provider-types-CVjKjsuq.d.mts +29 -0
- package/dist/provider-types.d.mts +6 -31
- package/dist/providers.d.mts +2 -2
- package/dist/providers.mjs +11 -11
- package/dist/{reasoning-tag-text-partitioner-DLCNXki6.mjs → reasoning-tag-text-partitioner-BcR5pztD.mjs} +19 -19
- package/dist/record-coerce-DwRYMj3t.mjs +32 -0
- package/dist/retry-after-CdCURCVg.d.mts +15 -0
- package/dist/session-affinity-Bcunsn4I.mjs +23 -0
- package/dist/{simple-options-BjHCCh4v.mjs → simple-options-BQbb4yQL.mjs} +24 -5
- package/dist/src-DDmEryvj.mjs +2 -0
- package/dist/{stream-first-event-timeout-DcNjoFQE.mjs → stream-first-event-timeout-2hfrquuz.mjs} +1 -1
- package/dist/string-coerce-fsri9iCu.mjs +34 -0
- package/dist/{string-normalization--fwJ4S2q.mjs → string-normalization-CmLIasuf.mjs} +1 -1
- package/dist/{tool-schema-json-projection-mJhXDcyz.mjs → tool-schema-json-projection-ClptDdAO.mjs} +2 -38
- package/dist/{transport-stream-shared-xnaqxmbP.d.mts → transport-stream-shared-DNvmoWnv.d.mts} +20 -36
- package/dist/{transport-stream-shared-CZqMhfIw.mjs → transport-stream-shared-zHll9BxO.mjs} +225 -13
- package/dist/transport-utils-zrYjICLZ.mjs +118 -0
- package/dist/transports.d.mts +137 -193
- package/dist/transports.mjs +204 -1334
- package/dist/types-DlfwzH3T.d.mts +1 -0
- package/dist/types-LFWwv0cF.mjs +8 -0
- package/dist/{types-CJ1-Ht7A.d.mts → types-Ntv5z2g2.d.mts} +74 -57
- package/dist/types.d.mts +6 -6
- package/dist/types.mjs +6 -5
- package/dist/{src-2qBGKg8O.mjs → usage-cost-BNWbbXav.mjs} +0 -1
- package/dist/utf16-slice-CvGodqok.mjs +29 -0
- package/dist/{validation-AKZBDGQd.d.mts → validation-B0t_G2H6.d.mts} +1 -1
- package/dist/{validation-CJZtym2g.mjs → validation-BDzVDnTs.mjs} +9 -1
- package/dist/validation.d.mts +1 -1
- package/dist/validation.mjs +1 -1
- package/package.json +13 -3
- package/dist/anthropic-BDdqdVLK.mjs +0 -886
- package/dist/event-stream-zctLx0yr.d.mts +0 -1
- package/dist/google-shared-CWeG8RIl.mjs +0 -636
- package/dist/google-thinking-level-C-V3tecN.mjs +0 -9
- package/dist/hash-CHgqbJmD.mjs +0 -16
- package/dist/json-parse-BuAJEbdW.mjs +0 -146
- package/dist/openai-completions-BIUV3RDT.mjs +0 -403
- package/dist/openai-prompt-cache-CGnVB74a.mjs +0 -21
- package/dist/openai-prompt-cache-CNoIfHYC.d.mts +0 -16
- package/dist/sanitize-unicode-D6xUvZaS.mjs +0 -83
- package/dist/transport-utils-7il795_9.mjs +0 -138
- package/dist/types-3Lnm-QSJ.d.mts +0 -1
- package/dist/types-BDdaOVi2.mjs +0 -6
- package/dist/utf16-slice-qz3nsy87.mjs +0 -84
|
@@ -1,44 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import "../
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { G as SimpleStreamOptions, J as StreamFunction, K as StopReason, O as Model, d as Context, ot as Usage } from "../types-Ntv5z2g2.mjs";
|
|
2
|
+
import { _ as resolveOpenAIModelReasoningEfforts, a as BaseOpenAIStreamOptions, b as supportsOpenAIReasoningEffort, d as OpenAIApiReasoningEffort, f as OpenAIReasoningEffort, g as normalizeOpenAIReasoningEffort, h as isOpenAIGpt56Model, l as codeModeToolSurfaceObserver, m as isOpenAIGpt55Model, o as CodeModeToolSurfaceObservation, p as isOpenAIGpt54MiniModel, s as OpenAICompletionsOptions, u as reasoningTagTextPolicy, v as resolveOpenAIReasoningEffortForModel, x as supportsOpenAITemperature, y as resolveOpenAISupportedReasoningEfforts } from "../provider-options-Ceqv1OKk.mjs";
|
|
3
|
+
import { a as reconcileOpenAIResponsesToolChoice, i as reconcileOpenAICompletionsToolChoice, n as OpenAIToolProjection, r as projectOpenAITools, t as OpenAICompletionsToolChoice } from "../openai-tool-projection-793cE3QX.mjs";
|
|
4
|
+
import "../types-DlfwzH3T.mjs";
|
|
5
|
+
import { a as ResponsesPromptObservation, o as responsesPromptObserver } from "../openai-responses-contracts-BjBAqAg_.mjs";
|
|
6
|
+
import { t as ResolvedOpenAICompletionsCompat } from "../openai-completions-compat-eHgh5UPE.mjs";
|
|
7
|
+
import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-B4eYo2-I.mjs";
|
|
7
8
|
import OpenAI from "openai";
|
|
8
|
-
import { TSchema } from "typebox";
|
|
9
9
|
import { ResponseCreateParamsStreaming } from "openai/resources/responses/responses.js";
|
|
10
10
|
import { ChatCompletionMessageParam } from "openai/resources/chat/completions.js";
|
|
11
|
-
//#region packages/ai/src/providers/agent-tools-parameter-schema.d.ts
|
|
12
|
-
/**
|
|
13
|
-
* Narrow structural view of the host's model compat config. packages/ai must stay
|
|
14
|
-
* config-agnostic, so only tool-schema-relevant fields are modeled here; the host's
|
|
15
|
-
* ModelCompatConfig remains structurally assignable.
|
|
16
|
-
*/
|
|
17
|
-
export type ToolSchemaModelCompat = {
|
|
18
|
-
toolSchemaProfile?: string;
|
|
19
|
-
unsupportedToolSchemaKeywords?: string[];
|
|
20
|
-
omitEmptyArrayItems?: boolean;
|
|
21
|
-
};
|
|
22
|
-
/** Extracts the compat record whether callers pass a model (`{ compat }`) or the compat itself. */
|
|
23
|
-
export declare function extractToolSchemaModelCompat(modelOrCompat: {
|
|
24
|
-
compat?: unknown;
|
|
25
|
-
} | ToolSchemaModelCompat | undefined): ToolSchemaModelCompat | undefined;
|
|
26
|
-
/** JSON Schema keywords this model/provider rejects in tool schemas. */
|
|
27
|
-
export declare function resolveUnsupportedToolSchemaKeywords(modelOrCompat: {
|
|
28
|
-
compat?: unknown;
|
|
29
|
-
} | ToolSchemaModelCompat | undefined): ReadonlySet<string>;
|
|
30
|
-
/** Whether empty `items: {}` on array schemas must be omitted for this model/provider. */
|
|
31
|
-
export declare function shouldOmitEmptyArrayItems(modelOrCompat: {
|
|
32
|
-
compat?: unknown;
|
|
33
|
-
} | ToolSchemaModelCompat | undefined): boolean;
|
|
34
|
-
export type ToolParameterSchemaOptions = {
|
|
35
|
-
modelProvider?: string;
|
|
36
|
-
modelId?: string;
|
|
37
|
-
modelCompat?: ToolSchemaModelCompat;
|
|
38
|
-
};
|
|
39
|
-
/** Return a provider-compatible JSON schema for a model-facing tool. */
|
|
40
|
-
export declare function normalizeToolParameterSchema(schema: unknown, options?: ToolParameterSchemaOptions): TSchema;
|
|
41
|
-
//#endregion
|
|
42
11
|
//#region packages/ai/src/providers/azure-deployment-map.d.ts
|
|
43
12
|
/** Parses AZURE_OPENAI_DEPLOYMENT_MAP-style model=deployment entries. */
|
|
44
13
|
export declare function parseAzureDeploymentNameMap(value: string | undefined): Map<string, string>;
|
|
@@ -58,18 +27,6 @@ export declare function resolveAzureDeploymentNameFromMap(params: {
|
|
|
58
27
|
export declare function isTraditionalAzureOpenAIHost(hostname: string): boolean;
|
|
59
28
|
export declare function isOpenAICompatibleAzureResponsesBaseUrl(baseUrl: string): boolean;
|
|
60
29
|
//#endregion
|
|
61
|
-
//#region packages/ai/src/providers/clean-for-gemini.d.ts
|
|
62
|
-
export declare const GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS: Set<string>;
|
|
63
|
-
export declare function cleanSchemaForGemini(schema: unknown): TSchema;
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region packages/ai/src/providers/clean-for-llamacpp-gbnf.d.ts
|
|
66
|
-
/** llama.cpp rejects grammar repetitions whose expanded rule count reaches 2000. */
|
|
67
|
-
export declare const LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD = 2000;
|
|
68
|
-
/** Removes JSON Schema constraints that llama.cpp cannot compile into GBNF. */
|
|
69
|
-
export declare function cleanSchemaForLlamacppGbnf(schema: unknown): unknown;
|
|
70
|
-
/** Reports schema paths that llama.cpp cannot compile into GBNF. */
|
|
71
|
-
export declare function findLlamacppGbnfSchemaViolations(schema: unknown, path: string): string[];
|
|
72
|
-
//#endregion
|
|
73
30
|
//#region packages/ai/src/openai-completions-messages.d.ts
|
|
74
31
|
/** Convert a normalized transcript to OpenAI Chat Completions messages. */
|
|
75
32
|
export declare function convertMessages(model: Model<"openai-completions">, context: Context, compat: ResolvedOpenAICompletionsCompat, options?: {
|
|
@@ -207,56 +164,4 @@ export declare function mapOpenAIStopReason(reason: string | null, options?: {
|
|
|
207
164
|
allowSingularToolCall?: boolean;
|
|
208
165
|
}): OpenAIStopReasonResult;
|
|
209
166
|
//#endregion
|
|
210
|
-
|
|
211
|
-
/** Repairs recoverable OpenAI tool-schema shapes before canonical normalization. */
|
|
212
|
-
export declare function normalizeOpenAIStrictCompatSchema(schema: unknown): TSchema;
|
|
213
|
-
/** Finds schema paths that violate OpenAI strict tool-schema requirements. */
|
|
214
|
-
export declare function findOpenAIStrictSchemaViolations(schema: unknown, path: string, options?: {
|
|
215
|
-
requireObjectRoot?: boolean;
|
|
216
|
-
}): string[];
|
|
217
|
-
//#endregion
|
|
218
|
-
//#region packages/ai/src/providers/openai-tool-schema.d.ts
|
|
219
|
-
/**
|
|
220
|
-
* OpenAI strict-tool-schema normalization and diagnostics.
|
|
221
|
-
*
|
|
222
|
-
* Strict schemas need all object properties required and `additionalProperties: false`; model
|
|
223
|
-
* compatibility settings can also remove unsupported schema constructs before strict checks run.
|
|
224
|
-
*/
|
|
225
|
-
type ToolSchemaCompatInput = {
|
|
226
|
-
unsupportedToolSchemaKeywords?: unknown;
|
|
227
|
-
omitEmptyArrayItems?: unknown;
|
|
228
|
-
};
|
|
229
|
-
/** Normalizes a tool parameter schema into the OpenAI strict JSON-schema subset. */
|
|
230
|
-
export declare function normalizeStrictOpenAIJsonSchema(schema: unknown, modelCompat?: ToolSchemaCompatInput | null): unknown;
|
|
231
|
-
/** Normalizes tool parameters using strict OpenAI rules only when strict mode is active. */
|
|
232
|
-
export declare function normalizeOpenAIStrictToolParameters<T>(schema: T, strict: boolean, modelCompat?: ToolSchemaCompatInput | null): T;
|
|
233
|
-
/** Returns whether a schema already satisfies OpenAI strict tool-schema constraints. */
|
|
234
|
-
export declare function isStrictOpenAIJsonSchemaCompatible(schema: unknown): boolean;
|
|
235
|
-
type OpenAIStrictToolSchemaDiagnostic = {
|
|
236
|
-
toolIndex: number;
|
|
237
|
-
toolName?: string;
|
|
238
|
-
violations: string[];
|
|
239
|
-
};
|
|
240
|
-
/** Returns strict-schema diagnostics for an already materialized OpenAI tool projection. */
|
|
241
|
-
export declare function findOpenAIStrictToolProjectionDiagnostics(projection: OpenAIToolProjection): OpenAIStrictToolSchemaDiagnostic[];
|
|
242
|
-
/** Resolves strict mode for the projected tools that will be emitted in the request payload. */
|
|
243
|
-
export declare function resolveOpenAIProjectedToolsStrictToolFlag(projection: OpenAIToolProjection, strict: boolean | null | undefined): boolean | undefined;
|
|
244
|
-
//#endregion
|
|
245
|
-
//#region packages/ai/src/providers/schema-keyword-strip.d.ts
|
|
246
|
-
/** Recursively remove schema keywords unsupported by a target provider/tool surface. */
|
|
247
|
-
export declare function stripUnsupportedSchemaKeywords(schema: unknown, unsupportedKeywords: ReadonlySet<string>): unknown;
|
|
248
|
-
//#endregion
|
|
249
|
-
//#region packages/ai/src/providers/tool-schema-json-projection.d.ts
|
|
250
|
-
/** JSON-safe schema value used when projecting runtime tool parameters. */
|
|
251
|
-
export type RuntimeToolInputSchemaJson = null | boolean | number | string | RuntimeToolInputSchemaJson[] | {
|
|
252
|
-
[key: string]: RuntimeToolInputSchemaJson;
|
|
253
|
-
};
|
|
254
|
-
/** Projected runtime tool schema plus validation violations. */
|
|
255
|
-
export type RuntimeToolInputSchemaProjection = {
|
|
256
|
-
readonly schema: RuntimeToolInputSchemaJson;
|
|
257
|
-
readonly violations: readonly string[];
|
|
258
|
-
};
|
|
259
|
-
/** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
|
|
260
|
-
export declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
|
|
261
|
-
//#endregion
|
|
262
|
-
export { type CodeModeToolSurfaceObservation, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIToolProjection, type ResponsesPromptObservation, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, normalizeOpenAIReasoningEffort, projectOpenAITools, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveOpenAIModelReasoningEfforts, resolveOpenAIReasoningEffortForModel, resolveOpenAIResponsesCacheParams, resolveOpenAISupportedReasoningEfforts, responsesPromptObserver, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
167
|
+
export { type CodeModeToolSurfaceObservation, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OpenAIApiReasoningEffort, type OpenAICompletionsOptions, OpenAICompletionsToolChoice, OpenAIReasoningEffort, OpenAIToolProjection, type ResponsesPromptObservation, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, normalizeOpenAIReasoningEffort, projectOpenAITools, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveOpenAIModelReasoningEfforts, resolveOpenAIPromptCacheParams, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, responsesPromptObserver, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
package/dist/internal/openai.mjs
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { n as clampOpenAIPromptCacheKey, r as
|
|
2
|
-
import { a as codeModeToolSurfaceObserver, o as reasoningTagTextPolicy } from "../simple-options-
|
|
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-_pTAJqKF.mjs";
|
|
7
|
-
import { A as supportsOpenAIReasoningEffort, C as isOpenAIGpt54MiniModel, D as resolveOpenAIModelReasoningEfforts, E as normalizeOpenAIReasoningEffort, O as resolveOpenAIReasoningEffortForModel, S as responsesPromptObserver, T as isOpenAIGpt56Model, j as supportsOpenAITemperature, k as resolveOpenAISupportedReasoningEfforts, w as isOpenAIGpt55Model } from "../openai-responses-compaction-window-BMVHFOtq.mjs";
|
|
1
|
+
import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-Bds-n_9Q.mjs";
|
|
2
|
+
import { a as codeModeToolSurfaceObserver, o as reasoningTagTextPolicy } from "../simple-options-BQbb4yQL.mjs";
|
|
3
|
+
import { f as projectOpenAITools, m as reconcileOpenAIResponsesToolChoice, p as reconcileOpenAICompletionsToolChoice } from "../openai-transport-params-9aPuV5YY.mjs";
|
|
4
|
+
import { a as convertMessages } from "../openai-completions-stream-Da2vvl-S.mjs";
|
|
5
|
+
import { C as supportsOpenAITemperature, S as supportsOpenAIReasoningEffort, _ as isOpenAIGpt56Model, b as resolveOpenAIReasoningEffortForModel, g as isOpenAIGpt55Model, h as isOpenAIGpt54MiniModel, m as responsesPromptObserver, v as normalizeOpenAIReasoningEffort, x as resolveOpenAISupportedReasoningEfforts, y as resolveOpenAIModelReasoningEfforts } from "../openai-responses-contracts-DDOHA62Y.mjs";
|
|
8
6
|
import { t as mapOpenAIStopReason } from "../openai-stop-reason-Drnn_6Qj.mjs";
|
|
7
|
+
import { A as resolveResponsesMessageSnapshotCollapse, C as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, D as isAzureResponsesTextDeltaEventType, E as isAzureResponsesTextDeltaEvent, O as isResponsesTextContentPartType, S as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, T as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, b as createResponsesToolCallTracker, d as mapResponsesTerminalUsage, f as readResponsesReasoningTokens, k as isResponsesTextDeltaEventType, p as resolveResponsesTerminalStopReason, w as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, x as readResponsesToolCallItemIdentity } from "../openai-responses-shared-B8RdBPCv.mjs";
|
|
9
8
|
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,
|
|
9
|
+
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-yJuk7eis.mjs";
|
|
10
|
+
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-DaYwH05E.mjs";
|
|
11
|
+
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, parseAzureDeploymentNameMap, projectOpenAITools, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIModelReasoningEfforts, resolveOpenAIPromptCacheParams, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, responsesPromptObserver, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
|
|
4
|
-
//#endregion
|
|
1
|
+
import { i as parseRetryAfterHttpDateMs, n as parseRetryAfterErrorSeconds, r as parseRetryAfterHeadersSeconds, t as parseHttpDateInstant } from "../retry-after-CdCURCVg.mjs";
|
|
2
|
+
export { parseHttpDateInstant, parseRetryAfterErrorSeconds, parseRetryAfterHeadersSeconds, parseRetryAfterHttpDateMs };
|
|
@@ -34,10 +34,55 @@ const HTTP_DATE_LONG_WEEKDAY_INDEX = new Map([
|
|
|
34
34
|
const IMF_FIXDATE_RE = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT$/;
|
|
35
35
|
const OBSOLETE_RFC850_DATE_RE = /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{2}):(\d{2}):(\d{2}) GMT$/;
|
|
36
36
|
const OBSOLETE_ASCTIME_DATE_RE = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{2}| \d) (\d{2}):(\d{2}):(\d{2}) (\d{4})$/;
|
|
37
|
-
|
|
37
|
+
function ownDataValue(value, key) {
|
|
38
|
+
return value && typeof value === "object" ? Object.getOwnPropertyDescriptor(value, key)?.value : void 0;
|
|
39
|
+
}
|
|
40
|
+
/** Reads only retry timing metadata, without invoking provider getters or serialization hooks. */
|
|
41
|
+
function parseRetryAfterHeadersSeconds(headers, nowMs = Date.now()) {
|
|
42
|
+
if (!headers || typeof headers !== "object") return;
|
|
43
|
+
try {
|
|
44
|
+
let entries;
|
|
45
|
+
try {
|
|
46
|
+
entries = ["retry-after", "retry-after-ms"].map((key) => [key, Headers.prototype.get.call(headers, key)]);
|
|
47
|
+
} catch {
|
|
48
|
+
entries = Object.getOwnPropertyNames(headers).flatMap((key) => {
|
|
49
|
+
const name = key.toLowerCase();
|
|
50
|
+
return name === "retry-after" || name === "retry-after-ms" ? [[name, ownDataValue(headers, key)]] : [];
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
let floor;
|
|
54
|
+
for (const [key, value] of entries) {
|
|
55
|
+
const text = typeof value === "string" ? value.trim() : typeof value === "number" ? String(value) : "";
|
|
56
|
+
const milliseconds = key === "retry-after-ms";
|
|
57
|
+
const numeric = typeof value === "number" ? value >= 0 && (milliseconds || Number.isInteger(value) || value === Infinity) : (milliseconds ? /^\d+(?:\.\d+)?$/ : /^\d+$/).test(text);
|
|
58
|
+
const number = typeof value === "number" ? value : Number(text);
|
|
59
|
+
const retryAt = !numeric && !milliseconds ? parseRetryAfterHttpDateMs(text, nowMs) : void 0;
|
|
60
|
+
const seconds = numeric ? Number.isFinite(number) && number <= Number.MAX_SAFE_INTEGER ? number / (milliseconds ? 1e3 : 1) : Infinity : retryAt === void 0 ? void 0 : Math.max(0, (retryAt - nowMs) / 1e3);
|
|
61
|
+
if (seconds !== void 0) floor = Math.max(floor ?? 0, seconds);
|
|
62
|
+
}
|
|
63
|
+
return floor;
|
|
64
|
+
} catch {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** SDK errors carry native response headers separately from their error body. */
|
|
69
|
+
function parseRetryAfterErrorSeconds(error, nowMs = Date.now()) {
|
|
70
|
+
try {
|
|
71
|
+
const direct = parseRetryAfterHeadersSeconds(ownDataValue(error, "headers"), nowMs);
|
|
72
|
+
const response = parseRetryAfterHeadersSeconds(ownDataValue(ownDataValue(error, "response"), "headers"), nowMs);
|
|
73
|
+
return direct === void 0 && response === void 0 ? void 0 : Math.max(direct ?? 0, response ?? 0);
|
|
74
|
+
} catch {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Round leap seconds forward for Retry-After so an unrepresentable instant cannot retry early. */
|
|
38
79
|
function parseRetryAfterHttpDateMs(value, nowMs = Date.now()) {
|
|
80
|
+
return parseHttpDateInstant(value, nowMs)?.timestampMs;
|
|
81
|
+
}
|
|
82
|
+
/** Parse all three HTTP-date forms while retaining leap-second ordering. */
|
|
83
|
+
function parseHttpDateInstant(value, nowMs = Date.now()) {
|
|
39
84
|
const imfFixdate = IMF_FIXDATE_RE.exec(value);
|
|
40
|
-
if (imfFixdate) return
|
|
85
|
+
if (imfFixdate) return parseHttpDateComponents({
|
|
41
86
|
weekday: HTTP_DATE_SHORT_WEEKDAY_INDEX.get(imfFixdate[1] ?? ""),
|
|
42
87
|
year: Number.parseInt(imfFixdate[4] ?? "", 10),
|
|
43
88
|
month: HTTP_DATE_MONTH_INDEX.get(imfFixdate[3] ?? ""),
|
|
@@ -65,13 +110,13 @@ function parseRetryAfterHttpDateMs(value, nowMs = Date.now()) {
|
|
|
65
110
|
...components
|
|
66
111
|
});
|
|
67
112
|
if (candidate === void 0) return;
|
|
68
|
-
return
|
|
113
|
+
return parseHttpDateComponents({
|
|
69
114
|
year: candidate > Date.UTC(now.getUTCFullYear() + 50, now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds()) ? candidateYear - 100 : candidateYear,
|
|
70
115
|
...components
|
|
71
116
|
});
|
|
72
117
|
}
|
|
73
118
|
const asctimeDate = OBSOLETE_ASCTIME_DATE_RE.exec(value);
|
|
74
|
-
if (asctimeDate) return
|
|
119
|
+
if (asctimeDate) return parseHttpDateComponents({
|
|
75
120
|
weekday: HTTP_DATE_SHORT_WEEKDAY_INDEX.get(asctimeDate[1] ?? ""),
|
|
76
121
|
year: Number.parseInt(asctimeDate[7] ?? "", 10),
|
|
77
122
|
month: HTTP_DATE_MONTH_INDEX.get(asctimeDate[2] ?? ""),
|
|
@@ -81,12 +126,16 @@ function parseRetryAfterHttpDateMs(value, nowMs = Date.now()) {
|
|
|
81
126
|
seconds: Number.parseInt(asctimeDate[6] ?? "", 10)
|
|
82
127
|
});
|
|
83
128
|
}
|
|
84
|
-
function
|
|
129
|
+
function parseHttpDateComponents(components) {
|
|
85
130
|
const timestamp = parseHttpDateCalendarMs(components);
|
|
86
131
|
if (timestamp === void 0) return;
|
|
87
|
-
const
|
|
132
|
+
const leapSecond = components.seconds === 60;
|
|
133
|
+
const weekdayTimestamp = leapSecond ? timestamp - 1e3 : timestamp;
|
|
88
134
|
if (new Date(weekdayTimestamp).getUTCDay() !== components.weekday) return;
|
|
89
|
-
return
|
|
135
|
+
return {
|
|
136
|
+
timestampMs: timestamp,
|
|
137
|
+
leapSecond
|
|
138
|
+
};
|
|
90
139
|
}
|
|
91
140
|
function parseHttpDateCalendarMs(components) {
|
|
92
141
|
const { year, month, day, hours, minutes, seconds } = components;
|
|
@@ -98,4 +147,4 @@ function parseHttpDateCalendarMs(components) {
|
|
|
98
147
|
return seconds === 60 ? timestamp + 1e3 : timestamp;
|
|
99
148
|
}
|
|
100
149
|
//#endregion
|
|
101
|
-
export { parseRetryAfterHttpDateMs };
|
|
150
|
+
export { parseHttpDateInstant, parseRetryAfterErrorSeconds, parseRetryAfterHeadersSeconds, parseRetryAfterHttpDateMs };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import "../index-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import "../
|
|
1
|
+
import "../index-DdD3qerf.mjs";
|
|
2
|
+
import { G as SimpleStreamOptions, H as ProviderStreamOptions, O as Model, Y as StreamOptions, a as AssistantMessage, d as Context, j as ModelThinkingLevel, n as Api, ot as Usage, s as AssistantMessageEventStreamContract } from "../types-Ntv5z2g2.mjs";
|
|
3
|
+
import { i as getEventStreamCompletion } from "../event-stream-Bt5Y4Pav.mjs";
|
|
4
|
+
import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-ByUwIR0e.mjs";
|
|
5
|
+
import "../types-DlfwzH3T.mjs";
|
|
5
6
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
6
|
-
import {
|
|
7
|
+
import { _ as parseTerminalToolCallArguments } from "../transport-stream-shared-DNvmoWnv.mjs";
|
|
7
8
|
//#region packages/ai/src/internal/default-runtime.d.ts
|
|
8
9
|
export declare const defaultApiRegistry: {
|
|
9
10
|
registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
|
|
@@ -88,8 +89,15 @@ export declare function headersToRecord(headers: Headers): Record<string, string
|
|
|
88
89
|
* Repairs malformed JSON string literals by:
|
|
89
90
|
* - escaping raw control characters inside strings
|
|
90
91
|
* - doubling backslashes before invalid escape characters
|
|
92
|
+
*
|
|
93
|
+
* By default a valid control escape (`\n`, `\t`, ...) that follows a Windows-path-looking
|
|
94
|
+
* prefix is treated as an unescaped path separator and doubled. Pass
|
|
95
|
+
* `preserveValidControlEscapes` when the text is authoritative (for example a completed
|
|
96
|
+
* tool-call argument buffer) and every valid escape must survive as written.
|
|
91
97
|
*/
|
|
92
|
-
export declare function repairJson(json: string
|
|
98
|
+
export declare function repairJson(json: string, options?: {
|
|
99
|
+
preserveValidControlEscapes?: boolean;
|
|
100
|
+
}): string;
|
|
93
101
|
export declare function parseJsonWithRepair(json: string): unknown;
|
|
94
102
|
/**
|
|
95
103
|
* Attempts to parse potentially incomplete JSON during streaming.
|
|
@@ -216,6 +224,34 @@ interface ReasoningTagTextPartitioner {
|
|
|
216
224
|
/** Creates a block-incremental parser that emits only Markdown-stable text. */
|
|
217
225
|
export declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
|
|
218
226
|
//#endregion
|
|
227
|
+
//#region packages/ai/src/utils/stream-first-event-timeout.d.ts
|
|
228
|
+
type StreamStage = "responses" | "completions";
|
|
229
|
+
export type FirstStreamEventTimeoutContext = {
|
|
230
|
+
provider?: string;
|
|
231
|
+
api?: string;
|
|
232
|
+
model?: string;
|
|
233
|
+
timeoutMs: number;
|
|
234
|
+
stage?: StreamStage;
|
|
235
|
+
hint?: string;
|
|
236
|
+
abort?: (reason: Error) => void;
|
|
237
|
+
onTimeout?: (reason: Error) => void;
|
|
238
|
+
};
|
|
239
|
+
export type FirstStreamEventInternalOptions = {
|
|
240
|
+
firstEventTimeoutMs?: number;
|
|
241
|
+
abortFirstEventStream?: (reason: Error) => void;
|
|
242
|
+
onFirstEventTimeout?: (reason: Error) => void;
|
|
243
|
+
};
|
|
244
|
+
export type FirstStreamEventAbortController = {
|
|
245
|
+
signal: AbortSignal;
|
|
246
|
+
abort: (reason: Error) => void;
|
|
247
|
+
dispose: () => void;
|
|
248
|
+
};
|
|
249
|
+
export declare function getFirstStreamEventTimeoutMs(options: unknown): number | undefined;
|
|
250
|
+
export declare function getFirstStreamEventTimeoutHandler(options: unknown): ((reason: Error) => void) | undefined;
|
|
251
|
+
export declare function createFirstStreamEventTimeoutError(context: FirstStreamEventTimeoutContext): Error;
|
|
252
|
+
export declare function createFirstStreamEventAbortController(parentSignal?: AbortSignal): FirstStreamEventAbortController;
|
|
253
|
+
export declare function withFirstStreamEventTimeout<T>(stream: AsyncIterable<T>, context: FirstStreamEventTimeoutContext): AsyncIterable<T>;
|
|
254
|
+
//#endregion
|
|
219
255
|
//#region packages/ai/src/utils/streaming-byte-guard.d.ts
|
|
220
256
|
/**
|
|
221
257
|
* Bounded SSE / NDJSON stream reader guard.
|
|
@@ -246,4 +282,4 @@ export type SseByteGuard = {
|
|
|
246
282
|
};
|
|
247
283
|
export declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
|
|
248
284
|
//#endregion
|
|
249
|
-
export {
|
|
285
|
+
export { type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, getEventStreamCompletion, parseTerminalToolCallArguments, sanitizeSurrogates };
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { a as isProviderRefusalAssistantError } from "../diagnostics-CPeq9F7y.mjs";
|
|
2
|
+
import { a as getEventStreamCompletion } from "../event-stream-D8PARQfL.mjs";
|
|
2
3
|
import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-DLCNXki6.mjs";
|
|
4
|
+
import { A as applyProviderReportedUsageCost, M as clampThinkingLevel, N as getSupportedThinkingLevels, P as modelsAreEqual, j as calculateCost, v as sanitizeSurrogates } from "../host-B8YfDGd4.mjs";
|
|
5
5
|
import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-bktO00EJ.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { D as repairJson, E as parseStreamingJson, O as headersToRecord, T as parseJsonWithRepair, h as parseTerminalToolCallArguments, k as shortHash, w as createToolArgumentPreviewSchedule } from "../transport-stream-shared-zHll9BxO.mjs";
|
|
7
7
|
import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
|
|
8
|
-
import { i as repairJson, n as parseJsonWithRepair, r as parseStreamingJson, t as createToolArgumentPreviewSchedule } from "../json-parse-BuAJEbdW.mjs";
|
|
9
8
|
import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
|
|
10
|
-
import { t as
|
|
11
|
-
import {
|
|
9
|
+
import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-2hfrquuz.mjs";
|
|
10
|
+
import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-BcR5pztD.mjs";
|
|
12
11
|
import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
|
|
13
12
|
import { n as registerSessionResourceCleanup, t as cleanupSessionResources } from "../session-resources-CkR4WWy1.mjs";
|
|
14
13
|
import { n as resolveOpenAICodexAccountId, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-KWcgd0d_.mjs";
|
|
@@ -200,4 +199,4 @@ function isContextOverflow(message, contextWindow) {
|
|
|
200
199
|
return false;
|
|
201
200
|
}
|
|
202
201
|
//#endregion
|
|
203
|
-
export { applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, createToolArgumentPreviewSchedule, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, parseTerminalToolCallArguments, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
|
|
202
|
+
export { applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, createToolArgumentPreviewSchedule, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getEventStreamCompletion, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, parseTerminalToolCallArguments, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../
|
|
1
|
+
import { D as Message, G as SimpleStreamOptions, O as Model, Q as ThinkingBudgets, Y as StreamOptions, a as AssistantMessage, et as ThinkingLevel, n as Api } from "../types-Ntv5z2g2.mjs";
|
|
2
|
+
import { a as readAssistantThinkingAppend } from "../event-stream-Bt5Y4Pav.mjs";
|
|
3
|
+
import "../types-DlfwzH3T.mjs";
|
|
3
4
|
import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
|
|
4
5
|
import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
|
|
5
6
|
//#region packages/ai/src/providers/simple-options.d.ts
|
|
@@ -48,14 +49,43 @@ export declare function formatToolResultText(params: {
|
|
|
48
49
|
//#region packages/ai/src/transcript-transform.d.ts
|
|
49
50
|
export declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
|
|
50
51
|
//#endregion
|
|
52
|
+
//#region packages/ai/src/replay-turn-classification.d.ts
|
|
53
|
+
type AssistantTurnLike = {
|
|
54
|
+
role?: unknown;
|
|
55
|
+
stopReason?: unknown;
|
|
56
|
+
content?: unknown;
|
|
57
|
+
};
|
|
58
|
+
/** Returns true when an assistant turn contains only provider reasoning and blank text. */
|
|
59
|
+
export declare function hasOnlyAssistantReasoningContent(message: AssistantTurnLike): boolean;
|
|
60
|
+
/** Returns true when a token-limited turn contains only incomplete provider reasoning. */
|
|
61
|
+
export declare function isReasoningOnlyLengthAssistantTurn(message: AssistantTurnLike): boolean;
|
|
62
|
+
export declare const STREAM_ERROR_FALLBACK_TEXT = "[assistant turn failed before producing content]";
|
|
63
|
+
export declare function isStreamErrorFallbackContent(content: unknown): boolean;
|
|
64
|
+
export declare const FAILED_ASSISTANT_REPLAY_TEXT = "[This turn failed before it completed. Do not redo its work without confirming with the user first.]";
|
|
65
|
+
type FailedAssistantReplay = "keep" | "drop" | "marker";
|
|
66
|
+
/** Classify failed source content before model-specific thinking or tool projection. */
|
|
67
|
+
export declare function resolveFailedAssistantReplay(message: AssistantTurnLike, options: {
|
|
68
|
+
pairingAware: boolean;
|
|
69
|
+
}): FailedAssistantReplay;
|
|
70
|
+
//#endregion
|
|
51
71
|
//#region packages/ai/src/utils/system-prompt-cache-boundary.d.ts
|
|
52
72
|
export declare const SYSTEM_PROMPT_CACHE_BOUNDARY = "\n<!-- OPENCLAW_CACHE_BOUNDARY -->\n";
|
|
73
|
+
/** Producer-delimited Runtime facts; instructions must remain outside this region. */
|
|
74
|
+
export declare const SYSTEM_PROMPT_RELOCATABLE_BOUNDARY = "\n<!-- OPENCLAW-RELOCATABLE-BOUNDARY -->\n";
|
|
75
|
+
export declare const SYSTEM_PROMPT_RELOCATABLE_BOUNDARY_END = "\n<!-- /OPENCLAW-RELOCATABLE-BOUNDARY -->";
|
|
53
76
|
export declare function stripSystemPromptCacheBoundary(text: string): string;
|
|
77
|
+
/** Reject ambiguous markers from workspace or hook text instead of moving instructions. */
|
|
78
|
+
export declare function splitSystemPromptRelocatableBoundary(text: string): {
|
|
79
|
+
remainingPrompt: string;
|
|
80
|
+
relocatable: string;
|
|
81
|
+
} | undefined;
|
|
54
82
|
export declare function ensureSystemPromptCacheBoundary(systemPrompt: string): string;
|
|
55
83
|
export declare function splitSystemPromptCacheBoundary(text: string): {
|
|
56
84
|
stablePrefix: string;
|
|
57
85
|
dynamicSuffix: string;
|
|
58
86
|
} | undefined;
|
|
87
|
+
/** Keep explicit cache breakpoints while removing relocation metadata. */
|
|
88
|
+
export declare function stripSystemPromptRelocatableBoundary(text: string): string;
|
|
59
89
|
export declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
|
|
60
90
|
systemPrompt: string;
|
|
61
91
|
systemPromptAddition?: string;
|
|
@@ -71,4 +101,14 @@ export type TlsCertificateErrorDetails = {
|
|
|
71
101
|
/** Classify deterministic Node/OpenSSL certificate validation failures. */
|
|
72
102
|
export declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
|
|
73
103
|
//#endregion
|
|
74
|
-
|
|
104
|
+
//#region packages/ai/src/providers/github-copilot-request-facts.d.ts
|
|
105
|
+
/** Request facts shared by Copilot transports; identity headers remain plugin-owned. */
|
|
106
|
+
export declare function projectCopilotRequestFacts(messages: readonly {
|
|
107
|
+
role: string;
|
|
108
|
+
content: unknown;
|
|
109
|
+
}[], contentMode: "direct" | "nested", hasImages?: boolean): {
|
|
110
|
+
initiator: "user" | "agent";
|
|
111
|
+
hasImages: boolean;
|
|
112
|
+
};
|
|
113
|
+
//#endregion
|
|
114
|
+
export { normalizePromptCapabilityIds, normalizeStructuredPromptSection, readAssistantThinkingAppend, sanitizeSurrogates, sortPromptCacheToolsByName };
|
package/dist/internal/shared.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as
|
|
3
|
-
import { c as
|
|
1
|
+
import { o as readAssistantThinkingAppend } from "../event-stream-D8PARQfL.mjs";
|
|
2
|
+
import { _ as isImageWithMediaPayload, a as FAILED_ASSISTANT_REPLAY_TEXT, c as isReasoningOnlyLengthAssistantTurn, d as describeToolResultMediaPlaceholder, f as describeUnsupportedToolResultMedia, g as hasMediaPayload, h as formatToolResultText, i as transformMessages, l as isStreamErrorFallbackContent, m as extractToolResultText, o as STREAM_ERROR_FALLBACK_TEXT, p as extractToolResultBlockText, s as hasOnlyAssistantReasoningContent, u as resolveFailedAssistantReplay, v as sanitizeSurrogates } from "../host-B8YfDGd4.mjs";
|
|
3
|
+
import { _ as normalizeStructuredPromptSection, c as SYSTEM_PROMPT_RELOCATABLE_BOUNDARY, d as prependSystemPromptAdditionAfterCacheBoundary, f as splitSystemPromptCacheBoundary, g as normalizePromptCapabilityIds, h as stripSystemPromptRelocatableBoundary, i as clampReasoning, l as SYSTEM_PROMPT_RELOCATABLE_BOUNDARY_END, m as stripSystemPromptCacheBoundary, n as buildBaseOptions, p as splitSystemPromptRelocatableBoundary, r as clampMaxTokensToModel, s as SYSTEM_PROMPT_CACHE_BOUNDARY, t as adjustMaxTokensForThinking, u as ensureSystemPromptCacheBoundary, v as sortPromptCacheToolsByName } from "../simple-options-BQbb4yQL.mjs";
|
|
4
|
+
import { t as projectCopilotRequestFacts } from "../github-copilot-request-facts-BTEBMeOv.mjs";
|
|
4
5
|
//#region packages/ai/src/utils/tls-certificate-errors.ts
|
|
5
6
|
const HOSTNAME_MISMATCH_CODES = /* @__PURE__ */ new Set(["ERR_TLS_CERT_ALTNAME_INVALID", "HOSTNAME_MISMATCH"]);
|
|
6
7
|
const CERTIFICATE_INVALID_CODES = /* @__PURE__ */ new Set([
|
|
@@ -93,4 +94,4 @@ function inspectTlsCertificateError(error) {
|
|
|
93
94
|
return inspectTlsCertificateErrorInternal(error, /* @__PURE__ */ new Set(), 0);
|
|
94
95
|
}
|
|
95
96
|
//#endregion
|
|
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 };
|
|
97
|
+
export { FAILED_ASSISTANT_REPLAY_TEXT, STREAM_ERROR_FALLBACK_TEXT, SYSTEM_PROMPT_CACHE_BOUNDARY, SYSTEM_PROMPT_RELOCATABLE_BOUNDARY, SYSTEM_PROMPT_RELOCATABLE_BOUNDARY_END, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, hasOnlyAssistantReasoningContent, inspectTlsCertificateError, isImageWithMediaPayload, isReasoningOnlyLengthAssistantTurn, isStreamErrorFallbackContent, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, projectCopilotRequestFacts, readAssistantThinkingAppend, resolveFailedAssistantReplay, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, splitSystemPromptRelocatableBoundary, stripSystemPromptCacheBoundary, stripSystemPromptRelocatableBoundary, transformMessages };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { a as resolveOpenAIProjectedToolsStrictToolFlag, i as normalizeStrictOpenAIJsonSchema, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics } from "../openai-tool-schema-ynZBgqW-.mjs";
|
|
2
|
+
import { TSchema } from "typebox";
|
|
3
|
+
//#region packages/ai/src/providers/agent-tools-parameter-schema.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Narrow structural view of the host's model compat config. packages/ai must stay
|
|
6
|
+
* config-agnostic, so only tool-schema-relevant fields are modeled here; the host's
|
|
7
|
+
* ModelCompatConfig remains structurally assignable.
|
|
8
|
+
*/
|
|
9
|
+
export type ToolSchemaModelCompat = {
|
|
10
|
+
toolSchemaProfile?: string;
|
|
11
|
+
unsupportedToolSchemaKeywords?: string[];
|
|
12
|
+
omitEmptyArrayItems?: boolean;
|
|
13
|
+
};
|
|
14
|
+
/** Extracts the compat record whether callers pass a model (`{ compat }`) or the compat itself. */
|
|
15
|
+
export declare function extractToolSchemaModelCompat(modelOrCompat: {
|
|
16
|
+
compat?: unknown;
|
|
17
|
+
} | ToolSchemaModelCompat | undefined): ToolSchemaModelCompat | undefined;
|
|
18
|
+
/** JSON Schema keywords this model/provider rejects in tool schemas. */
|
|
19
|
+
export declare function resolveUnsupportedToolSchemaKeywords(modelOrCompat: {
|
|
20
|
+
compat?: unknown;
|
|
21
|
+
} | ToolSchemaModelCompat | undefined): ReadonlySet<string>;
|
|
22
|
+
/** Whether empty `items: {}` on array schemas must be omitted for this model/provider. */
|
|
23
|
+
export declare function shouldOmitEmptyArrayItems(modelOrCompat: {
|
|
24
|
+
compat?: unknown;
|
|
25
|
+
} | ToolSchemaModelCompat | undefined): boolean;
|
|
26
|
+
export type ToolParameterSchemaOptions = {
|
|
27
|
+
modelProvider?: string;
|
|
28
|
+
modelId?: string;
|
|
29
|
+
modelCompat?: ToolSchemaModelCompat;
|
|
30
|
+
};
|
|
31
|
+
/** Return a provider-compatible JSON schema for a model-facing tool. */
|
|
32
|
+
export declare function normalizeToolParameterSchema(schema: unknown, options?: ToolParameterSchemaOptions): TSchema;
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region packages/ai/src/providers/clean-for-gemini.d.ts
|
|
35
|
+
export declare const GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS: Set<string>;
|
|
36
|
+
export declare function cleanSchemaForGemini(schema: unknown): TSchema;
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region packages/ai/src/providers/clean-for-llamacpp-gbnf.d.ts
|
|
39
|
+
/** llama.cpp rejects grammar repetitions whose expanded rule count reaches 2000. */
|
|
40
|
+
export declare const LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD = 2000;
|
|
41
|
+
/** Removes JSON Schema constraints that llama.cpp cannot compile into GBNF. */
|
|
42
|
+
export declare function cleanSchemaForLlamacppGbnf(schema: unknown): unknown;
|
|
43
|
+
/** Reports schema paths that llama.cpp cannot compile into GBNF. */
|
|
44
|
+
export declare function findLlamacppGbnfSchemaViolations(schema: unknown, path: string): string[];
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region packages/ai/src/providers/schema-keyword-strip.d.ts
|
|
47
|
+
/** Recursively remove schema keywords unsupported by a target provider/tool surface. */
|
|
48
|
+
export declare function stripUnsupportedSchemaKeywords(schema: unknown, unsupportedKeywords: ReadonlySet<string>): unknown;
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region packages/ai/src/providers/tool-schema-json-projection.d.ts
|
|
51
|
+
/** JSON-safe schema value used when projecting runtime tool parameters. */
|
|
52
|
+
export type RuntimeToolInputSchemaJson = null | boolean | number | string | RuntimeToolInputSchemaJson[] | {
|
|
53
|
+
[key: string]: RuntimeToolInputSchemaJson;
|
|
54
|
+
};
|
|
55
|
+
/** Projected runtime tool schema plus validation violations. */
|
|
56
|
+
export type RuntimeToolInputSchemaProjection = {
|
|
57
|
+
readonly schema: RuntimeToolInputSchemaJson;
|
|
58
|
+
readonly violations: readonly string[];
|
|
59
|
+
};
|
|
60
|
+
/** Projects one runtime tool input schema to JSON and reports runtime incompatibilities. */
|
|
61
|
+
export declare function projectRuntimeToolInputSchema(schema: unknown, path?: string): RuntimeToolInputSchemaProjection;
|
|
62
|
+
//#endregion
|
|
63
|
+
export { findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isStrictOpenAIJsonSchemaCompatible, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, resolveOpenAIProjectedToolsStrictToolFlag };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-ClptDdAO.mjs";
|
|
2
|
+
import { _ as cleanSchemaForGemini, a as resolveOpenAIProjectedToolsStrictToolFlag, 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 } from "../openai-tool-schema-CzjyYXun.mjs";
|
|
3
|
+
export { GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isStrictOpenAIJsonSchemaCompatible, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, projectRuntimeToolInputSchema, resolveOpenAIProjectedToolsStrictToolFlag, resolveUnsupportedToolSchemaKeywords, shouldOmitEmptyArrayItems, stripUnsupportedSchemaKeywords };
|