mcp-probe-kit 3.0.23 → 3.1.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 +755 -779
- package/build/index.js +38 -40
- package/build/lib/__tests__/memory-injection.unit.test.js +1 -0
- package/build/lib/agents-md-template.js +32 -32
- package/build/lib/memory-client.d.ts +2 -0
- package/build/lib/memory-client.js +1 -0
- package/build/lib/memory-config.d.ts +2 -0
- package/build/lib/memory-config.js +1 -0
- package/build/lib/memory-orchestration.d.ts +4 -0
- package/build/lib/memory-orchestration.js +28 -5
- package/build/lib/skill-bridge.js +12 -12
- package/build/resources/index.d.ts +4 -0
- package/build/resources/index.js +4 -0
- package/build/resources/tool-params-guide.d.ts +571 -0
- package/build/resources/tool-params-guide.js +488 -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 +0 -22
- package/build/schemas/memory-tools.d.ts +0 -22
- package/build/schemas/memory-tools.js +0 -14
- package/build/tools/__tests__/read_memory_asset.unit.test.js +75 -0
- package/build/tools/__tests__/search_memory.unit.test.js +7 -1
- package/build/tools/analyze_project.d.ts +1 -0
- package/build/tools/analyze_project.js +527 -0
- package/build/tools/check_deps.d.ts +13 -0
- package/build/tools/check_deps.js +204 -0
- package/build/tools/code_insight.js +41 -41
- package/build/tools/convert.d.ts +13 -0
- package/build/tools/convert.js +599 -0
- package/build/tools/css_order.d.ts +13 -0
- package/build/tools/css_order.js +81 -0
- package/build/tools/debug.d.ts +13 -0
- package/build/tools/debug.js +131 -0
- package/build/tools/design2code.d.ts +20 -0
- package/build/tools/design2code.js +426 -0
- package/build/tools/detect_shell.d.ts +6 -0
- package/build/tools/detect_shell.js +151 -0
- package/build/tools/explain.d.ts +13 -0
- package/build/tools/explain.js +390 -0
- package/build/tools/fix.d.ts +13 -0
- package/build/tools/fix.js +303 -0
- package/build/tools/fix_bug.js +161 -161
- package/build/tools/gen_mock.d.ts +22 -0
- package/build/tools/gen_mock.js +269 -0
- package/build/tools/gen_skill.d.ts +13 -0
- package/build/tools/gen_skill.js +560 -0
- package/build/tools/genapi.d.ts +13 -0
- package/build/tools/genapi.js +174 -0
- package/build/tools/genchangelog.d.ts +13 -0
- package/build/tools/genchangelog.js +250 -0
- package/build/tools/gencommit.js +60 -60
- package/build/tools/gendoc.d.ts +13 -0
- package/build/tools/gendoc.js +232 -0
- package/build/tools/genpr.d.ts +13 -0
- package/build/tools/genpr.js +194 -0
- package/build/tools/genreadme.d.ts +13 -0
- package/build/tools/genreadme.js +626 -0
- package/build/tools/gensql.d.ts +13 -0
- package/build/tools/gensql.js +320 -0
- package/build/tools/genui.d.ts +13 -0
- package/build/tools/genui.js +803 -0
- package/build/tools/index.d.ts +0 -1
- package/build/tools/index.js +0 -1
- package/build/tools/init_component_catalog.d.ts +22 -0
- package/build/tools/init_component_catalog.js +809 -0
- package/build/tools/init_project_context.js +432 -432
- package/build/tools/init_setting.d.ts +13 -0
- package/build/tools/init_setting.js +47 -0
- package/build/tools/perf.d.ts +13 -0
- package/build/tools/perf.js +409 -0
- package/build/tools/read_memory_asset.js +2 -1
- package/build/tools/render_ui.d.ts +22 -0
- package/build/tools/render_ui.js +384 -0
- package/build/tools/resolve_conflict.d.ts +13 -0
- package/build/tools/resolve_conflict.js +349 -0
- package/build/tools/search_memory.js +1 -0
- package/build/tools/security_scan.d.ts +22 -0
- package/build/tools/security_scan.js +323 -0
- package/build/tools/split.d.ts +13 -0
- package/build/tools/split.js +599 -0
- package/build/tools/start_api.d.ts +13 -0
- package/build/tools/start_api.js +193 -0
- package/build/tools/start_bugfix.js +233 -233
- package/build/tools/start_doc.d.ts +13 -0
- package/build/tools/start_doc.js +207 -0
- package/build/tools/start_feature.js +117 -117
- package/build/tools/start_product.js +1 -1
- package/build/tools/start_refactor.d.ts +13 -0
- package/build/tools/start_refactor.js +188 -0
- package/build/tools/start_release.d.ts +13 -0
- package/build/tools/start_release.js +167 -0
- package/build/tools/start_review.d.ts +13 -0
- package/build/tools/start_review.js +175 -0
- package/build/tools/start_ui.js +399 -399
- package/build/tools/ui-ux-tools.js +290 -290
- package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
- package/build/utils/themes-sync.js +8 -8
- package/package.json +81 -83
- package/build/lib/__tests__/memory-orchestration.unit.test.js +0 -84
- package/build/lib/__tests__/memory-payload.unit.test.js +0 -35
- package/build/lib/cursor-history-client.d.ts +0 -54
- package/build/lib/cursor-history-client.js +0 -240
- package/build/tools/__tests__/cursor-history.unit.test.js +0 -38
- package/build/tools/cursor_read_conversation.d.ts +0 -7
- package/build/tools/cursor_read_conversation.js +0 -36
- package/docs/.mcp-probe/layout.json +0 -11
- package/docs/CNAME +0 -1
- package/docs/assets/font/MaterialSymbolsOutlined.codepoints +0 -4102
- package/docs/assets/font/MaterialSymbolsOutlined.ttf +0 -0
- package/docs/assets/font/noto-sans-sc-400.ttf +0 -0
- package/docs/assets/font/noto-sans-sc-700.ttf +0 -0
- package/docs/assets/font/noto-sans-sc-900.ttf +0 -0
- package/docs/assets/js/i18n.js +0 -375
- package/docs/assets/js/tailwind.js +0 -83
- package/docs/assets/logo-zh.png +0 -0
- package/docs/assets/logo.png +0 -0
- package/docs/data/tools.js +0 -523
- package/docs/i18n/all-tools/en.json +0 -190
- package/docs/i18n/all-tools/ja.json +0 -171
- package/docs/i18n/all-tools/ko.json +0 -171
- package/docs/i18n/all-tools/zh-CN.json +0 -190
- package/docs/i18n/en.json +0 -626
- package/docs/i18n/ja.json +0 -602
- package/docs/i18n/ko.json +0 -602
- package/docs/i18n/zh-CN.json +0 -626
- package/docs/index.html +0 -327
- package/docs/memory-local-setup.md +0 -314
- package/docs/memory-local-setup.zh-CN.md +0 -283
- package/docs/pages/all-tools.html +0 -515
- package/docs/pages/examples.html +0 -717
- package/docs/pages/getting-started.html +0 -964
- package/docs/pages/migration.html +0 -308
- package/docs/specs/user-auth/design.md +0 -82
- package/docs/specs/user-auth/requirements.md +0 -52
- package/docs/specs/user-auth/tasks.md +0 -55
- /package/build/{lib/__tests__/memory-orchestration.unit.test.d.ts → tools/__tests__/read_memory_asset.unit.test.d.ts} +0 -0
- /package/build/{lib/__tests__/memory-payload.unit.test.d.ts → utils/design-docs-generator.d.ts} +0 -0
- /package/build/{tools/__tests__/cursor-history.unit.test.d.ts → utils/design-docs-generator.js} +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
+
// genapi 工具实现
|
|
3
|
+
export async function genapi(args) {
|
|
4
|
+
try {
|
|
5
|
+
// 智能参数解析,支持自然语言输入
|
|
6
|
+
const parsedArgs = parseArgs(args, {
|
|
7
|
+
defaultValues: {
|
|
8
|
+
code: "",
|
|
9
|
+
format: "markdown",
|
|
10
|
+
},
|
|
11
|
+
primaryField: "code", // 纯文本输入默认映射到 code 字段
|
|
12
|
+
fieldAliases: {
|
|
13
|
+
code: ["source", "api", "代码", "endpoint"],
|
|
14
|
+
format: ["output_format", "type", "格式", "输出格式"],
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const code = getString(parsedArgs.code);
|
|
18
|
+
const format = getString(parsedArgs.format) || "markdown"; // markdown, openapi, jsdoc
|
|
19
|
+
const message = `请为以下代码生成 API 文档:
|
|
20
|
+
|
|
21
|
+
📝 **代码**:
|
|
22
|
+
${code || "请提供需要生成文档的代码(函数、类、API 端点等)"}
|
|
23
|
+
|
|
24
|
+
📖 **文档格式**:${format}
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
🎯 **API 文档生成指南**:
|
|
29
|
+
|
|
30
|
+
**基础信息**:
|
|
31
|
+
- API 名称和描述
|
|
32
|
+
- 版本信息
|
|
33
|
+
- 基础 URL
|
|
34
|
+
|
|
35
|
+
**详细文档**(每个端点/函数):
|
|
36
|
+
|
|
37
|
+
1. **功能描述**
|
|
38
|
+
- 简短说明(一句话)
|
|
39
|
+
- 详细描述(用途、场景)
|
|
40
|
+
|
|
41
|
+
2. **请求参数**
|
|
42
|
+
| 参数名 | 类型 | 必填 | 描述 | 示例 |
|
|
43
|
+
|--------|------|------|------|------|
|
|
44
|
+
| id | string | 是 | 用户 ID | "12345" |
|
|
45
|
+
| name | string | 否 | 用户名 | "张三" |
|
|
46
|
+
|
|
47
|
+
3. **返回值**
|
|
48
|
+
- 成功响应(状态码、数据结构、示例)
|
|
49
|
+
- 错误响应(错误码、错误信息)
|
|
50
|
+
|
|
51
|
+
4. **示例代码**
|
|
52
|
+
\`\`\`typescript
|
|
53
|
+
// 请求示例
|
|
54
|
+
const response = await fetch('/api/users/123');
|
|
55
|
+
const data = await response.json();
|
|
56
|
+
|
|
57
|
+
// 响应示例
|
|
58
|
+
{
|
|
59
|
+
"code": 200,
|
|
60
|
+
"data": {
|
|
61
|
+
"id": "123",
|
|
62
|
+
"name": "张三"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
\`\`\`
|
|
66
|
+
|
|
67
|
+
5. **注意事项**
|
|
68
|
+
- 权限要求
|
|
69
|
+
- 速率限制
|
|
70
|
+
- 废弃信息
|
|
71
|
+
- 相关链接
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
**Markdown 格式模板**:
|
|
76
|
+
\`\`\`markdown
|
|
77
|
+
# API 文档
|
|
78
|
+
|
|
79
|
+
## 用户管理
|
|
80
|
+
|
|
81
|
+
### 获取用户信息
|
|
82
|
+
|
|
83
|
+
**接口地址**:\`GET /api/users/:id\`
|
|
84
|
+
|
|
85
|
+
**功能描述**:根据用户 ID 获取用户详细信息
|
|
86
|
+
|
|
87
|
+
**请求参数**:
|
|
88
|
+
| 参数 | 类型 | 必填 | 描述 |
|
|
89
|
+
|------|------|------|------|
|
|
90
|
+
| id | string | 是 | 用户 ID |
|
|
91
|
+
|
|
92
|
+
**返回示例**:
|
|
93
|
+
\`\`\`json
|
|
94
|
+
{
|
|
95
|
+
"code": 200,
|
|
96
|
+
"data": {
|
|
97
|
+
"id": "123",
|
|
98
|
+
"name": "张三",
|
|
99
|
+
"email": "zhangsan@example.com"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
\`\`\`
|
|
103
|
+
|
|
104
|
+
**错误码**:
|
|
105
|
+
- 404: 用户不存在
|
|
106
|
+
- 403: 无权限访问
|
|
107
|
+
\`\`\`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
**OpenAPI 3.0 格式模板**:
|
|
112
|
+
\`\`\`yaml
|
|
113
|
+
openapi: 3.0.0
|
|
114
|
+
info:
|
|
115
|
+
title: User API
|
|
116
|
+
version: 1.0.0
|
|
117
|
+
paths:
|
|
118
|
+
/api/users/{id}:
|
|
119
|
+
get:
|
|
120
|
+
summary: 获取用户信息
|
|
121
|
+
parameters:
|
|
122
|
+
- name: id
|
|
123
|
+
in: path
|
|
124
|
+
required: true
|
|
125
|
+
schema:
|
|
126
|
+
type: string
|
|
127
|
+
responses:
|
|
128
|
+
'200':
|
|
129
|
+
description: 成功
|
|
130
|
+
content:
|
|
131
|
+
application/json:
|
|
132
|
+
schema:
|
|
133
|
+
type: object
|
|
134
|
+
properties:
|
|
135
|
+
code:
|
|
136
|
+
type: integer
|
|
137
|
+
data:
|
|
138
|
+
type: object
|
|
139
|
+
\`\`\`
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## ⚠️ 边界约束
|
|
146
|
+
|
|
147
|
+
- ❌ 仅输出文档,不修改业务代码
|
|
148
|
+
- ❌ 不执行代码或命令
|
|
149
|
+
- ✅ 基于现有接口定义/路由/注释推断
|
|
150
|
+
- ✅ 输出完整的 API 文档
|
|
151
|
+
|
|
152
|
+
现在请根据上述代码生成完整的 API 文档。`;
|
|
153
|
+
return {
|
|
154
|
+
content: [
|
|
155
|
+
{
|
|
156
|
+
type: "text",
|
|
157
|
+
text: message,
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
164
|
+
return {
|
|
165
|
+
content: [
|
|
166
|
+
{
|
|
167
|
+
type: "text",
|
|
168
|
+
text: `❌ 生成 API 文档失败: ${errorMessage}`,
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
isError: true,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
+
// genchangelog 工具实现
|
|
3
|
+
export async function genchangelog(args) {
|
|
4
|
+
try {
|
|
5
|
+
// 智能参数解析,支持自然语言输入
|
|
6
|
+
const parsedArgs = parseArgs(args, {
|
|
7
|
+
defaultValues: {
|
|
8
|
+
version: "",
|
|
9
|
+
from: "",
|
|
10
|
+
to: "HEAD",
|
|
11
|
+
},
|
|
12
|
+
primaryField: "version", // 纯文本输入默认映射到 version 字段
|
|
13
|
+
fieldAliases: {
|
|
14
|
+
version: ["ver", "v", "版本", "版本号"],
|
|
15
|
+
from: ["from_tag", "start", "起始", "起始版本"],
|
|
16
|
+
to: ["to_tag", "end", "结束", "结束版本"],
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const version = getString(parsedArgs.version);
|
|
20
|
+
const from = getString(parsedArgs.from);
|
|
21
|
+
const to = getString(parsedArgs.to) || "HEAD";
|
|
22
|
+
const message = `请生成项目的 CHANGELOG(变更日志):
|
|
23
|
+
|
|
24
|
+
📝 **版本信息**:
|
|
25
|
+
${version || "请提供版本号(如:v1.2.0)"}
|
|
26
|
+
|
|
27
|
+
📋 **Commit 范围**:
|
|
28
|
+
从 ${from || "上一个 tag"} 到 ${to}
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Changelog 生成步骤
|
|
33
|
+
|
|
34
|
+
### 第一步:获取 Commit 历史
|
|
35
|
+
|
|
36
|
+
执行以下命令:
|
|
37
|
+
\`\`\`bash
|
|
38
|
+
# 查看 commit 历史
|
|
39
|
+
git log ${from}..${to} --oneline --no-merges
|
|
40
|
+
|
|
41
|
+
# 查看详细信息
|
|
42
|
+
git log ${from}..${to} --pretty=format:"%h - %s (%an)" --no-merges
|
|
43
|
+
|
|
44
|
+
# 查看所有 tags
|
|
45
|
+
git tag -l
|
|
46
|
+
|
|
47
|
+
# 查看贡献者
|
|
48
|
+
git shortlog ${from}..${to} -sn
|
|
49
|
+
\`\`\`
|
|
50
|
+
|
|
51
|
+
### 第二步:分类 Commits
|
|
52
|
+
|
|
53
|
+
按类型分组:
|
|
54
|
+
- **✨ Features (feat)**:新功能
|
|
55
|
+
- **🐛 Bug Fixes (fix)**:Bug 修复
|
|
56
|
+
- **📝 Documentation (docs)**:文档变更
|
|
57
|
+
- **💄 Styles (style)**:代码格式
|
|
58
|
+
- **♻️ Refactoring (refactor)**:重构
|
|
59
|
+
- **⚡ Performance (perf)**:性能优化
|
|
60
|
+
- **✅ Tests (test)**:测试相关
|
|
61
|
+
- **🔧 Chores (chore)**:构建/工具变更
|
|
62
|
+
- **💥 BREAKING CHANGES**:破坏性变更
|
|
63
|
+
|
|
64
|
+
### 第三步:生成 Changelog
|
|
65
|
+
|
|
66
|
+
**格式标准**:[Keep a Changelog](https://keepachangelog.com/)
|
|
67
|
+
|
|
68
|
+
\`\`\`markdown
|
|
69
|
+
# Changelog
|
|
70
|
+
|
|
71
|
+
All notable changes to this project will be documented in this file.
|
|
72
|
+
|
|
73
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
74
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
75
|
+
|
|
76
|
+
## [版本号] - YYYY-MM-DD
|
|
77
|
+
|
|
78
|
+
### Added(新增)
|
|
79
|
+
- 新功能 1 (#PR号)
|
|
80
|
+
- 新功能 2 by @contributor
|
|
81
|
+
|
|
82
|
+
### Changed(变更)
|
|
83
|
+
- 修改的功能 1
|
|
84
|
+
- 修改的功能 2
|
|
85
|
+
|
|
86
|
+
### Deprecated(废弃)
|
|
87
|
+
- 即将移除的功能
|
|
88
|
+
|
|
89
|
+
### Removed(移除)
|
|
90
|
+
- 已移除的功能
|
|
91
|
+
|
|
92
|
+
### Fixed(修复)
|
|
93
|
+
- Bug 修复 1 (#issue号)
|
|
94
|
+
- Bug 修复 2
|
|
95
|
+
|
|
96
|
+
### Security(安全)
|
|
97
|
+
- 安全漏洞修复
|
|
98
|
+
|
|
99
|
+
## [上一个版本] - YYYY-MM-DD
|
|
100
|
+
|
|
101
|
+
...
|
|
102
|
+
\`\`\`
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Changelog 模板
|
|
107
|
+
|
|
108
|
+
\`\`\`markdown
|
|
109
|
+
# Changelog
|
|
110
|
+
|
|
111
|
+
## [${version || "1.2.0"}] - ${new Date().toISOString().split('T')[0]}
|
|
112
|
+
|
|
113
|
+
### ✨ Added
|
|
114
|
+
- 新增用户认证功能 (#123) [@contributor1]
|
|
115
|
+
- 新增数据导出功能 (#125)
|
|
116
|
+
- 新增邮件通知系统
|
|
117
|
+
|
|
118
|
+
### 🔄 Changed
|
|
119
|
+
- 优化数据库查询性能 (#130)
|
|
120
|
+
- 更新 UI 设计风格
|
|
121
|
+
- 升级依赖包到最新版本
|
|
122
|
+
|
|
123
|
+
### 🗑️ Deprecated
|
|
124
|
+
- \`oldAPI()\` 方法即将在 v2.0 中移除,请使用 \`newAPI()\`
|
|
125
|
+
|
|
126
|
+
### ❌ Removed
|
|
127
|
+
- 移除了废弃的 \`legacyFeature\`
|
|
128
|
+
- 删除了未使用的配置项
|
|
129
|
+
|
|
130
|
+
### 🐛 Fixed
|
|
131
|
+
- 修复登录页面样式错误 (#128)
|
|
132
|
+
- 修复数据分页显示问题 (#132)
|
|
133
|
+
- 修复内存泄漏问题 (#135)
|
|
134
|
+
|
|
135
|
+
### 🔒 Security
|
|
136
|
+
- 修复 SQL 注入漏洞 (CVE-2024-XXXX)
|
|
137
|
+
- 更新依赖以修复安全漏洞
|
|
138
|
+
|
|
139
|
+
### 💥 BREAKING CHANGES
|
|
140
|
+
- API 端点从 \`/api/v1/users\` 改为 \`/api/v2/users\`
|
|
141
|
+
- 配置文件格式从 JSON 改为 YAML
|
|
142
|
+
- 最低 Node.js 版本要求提升到 18.x
|
|
143
|
+
|
|
144
|
+
### 📚 Documentation
|
|
145
|
+
- 更新 README 文档
|
|
146
|
+
- 添加 API 使用指南
|
|
147
|
+
- 完善贡献指南
|
|
148
|
+
|
|
149
|
+
### 🏗️ Infrastructure
|
|
150
|
+
- 升级 CI/CD 流程
|
|
151
|
+
- 添加 Docker 支持
|
|
152
|
+
- 配置自动化测试
|
|
153
|
+
|
|
154
|
+
### 👥 Contributors
|
|
155
|
+
感谢以下贡献者:
|
|
156
|
+
- @contributor1 - 3 commits
|
|
157
|
+
- @contributor2 - 2 commits
|
|
158
|
+
- @contributor3 - 1 commit
|
|
159
|
+
|
|
160
|
+
**Full Changelog**: https://github.com/owner/repo/compare/v1.1.0...v${version || "1.2.0"}
|
|
161
|
+
\`\`\`
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Changelog 最佳实践
|
|
166
|
+
|
|
167
|
+
### 内容要求
|
|
168
|
+
|
|
169
|
+
1. **明确说明变更**
|
|
170
|
+
- 用户能理解的语言(避免技术术语)
|
|
171
|
+
- 说明影响范围
|
|
172
|
+
- 提供迁移指南(破坏性变更)
|
|
173
|
+
|
|
174
|
+
2. **链接相关 Issue/PR**
|
|
175
|
+
- 使用 (#123) 格式
|
|
176
|
+
- 方便追溯详细信息
|
|
177
|
+
|
|
178
|
+
3. **归功贡献者**
|
|
179
|
+
- 使用 @username 格式
|
|
180
|
+
- 体现团队协作
|
|
181
|
+
|
|
182
|
+
### 版本规范
|
|
183
|
+
|
|
184
|
+
**语义化版本 (Semantic Versioning)**:
|
|
185
|
+
- **Major (X.0.0)**:破坏性变更
|
|
186
|
+
- **Minor (x.X.0)**:新功能(向后兼容)
|
|
187
|
+
- **Patch (x.x.X)**:Bug 修复
|
|
188
|
+
|
|
189
|
+
### 发布流程
|
|
190
|
+
|
|
191
|
+
1. 更新 CHANGELOG.md
|
|
192
|
+
2. 更新 package.json 版本号
|
|
193
|
+
3. 创建 Git tag:\`git tag -a v1.2.0 -m "Release v1.2.0"\`
|
|
194
|
+
4. 推送 tag:\`git push origin v1.2.0\`
|
|
195
|
+
5. 发布 GitHub Release
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 自动化工具
|
|
200
|
+
|
|
201
|
+
**推荐工具**:
|
|
202
|
+
- **standard-version**:自动生成 changelog
|
|
203
|
+
- **conventional-changelog**:基于 commit 生成
|
|
204
|
+
- **semantic-release**:自动发布版本
|
|
205
|
+
|
|
206
|
+
**使用示例**:
|
|
207
|
+
\`\`\`bash
|
|
208
|
+
# 安装
|
|
209
|
+
npm install -D standard-version
|
|
210
|
+
|
|
211
|
+
# 生成 changelog
|
|
212
|
+
npx standard-version
|
|
213
|
+
|
|
214
|
+
# 首次发布
|
|
215
|
+
npx standard-version --first-release
|
|
216
|
+
\`\`\`
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## ⚠️ 边界约束
|
|
223
|
+
|
|
224
|
+
- ❌ 仅输出 CHANGELOG 文本,不自动写入文件
|
|
225
|
+
- ❌ 不执行 git 命令
|
|
226
|
+
- ✅ 输出完整的 CHANGELOG Markdown
|
|
227
|
+
|
|
228
|
+
现在请根据 commit 历史生成详细的 CHANGELOG.md 内容。`;
|
|
229
|
+
return {
|
|
230
|
+
content: [
|
|
231
|
+
{
|
|
232
|
+
type: "text",
|
|
233
|
+
text: message,
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
240
|
+
return {
|
|
241
|
+
content: [
|
|
242
|
+
{
|
|
243
|
+
type: "text",
|
|
244
|
+
text: `❌ 生成 Changelog 失败: ${errorMessage}`,
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
isError: true,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
}
|
package/build/tools/gencommit.js
CHANGED
|
@@ -50,66 +50,66 @@ function buildTextGuide(changes) {
|
|
|
50
50
|
],
|
|
51
51
|
outputs: ["一份规范说明文档,供 AI 直接据此写出最终 commit message"],
|
|
52
52
|
});
|
|
53
|
-
return `${header}请按以下规则生成 Git commit message:
|
|
54
|
-
|
|
55
|
-
**定位**
|
|
56
|
-
- 本工具返回的是说明文档,不是最终 commit message
|
|
57
|
-
- AI 必须根据本说明和变更内容,直接写出最终提交消息
|
|
58
|
-
- 不要重复调用 gencommit
|
|
59
|
-
- 不要说“工具返回为空”
|
|
60
|
-
- 不要忽略本工具约定后自行发挥
|
|
61
|
-
|
|
62
|
-
**强约束**
|
|
63
|
-
- type 和 emoji 必须使用下方固定映射,不允许自创、不允许替换
|
|
64
|
-
- 如果语义接近多个 type,选择最贴近本次主要变更的一种,不输出多个候选
|
|
65
|
-
- 最终必须只输出一条 commit message 本体
|
|
66
|
-
- 除非用户明确要求,否则不要附加解释、分析过程、前缀说明、代码块外文本
|
|
67
|
-
- 如果缺少足够变更信息,先索取变更信息;不要猜测最终 commit message
|
|
68
|
-
|
|
69
|
-
**第一步:获取变更信息**
|
|
70
|
-
${changes ? `已提供变更内容:\n${changes}` : `
|
|
71
|
-
1. 执行 \`git status\` 查看修改文件
|
|
72
|
-
2. 执行 \`git diff\` 查看具体变更
|
|
73
|
-
3. 如有暂存文件,执行 \`git diff --staged\`
|
|
74
|
-
`}
|
|
75
|
-
|
|
76
|
-
**第二步:分析变更**
|
|
77
|
-
- 识别变更类型(新功能、修复、重构等)
|
|
78
|
-
- 选择对应 emoji
|
|
79
|
-
- 提炼一句中文 subject
|
|
80
|
-
- 如有必要,在 body 中说明影响模块、关键改动和原因
|
|
81
|
-
|
|
82
|
-
**第三步:输出最终 commit message**
|
|
83
|
-
- 直接输出最终结果
|
|
84
|
-
- 不要附加“根据 gencommit 规则生成如下”这类解释
|
|
85
|
-
- 不要输出多条候选,默认只给一条最合适的
|
|
86
|
-
- 不要自创新的 type 或 emoji
|
|
87
|
-
- 不要把示例原样复用到当前提交
|
|
88
|
-
|
|
89
|
-
**格式**
|
|
90
|
-
\`\`\`
|
|
91
|
-
<type>: <emoji> <subject>
|
|
92
|
-
|
|
93
|
-
<body>
|
|
94
|
-
|
|
95
|
-
<footer>
|
|
96
|
-
\`\`\`
|
|
97
|
-
|
|
98
|
-
**允许的 type**
|
|
99
|
-
${ALLOWED_TYPES.map((item) => `- ${item.type} ${item.emoji}: ${item.when}`).join("\n")}
|
|
100
|
-
|
|
101
|
-
**硬性规则**
|
|
102
|
-
1. type 后面加冒号和空格,再接 emoji
|
|
103
|
-
2. subject 使用中文,简洁明确,尽量不超过 50 字
|
|
104
|
-
3. body 可选,但有必要时应说明影响范围和关键改动
|
|
105
|
-
4. footer 可选,用于 issue / BREAKING CHANGE
|
|
106
|
-
5. 最终只输出 commit message 本体
|
|
107
|
-
6. 不允许使用固定映射之外的 type / emoji
|
|
108
|
-
7. \`fixed\` 与 \`fix\` 都可用,但语义都表示“修复”;若无兼容性要求,优先用 \`fixed\`
|
|
109
|
-
8. 若本次提交以文档、样式、测试、依赖调整为主,不要误用 \`feat\` 或 \`fixed\`
|
|
110
|
-
|
|
111
|
-
**参考示例**
|
|
112
|
-
${EXAMPLES.map((item) => `\`\`\`gitcommit\n${item.fullMessage}\n\`\`\``).join("\n\n")}
|
|
53
|
+
return `${header}请按以下规则生成 Git commit message:
|
|
54
|
+
|
|
55
|
+
**定位**
|
|
56
|
+
- 本工具返回的是说明文档,不是最终 commit message
|
|
57
|
+
- AI 必须根据本说明和变更内容,直接写出最终提交消息
|
|
58
|
+
- 不要重复调用 gencommit
|
|
59
|
+
- 不要说“工具返回为空”
|
|
60
|
+
- 不要忽略本工具约定后自行发挥
|
|
61
|
+
|
|
62
|
+
**强约束**
|
|
63
|
+
- type 和 emoji 必须使用下方固定映射,不允许自创、不允许替换
|
|
64
|
+
- 如果语义接近多个 type,选择最贴近本次主要变更的一种,不输出多个候选
|
|
65
|
+
- 最终必须只输出一条 commit message 本体
|
|
66
|
+
- 除非用户明确要求,否则不要附加解释、分析过程、前缀说明、代码块外文本
|
|
67
|
+
- 如果缺少足够变更信息,先索取变更信息;不要猜测最终 commit message
|
|
68
|
+
|
|
69
|
+
**第一步:获取变更信息**
|
|
70
|
+
${changes ? `已提供变更内容:\n${changes}` : `
|
|
71
|
+
1. 执行 \`git status\` 查看修改文件
|
|
72
|
+
2. 执行 \`git diff\` 查看具体变更
|
|
73
|
+
3. 如有暂存文件,执行 \`git diff --staged\`
|
|
74
|
+
`}
|
|
75
|
+
|
|
76
|
+
**第二步:分析变更**
|
|
77
|
+
- 识别变更类型(新功能、修复、重构等)
|
|
78
|
+
- 选择对应 emoji
|
|
79
|
+
- 提炼一句中文 subject
|
|
80
|
+
- 如有必要,在 body 中说明影响模块、关键改动和原因
|
|
81
|
+
|
|
82
|
+
**第三步:输出最终 commit message**
|
|
83
|
+
- 直接输出最终结果
|
|
84
|
+
- 不要附加“根据 gencommit 规则生成如下”这类解释
|
|
85
|
+
- 不要输出多条候选,默认只给一条最合适的
|
|
86
|
+
- 不要自创新的 type 或 emoji
|
|
87
|
+
- 不要把示例原样复用到当前提交
|
|
88
|
+
|
|
89
|
+
**格式**
|
|
90
|
+
\`\`\`
|
|
91
|
+
<type>: <emoji> <subject>
|
|
92
|
+
|
|
93
|
+
<body>
|
|
94
|
+
|
|
95
|
+
<footer>
|
|
96
|
+
\`\`\`
|
|
97
|
+
|
|
98
|
+
**允许的 type**
|
|
99
|
+
${ALLOWED_TYPES.map((item) => `- ${item.type} ${item.emoji}: ${item.when}`).join("\n")}
|
|
100
|
+
|
|
101
|
+
**硬性规则**
|
|
102
|
+
1. type 后面加冒号和空格,再接 emoji
|
|
103
|
+
2. subject 使用中文,简洁明确,尽量不超过 50 字
|
|
104
|
+
3. body 可选,但有必要时应说明影响范围和关键改动
|
|
105
|
+
4. footer 可选,用于 issue / BREAKING CHANGE
|
|
106
|
+
5. 最终只输出 commit message 本体
|
|
107
|
+
6. 不允许使用固定映射之外的 type / emoji
|
|
108
|
+
7. \`fixed\` 与 \`fix\` 都可用,但语义都表示“修复”;若无兼容性要求,优先用 \`fixed\`
|
|
109
|
+
8. 若本次提交以文档、样式、测试、依赖调整为主,不要误用 \`feat\` 或 \`fixed\`
|
|
110
|
+
|
|
111
|
+
**参考示例**
|
|
112
|
+
${EXAMPLES.map((item) => `\`\`\`gitcommit\n${item.fullMessage}\n\`\`\``).join("\n\n")}
|
|
113
113
|
`;
|
|
114
114
|
}
|
|
115
115
|
export async function gencommit(args) {
|