mta-mcp 2.2.0 → 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.
Files changed (180) hide show
  1. package/bin/mta.cjs +43 -0
  2. package/dist/index.cjs +4784 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +4769 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +21 -10
  9. package/build/core/agentTemplate.d.ts +0 -33
  10. package/build/core/agentTemplate.d.ts.map +0 -1
  11. package/build/core/agentTemplate.js +0 -158
  12. package/build/core/agentTemplate.js.map +0 -1
  13. package/build/core/analyzers/eslint.d.ts +0 -51
  14. package/build/core/analyzers/eslint.d.ts.map +0 -1
  15. package/build/core/analyzers/eslint.js +0 -259
  16. package/build/core/analyzers/eslint.js.map +0 -1
  17. package/build/core/analyzers/index.d.ts +0 -9
  18. package/build/core/analyzers/index.d.ts.map +0 -1
  19. package/build/core/analyzers/index.js +0 -9
  20. package/build/core/analyzers/index.js.map +0 -1
  21. package/build/core/analyzers/registry.d.ts +0 -59
  22. package/build/core/analyzers/registry.d.ts.map +0 -1
  23. package/build/core/analyzers/registry.js +0 -241
  24. package/build/core/analyzers/registry.js.map +0 -1
  25. package/build/core/analyzers/tsconfig.d.ts +0 -45
  26. package/build/core/analyzers/tsconfig.d.ts.map +0 -1
  27. package/build/core/analyzers/tsconfig.js +0 -197
  28. package/build/core/analyzers/tsconfig.js.map +0 -1
  29. package/build/core/analyzers/types.d.ts +0 -176
  30. package/build/core/analyzers/types.d.ts.map +0 -1
  31. package/build/core/analyzers/types.js +0 -39
  32. package/build/core/analyzers/types.js.map +0 -1
  33. package/build/core/analyzers/vite.d.ts +0 -46
  34. package/build/core/analyzers/vite.d.ts.map +0 -1
  35. package/build/core/analyzers/vite.js +0 -211
  36. package/build/core/analyzers/vite.js.map +0 -1
  37. package/build/core/autoInitializer.d.ts +0 -34
  38. package/build/core/autoInitializer.d.ts.map +0 -1
  39. package/build/core/autoInitializer.js +0 -145
  40. package/build/core/autoInitializer.js.map +0 -1
  41. package/build/core/codeValidator.d.ts +0 -82
  42. package/build/core/codeValidator.d.ts.map +0 -1
  43. package/build/core/codeValidator.js +0 -287
  44. package/build/core/codeValidator.js.map +0 -1
  45. package/build/core/enhancedProjectAnalyzer.d.ts +0 -102
  46. package/build/core/enhancedProjectAnalyzer.d.ts.map +0 -1
  47. package/build/core/enhancedProjectAnalyzer.js +0 -312
  48. package/build/core/enhancedProjectAnalyzer.js.map +0 -1
  49. package/build/core/errors.d.ts +0 -84
  50. package/build/core/errors.d.ts.map +0 -1
  51. package/build/core/errors.js +0 -151
  52. package/build/core/errors.js.map +0 -1
  53. package/build/core/githubClient.d.ts +0 -26
  54. package/build/core/githubClient.d.ts.map +0 -1
  55. package/build/core/githubClient.js +0 -60
  56. package/build/core/githubClient.js.map +0 -1
  57. package/build/core/i18nDetector.d.ts +0 -47
  58. package/build/core/i18nDetector.d.ts.map +0 -1
  59. package/build/core/i18nDetector.js +0 -314
  60. package/build/core/i18nDetector.js.map +0 -1
  61. package/build/core/index.d.ts +0 -11
  62. package/build/core/index.d.ts.map +0 -1
  63. package/build/core/index.js +0 -14
  64. package/build/core/index.js.map +0 -1
  65. package/build/core/logger.d.ts +0 -91
  66. package/build/core/logger.d.ts.map +0 -1
  67. package/build/core/logger.js +0 -164
  68. package/build/core/logger.js.map +0 -1
  69. package/build/core/mappings/index.d.ts +0 -5
  70. package/build/core/mappings/index.d.ts.map +0 -1
  71. package/build/core/mappings/index.js +0 -5
  72. package/build/core/mappings/index.js.map +0 -1
  73. package/build/core/mappings/scenarioMappings.d.ts +0 -51
  74. package/build/core/mappings/scenarioMappings.d.ts.map +0 -1
  75. package/build/core/mappings/scenarioMappings.js +0 -105
  76. package/build/core/mappings/scenarioMappings.js.map +0 -1
  77. package/build/core/matching/index.d.ts +0 -8
  78. package/build/core/matching/index.d.ts.map +0 -1
  79. package/build/core/matching/index.js +0 -8
  80. package/build/core/matching/index.js.map +0 -1
  81. package/build/core/matching/intentAnalyzer.d.ts +0 -78
  82. package/build/core/matching/intentAnalyzer.d.ts.map +0 -1
  83. package/build/core/matching/intentAnalyzer.js +0 -255
  84. package/build/core/matching/intentAnalyzer.js.map +0 -1
  85. package/build/core/matching/standardMatcher.d.ts +0 -101
  86. package/build/core/matching/standardMatcher.d.ts.map +0 -1
  87. package/build/core/matching/standardMatcher.js +0 -299
  88. package/build/core/matching/standardMatcher.js.map +0 -1
  89. package/build/core/matching/weights.d.ts +0 -64
  90. package/build/core/matching/weights.d.ts.map +0 -1
  91. package/build/core/matching/weights.js +0 -334
  92. package/build/core/matching/weights.js.map +0 -1
  93. package/build/core/projectContextManager.d.ts +0 -39
  94. package/build/core/projectContextManager.d.ts.map +0 -1
  95. package/build/core/projectContextManager.js +0 -147
  96. package/build/core/projectContextManager.js.map +0 -1
  97. package/build/core/scenarioDetector.d.ts +0 -2
  98. package/build/core/scenarioDetector.d.ts.map +0 -1
  99. package/build/core/scenarioDetector.js +0 -2
  100. package/build/core/scenarioDetector.js.map +0 -1
  101. package/build/core/smartAgentMatcher.d.ts +0 -51
  102. package/build/core/smartAgentMatcher.d.ts.map +0 -1
  103. package/build/core/smartAgentMatcher.js +0 -493
  104. package/build/core/smartAgentMatcher.js.map +0 -1
  105. package/build/core/standardsManager.d.ts +0 -130
  106. package/build/core/standardsManager.d.ts.map +0 -1
  107. package/build/core/standardsManager.js +0 -600
  108. package/build/core/standardsManager.js.map +0 -1
  109. package/build/core/templates/discovery.d.ts +0 -41
  110. package/build/core/templates/discovery.d.ts.map +0 -1
  111. package/build/core/templates/discovery.js +0 -262
  112. package/build/core/templates/discovery.js.map +0 -1
  113. package/build/core/templates/types.d.ts +0 -80
  114. package/build/core/templates/types.d.ts.map +0 -1
  115. package/build/core/templates/types.js +0 -10
  116. package/build/core/templates/types.js.map +0 -1
  117. package/build/core/types.d.ts +0 -57
  118. package/build/core/types.d.ts.map +0 -1
  119. package/build/core/types.js +0 -22
  120. package/build/core/types.js.map +0 -1
  121. package/build/index.d.ts +0 -3
  122. package/build/index.d.ts.map +0 -1
  123. package/build/index.js +0 -576
  124. package/build/index.js.map +0 -1
  125. package/build/tools/analyzeProject.d.ts +0 -12
  126. package/build/tools/analyzeProject.d.ts.map +0 -1
  127. package/build/tools/analyzeProject.js +0 -85
  128. package/build/tools/analyzeProject.js.map +0 -1
  129. package/build/tools/autoSetup.d.ts +0 -15
  130. package/build/tools/autoSetup.d.ts.map +0 -1
  131. package/build/tools/autoSetup.js +0 -291
  132. package/build/tools/autoSetup.js.map +0 -1
  133. package/build/tools/generateConfig.d.ts +0 -16
  134. package/build/tools/generateConfig.d.ts.map +0 -1
  135. package/build/tools/generateConfig.js +0 -379
  136. package/build/tools/generateConfig.js.map +0 -1
  137. package/build/tools/generateProjectAgent.d.ts +0 -15
  138. package/build/tools/generateProjectAgent.d.ts.map +0 -1
  139. package/build/tools/generateProjectAgent.js +0 -348
  140. package/build/tools/generateProjectAgent.js.map +0 -1
  141. package/build/tools/getCompactStandards.d.ts +0 -20
  142. package/build/tools/getCompactStandards.d.ts.map +0 -1
  143. package/build/tools/getCompactStandards.js +0 -367
  144. package/build/tools/getCompactStandards.js.map +0 -1
  145. package/build/tools/getSmartStandards.d.ts +0 -15
  146. package/build/tools/getSmartStandards.d.ts.map +0 -1
  147. package/build/tools/getSmartStandards.js +0 -201
  148. package/build/tools/getSmartStandards.js.map +0 -1
  149. package/build/tools/getStandardById.d.ts +0 -42
  150. package/build/tools/getStandardById.d.ts.map +0 -1
  151. package/build/tools/getStandardById.js +0 -289
  152. package/build/tools/getStandardById.js.map +0 -1
  153. package/build/tools/getTemplate.d.ts +0 -37
  154. package/build/tools/getTemplate.d.ts.map +0 -1
  155. package/build/tools/getTemplate.js +0 -78
  156. package/build/tools/getTemplate.js.map +0 -1
  157. package/build/tools/healthCheck.d.ts +0 -14
  158. package/build/tools/healthCheck.d.ts.map +0 -1
  159. package/build/tools/healthCheck.js +0 -237
  160. package/build/tools/healthCheck.js.map +0 -1
  161. package/build/tools/listAgents.d.ts +0 -10
  162. package/build/tools/listAgents.d.ts.map +0 -1
  163. package/build/tools/listAgents.js +0 -79
  164. package/build/tools/listAgents.js.map +0 -1
  165. package/build/tools/listTemplates.d.ts +0 -41
  166. package/build/tools/listTemplates.d.ts.map +0 -1
  167. package/build/tools/listTemplates.js +0 -81
  168. package/build/tools/listTemplates.js.map +0 -1
  169. package/build/tools/matchAgents.d.ts +0 -14
  170. package/build/tools/matchAgents.d.ts.map +0 -1
  171. package/build/tools/matchAgents.js +0 -70
  172. package/build/tools/matchAgents.js.map +0 -1
  173. package/build/tools/queryMappings.d.ts +0 -55
  174. package/build/tools/queryMappings.d.ts.map +0 -1
  175. package/build/tools/queryMappings.js +0 -119
  176. package/build/tools/queryMappings.js.map +0 -1
  177. package/build/tools/usePreset.d.ts +0 -23
  178. package/build/tools/usePreset.d.ts.map +0 -1
  179. package/build/tools/usePreset.js +0 -163
  180. package/build/tools/usePreset.js.map +0 -1
@@ -1,367 +0,0 @@
1
- import * as fs from 'fs';
2
- import { StandardsManager } from '../core/standardsManager.js';
3
- import { ConsoleLogger } from '../core/types.js';
4
- /**
5
- * 紧凑规范工具 - Token 优化版
6
- *
7
- * 优化策略:
8
- * 1. 只返回规范摘要而非完整内容
9
- * 2. 提供规范 URI 供按需加载
10
- * 3. 针对特定场景返回精简的关键规则
11
- */
12
- export async function getCompactStandards(args) {
13
- const logger = new ConsoleLogger();
14
- const manager = new StandardsManager();
15
- const mode = args.mode || 'key-rules';
16
- try {
17
- // 检测上下文(复用智能检测逻辑)
18
- const context = detectContext(args, logger);
19
- // 获取相关规范 URI
20
- const standardUris = manager.getRelevantStandards({
21
- fileType: context.fileType,
22
- imports: context.imports,
23
- scenario: args.scenario || context.scenario
24
- });
25
- // 根据模式返回不同内容
26
- let responseContent;
27
- switch (mode) {
28
- case 'summary':
29
- // 只返回规范名称和描述,约 500 tokens
30
- responseContent = buildSummaryResponse(standardUris, manager);
31
- break;
32
- case 'key-rules':
33
- // 返回关键规则摘要,约 2000-3000 tokens
34
- responseContent = buildKeyRulesResponse(standardUris, context, manager);
35
- break;
36
- case 'full':
37
- // 完整内容(原有行为)
38
- responseContent = buildFullResponse(standardUris, manager);
39
- break;
40
- }
41
- return {
42
- content: [{
43
- type: 'text',
44
- text: JSON.stringify(responseContent, null, 2)
45
- }]
46
- };
47
- }
48
- catch (error) {
49
- logger.error(`规范获取失败: ${error}`);
50
- return {
51
- content: [{
52
- type: 'text',
53
- text: JSON.stringify({
54
- error: error instanceof Error ? error.message : String(error)
55
- }, null, 2)
56
- }]
57
- };
58
- }
59
- }
60
- /**
61
- * 检测上下文
62
- */
63
- function detectContext(args, logger) {
64
- let fileType = 'unknown';
65
- let imports = [];
66
- let scenario = '';
67
- // 从文件路径检测
68
- if (args.currentFile && fs.existsSync(args.currentFile)) {
69
- const ext = args.currentFile.split('.').pop()?.toLowerCase() || '';
70
- const extMap = {
71
- 'vue': 'vue', 'ts': 'ts', 'tsx': 'tsx',
72
- 'js': 'js', 'jsx': 'jsx', 'dart': 'dart'
73
- };
74
- fileType = extMap[ext] || 'unknown';
75
- try {
76
- const content = fs.readFileSync(args.currentFile, 'utf-8');
77
- imports = extractImports(content);
78
- scenario = inferScenario(content, fileType);
79
- }
80
- catch {
81
- // 忽略读取错误
82
- }
83
- }
84
- // 从内容检测
85
- if (args.fileContent) {
86
- imports = [...imports, ...extractImports(args.fileContent)];
87
- if (fileType === 'unknown') {
88
- if (args.fileContent.includes('<template>'))
89
- fileType = 'vue';
90
- else if (args.fileContent.includes('interface '))
91
- fileType = 'ts';
92
- }
93
- scenario = scenario || inferScenario(args.fileContent, fileType);
94
- }
95
- return { fileType, imports: [...new Set(imports)], scenario };
96
- }
97
- /**
98
- * 构建摘要响应(约 500 tokens)
99
- */
100
- function buildSummaryResponse(uris, manager) {
101
- const standards = manager.getAvailableStandards();
102
- const matched = uris.map(uri => {
103
- const std = standards.find(s => s.uri === uri);
104
- return {
105
- uri,
106
- name: std?.name || uri,
107
- description: std?.description || ''
108
- };
109
- });
110
- return {
111
- success: true,
112
- mode: 'summary',
113
- message: '已识别相关规范,如需详细内容请使用 mode: "key-rules" 或 "full"',
114
- standards: matched,
115
- stats: {
116
- count: matched.length,
117
- estimatedTokens: 500
118
- }
119
- };
120
- }
121
- /**
122
- * 构建关键规则响应(约 2000-3000 tokens)
123
- * 针对不同场景提取关键规则
124
- */
125
- function buildKeyRulesResponse(uris, context, manager) {
126
- const keyRules = [];
127
- // 根据文件类型添加关键规则
128
- if (context.fileType === 'vue') {
129
- keyRules.push(...getVueKeyRules(context.imports));
130
- }
131
- else if (context.fileType === 'dart') {
132
- keyRules.push(...getFlutterKeyRules());
133
- }
134
- else if (context.fileType === 'ts' || context.fileType === 'tsx') {
135
- keyRules.push(...getTypeScriptKeyRules());
136
- }
137
- // 根据导入添加特定规则
138
- if (context.imports.includes('element-plus')) {
139
- keyRules.push(...getElementPlusKeyRules());
140
- }
141
- if (context.imports.some(i => i.includes('i18n') || i.includes('locale'))) {
142
- keyRules.push(...getI18nKeyRules());
143
- }
144
- if (context.imports.includes('pinia')) {
145
- keyRules.push(...getPiniaKeyRules());
146
- }
147
- return {
148
- success: true,
149
- mode: 'key-rules',
150
- context: {
151
- fileType: context.fileType,
152
- detectedImports: context.imports,
153
- scenario: context.scenario
154
- },
155
- keyRules: keyRules.join('\n\n'),
156
- standardUris: uris, // 提供完整 URI 供按需加载
157
- stats: {
158
- rulesCount: keyRules.length,
159
- estimatedTokens: Math.ceil(keyRules.join('').length / 4)
160
- }
161
- };
162
- }
163
- /**
164
- * 构建完整响应(原有行为)
165
- */
166
- function buildFullResponse(uris, manager) {
167
- const content = manager.combineStandards(uris);
168
- return {
169
- success: true,
170
- mode: 'full',
171
- standards: uris,
172
- content,
173
- stats: {
174
- standardsCount: uris.length,
175
- contentLength: content.length,
176
- estimatedTokens: Math.ceil(content.length / 4)
177
- }
178
- };
179
- }
180
- // ==================== 关键规则提取 ====================
181
- function getVueKeyRules(imports) {
182
- return [
183
- `## Vue 3 关键规则
184
-
185
- 1. **使用 \`<script setup lang="ts">\`** - 必须使用 Composition API
186
- 2. **Props/Emits 类型定义** - 必须使用 interface 定义类型
187
- 3. **禁止内联样式** - 使用 scoped CSS 或 class
188
- 4. **模板简洁** - 复杂逻辑提取到 computed 或方法
189
- 5. **响应式** - 基本类型用 ref,对象用 reactive(不重新赋值)`,
190
- `## 组件结构顺序
191
- \`\`\`vue
192
- <script setup lang="ts">
193
- // 1. 类型导入
194
- // 2. Props/Emits 定义
195
- // 3. 响应式状态
196
- // 4. 计算属性
197
- // 5. 方法
198
- // 6. 生命周期
199
- </script>
200
- \`\`\``
201
- ];
202
- }
203
- function getElementPlusKeyRules() {
204
- return [
205
- `## Element Plus 关键规则
206
-
207
- ### 表格规范
208
- - **必须** \`border\` + \`highlight-current-row\`
209
- - 操作列 \`fixed="right"\`,宽度:2按钮160px/3按钮240px/4按钮280px
210
- - 使用 \`v-loading\` 显示加载状态
211
-
212
- ### 表单规范
213
- - 使用 \`label-position="top"\` 或 \`label-width="120px"\`
214
- - 验证规则使用 \`FormRules<T>\` 类型
215
- - 验证消息必须国际化
216
-
217
- ### 弹窗规范
218
- - 使用 \`destroy-on-close\` 重置状态
219
- - 宽度:简单500px/标准700px/复杂900px
220
-
221
- ### 消息提示
222
- \`\`\`typescript
223
- ElMessage.success($t('保存成功'))
224
- ElMessageBox.confirm($t('确认删除?'), $t('警告'), { type: 'warning' })
225
- \`\`\``,
226
- `## 表格示例
227
- \`\`\`vue
228
- <el-table v-loading="listLoading" :data="list" border highlight-current-row>
229
- <el-table-column type="index" :label="$t('序号')" width="70" />
230
- <el-table-column prop="name" :label="$t('名称')" min-width="120" />
231
- <el-table-column fixed="right" :label="$t('操作')" width="240">
232
- <template #default="{ row }">
233
- <el-button link type="primary" @click="handleEdit(row)">{{ $t('编辑') }}</el-button>
234
- <el-button link type="danger" @click="handleDelete(row)">{{ $t('删除') }}</el-button>
235
- </template>
236
- </el-table-column>
237
- </el-table>
238
- \`\`\``
239
- ];
240
- }
241
- function getI18nKeyRules() {
242
- return [
243
- `## 国际化关键规则
244
-
245
- ### 必须国际化的内容
246
- - 所有按钮文字:\`{{ $t('保存') }}\`
247
- - 表单标签:\`:label="$t('客户名称')"\`
248
- - 占位符:\`:placeholder="$t('请输入')"\`
249
- - 表格列标题:\`:label="$t('订单编号')"\`
250
- - 弹窗标题:\`:title="$t('新增客户')"\`
251
- - 提示消息:\`ElMessage.success($t('保存成功'))\`
252
- - 验证规则:\`message: $t('请输入用户名')\`
253
-
254
- ### 禁止
255
- - ❌ \`<el-button>新增</el-button>\` (硬编码)
256
- - ❌ \`label="客户名称"\` (硬编码)
257
- - ❌ \`ElMessage.success('保存成功')\` (硬编码)`
258
- ];
259
- }
260
- function getPiniaKeyRules() {
261
- return [
262
- `## Pinia 关键规则
263
-
264
- ### Setup Store 语法(推荐)
265
- \`\`\`typescript
266
- export const useUserStore = defineStore('user', () => {
267
- const user = ref<User | null>(null)
268
- const isLoggedIn = computed(() => !!user.value)
269
-
270
- async function login(credentials: Credentials) {
271
- user.value = await authApi.login(credentials)
272
- }
273
-
274
- return { user, isLoggedIn, login }
275
- })
276
- \`\`\`
277
-
278
- ### 规范要求
279
- - Store ID 使用小写短横线命名
280
- - 使用 Setup Store 语法而非 Options Store
281
- - 异步操作直接用 async/await
282
- - 复杂状态操作使用 $patch`
283
- ];
284
- }
285
- function getTypeScriptKeyRules() {
286
- return [
287
- `## TypeScript 关键规则
288
-
289
- ### 类型定义
290
- - 必须定义函数参数和返回类型
291
- - 使用 interface 定义对象类型
292
- - 避免使用 any,使用 unknown 替代
293
-
294
- ### 命名规范
295
- - 变量/函数:camelCase
296
- - 类/接口/类型:PascalCase
297
- - 常量:UPPER_SNAKE_CASE
298
-
299
- ### 示例
300
- \`\`\`typescript
301
- interface User {
302
- id: number
303
- name: string
304
- email?: string
305
- }
306
-
307
- async function fetchUser(id: number): Promise<User | null> {
308
- // ...
309
- }
310
- \`\`\``
311
- ];
312
- }
313
- function getFlutterKeyRules() {
314
- return [
315
- `## Flutter UI 系统关键规则
316
-
317
- ### Design Token 快捷方式(必须使用)
318
- | 快捷方式 | 用途 | 示例 |
319
- |---------|------|------|
320
- | \`$c\` | 颜色 | \`$c.primary\`, \`$c.text.primary\` |
321
- | \`$s\` | 间距 | \`$s.sm\`, \`$s.md\`, \`$s.px(14)\` |
322
- | \`$t\` | 排版 | \`$t.displayLarge\`, \`$t.bodyMedium\` |
323
- | \`$r\` | 圆角 | \`$r.sm\`, \`$r.md\`, \`$r.full\` |
324
-
325
- ### Flex 组件库(必须使用)
326
- - \`FlexButton\` 替代 ElevatedButton/TextButton
327
- - \`FlexCard\` 替代 Card/Container
328
- - \`FlexInput\` 替代 TextField
329
- - \`Gap\` 替代 SizedBox(间隔)
330
-
331
- ### 禁止
332
- - ❌ \`Color(0xFF3B82F6)\` 硬编码颜色
333
- - ❌ \`EdgeInsets.all(16)\` 硬编码间距
334
- - ❌ \`Colors.blue\` Material 颜色常量`
335
- ];
336
- }
337
- // ==================== 辅助函数 ====================
338
- function extractImports(content) {
339
- const imports = [];
340
- // ES6 imports
341
- const esImportRegex = /import\s+(?:(?:\{[^}]*\}|\*\s+as\s+\w+|\w+)\s+from\s+)?['"]([^'"]+)['"]/g;
342
- let match;
343
- while ((match = esImportRegex.exec(content)) !== null) {
344
- imports.push(match[1]);
345
- }
346
- // require
347
- const requireRegex = /require\(['"]([^'"]+)['"]\)/g;
348
- while ((match = requireRegex.exec(content)) !== null) {
349
- imports.push(match[1]);
350
- }
351
- return imports;
352
- }
353
- function inferScenario(content, fileType) {
354
- const scenarios = [];
355
- const lower = content.toLowerCase();
356
- if (lower.includes('el-table') || lower.includes('el-form')) {
357
- scenarios.push('表格组件', '表单组件');
358
- }
359
- if (lower.includes('$t(') || lower.includes('i18n')) {
360
- scenarios.push('国际化');
361
- }
362
- if (lower.includes('interface ') || lower.includes('type ')) {
363
- scenarios.push('类型定义');
364
- }
365
- return scenarios.join('、');
366
- }
367
- //# sourceMappingURL=getCompactStandards.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCompactStandards.js","sourceRoot":"","sources":["../../src/tools/getCompactStandards.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * 智能规范推荐工具
3
- * 零参数,自动检测上下文并推荐规范
4
- * v1.9.0: 集成自动项目配置检测
5
- */
6
- export declare function getSmartStandards(args: {
7
- currentFile?: string;
8
- fileContent?: string;
9
- }): Promise<{
10
- content: Array<{
11
- type: string;
12
- text: string;
13
- }>;
14
- }>;
15
- //# sourceMappingURL=getSmartStandards.d.ts.map
@@ -1 +0,0 @@
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,201 +0,0 @@
1
- import * as fs from 'fs';
2
- import { StandardsManager } from '../core/standardsManager.js';
3
- import { ConsoleLogger } from '../core/types.js';
4
- import { AutoInitializer } from '../core/autoInitializer.js';
5
- /**
6
- * 智能规范推荐工具
7
- * 零参数,自动检测上下文并推荐规范
8
- * v1.9.0: 集成自动项目配置检测
9
- */
10
- export async function getSmartStandards(args) {
11
- const logger = new ConsoleLogger();
12
- const manager = new StandardsManager();
13
- const autoInit = new AutoInitializer(logger);
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
- }
29
- let detectedFileType = 'unknown';
30
- let detectedImports = [];
31
- let detectedScenario = '';
32
- let analysisSource = 'none';
33
- // 策略 1: 使用提供的文件路径
34
- if (args.currentFile && fs.existsSync(args.currentFile)) {
35
- analysisSource = 'file-path';
36
- const ext = args.currentFile.split('.').pop()?.toLowerCase() || '';
37
- const extMap = {
38
- 'vue': 'vue',
39
- 'ts': 'ts',
40
- 'tsx': 'tsx',
41
- 'js': 'js',
42
- 'jsx': 'jsx'
43
- };
44
- detectedFileType = extMap[ext] || 'unknown';
45
- // 读取文件内容分析
46
- try {
47
- const content = fs.readFileSync(args.currentFile, 'utf-8');
48
- const imports = extractImports(content);
49
- detectedImports = imports;
50
- detectedScenario = inferScenario(content, detectedFileType);
51
- }
52
- catch {
53
- logger.log('无法读取文件内容,仅使用文件类型');
54
- }
55
- }
56
- // 策略 2: 使用提供的文件内容
57
- if (args.fileContent) {
58
- analysisSource = 'file-content';
59
- const imports = extractImports(args.fileContent);
60
- detectedImports = [...detectedImports, ...imports];
61
- // 从内容推断文件类型
62
- if (detectedFileType === 'unknown') {
63
- if (args.fileContent.includes('<template>')) {
64
- detectedFileType = 'vue';
65
- }
66
- else if (args.fileContent.includes('interface ') || args.fileContent.includes('type ')) {
67
- detectedFileType = 'ts';
68
- }
69
- }
70
- const scenario = inferScenario(args.fileContent, detectedFileType);
71
- if (scenario)
72
- detectedScenario = scenario;
73
- }
74
- // 策略 3: 环境检测(进程当前目录)
75
- if (detectedFileType === 'unknown') {
76
- analysisSource = 'environment';
77
- const cwd = process.cwd();
78
- const packageJsonPath = `${cwd}/package.json`;
79
- if (fs.existsSync(packageJsonPath)) {
80
- try {
81
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
82
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
83
- if (deps['vue']) {
84
- detectedFileType = 'vue';
85
- detectedImports.push('vue');
86
- }
87
- if (deps['react']) {
88
- detectedFileType = 'tsx';
89
- detectedImports.push('react');
90
- }
91
- if (deps['element-plus'])
92
- detectedImports.push('element-plus');
93
- if (deps['pinia'])
94
- detectedImports.push('pinia');
95
- if (deps['vue-i18n'])
96
- detectedImports.push('vue-i18n');
97
- }
98
- catch {
99
- logger.log('无法解析 package.json');
100
- }
101
- }
102
- }
103
- // 去重
104
- detectedImports = [...new Set(detectedImports)];
105
- logger.log(`🔍 智能检测结果: fileType=${detectedFileType}, imports=${detectedImports.join(',')}, scenario=${detectedScenario}`);
106
- // 获取相关规范
107
- const standards = manager.getRelevantStandards({
108
- fileType: detectedFileType !== 'unknown' ? detectedFileType : undefined,
109
- imports: detectedImports.length > 0 ? detectedImports : undefined,
110
- scenario: detectedScenario || undefined
111
- });
112
- const combinedContent = manager.combineStandards(standards);
113
- return {
114
- content: [{
115
- type: 'text',
116
- text: JSON.stringify({
117
- success: true,
118
- analysis: {
119
- source: analysisSource,
120
- fileType: detectedFileType,
121
- imports: detectedImports,
122
- scenario: detectedScenario
123
- },
124
- standards: standards,
125
- content: combinedContent,
126
- stats: {
127
- standardsCount: standards.length,
128
- contentLength: combinedContent.length,
129
- estimatedTokens: Math.ceil(combinedContent.length / 4)
130
- }
131
- }, null, 2)
132
- }]
133
- };
134
- }
135
- catch (error) {
136
- logger.error(`智能规范推荐失败: ${error}`);
137
- return {
138
- content: [{
139
- type: 'text',
140
- text: JSON.stringify({
141
- error: error instanceof Error ? error.message : String(error)
142
- }, null, 2)
143
- }]
144
- };
145
- }
146
- }
147
- /**
148
- * 从代码中提取导入语句
149
- */
150
- function extractImports(content) {
151
- const imports = [];
152
- // ES6 imports
153
- const es6Regex = /import\s+.*?\s+from\s+['"]([^'"]+)['"]/g;
154
- let match;
155
- while ((match = es6Regex.exec(content)) !== null) {
156
- const pkg = match[1];
157
- if (!pkg.startsWith('.') && !pkg.startsWith('/')) {
158
- imports.push(pkg.split('/')[0]);
159
- }
160
- }
161
- // require statements
162
- const requireRegex = /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
163
- while ((match = requireRegex.exec(content)) !== null) {
164
- const pkg = match[1];
165
- if (!pkg.startsWith('.') && !pkg.startsWith('/')) {
166
- imports.push(pkg.split('/')[0]);
167
- }
168
- }
169
- return [...new Set(imports)];
170
- }
171
- /**
172
- * 从代码推断开发场景
173
- */
174
- function inferScenario(content, fileType) {
175
- const scenarios = [];
176
- // Vue 相关
177
- if (fileType === 'vue') {
178
- if (content.includes('ElForm') || content.includes('<el-form')) {
179
- scenarios.push('表单组件');
180
- }
181
- if (content.includes('ElTable') || content.includes('<el-table')) {
182
- scenarios.push('表格组件');
183
- }
184
- if (content.includes('defineStore')) {
185
- scenarios.push('状态管理');
186
- }
187
- if (content.includes('useI18n') || content.includes('$t(')) {
188
- scenarios.push('国际化');
189
- }
190
- }
191
- // API 调用
192
- if (content.includes('fetch(') || content.includes('axios.')) {
193
- scenarios.push('API 调用');
194
- }
195
- // TypeScript
196
- if (content.includes('interface ') || content.includes('type ')) {
197
- scenarios.push('类型定义');
198
- }
199
- return scenarios.join('、');
200
- }
201
- //# sourceMappingURL=getSmartStandards.js.map
@@ -1 +0,0 @@
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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * 按 ID 获取规范工具
3
- *
4
- * 设计理念:AI 已经知道需要什么规范,直接按 ID 获取
5
- * 这是最简洁高效的方式,不做任何"智能"匹配
6
- *
7
- * @module tools/getStandardById
8
- */
9
- /**
10
- * 加载模式
11
- */
12
- type LoadMode = 'summary' | 'key-rules' | 'full';
13
- /**
14
- * 按 ID 获取规范
15
- *
16
- * @example
17
- * // AI 直接调用
18
- * get_standard_by_id({ id: 'vue3-composition', mode: 'key-rules' })
19
- *
20
- * @example
21
- * // 获取多个规范
22
- * get_standard_by_id({ ids: ['vue3-composition', 'element-plus'], mode: 'summary' })
23
- */
24
- export declare function getStandardById(args: {
25
- /** 单个规范 ID */
26
- id?: string;
27
- /** 多个规范 ID */
28
- ids?: string[];
29
- /** 加载模式:summary(摘要) | key-rules(关键规则) | full(完整) */
30
- mode?: LoadMode;
31
- }): Promise<{
32
- content: Array<{
33
- type: string;
34
- text: string;
35
- }>;
36
- }>;
37
- /**
38
- * 列出所有可用的规范
39
- */
40
- export declare function listAvailableStandards(): string[];
41
- export {};
42
- //# sourceMappingURL=getStandardById.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getStandardById.d.ts","sourceRoot":"","sources":["../../src/tools/getStandardById.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH;;GAEG;AACH,KAAK,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IACxC,cAAc;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,oDAAoD;IACpD,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC;IACR,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC,CA4FD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAGjD"}