@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.
Files changed (164) hide show
  1. package/dist/src/agents/contracts/implementer.d.ts +29 -0
  2. package/dist/src/agents/contracts/implementer.d.ts.map +1 -0
  3. package/dist/src/agents/contracts/implementer.js +94 -0
  4. package/dist/src/agents/contracts/implementer.js.map +1 -0
  5. package/dist/src/agents/contracts/index.d.ts +11 -0
  6. package/dist/src/agents/contracts/index.d.ts.map +1 -0
  7. package/dist/src/agents/contracts/index.js +11 -0
  8. package/dist/src/agents/contracts/index.js.map +1 -0
  9. package/dist/src/agents/contracts/planner.d.ts +25 -0
  10. package/dist/src/agents/contracts/planner.d.ts.map +1 -0
  11. package/dist/src/agents/contracts/planner.js +107 -0
  12. package/dist/src/agents/contracts/planner.js.map +1 -0
  13. package/dist/src/agents/contracts/router.d.ts +24 -0
  14. package/dist/src/agents/contracts/router.d.ts.map +1 -0
  15. package/dist/src/agents/contracts/router.js +137 -0
  16. package/dist/src/agents/contracts/router.js.map +1 -0
  17. package/dist/src/agents/contracts/verifier.d.ts +27 -0
  18. package/dist/src/agents/contracts/verifier.d.ts.map +1 -0
  19. package/dist/src/agents/contracts/verifier.js +115 -0
  20. package/dist/src/agents/contracts/verifier.js.map +1 -0
  21. package/dist/src/agents/dispatcher.d.ts +94 -51
  22. package/dist/src/agents/dispatcher.d.ts.map +1 -1
  23. package/dist/src/agents/dispatcher.js +207 -164
  24. package/dist/src/agents/dispatcher.js.map +1 -1
  25. package/dist/src/persistence/index.d.ts +4 -2
  26. package/dist/src/persistence/index.d.ts.map +1 -1
  27. package/dist/src/persistence/index.js +4 -1
  28. package/dist/src/persistence/index.js.map +1 -1
  29. package/dist/src/persistence/plan-md.d.ts +3 -2
  30. package/dist/src/persistence/plan-md.d.ts.map +1 -1
  31. package/dist/src/persistence/plan-md.js +47 -15
  32. package/dist/src/persistence/plan-md.js.map +1 -1
  33. package/dist/src/persistence/state-md.d.ts +2 -0
  34. package/dist/src/persistence/state-md.d.ts.map +1 -1
  35. package/dist/src/persistence/state-md.js +40 -22
  36. package/dist/src/persistence/state-md.js.map +1 -1
  37. package/dist/src/persistence/types.d.ts +35 -39
  38. package/dist/src/persistence/types.d.ts.map +1 -1
  39. package/dist/src/router/namespace/core/intent-router.d.ts +24 -0
  40. package/dist/src/router/namespace/core/intent-router.d.ts.map +1 -0
  41. package/dist/src/router/namespace/core/intent-router.js +190 -0
  42. package/dist/src/router/namespace/core/intent-router.js.map +1 -0
  43. package/dist/src/router/namespace/core/lifecycle-router.d.ts +28 -0
  44. package/dist/src/router/namespace/core/lifecycle-router.d.ts.map +1 -0
  45. package/dist/src/router/namespace/core/lifecycle-router.js +132 -0
  46. package/dist/src/router/namespace/core/lifecycle-router.js.map +1 -0
  47. package/dist/src/router/namespace/core/state-router.d.ts +32 -0
  48. package/dist/src/router/namespace/core/state-router.d.ts.map +1 -0
  49. package/dist/src/router/namespace/core/state-router.js +157 -0
  50. package/dist/src/router/namespace/core/state-router.js.map +1 -0
  51. package/dist/src/router/namespace/domain/code-router.d.ts +26 -0
  52. package/dist/src/router/namespace/domain/code-router.d.ts.map +1 -0
  53. package/dist/src/router/namespace/domain/code-router.js +171 -0
  54. package/dist/src/router/namespace/domain/code-router.js.map +1 -0
  55. package/dist/src/router/namespace/domain/debug-router.d.ts +25 -0
  56. package/dist/src/router/namespace/domain/debug-router.d.ts.map +1 -0
  57. package/dist/src/router/namespace/domain/debug-router.js +139 -0
  58. package/dist/src/router/namespace/domain/debug-router.js.map +1 -0
  59. package/dist/src/router/namespace/domain/plan-router.d.ts +29 -0
  60. package/dist/src/router/namespace/domain/plan-router.d.ts.map +1 -0
  61. package/dist/src/router/namespace/domain/plan-router.js +160 -0
  62. package/dist/src/router/namespace/domain/plan-router.js.map +1 -0
  63. package/dist/src/router/namespace/domain/review-router.d.ts +24 -0
  64. package/dist/src/router/namespace/domain/review-router.d.ts.map +1 -0
  65. package/dist/src/router/namespace/domain/review-router.js +116 -0
  66. package/dist/src/router/namespace/domain/review-router.js.map +1 -0
  67. package/dist/src/router/namespace/index.d.ts +19 -0
  68. package/dist/src/router/namespace/index.d.ts.map +1 -0
  69. package/dist/src/router/namespace/index.js +22 -0
  70. package/dist/src/router/namespace/index.js.map +1 -0
  71. package/dist/src/router/namespace/registry.d.ts +67 -0
  72. package/dist/src/router/namespace/registry.d.ts.map +1 -0
  73. package/dist/src/router/namespace/registry.js +197 -0
  74. package/dist/src/router/namespace/registry.js.map +1 -0
  75. package/dist/src/router/namespace/types.d.ts +124 -0
  76. package/dist/src/router/namespace/types.d.ts.map +1 -0
  77. package/dist/src/router/namespace/types.js +20 -0
  78. package/dist/src/router/namespace/types.js.map +1 -0
  79. package/dist/src/router/namespace/utility/fallback-router.d.ts +28 -0
  80. package/dist/src/router/namespace/utility/fallback-router.d.ts.map +1 -0
  81. package/dist/src/router/namespace/utility/fallback-router.js +88 -0
  82. package/dist/src/router/namespace/utility/fallback-router.js.map +1 -0
  83. package/dist/src/router/namespace/utility/quick-task-router.d.ts +28 -0
  84. package/dist/src/router/namespace/utility/quick-task-router.d.ts.map +1 -0
  85. package/dist/src/router/namespace/utility/quick-task-router.js +99 -0
  86. package/dist/src/router/namespace/utility/quick-task-router.js.map +1 -0
  87. package/dist/src/router/namespace/utility/research-router.d.ts +24 -0
  88. package/dist/src/router/namespace/utility/research-router.d.ts.map +1 -0
  89. package/dist/src/router/namespace/utility/research-router.js +84 -0
  90. package/dist/src/router/namespace/utility/research-router.js.map +1 -0
  91. package/dist/src/skills/agents-md/index.js +2 -2
  92. package/dist/src/skills/agents-md/index.js.map +1 -1
  93. package/dist/src/skills/execute-plan/index.d.ts +45 -65
  94. package/dist/src/skills/execute-plan/index.d.ts.map +1 -1
  95. package/dist/src/skills/execute-plan/index.js +325 -551
  96. package/dist/src/skills/execute-plan/index.js.map +1 -1
  97. package/dist/src/skills/index.d.ts +1 -0
  98. package/dist/src/skills/index.d.ts.map +1 -1
  99. package/dist/src/skills/index.js +1 -0
  100. package/dist/src/skills/index.js.map +1 -1
  101. package/dist/src/skills/quick-task/index.d.ts +4 -4
  102. package/dist/src/skills/quick-task/index.js +1 -1
  103. package/dist/src/skills/quick-task/index.js.map +1 -1
  104. package/dist/src/skills/review-diff/index.d.ts +6 -6
  105. package/dist/src/skills/review-diff/index.js +1 -1
  106. package/dist/src/skills/review-diff/index.js.map +1 -1
  107. package/dist/src/skills/router/index.d.ts +101 -0
  108. package/dist/src/skills/router/index.d.ts.map +1 -0
  109. package/dist/src/skills/router/index.js +450 -0
  110. package/dist/src/skills/router/index.js.map +1 -0
  111. package/dist/src/skills/router/types.d.ts +79 -0
  112. package/dist/src/skills/router/types.d.ts.map +1 -0
  113. package/dist/src/skills/router/types.js +8 -0
  114. package/dist/src/skills/router/types.js.map +1 -0
  115. package/dist/src/skills/systematic-debugging/index.js +1 -1
  116. package/dist/src/skills/systematic-debugging/index.js.map +1 -1
  117. package/dist/src/skills/tdd/index.d.ts +14 -14
  118. package/dist/src/skills/tdd/index.js +1 -1
  119. package/dist/src/skills/tdd/index.js.map +1 -1
  120. package/dist/src/skills/to-plan/index-enhanced.d.ts +4 -4
  121. package/dist/src/skills/to-plan/index-enhanced.d.ts.map +1 -1
  122. package/dist/src/skills/to-plan/index-enhanced.js +3 -5
  123. package/dist/src/skills/to-plan/index-enhanced.js.map +1 -1
  124. package/dist/src/skills/to-plan/index.d.ts +24 -91
  125. package/dist/src/skills/to-plan/index.d.ts.map +1 -1
  126. package/dist/src/skills/to-plan/index.js +214 -409
  127. package/dist/src/skills/to-plan/index.js.map +1 -1
  128. package/package.json +3 -5
  129. package/src/agents/contracts/implementer.ts +122 -0
  130. package/src/agents/contracts/index.ts +27 -0
  131. package/src/agents/contracts/planner.ts +129 -0
  132. package/src/agents/contracts/router.ts +168 -0
  133. package/src/agents/contracts/verifier.ts +137 -0
  134. package/src/agents/dispatcher.ts +387 -362
  135. package/src/persistence/index.ts +10 -4
  136. package/src/persistence/plan-md.ts +52 -18
  137. package/src/persistence/state-md.ts +45 -23
  138. package/src/persistence/types.ts +37 -40
  139. package/src/router/namespace/README.md +127 -0
  140. package/src/router/namespace/core/intent-router.ts +221 -0
  141. package/src/router/namespace/core/lifecycle-router.ts +156 -0
  142. package/src/router/namespace/core/state-router.ts +192 -0
  143. package/src/router/namespace/domain/code-router.ts +202 -0
  144. package/src/router/namespace/domain/debug-router.ts +167 -0
  145. package/src/router/namespace/domain/plan-router.ts +196 -0
  146. package/src/router/namespace/domain/review-router.ts +142 -0
  147. package/src/router/namespace/index.ts +84 -0
  148. package/src/router/namespace/registry.ts +242 -0
  149. package/src/router/namespace/types.ts +182 -0
  150. package/src/router/namespace/utility/fallback-router.ts +107 -0
  151. package/src/router/namespace/utility/quick-task-router.ts +121 -0
  152. package/src/router/namespace/utility/research-router.ts +105 -0
  153. package/src/skills/agents-md/index.ts +2 -2
  154. package/src/skills/execute-plan/index.ts +419 -673
  155. package/src/skills/index.ts +1 -0
  156. package/src/skills/quick-task/index.ts +1 -1
  157. package/src/skills/review-diff/index.ts +1 -1
  158. package/src/skills/router/SKILL.md +181 -0
  159. package/src/skills/router/index.ts +577 -0
  160. package/src/skills/router/types.ts +90 -0
  161. package/src/skills/systematic-debugging/index.ts +1 -1
  162. package/src/skills/tdd/index.ts +1 -1
  163. package/src/skills/to-plan/index-enhanced.ts +3 -5
  164. package/src/skills/to-plan/index.ts +231 -502
@@ -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 || 'sonnet' }, { permissions: PRW, prompt: `${input.update ? 'Update' : 'Create'} ${filename}. Evidence: ${explore.output.slice(0, 3000)}. Include: Overview, Tech Stack, Commands, Conventions.`, owns: [filename], reads: [] });
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;QAC3C,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,CAAA;QACnC,KAAK,CAAC,eAAe,EAAE,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CACvC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE,EAC/D,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,uDAAuD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,EAAC,WAAW,EAAC,QAAQ,CAAC,EAAE,CAC5I,CAAA;YACD,MAAM,UAAU,CAAC,QAAQ,CACvB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,EACvD,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,QAAQ,IAAI,QAAQ,eAAe,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,CAAC,yDAAyD,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC7M,CAAA;YACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,SAAS,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,QAAQ,OAAO,EAAE,CAAA;QACtK,CAAC;gBAAS,CAAC;YAAC,KAAK,CAAC,iBAAiB,EAAE,CAAA;QAAC,CAAC;IACzC,CAAC;CACF;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;AAChD,eAAe,aAAa,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
- * Enhanced Execute Plan Skill - Orchestrates TDD and Review skills
2
+ * Execute Plan Skill - Orchestrates plan execution with persistence integration
3
3
  *
4
4
  * Architecture: Orchestrator pattern
5
- * - Executes waves sequentially
6
- * - Each task uses TDD skill (RED/GREEN/REFACTOR)
7
- * - Verification uses review-diff skill
8
- * - Lifecycle managed via hooks
9
- * - Task-level worktree isolation via worktreeContract subagent
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
- * Execute a wave using TDD skill for each task
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 runVerificationWithReviewDiff;
56
+ private findNextWaveIndex;
70
57
  /**
71
- * Verify goals using review-diff skill
58
+ * Execute a wave - tasks within wave run in parallel
59
+ * Each task dispatches an implementer subagent with fresh context
72
60
  */
73
- private verifyGoalsWithReviewDiff;
61
+ private executeWave;
74
62
  /**
75
- * Verify code quality using review-diff skill
63
+ * Execute a single task by dispatching implementer subagent
64
+ * Fresh context for each task with proper permissions
76
65
  */
77
- private verifyQualityWithReviewDiff;
66
+ private executeTask;
78
67
  /**
79
- * Verify tests by checking TDD results
68
+ * Get related files for a task based on dependencies
80
69
  */
81
- private verifyTests;
82
- /**
83
- * Handle wave failure
84
- */
85
- private handleWaveFailure;
70
+ private getRelatedFilesForTask;
86
71
  /**
87
- * Merge completed task worktrees back to main worktree with automatic conflict resolution
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 mergeTaskWorktrees;
74
+ private parseImplementerOutput;
98
75
  /**
99
- * Merge a single branch with conflict detection and auto-resolution
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 mergeSingleBranch;
81
+ private runVerification;
102
82
  /**
103
- * Parse merge result from subagent output
83
+ * Verify goals using verifierContract subagent
104
84
  */
105
- private parseMergeResult;
85
+ private verifyGoals;
106
86
  /**
107
- * Auto-resolve merge conflicts using debugger subagent
87
+ * Verify quality using reviewerContract subagent
108
88
  */
109
- private autoResolveConflicts;
89
+ private verifyQuality;
110
90
  /**
111
- * Resolve a single file conflict
91
+ * Verify tests by running test suite
112
92
  */
113
- private resolveSingleFile;
93
+ private verifyTests;
114
94
  /**
115
- * Parse conflict analysis from subagent output
95
+ * Handle wave failure with proper error handling
116
96
  */
117
- private parseConflictAnalysis;
97
+ private handleWaveFailure;
118
98
  /**
119
- * Apply conflict resolution strategy
99
+ * Format plan summary for verifier
120
100
  */
121
- private applyConflictStrategy;
101
+ private formatPlanSummary;
122
102
  /**
123
- * Intelligently combine changes from both branches
103
+ * Parse verifier output
124
104
  */
125
- private combineFileChanges;
105
+ private parseVerifierOutput;
126
106
  /**
127
- * Parse resolution result
107
+ * Parse reviewer output
128
108
  */
129
- private parseResolutionResult;
109
+ private parseReviewerOutput;
130
110
  /**
131
- * Parse worktree output from subagent
111
+ * Parse test output
132
112
  */
133
- private parseWorktreeOutput;
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;;;;;;;;;GASG;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;AAmB/C,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;EAKtB,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;AAExD,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC;;IAShE,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAmHjF;;;OAGG;YACW,kBAAkB;IA2EhC;;;;OAIG;YACW,kBAAkB;IAyDhC;;;OAGG;YACW,6BAA6B;IAsC3C;;OAEG;YACW,yBAAyB;IA8BvC;;OAEG;YACW,2BAA2B;IA4BzC;;OAEG;YACW,WAAW;IAgDzB;;OAEG;YACW,iBAAiB;IAc/B;;;;;;;;;;OAUG;YACW,kBAAkB;IA4ChC;;OAEG;YACW,iBAAiB;IA6E/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;YACW,iBAAiB;IAyD/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;YACW,qBAAqB;IA6CnC;;OAEG;YACW,kBAAkB;IAqDhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;OAEG;YACW,WAAW;CAc1B;AACD,eAAO,MAAM,gBAAgB,kBAAyB,CAAA"}
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"}