@winspan/claude-forge 0.7.1 → 0.7.3

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 (133) hide show
  1. package/dist/ai-gateway/model-selector.d.ts.map +1 -1
  2. package/dist/ai-gateway/model-selector.js +42 -6
  3. package/dist/ai-gateway/model-selector.js.map +1 -1
  4. package/dist/autopilot/intent-engine.d.ts +0 -4
  5. package/dist/autopilot/intent-engine.d.ts.map +1 -1
  6. package/dist/autopilot/intent-engine.js +32 -102
  7. package/dist/autopilot/intent-engine.js.map +1 -1
  8. package/dist/autopilot/issue-tracker.d.ts +48 -0
  9. package/dist/autopilot/issue-tracker.d.ts.map +1 -0
  10. package/dist/autopilot/issue-tracker.js +94 -0
  11. package/dist/autopilot/issue-tracker.js.map +1 -0
  12. package/dist/autopilot/phase-gap-detector.d.ts +25 -0
  13. package/dist/autopilot/phase-gap-detector.d.ts.map +1 -0
  14. package/dist/autopilot/phase-gap-detector.js +80 -0
  15. package/dist/autopilot/phase-gap-detector.js.map +1 -0
  16. package/dist/autopilot/quality-gate.d.ts +22 -0
  17. package/dist/autopilot/quality-gate.d.ts.map +1 -1
  18. package/dist/autopilot/quality-gate.js +108 -25
  19. package/dist/autopilot/quality-gate.js.map +1 -1
  20. package/dist/cli/commands/pattern.d.ts.map +1 -1
  21. package/dist/cli/commands/pattern.js +44 -38
  22. package/dist/cli/commands/pattern.js.map +1 -1
  23. package/dist/daemon/context-injector.d.ts +11 -1
  24. package/dist/daemon/context-injector.d.ts.map +1 -1
  25. package/dist/daemon/context-injector.js +27 -4
  26. package/dist/daemon/context-injector.js.map +1 -1
  27. package/dist/daemon/engine-registry.d.ts.map +1 -1
  28. package/dist/daemon/engine-registry.js +4 -1
  29. package/dist/daemon/engine-registry.js.map +1 -1
  30. package/dist/daemon/handler-context.d.ts +4 -2
  31. package/dist/daemon/handler-context.d.ts.map +1 -1
  32. package/dist/daemon/handlers/orchestration-context.d.ts +2 -0
  33. package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -1
  34. package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
  35. package/dist/daemon/handlers/post-tool-use-handler.js +26 -4
  36. package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
  37. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +1 -1
  38. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -1
  39. package/dist/daemon/handlers/stages/09-pipeline-active.js +22 -6
  40. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -1
  41. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -1
  42. package/dist/daemon/handlers/stages/12-strategy-advice.js +1 -4
  43. package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -1
  44. package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -1
  45. package/dist/daemon/handlers/stages/17-simple-task.js +1 -1
  46. package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -1
  47. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
  48. package/dist/daemon/handlers/stages/18-complex-task.js +2 -2
  49. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
  50. package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -1
  51. package/dist/daemon/handlers/stages/19-moderate-task.js +1 -1
  52. package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -1
  53. package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
  54. package/dist/daemon/handlers/stop-handler.js +5 -0
  55. package/dist/daemon/handlers/stop-handler.js.map +1 -1
  56. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  57. package/dist/daemon/handlers/user-prompt-handler.js +95 -48
  58. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  59. package/dist/distill/writer.d.ts.map +1 -1
  60. package/dist/distill/writer.js +27 -11
  61. package/dist/distill/writer.js.map +1 -1
  62. package/dist/knowledge/graph.d.ts +13 -0
  63. package/dist/knowledge/graph.d.ts.map +1 -1
  64. package/dist/knowledge/graph.js +62 -0
  65. package/dist/knowledge/graph.js.map +1 -1
  66. package/dist/pipeline/index.d.ts +9 -0
  67. package/dist/pipeline/index.d.ts.map +1 -1
  68. package/dist/pipeline/index.js +49 -3
  69. package/dist/pipeline/index.js.map +1 -1
  70. package/dist/{pattern-engine/types.d.ts → pipeline/pattern-types.d.ts} +1 -1
  71. package/dist/pipeline/pattern-types.d.ts.map +1 -0
  72. package/dist/{pattern-engine/types.js → pipeline/pattern-types.js} +1 -1
  73. package/dist/pipeline/pattern-types.js.map +1 -0
  74. package/dist/pipeline/phase-manager.d.ts +5 -0
  75. package/dist/pipeline/phase-manager.d.ts.map +1 -1
  76. package/dist/pipeline/phase-manager.js +67 -25
  77. package/dist/pipeline/phase-manager.js.map +1 -1
  78. package/dist/pipeline/report-generator.d.ts +20 -0
  79. package/dist/pipeline/report-generator.d.ts.map +1 -0
  80. package/dist/pipeline/report-generator.js +123 -0
  81. package/dist/pipeline/report-generator.js.map +1 -0
  82. package/dist/prompts/intent-analysis.md +62 -0
  83. package/dist/prompts/registry.d.ts +17 -0
  84. package/dist/prompts/registry.d.ts.map +1 -0
  85. package/dist/prompts/registry.js +40 -0
  86. package/dist/prompts/registry.js.map +1 -0
  87. package/dist/skill-registry/evolver/index.d.ts +1 -1
  88. package/dist/skill-registry/evolver/index.d.ts.map +1 -1
  89. package/dist/{pattern-engine → skill-registry}/pattern-evolver.d.ts +6 -2
  90. package/dist/skill-registry/pattern-evolver.d.ts.map +1 -0
  91. package/dist/{pattern-engine → skill-registry}/pattern-evolver.js +30 -6
  92. package/dist/skill-registry/pattern-evolver.js.map +1 -0
  93. package/dist/storage/repositories/distill-repository.d.ts +2 -1
  94. package/dist/storage/repositories/distill-repository.d.ts.map +1 -1
  95. package/dist/storage/repositories/distill-repository.js +6 -0
  96. package/dist/storage/repositories/distill-repository.js.map +1 -1
  97. package/dist/storage/sqlite.d.ts +96 -157
  98. package/dist/storage/sqlite.d.ts.map +1 -1
  99. package/dist/storage/sqlite.js +123 -896
  100. package/dist/storage/sqlite.js.map +1 -1
  101. package/package.json +2 -2
  102. package/dist/daemon/engine-registry/init-pattern-engine.d.ts +0 -9
  103. package/dist/daemon/engine-registry/init-pattern-engine.d.ts.map +0 -1
  104. package/dist/daemon/engine-registry/init-pattern-engine.js +0 -22
  105. package/dist/daemon/engine-registry/init-pattern-engine.js.map +0 -1
  106. package/dist/pattern-engine/convention-pattern-generator.d.ts +0 -14
  107. package/dist/pattern-engine/convention-pattern-generator.d.ts.map +0 -1
  108. package/dist/pattern-engine/convention-pattern-generator.js +0 -120
  109. package/dist/pattern-engine/convention-pattern-generator.js.map +0 -1
  110. package/dist/pattern-engine/execution-tracker.d.ts +0 -45
  111. package/dist/pattern-engine/execution-tracker.d.ts.map +0 -1
  112. package/dist/pattern-engine/execution-tracker.js +0 -136
  113. package/dist/pattern-engine/execution-tracker.js.map +0 -1
  114. package/dist/pattern-engine/index.d.ts +0 -75
  115. package/dist/pattern-engine/index.d.ts.map +0 -1
  116. package/dist/pattern-engine/index.js +0 -247
  117. package/dist/pattern-engine/index.js.map +0 -1
  118. package/dist/pattern-engine/pattern-evolver.d.ts.map +0 -1
  119. package/dist/pattern-engine/pattern-evolver.js.map +0 -1
  120. package/dist/pattern-engine/pattern-executor.d.ts +0 -43
  121. package/dist/pattern-engine/pattern-executor.d.ts.map +0 -1
  122. package/dist/pattern-engine/pattern-executor.js +0 -228
  123. package/dist/pattern-engine/pattern-executor.js.map +0 -1
  124. package/dist/pattern-engine/pattern-loader.d.ts +0 -14
  125. package/dist/pattern-engine/pattern-loader.d.ts.map +0 -1
  126. package/dist/pattern-engine/pattern-loader.js +0 -111
  127. package/dist/pattern-engine/pattern-loader.js.map +0 -1
  128. package/dist/pattern-engine/pattern-router.d.ts +0 -31
  129. package/dist/pattern-engine/pattern-router.d.ts.map +0 -1
  130. package/dist/pattern-engine/pattern-router.js +0 -160
  131. package/dist/pattern-engine/pattern-router.js.map +0 -1
  132. package/dist/pattern-engine/types.d.ts.map +0 -1
  133. package/dist/pattern-engine/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AA4BpD,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQvE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS;IAKrC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;CAGpC"}
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAkEpD,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQvE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS;IAKrC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;CAGpC"}
@@ -1,21 +1,57 @@
1
1
  /** label → 模型分层映射 */
2
2
  const LABEL_TO_TIER = {
3
- // Haiku(快速/低成本)
3
+ // ── Haiku(快速/低成本)──────────────────────────────────────────────────
4
+ // 意图与路由(轻量分类任务)
5
+ 'intent': 'haiku',
4
6
  '意图分析': 'haiku',
7
+ 'pattern-router': 'haiku',
5
8
  '规则匹配': 'haiku',
9
+ 'template_route': 'haiku',
10
+ // 知识检索(快速查找)
11
+ 'knowledge': 'haiku',
12
+ 'tree-index-summary': 'haiku',
13
+ 'tree-index-search': 'haiku',
14
+ // 关键词处理(轻量 NLP)
15
+ 'keyword-generator': 'haiku',
16
+ 'keyword-evolver': 'haiku',
17
+ // 轻量蒸馏与分析
18
+ 'distill-lightweight': 'haiku',
19
+ 'convention-distill': 'haiku',
20
+ 'skill-learner': 'haiku',
21
+ 'profile': 'haiku',
22
+ 'resume': 'haiku',
23
+ // 旧版中文标签(向后兼容)
6
24
  '缓存检查': 'haiku',
7
25
  '失败信号检测': 'haiku',
8
26
  '上下文压缩': 'haiku',
9
- // Sonnet(默认)
10
- '阶段产物生成': 'sonnet',
11
- '蒸馏': 'sonnet',
27
+ // ── Sonnet(默认,中等复杂度)──────────────────────────────────────────
28
+ // 质量门禁
29
+ 'quality-gate': 'sonnet',
30
+ 'quality-gate-phase-completion': 'sonnet',
31
+ 'quality-gate-phase': 'sonnet',
12
32
  '质量门禁': 'sonnet',
33
+ // 蒸馏与文档
34
+ 'distill': 'sonnet',
35
+ 'doc-sync': 'sonnet',
36
+ '蒸馏': 'sonnet',
13
37
  '文档同步': 'sonnet',
38
+ // 技能系统
39
+ 'skill-evolver': 'sonnet',
40
+ 'skill-collector': 'sonnet',
41
+ 'skill-repair': 'sonnet',
42
+ 'skill-improvement-suggester': 'sonnet',
14
43
  '技能演化': 'sonnet',
15
- // Opus(复杂推理)
44
+ // 规范与模式
45
+ 'convention-evolver': 'sonnet',
46
+ 'pattern-evolver': 'sonnet',
47
+ // Pipeline
48
+ 'pipeline': 'sonnet',
49
+ '阶段产物生成': 'sonnet',
50
+ // ── Opus(复杂推理)──────────────────────────────────────────────────────
51
+ 'claudemd': 'opus',
16
52
  'CLAUDE.md精炼': 'opus',
17
- '架构分析': 'opus',
18
53
  '模式学习': 'opus',
54
+ '架构分析': 'opus',
19
55
  };
20
56
  const DEFAULT_TIER_TO_MODEL = {
21
57
  haiku: 'claude-haiku-4-5-20251001',
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAEA,qBAAqB;AACrB,MAAM,aAAa,GAA8B;IAC/C,gBAAgB;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,OAAO;IAChB,aAAa;IACb,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,aAAa;IACb,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,qBAAqB,GAA8B;IACvD,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,WAAW,CAA4B;IAE/C,YAAY,MAA2D;QACrE,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,qBAAqB,CAAC,KAAK;YACnD,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM;YACtD,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,qBAAqB,CAAC,IAAI;SACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC;QAC5B,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAEA,qBAAqB;AACrB,MAAM,aAAa,GAA8B;IAC/C,qEAAqE;IACrE,gBAAgB;IAChB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,OAAO;IACzB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,OAAO;IACzB,aAAa;IACb,WAAW,EAAE,OAAO;IACpB,oBAAoB,EAAE,OAAO;IAC7B,mBAAmB,EAAE,OAAO;IAC5B,gBAAgB;IAChB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,OAAO;IAC1B,UAAU;IACV,qBAAqB,EAAE,OAAO;IAC9B,oBAAoB,EAAE,OAAO;IAC7B,eAAe,EAAE,OAAO;IACxB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,OAAO;IACjB,eAAe;IACf,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,OAAO;IAEhB,gEAAgE;IAChE,OAAO;IACP,cAAc,EAAE,QAAQ;IACxB,+BAA+B,EAAE,QAAQ;IACzC,oBAAoB,EAAE,QAAQ;IAC9B,MAAM,EAAE,QAAQ;IAChB,QAAQ;IACR,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO;IACP,eAAe,EAAE,QAAQ;IACzB,iBAAiB,EAAE,QAAQ;IAC3B,cAAc,EAAE,QAAQ;IACxB,6BAA6B,EAAE,QAAQ;IACvC,MAAM,EAAE,QAAQ;IAChB,QAAQ;IACR,oBAAoB,EAAE,QAAQ;IAC9B,iBAAiB,EAAE,QAAQ;IAC3B,WAAW;IACX,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;IAElB,sEAAsE;IACtE,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,qBAAqB,GAA8B;IACvD,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,WAAW,CAA4B;IAE/C,YAAY,MAA2D;QACrE,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,qBAAqB,CAAC,KAAK;YACnD,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM;YACtD,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,qBAAqB,CAAC,IAAI;SACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC;QAC5B,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -41,8 +41,6 @@ export declare class IntentEngine {
41
41
  private rulesCache;
42
42
  /** TreeIndex 推理检索结果缓存,key=projectPath:requirement,TTL=2min */
43
43
  private treeIndexCache;
44
- private static readonly CACHE_TTL_MS;
45
- private static readonly TREE_CACHE_TTL_MS;
46
44
  constructor(api: AIProvider, storage?: StorageEngine);
47
45
  /**
48
46
  * 触发离线规则提炼(每 20 次 Stop 调用一次)
@@ -56,8 +54,6 @@ export declare class IntentEngine {
56
54
  analyze(userPrompt: string, projectPath: string, techStack?: string, conversationHistory?: string, isForgeManaged?: boolean, activePlan?: ActivePlanSummary, userContext?: UserContext): Promise<IntentAnalysis>;
57
55
  /** 从 StorageEngine 获取规则库(带 TTL 缓存,避免每次 analyze 都查 DB) */
58
56
  private getRulesFromStorage;
59
- /** 清理三个缓存 Map 中已过期的条目 */
60
- private evictExpiredCache;
61
57
  /**
62
58
  * 快速放行:只过滤明确不涉及代码改动的操作。
63
59
  * @param hasConversation 是否有会话上下文(多轮对话中)。有上下文时短输入可能是确认回复,应交给 AI 判断。
@@ -1 +1 @@
1
- {"version":3,"file":"intent-engine.d.ts","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACjD,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAA8B;IACnD,mCAAmC;IACnC,OAAO,CAAC,cAAc,CAAyD;IAC/E,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAAyD;IAC/E,yCAAyC;IACzC,OAAO,CAAC,UAAU,CAAuK;IACzL,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAyD;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiB;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;gBAE9C,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa;IAOpD;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxD;;;;OAIG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,cAAc,CAAC,EAAE,OAAO,EACxB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC;IAkD1B,yDAAyD;IACzD,OAAO,CAAC,mBAAmB;IAU3B,yBAAyB;IACzB,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkEnB;;OAEG;YACW,SAAS;IA6GvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IAwBrB;;;OAGG;YACW,oBAAoB;IA8BlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD,WAAW,IAAI,UAAU;IAIzB;OACG;IACH,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;CAsB3D"}
1
+ {"version":3,"file":"intent-engine.d.ts","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKjE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACjD,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAA8B;IACnD,mCAAmC;IACnC,OAAO,CAAC,cAAc,CAA4F;IAClH,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAA4F;IAClH,yCAAyC;IACzC,OAAO,CAAC,UAAU,CAAsM;IACxN,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAA6F;gBAEvG,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa;IAOpD;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxD;;;;OAIG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,cAAc,CAAC,EAAE,OAAO,EACxB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC;IAiD1B,yDAAyD;IACzD,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkEnB;;OAEG;YACW,SAAS;IA6DvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IAwBrB;;;OAGG;YACW,oBAAoB;IA8BlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD,WAAW,IAAI,UAAU;IAIzB;OACG;IACH,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;CAsB3D"}
@@ -3,6 +3,8 @@ import path from 'path';
3
3
  import { logger } from '../utils/logger.js';
4
4
  import { TreeIndexEngine } from '../distill/tree-index.js';
5
5
  import { RuleDistiller } from './rule-distiller.js';
6
+ import { PromptRegistry } from '../prompts/registry.js';
7
+ import { memoryManager } from '../utils/memory-manager.js';
6
8
  /**
7
9
  * IntentEngine — 意图识别引擎
8
10
  *
@@ -15,15 +17,13 @@ export class IntentEngine {
15
17
  api;
16
18
  ruleDistiller = null;
17
19
  /** 项目结构缓存,TTL=2min,避免每次分析都读文件系统 */
18
- structureCache = new Map();
20
+ structureCache = memoryManager.register('intent:structure', { max: 50, ttl: 2 * 60_000 });
19
21
  /** decisions.md 内容缓存,TTL=5min */
20
- decisionsCache = new Map();
22
+ decisionsCache = memoryManager.register('intent:decisions', { max: 50, ttl: 5 * 60_000 });
21
23
  /** 意图规则缓存,TTL=5min,避免每次 analyze 都查 DB */
22
- rulesCache = new Map();
24
+ rulesCache = memoryManager.register('intent:rules', { max: 50, ttl: 5 * 60_000 });
23
25
  /** TreeIndex 推理检索结果缓存,key=projectPath:requirement,TTL=2min */
24
- treeIndexCache = new Map();
25
- static CACHE_TTL_MS = 5 * 60 * 1000; // 5min
26
- static TREE_CACHE_TTL_MS = 2 * 60 * 1000; // 2min
26
+ treeIndexCache = memoryManager.register('intent:treeIndex', { max: 100, ttl: 2 * 60_000 });
27
27
  constructor(api, storage) {
28
28
  this.api = api;
29
29
  if (storage) {
@@ -54,8 +54,7 @@ export class IntentEngine {
54
54
  logger.info(`快速判定:${quickResult.complexity} | 理由=${quickResult.reasoning}`);
55
55
  return quickResult;
56
56
  }
57
- // 清理过期缓存条目(每次 analyze 时执行,避免长期积累)
58
- this.evictExpiredCache();
57
+ // 清理过期缓存条目(memoryManager 自动处理 TTL,无需手动清理)
59
58
  // 规则库匹配(在 AI 分析之前,命中则跳过 AI 调用)
60
59
  if (this.ruleDistiller) {
61
60
  try {
@@ -95,33 +94,13 @@ export class IntentEngine {
95
94
  /** 从 StorageEngine 获取规则库(带 TTL 缓存,避免每次 analyze 都查 DB) */
96
95
  getRulesFromStorage(projectPath) {
97
96
  const cached = this.rulesCache.get(projectPath);
98
- if (cached && Date.now() < cached.expireAt)
99
- return cached.data;
97
+ if (cached)
98
+ return cached;
100
99
  // RuleDistiller 持有 storage 引用,通过它查询
101
100
  const data = this.ruleDistiller?.storage?.getIntentRules() ?? [];
102
- this.rulesCache.set(projectPath, { data, expireAt: Date.now() + IntentEngine.CACHE_TTL_MS });
101
+ this.rulesCache.set(projectPath, data);
103
102
  return data;
104
103
  }
105
- /** 清理三个缓存 Map 中已过期的条目 */
106
- evictExpiredCache() {
107
- const now = Date.now();
108
- for (const [key, entry] of this.structureCache) {
109
- if (now >= entry.expireAt)
110
- this.structureCache.delete(key);
111
- }
112
- for (const [key, entry] of this.decisionsCache) {
113
- if (now >= entry.expireAt)
114
- this.decisionsCache.delete(key);
115
- }
116
- for (const [key, entry] of this.rulesCache) {
117
- if (now >= entry.expireAt)
118
- this.rulesCache.delete(key);
119
- }
120
- for (const [key, entry] of this.treeIndexCache) {
121
- if (now >= entry.expireAt)
122
- this.treeIndexCache.delete(key);
123
- }
124
- }
125
104
  /**
126
105
  * 快速放行:只过滤明确不涉及代码改动的操作。
127
106
  * @param hasConversation 是否有会话上下文(多轮对话中)。有上下文时短输入可能是确认回复,应交给 AI 判断。
@@ -220,68 +199,19 @@ export class IntentEngine {
220
199
  - 如果用户是 expert 且 work_style 为 autonomous,降低 Pipeline 触发门槛
221
200
  `
222
201
  : '';
223
- const prompt = `你是一个 SDLC 意图分析引擎。请根据用户需求和项目实际情况,判断这个任务的复杂度和是否需要 Pipeline 编排。
224
-
225
- ## 用户输入
226
- ${userPrompt}
227
- ${historySection}${planSection}${userContextSection}
228
- ## 项目信息
229
- 路径: ${projectPath}
230
- ${techStack ? `技术栈: ${techStack}` : ''}
231
- ${projectStructure ? `项目结构:\n${projectStructure}` : ''}
232
- ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
233
-
234
- ## 判断逻辑(按优先级)
235
-
236
- 1. **这个需求是否涉及代码改动?**
237
- - 不涉及(纯对话、提问、查看、运行命令)→ simple
238
- - 涉及 → 继续判断
239
-
240
- 2. **改动范围有多大?**(结合项目结构推断)
241
- - 改 1-2 个文件,逻辑清晰 → simple,不需要编排
242
- - 改 3-5 个文件,改动模式明确,问题定位清晰 → moderate,不需要编排
243
- - 改动 6+ 个文件,或需求模糊需要先拆分 → complex,需要编排
244
-
245
- 3. **是否需要 Pipeline 编排?**(仅在以下情况启用)
246
- - 需求非常模糊,需要先 analyze 阶段梳理
247
- - 涉及多个模块的架构级改动,需要 design 阶段规划
248
- - 改动量大(10+ 文件)且需要任务拆分
249
- - 新功能开发需要完整的质量管控流程
250
-
251
- ## 重要原则
252
- - **优化/修复类任务**:即使涉及多个文件,只要问题定位明确、改动模式清晰,应判定为 moderate,不启动 Pipeline
253
- - **Bug 修复**:除非涉及架构级重构,否则都是 simple 或 moderate
254
- - **配置调整**:即使涉及多个配置文件,也是 moderate
255
- - **代码审查/优化**:如果是针对现有代码的优化,不是新功能开发,应判定为 moderate
256
-
257
- ## 输出格式(严格 JSON)
258
- {
259
- "complexity": "simple|moderate|complex",
260
- "requiresPipeline": true/false,
261
- "requirement": "提炼后的一句话需求",
262
- "reasoning": "判断理由:为什么是这个复杂度,预估改动哪些文件/模块,为什么需要或不需要编排",
263
- "estimatedFiles": 预估改动文件数(数字),
264
- "suggestedPhases": ["analyze", "design", "code", "test", "review"],
265
- "clarifyQuestions": ["需要向用户确认的问题(当需求不明确时)"],
266
- "searchKeywords": ["相关最佳实践关键词"],
267
- "confidence": 0.0-1.0 置信度(必填)
268
- }
269
-
270
- 注意:
271
- - simple 时 suggestedPhases 为空数组,requiresPipeline 为 false
272
- - moderate 时 requiresPipeline 为 false,suggestedPhases 可包含 code/test
273
- - complex 时 requiresPipeline 为 true,suggestedPhases 包含完整流程
274
- - clarifyQuestions 触发条件(满足任一即必须填写):
275
- * 需求中有歧义词("优化"、"改进"、"处理"、"搞一下"等,没有明确目标)
276
- * 涉及多个可能的实现方案,需要用户选择
277
- * 缺少关键信息(如目标文件、功能范围、技术选型)
278
- * 不满足以上条件时,clarifyQuestions 为空数组 []
279
- - confidence 置信度评估标准:
280
- * 0.8-1.0: 需求明确,改动范围清晰,有充分上下文支持
281
- * 0.6-0.8: 需求基本明确,但缺少部分细节或上下文
282
- * 0.4-0.6: 需求模糊,存在多种理解可能,建议主动澄清
283
- * 0.0-0.4: 需求严重不明确,必须澄清后才能继续
284
- - 只输出 JSON,不要其他内容`;
202
+ const techStackSection = techStack ? `技术栈: ${techStack}` : '';
203
+ const projectStructureSection = projectStructure ? `项目结构:\n${projectStructure}` : '';
204
+ const contextInfoSection = contextInfo ? `近期工作上下文: ${contextInfo}` : '';
205
+ const prompt = PromptRegistry.load('intent-analysis', {
206
+ userPrompt,
207
+ historySection,
208
+ planSection,
209
+ userContextSection,
210
+ projectPath,
211
+ techStackSection,
212
+ projectStructureSection,
213
+ contextInfoSection,
214
+ });
285
215
  const response = await this.api.complete(prompt, 'intent');
286
216
  return this.parseAnalysis(response, userPrompt);
287
217
  }
@@ -290,8 +220,8 @@ ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
290
220
  */
291
221
  getProjectStructure(projectPath) {
292
222
  const cached = this.structureCache.get(projectPath);
293
- if (cached && Date.now() < cached.expireAt)
294
- return cached.data;
223
+ if (cached)
224
+ return cached;
295
225
  try {
296
226
  if (!fs.existsSync(projectPath))
297
227
  return '';
@@ -329,7 +259,7 @@ ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
329
259
  }
330
260
  }
331
261
  const data = lines.join('\n');
332
- this.structureCache.set(projectPath, { data, expireAt: Date.now() + IntentEngine.CACHE_TTL_MS });
262
+ this.structureCache.set(projectPath, data);
333
263
  return data;
334
264
  }
335
265
  catch {
@@ -407,9 +337,9 @@ ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
407
337
  // 先查 TreeIndex 结果缓存
408
338
  const cacheKey = `${projectPath}:${requirement.slice(0, 100)}`;
409
339
  const cached = this.treeIndexCache.get(cacheKey);
410
- if (cached && Date.now() < cached.expireAt) {
340
+ if (cached) {
411
341
  logger.debug(`[意图引擎] TreeIndex 缓存命中`);
412
- return cached.data;
342
+ return cached;
413
343
  }
414
344
  // 优先走树索引推理检索
415
345
  try {
@@ -419,7 +349,7 @@ ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
419
349
  const result = await engine.search(index, requirement);
420
350
  if (result) {
421
351
  logger.debug(`[意图引擎] 树索引推理检索成功,返回 ${result.length} 字符`);
422
- this.treeIndexCache.set(cacheKey, { data: result, expireAt: Date.now() + IntentEngine.TREE_CACHE_TTL_MS });
352
+ this.treeIndexCache.set(cacheKey, result);
423
353
  return result;
424
354
  }
425
355
  }
@@ -434,8 +364,8 @@ ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
434
364
  */
435
365
  readDecisionsContextFallback(projectPath) {
436
366
  const cached = this.decisionsCache.get(projectPath);
437
- if (cached && Date.now() < cached.expireAt)
438
- return cached.data;
367
+ if (cached)
368
+ return cached;
439
369
  try {
440
370
  const decisionsPath = path.join(projectPath, '.claude-forge', 'decisions.md');
441
371
  if (!fs.existsSync(decisionsPath))
@@ -443,7 +373,7 @@ ${contextInfo ? `近期工作上下文: ${contextInfo}` : ''}
443
373
  const content = fs.readFileSync(decisionsPath, 'utf-8');
444
374
  // 只取最近的内容,避免 prompt 过长
445
375
  const data = content.trim();
446
- this.decisionsCache.set(projectPath, { data, expireAt: Date.now() + IntentEngine.CACHE_TTL_MS });
376
+ this.decisionsCache.set(projectPath, data);
447
377
  return data;
448
378
  }
449
379
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"intent-engine.js","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA0BpD;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACf,GAAG,CAAa;IAChB,aAAa,GAAyB,IAAI,CAAC;IACnD,mCAAmC;IAC3B,cAAc,GAAG,IAAI,GAAG,EAA8C,CAAC;IAC/E,iCAAiC;IACzB,cAAc,GAAG,IAAI,GAAG,EAA8C,CAAC;IAC/E,yCAAyC;IACjC,UAAU,GAAG,IAAI,GAAG,EAA4J,CAAC;IACzL,8DAA8D;IACtD,cAAc,GAAG,IAAI,GAAG,EAA8C,CAAC;IACvE,MAAM,CAAU,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO;IACrD,MAAM,CAAU,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO;IAElE,YAAY,GAAe,EAAE,OAAuB;QAClD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjE,4BAA4B;QAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CACX,UAAkB,EAClB,WAAmB,EACnB,SAAkB,EAClB,mBAA4B,EAC5B,cAAwB,EACxB,UAA8B,EAC9B,WAAyB;QAEzB,iBAAiB;QACjB,uCAAuC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACxE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,UAAU,SAAS,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5E,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,+BAA+B;QAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBACpE,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,UAAU,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;wBACrF,OAAO,UAAU,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAEtH,0DAA0D;YAC1D,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChI,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACrE,OAAO;oBACL,GAAG,MAAM;oBACT,UAAU,EAAE,QAAQ;oBACpB,gBAAgB,EAAE,KAAK;oBACvB,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;iBAChG,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,yDAAyD;IACjD,mBAAmB,CAAC,WAAmB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QAE/D,oCAAoC;QACpC,MAAM,IAAI,GAAI,IAAI,CAAC,aAAkM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACvP,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB;IACjB,iBAAiB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,MAAc,EAAE,eAAwB;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAE1C,8CAA8C;QAC9C,MAAM,eAAe,GAAG,mEAAmE,CAAC;QAC5F,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,CAAC,iBAAiB;QAChC,CAAC;QAED,iBAAiB;QACjB,MAAM,oBAAoB,GAAG;YAC3B,yCAAyC;YACzC,4CAA4C;YAC5C,0BAA0B;YAC1B,kCAAkC;SACnC,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,QAAQ;oBACpB,gBAAgB,EAAE,KAAK;oBACvB,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,gBAAgB;oBAC3B,cAAc,EAAE,CAAC;oBACjB,eAAe,EAAE,EAAE;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,eAAe,GAAG;YACtB,yDAAyD;YACzD,mDAAmD;YACnD,uCAAuC;SACxC,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,QAAQ;oBACpB,gBAAgB,EAAE,KAAK;oBACvB,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,qBAAqB;oBAChC,cAAc,EAAE,CAAC;oBACjB,eAAe,EAAE,EAAE;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,yEAAyE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5G,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,OAAO;oBACL,UAAU,EAAE,QAAQ;oBACpB,gBAAgB,EAAE,KAAK;oBACvB,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,0BAA0B;oBACrC,cAAc,EAAE,CAAC;oBACjB,eAAe,EAAE,EAAE;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,WAAW;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CACrB,UAAkB,EAClB,WAAmB,EACnB,SAAkB,EAClB,mBAA4B,EAC5B,UAA8B,EAC9B,WAAyB;QAEzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE/D,MAAM,cAAc,GAAG,mBAAmB;YACxC,CAAC,CAAC,yBAAyB,mBAAmB,IAAI;YAClD,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,WAAW,GAAG,UAAU;YAC5B,CAAC,CAAC;QACA,UAAU,CAAC,OAAO;QAClB,UAAU,CAAC,KAAK;SACf,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;SAC9F,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;OAC1F,UAAU,CAAC,SAAS;;;CAG1B;YACK,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,kBAAkB,GAAG,WAAW;YACpC,CAAC,CAAC;QACA,WAAW,CAAC,UAAU;QACtB,WAAW,CAAC,gBAAgB;YACxB,CAAC,WAAW,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACpC,CAAC,WAAW,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;WACjD,CAAC,WAAW,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;;CAMzD;YACK,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,MAAM,GAAG;;;EAGjB,UAAU;EACV,cAAc,GAAG,WAAW,GAAG,kBAAkB;;MAE7C,WAAW;EACf,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;EACpC,gBAAgB,CAAC,CAAC,CAAC,UAAU,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE;EACpD,WAAW,CAAC,CAAC,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoD5B,CAAC;QAEf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,WAAmB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QAE/D,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE3C,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAErE,cAAc;YACd,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE5I,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBAC1E,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAEvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE5D,0BAA0B;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,MAAM,OAAO,GAAG,UAAU;qBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;qBACvD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;YACjG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,MAAc,EAAE,cAAwB;QAC9D,wBAAwB;QACxB,MAAM,SAAS,GAAG,yEAAyE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzG,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,UAAU,EAAE,QAAQ;gBACpB,gBAAgB,EAAE,KAAK;gBACvB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,2BAA2B;gBACtC,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,EAAE;aACpB,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO;gBACL,UAAU,EAAE,UAAU;gBACtB,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,gDAAgD;gBAC3D,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,UAAU;YACtB,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,6BAA6B;YACxC,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,QAAgB,EAAE,cAAsB;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,UAAU;gBAC3C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;gBAClD,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,cAAc;gBACjD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;gBACjC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC;gBAC1C,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;gBAC7C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aAClF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,WAAmB;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QAE9E,oBAAoB;QACpB,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,aAAa;QACb,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACvD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;oBACxD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC;oBAC3G,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QAED,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,4BAA4B,CAAC,WAAmB;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACxD,uBAAuB;YACvB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;YACjG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,WAAmB;QAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;OACG;IACH,iBAAiB,CAAC,QAAwB;QACxC,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAEnD,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
1
+ {"version":3,"file":"intent-engine.js","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { PipelinePhase } from '../pipeline/types.js';
2
+ export type IssueStatus = 'open' | 'in_progress' | 'resolved' | 'wontfix';
3
+ export type IssueCategory = 'requirement_ambiguity' | 'architecture_conflict' | 'design_gap' | 'code_quality' | 'security' | 'test_coverage' | 'performance' | 'risk_unhandled';
4
+ export interface TrackedIssue {
5
+ id: string;
6
+ pipelineId: string;
7
+ sourcePhase: PipelinePhase;
8
+ category: IssueCategory;
9
+ level: 'warn' | 'fail';
10
+ message: string;
11
+ suggestion?: string;
12
+ status: IssueStatus;
13
+ fixAttempts: number;
14
+ forgeFixApplied: boolean;
15
+ filePath?: string;
16
+ resolvedAtPhase?: PipelinePhase;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ export interface IssueSummary {
21
+ total: number;
22
+ resolved: number;
23
+ wontfix: number;
24
+ open: number;
25
+ byCategory: Partial<Record<IssueCategory, number>>;
26
+ }
27
+ /**
28
+ * IssueTracker — 跨阶段问题台账
29
+ *
30
+ * 纯内存实现,Pipeline 完成时由 PipelineReportGenerator 写入 decisions.md。
31
+ * 每个 Pipeline 独立隔离,通过 pipelineId 区分。
32
+ */
33
+ export declare class IssueTracker {
34
+ private issues;
35
+ add(pipelineId: string, sourcePhase: PipelinePhase, category: IssueCategory, level: 'warn' | 'fail', message: string, suggestion?: string, filePath?: string): TrackedIssue;
36
+ resolve(issueId: string, resolvedAtPhase: PipelinePhase): void;
37
+ wontfix(issueId: string): void;
38
+ /** 增加修复尝试次数,返回新值 */
39
+ incrementFixAttempts(issueId: string): number;
40
+ markForgeFixed(issueId: string): void;
41
+ /** 获取指定阶段发现的 open/in_progress 问题 */
42
+ getOpenByPhase(pipelineId: string, sourcePhase: PipelinePhase): TrackedIssue[];
43
+ /** 获取指定 Pipeline 的所有问题(含所有状态) */
44
+ getAll(pipelineId: string): TrackedIssue[];
45
+ getSummary(pipelineId: string): IssueSummary;
46
+ resetForPipeline(pipelineId: string): void;
47
+ }
48
+ //# sourceMappingURL=issue-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-tracker.d.ts","sourceRoot":"","sources":["../../src/autopilot/issue-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,aAAa,GACrB,uBAAuB,GACvB,uBAAuB,GACvB,YAAY,GACZ,cAAc,GACd,UAAU,GACV,eAAe,GACf,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,aAAa,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAmC;IAEjD,GAAG,CACD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY;IAsBf,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,GAAG,IAAI;IAQ9D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO9B,oBAAoB;IACpB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAS7C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOrC,oCAAoC;IACpC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,GAAG,YAAY,EAAE;IAQ9E,iCAAiC;IACjC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,EAAE;IAI1C,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAe5C,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAO3C"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * IssueTracker — 跨阶段问题台账
3
+ *
4
+ * 纯内存实现,Pipeline 完成时由 PipelineReportGenerator 写入 decisions.md。
5
+ * 每个 Pipeline 独立隔离,通过 pipelineId 区分。
6
+ */
7
+ export class IssueTracker {
8
+ issues = new Map();
9
+ add(pipelineId, sourcePhase, category, level, message, suggestion, filePath) {
10
+ const id = `issue_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
11
+ const now = new Date().toISOString();
12
+ const issue = {
13
+ id,
14
+ pipelineId,
15
+ sourcePhase,
16
+ category,
17
+ level,
18
+ message,
19
+ suggestion,
20
+ status: 'open',
21
+ fixAttempts: 0,
22
+ forgeFixApplied: false,
23
+ filePath,
24
+ createdAt: now,
25
+ updatedAt: now,
26
+ };
27
+ this.issues.set(id, issue);
28
+ return issue;
29
+ }
30
+ resolve(issueId, resolvedAtPhase) {
31
+ const issue = this.issues.get(issueId);
32
+ if (!issue)
33
+ return;
34
+ issue.status = 'resolved';
35
+ issue.resolvedAtPhase = resolvedAtPhase;
36
+ issue.updatedAt = new Date().toISOString();
37
+ }
38
+ wontfix(issueId) {
39
+ const issue = this.issues.get(issueId);
40
+ if (!issue)
41
+ return;
42
+ issue.status = 'wontfix';
43
+ issue.updatedAt = new Date().toISOString();
44
+ }
45
+ /** 增加修复尝试次数,返回新值 */
46
+ incrementFixAttempts(issueId) {
47
+ const issue = this.issues.get(issueId);
48
+ if (!issue)
49
+ return 0;
50
+ issue.fixAttempts += 1;
51
+ issue.status = 'in_progress';
52
+ issue.updatedAt = new Date().toISOString();
53
+ return issue.fixAttempts;
54
+ }
55
+ markForgeFixed(issueId) {
56
+ const issue = this.issues.get(issueId);
57
+ if (!issue)
58
+ return;
59
+ issue.forgeFixApplied = true;
60
+ issue.updatedAt = new Date().toISOString();
61
+ }
62
+ /** 获取指定阶段发现的 open/in_progress 问题 */
63
+ getOpenByPhase(pipelineId, sourcePhase) {
64
+ return [...this.issues.values()].filter(i => i.pipelineId === pipelineId &&
65
+ i.sourcePhase === sourcePhase &&
66
+ (i.status === 'open' || i.status === 'in_progress'));
67
+ }
68
+ /** 获取指定 Pipeline 的所有问题(含所有状态) */
69
+ getAll(pipelineId) {
70
+ return [...this.issues.values()].filter(i => i.pipelineId === pipelineId);
71
+ }
72
+ getSummary(pipelineId) {
73
+ const all = this.getAll(pipelineId);
74
+ const byCategory = {};
75
+ for (const issue of all) {
76
+ byCategory[issue.category] = (byCategory[issue.category] ?? 0) + 1;
77
+ }
78
+ return {
79
+ total: all.length,
80
+ resolved: all.filter(i => i.status === 'resolved').length,
81
+ wontfix: all.filter(i => i.status === 'wontfix').length,
82
+ open: all.filter(i => i.status === 'open' || i.status === 'in_progress').length,
83
+ byCategory,
84
+ };
85
+ }
86
+ resetForPipeline(pipelineId) {
87
+ for (const [id, issue] of this.issues) {
88
+ if (issue.pipelineId === pipelineId) {
89
+ this.issues.delete(id);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=issue-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-tracker.js","sourceRoot":"","sources":["../../src/autopilot/issue-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Pipeline, PipelinePhase } from '../pipeline/types.js';
2
+ import { IssueTracker, type TrackedIssue } from './issue-tracker.js';
3
+ export type PhaseGapAction = 'ask_user' | 'backfill_design' | 'check_risks' | 'none';
4
+ export interface PhaseGapResult {
5
+ action: PhaseGapAction;
6
+ issues: TrackedIssue[];
7
+ systemMessage?: string;
8
+ }
9
+ /**
10
+ * PhaseGapDetector — 跨阶段补充触发器
11
+ *
12
+ * 在阶段推进时检测上一阶段遗留的 open 问题,决定是否需要暂停追问或注入补充指令。
13
+ *
14
+ * 规则:
15
+ * - analyze→design:有 requirement_ambiguity open 问题 → ask_user(暂停追问)
16
+ * - design→code:有 architecture_conflict/design_gap open 问题 → backfill_design(注入指令,不阻断)
17
+ * - code→test:有 risk_unhandled open 问题 → check_risks(注入指令,不阻断)
18
+ * - 其他:none
19
+ */
20
+ export declare class PhaseGapDetector {
21
+ private issueTracker;
22
+ constructor(issueTracker: IssueTracker);
23
+ detect(pipeline: Pipeline, fromPhase: PipelinePhase, toPhase: PipelinePhase): PhaseGapResult;
24
+ }
25
+ //# sourceMappingURL=phase-gap-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-gap-detector.d.ts","sourceRoot":"","sources":["../../src/autopilot/phase-gap-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,iBAAiB,GAAG,aAAa,GAAG,MAAM,CAAC;AAErF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAE9C,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,cAAc;CAoE7F"}