@haoyiyin/workflow 0.2.10 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agents/contracts/implementer.d.ts +29 -0
- package/dist/src/agents/contracts/implementer.d.ts.map +1 -0
- package/dist/src/agents/contracts/implementer.js +94 -0
- package/dist/src/agents/contracts/implementer.js.map +1 -0
- package/dist/src/agents/contracts/index.d.ts +11 -0
- package/dist/src/agents/contracts/index.d.ts.map +1 -0
- package/dist/src/agents/contracts/index.js +11 -0
- package/dist/src/agents/contracts/index.js.map +1 -0
- package/dist/src/agents/contracts/planner.d.ts +25 -0
- package/dist/src/agents/contracts/planner.d.ts.map +1 -0
- package/dist/src/agents/contracts/planner.js +107 -0
- package/dist/src/agents/contracts/planner.js.map +1 -0
- package/dist/src/agents/contracts/router.d.ts +24 -0
- package/dist/src/agents/contracts/router.d.ts.map +1 -0
- package/dist/src/agents/contracts/router.js +137 -0
- package/dist/src/agents/contracts/router.js.map +1 -0
- package/dist/src/agents/contracts/verifier.d.ts +27 -0
- package/dist/src/agents/contracts/verifier.d.ts.map +1 -0
- package/dist/src/agents/contracts/verifier.js +115 -0
- package/dist/src/agents/contracts/verifier.js.map +1 -0
- package/dist/src/agents/dispatcher.d.ts +94 -51
- package/dist/src/agents/dispatcher.d.ts.map +1 -1
- package/dist/src/agents/dispatcher.js +207 -164
- package/dist/src/agents/dispatcher.js.map +1 -1
- package/dist/src/persistence/index.d.ts +4 -2
- package/dist/src/persistence/index.d.ts.map +1 -1
- package/dist/src/persistence/index.js +4 -1
- package/dist/src/persistence/index.js.map +1 -1
- package/dist/src/persistence/plan-md.d.ts +3 -2
- package/dist/src/persistence/plan-md.d.ts.map +1 -1
- package/dist/src/persistence/plan-md.js +47 -15
- package/dist/src/persistence/plan-md.js.map +1 -1
- package/dist/src/persistence/state-md.d.ts +2 -0
- package/dist/src/persistence/state-md.d.ts.map +1 -1
- package/dist/src/persistence/state-md.js +40 -22
- package/dist/src/persistence/state-md.js.map +1 -1
- package/dist/src/persistence/types.d.ts +35 -39
- package/dist/src/persistence/types.d.ts.map +1 -1
- package/dist/src/router/namespace/core/intent-router.d.ts +24 -0
- package/dist/src/router/namespace/core/intent-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/intent-router.js +190 -0
- package/dist/src/router/namespace/core/intent-router.js.map +1 -0
- package/dist/src/router/namespace/core/lifecycle-router.d.ts +28 -0
- package/dist/src/router/namespace/core/lifecycle-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/lifecycle-router.js +132 -0
- package/dist/src/router/namespace/core/lifecycle-router.js.map +1 -0
- package/dist/src/router/namespace/core/state-router.d.ts +32 -0
- package/dist/src/router/namespace/core/state-router.d.ts.map +1 -0
- package/dist/src/router/namespace/core/state-router.js +157 -0
- package/dist/src/router/namespace/core/state-router.js.map +1 -0
- package/dist/src/router/namespace/domain/code-router.d.ts +26 -0
- package/dist/src/router/namespace/domain/code-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/code-router.js +171 -0
- package/dist/src/router/namespace/domain/code-router.js.map +1 -0
- package/dist/src/router/namespace/domain/debug-router.d.ts +25 -0
- package/dist/src/router/namespace/domain/debug-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/debug-router.js +139 -0
- package/dist/src/router/namespace/domain/debug-router.js.map +1 -0
- package/dist/src/router/namespace/domain/plan-router.d.ts +29 -0
- package/dist/src/router/namespace/domain/plan-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/plan-router.js +160 -0
- package/dist/src/router/namespace/domain/plan-router.js.map +1 -0
- package/dist/src/router/namespace/domain/review-router.d.ts +24 -0
- package/dist/src/router/namespace/domain/review-router.d.ts.map +1 -0
- package/dist/src/router/namespace/domain/review-router.js +116 -0
- package/dist/src/router/namespace/domain/review-router.js.map +1 -0
- package/dist/src/router/namespace/index.d.ts +19 -0
- package/dist/src/router/namespace/index.d.ts.map +1 -0
- package/dist/src/router/namespace/index.js +22 -0
- package/dist/src/router/namespace/index.js.map +1 -0
- package/dist/src/router/namespace/registry.d.ts +67 -0
- package/dist/src/router/namespace/registry.d.ts.map +1 -0
- package/dist/src/router/namespace/registry.js +197 -0
- package/dist/src/router/namespace/registry.js.map +1 -0
- package/dist/src/router/namespace/types.d.ts +124 -0
- package/dist/src/router/namespace/types.d.ts.map +1 -0
- package/dist/src/router/namespace/types.js +20 -0
- package/dist/src/router/namespace/types.js.map +1 -0
- package/dist/src/router/namespace/utility/fallback-router.d.ts +28 -0
- package/dist/src/router/namespace/utility/fallback-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/fallback-router.js +88 -0
- package/dist/src/router/namespace/utility/fallback-router.js.map +1 -0
- package/dist/src/router/namespace/utility/quick-task-router.d.ts +28 -0
- package/dist/src/router/namespace/utility/quick-task-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/quick-task-router.js +99 -0
- package/dist/src/router/namespace/utility/quick-task-router.js.map +1 -0
- package/dist/src/router/namespace/utility/research-router.d.ts +24 -0
- package/dist/src/router/namespace/utility/research-router.d.ts.map +1 -0
- package/dist/src/router/namespace/utility/research-router.js +84 -0
- package/dist/src/router/namespace/utility/research-router.js.map +1 -0
- package/dist/src/skills/agents-md/index.js +2 -2
- package/dist/src/skills/agents-md/index.js.map +1 -1
- package/dist/src/skills/execute-plan/index.d.ts +45 -65
- package/dist/src/skills/execute-plan/index.d.ts.map +1 -1
- package/dist/src/skills/execute-plan/index.js +325 -551
- package/dist/src/skills/execute-plan/index.js.map +1 -1
- package/dist/src/skills/index.d.ts +1 -0
- package/dist/src/skills/index.d.ts.map +1 -1
- package/dist/src/skills/index.js +1 -0
- package/dist/src/skills/index.js.map +1 -1
- package/dist/src/skills/quick-task/index.d.ts +4 -4
- package/dist/src/skills/quick-task/index.js +1 -1
- package/dist/src/skills/quick-task/index.js.map +1 -1
- package/dist/src/skills/review-diff/index.d.ts +6 -6
- package/dist/src/skills/review-diff/index.js +1 -1
- package/dist/src/skills/review-diff/index.js.map +1 -1
- package/dist/src/skills/router/index.d.ts +101 -0
- package/dist/src/skills/router/index.d.ts.map +1 -0
- package/dist/src/skills/router/index.js +450 -0
- package/dist/src/skills/router/index.js.map +1 -0
- package/dist/src/skills/router/types.d.ts +79 -0
- package/dist/src/skills/router/types.d.ts.map +1 -0
- package/dist/src/skills/router/types.js +8 -0
- package/dist/src/skills/router/types.js.map +1 -0
- package/dist/src/skills/systematic-debugging/index.js +1 -1
- package/dist/src/skills/systematic-debugging/index.js.map +1 -1
- package/dist/src/skills/tdd/index.d.ts +14 -14
- package/dist/src/skills/tdd/index.js +1 -1
- package/dist/src/skills/tdd/index.js.map +1 -1
- package/dist/src/skills/to-plan/index-enhanced.d.ts +4 -4
- package/dist/src/skills/to-plan/index-enhanced.d.ts.map +1 -1
- package/dist/src/skills/to-plan/index-enhanced.js +3 -5
- package/dist/src/skills/to-plan/index-enhanced.js.map +1 -1
- package/dist/src/skills/to-plan/index.d.ts +24 -91
- package/dist/src/skills/to-plan/index.d.ts.map +1 -1
- package/dist/src/skills/to-plan/index.js +214 -409
- package/dist/src/skills/to-plan/index.js.map +1 -1
- package/package.json +3 -5
- package/src/agents/contracts/implementer.ts +122 -0
- package/src/agents/contracts/index.ts +27 -0
- package/src/agents/contracts/planner.ts +129 -0
- package/src/agents/contracts/router.ts +168 -0
- package/src/agents/contracts/verifier.ts +137 -0
- package/src/agents/dispatcher.ts +387 -362
- package/src/persistence/index.ts +10 -4
- package/src/persistence/plan-md.ts +52 -18
- package/src/persistence/state-md.ts +45 -23
- package/src/persistence/types.ts +37 -40
- package/src/router/namespace/README.md +127 -0
- package/src/router/namespace/core/intent-router.ts +221 -0
- package/src/router/namespace/core/lifecycle-router.ts +156 -0
- package/src/router/namespace/core/state-router.ts +192 -0
- package/src/router/namespace/domain/code-router.ts +202 -0
- package/src/router/namespace/domain/debug-router.ts +167 -0
- package/src/router/namespace/domain/plan-router.ts +196 -0
- package/src/router/namespace/domain/review-router.ts +142 -0
- package/src/router/namespace/index.ts +84 -0
- package/src/router/namespace/registry.ts +242 -0
- package/src/router/namespace/types.ts +182 -0
- package/src/router/namespace/utility/fallback-router.ts +107 -0
- package/src/router/namespace/utility/quick-task-router.ts +121 -0
- package/src/router/namespace/utility/research-router.ts +105 -0
- package/src/skills/agents-md/index.ts +2 -2
- package/src/skills/execute-plan/index.ts +419 -673
- package/src/skills/index.ts +1 -0
- package/src/skills/quick-task/index.ts +1 -1
- package/src/skills/review-diff/index.ts +1 -1
- package/src/skills/router/SKILL.md +181 -0
- package/src/skills/router/index.ts +577 -0
- package/src/skills/router/types.ts +90 -0
- package/src/skills/systematic-debugging/index.ts +1 -1
- package/src/skills/tdd/index.ts +1 -1
- package/src/skills/to-plan/index-enhanced.ts +3 -5
- package/src/skills/to-plan/index.ts +231 -502
|
@@ -15,8 +15,16 @@ export class PlanMdManager {
|
|
|
15
15
|
await fs.writeFile(this.planPath, content, 'utf-8');
|
|
16
16
|
}
|
|
17
17
|
async readPlan() {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
try {
|
|
19
|
+
const content = await fs.readFile(this.planPath, 'utf-8');
|
|
20
|
+
return this.parsePlan(content);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error.code === 'ENOENT') {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
20
28
|
}
|
|
21
29
|
async updateTaskStatus(taskId, status) {
|
|
22
30
|
const content = await fs.readFile(this.planPath, 'utf-8');
|
|
@@ -24,14 +32,35 @@ export class PlanMdManager {
|
|
|
24
32
|
const updated = content.replace(new RegExp(`- \\[.] ${taskId}:`), `- [${statusChar}] ${taskId}:`);
|
|
25
33
|
await fs.writeFile(this.planPath, updated, 'utf-8');
|
|
26
34
|
}
|
|
35
|
+
async getNextPendingWave() {
|
|
36
|
+
const plan = await this.readPlan();
|
|
37
|
+
if (!plan) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
// Find first wave with pending tasks
|
|
41
|
+
for (const wave of plan.waves) {
|
|
42
|
+
const hasPendingTask = wave.tasks.some(task => task.status === 'pending');
|
|
43
|
+
if (hasPendingTask) {
|
|
44
|
+
return wave;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
27
49
|
generatePlanMarkdown(plan) {
|
|
50
|
+
const getStatusChar = (status) => {
|
|
51
|
+
if (status === 'completed')
|
|
52
|
+
return 'x';
|
|
53
|
+
if (status === 'in_progress')
|
|
54
|
+
return '~';
|
|
55
|
+
return ' ';
|
|
56
|
+
};
|
|
28
57
|
return `# Execution Plan
|
|
29
58
|
|
|
30
59
|
## Goal
|
|
31
60
|
${plan.goal}
|
|
32
61
|
|
|
33
62
|
## Tasks
|
|
34
|
-
${plan.tasks.map(t => `- [
|
|
63
|
+
${plan.tasks.map(t => `- [${getStatusChar(t.status)}] ${t.id}: ${t.description} (${t.estimatedComplexity})`).join('\n')}
|
|
35
64
|
|
|
36
65
|
## Dependencies
|
|
37
66
|
${Object.entries(plan.dependencies).length > 0
|
|
@@ -39,7 +68,7 @@ ${Object.entries(plan.dependencies).length > 0
|
|
|
39
68
|
: '- No dependencies'}
|
|
40
69
|
|
|
41
70
|
## Waves
|
|
42
|
-
${plan.waves.map(w => `- ${w.id}: ${w.tasks.join(', ')}`).join('\n')}
|
|
71
|
+
${plan.waves.map(w => `- ${w.id}: ${w.tasks.map(t => t.id).join(', ')}`).join('\n')}
|
|
43
72
|
|
|
44
73
|
## Verification Criteria
|
|
45
74
|
${plan.verificationCriteria.map(c => `- ${c}`).join('\n')}
|
|
@@ -48,9 +77,6 @@ ${plan.verificationCriteria.map(c => `- ${c}`).join('\n')}
|
|
|
48
77
|
- Total Tasks: ${plan.tasks.length}
|
|
49
78
|
- Parallel Waves: ${plan.waves.length}
|
|
50
79
|
- Estimated Duration: ${plan.estimatedDuration}ms
|
|
51
|
-
|
|
52
|
-
## Rationale
|
|
53
|
-
${plan.rationale}
|
|
54
80
|
`;
|
|
55
81
|
}
|
|
56
82
|
parsePlan(content) {
|
|
@@ -60,18 +86,21 @@ ${plan.rationale}
|
|
|
60
86
|
const wavesMatch = content.match(/## Waves\n([\s\S]*?)(?=\n## |$)/);
|
|
61
87
|
const criteriaMatch = content.match(/## Verification Criteria\n([\s\S]*?)(?=\n## |$)/);
|
|
62
88
|
const durationMatch = content.match(/- Estimated Duration: (\d+)/);
|
|
63
|
-
const rationaleMatch = content.match(/## Rationale\n([\s\S]*?)(?=\n## |$)/);
|
|
64
89
|
// Parse tasks
|
|
65
90
|
const tasks = [];
|
|
66
91
|
if (tasksMatch) {
|
|
67
92
|
const taskLines = tasksMatch[1].split('\n').filter(l => l.trim().startsWith('- ['));
|
|
68
93
|
for (const line of taskLines) {
|
|
69
|
-
const match = line.match(/- \[
|
|
94
|
+
const match = line.match(/- \[(.)\]\s+(\w+):\s+(.+)\s+\((\w+)\)/);
|
|
70
95
|
if (match) {
|
|
96
|
+
const statusChar = match[1];
|
|
97
|
+
const status = statusChar === 'x' ? 'completed' : statusChar === '~' ? 'in_progress' : 'pending';
|
|
71
98
|
tasks.push({
|
|
72
|
-
id: match[
|
|
73
|
-
description: match[
|
|
74
|
-
|
|
99
|
+
id: match[2],
|
|
100
|
+
description: match[3],
|
|
101
|
+
status,
|
|
102
|
+
dependencies: [],
|
|
103
|
+
estimatedComplexity: match[4]
|
|
75
104
|
});
|
|
76
105
|
}
|
|
77
106
|
}
|
|
@@ -87,6 +116,8 @@ ${plan.rationale}
|
|
|
87
116
|
}
|
|
88
117
|
}
|
|
89
118
|
}
|
|
119
|
+
// Build task map for wave parsing
|
|
120
|
+
const taskMap = new Map(tasks.map(t => [t.id, t]));
|
|
90
121
|
// Parse waves
|
|
91
122
|
const waves = [];
|
|
92
123
|
if (wavesMatch) {
|
|
@@ -94,9 +125,11 @@ ${plan.rationale}
|
|
|
94
125
|
for (const line of waveLines) {
|
|
95
126
|
const match = line.match(/- (\w+):\s*(.+)/);
|
|
96
127
|
if (match) {
|
|
128
|
+
const taskIds = match[2].split(',').map(s => s.trim()).filter(s => s);
|
|
129
|
+
const waveTasks = taskIds.map(id => taskMap.get(id)).filter((t) => t !== undefined);
|
|
97
130
|
waves.push({
|
|
98
131
|
id: match[1],
|
|
99
|
-
tasks:
|
|
132
|
+
tasks: waveTasks
|
|
100
133
|
});
|
|
101
134
|
}
|
|
102
135
|
}
|
|
@@ -117,8 +150,7 @@ ${plan.rationale}
|
|
|
117
150
|
dependencies,
|
|
118
151
|
waves,
|
|
119
152
|
verificationCriteria,
|
|
120
|
-
estimatedDuration: durationMatch ? parseInt(durationMatch[1], 10) : 0
|
|
121
|
-
rationale: rationaleMatch?.[1]?.trim() || ''
|
|
153
|
+
estimatedDuration: durationMatch ? parseInt(durationMatch[1], 10) : 0
|
|
122
154
|
};
|
|
123
155
|
}
|
|
124
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-md.js","sourceRoot":"","sources":["../../../src/persistence/plan-md.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,MAAM,OAAO,aAAa;IAChB,QAAQ,CAAQ;IAExB,YAAY,WAAmB,mBAAmB;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAU;QACxB,0BAA0B;QAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"plan-md.js","sourceRoot":"","sources":["../../../src/persistence/plan-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ export declare class StateMdManager implements IStateMdManager {
|
|
|
6
6
|
updatePhase(phase: WorkflowState['phase']): Promise<void>;
|
|
7
7
|
recordPlan(plan: Plan): Promise<void>;
|
|
8
8
|
recordTaskComplete(taskId: string, result: TaskResult): Promise<void>;
|
|
9
|
+
recordTaskFailed(taskId: string, error?: string): Promise<void>;
|
|
9
10
|
recordVerification(verification: VerificationResult): Promise<void>;
|
|
11
|
+
updateTokenUsage(tokens: number): Promise<void>;
|
|
10
12
|
readCurrentState(): Promise<WorkflowState>;
|
|
11
13
|
private formatPlanSection;
|
|
12
14
|
private formatVerificationSection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-md.d.ts","sourceRoot":"","sources":["../../../src/persistence/state-md.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,YAAY,CAAA;AAExH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,SAAS,CAAQ;gBAEb,SAAS,GAAE,MAA6B;IAI9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"state-md.d.ts","sourceRoot":"","sources":["../../../src/persistence/state-md.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,YAAY,CAAA;AAExH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,SAAS,CAAQ;gBAEb,SAAS,GAAE,MAA6B;IAI9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BvC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/D,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAKhD,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,UAAU;CAoCnB"}
|
|
@@ -31,10 +31,7 @@ ${goal}
|
|
|
31
31
|
<!-- Populated by verify phase -->
|
|
32
32
|
|
|
33
33
|
## Token Usage
|
|
34
|
-
|
|
35
|
-
- Execute Phase: 0
|
|
36
|
-
- Verify Phase: 0
|
|
37
|
-
- Total: 0 / 1000000
|
|
34
|
+
0
|
|
38
35
|
`;
|
|
39
36
|
await fs.writeFile(this.statePath, content, 'utf-8');
|
|
40
37
|
}
|
|
@@ -51,7 +48,13 @@ ${goal}
|
|
|
51
48
|
}
|
|
52
49
|
async recordTaskComplete(taskId, result) {
|
|
53
50
|
const content = await fs.readFile(this.statePath, 'utf-8');
|
|
54
|
-
const entry = `- [x] ${taskId}:
|
|
51
|
+
const entry = `- [x] ${taskId}: ✓ (${result.duration}ms) - ${result.notes || ''}\n`;
|
|
52
|
+
const updated = this.appendToSection(content, 'Completed Tasks', entry);
|
|
53
|
+
await fs.writeFile(this.statePath, updated, 'utf-8');
|
|
54
|
+
}
|
|
55
|
+
async recordTaskFailed(taskId, error) {
|
|
56
|
+
const content = await fs.readFile(this.statePath, 'utf-8');
|
|
57
|
+
const entry = `- [x] ${taskId}: ✗ FAILED${error ? ` - ${error}` : ''}\n`;
|
|
55
58
|
const updated = this.appendToSection(content, 'Completed Tasks', entry);
|
|
56
59
|
await fs.writeFile(this.statePath, updated, 'utf-8');
|
|
57
60
|
}
|
|
@@ -61,6 +64,11 @@ ${goal}
|
|
|
61
64
|
const updated = this.replaceSection(content, 'Verification Results', verificationSection);
|
|
62
65
|
await fs.writeFile(this.statePath, updated, 'utf-8');
|
|
63
66
|
}
|
|
67
|
+
async updateTokenUsage(tokens) {
|
|
68
|
+
const content = await fs.readFile(this.statePath, 'utf-8');
|
|
69
|
+
const updated = content.replace(/## Token Usage\n\d+/, `## Token Usage\n${tokens}`);
|
|
70
|
+
await fs.writeFile(this.statePath, updated, 'utf-8');
|
|
71
|
+
}
|
|
64
72
|
async readCurrentState() {
|
|
65
73
|
const content = await fs.readFile(this.statePath, 'utf-8');
|
|
66
74
|
return this.parseState(content);
|
|
@@ -74,7 +82,7 @@ ${plan.goal}
|
|
|
74
82
|
${plan.tasks.map(t => `- ${t.id}: ${t.description} (${t.estimatedComplexity})`).join('\n')}
|
|
75
83
|
|
|
76
84
|
### Waves (${plan.waves.length})
|
|
77
|
-
${plan.waves.map(w => `- ${w.id}: ${w.tasks.join(', ')}`).join('\n')}
|
|
85
|
+
${plan.waves.map(w => `- ${w.id}: ${w.tasks.map(t => t.id).join(', ')}`).join('\n')}
|
|
78
86
|
|
|
79
87
|
### Verification Criteria
|
|
80
88
|
${plan.verificationCriteria.map(c => `- ${c}`).join('\n')}
|
|
@@ -82,8 +90,8 @@ ${plan.verificationCriteria.map(c => `- ${c}`).join('\n')}
|
|
|
82
90
|
### Estimated Duration
|
|
83
91
|
${plan.estimatedDuration}ms
|
|
84
92
|
|
|
85
|
-
###
|
|
86
|
-
${plan.
|
|
93
|
+
### Dependencies
|
|
94
|
+
${Object.entries(plan.dependencies).map(([taskId, deps]) => `- ${taskId}: ${deps.join(', ') || 'none'}`).join('\n')}
|
|
87
95
|
`;
|
|
88
96
|
}
|
|
89
97
|
formatVerificationSection(verification) {
|
|
@@ -119,24 +127,34 @@ ${results.join('\n')}
|
|
|
119
127
|
const phaseMatch = content.match(/- Phase: (\w+)/);
|
|
120
128
|
const goalMatch = content.match(/## Goal\n(.+)/);
|
|
121
129
|
const startedMatch = content.match(/- Started: (.+)/);
|
|
122
|
-
const
|
|
130
|
+
const lastUpdatedMatch = content.match(/- Last Updated: (.+)/);
|
|
131
|
+
const tokenMatch = content.match(/## Token Usage\n(\d+)/);
|
|
123
132
|
const completedMatch = content.match(/## Completed Tasks\n([\s\S]*?)(?=\n## |$)/);
|
|
124
|
-
const completedTasks =
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
133
|
+
const completedTasks = [];
|
|
134
|
+
const failedTasks = [];
|
|
135
|
+
if (completedMatch) {
|
|
136
|
+
const lines = completedMatch[1].split('\n').filter(l => l.trim().startsWith('- [x]'));
|
|
137
|
+
for (const line of lines) {
|
|
138
|
+
const taskIdMatch = line.match(/- \[x\] ([^:]+):/);
|
|
139
|
+
if (taskIdMatch) {
|
|
140
|
+
if (line.includes('✗ FAILED')) {
|
|
141
|
+
failedTasks.push(taskIdMatch[1]);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
completedTasks.push(taskIdMatch[1]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
128
149
|
return {
|
|
129
150
|
goal: goalMatch?.[1] || '',
|
|
130
151
|
phase: phaseMatch?.[1] || 'planning',
|
|
131
|
-
|
|
132
|
-
lastUpdated: new Date().toISOString(),
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
limit: 1000000,
|
|
138
|
-
percentage: 0
|
|
139
|
-
}
|
|
152
|
+
startedAt: startedMatch?.[1] || new Date().toISOString(),
|
|
153
|
+
lastUpdated: lastUpdatedMatch?.[1] || new Date().toISOString(),
|
|
154
|
+
completedTasks,
|
|
155
|
+
failedTasks,
|
|
156
|
+
totalTasks: 0,
|
|
157
|
+
tokenUsage: { used: tokenMatch ? parseInt(tokenMatch[1], 10) : 0, limit: 1000000, percentage: 0 }
|
|
140
158
|
};
|
|
141
159
|
}
|
|
142
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-md.js","sourceRoot":"","sources":["../../../src/persistence/state-md.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,MAAM,OAAO,cAAc;IACjB,SAAS,CAAQ;IAEzB,YAAY,YAAoB,oBAAoB;QAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,0BAA0B;QAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE5D,MAAM,OAAO,GAAG;;;EAGlB,IAAI;;;;aAIO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;kBACnB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"state-md.js","sourceRoot":"","sources":["../../../src/persistence/state-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,82 +4,78 @@
|
|
|
4
4
|
export interface Task {
|
|
5
5
|
id: string;
|
|
6
6
|
description: string;
|
|
7
|
+
status: 'pending' | 'in_progress' | 'completed' | 'failed';
|
|
8
|
+
dependencies: string[];
|
|
7
9
|
estimatedComplexity: 'low' | 'medium' | 'high';
|
|
8
10
|
relatedFiles?: string[];
|
|
9
|
-
verificationCriteria?: string[];
|
|
10
11
|
}
|
|
11
12
|
export interface Wave {
|
|
12
13
|
id: string;
|
|
13
|
-
tasks:
|
|
14
|
+
tasks: Task[];
|
|
14
15
|
}
|
|
15
16
|
export interface Plan {
|
|
16
17
|
goal: string;
|
|
17
18
|
tasks: Task[];
|
|
18
|
-
dependencies: Record<string, string[]>;
|
|
19
19
|
waves: Wave[];
|
|
20
|
+
dependencies: Record<string, string[]>;
|
|
20
21
|
verificationCriteria: string[];
|
|
21
22
|
estimatedDuration: number;
|
|
22
|
-
rationale: string;
|
|
23
|
-
}
|
|
24
|
-
export interface TaskResult {
|
|
25
|
-
taskId: string;
|
|
26
|
-
success: boolean;
|
|
27
|
-
filesModified: string[];
|
|
28
|
-
testsAdded: string[];
|
|
29
|
-
duration: number;
|
|
30
|
-
notes: string;
|
|
31
|
-
error?: string;
|
|
32
|
-
phases?: {
|
|
33
|
-
phase: string;
|
|
34
|
-
status: string;
|
|
35
|
-
command?: string;
|
|
36
|
-
evidence?: string;
|
|
37
|
-
}[];
|
|
38
|
-
worktreePath?: string;
|
|
39
|
-
branchName?: string;
|
|
40
|
-
}
|
|
41
|
-
export interface VerificationResult {
|
|
42
|
-
success: boolean;
|
|
43
|
-
dimensions: {
|
|
44
|
-
goals?: DimensionResult;
|
|
45
|
-
quality?: DimensionResult;
|
|
46
|
-
tests?: DimensionResult;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export interface DimensionResult {
|
|
50
|
-
success: boolean;
|
|
51
|
-
details?: unknown;
|
|
52
|
-
evidence?: string[];
|
|
53
|
-
gaps?: string[];
|
|
54
23
|
}
|
|
55
24
|
export interface WorkflowState {
|
|
56
25
|
goal: string;
|
|
57
|
-
phase: 'planning' | 'executing' | 'verifying' | '
|
|
58
|
-
|
|
26
|
+
phase: 'discovery' | 'planning' | 'executing' | 'verifying' | 'completed' | 'failed' | 'idle';
|
|
27
|
+
startedAt: string;
|
|
59
28
|
lastUpdated: string;
|
|
29
|
+
completedTasks: string[];
|
|
30
|
+
failedTasks: string[];
|
|
60
31
|
totalTasks: number;
|
|
61
|
-
completedTasks: TaskResult[];
|
|
62
32
|
tokenUsage: {
|
|
63
33
|
used: number;
|
|
64
34
|
limit: number;
|
|
65
35
|
percentage: number;
|
|
66
36
|
};
|
|
67
37
|
}
|
|
38
|
+
export interface TaskResult {
|
|
39
|
+
taskId: string;
|
|
40
|
+
success: boolean;
|
|
41
|
+
duration: number;
|
|
42
|
+
notes: string;
|
|
43
|
+
filesModified?: string[];
|
|
44
|
+
testsAdded?: string[];
|
|
45
|
+
error?: string;
|
|
46
|
+
}
|
|
68
47
|
export interface StateMdManager {
|
|
69
48
|
initialize(goal: string): Promise<void>;
|
|
70
49
|
updatePhase(phase: WorkflowState['phase']): Promise<void>;
|
|
71
50
|
recordPlan(plan: Plan): Promise<void>;
|
|
72
51
|
recordTaskComplete(taskId: string, result: TaskResult): Promise<void>;
|
|
52
|
+
recordTaskFailed(taskId: string, error?: string): Promise<void>;
|
|
73
53
|
recordVerification(verification: VerificationResult): Promise<void>;
|
|
54
|
+
updateTokenUsage(tokens: number): Promise<void>;
|
|
74
55
|
readCurrentState(): Promise<WorkflowState>;
|
|
75
56
|
}
|
|
76
57
|
export interface PlanMdManager {
|
|
77
58
|
writePlan(plan: Plan): Promise<void>;
|
|
78
|
-
readPlan(): Promise<Plan>;
|
|
59
|
+
readPlan(): Promise<Plan | null>;
|
|
79
60
|
updateTaskStatus(taskId: string, status: 'pending' | 'in_progress' | 'complete'): Promise<void>;
|
|
61
|
+
getNextPendingWave(): Promise<Wave | null>;
|
|
80
62
|
}
|
|
81
63
|
export interface PersistenceManager {
|
|
82
64
|
state: StateMdManager;
|
|
83
65
|
plan: PlanMdManager;
|
|
84
66
|
}
|
|
67
|
+
export interface VerificationResult {
|
|
68
|
+
success: boolean;
|
|
69
|
+
dimensions: {
|
|
70
|
+
goals?: DimensionResult;
|
|
71
|
+
quality?: DimensionResult;
|
|
72
|
+
tests?: DimensionResult;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export interface DimensionResult {
|
|
76
|
+
success: boolean;
|
|
77
|
+
details?: unknown;
|
|
78
|
+
evidence?: string[];
|
|
79
|
+
gaps?: string[];
|
|
80
|
+
}
|
|
85
81
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/persistence/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/persistence/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent Router - Core Layer
|
|
3
|
+
*
|
|
4
|
+
* 基于用户意图的分类进行路由决策
|
|
5
|
+
* 使用关键词和模式匹配提取意图
|
|
6
|
+
*/
|
|
7
|
+
import type { NamespaceRouter, RoutingContext, RouteDecision, NamespaceHealth } from '../types.js';
|
|
8
|
+
export declare class IntentRouter implements NamespaceRouter {
|
|
9
|
+
readonly name = "intent";
|
|
10
|
+
readonly layer: "core";
|
|
11
|
+
readonly priority = 80;
|
|
12
|
+
readonly patterns: RegExp[];
|
|
13
|
+
private routeCount;
|
|
14
|
+
private successCount;
|
|
15
|
+
private totalLatency;
|
|
16
|
+
canRoute(context: RoutingContext): Promise<boolean>;
|
|
17
|
+
route(context: RoutingContext): Promise<RouteDecision>;
|
|
18
|
+
getSupportedSkills(): string[];
|
|
19
|
+
getHealth(): NamespaceHealth;
|
|
20
|
+
private successRate;
|
|
21
|
+
}
|
|
22
|
+
export declare const intentRouter: IntentRouter;
|
|
23
|
+
export default intentRouter;
|
|
24
|
+
//# sourceMappingURL=intent-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-router.d.ts","sourceRoot":"","sources":["../../../../../src/router/namespace/core/intent-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,aAAa,CAAA;AAgHpB,qBAAa,YAAa,YAAW,eAAe;IAClD,QAAQ,CAAC,IAAI,YAAW;IACxB,QAAQ,CAAC,KAAK,EAAG,MAAM,CAAS;IAChC,QAAQ,CAAC,QAAQ,MAAK;IACtB,QAAQ,CAAC,QAAQ,WAAqC;IAEtD,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,YAAY,CAAI;IAElB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAMnD,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA2D5D,kBAAkB,IAAI,MAAM,EAAE;IAI9B,SAAS,IAAI,eAAe;IAU5B,OAAO,CAAC,WAAW;CAGpB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAA;AAC9C,eAAe,YAAY,CAAA"}
|