@winspan/claude-forge 0.4.1 → 0.4.3
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 +1 -1
- package/dist/ai-provider/base-provider.d.ts.map +1 -1
- package/dist/ai-provider/base-provider.js +3 -1
- package/dist/ai-provider/base-provider.js.map +1 -1
- package/dist/ai-provider/factory.d.ts +2 -0
- package/dist/ai-provider/factory.d.ts.map +1 -1
- package/dist/ai-provider/factory.js +1 -1
- package/dist/ai-provider/factory.js.map +1 -1
- package/dist/ai-provider/types.d.ts +6 -0
- package/dist/ai-provider/types.d.ts.map +1 -1
- package/dist/ai-provider/types.js.map +1 -1
- package/dist/autopilot/quality-gate.d.ts +17 -1
- package/dist/autopilot/quality-gate.d.ts.map +1 -1
- package/dist/autopilot/quality-gate.js +89 -5
- package/dist/autopilot/quality-gate.js.map +1 -1
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js +59 -8
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/daemon/engine-registry/init-autopilot.d.ts +2 -1
- package/dist/daemon/engine-registry/init-autopilot.d.ts.map +1 -1
- package/dist/daemon/engine-registry/init-autopilot.js +3 -2
- package/dist/daemon/engine-registry/init-autopilot.js.map +1 -1
- package/dist/daemon/engine-registry.js +1 -1
- package/dist/daemon/engine-registry.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use-handler.js +12 -12
- package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/pre-tool-use-handler.js +4 -1
- package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -1
- package/dist/daemon/handlers/safe-handler.d.ts +15 -0
- package/dist/daemon/handlers/safe-handler.d.ts.map +1 -0
- package/dist/daemon/handlers/safe-handler.js +24 -0
- package/dist/daemon/handlers/safe-handler.js.map +1 -0
- package/dist/daemon/handlers/session-cleanup.d.ts.map +1 -1
- package/dist/daemon/handlers/session-cleanup.js +4 -5
- package/dist/daemon/handlers/session-cleanup.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +3 -5
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt-handler.js +15 -0
- package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +1 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +7 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +15 -0
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/pattern-engine/execution-tracker.d.ts +1 -1
- package/dist/pattern-engine/execution-tracker.d.ts.map +1 -1
- package/dist/pattern-engine/execution-tracker.js +5 -1
- package/dist/pattern-engine/execution-tracker.js.map +1 -1
- package/dist/pattern-engine/index.d.ts +2 -0
- package/dist/pattern-engine/index.d.ts.map +1 -1
- package/dist/pattern-engine/index.js +32 -1
- package/dist/pattern-engine/index.js.map +1 -1
- package/dist/pattern-engine/pattern-evolver.d.ts.map +1 -1
- package/dist/pattern-engine/pattern-evolver.js +31 -12
- package/dist/pattern-engine/pattern-evolver.js.map +1 -1
- package/dist/pattern-engine/pattern-router.d.ts +5 -0
- package/dist/pattern-engine/pattern-router.d.ts.map +1 -1
- package/dist/pattern-engine/pattern-router.js +21 -19
- package/dist/pattern-engine/pattern-router.js.map +1 -1
- package/dist/pattern-engine/types.d.ts +2 -0
- package/dist/pattern-engine/types.d.ts.map +1 -1
- package/dist/pipeline/analyzer.d.ts +18 -3
- package/dist/pipeline/analyzer.d.ts.map +1 -1
- package/dist/pipeline/analyzer.js +172 -59
- package/dist/pipeline/analyzer.js.map +1 -1
- package/dist/pipeline/artifact-generator.d.ts +6 -9
- package/dist/pipeline/artifact-generator.d.ts.map +1 -1
- package/dist/pipeline/artifact-generator.js +68 -29
- package/dist/pipeline/artifact-generator.js.map +1 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +7 -11
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/phase-manager.d.ts +1 -1
- package/dist/pipeline/phase-manager.d.ts.map +1 -1
- package/dist/pipeline/phase-manager.js +23 -13
- package/dist/pipeline/phase-manager.js.map +1 -1
- package/dist/pipeline/store.d.ts +1 -1
- package/dist/pipeline/store.d.ts.map +1 -1
- package/dist/pipeline/store.js +15 -5
- package/dist/pipeline/store.js.map +1 -1
- package/dist/pipeline/types.d.ts +7 -2
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/pipeline/types.js +6 -4
- package/dist/pipeline/types.js.map +1 -1
- package/dist/retrospective/index.d.ts +7 -0
- package/dist/retrospective/index.d.ts.map +1 -1
- package/dist/retrospective/index.js +51 -1
- package/dist/retrospective/index.js.map +1 -1
- package/dist/retrospective/report-writer.d.ts +6 -7
- package/dist/retrospective/report-writer.d.ts.map +1 -1
- package/dist/retrospective/report-writer.js +47 -103
- package/dist/retrospective/report-writer.js.map +1 -1
- package/dist/storage/index.d.ts +45 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/sqlite.d.ts +94 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +390 -1
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/strategy/bandit.d.ts +51 -0
- package/dist/strategy/bandit.d.ts.map +1 -0
- package/dist/strategy/bandit.js +115 -0
- package/dist/strategy/bandit.js.map +1 -0
- package/dist/utils/artifact-manager.d.ts +57 -0
- package/dist/utils/artifact-manager.d.ts.map +1 -0
- package/dist/utils/artifact-manager.js +164 -0
- package/dist/utils/artifact-manager.js.map +1 -0
- package/dist/utils/claude-api.d.ts +7 -1
- package/dist/utils/claude-api.d.ts.map +1 -1
- package/dist/utils/claude-api.js +33 -4
- package/dist/utils/claude-api.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ export class PipelineAnalyzer {
|
|
|
8
8
|
this.detector = new TechStackDetector();
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* 将一句话需求分解为任务树(AI 智能编排)
|
|
12
12
|
*/
|
|
13
13
|
async decompose(requirement, projectPath) {
|
|
14
14
|
// 检测项目技术栈
|
|
@@ -17,8 +17,28 @@ export class PipelineAnalyzer {
|
|
|
17
17
|
...profile.languages.map(l => l.name),
|
|
18
18
|
...profile.frameworks.map(f => f.name),
|
|
19
19
|
].join(', ') || '未检测到(新项目)';
|
|
20
|
-
logger.info(`[Pipeline]
|
|
21
|
-
const prompt =
|
|
20
|
+
logger.info(`[Pipeline] 正在智能分解:"${requirement}"`);
|
|
21
|
+
const prompt = this.buildIntelligentPrompt(requirement, techStack, profile);
|
|
22
|
+
try {
|
|
23
|
+
const response = await this.api.complete(prompt, 'pipeline');
|
|
24
|
+
const result = this.parseIntelligentResponse(response);
|
|
25
|
+
if (!result || result.tasks.length === 0) {
|
|
26
|
+
logger.warn('[Pipeline] AI 输出解析失败,使用降级方案');
|
|
27
|
+
return this.fallbackPlan(requirement, techStack);
|
|
28
|
+
}
|
|
29
|
+
logger.info(`[Pipeline] 智能分解完成:${result.complexity} | ${result.taskType} | ${result.plannedPhases.length} 阶段`);
|
|
30
|
+
return { ...result, techStack };
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
logger.error(`[Pipeline] 分解失败:${err}`);
|
|
34
|
+
return this.fallbackPlan(requirement, techStack);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 构建 AI 智能编排 prompt
|
|
39
|
+
*/
|
|
40
|
+
buildIntelligentPrompt(requirement, techStack, profile) {
|
|
41
|
+
return `你是一位资深软件架构师,请分析以下需求,输出智能编排方案。
|
|
22
42
|
|
|
23
43
|
## 需求
|
|
24
44
|
${requirement}
|
|
@@ -28,76 +48,169 @@ ${techStack}
|
|
|
28
48
|
${profile.packageManager ? `包管理器: ${profile.packageManager}` : ''}
|
|
29
49
|
${profile.testFramework ? `测试框架: ${profile.testFramework}` : ''}
|
|
30
50
|
|
|
51
|
+
## 评估维度
|
|
52
|
+
|
|
53
|
+
1. **复杂度**(选一个):
|
|
54
|
+
- simple:单文件修改,<50行,无架构变更
|
|
55
|
+
- moderate:多文件,单模块,无新架构
|
|
56
|
+
- complex:多模块,新架构,或需要 profiling/benchmark
|
|
57
|
+
|
|
58
|
+
2. **任务类型**(选一个):
|
|
59
|
+
- bugfix:修复已有问题
|
|
60
|
+
- feature:新增功能
|
|
61
|
+
- refactor:重构/优化
|
|
62
|
+
- performance:性能优化(需要 profiling 阶段)
|
|
63
|
+
- other:其他
|
|
64
|
+
|
|
65
|
+
3. **阶段规划**(从以下选择,顺序自定):
|
|
66
|
+
- analyze:需求分析/问题定位
|
|
67
|
+
- design:架构/方案设计(复杂需求才需要)
|
|
68
|
+
- profile:性能分析(仅 performance 类型)
|
|
69
|
+
- code:编码实现
|
|
70
|
+
- test:测试验证
|
|
71
|
+
- review:代码审查(复杂需求才需要)
|
|
72
|
+
|
|
73
|
+
4. **产物清单**:每个阶段需要生成哪些文档(文件名.md)
|
|
74
|
+
|
|
75
|
+
## 规则
|
|
76
|
+
|
|
77
|
+
- **simple bugfix**:phases = [analyze, code, test],每阶段 1 个产物
|
|
78
|
+
- **moderate feature**:phases = [analyze, design, code, test],design 阶段 2-3 个产物
|
|
79
|
+
- **complex feature**:phases = [analyze, design, code, test, review],design 阶段 4+ 个产物
|
|
80
|
+
- **performance**:必须包含 profile 阶段,产物包含 profiling-report.md 和 benchmark-results.md
|
|
81
|
+
- **refactor**:根据范围决定是否需要 design,必须包含 review
|
|
82
|
+
|
|
31
83
|
## 输出格式
|
|
32
|
-
输出 JSON 数组,每个任务包含:
|
|
33
|
-
- title: 任务标题(简短)
|
|
34
|
-
- phase: 所属阶段(analyze/design/code/test/review)
|
|
35
|
-
- description: 详细描述(包含具体操作步骤)
|
|
36
|
-
- dependencies: 依赖的任务 title 数组
|
|
37
84
|
|
|
38
|
-
|
|
39
|
-
1. 按 SDLC 阶段划分:analyze → design → code → test → review
|
|
40
|
-
2. 每个阶段至少 1 个任务,不超过 3 个
|
|
41
|
-
3. code 阶段按模块拆分(如前端/后端/数据库)
|
|
42
|
-
4. test 阶段包含单元测试和集成测试
|
|
43
|
-
5. description 要具体到文件和命令
|
|
44
|
-
6. 如果是新项目,analyze 阶段要包含项目初始化(目录结构、依赖安装)
|
|
45
|
-
7. 用中文
|
|
46
|
-
8. 只输出 JSON 数组,不要其他内容
|
|
85
|
+
只输出 JSON,不要其他内容:
|
|
47
86
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
]
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
87
|
+
\`\`\`json
|
|
88
|
+
{
|
|
89
|
+
"complexity": "simple",
|
|
90
|
+
"taskType": "bugfix",
|
|
91
|
+
"phases": ["analyze", "code", "test"],
|
|
92
|
+
"tasks": [
|
|
93
|
+
{
|
|
94
|
+
"title": "定位问题根因",
|
|
95
|
+
"phase": "analyze",
|
|
96
|
+
"description": "分析错误日志,定位根因和需要修复的文件",
|
|
97
|
+
"dependencies": []
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"title": "执行修复",
|
|
101
|
+
"phase": "code",
|
|
102
|
+
"description": "修改 src/utils/helper.ts 中的逻辑错误",
|
|
103
|
+
"dependencies": ["定位问题根因"]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"title": "验证修复效果",
|
|
107
|
+
"phase": "test",
|
|
108
|
+
"description": "运行单元测试,确认问题已解决",
|
|
109
|
+
"dependencies": ["执行修复"]
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"artifacts": {
|
|
113
|
+
"analyze": ["bugfix-plan.md"],
|
|
114
|
+
"code": ["fix-changes.md"],
|
|
115
|
+
"test": ["test-report.md"]
|
|
116
|
+
},
|
|
117
|
+
"reasoning": "简单 bug 修复,单文件改动,无需设计和审查阶段"
|
|
118
|
+
}
|
|
119
|
+
\`\`\``;
|
|
68
120
|
}
|
|
69
|
-
|
|
121
|
+
/**
|
|
122
|
+
* 解析 AI 智能编排响应
|
|
123
|
+
*/
|
|
124
|
+
parseIntelligentResponse(response) {
|
|
70
125
|
// 去除代码围栏
|
|
71
126
|
let cleaned = response.replace(/```json\s*/g, '').replace(/```\s*/g, '');
|
|
72
|
-
// 提取 JSON
|
|
73
|
-
const jsonMatch = cleaned.match(/\[
|
|
127
|
+
// 提取 JSON 对象
|
|
128
|
+
const jsonMatch = cleaned.match(/\{[\s\S]*\}/);
|
|
74
129
|
if (!jsonMatch) {
|
|
75
|
-
logger.warn('[Pipeline] No JSON
|
|
76
|
-
return
|
|
130
|
+
logger.warn('[Pipeline] No JSON object found in response');
|
|
131
|
+
return null;
|
|
77
132
|
}
|
|
78
133
|
try {
|
|
79
134
|
const raw = JSON.parse(jsonMatch[0]);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
135
|
+
// 验证必需字段
|
|
136
|
+
if (!raw.complexity || !raw.phases || !raw.tasks || !raw.artifacts) {
|
|
137
|
+
logger.warn('[Pipeline] AI 输出缺少必需字段');
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
// 验证 phases 有效性
|
|
141
|
+
const validPhases = ['analyze', 'design', 'profile', 'code', 'test', 'review'];
|
|
142
|
+
const phases = raw.phases.filter((p) => validPhases.includes(p));
|
|
143
|
+
if (phases.length === 0) {
|
|
144
|
+
logger.warn('[Pipeline] AI 输出的 phases 无效');
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
complexity: raw.complexity,
|
|
149
|
+
taskType: raw.taskType || 'other',
|
|
150
|
+
plannedPhases: phases,
|
|
151
|
+
phaseArtifacts: raw.artifacts,
|
|
152
|
+
reasoning: raw.reasoning || '',
|
|
153
|
+
tasks: raw.tasks.map((t) => ({
|
|
154
|
+
title: t.title,
|
|
155
|
+
phase: t.phase,
|
|
156
|
+
status: 'pending',
|
|
157
|
+
description: t.description,
|
|
158
|
+
dependencies: t.dependencies || [],
|
|
159
|
+
})),
|
|
160
|
+
};
|
|
87
161
|
}
|
|
88
162
|
catch (err) {
|
|
89
|
-
logger.warn(`[Pipeline]
|
|
90
|
-
return
|
|
163
|
+
logger.warn(`[Pipeline] JSON 解析失败:${err}`);
|
|
164
|
+
return null;
|
|
91
165
|
}
|
|
92
166
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
167
|
+
/**
|
|
168
|
+
* 降级方案:AI 失败时使用的默认编排
|
|
169
|
+
*/
|
|
170
|
+
fallbackPlan(requirement, techStack) {
|
|
171
|
+
// 简单启发式判断
|
|
172
|
+
const isBugfix = /修复|bug|fix|问题|错误/i.test(requirement);
|
|
173
|
+
const isSimple = requirement.length < 100;
|
|
174
|
+
if (isBugfix && isSimple) {
|
|
175
|
+
return {
|
|
176
|
+
tasks: [
|
|
177
|
+
{ title: '定位问题根因', phase: 'analyze', status: 'pending', description: `分析问题:${requirement}`, dependencies: [] },
|
|
178
|
+
{ title: '执行修复', phase: 'code', status: 'pending', description: '按定位结果修复代码', dependencies: ['定位问题根因'] },
|
|
179
|
+
{ title: '验证修复效果', phase: 'test', status: 'pending', description: '运行测试验证修复', dependencies: ['执行修复'] },
|
|
180
|
+
],
|
|
181
|
+
techStack,
|
|
182
|
+
complexity: 'simple',
|
|
183
|
+
taskType: 'bugfix',
|
|
184
|
+
plannedPhases: ['analyze', 'code', 'test'],
|
|
185
|
+
phaseArtifacts: {
|
|
186
|
+
analyze: ['bugfix-plan.md'],
|
|
187
|
+
code: ['fix-changes.md'],
|
|
188
|
+
test: ['test-report.md'],
|
|
189
|
+
},
|
|
190
|
+
reasoning: '降级方案:简单 bug 修复',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
tasks: [
|
|
195
|
+
{ title: '需求分析', phase: 'analyze', status: 'pending', description: `分析需求:${requirement}`, dependencies: [] },
|
|
196
|
+
{ title: '架构设计', phase: 'design', status: 'pending', description: '设计系统架构', dependencies: ['需求分析'] },
|
|
197
|
+
{ title: '核心功能实现', phase: 'code', status: 'pending', description: '按设计方案编写代码', dependencies: ['架构设计'] },
|
|
198
|
+
{ title: '单元测试', phase: 'test', status: 'pending', description: '为核心模块编写测试', dependencies: ['核心功能实现'] },
|
|
199
|
+
{ title: '代码审查', phase: 'review', status: 'pending', description: '检查代码质量', dependencies: ['单元测试'] },
|
|
200
|
+
],
|
|
201
|
+
techStack,
|
|
202
|
+
complexity: 'moderate',
|
|
203
|
+
taskType: 'feature',
|
|
204
|
+
plannedPhases: ['analyze', 'design', 'code', 'test', 'review'],
|
|
205
|
+
phaseArtifacts: {
|
|
206
|
+
analyze: ['requirements.md', 'prd.md'],
|
|
207
|
+
design: ['architecture.md', 'detailed-design.md'],
|
|
208
|
+
code: ['code-changes.md'],
|
|
209
|
+
test: ['test-report.md'],
|
|
210
|
+
review: ['review-report.md'],
|
|
211
|
+
},
|
|
212
|
+
reasoning: '降级方案:标准功能开发流程',
|
|
213
|
+
};
|
|
101
214
|
}
|
|
102
215
|
}
|
|
103
216
|
//# sourceMappingURL=analyzer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/pipeline/analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAAa;IAChB,QAAQ,CAAoB;IAEpC,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,WAAmB;
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/pipeline/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,19 +8,16 @@ export declare class PhaseArtifactGenerator {
|
|
|
8
8
|
private projectPath;
|
|
9
9
|
private api;
|
|
10
10
|
private storage;
|
|
11
|
-
|
|
11
|
+
private pipeline;
|
|
12
|
+
private artifactManager;
|
|
13
|
+
constructor(projectPath: string, api: AIProvider, storage: StorageEngine, pipeline: Pipeline);
|
|
12
14
|
/**
|
|
13
|
-
* 为指定阶段生成产物,写入
|
|
15
|
+
* 为指定阶段生成产物,写入 docs/YYYY-MM-DD_HH-MM-SS/ 目录
|
|
14
16
|
* 幂等:若产物已存在则跳过
|
|
15
17
|
*/
|
|
16
|
-
generateForPhase(phase: PipelinePhase, pipeline: Pipeline, sessionId: string
|
|
18
|
+
generateForPhase(phase: PipelinePhase, pipeline: Pipeline, sessionId: string): Promise<void>;
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
19
|
-
* 格式:<project>/.claude-forge/docs/YYYY-MM-DD_HH-MM/
|
|
20
|
-
*/
|
|
21
|
-
static resolveOutputDir(projectPath: string, sessionStartTime: string): string;
|
|
22
|
-
/**
|
|
23
|
-
* 获取指定阶段的产物文件名列表
|
|
20
|
+
* 获取指定阶段的产物文件名列表(从 Pipeline 的 phaseArtifacts 读取,或降级到默认映射)
|
|
24
21
|
*/
|
|
25
22
|
private getArtifactFiles;
|
|
26
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-generator.d.ts","sourceRoot":"","sources":["../../src/pipeline/artifact-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact-generator.d.ts","sourceRoot":"","sources":["../../src/pipeline/artifact-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO1D;;GAEG;AACH,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IANlB,OAAO,CAAC,eAAe,CAAkB;gBAG/B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,QAAQ;IAK5B;;;OAGG;IACG,gBAAgB,CACpB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IA2EhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiExB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,WAAW;CA+IpB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PHASE_LABELS } from './types.js';
|
|
2
2
|
import { logger } from '../utils/logger.js';
|
|
3
|
+
import { ArtifactManager } from '../utils/artifact-manager.js';
|
|
3
4
|
import fs from 'fs';
|
|
4
5
|
import path from 'path';
|
|
5
6
|
/**
|
|
@@ -9,27 +10,28 @@ export class PhaseArtifactGenerator {
|
|
|
9
10
|
projectPath;
|
|
10
11
|
api;
|
|
11
12
|
storage;
|
|
12
|
-
|
|
13
|
+
pipeline;
|
|
14
|
+
artifactManager;
|
|
15
|
+
constructor(projectPath, api, storage, pipeline) {
|
|
13
16
|
this.projectPath = projectPath;
|
|
14
17
|
this.api = api;
|
|
15
18
|
this.storage = storage;
|
|
19
|
+
this.pipeline = pipeline;
|
|
20
|
+
this.artifactManager = new ArtifactManager(projectPath);
|
|
16
21
|
}
|
|
17
22
|
/**
|
|
18
|
-
* 为指定阶段生成产物,写入
|
|
23
|
+
* 为指定阶段生成产物,写入 docs/YYYY-MM-DD_HH-MM-SS/ 目录
|
|
19
24
|
* 幂等:若产物已存在则跳过
|
|
20
25
|
*/
|
|
21
|
-
async generateForPhase(phase, pipeline, sessionId
|
|
26
|
+
async generateForPhase(phase, pipeline, sessionId) {
|
|
22
27
|
if (phase === 'done')
|
|
23
28
|
return;
|
|
24
29
|
const artifacts = this.getArtifactFiles(phase);
|
|
25
30
|
if (artifacts.length === 0)
|
|
26
31
|
return;
|
|
27
|
-
|
|
28
|
-
if (!fs.existsSync(outputDir)) {
|
|
29
|
-
fs.mkdirSync(outputDir, { recursive: true });
|
|
30
|
-
}
|
|
32
|
+
const sessionDir = this.artifactManager.getCurrentSessionDir();
|
|
31
33
|
// 检查幂等:所有产物文件都存在则跳过
|
|
32
|
-
const allExist = artifacts.every(filename => fs.existsSync(path.join(
|
|
34
|
+
const allExist = artifacts.every(filename => fs.existsSync(path.join(sessionDir, filename)));
|
|
33
35
|
if (allExist) {
|
|
34
36
|
logger.debug(`[Forge:阶段产物] ${PHASE_LABELS[phase]} 产物已存在,跳过生成`);
|
|
35
37
|
return;
|
|
@@ -47,7 +49,7 @@ export class PhaseArtifactGenerator {
|
|
|
47
49
|
const phaseEvents = this.extractPhaseEvents(events, phase);
|
|
48
50
|
// 为每个产物文件生成内容
|
|
49
51
|
for (const filename of artifacts) {
|
|
50
|
-
const filePath = path.join(
|
|
52
|
+
const filePath = path.join(sessionDir, filename);
|
|
51
53
|
if (fs.existsSync(filePath)) {
|
|
52
54
|
logger.debug(`[Forge:阶段产物] ${filename} 已存在,跳过`);
|
|
53
55
|
continue;
|
|
@@ -73,10 +75,13 @@ export class PhaseArtifactGenerator {
|
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
|
-
if (content) {
|
|
77
|
-
|
|
78
|
-
logger.info(`[Forge:阶段产物] 已生成:${filename}`);
|
|
78
|
+
if (!content || content.trim().length === 0) {
|
|
79
|
+
throw new Error(`${filename} AI 返回空内容,产物生成失败`);
|
|
79
80
|
}
|
|
81
|
+
// 通过 ArtifactManager 写入
|
|
82
|
+
const description = `${PHASE_LABELS[phase]} 阶段产物`;
|
|
83
|
+
this.artifactManager.writeArtifact('phase-artifact', filename, content, description);
|
|
84
|
+
logger.info(`[Forge:阶段产物] 已生成 ${filename}`);
|
|
80
85
|
}
|
|
81
86
|
}
|
|
82
87
|
catch (err) {
|
|
@@ -85,32 +90,66 @@ export class PhaseArtifactGenerator {
|
|
|
85
90
|
}
|
|
86
91
|
}
|
|
87
92
|
/**
|
|
88
|
-
*
|
|
89
|
-
* 格式:<project>/.claude-forge/docs/YYYY-MM-DD_HH-MM/
|
|
90
|
-
*/
|
|
91
|
-
static resolveOutputDir(projectPath, sessionStartTime) {
|
|
92
|
-
const date = new Date(sessionStartTime);
|
|
93
|
-
const yyyy = date.getFullYear();
|
|
94
|
-
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
95
|
-
const dd = String(date.getDate()).padStart(2, '0');
|
|
96
|
-
const hh = String(date.getHours()).padStart(2, '0');
|
|
97
|
-
const min = String(date.getMinutes()).padStart(2, '0');
|
|
98
|
-
const dirName = `${yyyy}-${mm}-${dd}_${hh}-${min}`;
|
|
99
|
-
return path.join(projectPath, '.claude-forge', 'docs', dirName);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* 获取指定阶段的产物文件名列表
|
|
93
|
+
* 获取指定阶段的产物文件名列表(从 Pipeline 的 phaseArtifacts 读取,或降级到默认映射)
|
|
103
94
|
*/
|
|
104
95
|
getArtifactFiles(phase) {
|
|
105
|
-
|
|
96
|
+
// 优先使用 AI 规划的产物清单
|
|
97
|
+
if (this.pipeline.phaseArtifacts && this.pipeline.phaseArtifacts[phase]) {
|
|
98
|
+
return this.pipeline.phaseArtifacts[phase];
|
|
99
|
+
}
|
|
100
|
+
// 降级:根据复杂度和任务类型使用默认映射
|
|
101
|
+
const complexity = this.pipeline.complexity || 'moderate';
|
|
102
|
+
const taskType = this.pipeline.taskType || 'other';
|
|
103
|
+
// simple 任务:最少产物
|
|
104
|
+
if (complexity === 'simple') {
|
|
105
|
+
const simpleMapping = {
|
|
106
|
+
analyze: ['plan.md'],
|
|
107
|
+
design: [],
|
|
108
|
+
profile: [],
|
|
109
|
+
code: ['changes.md'],
|
|
110
|
+
test: ['test-report.md'],
|
|
111
|
+
review: [],
|
|
112
|
+
done: [],
|
|
113
|
+
};
|
|
114
|
+
return simpleMapping[phase];
|
|
115
|
+
}
|
|
116
|
+
// performance 任务:包含 profiling 产物
|
|
117
|
+
if (taskType === 'performance') {
|
|
118
|
+
const perfMapping = {
|
|
119
|
+
analyze: ['requirements.md', 'performance-baseline.md'],
|
|
120
|
+
design: ['optimization-plan.md'],
|
|
121
|
+
profile: ['profiling-report.md', 'benchmark-results.md'],
|
|
122
|
+
code: ['code-changes.md', 'optimization-notes.md'],
|
|
123
|
+
test: ['test-report.md', 'performance-comparison.md'],
|
|
124
|
+
review: ['review-report.md'],
|
|
125
|
+
done: [],
|
|
126
|
+
};
|
|
127
|
+
return perfMapping[phase];
|
|
128
|
+
}
|
|
129
|
+
// complex 任务:丰富产物
|
|
130
|
+
if (complexity === 'complex') {
|
|
131
|
+
const complexMapping = {
|
|
132
|
+
analyze: ['requirements.md', 'prd.md', 'tech-selection.md', 'risk-assessment.md'],
|
|
133
|
+
design: ['architecture.md', 'detailed-design.md', 'data-model.md', 'api-design.md', 'component-diagram.md'],
|
|
134
|
+
profile: ['profiling-report.md'],
|
|
135
|
+
code: ['code-changes.md', 'implementation-notes.md', 'migration-guide.md'],
|
|
136
|
+
test: ['test-report.md', 'coverage-report.md', 'integration-test-results.md'],
|
|
137
|
+
review: ['review-report.md', 'security-audit.md', 'performance-review.md'],
|
|
138
|
+
done: [],
|
|
139
|
+
};
|
|
140
|
+
return complexMapping[phase];
|
|
141
|
+
}
|
|
142
|
+
// moderate 任务:标准产物(默认)
|
|
143
|
+
const moderateMapping = {
|
|
106
144
|
analyze: ['requirements.md', 'prd.md'],
|
|
107
145
|
design: ['architecture.md', 'detailed-design.md'],
|
|
146
|
+
profile: ['profiling-report.md'],
|
|
108
147
|
code: ['code-changes.md'],
|
|
109
148
|
test: ['test-report.md'],
|
|
110
149
|
review: ['review-report.md'],
|
|
111
150
|
done: [],
|
|
112
151
|
};
|
|
113
|
-
return
|
|
152
|
+
return moderateMapping[phase];
|
|
114
153
|
}
|
|
115
154
|
/**
|
|
116
155
|
* 从事件流中提取本阶段相关的工具调用摘要
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-generator.js","sourceRoot":"","sources":["../../src/pipeline/artifact-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,OAAO,sBAAsB;
|
|
1
|
+
{"version":3,"file":"artifact-generator.js","sourceRoot":"","sources":["../../src/pipeline/artifact-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAElF,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,4CAA4C;IAC5C,OAAO,CAAC,eAAe,CAA+B;IACtD,4DAA4D;IAC5D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;gBAErC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU;IAQnD,iCAAiC;IACjC,OAAO,CAAC,mBAAmB,CAAoF;IAE/G;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsCjE;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline/index.js
CHANGED
|
@@ -107,11 +107,10 @@ export class PipelineEngine {
|
|
|
107
107
|
if (result.advanced && result.newPhase) {
|
|
108
108
|
const completedPhase = pipeline.phase; // 推进前的阶段
|
|
109
109
|
// 阶段产物生成:必须成功后才能推进(阻塞)
|
|
110
|
-
const outputDir = PhaseArtifactGenerator.resolveOutputDir(pipeline.projectPath, pipeline.createdAt);
|
|
111
110
|
const pipelineSnapshot = { ...pipeline };
|
|
112
111
|
try {
|
|
113
|
-
await new PhaseArtifactGenerator(pipeline.projectPath, this.api, this.storage)
|
|
114
|
-
.generateForPhase(completedPhase, pipelineSnapshot, event.session_id
|
|
112
|
+
await new PhaseArtifactGenerator(pipeline.projectPath, this.api, this.storage, pipelineSnapshot)
|
|
113
|
+
.generateForPhase(completedPhase, pipelineSnapshot, event.session_id);
|
|
115
114
|
}
|
|
116
115
|
catch (err) {
|
|
117
116
|
logger.warn(`[Forge:阶段产物] ${PHASE_LABELS[completedPhase]} 产物生成失败,阻断阶段推进:${err}`);
|
|
@@ -123,10 +122,7 @@ export class PipelineEngine {
|
|
|
123
122
|
|
|
124
123
|
错误:${err}
|
|
125
124
|
|
|
126
|
-
请检查 API
|
|
127
|
-
${outputDir}
|
|
128
|
-
|
|
129
|
-
产物生成成功后,继续正常工作流程,系统将自动重新检查。`,
|
|
125
|
+
请检查 API 连接后重试,产物生成成功后,继续正常工作流程,系统将自动重新检查。`,
|
|
130
126
|
};
|
|
131
127
|
}
|
|
132
128
|
pipeline.phase = result.newPhase;
|
|
@@ -145,17 +141,17 @@ ${outputDir}
|
|
|
145
141
|
*/
|
|
146
142
|
async startPipeline(requirement, projectPath, sessionId) {
|
|
147
143
|
logger.info(`[Pipeline] 启动中:"${requirement}"`);
|
|
148
|
-
// 用 Claude API
|
|
149
|
-
const { tasks, techStack } = await this.analyzer.decompose(requirement, projectPath);
|
|
144
|
+
// 用 Claude API 智能分解需求
|
|
145
|
+
const { tasks, techStack, complexity, taskType, plannedPhases, phaseArtifacts, reasoning } = await this.analyzer.decompose(requirement, projectPath);
|
|
150
146
|
// 创建 Pipeline
|
|
151
|
-
const pipeline = this.store.createPipeline(requirement, projectPath, sessionId, techStack);
|
|
147
|
+
const pipeline = this.store.createPipeline(requirement, projectPath, sessionId, techStack, complexity, taskType, plannedPhases, phaseArtifacts, reasoning);
|
|
152
148
|
// 添加任务
|
|
153
149
|
if (tasks.length > 0) {
|
|
154
150
|
pipeline.tasks = this.store.addTasks(pipeline.id, tasks);
|
|
155
151
|
}
|
|
156
152
|
// 缓存
|
|
157
153
|
this.setCached(projectPath, pipeline);
|
|
158
|
-
logger.info(`[Pipeline] 已启动,共 ${pipeline.tasks.length}
|
|
154
|
+
logger.info(`[Pipeline] 已启动,共 ${pipeline.tasks.length} 个任务 (${complexity} ${taskType}, ${plannedPhases.length} 阶段)`);
|
|
159
155
|
return pipeline;
|
|
160
156
|
}
|
|
161
157
|
/**
|