codex-skills-mcp 1.0.5 → 1.0.6

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 CHANGED
@@ -7,6 +7,7 @@ export interface Config {
7
7
  githubPath: string;
8
8
  githubToken?: string;
9
9
  useCnMirror: boolean;
10
+ downloadConcurrency: number;
10
11
  }
11
12
  /**
12
13
  * Parse config from CLI args and env vars.
@@ -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,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"}
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;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAuBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CA+FlD;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
@@ -83,6 +83,15 @@ export function parseConfig(args) {
83
83
  process.exit(1);
84
84
  }
85
85
  const useCnMirror = args.includes("--cn-mirror");
86
+ // Concurrent downloads for skill files (default 16). Configurable via
87
+ // --download-concurrency <n> or CODEX_SKILLS_DOWNLOAD_CONCURRENCY env var.
88
+ const concurrencyArg = getArg("--download-concurrency");
89
+ const concurrencyEnv = process.env.CODEX_SKILLS_DOWNLOAD_CONCURRENCY;
90
+ const downloadConcurrency = parseInt(concurrencyArg || concurrencyEnv || "16", 10);
91
+ if (!Number.isInteger(downloadConcurrency) || downloadConcurrency < 1) {
92
+ console.error("Error: --download-concurrency must be a positive integer");
93
+ process.exit(1);
94
+ }
86
95
  return {
87
96
  skillsDir,
88
97
  manifestPath,
@@ -91,7 +100,8 @@ export function parseConfig(args) {
91
100
  githubBranch,
92
101
  githubPath,
93
102
  githubToken,
94
- useCnMirror
103
+ useCnMirror,
104
+ downloadConcurrency
95
105
  };
96
106
  }
97
107
  export function loadManifest(manifestPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ import { registerPlanWorkflow } from "./tools/plan-workflow.js";
31
31
  function createServer(searchEngine, loader) {
32
32
  const server = new McpServer({
33
33
  name: "codex-skills",
34
- version: "1.0.0",
34
+ version: "1.0.6",
35
35
  });
36
36
  registerSearchSkills(server, searchEngine);
37
37
  registerListCategories(server, searchEngine);
@@ -109,7 +109,7 @@ async function startHTTP(searchEngine, loader, port) {
109
109
  res.json({
110
110
  status: "ok",
111
111
  name: "codex-skills-mcp",
112
- version: "1.0.0",
112
+ version: "1.0.6",
113
113
  skills: searchEngine.getCategories().reduce((s, c) => s + c.skill_count, 0),
114
114
  });
115
115
  });
@@ -8,7 +8,14 @@ export declare function initRemote(config: Config): Promise<void>;
8
8
  */
9
9
  export declare function fetchManifest(config: Config): Promise<void>;
10
10
  /**
11
- * Ensure a skill's directory is downloaded and cached
11
+ * Ensure a skill's directory is downloaded and cached.
12
+ *
13
+ * - Listing uses only 2 API calls (parent contents + recursive subtree tree),
14
+ * never the full repository tree, so huge repos stay within GitHub limits.
15
+ * - Downloads run concurrently and skip files already cached with the right size.
16
+ * - A `.codex-skills.tree.json` marker records the file list + completion state,
17
+ * so an interrupted download resumes on the next call instead of being
18
+ * silently treated as complete.
12
19
  */
13
20
  export declare function ensureSkillFetched(config: Config, entry: ManifestEntry): Promise<void>;
14
21
  //# sourceMappingURL=github.d.ts.map
@@ -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;AAyG1D;;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;AA+BD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC5F"}
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;AAkR1D;;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;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C5F"}
@@ -1,5 +1,7 @@
1
- import { writeFileSync, existsSync, mkdirSync } from "node:fs";
2
- import { resolve, dirname } from "node:path";
1
+ import { writeFileSync, existsSync, mkdirSync, readFileSync, statSync } from "node:fs";
2
+ import { resolve, dirname, join, basename } from "node:path";
3
+ /** Metadata marker written inside each cached skill directory */
4
+ const TREE_CACHE_FILE = ".codex-skills.tree.json";
3
5
  /**
4
6
  * Fetch with timeout using AbortController
5
7
  */
@@ -87,6 +89,120 @@ async function fetchRawWithFallback(config, path) {
87
89
  }
88
90
  throw new Error(`All download nodes failed to fetch ${path}. Network error: ${lastError?.message}\n\n【网络兜底提示】您的网络环境极其恶劣,所有的直连与免翻墙加速节点均已失效。为了保证技能库的稳定拉取,建议您配置科学上网环境。推荐服务:https://a.xn--30rs3b33gl8gq9hj52b.com/#/register?code=4uq59ogs (该服务极具性价比,最便宜每月200G流量一年仅需13.99元)`);
89
91
  }
92
+ /**
93
+ * Build the remote repo path of a skill directory, e.g.
94
+ * "codex-skills/00_全局大管家/12_学术论文与科研图表/nature-skills"
95
+ */
96
+ function buildSkillRemotePath(config, relPath) {
97
+ let prefix = config.githubPath ? `${config.githubPath}/${relPath}` : relPath;
98
+ prefix = prefix.replace(/^\.\//, "").replace(/^\/+/, "").replace(/\/+$/, "");
99
+ return prefix;
100
+ }
101
+ /**
102
+ * List a skill's files with exactly 2 GitHub API calls (never the full repo tree):
103
+ * 1. contents(parent dir) -> locate the skill dir and get its tree SHA
104
+ * 2. git/trees/{sha}?recursive=1 -> all blobs of that single skill subtree, with sizes
105
+ */
106
+ async function fetchSkillTree(config, relPath) {
107
+ const segments = relPath.split("/").filter(Boolean);
108
+ const dirName = segments[segments.length - 1];
109
+ const parentPath = segments.slice(0, -1).join("/");
110
+ const parentRemotePath = buildSkillRemotePath(config, parentPath);
111
+ const apiBase = `https://api.github.com/repos/${config.githubRepo}/`;
112
+ // STEP 1: find the skill directory's tree SHA from its parent listing
113
+ const contentsRes = await fetchWithAuth(`${apiBase}contents/${parentRemotePath}?ref=${config.githubBranch}`, config.githubToken, 10000);
114
+ const contents = (await contentsRes.json());
115
+ if (Array.isArray(contents)) {
116
+ const dir = contents.find((item) => item.name === dirName && item.type === "dir");
117
+ if (!dir || !dir.sha) {
118
+ throw new Error(`Skill directory "${dirName}" not found at "${parentRemotePath}"`);
119
+ }
120
+ // STEP 2: recursive tree of ONLY this skill subtree (small, not truncated)
121
+ const treeRes = await fetchWithAuth(`${apiBase}git/trees/${dir.sha}?recursive=1`, config.githubToken, 30000);
122
+ const tree = (await treeRes.json());
123
+ if (tree.truncated) {
124
+ throw new Error(`Git tree truncated for skill "${dirName}" (too many files)`);
125
+ }
126
+ const files = (tree.tree || [])
127
+ .filter((t) => t.type === "blob" && typeof t.path === "string")
128
+ .map((t) => ({
129
+ path: t.path,
130
+ size: typeof t.size === "number" ? t.size : 0,
131
+ }));
132
+ return { version: 1, files };
133
+ }
134
+ if (contents && contents.type === "file") {
135
+ // Single-file skill: the manifest "directory" is actually one file
136
+ return {
137
+ version: 1,
138
+ files: [{ path: basename(contents.path), size: contents.size ?? 0 }],
139
+ singleFileRemotePath: `${parentRemotePath}/${dirName}`,
140
+ };
141
+ }
142
+ throw new Error(`Unexpected GitHub Contents API response for "${parentRemotePath}": ${contentsRes.status}`);
143
+ }
144
+ /**
145
+ * Run `worker` over `items` with at most `limit` concurrent executions.
146
+ * Collects per-item errors instead of failing fast, so one bad file never
147
+ * aborts an entire skill download.
148
+ */
149
+ async function runPool(items, limit, worker) {
150
+ const errors = [];
151
+ let next = 0;
152
+ const run = async () => {
153
+ while (next < items.length) {
154
+ const index = next++;
155
+ try {
156
+ await worker(items[index]);
157
+ }
158
+ catch (error) {
159
+ errors.push(error);
160
+ }
161
+ }
162
+ };
163
+ await Promise.all(Array.from({ length: Math.max(1, Math.min(limit, items.length)) }, run));
164
+ if (errors.length > 0) {
165
+ throw new Error(`${errors.length} of ${items.length} downloads failed. First error: ${errors[0].message}`);
166
+ }
167
+ }
168
+ /** True when the local file already exists with the expected size (resume support) */
169
+ function isFileUpToDate(localPath, expectedSize) {
170
+ try {
171
+ return statSync(localPath).size === expectedSize;
172
+ }
173
+ catch {
174
+ return false;
175
+ }
176
+ }
177
+ /** Verify every recorded file exists with the expected size */
178
+ function areFilesUpToDate(tree, skillLocalPath) {
179
+ return tree.files.every((file) => isFileUpToDate(resolve(skillLocalPath, file.path), file.size));
180
+ }
181
+ /**
182
+ * Download every missing file of a skill, skipping files already cached.
183
+ * Failures throw AFTER the pool finishes so the caller can resume next time.
184
+ */
185
+ async function downloadMissing(config, relPath, tree, skillLocalPath) {
186
+ if (!tree.files || tree.files.length === 0)
187
+ return;
188
+ const skillRemotePath = buildSkillRemotePath(config, relPath);
189
+ const missing = tree.files.filter((file) => !isFileUpToDate(resolve(skillLocalPath, file.path), file.size));
190
+ if (missing.length === 0)
191
+ return;
192
+ const skillName = basename(skillLocalPath);
193
+ console.error(`[codex-skills-mcp] Fetching ${missing.length}/${tree.files.length} files for skill: ${skillName}...`);
194
+ const startedAt = Date.now();
195
+ const limit = Math.max(1, config.downloadConcurrency);
196
+ await runPool(missing, limit, async (file) => {
197
+ const remotePath = tree.singleFileRemotePath ?? `${skillRemotePath}/${file.path}`;
198
+ const res = await fetchRawWithFallback(config, remotePath);
199
+ const buffer = Buffer.from(await res.arrayBuffer());
200
+ const localFile = resolve(skillLocalPath, file.path);
201
+ mkdirSync(dirname(localFile), { recursive: true });
202
+ writeFileSync(localFile, buffer);
203
+ });
204
+ console.error(`[codex-skills-mcp] Skill ${skillName}: downloaded ${missing.length} files in ${((Date.now() - startedAt) / 1000).toFixed(1)}s`);
205
+ }
90
206
  /**
91
207
  * Initialize remote caching (just creates the cache dir now)
92
208
  */
@@ -108,67 +224,47 @@ export async function fetchManifest(config) {
108
224
  writeFileSync(config.manifestPath, text, "utf-8");
109
225
  }
110
226
  /**
111
- * Recursively fetch files from a GitHub directory using Contents API
112
- */
113
- async function fetchDirectoryRecursive(config, path) {
114
- try {
115
- const url = `https://api.github.com/repos/${config.githubRepo}/contents/${path}?ref=${config.githubBranch}`;
116
- const res = await fetchWithAuth(url, config.githubToken, 10000);
117
- const data = (await res.json());
118
- let files = [];
119
- for (const item of data) {
120
- if (item.type === "file" && item.download_url) {
121
- files.push({ path: item.path, downloadUrl: item.download_url });
122
- }
123
- else if (item.type === "dir") {
124
- const subFiles = await fetchDirectoryRecursive(config, item.path);
125
- files.push(...subFiles);
126
- }
127
- }
128
- return files;
129
- }
130
- catch (error) {
131
- throw new Error(`Failed to fetch directory from GitHub API: ${error.message}\n\n【网络兜底提示】由于网络封锁,无法连接到 GitHub API。建议您配置科学上网环境:https://a.xn--30rs3b33gl8gq9hj52b.com/#/register?code=4uq59ogs (极具性价比,最便宜每月200G流量一年仅需13.99元)`);
132
- }
133
- }
134
- /**
135
- * Ensure a skill's directory is downloaded and cached
227
+ * Ensure a skill's directory is downloaded and cached.
228
+ *
229
+ * - Listing uses only 2 API calls (parent contents + recursive subtree tree),
230
+ * never the full repository tree, so huge repos stay within GitHub limits.
231
+ * - Downloads run concurrently and skip files already cached with the right size.
232
+ * - A `.codex-skills.tree.json` marker records the file list + completion state,
233
+ * so an interrupted download resumes on the next call instead of being
234
+ * silently treated as complete.
136
235
  */
137
236
  export async function ensureSkillFetched(config, entry) {
138
237
  const relPath = entry.relative_path.replace(/^\.\//, "");
139
238
  const skillLocalPath = resolve(config.skillsDir, relPath);
140
- if (existsSync(skillLocalPath)) {
141
- return; // Already fetched
142
- }
143
- let prefix = config.githubPath ? `${config.githubPath}/${relPath}` : relPath;
144
- if (prefix.startsWith("/"))
145
- prefix = prefix.slice(1);
146
- if (prefix.startsWith("./"))
147
- prefix = prefix.slice(2);
148
- try {
149
- const filesToFetch = await fetchDirectoryRecursive(config, prefix);
150
- if (filesToFetch.length === 0) {
151
- console.error(`[codex-skills-mcp] Warning: No files found in remote tree for prefix ${prefix}`);
152
- mkdirSync(skillLocalPath, { recursive: true });
153
- return;
154
- }
155
- console.error(`[codex-skills-mcp] Fetching ${filesToFetch.length} files for skill: ${entry.name}...`);
156
- for (const file of filesToFetch) {
157
- let relativeFilePath = file.path;
158
- if (config.githubPath && relativeFilePath.startsWith(config.githubPath + "/")) {
159
- relativeFilePath = relativeFilePath.substring(config.githubPath.length + 1);
239
+ const cacheFile = join(skillLocalPath, TREE_CACHE_FILE);
240
+ // Fast path: fully downloaded in a previous run
241
+ if (existsSync(cacheFile)) {
242
+ try {
243
+ const cached = JSON.parse(readFileSync(cacheFile, "utf-8"));
244
+ if (cached.completedAt && Array.isArray(cached.files)) {
245
+ if (areFilesUpToDate(cached, skillLocalPath)) {
246
+ return;
247
+ }
248
+ // Some files disappeared after completion — fetch only the gaps.
249
+ await downloadMissing(config, relPath, cached, skillLocalPath);
250
+ return;
251
+ }
252
+ if (Array.isArray(cached.files)) {
253
+ // Resume: reuse the cached file list, download only what is missing
254
+ await downloadMissing(config, relPath, cached, skillLocalPath);
255
+ writeFileSync(cacheFile, JSON.stringify({ ...cached, completedAt: new Date().toISOString() }, null, 2), "utf-8");
256
+ return;
160
257
  }
161
- const localFilePath = resolve(config.skillsDir, relativeFilePath);
162
- mkdirSync(dirname(localFilePath), { recursive: true });
163
- // Use smart fallback logic for raw files
164
- const res = await fetchRawWithFallback(config, file.path);
165
- const buffer = await res.arrayBuffer();
166
- writeFileSync(localFilePath, Buffer.from(buffer));
258
+ }
259
+ catch {
260
+ // Corrupted marker fall through and rebuild the file list
167
261
  }
168
262
  }
169
- catch (error) {
170
- console.error(`[codex-skills-mcp] Failed to fetch skill ${entry.name}: ${error.message}`);
171
- mkdirSync(skillLocalPath, { recursive: true });
172
- }
263
+ mkdirSync(skillLocalPath, { recursive: true });
264
+ console.error(`[codex-skills-mcp] Listing files for skill: ${entry.name}...`);
265
+ const tree = await fetchSkillTree(config, relPath);
266
+ writeFileSync(cacheFile, JSON.stringify(tree, null, 2), "utf-8");
267
+ await downloadMissing(config, relPath, tree, skillLocalPath);
268
+ writeFileSync(cacheFile, JSON.stringify({ ...tree, completedAt: new Date().toISOString() }, null, 2), "utf-8");
173
269
  }
174
270
  //# sourceMappingURL=github.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/remote/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/remote/github.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-skills-mcp",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "MCP Server for Codex-Skills - Intelligent skill library search, read and orchestration",
5
5
  "type": "module",
6
6
  "bin": {