codex-skills-mcp 1.0.2 → 1.0.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/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/remote/github.d.ts.map +1 -1
- package/dist/remote/github.js +50 -9
- package/dist/remote/github.js.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAuBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAoFlD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAGlE"}
|
package/dist/config.js
CHANGED
|
@@ -82,6 +82,7 @@ export function parseConfig(args) {
|
|
|
82
82
|
console.error(`Error: skills_manifest.json not found in ${skillsDir}`);
|
|
83
83
|
process.exit(1);
|
|
84
84
|
}
|
|
85
|
+
const useCnMirror = args.includes("--cn-mirror");
|
|
85
86
|
return {
|
|
86
87
|
skillsDir,
|
|
87
88
|
manifestPath,
|
|
@@ -89,7 +90,8 @@ export function parseConfig(args) {
|
|
|
89
90
|
githubRepo,
|
|
90
91
|
githubBranch,
|
|
91
92
|
githubPath,
|
|
92
|
-
githubToken
|
|
93
|
+
githubToken,
|
|
94
|
+
useCnMirror
|
|
93
95
|
};
|
|
94
96
|
}
|
|
95
97
|
export function loadManifest(manifestPath) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAa9C;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,kEAAkE,EAAE;YAC1F,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,2BAA2B;YAC3B,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sDAAsD;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,IAAI,SAA6B,CAAC;IAElC,yBAAyB;IACzB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,yBAAyB,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC;IAE7D,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE3C,8BAA8B;IAC9B,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,kCAAkC,EAAE,CAAC;QAChH,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACzC,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACpC,CAAC;IAED,2DAA2D;IAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACpG,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACtC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;gBACrD,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,sCAAsC;gBACpC,gEAAgE;gBAChE,kDAAkD,CACrD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CACX,4CAA4C,SAAS,EAAE,CACxD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjD,OAAO;QACL,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/remote/github.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/remote/github.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA6E1D;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjE;AA4BD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC5F"}
|
package/dist/remote/github.js
CHANGED
|
@@ -14,6 +14,50 @@ async function fetchWithAuth(url, token) {
|
|
|
14
14
|
}
|
|
15
15
|
return res;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Advanced raw file downloader with CN Mirror Fallback Chain
|
|
19
|
+
*/
|
|
20
|
+
async function fetchRawWithFallback(config, path) {
|
|
21
|
+
// If not using CN mirror, just use the official raw domain
|
|
22
|
+
if (!config.useCnMirror) {
|
|
23
|
+
const rawUrl = `https://raw.githubusercontent.com/${config.githubRepo}/${config.githubBranch}/${path}`;
|
|
24
|
+
return fetchWithAuth(rawUrl, config.githubToken);
|
|
25
|
+
}
|
|
26
|
+
// Define the fallback chain
|
|
27
|
+
const fallbacks = [
|
|
28
|
+
// 1. jsdelivr CDN (Fastest, backed by GCore/Fastly in China)
|
|
29
|
+
{
|
|
30
|
+
name: "jsDelivr",
|
|
31
|
+
url: `https://cdn.jsdelivr.net/gh/${config.githubRepo}@${config.githubBranch}/${path}`
|
|
32
|
+
},
|
|
33
|
+
// 2. gh-proxy.com (Reliable raw proxy)
|
|
34
|
+
{
|
|
35
|
+
name: "gh-proxy.com",
|
|
36
|
+
url: `https://gh-proxy.com/https://raw.githubusercontent.com/${config.githubRepo}/${config.githubBranch}/${path}`
|
|
37
|
+
},
|
|
38
|
+
// 3. ghfast.top (Backup raw proxy)
|
|
39
|
+
{
|
|
40
|
+
name: "ghfast.top",
|
|
41
|
+
url: `https://ghfast.top/https://raw.githubusercontent.com/${config.githubRepo}/${config.githubBranch}/${path}`
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
let lastError = null;
|
|
45
|
+
for (const proxy of fallbacks) {
|
|
46
|
+
try {
|
|
47
|
+
// jsdelivr and some proxies might strip or reject Auth headers, so we omit token for mirrors
|
|
48
|
+
const res = await fetch(proxy.url);
|
|
49
|
+
if (!res.ok) {
|
|
50
|
+
throw new Error(`HTTP ${res.status}`);
|
|
51
|
+
}
|
|
52
|
+
return res; // Success!
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.error(`[codex-skills-mcp] Network warning: ${proxy.name} failed to fetch (${e.message}). Downgrading to next...`);
|
|
56
|
+
lastError = e;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw new Error(`All acceleration nodes (CN Mirrors) failed to fetch ${path}. Network error: ${lastError?.message}`);
|
|
60
|
+
}
|
|
17
61
|
/**
|
|
18
62
|
* Initialize remote caching (just creates the cache dir now)
|
|
19
63
|
*/
|
|
@@ -28,9 +72,9 @@ export async function initRemote(config) {
|
|
|
28
72
|
export async function fetchManifest(config) {
|
|
29
73
|
if (existsSync(config.manifestPath))
|
|
30
74
|
return;
|
|
31
|
-
const
|
|
32
|
-
console.error(`[codex-skills-mcp] Fetching manifest
|
|
33
|
-
const res = await
|
|
75
|
+
const manifestPath = `${config.githubPath}/skills_manifest.json`;
|
|
76
|
+
console.error(`[codex-skills-mcp] Fetching manifest...`);
|
|
77
|
+
const res = await fetchRawWithFallback(config, manifestPath);
|
|
34
78
|
const text = await res.text();
|
|
35
79
|
writeFileSync(config.manifestPath, text, "utf-8");
|
|
36
80
|
}
|
|
@@ -38,6 +82,7 @@ export async function fetchManifest(config) {
|
|
|
38
82
|
* Recursively fetch files from a GitHub directory using Contents API
|
|
39
83
|
*/
|
|
40
84
|
async function fetchDirectoryRecursive(config, path) {
|
|
85
|
+
// API is always direct because proxies return 403 for API
|
|
41
86
|
const url = `https://api.github.com/repos/${config.githubRepo}/contents/${path}?ref=${config.githubBranch}`;
|
|
42
87
|
const res = await fetchWithAuth(url, config.githubToken);
|
|
43
88
|
const data = (await res.json());
|
|
@@ -62,8 +107,6 @@ export async function ensureSkillFetched(config, entry) {
|
|
|
62
107
|
if (existsSync(skillLocalPath)) {
|
|
63
108
|
return; // Already fetched
|
|
64
109
|
}
|
|
65
|
-
// The prefix in github is githubPath + relPath
|
|
66
|
-
// e.g. "codex-skills/01_代码工程与架构/planning-with-files"
|
|
67
110
|
let prefix = config.githubPath ? `${config.githubPath}/${relPath}` : relPath;
|
|
68
111
|
if (prefix.startsWith("/"))
|
|
69
112
|
prefix = prefix.slice(1);
|
|
@@ -73,27 +116,25 @@ export async function ensureSkillFetched(config, entry) {
|
|
|
73
116
|
const filesToFetch = await fetchDirectoryRecursive(config, prefix);
|
|
74
117
|
if (filesToFetch.length === 0) {
|
|
75
118
|
console.error(`[codex-skills-mcp] Warning: No files found in remote tree for prefix ${prefix}`);
|
|
76
|
-
// Create an empty dir to prevent repeated failures
|
|
77
119
|
mkdirSync(skillLocalPath, { recursive: true });
|
|
78
120
|
return;
|
|
79
121
|
}
|
|
80
122
|
console.error(`[codex-skills-mcp] Fetching ${filesToFetch.length} files for skill: ${entry.name}...`);
|
|
81
123
|
for (const file of filesToFetch) {
|
|
82
|
-
// Determine local path by stripping githubPath prefix
|
|
83
124
|
let relativeFilePath = file.path;
|
|
84
125
|
if (config.githubPath && relativeFilePath.startsWith(config.githubPath + "/")) {
|
|
85
126
|
relativeFilePath = relativeFilePath.substring(config.githubPath.length + 1);
|
|
86
127
|
}
|
|
87
128
|
const localFilePath = resolve(config.skillsDir, relativeFilePath);
|
|
88
129
|
mkdirSync(dirname(localFilePath), { recursive: true });
|
|
89
|
-
|
|
130
|
+
// Use fallback logic for raw files
|
|
131
|
+
const res = await fetchRawWithFallback(config, file.path);
|
|
90
132
|
const buffer = await res.arrayBuffer();
|
|
91
133
|
writeFileSync(localFilePath, Buffer.from(buffer));
|
|
92
134
|
}
|
|
93
135
|
}
|
|
94
136
|
catch (error) {
|
|
95
137
|
console.error(`[codex-skills-mcp] Failed to fetch skill ${entry.name}: ${error.message}`);
|
|
96
|
-
// Create an empty dir to prevent repeated failures on 404
|
|
97
138
|
mkdirSync(skillLocalPath, { recursive: true });
|
|
98
139
|
}
|
|
99
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/remote/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAe7C;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,KAAc;IACtD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;QAAE,OAAO;IAE5C,MAAM,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/remote/github.ts"],"names":[],"mappings":"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"}
|