@gulibs/safe-coder 0.0.27 → 0.0.28
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/executor/cli-executor.d.ts +10 -0
- package/dist/executor/cli-executor.d.ts.map +1 -1
- package/dist/executor/cli-executor.js +7 -0
- package/dist/executor/cli-executor.js.map +1 -1
- package/dist/server/safe-coder-mcp.d.ts.map +1 -1
- package/dist/server/safe-coder-mcp.js +10 -3
- package/dist/server/safe-coder-mcp.js.map +1 -1
- package/dist/tools/crawl-documentation.d.ts +25 -4
- package/dist/tools/crawl-documentation.d.ts.map +1 -1
- package/dist/tools/crawl-documentation.js +32 -25
- package/dist/tools/crawl-documentation.js.map +1 -1
- package/package.json +1 -1
|
@@ -39,6 +39,8 @@ export interface CrawlParams {
|
|
|
39
39
|
rateLimit?: number;
|
|
40
40
|
includePaths?: string[];
|
|
41
41
|
excludePaths?: string[];
|
|
42
|
+
outputDir?: string;
|
|
43
|
+
filename?: string;
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
46
|
* Crawl result from CLI
|
|
@@ -79,6 +81,14 @@ export interface CrawlResult {
|
|
|
79
81
|
skillMd: string;
|
|
80
82
|
quality: number;
|
|
81
83
|
};
|
|
84
|
+
savedFiles?: {
|
|
85
|
+
skillDir: string;
|
|
86
|
+
skillMdPath: string;
|
|
87
|
+
referenceFiles: Array<{
|
|
88
|
+
name: string;
|
|
89
|
+
path: string;
|
|
90
|
+
}>;
|
|
91
|
+
};
|
|
82
92
|
}
|
|
83
93
|
/**
|
|
84
94
|
* Progress callback function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-executor.d.ts","sourceRoot":"","sources":["../../src/executor/cli-executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,GAAG,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-executor.d.ts","sourceRoot":"","sources":["../../src/executor/cli-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,13 @@ export class CLIExecutor {
|
|
|
50
50
|
if (params.excludePaths && params.excludePaths.length > 0) {
|
|
51
51
|
args.push('--exclude-paths', params.excludePaths.join(','));
|
|
52
52
|
}
|
|
53
|
+
// ✅ 添加输出参数
|
|
54
|
+
if (params.outputDir) {
|
|
55
|
+
args.push('--output-dir', params.outputDir);
|
|
56
|
+
}
|
|
57
|
+
if (params.filename) {
|
|
58
|
+
args.push('--filename', params.filename);
|
|
59
|
+
}
|
|
53
60
|
return new Promise((resolve, reject) => {
|
|
54
61
|
const child = spawn('safe-coder-cli', args, {
|
|
55
62
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-executor.js","sourceRoot":"","sources":["../../src/executor/cli-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-executor.js","sourceRoot":"","sources":["../../src/executor/cli-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-coder-mcp.d.ts","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":";AAaA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAY;;IAW1B;;OAEG;IACH,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"safe-coder-mcp.d.ts","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":";AAaA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAY;;IAW1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAsKlB;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAM3B"}
|
|
@@ -19,10 +19,17 @@ export class SafeCoderMCPServer {
|
|
|
19
19
|
* Register MCP tools
|
|
20
20
|
*/
|
|
21
21
|
setupTools() {
|
|
22
|
-
// Register crawl_documentation tool
|
|
22
|
+
// ✅ Register crawl_documentation tool - 更新描述
|
|
23
23
|
this.server.registerTool('crawl_documentation', {
|
|
24
|
-
title: 'Crawl Documentation',
|
|
25
|
-
description: 'Crawl documentation website and generate
|
|
24
|
+
title: 'Crawl Documentation and Generate SKILL',
|
|
25
|
+
description: 'Crawl documentation website and automatically generate a complete Agent SKILL. ' +
|
|
26
|
+
'This tool saves files directly to disk and returns only a lightweight summary. ' +
|
|
27
|
+
'The CLI generates a high-quality SKILL.md (< 500 lines) based on complete content analysis, ' +
|
|
28
|
+
'along with organized reference files. Agent receives only the summary to minimize token cost. ' +
|
|
29
|
+
'\n\nRequired: url, skillName. ' +
|
|
30
|
+
'Optional: maxPages (default 50), depth (default 3), outputDir (default ~/.claude/skills), ' +
|
|
31
|
+
'workers, browser, spaStrategy, useCache, forceRefresh. ' +
|
|
32
|
+
'\n\nExample: crawl_documentation({ url: "https://react.dev", skillName: "react-docs", maxPages: 50 })',
|
|
26
33
|
inputSchema: CrawlDocumentationSchema,
|
|
27
34
|
}, async (args) => {
|
|
28
35
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-coder-mcp.js","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAY;IAE1B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,
|
|
1
|
+
{"version":3,"file":"safe-coder-mcp.js","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,11 @@ import { z } from 'zod';
|
|
|
4
4
|
*/
|
|
5
5
|
export declare const CrawlDocumentationSchema: z.ZodObject<{
|
|
6
6
|
url: z.ZodString;
|
|
7
|
+
skillName: z.ZodString;
|
|
7
8
|
maxPages: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
8
9
|
depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
9
10
|
workers: z.ZodOptional<z.ZodNumber>;
|
|
11
|
+
outputDir: z.ZodOptional<z.ZodString>;
|
|
10
12
|
useBrowser: z.ZodOptional<z.ZodBoolean>;
|
|
11
13
|
browser: z.ZodOptional<z.ZodEnum<["puppeteer", "playwright"]>>;
|
|
12
14
|
spaStrategy: z.ZodOptional<z.ZodEnum<["smart", "auto", "manual"]>>;
|
|
@@ -14,19 +16,23 @@ export declare const CrawlDocumentationSchema: z.ZodObject<{
|
|
|
14
16
|
forceRefresh: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
15
17
|
}, "strip", z.ZodTypeAny, {
|
|
16
18
|
url: string;
|
|
19
|
+
skillName: string;
|
|
17
20
|
maxPages: number;
|
|
18
21
|
depth: number;
|
|
19
22
|
useCache: boolean;
|
|
20
23
|
forceRefresh: boolean;
|
|
21
24
|
workers?: number | undefined;
|
|
25
|
+
outputDir?: string | undefined;
|
|
22
26
|
useBrowser?: boolean | undefined;
|
|
23
27
|
browser?: "puppeteer" | "playwright" | undefined;
|
|
24
28
|
spaStrategy?: "smart" | "auto" | "manual" | undefined;
|
|
25
29
|
}, {
|
|
26
30
|
url: string;
|
|
31
|
+
skillName: string;
|
|
27
32
|
maxPages?: number | undefined;
|
|
28
33
|
depth?: number | undefined;
|
|
29
34
|
workers?: number | undefined;
|
|
35
|
+
outputDir?: string | undefined;
|
|
30
36
|
useBrowser?: boolean | undefined;
|
|
31
37
|
browser?: "puppeteer" | "playwright" | undefined;
|
|
32
38
|
spaStrategy?: "smart" | "auto" | "manual" | undefined;
|
|
@@ -44,14 +50,29 @@ export declare function crawlDocumentation(input: CrawlDocumentationInput): Prom
|
|
|
44
50
|
fromCache: boolean;
|
|
45
51
|
cacheAge: string;
|
|
46
52
|
message: string;
|
|
47
|
-
|
|
53
|
+
summary?: undefined;
|
|
48
54
|
} | {
|
|
49
55
|
success: boolean;
|
|
50
|
-
data: import("../processor/content-processor.js").ProcessedContent;
|
|
51
|
-
rawCrawlResult: import("../executor/cli-executor.js").CrawlResult;
|
|
52
|
-
skillGenerationGuide: import("../processor/guide-generator.js").SkillGenerationGuide;
|
|
53
56
|
fromCache: boolean;
|
|
57
|
+
summary: {
|
|
58
|
+
url: string;
|
|
59
|
+
skillName: string;
|
|
60
|
+
totalPages: number;
|
|
61
|
+
maxDepth: number;
|
|
62
|
+
errors: number;
|
|
63
|
+
quality: number;
|
|
64
|
+
savedFiles: {
|
|
65
|
+
skillDir: string;
|
|
66
|
+
skillMdPath: string;
|
|
67
|
+
referenceFiles: Array<{
|
|
68
|
+
name: string;
|
|
69
|
+
path: string;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
54
73
|
message: string;
|
|
74
|
+
data?: undefined;
|
|
75
|
+
skillGenerationGuide?: undefined;
|
|
55
76
|
cacheAge?: undefined;
|
|
56
77
|
}>;
|
|
57
78
|
//# sourceMappingURL=crawl-documentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crawl-documentation.d.ts","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"crawl-documentation.d.ts","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFtE"}
|
|
@@ -9,9 +9,11 @@ import { CacheManager } from '../cache/cache-manager.js';
|
|
|
9
9
|
*/
|
|
10
10
|
export const CrawlDocumentationSchema = z.object({
|
|
11
11
|
url: z.string().url().describe('Documentation URL to crawl'),
|
|
12
|
-
|
|
12
|
+
skillName: z.string().describe('Skill name (e.g., "react-docs")'), // ✅ 必需
|
|
13
|
+
maxPages: z.number().optional().default(50).describe('Maximum number of pages to crawl'), // ✅ 降低默认值
|
|
13
14
|
depth: z.number().optional().default(3).describe('Maximum crawl depth'),
|
|
14
15
|
workers: z.number().optional().describe('Number of parallel workers'),
|
|
16
|
+
outputDir: z.string().optional().describe('Output directory for skill files (default: ~/.claude/skills)'), // ✅ 新增
|
|
15
17
|
useBrowser: z.boolean().optional().describe('Force browser automation'),
|
|
16
18
|
browser: z.enum(['puppeteer', 'playwright']).optional().describe('Browser type to use'),
|
|
17
19
|
spaStrategy: z.enum(['smart', 'auto', 'manual']).optional().describe('SPA crawling strategy'),
|
|
@@ -47,7 +49,7 @@ export async function crawlDocumentation(input) {
|
|
|
47
49
|
};
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
|
-
// 3. Prepare crawl parameters
|
|
52
|
+
// 3. ✅ Prepare crawl parameters - 包含 outputDir 和 filename
|
|
51
53
|
const crawlParams = {
|
|
52
54
|
url: input.url,
|
|
53
55
|
maxPages: input.maxPages,
|
|
@@ -56,9 +58,13 @@ export async function crawlDocumentation(input) {
|
|
|
56
58
|
useBrowser: input.useBrowser,
|
|
57
59
|
browser: input.browser,
|
|
58
60
|
spaStrategy: input.spaStrategy,
|
|
61
|
+
// ✅ 新增:让 CLI 直接保存文件
|
|
62
|
+
outputDir: input.outputDir,
|
|
63
|
+
filename: input.skillName,
|
|
59
64
|
};
|
|
60
|
-
// 4. Execute crawl
|
|
65
|
+
// 4. ✅ Execute crawl - CLI 会生成并保存 SKILL
|
|
61
66
|
let lastProgress = '';
|
|
67
|
+
console.error('[Crawl] Starting crawl with SKILL generation...');
|
|
62
68
|
const rawResult = await executor.executeCrawl(crawlParams, (progress) => {
|
|
63
69
|
// Log progress to stderr (visible in MCP client logs)
|
|
64
70
|
if (progress.message !== lastProgress) {
|
|
@@ -66,31 +72,32 @@ export async function crawlDocumentation(input) {
|
|
|
66
72
|
lastProgress = progress.message;
|
|
67
73
|
}
|
|
68
74
|
});
|
|
69
|
-
// 5.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
//
|
|
75
|
+
// 5. ✅ 只返回轻量级摘要(不返回完整数据)
|
|
76
|
+
const summary = {
|
|
77
|
+
url: input.url,
|
|
78
|
+
skillName: input.skillName,
|
|
79
|
+
totalPages: rawResult.statistics.totalPages,
|
|
80
|
+
maxDepth: rawResult.statistics.maxDepthReached,
|
|
81
|
+
errors: rawResult.statistics.errors,
|
|
82
|
+
quality: rawResult.skill?.quality || 0,
|
|
83
|
+
// ✅ 文件路径信息
|
|
84
|
+
savedFiles: rawResult.savedFiles || {
|
|
85
|
+
skillDir: `${input.outputDir || '~/.claude/skills'}/${input.skillName}`,
|
|
86
|
+
skillMdPath: `${input.outputDir || '~/.claude/skills'}/${input.skillName}/SKILL.md`,
|
|
87
|
+
referenceFiles: [],
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
// 6. ✅ 不使用旧的缓存系统(缓存完整数据太大)
|
|
91
|
+
// 用户可以直接使用磁盘上的文件
|
|
92
|
+
// 7. ✅ 返回轻量级响应
|
|
87
93
|
return {
|
|
88
94
|
success: true,
|
|
89
|
-
data: processed,
|
|
90
|
-
rawCrawlResult: rawResult, // Include raw result for skill file generation
|
|
91
|
-
skillGenerationGuide: guide,
|
|
92
95
|
fromCache: false,
|
|
93
|
-
|
|
96
|
+
summary,
|
|
97
|
+
message: `✓ Crawled ${summary.totalPages} pages and generated SKILL.\n` +
|
|
98
|
+
`Quality: ${summary.quality}/100\n` +
|
|
99
|
+
`Location: ${summary.savedFiles.skillMdPath}\n` +
|
|
100
|
+
`References: ${summary.savedFiles.referenceFiles.length} files`,
|
|
94
101
|
};
|
|
95
102
|
}
|
|
96
103
|
//# sourceMappingURL=crawl-documentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crawl-documentation.js","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAoB,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"crawl-documentation.js","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"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"}
|