mcp-probe-kit 3.1.0 → 3.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 +15 -5
- package/build/index.js +5 -2
- package/build/lib/__tests__/memory-orchestration.unit.test.js +88 -0
- package/build/lib/__tests__/memory-payload.unit.test.js +35 -0
- package/build/lib/__tests__/quality-constraints.unit.test.d.ts +1 -0
- package/build/lib/__tests__/quality-constraints.unit.test.js +54 -0
- package/build/lib/__tests__/spec-validator.unit.test.d.ts +1 -0
- package/build/lib/__tests__/spec-validator.unit.test.js +147 -0
- package/build/lib/agents-md-template.js +32 -32
- package/build/lib/cursor-history-client.d.ts +54 -0
- package/build/lib/cursor-history-client.js +240 -0
- package/build/lib/memory-orchestration.js +29 -8
- package/build/lib/quality-constraints.d.ts +54 -0
- package/build/lib/quality-constraints.js +155 -0
- package/build/lib/skill-bridge.js +12 -12
- package/build/lib/spec-validator.d.ts +36 -0
- package/build/lib/spec-validator.js +116 -0
- package/build/lib/template-loader.js +223 -61
- package/build/lib/tool-annotations.d.ts +30 -0
- package/build/lib/tool-annotations.js +55 -0
- package/build/lib/toolset-manager.js +2 -0
- package/build/resources/ui-ux-data/guidelines/vercel-web-interface.json +1632 -1632
- package/build/resources/ui-ux-data/metadata.json +30 -30
- package/build/resources/ui-ux-data/shadcn/blocks.json +2541 -2541
- package/build/resources/ui-ux-data/shadcn/components.json +997 -997
- package/build/resources/ui-ux-data/themes/presets.json +483 -483
- package/build/schemas/index.d.ts +22 -0
- package/build/schemas/project-tools.d.ts +22 -0
- package/build/schemas/project-tools.js +23 -0
- package/build/tools/__tests__/cursor-history.unit.test.d.ts +1 -0
- package/build/tools/__tests__/cursor-history.unit.test.js +38 -0
- package/build/tools/check_spec.d.ts +7 -0
- package/build/tools/check_spec.js +81 -0
- package/build/tools/code_insight.js +41 -41
- package/build/tools/code_review.js +11 -4
- package/build/tools/cursor_read_conversation.d.ts +7 -0
- package/build/tools/cursor_read_conversation.js +36 -0
- package/build/tools/fix_bug.js +161 -161
- package/build/tools/gencommit.js +60 -60
- package/build/tools/index.d.ts +1 -0
- package/build/tools/index.js +1 -0
- package/build/tools/init_project_context.js +432 -432
- package/build/tools/start_bugfix.js +21 -10
- package/build/tools/start_feature.js +46 -11
- package/build/tools/start_product.js +1 -1
- package/build/tools/start_ui.js +44 -13
- package/build/tools/ui-ux-tools.d.ts +3 -0
- package/build/tools/ui-ux-tools.js +302 -290
- package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
- package/build/utils/design-reasoning-engine.d.ts +2 -0
- package/build/utils/design-reasoning-engine.js +3 -0
- package/build/utils/themes-sync.js +8 -8
- package/package.json +4 -3
- package/build/resources/index.d.ts +0 -4
- package/build/resources/index.js +0 -4
- package/build/resources/tool-params-guide.d.ts +0 -571
- package/build/resources/tool-params-guide.js +0 -488
- package/build/tools/analyze_project.d.ts +0 -1
- package/build/tools/analyze_project.js +0 -527
- package/build/tools/check_deps.d.ts +0 -13
- package/build/tools/check_deps.js +0 -204
- package/build/tools/convert.d.ts +0 -13
- package/build/tools/convert.js +0 -599
- package/build/tools/css_order.d.ts +0 -13
- package/build/tools/css_order.js +0 -81
- package/build/tools/debug.d.ts +0 -13
- package/build/tools/debug.js +0 -131
- package/build/tools/design2code.d.ts +0 -20
- package/build/tools/design2code.js +0 -426
- package/build/tools/detect_shell.d.ts +0 -6
- package/build/tools/detect_shell.js +0 -151
- package/build/tools/explain.d.ts +0 -13
- package/build/tools/explain.js +0 -390
- package/build/tools/fix.d.ts +0 -13
- package/build/tools/fix.js +0 -303
- package/build/tools/gen_mock.d.ts +0 -22
- package/build/tools/gen_mock.js +0 -269
- package/build/tools/gen_skill.d.ts +0 -13
- package/build/tools/gen_skill.js +0 -560
- package/build/tools/genapi.d.ts +0 -13
- package/build/tools/genapi.js +0 -174
- package/build/tools/genchangelog.d.ts +0 -13
- package/build/tools/genchangelog.js +0 -250
- package/build/tools/gendoc.d.ts +0 -13
- package/build/tools/gendoc.js +0 -232
- package/build/tools/genpr.d.ts +0 -13
- package/build/tools/genpr.js +0 -194
- package/build/tools/genreadme.d.ts +0 -13
- package/build/tools/genreadme.js +0 -626
- package/build/tools/gensql.d.ts +0 -13
- package/build/tools/gensql.js +0 -320
- package/build/tools/genui.d.ts +0 -13
- package/build/tools/genui.js +0 -803
- package/build/tools/init_component_catalog.d.ts +0 -22
- package/build/tools/init_component_catalog.js +0 -809
- package/build/tools/init_setting.d.ts +0 -13
- package/build/tools/init_setting.js +0 -47
- package/build/tools/perf.d.ts +0 -13
- package/build/tools/perf.js +0 -409
- package/build/tools/render_ui.d.ts +0 -22
- package/build/tools/render_ui.js +0 -384
- package/build/tools/resolve_conflict.d.ts +0 -13
- package/build/tools/resolve_conflict.js +0 -349
- package/build/tools/security_scan.d.ts +0 -22
- package/build/tools/security_scan.js +0 -323
- package/build/tools/split.d.ts +0 -13
- package/build/tools/split.js +0 -599
- package/build/tools/start_api.d.ts +0 -13
- package/build/tools/start_api.js +0 -193
- package/build/tools/start_doc.d.ts +0 -13
- package/build/tools/start_doc.js +0 -207
- package/build/tools/start_refactor.d.ts +0 -13
- package/build/tools/start_refactor.js +0 -188
- package/build/tools/start_release.d.ts +0 -13
- package/build/tools/start_release.js +0 -167
- package/build/tools/start_review.d.ts +0 -13
- package/build/tools/start_review.js +0 -175
- /package/build/{utils/design-docs-generator.d.ts → lib/__tests__/memory-orchestration.unit.test.d.ts} +0 -0
- /package/build/{utils/design-docs-generator.js → lib/__tests__/memory-payload.unit.test.d.ts} +0 -0
package/build/tools/start_api.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
-
/**
|
|
3
|
-
* start_api 智能编排工具
|
|
4
|
-
*
|
|
5
|
-
* 场景:API 开发
|
|
6
|
-
* 编排:[检查上下文] → genapi → gen_mock → gentest
|
|
7
|
-
*/
|
|
8
|
-
const PROMPT_TEMPLATE = `# 🔌 API 开发编排指南
|
|
9
|
-
|
|
10
|
-
## 🎯 目标
|
|
11
|
-
|
|
12
|
-
为以下 API 代码生成完整的开发资料:
|
|
13
|
-
|
|
14
|
-
\`\`\`{language}
|
|
15
|
-
{code}
|
|
16
|
-
\`\`\`
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 📋 步骤 0: 项目上下文(自动处理)
|
|
21
|
-
|
|
22
|
-
**操作**:
|
|
23
|
-
1. 检查 \`docs/project-context.md\` 是否存在
|
|
24
|
-
2. **如果不存在**:
|
|
25
|
-
- 调用 \`init_project_context\` 工具
|
|
26
|
-
- 等待生成完成
|
|
27
|
-
3. **读取** \`docs/project-context.md\` 内容
|
|
28
|
-
4. 了解项目的 API 规范、测试框架
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## 📝 步骤 1: 生成 API 文档
|
|
33
|
-
|
|
34
|
-
**调用工具**: \`genapi\`
|
|
35
|
-
|
|
36
|
-
**参数**:
|
|
37
|
-
\`\`\`json
|
|
38
|
-
{
|
|
39
|
-
"code": "[API 代码]",
|
|
40
|
-
"format": "{format}"
|
|
41
|
-
}
|
|
42
|
-
\`\`\`
|
|
43
|
-
|
|
44
|
-
**生成内容**:
|
|
45
|
-
- API 端点列表
|
|
46
|
-
- 请求/响应格式
|
|
47
|
-
- 参数说明
|
|
48
|
-
- 示例
|
|
49
|
-
|
|
50
|
-
**产出**: API 文档(Markdown/OpenAPI/JSDoc)
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## 🎭 步骤 2: 生成 Mock 数据
|
|
55
|
-
|
|
56
|
-
**调用工具**: \`gen_mock\`
|
|
57
|
-
|
|
58
|
-
**参数**:
|
|
59
|
-
\`\`\`json
|
|
60
|
-
{
|
|
61
|
-
"schema": "[从 API 代码中提取的数据结构]",
|
|
62
|
-
"count": 5,
|
|
63
|
-
"format": "json",
|
|
64
|
-
"locale": "zh-CN"
|
|
65
|
-
}
|
|
66
|
-
\`\`\`
|
|
67
|
-
|
|
68
|
-
**生成内容**:
|
|
69
|
-
- 请求示例数据
|
|
70
|
-
- 响应示例数据
|
|
71
|
-
- 各种场景的测试数据
|
|
72
|
-
|
|
73
|
-
**产出**: Mock 数据文件
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## 🧪 步骤 3: 生成 API 测试
|
|
78
|
-
|
|
79
|
-
**调用工具**: \`gentest\`
|
|
80
|
-
|
|
81
|
-
**参数**:
|
|
82
|
-
\`\`\`json
|
|
83
|
-
{
|
|
84
|
-
"code": "[API 代码]",
|
|
85
|
-
"framework": "[根据项目上下文选择]"
|
|
86
|
-
}
|
|
87
|
-
\`\`\`
|
|
88
|
-
|
|
89
|
-
**生成内容**:
|
|
90
|
-
- 单元测试
|
|
91
|
-
- 集成测试
|
|
92
|
-
- 边界情况测试
|
|
93
|
-
- 错误处理测试
|
|
94
|
-
|
|
95
|
-
**产出**: 测试代码
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## ✅ 完成检查
|
|
100
|
-
|
|
101
|
-
- [ ] 项目上下文已读取
|
|
102
|
-
- [ ] API 文档已生成
|
|
103
|
-
- [ ] Mock 数据已生成
|
|
104
|
-
- [ ] 测试代码已生成
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## 📊 输出汇总
|
|
109
|
-
|
|
110
|
-
完成后,向用户提供:
|
|
111
|
-
|
|
112
|
-
### 1. API 文档
|
|
113
|
-
|
|
114
|
-
\`\`\`markdown
|
|
115
|
-
## API 端点
|
|
116
|
-
|
|
117
|
-
### [METHOD] /path
|
|
118
|
-
|
|
119
|
-
**描述**: ...
|
|
120
|
-
|
|
121
|
-
**请求参数**:
|
|
122
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
123
|
-
|------|------|------|------|
|
|
124
|
-
|
|
125
|
-
**响应**:
|
|
126
|
-
\`\`\`json
|
|
127
|
-
{
|
|
128
|
-
"code": 0,
|
|
129
|
-
"data": {}
|
|
130
|
-
}
|
|
131
|
-
\`\`\`
|
|
132
|
-
\`\`\`
|
|
133
|
-
|
|
134
|
-
### 2. Mock 数据
|
|
135
|
-
|
|
136
|
-
\`\`\`json
|
|
137
|
-
[Mock 数据示例]
|
|
138
|
-
\`\`\`
|
|
139
|
-
|
|
140
|
-
### 3. 测试代码
|
|
141
|
-
|
|
142
|
-
\`\`\`typescript
|
|
143
|
-
[测试代码]
|
|
144
|
-
\`\`\`
|
|
145
|
-
|
|
146
|
-
### 4. 使用建议
|
|
147
|
-
|
|
148
|
-
- Mock 数据可用于前端开发联调
|
|
149
|
-
- 测试代码可直接运行验证 API
|
|
150
|
-
- API 文档可分享给前端/调用方
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
*编排工具: MCP Probe Kit - start_api*
|
|
155
|
-
`;
|
|
156
|
-
export async function startApi(args) {
|
|
157
|
-
try {
|
|
158
|
-
// 智能参数解析,支持自然语言输入
|
|
159
|
-
const parsedArgs = parseArgs(args, {
|
|
160
|
-
defaultValues: {
|
|
161
|
-
code: "",
|
|
162
|
-
language: "typescript",
|
|
163
|
-
format: "markdown",
|
|
164
|
-
},
|
|
165
|
-
primaryField: "code", // 纯文本输入默认映射到 code 字段
|
|
166
|
-
fieldAliases: {
|
|
167
|
-
code: ["source", "api", "代码", "endpoint"],
|
|
168
|
-
language: ["lang", "语言", "编程语言"],
|
|
169
|
-
format: ["output", "type", "格式", "输出格式"],
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
const code = getString(parsedArgs.code);
|
|
173
|
-
const language = getString(parsedArgs.language) || "typescript";
|
|
174
|
-
const format = getString(parsedArgs.format) || "markdown";
|
|
175
|
-
if (!code) {
|
|
176
|
-
throw new Error("缺少必填参数: code(API 代码)");
|
|
177
|
-
}
|
|
178
|
-
const guide = PROMPT_TEMPLATE
|
|
179
|
-
.replace(/{code}/g, code)
|
|
180
|
-
.replace(/{language}/g, language)
|
|
181
|
-
.replace(/{format}/g, format);
|
|
182
|
-
return {
|
|
183
|
-
content: [{ type: "text", text: guide }],
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
188
|
-
return {
|
|
189
|
-
content: [{ type: "text", text: `❌ 编排执行失败: ${errorMsg}` }],
|
|
190
|
-
isError: true,
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
package/build/tools/start_doc.js
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
-
/**
|
|
3
|
-
* start_doc 智能编排工具
|
|
4
|
-
*
|
|
5
|
-
* 场景:文档生成
|
|
6
|
-
* 编排:[检查上下文] → gendoc → genreadme → genapi
|
|
7
|
-
*/
|
|
8
|
-
const PROMPT_TEMPLATE = `# 📖 文档生成编排指南
|
|
9
|
-
|
|
10
|
-
## 🎯 目标
|
|
11
|
-
|
|
12
|
-
为项目/代码生成完整的文档
|
|
13
|
-
|
|
14
|
-
**输入内容**:
|
|
15
|
-
\`\`\`
|
|
16
|
-
{code}
|
|
17
|
-
\`\`\`
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## 📋 步骤 0: 项目上下文(自动处理)
|
|
22
|
-
|
|
23
|
-
**操作**:
|
|
24
|
-
1. 检查 \`docs/project-context.md\` 是否存在
|
|
25
|
-
2. **如果不存在**:
|
|
26
|
-
- 调用 \`init_project_context\` 工具
|
|
27
|
-
- 等待生成完成
|
|
28
|
-
3. **读取** \`docs/project-context.md\` 内容
|
|
29
|
-
4. 了解项目的文档风格、技术栈
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## 📝 步骤 1: 生成代码注释
|
|
34
|
-
|
|
35
|
-
**调用工具**: \`gendoc\`
|
|
36
|
-
|
|
37
|
-
**参数**:
|
|
38
|
-
\`\`\`json
|
|
39
|
-
{
|
|
40
|
-
"code": "[代码内容]",
|
|
41
|
-
"style": "{style}",
|
|
42
|
-
"lang": "{lang}"
|
|
43
|
-
}
|
|
44
|
-
\`\`\`
|
|
45
|
-
|
|
46
|
-
**生成内容**:
|
|
47
|
-
- 函数/方法注释
|
|
48
|
-
- 参数说明
|
|
49
|
-
- 返回值说明
|
|
50
|
-
- 使用示例
|
|
51
|
-
|
|
52
|
-
**产出**: 带注释的代码
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 📄 步骤 2: 生成 README
|
|
57
|
-
|
|
58
|
-
**调用工具**: \`genreadme\`
|
|
59
|
-
|
|
60
|
-
**参数**:
|
|
61
|
-
\`\`\`json
|
|
62
|
-
{
|
|
63
|
-
"project_info": "[项目信息或代码]",
|
|
64
|
-
"style": "standard"
|
|
65
|
-
}
|
|
66
|
-
\`\`\`
|
|
67
|
-
|
|
68
|
-
**生成内容**:
|
|
69
|
-
- 项目简介
|
|
70
|
-
- 功能特性
|
|
71
|
-
- 安装使用
|
|
72
|
-
- API 说明
|
|
73
|
-
- 贡献指南
|
|
74
|
-
|
|
75
|
-
**产出**: README.md
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## 🔌 步骤 3: 生成 API 文档(如适用)
|
|
80
|
-
|
|
81
|
-
**调用工具**: \`genapi\`
|
|
82
|
-
|
|
83
|
-
**参数**:
|
|
84
|
-
\`\`\`json
|
|
85
|
-
{
|
|
86
|
-
"code": "[API 相关代码]",
|
|
87
|
-
"format": "markdown"
|
|
88
|
-
}
|
|
89
|
-
\`\`\`
|
|
90
|
-
|
|
91
|
-
**生成内容**:
|
|
92
|
-
- API 端点列表
|
|
93
|
-
- 请求/响应格式
|
|
94
|
-
- 参数说明
|
|
95
|
-
|
|
96
|
-
**产出**: API 文档
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## ✅ 完成检查
|
|
101
|
-
|
|
102
|
-
- [ ] 项目上下文已读取
|
|
103
|
-
- [ ] 代码注释已生成
|
|
104
|
-
- [ ] README 已生成
|
|
105
|
-
- [ ] API 文档已生成(如适用)
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## 📊 输出汇总
|
|
110
|
-
|
|
111
|
-
完成后,向用户提供:
|
|
112
|
-
|
|
113
|
-
### 1. 代码注释
|
|
114
|
-
|
|
115
|
-
\`\`\`typescript
|
|
116
|
-
/**
|
|
117
|
-
* [函数描述]
|
|
118
|
-
* @param {Type} param - [参数说明]
|
|
119
|
-
* @returns {Type} [返回值说明]
|
|
120
|
-
* @example
|
|
121
|
-
* [使用示例]
|
|
122
|
-
*/
|
|
123
|
-
\`\`\`
|
|
124
|
-
|
|
125
|
-
### 2. README.md
|
|
126
|
-
|
|
127
|
-
\`\`\`markdown
|
|
128
|
-
# 项目名称
|
|
129
|
-
|
|
130
|
-
## 简介
|
|
131
|
-
...
|
|
132
|
-
|
|
133
|
-
## 功能特性
|
|
134
|
-
...
|
|
135
|
-
|
|
136
|
-
## 快速开始
|
|
137
|
-
...
|
|
138
|
-
|
|
139
|
-
## API 文档
|
|
140
|
-
...
|
|
141
|
-
|
|
142
|
-
## 贡献指南
|
|
143
|
-
...
|
|
144
|
-
|
|
145
|
-
## 许可证
|
|
146
|
-
...
|
|
147
|
-
\`\`\`
|
|
148
|
-
|
|
149
|
-
### 3. API 文档(如适用)
|
|
150
|
-
|
|
151
|
-
\`\`\`markdown
|
|
152
|
-
## API 参考
|
|
153
|
-
...
|
|
154
|
-
\`\`\`
|
|
155
|
-
|
|
156
|
-
### 4. 文档清单
|
|
157
|
-
|
|
158
|
-
| 文档 | 状态 | 位置 |
|
|
159
|
-
|------|------|------|
|
|
160
|
-
| 代码注释 | ✅ | 源代码中 |
|
|
161
|
-
| README | ✅ | README.md |
|
|
162
|
-
| API 文档 | ✅/- | docs/api.md |
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
*编排工具: MCP Probe Kit - start_doc*
|
|
167
|
-
`;
|
|
168
|
-
export async function startDoc(args) {
|
|
169
|
-
try {
|
|
170
|
-
// 智能参数解析,支持自然语言输入
|
|
171
|
-
const parsedArgs = parseArgs(args, {
|
|
172
|
-
defaultValues: {
|
|
173
|
-
code: "",
|
|
174
|
-
project_info: "",
|
|
175
|
-
style: "jsdoc",
|
|
176
|
-
lang: "zh",
|
|
177
|
-
},
|
|
178
|
-
primaryField: "code", // 纯文本输入默认映射到 code 字段
|
|
179
|
-
fieldAliases: {
|
|
180
|
-
code: ["source", "src", "代码", "content"],
|
|
181
|
-
project_info: ["info", "project", "项目信息"],
|
|
182
|
-
style: ["format", "type", "风格", "注释风格"],
|
|
183
|
-
lang: ["language", "语言"],
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
const code = getString(parsedArgs.code) || getString(parsedArgs.project_info);
|
|
187
|
-
const style = getString(parsedArgs.style) || "jsdoc";
|
|
188
|
-
const lang = getString(parsedArgs.lang) || "zh";
|
|
189
|
-
if (!code) {
|
|
190
|
-
throw new Error("缺少必填参数: code 或 project_info");
|
|
191
|
-
}
|
|
192
|
-
const guide = PROMPT_TEMPLATE
|
|
193
|
-
.replace(/{code}/g, code)
|
|
194
|
-
.replace(/{style}/g, style)
|
|
195
|
-
.replace(/{lang}/g, lang);
|
|
196
|
-
return {
|
|
197
|
-
content: [{ type: "text", text: guide }],
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
catch (error) {
|
|
201
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
202
|
-
return {
|
|
203
|
-
content: [{ type: "text", text: `❌ 编排执行失败: ${errorMsg}` }],
|
|
204
|
-
isError: true,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
}
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
-
/**
|
|
3
|
-
* start_refactor 智能编排工具
|
|
4
|
-
*
|
|
5
|
-
* 场景:代码重构
|
|
6
|
-
* 编排:[检查上下文] → code_review → refactor → gentest
|
|
7
|
-
*/
|
|
8
|
-
const PROMPT_TEMPLATE = `# ♻️ 代码重构编排指南
|
|
9
|
-
|
|
10
|
-
## 🎯 目标
|
|
11
|
-
|
|
12
|
-
重构以下代码:
|
|
13
|
-
|
|
14
|
-
\`\`\`
|
|
15
|
-
{code}
|
|
16
|
-
\`\`\`
|
|
17
|
-
|
|
18
|
-
**重构目标**: {goal}
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 📋 步骤 0: 项目上下文(自动处理)
|
|
23
|
-
|
|
24
|
-
**操作**:
|
|
25
|
-
1. 检查 \`docs/project-context.md\` 是否存在
|
|
26
|
-
2. **如果不存在**:
|
|
27
|
-
- 调用 \`init_project_context\` 工具
|
|
28
|
-
- 等待生成完成
|
|
29
|
-
3. **读取** \`docs/project-context.md\` 内容
|
|
30
|
-
4. 了解项目的架构模式、编码规范
|
|
31
|
-
5. 重构要符合项目规范
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 🔍 步骤 1: 代码审查(发现问题)
|
|
36
|
-
|
|
37
|
-
**调用工具**: \`code_review\`
|
|
38
|
-
|
|
39
|
-
**参数**:
|
|
40
|
-
\`\`\`json
|
|
41
|
-
{
|
|
42
|
-
"code": "[待重构代码]",
|
|
43
|
-
"focus": "quality"
|
|
44
|
-
}
|
|
45
|
-
\`\`\`
|
|
46
|
-
|
|
47
|
-
**目的**:
|
|
48
|
-
- 识别代码坏味道
|
|
49
|
-
- 发现可改进点
|
|
50
|
-
- 评估当前代码质量
|
|
51
|
-
|
|
52
|
-
**产出**: 问题清单
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## ♻️ 步骤 2: 生成重构方案
|
|
57
|
-
|
|
58
|
-
**调用工具**: \`refactor\`
|
|
59
|
-
|
|
60
|
-
**参数**:
|
|
61
|
-
\`\`\`json
|
|
62
|
-
{
|
|
63
|
-
"code": "[待重构代码]",
|
|
64
|
-
"goal": "{goal}"
|
|
65
|
-
}
|
|
66
|
-
\`\`\`
|
|
67
|
-
|
|
68
|
-
**重构方向**:
|
|
69
|
-
- improve_readability: 提高可读性
|
|
70
|
-
- reduce_complexity: 降低复杂度
|
|
71
|
-
- extract_function: 提取函数
|
|
72
|
-
- remove_duplication: 消除重复
|
|
73
|
-
- improve_naming: 改进命名
|
|
74
|
-
|
|
75
|
-
**产出**: 重构后的代码 + 重构说明
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## 🧪 步骤 3: 生成保护测试
|
|
80
|
-
|
|
81
|
-
**调用工具**: \`gentest\`
|
|
82
|
-
|
|
83
|
-
**参数**:
|
|
84
|
-
\`\`\`json
|
|
85
|
-
{
|
|
86
|
-
"code": "[重构后的代码]",
|
|
87
|
-
"framework": "[根据项目上下文选择]"
|
|
88
|
-
}
|
|
89
|
-
\`\`\`
|
|
90
|
-
|
|
91
|
-
**目的**:
|
|
92
|
-
- 确保重构不改变行为
|
|
93
|
-
- 为重构后的代码提供测试保护
|
|
94
|
-
- 覆盖主要功能和边界情况
|
|
95
|
-
|
|
96
|
-
**产出**: 测试代码
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## ✅ 完成检查
|
|
101
|
-
|
|
102
|
-
- [ ] 项目上下文已读取
|
|
103
|
-
- [ ] 代码问题已识别
|
|
104
|
-
- [ ] 重构方案已生成
|
|
105
|
-
- [ ] 代码已重构
|
|
106
|
-
- [ ] 测试已添加
|
|
107
|
-
- [ ] 测试已通过
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 📝 输出汇总
|
|
112
|
-
|
|
113
|
-
完成后,向用户提供:
|
|
114
|
-
|
|
115
|
-
### 1. 重构前后对比
|
|
116
|
-
|
|
117
|
-
**重构前**:
|
|
118
|
-
\`\`\`
|
|
119
|
-
[原代码]
|
|
120
|
-
\`\`\`
|
|
121
|
-
|
|
122
|
-
**重构后**:
|
|
123
|
-
\`\`\`
|
|
124
|
-
[新代码]
|
|
125
|
-
\`\`\`
|
|
126
|
-
|
|
127
|
-
### 2. 改进说明
|
|
128
|
-
|
|
129
|
-
| 改进项 | 说明 |
|
|
130
|
-
|--------|------|
|
|
131
|
-
| [改进1] | [说明] |
|
|
132
|
-
| [改进2] | [说明] |
|
|
133
|
-
|
|
134
|
-
### 3. 测试覆盖
|
|
135
|
-
|
|
136
|
-
- 测试用例数: X
|
|
137
|
-
- 覆盖场景: [列出]
|
|
138
|
-
|
|
139
|
-
### 4. 注意事项
|
|
140
|
-
|
|
141
|
-
- [重构可能影响的地方]
|
|
142
|
-
- [需要同步修改的地方]
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
*编排工具: MCP Probe Kit - start_refactor*
|
|
147
|
-
`;
|
|
148
|
-
export async function startRefactor(args) {
|
|
149
|
-
try {
|
|
150
|
-
// 智能参数解析,支持自然语言输入
|
|
151
|
-
const parsedArgs = parseArgs(args, {
|
|
152
|
-
defaultValues: {
|
|
153
|
-
code: "",
|
|
154
|
-
goal: "improve_readability",
|
|
155
|
-
},
|
|
156
|
-
primaryField: "code", // 纯文本输入默认映射到 code 字段
|
|
157
|
-
fieldAliases: {
|
|
158
|
-
code: ["source", "src", "代码", "content"],
|
|
159
|
-
goal: ["target", "objective", "目标", "重构目标"],
|
|
160
|
-
},
|
|
161
|
-
});
|
|
162
|
-
const code = getString(parsedArgs.code);
|
|
163
|
-
const goal = getString(parsedArgs.goal) || "improve_readability";
|
|
164
|
-
if (!code) {
|
|
165
|
-
throw new Error("缺少必填参数: code(需要重构的代码)");
|
|
166
|
-
}
|
|
167
|
-
const goalDesc = {
|
|
168
|
-
improve_readability: "提高可读性",
|
|
169
|
-
reduce_complexity: "降低复杂度",
|
|
170
|
-
extract_function: "提取函数",
|
|
171
|
-
remove_duplication: "消除重复",
|
|
172
|
-
improve_naming: "改进命名",
|
|
173
|
-
};
|
|
174
|
-
const guide = PROMPT_TEMPLATE
|
|
175
|
-
.replace(/{code}/g, code)
|
|
176
|
-
.replace(/{goal}/g, goalDesc[goal] || goal);
|
|
177
|
-
return {
|
|
178
|
-
content: [{ type: "text", text: guide }],
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
183
|
-
return {
|
|
184
|
-
content: [{ type: "text", text: `❌ 编排执行失败: ${errorMsg}` }],
|
|
185
|
-
isError: true,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
}
|