@haoyiyin/workflow 0.2.11 → 0.3.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/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/pi-extension.d.ts +4 -3
- package/dist/src/pi-extension.d.ts.map +1 -1
- package/dist/src/pi-extension.js +36 -67
- package/dist/src/pi-extension.js.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/scripts/postinstall.js +42 -47
- 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/pi-extension.ts +38 -76
- 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 +81 -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
- package/dist/src/extension/classifier.d.ts +0 -18
- package/dist/src/extension/classifier.d.ts.map +0 -1
- package/dist/src/extension/classifier.js +0 -143
- package/dist/src/extension/classifier.js.map +0 -1
- package/src/extension/classifier.ts +0 -160
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fallback Router - Utility Layer
|
|
3
|
+
*
|
|
4
|
+
* 当其他所有路由都无法确定时的最终降级方案
|
|
5
|
+
* 总是返回一个有效的路由决策
|
|
6
|
+
*/
|
|
7
|
+
export class FallbackRouter {
|
|
8
|
+
name = 'fallback';
|
|
9
|
+
layer = 'utility';
|
|
10
|
+
priority = 0; // 最低优先级
|
|
11
|
+
patterns = [/.*/s]; // 匹配所有
|
|
12
|
+
routeCount = 0;
|
|
13
|
+
successCount = 0;
|
|
14
|
+
totalLatency = 0;
|
|
15
|
+
async canRoute(context) {
|
|
16
|
+
// 总是可以路由
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
async route(context) {
|
|
20
|
+
const startTime = Date.now();
|
|
21
|
+
const { state, request } = context;
|
|
22
|
+
this.routeCount++;
|
|
23
|
+
this.totalLatency += Date.now() - startTime;
|
|
24
|
+
this.successCount++;
|
|
25
|
+
// 基于状态选择最合适的降级技能
|
|
26
|
+
const fallbackSkill = this.selectFallbackSkill(state, request.text);
|
|
27
|
+
return {
|
|
28
|
+
skill: fallbackSkill,
|
|
29
|
+
confidence: 0.4, // 低置信度
|
|
30
|
+
reasoning: `Fallback decision: ambiguous request, defaulting to ${fallbackSkill} based on phase ${state.phase}`,
|
|
31
|
+
namespace: this.name,
|
|
32
|
+
alternatives: [
|
|
33
|
+
{ skill: 'quick-task', confidence: 0.3, reasoning: 'Quick approach' },
|
|
34
|
+
{ skill: 'to-plan', confidence: 0.2, reasoning: 'Conservative approach' },
|
|
35
|
+
],
|
|
36
|
+
metadata: {
|
|
37
|
+
layer: this.layer,
|
|
38
|
+
processingTime: Date.now() - startTime,
|
|
39
|
+
hops: 1,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 选择最合适的降级技能
|
|
45
|
+
*/
|
|
46
|
+
selectFallbackSkill(state, requestText) {
|
|
47
|
+
// 基于生命周期阶段选择
|
|
48
|
+
switch (state.phase) {
|
|
49
|
+
case 'planning':
|
|
50
|
+
return 'to-plan';
|
|
51
|
+
case 'executing':
|
|
52
|
+
return 'execute-plan';
|
|
53
|
+
case 'verifying':
|
|
54
|
+
return 'review-diff';
|
|
55
|
+
case 'completed':
|
|
56
|
+
return 'quick-task';
|
|
57
|
+
case 'failed':
|
|
58
|
+
return 'systematic-debugging';
|
|
59
|
+
default:
|
|
60
|
+
// 基于请求内容启发式选择
|
|
61
|
+
if (requestText.length > 100) {
|
|
62
|
+
return 'to-plan'; // 复杂请求需要规划
|
|
63
|
+
}
|
|
64
|
+
if (/fix|error|bug|fail/i.test(requestText)) {
|
|
65
|
+
return 'systematic-debugging'; // 可能是错误
|
|
66
|
+
}
|
|
67
|
+
return 'quick-task'; // 默认快速任务
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
getSupportedSkills() {
|
|
71
|
+
return ['quick-task', 'to-plan', 'execute-plan', 'systematic-debugging', 'review-diff'];
|
|
72
|
+
}
|
|
73
|
+
getHealth() {
|
|
74
|
+
return {
|
|
75
|
+
name: this.name,
|
|
76
|
+
status: 'healthy', // fallback 总是健康
|
|
77
|
+
totalRoutes: this.routeCount,
|
|
78
|
+
successRate: this.successRate(),
|
|
79
|
+
avgLatency: this.routeCount > 0 ? this.totalLatency / this.routeCount : 0,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
successRate() {
|
|
83
|
+
return this.routeCount > 0 ? this.successCount / this.routeCount : 1.0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export const fallbackRouter = new FallbackRouter();
|
|
87
|
+
export default fallbackRouter;
|
|
88
|
+
//# sourceMappingURL=fallback-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-router.js","sourceRoot":"","sources":["../../../../../src/router/namespace/utility/fallback-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quick Task Router - Utility Layer
|
|
3
|
+
*
|
|
4
|
+
* 处理简单、快速的路由决策
|
|
5
|
+
* 低复杂度任务直接路由,无需复杂决策
|
|
6
|
+
*/
|
|
7
|
+
import type { NamespaceRouter, RoutingContext, RouteDecision, NamespaceHealth } from '../types.js';
|
|
8
|
+
export declare class QuickTaskRouter implements NamespaceRouter {
|
|
9
|
+
readonly name = "quick-task";
|
|
10
|
+
readonly layer: "utility";
|
|
11
|
+
readonly priority = 50;
|
|
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
|
+
/**
|
|
19
|
+
* 快速判断是否为简单任务
|
|
20
|
+
*/
|
|
21
|
+
private isQuickTask;
|
|
22
|
+
getSupportedSkills(): string[];
|
|
23
|
+
getHealth(): NamespaceHealth;
|
|
24
|
+
private successRate;
|
|
25
|
+
}
|
|
26
|
+
export declare const quickTaskRouter: QuickTaskRouter;
|
|
27
|
+
export default quickTaskRouter;
|
|
28
|
+
//# sourceMappingURL=quick-task-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-task-router.d.ts","sourceRoot":"","sources":["../../../../../src/router/namespace/utility/quick-task-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,aAAa,CAAA;AAEpB,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,KAAK,EAAG,SAAS,CAAS;IACnC,QAAQ,CAAC,QAAQ,MAAK;IACtB,QAAQ,CAAC,QAAQ,WAQhB;IAED,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;IAqB5D;;OAEG;IACH,OAAO,CAAC,WAAW;IAqCnB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,SAAS,IAAI,eAAe;IAU5B,OAAO,CAAC,WAAW;CAGpB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAA;AACpD,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quick Task Router - Utility Layer
|
|
3
|
+
*
|
|
4
|
+
* 处理简单、快速的路由决策
|
|
5
|
+
* 低复杂度任务直接路由,无需复杂决策
|
|
6
|
+
*/
|
|
7
|
+
export class QuickTaskRouter {
|
|
8
|
+
name = 'quick-task';
|
|
9
|
+
layer = 'utility';
|
|
10
|
+
priority = 50; // 较低优先级,作为 fallback
|
|
11
|
+
patterns = [
|
|
12
|
+
/fix|修复/i,
|
|
13
|
+
/typo|拼写/i,
|
|
14
|
+
/rename|重命名/i,
|
|
15
|
+
/update|更新.*(text|comment|doc)/i,
|
|
16
|
+
/small|小/i,
|
|
17
|
+
/tiny|微小/i,
|
|
18
|
+
/quick|快速/i,
|
|
19
|
+
];
|
|
20
|
+
routeCount = 0;
|
|
21
|
+
successCount = 0;
|
|
22
|
+
totalLatency = 0;
|
|
23
|
+
async canRoute(context) {
|
|
24
|
+
// 检查是否为简单任务
|
|
25
|
+
const text = context.request.text;
|
|
26
|
+
return this.isQuickTask(text);
|
|
27
|
+
}
|
|
28
|
+
async route(context) {
|
|
29
|
+
const startTime = Date.now();
|
|
30
|
+
this.routeCount++;
|
|
31
|
+
this.totalLatency += Date.now() - startTime;
|
|
32
|
+
this.successCount++;
|
|
33
|
+
return {
|
|
34
|
+
skill: 'quick-task',
|
|
35
|
+
confidence: 0.85,
|
|
36
|
+
reasoning: 'Quick task detected: simple change, fast execution',
|
|
37
|
+
namespace: this.name,
|
|
38
|
+
alternatives: [],
|
|
39
|
+
metadata: {
|
|
40
|
+
layer: this.layer,
|
|
41
|
+
processingTime: Date.now() - startTime,
|
|
42
|
+
hops: 1,
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 快速判断是否为简单任务
|
|
48
|
+
*/
|
|
49
|
+
isQuickTask(request) {
|
|
50
|
+
// 简单任务特征
|
|
51
|
+
const quickPatterns = [
|
|
52
|
+
/fix.*typo|修复.*拼写/i,
|
|
53
|
+
/rename.*to|重命名为/i,
|
|
54
|
+
/update.*comment|更新.*注释/i,
|
|
55
|
+
/^\s*fix\s+/i, // 以 "fix " 开头
|
|
56
|
+
/^\s*update\s+/i, // 以 "update " 开头
|
|
57
|
+
/^\s*change\s+/i, // 以 "change " 开头
|
|
58
|
+
/^\s*add\s+(a|the)\s+/i, // 添加单个东西
|
|
59
|
+
/^\s*remove\s+/i, // 移除
|
|
60
|
+
/^\s*delete\s+/i, // 删除
|
|
61
|
+
];
|
|
62
|
+
// 长度检查 - 短请求更可能是简单任务
|
|
63
|
+
if (request.length < 50) {
|
|
64
|
+
return quickPatterns.some((p) => p.test(request));
|
|
65
|
+
}
|
|
66
|
+
// 复杂任务特征(排除)
|
|
67
|
+
const complexPatterns = [
|
|
68
|
+
/implement|实现/i,
|
|
69
|
+
/architecture|架构/i,
|
|
70
|
+
/design|设计/i,
|
|
71
|
+
/refactor|重构/i,
|
|
72
|
+
/and|和.*then|然后/i,
|
|
73
|
+
/step|步骤/i,
|
|
74
|
+
/phase|阶段/i,
|
|
75
|
+
];
|
|
76
|
+
if (complexPatterns.some((p) => p.test(request))) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return quickPatterns.some((p) => p.test(request));
|
|
80
|
+
}
|
|
81
|
+
getSupportedSkills() {
|
|
82
|
+
return ['quick-task'];
|
|
83
|
+
}
|
|
84
|
+
getHealth() {
|
|
85
|
+
return {
|
|
86
|
+
name: this.name,
|
|
87
|
+
status: this.successRate() > 0.9 ? 'healthy' : 'degraded',
|
|
88
|
+
totalRoutes: this.routeCount,
|
|
89
|
+
successRate: this.successRate(),
|
|
90
|
+
avgLatency: this.routeCount > 0 ? this.totalLatency / this.routeCount : 0,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
successRate() {
|
|
94
|
+
return this.routeCount > 0 ? this.successCount / this.routeCount : 1.0;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export const quickTaskRouter = new QuickTaskRouter();
|
|
98
|
+
export default quickTaskRouter;
|
|
99
|
+
//# sourceMappingURL=quick-task-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-task-router.js","sourceRoot":"","sources":["../../../../../src/router/namespace/utility/quick-task-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research Router - Utility Layer
|
|
3
|
+
*
|
|
4
|
+
* 处理研究和探索相关的路由决策
|
|
5
|
+
*/
|
|
6
|
+
import type { NamespaceRouter, RoutingContext, RouteDecision, NamespaceHealth } from '../types.js';
|
|
7
|
+
export declare class ResearchRouter implements NamespaceRouter {
|
|
8
|
+
readonly name = "research";
|
|
9
|
+
readonly layer: "utility";
|
|
10
|
+
readonly priority = 45;
|
|
11
|
+
readonly patterns: RegExp[];
|
|
12
|
+
private routeCount;
|
|
13
|
+
private successCount;
|
|
14
|
+
private totalLatency;
|
|
15
|
+
canRoute(context: RoutingContext): Promise<boolean>;
|
|
16
|
+
route(context: RoutingContext): Promise<RouteDecision>;
|
|
17
|
+
private makeResearchDecision;
|
|
18
|
+
getSupportedSkills(): string[];
|
|
19
|
+
getHealth(): NamespaceHealth;
|
|
20
|
+
private successRate;
|
|
21
|
+
}
|
|
22
|
+
export declare const researchRouter: ResearchRouter;
|
|
23
|
+
export default researchRouter;
|
|
24
|
+
//# sourceMappingURL=research-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-router.d.ts","sourceRoot":"","sources":["../../../../../src/router/namespace/utility/research-router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,aAAa,CAAA;AAEpB,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,cAAa;IAC1B,QAAQ,CAAC,KAAK,EAAG,SAAS,CAAS;IACnC,QAAQ,CAAC,QAAQ,MAAK;IACtB,QAAQ,CAAC,QAAQ,WAShB;IAED,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;IAKnD,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAoB5D,OAAO,CAAC,oBAAoB;IA0B5B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,SAAS,IAAI,eAAe;IAU5B,OAAO,CAAC,WAAW;CAGpB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAA;AAClD,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research Router - Utility Layer
|
|
3
|
+
*
|
|
4
|
+
* 处理研究和探索相关的路由决策
|
|
5
|
+
*/
|
|
6
|
+
export class ResearchRouter {
|
|
7
|
+
name = 'research';
|
|
8
|
+
layer = 'utility';
|
|
9
|
+
priority = 45;
|
|
10
|
+
patterns = [
|
|
11
|
+
/research|研究/i,
|
|
12
|
+
/explore|探索/i,
|
|
13
|
+
/learn|学习/i,
|
|
14
|
+
/understand|理解/i,
|
|
15
|
+
/how.*work|如何.*工作/i,
|
|
16
|
+
/what is|什么是/i,
|
|
17
|
+
/compare|比较/i,
|
|
18
|
+
/analyze|分析/i,
|
|
19
|
+
];
|
|
20
|
+
routeCount = 0;
|
|
21
|
+
successCount = 0;
|
|
22
|
+
totalLatency = 0;
|
|
23
|
+
async canRoute(context) {
|
|
24
|
+
const text = context.request.text.toLowerCase();
|
|
25
|
+
return /research|研究|explore|探索|learn|学习|understand|理解|how.*work|如何.*工作|what is|什么是|compare|比较|analyze|分析/.test(text);
|
|
26
|
+
}
|
|
27
|
+
async route(context) {
|
|
28
|
+
const startTime = Date.now();
|
|
29
|
+
const decision = this.makeResearchDecision(context.request.text);
|
|
30
|
+
this.routeCount++;
|
|
31
|
+
this.totalLatency += Date.now() - startTime;
|
|
32
|
+
this.successCount++;
|
|
33
|
+
return {
|
|
34
|
+
...decision,
|
|
35
|
+
namespace: this.name,
|
|
36
|
+
metadata: {
|
|
37
|
+
layer: this.layer,
|
|
38
|
+
processingTime: Date.now() - startTime,
|
|
39
|
+
hops: 1,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
makeResearchDecision(requestText) {
|
|
44
|
+
// 研究请求通常不涉及代码修改
|
|
45
|
+
// 但如果后面跟着实现需求,应该路由到 to-plan
|
|
46
|
+
if (/research.*then|研究.*然后|explore.*implement/i.test(requestText)) {
|
|
47
|
+
return {
|
|
48
|
+
skill: 'to-plan',
|
|
49
|
+
confidence: 0.7,
|
|
50
|
+
reasoning: 'Research followed by implementation requires planning',
|
|
51
|
+
alternatives: [
|
|
52
|
+
{ skill: 'quick-task', confidence: 0.3, reasoning: 'Quick research only' },
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// 纯研究请求
|
|
57
|
+
return {
|
|
58
|
+
skill: 'quick-task', // 使用 quick-task 进行探索
|
|
59
|
+
confidence: 0.6,
|
|
60
|
+
reasoning: 'Research/exploration task',
|
|
61
|
+
alternatives: [
|
|
62
|
+
{ skill: 'to-plan', confidence: 0.4, reasoning: 'If research leads to implementation' },
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
getSupportedSkills() {
|
|
67
|
+
return ['quick-task', 'to-plan', 'research'];
|
|
68
|
+
}
|
|
69
|
+
getHealth() {
|
|
70
|
+
return {
|
|
71
|
+
name: this.name,
|
|
72
|
+
status: this.successRate() > 0.7 ? 'healthy' : 'degraded',
|
|
73
|
+
totalRoutes: this.routeCount,
|
|
74
|
+
successRate: this.successRate(),
|
|
75
|
+
avgLatency: this.routeCount > 0 ? this.totalLatency / this.routeCount : 0,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
successRate() {
|
|
79
|
+
return this.routeCount > 0 ? this.successCount / this.routeCount : 1.0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export const researchRouter = new ResearchRouter();
|
|
83
|
+
export default researchRouter;
|
|
84
|
+
//# sourceMappingURL=research-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-router.js","sourceRoot":"","sources":["../../../../../src/router/namespace/utility/research-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,13 @@ export class AgentsMdSkill extends Skill {
|
|
|
9
9
|
constructor() { super({ name: 'agents-md', description: 'Create/update agent instructions', requires: [], inputSchema: AgentsMdInputSchema }); }
|
|
10
10
|
async execute(input, context) {
|
|
11
11
|
const { config, logger } = context;
|
|
12
|
-
const dispatcher = createDispatcher(logger);
|
|
12
|
+
const dispatcher = createDispatcher({ logger });
|
|
13
13
|
const guard = createMainAgentGuard({}, logger);
|
|
14
14
|
const filename = `${input.type}.md`;
|
|
15
15
|
guard.activateEmbargo();
|
|
16
16
|
try {
|
|
17
17
|
const explore = await dispatcher.dispatch({ role: 'explorer', model: input.model || config.defaultModel }, { permissions: P, prompt: `Collect repo evidence: package.json, README, configs.`, owns: [], reads: ['package.json', 'README.md', filename] });
|
|
18
|
-
await dispatcher.dispatch({ role: 'implementer', model: input.model || '
|
|
18
|
+
await dispatcher.dispatch({ role: 'implementer', model: input.model || 'glm-5' }, { permissions: PRW, prompt: `${input.update ? 'Update' : 'Create'} ${filename}. Evidence: ${explore.output.slice(0, 3000)}. Include: Overview, Tech Stack, Commands, Conventions.`, owns: [filename], reads: [] });
|
|
19
19
|
return { filePath: filename, mode: input.update ? 'updated' : 'created', evidence: ['package.json'], rules: ['Overview'], assumptions: [], summary: `${filename} done` };
|
|
20
20
|
}
|
|
21
21
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/agents-md/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;AAC7G,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;AAE9G,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACzK,MAAM,OAAO,aAAc,SAAQ,KAAe;IAChD,gBAAgB,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,kCAAkC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,mBAA0B,EAAE,CAAC,CAAA,CAAC,CAAC;IACtJ,KAAK,CAAC,OAAO,CAAC,KAAU,EAAE,OAAqB;QAC7C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAClC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/agents-md/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Execute Plan Skill - Orchestrates plan execution with persistence integration
|
|
3
3
|
*
|
|
4
4
|
* Architecture: Orchestrator pattern
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
5
|
+
* - Reads PLAN.md from PlanMdManager
|
|
6
|
+
* - Reads/updates STATE.md for progress tracking
|
|
7
|
+
* - Executes waves sequentially, tasks within wave in parallel
|
|
8
|
+
* - Each task dispatches implementer subagent with fresh context
|
|
9
|
+
* - After each wave: updates STATE.md with completed tasks
|
|
10
|
+
* - After all waves: runs verification subagents (goals, quality, tests)
|
|
11
|
+
* - Updates final state based on verification results
|
|
10
12
|
*/
|
|
11
13
|
import { z } from 'zod';
|
|
12
14
|
import { Skill } from '../skill.js';
|
|
13
15
|
import type { SkillContext } from '../types.js';
|
|
14
16
|
declare const ExecuteInputSchema: z.ZodObject<{
|
|
15
|
-
plan: z.ZodAny;
|
|
16
|
-
waves: z.ZodArray<z.ZodAny, "many">;
|
|
17
|
-
skipVerify: z.ZodOptional<z.ZodBoolean>;
|
|
18
17
|
model: z.ZodOptional<z.ZodString>;
|
|
18
|
+
skipVerify: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
continueFromState: z.ZodOptional<z.ZodBoolean>;
|
|
19
20
|
}, "strip", z.ZodTypeAny, {
|
|
20
|
-
waves: any[];
|
|
21
21
|
model?: string | undefined;
|
|
22
|
-
plan?: any;
|
|
23
22
|
skipVerify?: boolean | undefined;
|
|
23
|
+
continueFromState?: boolean | undefined;
|
|
24
24
|
}, {
|
|
25
|
-
waves: any[];
|
|
26
25
|
model?: string | undefined;
|
|
27
|
-
plan?: any;
|
|
28
26
|
skipVerify?: boolean | undefined;
|
|
27
|
+
continueFromState?: boolean | undefined;
|
|
29
28
|
}>;
|
|
30
29
|
declare const ExecuteOutputSchema: z.ZodObject<{
|
|
31
30
|
success: z.ZodBoolean;
|
|
@@ -52,85 +51,66 @@ export declare class ExecutePlanSkill extends Skill<ExecuteInput, ExecuteOutput>
|
|
|
52
51
|
constructor();
|
|
53
52
|
execute(input: ExecuteInput, context: SkillContext): Promise<ExecuteOutput>;
|
|
54
53
|
/**
|
|
55
|
-
*
|
|
56
|
-
* Parallel execution with Promise.allSettled
|
|
57
|
-
*/
|
|
58
|
-
private executeWaveWithTDD;
|
|
59
|
-
/**
|
|
60
|
-
* Execute single task using TDD skill with task-level worktree isolation
|
|
61
|
-
* Each task gets its own worktree for true isolation
|
|
62
|
-
* Uses worktreeContract instead of worktree-start skill
|
|
63
|
-
*/
|
|
64
|
-
private executeTaskWithTDD;
|
|
65
|
-
/**
|
|
66
|
-
* Run verification using review-diff skill
|
|
67
|
-
* Returns structured verification result
|
|
54
|
+
* Find the next wave index based on completed tasks
|
|
68
55
|
*/
|
|
69
|
-
private
|
|
56
|
+
private findNextWaveIndex;
|
|
70
57
|
/**
|
|
71
|
-
*
|
|
58
|
+
* Execute a wave - tasks within wave run in parallel
|
|
59
|
+
* Each task dispatches an implementer subagent with fresh context
|
|
72
60
|
*/
|
|
73
|
-
private
|
|
61
|
+
private executeWave;
|
|
74
62
|
/**
|
|
75
|
-
*
|
|
63
|
+
* Execute a single task by dispatching implementer subagent
|
|
64
|
+
* Fresh context for each task with proper permissions
|
|
76
65
|
*/
|
|
77
|
-
private
|
|
66
|
+
private executeTask;
|
|
78
67
|
/**
|
|
79
|
-
*
|
|
68
|
+
* Get related files for a task based on dependencies
|
|
80
69
|
*/
|
|
81
|
-
private
|
|
82
|
-
/**
|
|
83
|
-
* Handle wave failure
|
|
84
|
-
*/
|
|
85
|
-
private handleWaveFailure;
|
|
70
|
+
private getRelatedFilesForTask;
|
|
86
71
|
/**
|
|
87
|
-
*
|
|
88
|
-
* Called after each successful wave
|
|
89
|
-
*
|
|
90
|
-
* Conflict Resolution Strategy:
|
|
91
|
-
* 1. Try merge --no-ff
|
|
92
|
-
* 2. If conflict, analyze with debugger subagent
|
|
93
|
-
* 3. Auto-resolve based on conflict type (imports, adjacent changes, etc.)
|
|
94
|
-
* 4. If cannot auto-resolve, try rebase-merging or manual merge
|
|
95
|
-
* 5. Last resort: mark for manual resolution
|
|
72
|
+
* Parse implementer subagent output
|
|
96
73
|
*/
|
|
97
|
-
private
|
|
74
|
+
private parseImplementerOutput;
|
|
98
75
|
/**
|
|
99
|
-
*
|
|
76
|
+
* Run verification subagents after all waves complete
|
|
77
|
+
* - Goals verification: verifierContract
|
|
78
|
+
* - Quality verification: reviewerContract
|
|
79
|
+
* - Tests verification: dispatcher with test runner
|
|
100
80
|
*/
|
|
101
|
-
private
|
|
81
|
+
private runVerification;
|
|
102
82
|
/**
|
|
103
|
-
*
|
|
83
|
+
* Verify goals using verifierContract subagent
|
|
104
84
|
*/
|
|
105
|
-
private
|
|
85
|
+
private verifyGoals;
|
|
106
86
|
/**
|
|
107
|
-
*
|
|
87
|
+
* Verify quality using reviewerContract subagent
|
|
108
88
|
*/
|
|
109
|
-
private
|
|
89
|
+
private verifyQuality;
|
|
110
90
|
/**
|
|
111
|
-
*
|
|
91
|
+
* Verify tests by running test suite
|
|
112
92
|
*/
|
|
113
|
-
private
|
|
93
|
+
private verifyTests;
|
|
114
94
|
/**
|
|
115
|
-
*
|
|
95
|
+
* Handle wave failure with proper error handling
|
|
116
96
|
*/
|
|
117
|
-
private
|
|
97
|
+
private handleWaveFailure;
|
|
118
98
|
/**
|
|
119
|
-
*
|
|
99
|
+
* Format plan summary for verifier
|
|
120
100
|
*/
|
|
121
|
-
private
|
|
101
|
+
private formatPlanSummary;
|
|
122
102
|
/**
|
|
123
|
-
*
|
|
103
|
+
* Parse verifier output
|
|
124
104
|
*/
|
|
125
|
-
private
|
|
105
|
+
private parseVerifierOutput;
|
|
126
106
|
/**
|
|
127
|
-
* Parse
|
|
107
|
+
* Parse reviewer output
|
|
128
108
|
*/
|
|
129
|
-
private
|
|
109
|
+
private parseReviewerOutput;
|
|
130
110
|
/**
|
|
131
|
-
* Parse
|
|
111
|
+
* Parse test output
|
|
132
112
|
*/
|
|
133
|
-
private
|
|
113
|
+
private parseTestOutput;
|
|
134
114
|
/**
|
|
135
115
|
* Helper to trigger hooks with error handling
|
|
136
116
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skills/execute-plan/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skills/execute-plan/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAoB/C,QAAA,MAAM,kBAAkB;;;;;;;;;;;;EAItB,CAAA;AAEF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAMvB,CAAA;AAEF,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AACtD,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AASxD,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC;;IAShE,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IA+HjF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;YACW,WAAW;IAuDzB;;;OAGG;YACW,WAAW;IA2EzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;;;;OAKG;YACW,eAAe;IAsC7B;;OAEG;YACW,WAAW;IAmCzB;;OAEG;YACW,aAAa;IA0C3B;;OAEG;YACW,WAAW;IA4DzB;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;YACW,WAAW;CAc1B;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAA"}
|