@mcp-graph-workflow/mcp-graph 3.0.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/LICENSE +21 -0
- package/README.md +157 -0
- package/dist/api/middleware/error-handler.d.ts +3 -0
- package/dist/api/middleware/error-handler.d.ts.map +1 -0
- package/dist/api/middleware/error-handler.js +48 -0
- package/dist/api/middleware/error-handler.js.map +1 -0
- package/dist/api/middleware/request-logger.d.ts +6 -0
- package/dist/api/middleware/request-logger.d.ts.map +1 -0
- package/dist/api/middleware/request-logger.js +19 -0
- package/dist/api/middleware/request-logger.js.map +1 -0
- package/dist/api/middleware/validate.d.ts +5 -0
- package/dist/api/middleware/validate.d.ts.map +1 -0
- package/dist/api/middleware/validate.js +23 -0
- package/dist/api/middleware/validate.js.map +1 -0
- package/dist/api/router.d.ts +11 -0
- package/dist/api/router.d.ts.map +1 -0
- package/dist/api/router.js +51 -0
- package/dist/api/router.js.map +1 -0
- package/dist/api/routes/benchmark.d.ts +4 -0
- package/dist/api/routes/benchmark.d.ts.map +1 -0
- package/dist/api/routes/benchmark.js +86 -0
- package/dist/api/routes/benchmark.js.map +1 -0
- package/dist/api/routes/capture.d.ts +3 -0
- package/dist/api/routes/capture.d.ts.map +1 -0
- package/dist/api/routes/capture.js +31 -0
- package/dist/api/routes/capture.js.map +1 -0
- package/dist/api/routes/context.d.ts +4 -0
- package/dist/api/routes/context.d.ts.map +1 -0
- package/dist/api/routes/context.js +25 -0
- package/dist/api/routes/context.js.map +1 -0
- package/dist/api/routes/docs-cache.d.ts +4 -0
- package/dist/api/routes/docs-cache.d.ts.map +1 -0
- package/dist/api/routes/docs-cache.js +79 -0
- package/dist/api/routes/docs-cache.js.map +1 -0
- package/dist/api/routes/edges.d.ts +4 -0
- package/dist/api/routes/edges.d.ts.map +1 -0
- package/dist/api/routes/edges.js +50 -0
- package/dist/api/routes/edges.js.map +1 -0
- package/dist/api/routes/events.d.ts +4 -0
- package/dist/api/routes/events.d.ts.map +1 -0
- package/dist/api/routes/events.js +37 -0
- package/dist/api/routes/events.js.map +1 -0
- package/dist/api/routes/gitnexus.d.ts +12 -0
- package/dist/api/routes/gitnexus.d.ts.map +1 -0
- package/dist/api/routes/gitnexus.js +162 -0
- package/dist/api/routes/gitnexus.js.map +1 -0
- package/dist/api/routes/graph.d.ts +4 -0
- package/dist/api/routes/graph.d.ts.map +1 -0
- package/dist/api/routes/graph.js +39 -0
- package/dist/api/routes/graph.js.map +1 -0
- package/dist/api/routes/import.d.ts +4 -0
- package/dist/api/routes/import.d.ts.map +1 -0
- package/dist/api/routes/import.js +92 -0
- package/dist/api/routes/import.js.map +1 -0
- package/dist/api/routes/insights.d.ts +4 -0
- package/dist/api/routes/insights.d.ts.map +1 -0
- package/dist/api/routes/insights.js +40 -0
- package/dist/api/routes/insights.js.map +1 -0
- package/dist/api/routes/integrations.d.ts +4 -0
- package/dist/api/routes/integrations.d.ts.map +1 -0
- package/dist/api/routes/integrations.js +85 -0
- package/dist/api/routes/integrations.js.map +1 -0
- package/dist/api/routes/knowledge.d.ts +8 -0
- package/dist/api/routes/knowledge.d.ts.map +1 -0
- package/dist/api/routes/knowledge.js +144 -0
- package/dist/api/routes/knowledge.js.map +1 -0
- package/dist/api/routes/nodes.d.ts +4 -0
- package/dist/api/routes/nodes.d.ts.map +1 -0
- package/dist/api/routes/nodes.js +123 -0
- package/dist/api/routes/nodes.js.map +1 -0
- package/dist/api/routes/project.d.ts +4 -0
- package/dist/api/routes/project.d.ts.map +1 -0
- package/dist/api/routes/project.js +70 -0
- package/dist/api/routes/project.js.map +1 -0
- package/dist/api/routes/rag.d.ts +8 -0
- package/dist/api/routes/rag.d.ts.map +1 -0
- package/dist/api/routes/rag.js +70 -0
- package/dist/api/routes/rag.js.map +1 -0
- package/dist/api/routes/search.d.ts +4 -0
- package/dist/api/routes/search.d.ts.map +1 -0
- package/dist/api/routes/search.js +25 -0
- package/dist/api/routes/search.js.map +1 -0
- package/dist/api/routes/skills.d.ts +3 -0
- package/dist/api/routes/skills.d.ts.map +1 -0
- package/dist/api/routes/skills.js +16 -0
- package/dist/api/routes/skills.js.map +1 -0
- package/dist/api/routes/stats.d.ts +4 -0
- package/dist/api/routes/stats.d.ts.map +1 -0
- package/dist/api/routes/stats.js +14 -0
- package/dist/api/routes/stats.js.map +1 -0
- package/dist/cli/commands/import-cmd.d.ts +3 -0
- package/dist/cli/commands/import-cmd.d.ts.map +1 -0
- package/dist/cli/commands/import-cmd.js +38 -0
- package/dist/cli/commands/import-cmd.js.map +1 -0
- package/dist/cli/commands/index-cmd.d.ts +3 -0
- package/dist/cli/commands/index-cmd.d.ts.map +1 -0
- package/dist/cli/commands/index-cmd.js +50 -0
- package/dist/cli/commands/index-cmd.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +24 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +18 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +3 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +39 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +30 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/capture/content-extractor.d.ts +21 -0
- package/dist/core/capture/content-extractor.d.ts.map +1 -0
- package/dist/core/capture/content-extractor.js +74 -0
- package/dist/core/capture/content-extractor.js.map +1 -0
- package/dist/core/capture/validate-runner.d.ts +28 -0
- package/dist/core/capture/validate-runner.d.ts.map +1 -0
- package/dist/core/capture/validate-runner.js +42 -0
- package/dist/core/capture/validate-runner.js.map +1 -0
- package/dist/core/capture/web-capture.d.ts +20 -0
- package/dist/core/capture/web-capture.d.ts.map +1 -0
- package/dist/core/capture/web-capture.js +51 -0
- package/dist/core/capture/web-capture.js.map +1 -0
- package/dist/core/config/ai-memory-generator.d.ts +14 -0
- package/dist/core/config/ai-memory-generator.d.ts.map +1 -0
- package/dist/core/config/ai-memory-generator.js +130 -0
- package/dist/core/config/ai-memory-generator.js.map +1 -0
- package/dist/core/config/config-loader.d.ts +3 -0
- package/dist/core/config/config-loader.d.ts.map +1 -0
- package/dist/core/config/config-loader.js +48 -0
- package/dist/core/config/config-loader.js.map +1 -0
- package/dist/core/config/config-schema.d.ts +12 -0
- package/dist/core/config/config-schema.d.ts.map +1 -0
- package/dist/core/config/config-schema.js +13 -0
- package/dist/core/config/config-schema.js.map +1 -0
- package/dist/core/context/bm25-compressor.d.ts +21 -0
- package/dist/core/context/bm25-compressor.d.ts.map +1 -0
- package/dist/core/context/bm25-compressor.js +87 -0
- package/dist/core/context/bm25-compressor.js.map +1 -0
- package/dist/core/context/compact-context.d.ts +56 -0
- package/dist/core/context/compact-context.d.ts.map +1 -0
- package/dist/core/context/compact-context.js +170 -0
- package/dist/core/context/compact-context.js.map +1 -0
- package/dist/core/context/context-assembler.d.ts +43 -0
- package/dist/core/context/context-assembler.d.ts.map +1 -0
- package/dist/core/context/context-assembler.js +113 -0
- package/dist/core/context/context-assembler.js.map +1 -0
- package/dist/core/context/rag-context.d.ts +44 -0
- package/dist/core/context/rag-context.d.ts.map +1 -0
- package/dist/core/context/rag-context.js +93 -0
- package/dist/core/context/rag-context.js.map +1 -0
- package/dist/core/context/tiered-context.d.ts +35 -0
- package/dist/core/context/tiered-context.d.ts.map +1 -0
- package/dist/core/context/tiered-context.js +92 -0
- package/dist/core/context/tiered-context.js.map +1 -0
- package/dist/core/context/token-estimator.d.ts +7 -0
- package/dist/core/context/token-estimator.d.ts.map +1 -0
- package/dist/core/context/token-estimator.js +9 -0
- package/dist/core/context/token-estimator.js.map +1 -0
- package/dist/core/docs/docs-cache-store.d.ts +24 -0
- package/dist/core/docs/docs-cache-store.d.ts.map +1 -0
- package/dist/core/docs/docs-cache-store.js +61 -0
- package/dist/core/docs/docs-cache-store.js.map +1 -0
- package/dist/core/docs/docs-syncer.d.ts +13 -0
- package/dist/core/docs/docs-syncer.d.ts.map +1 -0
- package/dist/core/docs/docs-syncer.js +38 -0
- package/dist/core/docs/docs-syncer.js.map +1 -0
- package/dist/core/docs/mcp-context7-fetcher.d.ts +17 -0
- package/dist/core/docs/mcp-context7-fetcher.d.ts.map +1 -0
- package/dist/core/docs/mcp-context7-fetcher.js +87 -0
- package/dist/core/docs/mcp-context7-fetcher.js.map +1 -0
- package/dist/core/docs/stack-detector.d.ts +21 -0
- package/dist/core/docs/stack-detector.d.ts.map +1 -0
- package/dist/core/docs/stack-detector.js +101 -0
- package/dist/core/docs/stack-detector.js.map +1 -0
- package/dist/core/events/event-bus.d.ts +26 -0
- package/dist/core/events/event-bus.d.ts.map +1 -0
- package/dist/core/events/event-bus.js +47 -0
- package/dist/core/events/event-bus.js.map +1 -0
- package/dist/core/events/event-types.d.ts +71 -0
- package/dist/core/events/event-types.d.ts.map +1 -0
- package/dist/core/events/event-types.js +2 -0
- package/dist/core/events/event-types.js.map +1 -0
- package/dist/core/graph/graph-indexes.d.ts +3 -0
- package/dist/core/graph/graph-indexes.d.ts.map +1 -0
- package/dist/core/graph/graph-indexes.js +28 -0
- package/dist/core/graph/graph-indexes.js.map +1 -0
- package/dist/core/graph/graph-types.d.ts +72 -0
- package/dist/core/graph/graph-types.d.ts.map +1 -0
- package/dist/core/graph/graph-types.js +2 -0
- package/dist/core/graph/graph-types.js.map +1 -0
- package/dist/core/graph/mermaid-export.d.ts +9 -0
- package/dist/core/graph/mermaid-export.d.ts.map +1 -0
- package/dist/core/graph/mermaid-export.js +80 -0
- package/dist/core/graph/mermaid-export.js.map +1 -0
- package/dist/core/importer/import-prd.d.ts +7 -0
- package/dist/core/importer/import-prd.d.ts.map +1 -0
- package/dist/core/importer/import-prd.js +7 -0
- package/dist/core/importer/import-prd.js.map +1 -0
- package/dist/core/importer/prd-to-graph.d.ts +18 -0
- package/dist/core/importer/prd-to-graph.d.ts.map +1 -0
- package/dist/core/importer/prd-to-graph.js +195 -0
- package/dist/core/importer/prd-to-graph.js.map +1 -0
- package/dist/core/insights/bottleneck-detector.d.ts +31 -0
- package/dist/core/insights/bottleneck-detector.d.ts.map +1 -0
- package/dist/core/insights/bottleneck-detector.js +84 -0
- package/dist/core/insights/bottleneck-detector.js.map +1 -0
- package/dist/core/insights/metrics-calculator.d.ts +31 -0
- package/dist/core/insights/metrics-calculator.d.ts.map +1 -0
- package/dist/core/insights/metrics-calculator.js +78 -0
- package/dist/core/insights/metrics-calculator.js.map +1 -0
- package/dist/core/insights/skill-recommender.d.ts +21 -0
- package/dist/core/insights/skill-recommender.d.ts.map +1 -0
- package/dist/core/insights/skill-recommender.js +129 -0
- package/dist/core/insights/skill-recommender.js.map +1 -0
- package/dist/core/integrations/enriched-context.d.ts +24 -0
- package/dist/core/integrations/enriched-context.d.ts.map +1 -0
- package/dist/core/integrations/enriched-context.js +89 -0
- package/dist/core/integrations/enriched-context.js.map +1 -0
- package/dist/core/integrations/gitnexus-launcher.d.ts +62 -0
- package/dist/core/integrations/gitnexus-launcher.d.ts.map +1 -0
- package/dist/core/integrations/gitnexus-launcher.js +241 -0
- package/dist/core/integrations/gitnexus-launcher.js.map +1 -0
- package/dist/core/integrations/gitnexus-queries.d.ts +55 -0
- package/dist/core/integrations/gitnexus-queries.d.ts.map +1 -0
- package/dist/core/integrations/gitnexus-queries.js +168 -0
- package/dist/core/integrations/gitnexus-queries.js.map +1 -0
- package/dist/core/integrations/integration-orchestrator.d.ts +51 -0
- package/dist/core/integrations/integration-orchestrator.d.ts.map +1 -0
- package/dist/core/integrations/integration-orchestrator.js +118 -0
- package/dist/core/integrations/integration-orchestrator.js.map +1 -0
- package/dist/core/integrations/mcp-deps-installer.d.ts +21 -0
- package/dist/core/integrations/mcp-deps-installer.d.ts.map +1 -0
- package/dist/core/integrations/mcp-deps-installer.js +114 -0
- package/dist/core/integrations/mcp-deps-installer.js.map +1 -0
- package/dist/core/integrations/mcp-servers-config.d.ts +21 -0
- package/dist/core/integrations/mcp-servers-config.d.ts.map +1 -0
- package/dist/core/integrations/mcp-servers-config.js +58 -0
- package/dist/core/integrations/mcp-servers-config.js.map +1 -0
- package/dist/core/integrations/serena-reader.d.ts +18 -0
- package/dist/core/integrations/serena-reader.d.ts.map +1 -0
- package/dist/core/integrations/serena-reader.js +68 -0
- package/dist/core/integrations/serena-reader.js.map +1 -0
- package/dist/core/integrations/tool-status.d.ts +18 -0
- package/dist/core/integrations/tool-status.d.ts.map +1 -0
- package/dist/core/integrations/tool-status.js +97 -0
- package/dist/core/integrations/tool-status.js.map +1 -0
- package/dist/core/parser/classify.d.ts +31 -0
- package/dist/core/parser/classify.d.ts.map +1 -0
- package/dist/core/parser/classify.js +128 -0
- package/dist/core/parser/classify.js.map +1 -0
- package/dist/core/parser/extract.d.ts +21 -0
- package/dist/core/parser/extract.d.ts.map +1 -0
- package/dist/core/parser/extract.js +66 -0
- package/dist/core/parser/extract.js.map +1 -0
- package/dist/core/parser/file-reader.d.ts +13 -0
- package/dist/core/parser/file-reader.d.ts.map +1 -0
- package/dist/core/parser/file-reader.js +52 -0
- package/dist/core/parser/file-reader.js.map +1 -0
- package/dist/core/parser/normalize.d.ts +9 -0
- package/dist/core/parser/normalize.d.ts.map +1 -0
- package/dist/core/parser/normalize.js +22 -0
- package/dist/core/parser/normalize.js.map +1 -0
- package/dist/core/parser/read-file.d.ts +7 -0
- package/dist/core/parser/read-file.d.ts.map +1 -0
- package/dist/core/parser/read-file.js +17 -0
- package/dist/core/parser/read-file.js.map +1 -0
- package/dist/core/parser/read-html.d.ts +7 -0
- package/dist/core/parser/read-html.d.ts.map +1 -0
- package/dist/core/parser/read-html.js +51 -0
- package/dist/core/parser/read-html.js.map +1 -0
- package/dist/core/parser/read-pdf.d.ts +10 -0
- package/dist/core/parser/read-pdf.d.ts.map +1 -0
- package/dist/core/parser/read-pdf.js +16 -0
- package/dist/core/parser/read-pdf.js.map +1 -0
- package/dist/core/parser/segment.d.ts +13 -0
- package/dist/core/parser/segment.d.ts.map +1 -0
- package/dist/core/parser/segment.js +53 -0
- package/dist/core/parser/segment.js.map +1 -0
- package/dist/core/planner/decompose.d.ts +25 -0
- package/dist/core/planner/decompose.d.ts.map +1 -0
- package/dist/core/planner/decompose.js +100 -0
- package/dist/core/planner/decompose.js.map +1 -0
- package/dist/core/planner/dependency-chain.d.ts +20 -0
- package/dist/core/planner/dependency-chain.d.ts.map +1 -0
- package/dist/core/planner/dependency-chain.js +163 -0
- package/dist/core/planner/dependency-chain.js.map +1 -0
- package/dist/core/planner/enhanced-next.d.ts +25 -0
- package/dist/core/planner/enhanced-next.d.ts.map +1 -0
- package/dist/core/planner/enhanced-next.js +88 -0
- package/dist/core/planner/enhanced-next.js.map +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts +21 -0
- package/dist/core/planner/lifecycle-phase.d.ts.map +1 -0
- package/dist/core/planner/lifecycle-phase.js +93 -0
- package/dist/core/planner/lifecycle-phase.js.map +1 -0
- package/dist/core/planner/next-task.d.ts +16 -0
- package/dist/core/planner/next-task.d.ts.map +1 -0
- package/dist/core/planner/next-task.js +146 -0
- package/dist/core/planner/next-task.js.map +1 -0
- package/dist/core/planner/planning-report.d.ts +38 -0
- package/dist/core/planner/planning-report.d.ts.map +1 -0
- package/dist/core/planner/planning-report.js +140 -0
- package/dist/core/planner/planning-report.js.map +1 -0
- package/dist/core/planner/velocity.d.ts +38 -0
- package/dist/core/planner/velocity.d.ts.map +1 -0
- package/dist/core/planner/velocity.js +92 -0
- package/dist/core/planner/velocity.js.map +1 -0
- package/dist/core/rag/capture-indexer.d.ts +16 -0
- package/dist/core/rag/capture-indexer.d.ts.map +1 -0
- package/dist/core/rag/capture-indexer.js +37 -0
- package/dist/core/rag/capture-indexer.js.map +1 -0
- package/dist/core/rag/chunk-text.d.ts +27 -0
- package/dist/core/rag/chunk-text.d.ts.map +1 -0
- package/dist/core/rag/chunk-text.js +112 -0
- package/dist/core/rag/chunk-text.js.map +1 -0
- package/dist/core/rag/docs-indexer.d.ts +18 -0
- package/dist/core/rag/docs-indexer.d.ts.map +1 -0
- package/dist/core/rag/docs-indexer.js +57 -0
- package/dist/core/rag/docs-indexer.js.map +1 -0
- package/dist/core/rag/embedding-store.d.ts +51 -0
- package/dist/core/rag/embedding-store.d.ts.map +1 -0
- package/dist/core/rag/embedding-store.js +134 -0
- package/dist/core/rag/embedding-store.js.map +1 -0
- package/dist/core/rag/rag-pipeline.d.ts +48 -0
- package/dist/core/rag/rag-pipeline.d.ts.map +1 -0
- package/dist/core/rag/rag-pipeline.js +276 -0
- package/dist/core/rag/rag-pipeline.js.map +1 -0
- package/dist/core/rag/serena-indexer.d.ts +16 -0
- package/dist/core/rag/serena-indexer.d.ts.map +1 -0
- package/dist/core/rag/serena-indexer.js +50 -0
- package/dist/core/rag/serena-indexer.js.map +1 -0
- package/dist/core/rag/serena-rag-query.d.ts +34 -0
- package/dist/core/rag/serena-rag-query.d.ts.map +1 -0
- package/dist/core/rag/serena-rag-query.js +83 -0
- package/dist/core/rag/serena-rag-query.js.map +1 -0
- package/dist/core/search/fts-search.d.ts +16 -0
- package/dist/core/search/fts-search.d.ts.map +1 -0
- package/dist/core/search/fts-search.js +62 -0
- package/dist/core/search/fts-search.js.map +1 -0
- package/dist/core/search/tfidf.d.ts +32 -0
- package/dist/core/search/tfidf.d.ts.map +1 -0
- package/dist/core/search/tfidf.js +67 -0
- package/dist/core/search/tfidf.js.map +1 -0
- package/dist/core/search/tokenizer.d.ts +9 -0
- package/dist/core/search/tokenizer.d.ts.map +1 -0
- package/dist/core/search/tokenizer.js +37 -0
- package/dist/core/search/tokenizer.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +72 -0
- package/dist/core/store/knowledge-store.d.ts.map +1 -0
- package/dist/core/store/knowledge-store.js +166 -0
- package/dist/core/store/knowledge-store.js.map +1 -0
- package/dist/core/store/migrations.d.ts +4 -0
- package/dist/core/store/migrations.d.ts.map +1 -0
- package/dist/core/store/migrations.js +223 -0
- package/dist/core/store/migrations.js.map +1 -0
- package/dist/core/store/sqlite-store.d.ts +86 -0
- package/dist/core/store/sqlite-store.d.ts.map +1 -0
- package/dist/core/store/sqlite-store.js +707 -0
- package/dist/core/store/sqlite-store.js.map +1 -0
- package/dist/core/utils/constants.d.ts +10 -0
- package/dist/core/utils/constants.d.ts.map +1 -0
- package/dist/core/utils/constants.js +10 -0
- package/dist/core/utils/constants.js.map +1 -0
- package/dist/core/utils/errors.d.ts +20 -0
- package/dist/core/utils/errors.d.ts.map +1 -0
- package/dist/core/utils/errors.js +39 -0
- package/dist/core/utils/errors.js.map +1 -0
- package/dist/core/utils/fs.d.ts +2 -0
- package/dist/core/utils/fs.d.ts.map +1 -0
- package/dist/core/utils/fs.js +11 -0
- package/dist/core/utils/fs.js.map +1 -0
- package/dist/core/utils/id.d.ts +2 -0
- package/dist/core/utils/id.d.ts.map +1 -0
- package/dist/core/utils/id.js +6 -0
- package/dist/core/utils/id.js.map +1 -0
- package/dist/core/utils/logger.d.ts +8 -0
- package/dist/core/utils/logger.d.ts.map +1 -0
- package/dist/core/utils/logger.js +28 -0
- package/dist/core/utils/logger.js.map +1 -0
- package/dist/core/utils/platform.d.ts +18 -0
- package/dist/core/utils/platform.d.ts.map +1 -0
- package/dist/core/utils/platform.js +43 -0
- package/dist/core/utils/platform.js.map +1 -0
- package/dist/core/utils/time.d.ts +2 -0
- package/dist/core/utils/time.d.ts.map +1 -0
- package/dist/core/utils/time.js +4 -0
- package/dist/core/utils/time.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/init-project.d.ts +2 -0
- package/dist/mcp/init-project.d.ts.map +1 -0
- package/dist/mcp/init-project.js +144 -0
- package/dist/mcp/init-project.js.map +1 -0
- package/dist/mcp/lifecycle-wrapper.d.ts +26 -0
- package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -0
- package/dist/mcp/lifecycle-wrapper.js +67 -0
- package/dist/mcp/lifecycle-wrapper.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +73 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/stdio.d.ts +3 -0
- package/dist/mcp/stdio.d.ts.map +1 -0
- package/dist/mcp/stdio.js +20 -0
- package/dist/mcp/stdio.js.map +1 -0
- package/dist/mcp/tools/add-node.d.ts +4 -0
- package/dist/mcp/tools/add-node.d.ts.map +1 -0
- package/dist/mcp/tools/add-node.js +83 -0
- package/dist/mcp/tools/add-node.js.map +1 -0
- package/dist/mcp/tools/bulk-update-status.d.ts +4 -0
- package/dist/mcp/tools/bulk-update-status.d.ts.map +1 -0
- package/dist/mcp/tools/bulk-update-status.js +22 -0
- package/dist/mcp/tools/bulk-update-status.js.map +1 -0
- package/dist/mcp/tools/clone-node.d.ts +4 -0
- package/dist/mcp/tools/clone-node.d.ts.map +1 -0
- package/dist/mcp/tools/clone-node.js +111 -0
- package/dist/mcp/tools/clone-node.js.map +1 -0
- package/dist/mcp/tools/context.d.ts +4 -0
- package/dist/mcp/tools/context.d.ts.map +1 -0
- package/dist/mcp/tools/context.js +30 -0
- package/dist/mcp/tools/context.js.map +1 -0
- package/dist/mcp/tools/decompose.d.ts +4 -0
- package/dist/mcp/tools/decompose.d.ts.map +1 -0
- package/dist/mcp/tools/decompose.js +25 -0
- package/dist/mcp/tools/decompose.js.map +1 -0
- package/dist/mcp/tools/delete-node.d.ts +4 -0
- package/dist/mcp/tools/delete-node.d.ts.map +1 -0
- package/dist/mcp/tools/delete-node.js +29 -0
- package/dist/mcp/tools/delete-node.js.map +1 -0
- package/dist/mcp/tools/dependencies.d.ts +4 -0
- package/dist/mcp/tools/dependencies.d.ts.map +1 -0
- package/dist/mcp/tools/dependencies.js +47 -0
- package/dist/mcp/tools/dependencies.js.map +1 -0
- package/dist/mcp/tools/edge.d.ts +4 -0
- package/dist/mcp/tools/edge.d.ts.map +1 -0
- package/dist/mcp/tools/edge.js +140 -0
- package/dist/mcp/tools/edge.js.map +1 -0
- package/dist/mcp/tools/export.d.ts +4 -0
- package/dist/mcp/tools/export.d.ts.map +1 -0
- package/dist/mcp/tools/export.js +38 -0
- package/dist/mcp/tools/export.js.map +1 -0
- package/dist/mcp/tools/import-prd.d.ts +4 -0
- package/dist/mcp/tools/import-prd.d.ts.map +1 -0
- package/dist/mcp/tools/import-prd.js +81 -0
- package/dist/mcp/tools/import-prd.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +4 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +58 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/init.d.ts +4 -0
- package/dist/mcp/tools/init.d.ts.map +1 -0
- package/dist/mcp/tools/init.js +18 -0
- package/dist/mcp/tools/init.js.map +1 -0
- package/dist/mcp/tools/list.d.ts +4 -0
- package/dist/mcp/tools/list.d.ts.map +1 -0
- package/dist/mcp/tools/list.js +56 -0
- package/dist/mcp/tools/list.js.map +1 -0
- package/dist/mcp/tools/move-node.d.ts +4 -0
- package/dist/mcp/tools/move-node.d.ts.map +1 -0
- package/dist/mcp/tools/move-node.js +110 -0
- package/dist/mcp/tools/move-node.js.map +1 -0
- package/dist/mcp/tools/next.d.ts +4 -0
- package/dist/mcp/tools/next.d.ts.map +1 -0
- package/dist/mcp/tools/next.js +32 -0
- package/dist/mcp/tools/next.js.map +1 -0
- package/dist/mcp/tools/plan-sprint.d.ts +4 -0
- package/dist/mcp/tools/plan-sprint.d.ts.map +1 -0
- package/dist/mcp/tools/plan-sprint.js +54 -0
- package/dist/mcp/tools/plan-sprint.js.map +1 -0
- package/dist/mcp/tools/rag-context.d.ts +4 -0
- package/dist/mcp/tools/rag-context.d.ts.map +1 -0
- package/dist/mcp/tools/rag-context.js +51 -0
- package/dist/mcp/tools/rag-context.js.map +1 -0
- package/dist/mcp/tools/reindex-knowledge.d.ts +4 -0
- package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -0
- package/dist/mcp/tools/reindex-knowledge.js +49 -0
- package/dist/mcp/tools/reindex-knowledge.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +4 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +41 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/tools/show.d.ts +4 -0
- package/dist/mcp/tools/show.d.ts.map +1 -0
- package/dist/mcp/tools/show.js +42 -0
- package/dist/mcp/tools/show.js.map +1 -0
- package/dist/mcp/tools/snapshot.d.ts +4 -0
- package/dist/mcp/tools/snapshot.d.ts.map +1 -0
- package/dist/mcp/tools/snapshot.js +45 -0
- package/dist/mcp/tools/snapshot.js.map +1 -0
- package/dist/mcp/tools/stats.d.ts +4 -0
- package/dist/mcp/tools/stats.d.ts.map +1 -0
- package/dist/mcp/tools/stats.js +46 -0
- package/dist/mcp/tools/stats.js.map +1 -0
- package/dist/mcp/tools/sync-stack-docs.d.ts +4 -0
- package/dist/mcp/tools/sync-stack-docs.d.ts.map +1 -0
- package/dist/mcp/tools/sync-stack-docs.js +77 -0
- package/dist/mcp/tools/sync-stack-docs.js.map +1 -0
- package/dist/mcp/tools/update-node.d.ts +4 -0
- package/dist/mcp/tools/update-node.d.ts.map +1 -0
- package/dist/mcp/tools/update-node.js +45 -0
- package/dist/mcp/tools/update-node.js.map +1 -0
- package/dist/mcp/tools/update-status.d.ts +4 -0
- package/dist/mcp/tools/update-status.d.ts.map +1 -0
- package/dist/mcp/tools/update-status.js +33 -0
- package/dist/mcp/tools/update-status.js.map +1 -0
- package/dist/mcp/tools/validate-task.d.ts +4 -0
- package/dist/mcp/tools/validate-task.d.ts.map +1 -0
- package/dist/mcp/tools/validate-task.js +57 -0
- package/dist/mcp/tools/validate-task.js.map +1 -0
- package/dist/mcp/tools/velocity.d.ts +4 -0
- package/dist/mcp/tools/velocity.d.ts.map +1 -0
- package/dist/mcp/tools/velocity.js +25 -0
- package/dist/mcp/tools/velocity.js.map +1 -0
- package/dist/schemas/edge.schema.d.ts +31 -0
- package/dist/schemas/edge.schema.d.ts.map +1 -0
- package/dist/schemas/edge.schema.js +16 -0
- package/dist/schemas/edge.schema.js.map +1 -0
- package/dist/schemas/graph.schema.d.ts +102 -0
- package/dist/schemas/graph.schema.d.ts.map +1 -0
- package/dist/schemas/graph.schema.js +28 -0
- package/dist/schemas/graph.schema.js.map +1 -0
- package/dist/schemas/knowledge.schema.d.ts +29 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -0
- package/dist/schemas/knowledge.schema.js +17 -0
- package/dist/schemas/knowledge.schema.js.map +1 -0
- package/dist/schemas/node.schema.d.ts +80 -0
- package/dist/schemas/node.schema.d.ts.map +1 -0
- package/dist/schemas/node.schema.js +38 -0
- package/dist/schemas/node.schema.js.map +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-BTKW3REK.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-BhbUvjLM.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-CESZcCtO.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-D64Ala80.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-DJ7HyF-u.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-DVyzQZ2d.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-XUH7yQNv.js +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-ZfJu1pxc.js +1 -0
- package/dist/web/dashboard/dist/assets/constants-BIEJOBya.js +1 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-BFHEXsJm.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-Bbp91fom.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-C3fPSzYi.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-Cd0k8qk3.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-ClNGphK5.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-Cuc-KSII.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DEqMBSbC.css +1 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DEwJXSnD.js +312 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DOD7xwmm.js +312 -0
- package/dist/web/dashboard/dist/assets/graph-tab-AD7csRcc.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-BKyDCyHH.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-BUAkTto0.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-D0F0WJES.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-DA16nThT.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-DJknUhrl.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-DRPfelKw.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-tab-lJ2rPS4Z.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-utils-BN7tt0ZS.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-BTV1KGUM.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-BZV40eAE.css +1 -0
- package/dist/web/dashboard/dist/assets/graph-utils-BkfAOVJ9.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-Bo7cD1sx.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-CI4znRl5.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-DrCx5m7q.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-KQmzMFXM.js +23 -0
- package/dist/web/dashboard/dist/assets/graph-utils-M7iOhRI-.js +23 -0
- package/dist/web/dashboard/dist/assets/index-BGMP3W6f.css +1 -0
- package/dist/web/dashboard/dist/assets/index-BVXu3x9W.js +53 -0
- package/dist/web/dashboard/dist/assets/index-B_T9j86O.js +53 -0
- package/dist/web/dashboard/dist/assets/index-Bga9WW2A.css +1 -0
- package/dist/web/dashboard/dist/assets/index-BnLPCC8R.css +1 -0
- package/dist/web/dashboard/dist/assets/index-BonF71I0.js +53 -0
- package/dist/web/dashboard/dist/assets/index-CSyjxREL.js +53 -0
- package/dist/web/dashboard/dist/assets/index-CbUKe2Fv.js +53 -0
- package/dist/web/dashboard/dist/assets/index-D9i2aVjo.js +53 -0
- package/dist/web/dashboard/dist/assets/index-DzM6oBA3.js +53 -0
- package/dist/web/dashboard/dist/assets/index-IK005MzD.js +53 -0
- package/dist/web/dashboard/dist/assets/insights-tab-B9R3HsMU.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-BO_cxLyV.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-Brn6IMfQ.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-C6x-aJ8p.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-CWUU6eDi.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-CapL1jP-.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-CeWM6zgV.js +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-xQj5e61M.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-0oOO63rA.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-BcWoplsM.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-Bjj5KccG.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-C7cKQyup.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-CT4ja7Ay.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-CmPHHBDQ.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-DAHBiRO-.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-_jmBe3MU.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-BVyBTaHC.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-CVI1GGRk.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-D1ki2NjT.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-DRrRfjpO.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-DvYbwR4Z.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-DwiZ6Jm3.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-L6isY0iT.js +1 -0
- package/dist/web/dashboard/dist/assets/serena-tab-ba2n0AOh.js +1 -0
- package/dist/web/dashboard/dist/index.html +13 -0
- package/package.json +86 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitNexus query builders and response parsers.
|
|
3
|
+
* Converts symbol names into Cypher queries and parses GitNexus responses
|
|
4
|
+
* into structured CodeGraphData and ImpactResult formats.
|
|
5
|
+
*/
|
|
6
|
+
import { logger } from "../utils/logger.js";
|
|
7
|
+
/**
|
|
8
|
+
* Build a Cypher query to retrieve a symbol's context (related symbols and relations).
|
|
9
|
+
*/
|
|
10
|
+
export function buildContextQuery(symbol) {
|
|
11
|
+
// Escape single quotes in symbol name to prevent Cypher injection
|
|
12
|
+
const escaped = symbol.replace(/'/g, "\\'");
|
|
13
|
+
return `MATCH (s {name: '${escaped}'})-[r:CodeRelation]-(related) RETURN s.name AS sName, s.filePath AS sFile, r.type AS relType, related.name AS rName, related.filePath AS rFile, related.startLine AS rStartLine, related.endLine AS rEndLine LIMIT 50`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build a Cypher query for upstream impact analysis (who depends on this symbol).
|
|
17
|
+
*/
|
|
18
|
+
export function buildImpactQuery(symbol) {
|
|
19
|
+
const escaped = symbol.replace(/'/g, "\\'");
|
|
20
|
+
return `MATCH (dep)-[r:CodeRelation]->(s {name: '${escaped}'}) WHERE r.type = 'CALLS' OR r.type = 'IMPORTS' RETURN DISTINCT dep.name AS name, dep.filePath AS file, 1 AS depth LIMIT 30`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Calculate risk level based on number of affected symbols.
|
|
24
|
+
*/
|
|
25
|
+
export function calculateRiskLevel(affectedCount) {
|
|
26
|
+
if (affectedCount > 15)
|
|
27
|
+
return "high";
|
|
28
|
+
if (affectedCount >= 5)
|
|
29
|
+
return "medium";
|
|
30
|
+
return "low";
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse a GitNexus Cypher response into CodeGraphData.
|
|
34
|
+
* Handles the { result: [...] } format from GitNexus query endpoint.
|
|
35
|
+
*/
|
|
36
|
+
export function parseContextResponse(raw) {
|
|
37
|
+
const empty = { symbols: [], relations: [] };
|
|
38
|
+
if (raw == null || typeof raw !== "object")
|
|
39
|
+
return empty;
|
|
40
|
+
const records = extractRecords(raw);
|
|
41
|
+
if (records.length === 0)
|
|
42
|
+
return empty;
|
|
43
|
+
const symbolMap = new Map();
|
|
44
|
+
const relations = [];
|
|
45
|
+
for (const record of records) {
|
|
46
|
+
// Flattened format: sName, sFile, relType, rName, rFile, rStartLine, rEndLine
|
|
47
|
+
const sName = typeof record.sName === "string" ? record.sName : undefined;
|
|
48
|
+
const rName = typeof record.rName === "string" ? record.rName : undefined;
|
|
49
|
+
const relType = typeof record.relType === "string" ? record.relType : undefined;
|
|
50
|
+
if (sName && !symbolMap.has(sName)) {
|
|
51
|
+
symbolMap.set(sName, {
|
|
52
|
+
name: sName,
|
|
53
|
+
kind: "unknown",
|
|
54
|
+
file: typeof record.sFile === "string" ? record.sFile : undefined,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (rName && !symbolMap.has(rName)) {
|
|
58
|
+
symbolMap.set(rName, {
|
|
59
|
+
name: rName,
|
|
60
|
+
kind: "unknown",
|
|
61
|
+
file: typeof record.rFile === "string" ? record.rFile : undefined,
|
|
62
|
+
startLine: typeof record.rStartLine === "number" ? record.rStartLine : undefined,
|
|
63
|
+
endLine: typeof record.rEndLine === "number" ? record.rEndLine : undefined,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (sName && rName && relType) {
|
|
67
|
+
relations.push({
|
|
68
|
+
from: sName,
|
|
69
|
+
to: rName,
|
|
70
|
+
type: relType.toLowerCase(),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
// Fallback: nested node format (legacy)
|
|
74
|
+
if (!sName) {
|
|
75
|
+
const s = extractNodeData(record, "s");
|
|
76
|
+
if (s)
|
|
77
|
+
symbolMap.set(s.name, s);
|
|
78
|
+
const related = extractNodeData(record, "related");
|
|
79
|
+
if (related)
|
|
80
|
+
symbolMap.set(related.name, related);
|
|
81
|
+
const legacyRelType = typeof record.relType === "string" ? record.relType : undefined;
|
|
82
|
+
if (s && related && legacyRelType) {
|
|
83
|
+
relations.push({ from: s.name, to: related.name, type: legacyRelType.toLowerCase() });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
symbols: Array.from(symbolMap.values()),
|
|
89
|
+
relations,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Parse a GitNexus Cypher impact response into ImpactResult.
|
|
94
|
+
*/
|
|
95
|
+
export function parseImpactResponse(raw, symbol) {
|
|
96
|
+
const empty = { symbol, affectedSymbols: [], riskLevel: "low" };
|
|
97
|
+
if (raw == null || typeof raw !== "object")
|
|
98
|
+
return empty;
|
|
99
|
+
const records = extractRecords(raw);
|
|
100
|
+
if (records.length === 0)
|
|
101
|
+
return empty;
|
|
102
|
+
const affectedSymbols = [];
|
|
103
|
+
for (const record of records) {
|
|
104
|
+
const name = typeof record.name === "string" ? record.name : undefined;
|
|
105
|
+
const file = typeof record.file === "string" ? record.file : "";
|
|
106
|
+
const depth = typeof record.depth === "number" ? record.depth : 3;
|
|
107
|
+
if (name) {
|
|
108
|
+
// Confidence decreases with depth: d=1 → 1.0, d=2 → 0.7, d=3 → 0.4
|
|
109
|
+
const confidence = Math.max(0.1, 1.0 - (depth - 1) * 0.3);
|
|
110
|
+
affectedSymbols.push({ name, file, confidence });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const riskLevel = calculateRiskLevel(affectedSymbols.length);
|
|
114
|
+
logger.debug("Parsed impact response", {
|
|
115
|
+
symbol,
|
|
116
|
+
affectedCount: affectedSymbols.length,
|
|
117
|
+
riskLevel,
|
|
118
|
+
});
|
|
119
|
+
return { symbol, affectedSymbols, riskLevel };
|
|
120
|
+
}
|
|
121
|
+
// ── Helpers ──────────────────────────────────────────
|
|
122
|
+
/**
|
|
123
|
+
* Extract records array from various GitNexus response formats.
|
|
124
|
+
*/
|
|
125
|
+
function extractRecords(raw) {
|
|
126
|
+
if (Array.isArray(raw))
|
|
127
|
+
return raw;
|
|
128
|
+
const obj = raw;
|
|
129
|
+
// { result: [...] } format
|
|
130
|
+
if (Array.isArray(obj.result))
|
|
131
|
+
return obj.result;
|
|
132
|
+
// { data: [...] } format
|
|
133
|
+
if (Array.isArray(obj.data))
|
|
134
|
+
return obj.data;
|
|
135
|
+
// { records: [...] } format
|
|
136
|
+
if (Array.isArray(obj.records))
|
|
137
|
+
return obj.records;
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Extract node data from a Cypher result record.
|
|
142
|
+
*/
|
|
143
|
+
function extractNodeData(record, key) {
|
|
144
|
+
const node = record[key];
|
|
145
|
+
if (node == null || typeof node !== "object") {
|
|
146
|
+
// Check for flattened format (e.g., record itself has name/kind)
|
|
147
|
+
if (key === "s" && typeof record.name === "string") {
|
|
148
|
+
return {
|
|
149
|
+
name: record.name,
|
|
150
|
+
kind: record.kind ?? "unknown",
|
|
151
|
+
file: record.file,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
const n = node;
|
|
157
|
+
const name = typeof n.name === "string" ? n.name : undefined;
|
|
158
|
+
if (!name)
|
|
159
|
+
return null;
|
|
160
|
+
return {
|
|
161
|
+
name,
|
|
162
|
+
kind: typeof n.kind === "string" ? n.kind : "unknown",
|
|
163
|
+
file: typeof n.file === "string" ? n.file : undefined,
|
|
164
|
+
startLine: typeof n.startLine === "number" ? n.startLine : undefined,
|
|
165
|
+
endLine: typeof n.endLine === "number" ? n.endLine : undefined,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=gitnexus-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitnexus-queries.js","sourceRoot":"","sources":["../../../src/core/integrations/gitnexus-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration Orchestrator — registers event handlers on GraphEventBus
|
|
3
|
+
* to create a reactive mesh between integrations.
|
|
4
|
+
*
|
|
5
|
+
* Handlers:
|
|
6
|
+
* - import:completed → full reindex knowledge + embeddings
|
|
7
|
+
* - knowledge:indexed → invalidate RAG cache
|
|
8
|
+
* - node:created → detect stack for docs fetch
|
|
9
|
+
*/
|
|
10
|
+
import type { GraphEventBus } from "../events/event-bus.js";
|
|
11
|
+
import type { SqliteStore } from "../store/sqlite-store.js";
|
|
12
|
+
export interface OrchestratorOptions {
|
|
13
|
+
/** Project base path */
|
|
14
|
+
basePath?: string;
|
|
15
|
+
/** Enable auto-reindex on import (default: true) */
|
|
16
|
+
autoReindex?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface IntegrationStatus {
|
|
19
|
+
source: string;
|
|
20
|
+
lastSync: string | null;
|
|
21
|
+
documentCount: number;
|
|
22
|
+
status: "idle" | "syncing" | "error";
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare class IntegrationOrchestrator {
|
|
26
|
+
private store;
|
|
27
|
+
private eventBus;
|
|
28
|
+
private basePath;
|
|
29
|
+
private autoReindex;
|
|
30
|
+
private statuses;
|
|
31
|
+
constructor(store: SqliteStore, eventBus: GraphEventBus, options?: OrchestratorOptions);
|
|
32
|
+
/**
|
|
33
|
+
* Register all event handlers on the bus.
|
|
34
|
+
*/
|
|
35
|
+
register(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Get status of all integrations.
|
|
38
|
+
*/
|
|
39
|
+
getStatuses(): IntegrationStatus[];
|
|
40
|
+
/**
|
|
41
|
+
* Handle import:completed — reindex all knowledge + rebuild embeddings.
|
|
42
|
+
*/
|
|
43
|
+
private onImportCompleted;
|
|
44
|
+
/**
|
|
45
|
+
* Handle knowledge:indexed — log and track.
|
|
46
|
+
*/
|
|
47
|
+
private onKnowledgeIndexed;
|
|
48
|
+
private initStatuses;
|
|
49
|
+
private updateStatus;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=integration-orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ5D,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAwC;gBAGtD,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,mBAAmB;IAU/B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAchB;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;IAelC;;OAEG;YACW,iBAAiB;IAoC/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration Orchestrator — registers event handlers on GraphEventBus
|
|
3
|
+
* to create a reactive mesh between integrations.
|
|
4
|
+
*
|
|
5
|
+
* Handlers:
|
|
6
|
+
* - import:completed → full reindex knowledge + embeddings
|
|
7
|
+
* - knowledge:indexed → invalidate RAG cache
|
|
8
|
+
* - node:created → detect stack for docs fetch
|
|
9
|
+
*/
|
|
10
|
+
import { KnowledgeStore } from "../store/knowledge-store.js";
|
|
11
|
+
import { DocsCacheStore } from "../docs/docs-cache-store.js";
|
|
12
|
+
import { EmbeddingStore } from "../rag/embedding-store.js";
|
|
13
|
+
import { indexCachedDocs } from "../rag/docs-indexer.js";
|
|
14
|
+
import { indexAllEmbeddings } from "../rag/rag-pipeline.js";
|
|
15
|
+
import { logger } from "../utils/logger.js";
|
|
16
|
+
export class IntegrationOrchestrator {
|
|
17
|
+
store;
|
|
18
|
+
eventBus;
|
|
19
|
+
basePath;
|
|
20
|
+
autoReindex;
|
|
21
|
+
statuses = new Map();
|
|
22
|
+
constructor(store, eventBus, options) {
|
|
23
|
+
this.store = store;
|
|
24
|
+
this.eventBus = eventBus;
|
|
25
|
+
this.basePath = options?.basePath ?? process.cwd();
|
|
26
|
+
this.autoReindex = options?.autoReindex ?? true;
|
|
27
|
+
this.initStatuses();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Register all event handlers on the bus.
|
|
31
|
+
*/
|
|
32
|
+
register() {
|
|
33
|
+
if (this.autoReindex) {
|
|
34
|
+
this.eventBus.on("import:completed", (event) => {
|
|
35
|
+
void this.onImportCompleted(event);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
this.eventBus.on("knowledge:indexed", (event) => {
|
|
39
|
+
this.onKnowledgeIndexed(event);
|
|
40
|
+
});
|
|
41
|
+
logger.info("IntegrationOrchestrator registered", { autoReindex: this.autoReindex });
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get status of all integrations.
|
|
45
|
+
*/
|
|
46
|
+
getStatuses() {
|
|
47
|
+
// Refresh document counts
|
|
48
|
+
const knowledgeStore = new KnowledgeStore(this.store.getDb());
|
|
49
|
+
const sourceTypes = ["upload", "serena", "code_context", "docs", "web_capture"];
|
|
50
|
+
for (const st of sourceTypes) {
|
|
51
|
+
const existing = this.statuses.get(st);
|
|
52
|
+
if (existing) {
|
|
53
|
+
existing.documentCount = knowledgeStore.count(st);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return Array.from(this.statuses.values());
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Handle import:completed — reindex all knowledge + rebuild embeddings.
|
|
60
|
+
*/
|
|
61
|
+
async onImportCompleted(event) {
|
|
62
|
+
logger.info("Orchestrator: import completed, reindexing", event.payload);
|
|
63
|
+
this.updateStatus("docs", "syncing");
|
|
64
|
+
try {
|
|
65
|
+
const knowledgeStore = new KnowledgeStore(this.store.getDb());
|
|
66
|
+
const docsCacheStore = new DocsCacheStore(this.store.getDb());
|
|
67
|
+
// Re-index docs cache
|
|
68
|
+
const docsResult = indexCachedDocs(knowledgeStore, docsCacheStore);
|
|
69
|
+
// Rebuild embeddings
|
|
70
|
+
const embeddingStore = new EmbeddingStore(this.store);
|
|
71
|
+
embeddingStore.clear();
|
|
72
|
+
const embResult = await indexAllEmbeddings(this.store, embeddingStore);
|
|
73
|
+
this.updateStatus("docs", "idle");
|
|
74
|
+
this.eventBus.emitTyped("knowledge:indexed", {
|
|
75
|
+
source: "import_reindex",
|
|
76
|
+
documentsIndexed: docsResult.documentsIndexed + embResult.nodes + embResult.knowledge,
|
|
77
|
+
});
|
|
78
|
+
logger.info("Orchestrator: reindex complete", {
|
|
79
|
+
docsIndexed: docsResult.documentsIndexed,
|
|
80
|
+
embeddingNodes: embResult.nodes,
|
|
81
|
+
embeddingKnowledge: embResult.knowledge,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
86
|
+
this.updateStatus("docs", "error", message);
|
|
87
|
+
logger.error("Orchestrator: reindex failed", { error: message });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Handle knowledge:indexed — log and track.
|
|
92
|
+
*/
|
|
93
|
+
onKnowledgeIndexed(event) {
|
|
94
|
+
const source = String(event.payload.source ?? "unknown");
|
|
95
|
+
logger.info("Orchestrator: knowledge indexed", { source, count: event.payload.documentsIndexed });
|
|
96
|
+
}
|
|
97
|
+
initStatuses() {
|
|
98
|
+
const sourceTypes = ["upload", "serena", "code_context", "docs", "web_capture"];
|
|
99
|
+
const knowledgeStore = new KnowledgeStore(this.store.getDb());
|
|
100
|
+
for (const st of sourceTypes) {
|
|
101
|
+
this.statuses.set(st, {
|
|
102
|
+
source: st,
|
|
103
|
+
lastSync: null,
|
|
104
|
+
documentCount: knowledgeStore.count(st),
|
|
105
|
+
status: "idle",
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
updateStatus(source, status, error) {
|
|
110
|
+
const existing = this.statuses.get(source);
|
|
111
|
+
if (existing) {
|
|
112
|
+
existing.status = status;
|
|
113
|
+
existing.lastSync = status === "idle" ? new Date().toISOString() : existing.lastSync;
|
|
114
|
+
existing.error = error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=integration-orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-orchestrator.js","sourceRoot":"","sources":["../../../src/core/integrations/integration-orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP dependencies installer.
|
|
3
|
+
* Detects and installs ecosystem tools (GitNexus, Serena, Context7, Playwright).
|
|
4
|
+
* Never throws — returns InstallResult[] with status for each dependency.
|
|
5
|
+
*/
|
|
6
|
+
export type InstallStatus = "installed" | "already_available" | "skipped" | "failed";
|
|
7
|
+
export interface InstallResult {
|
|
8
|
+
name: string;
|
|
9
|
+
status: InstallStatus;
|
|
10
|
+
message: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check if a command-line tool is available in PATH.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isCommandAvailable(command: string): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Install/verify all MCP ecosystem dependencies.
|
|
18
|
+
* Never throws — returns status for each dependency.
|
|
19
|
+
*/
|
|
20
|
+
export declare function installAllMcpDeps(_basePath: string): Promise<InstallResult[]>;
|
|
21
|
+
//# sourceMappingURL=mcp-deps-installer.d.ts.map
|
|
@@ -0,0 +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;AAiGD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAcnF"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP dependencies installer.
|
|
3
|
+
* Detects and installs ecosystem tools (GitNexus, Serena, Context7, Playwright).
|
|
4
|
+
* Never throws — returns InstallResult[] with status for each dependency.
|
|
5
|
+
*/
|
|
6
|
+
import { execFile } from "node:child_process";
|
|
7
|
+
import { promisify } from "node:util";
|
|
8
|
+
import { logger } from "../utils/logger.js";
|
|
9
|
+
import { whichCommand } from "../utils/platform.js";
|
|
10
|
+
const execAsync = promisify(execFile);
|
|
11
|
+
/**
|
|
12
|
+
* Check if a command-line tool is available in PATH.
|
|
13
|
+
*/
|
|
14
|
+
export async function isCommandAvailable(command) {
|
|
15
|
+
try {
|
|
16
|
+
await execAsync(whichCommand(), [command]);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
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
|
+
async function checkContext7() {
|
|
81
|
+
const name = "context7";
|
|
82
|
+
const npxAvailable = await isCommandAvailable("npx");
|
|
83
|
+
if (npxAvailable) {
|
|
84
|
+
logger.info("Context7 available via npx", { name });
|
|
85
|
+
return { name, status: "already_available", message: "npx available — context7 runs via npx -y @upstash/context7-mcp" };
|
|
86
|
+
}
|
|
87
|
+
return { name, status: "skipped", message: "npx not available" };
|
|
88
|
+
}
|
|
89
|
+
async function checkPlaywright() {
|
|
90
|
+
const name = "playwright";
|
|
91
|
+
const npxAvailable = await isCommandAvailable("npx");
|
|
92
|
+
if (npxAvailable) {
|
|
93
|
+
logger.info("Playwright MCP available via npx", { name });
|
|
94
|
+
return { name, status: "already_available", message: "npx available — playwright runs via npx @playwright/mcp@latest" };
|
|
95
|
+
}
|
|
96
|
+
return { name, status: "skipped", message: "npx not available" };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Install/verify all MCP ecosystem dependencies.
|
|
100
|
+
* Never throws — returns status for each dependency.
|
|
101
|
+
*/
|
|
102
|
+
export async function installAllMcpDeps(_basePath) {
|
|
103
|
+
logger.info("Checking MCP ecosystem dependencies");
|
|
104
|
+
const results = await Promise.all([
|
|
105
|
+
checkGitNexus(),
|
|
106
|
+
checkSerena(),
|
|
107
|
+
checkContext7(),
|
|
108
|
+
checkPlaywright(),
|
|
109
|
+
]);
|
|
110
|
+
const summary = results.map((r) => `${r.name}: ${r.status}`).join(", ");
|
|
111
|
+
logger.info("MCP dependencies check complete", { summary });
|
|
112
|
+
return results;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=mcp-deps-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-deps-installer.js","sourceRoot":"","sources":["../../../src/core/integrations/mcp-deps-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized MCP server configuration for all ecosystem tools.
|
|
3
|
+
* Generates the complete .mcp.json config with all integrated servers.
|
|
4
|
+
*/
|
|
5
|
+
export declare const MCP_SERVER_NAMES: readonly ["mcp-graph", "gitnexus", "serena", "context7", "playwright"];
|
|
6
|
+
export type McpServerName = (typeof MCP_SERVER_NAMES)[number];
|
|
7
|
+
export interface McpServerEntry {
|
|
8
|
+
command: string;
|
|
9
|
+
args: string[];
|
|
10
|
+
type?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface McpServersConfig {
|
|
13
|
+
mcpServers: Record<string, McpServerEntry>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build complete MCP servers config, optionally merging with existing config.
|
|
17
|
+
* Standard servers always override existing entries with the same name.
|
|
18
|
+
* Custom servers (not in MCP_SERVER_NAMES) are preserved.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildMcpServersConfig(existing?: Partial<McpServersConfig>): McpServersConfig;
|
|
21
|
+
//# sourceMappingURL=mcp-servers-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-servers-config.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/mcp-servers-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,gBAAgB,wEAMnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAkCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACnC,gBAAgB,CAUlB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized MCP server configuration for all ecosystem tools.
|
|
3
|
+
* Generates the complete .mcp.json config with all integrated servers.
|
|
4
|
+
*/
|
|
5
|
+
export const MCP_SERVER_NAMES = [
|
|
6
|
+
"mcp-graph",
|
|
7
|
+
"gitnexus",
|
|
8
|
+
"serena",
|
|
9
|
+
"context7",
|
|
10
|
+
"playwright",
|
|
11
|
+
];
|
|
12
|
+
function getDefaultServers() {
|
|
13
|
+
return {
|
|
14
|
+
"mcp-graph": {
|
|
15
|
+
command: "npx",
|
|
16
|
+
args: ["-y", "@mcp-graph-workflow/mcp-graph"],
|
|
17
|
+
},
|
|
18
|
+
gitnexus: {
|
|
19
|
+
command: "npx",
|
|
20
|
+
args: ["-y", "gitnexus", "mcp"],
|
|
21
|
+
},
|
|
22
|
+
serena: {
|
|
23
|
+
command: "uvx",
|
|
24
|
+
args: [
|
|
25
|
+
"--from",
|
|
26
|
+
"git+https://github.com/oraios/serena",
|
|
27
|
+
"serena",
|
|
28
|
+
"start-mcp-server",
|
|
29
|
+
"--project",
|
|
30
|
+
".",
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
context7: {
|
|
34
|
+
command: "npx",
|
|
35
|
+
args: ["-y", "@upstash/context7-mcp"],
|
|
36
|
+
},
|
|
37
|
+
playwright: {
|
|
38
|
+
command: "npx",
|
|
39
|
+
args: ["@playwright/mcp@latest"],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build complete MCP servers config, optionally merging with existing config.
|
|
45
|
+
* Standard servers always override existing entries with the same name.
|
|
46
|
+
* Custom servers (not in MCP_SERVER_NAMES) are preserved.
|
|
47
|
+
*/
|
|
48
|
+
export function buildMcpServersConfig(existing) {
|
|
49
|
+
const existingServers = (existing?.mcpServers ?? {});
|
|
50
|
+
const defaultServers = getDefaultServers();
|
|
51
|
+
return {
|
|
52
|
+
mcpServers: {
|
|
53
|
+
...existingServers,
|
|
54
|
+
...defaultServers,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=mcp-servers-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-servers-config.js","sourceRoot":"","sources":["../../../src/core/integrations/mcp-servers-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;CACJ,CAAC;AAcX,SAAS,iBAAiB;IACxB,OAAO;QACL,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;SAC9C;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;SAChC;QACD,MAAM,EAAE;YACN,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,QAAQ;gBACR,sCAAsC;gBACtC,QAAQ;gBACR,kBAAkB;gBAClB,WAAW;gBACX,GAAG;aACJ;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC;SACtC;QACD,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,wBAAwB,CAAC;SACjC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAoC;IAEpC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAmC,CAAC;IACvF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,OAAO;QACL,UAAU,EAAE;YACV,GAAG,eAAe;YAClB,GAAG,cAAc;SAClB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface SerenaMemory {
|
|
2
|
+
name: string;
|
|
3
|
+
content: string;
|
|
4
|
+
sizeBytes: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* List all Serena memory files from the project directory (supports nested dirs).
|
|
8
|
+
*/
|
|
9
|
+
export declare function listSerenaMemories(basePath: string): Promise<string[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Read a specific Serena memory file.
|
|
12
|
+
*/
|
|
13
|
+
export declare function readSerenaMemory(basePath: string, name: string): Promise<SerenaMemory | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Read all Serena memories at once.
|
|
16
|
+
*/
|
|
17
|
+
export declare function readAllSerenaMemories(basePath: string): Promise<SerenaMemory[]>;
|
|
18
|
+
//# sourceMappingURL=serena-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serena-reader.d.ts","sourceRoot":"","sources":["../../../src/core/integrations/serena-reader.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAyBD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ5E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAanG;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAUrF"}
|