@jeffreycao/copilot-api 1.10.30 → 1.10.32

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.
@@ -1,5 +1,5 @@
1
- import { _ as setModelMappings, a as getModelMappings, c as getReasoningEffortForModel, d as isResponsesApiContextManagementEnabled, f as isResponsesApiWebSearchEnabled, g as resolveMappedModel, i as getExtraPromptForModel, l as getSmallModel, n as getClaudeTokenMultiplier, o as getProviderConfig, p as isResponsesApiWebSocketEnabled, r as getConfig, s as getRawProviderConfig, t as getAnthropicApiKey, u as isMessagesApiEnabled, y as PATHS } from "./config-BVmeo70f.js";
2
- import { B as forwardError, C as prepareMessageProxyHeaders, E as compactMessageSections, F as createPooledWebSocketStream, I as createWebSocketUrl, M as generateTraceId, N as requestContext, O as compactSystemPromptStarts, P as resolveTraceId$1, R as state, S as prepareInteractionHeaders, T as compactAutoContinuePromptStarts, _ as getCopilotUsage, b as copilotWebSocketHeaders, d as generateRequestIdFromPayload, f as getRootSessionId, g as sleep, h as parseUserIdMetadata, j as forwardCodexResponses, m as isNullish, p as getUUID, r as setupCodexToken, s as cacheModels, v as copilotBaseUrl, x as prepareForCompact, y as copilotHeaders, z as HTTPError } from "./token-BmkxB4rI.js";
1
+ import { _ as resolveMappedModel, a as getModelMappings, b as PATHS, c as getRawProviderConfig, d as isMessagesApiEnabled, f as isResponsesApiContextManagementEnabled, i as getExtraPromptForModel, l as getReasoningEffortForModel, m as isResponsesApiWebSocketEnabled, n as getClaudeTokenMultiplier, o as getModelResponsesApiCompactThreshold$1, p as isResponsesApiWebSearchEnabled, r as getConfig, s as getProviderConfig, t as getAnthropicApiKey, u as getSmallModel, v as setModelMappings } from "./config-CgDUUqnp.js";
2
+ import { B as forwardError, C as prepareMessageProxyHeaders, E as compactMessageSections, F as createPooledWebSocketStream, I as createWebSocketUrl, M as generateTraceId, N as requestContext, O as compactSystemPromptStarts, P as resolveTraceId$1, R as state, S as prepareInteractionHeaders, T as compactAutoContinuePromptStarts, _ as getCopilotUsage, b as copilotWebSocketHeaders, d as generateRequestIdFromPayload, f as getRootSessionId, g as sleep, h as parseUserIdMetadata, j as forwardCodexResponses, m as isNullish, p as getUUID, r as setupCodexToken, s as cacheModels, v as copilotBaseUrl, x as prepareForCompact, y as copilotHeaders, z as HTTPError } from "./token-Cr5nwGMh.js";
3
3
  import { a as isDeferredToolName, c as parseMcpToolSearchSentinel, d as shouldEnableResponsesToolSearch, i as isBridgeToolSearchName, l as resolveBridgeToolSearchName, o as listDeferredToolNames, r as formatToolSearchBridgeArguments, s as normalizeToolSearchBridgeArguments, t as BRIDGE_TOOL_SEARCH_NAME, u as selectDeferredToolsByNames } from "./tool-search-wA-fLduL.js";
4
4
  import consola from "consola";
5
5
  import { createHash } from "node:crypto";
@@ -273,6 +273,36 @@ const createHandlerLogger = (name) => {
273
273
  return instance;
274
274
  };
275
275
  //#endregion
276
+ //#region src/lib/provider-model.ts
277
+ const parseProviderModelAlias = (model) => {
278
+ const separatorIndex = model.indexOf("/");
279
+ if (separatorIndex <= 0 || separatorIndex === model.length - 1) return null;
280
+ const provider = model.slice(0, separatorIndex).trim();
281
+ const providerModel = model.slice(separatorIndex + 1).trim();
282
+ if (!provider || !providerModel) return null;
283
+ return {
284
+ model: providerModel,
285
+ provider
286
+ };
287
+ };
288
+ const createFallbackModel = (modelId) => ({
289
+ capabilities: {
290
+ family: "provider",
291
+ limits: {},
292
+ object: "model_capabilities",
293
+ supports: {},
294
+ tokenizer: "o200k_base",
295
+ type: "chat"
296
+ },
297
+ id: modelId,
298
+ model_picker_enabled: false,
299
+ name: modelId,
300
+ object: "model",
301
+ preview: false,
302
+ vendor: "provider",
303
+ version: "unknown"
304
+ });
305
+ //#endregion
276
306
  //#region src/lib/rate-limit.ts
277
307
  async function checkRateLimit(state) {
278
308
  if (state.rateLimitSeconds === void 0) return;
@@ -920,6 +950,188 @@ function mergeAnthropicUsage(current, next) {
920
950
  };
921
951
  }
922
952
  //#endregion
953
+ //#region src/lib/provider-resolver.ts
954
+ function isMissingCodexCredentialsError(error) {
955
+ return error instanceof Error && error.message === "Codex credentials not found. Run `copilot-api auth login --provider codex` first.";
956
+ }
957
+ async function resolveProviderConfig(providerName) {
958
+ const normalizedProviderName = providerName.trim();
959
+ if (!normalizedProviderName) return null;
960
+ if (normalizedProviderName === "codex") {
961
+ if (getRawProviderConfig(normalizedProviderName)?.enabled === false) return null;
962
+ try {
963
+ await setupCodexToken();
964
+ } catch (error) {
965
+ if (isMissingCodexCredentialsError(error)) return null;
966
+ throw error;
967
+ }
968
+ const providerConfig = getProviderConfig(normalizedProviderName);
969
+ if (!providerConfig) return null;
970
+ return {
971
+ ...providerConfig,
972
+ apiKey: state.codexAccessToken ?? providerConfig.apiKey
973
+ };
974
+ }
975
+ return getProviderConfig(normalizedProviderName);
976
+ }
977
+ //#endregion
978
+ //#region src/services/providers/provider-proxy.ts
979
+ const SHARED_FORWARDABLE_HEADERS = ["accept", "user-agent"];
980
+ const ANTHROPIC_FORWARDABLE_HEADERS = ["anthropic-version", "anthropic-beta"];
981
+ const STRIPPED_RESPONSE_HEADERS = [
982
+ "connection",
983
+ "content-encoding",
984
+ "content-length",
985
+ "keep-alive",
986
+ "proxy-authenticate",
987
+ "proxy-authorization",
988
+ "te",
989
+ "trailer",
990
+ "transfer-encoding",
991
+ "upgrade"
992
+ ];
993
+ function buildProviderUpstreamHeaders(providerConfig, requestHeaders) {
994
+ const authHeaders = {};
995
+ if (providerConfig.authType === "x-api-key") authHeaders["x-api-key"] = providerConfig.apiKey;
996
+ else authHeaders.authorization = `Bearer ${providerConfig.apiKey}`;
997
+ const headers = {
998
+ "content-type": "application/json",
999
+ accept: "application/json",
1000
+ ...authHeaders
1001
+ };
1002
+ for (const headerName of SHARED_FORWARDABLE_HEADERS) {
1003
+ const headerValue = requestHeaders.get(headerName);
1004
+ if (headerValue) headers[headerName] = headerValue;
1005
+ }
1006
+ if (providerConfig.type !== "anthropic") return headers;
1007
+ for (const headerName of ANTHROPIC_FORWARDABLE_HEADERS) {
1008
+ const headerValue = requestHeaders.get(headerName);
1009
+ if (headerValue) headers[headerName] = headerValue;
1010
+ }
1011
+ return headers;
1012
+ }
1013
+ function createProviderProxyResponse(upstreamResponse, body) {
1014
+ const headers = new Headers(upstreamResponse.headers);
1015
+ for (const headerName of STRIPPED_RESPONSE_HEADERS) headers.delete(headerName);
1016
+ return new Response(body ?? upstreamResponse.body, {
1017
+ headers,
1018
+ status: upstreamResponse.status,
1019
+ statusText: upstreamResponse.statusText
1020
+ });
1021
+ }
1022
+ async function forwardProviderMessages(providerConfig, payload, requestHeaders) {
1023
+ return await fetch(`${providerConfig.baseUrl}/v1/messages`, {
1024
+ method: "POST",
1025
+ headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders),
1026
+ body: JSON.stringify(payload)
1027
+ });
1028
+ }
1029
+ async function forwardProviderChatCompletions(providerConfig, payload, requestHeaders) {
1030
+ return await fetch(`${providerConfig.baseUrl}/v1/chat/completions`, {
1031
+ method: "POST",
1032
+ headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders),
1033
+ body: JSON.stringify(payload)
1034
+ });
1035
+ }
1036
+ async function forwardProviderResponses(providerConfig, payload, requestHeaders) {
1037
+ return await fetch(`${providerConfig.baseUrl}/v1/responses`, {
1038
+ method: "POST",
1039
+ headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders),
1040
+ body: JSON.stringify(payload)
1041
+ });
1042
+ }
1043
+ async function forwardProviderModels(providerConfig, requestHeaders) {
1044
+ return await fetch(`${providerConfig.baseUrl}/v1/models`, {
1045
+ method: "GET",
1046
+ headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders)
1047
+ });
1048
+ }
1049
+ //#endregion
1050
+ //#region src/routes/provider/chat-completions/handler.ts
1051
+ const logger$8 = createHandlerLogger("provider-chat-completions-handler");
1052
+ async function handleProviderChatCompletionsForProvider(c, options) {
1053
+ const { payload, provider } = options;
1054
+ const providerConfig = await resolveProviderConfig(provider);
1055
+ if (providerConfig?.type !== "openai-compatible") return c.json({ error: {
1056
+ message: `Provider '${provider}' does not support the /v1/chat/completions endpoint`,
1057
+ type: "invalid_request_error"
1058
+ } }, 400);
1059
+ const modelConfig = providerConfig.models?.[payload.model];
1060
+ applyProviderModelDefaults(payload, modelConfig);
1061
+ applyMissingExtraBody$1(payload, { extraBody: modelConfig?.extraBody });
1062
+ applyProviderStreamOptions(payload);
1063
+ debugJson(logger$8, "provider.chat_completions.request", {
1064
+ payload,
1065
+ provider
1066
+ });
1067
+ const upstreamResponse = await forwardProviderChatCompletions(providerConfig, payload, c.req.raw.headers);
1068
+ if (!upstreamResponse.ok) {
1069
+ logger$8.error("Failed to create provider chat completions", {
1070
+ provider,
1071
+ statusCode: upstreamResponse.status
1072
+ });
1073
+ throw new HTTPError(`Failed to create ${provider} chat completions`, upstreamResponse);
1074
+ }
1075
+ const recordUsage = createProviderChatCompletionsUsageRecorder(payload, provider);
1076
+ const contentType = upstreamResponse.headers.get("content-type") ?? "";
1077
+ if (Boolean(payload.stream) && contentType.includes("text/event-stream")) return streamProviderChatCompletions(c, upstreamResponse, {
1078
+ provider,
1079
+ recordUsage
1080
+ });
1081
+ const responseBody = await upstreamResponse.clone().json();
1082
+ recordUsage(normalizeOpenAIUsage(responseBody.usage));
1083
+ debugJson(logger$8, "provider.chat_completions.response", responseBody);
1084
+ return createProviderProxyResponse(upstreamResponse);
1085
+ }
1086
+ const applyProviderModelDefaults = (payload, modelConfig) => {
1087
+ payload.temperature ??= modelConfig?.temperature;
1088
+ payload.top_p ??= modelConfig?.topP;
1089
+ payload.top_k ??= modelConfig?.topK;
1090
+ };
1091
+ const applyMissingExtraBody$1 = (payload, options) => {
1092
+ for (const [key, value] of Object.entries(options.extraBody ?? {})) if (!Object.hasOwn(payload, key)) payload[key] = value;
1093
+ };
1094
+ const applyProviderStreamOptions = (payload) => {
1095
+ if (!payload.stream) return;
1096
+ payload.stream_options = {
1097
+ ...payload.stream_options ?? {},
1098
+ include_usage: true
1099
+ };
1100
+ };
1101
+ const createProviderChatCompletionsUsageRecorder = (payload, provider) => createProviderTokenUsageRecorder({
1102
+ endpoint: "chat_completions",
1103
+ model: payload.model,
1104
+ providerName: provider
1105
+ });
1106
+ const streamProviderChatCompletions = (c, upstreamResponse, options) => {
1107
+ logger$8.debug("provider.chat_completions.streaming", { provider: options.provider });
1108
+ return streamSSE(c, async (stream) => {
1109
+ let usage = {};
1110
+ try {
1111
+ for await (const chunk of events(upstreamResponse)) {
1112
+ debugJson(logger$8, "provider.chat_completions.stream_chunk", chunk);
1113
+ if (chunk.data && chunk.data !== "[DONE]") {
1114
+ const parsedChunk = parseChatCompletionChunkData(chunk.data);
1115
+ if (parsedChunk?.usage) usage = normalizeOpenAIUsage(parsedChunk.usage);
1116
+ }
1117
+ await stream.writeSSE({
1118
+ event: chunk.event,
1119
+ data: chunk.data ?? ""
1120
+ });
1121
+ }
1122
+ } finally {
1123
+ options.recordUsage(usage);
1124
+ }
1125
+ });
1126
+ };
1127
+ const parseChatCompletionChunkData = (data) => {
1128
+ try {
1129
+ return JSON.parse(data);
1130
+ } catch {
1131
+ return null;
1132
+ }
1133
+ };
1134
+ //#endregion
923
1135
  //#region src/lib/copilot-rate-limit.ts
924
1136
  const copilotRateLimitTypes = ["session", "weekly"];
925
1137
  const copilotRateLimitHeaders = {
@@ -1029,12 +1241,17 @@ async function handleCompletion$1(c) {
1029
1241
  let payload = await c.req.json();
1030
1242
  const requestedModel = payload.model;
1031
1243
  payload.model = resolveMappedModel(payload.model);
1032
- if (payload.model !== requestedModel) logger$7.debug(`Resolved model mapping: ${requestedModel} -> ${payload.model}`);
1244
+ if (payload.model !== requestedModel) consola.debug(`Resolved model mapping: ${requestedModel} -> ${payload.model}`);
1245
+ const providerModelAlias = parseProviderModelAlias(payload.model);
1246
+ if (providerModelAlias) {
1247
+ payload.model = providerModelAlias.model;
1248
+ return await handleProviderChatCompletionsForProvider(c, {
1249
+ payload,
1250
+ provider: providerModelAlias.provider
1251
+ });
1252
+ }
1033
1253
  await checkRateLimit(state);
1034
- debugJsonTail(logger$7, "Request payload:", {
1035
- value: payload,
1036
- tailLength: 400
1037
- });
1254
+ debugJson(logger$7, "Request payload:", payload);
1038
1255
  const selectedModel = state.models?.data.find((model) => model.id === payload.model);
1039
1256
  if (selectedModel?.id === "gpt-5.4") return c.json({ error: {
1040
1257
  message: "Please use `/v1/responses` or `/v1/messages` API",
@@ -1156,36 +1373,6 @@ embeddingRoutes.post("/", async (c) => {
1156
1373
  }
1157
1374
  });
1158
1375
  //#endregion
1159
- //#region src/lib/provider-model.ts
1160
- const parseProviderModelAlias = (model) => {
1161
- const separatorIndex = model.indexOf("/");
1162
- if (separatorIndex <= 0 || separatorIndex === model.length - 1) return null;
1163
- const provider = model.slice(0, separatorIndex).trim();
1164
- const providerModel = model.slice(separatorIndex + 1).trim();
1165
- if (!provider || !providerModel) return null;
1166
- return {
1167
- model: providerModel,
1168
- provider
1169
- };
1170
- };
1171
- const createFallbackModel = (modelId) => ({
1172
- capabilities: {
1173
- family: "provider",
1174
- limits: {},
1175
- object: "model_capabilities",
1176
- supports: {},
1177
- tokenizer: "o200k_base",
1178
- type: "chat"
1179
- },
1180
- id: modelId,
1181
- model_picker_enabled: false,
1182
- name: modelId,
1183
- object: "model",
1184
- preview: false,
1185
- vendor: "provider",
1186
- version: "unknown"
1187
- });
1188
- //#endregion
1189
1376
  //#region src/lib/tokenizer.ts
1190
1377
  const ENCODING_MAP = {
1191
1378
  o200k_base: () => import("gpt-tokenizer/encoding/o200k_base"),
@@ -1403,31 +1590,6 @@ const getTokenCount = async (payload, model) => {
1403
1590
  };
1404
1591
  };
1405
1592
  //#endregion
1406
- //#region src/lib/provider-resolver.ts
1407
- function isMissingCodexCredentialsError(error) {
1408
- return error instanceof Error && error.message === "Codex credentials not found. Run `copilot-api auth login --provider codex` first.";
1409
- }
1410
- async function resolveProviderConfig(providerName) {
1411
- const normalizedProviderName = providerName.trim();
1412
- if (!normalizedProviderName) return null;
1413
- if (normalizedProviderName === "codex") {
1414
- if (getRawProviderConfig(normalizedProviderName)?.enabled === false) return null;
1415
- try {
1416
- await setupCodexToken();
1417
- } catch (error) {
1418
- if (isMissingCodexCredentialsError(error)) return null;
1419
- throw error;
1420
- }
1421
- const providerConfig = getProviderConfig(normalizedProviderName);
1422
- if (!providerConfig) return null;
1423
- return {
1424
- ...providerConfig,
1425
- apiKey: state.codexAccessToken ?? providerConfig.apiKey
1426
- };
1427
- }
1428
- return getProviderConfig(normalizedProviderName);
1429
- }
1430
- //#endregion
1431
1593
  //#region src/routes/messages/utils.ts
1432
1594
  function mapOpenAIStopReasonToAnthropic(finishReason) {
1433
1595
  if (finishReason === null) return null;
@@ -3806,6 +3968,7 @@ const stringifyToolSearchArguments = (argumentsValue) => {
3806
3968
  };
3807
3969
  const DEFAULT_RESPONSES_COMPACT_THRESHOLD_RATIO = .9;
3808
3970
  const responsesUtilsDependencies = {
3971
+ getModelResponsesApiCompactThreshold: getModelResponsesApiCompactThreshold$1,
3809
3972
  isResponsesApiContextManagementEnabled,
3810
3973
  isResponsesApiWebSocketEnabled
3811
3974
  };
@@ -3909,6 +4072,11 @@ const resolveResponsesCompactThreshold = (maxPromptTokens, compactThresholdRatio
3909
4072
  if (typeof maxPromptTokens === "number" && maxPromptTokens > 0) return Math.floor(maxPromptTokens * compactThresholdRatio);
3910
4073
  return 2e5 * compactThresholdRatio;
3911
4074
  };
4075
+ const getModelResponsesApiCompactThreshold = (model) => {
4076
+ const threshold = responsesUtilsDependencies.getModelResponsesApiCompactThreshold(model);
4077
+ if (typeof threshold !== "number" || !Number.isFinite(threshold) || threshold <= 0) return;
4078
+ return threshold;
4079
+ };
3912
4080
  const createCompactionContextManagement = (compactThreshold) => [{
3913
4081
  type: "compaction",
3914
4082
  compact_threshold: compactThreshold
@@ -3916,7 +4084,7 @@ const createCompactionContextManagement = (compactThreshold) => [{
3916
4084
  const applyResponsesApiContextManagement = (payload, maxPromptTokens, compactThresholdRatio = DEFAULT_RESPONSES_COMPACT_THRESHOLD_RATIO) => {
3917
4085
  if (payload.context_management !== void 0) return;
3918
4086
  if (!responsesUtilsDependencies.isResponsesApiContextManagementEnabled()) return;
3919
- payload.context_management = createCompactionContextManagement(resolveResponsesCompactThreshold(maxPromptTokens, compactThresholdRatio));
4087
+ payload.context_management = createCompactionContextManagement(getModelResponsesApiCompactThreshold(payload.model) ?? resolveResponsesCompactThreshold(maxPromptTokens, compactThresholdRatio));
3920
4088
  };
3921
4089
  const compactInputByLatestCompaction = (payload) => {
3922
4090
  if (!Array.isArray(payload.input) || payload.input.length === 0) return;
@@ -4022,78 +4190,6 @@ function getModels() {
4022
4190
  };
4023
4191
  }
4024
4192
  //#endregion
4025
- //#region src/services/providers/provider-proxy.ts
4026
- const SHARED_FORWARDABLE_HEADERS = ["accept", "user-agent"];
4027
- const ANTHROPIC_FORWARDABLE_HEADERS = ["anthropic-version", "anthropic-beta"];
4028
- const STRIPPED_RESPONSE_HEADERS = [
4029
- "connection",
4030
- "content-encoding",
4031
- "content-length",
4032
- "keep-alive",
4033
- "proxy-authenticate",
4034
- "proxy-authorization",
4035
- "te",
4036
- "trailer",
4037
- "transfer-encoding",
4038
- "upgrade"
4039
- ];
4040
- function buildProviderUpstreamHeaders(providerConfig, requestHeaders) {
4041
- const authHeaders = {};
4042
- if (providerConfig.authType === "x-api-key") authHeaders["x-api-key"] = providerConfig.apiKey;
4043
- else authHeaders.authorization = `Bearer ${providerConfig.apiKey}`;
4044
- const headers = {
4045
- "content-type": "application/json",
4046
- accept: "application/json",
4047
- ...authHeaders
4048
- };
4049
- for (const headerName of SHARED_FORWARDABLE_HEADERS) {
4050
- const headerValue = requestHeaders.get(headerName);
4051
- if (headerValue) headers[headerName] = headerValue;
4052
- }
4053
- if (providerConfig.type !== "anthropic") return headers;
4054
- for (const headerName of ANTHROPIC_FORWARDABLE_HEADERS) {
4055
- const headerValue = requestHeaders.get(headerName);
4056
- if (headerValue) headers[headerName] = headerValue;
4057
- }
4058
- return headers;
4059
- }
4060
- function createProviderProxyResponse(upstreamResponse, body) {
4061
- const headers = new Headers(upstreamResponse.headers);
4062
- for (const headerName of STRIPPED_RESPONSE_HEADERS) headers.delete(headerName);
4063
- return new Response(body ?? upstreamResponse.body, {
4064
- headers,
4065
- status: upstreamResponse.status,
4066
- statusText: upstreamResponse.statusText
4067
- });
4068
- }
4069
- async function forwardProviderMessages(providerConfig, payload, requestHeaders) {
4070
- return await fetch(`${providerConfig.baseUrl}/v1/messages`, {
4071
- method: "POST",
4072
- headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders),
4073
- body: JSON.stringify(payload)
4074
- });
4075
- }
4076
- async function forwardProviderChatCompletions(providerConfig, payload, requestHeaders) {
4077
- return await fetch(`${providerConfig.baseUrl}/v1/chat/completions`, {
4078
- method: "POST",
4079
- headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders),
4080
- body: JSON.stringify(payload)
4081
- });
4082
- }
4083
- async function forwardProviderResponses(providerConfig, payload, requestHeaders) {
4084
- return await fetch(`${providerConfig.baseUrl}/v1/responses`, {
4085
- method: "POST",
4086
- headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders),
4087
- body: JSON.stringify(payload)
4088
- });
4089
- }
4090
- async function forwardProviderModels(providerConfig, requestHeaders) {
4091
- return await fetch(`${providerConfig.baseUrl}/v1/models`, {
4092
- method: "GET",
4093
- headers: buildProviderUpstreamHeaders(providerConfig, requestHeaders)
4094
- });
4095
- }
4096
- //#endregion
4097
4193
  //#region src/routes/provider/messages/handler.ts
4098
4194
  const logger$5 = createHandlerLogger("provider-messages-handler");
4099
4195
  const OPENAI_COMPATIBLE_CONTEXT_CACHE_MARKER_LIMIT = 4;
@@ -4877,7 +4973,7 @@ async function handleCompletion(c) {
4877
4973
  const anthropicPayload = await c.req.json();
4878
4974
  const requestedModel = anthropicPayload.model;
4879
4975
  anthropicPayload.model = resolveMappedModel(anthropicPayload.model);
4880
- if (anthropicPayload.model !== requestedModel) logger$4.debug(`Resolved model mapping: ${requestedModel} -> ${anthropicPayload.model}`);
4976
+ if (anthropicPayload.model !== requestedModel) consola.debug(`Resolved model mapping: ${requestedModel} -> ${anthropicPayload.model}`);
4881
4977
  const providerModelAlias = parseProviderModelAlias(anthropicPayload.model);
4882
4978
  if (providerModelAlias) {
4883
4979
  anthropicPayload.model = providerModelAlias.model;
@@ -5195,7 +5291,7 @@ const handleResponses = async (c) => {
5195
5291
  const payload = await c.req.json();
5196
5292
  const requestedModel = payload.model;
5197
5293
  payload.model = resolveMappedModel(payload.model);
5198
- if (payload.model !== requestedModel) logger$1.debug(`Resolved model mapping: ${requestedModel} -> ${payload.model}`);
5294
+ if (payload.model !== requestedModel) consola.debug(`Resolved model mapping: ${requestedModel} -> ${payload.model}`);
5199
5295
  const providerModelAlias = parseProviderModelAlias(payload.model);
5200
5296
  if (providerModelAlias) {
5201
5297
  payload.model = providerModelAlias.model;
@@ -5437,4 +5533,4 @@ server.route("/:provider/v1/models", providerModelRoutes);
5437
5533
  //#endregion
5438
5534
  export { server };
5439
5535
 
5440
- //# sourceMappingURL=server--Ep7172f.js.map
5536
+ //# sourceMappingURL=server-DD7IeSJq.js.map