@mcp-graph-workflow/mcp-graph 5.1.5 → 5.2.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 (228) hide show
  1. package/dist/core/analyzer/ac-parser.d.ts +7 -0
  2. package/dist/core/analyzer/ac-parser.d.ts.map +1 -0
  3. package/dist/core/analyzer/ac-parser.js +67 -0
  4. package/dist/core/analyzer/ac-parser.js.map +1 -0
  5. package/dist/core/analyzer/ac-validator.d.ts +15 -0
  6. package/dist/core/analyzer/ac-validator.d.ts.map +1 -0
  7. package/dist/core/analyzer/ac-validator.js +142 -0
  8. package/dist/core/analyzer/ac-validator.js.map +1 -0
  9. package/dist/core/analyzer/definition-of-ready.d.ts +16 -0
  10. package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -0
  11. package/dist/core/analyzer/definition-of-ready.js +107 -0
  12. package/dist/core/analyzer/definition-of-ready.js.map +1 -0
  13. package/dist/core/analyzer/prd-quality.d.ts +14 -0
  14. package/dist/core/analyzer/prd-quality.d.ts.map +1 -0
  15. package/dist/core/analyzer/prd-quality.js +156 -0
  16. package/dist/core/analyzer/prd-quality.js.map +1 -0
  17. package/dist/core/analyzer/risk-assessment.d.ts +11 -0
  18. package/dist/core/analyzer/risk-assessment.d.ts.map +1 -0
  19. package/dist/core/analyzer/risk-assessment.js +97 -0
  20. package/dist/core/analyzer/risk-assessment.js.map +1 -0
  21. package/dist/core/analyzer/scope-analyzer.d.ts +7 -0
  22. package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -0
  23. package/dist/core/analyzer/scope-analyzer.js +99 -0
  24. package/dist/core/analyzer/scope-analyzer.js.map +1 -0
  25. package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
  26. package/dist/core/config/ai-memory-generator.js +8 -11
  27. package/dist/core/config/ai-memory-generator.js.map +1 -1
  28. package/dist/core/context/context-assembler.d.ts +3 -0
  29. package/dist/core/context/context-assembler.d.ts.map +1 -1
  30. package/dist/core/context/context-assembler.js +5 -2
  31. package/dist/core/context/context-assembler.js.map +1 -1
  32. package/dist/core/context/rag-context.d.ts +4 -2
  33. package/dist/core/context/rag-context.d.ts.map +1 -1
  34. package/dist/core/context/rag-context.js +8 -5
  35. package/dist/core/context/rag-context.js.map +1 -1
  36. package/dist/core/designer/adr-validator.d.ts +8 -0
  37. package/dist/core/designer/adr-validator.d.ts.map +1 -0
  38. package/dist/core/designer/adr-validator.js +61 -0
  39. package/dist/core/designer/adr-validator.js.map +1 -0
  40. package/dist/core/designer/coupling-analyzer.d.ts +7 -0
  41. package/dist/core/designer/coupling-analyzer.d.ts.map +1 -0
  42. package/dist/core/designer/coupling-analyzer.js +59 -0
  43. package/dist/core/designer/coupling-analyzer.js.map +1 -0
  44. package/dist/core/designer/definition-of-ready.d.ts +8 -0
  45. package/dist/core/designer/definition-of-ready.d.ts.map +1 -0
  46. package/dist/core/designer/definition-of-ready.js +146 -0
  47. package/dist/core/designer/definition-of-ready.js.map +1 -0
  48. package/dist/core/designer/interface-checker.d.ts +7 -0
  49. package/dist/core/designer/interface-checker.d.ts.map +1 -0
  50. package/dist/core/designer/interface-checker.js +53 -0
  51. package/dist/core/designer/interface-checker.js.map +1 -0
  52. package/dist/core/designer/tech-risk-assessor.d.ts +7 -0
  53. package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -0
  54. package/dist/core/designer/tech-risk-assessor.js +95 -0
  55. package/dist/core/designer/tech-risk-assessor.js.map +1 -0
  56. package/dist/core/designer/traceability-matrix.d.ts +8 -0
  57. package/dist/core/designer/traceability-matrix.d.ts.map +1 -0
  58. package/dist/core/designer/traceability-matrix.js +67 -0
  59. package/dist/core/designer/traceability-matrix.js.map +1 -0
  60. package/dist/core/events/event-types.d.ts +11 -1
  61. package/dist/core/events/event-types.d.ts.map +1 -1
  62. package/dist/core/handoff/delivery-checklist.d.ts +10 -0
  63. package/dist/core/handoff/delivery-checklist.d.ts.map +1 -0
  64. package/dist/core/handoff/delivery-checklist.js +148 -0
  65. package/dist/core/handoff/delivery-checklist.js.map +1 -0
  66. package/dist/core/handoff/doc-completeness.d.ts +7 -0
  67. package/dist/core/handoff/doc-completeness.d.ts.map +1 -0
  68. package/dist/core/handoff/doc-completeness.js +19 -0
  69. package/dist/core/handoff/doc-completeness.js.map +1 -0
  70. package/dist/core/implementer/definition-of-done.d.ts +11 -0
  71. package/dist/core/implementer/definition-of-done.d.ts.map +1 -0
  72. package/dist/core/implementer/definition-of-done.js +158 -0
  73. package/dist/core/implementer/definition-of-done.js.map +1 -0
  74. package/dist/core/implementer/sprint-progress.d.ts +11 -0
  75. package/dist/core/implementer/sprint-progress.d.ts.map +1 -0
  76. package/dist/core/implementer/sprint-progress.js +80 -0
  77. package/dist/core/implementer/sprint-progress.js.map +1 -0
  78. package/dist/core/implementer/tdd-checker.d.ts +15 -0
  79. package/dist/core/implementer/tdd-checker.d.ts.map +1 -0
  80. package/dist/core/implementer/tdd-checker.js +132 -0
  81. package/dist/core/implementer/tdd-checker.js.map +1 -0
  82. package/dist/core/listener/backlog-health.d.ts +7 -0
  83. package/dist/core/listener/backlog-health.d.ts.map +1 -0
  84. package/dist/core/listener/backlog-health.js +64 -0
  85. package/dist/core/listener/backlog-health.js.map +1 -0
  86. package/dist/core/listener/feedback-readiness.d.ts +11 -0
  87. package/dist/core/listener/feedback-readiness.d.ts.map +1 -0
  88. package/dist/core/listener/feedback-readiness.js +124 -0
  89. package/dist/core/listener/feedback-readiness.js.map +1 -0
  90. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  91. package/dist/core/planner/lifecycle-phase.js +78 -50
  92. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  93. package/dist/core/rag/phase-metadata.d.ts +23 -0
  94. package/dist/core/rag/phase-metadata.d.ts.map +1 -0
  95. package/dist/core/rag/phase-metadata.js +72 -0
  96. package/dist/core/rag/phase-metadata.js.map +1 -0
  97. package/dist/core/rag/phase-summary.d.ts +17 -0
  98. package/dist/core/rag/phase-summary.d.ts.map +1 -0
  99. package/dist/core/rag/phase-summary.js +104 -0
  100. package/dist/core/rag/phase-summary.js.map +1 -0
  101. package/dist/core/rag/prd-indexer.d.ts +16 -0
  102. package/dist/core/rag/prd-indexer.d.ts.map +1 -0
  103. package/dist/core/rag/prd-indexer.js +37 -0
  104. package/dist/core/rag/prd-indexer.js.map +1 -0
  105. package/dist/core/reviewer/review-readiness.d.ts +8 -0
  106. package/dist/core/reviewer/review-readiness.d.ts.map +1 -0
  107. package/dist/core/reviewer/review-readiness.js +159 -0
  108. package/dist/core/reviewer/review-readiness.js.map +1 -0
  109. package/dist/core/store/knowledge-store.d.ts +9 -0
  110. package/dist/core/store/knowledge-store.d.ts.map +1 -1
  111. package/dist/core/store/knowledge-store.js +22 -0
  112. package/dist/core/store/knowledge-store.js.map +1 -1
  113. package/dist/core/validator/definition-of-ready.d.ts +8 -0
  114. package/dist/core/validator/definition-of-ready.d.ts.map +1 -0
  115. package/dist/core/validator/definition-of-ready.js +155 -0
  116. package/dist/core/validator/definition-of-ready.js.map +1 -0
  117. package/dist/core/validator/done-integrity-checker.d.ts +7 -0
  118. package/dist/core/validator/done-integrity-checker.d.ts.map +1 -0
  119. package/dist/core/validator/done-integrity-checker.js +38 -0
  120. package/dist/core/validator/done-integrity-checker.js.map +1 -0
  121. package/dist/core/validator/status-flow-checker.d.ts +7 -0
  122. package/dist/core/validator/status-flow-checker.d.ts.map +1 -0
  123. package/dist/core/validator/status-flow-checker.js +26 -0
  124. package/dist/core/validator/status-flow-checker.js.map +1 -0
  125. package/dist/mcp/lifecycle-wrapper.d.ts +9 -0
  126. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  127. package/dist/mcp/lifecycle-wrapper.js +27 -2
  128. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  129. package/dist/mcp/tools/{stats.d.ts → analyze.d.ts} +2 -2
  130. package/dist/mcp/tools/analyze.d.ts.map +1 -0
  131. package/dist/mcp/tools/analyze.js +272 -0
  132. package/dist/mcp/tools/analyze.js.map +1 -0
  133. package/dist/mcp/tools/import-prd.d.ts.map +1 -1
  134. package/dist/mcp/tools/import-prd.js +15 -1
  135. package/dist/mcp/tools/import-prd.js.map +1 -1
  136. package/dist/mcp/tools/index.d.ts.map +1 -1
  137. package/dist/mcp/tools/index.js +6 -10
  138. package/dist/mcp/tools/index.js.map +1 -1
  139. package/dist/mcp/tools/{velocity.d.ts → metrics.d.ts} +2 -2
  140. package/dist/mcp/tools/metrics.d.ts.map +1 -0
  141. package/dist/mcp/tools/metrics.js +69 -0
  142. package/dist/mcp/tools/metrics.js.map +1 -0
  143. package/dist/mcp/tools/next.d.ts.map +1 -1
  144. package/dist/mcp/tools/next.js +19 -5
  145. package/dist/mcp/tools/next.js.map +1 -1
  146. package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
  147. package/dist/mcp/tools/plan-sprint.js +20 -0
  148. package/dist/mcp/tools/plan-sprint.js.map +1 -1
  149. package/dist/mcp/tools/rag-context.d.ts.map +1 -1
  150. package/dist/mcp/tools/rag-context.js +20 -5
  151. package/dist/mcp/tools/rag-context.js.map +1 -1
  152. package/dist/mcp/tools/set-phase.d.ts.map +1 -1
  153. package/dist/mcp/tools/set-phase.js +16 -1
  154. package/dist/mcp/tools/set-phase.js.map +1 -1
  155. package/dist/mcp/tools/update-status.d.ts.map +1 -1
  156. package/dist/mcp/tools/update-status.js +21 -6
  157. package/dist/mcp/tools/update-status.js.map +1 -1
  158. package/dist/mcp/tools/{decompose.d.ts → validate-ac.d.ts} +2 -2
  159. package/dist/mcp/tools/validate-ac.d.ts.map +1 -0
  160. package/dist/mcp/tools/validate-ac.js +23 -0
  161. package/dist/mcp/tools/validate-ac.js.map +1 -0
  162. package/dist/schemas/ac-quality-schema.d.ts +90 -0
  163. package/dist/schemas/ac-quality-schema.d.ts.map +1 -0
  164. package/dist/schemas/ac-quality-schema.js +34 -0
  165. package/dist/schemas/ac-quality-schema.js.map +1 -0
  166. package/dist/schemas/analyzer-schema.d.ts +160 -0
  167. package/dist/schemas/analyzer-schema.d.ts.map +1 -0
  168. package/dist/schemas/analyzer-schema.js +74 -0
  169. package/dist/schemas/analyzer-schema.js.map +1 -0
  170. package/dist/schemas/designer-schema.d.ts +259 -0
  171. package/dist/schemas/designer-schema.d.ts.map +1 -0
  172. package/dist/schemas/designer-schema.js +102 -0
  173. package/dist/schemas/designer-schema.js.map +1 -0
  174. package/dist/schemas/handoff-schema.d.ts +49 -0
  175. package/dist/schemas/handoff-schema.d.ts.map +1 -0
  176. package/dist/schemas/handoff-schema.js +28 -0
  177. package/dist/schemas/handoff-schema.js.map +1 -0
  178. package/dist/schemas/implementer-schema.d.ts +187 -0
  179. package/dist/schemas/implementer-schema.d.ts.map +1 -0
  180. package/dist/schemas/implementer-schema.js +80 -0
  181. package/dist/schemas/implementer-schema.js.map +1 -0
  182. package/dist/schemas/knowledge.schema.d.ts +8 -0
  183. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  184. package/dist/schemas/knowledge.schema.js +1 -1
  185. package/dist/schemas/knowledge.schema.js.map +1 -1
  186. package/dist/schemas/listener-schema.d.ts +62 -0
  187. package/dist/schemas/listener-schema.d.ts.map +1 -0
  188. package/dist/schemas/listener-schema.js +35 -0
  189. package/dist/schemas/listener-schema.js.map +1 -0
  190. package/dist/schemas/reviewer-schema.d.ts +34 -0
  191. package/dist/schemas/reviewer-schema.d.ts.map +1 -0
  192. package/dist/schemas/reviewer-schema.js +17 -0
  193. package/dist/schemas/reviewer-schema.js.map +1 -0
  194. package/dist/schemas/validator-schema.d.ts +79 -0
  195. package/dist/schemas/validator-schema.d.ts.map +1 -0
  196. package/dist/schemas/validator-schema.js +43 -0
  197. package/dist/schemas/validator-schema.js.map +1 -0
  198. package/dist/web/dashboard/dist/assets/{benchmark-tab-DzYj_lJO.js → benchmark-tab-DE6hAHVG.js} +1 -1
  199. package/dist/web/dashboard/dist/assets/{gitnexus-tab-B16kDpcc.js → gitnexus-tab-DsBjJHx8.js} +1 -1
  200. package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +1 -0
  201. package/dist/web/dashboard/dist/assets/{graph-utils-CETPf3Qj.js → graph-utils-D4LFspTf.js} +5 -5
  202. package/dist/web/dashboard/dist/assets/{index-DLehETrJ.js → index-B2fTJ4AS.js} +2 -2
  203. package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +1 -0
  204. package/dist/web/dashboard/dist/assets/{insights-tab-MkpvetqF.js → insights-tab-Bm7CDckb.js} +1 -1
  205. package/dist/web/dashboard/dist/assets/{logs-tab-BPDyVj2B.js → logs-tab-Cxpcv_ni.js} +1 -1
  206. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-DbnFo6Ve.js → prd-backlog-tab-X84Rj-IB.js} +1 -1
  207. package/dist/web/dashboard/dist/assets/{serena-tab-CLJOpG5i.js → serena-tab-BunULNvw.js} +1 -1
  208. package/dist/web/dashboard/dist/index.html +2 -2
  209. package/package.json +1 -1
  210. package/dist/mcp/tools/bulk-update-status.d.ts +0 -4
  211. package/dist/mcp/tools/bulk-update-status.d.ts.map +0 -1
  212. package/dist/mcp/tools/bulk-update-status.js +0 -22
  213. package/dist/mcp/tools/bulk-update-status.js.map +0 -1
  214. package/dist/mcp/tools/decompose.d.ts.map +0 -1
  215. package/dist/mcp/tools/decompose.js +0 -25
  216. package/dist/mcp/tools/decompose.js.map +0 -1
  217. package/dist/mcp/tools/dependencies.d.ts +0 -4
  218. package/dist/mcp/tools/dependencies.d.ts.map +0 -1
  219. package/dist/mcp/tools/dependencies.js +0 -47
  220. package/dist/mcp/tools/dependencies.js.map +0 -1
  221. package/dist/mcp/tools/stats.d.ts.map +0 -1
  222. package/dist/mcp/tools/stats.js +0 -46
  223. package/dist/mcp/tools/stats.js.map +0 -1
  224. package/dist/mcp/tools/velocity.d.ts.map +0 -1
  225. package/dist/mcp/tools/velocity.js +0 -25
  226. package/dist/mcp/tools/velocity.js.map +0 -1
  227. package/dist/web/dashboard/dist/assets/graph-tab-bgRao3Qi.js +0 -1
  228. package/dist/web/dashboard/dist/assets/index-D4nxPvv8.css +0 -1
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Feedback Readiness — composite gate for HANDOFF→LISTENING transition.
3
+ */
4
+ import { analyzeScope } from "../analyzer/scope-analyzer.js";
5
+ import { calculateVelocity } from "../planner/velocity.js";
6
+ import { analyzeBacklogHealth } from "./backlog-health.js";
7
+ import { logger } from "../utils/logger.js";
8
+ const TASK_TYPES = new Set(["task", "subtask"]);
9
+ function scoreToGrade(score) {
10
+ if (score >= 90)
11
+ return "A";
12
+ if (score >= 75)
13
+ return "B";
14
+ if (score >= 60)
15
+ return "C";
16
+ if (score >= 40)
17
+ return "D";
18
+ return "F";
19
+ }
20
+ export function checkListeningReadiness(doc, opts) {
21
+ const checks = [];
22
+ const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
23
+ const doneTasks = tasks.filter((n) => n.status === "done");
24
+ // ── Required checks ──
25
+ // 1. all_tasks_done — 100% tasks done
26
+ const allDone = tasks.length > 0 && tasks.every((n) => n.status === "done");
27
+ checks.push({
28
+ name: "all_tasks_done",
29
+ passed: allDone,
30
+ details: allDone
31
+ ? "Todas tasks done"
32
+ : `${doneTasks.length}/${tasks.length} tasks done (100% requerido)`,
33
+ severity: "required",
34
+ });
35
+ // 2. has_snapshot — snapshot exists (recommended in gate context, required via analyze mode)
36
+ const hasSnapshots = opts?.hasSnapshots ?? false;
37
+ checks.push({
38
+ name: "has_snapshot",
39
+ passed: hasSnapshots,
40
+ details: hasSnapshots
41
+ ? "Snapshot do grafo existe"
42
+ : "Nenhum snapshot encontrado",
43
+ severity: "recommended",
44
+ });
45
+ // 3. no_in_progress — zero in_progress tasks
46
+ const inProgressTasks = tasks.filter((n) => n.status === "in_progress");
47
+ const noInProgress = inProgressTasks.length === 0;
48
+ checks.push({
49
+ name: "no_in_progress",
50
+ passed: noInProgress,
51
+ details: noInProgress
52
+ ? "Nenhuma task in_progress"
53
+ : `${inProgressTasks.length} task(s) ainda in_progress`,
54
+ severity: "required",
55
+ });
56
+ // 4. no_blocked — zero blocked tasks
57
+ const blockedTasks = tasks.filter((n) => n.status === "blocked" || n.blocked === true);
58
+ const noBlocked = blockedTasks.length === 0;
59
+ checks.push({
60
+ name: "no_blocked",
61
+ passed: noBlocked,
62
+ details: noBlocked
63
+ ? "Nenhuma task bloqueada"
64
+ : `${blockedTasks.length} task(s) bloqueada(s)`,
65
+ severity: "required",
66
+ });
67
+ // ── Recommended checks ──
68
+ // 5. velocity_trend — ≥2 sprints with velocity data
69
+ const velocity = calculateVelocity(doc);
70
+ const velocityPass = velocity.sprints.length >= 2;
71
+ checks.push({
72
+ name: "velocity_trend",
73
+ passed: velocityPass,
74
+ details: velocityPass
75
+ ? `${velocity.sprints.length} sprints com dados de velocidade`
76
+ : `Apenas ${velocity.sprints.length} sprint(s) com dados (meta: ≥2)`,
77
+ severity: "recommended",
78
+ });
79
+ // 6. knowledge_indexed — knowledge count > 0
80
+ const knowledgeCount = opts?.knowledgeCount ?? 0;
81
+ const knowledgePass = knowledgeCount > 0;
82
+ checks.push({
83
+ name: "knowledge_indexed",
84
+ passed: knowledgePass,
85
+ details: knowledgePass
86
+ ? `${knowledgeCount} conhecimento(s) indexado(s)`
87
+ : "Nenhum conhecimento indexado",
88
+ severity: "recommended",
89
+ });
90
+ // 7. no_orphan_requirements — zero requirements without linked tasks
91
+ const scopeAnalysis = analyzeScope(doc);
92
+ const orphanReqs = scopeAnalysis.orphans.filter((o) => o.type === "requirement");
93
+ const noOrphanReqs = orphanReqs.length === 0;
94
+ checks.push({
95
+ name: "no_orphan_requirements",
96
+ passed: noOrphanReqs,
97
+ details: noOrphanReqs
98
+ ? "Todos requirements linkados a tasks"
99
+ : `${orphanReqs.length} requirement(s) sem tasks linkadas`,
100
+ severity: "recommended",
101
+ });
102
+ // 8. backlog_health — clean backlog for new cycle
103
+ const healthReport = analyzeBacklogHealth(doc);
104
+ checks.push({
105
+ name: "backlog_health",
106
+ passed: healthReport.cleanForNewCycle,
107
+ details: healthReport.cleanForNewCycle
108
+ ? "Backlog limpo para novo ciclo"
109
+ : `${healthReport.staleTasks.length} task(s) stale, ${healthReport.techDebtIndicators.length} indicador(es) de tech debt`,
110
+ severity: "recommended",
111
+ });
112
+ // ── Scoring ──
113
+ const totalChecks = checks.length;
114
+ const passedChecks = checks.filter((c) => c.passed).length;
115
+ const score = Math.round((passedChecks / totalChecks) * 100);
116
+ const grade = scoreToGrade(score);
117
+ const ready = checks.filter((c) => c.severity === "required").every((c) => c.passed);
118
+ const summary = ready
119
+ ? `Listening Ready (${grade}): ${passedChecks}/${totalChecks} checks passed, score ${score}`
120
+ : `Listening Not Ready: ${checks.filter((c) => c.severity === "required" && !c.passed).map((c) => c.name).join(", ")} failed`;
121
+ logger.info("listening-readiness", { ready, score, grade, passed: passedChecks, total: totalChecks });
122
+ return { checks, ready, score, grade, summary };
123
+ }
124
+ //# sourceMappingURL=feedback-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-readiness.js","sourceRoot":"","sources":["../../../src/core/listener/feedback-readiness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-phase.d.ts","sourceRoot":"","sources":["../../../src/core/planner/lifecycle-phase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,WAAW,GACX,UAAU,GACV,QAAQ,GACR,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAMD,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAuDtG;AAwFD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,CAErE;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CACxC;AAGD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAInD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AA4ED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,GACtB,eAAe,CAUjB;AAmBD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAyB,GAC9B,gBAAgB,EAAE,CAgBpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,cAAyB,GAC9B,gBAAgB,CA4ClB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAyB,GAC9B,gBAAgB,EAAE,CAkDpB"}
1
+ {"version":3,"file":"lifecycle-phase.d.ts","sourceRoot":"","sources":["../../../src/core/planner/lifecycle-phase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAS7D,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,WAAW,GACX,UAAU,GACV,QAAQ,GACR,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAMD,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAuDtG;AAwFD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,CAErE;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CACxC;AAGD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAInD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AA2FD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,GACtB,eAAe,CAUjB;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAyB,GAC9B,gBAAgB,EAAE,CAgBpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,cAAyB,GAC9B,gBAAgB,CA4DlB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,cAAyB,GAC9B,gBAAgB,EAAE,CAkDpB"}
@@ -1,3 +1,10 @@
1
+ import { parseAc } from "../analyzer/ac-parser.js";
2
+ import { checkDesignReadiness } from "../designer/definition-of-ready.js";
3
+ import { checkDefinitionOfDone } from "../implementer/definition-of-done.js";
4
+ import { checkValidationReadiness } from "../validator/definition-of-ready.js";
5
+ import { checkReviewReadiness } from "../reviewer/review-readiness.js";
6
+ import { checkHandoffReadiness } from "../handoff/delivery-checklist.js";
7
+ import { checkListeningReadiness } from "../listener/feedback-readiness.js";
1
8
  const DESIGN_ONLY_TYPES = new Set(["requirement", "epic", "decision", "constraint", "milestone", "risk", "acceptance_criteria"]);
2
9
  const TASK_TYPES = new Set(["task", "subtask"]);
3
10
  const FEEDBACK_TYPES = new Set(["requirement", "risk", "constraint"]);
@@ -77,13 +84,13 @@ function hasNewFeedbackNodes(nodes, doneTasks) {
77
84
  const GUIDANCE = {
78
85
  ANALYZE: {
79
86
  reminder: "Fase ANALYZE: Crie o PRD a partir da ideia. Defina requisitos, restrições e critérios de aceitação antes de qualquer código.",
80
- suggestedTools: ["import_prd", "add_node", "search"],
87
+ suggestedTools: ["import_prd", "add_node", "analyze", "validate_ac", "search"],
81
88
  principles: ["Definir antes de construir", "PRD como contrato", "Requisitos claros e mensuráveis"],
82
89
  },
83
90
  DESIGN: {
84
- reminder: "Fase DESIGN: Defina a arquitetura e tome decisões técnicas. Use análise de impacto antes de definir a estrutura.",
85
- suggestedTools: ["add_node", "edge", "decompose", "export"],
86
- principles: ["Skeleton & Organs", "Decisões arquiteturais documentadas", "Anti-one-shot"],
91
+ reminder: "Fase DESIGN: Defina a arquitetura e tome decisões técnicas. Use analyze para validar qualidade arquitetural.",
92
+ suggestedTools: ["add_node", "edge", "analyze", "export"],
93
+ principles: ["Skeleton & Organs", "ADR documentado", "Interface-first", "Traceability"],
87
94
  suggestedMcpAgents: [
88
95
  { name: "serena", action: "Análise semântica de symbols para entender arquitetura existente", tools: ["find_symbol", "get_symbols_overview"] },
89
96
  { name: "gitnexus", action: "Análise de impacto e blast radius da proposta arquitetural", tools: ["impact", "context"] },
@@ -91,7 +98,7 @@ const GUIDANCE = {
91
98
  },
92
99
  PLAN: {
93
100
  reminder: "Fase PLAN: Planeje o sprint, decomponha tasks grandes e sincronize documentação das libs.",
94
- suggestedTools: ["plan_sprint", "decompose", "sync_stack_docs", "edge", "dependencies"],
101
+ suggestedTools: ["plan_sprint", "analyze", "sync_stack_docs", "edge"],
95
102
  principles: ["Decomposição atômica", "Sprint planning baseado em velocidade", "Dependências explícitas"],
96
103
  suggestedMcpAgents: [
97
104
  { name: "context7", action: "Consultar docs atualizadas das libs do stack", tools: ["resolve-library-id", "query-docs"] },
@@ -99,7 +106,7 @@ const GUIDANCE = {
99
106
  },
100
107
  IMPLEMENT: {
101
108
  reminder: "Fase IMPLEMENT: TDD obrigatório — Red → Green → Refactor. Escreva o teste ANTES da implementação. Use `context` para token-efficiency.",
102
- suggestedTools: ["next", "context", "update_status", "rag_context", "validate_task"],
109
+ suggestedTools: ["next", "context", "update_status", "rag_context", "validate_task", "analyze"],
103
110
  principles: ["TDD Red→Green→Refactor", "Anti-one-shot", "Code detachment", "Decomposição atômica"],
104
111
  suggestedMcpAgents: [
105
112
  { name: "serena", action: "Edição semântica de symbols e navegação por referências", tools: ["find_symbol", "replace_symbol_body", "find_referencing_symbols"] },
@@ -109,8 +116,8 @@ const GUIDANCE = {
109
116
  },
110
117
  VALIDATE: {
111
118
  reminder: "Fase VALIDATE: Valide tasks completadas com testes E2E (Playwright). Verifique critérios de aceitação.",
112
- suggestedTools: ["validate_task", "velocity", "stats", "list"],
113
- principles: ["Validação automatizada", "Critérios de aceitação como contrato", "Zero tolerance para regressões"],
119
+ suggestedTools: ["validate_task", "metrics", "analyze", "list"],
120
+ principles: ["Validação automatizada", "Critérios de aceitação como contrato", "Zero tolerance para regressões", "AC quality como contrato", "Done integrity"],
114
121
  suggestedMcpAgents: [
115
122
  { name: "gitnexus", action: "Verificar escopo das mudanças com detect_changes", tools: ["detect_changes"] },
116
123
  { name: "playwright", action: "Testes E2E no browser, screenshots e validação visual", tools: ["browser_navigate", "browser_snapshot", "browser_click"] },
@@ -118,8 +125,8 @@ const GUIDANCE = {
118
125
  },
119
126
  REVIEW: {
120
127
  reminder: "Fase REVIEW: Revise o código, verifique blast radius e garanta que nada quebrou. Exporte o grafo para revisão.",
121
- suggestedTools: ["export", "stats", "velocity", "dependencies"],
122
- principles: ["Code review obrigatório", "Blast radius check", "Non-regression rule"],
128
+ suggestedTools: ["export", "metrics", "analyze"],
129
+ principles: ["Code review obrigatório", "Blast radius check", "Non-regression rule", "Velocity stability", "Scope integrity"],
123
130
  suggestedMcpAgents: [
124
131
  { name: "serena", action: "Verificar callers e referências dos symbols modificados", tools: ["find_referencing_symbols"] },
125
132
  { name: "gitnexus", action: "Blast radius final e verificação de escopo", tools: ["impact", "detect_changes"] },
@@ -127,16 +134,16 @@ const GUIDANCE = {
127
134
  },
128
135
  HANDOFF: {
129
136
  reminder: "Fase HANDOFF: Crie o PR, documente decisões e exporte o grafo. Prepare para entrega.",
130
- suggestedTools: ["export", "snapshot", "stats", "velocity"],
131
- principles: ["Documentação como entrega", "Grafo exportado", "Knowledge base atualizada"],
137
+ suggestedTools: ["export", "snapshot", "metrics", "analyze"],
138
+ principles: ["Documentação como entrega", "Grafo exportado", "Knowledge base atualizada", "Doc completeness", "Knowledge captured"],
132
139
  suggestedMcpAgents: [
133
140
  { name: "gitnexus", action: "Scope check final antes do PR", tools: ["detect_changes"] },
134
141
  ],
135
142
  },
136
143
  LISTENING: {
137
144
  reminder: "Fase LISTENING: Colete feedback e adicione novos nodes ao grafo. Inicie novo ciclo se necessário.",
138
- suggestedTools: ["add_node", "import_prd", "search", "list"],
139
- principles: ["Feedback contínuo", "Iteração incremental", "CLAUDE.md como spec evolutiva"],
145
+ suggestedTools: ["add_node", "import_prd", "search", "list", "analyze"],
146
+ principles: ["Feedback contínuo", "Iteração incremental", "CLAUDE.md como spec evolutiva", "Backlog health", "Tech debt tracking"],
140
147
  },
141
148
  };
142
149
  export function getPhaseGuidance(phase) {
@@ -152,11 +159,13 @@ const PHASE_GATES = {
152
159
  };
153
160
  },
154
161
  DESIGN_to_PLAN: (doc) => {
155
- const hasDecisionOrConstraint = doc.nodes.some((n) => n.type === "decision" || n.type === "constraint");
162
+ const report = checkDesignReadiness(doc);
156
163
  return {
157
- allowed: hasDecisionOrConstraint,
158
- reason: hasDecisionOrConstraint ? null : "Nenhum decision ou constraint encontrado",
159
- unmetConditions: hasDecisionOrConstraint ? [] : ["Criar pelo menos 1 node tipo 'decision' ou 'constraint'"],
164
+ allowed: report.ready,
165
+ reason: report.ready ? null : report.summary,
166
+ unmetConditions: report.checks
167
+ .filter((c) => c.severity === "required" && !c.passed)
168
+ .map((c) => c.details),
160
169
  };
161
170
  },
162
171
  PLAN_to_IMPLEMENT: (doc) => {
@@ -169,49 +178,56 @@ const PHASE_GATES = {
169
178
  };
170
179
  },
171
180
  IMPLEMENT_to_VALIDATE: (doc) => {
181
+ const report = checkValidationReadiness(doc);
182
+ // Additional recommended check: ≥50% done tasks have testable AC
172
183
  const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
173
184
  const doneTasks = tasks.filter((n) => n.status === "done");
174
- const halfDone = tasks.length > 0 && doneTasks.length >= tasks.length * 0.5;
175
- const hasAC = doc.nodes.some((n) => n.type === "acceptance_criteria" || (n.acceptanceCriteria && n.acceptanceCriteria.length > 0));
176
- const conditions = [];
177
- if (!halfDone)
178
- conditions.push(`Pelo menos 50% das tasks devem estar done (atual: ${tasks.length > 0 ? Math.round((doneTasks.length / tasks.length) * 100) : 0}%)`);
179
- if (!hasAC)
180
- conditions.push("Definir acceptance criteria para validação");
185
+ const doneWithTestableAc = doneTasks.filter((n) => {
186
+ const acs = n.acceptanceCriteria ?? [];
187
+ return acs.some((ac) => parseAc(ac).isTestable);
188
+ });
189
+ const testableRatio = doneTasks.length > 0 ? doneWithTestableAc.length / doneTasks.length : 0;
190
+ const conditions = report.checks
191
+ .filter((c) => c.severity === "required" && !c.passed)
192
+ .map((c) => c.details);
193
+ // Testable AC is recommended (warning), not required
194
+ if (testableRatio < 0.5 && doneTasks.length > 0) {
195
+ conditions.push(`Recomendado: ≥50% das done tasks com AC testável (atual: ${Math.round(testableRatio * 100)}%)`);
196
+ }
181
197
  return {
182
- allowed: halfDone && hasAC,
183
- reason: conditions.length > 0 ? conditions.join("; ") : null,
198
+ allowed: report.ready,
199
+ reason: report.ready ? null : report.summary,
184
200
  unmetConditions: conditions,
185
201
  };
186
202
  },
187
203
  VALIDATE_to_REVIEW: (doc) => {
188
- const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
189
- const doneTasks = tasks.filter((n) => n.status === "done");
190
- const enough = tasks.length > 0 && doneTasks.length >= tasks.length * 0.8;
204
+ const report = checkReviewReadiness(doc);
191
205
  return {
192
- allowed: enough,
193
- reason: enough ? null : `Pelo menos 80% das tasks devem estar done (atual: ${tasks.length > 0 ? Math.round((doneTasks.length / tasks.length) * 100) : 0}%)`,
194
- unmetConditions: enough ? [] : [`Completar tasks: ${doneTasks.length}/${tasks.length} done`],
206
+ allowed: report.ready,
207
+ reason: report.ready ? null : report.summary,
208
+ unmetConditions: report.checks
209
+ .filter((c) => c.severity === "required" && !c.passed)
210
+ .map((c) => c.details),
195
211
  };
196
212
  },
197
213
  REVIEW_to_HANDOFF: (doc) => {
198
- const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
199
- const allDone = tasks.length > 0 && tasks.every((n) => n.status === "done");
214
+ const report = checkHandoffReadiness(doc);
200
215
  return {
201
- allowed: allDone,
202
- reason: allDone ? null : "Nem todas as tasks estão done",
203
- unmetConditions: allDone ? [] : ["Todas as tasks devem estar com status 'done'"],
216
+ allowed: report.ready,
217
+ reason: report.ready ? null : report.summary,
218
+ unmetConditions: report.checks
219
+ .filter((c) => c.severity === "required" && !c.passed)
220
+ .map((c) => c.details),
204
221
  };
205
222
  },
206
223
  HANDOFF_to_LISTENING: (doc) => {
207
- // This gate is checked via options.hasSnapshots in the wrapper
208
- // Here we just check if there are any done tasks (minimal gate)
209
- const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
210
- const allDone = tasks.length > 0 && tasks.every((n) => n.status === "done");
224
+ const report = checkListeningReadiness(doc);
211
225
  return {
212
- allowed: allDone,
213
- reason: allDone ? null : "Todas as tasks devem estar done antes de LISTENING",
214
- unmetConditions: allDone ? [] : ["Completar todas as tasks"],
226
+ allowed: report.ready,
227
+ reason: report.ready ? null : report.summary,
228
+ unmetConditions: report.checks
229
+ .filter((c) => c.severity === "required" && !c.passed)
230
+ .map((c) => c.details),
215
231
  };
216
232
  },
217
233
  };
@@ -230,16 +246,13 @@ export function validatePhaseTransition(doc, fromPhase, toPhase) {
230
246
  // ── Tool Phase Restrictions ────────────────────
231
247
  const TOOL_PHASE_RESTRICTIONS = {
232
248
  update_status: new Set(["ANALYZE"]),
233
- bulk_update_status: new Set(["ANALYZE"]),
234
249
  plan_sprint: new Set(["ANALYZE"]),
235
250
  validate_task: new Set(["ANALYZE", "DESIGN", "PLAN"]),
236
- decompose: new Set(["ANALYZE"]),
237
- velocity: new Set(["ANALYZE", "DESIGN"]),
238
251
  };
239
252
  const ALWAYS_ALLOWED_TOOLS = new Set([
240
- "init", "set_phase", "list", "show", "search", "stats", "export", "snapshot",
253
+ "init", "set_phase", "list", "show", "search", "metrics", "export", "snapshot",
241
254
  "add_node", "edge", "import_prd", "context", "rag_context", "next",
242
- "sync_stack_docs", "reindex_knowledge", "dependencies",
255
+ "sync_stack_docs", "reindex_knowledge", "analyze", "validate_ac",
243
256
  ]);
244
257
  /**
245
258
  * Check if a tool is allowed in the current phase.
@@ -281,6 +294,21 @@ export function checkStatusGate(doc, phase, nodeId, newStatus, mode = "strict")
281
294
  severity,
282
295
  });
283
296
  }
297
+ // DoD pre-check — lightweight Definition of Done validation
298
+ // Only fire for nodes that have AC (the no-AC case is already handled above)
299
+ if (hasAC || parentHasAC || globalAC) {
300
+ const dodReport = checkDefinitionOfDone(doc, nodeId);
301
+ if (!dodReport.ready) {
302
+ const failedRequired = dodReport.checks
303
+ .filter((c) => c.severity === "required" && !c.passed)
304
+ .map((c) => c.name);
305
+ warnings.push({
306
+ code: "done_without_dod",
307
+ message: `Node "${nodeId}" não atende Definition of Done: ${failedRequired.join(", ")} (score: ${dodReport.score}, grade: ${dodReport.grade}).`,
308
+ severity: "warning", // Always warning — DoD is informational guidance
309
+ });
310
+ }
311
+ }
284
312
  }
285
313
  if (newStatus === "in_progress" && phase === "PLAN") {
286
314
  const tasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-phase.js","sourceRoot":"","sources":["../../../src/core/planner/lifecycle-phase.ts"],"names":[],"mappings":"AAyBA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACjI,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAOtE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAkB,EAAE,OAA+B;IACpF,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,aAAa,CAAC;IAC/B,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7E,8EAA8E;IAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IACnE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAE3D,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,2DAA2D;QAC3D,IAAI,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kEAAkE;IAClE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACnE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,qDAAqD;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IACtF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,KAA6B,EAC7B,SAAiC;IAEjC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC;QACrC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,YAAY,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAA0C;IACtD,OAAO,EAAE;QACP,QAAQ,EAAE,8HAA8H;QACxI,cAAc,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC;QACpD,UAAU,EAAE,CAAC,4BAA4B,EAAE,mBAAmB,EAAE,iCAAiC,CAAC;KACnG;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,kHAAkH;QAC5H,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;QAC3D,UAAU,EAAE,CAAC,mBAAmB,EAAE,qCAAqC,EAAE,eAAe,CAAC;QACzF,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,kEAAkE,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC,EAAE;YAC9I,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,4DAA4D,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;SACzH;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,2FAA2F;QACrG,cAAc,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,CAAC;QACvF,UAAU,EAAE,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,yBAAyB,CAAC;QACxG,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,8CAA8C,EAAE,KAAK,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAE;SAC1H;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,wIAAwI;QAClJ,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,CAAC;QACpF,UAAU,EAAE,CAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;QAClG,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,yDAAyD,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,0BAA0B,CAAC,EAAE;YAChK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iEAAiE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE;YAC/I,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,oCAAoC,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;SAC1F;KACF;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,wGAAwG;QAClH,cAAc,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;QAC9D,UAAU,EAAE,CAAC,wBAAwB,EAAE,sCAAsC,EAAE,gCAAgC,CAAC;QAChH,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,kDAAkD,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE;YAC3G,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,uDAAuD,EAAE,KAAK,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE;SAC1J;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,gHAAgH;QAC1H,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC;QAC/D,UAAU,EAAE,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;QACpF,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,yDAAyD,EAAE,KAAK,EAAE,CAAC,0BAA0B,CAAC,EAAE;YAC1H,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,4CAA4C,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE;SAChH;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,sFAAsF;QAChG,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;QAC3D,UAAU,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,2BAA2B,CAAC;QACzF,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE;SACzF;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,mGAAmG;QAC7G,cAAc,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC5D,UAAU,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,+BAA+B,CAAC;KAC3F;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAuBD,MAAM,WAAW,GAA8E;IAC7F,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAClG,OAAO;YACL,OAAO,EAAE,oBAAoB;YAC7B,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uCAAuC;YAC7E,eAAe,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sDAAsD,CAAC;SACtG,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,uBAAuB,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACxG,OAAO;YACL,OAAO,EAAE,uBAAuB;YAChC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C;YACnF,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC;SAC5G,CAAC;IACJ,CAAC;IACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;YAC/D,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC;SAC3E,CAAC;IACJ,CAAC;IACD,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC5E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACnI,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,qDAAqD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpK,IAAI,CAAC,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1E,OAAO;YACL,OAAO,EAAE,QAAQ,IAAI,KAAK;YAC1B,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5D,eAAe,EAAE,UAAU;SAC5B,CAAC;IACJ,CAAC;IACD,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC1E,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3J,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,OAAO,CAAC;SAC7F,CAAC;IACJ,CAAC;IACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC5E,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B;YACxD,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC;SACjF,CAAC;IACJ,CAAC;IACD,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5B,+DAA+D;QAC/D,gEAAgE;QAChE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC5E,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oDAAoD;YAC7E,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC;SAC7D,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAkB,EAClB,SAAyB,EACzB,OAAuB;IAEvB,MAAM,GAAG,GAAG,GAAG,SAAS,OAAO,OAAO,EAA8C,CAAC;IACrF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,2DAA2D;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,kDAAkD;AAElD,MAAM,uBAAuB,GAAwC;IACnE,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACnC,kBAAkB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACxC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACjC,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;IAC5E,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM;IAClE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc;CACvD,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAkB,EAClB,KAAqB,EACrB,QAAgB,EAChB,OAAuB,QAAQ;IAE/B,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,OAAO,CAAC;YACN,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,SAAS,QAAQ,6BAA6B,KAAK,2CAA2C;YACvG,QAAQ;SACT,CAAC,CAAC;AACL,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAkB,EAClB,KAAqB,EACrB,MAAc,EACd,SAAiB,EACjB,OAAuB,QAAQ;IAE/B,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAEpD,IAAI,SAAS,KAAK,MAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAClD,kDAAkD;QAClD,MAAM,KAAK,GAAG,IAAI,EAAE,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,WAAW,GAAG,MAAM,EAAE,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;QAEzE,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,SAAS,MAAM,wDAAwD;gBAChF,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,aAAa,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACpD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,SAAS,MAAM,kCAAkC;gBAC1D,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,SAAS,MAAM,sEAAsE,IAAI,CAAC,MAAM,IAAI;YAC7G,QAAQ,EAAE,SAAS,EAAE,4DAA4D;SAClF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAkB,EAClB,KAAqB,EACrB,QAAgB,EAChB,OAAuB,QAAQ;IAE/B,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEjC,qEAAqE;IACrE,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAE/B,oDAAoD;IACpD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,SAAS,QAAQ,iCAAiC,KAAK,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpH,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,qFAAqF;YAC9F,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SAClD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,kEAAkE;gBAC3E,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,WAAW,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QAC1D,MAAM,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;QACtF,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,qFAAqF;gBAC9F,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"lifecycle-phase.js","sourceRoot":"","sources":["../../../src/core/planner/lifecycle-phase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Phase metadata utilities for knowledge indexers.
3
+ * Provides consistent phase tagging across all knowledge sources.
4
+ */
5
+ import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
6
+ /**
7
+ * Phase boost weights for RAG search.
8
+ * Maps: current phase → source phase → boost multiplier.
9
+ * Higher boost = more relevant for the current phase.
10
+ */
11
+ export declare const PHASE_BOOST_WEIGHTS: Record<LifecyclePhase, Partial<Record<LifecyclePhase, number>>>;
12
+ /**
13
+ * Get the phase boost multiplier for a knowledge document in the current phase.
14
+ * Returns 1.0 (neutral) if no specific boost is defined.
15
+ */
16
+ export declare function getPhaseBoost(currentPhase: LifecyclePhase, docPhase: string | undefined): number;
17
+ /**
18
+ * Apply phase boost to a BM25 score.
19
+ * BM25 scores are negative (closer to 0 = better match).
20
+ * Boosting means dividing by the weight (making score closer to 0).
21
+ */
22
+ export declare function applyPhaseBoost(score: number, boost: number): number;
23
+ //# sourceMappingURL=phase-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-metadata.d.ts","sourceRoot":"","sources":["../../../src/core/rag/phase-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAwC/F,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIhG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Phase metadata utilities for knowledge indexers.
3
+ * Provides consistent phase tagging across all knowledge sources.
4
+ */
5
+ /**
6
+ * Phase boost weights for RAG search.
7
+ * Maps: current phase → source phase → boost multiplier.
8
+ * Higher boost = more relevant for the current phase.
9
+ */
10
+ export const PHASE_BOOST_WEIGHTS = {
11
+ ANALYZE: {
12
+ ANALYZE: 2.0,
13
+ LISTENING: 1.5,
14
+ },
15
+ DESIGN: {
16
+ DESIGN: 2.0,
17
+ ANALYZE: 1.5,
18
+ PLAN: 1.2,
19
+ },
20
+ PLAN: {
21
+ PLAN: 2.0,
22
+ DESIGN: 1.5,
23
+ ANALYZE: 1.3,
24
+ },
25
+ IMPLEMENT: {
26
+ IMPLEMENT: 2.0,
27
+ PLAN: 1.5,
28
+ DESIGN: 1.2,
29
+ },
30
+ VALIDATE: {
31
+ VALIDATE: 2.0,
32
+ IMPLEMENT: 2.0,
33
+ ANALYZE: 1.3,
34
+ },
35
+ REVIEW: {
36
+ REVIEW: 2.0,
37
+ IMPLEMENT: 1.5,
38
+ VALIDATE: 2.0,
39
+ },
40
+ HANDOFF: {
41
+ HANDOFF: 2.0,
42
+ REVIEW: 1.5,
43
+ VALIDATE: 1.3,
44
+ },
45
+ LISTENING: {
46
+ LISTENING: 2.0,
47
+ ANALYZE: 1.5,
48
+ VALIDATE: 1.3,
49
+ },
50
+ };
51
+ /**
52
+ * Get the phase boost multiplier for a knowledge document in the current phase.
53
+ * Returns 1.0 (neutral) if no specific boost is defined.
54
+ */
55
+ export function getPhaseBoost(currentPhase, docPhase) {
56
+ if (!docPhase)
57
+ return 1.0;
58
+ const weights = PHASE_BOOST_WEIGHTS[currentPhase];
59
+ return weights[docPhase] ?? 1.0;
60
+ }
61
+ /**
62
+ * Apply phase boost to a BM25 score.
63
+ * BM25 scores are negative (closer to 0 = better match).
64
+ * Boosting means dividing by the weight (making score closer to 0).
65
+ */
66
+ export function applyPhaseBoost(score, boost) {
67
+ if (boost <= 0)
68
+ return score;
69
+ // BM25 scores are negative — dividing by boost makes them closer to 0 (better)
70
+ return score / boost;
71
+ }
72
+ //# sourceMappingURL=phase-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-metadata.js","sourceRoot":"","sources":["../../../src/core/rag/phase-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoE;IAClG,OAAO,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,GAAG;KACV;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;KACb;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;KACZ;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;KACb;IACD,MAAM,EAAE;QACN,MAAM,EAAE,GAAG;QACX,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,GAAG;KACd;IACD,OAAO,EAAE;QACP,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;KACd;IACD,SAAS,EAAE;QACT,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;KACd;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,YAA4B,EAAE,QAA4B;IACtF,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,QAA0B,CAAC,IAAI,GAAG,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IAC1D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,+EAA+E;IAC/E,OAAO,KAAK,GAAG,KAAK,CAAC;AACvB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Phase Summary Generator — creates a knowledge document summarizing
3
+ * what was accomplished during a lifecycle phase when transitioning out.
4
+ */
5
+ import type { GraphDocument } from "../graph/graph-types.js";
6
+ import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
7
+ import { KnowledgeStore } from "../store/knowledge-store.js";
8
+ export interface PhaseSummaryResult {
9
+ indexed: boolean;
10
+ summaryText: string;
11
+ }
12
+ /**
13
+ * Generate and index a phase summary document into the knowledge store.
14
+ * Captures key metrics and decisions from the completed phase.
15
+ */
16
+ export declare function generateAndIndexPhaseSummary(knowledgeStore: KnowledgeStore, doc: GraphDocument, fromPhase: LifecyclePhase, toPhase: LifecyclePhase): PhaseSummaryResult;
17
+ //# sourceMappingURL=phase-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-summary.d.ts","sourceRoot":"","sources":["../../../src/core/rag/phase-summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,GACtB,kBAAkB,CAwBpB"}