@winspan/claude-forge 8.30.0 → 8.33.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 (195) hide show
  1. package/README.md +4 -4
  2. package/dist/capability/execution-manager.d.ts +38 -1
  3. package/dist/capability/execution-manager.d.ts.map +1 -1
  4. package/dist/capability/execution-manager.js +93 -1
  5. package/dist/capability/execution-manager.js.map +1 -1
  6. package/dist/capability/executor/background-executor.d.ts +1 -0
  7. package/dist/capability/executor/background-executor.d.ts.map +1 -1
  8. package/dist/capability/executor/background-executor.js +27 -4
  9. package/dist/capability/executor/background-executor.js.map +1 -1
  10. package/dist/capability/executor/orchestrator.d.ts +15 -2
  11. package/dist/capability/executor/orchestrator.d.ts.map +1 -1
  12. package/dist/capability/executor/orchestrator.js +82 -3
  13. package/dist/capability/executor/orchestrator.js.map +1 -1
  14. package/dist/capability/executor/worker-auth-probe.d.ts.map +1 -1
  15. package/dist/capability/executor/worker-auth-probe.js +11 -2
  16. package/dist/capability/executor/worker-auth-probe.js.map +1 -1
  17. package/dist/capability/methodologies/bmad.yaml +17 -5
  18. package/dist/capability/methodologies/code-quality-audit.yaml +26 -0
  19. package/dist/capability/methodologies/harness-engineering.yaml +12 -6
  20. package/dist/capability/methodologies/test-coverage-scan.yaml +26 -0
  21. package/dist/capability/methodology-planner.d.ts +17 -1
  22. package/dist/capability/methodology-planner.d.ts.map +1 -1
  23. package/dist/capability/methodology-planner.js +125 -0
  24. package/dist/capability/methodology-planner.js.map +1 -1
  25. package/dist/capability/methodology-registry.d.ts.map +1 -1
  26. package/dist/capability/methodology-registry.js +21 -5
  27. package/dist/capability/methodology-registry.js.map +1 -1
  28. package/dist/capability/types.d.ts +2 -0
  29. package/dist/capability/types.d.ts.map +1 -1
  30. package/dist/core/ai/provider.d.ts +17 -9
  31. package/dist/core/ai/provider.d.ts.map +1 -1
  32. package/dist/core/ai/provider.js +130 -23
  33. package/dist/core/ai/provider.js.map +1 -1
  34. package/dist/core/ai/types.d.ts +26 -5
  35. package/dist/core/ai/types.d.ts.map +1 -1
  36. package/dist/core/storage/rows.d.ts +153 -0
  37. package/dist/core/storage/rows.d.ts.map +1 -0
  38. package/dist/core/storage/rows.js +14 -0
  39. package/dist/core/storage/rows.js.map +1 -0
  40. package/dist/core/storage/schema.sql +26 -2
  41. package/dist/core/storage/sqlite.d.ts +95 -7
  42. package/dist/core/storage/sqlite.d.ts.map +1 -1
  43. package/dist/core/storage/sqlite.js +409 -22
  44. package/dist/core/storage/sqlite.js.map +1 -1
  45. package/dist/core/utils/token-tracker.d.ts +40 -0
  46. package/dist/core/utils/token-tracker.d.ts.map +1 -0
  47. package/dist/core/utils/token-tracker.js +70 -0
  48. package/dist/core/utils/token-tracker.js.map +1 -0
  49. package/dist/daemon/handlers/post-tool-use.d.ts +1 -0
  50. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  51. package/dist/daemon/handlers/post-tool-use.js +7 -0
  52. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  53. package/dist/daemon/handlers/stop.d.ts +11 -0
  54. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  55. package/dist/daemon/handlers/stop.js +52 -0
  56. package/dist/daemon/handlers/stop.js.map +1 -1
  57. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  58. package/dist/daemon/handlers/user-prompt.js +63 -4
  59. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  60. package/dist/daemon/idle-detector.d.ts +35 -0
  61. package/dist/daemon/idle-detector.d.ts.map +1 -0
  62. package/dist/daemon/idle-detector.js +56 -0
  63. package/dist/daemon/idle-detector.js.map +1 -0
  64. package/dist/daemon/idle-trigger.d.ts +53 -0
  65. package/dist/daemon/idle-trigger.d.ts.map +1 -0
  66. package/dist/daemon/idle-trigger.js +153 -0
  67. package/dist/daemon/idle-trigger.js.map +1 -0
  68. package/dist/daemon/index.d.ts.map +1 -1
  69. package/dist/daemon/index.js +30 -2
  70. package/dist/daemon/index.js.map +1 -1
  71. package/dist/daemon/routing-observer.d.ts +2 -1
  72. package/dist/daemon/routing-observer.d.ts.map +1 -1
  73. package/dist/daemon/routing-observer.js +117 -39
  74. package/dist/daemon/routing-observer.js.map +1 -1
  75. package/dist/engine/agent-router.d.ts +6 -0
  76. package/dist/engine/agent-router.d.ts.map +1 -1
  77. package/dist/engine/agent-router.js +13 -1
  78. package/dist/engine/agent-router.js.map +1 -1
  79. package/dist/engine/conventions/routing.yaml +15 -0
  80. package/dist/engine/dsl/compiler.d.ts.map +1 -1
  81. package/dist/engine/dsl/compiler.js +85 -3
  82. package/dist/engine/dsl/compiler.js.map +1 -1
  83. package/dist/engine/recommender.d.ts.map +1 -1
  84. package/dist/engine/recommender.js +10 -1
  85. package/dist/engine/recommender.js.map +1 -1
  86. package/dist/intelligence/classifier.d.ts +6 -0
  87. package/dist/intelligence/classifier.d.ts.map +1 -1
  88. package/dist/intelligence/classifier.js +57 -0
  89. package/dist/intelligence/classifier.js.map +1 -1
  90. package/dist/skills/registry.d.ts +6 -0
  91. package/dist/skills/registry.d.ts.map +1 -1
  92. package/dist/skills/registry.js +49 -14
  93. package/dist/skills/registry.js.map +1 -1
  94. package/dist/skills/semantic-matcher.d.ts +1 -0
  95. package/dist/skills/semantic-matcher.d.ts.map +1 -1
  96. package/dist/skills/semantic-matcher.js +6 -1
  97. package/dist/skills/semantic-matcher.js.map +1 -1
  98. package/dist/web/auth-middleware.d.ts +22 -0
  99. package/dist/web/auth-middleware.d.ts.map +1 -0
  100. package/dist/web/auth-middleware.js +51 -0
  101. package/dist/web/auth-middleware.js.map +1 -0
  102. package/dist/web/routes/agents.d.ts +7 -0
  103. package/dist/web/routes/agents.d.ts.map +1 -0
  104. package/dist/web/routes/agents.js +192 -0
  105. package/dist/web/routes/agents.js.map +1 -0
  106. package/dist/web/routes/ai.d.ts +10 -0
  107. package/dist/web/routes/ai.d.ts.map +1 -0
  108. package/dist/web/routes/ai.js +197 -0
  109. package/dist/web/routes/ai.js.map +1 -0
  110. package/dist/web/routes/auth.d.ts +12 -0
  111. package/dist/web/routes/auth.d.ts.map +1 -0
  112. package/dist/web/routes/auth.js +20 -0
  113. package/dist/web/routes/auth.js.map +1 -0
  114. package/dist/web/routes/events.d.ts +11 -0
  115. package/dist/web/routes/events.d.ts.map +1 -0
  116. package/dist/web/routes/events.js +43 -0
  117. package/dist/web/routes/events.js.map +1 -0
  118. package/dist/web/routes/execution-trace.d.ts +13 -0
  119. package/dist/web/routes/execution-trace.d.ts.map +1 -0
  120. package/dist/web/routes/execution-trace.js +308 -0
  121. package/dist/web/routes/execution-trace.js.map +1 -0
  122. package/dist/web/routes/experiments.d.ts +15 -0
  123. package/dist/web/routes/experiments.d.ts.map +1 -0
  124. package/dist/web/routes/experiments.js +187 -0
  125. package/dist/web/routes/experiments.js.map +1 -0
  126. package/dist/web/routes/methodology.d.ts +12 -0
  127. package/dist/web/routes/methodology.d.ts.map +1 -0
  128. package/dist/web/routes/methodology.js +228 -0
  129. package/dist/web/routes/methodology.js.map +1 -0
  130. package/dist/web/routes/patch.d.ts +7 -0
  131. package/dist/web/routes/patch.d.ts.map +1 -0
  132. package/dist/web/routes/patch.js +106 -0
  133. package/dist/web/routes/patch.js.map +1 -0
  134. package/dist/web/routes/routing.d.ts +17 -0
  135. package/dist/web/routes/routing.d.ts.map +1 -0
  136. package/dist/web/routes/routing.js +582 -0
  137. package/dist/web/routes/routing.js.map +1 -0
  138. package/dist/web/routes/rules.d.ts +7 -0
  139. package/dist/web/routes/rules.d.ts.map +1 -0
  140. package/dist/web/routes/rules.js +105 -0
  141. package/dist/web/routes/rules.js.map +1 -0
  142. package/dist/web/routes/sessions.d.ts +10 -0
  143. package/dist/web/routes/sessions.d.ts.map +1 -0
  144. package/dist/web/routes/sessions.js +234 -0
  145. package/dist/web/routes/sessions.js.map +1 -0
  146. package/dist/web/routes/skills.d.ts +10 -0
  147. package/dist/web/routes/skills.d.ts.map +1 -0
  148. package/dist/web/routes/skills.js +272 -0
  149. package/dist/web/routes/skills.js.map +1 -0
  150. package/dist/web/routes/static.d.ts +19 -0
  151. package/dist/web/routes/static.d.ts.map +1 -0
  152. package/dist/web/routes/static.js +61 -0
  153. package/dist/web/routes/static.js.map +1 -0
  154. package/dist/web/routes/status.d.ts +7 -0
  155. package/dist/web/routes/status.d.ts.map +1 -0
  156. package/dist/web/routes/status.js +28 -0
  157. package/dist/web/routes/status.js.map +1 -0
  158. package/dist/web/routes/token-usage.d.ts +7 -0
  159. package/dist/web/routes/token-usage.d.ts.map +1 -0
  160. package/dist/web/routes/token-usage.js +33 -0
  161. package/dist/web/routes/token-usage.js.map +1 -0
  162. package/dist/web/routes/types.d.ts +40 -0
  163. package/dist/web/routes/types.d.ts.map +1 -0
  164. package/dist/web/routes/types.js +52 -0
  165. package/dist/web/routes/types.js.map +1 -0
  166. package/dist/web/server.d.ts +7 -4
  167. package/dist/web/server.d.ts.map +1 -1
  168. package/dist/web/server.js +60 -2330
  169. package/dist/web/server.js.map +1 -1
  170. package/dist/web/ssrf-guard.d.ts +35 -0
  171. package/dist/web/ssrf-guard.d.ts.map +1 -0
  172. package/dist/web/ssrf-guard.js +93 -0
  173. package/dist/web/ssrf-guard.js.map +1 -0
  174. package/dist/web/static/assets/{AIConfig-nZgwaowr.js → AIConfig-D-vrYoJ3.js} +2 -2
  175. package/dist/web/static/assets/{AIConfig-nZgwaowr.js.map → AIConfig-D-vrYoJ3.js.map} +1 -1
  176. package/dist/web/static/assets/{Agents-BZGXKWC7.js → Agents-DAGWYsJj.js} +2 -2
  177. package/dist/web/static/assets/{Agents-BZGXKWC7.js.map → Agents-DAGWYsJj.js.map} +1 -1
  178. package/dist/web/static/assets/{Events-CnA3f740.js → Events-BoQ8Fo5k.js} +2 -2
  179. package/dist/web/static/assets/{Events-CnA3f740.js.map → Events-BoQ8Fo5k.js.map} +1 -1
  180. package/dist/web/static/assets/{ExecutionTrace-ClPfFIQa.js → ExecutionTrace-sFZ_vHNf.js} +2 -2
  181. package/dist/web/static/assets/{ExecutionTrace-ClPfFIQa.js.map → ExecutionTrace-sFZ_vHNf.js.map} +1 -1
  182. package/dist/web/static/assets/Methodologies-C0-Keokj.js +5 -0
  183. package/dist/web/static/assets/Methodologies-C0-Keokj.js.map +1 -0
  184. package/dist/web/static/assets/{Sessions-DwWOKgnl.js → Sessions-Bjf-Mvwb.js} +2 -2
  185. package/dist/web/static/assets/{Sessions-DwWOKgnl.js.map → Sessions-Bjf-Mvwb.js.map} +1 -1
  186. package/dist/web/static/assets/{Skills-DhM6ALhr.js → Skills-CrLshkrJ.js} +2 -2
  187. package/dist/web/static/assets/{Skills-DhM6ALhr.js.map → Skills-CrLshkrJ.js.map} +1 -1
  188. package/dist/web/static/assets/{index-DUYj2ek1.js → index-D23sAOAt.js} +3 -3
  189. package/dist/web/static/assets/{index-DUYj2ek1.js.map → index-D23sAOAt.js.map} +1 -1
  190. package/dist/web/static/assets/index-Drpf7sLl.css +1 -0
  191. package/dist/web/static/index.html +2 -2
  192. package/package.json +3 -2
  193. package/dist/web/static/assets/Methodologies-CAXUXeox.js +0 -2
  194. package/dist/web/static/assets/Methodologies-CAXUXeox.js.map +0 -1
  195. package/dist/web/static/assets/index-CVWult53.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worker-auth-probe.js","sourceRoot":"","sources":["../../../src/capability/executor/worker-auth-probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-auth-probe.js","sourceRoot":"","sources":["../../../src/capability/executor/worker-auth-probe.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,23 @@ trigger:
10
10
  complexity:
11
11
  - moderate
12
12
  - complex
13
+ # keywords 命中才触发,避免 taskType + complexity 导致的误触发
14
+ # BMad 是四角色敏捷方法论,面向 story/sprint 级别的完整功能开发
13
15
  keywords:
14
- - feature
15
- - implement
16
- - develop
17
- - build
16
+ - 敏捷
17
+ - agile
18
+ - story
19
+ - 用户故事
20
+ - user story
21
+ - sprint
22
+ - 迭代
23
+ - 需求分析
24
+ - 产品需求
25
+ - 完整功能
26
+ - 端到端
27
+ - end-to-end
28
+ - 四角色
29
+ - bmad
18
30
 
19
31
  # 阶段模板库
20
32
  phase_templates:
@@ -28,7 +40,7 @@ phase_templates:
28
40
  required: true
29
41
 
30
42
  design:
31
- agent: architect
43
+ agent: planner
32
44
  prompt_template: "As Architect: Design technical solution for {target}. Based on requirements document. Output: architecture design, module structure, interfaces, data flow. Document to docs/{target}-design.md"
33
45
  description: "Architect designs technical solution"
34
46
  artifacts:
@@ -0,0 +1,26 @@
1
+ id: code-quality-audit
2
+ name: "代码质量审计"
3
+ description: "Automated code quality audit during idle time"
4
+
5
+ # Idle 触发配置
6
+ idle_trigger:
7
+ enabled: true
8
+ interval: 7200000 # 2 小时(毫秒)
9
+ priority: low
10
+
11
+ # 不设置 trigger,因为这是 idle 专用方法论
12
+ trigger:
13
+ taskType: []
14
+ complexity: []
15
+ keywords: []
16
+
17
+ # 单阶段审计任务
18
+ phase_templates:
19
+ audit:
20
+ agent: reviewer
21
+ prompt_template: "Audit code quality: check for code smells, security issues, performance bottlenecks. Output report to docs/code-quality-audit.md"
22
+ description: "Audit code quality"
23
+ artifacts:
24
+ - type: file
25
+ pattern: "docs/**/*audit*.md"
26
+ required: false
@@ -10,12 +10,18 @@ trigger:
10
10
  complexity:
11
11
  - moderate
12
12
  - complex
13
- # keywords 是可选的,如果不定义则不检查
14
- # keywords:
15
- # - refactor
16
- # - migrate
17
- # - legacy
18
- # - technical debt
13
+ # keywords 命中才触发,避免 taskType + complexity 导致的误触发
14
+ keywords:
15
+ - 重构
16
+ - refactor
17
+ - 迁移
18
+ - migrate
19
+ - 遗留代码
20
+ - legacy
21
+ - 技术债
22
+ - technical debt
23
+ - 改写
24
+ - rewrite
19
25
 
20
26
  # 阶段模板库(供 AI Planner 选择)
21
27
  phase_templates:
@@ -0,0 +1,26 @@
1
+ id: test-coverage-scan
2
+ name: "测试覆盖率扫描"
3
+ description: "Automated test coverage analysis during idle time"
4
+
5
+ # Idle 触发配置
6
+ idle_trigger:
7
+ enabled: true
8
+ interval: 3600000 # 1 小时(毫秒)
9
+ priority: low
10
+
11
+ # 不设置 trigger,因为这是 idle 专用方法论
12
+ trigger:
13
+ taskType: []
14
+ complexity: []
15
+ keywords: []
16
+
17
+ # 单阶段扫描任务
18
+ phase_templates:
19
+ scan:
20
+ agent: researcher
21
+ prompt_template: "Analyze test coverage for the project. Identify untested modules and critical paths. Output report to docs/test-coverage-report.md"
22
+ description: "Scan test coverage"
23
+ artifacts:
24
+ - type: test_coverage
25
+ min: 0
26
+ required: false
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { AIProvider } from '../core/ai/types.js';
7
7
  import type { IntentAnalysis } from '../intelligence/classifier.js';
8
- import type { Methodology, ExecutionPlan } from './types.js';
8
+ import type { Methodology, ExecutionPlan, PlannedPhase } from './types.js';
9
9
  export declare class MethodologyPlanner {
10
10
  private ai;
11
11
  constructor(ai: AIProvider | null);
@@ -13,6 +13,22 @@ export declare class MethodologyPlanner {
13
13
  * 根据任务和方法论,动态生成执行计划
14
14
  */
15
15
  plan(userPrompt: string, intent: IntentAnalysis, methodology: Methodology): Promise<ExecutionPlan>;
16
+ /**
17
+ * 重新规划剩余 phase(失败反馈环)
18
+ *
19
+ * @returns 新的执行计划,如果 AI 认为无法恢复则返回 null
20
+ */
21
+ replan(params: {
22
+ executionId: number;
23
+ failedPhaseIndex: number;
24
+ failureReason: string;
25
+ originalPlan: ExecutionPlan;
26
+ completedPhases: PlannedPhase[];
27
+ }): Promise<ExecutionPlan | null>;
28
+ /**
29
+ * 构建重规划的 prompt
30
+ */
31
+ private buildReplanPrompt;
16
32
  /**
17
33
  * 构建 AI Planner 的 prompt
18
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"methodology-planner.d.ts","sourceRoot":"","sources":["../../src/capability/methodology-planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAG3E,qBAAa,kBAAkB;IACjB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,UAAU,GAAG,IAAI;IAEzC;;OAEG;IACG,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,aAAa,CAAC;IAqBzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwD1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;OAEG;IACH,OAAO,CAAC,YAAY;IA+CpB;;OAEG;IACH,OAAO,CAAC,SAAS;CAgBlB"}
1
+ {"version":3,"file":"methodology-planner.d.ts","sourceRoot":"","sources":["../../src/capability/methodology-planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG3E,qBAAa,kBAAkB;IACjB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,UAAU,GAAG,IAAI;IAEzC;;OAEG;IACG,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,aAAa,CAAC;IAqBzB;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,aAAa,CAAC;QAC5B,eAAe,EAAE,YAAY,EAAE,CAAC;KACjC,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAsEjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiEzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwD1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;OAEG;IACH,OAAO,CAAC,YAAY;IA+CpB;;OAEG;IACH,OAAO,CAAC,SAAS;CAgBlB"}
@@ -31,6 +31,131 @@ export class MethodologyPlanner {
31
31
  return this.fallbackPlan(userPrompt, intent, methodology);
32
32
  }
33
33
  }
34
+ /**
35
+ * 重新规划剩余 phase(失败反馈环)
36
+ *
37
+ * @returns 新的执行计划,如果 AI 认为无法恢复则返回 null
38
+ */
39
+ async replan(params) {
40
+ if (!this.ai) {
41
+ logger.warn('[MethodologyPlanner] replan: no AI provider, cannot replan');
42
+ return null;
43
+ }
44
+ try {
45
+ const prompt = this.buildReplanPrompt(params);
46
+ const response = await this.ai.complete(prompt, {
47
+ maxTokens: 2000,
48
+ });
49
+ // 解析响应
50
+ let cleaned = response.trim();
51
+ if (cleaned.startsWith('```json')) {
52
+ cleaned = cleaned.slice(7);
53
+ }
54
+ if (cleaned.startsWith('```')) {
55
+ cleaned = cleaned.slice(3);
56
+ }
57
+ if (cleaned.endsWith('```')) {
58
+ cleaned = cleaned.slice(0, -3);
59
+ }
60
+ cleaned = cleaned.trim();
61
+ const parsed = JSON.parse(cleaned);
62
+ // 检查 AI 是否认为可以恢复
63
+ if (parsed.can_recover === false || !parsed.phases || parsed.phases.length === 0) {
64
+ logger.info(`[MethodologyPlanner] replan: AI determined recovery not possible: ${parsed.reason || 'no reason given'}`);
65
+ return null;
66
+ }
67
+ // 查找方法论定义(从 originalPlan 获取)
68
+ const methodologyId = params.originalPlan.methodology_id;
69
+ // 构建新的完整计划:已完成的 phase + 重规划的 phase
70
+ const newPhases = [
71
+ ...params.completedPhases,
72
+ ...parsed.phases.map((phase) => {
73
+ // 从原始计划中查找 phase template 信息
74
+ const originalPhase = params.originalPlan.phases.find(p => p.id === phase.id);
75
+ if (!originalPhase) {
76
+ throw new Error(`Unknown phase in replan: ${phase.id}`);
77
+ }
78
+ return {
79
+ id: phase.id,
80
+ agent: originalPhase.agent, // agent 绑定不变
81
+ prompt: phase.prompt,
82
+ rationale: phase.rationale,
83
+ artifacts: originalPhase.artifacts,
84
+ };
85
+ }),
86
+ ];
87
+ const newPlan = {
88
+ phases: newPhases,
89
+ rationale: parsed.rationale || 'Replanned after phase failure',
90
+ methodology_id: methodologyId,
91
+ };
92
+ logger.info(`[MethodologyPlanner] replan: generated new plan with ${newPhases.length} total phases (${params.completedPhases.length} completed + ${parsed.phases.length} new)`);
93
+ return newPlan;
94
+ }
95
+ catch (err) {
96
+ logger.warn(`[MethodologyPlanner] replan failed: ${err}`);
97
+ return null;
98
+ }
99
+ }
100
+ /**
101
+ * 构建重规划的 prompt
102
+ */
103
+ buildReplanPrompt(params) {
104
+ const failedPhase = params.originalPlan.phases[params.failedPhaseIndex];
105
+ const completedPhasesDesc = params.completedPhases.length > 0
106
+ ? params.completedPhases.map((p, i) => ` ${i + 1}. ${p.id} (${p.agent}): ${p.prompt}`).join('\n')
107
+ : ' (none)';
108
+ const originalPlanDesc = params.originalPlan.phases
109
+ .map((p, i) => ` ${i + 1}. ${p.id} (${p.agent}): ${p.prompt}`)
110
+ .join('\n');
111
+ return `You are a methodology replanner. A phase in an execution plan has failed, and you need to decide if recovery is possible and generate a revised plan.
112
+
113
+ **Failed Phase:**
114
+ - Index: ${params.failedPhaseIndex}
115
+ - Phase ID: ${failedPhase.id}
116
+ - Agent: ${failedPhase.agent}
117
+ - Prompt: ${failedPhase.prompt}
118
+ - Failure Reason: ${params.failureReason}
119
+
120
+ **Original Complete Plan:**
121
+ ${originalPlanDesc}
122
+
123
+ **Completed Phases (successful):**
124
+ ${completedPhasesDesc}
125
+
126
+ **Your Task:**
127
+ 1. Analyze the failure reason and determine if the remaining work can be completed with a revised plan
128
+ 2. If recovery is possible, generate a NEW plan for the REMAINING phases (do NOT include already completed phases)
129
+ 3. If recovery is NOT possible (e.g., fundamental requirement issue, blocker that cannot be worked around), indicate that
130
+
131
+ **Guidelines:**
132
+ - You can skip the failed phase if it's not critical
133
+ - You can replace the failed phase with alternative phases
134
+ - You can add new phases to work around the failure
135
+ - You can reorder remaining phases
136
+ - NEVER invent agent names — use only agents from the original plan
137
+ - Each phase must have a clear rationale explaining how it addresses the failure
138
+
139
+ **Output JSON (no markdown, just JSON):**
140
+ {
141
+ "can_recover": true | false,
142
+ "reason": "Brief explanation of why recovery is/isn't possible",
143
+ "phases": [
144
+ {
145
+ "id": "phase_id_from_original_plan",
146
+ "prompt": "Specific instruction for this phase",
147
+ "rationale": "How this phase helps recover from the failure"
148
+ }
149
+ ],
150
+ "rationale": "Overall replan rationale"
151
+ }
152
+
153
+ **IMPORTANT:**
154
+ - Output ONLY valid JSON, no markdown code blocks
155
+ - If can_recover is false, phases array should be empty
156
+ - Do NOT include an "agent" field — it is determined by phase id from original plan
157
+ - Only use phase ids that exist in the original plan`;
158
+ }
34
159
  /**
35
160
  * 构建 AI Planner 的 prompt
36
161
  */
@@ -1 +1 @@
1
- {"version":3,"file":"methodology-planner.js","sourceRoot":"","sources":["../../src/capability/methodology-planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,UAAkB,EAClB,MAAsB,EACtB,WAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,YAAY;YACZ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC9C,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YACjF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,kBAAkB,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,UAAkB,EAClB,MAAsB,EACtB,WAAwB;QAExB,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;aAClH,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc;YAC9C,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;aACtF,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC;QAEvC,OAAO,sCAAsC,WAAW,CAAC,IAAI;;QAEzD,UAAU;;;eAGH,MAAM,CAAC,QAAQ;gBACd,MAAM,CAAC,UAAU;iBAChB,MAAM,CAAC,WAAW;;;EAGjC,iBAAiB;;;EAGjB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA2BkC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAgB,EAAE,WAAwB;QAClE,uBAAuB;QACvB,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,8DAA8D;QAC9D,MAAM,MAAM,GAAmB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwD,EAAE,EAAE;YAC5G,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,OAAO;gBACL,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EAAE,WAAW,CAAC,EAAE;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAClB,UAAkB,EAClB,MAAsB,EACtB,WAAwB;QAExB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAExD,WAAW;QACX,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;gBAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;wBACtD,OAAO;4BACL,EAAE,EAAE,OAAO;4BACX,KAAK,EAAE,QAAQ,CAAC,KAAK;4BACrB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;4BAChE,SAAS,EAAE,QAAQ,CAAC,WAAW,IAAI,WAAW,OAAO,QAAQ;4BAC7D,SAAS,EAAE,QAAQ,CAAC,SAAS;yBAC9B,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,OAAO;wBACL,MAAM;wBACN,SAAS,EAAE,IAAI,CAAC,WAAW,IAAI,uBAAuB;wBACtD,cAAc,EAAE,WAAW,CAAC,EAAE;qBAC/B,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY;QACZ,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACrF,EAAE;YACF,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;YAChE,SAAS,EAAE,QAAQ,CAAC,WAAW,IAAI,WAAW,EAAE,QAAQ;YACxD,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,4CAA4C;YACvD,cAAc,EAAE,WAAW,CAAC,EAAE;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,SAAiB,EAAE,MAAsB;QACzD,aAAa;QACb,yDAAyD;QACzD,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAEjE,IAAI,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"methodology-planner.js","sourceRoot":"","sources":["../../src/capability/methodology-planner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"methodology-registry.d.ts","sourceRoot":"","sources":["../../src/capability/methodology-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAMpE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAuC;;IAM5D;;OAEG;IACH,OAAO,CAAC,OAAO;IAwBf;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI;IASjD;;OAEG;IACH,OAAO,CAAC,OAAO;IAmCf;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;CAGxB"}
1
+ {"version":3,"file":"methodology-registry.d.ts","sourceRoot":"","sources":["../../src/capability/methodology-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAMpE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAuC;;IAM5D;;OAEG;IACH,OAAO,CAAC,OAAO;IAwBf;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI;IASjD;;OAEG;IACH,OAAO,CAAC,OAAO;IAkDf;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;CAGxB"}
@@ -55,6 +55,16 @@ export class MethodologyRegistry {
55
55
  */
56
56
  isMatch(methodology, intent) {
57
57
  const trigger = methodology.trigger;
58
+ // Idle-only 方法论守卫:若 taskType / complexity / keywords 三个维度都未声明
59
+ // (字段缺失或为空数组),说明该方法论不参与基于 intent 的匹配(例如 idle 专用)。
60
+ // 否则"空数组"会被当作"无约束",从而对任意 intent 都返回 true,产生误匹配。
61
+ const hasTaskType = Array.isArray(trigger.taskType) && trigger.taskType.length > 0;
62
+ const hasComplexity = Array.isArray(trigger.complexity) && trigger.complexity.length > 0;
63
+ const hasKeywords = Array.isArray(trigger.keywords) && trigger.keywords.length > 0;
64
+ if (!hasTaskType && !hasComplexity && !hasKeywords) {
65
+ logger.debug(`[MethodologyRegistry] ${methodology.id} skipped: no intent-based trigger declared (idle-only)`);
66
+ return false;
67
+ }
58
68
  // 检查 taskType
59
69
  if (trigger.taskType && trigger.taskType.length > 0) {
60
70
  if (!trigger.taskType.includes(intent.taskType)) {
@@ -69,12 +79,18 @@ export class MethodologyRegistry {
69
79
  return false;
70
80
  }
71
81
  }
72
- // 检查 keywords(简单的关键词匹配)- 如果定义了 keywords,则必须匹配
82
+ // 检查 keywords - 如果 YAML 定义了 keywords(数组非空),则要求 intent.requirement
83
+ // 或 intent.searchKeywords 至少命中一个 keyword(大小写不敏感、子串匹配)
73
84
  if (trigger.keywords && trigger.keywords.length > 0) {
74
- const requirementLower = intent.requirement?.toLowerCase() || '';
75
- const hasKeyword = trigger.keywords.some(kw => requirementLower.includes(kw.toLowerCase()));
76
- if (!hasKeyword) {
77
- logger.debug(`[MethodologyRegistry] ${methodology.id} keyword mismatch: requirement="${intent.requirement}", expected one of ${trigger.keywords.join('|')}`);
85
+ const haystack = [
86
+ intent.requirement ?? '',
87
+ ...(intent.searchKeywords ?? []),
88
+ ]
89
+ .join(' ')
90
+ .toLowerCase();
91
+ const hit = trigger.keywords.some(kw => haystack.includes(kw.toLowerCase()));
92
+ if (!hit) {
93
+ logger.debug(`[MethodologyRegistry] ${methodology.id} keywords not matched: requirement="${intent.requirement}", searchKeywords=${JSON.stringify(intent.searchKeywords)}, expected one of ${trigger.keywords.join('|')}`);
78
94
  return false;
79
95
  }
80
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"methodology-registry.js","sourceRoot":"","sources":["../../src/capability/methodology-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methodology-registry.js","sourceRoot":"","sources":["../../src/capability/methodology-registry.ts"],"names":[],"mappings":"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"}
@@ -50,11 +50,13 @@ export interface MethodologyExecution {
50
50
  session_id: string;
51
51
  methodology_id: string;
52
52
  plan_json: string;
53
+ original_plan_json?: string | null;
53
54
  current_phase_index: number;
54
55
  status: 'running' | 'completed' | 'failed' | 'cancelled';
55
56
  mode?: 'foreground' | 'background';
56
57
  worker_pid?: number | null;
57
58
  worker_session_id?: string | null;
59
+ retry_count?: number;
58
60
  started_at: number;
59
61
  completed_at?: number;
60
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capability/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAGD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capability/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAGD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC"}
@@ -1,21 +1,29 @@
1
1
  /**
2
- * Claude AI provider — simple wrapper around @anthropic-ai/sdk
3
- * No rate limiter, no circuit breaker, no caching, no multi-provider factory
2
+ * Claude AI provider — wrapper around @anthropic-ai/sdk.
3
+ *
4
+ * Adds per-request timeout (AbortController) and bounded retry with exponential
5
+ * backoff for transient failures (AbortError / 429 / 5xx / network errors).
6
+ * SDK's built-in retry is disabled (maxRetries: 0) to avoid double retry layers.
4
7
  */
5
- import type { AIProvider } from './types.js';
8
+ import Anthropic from '@anthropic-ai/sdk';
9
+ import type { AIProvider, AIResponse, CompleteOptions } from './types.js';
10
+ /** Sleep helper — exported via object indirection so tests can stub it. */
11
+ export declare const timing: {
12
+ delay(ms: number): Promise<void>;
13
+ };
14
+ /** @deprecated Use `timing.delay`; kept for backward compatibility. */
15
+ export declare function delay(ms: number): Promise<void>;
6
16
  export declare class ClaudeProvider implements AIProvider {
7
- private client;
17
+ /** @internal */
18
+ client: Anthropic;
8
19
  private model;
9
20
  private callCount;
10
21
  private totalTokens;
11
22
  private totalErrors;
12
23
  private totalLatencyMs;
13
24
  constructor(apiKey: string, model?: string, baseUrl?: string);
14
- complete(prompt: string, options?: {
15
- system?: string;
16
- maxTokens?: number;
17
- model?: string;
18
- }): Promise<string>;
25
+ complete(prompt: string, options?: CompleteOptions): Promise<string>;
26
+ completeWithUsage(prompt: string, options?: CompleteOptions): Promise<AIResponse>;
19
27
  formatStats(): string;
20
28
  }
21
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/ai/provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAK;gBAEf,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAQtD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BnB,WAAW,IAAI,MAAM;CAKtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAahG"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/core/ai/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAS1E,2EAA2E;AAC3E,eAAO,MAAM,MAAM;cACP,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjC,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AA8BD,qBAAa,cAAe,YAAW,UAAU;IAE/C,gBAAgB;IAChB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAK;gBAEf,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAQtD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAKpE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IA+FvF,WAAW,IAAI,MAAM;CAKtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAahG"}