@noyrax/5d-database-plugin 0.1.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/ADR_VORSCHLAEGE.md +247 -0
- package/CHROMADB_SETUP.md +69 -0
- package/IMPROVEMENT_ROADMAP.md +435 -0
- package/INSTALLATION_READINESS.md +150 -0
- package/KNOWN_ISSUES.md +210 -0
- package/LICENSE +21 -0
- package/MCP_SERVER_SETUP.md +359 -0
- package/MCP_SERVER_TEST_REPORT.md +206 -0
- package/NOYRAX_INTEGRATION.md +224 -0
- package/QUICK_START.md +316 -0
- package/README.md +240 -0
- package/SETUP_NEW_PROJECT.md +260 -0
- package/SYSTEM_ANALYSIS_REPORT.md +341 -0
- package/out/api/adr-api.d.ts +22 -0
- package/out/api/adr-api.d.ts.map +1 -0
- package/out/api/adr-api.js +38 -0
- package/out/api/adr-api.js.map +1 -0
- package/out/api/bootstrap-api.d.ts +43 -0
- package/out/api/bootstrap-api.d.ts.map +1 -0
- package/out/api/bootstrap-api.js +88 -0
- package/out/api/bootstrap-api.js.map +1 -0
- package/out/api/change-api.d.ts +30 -0
- package/out/api/change-api.d.ts.map +1 -0
- package/out/api/change-api.js +54 -0
- package/out/api/change-api.js.map +1 -0
- package/out/api/context-builder.d.ts +81 -0
- package/out/api/context-builder.d.ts.map +1 -0
- package/out/api/context-builder.js +288 -0
- package/out/api/context-builder.js.map +1 -0
- package/out/api/cross-dimension-api.d.ts +43 -0
- package/out/api/cross-dimension-api.d.ts.map +1 -0
- package/out/api/cross-dimension-api.js +55 -0
- package/out/api/cross-dimension-api.js.map +1 -0
- package/out/api/dependency-api.d.ts +26 -0
- package/out/api/dependency-api.d.ts.map +1 -0
- package/out/api/dependency-api.js +46 -0
- package/out/api/dependency-api.js.map +1 -0
- package/out/api/learning-path-api.d.ts +49 -0
- package/out/api/learning-path-api.d.ts.map +1 -0
- package/out/api/learning-path-api.js +174 -0
- package/out/api/learning-path-api.js.map +1 -0
- package/out/api/module-api.d.ts +26 -0
- package/out/api/module-api.d.ts.map +1 -0
- package/out/api/module-api.js +46 -0
- package/out/api/module-api.js.map +1 -0
- package/out/api/search-api.d.ts +64 -0
- package/out/api/search-api.d.ts.map +1 -0
- package/out/api/search-api.js +235 -0
- package/out/api/search-api.js.map +1 -0
- package/out/api/self-explanation-api.d.ts +71 -0
- package/out/api/self-explanation-api.d.ts.map +1 -0
- package/out/api/self-explanation-api.js +153 -0
- package/out/api/self-explanation-api.js.map +1 -0
- package/out/api/semantic-search-api.d.ts +64 -0
- package/out/api/semantic-search-api.d.ts.map +1 -0
- package/out/api/semantic-search-api.js +205 -0
- package/out/api/semantic-search-api.js.map +1 -0
- package/out/api/symbol-api.d.ts +22 -0
- package/out/api/symbol-api.d.ts.map +1 -0
- package/out/api/symbol-api.js +38 -0
- package/out/api/symbol-api.js.map +1 -0
- package/out/api/vector-api.d.ts +26 -0
- package/out/api/vector-api.d.ts.map +1 -0
- package/out/api/vector-api.js +49 -0
- package/out/api/vector-api.js.map +1 -0
- package/out/cli/embedding-cli.d.ts +3 -0
- package/out/cli/embedding-cli.d.ts.map +1 -0
- package/out/cli/embedding-cli.js +151 -0
- package/out/cli/embedding-cli.js.map +1 -0
- package/out/cli/ingest-cli.d.ts +3 -0
- package/out/cli/ingest-cli.d.ts.map +1 -0
- package/out/cli/ingest-cli.js +145 -0
- package/out/cli/ingest-cli.js.map +1 -0
- package/out/cli/mcp-server-cli.d.ts +3 -0
- package/out/cli/mcp-server-cli.d.ts.map +1 -0
- package/out/cli/mcp-server-cli.js +159 -0
- package/out/cli/mcp-server-cli.js.map +1 -0
- package/out/cli/query-cli.d.ts +3 -0
- package/out/cli/query-cli.d.ts.map +1 -0
- package/out/cli/query-cli.js +217 -0
- package/out/cli/query-cli.js.map +1 -0
- package/out/cli/semantic-search-cli.d.ts +3 -0
- package/out/cli/semantic-search-cli.d.ts.map +1 -0
- package/out/cli/semantic-search-cli.js +196 -0
- package/out/cli/semantic-search-cli.js.map +1 -0
- package/out/cli/test-chromadb.d.ts +3 -0
- package/out/cli/test-chromadb.d.ts.map +1 -0
- package/out/cli/test-chromadb.js +204 -0
- package/out/cli/test-chromadb.js.map +1 -0
- package/out/cli/test-v-dimension.d.ts +3 -0
- package/out/cli/test-v-dimension.d.ts.map +1 -0
- package/out/cli/test-v-dimension.js +330 -0
- package/out/cli/test-v-dimension.js.map +1 -0
- package/out/cli/tool-cli.d.ts +3 -0
- package/out/cli/tool-cli.d.ts.map +1 -0
- package/out/cli/tool-cli.js +237 -0
- package/out/cli/tool-cli.js.map +1 -0
- package/out/cli/verify-openai-key.d.ts +3 -0
- package/out/cli/verify-openai-key.d.ts.map +1 -0
- package/out/cli/verify-openai-key.js +141 -0
- package/out/cli/verify-openai-key.js.map +1 -0
- package/out/cli/verify-vss-status.d.ts +3 -0
- package/out/cli/verify-vss-status.d.ts.map +1 -0
- package/out/cli/verify-vss-status.js +185 -0
- package/out/cli/verify-vss-status.js.map +1 -0
- package/out/core/chromadb-vector-database.d.ts +52 -0
- package/out/core/chromadb-vector-database.d.ts.map +1 -0
- package/out/core/chromadb-vector-database.js +276 -0
- package/out/core/chromadb-vector-database.js.map +1 -0
- package/out/core/docs-path-resolver.d.ts +43 -0
- package/out/core/docs-path-resolver.d.ts.map +1 -0
- package/out/core/docs-path-resolver.js +137 -0
- package/out/core/docs-path-resolver.js.map +1 -0
- package/out/core/id-mapper.d.ts +68 -0
- package/out/core/id-mapper.d.ts.map +1 -0
- package/out/core/id-mapper.js +132 -0
- package/out/core/id-mapper.js.map +1 -0
- package/out/core/migration-manager.d.ts +75 -0
- package/out/core/migration-manager.d.ts.map +1 -0
- package/out/core/migration-manager.js +212 -0
- package/out/core/migration-manager.js.map +1 -0
- package/out/core/multi-db-manager.d.ts +84 -0
- package/out/core/multi-db-manager.d.ts.map +1 -0
- package/out/core/multi-db-manager.js +206 -0
- package/out/core/multi-db-manager.js.map +1 -0
- package/out/core/transaction-manager.d.ts +69 -0
- package/out/core/transaction-manager.d.ts.map +1 -0
- package/out/core/transaction-manager.js +138 -0
- package/out/core/transaction-manager.js.map +1 -0
- package/out/core/vector-database-factory.d.ts +25 -0
- package/out/core/vector-database-factory.d.ts.map +1 -0
- package/out/core/vector-database-factory.js +82 -0
- package/out/core/vector-database-factory.js.map +1 -0
- package/out/core/vector-database-interface.d.ts +50 -0
- package/out/core/vector-database-interface.d.ts.map +1 -0
- package/out/core/vector-database-interface.js +3 -0
- package/out/core/vector-database-interface.js.map +1 -0
- package/out/core/vss-loader.d.ts +29 -0
- package/out/core/vss-loader.d.ts.map +1 -0
- package/out/core/vss-loader.js +150 -0
- package/out/core/vss-loader.js.map +1 -0
- package/out/core/vss-manager.d.ts +81 -0
- package/out/core/vss-manager.d.ts.map +1 -0
- package/out/core/vss-manager.js +323 -0
- package/out/core/vss-manager.js.map +1 -0
- package/out/core/vss-vector-database.d.ts +71 -0
- package/out/core/vss-vector-database.d.ts.map +1 -0
- package/out/core/vss-vector-database.js +284 -0
- package/out/core/vss-vector-database.js.map +1 -0
- package/out/embedding/embedding-generator.d.ts +45 -0
- package/out/embedding/embedding-generator.d.ts.map +1 -0
- package/out/embedding/embedding-generator.js +143 -0
- package/out/embedding/embedding-generator.js.map +1 -0
- package/out/embedding/embedding-pipeline.d.ts +42 -0
- package/out/embedding/embedding-pipeline.d.ts.map +1 -0
- package/out/embedding/embedding-pipeline.js +290 -0
- package/out/embedding/embedding-pipeline.js.map +1 -0
- package/out/extension.d.ts +10 -0
- package/out/extension.d.ts.map +1 -0
- package/out/extension.js +164 -0
- package/out/extension.js.map +1 -0
- package/out/ingestors/adr-ingestor.d.ts +41 -0
- package/out/ingestors/adr-ingestor.d.ts.map +1 -0
- package/out/ingestors/adr-ingestor.js +329 -0
- package/out/ingestors/adr-ingestor.js.map +1 -0
- package/out/ingestors/base-ingestor.d.ts +30 -0
- package/out/ingestors/base-ingestor.d.ts.map +1 -0
- package/out/ingestors/base-ingestor.js +3 -0
- package/out/ingestors/base-ingestor.js.map +1 -0
- package/out/ingestors/change-ingestor.d.ts +36 -0
- package/out/ingestors/change-ingestor.d.ts.map +1 -0
- package/out/ingestors/change-ingestor.js +216 -0
- package/out/ingestors/change-ingestor.js.map +1 -0
- package/out/ingestors/dependency-ingestor.d.ts +32 -0
- package/out/ingestors/dependency-ingestor.d.ts.map +1 -0
- package/out/ingestors/dependency-ingestor.js +194 -0
- package/out/ingestors/dependency-ingestor.js.map +1 -0
- package/out/ingestors/module-ingestor.d.ts +27 -0
- package/out/ingestors/module-ingestor.d.ts.map +1 -0
- package/out/ingestors/module-ingestor.js +137 -0
- package/out/ingestors/module-ingestor.js.map +1 -0
- package/out/ingestors/symbol-ingestor.d.ts +26 -0
- package/out/ingestors/symbol-ingestor.d.ts.map +1 -0
- package/out/ingestors/symbol-ingestor.js +183 -0
- package/out/ingestors/symbol-ingestor.js.map +1 -0
- package/out/mcp/resources/adrs.d.ts +13 -0
- package/out/mcp/resources/adrs.d.ts.map +1 -0
- package/out/mcp/resources/adrs.js +26 -0
- package/out/mcp/resources/adrs.js.map +1 -0
- package/out/mcp/resources/changes.d.ts +13 -0
- package/out/mcp/resources/changes.d.ts.map +1 -0
- package/out/mcp/resources/changes.js +26 -0
- package/out/mcp/resources/changes.js.map +1 -0
- package/out/mcp/resources/dependencies.d.ts +13 -0
- package/out/mcp/resources/dependencies.d.ts.map +1 -0
- package/out/mcp/resources/dependencies.js +26 -0
- package/out/mcp/resources/dependencies.js.map +1 -0
- package/out/mcp/resources/modules.d.ts +13 -0
- package/out/mcp/resources/modules.d.ts.map +1 -0
- package/out/mcp/resources/modules.js +26 -0
- package/out/mcp/resources/modules.js.map +1 -0
- package/out/mcp/resources/symbols.d.ts +13 -0
- package/out/mcp/resources/symbols.d.ts.map +1 -0
- package/out/mcp/resources/symbols.js +26 -0
- package/out/mcp/resources/symbols.js.map +1 -0
- package/out/mcp/server.d.ts +29 -0
- package/out/mcp/server.d.ts.map +1 -0
- package/out/mcp/server.js +300 -0
- package/out/mcp/server.js.map +1 -0
- package/out/mcp/tools/architecture-mining.d.ts +46 -0
- package/out/mcp/tools/architecture-mining.d.ts.map +1 -0
- package/out/mcp/tools/architecture-mining.js +272 -0
- package/out/mcp/tools/architecture-mining.js.map +1 -0
- package/out/mcp/tools/bootstrap.d.ts +9 -0
- package/out/mcp/tools/bootstrap.d.ts.map +1 -0
- package/out/mcp/tools/bootstrap.js +14 -0
- package/out/mcp/tools/bootstrap.js.map +1 -0
- package/out/mcp/tools/cross-analysis.d.ts +18 -0
- package/out/mcp/tools/cross-analysis.d.ts.map +1 -0
- package/out/mcp/tools/cross-analysis.js +23 -0
- package/out/mcp/tools/cross-analysis.js.map +1 -0
- package/out/mcp/tools/gap-analysis.d.ts +34 -0
- package/out/mcp/tools/gap-analysis.d.ts.map +1 -0
- package/out/mcp/tools/gap-analysis.js +106 -0
- package/out/mcp/tools/gap-analysis.js.map +1 -0
- package/out/mcp/tools/learning-path.d.ts +10 -0
- package/out/mcp/tools/learning-path.d.ts.map +1 -0
- package/out/mcp/tools/learning-path.js +18 -0
- package/out/mcp/tools/learning-path.js.map +1 -0
- package/out/mcp/tools/query-dependencies.d.ts +18 -0
- package/out/mcp/tools/query-dependencies.d.ts.map +1 -0
- package/out/mcp/tools/query-dependencies.js +31 -0
- package/out/mcp/tools/query-dependencies.js.map +1 -0
- package/out/mcp/tools/query-modules.d.ts +17 -0
- package/out/mcp/tools/query-modules.d.ts.map +1 -0
- package/out/mcp/tools/query-modules.js +22 -0
- package/out/mcp/tools/query-modules.js.map +1 -0
- package/out/mcp/tools/query-symbols.d.ts +18 -0
- package/out/mcp/tools/query-symbols.d.ts.map +1 -0
- package/out/mcp/tools/query-symbols.js +32 -0
- package/out/mcp/tools/query-symbols.js.map +1 -0
- package/out/mcp/tools/semantic-discovery.d.ts +12 -0
- package/out/mcp/tools/semantic-discovery.d.ts.map +1 -0
- package/out/mcp/tools/semantic-discovery.js +35 -0
- package/out/mcp/tools/semantic-discovery.js.map +1 -0
- package/out/mcp/tools/system-explanation.d.ts +9 -0
- package/out/mcp/tools/system-explanation.d.ts.map +1 -0
- package/out/mcp/tools/system-explanation.js +14 -0
- package/out/mcp/tools/system-explanation.js.map +1 -0
- package/out/mcp/types.d.ts +19 -0
- package/out/mcp/types.d.ts.map +1 -0
- package/out/mcp/types.js +6 -0
- package/out/mcp/types.js.map +1 -0
- package/out/models/adr.d.ts +26 -0
- package/out/models/adr.d.ts.map +1 -0
- package/out/models/adr.js +3 -0
- package/out/models/adr.js.map +1 -0
- package/out/models/change.d.ts +42 -0
- package/out/models/change.d.ts.map +1 -0
- package/out/models/change.js +3 -0
- package/out/models/change.js.map +1 -0
- package/out/models/dependency.d.ts +37 -0
- package/out/models/dependency.d.ts.map +1 -0
- package/out/models/dependency.js +3 -0
- package/out/models/dependency.js.map +1 -0
- package/out/models/entity-reference.d.ts +20 -0
- package/out/models/entity-reference.d.ts.map +1 -0
- package/out/models/entity-reference.js +19 -0
- package/out/models/entity-reference.js.map +1 -0
- package/out/models/module.d.ts +26 -0
- package/out/models/module.d.ts.map +1 -0
- package/out/models/module.js +3 -0
- package/out/models/module.js.map +1 -0
- package/out/models/symbol.d.ts +31 -0
- package/out/models/symbol.d.ts.map +1 -0
- package/out/models/symbol.js +3 -0
- package/out/models/symbol.js.map +1 -0
- package/out/repositories/adr-repository.d.ts +41 -0
- package/out/repositories/adr-repository.d.ts.map +1 -0
- package/out/repositories/adr-repository.js +128 -0
- package/out/repositories/adr-repository.js.map +1 -0
- package/out/repositories/base-repository.d.ts +86 -0
- package/out/repositories/base-repository.d.ts.map +1 -0
- package/out/repositories/base-repository.js +66 -0
- package/out/repositories/base-repository.js.map +1 -0
- package/out/repositories/change-repository.d.ts +40 -0
- package/out/repositories/change-repository.d.ts.map +1 -0
- package/out/repositories/change-repository.js +150 -0
- package/out/repositories/change-repository.js.map +1 -0
- package/out/repositories/dependency-repository.d.ts +40 -0
- package/out/repositories/dependency-repository.d.ts.map +1 -0
- package/out/repositories/dependency-repository.js +129 -0
- package/out/repositories/dependency-repository.js.map +1 -0
- package/out/repositories/embedding-repository.d.ts +64 -0
- package/out/repositories/embedding-repository.d.ts.map +1 -0
- package/out/repositories/embedding-repository.js +126 -0
- package/out/repositories/embedding-repository.js.map +1 -0
- package/out/repositories/importance-repository.d.ts +63 -0
- package/out/repositories/importance-repository.d.ts.map +1 -0
- package/out/repositories/importance-repository.js +117 -0
- package/out/repositories/importance-repository.js.map +1 -0
- package/out/repositories/module-repository.d.ts +37 -0
- package/out/repositories/module-repository.d.ts.map +1 -0
- package/out/repositories/module-repository.js +122 -0
- package/out/repositories/module-repository.js.map +1 -0
- package/out/repositories/navigation-repository.d.ts +117 -0
- package/out/repositories/navigation-repository.d.ts.map +1 -0
- package/out/repositories/navigation-repository.js +211 -0
- package/out/repositories/navigation-repository.js.map +1 -0
- package/out/repositories/symbol-repository.d.ts +37 -0
- package/out/repositories/symbol-repository.d.ts.map +1 -0
- package/out/repositories/symbol-repository.js +136 -0
- package/out/repositories/symbol-repository.js.map +1 -0
- package/out/services/cross-dimension-linker.d.ts +45 -0
- package/out/services/cross-dimension-linker.d.ts.map +1 -0
- package/out/services/cross-dimension-linker.js +98 -0
- package/out/services/cross-dimension-linker.js.map +1 -0
- package/out/services/importance-scorer.d.ts +47 -0
- package/out/services/importance-scorer.d.ts.map +1 -0
- package/out/services/importance-scorer.js +188 -0
- package/out/services/importance-scorer.js.map +1 -0
- package/out/services/ingestion-orchestrator.d.ts +49 -0
- package/out/services/ingestion-orchestrator.d.ts.map +1 -0
- package/out/services/ingestion-orchestrator.js +140 -0
- package/out/services/ingestion-orchestrator.js.map +1 -0
- package/out/services/navigation-builder.d.ts +29 -0
- package/out/services/navigation-builder.d.ts.map +1 -0
- package/out/services/navigation-builder.js +229 -0
- package/out/services/navigation-builder.js.map +1 -0
- package/out/services/system-model-builder.d.ts +40 -0
- package/out/services/system-model-builder.d.ts.map +1 -0
- package/out/services/system-model-builder.js +88 -0
- package/out/services/system-model-builder.js.map +1 -0
- package/out/ui/commands.d.ts +9 -0
- package/out/ui/commands.d.ts.map +1 -0
- package/out/ui/commands.js +123 -0
- package/out/ui/commands.js.map +1 -0
- package/out/ui/database-explorer.d.ts +27 -0
- package/out/ui/database-explorer.d.ts.map +1 -0
- package/out/ui/database-explorer.js +169 -0
- package/out/ui/database-explorer.js.map +1 -0
- package/out/ui/detail-view-provider.d.ts +86 -0
- package/out/ui/detail-view-provider.d.ts.map +1 -0
- package/out/ui/detail-view-provider.js +1037 -0
- package/out/ui/detail-view-provider.js.map +1 -0
- package/out/ui/search-provider.d.ts +30 -0
- package/out/ui/search-provider.d.ts.map +1 -0
- package/out/ui/search-provider.js +240 -0
- package/out/ui/search-provider.js.map +1 -0
- package/out/ui/status-provider.d.ts +17 -0
- package/out/ui/status-provider.d.ts.map +1 -0
- package/out/ui/status-provider.js +76 -0
- package/out/ui/status-provider.js.map +1 -0
- package/out/validators/consistency-validator.d.ts +37 -0
- package/out/validators/consistency-validator.d.ts.map +1 -0
- package/out/validators/consistency-validator.js +93 -0
- package/out/validators/consistency-validator.js.map +1 -0
- package/out/validators/integrity-validator.d.ts +45 -0
- package/out/validators/integrity-validator.d.ts.map +1 -0
- package/out/validators/integrity-validator.js +115 -0
- package/out/validators/integrity-validator.js.map +1 -0
- package/package.json +173 -0
- package/schemas/sqlite/001_initial_modules.sql +39 -0
- package/schemas/sqlite/002_initial_symbols.sql +46 -0
- package/schemas/sqlite/003_initial_dependencies.sql +51 -0
- package/schemas/sqlite/004_initial_adrs.sql +41 -0
- package/schemas/sqlite/005_initial_changes.sql +54 -0
- package/schemas/sqlite/006_initial_ingestion.sql +34 -0
- package/schemas/sqlite/006_vectors_schema.sql +73 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NavigationBuilder = void 0;
|
|
37
|
+
const module_api_1 = require("../api/module-api");
|
|
38
|
+
const dependency_api_1 = require("../api/dependency-api");
|
|
39
|
+
const adr_api_1 = require("../api/adr-api");
|
|
40
|
+
const importance_repository_1 = require("../repositories/importance-repository");
|
|
41
|
+
const navigation_repository_1 = require("../repositories/navigation-repository");
|
|
42
|
+
const uuid_1 = require("uuid");
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
/**
|
|
45
|
+
* Builds navigation metadata: entry points, clusters, and ADR links.
|
|
46
|
+
*/
|
|
47
|
+
class NavigationBuilder {
|
|
48
|
+
constructor(dbManager) {
|
|
49
|
+
this.dbManager = dbManager;
|
|
50
|
+
this.moduleApi = new module_api_1.ModuleApi(dbManager);
|
|
51
|
+
this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
|
|
52
|
+
this.adrApi = new adr_api_1.AdrApi(dbManager);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Builds all navigation metadata for a plugin.
|
|
56
|
+
*/
|
|
57
|
+
async buildMetadata(pluginId) {
|
|
58
|
+
console.log(`[NavigationBuilder] Building navigation metadata for plugin ${pluginId}`);
|
|
59
|
+
await this.identifyEntryPoints(pluginId);
|
|
60
|
+
await this.linkRelatedAdrs(pluginId);
|
|
61
|
+
await this.buildClusters(pluginId);
|
|
62
|
+
console.log(`[NavigationBuilder] Navigation metadata built for plugin ${pluginId}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Identifies entry points (automatically + manually).
|
|
66
|
+
*/
|
|
67
|
+
async identifyEntryPoints(pluginId) {
|
|
68
|
+
console.log(`[NavigationBuilder] Identifying entry points for plugin ${pluginId}`);
|
|
69
|
+
const db = await this.dbManager.getDatabase('V');
|
|
70
|
+
const navRepo = new navigation_repository_1.NavigationRepository(db);
|
|
71
|
+
const entryPointRepo = new navigation_repository_1.EntryPointRepository(db);
|
|
72
|
+
const importanceRepo = new importance_repository_1.ImportanceRepository(db);
|
|
73
|
+
// Get modules (X-dimension)
|
|
74
|
+
const modules = await this.moduleApi.getAllModules(pluginId);
|
|
75
|
+
const dependencies = await this.dependencyApi.getAllDependencies(pluginId);
|
|
76
|
+
// Get importance scores
|
|
77
|
+
const importanceScores = await importanceRepo.getAllByDimension('X', pluginId);
|
|
78
|
+
const importanceMap = new Map();
|
|
79
|
+
for (const score of importanceScores) {
|
|
80
|
+
importanceMap.set(score.entity_id, score.combined_score);
|
|
81
|
+
}
|
|
82
|
+
// Get manual entry points
|
|
83
|
+
const manualEntryPoints = await entryPointRepo.getAllByDimension('X', pluginId);
|
|
84
|
+
const manualEntryPointSet = new Set(manualEntryPoints.map(ep => ep.entity_id));
|
|
85
|
+
// Build incoming dependency map
|
|
86
|
+
const incomingDeps = new Map();
|
|
87
|
+
for (const dep of dependencies) {
|
|
88
|
+
const count = incomingDeps.get(dep.to_module) || 0;
|
|
89
|
+
incomingDeps.set(dep.to_module, count + 1);
|
|
90
|
+
}
|
|
91
|
+
const now = new Date();
|
|
92
|
+
const entryPointThreshold = 0.1; // Top 20% importance
|
|
93
|
+
// Identify entry points
|
|
94
|
+
for (const module of modules) {
|
|
95
|
+
const importanceScore = importanceMap.get(module.id) || 0;
|
|
96
|
+
const incomingCount = incomingDeps.get(module.file_path) || 0;
|
|
97
|
+
const isManual = manualEntryPointSet.has(module.id);
|
|
98
|
+
// Automatic criteria:
|
|
99
|
+
// 1. High importance score (> threshold)
|
|
100
|
+
// 2. No incoming dependencies (root module)
|
|
101
|
+
// OR: Manual entry point
|
|
102
|
+
const isEntryPoint = isManual ||
|
|
103
|
+
(importanceScore > entryPointThreshold && incomingCount === 0);
|
|
104
|
+
// Get or create navigation metadata
|
|
105
|
+
let metadata = await navRepo.getByEntity('X', module.id, pluginId);
|
|
106
|
+
if (!metadata) {
|
|
107
|
+
metadata = {
|
|
108
|
+
id: (0, uuid_1.v4)(),
|
|
109
|
+
plugin_id: pluginId,
|
|
110
|
+
dimension: 'X',
|
|
111
|
+
entity_id: module.id,
|
|
112
|
+
is_entry_point: isEntryPoint,
|
|
113
|
+
cluster_id: null,
|
|
114
|
+
related_adrs: '[]',
|
|
115
|
+
importance_rank: null,
|
|
116
|
+
created_at: now
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
metadata.is_entry_point = isEntryPoint;
|
|
121
|
+
}
|
|
122
|
+
// Set importance rank if available
|
|
123
|
+
const score = importanceScores.find(s => s.entity_id === module.id);
|
|
124
|
+
if (score) {
|
|
125
|
+
metadata.importance_rank = score.rank;
|
|
126
|
+
}
|
|
127
|
+
await navRepo.upsert(metadata);
|
|
128
|
+
}
|
|
129
|
+
console.log(`[NavigationBuilder] Identified entry points for ${modules.length} modules`);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Links entities with related ADRs.
|
|
133
|
+
*/
|
|
134
|
+
async linkRelatedAdrs(pluginId) {
|
|
135
|
+
console.log(`[NavigationBuilder] Linking related ADRs for plugin ${pluginId}`);
|
|
136
|
+
const db = await this.dbManager.getDatabase('V');
|
|
137
|
+
const navRepo = new navigation_repository_1.NavigationRepository(db);
|
|
138
|
+
const adrRepo = await this.dbManager.getDatabase('W');
|
|
139
|
+
const { AdrRepository } = await Promise.resolve().then(() => __importStar(require('../repositories/adr-repository')));
|
|
140
|
+
const adrRepository = new AdrRepository(adrRepo);
|
|
141
|
+
// Get all modules
|
|
142
|
+
const modules = await this.moduleApi.getAllModules(pluginId);
|
|
143
|
+
// Get all ADR file mappings
|
|
144
|
+
const allAdrs = await this.adrApi.getAllAdrs(pluginId);
|
|
145
|
+
const fileToAdrs = new Map(); // file_path -> [adr_numbers]
|
|
146
|
+
for (const adr of allAdrs) {
|
|
147
|
+
const mappings = await adrRepository.getAdrFileMappings(adr.id);
|
|
148
|
+
for (const mapping of mappings) {
|
|
149
|
+
if (!fileToAdrs.has(mapping.file_path)) {
|
|
150
|
+
fileToAdrs.set(mapping.file_path, []);
|
|
151
|
+
}
|
|
152
|
+
fileToAdrs.get(mapping.file_path).push(adr.adr_number);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Link modules to ADRs
|
|
156
|
+
const now = new Date();
|
|
157
|
+
for (const module of modules) {
|
|
158
|
+
const relatedAdrNumbers = fileToAdrs.get(module.file_path) || [];
|
|
159
|
+
let metadata = await navRepo.getByEntity('X', module.id, pluginId);
|
|
160
|
+
if (!metadata) {
|
|
161
|
+
metadata = {
|
|
162
|
+
id: (0, uuid_1.v4)(),
|
|
163
|
+
plugin_id: pluginId,
|
|
164
|
+
dimension: 'X',
|
|
165
|
+
entity_id: module.id,
|
|
166
|
+
is_entry_point: false,
|
|
167
|
+
cluster_id: null,
|
|
168
|
+
related_adrs: JSON.stringify(relatedAdrNumbers),
|
|
169
|
+
importance_rank: null,
|
|
170
|
+
created_at: now
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
metadata.related_adrs = JSON.stringify(relatedAdrNumbers);
|
|
175
|
+
}
|
|
176
|
+
await navRepo.upsert(metadata);
|
|
177
|
+
}
|
|
178
|
+
console.log(`[NavigationBuilder] Linked ADRs for ${modules.length} modules`);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Groups related entities into clusters.
|
|
182
|
+
* Uses directory structure for clustering.
|
|
183
|
+
*/
|
|
184
|
+
async buildClusters(pluginId) {
|
|
185
|
+
console.log(`[NavigationBuilder] Building clusters for plugin ${pluginId}`);
|
|
186
|
+
const db = await this.dbManager.getDatabase('V');
|
|
187
|
+
const navRepo = new navigation_repository_1.NavigationRepository(db);
|
|
188
|
+
// Get all modules
|
|
189
|
+
const modules = await this.moduleApi.getAllModules(pluginId);
|
|
190
|
+
// Cluster by directory (e.g., src/core/, src/api/, etc.)
|
|
191
|
+
const clusterMap = new Map(); // file_path -> cluster_id
|
|
192
|
+
const clusters = new Map(); // cluster_id -> [file_paths]
|
|
193
|
+
for (const module of modules) {
|
|
194
|
+
const dir = path.dirname(module.file_path);
|
|
195
|
+
const clusterId = `cluster:${dir}`;
|
|
196
|
+
if (!clusters.has(clusterId)) {
|
|
197
|
+
clusters.set(clusterId, []);
|
|
198
|
+
}
|
|
199
|
+
clusters.get(clusterId).push(module.file_path);
|
|
200
|
+
clusterMap.set(module.file_path, clusterId);
|
|
201
|
+
}
|
|
202
|
+
// Update navigation metadata with cluster IDs
|
|
203
|
+
const now = new Date();
|
|
204
|
+
for (const module of modules) {
|
|
205
|
+
const clusterId = clusterMap.get(module.file_path) || null;
|
|
206
|
+
let metadata = await navRepo.getByEntity('X', module.id, pluginId);
|
|
207
|
+
if (!metadata) {
|
|
208
|
+
metadata = {
|
|
209
|
+
id: (0, uuid_1.v4)(),
|
|
210
|
+
plugin_id: pluginId,
|
|
211
|
+
dimension: 'X',
|
|
212
|
+
entity_id: module.id,
|
|
213
|
+
is_entry_point: false,
|
|
214
|
+
cluster_id: clusterId,
|
|
215
|
+
related_adrs: '[]',
|
|
216
|
+
importance_rank: null,
|
|
217
|
+
created_at: now
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
metadata.cluster_id = clusterId;
|
|
222
|
+
}
|
|
223
|
+
await navRepo.upsert(metadata);
|
|
224
|
+
}
|
|
225
|
+
console.log(`[NavigationBuilder] Built ${clusters.size} clusters for ${modules.length} modules`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
exports.NavigationBuilder = NavigationBuilder;
|
|
229
|
+
//# sourceMappingURL=navigation-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-builder.js","sourceRoot":"","sources":["../../src/services/navigation-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { MultiDbManager } from '../core/multi-db-manager';
|
|
2
|
+
import { Module } from '../models/module';
|
|
3
|
+
import { Dependency } from '../models/dependency';
|
|
4
|
+
import { Adr } from '../models/adr';
|
|
5
|
+
/**
|
|
6
|
+
* Builds system-level aggregates from multiple dimensions.
|
|
7
|
+
* Combines data from X, Y, Z, and W dimensions to create comprehensive system views.
|
|
8
|
+
*/
|
|
9
|
+
export declare class SystemModelBuilder {
|
|
10
|
+
private dbManager;
|
|
11
|
+
constructor(dbManager: MultiDbManager);
|
|
12
|
+
/**
|
|
13
|
+
* Builds a module dependency graph combining X and Z dimensions.
|
|
14
|
+
*
|
|
15
|
+
* @param pluginId The plugin ID
|
|
16
|
+
* @returns Map of module path to its dependencies
|
|
17
|
+
*/
|
|
18
|
+
buildModuleDependencyGraph(pluginId: string): Promise<Map<string, string[]>>;
|
|
19
|
+
/**
|
|
20
|
+
* Builds a symbol dependency tree combining Y and Z dimensions.
|
|
21
|
+
*
|
|
22
|
+
* @param filePath Repository-relative source path
|
|
23
|
+
* @param pluginId The plugin ID
|
|
24
|
+
* @returns Map of symbol name to its dependencies
|
|
25
|
+
*/
|
|
26
|
+
buildSymbolDependencyTree(filePath: string, pluginId: string): Promise<Map<string, string[]>>;
|
|
27
|
+
/**
|
|
28
|
+
* Builds an architectural view combining X, W, and Z dimensions.
|
|
29
|
+
* Shows modules with their ADRs and dependencies.
|
|
30
|
+
*
|
|
31
|
+
* @param pluginId The plugin ID
|
|
32
|
+
* @returns Array of module views with ADRs and dependencies
|
|
33
|
+
*/
|
|
34
|
+
buildArchitecturalView(pluginId: string): Promise<Array<{
|
|
35
|
+
module: Module;
|
|
36
|
+
adrs: Adr[];
|
|
37
|
+
dependencies: Dependency[];
|
|
38
|
+
}>>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=system-model-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-model-builder.d.ts","sourceRoot":"","sources":["../../src/services/system-model-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAIrC;;;;;OAKG;IACU,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAyBzF;;;;;;OAMG;IACU,yBAAyB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAgBjC;;;;;;OAMG;IACU,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QACjE,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,YAAY,EAAE,UAAU,EAAE,CAAC;KAC9B,CAAC,CAAC;CA6BN"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemModelBuilder = void 0;
|
|
4
|
+
const module_repository_1 = require("../repositories/module-repository");
|
|
5
|
+
const symbol_repository_1 = require("../repositories/symbol-repository");
|
|
6
|
+
const dependency_repository_1 = require("../repositories/dependency-repository");
|
|
7
|
+
const adr_repository_1 = require("../repositories/adr-repository");
|
|
8
|
+
/**
|
|
9
|
+
* Builds system-level aggregates from multiple dimensions.
|
|
10
|
+
* Combines data from X, Y, Z, and W dimensions to create comprehensive system views.
|
|
11
|
+
*/
|
|
12
|
+
class SystemModelBuilder {
|
|
13
|
+
constructor(dbManager) {
|
|
14
|
+
this.dbManager = dbManager;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Builds a module dependency graph combining X and Z dimensions.
|
|
18
|
+
*
|
|
19
|
+
* @param pluginId The plugin ID
|
|
20
|
+
* @returns Map of module path to its dependencies
|
|
21
|
+
*/
|
|
22
|
+
async buildModuleDependencyGraph(pluginId) {
|
|
23
|
+
const moduleDb = await this.dbManager.getDatabase('X');
|
|
24
|
+
const depDb = await this.dbManager.getDatabase('Z');
|
|
25
|
+
const moduleRepo = new module_repository_1.ModuleRepository(moduleDb);
|
|
26
|
+
const depRepo = new dependency_repository_1.DependencyRepository(depDb);
|
|
27
|
+
const modules = await moduleRepo.getAll(pluginId);
|
|
28
|
+
const dependencies = await depRepo.getAll(pluginId);
|
|
29
|
+
const graph = new Map();
|
|
30
|
+
for (const module of modules) {
|
|
31
|
+
graph.set(module.file_path, []);
|
|
32
|
+
}
|
|
33
|
+
for (const dep of dependencies) {
|
|
34
|
+
const deps = graph.get(dep.from_module) || [];
|
|
35
|
+
deps.push(dep.to_module);
|
|
36
|
+
graph.set(dep.from_module, deps);
|
|
37
|
+
}
|
|
38
|
+
return graph;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Builds a symbol dependency tree combining Y and Z dimensions.
|
|
42
|
+
*
|
|
43
|
+
* @param filePath Repository-relative source path
|
|
44
|
+
* @param pluginId The plugin ID
|
|
45
|
+
* @returns Map of symbol name to its dependencies
|
|
46
|
+
*/
|
|
47
|
+
async buildSymbolDependencyTree(filePath, pluginId) {
|
|
48
|
+
const symbolDb = await this.dbManager.getDatabase('Y');
|
|
49
|
+
const symbolRepo = new symbol_repository_1.SymbolRepository(symbolDb);
|
|
50
|
+
const symbols = await symbolRepo.findByPath(filePath, pluginId);
|
|
51
|
+
const tree = new Map();
|
|
52
|
+
for (const symbol of symbols) {
|
|
53
|
+
const deps = await symbolRepo.getSymbolDependencies(symbol.id);
|
|
54
|
+
const depModules = deps.map(d => d.dependency_module);
|
|
55
|
+
tree.set(symbol.name, depModules);
|
|
56
|
+
}
|
|
57
|
+
return tree;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Builds an architectural view combining X, W, and Z dimensions.
|
|
61
|
+
* Shows modules with their ADRs and dependencies.
|
|
62
|
+
*
|
|
63
|
+
* @param pluginId The plugin ID
|
|
64
|
+
* @returns Array of module views with ADRs and dependencies
|
|
65
|
+
*/
|
|
66
|
+
async buildArchitecturalView(pluginId) {
|
|
67
|
+
const moduleDb = await this.dbManager.getDatabase('X');
|
|
68
|
+
const adrDb = await this.dbManager.getDatabase('W');
|
|
69
|
+
const depDb = await this.dbManager.getDatabase('Z');
|
|
70
|
+
const moduleRepo = new module_repository_1.ModuleRepository(moduleDb);
|
|
71
|
+
const adrRepo = new adr_repository_1.AdrRepository(adrDb);
|
|
72
|
+
const depRepo = new dependency_repository_1.DependencyRepository(depDb);
|
|
73
|
+
const modules = await moduleRepo.getAll(pluginId);
|
|
74
|
+
const views = [];
|
|
75
|
+
for (const module of modules) {
|
|
76
|
+
const adrs = await adrRepo.findByFilePath(module.file_path, pluginId);
|
|
77
|
+
const dependencies = await depRepo.findByFromModule(module.file_path, pluginId);
|
|
78
|
+
views.push({
|
|
79
|
+
module,
|
|
80
|
+
adrs,
|
|
81
|
+
dependencies
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return views;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.SystemModelBuilder = SystemModelBuilder;
|
|
88
|
+
//# sourceMappingURL=system-model-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-model-builder.js","sourceRoot":"","sources":["../../src/services/system-model-builder.ts"],"names":[],"mappings":";;;AACA,yEAAqE;AACrE,yEAAqE;AACrE,iFAA6E;AAC7E,mEAA+D;AAK/D;;;GAGG;AACH,MAAa,kBAAkB;IAG3B,YAAY,SAAyB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,0BAA0B,CAAC,QAAgB;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,4CAAoB,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,yBAAyB,CAClC,QAAgB,EAChB,QAAgB;QAEhB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;QAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAKhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,8BAAa,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,4CAAoB,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,KAAK,GAIN,EAAE,CAAC;QAER,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEhF,KAAK,CAAC,IAAI,CAAC;gBACP,MAAM;gBACN,IAAI;gBACJ,YAAY;aACf,CAAC,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAxGD,gDAwGC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
import { MultiDbManager } from '../core/multi-db-manager';
|
|
3
|
+
import { IngestionOrchestrator } from '../services/ingestion-orchestrator';
|
|
4
|
+
import { DatabaseExplorerProvider } from './database-explorer';
|
|
5
|
+
/**
|
|
6
|
+
* Registers all VS Code commands for the 5D Database Plugin.
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerCommands(context: vscode.ExtensionContext, dbManager: MultiDbManager, ingestionOrchestrator: IngestionOrchestrator, explorerProvider: DatabaseExplorerProvider, docsPath?: string): void;
|
|
9
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/ui/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAChC,SAAS,EAAE,cAAc,EACzB,qBAAqB,EAAE,qBAAqB,EAC5C,gBAAgB,EAAE,wBAAwB,EAC1C,QAAQ,CAAC,EAAE,MAAM,GAClB,IAAI,CA+GN"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerCommands = registerCommands;
|
|
37
|
+
const vscode = __importStar(require("vscode"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const docs_path_resolver_1 = require("../core/docs-path-resolver");
|
|
40
|
+
const detail_view_provider_1 = require("./detail-view-provider");
|
|
41
|
+
/**
|
|
42
|
+
* Registers all VS Code commands for the 5D Database Plugin.
|
|
43
|
+
*/
|
|
44
|
+
function registerCommands(context, dbManager, ingestionOrchestrator, explorerProvider, docsPath) {
|
|
45
|
+
const detailViewProvider = new detail_view_provider_1.DetailViewProvider(dbManager);
|
|
46
|
+
const ingestCommand = vscode.commands.registerCommand('5d-database.ingest', async () => {
|
|
47
|
+
const workspaceFolders = vscode.workspace.workspaceFolders;
|
|
48
|
+
if (!workspaceFolders || workspaceFolders.length === 0) {
|
|
49
|
+
vscode.window.showErrorMessage('No workspace folder found');
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// Use first workspace folder for plugin ID
|
|
53
|
+
const workspaceRoot = workspaceFolders[0].uri.fsPath;
|
|
54
|
+
// Find docs directory (may have changed since activation)
|
|
55
|
+
const currentDocsPath = docsPath || docs_path_resolver_1.DocsPathResolver.findDocsDirectory(workspaceFolders);
|
|
56
|
+
if (!currentDocsPath) {
|
|
57
|
+
vscode.window.showWarningMessage('docs/ directory not found. The 5D Database Plugin requires the Documentation System Plugin (Noyrax) to generate docs/ first. Please install and run the Documentation System Plugin.', { modal: false });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const pluginId = dbManager.getPluginId();
|
|
61
|
+
vscode.window.withProgress({
|
|
62
|
+
location: vscode.ProgressLocation.Notification,
|
|
63
|
+
title: 'Ingesting Documentation',
|
|
64
|
+
cancellable: false
|
|
65
|
+
}, async (progress) => {
|
|
66
|
+
progress.report({ increment: 0, message: 'Starting ingestion...' });
|
|
67
|
+
try {
|
|
68
|
+
await ingestionOrchestrator.ingestIncremental(workspaceRoot, pluginId, currentDocsPath);
|
|
69
|
+
progress.report({ increment: 100, message: 'Ingestion complete' });
|
|
70
|
+
// Refresh the database explorer to show newly ingested data
|
|
71
|
+
explorerProvider.refresh();
|
|
72
|
+
vscode.window.showInformationMessage('Documentation ingested successfully');
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
vscode.window.showErrorMessage(`Ingestion failed: ${error}`);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
const searchCommand = vscode.commands.registerCommand('5d-database.search', async () => {
|
|
80
|
+
const { SearchProvider } = await Promise.resolve().then(() => __importStar(require('./search-provider')));
|
|
81
|
+
const searchProvider = new SearchProvider(dbManager);
|
|
82
|
+
await searchProvider.showSearch();
|
|
83
|
+
});
|
|
84
|
+
const showModuleDetailCommand = vscode.commands.registerCommand('5d-database.showModuleDetail', async (moduleId) => {
|
|
85
|
+
await detailViewProvider.showModuleDetail(moduleId);
|
|
86
|
+
});
|
|
87
|
+
const showSymbolDetailCommand = vscode.commands.registerCommand('5d-database.showSymbolDetail', async (symbolId) => {
|
|
88
|
+
await detailViewProvider.showSymbolDetail(symbolId);
|
|
89
|
+
});
|
|
90
|
+
const showAdrDetailCommand = vscode.commands.registerCommand('5d-database.showAdrDetail', async (adrId) => {
|
|
91
|
+
await detailViewProvider.showAdrDetail(adrId);
|
|
92
|
+
});
|
|
93
|
+
const showDependencyDetailCommand = vscode.commands.registerCommand('5d-database.showDependencyDetail', async (dependencyId) => {
|
|
94
|
+
await detailViewProvider.showDependencyDetail(dependencyId);
|
|
95
|
+
});
|
|
96
|
+
const showChangeDetailCommand = vscode.commands.registerCommand('5d-database.showChangeDetail', async (reportId) => {
|
|
97
|
+
await detailViewProvider.showChangeDetail(reportId);
|
|
98
|
+
});
|
|
99
|
+
const openSourceFileCommand = vscode.commands.registerCommand('5d-database.openSourceFile', async (filePath, line, column) => {
|
|
100
|
+
const workspaceFolders = vscode.workspace.workspaceFolders;
|
|
101
|
+
if (!workspaceFolders || workspaceFolders.length === 0) {
|
|
102
|
+
vscode.window.showErrorMessage('No workspace folder found');
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const workspaceRoot = workspaceFolders[0].uri.fsPath;
|
|
106
|
+
const absolutePath = path.join(workspaceRoot, filePath);
|
|
107
|
+
const uri = vscode.Uri.file(absolutePath);
|
|
108
|
+
try {
|
|
109
|
+
const document = await vscode.workspace.openTextDocument(uri);
|
|
110
|
+
const editor = await vscode.window.showTextDocument(document);
|
|
111
|
+
if (line !== undefined) {
|
|
112
|
+
const position = new vscode.Position(Math.max(0, line - 1), column !== undefined ? Math.max(0, column - 1) : 0);
|
|
113
|
+
editor.selection = new vscode.Selection(position, position);
|
|
114
|
+
editor.revealRange(new vscode.Range(position, position));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
vscode.window.showErrorMessage(`Failed to open file: ${filePath}. Error: ${error}`);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
context.subscriptions.push(ingestCommand, searchCommand, showModuleDetailCommand, showSymbolDetailCommand, showAdrDetailCommand, showDependencyDetailCommand, showChangeDetailCommand, openSourceFileCommand, detailViewProvider);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/ui/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
import { MultiDbManager } from '../core/multi-db-manager';
|
|
3
|
+
/**
|
|
4
|
+
* Tree item for database explorer.
|
|
5
|
+
*/
|
|
6
|
+
declare class DatabaseTreeItem extends vscode.TreeItem {
|
|
7
|
+
readonly label: string;
|
|
8
|
+
readonly collapsibleState: vscode.TreeItemCollapsibleState;
|
|
9
|
+
readonly command?: vscode.Command | undefined;
|
|
10
|
+
constructor(label: string, collapsibleState: vscode.TreeItemCollapsibleState, command?: vscode.Command | undefined);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Database Explorer Tree Data Provider.
|
|
14
|
+
* Shows the 5 dimensions in the VS Code Explorer.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DatabaseExplorerProvider implements vscode.TreeDataProvider<DatabaseTreeItem> {
|
|
17
|
+
private _onDidChangeTreeData;
|
|
18
|
+
readonly onDidChangeTreeData: vscode.Event<DatabaseTreeItem | undefined | null | void>;
|
|
19
|
+
private dbManager;
|
|
20
|
+
private pluginId;
|
|
21
|
+
constructor(context: vscode.ExtensionContext, dbManager: MultiDbManager);
|
|
22
|
+
refresh(): void;
|
|
23
|
+
getTreeItem(element: DatabaseTreeItem): vscode.TreeItem;
|
|
24
|
+
getChildren(element?: DatabaseTreeItem): Promise<DatabaseTreeItem[]>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=database-explorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-explorer.d.ts","sourceRoot":"","sources":["../../src/ui/database-explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ1D;;GAEG;AACH,cAAM,gBAAiB,SAAQ,MAAM,CAAC,QAAQ;aAEtB,KAAK,EAAE,MAAM;aACb,gBAAgB,EAAE,MAAM,CAAC,wBAAwB;aACjD,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO;gBAFxB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,CAAC,wBAAwB,EACjD,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,YAAA;CAO/C;AAED;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;IACtF,OAAO,CAAC,oBAAoB,CAA0I;IACtK,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAmC;IAEzH,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,cAAc;IAKvE,OAAO,IAAI,IAAI;IAIf,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,QAAQ;IAIjD,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA8G7E"}
|