@rdmind/rdmind 0.0.14-alpha.0 → 0.0.14-alpha.2
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/dist/package.json +3 -3
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/ui/commands/techDesignCommand.js +33 -19
- package/dist/src/ui/commands/techDesignCommand.js.map +1 -1
- package/dist/src/ui/commands/techDesignCommand.test.js +33 -0
- package/dist/src/ui/commands/techDesignCommand.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rdmind/rdmind",
|
|
3
|
-
"version": "0.0.14-alpha.
|
|
3
|
+
"version": "0.0.14-alpha.2",
|
|
4
4
|
"description": "RDMind",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"config": {
|
|
29
|
-
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.14-alpha.
|
|
29
|
+
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.14-alpha.2"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@google/genai": "1.9.0",
|
|
33
33
|
"@iarna/toml": "^2.2.5",
|
|
34
|
-
"@rdmind/rdmind-core": "^0.0.14-alpha.
|
|
34
|
+
"@rdmind/rdmind-core": "^0.0.14-alpha.2",
|
|
35
35
|
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
36
36
|
"@types/update-notifier": "^6.0.8",
|
|
37
37
|
"command-exists": "^1.2.9",
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
export declare const GIT_COMMIT_INFO = "
|
|
7
|
-
export declare const CLI_VERSION = "0.0.14-alpha.
|
|
6
|
+
export declare const GIT_COMMIT_INFO = "deac1966";
|
|
7
|
+
export declare const CLI_VERSION = "0.0.14-alpha.2";
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
// This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
|
|
7
7
|
// Do not edit this file manually.
|
|
8
|
-
export const GIT_COMMIT_INFO = '
|
|
9
|
-
export const CLI_VERSION = '0.0.14-alpha.
|
|
8
|
+
export const GIT_COMMIT_INFO = 'deac1966';
|
|
9
|
+
export const CLI_VERSION = '0.0.14-alpha.2';
|
|
10
10
|
//# sourceMappingURL=git-commit.js.map
|
|
@@ -26,18 +26,27 @@ function isGitRepository(cwd) {
|
|
|
26
26
|
* 读取技术方案模板
|
|
27
27
|
*/
|
|
28
28
|
function readTemplate() {
|
|
29
|
+
// 尝试多个可能的模板位置
|
|
29
30
|
const possiblePaths = [
|
|
30
|
-
//
|
|
31
|
+
// 1. 开发环境:packages/cli/src/ui/commands/ -> packages/cli/templates/
|
|
31
32
|
path.join(__dirname, '..', '..', '..', 'templates', 'tech-design-template.md'),
|
|
32
|
-
// npm
|
|
33
|
+
// 2. npm 安装后:node_modules/@rdmind/rdmind/dist/src/ui/commands/ -> node_modules/@rdmind/rdmind/templates/
|
|
33
34
|
path.join(__dirname, '..', '..', '..', '..', 'templates', 'tech-design-template.md'),
|
|
35
|
+
// 3. 打包后:dist/src/ui/commands/ -> templates/
|
|
36
|
+
path.join(__dirname, '..', '..', '..', '..', '..', 'templates', 'tech-design-template.md'),
|
|
37
|
+
// 4. 相对于当前工作目录
|
|
38
|
+
path.join(process.cwd(), 'node_modules', '@rdmind', 'rdmind', 'templates', 'tech-design-template.md'),
|
|
34
39
|
];
|
|
35
40
|
for (const templatePath of possiblePaths) {
|
|
36
41
|
if (fs.existsSync(templatePath)) {
|
|
37
42
|
return fs.readFileSync(templatePath, 'utf-8');
|
|
38
43
|
}
|
|
39
44
|
}
|
|
40
|
-
|
|
45
|
+
// 如果找不到,提供详细的错误信息
|
|
46
|
+
const searchedPaths = possiblePaths
|
|
47
|
+
.map((p, i) => `${i + 1}. ${p}`)
|
|
48
|
+
.join('\n');
|
|
49
|
+
throw new Error(`技术方案模板文件未找到\n\n已搜索以下路径:\n${searchedPaths}\n\n当前工作目录:${process.cwd()}\n__dirname: ${__dirname}`);
|
|
41
50
|
}
|
|
42
51
|
/**
|
|
43
52
|
* 生成技术方案子命令
|
|
@@ -73,6 +82,15 @@ const solutionCommand = {
|
|
|
73
82
|
}, Date.now());
|
|
74
83
|
return;
|
|
75
84
|
}
|
|
85
|
+
// 验证 Redoc URL 格式
|
|
86
|
+
const redocUrlPattern = /^https:\/\/docs\.xiaohongshu\.com\/doc\/[a-f0-9]+$/;
|
|
87
|
+
if (!redocUrlPattern.test(prdUrl)) {
|
|
88
|
+
context.ui.addItem({
|
|
89
|
+
type: MessageType.ERROR,
|
|
90
|
+
text: `❌ 提供的 URL 不是有效的 Redoc 文档地址\n\nURL: ${prdUrl}\n\n✅ 正确的格式:\nhttps://docs.xiaohongshu.com/doc/{doc_id}\n\n说明:\n• doc_id 必须是 32 位十六进制字符串\n• 只支持小红书 Redoc 文档\n\n示例:\nhttps://docs.xiaohongshu.com/doc/abc123def456789012345678901234ab`,
|
|
91
|
+
}, Date.now());
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
76
94
|
// 读取模板
|
|
77
95
|
let template;
|
|
78
96
|
try {
|
|
@@ -176,6 +194,15 @@ const planCommand = {
|
|
|
176
194
|
}, Date.now());
|
|
177
195
|
return;
|
|
178
196
|
}
|
|
197
|
+
// 验证 Redoc URL 格式
|
|
198
|
+
const redocUrlPattern = /^https:\/\/docs\.xiaohongshu\.com\/doc\/[a-f0-9]+$/;
|
|
199
|
+
if (!redocUrlPattern.test(techDocUrl)) {
|
|
200
|
+
context.ui.addItem({
|
|
201
|
+
type: MessageType.ERROR,
|
|
202
|
+
text: `❌ 提供的 URL 不是有效的 Redoc 文档地址\n\nURL: ${techDocUrl}\n\n✅ 正确的格式:\nhttps://docs.xiaohongshu.com/doc/{doc_id}\n\n说明:\n• doc_id 必须是 32 位十六进制字符串\n• 只支持小红书 Redoc 文档\n\n示例:\nhttps://docs.xiaohongshu.com/doc/abc123def456789012345678901234ab`,
|
|
203
|
+
}, Date.now());
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
179
206
|
context.ui.addItem({
|
|
180
207
|
type: MessageType.INFO,
|
|
181
208
|
text: `📂 工作目录: ${cwd}\n📋 技术文档 URL: ${techDocUrl}\n\n🤖 正在调用 AI 生成执行计划...\n\n💡 AI 将会:\n1. 使用 redoc_fetch 工具获取技术文档内容\n2. 分析代码仓库结构和技术栈\n3. 生成详细的任务分解和执行计划\n4. 提供 AI Coding 使用指导\n5. 将文档保存到工作目录\n\n请耐心等待,这可能需要几分钟时间...`,
|
|
@@ -211,11 +238,9 @@ const planCommand = {
|
|
|
211
238
|
- 说明模块间的依赖关系
|
|
212
239
|
|
|
213
240
|
## 三、开发任务分解
|
|
214
|
-
|
|
215
|
-
- **前置任务**:环境准备、依赖安装等
|
|
241
|
+
将功能分解为具体的、可执行的任务,关注技术方案中提到的实现细节,包括:
|
|
216
242
|
- **核心任务**:主要功能开发,每个任务要具体、可衡量
|
|
217
243
|
- **后续任务**:测试、优化、文档等
|
|
218
|
-
- **任务依赖关系**:说明任务之间的依赖
|
|
219
244
|
|
|
220
245
|
## 四、编码规范
|
|
221
246
|
基于当前代码仓库,明确:
|
|
@@ -223,7 +248,6 @@ const planCommand = {
|
|
|
223
248
|
- 命名约定(变量、函数、类、文件等)
|
|
224
249
|
- 注释规范
|
|
225
250
|
- 测试要求
|
|
226
|
-
- Git commit 规范
|
|
227
251
|
|
|
228
252
|
## 五、AI Coding 指导
|
|
229
253
|
提供使用 AI Coding 工具(如 RDMind)的具体指导:
|
|
@@ -235,21 +259,11 @@ const planCommand = {
|
|
|
235
259
|
|
|
236
260
|
## 六、质量保证
|
|
237
261
|
- 单元测试策略
|
|
238
|
-
- 集成测试策略
|
|
239
|
-
- 代码审查流程
|
|
240
|
-
|
|
241
|
-
## 七、部署和发布
|
|
242
|
-
- 部署环境说明
|
|
243
|
-
- 发布流程
|
|
244
|
-
- 回滚预案
|
|
245
|
-
|
|
246
|
-
## 八、项目排期
|
|
247
|
-
用表格形式列出各阶段任务、预估工作量和时间安排
|
|
248
262
|
|
|
249
|
-
##
|
|
263
|
+
## 七、风险评估
|
|
250
264
|
识别潜在风险和应对措施
|
|
251
265
|
|
|
252
|
-
##
|
|
266
|
+
## 八、附录
|
|
253
267
|
- 相关文档链接
|
|
254
268
|
- 使用说明
|
|
255
269
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"techDesignCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/techDesignCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,WAAW,GAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,MAAM,aAAa,GAAG;QACpB,
|
|
1
|
+
{"version":3,"file":"techDesignCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/techDesignCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,5 +49,38 @@ describe('techDesignCommand', () => {
|
|
|
49
49
|
text: expect.stringContaining('未知的子命令'),
|
|
50
50
|
}), expect.any(Number));
|
|
51
51
|
});
|
|
52
|
+
describe('solution subcommand', () => {
|
|
53
|
+
it('should validate Redoc URL format', async () => {
|
|
54
|
+
const solutionCommand = techDesignCommand.subCommands?.find((cmd) => cmd.name === 'solution');
|
|
55
|
+
// 测试无效的 URL
|
|
56
|
+
await solutionCommand?.action?.(mockContext, 'https://www.google.com/search?q=test');
|
|
57
|
+
expect(mockContext.ui.addItem).toHaveBeenCalledWith(expect.objectContaining({
|
|
58
|
+
type: MessageType.ERROR,
|
|
59
|
+
text: expect.stringContaining('不是有效的 Redoc 文档地址'),
|
|
60
|
+
}), expect.any(Number));
|
|
61
|
+
});
|
|
62
|
+
it('should accept valid Redoc URL', async () => {
|
|
63
|
+
const solutionCommand = techDesignCommand.subCommands?.find((cmd) => cmd.name === 'solution');
|
|
64
|
+
// Mock config to avoid actual execution
|
|
65
|
+
mockContext.services.config = null;
|
|
66
|
+
await solutionCommand?.action?.(mockContext, 'https://docs.xiaohongshu.com/doc/abc123def456');
|
|
67
|
+
// Should show error about config not loaded (not URL validation error)
|
|
68
|
+
expect(mockContext.ui.addItem).toHaveBeenCalledWith(expect.objectContaining({
|
|
69
|
+
type: MessageType.ERROR,
|
|
70
|
+
text: expect.stringContaining('配置未加载'),
|
|
71
|
+
}), expect.any(Number));
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe('plan subcommand', () => {
|
|
75
|
+
it('should validate Redoc URL format', async () => {
|
|
76
|
+
const planCommand = techDesignCommand.subCommands?.find((cmd) => cmd.name === 'plan');
|
|
77
|
+
// 测试无效的 URL
|
|
78
|
+
await planCommand?.action?.(mockContext, 'https://www.google.com/search?q=test');
|
|
79
|
+
expect(mockContext.ui.addItem).toHaveBeenCalledWith(expect.objectContaining({
|
|
80
|
+
type: MessageType.ERROR,
|
|
81
|
+
text: expect.stringContaining('不是有效的 Redoc 文档地址'),
|
|
82
|
+
}), expect.any(Number));
|
|
83
|
+
});
|
|
84
|
+
});
|
|
52
85
|
});
|
|
53
86
|
//# sourceMappingURL=techDesignCommand.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"techDesignCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/techDesignCommand.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"techDesignCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/techDesignCommand.test.ts"],"names":[],"mappings":"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"}
|