@openclaw/ai 2026.7.2-beta.6 → 2026.7.33

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 (78) hide show
  1. package/README.md +5 -6
  2. package/dist/{anthropic-CH4UUnZr.mjs → anthropic-BML72tLz.mjs} +468 -101
  3. package/dist/{api-registry-DlMgPR39.d.mts → api-registry-BXYnCOIR.d.mts} +2 -1
  4. package/dist/{azure-openai-responses-client-compat-C7K7QfUE.mjs → azure-openai-responses-client-compat-a_O_GVQV.mjs} +2 -23
  5. package/dist/{azure-openai-responses-CImcwB83.mjs → azure-openai-responses-kEN8II8I.mjs} +13 -11
  6. package/dist/{env-api-keys-DrgeBuva.mjs → env-api-keys-CtMlqaQ4.mjs} +4 -5
  7. package/dist/{event-stream-YjaPW20U.d.mts → event-stream-0nZeBKl2.d.mts} +1 -1
  8. package/dist/{event-stream-D8n2uFee.mjs → event-stream-ReMmOTzX.mjs} +6 -14
  9. package/dist/event-stream.d.mts +1 -1
  10. package/dist/event-stream.mjs +1 -1
  11. package/dist/{github-copilot-headers-NCJtz9i0.mjs → github-copilot-headers-BsH5cqGj.mjs} +12 -1
  12. package/dist/{google-CtSg0iTS.mjs → google-DTM4O3e9.mjs} +5 -5
  13. package/dist/{google-shared-DNBz5rcD.mjs → google-shared-BAP0BQVi.mjs} +22 -34
  14. package/dist/{google-vertex-31f1uS9L.mjs → google-vertex-D58MZHCQ.mjs} +19 -6
  15. package/dist/host-4t713IeR.mjs +37 -0
  16. package/dist/{anthropic-SrGtwsJu.d.mts → index-BoTnz8cv.d.mts} +1 -27
  17. package/dist/index.d.mts +50 -7
  18. package/dist/index.mjs +5 -5
  19. package/dist/internal/anthropic.d.mts +62 -22
  20. package/dist/internal/anthropic.mjs +4 -5
  21. package/dist/internal/openai.d.mts +82 -98
  22. package/dist/internal/openai.mjs +6 -8
  23. package/dist/internal/runtime.d.mts +34 -13
  24. package/dist/internal/runtime.mjs +14 -26
  25. package/dist/internal/shared.d.mts +9 -26
  26. package/dist/internal/shared.mjs +2 -6
  27. package/dist/{json-parse-BvXNt1-7.mjs → json-parse-DzNSIQBq.mjs} +6 -4
  28. package/dist/{llm-request-activity-BjtkplhG.mjs → llm-request-activity-CehVkZP-.mjs} +19 -1
  29. package/dist/{mistral-CWmpvWYh.mjs → mistral-CePVNdws.mjs} +39 -141
  30. package/dist/model-utils-DgmOla96.mjs +69 -0
  31. package/dist/{openai-chatgpt-responses-B84Ibtrd.mjs → openai-chatgpt-responses-BHqbcipc.mjs} +154 -101
  32. package/dist/{openai-completions-DsOxhOD1.mjs → openai-completions-9qYFVS7H.mjs} +295 -81
  33. package/dist/{openai-responses-BT7A3sLu.mjs → openai-responses-D6l9URyV.mjs} +8 -10
  34. package/dist/openai-responses-shared-L3PWZvkm.mjs +1949 -0
  35. package/dist/{openai-tool-projection-OhX64DoP.mjs → openai-tool-projection-BPlyXt8H.mjs} +12 -32
  36. package/dist/providers.d.mts +2 -3
  37. package/dist/providers.mjs +10 -11
  38. package/dist/reasoning-tag-text-partitioner-axhAdUwg.mjs +394 -0
  39. package/dist/{src-QkygScBs.mjs → src-CZ503MYJ.mjs} +5 -24
  40. package/dist/{stream-first-event-timeout-BBys9hSb.mjs → stream-first-event-timeout-RjWszj8c.mjs} +22 -2
  41. package/dist/transform-messages-BhGF_fF4.mjs +507 -0
  42. package/dist/{types-bzp5k29J.d.mts → types-DRgdPqaZ.d.mts} +0 -19
  43. package/dist/types.d.mts +5 -5
  44. package/dist/types.mjs +4 -4
  45. package/dist/{validation-B-j7cOYp.d.mts → validation-BDMWOr8d.d.mts} +1 -1
  46. package/dist/{validation-DAa_yFOM.mjs → validation-FrchoOlv.mjs} +7 -2
  47. package/dist/validation.d.mts +1 -1
  48. package/dist/validation.mjs +1 -1
  49. package/npm-shrinkwrap.json +645 -0
  50. package/package.json +11 -36
  51. package/dist/anthropic-usage-DWU-x8MI.mjs +0 -459
  52. package/dist/cache-retention-0x979a5V.mjs +0 -12
  53. package/dist/deferred-event-buffer-DAvyP7qA.mjs +0 -19
  54. package/dist/error-coercion-DgxlWC0n.mjs +0 -15
  55. package/dist/host-B9GUmcra.d.mts +0 -173
  56. package/dist/host-Dog2WQiR.mjs +0 -369
  57. package/dist/index-BVVgDSdq.d.mts +0 -1
  58. package/dist/internal/retry-after.d.mts +0 -5
  59. package/dist/internal/retry-after.mjs +0 -101
  60. package/dist/number-coercion-DvG7SNMg.mjs +0 -129
  61. package/dist/openai-completions-compat-DBWjXoMZ.d.mts +0 -43
  62. package/dist/openai-prompt-cache-2uo_1OR1.d.mts +0 -7
  63. package/dist/openai-prompt-cache-mZTCdRPo.mjs +0 -12
  64. package/dist/openai-reasoning-compat-YgeLncHw.mjs +0 -396
  65. package/dist/openai-responses-shared-pXl6Wd8S.mjs +0 -392
  66. package/dist/openai-responses-stream-internal-Cw5txaGW.mjs +0 -2964
  67. package/dist/prompt-cache-stability-Cwcjv_fx.d.mts +0 -13
  68. package/dist/provider-error-CAEvRjry.mjs +0 -47
  69. package/dist/provider-options-D8bB3z9b.d.mts +0 -144
  70. package/dist/reasoning-tag-text-partitioner-CGDyLWUR.mjs +0 -12209
  71. package/dist/simple-options-9lhRrN73.mjs +0 -50
  72. package/dist/stream-first-event-timeout-DvDeSucC.d.mts +0 -29
  73. package/dist/tls-certificate-errors-DXSpluKI.mjs +0 -93
  74. package/dist/tool-result-text-CTpIRbYd.mjs +0 -225
  75. package/dist/transform-messages-C8mBqZxF.mjs +0 -2
  76. package/dist/transport-stream-shared-D81p90xq.mjs +0 -297
  77. package/dist/transports.d.mts +0 -573
  78. package/dist/transports.mjs +0 -4110
@@ -1,4 +1,5 @@
1
- import { E as Model, F as SimpleStreamOptions, R as StreamFunction, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "./types-bzp5k29J.mjs";
1
+ import { E as Model, F as SimpleStreamOptions, R as StreamFunction, n as Api, o as AssistantMessageEventStreamContract, u as Context, z as StreamOptions } from "./types-DRgdPqaZ.mjs";
2
+
2
3
  //#region packages/ai/src/api-registry.d.ts
3
4
  /** Runtime stream adapter signature stored in the API provider registry. */
4
5
  type ApiStreamFunction = (model: Model, context: Context, options?: StreamOptions) => AssistantMessageEventStreamContract;
@@ -15,30 +15,9 @@ function parseAzureDeploymentNameMap(value) {
15
15
  }
16
16
  return map;
17
17
  }
18
- let cachedDeploymentLookup;
19
- function getDeploymentLookup(source) {
20
- const cached = cachedDeploymentLookup;
21
- if (cached && cached.source === source) return cached;
22
- const exact = parseAzureDeploymentNameMap(source);
23
- const folded = /* @__PURE__ */ new Map();
24
- for (const [modelId, deploymentName] of exact) folded.set(modelId.toLowerCase(), deploymentName);
25
- cachedDeploymentLookup = {
26
- source,
27
- exact,
28
- folded
29
- };
30
- return cachedDeploymentLookup;
31
- }
32
- /**
33
- * Resolves the Azure deployment name for a model id, falling back to the model id.
34
- *
35
- * An exact-case match always wins, so configs that intentionally distinguish keys by
36
- * case keep their exact mappings; a case-insensitive match is only used as a fallback
37
- * (e.g. `GPT-4o` against a `gpt-4o=...` map) to avoid 404s from casing differences.
38
- */
18
+ /** Resolves the Azure deployment name for a model id, falling back to the model id. */
39
19
  function resolveAzureDeploymentNameFromMap(params) {
40
- const { exact, folded } = getDeploymentLookup(params.deploymentMap);
41
- return exact.get(params.modelId) ?? folded.get(params.modelId.toLowerCase()) ?? params.modelId;
20
+ return parseAzureDeploymentNameMap(params.deploymentMap).get(params.modelId) || params.modelId;
42
21
  }
43
22
  //#endregion
44
23
  //#region packages/ai/src/providers/azure-openai-responses-client-compat.ts
@@ -1,10 +1,10 @@
1
- import { n as getEnvApiKey } from "./env-api-keys-DrgeBuva.mjs";
2
- import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
3
- import { n as getAiTransportHost } from "./host-Dog2WQiR.mjs";
4
- import { n as clampOpenAIPromptCacheKey } from "./openai-prompt-cache-mZTCdRPo.mjs";
5
- import { i as resolveAzureDeploymentNameFromMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "./azure-openai-responses-client-compat-C7K7QfUE.mjs";
6
- import { n as buildBaseOptions } from "./simple-options-9lhRrN73.mjs";
7
- import { a as runResponsesStreamLifecycle, i as resolveResponsesReasoningEffort, n as convertResponsesMessages, r as createResponsesAssistantOutput, t as applyCommonResponsesParams } from "./openai-responses-shared-pXl6Wd8S.mjs";
1
+ import { n as getEnvApiKey } from "./env-api-keys-CtMlqaQ4.mjs";
2
+ import { t as AssistantMessageEventStream } from "./event-stream-ReMmOTzX.mjs";
3
+ import { n as getAiTransportHost } from "./host-4t713IeR.mjs";
4
+ import { o as buildBaseOptions } from "./transform-messages-BhGF_fF4.mjs";
5
+ import { a as resolveResponsesReasoningEffort, n as convertResponsesMessages, o as runResponsesStreamLifecycle, r as createResponsesAssistantOutput, t as applyCommonResponsesParams } from "./openai-responses-shared-L3PWZvkm.mjs";
6
+ import { i as resolveAzureDeploymentNameFromMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "./azure-openai-responses-client-compat-a_O_GVQV.mjs";
7
+ import { a as clampOpenAIPromptCacheKey } from "./openai-tool-projection-BPlyXt8H.mjs";
8
8
  import OpenAI, { AzureOpenAI } from "openai";
9
9
  //#region packages/ai/src/providers/azure-openai-responses.ts
10
10
  const DEFAULT_AZURE_API_VERSION = "v1";
@@ -94,8 +94,11 @@ function resolveAzureConfig(model, options) {
94
94
  };
95
95
  }
96
96
  function createClient(model, apiKeyInput, options) {
97
- const apiKey = apiKeyInput.trim();
98
- if (!apiKey) throw new Error("Azure OpenAI API key is required. Set AZURE_OPENAI_API_KEY environment variable or pass it as an argument.");
97
+ let apiKey = apiKeyInput;
98
+ if (!apiKey) {
99
+ if (!process.env.AZURE_OPENAI_API_KEY) throw new Error("Azure OpenAI API key is required. Set AZURE_OPENAI_API_KEY environment variable or pass it as an argument.");
100
+ apiKey = process.env.AZURE_OPENAI_API_KEY;
101
+ }
99
102
  const headers = { ...model.headers };
100
103
  if (options?.headers) Object.assign(headers, options.headers);
101
104
  const { baseUrl, apiVersion } = resolveAzureConfig(model, options);
@@ -124,8 +127,7 @@ function buildParams(model, context, options, deploymentName) {
124
127
  model: deploymentName,
125
128
  input: convertResponsesMessages(model, context, AZURE_TOOL_CALL_PROVIDERS),
126
129
  stream: true,
127
- prompt_cache_key: options?.cacheRetention === "none" ? void 0 : clampOpenAIPromptCacheKey(options?.promptCacheKey ?? options?.sessionId),
128
- store: false
130
+ prompt_cache_key: options?.cacheRetention === "none" ? void 0 : clampOpenAIPromptCacheKey(options?.promptCacheKey ?? options?.sessionId)
129
131
  };
130
132
  applyCommonResponsesParams(params, model, context, options);
131
133
  return params;
@@ -70,9 +70,8 @@ function getProcEnv(key) {
70
70
  if (procEnvCache === null) {
71
71
  procEnvCache = /* @__PURE__ */ new Map();
72
72
  try {
73
- const fsModule = loadNodeBuiltinModule(NODE_FS_SPECIFIER);
74
- if (!fsModule) return;
75
- const data = fsModule.readFileSync("/proc/self/environ", "utf-8");
73
+ const { readFileSync } = __require("node:fs");
74
+ const data = readFileSync("/proc/self/environ", "utf-8");
76
75
  for (const entry of data.split("\0")) {
77
76
  const idx = entry.indexOf("=");
78
77
  if (idx > 0) procEnvCache.set(entry.slice(0, idx), entry.slice(idx + 1));
@@ -82,7 +81,7 @@ function getProcEnv(key) {
82
81
  return procEnvCache.get(key);
83
82
  }
84
83
  function getEnvValue(key) {
85
- return (getProcessEnv()?.[key] || getProcEnv(key))?.trim() || void 0;
84
+ return getProcessEnv()?.[key] || getProcEnv(key);
86
85
  }
87
86
  let cachedVertexAdcCredentialsExists = null;
88
87
  function hasVertexAdcCredentials() {
@@ -107,7 +106,7 @@ function getApiKeyEnvVars(provider) {
107
106
  if (provider === "kimi" || provider === "kimi-coding") return ["KIMI_API_KEY", "KIMICODE_API_KEY"];
108
107
  const envVar = {
109
108
  openai: "OPENAI_API_KEY",
110
- meta: "MODEL_API_KEY",
109
+ "meta": "MODEL_API_KEY",
111
110
  "azure-openai-responses": "AZURE_OPENAI_API_KEY",
112
111
  deepseek: "DEEPSEEK_API_KEY",
113
112
  google: "GEMINI_API_KEY",
@@ -1,4 +1,4 @@
1
- import { a as AssistantMessageEvent, i as AssistantMessage, o as AssistantMessageEventStreamContract } from "./types-bzp5k29J.mjs";
1
+ import { a as AssistantMessageEvent, i as AssistantMessage, o as AssistantMessageEventStreamContract } from "./types-DRgdPqaZ.mjs";
2
2
 
3
3
  //#region packages/llm-core/src/utils/event-stream.d.ts
4
4
  /** Generic async-iterable event stream with a separately awaited final result. */
@@ -7,13 +7,9 @@ var EventStream = class {
7
7
  this.done = false;
8
8
  this.isComplete = isComplete;
9
9
  this.extractResult = extractResult;
10
- const resolvers = [];
11
10
  this.finalResultPromise = new Promise((resolve) => {
12
- resolvers.push(resolve);
11
+ this.resolveFinalResult = resolve;
13
12
  });
14
- const resolveFinalResult = resolvers.at(0);
15
- if (!resolveFinalResult) throw new Error("event stream result promise did not initialize its resolver");
16
- this.resolveFinalResult = resolveFinalResult;
17
13
  }
18
14
  push(event) {
19
15
  if (this.done) return;
@@ -31,17 +27,13 @@ var EventStream = class {
31
27
  end(result) {
32
28
  this.done = true;
33
29
  if (result !== void 0) this.resolveFinalResult(result);
34
- while (this.waiting.length > 0) {
35
- const waiter = this.waiting.shift();
36
- if (!waiter) break;
37
- waiter({
38
- value: void 0,
39
- done: true
40
- });
41
- }
30
+ while (this.waiting.length > 0) this.waiting.shift()({
31
+ value: void 0,
32
+ done: true
33
+ });
42
34
  }
43
35
  async *[Symbol.asyncIterator]() {
44
- while (true) if (this.queue.length > 0) for (const event of this.queue.splice(0, 1)) yield event;
36
+ while (true) if (this.queue.length > 0) yield this.queue.shift();
45
37
  else if (this.done) return;
46
38
  else {
47
39
  const result = await new Promise((resolve) => {
@@ -1,2 +1,2 @@
1
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-YjaPW20U.mjs";
1
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-0nZeBKl2.mjs";
2
2
  export { AssistantMessageEventStream, EventStream, createAssistantMessageEventStream };
@@ -1,2 +1,2 @@
1
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
1
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-ReMmOTzX.mjs";
2
2
  export { AssistantMessageEventStream, EventStream, createAssistantMessageEventStream };
@@ -1,3 +1,14 @@
1
+ //#region packages/ai/src/providers/cache-retention.ts
2
+ /**
3
+ * Resolve cache retention preference.
4
+ * Defaults to "short" and uses OPENCLAW_CACHE_RETENTION for backward compatibility.
5
+ */
6
+ function resolveCacheRetention(cacheRetention) {
7
+ if (cacheRetention) return cacheRetention;
8
+ if (typeof process !== "undefined" && process.env.OPENCLAW_CACHE_RETENTION === "long") return "long";
9
+ return "short";
10
+ }
11
+ //#endregion
1
12
  //#region packages/ai/src/providers/cloudflare.ts
2
13
  function isCloudflareProvider(provider) {
3
14
  return provider === "cloudflare-workers-ai" || provider === "cloudflare-ai-gateway";
@@ -34,4 +45,4 @@ function buildCopilotDynamicHeaders(params) {
34
45
  return headers;
35
46
  }
36
47
  //#endregion
37
- export { resolveCloudflareBaseUrl as i, hasCopilotVisionInput as n, isCloudflareProvider as r, buildCopilotDynamicHeaders as t };
48
+ export { resolveCacheRetention as a, resolveCloudflareBaseUrl as i, hasCopilotVisionInput as n, isCloudflareProvider as r, buildCopilotDynamicHeaders as t };
@@ -1,8 +1,8 @@
1
- import { n as getEnvApiKey } from "./env-api-keys-DrgeBuva.mjs";
2
- import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
3
- import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-Dog2WQiR.mjs";
4
- import { n as buildBaseOptions } from "./simple-options-9lhRrN73.mjs";
5
- import { a as runGoogleGenerateContentLifecycle, i as getDisabledGoogleThinkingConfig, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-DNBz5rcD.mjs";
1
+ import { n as getEnvApiKey } from "./env-api-keys-CtMlqaQ4.mjs";
2
+ import { t as AssistantMessageEventStream } from "./event-stream-ReMmOTzX.mjs";
3
+ import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-4t713IeR.mjs";
4
+ import { o as buildBaseOptions } from "./transform-messages-BhGF_fF4.mjs";
5
+ import { a as runGoogleGenerateContentLifecycle, i as getDisabledGoogleThinkingConfig, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-BAP0BQVi.mjs";
6
6
  import { GoogleGenAI } from "@google/genai";
7
7
  //#region packages/ai/src/providers/google.ts
8
8
  let toolCallCounter = 0;
@@ -1,11 +1,7 @@
1
- import { i as transformMessages } from "./host-Dog2WQiR.mjs";
1
+ import { n as calculateCost, r as clampThinkingLevel } from "./model-utils-DgmOla96.mjs";
2
2
  import { t as sanitizeSurrogates } from "./sanitize-unicode-DT5o51ur.mjs";
3
- import { a as isImageWithMediaPayload, d as stripSystemPromptCacheBoundary, r as extractToolResultText, t as describeToolResultMediaPlaceholder } from "./tool-result-text-CTpIRbYd.mjs";
4
- import { c as calculateCost, l as clampThinkingLevel } from "./number-coercion-DvG7SNMg.mjs";
5
- import { d as transportAbortError } from "./transport-stream-shared-D81p90xq.mjs";
6
- import { t as formatProviderError } from "./provider-error-CAEvRjry.mjs";
7
- import "./transform-messages-C8mBqZxF.mjs";
8
- import { FinishReason, FunctionCallingConfigMode, ThinkingLevel } from "@google/genai";
3
+ import { b as stripSystemPromptCacheBoundary, i as extractToolResultText, n as describeToolResultMediaPlaceholder, t as transformMessages } from "./transform-messages-BhGF_fF4.mjs";
4
+ import { FinishReason, FunctionCallingConfigMode } from "@google/genai";
9
5
  //#region packages/ai/src/providers/google-shared.ts
10
6
  /**
11
7
  * Shared utilities for Google Generative AI and Google Vertex providers.
@@ -36,7 +32,6 @@ function isThinkingPart(part) {
36
32
  *
37
33
  * Note: this does NOT merge or move signatures across distinct response parts. It only prevents
38
34
  * a signature from being overwritten with `undefined` within the same streamed block.
39
- * @internal Directly tested provider implementation detail.
40
35
  */
41
36
  function retainThoughtSignature(existing, incoming) {
42
37
  if (typeof incoming === "string" && incoming.length > 0) return incoming;
@@ -56,16 +51,14 @@ function resolveThoughtSignature(isSameProviderAndModel, signature) {
56
51
  }
57
52
  /**
58
53
  * Models via Google APIs that require explicit tool call IDs in function calls/responses.
59
- * @internal Directly tested provider implementation detail.
60
54
  */
61
55
  function requiresToolCallId(modelId) {
62
56
  return modelId.startsWith("claude-") || modelId.startsWith("gpt-oss-");
63
57
  }
64
58
  function getGeminiMajorVersion(modelId) {
65
- const match = modelId.toLowerCase().match(/(?:^|\/)gemini(?:-live)?-(\d+)/);
59
+ const match = modelId.toLowerCase().match(/^gemini(?:-live)?-(\d+)/);
66
60
  if (!match) return;
67
- const majorVersion = match.at(1);
68
- return majorVersion === void 0 ? void 0 : Number.parseInt(majorVersion, 10);
61
+ return Number.parseInt(match[1], 10);
69
62
  }
70
63
  function supportsMultimodalFunctionResponse(modelId) {
71
64
  const geminiMajorVersion = getGeminiMajorVersion(modelId);
@@ -74,7 +67,6 @@ function supportsMultimodalFunctionResponse(modelId) {
74
67
  }
75
68
  /**
76
69
  * Convert internal messages to Gemini Content[] format.
77
- * @internal Directly tested provider implementation detail.
78
70
  */
79
71
  function convertMessages(model, context) {
80
72
  const contents = [];
@@ -149,7 +141,7 @@ function convertMessages(model, context) {
149
141
  });
150
142
  } else if (msg.role === "toolResult") {
151
143
  const textResult = extractToolResultText(msg.content);
152
- const imageContent = model.input.includes("image") ? msg.content.filter(isImageWithMediaPayload) : [];
144
+ const imageContent = model.input.includes("image") ? msg.content.filter((c) => c.type === "image") : [];
153
145
  const hasText = textResult.length > 0;
154
146
  const hasImages = imageContent.length > 0;
155
147
  const mediaPlaceholder = describeToolResultMediaPlaceholder(msg.content);
@@ -212,7 +204,6 @@ function sanitizeForOpenApi(schema) {
212
204
  * anyOf, oneOf, const, etc.). Set `useParameters` to true to use the legacy `parameters`
213
205
  * field instead (OpenAPI 3.03 Schema). This is needed for Cloud Code Assist with Claude
214
206
  * models, where the API translates `parameters` into Anthropic's `input_schema`.
215
- * @internal Directly tested provider implementation detail.
216
207
  */
217
208
  function convertTools(tools, useParameters = false) {
218
209
  if (tools.length === 0) return;
@@ -224,7 +215,6 @@ function convertTools(tools, useParameters = false) {
224
215
  }
225
216
  /**
226
217
  * Map tool choice string to Gemini FunctionCallingConfigMode.
227
- * @internal Directly tested provider implementation detail.
228
218
  */
229
219
  function mapToolChoice(choice) {
230
220
  switch (choice) {
@@ -277,7 +267,7 @@ async function runGoogleGenerateContentLifecycle(params) {
277
267
  } catch (error) {
278
268
  for (const block of output.content) if ("index" in block) delete block.index;
279
269
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
280
- output.errorMessage = formatProviderError(error);
270
+ output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
281
271
  stream.push({
282
272
  type: "error",
283
273
  reason: output.stopReason,
@@ -301,7 +291,7 @@ function buildGoogleGenerateContentParams(model, context, options = {}, configHo
301
291
  else config.toolConfig = void 0;
302
292
  if (options.thinking?.enabled && model.reasoning) {
303
293
  const thinkingConfig = { includeThoughts: true };
304
- if (options.thinking.level !== void 0) thinkingConfig.thinkingLevel = ThinkingLevel[options.thinking.level];
294
+ if (options.thinking.level !== void 0) thinkingConfig.thinkingLevel = configHooks?.mapThinkingLevel ? configHooks.mapThinkingLevel(options.thinking.level) : options.thinking.level;
305
295
  else if (options.thinking.budgetTokens !== void 0) thinkingConfig.thinkingBudget = options.thinking.budgetTokens;
306
296
  config.thinkingConfig = thinkingConfig;
307
297
  } else if (model.reasoning && options.thinking && !options.thinking.enabled) config.thinkingConfig = configHooks?.getDisabledThinkingConfig ? configHooks.getDisabledThinkingConfig(model) : getDisabledGoogleThinkingConfig(model);
@@ -330,12 +320,12 @@ function buildGoogleSimpleThinking(model, options, config) {
330
320
  };
331
321
  }
332
322
  function getDisabledGoogleThinkingConfig(model, config) {
333
- if (isGemini3ProModel(model)) return { thinkingLevel: ThinkingLevel.LOW };
334
- if (isGemini3FlashModel(model)) return { thinkingLevel: ThinkingLevel.MINIMAL };
335
- if (config?.includeGemma4 && isGemma4Model(model)) return { thinkingLevel: ThinkingLevel.MINIMAL };
323
+ const mapThinkingLevel = (level) => config?.mapThinkingLevel ? config.mapThinkingLevel(level) : level;
324
+ if (isGemini3ProModel(model)) return { thinkingLevel: mapThinkingLevel("LOW") };
325
+ if (isGemini3FlashModel(model)) return { thinkingLevel: mapThinkingLevel("MINIMAL") };
326
+ if (config?.includeGemma4 && isGemma4Model(model)) return { thinkingLevel: mapThinkingLevel("MINIMAL") };
336
327
  return { thinkingBudget: 0 };
337
328
  }
338
- /** @internal Directly tested provider implementation detail. */
339
329
  function isGemma4Model(model) {
340
330
  return /gemma-?4/.test(model.id.toLowerCase());
341
331
  }
@@ -348,23 +338,23 @@ function isGemini3FlashModel(model) {
348
338
  function getGoogleThinkingLevel(effort, model, config) {
349
339
  if (isGemini3ProModel(model)) switch (effort) {
350
340
  case "minimal":
351
- case "low": return ThinkingLevel.LOW;
341
+ case "low": return "LOW";
352
342
  case "medium":
353
- case "high": return ThinkingLevel.HIGH;
343
+ case "high": return "HIGH";
354
344
  }
355
345
  if (config?.includeGemma4 && isGemma4Model(model)) switch (effort) {
356
346
  case "minimal":
357
- case "low": return ThinkingLevel.MINIMAL;
347
+ case "low": return "MINIMAL";
358
348
  case "medium":
359
- case "high": return ThinkingLevel.HIGH;
349
+ case "high": return "HIGH";
360
350
  }
361
351
  switch (effort) {
362
- case "minimal": return ThinkingLevel.MINIMAL;
363
- case "low": return ThinkingLevel.LOW;
364
- case "medium": return ThinkingLevel.MEDIUM;
365
- case "high": return ThinkingLevel.HIGH;
352
+ case "minimal": return "MINIMAL";
353
+ case "low": return "LOW";
354
+ case "medium": return "MEDIUM";
355
+ case "high": return "HIGH";
366
356
  }
367
- return ThinkingLevel.HIGH;
357
+ return "HIGH";
368
358
  }
369
359
  function getGoogleBudget(model, effort, customBudgets, config) {
370
360
  if (customBudgets?.[effort] !== void 0) return customBudgets[effort];
@@ -390,7 +380,6 @@ function getGoogleBudget(model, effort, customBudgets, config) {
390
380
  }
391
381
  /**
392
382
  * Map Gemini FinishReason to our StopReason.
393
- * @internal Directly tested provider implementation detail.
394
383
  */
395
384
  function mapStopReason(reason) {
396
385
  switch (reason) {
@@ -414,7 +403,6 @@ function mapStopReason(reason) {
414
403
  default: throw new Error(`Unhandled stop reason: ${String(reason)}`);
415
404
  }
416
405
  }
417
- /** @internal Directly tested provider implementation detail. */
418
406
  async function consumeGoogleGenerateContentStream(params) {
419
407
  params.stream.push({
420
408
  type: "start",
@@ -548,7 +536,7 @@ async function consumeGoogleGenerateContentStream(params) {
548
536
  }
549
537
  }
550
538
  endCurrentBlock();
551
- if (params.signal?.aborted) throw transportAbortError(params.signal);
539
+ if (params.signal?.aborted) throw new Error("Request was aborted");
552
540
  if (params.output.stopReason === "aborted" || params.output.stopReason === "error") throw new Error("An unknown error occurred");
553
541
  params.stream.push({
554
542
  type: "done",
@@ -1,11 +1,18 @@
1
- import { t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
2
- import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-Dog2WQiR.mjs";
3
- import { n as buildBaseOptions } from "./simple-options-9lhRrN73.mjs";
4
- import { a as runGoogleGenerateContentLifecycle, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-DNBz5rcD.mjs";
5
- import { GoogleGenAI, ResourceScope } from "@google/genai";
1
+ import { t as AssistantMessageEventStream } from "./event-stream-ReMmOTzX.mjs";
2
+ import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels } from "./host-4t713IeR.mjs";
3
+ import { o as buildBaseOptions } from "./transform-messages-BhGF_fF4.mjs";
4
+ import { a as runGoogleGenerateContentLifecycle, i as getDisabledGoogleThinkingConfig, n as buildGoogleSimpleThinking, r as createGoogleAssistantOutput, t as buildGoogleGenerateContentParams } from "./google-shared-BAP0BQVi.mjs";
5
+ import { GoogleGenAI, ResourceScope, ThinkingLevel } from "@google/genai";
6
6
  //#region packages/ai/src/providers/google-vertex.ts
7
7
  const API_VERSION = "v1";
8
8
  const GCP_VERTEX_CREDENTIALS_MARKER = "gcp-vertex-credentials";
9
+ const THINKING_LEVEL_MAP = {
10
+ THINKING_LEVEL_UNSPECIFIED: ThinkingLevel.THINKING_LEVEL_UNSPECIFIED,
11
+ MINIMAL: ThinkingLevel.MINIMAL,
12
+ LOW: ThinkingLevel.LOW,
13
+ MEDIUM: ThinkingLevel.MEDIUM,
14
+ HIGH: ThinkingLevel.HIGH
15
+ };
9
16
  let toolCallCounter = 0;
10
17
  const streamGoogleVertex = (model, context, options) => {
11
18
  const stream = new AssistantMessageEventStream();
@@ -92,7 +99,13 @@ function resolveLocation(options) {
92
99
  return location;
93
100
  }
94
101
  function buildParams(model, context, options = {}) {
95
- return buildGoogleGenerateContentParams(model, context, options);
102
+ return buildGoogleGenerateContentParams(model, context, options, {
103
+ mapThinkingLevel: mapVertexThinkingLevel,
104
+ getDisabledThinkingConfig: (modelLocal) => getDisabledGoogleThinkingConfig(modelLocal, { mapThinkingLevel: mapVertexThinkingLevel })
105
+ });
106
+ }
107
+ function mapVertexThinkingLevel(level) {
108
+ return THINKING_LEVEL_MAP[level];
96
109
  }
97
110
  //#endregion
98
111
  export { streamGoogleVertex, streamSimpleGoogleVertex };
@@ -0,0 +1,37 @@
1
+ //#region packages/ai/src/host.ts
2
+ const inertAiTransportHost = {
3
+ buildModelFetch: () => void 0,
4
+ resolveSecretSentinel: (value) => value,
5
+ redactSecrets: (value) => value,
6
+ redactToolPayloadText: (text) => text,
7
+ resolveOpenAIStrictToolSetting: (_model, options) => options?.supportsStrictMode ? false : void 0,
8
+ logDebug: () => {}
9
+ };
10
+ let activeAiTransportHost = inertAiTransportHost;
11
+ /** Installs host implementations for the transport policy ports. */
12
+ function configureAiTransportHost(host) {
13
+ activeAiTransportHost = {
14
+ ...inertAiTransportHost,
15
+ ...host
16
+ };
17
+ }
18
+ /** Returns the active transport host (inert defaults unless configured). */
19
+ function getAiTransportHost() {
20
+ return activeAiTransportHost;
21
+ }
22
+ /** Resolves sentinel substrings in custom headers at a no-fetch adapter boundary. */
23
+ function resolveAiTransportHeaderSentinels(headers) {
24
+ if (!headers) return;
25
+ const host = getAiTransportHost();
26
+ let resolvedHeaders;
27
+ for (const [name, value] of Object.entries(headers)) {
28
+ const resolved = host.resolveSecretSentinel(value);
29
+ if (resolved !== value) {
30
+ resolvedHeaders ??= { ...headers };
31
+ resolvedHeaders[name] = resolved;
32
+ }
33
+ }
34
+ return resolvedHeaders ?? headers;
35
+ }
36
+ //#endregion
37
+ export { getAiTransportHost as n, resolveAiTransportHeaderSentinels as r, configureAiTransportHost as t };
@@ -47,26 +47,6 @@ declare const CLAUDE_SONNET_5_THINKING_PROFILE: {
47
47
  }];
48
48
  readonly defaultLevel: "high";
49
49
  };
50
- declare const CLAUDE_OPUS_5_THINKING_PROFILE: {
51
- readonly levels: readonly [{
52
- readonly id: "off";
53
- }, {
54
- readonly id: "minimal";
55
- }, {
56
- readonly id: "low";
57
- }, {
58
- readonly id: "medium";
59
- }, {
60
- readonly id: "high";
61
- }, {
62
- readonly id: "xhigh";
63
- }, {
64
- readonly id: "adaptive";
65
- }, {
66
- readonly id: "max";
67
- }];
68
- readonly defaultLevel: "high";
69
- };
70
50
  /** Resolve the canonical normalized Claude model id for one runtime model ref. */
71
51
  declare function resolveClaudeModelIdentity(ref: ClaudeModelRef): string;
72
52
  /** Resolve Claude Fable 5 through direct ids, cloud ids, or deployment metadata. */
@@ -77,14 +57,8 @@ declare function resolveClaudeMythos5ModelIdentity(ref: ClaudeModelRef): string
77
57
  declare function requiresClaudeMandatoryAdaptiveThinking(ref: ClaudeModelRef): boolean;
78
58
  /** Resolve Claude Sonnet 5 through direct ids, cloud ids, or deployment metadata. */
79
59
  declare function resolveClaudeSonnet5ModelIdentity(ref: ClaudeModelRef): string | undefined;
80
- /** Resolve Claude Opus 5 through aliases, direct ids, cloud ids, or deployment metadata. */
81
- declare function resolveClaudeOpus5ModelIdentity(ref: ClaudeModelRef): string | undefined;
82
60
  /** Return whether a Claude model supports adaptive thinking. */
83
61
  declare function supportsClaudeAdaptiveThinking(ref: ClaudeModelRef): boolean;
84
- /** Return whether a Claude model has a native 1M-token context window. */
85
- declare function supportsClaude1MContext(ref: ClaudeModelRef): boolean;
86
- /** Return whether a Claude model supports Anthropic's native fast mode. */
87
- declare function supportsClaudeFastMode(ref: ClaudeModelRef): boolean;
88
62
  /** Return whether a Claude model supports native max effort. */
89
63
  declare function supportsClaudeNativeMaxEffort(ref: ClaudeModelRef): boolean;
90
64
  /** Return whether a Claude model supports native xhigh effort. */
@@ -97,4 +71,4 @@ declare function requiresClaudeDefaultSampling(ref: ClaudeModelRef): boolean;
97
71
  */
98
72
  declare function resolveClaudeNativeThinkingLevelMap(ref: ClaudeEffortModelRef): Record<string, string | null | undefined> | undefined;
99
73
  //#endregion
100
- export { requiresClaudeMandatoryAdaptiveThinking as a, resolveClaudeMythos5ModelIdentity as c, resolveClaudeSonnet5ModelIdentity as d, supportsClaude1MContext as f, supportsClaudeNativeXhighEffort as g, supportsClaudeNativeMaxEffort as h, requiresClaudeDefaultSampling as i, resolveClaudeNativeThinkingLevelMap as l, supportsClaudeFastMode as m, CLAUDE_OPUS_5_THINKING_PROFILE as n, resolveClaudeFable5ModelIdentity as o, supportsClaudeAdaptiveThinking as p, CLAUDE_SONNET_5_THINKING_PROFILE as r, resolveClaudeModelIdentity as s, CLAUDE_FABLE_5_THINKING_PROFILE as t, resolveClaudeOpus5ModelIdentity as u };
74
+ export { resolveClaudeFable5ModelIdentity as a, resolveClaudeNativeThinkingLevelMap as c, supportsClaudeNativeMaxEffort as d, supportsClaudeNativeXhighEffort as f, requiresClaudeMandatoryAdaptiveThinking as i, resolveClaudeSonnet5ModelIdentity as l, CLAUDE_SONNET_5_THINKING_PROFILE as n, resolveClaudeModelIdentity as o, requiresClaudeDefaultSampling as r, resolveClaudeMythos5ModelIdentity as s, CLAUDE_FABLE_5_THINKING_PROFILE as t, supportsClaudeAdaptiveThinking as u };
package/dist/index.d.mts CHANGED
@@ -1,11 +1,54 @@
1
- import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, f as supportsClaude1MContext, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, m as supportsClaudeFastMode, n as CLAUDE_OPUS_5_THINKING_PROFILE, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, r as CLAUDE_SONNET_5_THINKING_PROFILE, s as resolveClaudeModelIdentity, t as CLAUDE_FABLE_5_THINKING_PROFILE, u as resolveClaudeOpus5ModelIdentity } from "./anthropic-SrGtwsJu.mjs";
1
+ import { a as resolveClaudeFable5ModelIdentity, c as resolveClaudeNativeThinkingLevelMap, d as supportsClaudeNativeMaxEffort, f as supportsClaudeNativeXhighEffort, i as requiresClaudeMandatoryAdaptiveThinking, l as resolveClaudeSonnet5ModelIdentity, n as CLAUDE_SONNET_5_THINKING_PROFILE, o as resolveClaudeModelIdentity, r as requiresClaudeDefaultSampling, s as resolveClaudeMythos5ModelIdentity, t as CLAUDE_FABLE_5_THINKING_PROFILE, u as supportsClaudeAdaptiveThinking } from "./index-BoTnz8cv.mjs";
2
2
  import { a as extractDiagnosticError, i as createAssistantMessageDiagnostic, n as DiagnosticErrorInfo, o as formatThrownValue, r as appendAssistantMessageDiagnostic, t as AssistantMessageDiagnostic } from "./diagnostics-BaTA9eVl.mjs";
3
- import { $ as VercelGatewayRouting, A as OpenRouterRouting, B as TextContent, C as KnownImagesProvider, D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, G as ThinkingLevelMap, H as ThinkingBudgets, I as StopReason, J as ToolResultMessage, K as Tool, L as StreamFn, M as ProviderImagesOptions, N as ProviderResponse, O as OpenAICompletionsCompat, P as ProviderStreamOptions, Q as ValidateToolArgumentsFn, R as StreamFunction, S as KnownImagesApi, T as Message, U as ThinkingContent, V as TextSignatureV1, W as ThinkingLevel, X as Usage, Y as Transport, Z as UserMessage, _ as ImagesOptions, a as AssistantMessageEvent, b as ImagesStopReason, c as CacheRetention, d as ImageContent, f as ImagesApi, g as ImagesModel, h as ImagesInputContent, i as AssistantMessage, j as Provider, k as OpenAIResponsesCompat, l as CompleteSimpleFn, m as ImagesFunction, n as Api, o as AssistantMessageEventStreamContract, p as ImagesContext, q as ToolCall, r as AssistantImages, s as AssistantMessageEventStreamLike, t as AnthropicMessagesCompat, u as Context, v as ImagesOutputContent, w as MaybePromise, x as KnownApi, y as ImagesProvider, z as StreamOptions } from "./types-bzp5k29J.mjs";
4
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-YjaPW20U.mjs";
5
- import { n as validateToolCall, t as validateToolArguments } from "./validation-B-j7cOYp.mjs";
6
- import { a as RegisteredApiProvider, i as ApiStreamSimpleFunction, n as ApiRegistry, o as createApiRegistry, r as ApiStreamFunction, t as ApiProvider } from "./api-registry-DlMgPR39.mjs";
7
- import { a as AiProviderRequestPolicyInput, c as AiTransportHost, d as configureAiTransportHost, f as getAiTransportHost, i as AiProviderRequestCapabilities, l as AiTransportPluginHost, n as AiInlineImageBlock, o as AiProviderStreamHookContext, p as resolveAiTransportHeaderSentinels, r as AiInlineTextBlock, s as AiTransformTransportMessages, t as AiInlineContentBlock, u as OpenAIStrictToolSettingOptions } from "./host-B9GUmcra.mjs";
3
+ import { $ as VercelGatewayRouting, A as OpenRouterRouting, B as TextContent, C as KnownImagesProvider, D as ModelThinkingLevel, E as Model, F as SimpleStreamOptions, G as ThinkingLevelMap, H as ThinkingBudgets, I as StopReason, J as ToolResultMessage, K as Tool, L as StreamFn, M as ProviderImagesOptions, N as ProviderResponse, O as OpenAICompletionsCompat, P as ProviderStreamOptions, Q as ValidateToolArgumentsFn, R as StreamFunction, S as KnownImagesApi, T as Message, U as ThinkingContent, V as TextSignatureV1, W as ThinkingLevel, X as Usage, Y as Transport, Z as UserMessage, _ as ImagesOptions, a as AssistantMessageEvent, b as ImagesStopReason, c as CacheRetention, d as ImageContent, f as ImagesApi, g as ImagesModel, h as ImagesInputContent, i as AssistantMessage, j as Provider, k as OpenAIResponsesCompat, l as CompleteSimpleFn, m as ImagesFunction, n as Api, o as AssistantMessageEventStreamContract, p as ImagesContext, q as ToolCall, r as AssistantImages, s as AssistantMessageEventStreamLike, t as AnthropicMessagesCompat, u as Context, v as ImagesOutputContent, w as MaybePromise, x as KnownApi, y as ImagesProvider, z as StreamOptions } from "./types-DRgdPqaZ.mjs";
4
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-0nZeBKl2.mjs";
5
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-BDMWOr8d.mjs";
6
+ import { a as RegisteredApiProvider, i as ApiStreamSimpleFunction, n as ApiRegistry, o as createApiRegistry, r as ApiStreamFunction, t as ApiProvider } from "./api-registry-BXYnCOIR.mjs";
8
7
 
8
+ //#region packages/ai/src/host.d.ts
9
+ /** Strict-tool policy inputs for OpenAI-compatible routes. */
10
+ interface OpenAIStrictToolSettingOptions {
11
+ transport?: "stream" | "websocket";
12
+ supportsStrictMode?: boolean;
13
+ }
14
+ /** Narrow host ports consumed by the built-in provider adapters. */
15
+ interface AiTransportHost {
16
+ /**
17
+ * Builds a policy-guarded fetch for one model request.
18
+ * Returning undefined keeps the provider SDK's default fetch.
19
+ */
20
+ buildModelFetch(model: Model, timeoutMs?: number, options?: {
21
+ sanitizeSse?: boolean;
22
+ }): typeof fetch | undefined;
23
+ /** Resolves host-owned process-local secret sentinel substrings immediately before egress. */
24
+ resolveSecretSentinel(value: string): string;
25
+ /** Redacts secrets inside structured tool-result payloads. */
26
+ redactSecrets<T>(value: T): T;
27
+ /** Redacts secret-bearing text in tool payload strings. */
28
+ redactToolPayloadText(text: string): string;
29
+ /**
30
+ * Resolves the host strict-tool default for OpenAI-compatible routes.
31
+ * undefined lets the request omit the strict flag entirely.
32
+ */
33
+ resolveOpenAIStrictToolSetting(model: Pick<Model, "provider" | "api" | "baseUrl" | "id"> & {
34
+ compat?: unknown;
35
+ }, options?: OpenAIStrictToolSettingOptions): boolean | undefined;
36
+ /**
37
+ * Emits one transport diagnostic; build runs only when the host logs it and
38
+ * may return null to suppress the entry (e.g. de-duplication).
39
+ */
40
+ logDebug(subsystem: string, build: () => {
41
+ message: string;
42
+ data?: Record<string, unknown>;
43
+ } | null): void;
44
+ }
45
+ /** Installs host implementations for the transport policy ports. */
46
+ declare function configureAiTransportHost(host: Partial<AiTransportHost>): void;
47
+ /** Returns the active transport host (inert defaults unless configured). */
48
+ declare function getAiTransportHost(): AiTransportHost;
49
+ /** Resolves sentinel substrings in custom headers at a no-fetch adapter boundary. */
50
+ declare function resolveAiTransportHeaderSentinels(headers: Record<string, string> | undefined): Record<string, string> | undefined;
51
+ //#endregion
9
52
  //#region packages/ai/src/stream.d.ts
10
53
  /** Creates an isolated LLM runtime backed by the supplied provider registry. */
11
54
  declare function createLlmRuntime(registry?: ApiRegistry): {
@@ -23,4 +66,4 @@ declare function createLlmRuntime(registry?: ApiRegistry): {
23
66
  };
24
67
  type LlmRuntime = ReturnType<typeof createLlmRuntime>;
25
68
  //#endregion
26
- export { AiInlineContentBlock, AiInlineImageBlock, AiInlineTextBlock, AiProviderRequestCapabilities, AiProviderRequestPolicyInput, AiProviderStreamHookContext, AiTransformTransportMessages, AiTransportHost, AiTransportPluginHost, AnthropicMessagesCompat, Api, ApiProvider, ApiRegistry, ApiStreamFunction, ApiStreamSimpleFunction, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, CacheRetention, CompleteSimpleFn, Context, DiagnosticErrorInfo, EventStream, ImageContent, ImagesApi, ImagesContext, ImagesFunction, ImagesInputContent, ImagesModel, ImagesOptions, ImagesOutputContent, ImagesProvider, ImagesStopReason, KnownApi, KnownImagesApi, KnownImagesProvider, LlmRuntime, MaybePromise, Message, Model, ModelThinkingLevel, OpenAICompletionsCompat, OpenAIResponsesCompat, OpenAIStrictToolSettingOptions, OpenRouterRouting, Provider, ProviderImagesOptions, ProviderResponse, ProviderStreamOptions, RegisteredApiProvider, SimpleStreamOptions, StopReason, StreamFn, StreamFunction, StreamOptions, TextContent, TextSignatureV1, ThinkingBudgets, ThinkingContent, ThinkingLevel, ThinkingLevelMap, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage, ValidateToolArgumentsFn, VercelGatewayRouting, appendAssistantMessageDiagnostic, configureAiTransportHost, createApiRegistry, createAssistantMessageDiagnostic, createAssistantMessageEventStream, createLlmRuntime, extractDiagnosticError, formatThrownValue, getAiTransportHost, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAiTransportHeaderSentinels, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
69
+ export { AiTransportHost, AnthropicMessagesCompat, Api, ApiProvider, ApiRegistry, ApiStreamFunction, ApiStreamSimpleFunction, AssistantImages, AssistantMessage, AssistantMessageDiagnostic, AssistantMessageEvent, AssistantMessageEventStream, AssistantMessageEventStreamContract, AssistantMessageEventStreamLike, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, CacheRetention, CompleteSimpleFn, Context, DiagnosticErrorInfo, EventStream, ImageContent, ImagesApi, ImagesContext, ImagesFunction, ImagesInputContent, ImagesModel, ImagesOptions, ImagesOutputContent, ImagesProvider, ImagesStopReason, KnownApi, KnownImagesApi, KnownImagesProvider, LlmRuntime, MaybePromise, Message, Model, ModelThinkingLevel, OpenAICompletionsCompat, OpenAIResponsesCompat, OpenAIStrictToolSettingOptions, OpenRouterRouting, Provider, ProviderImagesOptions, ProviderResponse, ProviderStreamOptions, RegisteredApiProvider, SimpleStreamOptions, StopReason, StreamFn, StreamFunction, StreamOptions, TextContent, TextSignatureV1, ThinkingBudgets, ThinkingContent, ThinkingLevel, ThinkingLevelMap, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage, ValidateToolArgumentsFn, VercelGatewayRouting, appendAssistantMessageDiagnostic, configureAiTransportHost, createApiRegistry, createAssistantMessageDiagnostic, createAssistantMessageEventStream, createLlmRuntime, extractDiagnosticError, formatThrownValue, getAiTransportHost, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAiTransportHeaderSentinels, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeSonnet5ModelIdentity, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { a as requiresClaudeMandatoryAdaptiveThinking, c as resolveClaudeMythos5ModelIdentity, d as resolveClaudeSonnet5ModelIdentity, f as supportsClaude1MContext, g as supportsClaudeNativeXhighEffort, h as supportsClaudeNativeMaxEffort, i as requiresClaudeDefaultSampling, l as resolveClaudeNativeThinkingLevelMap, m as supportsClaudeFastMode, n as CLAUDE_OPUS_5_THINKING_PROFILE, o as resolveClaudeFable5ModelIdentity, p as supportsClaudeAdaptiveThinking, r as CLAUDE_SONNET_5_THINKING_PROFILE, s as resolveClaudeModelIdentity, t as CLAUDE_FABLE_5_THINKING_PROFILE, u as resolveClaudeOpus5ModelIdentity } from "./src-QkygScBs.mjs";
1
+ import { a as resolveClaudeFable5ModelIdentity, c as resolveClaudeNativeThinkingLevelMap, d as supportsClaudeNativeMaxEffort, f as supportsClaudeNativeXhighEffort, i as requiresClaudeMandatoryAdaptiveThinking, l as resolveClaudeSonnet5ModelIdentity, n as CLAUDE_SONNET_5_THINKING_PROFILE, o as resolveClaudeModelIdentity, r as requiresClaudeDefaultSampling, s as resolveClaudeMythos5ModelIdentity, t as CLAUDE_FABLE_5_THINKING_PROFILE, u as supportsClaudeAdaptiveThinking } from "./src-CZ503MYJ.mjs";
2
2
  import { i as formatThrownValue, n as createAssistantMessageDiagnostic, r as extractDiagnosticError, t as appendAssistantMessageDiagnostic } from "./diagnostics-COpOtRwq.mjs";
3
- import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-D8n2uFee.mjs";
4
- import { n as validateToolCall, t as validateToolArguments } from "./validation-DAa_yFOM.mjs";
3
+ import { n as EventStream, r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-ReMmOTzX.mjs";
4
+ import { n as validateToolCall, t as validateToolArguments } from "./validation-FrchoOlv.mjs";
5
5
  import { n as createApiRegistry, t as createLlmRuntime } from "./stream-CREqxHgU.mjs";
6
- import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels, t as configureAiTransportHost } from "./host-Dog2WQiR.mjs";
7
- export { AssistantMessageEventStream, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_OPUS_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, EventStream, appendAssistantMessageDiagnostic, configureAiTransportHost, createApiRegistry, createAssistantMessageDiagnostic, createAssistantMessageEventStream, createLlmRuntime, extractDiagnosticError, formatThrownValue, getAiTransportHost, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAiTransportHeaderSentinels, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeOpus5ModelIdentity, resolveClaudeSonnet5ModelIdentity, supportsClaude1MContext, supportsClaudeAdaptiveThinking, supportsClaudeFastMode, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };
6
+ import { n as getAiTransportHost, r as resolveAiTransportHeaderSentinels, t as configureAiTransportHost } from "./host-4t713IeR.mjs";
7
+ export { AssistantMessageEventStream, CLAUDE_FABLE_5_THINKING_PROFILE, CLAUDE_SONNET_5_THINKING_PROFILE, EventStream, appendAssistantMessageDiagnostic, configureAiTransportHost, createApiRegistry, createAssistantMessageDiagnostic, createAssistantMessageEventStream, createLlmRuntime, extractDiagnosticError, formatThrownValue, getAiTransportHost, requiresClaudeDefaultSampling, requiresClaudeMandatoryAdaptiveThinking, resolveAiTransportHeaderSentinels, resolveClaudeFable5ModelIdentity, resolveClaudeModelIdentity, resolveClaudeMythos5ModelIdentity, resolveClaudeNativeThinkingLevelMap, resolveClaudeSonnet5ModelIdentity, supportsClaudeAdaptiveThinking, supportsClaudeNativeMaxEffort, supportsClaudeNativeXhighEffort, validateToolArguments, validateToolCall };