@openclaw/ai 2026.10.5-beta.2 → 2026.10.5-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/internal/openai.mjs +2 -2
- package/dist/{openai-chatgpt-responses-V4iP0dv5.mjs → openai-chatgpt-responses-BHI3uCcA.mjs} +3 -2
- package/dist/{openai-completions-BY-kr5IS.mjs → openai-completions-CrVgnFrV.mjs} +1 -1
- package/dist/{openai-completions-transport-v38m71Oq.mjs → openai-completions-transport-Dy4CZo9Q.mjs} +10 -16
- package/dist/providers.mjs +2 -2
- package/dist/transports.mjs +1 -1
- package/package.json +1 -1
package/dist/internal/openai.mjs
CHANGED
|
@@ -3,10 +3,10 @@ import { n as clampOpenAIPromptCacheKey, r as resolveOpenAIPromptCacheParams, t
|
|
|
3
3
|
import { _ as resolveResponsesTerminalStopReason, g as readResponsesReasoningTokens, h as mapResponsesTerminalUsage, m as isResponsesOutputLimitToolCallError } from "../diagnostics-tQasYct1.mjs";
|
|
4
4
|
import { a as encodedModelRequestBodyStream, c as serializeModelRequestBody, l as codeModeToolSurfaceObserver, o as modelRequestBodyState, u as reasoningTagTextPolicy } from "../simple-options-BAu4B54D.mjs";
|
|
5
5
|
import { N as bindResponsesInputMessage, St as reconcileOpenAIResponsesToolChoice, _ as isResponsesTextContentPartType, bt as projectOpenAITools, d as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, f as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, g as isAzureResponsesTextDeltaEventType, h as isAzureResponsesTextDeltaEvent, l as createResponsesToolCallTracker, m as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, p as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, u as readResponsesToolCallItemIdentity, v as isResponsesTextDeltaEventType, xt as reconcileOpenAICompletionsToolChoice, y as resolveResponsesMessageSnapshotCollapse } from "../openai-responses-shared-D-aDYAkJ.mjs";
|
|
6
|
-
import { c as convertMessages, o as hasResponsesWebSearchTool } from "../openai-completions-transport-
|
|
6
|
+
import { c as convertMessages, o as hasResponsesWebSearchTool } from "../openai-completions-transport-Dy4CZo9Q.mjs";
|
|
7
7
|
import { t as mapOpenAIStopReason } from "../openai-stop-reason-8s70vDXj.mjs";
|
|
8
8
|
import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-D0dvJMbZ.mjs";
|
|
9
9
|
import { t as responsesRequestLifecycle } from "../openai-responses-request-lifecycle-NSIJo9jY.mjs";
|
|
10
|
-
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-
|
|
10
|
+
import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-CrVgnFrV.mjs";
|
|
11
11
|
import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-D5oiAUOG.mjs";
|
|
12
12
|
export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, bindResponsesInputMessage, clampOpenAIPromptCacheKey, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, encodedModelRequestBodyStream, hasResponsesWebSearchTool, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isOpenAIGpt6Model, isResponsesOutputLimitToolCallError, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, modelRequestBodyState, normalizeOpenAIReasoningEffort, parseAzureDeploymentNameMap, projectOpenAITools, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIModelReasoningEfforts, resolveOpenAIPromptCacheParams, resolveOpenAIReasoningEffortForModel, resolveOpenAIReasoningEffortMapping, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, responsesPromptObserver, responsesRequestLifecycle, responsesServiceTierObserver, serializeModelRequestBody, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
|
package/dist/{openai-chatgpt-responses-V4iP0dv5.mjs → openai-chatgpt-responses-BHI3uCcA.mjs}
RENAMED
|
@@ -292,7 +292,8 @@ const os = loadNodeOs();
|
|
|
292
292
|
const REQUEST_COMPRESSION_ZSTD_LEVEL = 3;
|
|
293
293
|
const CODEX_TOOL_CALL_PROVIDERS = /* @__PURE__ */ new Set(["openai", "opencode"]);
|
|
294
294
|
const WEBSOCKET_TRANSPORT_ERROR_CODE = "ERR_WEBSOCKET_TRANSPORT";
|
|
295
|
-
const
|
|
295
|
+
const RETRYABLE_CLOSE_CODES = /* @__PURE__ */ new Set([
|
|
296
|
+
1e3,
|
|
296
297
|
1001,
|
|
297
298
|
1005,
|
|
298
299
|
1006,
|
|
@@ -808,7 +809,7 @@ function extractWebSocketCloseError(event) {
|
|
|
808
809
|
let reasonText = typeof reason === "string" && reason.length > 0 ? ` ${reason}` : "";
|
|
809
810
|
if (!reasonText && code === WEBSOCKET_MESSAGE_TOO_BIG_CLOSE_CODE) reasonText = " message too big";
|
|
810
811
|
const message = `WebSocket closed${codeText}${reasonText}`;
|
|
811
|
-
const error = typeof code === "number" &&
|
|
812
|
+
const error = typeof code === "number" && RETRYABLE_CLOSE_CODES.has(code) ? createWebSocketTransportError(message) : Object.assign(new Error(message), { code: WEBSOCKET_NON_RETRYABLE_CLOSE_ERROR_CODE });
|
|
812
813
|
return Object.assign(error, {
|
|
813
814
|
name: "WebSocketCloseError",
|
|
814
815
|
closeCode: typeof code === "number" ? code : void 0,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-BhDjJH2R.mjs";
|
|
2
2
|
import { k as clampThinkingLevel } from "./host-Bf3NjYNj.mjs";
|
|
3
3
|
import { n as buildBaseOptions } from "./simple-options-BAu4B54D.mjs";
|
|
4
|
-
import { c as convertMessages, n as streamOpenAICompletionsRequest } from "./openai-completions-transport-
|
|
4
|
+
import { c as convertMessages, n as streamOpenAICompletionsRequest } from "./openai-completions-transport-Dy4CZo9Q.mjs";
|
|
5
5
|
import { t as requireApiKey } from "./required-api-key-CFJvcFy_.mjs";
|
|
6
6
|
//#region packages/ai/src/providers/openai-completions.ts
|
|
7
7
|
var openai_completions_exports = /* @__PURE__ */ __exportAll({
|
package/dist/{openai-completions-transport-v38m71Oq.mjs → openai-completions-transport-Dy4CZo9Q.mjs}
RENAMED
|
@@ -41,7 +41,13 @@ const DEEPSEEK_DSML_MARKERS = [
|
|
|
41
41
|
"|",
|
|
42
42
|
"|",
|
|
43
43
|
"||"
|
|
44
|
-
].
|
|
44
|
+
].flatMap((bar) => [`${bar}DSML${bar}`, `${bar}DSML${bar} `]);
|
|
45
|
+
const DEEPSEEK_DSML_TOOL_OPEN_TOKENS = DEEPSEEK_DSML_MARKERS.flatMap((marker) => [
|
|
46
|
+
"calls",
|
|
47
|
+
"tool_calls",
|
|
48
|
+
"tool_call",
|
|
49
|
+
"function_calls"
|
|
50
|
+
].map((kind) => `<${marker}${kind}>`));
|
|
45
51
|
const DEEPSEEK_DSML_MARKER_PATTERN = `(${DEEPSEEK_DSML_MARKERS.map((marker) => marker.replaceAll("|", "\\|")).join("|")})`;
|
|
46
52
|
function findEarliestDsmlToken(text, tokens, fromIndex = 0) {
|
|
47
53
|
let best = null;
|
|
@@ -69,13 +75,7 @@ function longestDsmlTokenPrefixSuffixLength(text, tokens, maxTokenLength) {
|
|
|
69
75
|
* Removes provider-emitted DSML tool markup while buffering split tag prefixes
|
|
70
76
|
* across streamed chunks.
|
|
71
77
|
*/
|
|
72
|
-
const
|
|
73
|
-
"tool_use_error",
|
|
74
|
-
"tool_calls",
|
|
75
|
-
"tool_call",
|
|
76
|
-
"function_calls"
|
|
77
|
-
];
|
|
78
|
-
const DSML_OPEN_TOKENS = DEEPSEEK_DSML_MARKERS.flatMap((marker) => DSML_KINDS.map((kind) => `<${marker}${kind}>`));
|
|
78
|
+
const DSML_OPEN_TOKENS = [...DEEPSEEK_DSML_TOOL_OPEN_TOKENS, ...DEEPSEEK_DSML_MARKERS.map((marker) => `<${marker}tool_use_error>`)];
|
|
79
79
|
const MAX_OPEN_TOKEN_LEN = Math.max(...DSML_OPEN_TOKENS.map((token) => token.length));
|
|
80
80
|
/** Create an incremental text filter that strips DeepSeek DSML tool blocks. */
|
|
81
81
|
function createDeepSeekTextFilter() {
|
|
@@ -1086,12 +1086,6 @@ function buildOpenAICompletionsRequest(model, context, options, policy) {
|
|
|
1086
1086
|
}
|
|
1087
1087
|
//#endregion
|
|
1088
1088
|
//#region packages/ai/src/transports/openai-completions-dsml.ts
|
|
1089
|
-
const DEEPSEEK_DSML_TOOL_KINDS = [
|
|
1090
|
-
"tool_calls",
|
|
1091
|
-
"tool_call",
|
|
1092
|
-
"function_calls"
|
|
1093
|
-
];
|
|
1094
|
-
const DEEPSEEK_DSML_TOOL_OPEN_TOKENS = DEEPSEEK_DSML_MARKERS.flatMap((marker) => DEEPSEEK_DSML_TOOL_KINDS.map((kind) => `<${marker}${kind}>`));
|
|
1095
1089
|
const DEEPSEEK_DSML_INVOKE_OPEN_PREFIXES = DEEPSEEK_DSML_MARKERS.map((marker) => `<${marker}invoke`);
|
|
1096
1090
|
const DEEPSEEK_DSML_INVOKE_OPEN_TAG = new RegExp(`^<${DEEPSEEK_DSML_MARKER_PATTERN}invoke\\b[^<>]*>$`);
|
|
1097
1091
|
const DEEPSEEK_DSML_TOOL_MAX_OPEN_TOKEN_LEN = Math.max(...DEEPSEEK_DSML_TOOL_OPEN_TOKENS.map((token) => token.length));
|
|
@@ -1450,9 +1444,9 @@ async function processCompletionsStream(responseStream, output, model, stream, o
|
|
|
1450
1444
|
const openAIModel = model;
|
|
1451
1445
|
const compat = getCompat(openAIModel);
|
|
1452
1446
|
const visibleReasoningDetailTypes = new Set(compat.visibleReasoningDetailTypes);
|
|
1453
|
-
const shouldFilterDeepSeekDsmlText =
|
|
1447
|
+
const shouldFilterDeepSeekDsmlText = compat.thinkingFormat === "deepseek";
|
|
1454
1448
|
const deepSeekTextFilter = shouldFilterDeepSeekDsmlText ? createDeepSeekTextFilter() : null;
|
|
1455
|
-
const deepSeekToolCallRecoverer = shouldFilterDeepSeekDsmlText ? createDsmlRecoverer() : null;
|
|
1449
|
+
const deepSeekToolCallRecoverer = !directMode && shouldFilterDeepSeekDsmlText ? createDsmlRecoverer() : null;
|
|
1456
1450
|
const gemmaToolCallRecoverer = !directMode && /gemma-?4/i.test(model.id) ? createGemmaToolCallRecoverer() : null;
|
|
1457
1451
|
const reasoningTagTextPartitioner = createReasoningTagTextPartitioner();
|
|
1458
1452
|
if (options?.strictReasoningTags) reasoningTagTextPartitioner.markStrict();
|
package/dist/providers.mjs
CHANGED
|
@@ -54,7 +54,7 @@ const registerBuiltIns = [
|
|
|
54
54
|
stream: module.streamAnthropic,
|
|
55
55
|
streamSimple: module.streamSimpleAnthropic
|
|
56
56
|
})),
|
|
57
|
-
createLazyRegistration("openai-completions", () => import("./openai-completions-
|
|
57
|
+
createLazyRegistration("openai-completions", () => import("./openai-completions-CrVgnFrV.mjs").then((n) => n.t), (module) => ({
|
|
58
58
|
stream: module.streamOpenAICompletions,
|
|
59
59
|
streamSimple: module.streamSimpleOpenAICompletions
|
|
60
60
|
})),
|
|
@@ -70,7 +70,7 @@ const registerBuiltIns = [
|
|
|
70
70
|
stream: module.streamAzureOpenAIResponses,
|
|
71
71
|
streamSimple: module.streamSimpleAzureOpenAIResponses
|
|
72
72
|
})),
|
|
73
|
-
createLazyRegistration("openai-chatgpt-responses", () => import("./openai-chatgpt-responses-
|
|
73
|
+
createLazyRegistration("openai-chatgpt-responses", () => import("./openai-chatgpt-responses-BHI3uCcA.mjs"), (module) => ({
|
|
74
74
|
stream: module.streamOpenAICodexResponses,
|
|
75
75
|
streamSimple: module.streamSimpleOpenAICodexResponses
|
|
76
76
|
})),
|
package/dist/transports.mjs
CHANGED
|
@@ -16,7 +16,7 @@ import { n as getEnvApiKey } from "./env-api-keys-CrxwdylR.mjs";
|
|
|
16
16
|
import { t as createDeferredEventBuffer } from "./deferred-event-buffer-DAvyP7qA.mjs";
|
|
17
17
|
import { t as createAssistantOutput } from "./assistant-output-BuhRpLeD.mjs";
|
|
18
18
|
import { n as resolveOpencodeSessionHeaders } from "./session-affinity-DA4WHv1h.mjs";
|
|
19
|
-
import { a as requestPreparedOpenAIResponsesCompaction, d as applyCompletionsAnthropicCacheControl, f as hasOpenAICompatibleConversationTurn, h as createDeepSeekTextFilter, i as createOpenAIResponsesTransportStreamFn, l as flattenCompletionMessagesToStringContent, m as resolveMaxTokensParam, p as canonicalizeMaxTokensParam, r as createAzureOpenAIResponsesTransportStreamFn, s as buildOpenAICompletionsParams, t as createOpenAICompletionsTransportStreamFn, u as stripCompletionMessagesToRoleContent } from "./openai-completions-transport-
|
|
19
|
+
import { a as requestPreparedOpenAIResponsesCompaction, d as applyCompletionsAnthropicCacheControl, f as hasOpenAICompatibleConversationTurn, h as createDeepSeekTextFilter, i as createOpenAIResponsesTransportStreamFn, l as flattenCompletionMessagesToStringContent, m as resolveMaxTokensParam, p as canonicalizeMaxTokensParam, r as createAzureOpenAIResponsesTransportStreamFn, s as buildOpenAICompletionsParams, t as createOpenAICompletionsTransportStreamFn, u as stripCompletionMessagesToRoleContent } from "./openai-completions-transport-Dy4CZo9Q.mjs";
|
|
20
20
|
import { a as googleFlashSupportsMinimalThinking, i as consumeGoogleGenerateContentStream, n as projectGoogleMessages, r as requiresGoogleToolCallId, t as convertGoogleTools } from "./google-messages-DsB7fmoQ.mjs";
|
|
21
21
|
import { c as resolveOpenAIResponsesCompactEndpointPlan, l as resolveOpenAIResponsesPayloadPolicy, o as sanitizeResponsesImagePayload, s as applyOpenAIResponsesPayloadPolicy, u as resolveOpenAIResponsesServerCompactionPlan } from "./openai-responses-endpoint-CinGh4VZ.mjs";
|
|
22
22
|
import { randomUUID } from "node:crypto";
|