@jeffreycao/copilot-api 1.13.4 → 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-DDL0wwno.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,11 +2747,22 @@ const prepareMessagesApiPayload = (payload, selectedModel) => {
2746
2747
  if (reasoningEffort && !reasoningEffort.includes(effort)) effort = reasoningEffort.at(-1);
2747
2748
  payload.output_config = { effort };
2748
2749
  }
2749
- if (!selectedModel?.capabilities.supports.adaptive_thinking && payload.output_config?.effort) {
2750
- const supported = selectedModel?.capabilities.supports.reasoning_effort;
2751
- if (!supported || supported.length === 0) {
2752
- delete payload.output_config.effort;
2753
- if (Object.keys(payload.output_config).length === 0) delete payload.output_config;
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
+ };
2754
2766
  }
2755
2767
  }
2756
2768
  };
@@ -5813,8 +5825,14 @@ const handleWithMessagesApi = async (c, anthropicPayload, options) => {
5813
5825
  if (!data) continue;
5814
5826
  debugLazy(logger, () => ["Messages raw stream event:", data]);
5815
5827
  const parsedEvent = parseAnthropicStreamEvent(data);
5816
- if (parsedEvent?.type === "message_start") usage = mergeAnthropicUsage(usage, normalizeAnthropicUsage(parsedEvent.message.usage));
5817
- 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
+ });
5818
5836
  await stream.writeSSE({
5819
5837
  event: eventName,
5820
5838
  data
@@ -5827,7 +5845,10 @@ const handleWithMessagesApi = async (c, anthropicPayload, options) => {
5827
5845
  value: response,
5828
5846
  tailLength: 400
5829
5847
  });
5830
- recordUsage(normalizeAnthropicUsage(response.usage));
5848
+ recordUsage({
5849
+ ...normalizeAnthropicUsage(response.usage),
5850
+ ...normalizeCopilotUsage(response.copilot_usage)
5851
+ });
5831
5852
  return c.json(response);
5832
5853
  };
5833
5854
  const prepareCopilotChatCompletionsPayload = (payload) => {
@@ -5859,6 +5880,7 @@ const createCopilotUsageRecorder = (options) => createCopilotTokenUsageRecorder(
5859
5880
  sessionId: getMetadataSessionId(options.payload)
5860
5881
  });
5861
5882
  const getMetadataSessionId = (payload) => parseUserIdMetadata(payload.metadata?.user_id).sessionId;
5883
+ const normalizeCopilotUsage = (copilotUsage) => ({ total_nano_aiu: normalizeOptionalToken(copilotUsage?.total_nano_aiu) });
5862
5884
  const parseAnthropicStreamEvent = (data) => {
5863
5885
  try {
5864
5886
  return JSON.parse(data);
@@ -6593,4 +6615,4 @@ server.route("/:provider/v1/models", providerModelRoutes);
6593
6615
  //#endregion
6594
6616
  export { server };
6595
6617
 
6596
- //# sourceMappingURL=server-BzgBFAIx.js.map
6618
+ //# sourceMappingURL=server-Bsnz0tyL.js.map