@copilotkit/runtime 1.77.2 → 1.78.0
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 +16 -0
- package/dist/agent/index.cjs +84 -14
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +4 -3
- package/dist/agent/index.d.cts.map +1 -1
- package/dist/agent/index.d.mts +4 -3
- package/dist/agent/index.d.mts.map +1 -1
- package/dist/agent/index.mjs +84 -14
- package/dist/agent/index.mjs.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/service-adapters/google/google-genai-adapter.cjs +2 -2
- package/dist/service-adapters/google/google-genai-adapter.cjs.map +1 -1
- package/dist/service-adapters/google/google-genai-adapter.mjs +2 -2
- package/dist/service-adapters/google/google-genai-adapter.mjs.map +1 -1
- package/dist/v2/runtime/core/package-info.cjs +1 -1
- package/dist/v2/runtime/core/package-info.mjs +1 -1
- package/dist/v2/runtime/intelligence-platform/client.cjs +37 -7
- package/dist/v2/runtime/intelligence-platform/client.cjs.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.cts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.mts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.mjs +37 -7
- package/dist/v2/runtime/intelligence-platform/client.mjs.map +1 -1
- package/dist/v2/runtime/runner/intelligence.cjs +1 -1
- package/dist/v2/runtime/runner/intelligence.cjs.map +1 -1
- package/dist/v2/runtime/runner/intelligence.d.cts.map +1 -1
- package/dist/v2/runtime/runner/intelligence.d.mts.map +1 -1
- package/dist/v2/runtime/runner/intelligence.mjs +1 -1
- package/dist/v2/runtime/runner/intelligence.mjs.map +1 -1
- package/package.json +3 -3
package/dist/agent/index.d.cts
CHANGED
|
@@ -19,7 +19,7 @@ type OverridableProperty = "model" | "toolChoice" | "maxOutputTokens" | "tempera
|
|
|
19
19
|
/**
|
|
20
20
|
* Supported model identifiers for BuiltInAgent
|
|
21
21
|
*/
|
|
22
|
-
type BuiltInAgentModel = "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-4.1" | "openai/gpt-4.1-mini" | "openai/gpt-4.1-nano" | "openai/gpt-4o" | "openai/gpt-4o-mini" | "openai/o3" | "openai/o3-mini" | "openai/o4-mini" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-opus-4-8" | "anthropic/claude-haiku-4-5" | "google/gemini-
|
|
22
|
+
type BuiltInAgentModel = "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-4.1" | "openai/gpt-4.1-mini" | "openai/gpt-4.1-nano" | "openai/gpt-4o" | "openai/gpt-4o-mini" | "openai/o3" | "openai/o3-mini" | "openai/o4-mini" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-opus-4-8" | "anthropic/claude-haiku-4-5" | "google/gemini-3.8-flash" | "google/gemini-3.5-flash" | "google/gemini-3.5-flash-lite" | "minimax/MiniMax-M3" | "minimax/MiniMax-M2.7" | (string & {});
|
|
23
23
|
/**
|
|
24
24
|
* Model specifier - can be a string like "openai/gpt-4o" or a LanguageModel instance
|
|
25
25
|
*/
|
|
@@ -91,8 +91,9 @@ declare function resolveModel(spec: ModelSpecifier, apiKey?: string): LanguageMo
|
|
|
91
91
|
*
|
|
92
92
|
* `resolveModel` above is the only place this runtime builds a provider, so it
|
|
93
93
|
* is the only place that knows the endpoint. Once built, the endpoint is gone:
|
|
94
|
-
* an AI SDK model
|
|
95
|
-
*
|
|
94
|
+
* an AI SDK model's `provider` names only the wire API (`"openai.responses"`
|
|
95
|
+
* on OpenAI and Azure, `"openai.chat"` on any other host), so it cannot tell
|
|
96
|
+
* OpenRouter from a laptop, and its base URL survives
|
|
96
97
|
* only inside a closure that the public `LanguageModelV3` type does not
|
|
97
98
|
* expose. Azure's own migration guide tells customers to use that same OpenAI
|
|
98
99
|
* client, so the case we are blindest to is the common one.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/agent/index.ts"],"mappings":";;;;;;;;;;;;;;AA8FA;;;KAAY,mBAAA;;AAkBZ;;KAAY,iBAAA;;;AA+BZ;KAAY,cAAA,YAA0B,aAAA;;;;UAKrB,mBAAA;EAAmB;EAElC,IAAA;EAkB8C;;;;;;;;EAT9C,IAAA;EAeiC;EAbjC,GAAA;EA4BgB;;;;;;EArBhB,OAAA,GAAU,oCAAA;AAAA;AA2BZ;;;AAAA,UArBiB,kBAAA;EAqBqD;EAnBpE,IAAA;EA6BgC;;;;;;;;EApBhC,IAAA;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/agent/index.ts"],"mappings":";;;;;;;;;;;;;;AA8FA;;;KAAY,mBAAA;;AAkBZ;;KAAY,iBAAA;;;AA+BZ;KAAY,cAAA,YAA0B,aAAA;;;;UAKrB,mBAAA;EAAmB;EAElC,IAAA;EAkB8C;;;;;;;;EAT9C,IAAA;EAeiC;EAbjC,GAAA;EA4BgB;;;;;;EArBhB,OAAA,GAAU,oCAAA;AAAA;AA2BZ;;;AAAA,UArBiB,kBAAA;EAqBqD;EAnBpE,IAAA;EA6BgC;;;;;;;;EApBhC,IAAA;EA2K0B;EAzK1B,GAAA;EA4Kc;EA1Kd,OAAA,GAAU,MAAA;AAAA;;;;KAMA,eAAA,GAAkB,mBAAA,GAAsB,kBAAA;AAiRpD;;;;;;;;AAAA,UAvQiB,iBAAA;EA6SJ;EA3SX,KAAA,IAAS,OAAA,CAAQ,OAAA;AAAA;AAAA,iBAqJH,YAAA,CACd,IAAA,EAAM,cAAA,EACN,MAAA,YACC,aAAA;;;;;;;;;;;;;AA6JH;;;;;;;;iBAhDgB,iBAAA,CAAkB,IAAA,EAAM,cAAA,GAAiB,cAAA;;;;;;cAsC5C,eAAA,SAAwB,KAAA;EAAA,SACP,UAAA,EAAY,SAAA;cAAZ,UAAA,EAAY,SAAA;AAAA;;;;UASzB,cAAA,qBACK,gBAAA,GAAmB,gBAAA;EAEvC,IAAA;EACA,WAAA;EACA,UAAA,EAAY,WAAA;EAiBZ;;;AAWF;EAvBE,OAAA,IAAW,IAAA,EAAM,iBAAA,CAAkB,WAAA,MAAiB,OAAA;EAuB5B;;;;;;;EAfxB,SAAA;EAuBgB;EArBhB,eAAA;EAayB;EAXzB,gBAAA;AAAA;;;;;;;;;iBAWc,UAAA,qBAA+B,gBAAA,CAAA,CAAkB,MAAA;EAC/D,IAAA;EACA,WAAA;EACA,UAAA,EAAY,WAAA;EACZ,OAAA,IAAW,IAAA,EAAM,iBAAA,CAAkB,WAAA,MAAiB,OAAA;EACpD,SAAA;EACA,eAAA;EACA,gBAAA;AAAA,IACE,cAAA,CAAe,WAAA;;;;UA+JF,wBAAA;EACf,qBAAA;EACA,wBAAA;AAAA;;;;iBAMc,oCAAA,CACd,QAAA,EAAU,OAAA,IACV,OAAA,GAAS,wBAAA,GACR,YAAA;;;;UAgFO,UAAA;EACR,IAAA;EAQA,WAAA;EACA,UAAA,GAAa,MAAA,SAAe,UAAA;EAC5B,QAAA;EACA,KAAA,GAAQ,UAAA;EACR,IAAA;EAIA,KAAA,GAAQ,UAAA;EACR,KAAA,GAAQ,UAAA;AAAA;;;;iBAMM,4BAAA,CACd,UAAA,EAAY,UAAA,EACZ,QAAA,YACC,CAAA,CAAE,SAAA;;iBA2GW,2BAAA,CACd,KAAA,EAAO,aAAA,YACN,OAAA;;;;;;;;iBA+Ca,qCAAA,CACd,KAAA,EAAO,cAAA,KACN,OAAA;;;;UA6Bc,mBAAA;EApMG;EAsMlB,aAAA,EAAe,yBAAA;EACf,KAAA,EAAO,aAAA;EAjMmC;;;;;EAuM1C,eAAA,EAAiB,eAAA;EACjB,WAAA,EAAa,WAAA;EArMV;;;AA2GL;;;;;EAmGE,SAAA,GAAY,UAAA,EAAY,SAAA,OAAgB,OAAA,CAAQ,WAAA;AAAA;;KAItC,0BAAA,GAA6B,mBAAA;AAtDzC;;;;;AAAA,UA6DiB,8BAAA;EA3Dd;EA6DD,aAAA,GAAgB,gCAAA;EAChB,IAAA;EACA,OAAA,GACE,GAAA,EAAK,mBAAA;IAED,UAAA,EAAY,aAAA;EAAA,IACd,OAAA;IAAU,UAAA,EAAY,aAAA;EAAA;AAAA;;;;;UAOX,iCAAA;EA1BgC;EA4B/C,aAAA,GAAgB,gCAAA;EAChB,IAAA;EACA,OAAA,GACE,GAAA,EAAK,mBAAA,KACF,aAAA,YAAyB,OAAA,CAAQ,aAAA;AAAA;;;;UAMvB,+BAAA;EAtCf;EAwCA,aAAA,GAAgB,gCAAA;EAChB,IAAA;EACA,OAAA,GACE,GAAA,EAAK,mBAAA,KACF,aAAA,CAAc,SAAA,IAAa,OAAA,CAAQ,aAAA,CAAc,SAAA;AAAA;;;AAxCxD;KA8CY,yBAAA,GACR,8BAAA,GACA,iCAAA,GACA,+BAAA;;;;UAKa,yBAAA;EA/C8B;EAiD7C,aAAA,GAAgB,gCAAA;EA/CA;;;EAmDhB,KAAA,EAAO,iBAAA,GAAoB,aAAA;EA7CvB;;;;;;;;EAsDJ,MAAA;EAvDM;;;EA2DN,QAAA;EA1D0B;;;EA8D1B,UAAA,GAAa,UAAA,CAAW,MAAA;EAvDwB;;;EA2DhD,eAAA;EArDK;;;EAyDL,WAAA;EAzDqC;;;EA6DrC,IAAA;EA/DA;;;EAmEA,IAAA;EAjE8B;;;EAqE9B,eAAA;EA/De;;;EAmEf,gBAAA;EA9DO;;;EAkEP,aAAA;EAjEwC;;;EAqExC,IAAA;EAzEA;;;EA6EA,UAAA;EA1EO;;;EA8EP,MAAA;EA7EgC;;;EAiFhC,qBAAA,GAAwB,mBAAA;EAjFuC;AAMjE;;EA+EE,UAAA,GAAa,eAAA;EA9EX;;;;;;;;;;AAOJ;EAmFE,UAAA,GAAa,iBAAA;;;;EAIb,KAAA,GAAQ,cAAA;EAhEgB;;;;EAqExB,qBAAA;EALQ;;;;EAUR,wBAAA;EAcsB;;;;EATtB,eAAA,GAAkB,MAAA;EAhGS;;;;;;;;EAyG3B,YAAA,GAAe,OAAA,CAAQ,iBAAA;AAAA;;;;;;;;KAUb,yBAAA,GACR,yBAAA,GACA,yBAAA;AAAA,cAWS,YAAA,SAAqB,aAAA;EAAA,QAmBZ,MAAA;EAAA,QAlBZ,eAAA;EAAA,QACA,aAAA;EAjDR;;;;;;;;;;;AAkCF;;EAlCE,SAgES,cAAA,EAAgB,cAAA;cAEL,MAAA,EAAQ,yBAAA;EA9BD;AAW7B;;EAiCE,WAAA,CAAY,QAAA,EAAU,mBAAA;EAKhB,eAAA,CAAA,GAAmB,OAAA,CAAQ,iBAAA;EA+BjC,GAAA,CAAI,KAAA,EAAO,aAAA,GAAgB,UAAA,CAAW,SAAA;EAAA,QA68B9B,UAAA;EAmQR,KAAA,CAAA,GAAK,YAAA;EAeL,QAAA,CAAA;AAAA;;;;cAQW,UAAA,SAAmB,YAAA;cAClB,MAAA,EAAQ,yBAAA;AAAA;;KAOV,uBAAA,GAA0B,yBAAA"}
|
package/dist/agent/index.d.mts
CHANGED
|
@@ -20,7 +20,7 @@ type OverridableProperty = "model" | "toolChoice" | "maxOutputTokens" | "tempera
|
|
|
20
20
|
/**
|
|
21
21
|
* Supported model identifiers for BuiltInAgent
|
|
22
22
|
*/
|
|
23
|
-
type BuiltInAgentModel = "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-4.1" | "openai/gpt-4.1-mini" | "openai/gpt-4.1-nano" | "openai/gpt-4o" | "openai/gpt-4o-mini" | "openai/o3" | "openai/o3-mini" | "openai/o4-mini" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-opus-4-8" | "anthropic/claude-haiku-4-5" | "google/gemini-
|
|
23
|
+
type BuiltInAgentModel = "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-4.1" | "openai/gpt-4.1-mini" | "openai/gpt-4.1-nano" | "openai/gpt-4o" | "openai/gpt-4o-mini" | "openai/o3" | "openai/o3-mini" | "openai/o4-mini" | "anthropic/claude-sonnet-4-6" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-opus-4-8" | "anthropic/claude-haiku-4-5" | "google/gemini-3.8-flash" | "google/gemini-3.5-flash" | "google/gemini-3.5-flash-lite" | "minimax/MiniMax-M3" | "minimax/MiniMax-M2.7" | (string & {});
|
|
24
24
|
/**
|
|
25
25
|
* Model specifier - can be a string like "openai/gpt-4o" or a LanguageModel instance
|
|
26
26
|
*/
|
|
@@ -92,8 +92,9 @@ declare function resolveModel(spec: ModelSpecifier, apiKey?: string): LanguageMo
|
|
|
92
92
|
*
|
|
93
93
|
* `resolveModel` above is the only place this runtime builds a provider, so it
|
|
94
94
|
* is the only place that knows the endpoint. Once built, the endpoint is gone:
|
|
95
|
-
* an AI SDK model
|
|
96
|
-
*
|
|
95
|
+
* an AI SDK model's `provider` names only the wire API (`"openai.responses"`
|
|
96
|
+
* on OpenAI and Azure, `"openai.chat"` on any other host), so it cannot tell
|
|
97
|
+
* OpenRouter from a laptop, and its base URL survives
|
|
97
98
|
* only inside a closure that the public `LanguageModelV3` type does not
|
|
98
99
|
* expose. Azure's own migration guide tells customers to use that same OpenAI
|
|
99
100
|
* client, so the case we are blindest to is the common one.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/agent/index.ts"],"mappings":";;;;;;;;;;;;;;;;AA8FA;;KAAY,mBAAA;;;AAkBZ;KAAY,iBAAA;;;;KA+BA,cAAA,YAA0B,aAAA;;;;UAKrB,mBAAA;EAAA;EAEf,IAAA;;;;;;;;;EASA,IAAA;EAee;EAbf,GAAA;;;;;;;EAOA,OAAA,GAAU,oCAAA;AAAA;;AA2BZ;;UArBiB,kBAAA;EAqBa;EAnB5B,IAAA;EA6Be;;;;;;;;EApBf,IAAA;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/agent/index.ts"],"mappings":"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"}
|
package/dist/agent/index.mjs
CHANGED
|
@@ -85,20 +85,88 @@ function toolResultOutput(content) {
|
|
|
85
85
|
}] : [], ...media]
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Split a model string into provider and model id. The provider is the text
|
|
90
|
+
* before the FIRST ":" or "/"; everything after it is the model id, unchanged.
|
|
91
|
+
* So "openai:meta-llama/llama-3.3-70b" keeps the slash in its model id, and
|
|
92
|
+
* "openai/ft:gpt-4o-mini:org::id" keeps its colons. Empty strings mean the
|
|
93
|
+
* part is missing.
|
|
94
|
+
*/
|
|
95
|
+
function parseModelSpec(spec) {
|
|
96
|
+
const trimmed = spec.trim();
|
|
97
|
+
const separator = trimmed.search(/[:/]/);
|
|
98
|
+
if (separator === -1) return {
|
|
99
|
+
provider: trimmed.toLowerCase(),
|
|
100
|
+
model: ""
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
provider: trimmed.slice(0, separator).toLowerCase(),
|
|
104
|
+
model: trimmed.slice(separator + 1).trim()
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Whether an `OPENAI_BASE_URL` should get Chat Completions instead of the
|
|
109
|
+
* Responses API. OpenAI's own hosts (including `*.api.openai.com`, such as the
|
|
110
|
+
* EU data-residency host) and Azure serve `/responses`, so they keep it, as
|
|
111
|
+
* does an unset value. Any other host gets `/chat/completions`, which is what
|
|
112
|
+
* most OpenAI-compatible servers implement. The host rule is
|
|
113
|
+
* `classifyModelHost`, the same one telemetry uses.
|
|
114
|
+
*
|
|
115
|
+
* A value `new URL` throws on keeps the Responses route; the request will
|
|
116
|
+
* fail on that base URL either way. A schemeless value such as
|
|
117
|
+
* `localhost:11434/v1` does not throw (it parses with scheme `localhost:` and
|
|
118
|
+
* an empty host), so it classifies as `other` and gets Chat Completions.
|
|
119
|
+
*/
|
|
120
|
+
function usesChatCompletions(baseURL) {
|
|
121
|
+
const trimmed = baseURL?.trim();
|
|
122
|
+
if (!trimmed) return false;
|
|
123
|
+
try {
|
|
124
|
+
new URL(trimmed);
|
|
125
|
+
} catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
const host = classifyModelHost(trimmed, "openai");
|
|
129
|
+
return host !== "openai" && host !== "azure";
|
|
130
|
+
}
|
|
131
|
+
/** Whether the Chat Completions notice below was already logged. */
|
|
132
|
+
let loggedChatCompletionsRoute = false;
|
|
133
|
+
/**
|
|
134
|
+
* Which OpenAI API an `openai/...` model string targets.
|
|
135
|
+
*
|
|
136
|
+
* `COPILOTKIT_OPENAI_API` (`responses` or `chat`) wins when set, so a proxy in
|
|
137
|
+
* front of OpenAI can keep the Responses API, and an OpenAI host can use Chat
|
|
138
|
+
* Completions. Unset or blank, `usesChatCompletions` decides from
|
|
139
|
+
* `OPENAI_BASE_URL`.
|
|
140
|
+
*
|
|
141
|
+
* When that rule picks Chat Completions, this logs once per process. Through a
|
|
142
|
+
* proxy, Chat Completions drops Responses-only features (such as reasoning
|
|
143
|
+
* summaries) without an error, and the notice names the way back.
|
|
144
|
+
*/
|
|
145
|
+
function openAIApiFor(baseURL) {
|
|
146
|
+
const raw = process.env.COPILOTKIT_OPENAI_API;
|
|
147
|
+
const override = raw?.trim().toLowerCase();
|
|
148
|
+
if (override === "responses" || override === "chat") return override;
|
|
149
|
+
if (override) throw new Error(`Invalid COPILOTKIT_OPENAI_API "${raw}". Use "responses" or "chat", or leave it unset.`);
|
|
150
|
+
if (!usesChatCompletions(baseURL)) return "responses";
|
|
151
|
+
if (!loggedChatCompletionsRoute) {
|
|
152
|
+
loggedChatCompletionsRoute = true;
|
|
153
|
+
console.info("[CopilotKit] OPENAI_BASE_URL is not an OpenAI or Azure host, so \"openai/...\" models use the Chat Completions API. To use the Responses API instead, set COPILOTKIT_OPENAI_API=responses.");
|
|
154
|
+
}
|
|
155
|
+
return "chat";
|
|
156
|
+
}
|
|
88
157
|
function resolveModel(spec, apiKey) {
|
|
89
158
|
if (typeof spec !== "string") return spec;
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (!rawProvider) throw new Error(`Invalid model string "${spec}". Use "openai/gpt-5", "anthropic/claude-sonnet-4.5", or "google/gemini-2.5-pro".`);
|
|
94
|
-
const provider = rawProvider.toLowerCase();
|
|
95
|
-
const model = rest.join(":").trim();
|
|
96
|
-
if (!model) throw new Error(`Invalid model string "${spec}". Use "openai/gpt-5", "anthropic/claude-sonnet-4.5", or "google/gemini-2.5-pro".`);
|
|
159
|
+
const { provider, model } = parseModelSpec(spec);
|
|
160
|
+
if (!provider) throw new Error(`Invalid model string "${spec}". Use "openai/gpt-5", "anthropic/claude-sonnet-4.5", or "google/gemini-3.8-flash".`);
|
|
161
|
+
if (!model) throw new Error(`Invalid model string "${spec}". Use "openai/gpt-5", "anthropic/claude-sonnet-4.5", or "google/gemini-3.8-flash".`);
|
|
97
162
|
switch (provider) {
|
|
98
|
-
case "openai":
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
163
|
+
case "openai": {
|
|
164
|
+
const openai = createOpenAI({
|
|
165
|
+
apiKey: apiKey || process.env.OPENAI_API_KEY,
|
|
166
|
+
baseURL: process.env.OPENAI_BASE_URL
|
|
167
|
+
});
|
|
168
|
+
return openAIApiFor(process.env.OPENAI_BASE_URL) === "chat" ? openai.chat(model) : openai(model);
|
|
169
|
+
}
|
|
102
170
|
case "anthropic": return createAnthropic({
|
|
103
171
|
apiKey: apiKey || process.env.ANTHROPIC_API_KEY,
|
|
104
172
|
baseURL: process.env.ANTHROPIC_BASE_URL
|
|
@@ -123,8 +191,9 @@ function resolveModel(spec, apiKey) {
|
|
|
123
191
|
*
|
|
124
192
|
* `resolveModel` above is the only place this runtime builds a provider, so it
|
|
125
193
|
* is the only place that knows the endpoint. Once built, the endpoint is gone:
|
|
126
|
-
* an AI SDK model
|
|
127
|
-
*
|
|
194
|
+
* an AI SDK model's `provider` names only the wire API (`"openai.responses"`
|
|
195
|
+
* on OpenAI and Azure, `"openai.chat"` on any other host), so it cannot tell
|
|
196
|
+
* OpenRouter from a laptop, and its base URL survives
|
|
128
197
|
* only inside a closure that the public `LanguageModelV3` type does not
|
|
129
198
|
* expose. Azure's own migration guide tells customers to use that same OpenAI
|
|
130
199
|
* client, so the case we are blindest to is the common one.
|
|
@@ -139,7 +208,8 @@ function resolveModel(spec, apiKey) {
|
|
|
139
208
|
*/
|
|
140
209
|
function classifyModelSpec(spec) {
|
|
141
210
|
if (typeof spec !== "string") return "unknown";
|
|
142
|
-
|
|
211
|
+
const { provider } = parseModelSpec(spec);
|
|
212
|
+
switch (provider) {
|
|
143
213
|
case "openai": return classifyModelHost(process.env.OPENAI_BASE_URL, "openai");
|
|
144
214
|
case "anthropic": return classifyModelHost(process.env.ANTHROPIC_BASE_URL, "anthropic");
|
|
145
215
|
case "google":
|