@jeffreycao/copilot-api 1.13.3 → 1.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -25,7 +25,7 @@ bindElectronFetch();
25
25
  const { auth } = await import("./auth-CtydxYcd.js");
26
26
  const { debug } = await import("./debug-CjJqlHl_.js");
27
27
  const { mcp } = await import("./mcp-BseuqgHR.js");
28
- const { start } = await import("./start-DHjCOvZC.js");
28
+ const { start } = await import("./start-B3gNGDR_.js");
29
29
  await runMain(defineCommand({
30
30
  meta: {
31
31
  name: "copilot-api",
@@ -1292,6 +1292,7 @@ function mergeAnthropicUsage(current, next) {
1292
1292
  cache_read_input_tokens: next.cache_read_input_tokens ?? current.cache_read_input_tokens,
1293
1293
  input_tokens: next.input_tokens ?? current.input_tokens,
1294
1294
  output_tokens: next.output_tokens ?? current.output_tokens,
1295
+ total_nano_aiu: next.total_nano_aiu ?? current.total_nano_aiu,
1295
1296
  total_tokens: next.total_tokens ?? current.total_tokens
1296
1297
  };
1297
1298
  }
@@ -2746,6 +2747,24 @@ const prepareMessagesApiPayload = (payload, selectedModel) => {
2746
2747
  if (reasoningEffort && !reasoningEffort.includes(effort)) effort = reasoningEffort.at(-1);
2747
2748
  payload.output_config = { effort };
2748
2749
  }
2750
+ const modelSupports = selectedModel?.capabilities.supports;
2751
+ if (!modelSupports?.adaptive_thinking) {
2752
+ const reasoningEfforts = modelSupports?.reasoning_effort;
2753
+ if (!reasoningEfforts || reasoningEfforts.length === 0) {
2754
+ if (payload.output_config?.effort) {
2755
+ delete payload.output_config.effort;
2756
+ if (Object.keys(payload.output_config).length === 0) delete payload.output_config;
2757
+ }
2758
+ }
2759
+ if (disableThink) delete payload.thinking;
2760
+ else {
2761
+ const budgetTokens = modelSupports?.max_thinking_budget ?? 4096;
2762
+ if (payload.thinking?.type === "adaptive") payload.thinking = {
2763
+ type: "enabled",
2764
+ budget_tokens: budgetTokens - 1
2765
+ };
2766
+ }
2767
+ }
2749
2768
  };
2750
2769
  //#endregion
2751
2770
  //#region src/routes/provider/messages/count-tokens-handler.ts
@@ -5806,8 +5825,14 @@ const handleWithMessagesApi = async (c, anthropicPayload, options) => {
5806
5825
  if (!data) continue;
5807
5826
  debugLazy(logger, () => ["Messages raw stream event:", data]);
5808
5827
  const parsedEvent = parseAnthropicStreamEvent(data);
5809
- if (parsedEvent?.type === "message_start") usage = mergeAnthropicUsage(usage, normalizeAnthropicUsage(parsedEvent.message.usage));
5810
- else if (parsedEvent?.type === "message_delta") usage = mergeAnthropicUsage(usage, normalizeAnthropicUsage(parsedEvent.usage));
5828
+ if (parsedEvent?.type === "message_start") usage = mergeAnthropicUsage(usage, {
5829
+ ...normalizeAnthropicUsage(parsedEvent.message.usage),
5830
+ ...normalizeCopilotUsage(parsedEvent.message.copilot_usage)
5831
+ });
5832
+ else if (parsedEvent?.type === "message_delta") usage = mergeAnthropicUsage(usage, {
5833
+ ...normalizeAnthropicUsage(parsedEvent.usage),
5834
+ ...normalizeCopilotUsage(parsedEvent.copilot_usage)
5835
+ });
5811
5836
  await stream.writeSSE({
5812
5837
  event: eventName,
5813
5838
  data
@@ -5820,7 +5845,10 @@ const handleWithMessagesApi = async (c, anthropicPayload, options) => {
5820
5845
  value: response,
5821
5846
  tailLength: 400
5822
5847
  });
5823
- recordUsage(normalizeAnthropicUsage(response.usage));
5848
+ recordUsage({
5849
+ ...normalizeAnthropicUsage(response.usage),
5850
+ ...normalizeCopilotUsage(response.copilot_usage)
5851
+ });
5824
5852
  return c.json(response);
5825
5853
  };
5826
5854
  const prepareCopilotChatCompletionsPayload = (payload) => {
@@ -5852,6 +5880,7 @@ const createCopilotUsageRecorder = (options) => createCopilotTokenUsageRecorder(
5852
5880
  sessionId: getMetadataSessionId(options.payload)
5853
5881
  });
5854
5882
  const getMetadataSessionId = (payload) => parseUserIdMetadata(payload.metadata?.user_id).sessionId;
5883
+ const normalizeCopilotUsage = (copilotUsage) => ({ total_nano_aiu: normalizeOptionalToken(copilotUsage?.total_nano_aiu) });
5855
5884
  const parseAnthropicStreamEvent = (data) => {
5856
5885
  try {
5857
5886
  return JSON.parse(data);
@@ -6586,4 +6615,4 @@ server.route("/:provider/v1/models", providerModelRoutes);
6586
6615
  //#endregion
6587
6616
  export { server };
6588
6617
 
6589
- //# sourceMappingURL=server-BXCLiIHf.js.map
6618
+ //# sourceMappingURL=server-Bsnz0tyL.js.map