@openclaw/ai 2026.9.7 → 2026.10.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/dist/{anthropic-Cw2pgccz.mjs → anthropic-CZv6XFER.mjs} +52 -147
- package/dist/{anthropic-payload-policy-NIPVYXPq.d.mts → anthropic-payload-policy-BhCcgNdm.d.mts} +7 -4
- package/dist/{anthropic-stream-reducer-D9MCkl8Z.mjs → anthropic-stream-reducer-BQ1tjd7x.mjs} +369 -233
- package/dist/{api-registry-D-nbmSqr.d.mts → api-registry-DpU0Rj-I.d.mts} +4 -4
- package/dist/{provider-transcript-transform-JbFbHV8h.mjs → assistant-output-OLm-Oln0.mjs} +17 -17
- package/dist/{assistant-text-phase-C20rxWwP.mjs → assistant-text-phase-Bl1aDCB7.mjs} +2 -8
- package/dist/{azure-openai-responses-BwT3-X8P.mjs → azure-openai-responses-DH7bd3QT.mjs} +12 -17
- package/dist/{azure-openai-responses-client-compat-C7K7QfUE.mjs → azure-openai-responses-client-compat-D0dvJMbZ.mjs} +3 -10
- package/dist/{base64-C1PsYcRQ.mjs → base64-C8CdcsjU.mjs} +3 -45
- package/dist/cloudflare-5qSGvIUH.mjs +39 -0
- package/dist/{diagnostics-CJaB6g8J.mjs → diagnostics-Caj-4RBA.mjs} +19 -37
- package/dist/diagnostics.d.mts +4 -4
- package/dist/diagnostics.mjs +2 -2
- package/dist/{event-stream-vd9UnCAU.mjs → event-stream-C5AbCAaZ.mjs} +29 -1
- package/dist/event-stream-DqDQWqiy.d.mts +1 -0
- package/dist/{event-stream-DOPFYVqs.d.mts → event-stream-DrRM_90c.d.mts} +1 -1
- package/dist/event-stream.d.mts +2 -2
- package/dist/event-stream.mjs +1 -1
- package/dist/{github-copilot-request-facts-BTEBMeOv.mjs → github-copilot-request-facts-DEE6gcB9.mjs} +3 -1
- package/dist/{google-BfapkS_K.mjs → google-1WLOtb8w.mjs} +12 -9
- package/dist/{google-interactions-DW3iXzjc.mjs → google-interactions-wrnE6MLw.mjs} +39 -49
- package/dist/{google-messages-CtjVtVot.mjs → google-messages-BwPPycw6.mjs} +11 -17
- package/dist/{google-shared-Y2YfotEu.mjs → google-shared-Eql1OMPU.mjs} +5 -6
- package/dist/{google-vertex-Dov4kBWu.mjs → google-vertex-0LrlRoO3.mjs} +11 -11
- package/dist/{host-rxlNaBwm.d.mts → host-BinBeGcQ.d.mts} +12 -4
- package/dist/{host-CHi3X87F.mjs → host-DCW52iHe.mjs} +57 -9
- package/dist/{host-policy-BOAwRg_M.mjs → host-policy-B3jc4Rpn.mjs} +9 -2
- package/dist/{index-D6KsSE74.d.mts → index-a8e_oKnu.d.mts} +7 -5
- package/dist/index.d.mts +23 -7
- package/dist/index.mjs +7 -7
- package/dist/internal/anthropic.d.mts +6 -6
- package/dist/internal/anthropic.mjs +5 -5
- package/dist/internal/google-model-family.mjs +1 -1
- package/dist/internal/openai-completions-compat.d.mts +1 -1
- package/dist/internal/openai-completions-compat.mjs +1 -1
- package/dist/internal/openai-responses-payload-policy.d.mts +1 -1
- package/dist/internal/openai-responses-payload-policy.mjs +2 -2
- package/dist/internal/openai.d.mts +14 -10
- package/dist/internal/openai.mjs +12 -12
- package/dist/internal/runtime.d.mts +18 -9
- package/dist/internal/runtime.mjs +9 -9
- package/dist/internal/shared.d.mts +6 -4
- package/dist/internal/shared.mjs +6 -6
- package/dist/internal/tool-schema.mjs +1 -1
- package/dist/json-schema-Bp07Qui3.mjs +22 -0
- package/dist/{llm-request-activity-BjtkplhG.mjs → llm-request-activity-D8f_oxHj.mjs} +1 -2
- package/dist/{mistral-RS6mboC-.mjs → mistral-DSt4vQAO.mjs} +18 -29
- package/dist/number-coercion-V8-BhME4.mjs +47 -0
- package/dist/{openai-chatgpt-responses-CYbidtrn.mjs → openai-chatgpt-responses-BC2x0Oqx.mjs} +215 -164
- package/dist/openai-completions-DNyHnXKg.mjs +25 -0
- package/dist/{openai-completions-compat-qJjmqQ71.d.mts → openai-completions-compat-BYdYpXhU.d.mts} +3 -3
- package/dist/{openai-completions-compat-BOVWBZDn.mjs → openai-completions-compat-BdmlhD4u.mjs} +30 -23
- package/dist/{openai-completions-stream-CDCuw3DP.mjs → openai-completions-transport-DWM2mQDB.mjs} +389 -76
- package/dist/{openai-prompt-cache-CouErLh7.d.mts → openai-prompt-cache-45-AH_xv.d.mts} +2 -2
- package/dist/{openai-prompt-cache-D2V7MqR7.mjs → openai-prompt-cache-I8YQTzf8.mjs} +1 -1
- package/dist/{openai-responses-compaction-replay-DiYn-gFM.d.mts → openai-responses-compaction-replay-BClApUIf.d.mts} +4 -4
- package/dist/{openai-responses-compaction-window-UNK1GDpy.mjs → openai-responses-compaction-window-m878aVpU.mjs} +25 -83
- package/dist/{openai-reasoning-effort-ConhwkeX.mjs → openai-responses-contracts-BKu8O7l4.mjs} +106 -7
- package/dist/{openai-responses-contracts-D1iZ0njF.d.mts → openai-responses-contracts-Br5IIw_h.d.mts} +16 -5
- package/dist/openai-responses-prompt-observer-internal-CCg7B6l4.mjs +32 -0
- package/dist/{openai-responses-shared-DL4ulQn7.mjs → openai-responses-shared-C7oVyjED.mjs} +297 -312
- package/dist/{openai-responses-terminal-usage-BE7lf7nW.d.mts → openai-responses-terminal-usage-DgImcyJu.d.mts} +2 -2
- package/dist/{openai-responses-CKCBEc2W.mjs → openai-responses-uZ5oWSp7.mjs} +12 -21
- package/dist/{openai-tool-schema-vsl-cE-n.mjs → openai-tool-schema-DYNePiF8.mjs} +66 -36
- package/dist/{openai-transport-params-BwlpzX-2.mjs → openai-transport-params-JFsnIyto.mjs} +25 -30
- package/dist/openai-web-search-tools-Cfu0uLyN.mjs +14 -0
- package/dist/{positive-integer-CjN5OJbH.mjs → positive-integer-CwLi8LUL.mjs} +1 -1
- package/dist/{provider-error-CwT_j2v0.mjs → provider-error-DQBE1bUQ.mjs} +17 -28
- package/dist/{provider-options-Df7ov0K1.d.mts → provider-options-D5ABCV_l.d.mts} +2 -2
- package/dist/{provider-replay-context-DsyI5jOP.mjs → provider-replay-context-C7Bmi84a.mjs} +6 -2
- package/dist/{provider-transport-turn-state-BheUi_hl.mjs → provider-transport-turn-state-_M2kLdUE.mjs} +25 -3
- package/dist/{provider-types-d4XnoZMd.d.mts → provider-types-F8Mqc9Ma.d.mts} +3 -3
- package/dist/provider-types.d.mts +6 -6
- package/dist/providers.d.mts +2 -2
- package/dist/providers.mjs +14 -26
- package/dist/{reasoning-tag-text-partitioner-B6FIIBt6.mjs → reasoning-tag-text-partitioner-Ju9VpUGl.mjs} +23 -37
- package/dist/required-api-key-D4kn3252.mjs +9 -0
- package/dist/sanitize-unicode-CjDG6jJx.d.mts +5 -0
- package/dist/{session-affinity-Bcunsn4I.mjs → session-affinity-DA4WHv1h.mjs} +2 -6
- package/dist/session-resources-D1wgDQ8C.mjs +40 -0
- package/dist/{simple-options-CGAkCwtM.mjs → simple-options-BkKTXxhp.mjs} +7 -11
- package/dist/{src-H4aXcFuX.mjs → src-B0NIt2UK.mjs} +7 -4
- package/dist/stream-DSdzKsDK.mjs +275 -0
- package/dist/{stream-first-event-timeout-B9o0S4SZ.mjs → stream-first-event-timeout-D9ZmL_s9.mjs} +3 -3
- package/dist/{string-coerce-fsri9iCu.mjs → string-coerce-CtgOVOSv.mjs} +5 -1
- package/dist/{string-normalization-J9ZiLfGO.mjs → string-normalization-PN10hf6d.mjs} +1 -1
- package/dist/{transport-utils-C-4bf2Ok.mjs → text-signature-MLwfi6fq.mjs} +18 -18
- package/dist/{transport-stream-shared-yYhXa4kX.d.mts → transport-stream-shared-BcAKh2XH.d.mts} +6 -19
- package/dist/{transport-stream-shared-Dh5qKJ8e.mjs → transport-stream-shared-CxXXz_Dd.mjs} +171 -56
- package/dist/transports.d.mts +22 -23
- package/dist/transports.mjs +251 -495
- package/dist/types-BuiEBM3u.d.mts +1 -0
- package/dist/types-CQc6JNG4.mjs +69 -0
- package/dist/{types-CLLR3eB4.d.mts → types-DvzmWW8J.d.mts} +58 -6
- package/dist/types.d.mts +6 -6
- package/dist/types.mjs +5 -5
- package/dist/usage-CJH5D6Ea.mjs +19 -0
- package/dist/{validation-Cat2wQsc.d.mts → validation-B3lQt_VE.d.mts} +1 -1
- package/dist/{validation-BFZc40Ig.mjs → validation-DbqlIfDn.mjs} +15 -30
- package/dist/validation.d.mts +1 -1
- package/dist/validation.mjs +1 -1
- package/package.json +4 -4
- package/dist/cache-retention-0x979a5V.mjs +0 -12
- package/dist/event-stream-CMQfX_yr.d.mts +0 -1
- package/dist/github-copilot-headers-B37TB3rB.mjs +0 -30
- package/dist/openai-completions-D14ihPYk.mjs +0 -188
- package/dist/openai-provider-client-CwfsGBbA.mjs +0 -24
- package/dist/openai-responses-contracts-CLxnqS9p.mjs +0 -81
- package/dist/openai-responses-prompt-observer-internal-iAqLb4tk.mjs +0 -198
- package/dist/sanitize-unicode-BZiVbGwK.d.mts +0 -24
- package/dist/session-resources-CkR4WWy1.mjs +0 -21
- package/dist/stream-DDsCBgd-.mjs +0 -68
- package/dist/types-CB-_vNyI.d.mts +0 -1
- package/dist/types-LFWwv0cF.mjs +0 -8
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { o as truncateUtf16Safe } from "./provider-error-
|
|
1
|
+
import { r as getAiTransportHost } from "./host-DCW52iHe.mjs";
|
|
2
|
+
import { o as truncateUtf16Safe } from "./provider-error-DQBE1bUQ.mjs";
|
|
3
3
|
import "./internal/retry-after.mjs";
|
|
4
|
-
import "./
|
|
4
|
+
import { N as raceWithTimeout } from "./transport-stream-shared-CxXXz_Dd.mjs";
|
|
5
|
+
import "./positive-integer-CwLi8LUL.mjs";
|
|
5
6
|
//#region packages/normalization-core/src/response-bytes.ts
|
|
6
7
|
async function consumeResponseBytes(options) {
|
|
7
8
|
let size = 0;
|
|
@@ -30,7 +31,7 @@ async function consumeResponseBytes(options) {
|
|
|
30
31
|
const MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE = "OpenClaw transport error: malformed_streaming_fragment";
|
|
31
32
|
const NON_LATIN_RE = /[\u2E80-\u9FFF\uA000-\uA4FF\uAC00-\uD7AF\uF900-\uFAFF\uFF01-\uFF60\uFFE0-\uFFE6\u{20000}-\u{2FA1F}]/gu;
|
|
32
33
|
const CJK_SURROGATE_HIGH_RE = /[\uD840-\uD87E][\uDC00-\uDFFF]/g;
|
|
33
|
-
function redactSensitiveText(text
|
|
34
|
+
function redactSensitiveText(text) {
|
|
34
35
|
return getAiTransportHost().redactToolPayloadText(text);
|
|
35
36
|
}
|
|
36
37
|
function resolveModelHeaderSentinels(model) {
|
|
@@ -48,11 +49,6 @@ function resolveModelHeaderSentinels(model) {
|
|
|
48
49
|
headers
|
|
49
50
|
} : model;
|
|
50
51
|
}
|
|
51
|
-
function createAbortError(message, options) {
|
|
52
|
-
const error = new Error(message, options);
|
|
53
|
-
error.name = "AbortError";
|
|
54
|
-
return error;
|
|
55
|
-
}
|
|
56
52
|
function estimateStringChars(text) {
|
|
57
53
|
if (!text) return 0;
|
|
58
54
|
const nonLatinCount = (text.match(NON_LATIN_RE) ?? []).length;
|
|
@@ -65,14 +61,9 @@ function isCodeModeModelVisibleToolName(name, visibleToolNames) {
|
|
|
65
61
|
return visibleToolNames.has(name);
|
|
66
62
|
}
|
|
67
63
|
async function readChunkWithIdleTimeout(reader, timeoutMs, onIdleTimeout) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
timer = setTimeout(() => reject(onIdleTimeout?.({ chunkTimeoutMs: timeoutMs }) ?? /* @__PURE__ */ new Error("Read timed out")), timeoutMs);
|
|
72
|
-
})]);
|
|
73
|
-
} finally {
|
|
74
|
-
if (timer) clearTimeout(timer);
|
|
75
|
-
}
|
|
64
|
+
return await raceWithTimeout(reader.read(), timeoutMs, () => {
|
|
65
|
+
throw onIdleTimeout?.({ chunkTimeoutMs: timeoutMs }) ?? /* @__PURE__ */ new Error("Read timed out");
|
|
66
|
+
});
|
|
76
67
|
}
|
|
77
68
|
async function readResponseTextSnippet(response, options) {
|
|
78
69
|
const maxBytes = options?.maxBytes ?? 8192;
|
|
@@ -114,4 +105,13 @@ async function readResponseTextSnippet(response, options) {
|
|
|
114
105
|
return truncated ? `${collapsed}…` : collapsed;
|
|
115
106
|
}
|
|
116
107
|
//#endregion
|
|
117
|
-
|
|
108
|
+
//#region packages/ai/src/utils/text-signature.ts
|
|
109
|
+
function encodeTextSignatureV1(id, phase) {
|
|
110
|
+
return JSON.stringify({
|
|
111
|
+
v: 1,
|
|
112
|
+
id,
|
|
113
|
+
...phase ? { phase } : {}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { readResponseTextSnippet as a, supportsModelTools as c, isCodeModeModelVisibleToolName as i, MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE as n, redactSensitiveText as o, estimateStringChars as r, resolveModelHeaderSentinels as s, encodeTextSignatureV1 as t };
|
package/dist/{transport-stream-shared-yYhXa4kX.d.mts → transport-stream-shared-BcAKh2XH.d.mts}
RENAMED
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
import "./index-
|
|
2
|
-
import {
|
|
3
|
-
import { r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-
|
|
4
|
-
import "./event-stream-
|
|
1
|
+
import "./index-a8e_oKnu.mjs";
|
|
2
|
+
import { H as ProviderResponse, a as AssistantMessage, k as Model, nt as StreamOptions, pt as Usage } from "./types-DvzmWW8J.mjs";
|
|
3
|
+
import { r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-DrRM_90c.mjs";
|
|
4
|
+
import "./event-stream-DqDQWqiy.mjs";
|
|
5
5
|
import { t as ProviderErrorProjection } from "./provider-error-xumb1V3F.mjs";
|
|
6
6
|
//#region packages/ai/src/transports/transport-stream-shared.d.ts
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
input: number;
|
|
10
|
-
output: number;
|
|
11
|
-
cacheRead: number;
|
|
12
|
-
cacheWrite: number;
|
|
13
|
-
contextUsage?: ContextUsage;
|
|
14
|
-
totalTokens: number;
|
|
15
|
-
cost: {
|
|
16
|
-
input: number;
|
|
17
|
-
output: number;
|
|
18
|
-
cacheRead: number;
|
|
19
|
-
cacheWrite: number;
|
|
20
|
-
total: number;
|
|
21
|
-
};
|
|
7
|
+
type TransportUsage = Pick<Usage, "input" | "output" | "cacheRead" | "cacheWrite" | "contextUsage" | "totalTokens"> & {
|
|
8
|
+
cost: Pick<Usage["cost"], "input" | "output" | "cacheRead" | "cacheWrite" | "total">;
|
|
22
9
|
};
|
|
23
10
|
type WritableTransportStream = Pick<ReturnType<typeof createAssistantMessageEventStream>, "push" | "end">;
|
|
24
11
|
declare function sanitizeTransportPayloadText(text: string): string;
|
|
@@ -1,36 +1,178 @@
|
|
|
1
1
|
import { n as createAssistantMessageDiagnostic, t as appendAssistantMessageDiagnostic } from "./diagnostics-DzrF1h4J.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { a as createAssistantMessageEventStream } from "./event-stream-C5AbCAaZ.mjs";
|
|
3
3
|
import { i as asOptionalRecord, n as asNullableRecord, t as asNonArrayRecord } from "./record-coerce-CNDovvft.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { i as projectDiagnosticValue, n as projectProviderError } from "./provider-error-
|
|
6
|
-
import { c as isTransientNetworkError } from "./diagnostics-
|
|
4
|
+
import { E as headersToRecord, r as getAiTransportHost } from "./host-DCW52iHe.mjs";
|
|
5
|
+
import { i as projectDiagnosticValue, n as projectProviderError } from "./provider-error-DQBE1bUQ.mjs";
|
|
6
|
+
import { c as isTransientNetworkError } from "./diagnostics-Caj-4RBA.mjs";
|
|
7
|
+
import { t as createZeroUsage } from "./usage-CJH5D6Ea.mjs";
|
|
7
8
|
import { parse } from "partial-json";
|
|
8
9
|
//#region packages/ai/src/utils/sanitize-unicode.ts
|
|
9
|
-
/**
|
|
10
|
-
* Removes unpaired Unicode surrogate characters from a string.
|
|
11
|
-
*
|
|
12
|
-
* Unpaired surrogates (high surrogates 0xD800-0xDBFF without matching low surrogates 0xDC00-0xDFFF,
|
|
13
|
-
* or vice versa) cause JSON serialization errors in many API providers.
|
|
14
|
-
*
|
|
15
|
-
* Valid emoji and other characters outside the Basic Multilingual Plane use properly paired
|
|
16
|
-
* surrogates and will NOT be affected by this function.
|
|
17
|
-
*
|
|
18
|
-
* @param text - The text to sanitize
|
|
19
|
-
* @returns The sanitized text with unpaired surrogates removed
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* // Valid emoji (properly paired surrogates) are preserved
|
|
23
|
-
* sanitizeSurrogates("Hello 🙈 World") // => "Hello 🙈 World"
|
|
24
|
-
*
|
|
25
|
-
* // Unpaired high surrogate is removed
|
|
26
|
-
* const unpaired = String.fromCharCode(0xD83D); // high surrogate without low
|
|
27
|
-
* sanitizeSurrogates(`Text ${unpaired} here`) // => "Text here"
|
|
28
|
-
*/
|
|
10
|
+
/** Remove unpaired surrogates rejected by providers; preserve valid Unicode pairs. */
|
|
29
11
|
function sanitizeSurrogates(text) {
|
|
30
12
|
if (text.isWellFormed()) return text;
|
|
31
13
|
return text.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, "");
|
|
32
14
|
}
|
|
33
15
|
//#endregion
|
|
16
|
+
//#region packages/retry/src/index.ts
|
|
17
|
+
const MAX_TIMER_TIMEOUT_MS = 2147e6;
|
|
18
|
+
function createAbortError(message, options) {
|
|
19
|
+
const error = new Error(message, options);
|
|
20
|
+
error.name = "AbortError";
|
|
21
|
+
return error;
|
|
22
|
+
}
|
|
23
|
+
function racePromiseWithAbortSignal(operation, signal, createError = (abortedSignal) => createAbortError("Operation aborted", { cause: abortedSignal.reason })) {
|
|
24
|
+
const run = () => {
|
|
25
|
+
try {
|
|
26
|
+
return typeof operation === "function" ? operation() : operation;
|
|
27
|
+
} catch (error) {
|
|
28
|
+
return Promise.reject(error);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
if (!signal) return run();
|
|
32
|
+
const abortError = () => createError(signal);
|
|
33
|
+
if (signal.aborted) {
|
|
34
|
+
const aborted = Promise.reject(abortError());
|
|
35
|
+
return typeof operation === "function" ? aborted : Promise.race([aborted, operation]);
|
|
36
|
+
}
|
|
37
|
+
let onAbort;
|
|
38
|
+
const aborted = new Promise((_, reject) => {
|
|
39
|
+
onAbort = () => reject(abortError());
|
|
40
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
41
|
+
if (signal.aborted) onAbort();
|
|
42
|
+
});
|
|
43
|
+
return Promise.race([run(), aborted]).finally(() => {
|
|
44
|
+
signal.removeEventListener("abort", onAbort);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/** Bounds observation without cancelling work; a factory starts only after the timer is armed. */
|
|
48
|
+
async function raceWithTimeout(operation, timeoutMs, onTimeout, options = {}) {
|
|
49
|
+
let timer;
|
|
50
|
+
try {
|
|
51
|
+
const deadline = new Promise((resolve, reject) => {
|
|
52
|
+
timer = setTimeout(() => {
|
|
53
|
+
try {
|
|
54
|
+
resolve(onTimeout());
|
|
55
|
+
} catch (error) {
|
|
56
|
+
reject(error);
|
|
57
|
+
}
|
|
58
|
+
}, timeoutMs);
|
|
59
|
+
if (options.ref === false) timer.unref?.();
|
|
60
|
+
});
|
|
61
|
+
return await Promise.race([typeof operation === "function" ? operation() : operation, deadline]);
|
|
62
|
+
} finally {
|
|
63
|
+
clearTimeout(timer);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const DEFAULT_RETRY_CONFIG = {
|
|
67
|
+
attempts: 3,
|
|
68
|
+
minDelayMs: 300,
|
|
69
|
+
maxDelayMs: 3e4,
|
|
70
|
+
jitter: 0
|
|
71
|
+
};
|
|
72
|
+
const defaultSleep = async (ms) => {
|
|
73
|
+
let remainingMs = ms;
|
|
74
|
+
do {
|
|
75
|
+
const delayMs = Math.min(remainingMs, MAX_TIMER_TIMEOUT_MS);
|
|
76
|
+
await new Promise((resolve) => {
|
|
77
|
+
setTimeout(resolve, delayMs);
|
|
78
|
+
});
|
|
79
|
+
remainingMs -= delayMs;
|
|
80
|
+
} while (remainingMs > 0);
|
|
81
|
+
};
|
|
82
|
+
function clampNumber(value, fallback, min, max) {
|
|
83
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return fallback;
|
|
84
|
+
return Math.min(Math.max(value, min ?? Number.NEGATIVE_INFINITY), max ?? Number.POSITIVE_INFINITY);
|
|
85
|
+
}
|
|
86
|
+
function resolveAttemptCount(value, fallback) {
|
|
87
|
+
return Math.max(1, Math.round(clampNumber(value, fallback)));
|
|
88
|
+
}
|
|
89
|
+
function resolveRetryDelayMs(value) {
|
|
90
|
+
return Math.min(Math.max(Math.round(value === Number.POSITIVE_INFINITY ? MAX_TIMER_TIMEOUT_MS : Number.isFinite(value) ? value : 0), 0), MAX_TIMER_TIMEOUT_MS);
|
|
91
|
+
}
|
|
92
|
+
function resolveJitterConfig(value, fallback) {
|
|
93
|
+
if (value === "full") return "full";
|
|
94
|
+
return typeof value === "number" && Number.isFinite(value) ? Math.min(Math.max(value, 0), 1) : fallback;
|
|
95
|
+
}
|
|
96
|
+
function resolveRetryConfig(defaults = DEFAULT_RETRY_CONFIG, overrides) {
|
|
97
|
+
const attempts = resolveAttemptCount(overrides?.attempts, defaults.attempts);
|
|
98
|
+
const minDelayMs = resolveRetryDelayMs(clampNumber(overrides?.minDelayMs, defaults.minDelayMs, 0));
|
|
99
|
+
return {
|
|
100
|
+
attempts,
|
|
101
|
+
minDelayMs,
|
|
102
|
+
maxDelayMs: Math.max(minDelayMs, resolveRetryDelayMs(clampNumber(overrides?.maxDelayMs, defaults.maxDelayMs, 0))),
|
|
103
|
+
jitter: resolveJitterConfig(overrides?.jitter, defaults.jitter)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function applyJitter(delayMs, jitter, mode, random) {
|
|
107
|
+
if (jitter === "full") {
|
|
108
|
+
if (mode === "symmetric") return Math.max(0, Math.round(delayMs * (.5 + random() * .5)));
|
|
109
|
+
return Math.max(0, Math.ceil(delayMs * (1 + random())));
|
|
110
|
+
}
|
|
111
|
+
if (jitter <= 0) return mode === "positive" ? Math.ceil(delayMs) : delayMs;
|
|
112
|
+
const fraction = random();
|
|
113
|
+
const raw = delayMs * (1 + (mode === "positive" ? fraction * jitter : (fraction * 2 - 1) * jitter));
|
|
114
|
+
return Math.max(0, mode === "positive" ? Math.ceil(raw) : Math.round(raw));
|
|
115
|
+
}
|
|
116
|
+
function toRetryError(value, fallbackMessage = "Non-Error thrown") {
|
|
117
|
+
if (value instanceof Error) return value;
|
|
118
|
+
if (typeof value === "string") return new Error(value);
|
|
119
|
+
const error = new Error(fallbackMessage, { cause: value });
|
|
120
|
+
if (typeof value === "object" && value !== null || typeof value === "function") Object.assign(error, value);
|
|
121
|
+
return error;
|
|
122
|
+
}
|
|
123
|
+
function createRetryRunner(runtime = {}) {
|
|
124
|
+
const runtimeSleep = runtime.sleep ?? defaultSleep;
|
|
125
|
+
const runtimeRandom = runtime.random ?? Math.random;
|
|
126
|
+
const createFailure = runtime.createFailure ?? ((errors) => toRetryError(errors.at(-1) ?? /* @__PURE__ */ new Error("Retry failed")));
|
|
127
|
+
return async function retryAsync(fn, attemptsOrOptions = 3, initialDelayMs = 300) {
|
|
128
|
+
const attemptErrors = [];
|
|
129
|
+
const numeric = typeof attemptsOrOptions === "number";
|
|
130
|
+
const options = typeof attemptsOrOptions === "number" ? { attempts: attemptsOrOptions } : attemptsOrOptions;
|
|
131
|
+
const resolved = resolveRetryConfig(DEFAULT_RETRY_CONFIG, options);
|
|
132
|
+
const maxAttempts = resolved.attempts;
|
|
133
|
+
const minDelayMs = resolved.minDelayMs;
|
|
134
|
+
const maxDelayMs = resolved.maxDelayMs > 0 ? resolved.maxDelayMs : Number.POSITIVE_INFINITY;
|
|
135
|
+
const retryAfterMaxDelayMs = options.retryAfterMaxDelayMs === void 0 ? maxDelayMs : Math.max(minDelayMs, resolveRetryDelayMs(clampNumber(options.retryAfterMaxDelayMs, maxDelayMs, 0)));
|
|
136
|
+
const random = options.random ?? runtimeRandom;
|
|
137
|
+
const sleep = options.sleep ?? runtimeSleep;
|
|
138
|
+
const shouldRetry = options.shouldRetry ?? (() => true);
|
|
139
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt += 1) try {
|
|
140
|
+
return await fn();
|
|
141
|
+
} catch (err) {
|
|
142
|
+
attemptErrors.push(err);
|
|
143
|
+
if (attempt >= maxAttempts || !shouldRetry(err, attempt)) break;
|
|
144
|
+
if (numeric) {
|
|
145
|
+
await runtimeSleep(resolveRetryDelayMs(initialDelayMs * 2 ** (attempt - 1)));
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const context = {
|
|
149
|
+
attempt,
|
|
150
|
+
maxAttempts,
|
|
151
|
+
err,
|
|
152
|
+
label: options.label
|
|
153
|
+
};
|
|
154
|
+
const retryAfterMs = options.retryAfterMs?.(err);
|
|
155
|
+
const hasRetryAfter = typeof retryAfterMs === "number" && Number.isFinite(retryAfterMs);
|
|
156
|
+
const configuredDelay = typeof options.delayMs === "function" ? options.delayMs(context) : options.delayMs;
|
|
157
|
+
const resolvedConfiguredDelay = configuredDelay === void 0 ? void 0 : resolveRetryDelayMs(configuredDelay);
|
|
158
|
+
const baseDelay = hasRetryAfter ? Math.max(retryAfterMs, minDelayMs) : resolvedConfiguredDelay === void 0 ? minDelayMs * 2 ** (attempt - 1) : Math.max(resolvedConfiguredDelay, minDelayMs);
|
|
159
|
+
const delayCap = hasRetryAfter ? retryAfterMaxDelayMs : maxDelayMs;
|
|
160
|
+
let delay = Math.min(baseDelay, delayCap);
|
|
161
|
+
const canHonorRetryAfter = hasRetryAfter && (retryAfterMs ?? 0) <= delayCap;
|
|
162
|
+
const wantsPositiveDraw = resolved.jitter === "full" ? !hasRetryAfter || canHonorRetryAfter : canHonorRetryAfter;
|
|
163
|
+
delay = applyJitter(delay, resolved.jitter, wantsPositiveDraw ? "positive" : "symmetric", random);
|
|
164
|
+
delay = Math.min(Math.max(delay, minDelayMs), delayCap);
|
|
165
|
+
await options.onRetry?.({
|
|
166
|
+
...context,
|
|
167
|
+
delayMs: delay
|
|
168
|
+
});
|
|
169
|
+
if (delay > 0) await sleep(delay);
|
|
170
|
+
}
|
|
171
|
+
throw createFailure(attemptErrors);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
createRetryRunner();
|
|
175
|
+
//#endregion
|
|
34
176
|
//#region packages/ai/src/utils/hash.ts
|
|
35
177
|
/** Fast deterministic hash to shorten long strings */
|
|
36
178
|
function shortHash(str) {
|
|
@@ -222,9 +364,7 @@ function parseJsonNumberToken(input, start) {
|
|
|
222
364
|
}
|
|
223
365
|
function isUnsafeIntegerLiteral(token) {
|
|
224
366
|
const digits = token[0] === "-" ? token.slice(1) : token;
|
|
225
|
-
|
|
226
|
-
if (digits.length > MAX_SAFE_INTEGER_ABS_STR.length) return true;
|
|
227
|
-
return digits > MAX_SAFE_INTEGER_ABS_STR;
|
|
367
|
+
return digits.length > MAX_SAFE_INTEGER_ABS_STR.length || digits.length === MAX_SAFE_INTEGER_ABS_STR.length && digits > MAX_SAFE_INTEGER_ABS_STR;
|
|
228
368
|
}
|
|
229
369
|
/** Quotes integer literals above Number.MAX_SAFE_INTEGER before JSON.parse. */
|
|
230
370
|
function quoteUnsafeIntegerLiterals(input) {
|
|
@@ -364,20 +504,7 @@ function mergeTransportHeaders(...headerSources) {
|
|
|
364
504
|
return Object.keys(merged).length > 0 ? merged : void 0;
|
|
365
505
|
}
|
|
366
506
|
function createEmptyTransportUsage() {
|
|
367
|
-
return
|
|
368
|
-
input: 0,
|
|
369
|
-
output: 0,
|
|
370
|
-
cacheRead: 0,
|
|
371
|
-
cacheWrite: 0,
|
|
372
|
-
totalTokens: 0,
|
|
373
|
-
cost: {
|
|
374
|
-
input: 0,
|
|
375
|
-
output: 0,
|
|
376
|
-
cacheRead: 0,
|
|
377
|
-
cacheWrite: 0,
|
|
378
|
-
total: 0
|
|
379
|
-
}
|
|
380
|
-
};
|
|
507
|
+
return createZeroUsage();
|
|
381
508
|
}
|
|
382
509
|
function createWritableTransportEventStream() {
|
|
383
510
|
const eventStream = createAssistantMessageEventStream();
|
|
@@ -465,20 +592,8 @@ async function awaitProviderLifecycleCallback(callback, signal) {
|
|
|
465
592
|
if (!callback) return;
|
|
466
593
|
const callbackPromise = Promise.resolve().then(callback);
|
|
467
594
|
getAiTransportHost().observePendingProviderWork?.(callbackPromise);
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
return;
|
|
471
|
-
}
|
|
472
|
-
let onAbort;
|
|
473
|
-
try {
|
|
474
|
-
await Promise.race([callbackPromise, new Promise((_resolve, reject) => {
|
|
475
|
-
onAbort = () => reject(transportAbortError(signal));
|
|
476
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
477
|
-
})]);
|
|
478
|
-
} finally {
|
|
479
|
-
if (onAbort) signal.removeEventListener("abort", onAbort);
|
|
480
|
-
}
|
|
481
|
-
if (signal.aborted) throw transportAbortError(signal);
|
|
595
|
+
await racePromiseWithAbortSignal(callbackPromise, signal, transportAbortError);
|
|
596
|
+
if (signal?.aborted) throw transportAbortError(signal);
|
|
482
597
|
}
|
|
483
598
|
function startProviderStreamCancellation(cancelStream, error) {
|
|
484
599
|
const reason = error instanceof Error ? error : new Error(String(error));
|
|
@@ -590,4 +705,4 @@ function failTransportStream(params) {
|
|
|
590
705
|
stream.end();
|
|
591
706
|
}
|
|
592
707
|
//#endregion
|
|
593
|
-
export { shortHash as A, parseJsonObjectPreservingUnsafeIntegers as C, parseJsonWithRepair as D, createToolArgumentPreviewSchedule as E, parseStreamingJson as O, withProviderResponseHook as S, quoteUnsafeIntegerLiterals as T, sanitizeNonEmptyTransportPayloadText as _, createEmptyTransportUsage as a, transportAbortError as b, failTransportStream as c, iterateModelStream as d, mergeTransportHeaders as f, parseTerminalToolCallArguments as g, notifyProviderStreamOpened as h, copyProviderAcceptanceObserver as i,
|
|
708
|
+
export { shortHash as A, parseJsonObjectPreservingUnsafeIntegers as C, parseJsonWithRepair as D, createToolArgumentPreviewSchedule as E, racePromiseWithAbortSignal as M, raceWithTimeout as N, parseStreamingJson as O, sanitizeSurrogates as P, withProviderResponseHook as S, quoteUnsafeIntegerLiterals as T, sanitizeNonEmptyTransportPayloadText as _, createEmptyTransportUsage as a, transportAbortError as b, failTransportStream as c, iterateModelStream as d, mergeTransportHeaders as f, parseTerminalToolCallArguments as g, notifyProviderStreamOpened as h, copyProviderAcceptanceObserver as i, createAbortError as j, repairJson as k, finalizeTerminalToolCallArguments as l, notifyProviderHttpResponse as m, assignTransportErrorDetails as n, createModelStreamCooperativeScheduler as o, notifyProviderHttpMetadata as p, coerceTransportToolCallArguments as r, createWritableTransportEventStream as s, IncompleteToolCallError as t, finalizeTransportStream as u, sanitizeTransportPayloadText as v, parseJsonPreservingUnsafeIntegers as w, withProviderAcceptanceObserver as x, throwIfModelStreamAborted as y };
|
package/dist/transports.d.mts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import "./index-
|
|
2
|
-
import { $ as
|
|
3
|
-
import { n as ApiRegistry } from "./api-registry-
|
|
4
|
-
import { o as AiProviderStreamHookContext } from "./host-
|
|
5
|
-
import { a as BaseOpenAIStreamOptions, c as OpenAIResponsesCompactionRejection, o as CodeModeToolSurfaceObservation, s as OpenAICompletionsOptions } from "./provider-options-
|
|
1
|
+
import "./index-a8e_oKnu.mjs";
|
|
2
|
+
import { $ as StopReason, N as OpenAICompletionsCompat, Nt as ModelDataThinkingFormat, V as ProviderReplayState, a as AssistantMessage, d as Context, et as StreamFn, k as Model, l as CacheRetention, lt as Tool, n as Api, nt as StreamOptions, ot as ThinkingContent, pt as Usage, rt as TextContent, ut as ToolCall } from "./types-DvzmWW8J.mjs";
|
|
3
|
+
import { n as ApiRegistry } from "./api-registry-DpU0Rj-I.mjs";
|
|
4
|
+
import { o as AiProviderStreamHookContext } from "./host-BinBeGcQ.mjs";
|
|
5
|
+
import { a as BaseOpenAIStreamOptions, c as OpenAIResponsesCompactionRejection, o as CodeModeToolSurfaceObservation, s as OpenAICompletionsOptions } from "./provider-options-D5ABCV_l.mjs";
|
|
6
6
|
import { n as OpenAIToolProjection } from "./openai-tool-projection-793cE3QX.mjs";
|
|
7
|
-
import "./types-
|
|
8
|
-
import { a as buildAnthropicSystemBlocks, c as logAnthropicContextEdits, d as resolveAnthropicPayloadPolicy, f as resolveAnthropicRequestBetaHeader, i as applyAnthropicRequestCacheControl, l as resolveAnthropicCacheOptions, n as applyAnthropicEphemeralCacheControlMarkers, o as isAnthropicServerToolClearingEnabled, p as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, s as isDirectAnthropicModel, t as applyAnthropicContextManagementToRequest, u as resolveAnthropicEphemeralCacheControl } from "./anthropic-payload-policy-
|
|
9
|
-
import { a as resolveOpenAICompletionsCompat, i as isOpenAICodexResponsesModel, n as detectOpenAICompletionsCompat, o as resolveOpenAIPromptCacheKeySupport, r as isNativeOpenAIEndpoint, s as usesNativeOpenAICodexResponsesBackend, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-
|
|
10
|
-
import {
|
|
7
|
+
import "./types-BuiEBM3u.mjs";
|
|
8
|
+
import { a as buildAnthropicSystemBlocks, c as logAnthropicContextEdits, d as resolveAnthropicPayloadPolicy, f as resolveAnthropicRequestBetaHeader, i as applyAnthropicRequestCacheControl, l as resolveAnthropicCacheOptions, m as supportsAnthropicServerSideFallback, n as applyAnthropicEphemeralCacheControlMarkers, o as isAnthropicServerToolClearingEnabled, p as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, s as isDirectAnthropicModel, t as applyAnthropicContextManagementToRequest, u as resolveAnthropicEphemeralCacheControl } from "./anthropic-payload-policy-BhCcgNdm.mjs";
|
|
9
|
+
import { a as resolveOpenAICompletionsCompat, i as isOpenAICodexResponsesModel, n as detectOpenAICompletionsCompat, o as resolveOpenAIPromptCacheKeySupport, r as isNativeOpenAIEndpoint, s as usesNativeOpenAICodexResponsesBackend, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-BYdYpXhU.mjs";
|
|
10
|
+
import { l as OpenAIResponsesCompactionOutput, n as OpenAIResponsesOptions, r as OpenAIResponsesReasoningReplayMetadata } from "./openai-responses-contracts-Br5IIw_h.mjs";
|
|
11
11
|
import { i as resolveOpenAIResponsesServerCompactionPlan, n as resolveOpenAIResponsesCompactEndpointPlan, r as resolveOpenAIResponsesPayloadPolicy, t as applyOpenAIResponsesPayloadPolicy } from "./openai-responses-payload-policy-C7GsA1y0.mjs";
|
|
12
|
-
import { n as captureOpenAIResponsesCompaction, t as CompactionReplayRefreshRequiredError } from "./openai-responses-compaction-replay-
|
|
13
|
-
import { C as withProviderAcceptanceObserver, S as transportAbortError, _ as notifyProviderStreamOpened, a as coerceTransportToolCallArguments, b as sanitizeTransportPayloadText, c as createModelStreamCooperativeScheduler, d as finalizeTerminalToolCallArguments, f as finalizeTransportStream, g as notifyProviderHttpResponse, h as notifyProviderHttpMetadata, i as assignTransportErrorDetails, l as createWritableTransportEventStream, m as mergeTransportHeaders, n as ProviderAcceptance, o as copyProviderAcceptanceObserver, p as iterateModelStream, r as WritableTransportStream, s as createEmptyTransportUsage, t as IncompleteToolCallError, u as failTransportStream, v as parseTerminalToolCallArguments, w as withProviderResponseHook, x as throwIfModelStreamAborted, y as sanitizeNonEmptyTransportPayloadText } from "./transport-stream-shared-
|
|
12
|
+
import { n as captureOpenAIResponsesCompaction, t as CompactionReplayRefreshRequiredError } from "./openai-responses-compaction-replay-BClApUIf.mjs";
|
|
13
|
+
import { C as withProviderAcceptanceObserver, S as transportAbortError, _ as notifyProviderStreamOpened, a as coerceTransportToolCallArguments, b as sanitizeTransportPayloadText, c as createModelStreamCooperativeScheduler, d as finalizeTerminalToolCallArguments, f as finalizeTransportStream, g as notifyProviderHttpResponse, h as notifyProviderHttpMetadata, i as assignTransportErrorDetails, l as createWritableTransportEventStream, m as mergeTransportHeaders, n as ProviderAcceptance, o as copyProviderAcceptanceObserver, p as iterateModelStream, r as WritableTransportStream, s as createEmptyTransportUsage, t as IncompleteToolCallError, u as failTransportStream, v as parseTerminalToolCallArguments, w as withProviderResponseHook, x as throwIfModelStreamAborted, y as sanitizeNonEmptyTransportPayloadText } from "./transport-stream-shared-BcAKh2XH.mjs";
|
|
14
14
|
import { r as sortPromptCacheToolsByName } from "./prompt-cache-stability-Cwcjv_fx.mjs";
|
|
15
15
|
import { r as normalizeOpenAIStrictToolParameters } from "./openai-tool-schema-a5ysBBga.mjs";
|
|
16
|
-
import { d as VideoContent, i as ProviderContext, s as ProviderModel } from "./provider-types-
|
|
16
|
+
import { d as VideoContent, i as ProviderContext, s as ProviderModel } from "./provider-types-F8Mqc9Ma.mjs";
|
|
17
17
|
import { a as resolveModelSseDebugMode, i as resolveModelPayloadDebugMode, n as formatModelTransportDebugUrl, r as emitModelTransportDebug, t as formatModelTransportDebugBaseUrl } from "./model-transport-url-C5f59L3Y.mjs";
|
|
18
18
|
import OpenAI from "openai";
|
|
19
19
|
import { Part } from "@google/genai";
|
|
@@ -273,11 +273,11 @@ export declare function getCompat(model: OpenAIModeModel): {
|
|
|
273
273
|
supportsJsonSchemaResponseFormat: boolean;
|
|
274
274
|
supportsPromptCacheKey: boolean;
|
|
275
275
|
supportsLongCacheRetention: boolean;
|
|
276
|
+
cacheControlFormat?: OpenAICompletionsCompat["cacheControlFormat"];
|
|
276
277
|
sessionAffinity: "none" | "openai" | "openrouter";
|
|
277
278
|
visibleReasoningDetailTypes: string[];
|
|
278
279
|
requiresNonEmptyUserOrAssistantMessage: boolean;
|
|
279
280
|
configuredSupportsLongCacheRetention?: boolean;
|
|
280
|
-
cacheControlFormat: "anthropic" | undefined;
|
|
281
281
|
reasoningEffortMap: Record<string, string>;
|
|
282
282
|
openRouterRouting: Record<string, unknown>;
|
|
283
283
|
vercelGatewayRouting: Record<string, unknown>;
|
|
@@ -285,6 +285,12 @@ export declare function getCompat(model: OpenAIModeModel): {
|
|
|
285
285
|
strictMessageKeys: boolean;
|
|
286
286
|
};
|
|
287
287
|
//#endregion
|
|
288
|
+
//#region packages/ai/src/transports/provider-compaction-checkpoint.d.ts
|
|
289
|
+
/** Whether provider replay state is a prefix-bound server compaction checkpoint. */
|
|
290
|
+
export declare function isCompactionReplayCheckpoint(replay: unknown): replay is ProviderReplayState;
|
|
291
|
+
/** Strip prefix-bound checkpoints after local history rewrites. */
|
|
292
|
+
export declare function stripCompactionReplayCheckpoint(message: AssistantMessage): AssistantMessage;
|
|
293
|
+
//#endregion
|
|
288
294
|
//#region packages/ai/src/transports/provider-compaction-replay.d.ts
|
|
289
295
|
type ReplayIdentity = {
|
|
290
296
|
sessionId?: string;
|
|
@@ -315,15 +321,11 @@ export declare function resolveCompactionReplayPressure<T extends ReplayMessage>
|
|
|
315
321
|
prefixTokens: number;
|
|
316
322
|
measuredTokens?: number;
|
|
317
323
|
} | undefined;
|
|
318
|
-
/** Whether provider replay state is a prefix-bound server compaction checkpoint. */
|
|
319
|
-
export declare function isCompactionReplayCheckpoint(replay: unknown): replay is ProviderReplayState;
|
|
320
|
-
/** Strip prefix-bound checkpoints after local history rewrites. */
|
|
321
|
-
export declare function stripCompactionReplayCheckpoint(message: AssistantMessage): AssistantMessage;
|
|
322
324
|
/** Strip prefix-bound checkpoint state from an in-place message rewrite. */
|
|
323
325
|
export declare function stripCompactionReplayCheckpointInPlace(message: {
|
|
324
326
|
providerReplay?: unknown;
|
|
325
327
|
}): void;
|
|
326
|
-
/**
|
|
328
|
+
/** Preserve the covered prefix and reindex checkpoints after known content removals. */
|
|
327
329
|
export declare function replaceCompactionReplayOwnerContent(message: AssistantMessage, content: AssistantMessage["content"]): AssistantMessage;
|
|
328
330
|
//#endregion
|
|
329
331
|
//#region packages/ai/src/transports/provider-transport-stream.d.ts
|
|
@@ -333,15 +335,12 @@ type ProviderTransportStreamContext = {
|
|
|
333
335
|
workspaceDir?: string;
|
|
334
336
|
env?: NodeJS.ProcessEnv;
|
|
335
337
|
};
|
|
338
|
+
declare function createSupportedTransportStreamFn(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
|
|
336
339
|
/** Maps public model APIs to the internal transport API id used by simple runtime dispatch. */
|
|
337
340
|
export declare function resolveTransportAwareSimpleApi(api: Api): Api | undefined;
|
|
338
341
|
/** Creates a managed transport stream only when request overrides require it. */
|
|
339
342
|
export declare function createTransportAwareStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
|
|
340
|
-
/** Creates a managed OpenClaw transport stream for explicit fallback/runtime callers. */
|
|
341
|
-
export declare function createOpenClawTransportStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
|
|
342
|
-
export declare function createBoundaryAwareStreamFnForModel(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
|
|
343
343
|
export declare function prepareTransportAwareSimpleModel<TApi extends Api>(model: Model<TApi>, ctx?: ProviderTransportStreamContext): Model;
|
|
344
|
-
export declare function buildTransportAwareSimpleStreamFn(model: Model, ctx?: ProviderTransportStreamContext): StreamFn | undefined;
|
|
345
344
|
//#endregion
|
|
346
345
|
//#region packages/ai/src/transports/responses-image-payload-sanitizer.d.ts
|
|
347
346
|
/** Sanitize inline image fields inside a Responses API payload. */
|
|
@@ -432,4 +431,4 @@ export declare function convertGoogleTools(tools: Tool[]): {
|
|
|
432
431
|
functionDeclarations: Record<string, unknown>[];
|
|
433
432
|
}[] | undefined;
|
|
434
433
|
//#endregion
|
|
435
|
-
export { CompactionReplayRefreshRequiredError, type GoogleStreamChunk, IncompleteToolCallError, type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicContextManagementToRequest, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyAnthropicRequestCacheControl, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, buildAnthropicSystemBlocks, captureOpenAIResponsesCompaction, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createEmptyTransportUsage, createModelStreamCooperativeScheduler, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, isAnthropicServerToolClearingEnabled, isDirectAnthropicModel, isNativeOpenAIEndpoint, isOpenAICodexResponsesModel, iterateModelStream, logAnthropicContextEdits, mergeTransportHeaders, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicCacheOptions, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicRequestBetaHeader, resolveAnthropicServerCompactionPlan, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIPromptCacheKeySupport, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, throwIfModelStreamAborted, transportAbortError, usesNativeOpenAICodexResponsesBackend, withProviderAcceptanceObserver, withProviderResponseHook };
|
|
434
|
+
export { CompactionReplayRefreshRequiredError, type GoogleStreamChunk, IncompleteToolCallError, type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicContextManagementToRequest, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyAnthropicRequestCacheControl, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, buildAnthropicSystemBlocks, createTransportAwareStreamFnForModel as buildTransportAwareSimpleStreamFn, captureOpenAIResponsesCompaction, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createSupportedTransportStreamFn as createBoundaryAwareStreamFnForModel, createSupportedTransportStreamFn as createOpenClawTransportStreamFnForModel, createEmptyTransportUsage, createModelStreamCooperativeScheduler, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, isAnthropicServerToolClearingEnabled, isDirectAnthropicModel, isNativeOpenAIEndpoint, isOpenAICodexResponsesModel, iterateModelStream, logAnthropicContextEdits, mergeTransportHeaders, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicCacheOptions, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicRequestBetaHeader, resolveAnthropicServerCompactionPlan, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIPromptCacheKeySupport, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, supportsAnthropicServerSideFallback, throwIfModelStreamAborted, transportAbortError, usesNativeOpenAICodexResponsesBackend, withProviderAcceptanceObserver, withProviderResponseHook };
|