soloforge 1.0.0 → 1.1.1
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 +4 -1
- package/dist/adapters/claude_code/claude_md.d.ts +1 -2
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +2 -76
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/server.d.ts +16 -0
- package/dist/adapters/claude_code/server.d.ts.map +1 -1
- package/dist/adapters/claude_code/server.js +17 -1
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +32 -1
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +65 -30
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts +3 -0
- package/dist/adapters/codex/codex_config.d.ts.map +1 -0
- package/dist/adapters/codex/codex_config.js +51 -0
- package/dist/adapters/codex/codex_config.js.map +1 -0
- package/dist/adapters/codex/codex_rules.d.ts +2 -0
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -0
- package/dist/adapters/codex/codex_rules.js +5 -0
- package/dist/adapters/codex/codex_rules.js.map +1 -0
- package/dist/adapters/shared/workflow_template.d.ts +3 -0
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -0
- package/dist/adapters/shared/workflow_template.js +78 -0
- package/dist/adapters/shared/workflow_template.js.map +1 -0
- package/dist/adapters/trae/trae_rules.d.ts +1 -2
- package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
- package/dist/adapters/trae/trae_rules.js +2 -75
- package/dist/adapters/trae/trae_rules.js.map +1 -1
- package/dist/bin/soloforge.js +171 -22
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/change_coordinator.d.ts +20 -5
- package/dist/engine/change_coordinator.d.ts.map +1 -1
- package/dist/engine/change_coordinator.js +36 -22
- package/dist/engine/change_coordinator.js.map +1 -1
- package/dist/engine/classifier.d.ts +7 -0
- package/dist/engine/classifier.d.ts.map +1 -1
- package/dist/engine/classifier.js +75 -3
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/code_reviewer.d.ts +37 -1
- package/dist/engine/code_reviewer.d.ts.map +1 -1
- package/dist/engine/code_reviewer.js +126 -24
- package/dist/engine/code_reviewer.js.map +1 -1
- package/dist/engine/confidence_scorer.d.ts +21 -0
- package/dist/engine/confidence_scorer.d.ts.map +1 -1
- package/dist/engine/confidence_scorer.js +19 -6
- package/dist/engine/confidence_scorer.js.map +1 -1
- package/dist/engine/contract_guard.d.ts +23 -0
- package/dist/engine/contract_guard.d.ts.map +1 -1
- package/dist/engine/contract_guard.js +152 -43
- package/dist/engine/contract_guard.js.map +1 -1
- package/dist/engine/convention_detector.d.ts +20 -0
- package/dist/engine/convention_detector.d.ts.map +1 -1
- package/dist/engine/convention_detector.js +19 -1
- package/dist/engine/convention_detector.js.map +1 -1
- package/dist/engine/debt_reporter.d.ts +5 -0
- package/dist/engine/debt_reporter.d.ts.map +1 -1
- package/dist/engine/debt_reporter.js +30 -6
- package/dist/engine/debt_reporter.js.map +1 -1
- package/dist/engine/debt_tracker.d.ts +52 -0
- package/dist/engine/debt_tracker.d.ts.map +1 -1
- package/dist/engine/debt_tracker.js +66 -1
- package/dist/engine/debt_tracker.js.map +1 -1
- package/dist/engine/debugger.d.ts +9 -0
- package/dist/engine/debugger.d.ts.map +1 -1
- package/dist/engine/debugger.js +112 -20
- package/dist/engine/debugger.js.map +1 -1
- package/dist/engine/delivery.d.ts +27 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +67 -13
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/dependency_scanner.d.ts +5 -8
- package/dist/engine/dependency_scanner.d.ts.map +1 -1
- package/dist/engine/dependency_scanner.js +46 -29
- package/dist/engine/dependency_scanner.js.map +1 -1
- package/dist/engine/evolver.d.ts +54 -0
- package/dist/engine/evolver.d.ts.map +1 -1
- package/dist/engine/evolver.js +159 -6
- package/dist/engine/evolver.js.map +1 -1
- package/dist/engine/exploration.d.ts +114 -0
- package/dist/engine/exploration.d.ts.map +1 -0
- package/dist/engine/exploration.js +414 -0
- package/dist/engine/exploration.js.map +1 -0
- package/dist/engine/failure_classifier.d.ts +28 -0
- package/dist/engine/failure_classifier.d.ts.map +1 -1
- package/dist/engine/failure_classifier.js +51 -5
- package/dist/engine/failure_classifier.js.map +1 -1
- package/dist/engine/git_deps.d.ts +29 -0
- package/dist/engine/git_deps.d.ts.map +1 -1
- package/dist/engine/git_deps.js +1 -0
- package/dist/engine/git_deps.js.map +1 -1
- package/dist/engine/impact_analyzer.d.ts +17 -0
- package/dist/engine/impact_analyzer.d.ts.map +1 -1
- package/dist/engine/impact_analyzer.js +76 -4
- package/dist/engine/impact_analyzer.js.map +1 -1
- package/dist/engine/intent_expander.d.ts +58 -0
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +173 -1
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/migration_guard.d.ts +6 -0
- package/dist/engine/migration_guard.d.ts.map +1 -1
- package/dist/engine/migration_guard.js +26 -7
- package/dist/engine/migration_guard.js.map +1 -1
- package/dist/engine/observability.d.ts +31 -7
- package/dist/engine/observability.d.ts.map +1 -1
- package/dist/engine/observability.js +88 -28
- package/dist/engine/observability.js.map +1 -1
- package/dist/engine/onboarding.d.ts +41 -1
- package/dist/engine/onboarding.d.ts.map +1 -1
- package/dist/engine/onboarding.js +83 -8
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/scaffolder.d.ts +10 -0
- package/dist/engine/scaffolder.d.ts.map +1 -1
- package/dist/engine/scaffolder.js +55 -10
- package/dist/engine/scaffolder.js.map +1 -1
- package/dist/engine/scope_controller.d.ts +13 -0
- package/dist/engine/scope_controller.d.ts.map +1 -1
- package/dist/engine/scope_controller.js +76 -12
- package/dist/engine/scope_controller.js.map +1 -1
- package/dist/engine/task_context.d.ts +124 -0
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +155 -7
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/task_planner.d.ts +17 -0
- package/dist/engine/task_planner.d.ts.map +1 -1
- package/dist/engine/task_planner.js +51 -4
- package/dist/engine/task_planner.js.map +1 -1
- package/dist/engine/team_awareness.d.ts +17 -0
- package/dist/engine/team_awareness.d.ts.map +1 -1
- package/dist/engine/team_awareness.js +29 -11
- package/dist/engine/team_awareness.js.map +1 -1
- package/dist/engine/test_generator.d.ts +5 -4
- package/dist/engine/test_generator.d.ts.map +1 -1
- package/dist/engine/test_generator.js +22 -5
- package/dist/engine/test_generator.js.map +1 -1
- package/dist/engine/test_quality.d.ts +11 -4
- package/dist/engine/test_quality.d.ts.map +1 -1
- package/dist/engine/test_quality.js +171 -14
- package/dist/engine/test_quality.js.map +1 -1
- package/dist/engine/verifier.d.ts +41 -0
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +110 -1
- package/dist/engine/verifier.js.map +1 -1
- package/dist/git/operations.d.ts +1 -0
- package/dist/git/operations.d.ts.map +1 -1
- package/dist/git/operations.js +3 -0
- package/dist/git/operations.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +7 -1
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +112 -37
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.d.ts +31 -0
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +102 -8
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/types.d.ts +608 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +19 -0
- package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +4 -0
- package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +4 -1
- package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +34 -0
- package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +66 -0
- package/templates/scaffolds/react/Form.tsx.hbs +9 -1
- package/templates/scaffolds/react/List.tsx.hbs +10 -1
- package/templates/scaffolds/react/Page.tsx.hbs +4 -1
- package/templates/scaffolds/react/service.ts.hbs +29 -0
- package/templates/scaffolds/react/types.ts.hbs +7 -1
- package/templates/scaffolds/react/use{{ModuleName}}.ts.hbs +34 -2
- package/templates/scaffolds/spring-boot/Controller.java.hbs +27 -0
- package/templates/scaffolds/spring-boot/DTO.java.hbs +7 -1
- package/templates/scaffolds/spring-boot/Entity.java.hbs +11 -1
- package/templates/scaffolds/spring-boot/ErrorCode.java.hbs +13 -1
- package/templates/scaffolds/spring-boot/Mapper.java.hbs +4 -1
- package/templates/scaffolds/spring-boot/PageResponse.java.hbs +24 -1
- package/templates/scaffolds/spring-boot/Service.java.hbs +32 -0
- package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +23 -5
- package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +7 -1
|
@@ -2,9 +2,23 @@ import fs from "node:fs/promises";
|
|
|
2
2
|
import fss from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import crypto from "node:crypto";
|
|
5
|
+
/**
|
|
6
|
+
* 任务上下文管理器 — 管理任务的完整生命周期状态持久化。
|
|
7
|
+
*
|
|
8
|
+
* 核心职责:
|
|
9
|
+
* - 创建/加载/保存任务上下文(JSON 文件存储)
|
|
10
|
+
* - 管理状态机转换(classifying → expanding → executing → verifying → learning → done)
|
|
11
|
+
* - 追踪执行结果(变更文件、失败记录)
|
|
12
|
+
* - 修复循环追踪(能力 3: 自动修复尝试计数和复发检测)
|
|
13
|
+
* - 返工历史追踪(能力 6: 返工次数阈值检查和阶段指令计算)
|
|
14
|
+
* - 任务清理(过期任务和超量任务淘汰)
|
|
15
|
+
*
|
|
16
|
+
* 状态转换遵循 VALID_TRANSITIONS 严格定义的合法路径。
|
|
17
|
+
*/
|
|
5
18
|
const MAX_TASK_AGE_DAYS = 30;
|
|
6
19
|
const MAX_TASKS = 100;
|
|
7
20
|
const MAX_REWORK = 3;
|
|
21
|
+
// 状态转换表: 定义每个状态允许的合法后继状态
|
|
8
22
|
const VALID_TRANSITIONS = {
|
|
9
23
|
classifying: ["expanding", "failed"],
|
|
10
24
|
expanding: ["executing", "failed"],
|
|
@@ -16,15 +30,27 @@ const VALID_TRANSITIONS = {
|
|
|
16
30
|
done: [],
|
|
17
31
|
failed: [],
|
|
18
32
|
};
|
|
33
|
+
/**
|
|
34
|
+
* 任务上下文管理器 — 负责任务状态的创建、持久化、查询和生命周期管理。
|
|
35
|
+
* 状态文件存储在 stateDir 目录下,每个任务一个 JSON 文件。
|
|
36
|
+
* 使用 "current-task.json" 指针文件标记当前活跃任务。
|
|
37
|
+
*/
|
|
19
38
|
export class TaskContextManager {
|
|
20
39
|
stateDir;
|
|
21
40
|
constructor(stateDir) {
|
|
22
41
|
this.stateDir = stateDir;
|
|
23
42
|
fss.mkdirSync(stateDir, { recursive: true });
|
|
24
43
|
}
|
|
44
|
+
/** 获取状态存储目录路径 */
|
|
25
45
|
getStateDir() {
|
|
26
46
|
return this.stateDir;
|
|
27
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* 创建新任务上下文,生成唯一 ID 并持久化到磁盘。
|
|
50
|
+
* @param intent - 用户意图文本
|
|
51
|
+
* @param productProfile - 产品类型标识
|
|
52
|
+
* @returns 新创建的任务上下文
|
|
53
|
+
*/
|
|
28
54
|
async create(intent, productProfile) {
|
|
29
55
|
const taskId = `task-${crypto.randomUUID().slice(0, 8)}`;
|
|
30
56
|
const ctx = {
|
|
@@ -38,6 +64,11 @@ export class TaskContextManager {
|
|
|
38
64
|
await this.writeCurrentPointer(taskId);
|
|
39
65
|
return ctx;
|
|
40
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* 从磁盘加载任务上下文。
|
|
69
|
+
* @param taskId - 任务 ID
|
|
70
|
+
* @returns 任务上下文对象,不存在或解析失败时返回 null
|
|
71
|
+
*/
|
|
41
72
|
async load(taskId) {
|
|
42
73
|
const filePath = this.taskFilePath(taskId);
|
|
43
74
|
try {
|
|
@@ -48,12 +79,24 @@ export class TaskContextManager {
|
|
|
48
79
|
return null;
|
|
49
80
|
}
|
|
50
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* 持久化任务上下文到磁盘(先写临时文件再 rename,保证原子性)。
|
|
84
|
+
* @param ctx - 任务上下文对象
|
|
85
|
+
*/
|
|
51
86
|
async save(ctx) {
|
|
52
87
|
const filePath = this.taskFilePath(ctx.task_id);
|
|
88
|
+
// 原子写入: 先写 .tmp 临时文件,再 rename 覆盖,防止写入中断导致文件损坏
|
|
53
89
|
const tmpPath = `${filePath}.tmp`;
|
|
54
90
|
await fs.writeFile(tmpPath, JSON.stringify(ctx, null, 2));
|
|
55
91
|
await fs.rename(tmpPath, filePath);
|
|
56
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* 更新任务状态,严格校验状态转换合法性。
|
|
95
|
+
* @param taskId - 任务 ID
|
|
96
|
+
* @param status - 目标状态
|
|
97
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
98
|
+
* @throws 非法状态转换时抛出 Error
|
|
99
|
+
*/
|
|
57
100
|
async updateStatus(taskId, status) {
|
|
58
101
|
const ctx = await this.load(taskId);
|
|
59
102
|
if (!ctx)
|
|
@@ -65,6 +108,12 @@ export class TaskContextManager {
|
|
|
65
108
|
await this.save(ctx);
|
|
66
109
|
return ctx;
|
|
67
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* 设置任务的分类结果。
|
|
113
|
+
* @param taskId - 任务 ID
|
|
114
|
+
* @param result - 分类结果
|
|
115
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
116
|
+
*/
|
|
68
117
|
async setClassification(taskId, result) {
|
|
69
118
|
const ctx = await this.load(taskId);
|
|
70
119
|
if (!ctx)
|
|
@@ -73,6 +122,12 @@ export class TaskContextManager {
|
|
|
73
122
|
await this.save(ctx);
|
|
74
123
|
return ctx;
|
|
75
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* 设置任务的意图膨胀结果。
|
|
127
|
+
* @param taskId - 任务 ID
|
|
128
|
+
* @param result - 膨胀结果
|
|
129
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
130
|
+
*/
|
|
76
131
|
async setExpansion(taskId, result) {
|
|
77
132
|
const ctx = await this.load(taskId);
|
|
78
133
|
if (!ctx)
|
|
@@ -81,6 +136,14 @@ export class TaskContextManager {
|
|
|
81
136
|
await this.save(ctx);
|
|
82
137
|
return ctx;
|
|
83
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* 记录执行结果: 变更文件列表和可选的失败记录。
|
|
141
|
+
* 变更文件自动去重合并,失败记录追加到历史。
|
|
142
|
+
* @param taskId - 任务 ID
|
|
143
|
+
* @param changedFiles - 变更文件路径列表
|
|
144
|
+
* @param failure - 可选的失败记录
|
|
145
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
146
|
+
*/
|
|
84
147
|
async setExecution(taskId, changedFiles, failure) {
|
|
85
148
|
const ctx = await this.load(taskId);
|
|
86
149
|
if (!ctx)
|
|
@@ -103,6 +166,12 @@ export class TaskContextManager {
|
|
|
103
166
|
await this.save(ctx);
|
|
104
167
|
return ctx;
|
|
105
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* 设置任务的验证结果。
|
|
171
|
+
* @param taskId - 任务 ID
|
|
172
|
+
* @param result - 验证结果
|
|
173
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
174
|
+
*/
|
|
106
175
|
async setVerification(taskId, result) {
|
|
107
176
|
const ctx = await this.load(taskId);
|
|
108
177
|
if (!ctx)
|
|
@@ -111,6 +180,10 @@ export class TaskContextManager {
|
|
|
111
180
|
await this.save(ctx);
|
|
112
181
|
return ctx;
|
|
113
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* 获取当前活跃任务(通过 current-task.json 指针定位)。
|
|
185
|
+
* @returns 当前任务上下文,无活跃任务或读取失败时返回 null
|
|
186
|
+
*/
|
|
114
187
|
async getCurrentTask() {
|
|
115
188
|
try {
|
|
116
189
|
const data = await fs.readFile(this.pointerPath, "utf-8");
|
|
@@ -121,6 +194,11 @@ export class TaskContextManager {
|
|
|
121
194
|
return null;
|
|
122
195
|
}
|
|
123
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* 取消未完成的任务,将状态设为 failed。
|
|
199
|
+
* @param taskId - 任务 ID
|
|
200
|
+
* @returns 是否取消成功(已完成的任务无法取消)
|
|
201
|
+
*/
|
|
124
202
|
async cancel(taskId) {
|
|
125
203
|
const ctx = await this.load(taskId);
|
|
126
204
|
if (!ctx)
|
|
@@ -131,9 +209,19 @@ export class TaskContextManager {
|
|
|
131
209
|
await this.save(ctx);
|
|
132
210
|
return true;
|
|
133
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* 判断任务是否可恢复(非 done / failed / classifying 状态均可恢复)。
|
|
214
|
+
* @param ctx - 任务上下文
|
|
215
|
+
* @returns 是否可恢复
|
|
216
|
+
*/
|
|
134
217
|
isResumable(ctx) {
|
|
135
218
|
return !["done", "failed", "classifying"].includes(ctx.status);
|
|
136
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* 根据当前状态生成恢复提示信息。
|
|
222
|
+
* @param ctx - 任务上下文
|
|
223
|
+
* @returns 恢复提示文本
|
|
224
|
+
*/
|
|
137
225
|
getResumeHint(ctx) {
|
|
138
226
|
const hints = {
|
|
139
227
|
expanding: "意图膨胀未完成,需重新执行 sf_expand",
|
|
@@ -145,6 +233,11 @@ export class TaskContextManager {
|
|
|
145
233
|
};
|
|
146
234
|
return hints[ctx.status] || "未知状态";
|
|
147
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* 列出最近的任务(按创建时间降序排列)。
|
|
238
|
+
* @param limit - 返回数量上限,默认 10
|
|
239
|
+
* @returns 任务摘要列表
|
|
240
|
+
*/
|
|
148
241
|
async listRecent(limit = 10) {
|
|
149
242
|
const files = await fs.readdir(this.stateDir);
|
|
150
243
|
const taskFiles = files.filter((f) => f.startsWith("task-") && f.endsWith(".json"));
|
|
@@ -162,23 +255,29 @@ export class TaskContextManager {
|
|
|
162
255
|
.sort((a, b) => b.created_at.localeCompare(a.created_at))
|
|
163
256
|
.slice(0, limit);
|
|
164
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* 清理过期和超量任务: 删除超过 30 天的任务,超过 100 个时淘汰最旧的已完成/已失败任务。
|
|
260
|
+
* @returns 删除的任务数量
|
|
261
|
+
*/
|
|
165
262
|
async cleanup() {
|
|
166
263
|
const files = await fs.readdir(this.stateDir);
|
|
167
264
|
const taskFiles = files.filter((f) => f.startsWith("task-") && f.endsWith(".json"));
|
|
168
265
|
const now = Date.now();
|
|
169
266
|
const maxAge = MAX_TASK_AGE_DAYS * 24 * 60 * 60 * 1000;
|
|
170
267
|
let removed = 0;
|
|
171
|
-
|
|
172
|
-
// 同时也考虑 mtime 作为兼容:取 created_at 和 mtime 中较早的时间
|
|
268
|
+
const allTasks = [];
|
|
173
269
|
for (const f of taskFiles) {
|
|
174
270
|
try {
|
|
175
271
|
const filePath = path.join(this.stateDir, f);
|
|
176
272
|
const content = await fs.readFile(filePath, "utf-8");
|
|
177
273
|
const ctx = JSON.parse(content);
|
|
178
274
|
const stat = await fs.stat(filePath);
|
|
179
|
-
// Use the earlier of created_at or mtime for age comparison
|
|
180
275
|
const createdAt = ctx.created_at ? new Date(ctx.created_at).getTime() : Infinity;
|
|
181
276
|
const earliestTime = Math.min(createdAt, stat.mtimeMs);
|
|
277
|
+
// 收集元数据用于后续超量淘汰
|
|
278
|
+
if (ctx.task_id && ctx.created_at && ctx.status) {
|
|
279
|
+
allTasks.push({ task_id: ctx.task_id, created_at: ctx.created_at, status: ctx.status });
|
|
280
|
+
}
|
|
182
281
|
if (now - earliestTime > maxAge) {
|
|
183
282
|
await fs.unlink(filePath);
|
|
184
283
|
removed++;
|
|
@@ -188,10 +287,11 @@ export class TaskContextManager {
|
|
|
188
287
|
// 跳过无法删除的文件
|
|
189
288
|
}
|
|
190
289
|
}
|
|
191
|
-
//
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
290
|
+
// 基于已收集的元数据进行超量淘汰,避免二次 I/O
|
|
291
|
+
const surviving = allTasks
|
|
292
|
+
.sort((a, b) => b.created_at.localeCompare(a.created_at));
|
|
293
|
+
if (surviving.length > MAX_TASKS) {
|
|
294
|
+
const toDelete = surviving.slice(MAX_TASKS).filter((t) => t.status === "done" || t.status === "failed");
|
|
195
295
|
for (const t of toDelete) {
|
|
196
296
|
try {
|
|
197
297
|
await fs.unlink(this.taskFilePath(t.task_id));
|
|
@@ -204,6 +304,12 @@ export class TaskContextManager {
|
|
|
204
304
|
}
|
|
205
305
|
return removed;
|
|
206
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* 设置任务计划结果。
|
|
309
|
+
* @param taskId - 任务 ID
|
|
310
|
+
* @param result - 计划结果
|
|
311
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
312
|
+
*/
|
|
207
313
|
async setPlanning(taskId, result) {
|
|
208
314
|
const ctx = await this.load(taskId);
|
|
209
315
|
if (!ctx)
|
|
@@ -212,6 +318,12 @@ export class TaskContextManager {
|
|
|
212
318
|
await this.save(ctx);
|
|
213
319
|
return ctx;
|
|
214
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* 设置代码审查结果,并基于审查发现计算阶段指令(能力 6)。
|
|
323
|
+
* @param taskId - 任务 ID
|
|
324
|
+
* @param result - 代码审查结果
|
|
325
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
326
|
+
*/
|
|
215
327
|
async setCodeReview(taskId, result) {
|
|
216
328
|
const ctx = await this.load(taskId);
|
|
217
329
|
if (!ctx)
|
|
@@ -222,6 +334,12 @@ export class TaskContextManager {
|
|
|
222
334
|
await this.save(ctx);
|
|
223
335
|
return ctx;
|
|
224
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* 设置交付结果。
|
|
339
|
+
* @param taskId - 任务 ID
|
|
340
|
+
* @param result - 交付结果
|
|
341
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
342
|
+
*/
|
|
225
343
|
async setDelivery(taskId, result) {
|
|
226
344
|
const ctx = await this.load(taskId);
|
|
227
345
|
if (!ctx)
|
|
@@ -231,6 +349,15 @@ export class TaskContextManager {
|
|
|
231
349
|
return ctx;
|
|
232
350
|
}
|
|
233
351
|
// ── 能力 3: 修复循环追踪 ──
|
|
352
|
+
/**
|
|
353
|
+
* 更新修复循环状态(能力 3): 递增尝试次数,记录失败阶段和自动修复能力。
|
|
354
|
+
* 同时统计同一阶段的复发次数。
|
|
355
|
+
* @param taskId - 任务 ID
|
|
356
|
+
* @param failurePhase - 发生失败的阶段名称
|
|
357
|
+
* @param autoRepairable - 是否可自动修复
|
|
358
|
+
* @param escalationReason - 可选的升级原因
|
|
359
|
+
* @returns 更新后的任务上下文,任务不存在或无执行记录时返回 null
|
|
360
|
+
*/
|
|
234
361
|
async updateRepairLoop(taskId, failurePhase, autoRepairable, escalationReason) {
|
|
235
362
|
const ctx = await this.load(taskId);
|
|
236
363
|
if (!ctx || !ctx.execution)
|
|
@@ -255,6 +382,15 @@ export class TaskContextManager {
|
|
|
255
382
|
return ctx;
|
|
256
383
|
}
|
|
257
384
|
// ── 能力 6: 返工历史追踪 ──
|
|
385
|
+
/**
|
|
386
|
+
* 记录返工事件(能力 6): 追踪从哪个阶段回退到哪个阶段及原因。
|
|
387
|
+
* 超过 MAX_REWORK 阈值时自动设置阶段指令为 stop_escalate。
|
|
388
|
+
* @param taskId - 任务 ID
|
|
389
|
+
* @param fromPhase - 源阶段
|
|
390
|
+
* @param toPhase - 目标阶段
|
|
391
|
+
* @param reason - 返工原因
|
|
392
|
+
* @returns 更新后的任务上下文,任务不存在时返回 null
|
|
393
|
+
*/
|
|
258
394
|
async recordRework(taskId, fromPhase, toPhase, reason) {
|
|
259
395
|
const ctx = await this.load(taskId);
|
|
260
396
|
if (!ctx)
|
|
@@ -278,17 +414,29 @@ export class TaskContextManager {
|
|
|
278
414
|
return ctx;
|
|
279
415
|
}
|
|
280
416
|
// ── 内部方法 ──
|
|
417
|
+
/** 生成任务状态文件的完整路径 */
|
|
281
418
|
taskFilePath(taskId) {
|
|
282
419
|
return path.join(this.stateDir, `${taskId}.json`);
|
|
283
420
|
}
|
|
421
|
+
/** 当前任务指针文件路径 */
|
|
284
422
|
get pointerPath() {
|
|
285
423
|
return path.join(this.stateDir, "current-task.json");
|
|
286
424
|
}
|
|
425
|
+
/**
|
|
426
|
+
* 写入当前任务指针文件。
|
|
427
|
+
* @param taskId - 任务 ID
|
|
428
|
+
*/
|
|
287
429
|
async writeCurrentPointer(taskId) {
|
|
288
430
|
await fs.writeFile(this.pointerPath, JSON.stringify({ task_id: taskId }));
|
|
289
431
|
}
|
|
290
432
|
}
|
|
291
433
|
// ── 能力 6: 阶段指令计算 ──
|
|
434
|
+
/**
|
|
435
|
+
* 基于代码审查结果和修复循环状态计算阶段指令(能力 6)。
|
|
436
|
+
* 决策优先级: 审查通过 → completed > critical 发现需返工 > 返工超限 → stop_escalate > 不可自动修复 → rework_upstream > 其他 → advance_next。
|
|
437
|
+
* @param ctx - 任务上下文
|
|
438
|
+
* @returns 阶段指令
|
|
439
|
+
*/
|
|
292
440
|
function computePhaseDirective(ctx) {
|
|
293
441
|
// 审查通过 → 完成
|
|
294
442
|
if (ctx.code_review && ctx.code_review.findings.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_context.js","sourceRoot":"","sources":["../../src/engine/task_context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task_context.js","sourceRoot":"","sources":["../../src/engine/task_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
import type { ClassifyResult, PlanResult } from "../types.js";
|
|
2
2
|
import type { ProjectConfig } from "../types.js";
|
|
3
3
|
import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
|
|
4
|
+
/**
|
|
5
|
+
* 任务规划器 — 将高复杂度任务拆解为可并行执行的子任务序列。
|
|
6
|
+
*
|
|
7
|
+
* 核心策略:
|
|
8
|
+
* - 仅在 complexity=high 且 strategy=full_pipeline 时触发拆解
|
|
9
|
+
* - 有 pipeline_procedure 知识时: 按知识定义的流程步骤拆分(知识驱动)
|
|
10
|
+
* - 无 pipeline_procedure 知识时: 按仓库边界拆分(backend / frontend)
|
|
11
|
+
* - 自动构建执行顺序和并行分组(基于依赖关系拓扑排序)
|
|
12
|
+
* - 支持模板绑定、输出路径和工具建议(与 intent_expander 的 P2/P3 能力配合)
|
|
13
|
+
*/
|
|
14
|
+
/** 任务规划输入参数 */
|
|
4
15
|
export interface PlanInput {
|
|
5
16
|
intent: string;
|
|
6
17
|
classification: ClassifyResult;
|
|
7
18
|
config: ProjectConfig;
|
|
8
19
|
knowledgeIndex: KnowledgeIndexManager;
|
|
9
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* 对任务进行拆解规划,生成子任务序列和执行顺序。
|
|
23
|
+
* 不满足拆解条件时返回空计划。
|
|
24
|
+
* @param input - 规划输入,包含意图、分类结果、项目配置和知识索引
|
|
25
|
+
* @returns 计划结果,包含子任务列表、执行顺序和并行分组
|
|
26
|
+
*/
|
|
10
27
|
export declare function planTask(input: PlanInput): PlanResult;
|
|
11
28
|
//# sourceMappingURL=task_planner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_planner.d.ts","sourceRoot":"","sources":["../../src/engine/task_planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAW,UAAU,EAAc,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,qBAAqB,CAAC;CACvC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAsFrD"}
|
|
1
|
+
{"version":3,"file":"task_planner.d.ts","sourceRoot":"","sources":["../../src/engine/task_planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAW,UAAU,EAAc,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E;;;;;;;;;GASG;AAEH,eAAe;AACf,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,qBAAqB,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAsFrD"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 对任务进行拆解规划,生成子任务序列和执行顺序。
|
|
3
|
+
* 不满足拆解条件时返回空计划。
|
|
4
|
+
* @param input - 规划输入,包含意图、分类结果、项目配置和知识索引
|
|
5
|
+
* @returns 计划结果,包含子任务列表、执行顺序和并行分组
|
|
6
|
+
*/
|
|
1
7
|
export function planTask(input) {
|
|
2
8
|
const { intent, classification, config, knowledgeIndex } = input;
|
|
3
9
|
if (!shouldPlan(classification)) {
|
|
@@ -163,9 +169,22 @@ function parsePipelineSteps(body) {
|
|
|
163
169
|
}
|
|
164
170
|
return steps;
|
|
165
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* 判断是否需要拆解任务: 仅 high 复杂度 + full_pipeline 策略才触发。
|
|
174
|
+
* @param classification - 分类结果
|
|
175
|
+
* @returns 是否需要拆解
|
|
176
|
+
*/
|
|
166
177
|
function shouldPlan(classification) {
|
|
167
178
|
return classification.complexity === "high" && classification.strategy === "full_pipeline";
|
|
168
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* 按仓库边界拆分任务: 每个受影响仓库生成一个子任务。
|
|
182
|
+
* 前端依赖后端时自动添加 depends_on 关系。
|
|
183
|
+
* @param intent - 用户意图
|
|
184
|
+
* @param classification - 分类结果
|
|
185
|
+
* @param config - 项目配置
|
|
186
|
+
* @returns 子任务数组,单仓库时返回空数组
|
|
187
|
+
*/
|
|
169
188
|
function splitByRepoBoundary(intent, classification, config) {
|
|
170
189
|
const repos = classification.affected_repos;
|
|
171
190
|
if (repos.length <= 1)
|
|
@@ -187,6 +206,13 @@ function splitByRepoBoundary(intent, classification, config) {
|
|
|
187
206
|
}
|
|
188
207
|
return tasks;
|
|
189
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* 为特定仓库生成意图描述: 将"前后端/联调/全链路"等跨域词替换为仓库视角的描述。
|
|
211
|
+
* @param intent - 原始意图
|
|
212
|
+
* @param repo - 目标仓库名称
|
|
213
|
+
* @param allRepos - 所有受影响的仓库
|
|
214
|
+
* @returns 仓库视角的意图描述
|
|
215
|
+
*/
|
|
190
216
|
function buildRepoIntent(intent, repo, allRepos) {
|
|
191
217
|
if (repo === "backend" && allRepos.includes("frontend")) {
|
|
192
218
|
return intent.replace(/前后端|联调|全链路/g, "后端接口");
|
|
@@ -196,6 +222,11 @@ function buildRepoIntent(intent, repo, allRepos) {
|
|
|
196
222
|
}
|
|
197
223
|
return intent;
|
|
198
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* 将 procedure 知识名称作为参考提示合并到子任务描述中。
|
|
227
|
+
* @param tasks - 子任务列表(原地修改)
|
|
228
|
+
* @param procedureNames - procedure 知识名称列表
|
|
229
|
+
*/
|
|
199
230
|
function mergeProcedureHints(tasks, procedureNames) {
|
|
200
231
|
if (tasks.length === 0)
|
|
201
232
|
return;
|
|
@@ -204,6 +235,13 @@ function mergeProcedureHints(tasks, procedureNames) {
|
|
|
204
235
|
task.description += `\n${hint}`;
|
|
205
236
|
}
|
|
206
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* 基于依赖关系构建执行顺序和并行分组。
|
|
240
|
+
* 使用拓扑排序确定执行顺序,无依赖或依赖已满足的任务归入同一并行组。
|
|
241
|
+
* @param subTasks - 子任务列表
|
|
242
|
+
* @param _affectedRepos - 受影响仓库(预留参数)
|
|
243
|
+
* @returns 拓扑排序后的执行顺序和并行分组
|
|
244
|
+
*/
|
|
207
245
|
function buildExecutionOrder(subTasks, _affectedRepos) {
|
|
208
246
|
const visited = new Set();
|
|
209
247
|
const visiting = new Set();
|
|
@@ -213,7 +251,7 @@ function buildExecutionOrder(subTasks, _affectedRepos) {
|
|
|
213
251
|
if (visited.has(id))
|
|
214
252
|
return;
|
|
215
253
|
if (visiting.has(id))
|
|
216
|
-
return; //
|
|
254
|
+
return; // 检测到循环依赖 — 跳过该边避免死循环
|
|
217
255
|
visiting.add(id);
|
|
218
256
|
const task = taskMap.get(id);
|
|
219
257
|
if (task) {
|
|
@@ -235,9 +273,8 @@ function buildExecutionOrder(subTasks, _affectedRepos) {
|
|
|
235
273
|
const depsReady = task.depends_on.every((d) => scheduled.has(d));
|
|
236
274
|
if (depsReady) {
|
|
237
275
|
const lastGroup = parallelGroups[parallelGroups.length - 1];
|
|
238
|
-
//
|
|
239
|
-
//
|
|
240
|
-
// This allows B(dep A) and C(dep A) to run in parallel after A completes.
|
|
276
|
+
// 任务可加入最后一个并行组的条件: 无依赖 或 所有依赖均不在最后一个并行组中
|
|
277
|
+
// (即依赖已在更早阶段完成)。这使得 B(依赖A) 和 C(依赖A) 可在 A 完成后并行执行。
|
|
241
278
|
const hasNoDeps = task.depends_on.length === 0;
|
|
242
279
|
const noDepsInLastGroup = !task.depends_on.some((d) => lastGroup.includes(d));
|
|
243
280
|
const canParallel = lastGroup && (hasNoDeps || noDepsInLastGroup);
|
|
@@ -252,11 +289,21 @@ function buildExecutionOrder(subTasks, _affectedRepos) {
|
|
|
252
289
|
}
|
|
253
290
|
return { order, parallelGroups };
|
|
254
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* 从意图文本中提取关键词,用于知识库查询。
|
|
294
|
+
* @param intent - 意图文本
|
|
295
|
+
* @returns 关键词数组(过滤长度不足 2 的词)
|
|
296
|
+
*/
|
|
255
297
|
function extractKeywords(intent) {
|
|
256
298
|
return intent
|
|
257
299
|
.split(/[\s,,、::]+/)
|
|
258
300
|
.filter((w) => w.length >= 2);
|
|
259
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* 基于意图关键词推断子任务复杂度。
|
|
304
|
+
* @param intent - 意图文本
|
|
305
|
+
* @returns 复杂度: "low" / "medium" / "high"
|
|
306
|
+
*/
|
|
260
307
|
function inferComplexity(intent) {
|
|
261
308
|
if (/加.*查询|改.*名称|修.*typo/.test(intent))
|
|
262
309
|
return "low";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_planner.js","sourceRoot":"","sources":["../../src/engine/task_planner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"task_planner.js","sourceRoot":"","sources":["../../src/engine/task_planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { ProjectConfig, TeamStatusResult } from "../types.js";
|
|
2
2
|
import type { GitOperations } from "./git_deps.js";
|
|
3
3
|
import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
|
|
4
|
+
/**
|
|
5
|
+
* 团队态势感知模块 — 采集团队活动信息、成员工作负载、过期分支和知识更新。
|
|
6
|
+
* 基于 Git 日志和知识索引聚合团队协作状态,帮助了解项目整体活跃度。
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 团队态势感知的输入参数。
|
|
10
|
+
* @property projectPath - 项目根目录路径
|
|
11
|
+
* @property config - 项目配置
|
|
12
|
+
* @property since - 可选的起始日期(ISO 格式),不传则默认近 7 天
|
|
13
|
+
* @property gitOps - Git 操作封装
|
|
14
|
+
* @property knowledgeIndex - 可选的知识索引管理器,用于获取知识更新记录
|
|
15
|
+
*/
|
|
4
16
|
export interface TeamAwarenessInput {
|
|
5
17
|
projectPath: string;
|
|
6
18
|
config: ProjectConfig;
|
|
@@ -8,5 +20,10 @@ export interface TeamAwarenessInput {
|
|
|
8
20
|
gitOps: GitOperations;
|
|
9
21
|
knowledgeIndex?: KnowledgeIndexManager;
|
|
10
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* 获取完整的团队态势信息,包括活动流、成员工作负载、过期分支和知识更新。
|
|
25
|
+
* @param input - 团队态势感知输入参数
|
|
26
|
+
* @returns 团队状态结果,包含活动流、成员工作量、过期分支、知识更新和中文摘要
|
|
27
|
+
*/
|
|
11
28
|
export declare function getTeamStatus(input: TeamAwarenessInput): Promise<TeamStatusResult>;
|
|
12
29
|
//# sourceMappingURL=team_awareness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team_awareness.d.ts","sourceRoot":"","sources":["../../src/engine/team_awareness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"team_awareness.d.ts","sourceRoot":"","sources":["../../src/engine/team_awareness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0GxF"}
|