@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
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sprint Progress — burndown, velocity trend, blockers, critical path, and ETA.
|
|
3
|
+
* Composes existing functions: calculateVelocity + findCriticalPath + findTransitiveBlockers.
|
|
4
|
+
*/
|
|
5
|
+
import { calculateVelocity } from "../planner/velocity.js";
|
|
6
|
+
import { findTransitiveBlockers, findCriticalPath } from "../planner/dependency-chain.js";
|
|
7
|
+
import { logger } from "../utils/logger.js";
|
|
8
|
+
const TASK_TYPES = new Set(["task", "subtask"]);
|
|
9
|
+
/**
|
|
10
|
+
* Calculate sprint progress with burndown, velocity, blockers, and ETA.
|
|
11
|
+
*/
|
|
12
|
+
export function calculateSprintProgress(doc, sprint) {
|
|
13
|
+
// Filter tasks by sprint if provided
|
|
14
|
+
const allTasks = doc.nodes.filter((n) => TASK_TYPES.has(n.type));
|
|
15
|
+
const tasks = sprint
|
|
16
|
+
? allTasks.filter((n) => n.sprint === sprint)
|
|
17
|
+
: allTasks;
|
|
18
|
+
const done = tasks.filter((n) => n.status === "done").length;
|
|
19
|
+
const inProgress = tasks.filter((n) => n.status === "in_progress").length;
|
|
20
|
+
const blocked = tasks.filter((n) => n.status === "blocked").length;
|
|
21
|
+
const backlog = tasks.filter((n) => n.status === "backlog").length;
|
|
22
|
+
const ready = tasks.filter((n) => n.status === "ready").length;
|
|
23
|
+
const total = tasks.length;
|
|
24
|
+
const donePercent = total > 0 ? Math.round((done / total) * 100) : 0;
|
|
25
|
+
// Velocity trend
|
|
26
|
+
const velocity = calculateVelocity(doc);
|
|
27
|
+
const currentSprintVelocity = sprint
|
|
28
|
+
? velocity.sprints.find((s) => s.sprint === sprint)?.totalPoints ?? 0
|
|
29
|
+
: velocity.overall.totalPoints;
|
|
30
|
+
const averageVelocity = velocity.overall.avgPointsPerSprint;
|
|
31
|
+
const trend = determineTrend(currentSprintVelocity, averageVelocity);
|
|
32
|
+
// Blockers
|
|
33
|
+
const blockedTasks = tasks.filter((n) => n.status === "blocked");
|
|
34
|
+
const blockers = blockedTasks.map((t) => {
|
|
35
|
+
const transBlockers = findTransitiveBlockers(doc, t.id);
|
|
36
|
+
return {
|
|
37
|
+
nodeId: t.id,
|
|
38
|
+
title: t.title,
|
|
39
|
+
blockedBy: transBlockers.map((b) => b.id),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
// Critical path remaining
|
|
43
|
+
const criticalPath = findCriticalPath(doc);
|
|
44
|
+
const criticalPathRemaining = criticalPath.filter((n) => n.status !== "done").length;
|
|
45
|
+
// ETA
|
|
46
|
+
const remaining = total - done;
|
|
47
|
+
const avgHours = velocity.overall.avgCompletionHours;
|
|
48
|
+
const estimatedCompletionDays = remaining > 0 && avgHours !== null && avgHours > 0
|
|
49
|
+
? Math.round((remaining * avgHours / 8) * 10) / 10 // 8h per day
|
|
50
|
+
: null;
|
|
51
|
+
const summary = `Sprint Progress: ${done}/${total} done (${donePercent}%). ${blocked} blocked, ${criticalPathRemaining} on critical path.${estimatedCompletionDays !== null ? ` ETA: ~${estimatedCompletionDays} days.` : ""}`;
|
|
52
|
+
logger.info("sprint-progress", {
|
|
53
|
+
sprint: sprint ?? "(all)",
|
|
54
|
+
done,
|
|
55
|
+
total,
|
|
56
|
+
donePercent,
|
|
57
|
+
blocked,
|
|
58
|
+
criticalPathRemaining,
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
sprint: sprint ?? null,
|
|
62
|
+
burndown: { total, done, inProgress, blocked, backlog, ready, donePercent },
|
|
63
|
+
velocityTrend: { currentSprintVelocity, averageVelocity, trend },
|
|
64
|
+
blockers,
|
|
65
|
+
criticalPathRemaining,
|
|
66
|
+
estimatedCompletionDays,
|
|
67
|
+
summary,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function determineTrend(current, average) {
|
|
71
|
+
if (average === 0)
|
|
72
|
+
return "stable";
|
|
73
|
+
const ratio = current / average;
|
|
74
|
+
if (ratio > 1.1)
|
|
75
|
+
return "up";
|
|
76
|
+
if (ratio < 0.9)
|
|
77
|
+
return "down";
|
|
78
|
+
return "stable";
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=sprint-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprint-progress.js","sourceRoot":"","sources":["../../../src/core/implementer/sprint-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TDD Checker — validates TDD adherence and generates test spec suggestions
|
|
3
|
+
* based on acceptance criteria analysis.
|
|
4
|
+
*/
|
|
5
|
+
import type { GraphDocument, GraphNode } from "../graph/graph-types.js";
|
|
6
|
+
import type { TddCheckReport, TddHint } from "../../schemas/implementer-schema.js";
|
|
7
|
+
/**
|
|
8
|
+
* Check TDD adherence across tasks in the graph.
|
|
9
|
+
*/
|
|
10
|
+
export declare function checkTddAdherence(doc: GraphDocument, nodeId?: string): TddCheckReport;
|
|
11
|
+
/**
|
|
12
|
+
* Generate TDD hints for a single node — lightweight version for next tool enrichment.
|
|
13
|
+
*/
|
|
14
|
+
export declare function generateTddHints(node: GraphNode): TddHint[];
|
|
15
|
+
//# sourceMappingURL=tdd-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tdd-checker.d.ts","sourceRoot":"","sources":["../../../src/core/implementer/tdd-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EACV,cAAc,EAId,OAAO,EACR,MAAM,qCAAqC,CAAC;AAqB7C;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAuDrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,CAW3D"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TDD Checker — validates TDD adherence and generates test spec suggestions
|
|
3
|
+
* based on acceptance criteria analysis.
|
|
4
|
+
*/
|
|
5
|
+
import { parseAc } from "../analyzer/ac-parser.js";
|
|
6
|
+
import { logger } from "../utils/logger.js";
|
|
7
|
+
const UNIT_KEYWORDS = [
|
|
8
|
+
"retorna", "returns", "return", "status", "calcula", "calculates",
|
|
9
|
+
"valida", "validates", "converte", "converts", "formata", "formats",
|
|
10
|
+
];
|
|
11
|
+
const INTEGRATION_KEYWORDS = [
|
|
12
|
+
"integra", "conecta", "persiste", "salva", "saves", "persist",
|
|
13
|
+
"database", "db", "armazena", "stores", "envia", "sends",
|
|
14
|
+
"publica", "publishes", "sincroniza", "syncs",
|
|
15
|
+
];
|
|
16
|
+
const E2E_KEYWORDS = [
|
|
17
|
+
"navega", "navigate", "exibe", "displays", "mostra", "shows",
|
|
18
|
+
"clica", "clicks", "página", "page", "redireciona", "redirects",
|
|
19
|
+
"formulário", "form", "botão", "button", "tela", "screen",
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Check TDD adherence across tasks in the graph.
|
|
23
|
+
*/
|
|
24
|
+
export function checkTddAdherence(doc, nodeId) {
|
|
25
|
+
const tasks = selectTasks(doc, nodeId);
|
|
26
|
+
const taskReports = [];
|
|
27
|
+
const allSuggested = [];
|
|
28
|
+
for (const node of tasks) {
|
|
29
|
+
const acs = node.acceptanceCriteria ?? [];
|
|
30
|
+
if (acs.length === 0)
|
|
31
|
+
continue;
|
|
32
|
+
const parsed = acs.map((ac) => parseAc(ac));
|
|
33
|
+
const testableAcs = parsed.filter((p) => p.isTestable).length;
|
|
34
|
+
const measurableAcs = parsed.filter((p) => p.isMeasurable).length;
|
|
35
|
+
const testabilityScore = acs.length > 0
|
|
36
|
+
? Math.round((testableAcs / acs.length) * 100)
|
|
37
|
+
: 0;
|
|
38
|
+
const suggestedTests = [];
|
|
39
|
+
for (let i = 0; i < acs.length; i++) {
|
|
40
|
+
const ac = acs[i];
|
|
41
|
+
const p = parsed[i];
|
|
42
|
+
const specs = generateTestSpecsFromAc(ac, p);
|
|
43
|
+
suggestedTests.push(...specs);
|
|
44
|
+
}
|
|
45
|
+
allSuggested.push(...suggestedTests);
|
|
46
|
+
taskReports.push({
|
|
47
|
+
nodeId: node.id,
|
|
48
|
+
title: node.title,
|
|
49
|
+
totalAcs: acs.length,
|
|
50
|
+
testableAcs,
|
|
51
|
+
measurableAcs,
|
|
52
|
+
testabilityScore,
|
|
53
|
+
suggestedTests,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const tasksAtRisk = taskReports.filter((t) => t.testabilityScore === 0).length;
|
|
57
|
+
const overallTestability = taskReports.length > 0
|
|
58
|
+
? Math.round(taskReports.reduce((sum, t) => sum + t.testabilityScore, 0) / taskReports.length)
|
|
59
|
+
: 0;
|
|
60
|
+
const summary = taskReports.length > 0
|
|
61
|
+
? `TDD Check: ${taskReports.length} tasks analyzed, ${tasksAtRisk} at risk. Overall testability: ${overallTestability}%. ${allSuggested.length} test specs suggested.`
|
|
62
|
+
: "Nenhuma task com acceptance criteria encontrada.";
|
|
63
|
+
logger.info("tdd-checker", { tasks: taskReports.length, tasksAtRisk, overallTestability });
|
|
64
|
+
return {
|
|
65
|
+
tasks: taskReports,
|
|
66
|
+
overallTestability,
|
|
67
|
+
tasksAtRisk,
|
|
68
|
+
suggestedTestSpecs: allSuggested,
|
|
69
|
+
summary,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generate TDD hints for a single node — lightweight version for next tool enrichment.
|
|
74
|
+
*/
|
|
75
|
+
export function generateTddHints(node) {
|
|
76
|
+
const acs = node.acceptanceCriteria ?? [];
|
|
77
|
+
if (acs.length === 0)
|
|
78
|
+
return [];
|
|
79
|
+
const hints = [];
|
|
80
|
+
for (const ac of acs) {
|
|
81
|
+
const parsed = parseAc(ac);
|
|
82
|
+
const specs = generateTestSpecsFromAc(ac, parsed);
|
|
83
|
+
hints.push(...specs);
|
|
84
|
+
}
|
|
85
|
+
return hints;
|
|
86
|
+
}
|
|
87
|
+
function selectTasks(doc, nodeId) {
|
|
88
|
+
if (nodeId) {
|
|
89
|
+
const node = doc.nodes.find((n) => n.id === nodeId);
|
|
90
|
+
return node ? [node] : [];
|
|
91
|
+
}
|
|
92
|
+
return doc.nodes.filter((n) => (n.type === "task" || n.type === "subtask") &&
|
|
93
|
+
n.acceptanceCriteria &&
|
|
94
|
+
n.acceptanceCriteria.length > 0);
|
|
95
|
+
}
|
|
96
|
+
function generateTestSpecsFromAc(acText, parsed) {
|
|
97
|
+
const specs = [];
|
|
98
|
+
const type = inferTestType(acText);
|
|
99
|
+
if (parsed.format === "gwt" && parsed.steps) {
|
|
100
|
+
const thenSteps = parsed.steps.filter((s) => s.keyword === "then");
|
|
101
|
+
const whenSteps = parsed.steps.filter((s) => s.keyword === "when");
|
|
102
|
+
const givenSteps = parsed.steps.filter((s) => s.keyword === "given");
|
|
103
|
+
if (thenSteps.length > 0) {
|
|
104
|
+
const testName = buildGwtTestName(thenSteps[0].text, whenSteps[0]?.text, givenSteps[0]?.text);
|
|
105
|
+
specs.push({ testName, fromAc: acText, type });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else if (parsed.isTestable) {
|
|
109
|
+
const testName = `should ${acText.toLowerCase().slice(0, 80)}`;
|
|
110
|
+
specs.push({ testName, fromAc: acText, type });
|
|
111
|
+
}
|
|
112
|
+
return specs;
|
|
113
|
+
}
|
|
114
|
+
function buildGwtTestName(then, when, given) {
|
|
115
|
+
let name = `should ${then.toLowerCase()}`;
|
|
116
|
+
if (when)
|
|
117
|
+
name += ` when ${when.toLowerCase()}`;
|
|
118
|
+
if (given)
|
|
119
|
+
name += ` given ${given.toLowerCase()}`;
|
|
120
|
+
return name;
|
|
121
|
+
}
|
|
122
|
+
function inferTestType(text) {
|
|
123
|
+
const lower = text.toLowerCase();
|
|
124
|
+
if (E2E_KEYWORDS.some((k) => lower.includes(k)))
|
|
125
|
+
return "e2e";
|
|
126
|
+
if (INTEGRATION_KEYWORDS.some((k) => lower.includes(k)))
|
|
127
|
+
return "integration";
|
|
128
|
+
if (UNIT_KEYWORDS.some((k) => lower.includes(k)))
|
|
129
|
+
return "unit";
|
|
130
|
+
return "unit"; // default
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=tdd-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tdd-checker.js","sourceRoot":"","sources":["../../../src/core/implementer/tdd-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ export function detectBottlenecks(doc) {
|
|
|
68
68
|
n.estimateMinutes != null &&
|
|
69
69
|
n.estimateMinutes > OVERSIZE_THRESHOLD_MINUTES &&
|
|
70
70
|
!hasChildren(n.id))
|
|
71
|
-
.map((n) => ({ id: n.id, title: n.title, estimateMinutes: n.estimateMinutes }));
|
|
71
|
+
.map((n) => ({ id: n.id, title: n.title, estimateMinutes: n.estimateMinutes ?? 0 }));
|
|
72
72
|
logger.info("Bottleneck detection complete", {
|
|
73
73
|
blocked: blockedTasks.length,
|
|
74
74
|
missingAC: missingAcceptanceCriteria.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottleneck-detector.js","sourceRoot":"","sources":["../../../src/core/insights/bottleneck-detector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bottleneck-detector.js","sourceRoot":"","sources":["../../../src/core/insights/bottleneck-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Enriched Context Builder — combines
|
|
2
|
+
* Enriched Context Builder — combines project memories with native Code Intelligence
|
|
3
3
|
* for a unified symbol context. All data sourced locally.
|
|
4
4
|
*/
|
|
5
|
+
import type { CodeGraphData } from "../code/code-types.js";
|
|
5
6
|
export interface EnrichedContext {
|
|
6
7
|
symbol: string;
|
|
7
|
-
|
|
8
|
+
memories: {
|
|
8
9
|
available: boolean;
|
|
9
10
|
relevantMemories: Array<{
|
|
10
11
|
name: string;
|
|
11
12
|
excerpt: string;
|
|
12
13
|
}>;
|
|
13
14
|
};
|
|
14
|
-
|
|
15
|
+
codeGraph: {
|
|
15
16
|
available: boolean;
|
|
16
|
-
data?:
|
|
17
|
+
data?: CodeGraphData;
|
|
17
18
|
};
|
|
18
19
|
combined: string;
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
|
-
* Build enriched context for a symbol by combining
|
|
22
|
+
* Build enriched context for a symbol by combining project memories + native Code Intelligence.
|
|
22
23
|
*/
|
|
23
|
-
export declare function buildEnrichedContext(symbol: string, basePath: string,
|
|
24
|
+
export declare function buildEnrichedContext(symbol: string, basePath: string, _unused?: number, options?: {
|
|
25
|
+
db?: import("better-sqlite3").Database;
|
|
26
|
+
projectId?: string;
|
|
27
|
+
}): Promise<EnrichedContext>;
|
|
24
28
|
//# sourceMappingURL=enriched-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enriched-context.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/enriched-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"enriched-context.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/enriched-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QACR,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC5D,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,aAAa,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,gBAAgB,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,OAAO,CAAC,eAAe,CAAC,CAoD1B"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Enriched Context Builder — combines
|
|
2
|
+
* Enriched Context Builder — combines project memories with native Code Intelligence
|
|
3
3
|
* for a unified symbol context. All data sourced locally.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { readAllMemories } from "../memory/memory-reader.js";
|
|
6
|
+
import { migrateSerenaMemories } from "../memory/memory-migrator.js";
|
|
7
7
|
import { logger } from "../utils/logger.js";
|
|
8
|
+
import { CodeStore } from "../code/code-store.js";
|
|
9
|
+
import { getSymbolContext } from "../code/graph-traversal.js";
|
|
8
10
|
/**
|
|
9
11
|
* Filter memories that mention the given symbol (case-insensitive).
|
|
10
12
|
*/
|
|
@@ -13,7 +15,6 @@ function filterRelevantMemories(memories, symbol) {
|
|
|
13
15
|
return memories
|
|
14
16
|
.filter((m) => m.content.toLowerCase().includes(lower))
|
|
15
17
|
.map((m) => {
|
|
16
|
-
// Extract relevant excerpt — lines containing the symbol
|
|
17
18
|
const lines = m.content.split("\n");
|
|
18
19
|
const relevant = lines.filter((l) => l.toLowerCase().includes(lower));
|
|
19
20
|
const excerpt = relevant.slice(0, 5).join("\n") || m.content.slice(0, 200);
|
|
@@ -21,68 +22,67 @@ function filterRelevantMemories(memories, symbol) {
|
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
+
* Query native Code Intelligence engine for symbol context.
|
|
25
26
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (!running) {
|
|
27
|
+
function fetchCodeContext(symbol, db, projectId) {
|
|
28
|
+
if (!db)
|
|
29
29
|
return { available: false };
|
|
30
|
-
}
|
|
31
30
|
try {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return { available: true, data };
|
|
31
|
+
const codeStore = new CodeStore(db);
|
|
32
|
+
const meta = codeStore.getIndexMeta(projectId);
|
|
33
|
+
if (!meta)
|
|
34
|
+
return { available: false };
|
|
35
|
+
const context = getSymbolContext(codeStore, symbol, projectId);
|
|
36
|
+
return {
|
|
37
|
+
available: true,
|
|
38
|
+
data: context.symbols.length > 0 ? context : undefined,
|
|
39
|
+
};
|
|
42
40
|
}
|
|
43
41
|
catch {
|
|
44
42
|
return { available: false };
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
45
|
/**
|
|
48
|
-
* Build enriched context for a symbol by combining
|
|
46
|
+
* Build enriched context for a symbol by combining project memories + native Code Intelligence.
|
|
49
47
|
*/
|
|
50
|
-
export async function buildEnrichedContext(symbol, basePath,
|
|
48
|
+
export async function buildEnrichedContext(symbol, basePath, _unused, options) {
|
|
51
49
|
logger.info("Building enriched context", { symbol, basePath });
|
|
50
|
+
// Lazy migration: copy .serena/memories → workflow-graph/memories if needed
|
|
51
|
+
await migrateSerenaMemories(basePath);
|
|
52
52
|
// Fetch data from both sources in parallel
|
|
53
|
-
const [memories,
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
const [memories, codeGraph] = await Promise.all([
|
|
54
|
+
readAllMemories(basePath),
|
|
55
|
+
Promise.resolve(fetchCodeContext(symbol, options?.db ?? null, options?.projectId ?? "default")),
|
|
56
56
|
]);
|
|
57
|
-
const
|
|
57
|
+
const memoriesAvailable = memories.length > 0;
|
|
58
58
|
const relevantMemories = filterRelevantMemories(memories, symbol);
|
|
59
59
|
// Build combined summary
|
|
60
60
|
const parts = [`Symbol: ${symbol}`];
|
|
61
61
|
if (relevantMemories.length > 0) {
|
|
62
|
-
parts.push(`\
|
|
62
|
+
parts.push(`\nMemories (${relevantMemories.length} relevant):`);
|
|
63
63
|
for (const mem of relevantMemories) {
|
|
64
64
|
parts.push(` [${mem.name}] ${mem.excerpt.split("\n")[0]}`);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
if (
|
|
68
|
-
parts.push(
|
|
67
|
+
if (codeGraph.available && codeGraph.data) {
|
|
68
|
+
parts.push(`\nCode Graph: ${codeGraph.data.symbols.length} symbols, ${codeGraph.data.relations.length} relations`);
|
|
69
69
|
}
|
|
70
|
-
else if (!
|
|
71
|
-
parts.push("\
|
|
70
|
+
else if (!codeGraph.available) {
|
|
71
|
+
parts.push("\nCode Intelligence: Not indexed. Run reindex first.");
|
|
72
72
|
}
|
|
73
73
|
const combined = parts.join("\n");
|
|
74
74
|
logger.info("Enriched context built", {
|
|
75
75
|
symbol,
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
memories: relevantMemories.length,
|
|
77
|
+
codeGraphAvailable: codeGraph.available,
|
|
78
78
|
});
|
|
79
79
|
return {
|
|
80
80
|
symbol,
|
|
81
|
-
|
|
82
|
-
available:
|
|
81
|
+
memories: {
|
|
82
|
+
available: memoriesAvailable,
|
|
83
83
|
relevantMemories,
|
|
84
84
|
},
|
|
85
|
-
|
|
85
|
+
codeGraph,
|
|
86
86
|
combined,
|
|
87
87
|
};
|
|
88
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enriched-context.js","sourceRoot":"","sources":["../../../src/core/integrations/enriched-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"enriched-context.js","sourceRoot":"","sources":["../../../src/core/integrations/enriched-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ export class IntegrationOrchestrator {
|
|
|
46
46
|
getStatuses() {
|
|
47
47
|
// Refresh document counts
|
|
48
48
|
const knowledgeStore = new KnowledgeStore(this.store.getDb());
|
|
49
|
-
const sourceTypes = ["upload", "serena", "code_context", "docs", "web_capture"];
|
|
49
|
+
const sourceTypes = ["upload", "memory", "serena", "code_context", "docs", "web_capture"];
|
|
50
50
|
for (const st of sourceTypes) {
|
|
51
51
|
const existing = this.statuses.get(st);
|
|
52
52
|
if (existing) {
|
|
@@ -95,7 +95,7 @@ export class IntegrationOrchestrator {
|
|
|
95
95
|
logger.info("Orchestrator: knowledge indexed", { source, count: event.payload.documentsIndexed });
|
|
96
96
|
}
|
|
97
97
|
initStatuses() {
|
|
98
|
-
const sourceTypes = ["upload", "serena", "code_context", "docs", "web_capture"];
|
|
98
|
+
const sourceTypes = ["upload", "memory", "serena", "code_context", "docs", "web_capture"];
|
|
99
99
|
const knowledgeStore = new KnowledgeStore(this.store.getDb());
|
|
100
100
|
for (const st of sourceTypes) {
|
|
101
101
|
this.statuses.set(st, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-orchestrator.js","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiB5C,MAAM,OAAO,uBAAuB;IAC1B,KAAK,CAAc;IACnB,QAAQ,CAAgB;IACxB,QAAQ,CAAS;IACjB,WAAW,CAAU;IACrB,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,YACE,KAAkB,EAClB,QAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC;QAEhD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7C,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9C,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,WAAW;QACT,0BAA0B;QAC1B,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"integration-orchestrator.js","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP dependencies installer.
|
|
3
|
-
* Detects
|
|
3
|
+
* Detects ecosystem tools (Context7, Playwright).
|
|
4
4
|
* Never throws — returns InstallResult[] with status for each dependency.
|
|
5
5
|
*/
|
|
6
6
|
export type InstallStatus = "installed" | "already_available" | "skipped" | "failed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-deps-installer.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/mcp-deps-installer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1E;
|
|
1
|
+
{"version":3,"file":"mcp-deps-installer.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/mcp-deps-installer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1E;AA0BD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAYnF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP dependencies installer.
|
|
3
|
-
* Detects
|
|
3
|
+
* Detects ecosystem tools (Context7, Playwright).
|
|
4
4
|
* Never throws — returns InstallResult[] with status for each dependency.
|
|
5
5
|
*/
|
|
6
6
|
import { execFile } from "node:child_process";
|
|
@@ -20,63 +20,6 @@ export async function isCommandAvailable(command) {
|
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Run a shell command and return success/failure.
|
|
25
|
-
*/
|
|
26
|
-
async function runCommand(cmd, args, timeoutMs = 60000) {
|
|
27
|
-
try {
|
|
28
|
-
const { stdout, stderr } = await execAsync(cmd, args, { timeout: timeoutMs });
|
|
29
|
-
return { ok: true, output: stdout || stderr };
|
|
30
|
-
}
|
|
31
|
-
catch (err) {
|
|
32
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
33
|
-
return { ok: false, output: message };
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
async function checkGitNexus() {
|
|
37
|
-
const name = "gitnexus";
|
|
38
|
-
const available = await isCommandAvailable("gitnexus");
|
|
39
|
-
if (available) {
|
|
40
|
-
logger.info("GitNexus already available", { name });
|
|
41
|
-
return { name, status: "already_available", message: "gitnexus command found in PATH" };
|
|
42
|
-
}
|
|
43
|
-
// Try to verify via npx
|
|
44
|
-
const npxCheck = await runCommand("npx", ["-y", "gitnexus", "--version"], 30000);
|
|
45
|
-
if (npxCheck.ok) {
|
|
46
|
-
logger.success("GitNexus available via npx", { name });
|
|
47
|
-
return { name, status: "already_available", message: "gitnexus available via npx" };
|
|
48
|
-
}
|
|
49
|
-
logger.warn("GitNexus not available", { name, error: npxCheck.output });
|
|
50
|
-
return { name, status: "failed", message: `gitnexus not available: ${npxCheck.output}` };
|
|
51
|
-
}
|
|
52
|
-
async function checkSerena() {
|
|
53
|
-
const name = "serena";
|
|
54
|
-
// Check if uvx is available
|
|
55
|
-
const uvxAvailable = await isCommandAvailable("uvx");
|
|
56
|
-
if (uvxAvailable) {
|
|
57
|
-
logger.info("uvx already available, Serena can be used", { name });
|
|
58
|
-
return { name, status: "already_available", message: "uvx available — serena can run via uvx" };
|
|
59
|
-
}
|
|
60
|
-
// Check if pip/pip3 is available to install uvx
|
|
61
|
-
const pipCmd = (await isCommandAvailable("pip3")) ? "pip3" : (await isCommandAvailable("pip")) ? "pip" : null;
|
|
62
|
-
if (!pipCmd) {
|
|
63
|
-
logger.warn("Python/pip not available, skipping Serena install", { name });
|
|
64
|
-
return {
|
|
65
|
-
name,
|
|
66
|
-
status: "skipped",
|
|
67
|
-
message: "Python/pip not available. Install Python 3 and run: pip install uvx",
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
// Try to install uvx via pip
|
|
71
|
-
logger.info("Installing uvx via pip", { name, pip: pipCmd });
|
|
72
|
-
const uvxInstall = await runCommand(pipCmd, ["install", "uvx"], 120000);
|
|
73
|
-
if (!uvxInstall.ok) {
|
|
74
|
-
logger.warn("Failed to install uvx", { name, error: uvxInstall.output });
|
|
75
|
-
return { name, status: "failed", message: `Failed to install uvx: ${uvxInstall.output}` };
|
|
76
|
-
}
|
|
77
|
-
logger.success("uvx installed, Serena ready", { name });
|
|
78
|
-
return { name, status: "installed", message: "uvx installed via pip — serena ready" };
|
|
79
|
-
}
|
|
80
23
|
async function checkContext7() {
|
|
81
24
|
const name = "context7";
|
|
82
25
|
const npxAvailable = await isCommandAvailable("npx");
|
|
@@ -102,8 +45,6 @@ async function checkPlaywright() {
|
|
|
102
45
|
export async function installAllMcpDeps(_basePath) {
|
|
103
46
|
logger.info("Checking MCP ecosystem dependencies");
|
|
104
47
|
const results = await Promise.all([
|
|
105
|
-
checkGitNexus(),
|
|
106
|
-
checkSerena(),
|
|
107
48
|
checkContext7(),
|
|
108
49
|
checkPlaywright(),
|
|
109
50
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-deps-installer.js","sourceRoot":"","sources":["../../../src/core/integrations/mcp-deps-installer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAUtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"mcp-deps-installer.js","sourceRoot":"","sources":["../../../src/core/integrations/mcp-deps-installer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAUtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,IAAI,GAAG,UAAU,CAAC;IAExB,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC;IAC1H,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,MAAM,IAAI,GAAG,YAAY,CAAC;IAE1B,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC;IAC1H,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChC,aAAa,EAAE;QACf,eAAe,EAAE;KAClB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAE5D,OAAO,OAAO,CAAC;AACjB,CAAC"}
|