@openclaw/ai 2026.8.1-beta.2 → 2026.9.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.
Files changed (82) hide show
  1. package/dist/{anthropic-SrGtwsJu.d.mts → anthropic-BECQCNdF.d.mts} +0 -2
  2. package/dist/{anthropic-B6dLpq5L.mjs → anthropic-DI4PZKKB.mjs} +46 -34
  3. package/dist/{anthropic-compaction-replay-8lJNKXOE.mjs → anthropic-compaction-replay-nhKaCXu6.mjs} +17 -22
  4. package/dist/{anthropic-payload-policy-CiEuQS72.d.mts → anthropic-payload-policy-B_0n0enE.d.mts} +3 -1
  5. package/dist/{api-registry-k3zTz0cV.d.mts → api-registry-CTd8NzcD.d.mts} +2 -1
  6. package/dist/{azure-openai-responses-mxIOtUnn.mjs → azure-openai-responses-D8dI0ekg.mjs} +3 -3
  7. package/dist/diagnostics.d.mts +0 -1
  8. package/dist/diagnostics.mjs +1 -1
  9. package/dist/event-stream-BKp4fOt_.d.mts +1 -0
  10. package/dist/{event-stream-BP6AWT8j.d.mts → event-stream-LiXePESD.d.mts} +1 -2
  11. package/dist/event-stream.d.mts +2 -1
  12. package/dist/{google-C7h2QzDX.mjs → google-Od-LLdVK.mjs} +3 -3
  13. package/dist/{google-shared-B0Qr9OR7.mjs → google-shared-Bgr9lFPw.mjs} +22 -8
  14. package/dist/{google-vertex-Bhc3TjDl.mjs → google-vertex-aerRSXc4.mjs} +4 -4
  15. package/dist/{host-DTqNc7ad.mjs → host-D51fmkH6.mjs} +40 -33
  16. package/dist/{host-vWgMMhiJ.d.mts → host-DsbPMFU6.d.mts} +7 -7
  17. package/dist/index-Qbej8io0.d.mts +3 -0
  18. package/dist/index.d.mts +8 -8
  19. package/dist/index.mjs +2 -3
  20. package/dist/internal/anthropic.d.mts +13 -6
  21. package/dist/internal/anthropic.mjs +4 -4
  22. package/dist/internal/openai-responses-payload-policy.d.mts +2 -2
  23. package/dist/internal/openai-responses-payload-policy.mjs +2 -2
  24. package/dist/internal/openai.d.mts +6 -6
  25. package/dist/internal/openai.mjs +10 -8
  26. package/dist/internal/runtime.d.mts +18 -5
  27. package/dist/internal/runtime.mjs +8 -7
  28. package/dist/internal/shared.d.mts +18 -4
  29. package/dist/internal/shared.mjs +4 -4
  30. package/dist/{json-parse-CDnesDM_.mjs → json-parse-BuAJEbdW.mjs} +18 -2
  31. package/dist/{headers-DdOQtGuU.mjs → llm-request-activity-BjtkplhG.mjs} +1 -9
  32. package/dist/{mistral-CEWoQI_g.mjs → mistral-EiHdymeb.mjs} +59 -49
  33. package/dist/{openai-chatgpt-responses-CrPmqERt.mjs → openai-chatgpt-responses-DHpF9o1e.mjs} +42 -17
  34. package/dist/{openai-completions-BPnt4Sml.mjs → openai-completions-EFPiUGfS.mjs} +60 -257
  35. package/dist/{openai-completions-compat-Dt3dcawL.d.mts → openai-completions-compat-BefmHT26.d.mts} +3 -3
  36. package/dist/openai-completions-stream-DUlGwRMz.mjs +1621 -0
  37. package/dist/{openai-responses-DhIKtOup.mjs → openai-responses-BogP8OjX.mjs} +6 -5
  38. package/dist/{openai-responses-contracts-XpZJxrRG.d.mts → openai-responses-contracts-Dvj_UtPy.d.mts} +3 -3
  39. package/dist/{openai-responses-contracts-CyfIkQi5.mjs → openai-responses-contracts-QUY12X0B.mjs} +6 -26
  40. package/dist/{openai-responses-payload-policy-BSs371VM.d.mts → openai-responses-payload-policy-CNGFT9zr.d.mts} +1 -0
  41. package/dist/{openai-responses-payload-policy-BDxV-W0c.mjs → openai-responses-payload-policy-D8EdimYe.mjs} +6 -8
  42. package/dist/{openai-responses-prompt-observer-internal-DgNTYnRY.mjs → openai-responses-prompt-observer-internal-Cd4hJG-S.mjs} +3 -3
  43. package/dist/{openai-responses-shared-DXIt3iY5.mjs → openai-responses-shared-DJThc6jW.mjs} +205 -1472
  44. package/dist/openai-stop-reason-Drnn_6Qj.mjs +28 -0
  45. package/dist/openai-tool-schema-ho-hIkQf.mjs +1695 -0
  46. package/dist/{provider-error-BUwEnjXq.mjs → provider-error-DDOs_Bz0.mjs} +20 -27
  47. package/dist/provider-options-AvldWZt8.mjs +21 -0
  48. package/dist/{provider-options-B96RdNpH.d.mts → provider-options-MdMBLzlU.d.mts} +15 -4
  49. package/dist/provider-transcript-transform-C01bQ5a3.mjs +32 -0
  50. package/dist/provider-types.d.mts +7 -5
  51. package/dist/providers.d.mts +1 -2
  52. package/dist/providers.mjs +9 -9
  53. package/dist/{reasoning-tag-text-partitioner-rnPwX2pg.mjs → reasoning-tag-text-partitioner-5ygO2rZc.mjs} +3 -0
  54. package/dist/{sanitize-unicode-BYqrYtC_.mjs → sanitize-unicode-DCkltN94.mjs} +1 -2
  55. package/dist/{simple-options-D58D5Kvw.mjs → simple-options-CFj7x3J4.mjs} +5 -4
  56. package/dist/{anthropic-JsNA5KCu.mjs → src-Bu3FiFAG.mjs} +1 -1
  57. package/dist/{streaming-byte-guard-BrbkbwUu.mjs → streaming-byte-guard-CC-HMn_u.mjs} +5 -6
  58. package/dist/string-normalization--fwJ4S2q.mjs +16 -0
  59. package/dist/{tool-schema-json-projection-q5d7QX5c.mjs → tool-schema-json-projection-qvTEs5Am.mjs} +17 -8
  60. package/dist/transport-stream-shared-ljShVIZB.mjs +342 -0
  61. package/dist/transport-stream-shared-rvaCyFYt.d.mts +138 -0
  62. package/dist/{transport-utils-DJqkxbhC.mjs → transport-utils-LJ1_rbi-.mjs} +8 -5
  63. package/dist/transports.d.mts +45 -106
  64. package/dist/transports.mjs +134 -1089
  65. package/dist/{types-BHNrPS1l.d.mts → types-DhLoJbFm.d.mts} +49 -17
  66. package/dist/types-GiAjXatj.d.mts +1 -0
  67. package/dist/types.d.mts +6 -5
  68. package/dist/types.mjs +1 -2
  69. package/dist/utf16-slice-qz3nsy87.mjs +84 -0
  70. package/dist/{validation-DT9SrFn3.d.mts → validation-Dk7q7NMN.d.mts} +1 -2
  71. package/dist/validation.d.mts +1 -1
  72. package/package.json +5 -5
  73. package/dist/index-BVVgDSdq.d.mts +0 -1
  74. package/dist/openai-stop-reason-BkFkqqK0.mjs +0 -563
  75. package/dist/openai-tool-projection-CY04OcvQ.mjs +0 -338
  76. package/dist/provider-transcript-transform-ePx-Bbfr.mjs +0 -155
  77. package/dist/record-coerce-DdXsgUd_.mjs +0 -23
  78. package/dist/src-D2H6yKkH.mjs +0 -2
  79. package/dist/stream-first-event-timeout-DvDeSucC.d.mts +0 -29
  80. package/dist/string-coerce-fsri9iCu.mjs +0 -34
  81. package/dist/types-BVVgDSdq.d.mts +0 -1
  82. package/dist/utf16-slice-CvGodqok.mjs +0 -29
@@ -1,11 +1,12 @@
1
1
  import { n as getEnvApiKey, r as __exportAll } from "./env-api-keys-DrgeBuva.mjs";
2
2
  import { t as AssistantMessageEventStream } from "./event-stream-uSMZJ3FA.mjs";
3
- import { n as getAiTransportHost } from "./host-DTqNc7ad.mjs";
4
- import { S as supportsOpenAITemperature } from "./openai-responses-contracts-CyfIkQi5.mjs";
3
+ import { n as getAiTransportHost } from "./host-D51fmkH6.mjs";
5
4
  import { n as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-mZTCdRPo.mjs";
6
5
  import { t as resolveCacheRetention } from "./cache-retention-0x979a5V.mjs";
7
- import { n as buildBaseOptions } from "./simple-options-D58D5Kvw.mjs";
8
- import { a as resolveResponsesReasoningEffort, i as createResponsesAssistantOutput, n as applyResponsesServiceTierPricing, o as runResponsesStreamLifecycle, r as convertResponsesMessages, t as applyCommonResponsesParams } from "./openai-responses-shared-DXIt3iY5.mjs";
6
+ import { n as buildBaseOptions } from "./simple-options-CFj7x3J4.mjs";
7
+ import { a as resolveResponsesReasoningEffort, i as createResponsesAssistantOutput, n as applyResponsesServiceTierPricing, o as runResponsesStreamLifecycle, r as convertResponsesMessages, t as applyCommonResponsesParams } from "./openai-responses-shared-DJThc6jW.mjs";
8
+ import { j as resolveOpenAIClientBaseUrl } from "./openai-tool-schema-ho-hIkQf.mjs";
9
+ import { S as supportsOpenAITemperature } from "./openai-responses-contracts-QUY12X0B.mjs";
9
10
  import { i as resolveCloudflareBaseUrl, n as hasCopilotVisionInput, r as isCloudflareProvider, t as buildCopilotDynamicHeaders } from "./github-copilot-headers-NCJtz9i0.mjs";
10
11
  import OpenAI from "openai";
11
12
  //#region packages/ai/src/providers/openai-responses.ts
@@ -82,7 +83,7 @@ function createClient(model, context, apiKey, optionsHeaders, sessionId) {
82
83
  } : headers;
83
84
  return new OpenAI({
84
85
  apiKey,
85
- baseURL: isCloudflareProvider(model.provider) ? resolveCloudflareBaseUrl(model) : model.baseUrl,
86
+ baseURL: resolveOpenAIClientBaseUrl(model, isCloudflareProvider(model.provider) ? resolveCloudflareBaseUrl(model) : model.baseUrl),
86
87
  dangerouslyAllowBrowser: true,
87
88
  defaultHeaders,
88
89
  fetch: getAiTransportHost().buildModelFetch(model)
@@ -1,7 +1,7 @@
1
- import { n as Api } from "./types-BHNrPS1l.mjs";
2
- import { f as OpenAIApiReasoningEffort, i as BaseOpenAIStreamOptions, p as OpenAIReasoningEffort } from "./provider-options-B96RdNpH.mjs";
1
+ import { n as Api } from "./types-DhLoJbFm.mjs";
2
+ import "./index-Qbej8io0.mjs";
3
+ import { h as OpenAIReasoningEffort, i as BaseOpenAIStreamOptions, m as OpenAIApiReasoningEffort } from "./provider-options-MdMBLzlU.mjs";
3
4
  import { FunctionTool, ResponseCompactionItem, ResponseCreateParamsStreaming, ResponseInput } from "openai/resources/responses/responses.js";
4
-
5
5
  //#region packages/ai/src/transports/openai-responses-contracts.d.ts
6
6
  declare const OPENAI_RESPONSES_APIS: ReadonlySet<Api>;
7
7
  type ReplayableResponseCompactionItem = Omit<ResponseCompactionItem, "id"> & {
@@ -1,21 +1,7 @@
1
- import { n as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE, t as PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE } from "./types-BDdaOVi2.mjs";
2
- import "./src-D2H6yKkH.mjs";
3
- import { a as normalizeOptionalString, n as normalizeLowercaseStringOrEmpty } from "./string-coerce-fsri9iCu.mjs";
4
- import { a as isRecord } from "./record-coerce-DdXsgUd_.mjs";
5
- //#region packages/normalization-core/src/string-normalization.ts
6
- /** Coerces entries to strings, trims them, and drops empty results. */
7
- function normalizeStringEntries(list) {
8
- return (list ?? []).map((entry) => normalizeOptionalString(String(entry)) ?? "").filter(Boolean);
9
- }
10
- /** Returns first-seen unique values while preserving insertion order. */
11
- function uniqueValues(values) {
12
- return [...new Set(values)];
13
- }
14
- /** Returns first-seen unique strings while preserving insertion order. */
15
- function uniqueStrings(values) {
16
- return uniqueValues(values);
17
- }
18
- //#endregion
1
+ import "./src-Bu3FiFAG.mjs";
2
+ import { n as PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE } from "./types-BDdaOVi2.mjs";
3
+ import { c as normalizeLowercaseStringOrEmpty, o as isRecord } from "./utf16-slice-qz3nsy87.mjs";
4
+ import { n as uniqueStrings, t as normalizeStringEntries } from "./string-normalization--fwJ4S2q.mjs";
19
5
  //#region packages/ai/src/providers/openai-reasoning-effort.ts
20
6
  /**
21
7
  * OpenAI-compatible reasoning-effort normalization. Different GPT families
@@ -177,6 +163,7 @@ const RESPONSE_FAILED_NO_DETAILS_MESSAGE = "Unknown error (no error details in r
177
163
  const OPENAI_RESPONSES_REASONING_REPLAY_META_KEY = "__openclaw_replay";
178
164
  const OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY = "openclawReasoningReplay";
179
165
  const OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE = "openai-responses-compaction";
166
+ const OPENAI_RESPONSES_RETAINED_COMPACTION_REPLAY_TYPE = "openai-responses-retained-compaction";
180
167
  const OPENAI_RESPONSES_APIS = /* @__PURE__ */ new Set([
181
168
  "openai-responses",
182
169
  "azure-openai-responses",
@@ -185,13 +172,6 @@ const OPENAI_RESPONSES_APIS = /* @__PURE__ */ new Set([
185
172
  "openclaw-openai-chatgpt-responses-transport",
186
173
  "openclaw-azure-openai-responses-transport"
187
174
  ]);
188
- var OpenAIResponsesWebSocketResponseFailedError = class extends Error {
189
- constructor(hasOutput) {
190
- super("OpenAI Responses WebSocket returned response.failed");
191
- this.name = "OpenAIResponsesWebSocketResponseFailedError";
192
- this.code = hasOutput ? PROVIDER_FAILURE_WITH_OUTPUT_ERROR_CODE : PROVIDER_POST_DISPATCH_AMBIGUITY_ERROR_CODE;
193
- }
194
- };
195
175
  var OpenAIResponsesWebSocketPreDispatchError = class extends Error {
196
176
  constructor(cause) {
197
177
  super("OpenAI Responses WebSocket failed before request dispatch", { cause });
@@ -250,4 +230,4 @@ const responsesPromptObserver = {
250
230
  }
251
231
  };
252
232
  //#endregion
253
- export { normalizeStringEntries as C, supportsOpenAITemperature as S, uniqueValues as T, isOpenAIGpt56Model as _, OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE as a, resolveOpenAISupportedReasoningEfforts as b, OpenAIResponsesWebSocketPostDispatchError as c, OpenAIResponsesWebSocketSafeRetryError as d, RESPONSE_FAILED_NO_DETAILS_MESSAGE as f, isOpenAIGpt55Model as g, isOpenAIGpt54MiniModel as h, OPENAI_RESPONSES_APIS as i, OpenAIResponsesWebSocketPreDispatchError as l, responsesPromptObserver as m, DEFAULT_AZURE_OPENAI_API_VERSION as n, OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY as o, parseOpenAIResponsesWebSocketServerError as p, OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS as r, OPENAI_RESPONSES_REASONING_REPLAY_META_KEY as s, AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS as t, OpenAIResponsesWebSocketResponseFailedError as u, normalizeOpenAIReasoningEffort as v, uniqueStrings as w, supportsOpenAIReasoningEffort as x, resolveOpenAIReasoningEffortForModel as y };
233
+ export { supportsOpenAITemperature as S, isOpenAIGpt56Model as _, OPENAI_RESPONSES_COMPACTION_REPLAY_TYPE as a, resolveOpenAISupportedReasoningEfforts as b, OPENAI_RESPONSES_RETAINED_COMPACTION_REPLAY_TYPE as c, OpenAIResponsesWebSocketSafeRetryError as d, RESPONSE_FAILED_NO_DETAILS_MESSAGE as f, isOpenAIGpt55Model as g, isOpenAIGpt54MiniModel as h, OPENAI_RESPONSES_APIS as i, OpenAIResponsesWebSocketPostDispatchError as l, responsesPromptObserver as m, DEFAULT_AZURE_OPENAI_API_VERSION as n, OPENAI_RESPONSES_REASONING_REPLAY_BLOCK_META_KEY as o, parseOpenAIResponsesWebSocketServerError as p, OPENAI_CODEX_RESPONSES_DEFAULT_INSTRUCTIONS as r, OPENAI_RESPONSES_REASONING_REPLAY_META_KEY as s, AZURE_RESPONSES_FIRST_EVENT_TIMEOUT_MS as t, OpenAIResponsesWebSocketPreDispatchError as u, normalizeOpenAIReasoningEffort as v, supportsOpenAIReasoningEffort as x, resolveOpenAIReasoningEffortForModel as y };
@@ -4,6 +4,7 @@ type OpenAIResponsesPayloadModel = {
4
4
  baseUrl?: unknown;
5
5
  id?: unknown;
6
6
  provider?: unknown;
7
+ contextTokens?: unknown;
7
8
  contextWindow?: unknown;
8
9
  compat?: unknown;
9
10
  };
@@ -1,6 +1,6 @@
1
- import { i as normalizeOptionalLowercaseString, n as normalizeLowercaseStringOrEmpty, s as readStringValue } from "./string-coerce-fsri9iCu.mjs";
2
- import { s as parseStrictPositiveInteger } from "./number-coercion-H9qHik3g.mjs";
3
- import { i as OPENAI_RESPONSES_APIS, x as supportsOpenAIReasoningEffort } from "./openai-responses-contracts-CyfIkQi5.mjs";
1
+ import { c as normalizeLowercaseStringOrEmpty, p as readStringValue, u as normalizeOptionalLowercaseString } from "./utf16-slice-qz3nsy87.mjs";
2
+ import { s as parsePositiveInteger } from "./transport-utils-LJ1_rbi-.mjs";
3
+ import { i as OPENAI_RESPONSES_APIS, x as supportsOpenAIReasoningEffort } from "./openai-responses-contracts-QUY12X0B.mjs";
4
4
  //#region packages/model-catalog-core/src/provider-id.ts
5
5
  function normalizeProviderId(provider) {
6
6
  return normalizeLowercaseStringOrEmpty(provider);
@@ -127,13 +127,11 @@ function resolveOpenAIResponsesPayloadCapabilities(model) {
127
127
  usesKnownNativeOpenAIRoute
128
128
  };
129
129
  }
130
- function parsePositiveInteger(value) {
131
- if (typeof value === "number" && Number.isFinite(value) && value > 0) return Math.floor(value);
132
- if (typeof value === "string") return parseStrictPositiveInteger(value);
133
- }
134
130
  function resolveOpenAIResponsesCompactThreshold(model) {
131
+ const contextTokens = parsePositiveInteger(model.contextTokens);
135
132
  const contextWindow = parsePositiveInteger(model.contextWindow);
136
- if (contextWindow) return Math.max(1e3, Math.floor(contextWindow * .7));
133
+ const effectiveBudget = contextTokens && contextWindow ? Math.min(contextTokens, contextWindow) : contextTokens || contextWindow;
134
+ if (effectiveBudget) return Math.max(1e3, Math.floor(effectiveBudget * .7));
137
135
  return 8e4;
138
136
  }
139
137
  /** Resolve the server-compaction gate and effective threshold for a Responses route. */
@@ -1,6 +1,6 @@
1
- import { m as responsesPromptObserver } from "./openai-responses-contracts-CyfIkQi5.mjs";
2
- import { l as stripSystemPromptCacheBoundary } from "./simple-options-D58D5Kvw.mjs";
3
- import { d as sanitizeTransportPayloadText } from "./provider-transcript-transform-ePx-Bbfr.mjs";
1
+ import { l as stripSystemPromptCacheBoundary } from "./simple-options-CFj7x3J4.mjs";
2
+ import { g as sanitizeTransportPayloadText } from "./transport-stream-shared-ljShVIZB.mjs";
3
+ import { m as responsesPromptObserver } from "./openai-responses-contracts-QUY12X0B.mjs";
4
4
  //#region packages/normalization-core/src/error-coercion.ts
5
5
  /**
6
6
  * Normalizes an unknown thrown value into an Error. Non-Error objects become