@jeffreycao/copilot-api 1.10.9 → 1.10.10
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 -13
- package/README.zh-CN.md +16 -13
- package/dist/auth-CeZtnQE_.js +116 -0
- package/dist/auth-CeZtnQE_.js.map +1 -0
- package/dist/{check-usage-BdXGp1Wr.js → check-usage-CTShKCvR.js} +3 -4
- package/dist/{check-usage-BdXGp1Wr.js.map → check-usage-CTShKCvR.js.map} +1 -1
- package/dist/{proxy-DvlF9a-7.js → config-ztdkLu9o.js} +83 -70
- package/dist/config-ztdkLu9o.js.map +1 -0
- package/dist/{debug-C_TBkyUw.js → debug-BVHmoCzY.js} +17 -7
- package/dist/debug-BVHmoCzY.js.map +1 -0
- package/dist/main.js +5 -5
- package/dist/{mcp-CTb-DbQH.js → mcp-DZgcvqQY.js} +2 -2
- package/dist/{mcp-CTb-DbQH.js.map → mcp-DZgcvqQY.js.map} +1 -1
- package/dist/{server-FPXzFkg9.js → server-D5O9IzAY.js} +1773 -1692
- package/dist/server-D5O9IzAY.js.map +1 -0
- package/dist/{start-CbKg_0bY.js → start-BhPxHgu8.js} +4 -6
- package/dist/{start-CbKg_0bY.js.map → start-BhPxHgu8.js.map} +1 -1
- package/dist/token-1SfgxCRm.js +1875 -0
- package/dist/token-1SfgxCRm.js.map +1 -0
- package/dist/{tool-search-D3SN0jX-.js → tool-search-wA-fLduL.js} +1 -1
- package/dist/{tool-search-D3SN0jX-.js.map → tool-search-wA-fLduL.js.map} +1 -1
- package/package.json +2 -2
- package/dist/auth-BHa2OHXf.js +0 -45
- package/dist/auth-BHa2OHXf.js.map +0 -1
- package/dist/debug-C_TBkyUw.js.map +0 -1
- package/dist/paths-DC-mqCY3.js +0 -30
- package/dist/paths-DC-mqCY3.js.map +0 -1
- package/dist/proxy-DvlF9a-7.js.map +0 -1
- package/dist/server-FPXzFkg9.js.map +0 -1
- package/dist/token-Dj8XsAxn.js +0 -170
- package/dist/token-Dj8XsAxn.js.map +0 -1
- package/dist/utils-jHLgqAq2.js +0 -657
- package/dist/utils-jHLgqAq2.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m as listEnabledProviders, s as getRawProviderConfig, y as PATHS } from "./config-ztdkLu9o.js";
|
|
2
2
|
import { defineCommand } from "citty";
|
|
3
3
|
import consola from "consola";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
@@ -22,21 +22,26 @@ function getRuntimeInfo() {
|
|
|
22
22
|
arch: os.arch()
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
async function
|
|
25
|
+
async function checkFileExists(filePath) {
|
|
26
26
|
try {
|
|
27
|
-
if (!(await fs.stat(
|
|
28
|
-
return (await fs.readFile(
|
|
27
|
+
if (!(await fs.stat(filePath)).isFile()) return false;
|
|
28
|
+
return (await fs.readFile(filePath, "utf8")).trim().length > 0;
|
|
29
29
|
} catch {
|
|
30
30
|
return false;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
async function getDebugInfo() {
|
|
34
|
-
const [version, tokenExists] = await Promise.all([getPackageVersion(),
|
|
34
|
+
const [version, tokenExists] = await Promise.all([getPackageVersion(), checkFileExists(PATHS.GITHUB_TOKEN_PATH)]);
|
|
35
35
|
return {
|
|
36
|
+
providers: {
|
|
37
|
+
codexConfigured: getRawProviderConfig("codex") !== null,
|
|
38
|
+
enabled: listEnabledProviders()
|
|
39
|
+
},
|
|
36
40
|
version,
|
|
37
41
|
runtime: getRuntimeInfo(),
|
|
38
42
|
paths: {
|
|
39
43
|
APP_DIR: PATHS.APP_DIR,
|
|
44
|
+
CONFIG_PATH: PATHS.CONFIG_PATH,
|
|
40
45
|
GITHUB_TOKEN_PATH: PATHS.GITHUB_TOKEN_PATH
|
|
41
46
|
},
|
|
42
47
|
tokenExists
|
|
@@ -48,11 +53,16 @@ function printDebugInfoPlain(info) {
|
|
|
48
53
|
Version: ${info.version}
|
|
49
54
|
Runtime: ${info.runtime.name} ${info.runtime.version} (${info.runtime.platform} ${info.runtime.arch})
|
|
50
55
|
|
|
56
|
+
Providers:
|
|
57
|
+
- enabled: ${info.providers.enabled.join(", ") || "none"}
|
|
58
|
+
- codex configured: ${info.providers.codexConfigured ? "Yes" : "No"}
|
|
59
|
+
|
|
51
60
|
Paths:
|
|
52
61
|
- APP_DIR: ${info.paths.APP_DIR}
|
|
62
|
+
- CONFIG_PATH: ${info.paths.CONFIG_PATH}
|
|
53
63
|
- GITHUB_TOKEN_PATH: ${info.paths.GITHUB_TOKEN_PATH}
|
|
54
64
|
|
|
55
|
-
|
|
65
|
+
GitHub token exists: ${info.tokenExists ? "Yes" : "No"}`);
|
|
56
66
|
}
|
|
57
67
|
function printDebugInfoJson(info) {
|
|
58
68
|
console.log(JSON.stringify(info, null, 2));
|
|
@@ -79,4 +89,4 @@ const debug = defineCommand({
|
|
|
79
89
|
//#endregion
|
|
80
90
|
export { debug };
|
|
81
91
|
|
|
82
|
-
//# sourceMappingURL=debug-
|
|
92
|
+
//# sourceMappingURL=debug-BVHmoCzY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-BVHmoCzY.js","names":[],"sources":["../src/debug.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand } from \"citty\"\nimport consola from \"consola\"\nimport fs from \"node:fs/promises\"\nimport os from \"node:os\"\nimport { fileURLToPath } from \"node:url\"\n\nimport { getRawProviderConfig, listEnabledProviders } from \"./lib/config\"\nimport { PATHS } from \"./lib/paths\"\n\ninterface DebugInfo {\n providers: {\n codexConfigured: boolean\n enabled: Array<string>\n }\n version: string\n runtime: {\n name: string\n version: string\n platform: string\n arch: string\n }\n paths: {\n APP_DIR: string\n CONFIG_PATH: string\n GITHUB_TOKEN_PATH: string\n }\n tokenExists: boolean\n}\n\ninterface RunDebugOptions {\n json: boolean\n}\n\nasync function getPackageVersion(): Promise<string> {\n try {\n const packageJsonPath = fileURLToPath(\n new URL(\"../package.json\", import.meta.url),\n )\n // @ts-expect-error https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v59.0.1/docs/rules/prefer-json-parse-buffer.md\n // JSON.parse() can actually parse buffers\n const packageJson = JSON.parse(await fs.readFile(packageJsonPath)) as {\n version: string\n }\n return packageJson.version\n } catch {\n return \"unknown\"\n }\n}\n\nfunction getRuntimeInfo() {\n const isBun = typeof Bun !== \"undefined\"\n\n return {\n name: isBun ? \"bun\" : \"node\",\n version: isBun ? Bun.version : process.version.slice(1),\n platform: os.platform(),\n arch: os.arch(),\n }\n}\n\nasync function checkFileExists(filePath: string): Promise<boolean> {\n try {\n const stats = await fs.stat(filePath)\n if (!stats.isFile()) return false\n\n const content = await fs.readFile(filePath, \"utf8\")\n return content.trim().length > 0\n } catch {\n return false\n }\n}\n\nasync function getDebugInfo(): Promise<DebugInfo> {\n const [version, tokenExists] = await Promise.all([\n getPackageVersion(),\n checkFileExists(PATHS.GITHUB_TOKEN_PATH),\n ])\n\n return {\n providers: {\n codexConfigured: getRawProviderConfig(\"codex\") !== null,\n enabled: listEnabledProviders(),\n },\n version,\n runtime: getRuntimeInfo(),\n paths: {\n APP_DIR: PATHS.APP_DIR,\n CONFIG_PATH: PATHS.CONFIG_PATH,\n GITHUB_TOKEN_PATH: PATHS.GITHUB_TOKEN_PATH,\n },\n tokenExists,\n }\n}\n\nfunction printDebugInfoPlain(info: DebugInfo): void {\n consola.info(`copilot-api debug\n\nVersion: ${info.version}\nRuntime: ${info.runtime.name} ${info.runtime.version} (${info.runtime.platform} ${info.runtime.arch})\n\nProviders:\n- enabled: ${info.providers.enabled.join(\", \") || \"none\"}\n- codex configured: ${info.providers.codexConfigured ? \"Yes\" : \"No\"}\n\nPaths:\n- APP_DIR: ${info.paths.APP_DIR}\n- CONFIG_PATH: ${info.paths.CONFIG_PATH}\n- GITHUB_TOKEN_PATH: ${info.paths.GITHUB_TOKEN_PATH}\n\nGitHub token exists: ${info.tokenExists ? \"Yes\" : \"No\"}`)\n}\n\nfunction printDebugInfoJson(info: DebugInfo): void {\n console.log(JSON.stringify(info, null, 2))\n}\n\nexport async function runDebug(options: RunDebugOptions): Promise<void> {\n const debugInfo = await getDebugInfo()\n\n if (options.json) {\n printDebugInfoJson(debugInfo)\n } else {\n printDebugInfoPlain(debugInfo)\n }\n}\n\nexport const debug = defineCommand({\n meta: {\n name: \"debug\",\n description: \"Print debug information about the application\",\n },\n args: {\n json: {\n type: \"boolean\",\n default: false,\n description: \"Output debug information as JSON\",\n },\n },\n run({ args }) {\n return runDebug({\n json: args.json,\n })\n },\n})\n"],"mappings":";;;;;;;AAmCA,eAAe,oBAAqC;CAClD,IAAI;EACF,MAAM,kBAAkB,cACtB,IAAI,IAAI,mBAAmB,OAAO,KAAK,IAAI,CAC5C;EAMD,OAHoB,KAAK,MAAM,MAAM,GAAG,SAAS,gBAAgB,CAG/C,CAAC;SACb;EACN,OAAO;;;AAIX,SAAS,iBAAiB;CACxB,MAAM,QAAQ,OAAO,QAAQ;CAE7B,OAAO;EACL,MAAM,QAAQ,QAAQ;EACtB,SAAS,QAAQ,IAAI,UAAU,QAAQ,QAAQ,MAAM,EAAE;EACvD,UAAU,GAAG,UAAU;EACvB,MAAM,GAAG,MAAM;EAChB;;AAGH,eAAe,gBAAgB,UAAoC;CACjE,IAAI;EAEF,IAAI,EAAC,MADe,GAAG,KAAK,SAAS,EAC1B,QAAQ,EAAE,OAAO;EAG5B,QAAO,MADe,GAAG,SAAS,UAAU,OAAO,EACpC,MAAM,CAAC,SAAS;SACzB;EACN,OAAO;;;AAIX,eAAe,eAAmC;CAChD,MAAM,CAAC,SAAS,eAAe,MAAM,QAAQ,IAAI,CAC/C,mBAAmB,EACnB,gBAAgB,MAAM,kBAAkB,CACzC,CAAC;CAEF,OAAO;EACL,WAAW;GACT,iBAAiB,qBAAqB,QAAQ,KAAK;GACnD,SAAS,sBAAsB;GAChC;EACD;EACA,SAAS,gBAAgB;EACzB,OAAO;GACL,SAAS,MAAM;GACf,aAAa,MAAM;GACnB,mBAAmB,MAAM;GAC1B;EACD;EACD;;AAGH,SAAS,oBAAoB,MAAuB;CAClD,QAAQ,KAAK;;WAEJ,KAAK,QAAQ;WACb,KAAK,QAAQ,KAAK,GAAG,KAAK,QAAQ,QAAQ,IAAI,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,KAAK;;;aAGvF,KAAK,UAAU,QAAQ,KAAK,KAAK,IAAI,OAAO;sBACnC,KAAK,UAAU,kBAAkB,QAAQ,KAAK;;;aAGvD,KAAK,MAAM,QAAQ;iBACf,KAAK,MAAM,YAAY;uBACjB,KAAK,MAAM,kBAAkB;;uBAE7B,KAAK,cAAc,QAAQ,OAAO;;AAGzD,SAAS,mBAAmB,MAAuB;CACjD,QAAQ,IAAI,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;;AAG5C,eAAsB,SAAS,SAAyC;CACtE,MAAM,YAAY,MAAM,cAAc;CAEtC,IAAI,QAAQ,MACV,mBAAmB,UAAU;MAE7B,oBAAoB,UAAU;;AAIlC,MAAa,QAAQ,cAAc;CACjC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM,EACJ,MAAM;EACJ,MAAM;EACN,SAAS;EACT,aAAa;EACd,EACF;CACD,IAAI,EAAE,QAAQ;EACZ,OAAO,SAAS,EACd,MAAM,KAAK,MACZ,CAAC;;CAEL,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -39,11 +39,11 @@ if (typeof args["api-home"] === "string") process.env.COPILOT_API_HOME = args["a
|
|
|
39
39
|
if (typeof args["oauth-app"] === "string") process.env.COPILOT_API_OAUTH_APP = args["oauth-app"];
|
|
40
40
|
if (typeof args["enterprise-url"] === "string") process.env.COPILOT_API_ENTERPRISE_URL = args["enterprise-url"];
|
|
41
41
|
bindElectronFetch();
|
|
42
|
-
const { auth } = await import("./auth-
|
|
43
|
-
const { checkUsage } = await import("./check-usage-
|
|
44
|
-
const { debug } = await import("./debug-
|
|
45
|
-
const { mcp } = await import("./mcp-
|
|
46
|
-
const { start } = await import("./start-
|
|
42
|
+
const { auth } = await import("./auth-CeZtnQE_.js");
|
|
43
|
+
const { checkUsage } = await import("./check-usage-CTShKCvR.js");
|
|
44
|
+
const { debug } = await import("./debug-BVHmoCzY.js");
|
|
45
|
+
const { mcp } = await import("./mcp-DZgcvqQY.js");
|
|
46
|
+
const { start } = await import("./start-BhPxHgu8.js");
|
|
47
47
|
await runMain(defineCommand({
|
|
48
48
|
meta: {
|
|
49
49
|
name: "copilot-api",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as createMcpToolSearchSentinel } from "./tool-search-
|
|
1
|
+
import { n as createMcpToolSearchSentinel } from "./tool-search-wA-fLduL.js";
|
|
2
2
|
import { defineCommand } from "citty";
|
|
3
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -34,4 +34,4 @@ const mcp = defineCommand({
|
|
|
34
34
|
//#endregion
|
|
35
35
|
export { mcp };
|
|
36
36
|
|
|
37
|
-
//# sourceMappingURL=mcp-
|
|
37
|
+
//# sourceMappingURL=mcp-DZgcvqQY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-
|
|
1
|
+
{"version":3,"file":"mcp-DZgcvqQY.js","names":[],"sources":["../src/mcp.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\"\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\"\nimport { defineCommand } from \"citty\"\nimport { z } from \"zod\"\n\nimport { createMcpToolSearchSentinel } from \"./lib/tool-search\"\n\nconst SERVER_NAME = \"tool_search\"\nconst SERVER_VERSION = \"1.0.0\"\n\nexport const runMcpServer = async (): Promise<void> => {\n const server = new McpServer({\n name: SERVER_NAME,\n version: SERVER_VERSION,\n })\n\n server.registerTool(\n \"search\",\n {\n title: \"Tool Search Bridge\",\n description:\n \"Load deferred tools by exact name through the Copilot API tool_search bridge.\",\n inputSchema: {\n names: z\n .string()\n .describe(\n 'Comma-separated exact deferred tool names to load, for example \"TaskList,TaskGet,mcp__fetch__fetch\".',\n ),\n },\n _meta: {\n \"anthropic/alwaysLoad\": true,\n },\n },\n ({ names }) => ({\n content: [\n {\n type: \"text\",\n text: createMcpToolSearchSentinel(names),\n },\n ],\n }),\n )\n\n await server.connect(new StdioServerTransport())\n}\n\nexport const mcp = defineCommand({\n meta: {\n name: \"mcp\",\n description: \"Start the Copilot API MCP tool_search bridge over stdio\",\n },\n run() {\n return runMcpServer()\n },\n})\n"],"mappings":";;;;;;AASA,MAAM,cAAc;AACpB,MAAM,iBAAiB;AAEvB,MAAa,eAAe,YAA2B;CACrD,MAAM,SAAS,IAAI,UAAU;EAC3B,MAAM;EACN,SAAS;EACV,CAAC;CAEF,OAAO,aACL,UACA;EACE,OAAO;EACP,aACE;EACF,aAAa,EACX,OAAO,EACJ,QAAQ,CACR,SACC,yGACD,EACJ;EACD,OAAO,EACL,wBAAwB,MACzB;EACF,GACA,EAAE,aAAa,EACd,SAAS,CACP;EACE,MAAM;EACN,MAAM,4BAA4B,MAAM;EACzC,CACF,EACF,EACF;CAED,MAAM,OAAO,QAAQ,IAAI,sBAAsB,CAAC;;AAGlD,MAAa,MAAM,cAAc;CAC/B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM;EACJ,OAAO,cAAc;;CAExB,CAAC"}
|