@mcp-graph-workflow/mcp-graph 5.1.5 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/router.d.ts +0 -1
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +3 -4
- package/dist/api/router.js.map +1 -1
- package/dist/api/routes/benchmark.d.ts.map +1 -1
- package/dist/api/routes/benchmark.js +47 -2
- package/dist/api/routes/benchmark.js.map +1 -1
- package/dist/api/routes/code-graph.d.ts +12 -0
- package/dist/api/routes/code-graph.d.ts.map +1 -0
- package/dist/api/routes/code-graph.js +154 -0
- package/dist/api/routes/code-graph.js.map +1 -0
- package/dist/api/routes/folder.d.ts +1 -4
- package/dist/api/routes/folder.d.ts.map +1 -1
- package/dist/api/routes/folder.js +19 -17
- package/dist/api/routes/folder.js.map +1 -1
- package/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +60 -16
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/knowledge.js +1 -1
- package/dist/api/routes/knowledge.js.map +1 -1
- package/dist/api/routes/skills.d.ts.map +1 -1
- package/dist/api/routes/skills.js +57 -3
- package/dist/api/routes/skills.js.map +1 -1
- package/dist/cli/commands/index-cmd.js +5 -5
- package/dist/cli/commands/index-cmd.js.map +1 -1
- package/dist/core/analyzer/ac-parser.d.ts +7 -0
- package/dist/core/analyzer/ac-parser.d.ts.map +1 -0
- package/dist/core/analyzer/ac-parser.js +67 -0
- package/dist/core/analyzer/ac-parser.js.map +1 -0
- package/dist/core/analyzer/ac-validator.d.ts +15 -0
- package/dist/core/analyzer/ac-validator.d.ts.map +1 -0
- package/dist/core/analyzer/ac-validator.js +142 -0
- package/dist/core/analyzer/ac-validator.js.map +1 -0
- package/dist/core/analyzer/definition-of-ready.d.ts +16 -0
- package/dist/core/analyzer/definition-of-ready.d.ts.map +1 -0
- package/dist/core/analyzer/definition-of-ready.js +107 -0
- package/dist/core/analyzer/definition-of-ready.js.map +1 -0
- package/dist/core/analyzer/prd-quality.d.ts +14 -0
- package/dist/core/analyzer/prd-quality.d.ts.map +1 -0
- package/dist/core/analyzer/prd-quality.js +156 -0
- package/dist/core/analyzer/prd-quality.js.map +1 -0
- package/dist/core/analyzer/risk-assessment.d.ts +11 -0
- package/dist/core/analyzer/risk-assessment.d.ts.map +1 -0
- package/dist/core/analyzer/risk-assessment.js +97 -0
- package/dist/core/analyzer/risk-assessment.js.map +1 -0
- package/dist/core/analyzer/scope-analyzer.d.ts +7 -0
- package/dist/core/analyzer/scope-analyzer.d.ts.map +1 -0
- package/dist/core/analyzer/scope-analyzer.js +99 -0
- package/dist/core/analyzer/scope-analyzer.js.map +1 -0
- package/dist/core/code/code-indexer.d.ts +20 -0
- package/dist/core/code/code-indexer.d.ts.map +1 -0
- package/dist/core/code/code-indexer.js +161 -0
- package/dist/core/code/code-indexer.js.map +1 -0
- package/dist/core/code/code-search.d.ts +16 -0
- package/dist/core/code/code-search.d.ts.map +1 -0
- package/dist/core/code/code-search.js +77 -0
- package/dist/core/code/code-search.js.map +1 -0
- package/dist/core/code/code-store.d.ts +35 -0
- package/dist/core/code/code-store.d.ts.map +1 -0
- package/dist/core/code/code-store.js +228 -0
- package/dist/core/code/code-store.js.map +1 -0
- package/dist/core/code/code-types.d.ts +209 -0
- package/dist/core/code/code-types.d.ts.map +1 -0
- package/dist/core/code/code-types.js +94 -0
- package/dist/core/code/code-types.js.map +1 -0
- package/dist/core/code/graph-traversal.d.ts +27 -0
- package/dist/core/code/graph-traversal.d.ts.map +1 -0
- package/dist/core/code/graph-traversal.js +122 -0
- package/dist/core/code/graph-traversal.js.map +1 -0
- package/dist/core/code/process-detector.d.ts +11 -0
- package/dist/core/code/process-detector.d.ts.map +1 -0
- package/dist/core/code/process-detector.js +65 -0
- package/dist/core/code/process-detector.js.map +1 -0
- package/dist/core/code/ts-analyzer.d.ts +12 -0
- package/dist/core/code/ts-analyzer.d.ts.map +1 -0
- package/dist/core/code/ts-analyzer.js +331 -0
- package/dist/core/code/ts-analyzer.js.map +1 -0
- package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
- package/dist/core/config/ai-memory-generator.js +149 -64
- package/dist/core/config/ai-memory-generator.js.map +1 -1
- package/dist/core/config/config-loader.d.ts.map +1 -1
- package/dist/core/config/config-loader.js +2 -10
- package/dist/core/config/config-loader.js.map +1 -1
- package/dist/core/config/config-schema.d.ts +1 -2
- package/dist/core/config/config-schema.d.ts.map +1 -1
- package/dist/core/config/config-schema.js +2 -3
- package/dist/core/config/config-schema.js.map +1 -1
- package/dist/core/context/compact-context.d.ts +51 -0
- package/dist/core/context/compact-context.d.ts.map +1 -1
- package/dist/core/context/compact-context.js +292 -0
- package/dist/core/context/compact-context.js.map +1 -1
- package/dist/core/context/context-assembler.d.ts +4 -1
- package/dist/core/context/context-assembler.d.ts.map +1 -1
- package/dist/core/context/context-assembler.js +6 -3
- package/dist/core/context/context-assembler.js.map +1 -1
- package/dist/core/context/rag-context.d.ts +4 -2
- package/dist/core/context/rag-context.d.ts.map +1 -1
- package/dist/core/context/rag-context.js +8 -5
- package/dist/core/context/rag-context.js.map +1 -1
- package/dist/core/designer/adr-validator.d.ts +8 -0
- package/dist/core/designer/adr-validator.d.ts.map +1 -0
- package/dist/core/designer/adr-validator.js +61 -0
- package/dist/core/designer/adr-validator.js.map +1 -0
- package/dist/core/designer/coupling-analyzer.d.ts +7 -0
- package/dist/core/designer/coupling-analyzer.d.ts.map +1 -0
- package/dist/core/designer/coupling-analyzer.js +59 -0
- package/dist/core/designer/coupling-analyzer.js.map +1 -0
- package/dist/core/designer/definition-of-ready.d.ts +8 -0
- package/dist/core/designer/definition-of-ready.d.ts.map +1 -0
- package/dist/core/designer/definition-of-ready.js +146 -0
- package/dist/core/designer/definition-of-ready.js.map +1 -0
- package/dist/core/designer/interface-checker.d.ts +7 -0
- package/dist/core/designer/interface-checker.d.ts.map +1 -0
- package/dist/core/designer/interface-checker.js +53 -0
- package/dist/core/designer/interface-checker.js.map +1 -0
- package/dist/core/designer/tech-risk-assessor.d.ts +7 -0
- package/dist/core/designer/tech-risk-assessor.d.ts.map +1 -0
- package/dist/core/designer/tech-risk-assessor.js +95 -0
- package/dist/core/designer/tech-risk-assessor.js.map +1 -0
- package/dist/core/designer/traceability-matrix.d.ts +8 -0
- package/dist/core/designer/traceability-matrix.d.ts.map +1 -0
- package/dist/core/designer/traceability-matrix.js +67 -0
- package/dist/core/designer/traceability-matrix.js.map +1 -0
- package/dist/core/doctor/doctor-checks.d.ts +1 -1
- package/dist/core/doctor/doctor-checks.js +21 -21
- package/dist/core/doctor/doctor-checks.js.map +1 -1
- package/dist/core/events/event-types.d.ts +11 -1
- package/dist/core/events/event-types.d.ts.map +1 -1
- package/dist/core/handoff/delivery-checklist.d.ts +10 -0
- package/dist/core/handoff/delivery-checklist.d.ts.map +1 -0
- package/dist/core/handoff/delivery-checklist.js +148 -0
- package/dist/core/handoff/delivery-checklist.js.map +1 -0
- package/dist/core/handoff/doc-completeness.d.ts +7 -0
- package/dist/core/handoff/doc-completeness.d.ts.map +1 -0
- package/dist/core/handoff/doc-completeness.js +19 -0
- package/dist/core/handoff/doc-completeness.js.map +1 -0
- package/dist/core/implementer/definition-of-done.d.ts +11 -0
- package/dist/core/implementer/definition-of-done.d.ts.map +1 -0
- package/dist/core/implementer/definition-of-done.js +158 -0
- package/dist/core/implementer/definition-of-done.js.map +1 -0
- package/dist/core/implementer/sprint-progress.d.ts +11 -0
- package/dist/core/implementer/sprint-progress.d.ts.map +1 -0
- package/dist/core/implementer/sprint-progress.js +80 -0
- package/dist/core/implementer/sprint-progress.js.map +1 -0
- package/dist/core/implementer/tdd-checker.d.ts +15 -0
- package/dist/core/implementer/tdd-checker.d.ts.map +1 -0
- package/dist/core/implementer/tdd-checker.js +132 -0
- package/dist/core/implementer/tdd-checker.js.map +1 -0
- package/dist/core/insights/bottleneck-detector.js +1 -1
- package/dist/core/insights/bottleneck-detector.js.map +1 -1
- package/dist/core/integrations/enriched-context.d.ts +10 -6
- package/dist/core/integrations/enriched-context.d.ts.map +1 -1
- package/dist/core/integrations/enriched-context.js +35 -35
- package/dist/core/integrations/enriched-context.js.map +1 -1
- package/dist/core/integrations/integration-orchestrator.js +2 -2
- package/dist/core/integrations/integration-orchestrator.js.map +1 -1
- package/dist/core/integrations/mcp-deps-installer.d.ts +1 -1
- package/dist/core/integrations/mcp-deps-installer.d.ts.map +1 -1
- package/dist/core/integrations/mcp-deps-installer.js +1 -60
- package/dist/core/integrations/mcp-deps-installer.js.map +1 -1
- package/dist/core/integrations/mcp-servers-config.d.ts +1 -1
- package/dist/core/integrations/mcp-servers-config.d.ts.map +1 -1
- package/dist/core/integrations/mcp-servers-config.js +0 -17
- package/dist/core/integrations/mcp-servers-config.js.map +1 -1
- package/dist/core/integrations/tool-status.d.ts +8 -3
- package/dist/core/integrations/tool-status.d.ts.map +1 -1
- package/dist/core/integrations/tool-status.js +38 -48
- package/dist/core/integrations/tool-status.js.map +1 -1
- package/dist/core/listener/backlog-health.d.ts +7 -0
- package/dist/core/listener/backlog-health.d.ts.map +1 -0
- package/dist/core/listener/backlog-health.js +64 -0
- package/dist/core/listener/backlog-health.js.map +1 -0
- package/dist/core/listener/feedback-readiness.d.ts +11 -0
- package/dist/core/listener/feedback-readiness.d.ts.map +1 -0
- package/dist/core/listener/feedback-readiness.js +124 -0
- package/dist/core/listener/feedback-readiness.js.map +1 -0
- package/dist/core/memory/memory-migrator.d.ts +15 -0
- package/dist/core/memory/memory-migrator.d.ts.map +1 -0
- package/dist/core/memory/memory-migrator.js +64 -0
- package/dist/core/memory/memory-migrator.js.map +1 -0
- package/dist/core/memory/memory-reader.d.ts +30 -0
- package/dist/core/memory/memory-reader.d.ts.map +1 -0
- package/dist/core/memory/memory-reader.js +106 -0
- package/dist/core/memory/memory-reader.js.map +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
- package/dist/core/planner/lifecycle-phase.js +89 -58
- package/dist/core/planner/lifecycle-phase.js.map +1 -1
- package/dist/core/rag/memory-indexer.d.ts +16 -0
- package/dist/core/rag/memory-indexer.d.ts.map +1 -0
- package/dist/core/rag/{serena-indexer.js → memory-indexer.js} +12 -12
- package/dist/core/rag/memory-indexer.js.map +1 -0
- package/dist/core/rag/{serena-rag-query.d.ts → memory-rag-query.d.ts} +11 -9
- package/dist/core/rag/memory-rag-query.d.ts.map +1 -0
- package/dist/core/rag/{serena-rag-query.js → memory-rag-query.js} +18 -15
- package/dist/core/rag/memory-rag-query.js.map +1 -0
- package/dist/core/rag/phase-metadata.d.ts +23 -0
- package/dist/core/rag/phase-metadata.d.ts.map +1 -0
- package/dist/core/rag/phase-metadata.js +72 -0
- package/dist/core/rag/phase-metadata.js.map +1 -0
- package/dist/core/rag/phase-summary.d.ts +17 -0
- package/dist/core/rag/phase-summary.d.ts.map +1 -0
- package/dist/core/rag/phase-summary.js +104 -0
- package/dist/core/rag/phase-summary.js.map +1 -0
- package/dist/core/rag/prd-indexer.d.ts +16 -0
- package/dist/core/rag/prd-indexer.d.ts.map +1 -0
- package/dist/core/rag/prd-indexer.js +37 -0
- package/dist/core/rag/prd-indexer.js.map +1 -0
- package/dist/core/rag/skill-indexer.d.ts +16 -0
- package/dist/core/rag/skill-indexer.d.ts.map +1 -0
- package/dist/core/rag/skill-indexer.js +98 -0
- package/dist/core/rag/skill-indexer.js.map +1 -0
- package/dist/core/reviewer/review-readiness.d.ts +8 -0
- package/dist/core/reviewer/review-readiness.d.ts.map +1 -0
- package/dist/core/reviewer/review-readiness.js +159 -0
- package/dist/core/reviewer/review-readiness.js.map +1 -0
- package/dist/core/skills/built-in-skills.d.ts +26 -0
- package/dist/core/skills/built-in-skills.d.ts.map +1 -0
- package/dist/core/skills/built-in-skills.js +203 -0
- package/dist/core/skills/built-in-skills.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +10 -1
- package/dist/core/store/knowledge-store.d.ts.map +1 -1
- package/dist/core/store/knowledge-store.js +23 -1
- package/dist/core/store/knowledge-store.js.map +1 -1
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +89 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/core/store/tool-token-store.d.ts +39 -0
- package/dist/core/store/tool-token-store.d.ts.map +1 -0
- package/dist/core/store/tool-token-store.js +79 -0
- package/dist/core/store/tool-token-store.js.map +1 -0
- package/dist/core/validator/definition-of-ready.d.ts +8 -0
- package/dist/core/validator/definition-of-ready.d.ts.map +1 -0
- package/dist/core/validator/definition-of-ready.js +155 -0
- package/dist/core/validator/definition-of-ready.js.map +1 -0
- package/dist/core/validator/done-integrity-checker.d.ts +7 -0
- package/dist/core/validator/done-integrity-checker.d.ts.map +1 -0
- package/dist/core/validator/done-integrity-checker.js +38 -0
- package/dist/core/validator/done-integrity-checker.js.map +1 -0
- package/dist/core/validator/status-flow-checker.d.ts +7 -0
- package/dist/core/validator/status-flow-checker.d.ts.map +1 -0
- package/dist/core/validator/status-flow-checker.js +26 -0
- package/dist/core/validator/status-flow-checker.js.map +1 -0
- package/dist/mcp/app-factory.d.ts +0 -1
- package/dist/mcp/app-factory.d.ts.map +1 -1
- package/dist/mcp/app-factory.js +2 -2
- package/dist/mcp/app-factory.js.map +1 -1
- package/dist/mcp/lifecycle-wrapper.d.ts +10 -0
- package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
- package/dist/mcp/lifecycle-wrapper.js +48 -2
- package/dist/mcp/lifecycle-wrapper.js.map +1 -1
- package/dist/mcp/server.js +19 -14
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/{stats.d.ts → analyze.d.ts} +2 -2
- package/dist/mcp/tools/analyze.d.ts.map +1 -0
- package/dist/mcp/tools/analyze.js +272 -0
- package/dist/mcp/tools/analyze.js.map +1 -0
- package/dist/mcp/tools/import-prd.d.ts.map +1 -1
- package/dist/mcp/tools/import-prd.js +15 -1
- package/dist/mcp/tools/import-prd.js.map +1 -1
- package/dist/mcp/tools/index.js +10 -10
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/list-skills.d.ts +7 -0
- package/dist/mcp/tools/list-skills.d.ts.map +1 -0
- package/dist/mcp/tools/list-skills.js +68 -0
- package/dist/mcp/tools/list-skills.js.map +1 -0
- package/dist/mcp/tools/memory.d.ts +8 -0
- package/dist/mcp/tools/memory.d.ts.map +1 -0
- package/dist/mcp/tools/memory.js +106 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/{velocity.d.ts → metrics.d.ts} +2 -2
- package/dist/mcp/tools/metrics.d.ts.map +1 -0
- package/dist/mcp/tools/metrics.js +69 -0
- package/dist/mcp/tools/metrics.js.map +1 -0
- package/dist/mcp/tools/next.d.ts.map +1 -1
- package/dist/mcp/tools/next.js +19 -5
- package/dist/mcp/tools/next.js.map +1 -1
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -1
- package/dist/mcp/tools/plan-sprint.js +20 -0
- package/dist/mcp/tools/plan-sprint.js.map +1 -1
- package/dist/mcp/tools/rag-context.d.ts.map +1 -1
- package/dist/mcp/tools/rag-context.js +20 -5
- package/dist/mcp/tools/rag-context.js.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.js +11 -7
- package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
- package/dist/mcp/tools/set-phase.d.ts.map +1 -1
- package/dist/mcp/tools/set-phase.js +16 -1
- package/dist/mcp/tools/set-phase.js.map +1 -1
- package/dist/mcp/tools/update-status.d.ts.map +1 -1
- package/dist/mcp/tools/update-status.js +21 -6
- package/dist/mcp/tools/update-status.js.map +1 -1
- package/dist/mcp/tools/{decompose.d.ts → validate-ac.d.ts} +2 -2
- package/dist/mcp/tools/validate-ac.d.ts.map +1 -0
- package/dist/mcp/tools/validate-ac.js +23 -0
- package/dist/mcp/tools/validate-ac.js.map +1 -0
- package/dist/schemas/ac-quality-schema.d.ts +90 -0
- package/dist/schemas/ac-quality-schema.d.ts.map +1 -0
- package/dist/schemas/ac-quality-schema.js +34 -0
- package/dist/schemas/ac-quality-schema.js.map +1 -0
- package/dist/schemas/analyzer-schema.d.ts +160 -0
- package/dist/schemas/analyzer-schema.d.ts.map +1 -0
- package/dist/schemas/analyzer-schema.js +74 -0
- package/dist/schemas/analyzer-schema.js.map +1 -0
- package/dist/schemas/designer-schema.d.ts +259 -0
- package/dist/schemas/designer-schema.d.ts.map +1 -0
- package/dist/schemas/designer-schema.js +102 -0
- package/dist/schemas/designer-schema.js.map +1 -0
- package/dist/schemas/handoff-schema.d.ts +49 -0
- package/dist/schemas/handoff-schema.d.ts.map +1 -0
- package/dist/schemas/handoff-schema.js +28 -0
- package/dist/schemas/handoff-schema.js.map +1 -0
- package/dist/schemas/implementer-schema.d.ts +187 -0
- package/dist/schemas/implementer-schema.d.ts.map +1 -0
- package/dist/schemas/implementer-schema.js +80 -0
- package/dist/schemas/implementer-schema.js.map +1 -0
- package/dist/schemas/knowledge.schema.d.ts +12 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -1
- package/dist/schemas/knowledge.schema.js +1 -1
- package/dist/schemas/knowledge.schema.js.map +1 -1
- package/dist/schemas/listener-schema.d.ts +62 -0
- package/dist/schemas/listener-schema.d.ts.map +1 -0
- package/dist/schemas/listener-schema.js +35 -0
- package/dist/schemas/listener-schema.js.map +1 -0
- package/dist/schemas/reviewer-schema.d.ts +34 -0
- package/dist/schemas/reviewer-schema.d.ts.map +1 -0
- package/dist/schemas/reviewer-schema.js +17 -0
- package/dist/schemas/reviewer-schema.js.map +1 -0
- package/dist/schemas/validator-schema.d.ts +79 -0
- package/dist/schemas/validator-schema.d.ts.map +1 -0
- package/dist/schemas/validator-schema.js +43 -0
- package/dist/schemas/validator-schema.js.map +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-B5Sr8Cah.js +1 -0
- package/dist/web/dashboard/dist/assets/constants-kpH_c6vY.js +1 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DqmbSdzV.js +430 -0
- package/dist/web/dashboard/dist/assets/graph-tab-BKns5HdW.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-utils-BxUWNvsI.js +7 -0
- package/dist/web/dashboard/dist/assets/index-CZOiKbTP.js +53 -0
- package/dist/web/dashboard/dist/assets/index-Dd4vKyDX.js +17 -0
- package/dist/web/dashboard/dist/assets/index-xyMN-_UV.css +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-B1kPckBM.js +52 -0
- package/dist/web/dashboard/dist/assets/{logs-tab-BPDyVj2B.js → logs-tab-BWfsrRlB.js} +1 -1
- package/dist/web/dashboard/dist/assets/memories-tab-D3zm-1Sq.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-DXP4dFP-.js +1 -0
- package/dist/web/dashboard/dist/assets/skills-tab-CAlVL80S.js +1 -0
- package/dist/web/dashboard/dist/index.html +2 -2
- package/package.json +2 -2
- package/dist/api/routes/gitnexus.d.ts +0 -12
- package/dist/api/routes/gitnexus.d.ts.map +0 -1
- package/dist/api/routes/gitnexus.js +0 -164
- package/dist/api/routes/gitnexus.js.map +0 -1
- package/dist/core/integrations/gitnexus-launcher.d.ts +0 -67
- package/dist/core/integrations/gitnexus-launcher.d.ts.map +0 -1
- package/dist/core/integrations/gitnexus-launcher.js +0 -268
- package/dist/core/integrations/gitnexus-launcher.js.map +0 -1
- package/dist/core/integrations/gitnexus-queries.d.ts +0 -55
- package/dist/core/integrations/gitnexus-queries.d.ts.map +0 -1
- package/dist/core/integrations/gitnexus-queries.js +0 -168
- package/dist/core/integrations/gitnexus-queries.js.map +0 -1
- package/dist/core/integrations/serena-reader.d.ts +0 -18
- package/dist/core/integrations/serena-reader.d.ts.map +0 -1
- package/dist/core/integrations/serena-reader.js +0 -68
- package/dist/core/integrations/serena-reader.js.map +0 -1
- package/dist/core/rag/serena-indexer.d.ts +0 -16
- package/dist/core/rag/serena-indexer.d.ts.map +0 -1
- package/dist/core/rag/serena-indexer.js.map +0 -1
- package/dist/core/rag/serena-rag-query.d.ts.map +0 -1
- package/dist/core/rag/serena-rag-query.js.map +0 -1
- package/dist/mcp/tools/bulk-update-status.d.ts +0 -4
- package/dist/mcp/tools/bulk-update-status.d.ts.map +0 -1
- package/dist/mcp/tools/bulk-update-status.js +0 -22
- package/dist/mcp/tools/bulk-update-status.js.map +0 -1
- package/dist/mcp/tools/decompose.d.ts.map +0 -1
- package/dist/mcp/tools/decompose.js +0 -25
- package/dist/mcp/tools/decompose.js.map +0 -1
- package/dist/mcp/tools/dependencies.d.ts +0 -4
- package/dist/mcp/tools/dependencies.d.ts.map +0 -1
- package/dist/mcp/tools/dependencies.js +0 -47
- package/dist/mcp/tools/dependencies.js.map +0 -1
- package/dist/mcp/tools/stats.d.ts.map +0 -1
- package/dist/mcp/tools/stats.js +0 -46
- package/dist/mcp/tools/stats.js.map +0 -1
- package/dist/mcp/tools/velocity.d.ts.map +0 -1
- package/dist/mcp/tools/velocity.js +0 -25
- package/dist/mcp/tools/velocity.js.map +0 -1
- package/dist/web/dashboard/dist/assets/benchmark-tab-DzYj_lJO.js +0 -1
- package/dist/web/dashboard/dist/assets/constants-BIEJOBya.js +0 -1
- package/dist/web/dashboard/dist/assets/gitnexus-tab-B16kDpcc.js +0 -312
- package/dist/web/dashboard/dist/assets/graph-tab-bgRao3Qi.js +0 -1
- package/dist/web/dashboard/dist/assets/graph-utils-CETPf3Qj.js +0 -23
- package/dist/web/dashboard/dist/assets/index-D4nxPvv8.css +0 -1
- package/dist/web/dashboard/dist/assets/index-DLehETrJ.js +0 -53
- package/dist/web/dashboard/dist/assets/insights-tab-MkpvetqF.js +0 -1
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-DbnFo6Ve.js +0 -1
- package/dist/web/dashboard/dist/assets/serena-tab-CLJOpG5i.js +0 -1
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Memory RAG Query — semantic search over memory documents.
|
|
3
3
|
*
|
|
4
4
|
* Supports three modes:
|
|
5
5
|
* - fts: keyword search via FTS5 (fast, exact match)
|
|
6
6
|
* - semantic: TF-IDF cosine similarity (broader, cross-vocabulary)
|
|
7
7
|
* - hybrid: combines FTS and semantic results with deduplication
|
|
8
|
+
*
|
|
9
|
+
* Accepts both "memory" and "serena" sourceType for backward compatibility.
|
|
8
10
|
*/
|
|
9
11
|
import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
10
12
|
import { EmbeddingStore } from "./embedding-store.js";
|
|
11
13
|
import { indexAllEmbeddings, semanticSearch } from "./rag-pipeline.js";
|
|
12
14
|
import { logger } from "../utils/logger.js";
|
|
15
|
+
/** Source types to include in memory queries (backward compat with "serena") */
|
|
16
|
+
const MEMORY_SOURCE_TYPES = new Set(["memory", "serena"]);
|
|
13
17
|
/**
|
|
14
|
-
* Query
|
|
18
|
+
* Query memories using FTS, semantic search, or hybrid.
|
|
15
19
|
*/
|
|
16
|
-
export async function
|
|
20
|
+
export async function queryMemories(store, query, options) {
|
|
17
21
|
const mode = options?.mode ?? "fts";
|
|
18
22
|
const limit = options?.limit ?? 10;
|
|
19
23
|
const knowledgeStore = new KnowledgeStore(store.getDb());
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
22
|
-
logger.info("No
|
|
23
|
-
return { query, mode, results: [],
|
|
24
|
+
const totalMemoryDocuments = knowledgeStore.count("memory") + knowledgeStore.count("serena");
|
|
25
|
+
if (totalMemoryDocuments === 0) {
|
|
26
|
+
logger.info("No memories in knowledge store", { query });
|
|
27
|
+
return { query, mode, results: [], totalMemoryDocuments: 0 };
|
|
24
28
|
}
|
|
25
29
|
const results = [];
|
|
26
30
|
const seenIds = new Set();
|
|
@@ -28,7 +32,7 @@ export async function querySerenaMemories(store, query, options) {
|
|
|
28
32
|
if (mode === "fts" || mode === "hybrid") {
|
|
29
33
|
const ftsResults = knowledgeStore.search(query, limit);
|
|
30
34
|
for (const doc of ftsResults) {
|
|
31
|
-
if (doc.sourceType
|
|
35
|
+
if (!MEMORY_SOURCE_TYPES.has(doc.sourceType))
|
|
32
36
|
continue;
|
|
33
37
|
if (seenIds.has(doc.id))
|
|
34
38
|
continue;
|
|
@@ -38,7 +42,7 @@ export async function querySerenaMemories(store, query, options) {
|
|
|
38
42
|
title: doc.title,
|
|
39
43
|
content: doc.content,
|
|
40
44
|
sourceId: doc.sourceId,
|
|
41
|
-
score: 1.0,
|
|
45
|
+
score: 1.0,
|
|
42
46
|
method: "fts",
|
|
43
47
|
});
|
|
44
48
|
}
|
|
@@ -50,11 +54,10 @@ export async function querySerenaMemories(store, query, options) {
|
|
|
50
54
|
await indexAllEmbeddings(store, embeddingStore);
|
|
51
55
|
const semanticResults = await semanticSearch(embeddingStore, query, limit);
|
|
52
56
|
for (const result of semanticResults) {
|
|
53
|
-
// Filter to only serena-sourced knowledge
|
|
54
57
|
if (result.source !== "knowledge")
|
|
55
58
|
continue;
|
|
56
59
|
const doc = knowledgeStore.getById(result.sourceId);
|
|
57
|
-
if (!doc || doc.sourceType
|
|
60
|
+
if (!doc || !MEMORY_SOURCE_TYPES.has(doc.sourceType))
|
|
58
61
|
continue;
|
|
59
62
|
if (seenIds.has(doc.id))
|
|
60
63
|
continue;
|
|
@@ -72,12 +75,12 @@ export async function querySerenaMemories(store, query, options) {
|
|
|
72
75
|
// Sort by score descending and limit
|
|
73
76
|
results.sort((a, b) => b.score - a.score);
|
|
74
77
|
const limited = results.slice(0, limit);
|
|
75
|
-
logger.info("
|
|
78
|
+
logger.info("Memory RAG query completed", {
|
|
76
79
|
query,
|
|
77
80
|
mode,
|
|
78
81
|
resultsCount: limited.length,
|
|
79
|
-
|
|
82
|
+
totalMemoryDocuments,
|
|
80
83
|
});
|
|
81
|
-
return { query, mode, results: limited,
|
|
84
|
+
return { query, mode, results: limited, totalMemoryDocuments };
|
|
82
85
|
}
|
|
83
|
-
//# sourceMappingURL=
|
|
86
|
+
//# sourceMappingURL=memory-rag-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-rag-query.js","sourceRoot":"","sources":["../../../src/core/rag/memory-rag-query.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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase Summary Generator — creates a knowledge document summarizing
|
|
3
|
+
* what was accomplished during a lifecycle phase when transitioning out.
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from "../utils/logger.js";
|
|
6
|
+
const TASK_TYPES = new Set(["task", "subtask"]);
|
|
7
|
+
const DESIGN_TYPES = new Set(["decision", "constraint", "risk", "acceptance_criteria"]);
|
|
8
|
+
/**
|
|
9
|
+
* Generate and index a phase summary document into the knowledge store.
|
|
10
|
+
* Captures key metrics and decisions from the completed phase.
|
|
11
|
+
*/
|
|
12
|
+
export function generateAndIndexPhaseSummary(knowledgeStore, doc, fromPhase, toPhase) {
|
|
13
|
+
const summaryText = buildPhaseSummaryText(doc, fromPhase, toPhase);
|
|
14
|
+
const sourceId = `phase_summary:${fromPhase}:${new Date().toISOString()}`;
|
|
15
|
+
try {
|
|
16
|
+
knowledgeStore.insert({
|
|
17
|
+
sourceType: "phase_summary",
|
|
18
|
+
sourceId,
|
|
19
|
+
title: `Phase ${fromPhase} Summary → ${toPhase}`,
|
|
20
|
+
content: summaryText,
|
|
21
|
+
metadata: {
|
|
22
|
+
phase: fromPhase,
|
|
23
|
+
transitionTo: toPhase,
|
|
24
|
+
transitionedAt: new Date().toISOString(),
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
logger.info("Phase summary indexed", { fromPhase, toPhase });
|
|
28
|
+
return { indexed: true, summaryText };
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
logger.warn("Phase summary indexing failed", { error: String(err) });
|
|
32
|
+
return { indexed: false, summaryText };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build a human-readable summary of what happened during a phase.
|
|
37
|
+
*/
|
|
38
|
+
function buildPhaseSummaryText(doc, fromPhase, toPhase) {
|
|
39
|
+
const { nodes, edges } = doc;
|
|
40
|
+
const tasks = nodes.filter((n) => TASK_TYPES.has(n.type));
|
|
41
|
+
const doneTasks = tasks.filter((n) => n.status === "done");
|
|
42
|
+
const inProgressTasks = tasks.filter((n) => n.status === "in_progress");
|
|
43
|
+
const designNodes = nodes.filter((n) => DESIGN_TYPES.has(n.type));
|
|
44
|
+
const sections = [];
|
|
45
|
+
sections.push(`Phase ${fromPhase} completed. Transitioning to ${toPhase}.`);
|
|
46
|
+
sections.push(`Total nodes: ${nodes.length}. Edges: ${edges.length}.`);
|
|
47
|
+
if (tasks.length > 0) {
|
|
48
|
+
sections.push(`Tasks: ${tasks.length} total, ${doneTasks.length} done, ${inProgressTasks.length} in progress, ${tasks.length - doneTasks.length - inProgressTasks.length} remaining.`);
|
|
49
|
+
}
|
|
50
|
+
// Phase-specific summaries
|
|
51
|
+
switch (fromPhase) {
|
|
52
|
+
case "ANALYZE": {
|
|
53
|
+
const requirements = nodes.filter((n) => n.type === "requirement");
|
|
54
|
+
const epics = nodes.filter((n) => n.type === "epic");
|
|
55
|
+
sections.push(`Requirements defined: ${requirements.length}. Epics: ${epics.length}.`);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case "DESIGN": {
|
|
59
|
+
const decisions = designNodes.filter((n) => n.type === "decision");
|
|
60
|
+
const constraints = designNodes.filter((n) => n.type === "constraint");
|
|
61
|
+
const risks = designNodes.filter((n) => n.type === "risk");
|
|
62
|
+
sections.push(`Decisions: ${decisions.length}. Constraints: ${constraints.length}. Risks: ${risks.length}.`);
|
|
63
|
+
if (decisions.length > 0) {
|
|
64
|
+
const decisionTitles = decisions.map((d) => d.title).slice(0, 5);
|
|
65
|
+
sections.push(`Key decisions: ${decisionTitles.join("; ")}.`);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "PLAN": {
|
|
70
|
+
const sprintTasks = tasks.filter((n) => n.sprint != null);
|
|
71
|
+
const sprints = new Set(sprintTasks.map((n) => n.sprint));
|
|
72
|
+
sections.push(`Sprint-assigned tasks: ${sprintTasks.length} across ${sprints.size} sprint(s).`);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case "IMPLEMENT": {
|
|
76
|
+
sections.push(`Tasks completed: ${doneTasks.length}/${tasks.length}.`);
|
|
77
|
+
const acNodes = nodes.filter((n) => n.type === "acceptance_criteria");
|
|
78
|
+
if (acNodes.length > 0) {
|
|
79
|
+
sections.push(`Acceptance criteria nodes: ${acNodes.length}.`);
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
case "VALIDATE": {
|
|
84
|
+
const tasksWithAc = tasks.filter((n) => n.acceptanceCriteria && n.acceptanceCriteria.length > 0);
|
|
85
|
+
sections.push(`Tasks with acceptance criteria: ${tasksWithAc.length}/${tasks.length}.`);
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case "REVIEW": {
|
|
89
|
+
sections.push(`All tasks done: ${doneTasks.length === tasks.length ? "yes" : "no"}.`);
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case "HANDOFF": {
|
|
93
|
+
sections.push(`Handoff completed. ${doneTasks.length} tasks delivered.`);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case "LISTENING": {
|
|
97
|
+
const feedbackNodes = nodes.filter((n) => n.type === "requirement" || n.type === "risk");
|
|
98
|
+
sections.push(`Feedback items collected: ${feedbackNodes.length}.`);
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return sections.join("\n");
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=phase-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-summary.js","sourceRoot":"","sources":["../../../src/core/rag/phase-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD Indexer — indexes PRD text content into the knowledge store
|
|
3
|
+
* so that original requirements can be queried in later lifecycle phases.
|
|
4
|
+
*/
|
|
5
|
+
import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
6
|
+
import type { LifecyclePhase } from "../planner/lifecycle-phase.js";
|
|
7
|
+
export interface PrdIndexResult {
|
|
8
|
+
documentsIndexed: number;
|
|
9
|
+
sourceFile: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Index PRD text content into the knowledge store.
|
|
13
|
+
* Chunks the content and stores with source_type='prd'.
|
|
14
|
+
*/
|
|
15
|
+
export declare function indexPrdContent(knowledgeStore: KnowledgeStore, content: string, sourceFile: string, phase?: LifecyclePhase): PrdIndexResult;
|
|
16
|
+
//# sourceMappingURL=prd-indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prd-indexer.d.ts","sourceRoot":"","sources":["../../../src/core/rag/prd-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,cAAc,GACrB,cAAc,CAiChB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD Indexer — indexes PRD text content into the knowledge store
|
|
3
|
+
* so that original requirements can be queried in later lifecycle phases.
|
|
4
|
+
*/
|
|
5
|
+
import { chunkText } from "./chunk-text.js";
|
|
6
|
+
import { logger } from "../utils/logger.js";
|
|
7
|
+
/**
|
|
8
|
+
* Index PRD text content into the knowledge store.
|
|
9
|
+
* Chunks the content and stores with source_type='prd'.
|
|
10
|
+
*/
|
|
11
|
+
export function indexPrdContent(knowledgeStore, content, sourceFile, phase) {
|
|
12
|
+
const chunks = chunkText(content);
|
|
13
|
+
if (chunks.length === 0) {
|
|
14
|
+
logger.info("No content to index from PRD", { sourceFile });
|
|
15
|
+
return { documentsIndexed: 0, sourceFile };
|
|
16
|
+
}
|
|
17
|
+
const sourceId = `prd:${sourceFile}`;
|
|
18
|
+
// Remove previous version to re-index fresh content
|
|
19
|
+
knowledgeStore.deleteBySource("prd", sourceId);
|
|
20
|
+
const docs = knowledgeStore.insertChunks(chunks.map((chunk) => ({
|
|
21
|
+
sourceType: "prd",
|
|
22
|
+
sourceId,
|
|
23
|
+
title: chunks.length > 1
|
|
24
|
+
? `PRD: ${sourceFile} [${chunk.index + 1}/${chunks.length}]`
|
|
25
|
+
: `PRD: ${sourceFile}`,
|
|
26
|
+
content: chunk.content,
|
|
27
|
+
chunkIndex: chunk.index,
|
|
28
|
+
metadata: {
|
|
29
|
+
sourceFile,
|
|
30
|
+
phase: phase ?? "ANALYZE",
|
|
31
|
+
indexedAt: new Date().toISOString(),
|
|
32
|
+
},
|
|
33
|
+
})));
|
|
34
|
+
logger.info("PRD content indexed", { sourceFile, chunks: docs.length });
|
|
35
|
+
return { documentsIndexed: docs.length, sourceFile };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=prd-indexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prd-indexer.js","sourceRoot":"","sources":["../../../src/core/rag/prd-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,cAA8B,EAC9B,OAAe,EACf,UAAkB,EAClB,KAAsB;IAEtB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,UAAU,EAAE,CAAC;IAErC,oDAAoD;IACpD,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,CACtC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,UAAU,EAAE,KAAc;QAC1B,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,QAAQ,UAAU,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG;YAC5D,CAAC,CAAC,QAAQ,UAAU,EAAE;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,QAAQ,EAAE;YACR,UAAU;YACV,KAAK,EAAE,KAAK,IAAI,SAAS;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAExE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Indexer — indexes built-in skills and filesystem skills
|
|
3
|
+
* into the knowledge store for unified search.
|
|
4
|
+
*/
|
|
5
|
+
import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
6
|
+
export interface SkillIndexResult {
|
|
7
|
+
builtInIndexed: number;
|
|
8
|
+
filesystemIndexed: number;
|
|
9
|
+
skippedDuplicates: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Index all skills (built-in + filesystem) into the knowledge store.
|
|
13
|
+
* Uses sourceType: "skill" and sourceId: "skill:{name}".
|
|
14
|
+
*/
|
|
15
|
+
export declare function indexSkills(knowledgeStore: KnowledgeStore, basePath: string): Promise<SkillIndexResult>;
|
|
16
|
+
//# sourceMappingURL=skill-indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-indexer.d.ts","sourceRoot":"","sources":["../../../src/core/rag/skill-indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CA0E3B"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Indexer — indexes built-in skills and filesystem skills
|
|
3
|
+
* into the knowledge store for unified search.
|
|
4
|
+
*/
|
|
5
|
+
import { getBuiltInSkills } from "../skills/built-in-skills.js";
|
|
6
|
+
import { scanSkills } from "../insights/skill-recommender.js";
|
|
7
|
+
import { chunkText } from "./chunk-text.js";
|
|
8
|
+
import { logger } from "../utils/logger.js";
|
|
9
|
+
/**
|
|
10
|
+
* Index all skills (built-in + filesystem) into the knowledge store.
|
|
11
|
+
* Uses sourceType: "skill" and sourceId: "skill:{name}".
|
|
12
|
+
*/
|
|
13
|
+
export async function indexSkills(knowledgeStore, basePath) {
|
|
14
|
+
let builtInIndexed = 0;
|
|
15
|
+
let filesystemIndexed = 0;
|
|
16
|
+
let skippedDuplicates = 0;
|
|
17
|
+
// Index built-in skills
|
|
18
|
+
const builtInSkills = getBuiltInSkills();
|
|
19
|
+
for (const skill of builtInSkills) {
|
|
20
|
+
const content = formatSkillContent(skill);
|
|
21
|
+
const countBefore = knowledgeStore.count("skill");
|
|
22
|
+
knowledgeStore.insert({
|
|
23
|
+
sourceType: "skill",
|
|
24
|
+
sourceId: `skill:${skill.name}`,
|
|
25
|
+
title: skill.name,
|
|
26
|
+
content,
|
|
27
|
+
chunkIndex: 0,
|
|
28
|
+
metadata: {
|
|
29
|
+
category: skill.category,
|
|
30
|
+
phases: skill.phases,
|
|
31
|
+
description: skill.description,
|
|
32
|
+
source: "built-in",
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
if (knowledgeStore.count("skill") > countBefore) {
|
|
36
|
+
builtInIndexed++;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
skippedDuplicates++;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Index filesystem skills
|
|
43
|
+
try {
|
|
44
|
+
const fsSkills = await scanSkills(basePath);
|
|
45
|
+
for (const fsSkill of fsSkills) {
|
|
46
|
+
// Skip if already indexed as built-in
|
|
47
|
+
const isBuiltIn = builtInSkills.some((b) => b.name === fsSkill.name);
|
|
48
|
+
if (isBuiltIn)
|
|
49
|
+
continue;
|
|
50
|
+
const content = `# ${fsSkill.name}\n\n${fsSkill.description}\n\nCategory: ${fsSkill.category}`;
|
|
51
|
+
const chunks = chunkText(content);
|
|
52
|
+
const countBefore = knowledgeStore.count("skill");
|
|
53
|
+
for (const chunk of chunks) {
|
|
54
|
+
knowledgeStore.insert({
|
|
55
|
+
sourceType: "skill",
|
|
56
|
+
sourceId: `skill:${fsSkill.name}`,
|
|
57
|
+
title: chunks.length > 1
|
|
58
|
+
? `${fsSkill.name} [${chunk.index + 1}/${chunks.length}]`
|
|
59
|
+
: fsSkill.name,
|
|
60
|
+
content: chunk.content,
|
|
61
|
+
chunkIndex: chunk.index,
|
|
62
|
+
metadata: {
|
|
63
|
+
category: fsSkill.category,
|
|
64
|
+
description: fsSkill.description,
|
|
65
|
+
filePath: fsSkill.filePath,
|
|
66
|
+
source: "filesystem",
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (knowledgeStore.count("skill") > countBefore) {
|
|
71
|
+
filesystemIndexed++;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
skippedDuplicates++;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
logger.debug("skill-indexer: filesystem scan skipped (no skills directory)");
|
|
80
|
+
}
|
|
81
|
+
logger.info("Skills indexed", { builtInIndexed, filesystemIndexed, skippedDuplicates });
|
|
82
|
+
return { builtInIndexed, filesystemIndexed, skippedDuplicates };
|
|
83
|
+
}
|
|
84
|
+
function formatSkillContent(skill) {
|
|
85
|
+
return [
|
|
86
|
+
`# ${skill.name}`,
|
|
87
|
+
"",
|
|
88
|
+
skill.description,
|
|
89
|
+
"",
|
|
90
|
+
`Category: ${skill.category}`,
|
|
91
|
+
`Phases: ${skill.phases.join(", ")}`,
|
|
92
|
+
"",
|
|
93
|
+
"## Instructions",
|
|
94
|
+
"",
|
|
95
|
+
skill.instructions,
|
|
96
|
+
].join("\n");
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=skill-indexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-indexer.js","sourceRoot":"","sources":["../../../src/core/rag/skill-indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Review Readiness — composite gate for VALIDATE→REVIEW transition.
|
|
3
|
+
* 100% reuse of existing analyzers, no new helper modules.
|
|
4
|
+
*/
|
|
5
|
+
import type { GraphDocument } from "../graph/graph-types.js";
|
|
6
|
+
import type { ReviewReadinessReport } from "../../schemas/reviewer-schema.js";
|
|
7
|
+
export declare function checkReviewReadiness(doc: GraphDocument): ReviewReadinessReport;
|
|
8
|
+
//# sourceMappingURL=review-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-readiness.d.ts","sourceRoot":"","sources":["../../../src/core/reviewer/review-readiness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAwB,MAAM,kCAAkC,CAAC;AAoBpG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,qBAAqB,CA6J9E"}
|