mta-mcp 1.8.1
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/CHANGELOG.md +457 -0
- package/README.md +680 -0
- package/archive/docs/CLAUDE_SETUP.md +103 -0
- package/archive/docs/DEVELOPMENT_ROADMAP.md +186 -0
- package/archive/docs/GETTING_STARTED.md +337 -0
- package/archive/docs/MIGRATION_GUIDE.md +189 -0
- package/archive/docs/TROUBLESHOOTING.md +386 -0
- package/archive/docs/USAGE_GUIDE.md +739 -0
- package/archive/tests/test-cloud-dev.cjs +158 -0
- package/archive/tests/test-mcp.sh +46 -0
- package/archive/tests/test-miniprogram.cjs +94 -0
- package/archive/tests/test-phase2.cjs +144 -0
- package/archive/tests/test-phase3.cjs +121 -0
- package/archive/tests/test-phase4.cjs +249 -0
- package/archive/tests/test-standards.cjs +111 -0
- package/archive/tests/test-vitasage-config.cjs +25 -0
- package/build/core/agentTemplate.d.ts +33 -0
- package/build/core/agentTemplate.d.ts.map +1 -0
- package/build/core/agentTemplate.js +158 -0
- package/build/core/agentTemplate.js.map +1 -0
- package/build/core/codeValidator.d.ts +82 -0
- package/build/core/codeValidator.d.ts.map +1 -0
- package/build/core/codeValidator.js +287 -0
- package/build/core/codeValidator.js.map +1 -0
- package/build/core/githubClient.d.ts +26 -0
- package/build/core/githubClient.d.ts.map +1 -0
- package/build/core/githubClient.js +60 -0
- package/build/core/githubClient.js.map +1 -0
- package/build/core/i18nDetector.d.ts +47 -0
- package/build/core/i18nDetector.d.ts.map +1 -0
- package/build/core/i18nDetector.js +314 -0
- package/build/core/i18nDetector.js.map +1 -0
- package/build/core/projectContextManager.d.ts +39 -0
- package/build/core/projectContextManager.d.ts.map +1 -0
- package/build/core/projectContextManager.js +147 -0
- package/build/core/projectContextManager.js.map +1 -0
- package/build/core/smartAgentMatcher.d.ts +51 -0
- package/build/core/smartAgentMatcher.d.ts.map +1 -0
- package/build/core/smartAgentMatcher.js +493 -0
- package/build/core/smartAgentMatcher.js.map +1 -0
- package/build/core/standardsManager.d.ts +130 -0
- package/build/core/standardsManager.d.ts.map +1 -0
- package/build/core/standardsManager.js +595 -0
- package/build/core/standardsManager.js.map +1 -0
- package/build/core/types.d.ts +55 -0
- package/build/core/types.d.ts.map +1 -0
- package/build/core/types.js +21 -0
- package/build/core/types.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +463 -0
- package/build/index.js.map +1 -0
- package/build/tools/analyzeProject.d.ts +12 -0
- package/build/tools/analyzeProject.d.ts.map +1 -0
- package/build/tools/analyzeProject.js +85 -0
- package/build/tools/analyzeProject.js.map +1 -0
- package/build/tools/autoSetup.d.ts +15 -0
- package/build/tools/autoSetup.d.ts.map +1 -0
- package/build/tools/autoSetup.js +291 -0
- package/build/tools/autoSetup.js.map +1 -0
- package/build/tools/generateConfig.d.ts +16 -0
- package/build/tools/generateConfig.d.ts.map +1 -0
- package/build/tools/generateConfig.js +379 -0
- package/build/tools/generateConfig.js.map +1 -0
- package/build/tools/generateProjectAgent.d.ts +15 -0
- package/build/tools/generateProjectAgent.d.ts.map +1 -0
- package/build/tools/generateProjectAgent.js +348 -0
- package/build/tools/generateProjectAgent.js.map +1 -0
- package/build/tools/getCompactStandards.d.ts +20 -0
- package/build/tools/getCompactStandards.d.ts.map +1 -0
- package/build/tools/getCompactStandards.js +367 -0
- package/build/tools/getCompactStandards.js.map +1 -0
- package/build/tools/getSmartStandards.d.ts +14 -0
- package/build/tools/getSmartStandards.d.ts.map +1 -0
- package/build/tools/getSmartStandards.js +184 -0
- package/build/tools/getSmartStandards.js.map +1 -0
- package/build/tools/healthCheck.d.ts +14 -0
- package/build/tools/healthCheck.d.ts.map +1 -0
- package/build/tools/healthCheck.js +237 -0
- package/build/tools/healthCheck.js.map +1 -0
- package/build/tools/listAgents.d.ts +10 -0
- package/build/tools/listAgents.d.ts.map +1 -0
- package/build/tools/listAgents.js +79 -0
- package/build/tools/listAgents.js.map +1 -0
- package/build/tools/matchAgents.d.ts +14 -0
- package/build/tools/matchAgents.d.ts.map +1 -0
- package/build/tools/matchAgents.js +70 -0
- package/build/tools/matchAgents.js.map +1 -0
- package/build/tools/usePreset.d.ts +23 -0
- package/build/tools/usePreset.d.ts.map +1 -0
- package/build/tools/usePreset.js +163 -0
- package/build/tools/usePreset.js.map +1 -0
- package/generate-project-config.cjs +97 -0
- package/package.json +45 -0
- package/regenerate-vitasage.sh +30 -0
- package/src/core/codeValidator.ts +357 -0
- package/src/core/githubClient.ts +64 -0
- package/src/core/i18nDetector.ts +357 -0
- package/src/core/smartAgentMatcher.ts +490 -0
- package/src/core/standardsManager.ts +763 -0
- package/src/core/types.ts +72 -0
- package/src/index.ts +519 -0
- package/src/tools/analyzeProject.ts +94 -0
- package/src/tools/autoSetup.ts +312 -0
- package/src/tools/generateConfig.ts +429 -0
- package/src/tools/getCompactStandards.ts +413 -0
- package/src/tools/getSmartStandards.ts +205 -0
- package/src/tools/healthCheck.ts +261 -0
- package/src/tools/listAgents.ts +91 -0
- package/src/tools/matchAgents.ts +80 -0
- package/src/tools/usePreset.ts +180 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { SmartAgentMatcher } from '../core/smartAgentMatcher.js';
|
|
4
|
+
import { I18nDetector } from '../core/i18nDetector.js';
|
|
5
|
+
import { ConsoleLogger } from '../core/types.js';
|
|
6
|
+
/**
|
|
7
|
+
* 分析项目工具(Phase 4 增强:支持自动检测 + 国际化检测)
|
|
8
|
+
*/
|
|
9
|
+
export async function analyzeProject(args) {
|
|
10
|
+
const logger = new ConsoleLogger();
|
|
11
|
+
try {
|
|
12
|
+
// 自动检测项目路径
|
|
13
|
+
let projectPath = args.projectPath;
|
|
14
|
+
if (!projectPath) {
|
|
15
|
+
// 使用当前工作目录
|
|
16
|
+
projectPath = process.cwd();
|
|
17
|
+
logger.log(`📍 未指定路径,使用当前目录: ${projectPath}`);
|
|
18
|
+
}
|
|
19
|
+
// 验证路径
|
|
20
|
+
if (!fs.existsSync(projectPath)) {
|
|
21
|
+
return {
|
|
22
|
+
content: [{
|
|
23
|
+
type: 'text',
|
|
24
|
+
text: JSON.stringify({
|
|
25
|
+
error: `项目路径不存在: ${projectPath}`
|
|
26
|
+
}, null, 2)
|
|
27
|
+
}]
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// 创建匹配器并分析项目
|
|
31
|
+
const matcher = new SmartAgentMatcher(logger);
|
|
32
|
+
// 模拟 WorkspaceFolder 接口
|
|
33
|
+
const workspaceFolder = {
|
|
34
|
+
uri: { fsPath: projectPath },
|
|
35
|
+
name: path.basename(projectPath),
|
|
36
|
+
index: 0
|
|
37
|
+
};
|
|
38
|
+
const features = await matcher.analyzeProject(workspaceFolder);
|
|
39
|
+
// 检测国际化配置
|
|
40
|
+
logger.log(`🌍 检测国际化配置...`);
|
|
41
|
+
const i18nConfig = await I18nDetector.detect(projectPath);
|
|
42
|
+
// 返回分析结果
|
|
43
|
+
return {
|
|
44
|
+
content: [{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: JSON.stringify({
|
|
47
|
+
success: true,
|
|
48
|
+
projectPath: projectPath,
|
|
49
|
+
projectName: path.basename(projectPath),
|
|
50
|
+
autoDetected: !args.projectPath,
|
|
51
|
+
features: {
|
|
52
|
+
projectType: features.projectType,
|
|
53
|
+
frameworks: features.frameworks,
|
|
54
|
+
languages: features.languages,
|
|
55
|
+
tools: features.tools,
|
|
56
|
+
keywords: features.keywords
|
|
57
|
+
},
|
|
58
|
+
i18n: {
|
|
59
|
+
enabled: i18nConfig.enabled,
|
|
60
|
+
type: i18nConfig.type,
|
|
61
|
+
configFiles: i18nConfig.configFiles,
|
|
62
|
+
messageFiles: i18nConfig.messageFiles,
|
|
63
|
+
method: i18nConfig.method,
|
|
64
|
+
example: i18nConfig.example,
|
|
65
|
+
tips: i18nConfig.tips
|
|
66
|
+
},
|
|
67
|
+
summary: `检测到 ${features.projectType} 项目,使用 ${features.frameworks.join(', ')} 框架。` +
|
|
68
|
+
`国际化:${i18nConfig.enabled ? `已配置 (${i18nConfig.type})` : '未配置'}`
|
|
69
|
+
}, null, 2)
|
|
70
|
+
}]
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
logger.error(`分析项目失败: ${error}`);
|
|
75
|
+
return {
|
|
76
|
+
content: [{
|
|
77
|
+
type: 'text',
|
|
78
|
+
text: JSON.stringify({
|
|
79
|
+
error: error instanceof Error ? error.message : String(error)
|
|
80
|
+
}, null, 2)
|
|
81
|
+
}]
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=analyzeProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzeProject.js","sourceRoot":"","sources":["../../src/tools/analyzeProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自动配置工具
|
|
3
|
+
* 一键配置 MCP 服务器到 VS Code 工作区
|
|
4
|
+
* v1.2.0: 新增自动生成项目 copilot-instructions.md
|
|
5
|
+
*/
|
|
6
|
+
export declare function autoSetup(args: {
|
|
7
|
+
workspacePath?: string;
|
|
8
|
+
generateInstructions?: boolean;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
content: Array<{
|
|
11
|
+
type: string;
|
|
12
|
+
text: string;
|
|
13
|
+
}>;
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=autoSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoSetup.d.ts","sourceRoot":"","sources":["../../src/tools/autoSetup.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,OAAO,CAAC;IACR,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC,CAuSD"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { ConsoleLogger } from '../core/types.js';
|
|
4
|
+
import { analyzeProject } from './analyzeProject.js';
|
|
5
|
+
import { generateConfig } from './generateConfig.js';
|
|
6
|
+
/**
|
|
7
|
+
* 自动配置工具
|
|
8
|
+
* 一键配置 MCP 服务器到 VS Code 工作区
|
|
9
|
+
* v1.2.0: 新增自动生成项目 copilot-instructions.md
|
|
10
|
+
*/
|
|
11
|
+
export async function autoSetup(args) {
|
|
12
|
+
const logger = new ConsoleLogger();
|
|
13
|
+
try {
|
|
14
|
+
// 确定工作区路径
|
|
15
|
+
const workspacePath = args.workspacePath || process.cwd();
|
|
16
|
+
if (!fs.existsSync(workspacePath)) {
|
|
17
|
+
return {
|
|
18
|
+
content: [{
|
|
19
|
+
type: 'text',
|
|
20
|
+
text: JSON.stringify({
|
|
21
|
+
error: `工作区路径不存在: ${workspacePath}`
|
|
22
|
+
}, null, 2)
|
|
23
|
+
}]
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const results = {
|
|
27
|
+
workspacePath,
|
|
28
|
+
steps: [],
|
|
29
|
+
warnings: []
|
|
30
|
+
};
|
|
31
|
+
logger.log('🚀 开始自动配置 MCP 服务器...');
|
|
32
|
+
// Step 1: 创建 .vscode 目录
|
|
33
|
+
const vscodeDir = path.join(workspacePath, '.vscode');
|
|
34
|
+
if (!fs.existsSync(vscodeDir)) {
|
|
35
|
+
fs.mkdirSync(vscodeDir, { recursive: true });
|
|
36
|
+
results.steps.push({ step: '创建 .vscode 目录', status: 'success' });
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
results.steps.push({ step: '检测到已有 .vscode 目录', status: 'skip' });
|
|
40
|
+
}
|
|
41
|
+
// Step 2: 检测 MCP 服务器路径
|
|
42
|
+
let mcpServerPath = '';
|
|
43
|
+
const possiblePaths = [
|
|
44
|
+
path.join(workspacePath, 'mcp-server/build/index.js'),
|
|
45
|
+
path.join(workspacePath, '../copilot-prompts/mcp-server/build/index.js'),
|
|
46
|
+
path.join(workspacePath, 'copilot-prompts/mcp-server/build/index.js')
|
|
47
|
+
];
|
|
48
|
+
for (const p of possiblePaths) {
|
|
49
|
+
if (fs.existsSync(p)) {
|
|
50
|
+
mcpServerPath = p;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (!mcpServerPath) {
|
|
55
|
+
// 尝试查找 src/index.ts (开发模式)
|
|
56
|
+
const srcPath = path.join(workspacePath, 'mcp-server/src/index.ts');
|
|
57
|
+
if (fs.existsSync(srcPath)) {
|
|
58
|
+
results.warnings.push('检测到开发模式,请先运行 npm run build 编译服务器');
|
|
59
|
+
mcpServerPath = '${workspaceFolder}/mcp-server/build/index.js';
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return {
|
|
63
|
+
content: [{
|
|
64
|
+
type: 'text',
|
|
65
|
+
text: JSON.stringify({
|
|
66
|
+
error: 'MCP 服务器未找到',
|
|
67
|
+
hint: '请确保 mcp-server/build/index.js 存在,或运行 npm run build'
|
|
68
|
+
}, null, 2)
|
|
69
|
+
}]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const relativePath = mcpServerPath.startsWith(workspacePath)
|
|
74
|
+
? '${workspaceFolder}/' + path.relative(workspacePath, mcpServerPath)
|
|
75
|
+
: mcpServerPath;
|
|
76
|
+
results.steps.push({
|
|
77
|
+
step: '检测 MCP 服务器路径',
|
|
78
|
+
status: 'success',
|
|
79
|
+
detail: relativePath
|
|
80
|
+
});
|
|
81
|
+
// Step 3: 创建或更新 mcp.json
|
|
82
|
+
const mcpJsonPath = path.join(vscodeDir, 'mcp.json');
|
|
83
|
+
const mcpConfig = {
|
|
84
|
+
servers: {
|
|
85
|
+
'copilot-prompts': {
|
|
86
|
+
command: 'node',
|
|
87
|
+
args: [relativePath],
|
|
88
|
+
env: {},
|
|
89
|
+
autoStart: true
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
if (fs.existsSync(mcpJsonPath)) {
|
|
94
|
+
// 合并现有配置
|
|
95
|
+
try {
|
|
96
|
+
const existingConfig = JSON.parse(fs.readFileSync(mcpJsonPath, 'utf-8'));
|
|
97
|
+
// 检查是否使用了旧格式 mcpServers
|
|
98
|
+
if (existingConfig.mcpServers && !existingConfig.servers) {
|
|
99
|
+
results.warnings.push('检测到旧版配置格式(mcpServers),已自动升级为新格式(servers)');
|
|
100
|
+
existingConfig.servers = existingConfig.mcpServers;
|
|
101
|
+
delete existingConfig.mcpServers;
|
|
102
|
+
}
|
|
103
|
+
if (existingConfig.servers?.['copilot-prompts']) {
|
|
104
|
+
// 确保现有配置包含必要字段
|
|
105
|
+
existingConfig.servers['copilot-prompts'] = {
|
|
106
|
+
...mcpConfig.servers['copilot-prompts'],
|
|
107
|
+
...existingConfig.servers['copilot-prompts']
|
|
108
|
+
};
|
|
109
|
+
fs.writeFileSync(mcpJsonPath, JSON.stringify(existingConfig, null, 2));
|
|
110
|
+
results.steps.push({ step: '更新 mcp.json', status: 'success' });
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
existingConfig.servers = {
|
|
114
|
+
...existingConfig.servers,
|
|
115
|
+
...mcpConfig.servers
|
|
116
|
+
};
|
|
117
|
+
fs.writeFileSync(mcpJsonPath, JSON.stringify(existingConfig, null, 2));
|
|
118
|
+
results.steps.push({ step: '合并配置到 mcp.json', status: 'success' });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2));
|
|
123
|
+
results.steps.push({ step: '重新创建 mcp.json', status: 'success' });
|
|
124
|
+
results.warnings.push(`原配置文件解析失败: ${err}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2));
|
|
129
|
+
results.steps.push({ step: '创建 mcp.json', status: 'success' });
|
|
130
|
+
}
|
|
131
|
+
// Step 4: 创建或更新 settings.json
|
|
132
|
+
const settingsJsonPath = path.join(vscodeDir, 'settings.json');
|
|
133
|
+
const mcpSettings = {
|
|
134
|
+
'github.copilot.chat.mcp.enabled': true,
|
|
135
|
+
'github.copilot.chat.mcp.configFile': '${workspaceFolder}/.vscode/mcp.json',
|
|
136
|
+
'github.copilot.chat.mcp.autoStart': true
|
|
137
|
+
};
|
|
138
|
+
if (fs.existsSync(settingsJsonPath)) {
|
|
139
|
+
try {
|
|
140
|
+
const existingSettings = JSON.parse(fs.readFileSync(settingsJsonPath, 'utf-8'));
|
|
141
|
+
const updated = { ...existingSettings, ...mcpSettings };
|
|
142
|
+
// 确保 JSON 格式正确,添加结尾换行
|
|
143
|
+
fs.writeFileSync(settingsJsonPath, JSON.stringify(updated, null, 2) + '\n');
|
|
144
|
+
results.steps.push({ step: '更新 settings.json', status: 'success' });
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
fs.writeFileSync(settingsJsonPath, JSON.stringify(mcpSettings, null, 2) + '\n');
|
|
148
|
+
results.steps.push({ step: '重新创建 settings.json', status: 'success' });
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
fs.writeFileSync(settingsJsonPath, JSON.stringify(mcpSettings, null, 2) + '\n');
|
|
153
|
+
results.steps.push({ step: '创建 settings.json', status: 'success' });
|
|
154
|
+
}
|
|
155
|
+
// Step 5: 创建 extensions.json (推荐扩展)
|
|
156
|
+
const extensionsJsonPath = path.join(vscodeDir, 'extensions.json');
|
|
157
|
+
const recommendedExtensions = {
|
|
158
|
+
recommendations: [
|
|
159
|
+
'github.copilot',
|
|
160
|
+
'github.copilot-chat'
|
|
161
|
+
]
|
|
162
|
+
};
|
|
163
|
+
if (!fs.existsSync(extensionsJsonPath)) {
|
|
164
|
+
fs.writeFileSync(extensionsJsonPath, JSON.stringify(recommendedExtensions, null, 2));
|
|
165
|
+
results.steps.push({ step: '创建 extensions.json', status: 'success' });
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
results.steps.push({ step: 'extensions.json 已存在', status: 'skip' });
|
|
169
|
+
}
|
|
170
|
+
// Step 6: 添加到 .gitignore (可选)
|
|
171
|
+
const gitignorePath = path.join(workspacePath, '.gitignore');
|
|
172
|
+
if (fs.existsSync(gitignorePath)) {
|
|
173
|
+
const gitignoreContent = fs.readFileSync(gitignorePath, 'utf-8');
|
|
174
|
+
if (!gitignoreContent.includes('.vscode/mcp.json')) {
|
|
175
|
+
const updatedContent = gitignoreContent + '\n# MCP 配置(本地)\n.vscode/mcp.json\n';
|
|
176
|
+
fs.writeFileSync(gitignorePath, updatedContent);
|
|
177
|
+
results.steps.push({ step: '添加到 .gitignore', status: 'success' });
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
results.steps.push({ step: '.gitignore 已包含配置', status: 'skip' });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
results.warnings.push('未检测到 .gitignore,建议手动添加 .vscode/mcp.json');
|
|
185
|
+
}
|
|
186
|
+
// Step 7: 自动分析项目并生成 copilot-instructions.md
|
|
187
|
+
const generateInstructions = args.generateInstructions !== false; // 默认 true
|
|
188
|
+
if (generateInstructions) {
|
|
189
|
+
logger.log('🔍 分析项目并生成 copilot-instructions.md...');
|
|
190
|
+
try {
|
|
191
|
+
// 分析项目以推荐 Agents
|
|
192
|
+
const analysisResult = await analyzeProject({ projectPath: workspacePath });
|
|
193
|
+
const analysisContent = analysisResult.content[0];
|
|
194
|
+
if (analysisContent.type === 'text') {
|
|
195
|
+
const analysisData = JSON.parse(analysisContent.text);
|
|
196
|
+
if (analysisData.success && analysisData.features) {
|
|
197
|
+
// 根据项目特征推荐 Agents
|
|
198
|
+
const agentIds = [];
|
|
199
|
+
const features = analysisData.features;
|
|
200
|
+
// Vue 3 项目
|
|
201
|
+
if (features.frameworks?.includes('Vue 3') || features.frameworks?.includes('Vue')) {
|
|
202
|
+
agentIds.push('vue3');
|
|
203
|
+
}
|
|
204
|
+
// LogicFlow
|
|
205
|
+
if (features.tools?.includes('LogicFlow')) {
|
|
206
|
+
agentIds.push('logicflow');
|
|
207
|
+
}
|
|
208
|
+
// 国际化
|
|
209
|
+
if (features.keywords?.includes('i18n') || features.keywords?.includes('国际化')) {
|
|
210
|
+
agentIds.push('i18n');
|
|
211
|
+
}
|
|
212
|
+
// Flutter
|
|
213
|
+
if (features.projectType === 'flutter') {
|
|
214
|
+
agentIds.push('flutter');
|
|
215
|
+
}
|
|
216
|
+
// 微信小程序
|
|
217
|
+
if (features.projectType === 'wechat-miniprogram') {
|
|
218
|
+
agentIds.push('wechat-miniprogram');
|
|
219
|
+
}
|
|
220
|
+
// 生成配置文件
|
|
221
|
+
if (agentIds.length > 0) {
|
|
222
|
+
const configResult = await generateConfig({
|
|
223
|
+
projectPath: workspacePath,
|
|
224
|
+
agentIds,
|
|
225
|
+
autoMatch: false,
|
|
226
|
+
updateMode: 'merge'
|
|
227
|
+
});
|
|
228
|
+
const configContent = configResult.content[0];
|
|
229
|
+
if (configContent.type === 'text') {
|
|
230
|
+
const configData = JSON.parse(configContent.text);
|
|
231
|
+
if (configData.success) {
|
|
232
|
+
results.steps.push({
|
|
233
|
+
step: '生成 copilot-instructions.md',
|
|
234
|
+
status: 'success',
|
|
235
|
+
detail: `应用了 ${configData.agents?.length || 0} 个 Agents: ${agentIds.join(', ')}`
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
results.warnings.push(`配置生成失败: ${configData.error || '未知错误'}`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
results.warnings.push('未找到匹配的 Agents,跳过配置生成');
|
|
245
|
+
results.warnings.push('你可以稍后手动运行 generate_config 工具并指定 agentIds');
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
results.warnings.push(`项目分析失败: ${analysisData.error || '未知错误'}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
results.warnings.push(`自动生成配置失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
255
|
+
results.warnings.push('你可以稍后手动运行 generate_config 工具生成配置');
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
results.steps.push({ step: '跳过 copilot-instructions.md 生成', status: 'skip' });
|
|
260
|
+
}
|
|
261
|
+
logger.log('✅ 自动配置完成!');
|
|
262
|
+
return {
|
|
263
|
+
content: [{
|
|
264
|
+
type: 'text',
|
|
265
|
+
text: JSON.stringify({
|
|
266
|
+
success: true,
|
|
267
|
+
message: '🎉 MCP 服务器已自动配置到工作区',
|
|
268
|
+
...results,
|
|
269
|
+
nextSteps: [
|
|
270
|
+
'1. 重新加载 VS Code 窗口 (Cmd+Shift+P → Reload Window)',
|
|
271
|
+
'2. 打开 GitHub Copilot Chat',
|
|
272
|
+
'3. 开始使用:Copilot 会自动应用项目规范',
|
|
273
|
+
'4. 高级用法:尝试说"获取 Vue 3 相关规范"'
|
|
274
|
+
]
|
|
275
|
+
}, null, 2)
|
|
276
|
+
}]
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
logger.error(`自动配置失败: ${error}`);
|
|
281
|
+
return {
|
|
282
|
+
content: [{
|
|
283
|
+
type: 'text',
|
|
284
|
+
text: JSON.stringify({
|
|
285
|
+
error: error instanceof Error ? error.message : String(error)
|
|
286
|
+
}, null, 2)
|
|
287
|
+
}]
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=autoSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoSetup.js","sourceRoot":"","sources":["../../src/tools/autoSetup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 生成配置文件工具
|
|
3
|
+
*/
|
|
4
|
+
export declare function generateConfig(args: {
|
|
5
|
+
projectPath: string;
|
|
6
|
+
agentIds?: string[];
|
|
7
|
+
autoMatch?: boolean;
|
|
8
|
+
updateMode?: 'merge' | 'overwrite';
|
|
9
|
+
configId?: string;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
content: Array<{
|
|
12
|
+
type: string;
|
|
13
|
+
text: string;
|
|
14
|
+
}>;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=generateConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateConfig.d.ts","sourceRoot":"","sources":["../../src/tools/generateConfig.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IACR,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC,CAqZD"}
|