@jeffreycao/copilot-api 1.6.1 → 1.6.3
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/{auth-DAlTk9BR.js → auth-I-jV5RwF.js} +3 -3
- package/dist/{auth-DAlTk9BR.js.map → auth-I-jV5RwF.js.map} +1 -1
- package/dist/{check-usage-B-1bXEu4.js → check-usage-DYLFqYhN.js} +3 -3
- package/dist/{check-usage-B-1bXEu4.js.map → check-usage-DYLFqYhN.js.map} +1 -1
- package/dist/main.js +3 -3
- package/dist/{server-CBnVrsFn.js → server-wOqxNjw_.js} +81 -10
- package/dist/server-wOqxNjw_.js.map +1 -0
- package/dist/{start-CZaoeGeK.js → start-DzdGfvGi.js} +4 -4
- package/dist/{start-CZaoeGeK.js.map → start-DzdGfvGi.js.map} +1 -1
- package/dist/{token-DCEVJpKB.js → token-BINhAFp5.js} +2 -2
- package/dist/{token-DCEVJpKB.js.map → token-BINhAFp5.js.map} +1 -1
- package/dist/{utils-BWikssll.js → utils-C_HZ9gNe.js} +2 -2
- package/dist/{utils-BWikssll.js.map → utils-C_HZ9gNe.js.map} +1 -1
- package/package.json +1 -1
- package/dist/server-CBnVrsFn.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PATHS, ensurePaths } from "./paths-Cla6y5eD.js";
|
|
2
|
-
import { state } from "./utils-
|
|
3
|
-
import { setupGitHubToken } from "./token-
|
|
2
|
+
import { state } from "./utils-C_HZ9gNe.js";
|
|
3
|
+
import { setupGitHubToken } from "./token-BINhAFp5.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
import consola from "consola";
|
|
6
6
|
|
|
@@ -43,4 +43,4 @@ const auth = defineCommand({
|
|
|
43
43
|
|
|
44
44
|
//#endregion
|
|
45
45
|
export { auth };
|
|
46
|
-
//# sourceMappingURL=auth-
|
|
46
|
+
//# sourceMappingURL=auth-I-jV5RwF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-
|
|
1
|
+
{"version":3,"file":"auth-I-jV5RwF.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { PATHS, ensurePaths } from \"./lib/paths\"\nimport { state } from \"./lib/state\"\nimport { setupGitHubToken } from \"./lib/token\"\n\ninterface RunAuthOptions {\n verbose: boolean\n showToken: boolean\n}\n\nexport async function runAuth(options: RunAuthOptions): Promise<void> {\n if (options.verbose) {\n consola.level = 5\n consola.info(\"Verbose logging enabled\")\n }\n\n state.showToken = options.showToken\n\n await ensurePaths()\n await setupGitHubToken({ force: true })\n consola.success(\"GitHub token written to\", PATHS.GITHUB_TOKEN_PATH)\n}\n\nexport const auth = defineCommand({\n meta: {\n name: \"auth\",\n description: \"Run GitHub auth flow without running the server\",\n },\n args: {\n verbose: {\n alias: \"v\",\n type: \"boolean\",\n default: false,\n description: \"Enable verbose logging\",\n },\n \"show-token\": {\n type: \"boolean\",\n default: false,\n description: \"Show GitHub token on auth\",\n },\n },\n run({ args }) {\n return runAuth({\n verbose: args.verbose,\n showToken: args[\"show-token\"],\n })\n },\n})\n"],"mappings":";;;;;;;AAcA,eAAsB,QAAQ,SAAwC;AACpE,KAAI,QAAQ,SAAS;AACnB,UAAQ,QAAQ;AAChB,UAAQ,KAAK,0BAA0B;;AAGzC,OAAM,YAAY,QAAQ;AAE1B,OAAM,aAAa;AACnB,OAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AACvC,SAAQ,QAAQ,2BAA2B,MAAM,kBAAkB;;AAGrE,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM;EACJ,SAAS;GACP,OAAO;GACP,MAAM;GACN,SAAS;GACT,aAAa;GACd;EACD,cAAc;GACZ,MAAM;GACN,SAAS;GACT,aAAa;GACd;EACF;CACD,IAAI,EAAE,QAAQ;AACZ,SAAO,QAAQ;GACb,SAAS,KAAK;GACd,WAAW,KAAK;GACjB,CAAC;;CAEL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ensurePaths } from "./paths-Cla6y5eD.js";
|
|
2
|
-
import { getCopilotUsage } from "./utils-
|
|
3
|
-
import { setupGitHubToken } from "./token-
|
|
2
|
+
import { getCopilotUsage } from "./utils-C_HZ9gNe.js";
|
|
3
|
+
import { setupGitHubToken } from "./token-BINhAFp5.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
import consola from "consola";
|
|
6
6
|
|
|
@@ -41,4 +41,4 @@ const checkUsage = defineCommand({
|
|
|
41
41
|
|
|
42
42
|
//#endregion
|
|
43
43
|
export { checkUsage };
|
|
44
|
-
//# sourceMappingURL=check-usage-
|
|
44
|
+
//# sourceMappingURL=check-usage-DYLFqYhN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-usage-
|
|
1
|
+
{"version":3,"file":"check-usage-DYLFqYhN.js","names":[],"sources":["../src/check-usage.ts"],"sourcesContent":["import { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { ensurePaths } from \"./lib/paths\"\nimport { setupGitHubToken } from \"./lib/token\"\nimport {\n getCopilotUsage,\n type QuotaDetail,\n} from \"./services/github/get-copilot-usage\"\n\nexport const checkUsage = defineCommand({\n meta: {\n name: \"check-usage\",\n description: \"Show current GitHub Copilot usage/quota information\",\n },\n async run() {\n await ensurePaths()\n await setupGitHubToken()\n try {\n const usage = await getCopilotUsage()\n const premium = usage.quota_snapshots.premium_interactions\n const premiumTotal = premium.entitlement\n const premiumUsed = premiumTotal - premium.remaining\n const premiumPercentUsed =\n premiumTotal > 0 ? (premiumUsed / premiumTotal) * 100 : 0\n const premiumPercentRemaining = premium.percent_remaining\n\n // Helper to summarize a quota snapshot\n function summarizeQuota(name: string, snap: QuotaDetail | undefined) {\n if (!snap) return `${name}: N/A`\n const total = snap.entitlement\n const used = total - snap.remaining\n const percentUsed = total > 0 ? (used / total) * 100 : 0\n const percentRemaining = snap.percent_remaining\n return `${name}: ${used}/${total} used (${percentUsed.toFixed(1)}% used, ${percentRemaining.toFixed(1)}% remaining)`\n }\n\n const premiumLine = `Premium: ${premiumUsed}/${premiumTotal} used (${premiumPercentUsed.toFixed(1)}% used, ${premiumPercentRemaining.toFixed(1)}% remaining)`\n const chatLine = summarizeQuota(\"Chat\", usage.quota_snapshots.chat)\n const completionsLine = summarizeQuota(\n \"Completions\",\n usage.quota_snapshots.completions,\n )\n\n consola.box(\n `Copilot Usage (plan: ${usage.copilot_plan})\\n`\n + `Quota resets: ${usage.quota_reset_date}\\n`\n + `\\nQuotas:\\n`\n + ` ${premiumLine}\\n`\n + ` ${chatLine}\\n`\n + ` ${completionsLine}`,\n )\n } catch (err) {\n consola.error(\"Failed to fetch Copilot usage:\", err)\n process.exit(1)\n }\n },\n})\n"],"mappings":";;;;;;;AAUA,MAAa,aAAa,cAAc;CACtC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM,MAAM;AACV,QAAM,aAAa;AACnB,QAAM,kBAAkB;AACxB,MAAI;GACF,MAAM,QAAQ,MAAM,iBAAiB;GACrC,MAAM,UAAU,MAAM,gBAAgB;GACtC,MAAM,eAAe,QAAQ;GAC7B,MAAM,cAAc,eAAe,QAAQ;GAC3C,MAAM,qBACJ,eAAe,IAAK,cAAc,eAAgB,MAAM;GAC1D,MAAM,0BAA0B,QAAQ;GAGxC,SAAS,eAAe,MAAc,MAA+B;AACnE,QAAI,CAAC,KAAM,QAAO,GAAG,KAAK;IAC1B,MAAM,QAAQ,KAAK;IACnB,MAAM,OAAO,QAAQ,KAAK;IAC1B,MAAM,cAAc,QAAQ,IAAK,OAAO,QAAS,MAAM;IACvD,MAAM,mBAAmB,KAAK;AAC9B,WAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,SAAS,YAAY,QAAQ,EAAE,CAAC,UAAU,iBAAiB,QAAQ,EAAE,CAAC;;GAGzG,MAAM,cAAc,YAAY,YAAY,GAAG,aAAa,SAAS,mBAAmB,QAAQ,EAAE,CAAC,UAAU,wBAAwB,QAAQ,EAAE,CAAC;GAChJ,MAAM,WAAW,eAAe,QAAQ,MAAM,gBAAgB,KAAK;GACnE,MAAM,kBAAkB,eACtB,eACA,MAAM,gBAAgB,YACvB;AAED,WAAQ,IACN,wBAAwB,MAAM,aAAa,mBACtB,MAAM,iBAAiB,iBAEnC,YAAY,MACZ,SAAS,MACT,kBACV;WACM,KAAK;AACZ,WAAQ,MAAM,kCAAkC,IAAI;AACpD,WAAQ,KAAK,EAAE;;;CAGpB,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -20,10 +20,10 @@ const args = parseArgs(process.argv, cliArgs);
|
|
|
20
20
|
if (typeof args["api-home"] === "string") process.env.COPILOT_API_HOME = args["api-home"];
|
|
21
21
|
if (typeof args["oauth-app"] === "string") process.env.COPILOT_API_OAUTH_APP = args["oauth-app"];
|
|
22
22
|
if (typeof args["enterprise-url"] === "string") process.env.COPILOT_API_ENTERPRISE_URL = args["enterprise-url"];
|
|
23
|
-
const { auth } = await import("./auth-
|
|
24
|
-
const { checkUsage } = await import("./check-usage-
|
|
23
|
+
const { auth } = await import("./auth-I-jV5RwF.js");
|
|
24
|
+
const { checkUsage } = await import("./check-usage-DYLFqYhN.js");
|
|
25
25
|
const { debug } = await import("./debug-DcC7ZPH0.js");
|
|
26
|
-
const { start } = await import("./start-
|
|
26
|
+
const { start } = await import("./start-DzdGfvGi.js");
|
|
27
27
|
const main = defineCommand({
|
|
28
28
|
meta: {
|
|
29
29
|
name: "copilot-api",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PATHS } from "./paths-Cla6y5eD.js";
|
|
2
|
-
import { COMPACT_AUTO_CONTINUE, COMPACT_REQUEST, HTTPError, cacheModels, compactAutoContinuePromptStarts, compactMessageSections, compactSummaryPromptStart, compactSystemPromptStart, compactTextOnlyGuard, copilotBaseUrl, copilotHeaders, forwardError, generateRequestIdFromPayload, getCopilotUsage, getRootSessionId, getUUID, isNullish, parseUserIdMetadata, prepareForCompact, prepareInteractionHeaders, prepareMessageProxyHeaders, requestContext, resolveTraceId, sleep, state } from "./utils-
|
|
2
|
+
import { COMPACT_AUTO_CONTINUE, COMPACT_REQUEST, HTTPError, cacheModels, compactAutoContinuePromptStarts, compactMessageSections, compactSummaryPromptStart, compactSystemPromptStart, compactTextOnlyGuard, copilotBaseUrl, copilotHeaders, forwardError, generateRequestIdFromPayload, getCopilotUsage, getRootSessionId, getUUID, isNullish, parseUserIdMetadata, prepareForCompact, prepareInteractionHeaders, prepareMessageProxyHeaders, requestContext, resolveTraceId, sleep, state } from "./utils-C_HZ9gNe.js";
|
|
3
3
|
import { getAnthropicApiKey, getClaudeTokenMultiplier, getConfig, getExtraPromptForModel, getProviderConfig, getReasoningEffortForModel, getSmallModel, isMessagesApiEnabled, isResponsesApiContextManagementModel, isResponsesApiWebSearchEnabled } from "./config-D44X0MP1.js";
|
|
4
4
|
import consola from "consola";
|
|
5
5
|
import path from "node:path";
|
|
@@ -756,6 +756,9 @@ function mapContent(content) {
|
|
|
756
756
|
image_url: { url: `data:${block.source.media_type};base64,${block.source.data}` }
|
|
757
757
|
});
|
|
758
758
|
break;
|
|
759
|
+
case "document":
|
|
760
|
+
contentParts.push(createDocumentTextPart());
|
|
761
|
+
break;
|
|
759
762
|
case "tool_reference":
|
|
760
763
|
contentParts.push({
|
|
761
764
|
type: "text",
|
|
@@ -765,6 +768,12 @@ function mapContent(content) {
|
|
|
765
768
|
}
|
|
766
769
|
return contentParts;
|
|
767
770
|
}
|
|
771
|
+
function createDocumentTextPart() {
|
|
772
|
+
return {
|
|
773
|
+
type: "text",
|
|
774
|
+
text: "A PDF document was attached, but this api cannot send PDF inputs directly. Analyze using other tools."
|
|
775
|
+
};
|
|
776
|
+
}
|
|
768
777
|
function translateAnthropicToolsToOpenAI(anthropicTools) {
|
|
769
778
|
if (!anthropicTools) return;
|
|
770
779
|
return anthropicTools.map((tool) => ({
|
|
@@ -1026,7 +1035,7 @@ const translateUserMessage = (message) => {
|
|
|
1026
1035
|
continue;
|
|
1027
1036
|
}
|
|
1028
1037
|
const converted = translateUserContentBlock(block);
|
|
1029
|
-
if (converted) pendingContent.push(converted);
|
|
1038
|
+
if (converted.length > 0) pendingContent.push(...converted);
|
|
1030
1039
|
}
|
|
1031
1040
|
flushPendingContent(pendingContent, items, { role: "user" });
|
|
1032
1041
|
return items;
|
|
@@ -1076,9 +1085,10 @@ const translateAssistantMessage = (message, model, applyPhase) => {
|
|
|
1076
1085
|
};
|
|
1077
1086
|
const translateUserContentBlock = (block) => {
|
|
1078
1087
|
switch (block.type) {
|
|
1079
|
-
case "text": return createTextContent(block.text);
|
|
1080
|
-
case "image": return createImageContent(block);
|
|
1081
|
-
|
|
1088
|
+
case "text": return [createTextContent(block.text)];
|
|
1089
|
+
case "image": return [createImageContent(block)];
|
|
1090
|
+
case "document": return [createFileContent(block)];
|
|
1091
|
+
default: return [];
|
|
1082
1092
|
}
|
|
1083
1093
|
};
|
|
1084
1094
|
const translateAssistantContentBlock = (block) => {
|
|
@@ -1122,6 +1132,11 @@ const createImageContent = (block) => ({
|
|
|
1122
1132
|
image_url: `data:${block.source.media_type};base64,${block.source.data}`,
|
|
1123
1133
|
detail: "auto"
|
|
1124
1134
|
});
|
|
1135
|
+
const createFileContent = (block) => ({
|
|
1136
|
+
type: "input_file",
|
|
1137
|
+
file_data: `data:${block.source.media_type};base64,${block.source.data}`,
|
|
1138
|
+
filename: block.title ?? "document.pdf"
|
|
1139
|
+
});
|
|
1125
1140
|
const createReasoningContent = (block) => {
|
|
1126
1141
|
const { encryptedContent, id } = parseReasoningSignature(block.signature);
|
|
1127
1142
|
const thinking = block.thinking === THINKING_TEXT$1 ? "" : block.thinking;
|
|
@@ -1373,6 +1388,9 @@ const convertToolResultContent = (content) => {
|
|
|
1373
1388
|
case "image":
|
|
1374
1389
|
result.push(createImageContent(block));
|
|
1375
1390
|
break;
|
|
1391
|
+
case "document":
|
|
1392
|
+
result.push(createFileContent(block));
|
|
1393
|
+
break;
|
|
1376
1394
|
case "tool_reference":
|
|
1377
1395
|
result.push(createTextContent(`Tool ${block.tool_name} loaded`));
|
|
1378
1396
|
break;
|
|
@@ -1882,11 +1900,21 @@ const allowedAnthropicBetas = new Set([
|
|
|
1882
1900
|
"context-management-2025-06-27",
|
|
1883
1901
|
ADVANCED_TOOL_USE_BETA
|
|
1884
1902
|
]);
|
|
1885
|
-
const
|
|
1903
|
+
const TOOL_SEARCH_SUPPORTED_MODELS = [
|
|
1904
|
+
"claude-sonnet-4.5",
|
|
1905
|
+
"claude-sonnet-4.6",
|
|
1906
|
+
"claude-opus-4.5",
|
|
1907
|
+
"claude-opus-4.6"
|
|
1908
|
+
];
|
|
1909
|
+
const modelSupportsToolSearch = (modelId) => {
|
|
1910
|
+
return TOOL_SEARCH_SUPPORTED_MODELS.some((prefix) => modelId.toLowerCase().startsWith(prefix));
|
|
1911
|
+
};
|
|
1912
|
+
const buildAnthropicBetaHeader = (anthropicBetaHeader, thinking, model) => {
|
|
1886
1913
|
const isAdaptiveThinking = thinking?.type === "adaptive";
|
|
1887
1914
|
if (anthropicBetaHeader) {
|
|
1888
1915
|
const filteredBeta = anthropicBetaHeader.split(",").map((item) => item.trim()).filter((item) => item.length > 0).filter((item) => allowedAnthropicBetas.has(item));
|
|
1889
|
-
const
|
|
1916
|
+
const copilotHeaderSet = modelSupportsToolSearch(model) ? [ADVANCED_TOOL_USE_BETA] : [];
|
|
1917
|
+
const uniqueFilteredBetas = [...new Set([...copilotHeaderSet, ...filteredBeta])];
|
|
1890
1918
|
if (uniqueFilteredBetas.length > 0) return uniqueFilteredBetas.join(",");
|
|
1891
1919
|
return;
|
|
1892
1920
|
}
|
|
@@ -1909,7 +1937,7 @@ const createMessages = async (payload, anthropicBetaHeader, options) => {
|
|
|
1909
1937
|
prepareForCompact(headers, options.compactType);
|
|
1910
1938
|
const { safetyIdentifier, sessionId } = parseUserIdMetadata(payload.metadata?.user_id);
|
|
1911
1939
|
if (safetyIdentifier && sessionId) prepareMessageProxyHeaders(headers);
|
|
1912
|
-
const anthropicBeta = buildAnthropicBetaHeader(anthropicBetaHeader, payload.thinking);
|
|
1940
|
+
const anthropicBeta = buildAnthropicBetaHeader(anthropicBetaHeader, payload.thinking, payload.model);
|
|
1913
1941
|
if (anthropicBeta) headers["anthropic-beta"] = anthropicBeta;
|
|
1914
1942
|
const response = await fetch(`${copilotBaseUrl(state)}/v1/messages`, {
|
|
1915
1943
|
method: "POST",
|
|
@@ -1979,6 +2007,48 @@ const mergeContentWithTexts = (tr, textBlocks) => {
|
|
|
1979
2007
|
content: [...tr.content, ...textBlocks]
|
|
1980
2008
|
};
|
|
1981
2009
|
};
|
|
2010
|
+
const mergeContentWithAttachments = (tr, attachments) => {
|
|
2011
|
+
if (typeof tr.content === "string") return {
|
|
2012
|
+
...tr,
|
|
2013
|
+
content: [{
|
|
2014
|
+
type: "text",
|
|
2015
|
+
text: tr.content
|
|
2016
|
+
}, ...attachments]
|
|
2017
|
+
};
|
|
2018
|
+
return {
|
|
2019
|
+
...tr,
|
|
2020
|
+
content: [...tr.content, ...attachments]
|
|
2021
|
+
};
|
|
2022
|
+
};
|
|
2023
|
+
const isAttachmentBlock = (block) => {
|
|
2024
|
+
return block.type === "image" || block.type === "document";
|
|
2025
|
+
};
|
|
2026
|
+
const mergeAttachmentsIntoLastToolResult = (content) => {
|
|
2027
|
+
const attachments = content.filter((block) => isAttachmentBlock(block));
|
|
2028
|
+
if (attachments.length === 0) return content;
|
|
2029
|
+
const mergeableToolResultIndices = content.flatMap((block, index) => block.type === "tool_result" && !hasToolRef(block) ? [index] : []);
|
|
2030
|
+
if (mergeableToolResultIndices.length === 0) return content;
|
|
2031
|
+
const attachmentsByToolResultIndex = /* @__PURE__ */ new Map();
|
|
2032
|
+
if (mergeableToolResultIndices.length === attachments.length) for (const [index, toolResultIndex] of mergeableToolResultIndices.entries()) attachmentsByToolResultIndex.set(toolResultIndex, [attachments[index]]);
|
|
2033
|
+
else {
|
|
2034
|
+
const lastToolResultIndex = mergeableToolResultIndices.at(-1);
|
|
2035
|
+
if (lastToolResultIndex === void 0) return content;
|
|
2036
|
+
attachmentsByToolResultIndex.set(lastToolResultIndex, attachments);
|
|
2037
|
+
}
|
|
2038
|
+
const mergedContent = [];
|
|
2039
|
+
for (const [index, block] of content.entries()) {
|
|
2040
|
+
if (isAttachmentBlock(block)) continue;
|
|
2041
|
+
if (block.type === "tool_result") {
|
|
2042
|
+
const matchedAttachments = attachmentsByToolResultIndex.get(index);
|
|
2043
|
+
if (matchedAttachments) {
|
|
2044
|
+
mergedContent.push(mergeContentWithAttachments(block, matchedAttachments));
|
|
2045
|
+
continue;
|
|
2046
|
+
}
|
|
2047
|
+
}
|
|
2048
|
+
mergedContent.push(block);
|
|
2049
|
+
}
|
|
2050
|
+
return mergedContent;
|
|
2051
|
+
};
|
|
1982
2052
|
const mergeToolResult = (toolResults, textBlocks) => {
|
|
1983
2053
|
if (toolResults.length === textBlocks.length) return toolResults.map((tr, i) => mergeContentWithText(tr, textBlocks[i]));
|
|
1984
2054
|
const lastIndex = toolResults.length - 1;
|
|
@@ -1996,6 +2066,7 @@ const mergeToolResultForClaude = (anthropicPayload, options) => {
|
|
|
1996
2066
|
for (const [index, msg] of anthropicPayload.messages.entries()) {
|
|
1997
2067
|
if (options?.skipLastMessage && index === lastMessageIndex) continue;
|
|
1998
2068
|
if (msg.role !== "user" || !Array.isArray(msg.content)) continue;
|
|
2069
|
+
msg.content = mergeAttachmentsIntoLastToolResult(msg.content);
|
|
1999
2070
|
const toolResults = [];
|
|
2000
2071
|
const textBlocks = [];
|
|
2001
2072
|
let valid = true;
|
|
@@ -2012,7 +2083,7 @@ const mergeToolResultForClaude = (anthropicPayload, options) => {
|
|
|
2012
2083
|
const sanitizeIdeTools = (payload) => {
|
|
2013
2084
|
if (!payload.tools || payload.tools.length === 0) return;
|
|
2014
2085
|
payload.tools = payload.tools.flatMap((tool) => {
|
|
2015
|
-
if (tool.name === IDE_EXECUTE_CODE_TOOL) return [];
|
|
2086
|
+
if (tool.name === IDE_EXECUTE_CODE_TOOL && !tool.defer_loading) return [];
|
|
2016
2087
|
if (tool.name === IDE_GET_DIAGNOSTICS_TOOL) return [{
|
|
2017
2088
|
...tool,
|
|
2018
2089
|
description: IDE_GET_DIAGNOSTICS_DESCRIPTION
|
|
@@ -3025,4 +3096,4 @@ server.route("/:provider/v1/models", providerModelRoutes);
|
|
|
3025
3096
|
|
|
3026
3097
|
//#endregion
|
|
3027
3098
|
export { server };
|
|
3028
|
-
//# sourceMappingURL=server-
|
|
3099
|
+
//# sourceMappingURL=server-wOqxNjw_.js.map
|