@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,290 @@
|
|
|
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.EmbeddingPipeline = void 0;
|
|
37
|
+
const embedding_repository_1 = require("../repositories/embedding-repository");
|
|
38
|
+
const module_api_1 = require("../api/module-api");
|
|
39
|
+
const symbol_api_1 = require("../api/symbol-api");
|
|
40
|
+
const dependency_api_1 = require("../api/dependency-api");
|
|
41
|
+
const adr_api_1 = require("../api/adr-api");
|
|
42
|
+
const change_api_1 = require("../api/change-api");
|
|
43
|
+
const uuid_1 = require("uuid");
|
|
44
|
+
const crypto = __importStar(require("crypto"));
|
|
45
|
+
/**
|
|
46
|
+
* Coordinates embedding generation for all 5 dimensions.
|
|
47
|
+
* Syncs embeddings with 5D-DBs using hash-based change detection.
|
|
48
|
+
*/
|
|
49
|
+
class EmbeddingPipeline {
|
|
50
|
+
constructor(dbManager, embeddingGenerator) {
|
|
51
|
+
this.dbManager = dbManager;
|
|
52
|
+
this.embeddingGenerator = embeddingGenerator;
|
|
53
|
+
this.moduleApi = new module_api_1.ModuleApi(dbManager);
|
|
54
|
+
this.symbolApi = new symbol_api_1.SymbolApi(dbManager);
|
|
55
|
+
this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
|
|
56
|
+
this.adrApi = new adr_api_1.AdrApi(dbManager);
|
|
57
|
+
this.changeApi = new change_api_1.ChangeApi(dbManager);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Syncs embeddings for all dimensions.
|
|
61
|
+
* Only generates embeddings for changed/new entities.
|
|
62
|
+
*/
|
|
63
|
+
async syncEmbeddings(pluginId) {
|
|
64
|
+
console.log(`[EmbeddingPipeline] Starting embedding sync for plugin ${pluginId}`);
|
|
65
|
+
if (!this.embeddingGenerator.isConfigured()) {
|
|
66
|
+
console.warn('[EmbeddingPipeline] Embedding generator not configured. Skipping sync.');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const model = this.embeddingGenerator.getModel();
|
|
70
|
+
// Sync each dimension
|
|
71
|
+
await this.syncDimension('X', pluginId, model);
|
|
72
|
+
await this.syncDimension('Y', pluginId, model);
|
|
73
|
+
await this.syncDimension('Z', pluginId, model);
|
|
74
|
+
await this.syncDimension('W', pluginId, model);
|
|
75
|
+
await this.syncDimension('T', pluginId, model);
|
|
76
|
+
console.log(`[EmbeddingPipeline] Embedding sync completed for plugin ${pluginId}`);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Syncs embeddings for a specific dimension.
|
|
80
|
+
*/
|
|
81
|
+
async syncDimension(dimension, pluginId, model) {
|
|
82
|
+
console.log(`[EmbeddingPipeline] Syncing dimension ${dimension} for plugin ${pluginId}`);
|
|
83
|
+
const db = await this.dbManager.getDatabase('V');
|
|
84
|
+
const embeddingRepo = new embedding_repository_1.EmbeddingRepository(db);
|
|
85
|
+
// Check vector database availability once
|
|
86
|
+
const vectorDb = this.dbManager.getVectorDatabase();
|
|
87
|
+
const vectorDbAvailable = vectorDb && vectorDb.isAvailable();
|
|
88
|
+
if (vectorDb) {
|
|
89
|
+
if (vectorDb.isAvailable()) {
|
|
90
|
+
console.log(`[EmbeddingPipeline] Vector database available: ${vectorDb.constructor.name}`);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
console.warn(`[EmbeddingPipeline] Vector database initialized but not available. Will use fallback cosine similarity.`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.warn(`[EmbeddingPipeline] Vector database not initialized. Embeddings will be stored in SQLite only (fallback to cosine similarity).`);
|
|
98
|
+
}
|
|
99
|
+
// Get all entities from the dimension
|
|
100
|
+
const entities = await this.getEntitiesForDimension(dimension, pluginId);
|
|
101
|
+
console.log(`[EmbeddingPipeline] Found ${entities.length} entities in dimension ${dimension}`);
|
|
102
|
+
// Get existing embeddings
|
|
103
|
+
const existingEmbeddings = await embeddingRepo.getAllByDimension(dimension, pluginId, model);
|
|
104
|
+
const existingMap = new Map();
|
|
105
|
+
for (const emb of existingEmbeddings) {
|
|
106
|
+
existingMap.set(emb.entity_id, emb);
|
|
107
|
+
}
|
|
108
|
+
// Find entities that need embedding generation
|
|
109
|
+
const toGenerate = [];
|
|
110
|
+
for (const entity of entities) {
|
|
111
|
+
const content = this.extractContentForEmbedding(dimension, entity);
|
|
112
|
+
const contentHash = this.computeContentHash(content);
|
|
113
|
+
const existing = existingMap.get(entity.id);
|
|
114
|
+
if (!existing || existing.content_hash !== contentHash) {
|
|
115
|
+
toGenerate.push({ entity, content, contentHash });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
console.log(`[EmbeddingPipeline] Need to generate ${toGenerate.length} embeddings for dimension ${dimension}`);
|
|
119
|
+
// Generate embeddings in batch for new/changed entities
|
|
120
|
+
if (toGenerate.length > 0) {
|
|
121
|
+
const batchItems = toGenerate.map(item => ({
|
|
122
|
+
dimension,
|
|
123
|
+
entityId: item.entity.id,
|
|
124
|
+
content: item.content
|
|
125
|
+
}));
|
|
126
|
+
const embeddings = await this.embeddingGenerator.generateBatch(batchItems);
|
|
127
|
+
// Save embeddings
|
|
128
|
+
const now = new Date();
|
|
129
|
+
for (const item of toGenerate) {
|
|
130
|
+
const embeddingVector = embeddings.get(item.entity.id);
|
|
131
|
+
if (!embeddingVector) {
|
|
132
|
+
console.warn(`[EmbeddingPipeline] No embedding generated for entity ${item.entity.id} in dimension ${dimension}`);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
// Convert array to Buffer (1536 floats = 1536 * 4 bytes = 6144 bytes)
|
|
136
|
+
const vectorBuffer = Buffer.from(new Float32Array(embeddingVector).buffer);
|
|
137
|
+
const existing = existingMap.get(item.entity.id);
|
|
138
|
+
const externalId = this.getExternalId(dimension, item.entity);
|
|
139
|
+
let embeddingId;
|
|
140
|
+
if (existing) {
|
|
141
|
+
// Update existing embedding
|
|
142
|
+
existing.content_hash = item.contentHash;
|
|
143
|
+
existing.embedding_vector = vectorBuffer;
|
|
144
|
+
existing.updated_at = now;
|
|
145
|
+
await embeddingRepo.update(existing);
|
|
146
|
+
embeddingId = existing.id;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Create new embedding
|
|
150
|
+
const embedding = {
|
|
151
|
+
id: (0, uuid_1.v4)(),
|
|
152
|
+
plugin_id: pluginId,
|
|
153
|
+
dimension,
|
|
154
|
+
entity_id: item.entity.id,
|
|
155
|
+
external_id: externalId,
|
|
156
|
+
content_hash: item.contentHash,
|
|
157
|
+
embedding_model: model,
|
|
158
|
+
embedding_vector: vectorBuffer,
|
|
159
|
+
created_at: now,
|
|
160
|
+
updated_at: now
|
|
161
|
+
};
|
|
162
|
+
await embeddingRepo.create(embedding);
|
|
163
|
+
embeddingId = embedding.id;
|
|
164
|
+
}
|
|
165
|
+
// Sync to vector database (VSS or external DB)
|
|
166
|
+
if (vectorDbAvailable) {
|
|
167
|
+
try {
|
|
168
|
+
// Convert Buffer to Float32Array for vector database
|
|
169
|
+
const vectorArray = new Float32Array(vectorBuffer.buffer, vectorBuffer.byteOffset, vectorBuffer.length / 4);
|
|
170
|
+
await vectorDb.upsertEmbedding(embeddingId, vectorArray);
|
|
171
|
+
}
|
|
172
|
+
catch (vectorDbError) {
|
|
173
|
+
console.warn(`[EmbeddingPipeline] Failed to sync embedding ${embeddingId} to vector database: ${vectorDbError}`);
|
|
174
|
+
// Continue - fallback to cosine similarity will be used
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
console.log(`[EmbeddingPipeline] Generated and synced ${toGenerate.length} new/changed embeddings for dimension ${dimension}`);
|
|
179
|
+
}
|
|
180
|
+
// Sync all existing embeddings to vector database (if vector DB is available)
|
|
181
|
+
// This ensures that even if embeddings were created before ChromaDB was available,
|
|
182
|
+
// they get synchronized when ChromaDB becomes available
|
|
183
|
+
if (vectorDbAvailable && existingEmbeddings.length > 0) {
|
|
184
|
+
console.log(`[EmbeddingPipeline] Syncing ${existingEmbeddings.length} existing embeddings to vector database for dimension ${dimension}`);
|
|
185
|
+
let syncedCount = 0;
|
|
186
|
+
let failedCount = 0;
|
|
187
|
+
for (const embedding of existingEmbeddings) {
|
|
188
|
+
try {
|
|
189
|
+
// Convert Buffer to Float32Array
|
|
190
|
+
const vectorBuffer = embedding.embedding_vector;
|
|
191
|
+
const vectorArray = new Float32Array(vectorBuffer.buffer, vectorBuffer.byteOffset, vectorBuffer.length / 4);
|
|
192
|
+
await vectorDb.upsertEmbedding(embedding.id, vectorArray);
|
|
193
|
+
syncedCount++;
|
|
194
|
+
}
|
|
195
|
+
catch (vectorDbError) {
|
|
196
|
+
console.warn(`[EmbeddingPipeline] Failed to sync existing embedding ${embedding.id} to vector database: ${vectorDbError}`);
|
|
197
|
+
failedCount++;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
console.log(`[EmbeddingPipeline] Synced ${syncedCount} existing embeddings to vector database for dimension ${dimension} (${failedCount} failed)`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Gets all entities for a dimension.
|
|
205
|
+
*/
|
|
206
|
+
async getEntitiesForDimension(dimension, pluginId) {
|
|
207
|
+
switch (dimension) {
|
|
208
|
+
case 'X':
|
|
209
|
+
return await this.moduleApi.getAllModules(pluginId);
|
|
210
|
+
case 'Y':
|
|
211
|
+
return await this.symbolApi.getAllSymbols(pluginId);
|
|
212
|
+
case 'Z':
|
|
213
|
+
return await this.dependencyApi.getAllDependencies(pluginId);
|
|
214
|
+
case 'W':
|
|
215
|
+
return await this.adrApi.getAllAdrs(pluginId);
|
|
216
|
+
case 'T':
|
|
217
|
+
// For T-dimension, we use the latest change report
|
|
218
|
+
const latestReport = await this.changeApi.getLatestChangeReport(pluginId);
|
|
219
|
+
return latestReport ? [latestReport] : [];
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Extracts content for embedding based on dimension.
|
|
224
|
+
*/
|
|
225
|
+
extractContentForEmbedding(dimension, entity) {
|
|
226
|
+
switch (dimension) {
|
|
227
|
+
case 'X': {
|
|
228
|
+
// X (Modules): Full markdown content
|
|
229
|
+
const module = entity;
|
|
230
|
+
return module.content_markdown;
|
|
231
|
+
}
|
|
232
|
+
case 'Y': {
|
|
233
|
+
// Y (Symbols): {name} {signature} {dependencies_summary}
|
|
234
|
+
const symbol = entity;
|
|
235
|
+
const signature = JSON.parse(symbol.signature_json || '{}');
|
|
236
|
+
const signatureStr = JSON.stringify(signature, null, 2);
|
|
237
|
+
const summary = symbol.summary || '';
|
|
238
|
+
return `${symbol.name}\n${signatureStr}\n${summary}`;
|
|
239
|
+
}
|
|
240
|
+
case 'Z': {
|
|
241
|
+
// Z (Dependencies): {from_module} → {to_module} {dependency_type} {symbols_summary}
|
|
242
|
+
const dep = entity;
|
|
243
|
+
const symbols = dep.symbols_json ? JSON.parse(dep.symbols_json) : [];
|
|
244
|
+
const symbolsStr = symbols.length > 0 ? ` (${symbols.join(', ')})` : '';
|
|
245
|
+
return `${dep.from_module} → ${dep.to_module} [${dep.dependency_type}]${symbolsStr}`;
|
|
246
|
+
}
|
|
247
|
+
case 'W': {
|
|
248
|
+
// W (ADRs): {title} {content} {linked_files}
|
|
249
|
+
const adr = entity;
|
|
250
|
+
// Extract linked files from content (simple pattern matching)
|
|
251
|
+
const fileMatches = adr.content_markdown.match(/src\/[^\s\)]+/g) || [];
|
|
252
|
+
const filesStr = fileMatches.length > 0 ? `\nLinked files: ${fileMatches.join(', ')}` : '';
|
|
253
|
+
return `${adr.title}\n${adr.content_markdown}${filesStr}`;
|
|
254
|
+
}
|
|
255
|
+
case 'T': {
|
|
256
|
+
// T (Changes): {run_type} {symbol_changes} {dependency_changes}
|
|
257
|
+
const report = entity;
|
|
258
|
+
// For T-dimension, we'd need to fetch symbol and dependency changes
|
|
259
|
+
// For now, use report metadata
|
|
260
|
+
return `Change Report: ${report.run_type}\nParsed: ${report.parsed_files} files\nDependencies: ${report.total_dependencies}`;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Gets external ID for an entity.
|
|
266
|
+
*/
|
|
267
|
+
getExternalId(dimension, entity) {
|
|
268
|
+
switch (dimension) {
|
|
269
|
+
case 'X':
|
|
270
|
+
return entity.file_path;
|
|
271
|
+
case 'Y':
|
|
272
|
+
return entity.symbol_id;
|
|
273
|
+
case 'Z':
|
|
274
|
+
const dep = entity;
|
|
275
|
+
return `${dep.from_module} → ${dep.to_module}`;
|
|
276
|
+
case 'W':
|
|
277
|
+
return entity.adr_number;
|
|
278
|
+
case 'T':
|
|
279
|
+
return entity.id;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Computes content hash for change detection.
|
|
284
|
+
*/
|
|
285
|
+
computeContentHash(content) {
|
|
286
|
+
return crypto.createHash('sha256').update(content).digest('hex');
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
exports.EmbeddingPipeline = EmbeddingPipeline;
|
|
290
|
+
//# sourceMappingURL=embedding-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-pipeline.js","sourceRoot":"","sources":["../../src/embedding/embedding-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
/**
|
|
3
|
+
* Activates the 5D Database Plugin extension.
|
|
4
|
+
*/
|
|
5
|
+
export declare function activate(context: vscode.ExtensionContext): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Deactivates the extension.
|
|
8
|
+
*/
|
|
9
|
+
export declare function deactivate(): void;
|
|
10
|
+
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAuCjC;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8F9E;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
|
package/out/extension.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
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.activate = activate;
|
|
37
|
+
exports.deactivate = deactivate;
|
|
38
|
+
const vscode = __importStar(require("vscode"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const dotenv_1 = require("dotenv");
|
|
42
|
+
const multi_db_manager_1 = require("./core/multi-db-manager");
|
|
43
|
+
const migration_manager_1 = require("./core/migration-manager");
|
|
44
|
+
const ingestion_orchestrator_1 = require("./services/ingestion-orchestrator");
|
|
45
|
+
const commands_1 = require("./ui/commands");
|
|
46
|
+
const database_explorer_1 = require("./ui/database-explorer");
|
|
47
|
+
const status_provider_1 = require("./ui/status-provider");
|
|
48
|
+
const docs_path_resolver_1 = require("./core/docs-path-resolver");
|
|
49
|
+
/**
|
|
50
|
+
* Loads .env file from workspace root or parent directories.
|
|
51
|
+
*/
|
|
52
|
+
function loadEnvFile(workspaceRoot) {
|
|
53
|
+
// Try to find .env file in workspace root or parent directories
|
|
54
|
+
let currentPath = workspaceRoot;
|
|
55
|
+
const maxDepth = 5; // Prevent infinite loops
|
|
56
|
+
for (let depth = 0; depth < maxDepth; depth++) {
|
|
57
|
+
const envPath = path.join(currentPath, '.env');
|
|
58
|
+
if (fs.existsSync(envPath)) {
|
|
59
|
+
(0, dotenv_1.config)({ path: envPath });
|
|
60
|
+
console.log(`[5D Database Plugin] Loaded .env file from: ${envPath}`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// Try parent directory
|
|
64
|
+
const parentPath = path.dirname(currentPath);
|
|
65
|
+
if (parentPath === currentPath) {
|
|
66
|
+
break; // Reached filesystem root
|
|
67
|
+
}
|
|
68
|
+
currentPath = parentPath;
|
|
69
|
+
}
|
|
70
|
+
console.warn('[5D Database Plugin] No .env file found. Using environment variables only.');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Activates the 5D Database Plugin extension.
|
|
74
|
+
*/
|
|
75
|
+
async function activate(context) {
|
|
76
|
+
const outputChannel = vscode.window.createOutputChannel('5D Database Plugin');
|
|
77
|
+
try {
|
|
78
|
+
outputChannel.appendLine('=== 5D Database Plugin Activation Started ===');
|
|
79
|
+
const workspaceFolders = vscode.workspace.workspaceFolders;
|
|
80
|
+
outputChannel.appendLine(`Workspace folders: ${workspaceFolders ? workspaceFolders.length : 0}`);
|
|
81
|
+
// If no workspace folder, try to use extension context storage path as fallback
|
|
82
|
+
let workspaceRoot;
|
|
83
|
+
if (!workspaceFolders || workspaceFolders.length === 0) {
|
|
84
|
+
outputChannel.appendLine('No workspace folder found, trying fallback...');
|
|
85
|
+
// Fallback: Use extension context storage path parent directory
|
|
86
|
+
// This allows extension to work even without a workspace folder
|
|
87
|
+
const storagePath = context.storagePath || context.globalStoragePath;
|
|
88
|
+
if (storagePath) {
|
|
89
|
+
// Try to find workspace root by going up from storage path
|
|
90
|
+
const path = require('path');
|
|
91
|
+
workspaceRoot = path.dirname(path.dirname(storagePath));
|
|
92
|
+
outputChannel.appendLine(`Using fallback workspace root: ${workspaceRoot}`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const errorMsg = '5D Database Plugin: No workspace folder found and no storage path available';
|
|
96
|
+
outputChannel.appendLine(`ERROR: ${errorMsg}`);
|
|
97
|
+
outputChannel.show(true);
|
|
98
|
+
vscode.window.showErrorMessage(errorMsg);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Use first workspace folder for database initialization
|
|
104
|
+
workspaceRoot = workspaceFolders[0].uri.fsPath;
|
|
105
|
+
outputChannel.appendLine(`Using workspace root: ${workspaceRoot}`);
|
|
106
|
+
}
|
|
107
|
+
// Load .env file from workspace root or parent directories
|
|
108
|
+
outputChannel.appendLine('Loading .env file...');
|
|
109
|
+
loadEnvFile(workspaceRoot);
|
|
110
|
+
if (process.env.OPENAI_API_KEY) {
|
|
111
|
+
outputChannel.appendLine('OpenAI API key loaded from .env file');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
outputChannel.appendLine('WARNING: OPENAI_API_KEY not found in .env file or environment variables');
|
|
115
|
+
}
|
|
116
|
+
// Find docs directory across all workspace folders and parent directories
|
|
117
|
+
outputChannel.appendLine('Searching for docs/ directory...');
|
|
118
|
+
const docsPath = docs_path_resolver_1.DocsPathResolver.findDocsDirectory(workspaceFolders);
|
|
119
|
+
if (!docsPath) {
|
|
120
|
+
outputChannel.appendLine('WARNING: docs/ directory not found in workspace folders or parent directories.');
|
|
121
|
+
outputChannel.appendLine('The 5D Database Plugin requires the Documentation System Plugin (Noyrax) to generate docs/ first.');
|
|
122
|
+
outputChannel.appendLine('Please install and run the Documentation System Plugin to generate documentation.');
|
|
123
|
+
outputChannel.appendLine('Ingestion will be skipped until docs/ directory is available.');
|
|
124
|
+
outputChannel.show(true);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
outputChannel.appendLine(`Found docs/ directory: ${docsPath}`);
|
|
128
|
+
}
|
|
129
|
+
outputChannel.appendLine('Initializing database manager...');
|
|
130
|
+
const dbManager = new multi_db_manager_1.MultiDbManager(workspaceRoot);
|
|
131
|
+
outputChannel.appendLine('Initializing migration manager...');
|
|
132
|
+
const migrationManager = new migration_manager_1.MigrationManager(dbManager, context.extensionPath);
|
|
133
|
+
outputChannel.appendLine('Initializing ingestion orchestrator...');
|
|
134
|
+
const ingestionOrchestrator = new ingestion_orchestrator_1.IngestionOrchestrator(dbManager, migrationManager, docsPath || undefined);
|
|
135
|
+
outputChannel.appendLine('Running database migrations...');
|
|
136
|
+
await migrationManager.migrateAll();
|
|
137
|
+
outputChannel.appendLine('Database migrations completed');
|
|
138
|
+
outputChannel.appendLine('Registering UI components...');
|
|
139
|
+
const statusProvider = new status_provider_1.StatusBarProvider(context, dbManager);
|
|
140
|
+
const explorerProvider = new database_explorer_1.DatabaseExplorerProvider(context, dbManager);
|
|
141
|
+
context.subscriptions.push(vscode.window.registerTreeDataProvider('5d-database-explorer', explorerProvider), statusProvider);
|
|
142
|
+
outputChannel.appendLine('Registering commands...');
|
|
143
|
+
(0, commands_1.registerCommands)(context, dbManager, ingestionOrchestrator, explorerProvider, docsPath || undefined);
|
|
144
|
+
outputChannel.appendLine('=== 5D Database Plugin Activation Completed Successfully ===');
|
|
145
|
+
vscode.window.showInformationMessage('5D Database Plugin activated');
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
149
|
+
outputChannel.appendLine(`ERROR during activation: ${errorMsg}`);
|
|
150
|
+
if (error instanceof Error && error.stack) {
|
|
151
|
+
outputChannel.appendLine(`Stack trace: ${error.stack}`);
|
|
152
|
+
}
|
|
153
|
+
outputChannel.show(true);
|
|
154
|
+
vscode.window.showErrorMessage(`5D Database Plugin activation failed: ${errorMsg}`);
|
|
155
|
+
console.error('5D Database Plugin activation error:', error);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Deactivates the extension.
|
|
160
|
+
*/
|
|
161
|
+
function deactivate() {
|
|
162
|
+
// Cleanup if needed
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseIngestor } from './base-ingestor';
|
|
2
|
+
import { Dimension } from '../core/multi-db-manager';
|
|
3
|
+
import { MultiDbManager } from '../core/multi-db-manager';
|
|
4
|
+
/**
|
|
5
|
+
* Ingests ADRs from docs/adr/*.md (W-Dimension)
|
|
6
|
+
*/
|
|
7
|
+
export declare class AdrIngestor implements BaseIngestor {
|
|
8
|
+
private dbManager;
|
|
9
|
+
constructor(dbManager: MultiDbManager);
|
|
10
|
+
getDimension(): Dimension;
|
|
11
|
+
ingestFull(workspaceRoot: string, pluginId: string, docsPath: string): Promise<void>;
|
|
12
|
+
ingestIncremental(workspaceRoot: string, pluginId: string, docsPath: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Ingests a single ADR file.
|
|
15
|
+
*/
|
|
16
|
+
private ingestAdrFile;
|
|
17
|
+
/**
|
|
18
|
+
* Extracts ADR number from file name (e.g., "020-api-doc-tiefe.md" -> "020").
|
|
19
|
+
*/
|
|
20
|
+
private extractAdrNumber;
|
|
21
|
+
/**
|
|
22
|
+
* Extracts title from ADR content (first # heading).
|
|
23
|
+
*/
|
|
24
|
+
private extractTitle;
|
|
25
|
+
/**
|
|
26
|
+
* Extracts file path references from ADR content.
|
|
27
|
+
* Looks for patterns like `src/path/file.ts`, `5d-database-plugin/src/path/file.ts`, or `[file.ts](src/path/file.ts)`.
|
|
28
|
+
* Normalizes paths to match database format by checking which format exists in the database.
|
|
29
|
+
*/
|
|
30
|
+
private extractFileMappings;
|
|
31
|
+
/**
|
|
32
|
+
* Normalizes a file path to match database format.
|
|
33
|
+
* Checks if file exists with/without plugin prefix and returns the correct format.
|
|
34
|
+
*/
|
|
35
|
+
private normalizeFilePath;
|
|
36
|
+
/**
|
|
37
|
+
* Computes SHA256 hash of content.
|
|
38
|
+
*/
|
|
39
|
+
private computeContentHash;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=adr-ingestor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr-ingestor.d.ts","sourceRoot":"","sources":["../../src/ingestors/adr-ingestor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC5C,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAI9B,YAAY,IAAI,SAAS;IAInB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCpF,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsFxG;;OAEG;YACW,aAAa;IAqE3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAG7B"}
|