mta-mcp 1.9.1 → 2.3.0
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 +140 -2
- package/bin/mta.cjs +43 -0
- package/dist/index.cjs +4784 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4769 -0
- package/dist/index.js.map +1 -0
- package/package.json +44 -16
- package/build/core/agentTemplate.d.ts +0 -33
- package/build/core/agentTemplate.d.ts.map +0 -1
- package/build/core/agentTemplate.js +0 -158
- package/build/core/agentTemplate.js.map +0 -1
- package/build/core/autoInitializer.d.ts +0 -34
- package/build/core/autoInitializer.d.ts.map +0 -1
- package/build/core/autoInitializer.js +0 -145
- package/build/core/autoInitializer.js.map +0 -1
- package/build/core/codeValidator.d.ts +0 -82
- package/build/core/codeValidator.d.ts.map +0 -1
- package/build/core/codeValidator.js +0 -287
- package/build/core/codeValidator.js.map +0 -1
- package/build/core/githubClient.d.ts +0 -26
- package/build/core/githubClient.d.ts.map +0 -1
- package/build/core/githubClient.js +0 -60
- package/build/core/githubClient.js.map +0 -1
- package/build/core/i18nDetector.d.ts +0 -47
- package/build/core/i18nDetector.d.ts.map +0 -1
- package/build/core/i18nDetector.js +0 -314
- package/build/core/i18nDetector.js.map +0 -1
- package/build/core/projectContextManager.d.ts +0 -39
- package/build/core/projectContextManager.d.ts.map +0 -1
- package/build/core/projectContextManager.js +0 -147
- package/build/core/projectContextManager.js.map +0 -1
- package/build/core/smartAgentMatcher.d.ts +0 -51
- package/build/core/smartAgentMatcher.d.ts.map +0 -1
- package/build/core/smartAgentMatcher.js +0 -493
- package/build/core/smartAgentMatcher.js.map +0 -1
- package/build/core/standardsManager.d.ts +0 -130
- package/build/core/standardsManager.d.ts.map +0 -1
- package/build/core/standardsManager.js +0 -600
- package/build/core/standardsManager.js.map +0 -1
- package/build/core/types.d.ts +0 -55
- package/build/core/types.d.ts.map +0 -1
- package/build/core/types.js +0 -21
- package/build/core/types.js.map +0 -1
- package/build/index.d.ts +0 -3
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -463
- package/build/index.js.map +0 -1
- package/build/tools/analyzeProject.d.ts +0 -12
- package/build/tools/analyzeProject.d.ts.map +0 -1
- package/build/tools/analyzeProject.js +0 -85
- package/build/tools/analyzeProject.js.map +0 -1
- package/build/tools/autoSetup.d.ts +0 -15
- package/build/tools/autoSetup.d.ts.map +0 -1
- package/build/tools/autoSetup.js +0 -291
- package/build/tools/autoSetup.js.map +0 -1
- package/build/tools/generateConfig.d.ts +0 -16
- package/build/tools/generateConfig.d.ts.map +0 -1
- package/build/tools/generateConfig.js +0 -379
- package/build/tools/generateConfig.js.map +0 -1
- package/build/tools/generateProjectAgent.d.ts +0 -15
- package/build/tools/generateProjectAgent.d.ts.map +0 -1
- package/build/tools/generateProjectAgent.js +0 -348
- package/build/tools/generateProjectAgent.js.map +0 -1
- package/build/tools/getCompactStandards.d.ts +0 -20
- package/build/tools/getCompactStandards.d.ts.map +0 -1
- package/build/tools/getCompactStandards.js +0 -367
- package/build/tools/getCompactStandards.js.map +0 -1
- package/build/tools/getSmartStandards.d.ts +0 -17
- package/build/tools/getSmartStandards.d.ts.map +0 -1
- package/build/tools/getSmartStandards.js +0 -190
- package/build/tools/getSmartStandards.js.map +0 -1
- package/build/tools/healthCheck.d.ts +0 -14
- package/build/tools/healthCheck.d.ts.map +0 -1
- package/build/tools/healthCheck.js +0 -237
- package/build/tools/healthCheck.js.map +0 -1
- package/build/tools/listAgents.d.ts +0 -10
- package/build/tools/listAgents.d.ts.map +0 -1
- package/build/tools/listAgents.js +0 -79
- package/build/tools/listAgents.js.map +0 -1
- package/build/tools/matchAgents.d.ts +0 -14
- package/build/tools/matchAgents.d.ts.map +0 -1
- package/build/tools/matchAgents.js +0 -70
- package/build/tools/matchAgents.js.map +0 -1
- package/build/tools/usePreset.d.ts +0 -23
- package/build/tools/usePreset.d.ts.map +0 -1
- package/build/tools/usePreset.js +0 -163
- package/build/tools/usePreset.js.map +0 -1
- package/src/core/autoInitializer.ts +0 -170
- package/src/core/codeValidator.ts +0 -357
- package/src/core/githubClient.ts +0 -64
- package/src/core/i18nDetector.ts +0 -357
- package/src/core/smartAgentMatcher.ts +0 -490
- package/src/core/standardsManager.ts +0 -769
- package/src/core/types.ts +0 -72
- package/src/index.ts +0 -519
- package/src/tools/analyzeProject.ts +0 -94
- package/src/tools/autoSetup.ts +0 -312
- package/src/tools/generateConfig.ts +0 -429
- package/src/tools/getCompactStandards.ts +0 -413
- package/src/tools/getSmartStandards.ts +0 -214
- package/src/tools/healthCheck.ts +0 -261
- package/src/tools/listAgents.ts +0 -91
- package/src/tools/matchAgents.ts +0 -80
- package/src/tools/usePreset.ts +0 -180
package/package.json
CHANGED
|
@@ -1,37 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mta-mcp",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MTA - 智能项目分析与编码规范管理 MCP
|
|
3
|
+
"version": "2.3.0",
|
|
4
|
+
"description": "MTA - 智能项目分析与编码规范管理 MCP 服务器,为 GitHub Copilot 和 Claude 提供项目分析、规范匹配、模板管理功能",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"require": "./dist/index.cjs",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
7
16
|
"bin": {
|
|
8
|
-
"mta": "
|
|
17
|
+
"mta": "./bin/mta.cjs"
|
|
9
18
|
},
|
|
10
19
|
"files": [
|
|
11
|
-
"
|
|
12
|
-
"
|
|
20
|
+
"bin/",
|
|
21
|
+
"dist/",
|
|
13
22
|
"standards/",
|
|
14
23
|
"agents/",
|
|
15
|
-
"common/"
|
|
24
|
+
"common/",
|
|
25
|
+
"templates/",
|
|
26
|
+
"README.md"
|
|
16
27
|
],
|
|
17
28
|
"scripts": {
|
|
18
|
-
"build": "
|
|
19
|
-
"watch": "
|
|
20
|
-
"start": "node
|
|
21
|
-
"dev": "
|
|
29
|
+
"build": "tsup",
|
|
30
|
+
"watch": "tsup --watch",
|
|
31
|
+
"start": "node bin/mta.js",
|
|
32
|
+
"dev": "tsup --watch",
|
|
22
33
|
"prepare": "npm run build",
|
|
23
|
-
"clean": "rm -rf build"
|
|
34
|
+
"clean": "rm -rf dist build",
|
|
35
|
+
"test": "vitest run",
|
|
36
|
+
"test:watch": "vitest",
|
|
37
|
+
"test:coverage": "vitest run --coverage",
|
|
38
|
+
"prepublishOnly": "npm run build && npm test"
|
|
24
39
|
},
|
|
25
40
|
"keywords": [
|
|
26
41
|
"mcp",
|
|
42
|
+
"model-context-protocol",
|
|
27
43
|
"copilot",
|
|
44
|
+
"github-copilot",
|
|
45
|
+
"claude",
|
|
28
46
|
"ai",
|
|
29
47
|
"agents",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
48
|
+
"coding-standards",
|
|
49
|
+
"project-analysis",
|
|
50
|
+
"typescript",
|
|
51
|
+
"vue",
|
|
52
|
+
"react"
|
|
32
53
|
],
|
|
33
54
|
"author": "ForLear",
|
|
34
55
|
"license": "MIT",
|
|
56
|
+
"homepage": "https://github.com/ForLear/copilot-prompts#readme",
|
|
57
|
+
"bugs": {
|
|
58
|
+
"url": "https://github.com/ForLear/copilot-prompts/issues"
|
|
59
|
+
},
|
|
35
60
|
"dependencies": {
|
|
36
61
|
"@modelcontextprotocol/sdk": "^1.24.3",
|
|
37
62
|
"axios": "^1.6.5",
|
|
@@ -39,10 +64,13 @@
|
|
|
39
64
|
},
|
|
40
65
|
"devDependencies": {
|
|
41
66
|
"@types/node": "^20.11.0",
|
|
42
|
-
"
|
|
67
|
+
"@vitest/coverage-v8": "^4.0.16",
|
|
68
|
+
"tsup": "^8.5.1",
|
|
69
|
+
"typescript": "^5.3.3",
|
|
70
|
+
"vitest": "^4.0.16"
|
|
43
71
|
},
|
|
44
72
|
"engines": {
|
|
45
|
-
"node": ">=
|
|
73
|
+
"node": ">=12.20.0"
|
|
46
74
|
},
|
|
47
75
|
"repository": {
|
|
48
76
|
"type": "git",
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { AgentMetadata } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Agent 模板生成器
|
|
4
|
-
* 用于为项目生成专属的开发 Agent,自动加载规范
|
|
5
|
-
*/
|
|
6
|
-
export interface AgentTemplateConfig {
|
|
7
|
-
projectName: string;
|
|
8
|
-
projectPath: string;
|
|
9
|
-
techStack: {
|
|
10
|
-
frameworks: string[];
|
|
11
|
-
languages: string[];
|
|
12
|
-
libraries: string[];
|
|
13
|
-
};
|
|
14
|
-
configId?: string;
|
|
15
|
-
matchedAgents: AgentMetadata[];
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* 生成项目专属 Agent 文件内容
|
|
19
|
-
*/
|
|
20
|
-
export declare function generateProjectAgent(config: AgentTemplateConfig): string;
|
|
21
|
-
/**
|
|
22
|
-
* 获取 Agent 文件路径
|
|
23
|
-
*/
|
|
24
|
-
export declare function getAgentFilePath(projectPath: string, projectName: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* 提取技术栈信息摘要
|
|
27
|
-
*/
|
|
28
|
-
export declare function extractTechStackSummary(features: any): {
|
|
29
|
-
frameworks: string[];
|
|
30
|
-
languages: string[];
|
|
31
|
-
libraries: string[];
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=agentTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentTemplate.d.ts","sourceRoot":"","sources":["../../src/core/agentTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACP,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA4JxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,GAAG;IACpD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB,CAaA"}
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import * as path from 'path';
|
|
2
|
-
/**
|
|
3
|
-
* 生成项目专属 Agent 文件内容
|
|
4
|
-
*/
|
|
5
|
-
export function generateProjectAgent(config) {
|
|
6
|
-
const { projectName, projectPath, techStack, configId, matchedAgents } = config;
|
|
7
|
-
let content = '';
|
|
8
|
-
// frontmatter
|
|
9
|
-
content += `---\n`;
|
|
10
|
-
content += `description: '${projectName} 项目开发代理 - 自动加载项目规范'\n`;
|
|
11
|
-
content += `tools: ['mcp_mta_get_smart_standards', 'mcp_mta_get_compact_standards', 'mcp_mta_get_relevant_standards', 'edit', 'search', 'new', 'runCommands', 'problems', 'changes', 'usages']\n`;
|
|
12
|
-
content += `---\n\n`;
|
|
13
|
-
// 标题和描述
|
|
14
|
-
content += `# ${projectName} 开发 Agent\n\n`;
|
|
15
|
-
content += `> 此 Agent 专为 ${projectName} 项目配置,会自动加载项目规范和最佳实践\n\n`;
|
|
16
|
-
// 🚀 自动初始化 - 核心功能
|
|
17
|
-
content += `## 🚀 自动初始化\n\n`;
|
|
18
|
-
content += `**每次对话开始时,自动执行以下操作:**\n\n`;
|
|
19
|
-
// 根据技术栈生成初始化指令
|
|
20
|
-
content += `### 1️⃣ 智能加载规范(推荐)\n\n`;
|
|
21
|
-
content += `使用 Token 优化版工具,根据当前文件类型自动加载相关规范:\n\n`;
|
|
22
|
-
content += `\`\`\`typescript\n`;
|
|
23
|
-
content += `// 根据当前编辑的文件自动识别并加载规范\n`;
|
|
24
|
-
content += `mcp_mta_get_compact_standards({\n`;
|
|
25
|
-
content += ` currentFile: "{当前文件路径}",\n`;
|
|
26
|
-
content += ` mode: "key-rules" // 推荐:只返回关键规则,节省 85% token\n`;
|
|
27
|
-
content += `})\n`;
|
|
28
|
-
content += `\`\`\`\n\n`;
|
|
29
|
-
content += `### 2️⃣ 按场景加载(特定需求时)\n\n`;
|
|
30
|
-
// 根据技术栈生成具体的调用示例
|
|
31
|
-
if (techStack.frameworks.includes('vue') || techStack.frameworks.includes('vue3')) {
|
|
32
|
-
content += `**Vue 3 开发:**\n`;
|
|
33
|
-
content += `\`\`\`typescript\n`;
|
|
34
|
-
content += `// Vue 组件开发\n`;
|
|
35
|
-
content += `mcp_mta_get_relevant_standards({ fileType: "vue" })\n\n`;
|
|
36
|
-
if (techStack.libraries.some(lib => lib.includes('element'))) {
|
|
37
|
-
content += `// 使用 Element Plus 组件\n`;
|
|
38
|
-
content += `mcp_mta_get_relevant_standards({ \n`;
|
|
39
|
-
content += ` imports: ["element-plus"]`;
|
|
40
|
-
if (configId) {
|
|
41
|
-
content += `,\n config: "${configId}"`;
|
|
42
|
-
}
|
|
43
|
-
content += ` \n})\n\n`;
|
|
44
|
-
}
|
|
45
|
-
if (techStack.libraries.includes('pinia')) {
|
|
46
|
-
content += `// Pinia 状态管理\n`;
|
|
47
|
-
content += `mcp_mta_get_relevant_standards({ imports: ["pinia"] })\n\n`;
|
|
48
|
-
}
|
|
49
|
-
content += `\`\`\`\n\n`;
|
|
50
|
-
}
|
|
51
|
-
if (techStack.frameworks.includes('flutter') || techStack.languages.includes('dart')) {
|
|
52
|
-
content += `**Flutter 开发:**\n`;
|
|
53
|
-
content += `\`\`\`typescript\n`;
|
|
54
|
-
content += `// Flutter Widget 开发\n`;
|
|
55
|
-
content += `mcp_mta_get_relevant_standards({ \n`;
|
|
56
|
-
content += ` fileType: "dart",\n`;
|
|
57
|
-
content += ` imports: ["flutter"]\n`;
|
|
58
|
-
content += `})\n\n`;
|
|
59
|
-
content += `// Dart 代码\n`;
|
|
60
|
-
content += `mcp_mta_get_relevant_standards({ fileType: "dart" })\n`;
|
|
61
|
-
content += `\`\`\`\n\n`;
|
|
62
|
-
}
|
|
63
|
-
if (techStack.frameworks.includes('react')) {
|
|
64
|
-
content += `**React 开发:**\n`;
|
|
65
|
-
content += `\`\`\`typescript\n`;
|
|
66
|
-
content += `// React 组件\n`;
|
|
67
|
-
content += `mcp_mta_get_relevant_standards({ fileType: "tsx" })\n`;
|
|
68
|
-
content += `\`\`\`\n\n`;
|
|
69
|
-
}
|
|
70
|
-
// TypeScript 通用
|
|
71
|
-
if (techStack.languages.includes('typescript')) {
|
|
72
|
-
content += `**TypeScript 代码:**\n`;
|
|
73
|
-
content += `\`\`\`typescript\n`;
|
|
74
|
-
content += `mcp_mta_get_relevant_standards({ fileType: "ts" })\n`;
|
|
75
|
-
content += `\`\`\`\n\n`;
|
|
76
|
-
}
|
|
77
|
-
content += `---\n\n`;
|
|
78
|
-
// 项目信息
|
|
79
|
-
content += `## 📋 项目信息\n\n`;
|
|
80
|
-
content += `- **项目名称**: ${projectName}\n`;
|
|
81
|
-
content += `- **项目路径**: \`${projectPath}\`\n`;
|
|
82
|
-
content += `- **技术栈**:\n`;
|
|
83
|
-
content += ` - 框架: ${techStack.frameworks.join(', ') || '未检测到'}\n`;
|
|
84
|
-
content += ` - 语言: ${techStack.languages.join(', ') || '未检测到'}\n`;
|
|
85
|
-
content += ` - 库: ${techStack.libraries.join(', ') || '未检测到'}\n`;
|
|
86
|
-
if (configId) {
|
|
87
|
-
content += `- **配置方案**: ${configId}\n`;
|
|
88
|
-
}
|
|
89
|
-
content += `\n`;
|
|
90
|
-
// 匹配的 Agents 信息
|
|
91
|
-
if (matchedAgents.length > 0) {
|
|
92
|
-
content += `### 引用的通用 Agents\n\n`;
|
|
93
|
-
content += `本项目基于以下通用 Agents 配置:\n\n`;
|
|
94
|
-
matchedAgents.forEach(agent => {
|
|
95
|
-
content += `- **${agent.title}** (\`${agent.id}\`)\n`;
|
|
96
|
-
if (agent.description) {
|
|
97
|
-
content += ` - ${agent.description}\n`;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
content += `\n`;
|
|
101
|
-
}
|
|
102
|
-
content += `---\n\n`;
|
|
103
|
-
// 强制工作流
|
|
104
|
-
content += `## ⚠️ 强制工作流\n\n`;
|
|
105
|
-
content += `**在编写任何代码前,必须:**\n\n`;
|
|
106
|
-
content += `1. ✅ 调用上述 MCP 工具加载相关规范\n`;
|
|
107
|
-
content += `2. ✅ 确认规范加载成功\n`;
|
|
108
|
-
content += `3. ✅ 严格遵循规范编写代码\n`;
|
|
109
|
-
content += `4. ✅ 编写完成后进行自检\n\n`;
|
|
110
|
-
content += `### 禁止行为\n\n`;
|
|
111
|
-
content += `- ❌ 未加载规范就开始编写代码\n`;
|
|
112
|
-
content += `- ❌ 忽略规范中的强制要求\n`;
|
|
113
|
-
content += `- ❌ 使用不符合项目规范的代码风格\n\n`;
|
|
114
|
-
content += `---\n\n`;
|
|
115
|
-
// 使用提示
|
|
116
|
-
content += `## 💡 使用提示\n\n`;
|
|
117
|
-
content += `1. **选择此 Agent**: 在 Copilot Chat 中输入 \`@${projectName.toLowerCase()}-dev\`\n`;
|
|
118
|
-
content += `2. **自动加载**: Agent 会自动加载项目规范,无需手动调用工具\n`;
|
|
119
|
-
content += `3. **开始编码**: 直接描述需求,Agent 会遵循项目规范编写代码\n\n`;
|
|
120
|
-
content += `### 常见场景\n\n`;
|
|
121
|
-
content += `- **创建新组件**: "创建一个用户列表组件"\n`;
|
|
122
|
-
content += `- **修复 Bug**: "修复登录表单验证问题"\n`;
|
|
123
|
-
content += `- **重构代码**: "优化这段代码的性能"\n`;
|
|
124
|
-
content += `- **添加功能**: "添加导出功能"\n\n`;
|
|
125
|
-
content += `---\n\n`;
|
|
126
|
-
// 元信息
|
|
127
|
-
content += `## 📝 元信息\n\n`;
|
|
128
|
-
content += `- **生成时间**: ${new Date().toISOString().split('T')[0]}\n`;
|
|
129
|
-
content += `- **生成工具**: Copilot Prompts MCP Server\n`;
|
|
130
|
-
content += `- **Agent 类型**: 项目专属开发 Agent\n`;
|
|
131
|
-
content += `- **维护**: 由 MCP 工具自动更新,如需修改请重新生成\n\n`;
|
|
132
|
-
content += `---\n\n`;
|
|
133
|
-
content += `**Powered by [Copilot Prompts](https://github.com/yourusername/copilot-prompts)**\n`;
|
|
134
|
-
return content;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* 获取 Agent 文件路径
|
|
138
|
-
*/
|
|
139
|
-
export function getAgentFilePath(projectPath, projectName) {
|
|
140
|
-
const agentFileName = `${projectName.toLowerCase().replace(/[^a-z0-9]+/g, '-')}-dev.agent.md`;
|
|
141
|
-
return path.join(projectPath, '.github', 'agents', agentFileName);
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* 提取技术栈信息摘要
|
|
145
|
-
*/
|
|
146
|
-
export function extractTechStackSummary(features) {
|
|
147
|
-
return {
|
|
148
|
-
frameworks: features.frameworks || [],
|
|
149
|
-
languages: features.languages || [],
|
|
150
|
-
libraries: [...(features.tools || []), ...(features.keywords || [])]
|
|
151
|
-
.filter((item) => item.includes('element') ||
|
|
152
|
-
item.includes('pinia') ||
|
|
153
|
-
item.includes('router') ||
|
|
154
|
-
item.includes('axios') ||
|
|
155
|
-
item.includes('vite'))
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=agentTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentTemplate.js","sourceRoot":"","sources":["../../src/core/agentTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Logger } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* 自动初始化器
|
|
4
|
-
* 在工具调用前检查项目配置,如果不存在则自动生成
|
|
5
|
-
*/
|
|
6
|
-
export declare class AutoInitializer {
|
|
7
|
-
private logger?;
|
|
8
|
-
private initialized;
|
|
9
|
-
constructor(logger?: Logger | undefined);
|
|
10
|
-
/**
|
|
11
|
-
* 检查并初始化项目配置
|
|
12
|
-
* @param workspacePath 工作区路径
|
|
13
|
-
* @returns 是否需要初始化(返回 true 表示已执行初始化)
|
|
14
|
-
*/
|
|
15
|
-
ensureProjectConfig(workspacePath?: string): Promise<{
|
|
16
|
-
needsInit: boolean;
|
|
17
|
-
initialized: boolean;
|
|
18
|
-
message: string;
|
|
19
|
-
}>;
|
|
20
|
-
/**
|
|
21
|
-
* 检测工作区路径
|
|
22
|
-
*/
|
|
23
|
-
private detectWorkspacePath;
|
|
24
|
-
/**
|
|
25
|
-
* 判断是否是有效的项目目录
|
|
26
|
-
*/
|
|
27
|
-
private isValidProject;
|
|
28
|
-
/**
|
|
29
|
-
* 重置初始化状态(用于测试)
|
|
30
|
-
*/
|
|
31
|
-
reset(): void;
|
|
32
|
-
private log;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=autoInitializer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoInitializer.d.ts","sourceRoot":"","sources":["../../src/core/autoInitializer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC;;;GAGG;AACH,qBAAa,eAAe;IAGZ,OAAO,CAAC,MAAM,CAAC;IAF3B,OAAO,CAAC,WAAW,CAAmC;gBAElC,MAAM,CAAC,EAAE,MAAM,YAAA;IAEnC;;;;OAIG;IACG,mBAAmB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IA8EF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,GAAG;CAOd"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import { analyzeProject } from '../tools/analyzeProject.js';
|
|
4
|
-
import { generateConfig } from '../tools/generateConfig.js';
|
|
5
|
-
/**
|
|
6
|
-
* 自动初始化器
|
|
7
|
-
* 在工具调用前检查项目配置,如果不存在则自动生成
|
|
8
|
-
*/
|
|
9
|
-
export class AutoInitializer {
|
|
10
|
-
logger;
|
|
11
|
-
initialized = new Map();
|
|
12
|
-
constructor(logger) {
|
|
13
|
-
this.logger = logger;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* 检查并初始化项目配置
|
|
17
|
-
* @param workspacePath 工作区路径
|
|
18
|
-
* @returns 是否需要初始化(返回 true 表示已执行初始化)
|
|
19
|
-
*/
|
|
20
|
-
async ensureProjectConfig(workspacePath) {
|
|
21
|
-
// 检测工作区路径
|
|
22
|
-
const projectPath = workspacePath || this.detectWorkspacePath();
|
|
23
|
-
if (!projectPath) {
|
|
24
|
-
return {
|
|
25
|
-
needsInit: false,
|
|
26
|
-
initialized: false,
|
|
27
|
-
message: '未检测到工作区路径'
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
// 检查是否已经初始化过(避免重复)
|
|
31
|
-
if (this.initialized.get(projectPath)) {
|
|
32
|
-
return {
|
|
33
|
-
needsInit: false,
|
|
34
|
-
initialized: true,
|
|
35
|
-
message: `项目已配置: ${path.basename(projectPath)}`
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
// 检查是否存在配置文件
|
|
39
|
-
const configPath = path.join(projectPath, '.github', 'copilot-instructions.md');
|
|
40
|
-
const hasConfig = fs.existsSync(configPath);
|
|
41
|
-
if (hasConfig) {
|
|
42
|
-
this.initialized.set(projectPath, true);
|
|
43
|
-
return {
|
|
44
|
-
needsInit: false,
|
|
45
|
-
initialized: true,
|
|
46
|
-
message: `项目已有配置: ${path.basename(projectPath)}`
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
// 需要初始化
|
|
50
|
-
this.log(`🔍 检测到项目未配置,开始自动分析和生成配置...`);
|
|
51
|
-
this.log(`📁 项目路径: ${projectPath}`);
|
|
52
|
-
try {
|
|
53
|
-
// 1. 分析项目
|
|
54
|
-
this.log('1️⃣ 分析项目技术栈...');
|
|
55
|
-
const analysisResult = await analyzeProject({ projectPath });
|
|
56
|
-
if (analysisResult.content?.[0]?.text) {
|
|
57
|
-
const analysis = JSON.parse(analysisResult.content[0].text);
|
|
58
|
-
this.log(`✅ 检测到: ${analysis.frameworks?.join(', ') || '未知技术栈'}`);
|
|
59
|
-
// 2. 生成配置
|
|
60
|
-
this.log('2️⃣ 生成项目配置文件...');
|
|
61
|
-
await generateConfig({
|
|
62
|
-
projectPath,
|
|
63
|
-
autoMatch: true
|
|
64
|
-
});
|
|
65
|
-
this.initialized.set(projectPath, true);
|
|
66
|
-
return {
|
|
67
|
-
needsInit: true,
|
|
68
|
-
initialized: true,
|
|
69
|
-
message: `✅ 项目配置已自动生成\n📁 路径: ${configPath}\n🎯 技术栈: ${analysis.frameworks?.join(', ')}`
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
this.log(`❌ 自动初始化失败: ${error}`);
|
|
75
|
-
return {
|
|
76
|
-
needsInit: true,
|
|
77
|
-
initialized: false,
|
|
78
|
-
message: `⚠️ 自动初始化失败: ${error instanceof Error ? error.message : String(error)}`
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
needsInit: true,
|
|
83
|
-
initialized: false,
|
|
84
|
-
message: '⚠️ 无法完成自动初始化'
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* 检测工作区路径
|
|
89
|
-
*/
|
|
90
|
-
detectWorkspacePath() {
|
|
91
|
-
// 优先级 1: 环境变量
|
|
92
|
-
if (process.env.WORKSPACE_PATH) {
|
|
93
|
-
return process.env.WORKSPACE_PATH;
|
|
94
|
-
}
|
|
95
|
-
// 优先级 2: 当前工作目录
|
|
96
|
-
const cwd = process.cwd();
|
|
97
|
-
if (this.isValidProject(cwd)) {
|
|
98
|
-
return cwd;
|
|
99
|
-
}
|
|
100
|
-
// 优先级 3: 尝试从常见位置检测
|
|
101
|
-
const possiblePaths = [
|
|
102
|
-
path.join(cwd, '..'),
|
|
103
|
-
path.join(cwd, '../..'),
|
|
104
|
-
];
|
|
105
|
-
for (const possiblePath of possiblePaths) {
|
|
106
|
-
if (this.isValidProject(possiblePath)) {
|
|
107
|
-
return possiblePath;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* 判断是否是有效的项目目录
|
|
114
|
-
*/
|
|
115
|
-
isValidProject(dirPath) {
|
|
116
|
-
if (!fs.existsSync(dirPath)) {
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
// 检查是否有项目标志文件
|
|
120
|
-
const markers = [
|
|
121
|
-
'package.json',
|
|
122
|
-
'pubspec.yaml',
|
|
123
|
-
'pom.xml',
|
|
124
|
-
'go.mod',
|
|
125
|
-
'Cargo.toml',
|
|
126
|
-
'.git'
|
|
127
|
-
];
|
|
128
|
-
return markers.some(marker => fs.existsSync(path.join(dirPath, marker)));
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* 重置初始化状态(用于测试)
|
|
132
|
-
*/
|
|
133
|
-
reset() {
|
|
134
|
-
this.initialized.clear();
|
|
135
|
-
}
|
|
136
|
-
log(message) {
|
|
137
|
-
if (this.logger) {
|
|
138
|
-
this.logger.log(message);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
console.error(`[AutoInit] ${message}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=autoInitializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoInitializer.js","sourceRoot":"","sources":["../../src/core/autoInitializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 代码验证器 (v1.1.0)
|
|
3
|
-
* 用于检测和防止常见的代码生成错误
|
|
4
|
-
*/
|
|
5
|
-
import { ConsoleLogger } from './types.js';
|
|
6
|
-
/**
|
|
7
|
-
* 验证结果接口
|
|
8
|
-
*/
|
|
9
|
-
export interface ValidationResult {
|
|
10
|
-
isValid: boolean;
|
|
11
|
-
errors: ValidationError[];
|
|
12
|
-
warnings: ValidationWarning[];
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* 验证错误
|
|
16
|
-
*/
|
|
17
|
-
export interface ValidationError {
|
|
18
|
-
type: 'syntax' | 'completeness' | 'compatibility';
|
|
19
|
-
message: string;
|
|
20
|
-
line?: number;
|
|
21
|
-
suggestion?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* 验证警告
|
|
25
|
-
*/
|
|
26
|
-
export interface ValidationWarning {
|
|
27
|
-
type: 'best-practice' | 'performance' | 'compatibility' | 'completeness';
|
|
28
|
-
message: string;
|
|
29
|
-
suggestion?: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 代码验证器类
|
|
33
|
-
*/
|
|
34
|
-
export declare class CodeValidator {
|
|
35
|
-
private logger;
|
|
36
|
-
constructor(logger?: ConsoleLogger);
|
|
37
|
-
/**
|
|
38
|
-
* 验证生成的配置文件内容
|
|
39
|
-
*/
|
|
40
|
-
validateConfigContent(content: string): ValidationResult;
|
|
41
|
-
/**
|
|
42
|
-
* 检查重复的HTML标签
|
|
43
|
-
*/
|
|
44
|
-
private checkDuplicateTags;
|
|
45
|
-
/**
|
|
46
|
-
* 检查括号匹配
|
|
47
|
-
*/
|
|
48
|
-
private checkBracketMatching;
|
|
49
|
-
/**
|
|
50
|
-
* 检查 Markdown 语法
|
|
51
|
-
*/
|
|
52
|
-
private checkMarkdownSyntax;
|
|
53
|
-
/**
|
|
54
|
-
* 检查必要章节完整性
|
|
55
|
-
*/
|
|
56
|
-
private checkRequiredSections;
|
|
57
|
-
/**
|
|
58
|
-
* 检查自定义内容标记
|
|
59
|
-
*/
|
|
60
|
-
private checkCustomContentMarkers;
|
|
61
|
-
/**
|
|
62
|
-
* 验证 Agent 内容
|
|
63
|
-
*/
|
|
64
|
-
validateAgentContent(content: string, agentId: string): ValidationResult;
|
|
65
|
-
/**
|
|
66
|
-
* 生成验证报告
|
|
67
|
-
*/
|
|
68
|
-
generateValidationReport(result: ValidationResult): string;
|
|
69
|
-
/**
|
|
70
|
-
* 尝试自动修复简单的语法错误
|
|
71
|
-
*/
|
|
72
|
-
attemptAutoFix(content: string): {
|
|
73
|
-
fixed: boolean;
|
|
74
|
-
content: string;
|
|
75
|
-
changes: string[];
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* 创建默认验证器实例
|
|
80
|
-
*/
|
|
81
|
-
export declare function createValidator(logger?: ConsoleLogger): CodeValidator;
|
|
82
|
-
//# sourceMappingURL=codeValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codeValidator.d.ts","sourceRoot":"","sources":["../../src/core/codeValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,CAAC,EAAE,aAAa;IAIlC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IA0BxD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyE5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAyBxE;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAsC1D;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;CAyB1F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,aAAa,CAErE"}
|