mta-mcp 1.8.3 → 1.9.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.
@@ -0,0 +1,34 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,145 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoInitializer.js","sourceRoot":"","sources":["../../src/core/autoInitializer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * 智能规范推荐工具
3
3
  * 零参数,自动检测上下文并推荐规范
4
+ * v1.9.0: 集成自动项目配置检测
4
5
  */
5
6
  export declare function getSmartStandards(args: {
6
7
  currentFile?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getSmartStandards.d.ts","sourceRoot":"","sources":["../../src/tools/getSmartStandards.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC;IACR,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC,CAgID"}
1
+ {"version":3,"file":"getSmartStandards.d.ts","sourceRoot":"","sources":["../../src/tools/getSmartStandards.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC;IACR,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC,CAkJD"}
@@ -1,14 +1,31 @@
1
1
  import * as fs from 'fs';
2
2
  import { StandardsManager } from '../core/standardsManager.js';
3
3
  import { ConsoleLogger } from '../core/types.js';
4
+ import { AutoInitializer } from '../core/autoInitializer.js';
4
5
  /**
5
6
  * 智能规范推荐工具
6
7
  * 零参数,自动检测上下文并推荐规范
8
+ * v1.9.0: 集成自动项目配置检测
7
9
  */
8
10
  export async function getSmartStandards(args) {
9
11
  const logger = new ConsoleLogger();
10
12
  const manager = new StandardsManager();
13
+ const autoInit = new AutoInitializer(logger);
11
14
  try {
15
+ // ✨ 新增:自动检测并初始化项目配置
16
+ const initResult = await autoInit.ensureProjectConfig();
17
+ if (initResult.needsInit) {
18
+ logger.log('📋 ' + initResult.message);
19
+ // 如果初始化成功,提示用户
20
+ if (initResult.initialized) {
21
+ return {
22
+ content: [{
23
+ type: 'text',
24
+ text: `🎉 **首次使用自动配置完成**\n\n${initResult.message}\n\n现在可以继续使用 @mta 进行开发了!\n\n💡 提示:项目配置文件已生成在 .github/copilot-instructions.md`
25
+ }]
26
+ };
27
+ }
28
+ }
12
29
  let detectedFileType = 'unknown';
13
30
  let detectedImports = [];
14
31
  let detectedScenario = '';
@@ -1 +1 @@
1
- {"version":3,"file":"getSmartStandards.js","sourceRoot":"","sources":["../../src/tools/getSmartStandards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSmartStandards.js","sourceRoot":"","sources":["../../src/tools/getSmartStandards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAGvC;IAGG,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,CAAC;QACD,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAExD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAEvC,eAAe;YACf,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBACzB,OAAO;oBACH,OAAO,EAAE,CAAC;4BACN,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,wBAAwB,UAAU,CAAC,OAAO,8EAA8E;yBACjI,CAAC;iBACL,CAAC;YACN,CAAC;QACL,CAAC;QAED,IAAI,gBAAgB,GAAG,SAAS,CAAC;QACjC,IAAI,eAAe,GAAa,EAAE,CAAC;QACnC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,cAAc,GAAG,MAAM,CAAC;QAE5B,kBAAkB;QAClB,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,cAAc,GAAG,WAAW,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAEnE,MAAM,MAAM,GAA2B;gBACnC,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;aACf,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;YAE5C,WAAW;YACX,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxC,eAAe,GAAG,OAAO,CAAC;gBAC1B,gBAAgB,GAAG,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,cAAc,GAAG,cAAc,CAAC;YAChC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,CAAC;YAEnD,YAAY;YACZ,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC1C,gBAAgB,GAAG,KAAK,CAAC;gBAC7B,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvF,gBAAgB,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACnE,IAAI,QAAQ;gBAAE,gBAAgB,GAAG,QAAQ,CAAC;QAC9C,CAAC;QAED,qBAAqB;QACrB,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,cAAc,GAAG,aAAa,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,GAAG,GAAG,eAAe,CAAC;YAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClE,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;oBAE7D,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACd,gBAAgB,GAAG,KAAK,CAAC;wBACzB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChB,gBAAgB,GAAG,KAAK,CAAC;wBACzB,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,CAAC;oBACD,IAAI,IAAI,CAAC,cAAc,CAAC;wBAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC/D,IAAI,IAAI,CAAC,OAAO,CAAC;wBAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,IAAI,CAAC,UAAU,CAAC;wBAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3D,CAAC;gBAAC,MAAM,CAAC;oBACL,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK;QACL,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,GAAG,CAAC,uBAAuB,gBAAgB,aAAa,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,gBAAgB,EAAE,CAAC,CAAC;QAE1H,SAAS;QACT,MAAM,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAC3C,QAAQ,EAAE,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;YACvE,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YACjE,QAAQ,EAAE,gBAAgB,IAAI,SAAS;SAC1C,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE5D,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE;4BACN,MAAM,EAAE,cAAc;4BACtB,QAAQ,EAAE,gBAAgB;4BAC1B,OAAO,EAAE,eAAe;4BACxB,QAAQ,EAAE,gBAAgB;yBAC7B;wBACD,SAAS,EAAE,SAAS;wBACpB,OAAO,EAAE,eAAe;wBACxB,KAAK,EAAE;4BACH,cAAc,EAAE,SAAS,CAAC,MAAM;4BAChC,aAAa,EAAE,eAAe,CAAC,MAAM;4BACrC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;yBACzD;qBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QACnC,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAChE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,cAAc;IACd,MAAM,QAAQ,GAAG,yCAAyC,CAAC;IAC3D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAAG,uCAAuC,CAAC;IAC7D,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,QAAgB;IACpD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,SAAS;IACT,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,SAAS;IACT,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;IACb,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mta-mcp",
3
- "version": "1.8.3",
4
- "description": "MTA - 智能项目分析与编码规范管理 MCP 服务器",
3
+ "version": "1.9.0",
4
+ "description": "MTA - 智能项目分析与编码规范管理 MCP 服务器(v1.9.0: 首次使用自动配置)",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
7
7
  "bin": {
@@ -0,0 +1,170 @@
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
+ import { Logger } from './types.js';
6
+
7
+ /**
8
+ * 自动初始化器
9
+ * 在工具调用前检查项目配置,如果不存在则自动生成
10
+ */
11
+ export class AutoInitializer {
12
+ private initialized: Map<string, boolean> = new Map();
13
+
14
+ constructor(private logger?: Logger) {}
15
+
16
+ /**
17
+ * 检查并初始化项目配置
18
+ * @param workspacePath 工作区路径
19
+ * @returns 是否需要初始化(返回 true 表示已执行初始化)
20
+ */
21
+ async ensureProjectConfig(workspacePath?: string): Promise<{
22
+ needsInit: boolean;
23
+ initialized: boolean;
24
+ message: string;
25
+ }> {
26
+ // 检测工作区路径
27
+ const projectPath = workspacePath || this.detectWorkspacePath();
28
+
29
+ if (!projectPath) {
30
+ return {
31
+ needsInit: false,
32
+ initialized: false,
33
+ message: '未检测到工作区路径'
34
+ };
35
+ }
36
+
37
+ // 检查是否已经初始化过(避免重复)
38
+ if (this.initialized.get(projectPath)) {
39
+ return {
40
+ needsInit: false,
41
+ initialized: true,
42
+ message: `项目已配置: ${path.basename(projectPath)}`
43
+ };
44
+ }
45
+
46
+ // 检查是否存在配置文件
47
+ const configPath = path.join(projectPath, '.github', 'copilot-instructions.md');
48
+ const hasConfig = fs.existsSync(configPath);
49
+
50
+ if (hasConfig) {
51
+ this.initialized.set(projectPath, true);
52
+ return {
53
+ needsInit: false,
54
+ initialized: true,
55
+ message: `项目已有配置: ${path.basename(projectPath)}`
56
+ };
57
+ }
58
+
59
+ // 需要初始化
60
+ this.log(`🔍 检测到项目未配置,开始自动分析和生成配置...`);
61
+ this.log(`📁 项目路径: ${projectPath}`);
62
+
63
+ try {
64
+ // 1. 分析项目
65
+ this.log('1️⃣ 分析项目技术栈...');
66
+ const analysisResult = await analyzeProject({ projectPath });
67
+
68
+ if (analysisResult.content?.[0]?.text) {
69
+ const analysis = JSON.parse(analysisResult.content[0].text);
70
+ this.log(`✅ 检测到: ${analysis.frameworks?.join(', ') || '未知技术栈'}`);
71
+
72
+ // 2. 生成配置
73
+ this.log('2️⃣ 生成项目配置文件...');
74
+ await generateConfig({
75
+ projectPath,
76
+ autoMatch: true
77
+ });
78
+
79
+ this.initialized.set(projectPath, true);
80
+
81
+ return {
82
+ needsInit: true,
83
+ initialized: true,
84
+ message: `✅ 项目配置已自动生成\n📁 路径: ${configPath}\n🎯 技术栈: ${analysis.frameworks?.join(', ')}`
85
+ };
86
+ }
87
+ } catch (error) {
88
+ this.log(`❌ 自动初始化失败: ${error}`);
89
+ return {
90
+ needsInit: true,
91
+ initialized: false,
92
+ message: `⚠️ 自动初始化失败: ${error instanceof Error ? error.message : String(error)}`
93
+ };
94
+ }
95
+
96
+ return {
97
+ needsInit: true,
98
+ initialized: false,
99
+ message: '⚠️ 无法完成自动初始化'
100
+ };
101
+ }
102
+
103
+ /**
104
+ * 检测工作区路径
105
+ */
106
+ private detectWorkspacePath(): string | null {
107
+ // 优先级 1: 环境变量
108
+ if (process.env.WORKSPACE_PATH) {
109
+ return process.env.WORKSPACE_PATH;
110
+ }
111
+
112
+ // 优先级 2: 当前工作目录
113
+ const cwd = process.cwd();
114
+ if (this.isValidProject(cwd)) {
115
+ return cwd;
116
+ }
117
+
118
+ // 优先级 3: 尝试从常见位置检测
119
+ const possiblePaths = [
120
+ path.join(cwd, '..'),
121
+ path.join(cwd, '../..'),
122
+ ];
123
+
124
+ for (const possiblePath of possiblePaths) {
125
+ if (this.isValidProject(possiblePath)) {
126
+ return possiblePath;
127
+ }
128
+ }
129
+
130
+ return null;
131
+ }
132
+
133
+ /**
134
+ * 判断是否是有效的项目目录
135
+ */
136
+ private isValidProject(dirPath: string): boolean {
137
+ if (!fs.existsSync(dirPath)) {
138
+ return false;
139
+ }
140
+
141
+ // 检查是否有项目标志文件
142
+ const markers = [
143
+ 'package.json',
144
+ 'pubspec.yaml',
145
+ 'pom.xml',
146
+ 'go.mod',
147
+ 'Cargo.toml',
148
+ '.git'
149
+ ];
150
+
151
+ return markers.some(marker =>
152
+ fs.existsSync(path.join(dirPath, marker))
153
+ );
154
+ }
155
+
156
+ /**
157
+ * 重置初始化状态(用于测试)
158
+ */
159
+ reset(): void {
160
+ this.initialized.clear();
161
+ }
162
+
163
+ private log(message: string): void {
164
+ if (this.logger) {
165
+ this.logger.log(message);
166
+ } else {
167
+ console.error(`[AutoInit] ${message}`);
168
+ }
169
+ }
170
+ }
@@ -1,10 +1,12 @@
1
1
  import * as fs from 'fs';
2
2
  import { StandardsManager } from '../core/standardsManager.js';
3
3
  import { ConsoleLogger } from '../core/types.js';
4
+ import { AutoInitializer } from '../core/autoInitializer.js';
4
5
 
5
6
  /**
6
7
  * 智能规范推荐工具
7
8
  * 零参数,自动检测上下文并推荐规范
9
+ * v1.9.0: 集成自动项目配置检测
8
10
  */
9
11
  export async function getSmartStandards(args: {
10
12
  currentFile?: string;
@@ -14,8 +16,26 @@ export async function getSmartStandards(args: {
14
16
  }> {
15
17
  const logger = new ConsoleLogger();
16
18
  const manager = new StandardsManager();
19
+ const autoInit = new AutoInitializer(logger);
17
20
 
18
21
  try {
22
+ // ✨ 新增:自动检测并初始化项目配置
23
+ const initResult = await autoInit.ensureProjectConfig();
24
+
25
+ if (initResult.needsInit) {
26
+ logger.log('📋 ' + initResult.message);
27
+
28
+ // 如果初始化成功,提示用户
29
+ if (initResult.initialized) {
30
+ return {
31
+ content: [{
32
+ type: 'text',
33
+ text: `🎉 **首次使用自动配置完成**\n\n${initResult.message}\n\n现在可以继续使用 @mta 进行开发了!\n\n💡 提示:项目配置文件已生成在 .github/copilot-instructions.md`
34
+ }]
35
+ };
36
+ }
37
+ }
38
+
19
39
  let detectedFileType = 'unknown';
20
40
  let detectedImports: string[] = [];
21
41
  let detectedScenario = '';