@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,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IntegrityValidator = 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
|
+
const change_repository_1 = require("../repositories/change-repository");
|
|
9
|
+
/**
|
|
10
|
+
* Validates data integrity within each dimension.
|
|
11
|
+
* Checks for orphaned records, missing foreign keys, etc.
|
|
12
|
+
*/
|
|
13
|
+
class IntegrityValidator {
|
|
14
|
+
constructor(dbManager) {
|
|
15
|
+
this.dbManager = dbManager;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Validates integrity across all dimensions.
|
|
19
|
+
*
|
|
20
|
+
* @param pluginId The plugin ID
|
|
21
|
+
* @returns Validation result
|
|
22
|
+
*/
|
|
23
|
+
async validate(pluginId) {
|
|
24
|
+
const errors = [];
|
|
25
|
+
const warnings = [];
|
|
26
|
+
await this.validateModuleIntegrity(pluginId, errors, warnings);
|
|
27
|
+
await this.validateSymbolIntegrity(pluginId, errors, warnings);
|
|
28
|
+
await this.validateDependencyIntegrity(pluginId, errors, warnings);
|
|
29
|
+
await this.validateAdrIntegrity(pluginId, errors, warnings);
|
|
30
|
+
await this.validateChangeIntegrity(pluginId, errors, warnings);
|
|
31
|
+
return {
|
|
32
|
+
isValid: errors.length === 0,
|
|
33
|
+
errors,
|
|
34
|
+
warnings
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validates module integrity.
|
|
39
|
+
*/
|
|
40
|
+
async validateModuleIntegrity(pluginId, errors, warnings) {
|
|
41
|
+
const moduleDb = await this.dbManager.getDatabase('X');
|
|
42
|
+
const moduleRepo = new module_repository_1.ModuleRepository(moduleDb);
|
|
43
|
+
const modules = await moduleRepo.getAll(pluginId);
|
|
44
|
+
for (const module of modules) {
|
|
45
|
+
if (!module.content_hash) {
|
|
46
|
+
errors.push(`Module ${module.file_path} has no content_hash`);
|
|
47
|
+
}
|
|
48
|
+
if (!module.content_markdown) {
|
|
49
|
+
errors.push(`Module ${module.file_path} has no content_markdown`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Validates symbol integrity.
|
|
55
|
+
*/
|
|
56
|
+
async validateSymbolIntegrity(pluginId, errors, warnings) {
|
|
57
|
+
const symbolDb = await this.dbManager.getDatabase('Y');
|
|
58
|
+
const symbolRepo = new symbol_repository_1.SymbolRepository(symbolDb);
|
|
59
|
+
const symbols = await symbolRepo.getAll(pluginId);
|
|
60
|
+
for (const symbol of symbols) {
|
|
61
|
+
if (!symbol.signature_hash) {
|
|
62
|
+
errors.push(`Symbol ${symbol.symbol_id} has no signature_hash`);
|
|
63
|
+
}
|
|
64
|
+
if (!symbol.signature_json) {
|
|
65
|
+
errors.push(`Symbol ${symbol.symbol_id} has no signature_json`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Validates dependency integrity.
|
|
71
|
+
*/
|
|
72
|
+
async validateDependencyIntegrity(pluginId, errors, warnings) {
|
|
73
|
+
const depDb = await this.dbManager.getDatabase('Z');
|
|
74
|
+
const depRepo = new dependency_repository_1.DependencyRepository(depDb);
|
|
75
|
+
const dependencies = await depRepo.getAll(pluginId);
|
|
76
|
+
for (const dep of dependencies) {
|
|
77
|
+
if (!dep.content_hash) {
|
|
78
|
+
errors.push(`Dependency ${dep.from_module} -> ${dep.to_module} has no content_hash`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Validates ADR integrity.
|
|
84
|
+
*/
|
|
85
|
+
async validateAdrIntegrity(pluginId, errors, warnings) {
|
|
86
|
+
const adrDb = await this.dbManager.getDatabase('W');
|
|
87
|
+
const adrRepo = new adr_repository_1.AdrRepository(adrDb);
|
|
88
|
+
const adrs = await adrRepo.getAll(pluginId);
|
|
89
|
+
for (const adr of adrs) {
|
|
90
|
+
if (!adr.content_hash) {
|
|
91
|
+
errors.push(`ADR ${adr.adr_number} has no content_hash`);
|
|
92
|
+
}
|
|
93
|
+
if (!adr.content_markdown) {
|
|
94
|
+
errors.push(`ADR ${adr.adr_number} has no content_markdown`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Validates change report integrity.
|
|
100
|
+
*/
|
|
101
|
+
async validateChangeIntegrity(pluginId, errors, warnings) {
|
|
102
|
+
const changeDb = await this.dbManager.getDatabase('T');
|
|
103
|
+
const changeRepo = new change_repository_1.ChangeRepository(changeDb);
|
|
104
|
+
const reports = await changeRepo.getAll(pluginId);
|
|
105
|
+
for (const report of reports) {
|
|
106
|
+
const symbolChanges = await changeRepo.getSymbolChanges(report.id);
|
|
107
|
+
const depChanges = await changeRepo.getDependencyChanges(report.id);
|
|
108
|
+
if (symbolChanges.length === 0 && depChanges.length === 0) {
|
|
109
|
+
warnings.push(`Change report ${report.id} has no changes`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.IntegrityValidator = IntegrityValidator;
|
|
115
|
+
//# sourceMappingURL=integrity-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrity-validator.js","sourceRoot":"","sources":["../../src/validators/integrity-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@noyrax/5d-database-plugin",
|
|
3
|
+
"displayName": "5D Database Plugin",
|
|
4
|
+
"description": "5-dimensional database layer for documentation system with semantic brain integration",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"publisher": "noyrax",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/noyrax/5d-database-plugin.git"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"documentation",
|
|
14
|
+
"database",
|
|
15
|
+
"semantic-search",
|
|
16
|
+
"mcp",
|
|
17
|
+
"llm",
|
|
18
|
+
"ai",
|
|
19
|
+
"code-analysis",
|
|
20
|
+
"architecture",
|
|
21
|
+
"5d-database",
|
|
22
|
+
"noyrax"
|
|
23
|
+
],
|
|
24
|
+
"files": [
|
|
25
|
+
"out/",
|
|
26
|
+
"schemas/",
|
|
27
|
+
"README.md",
|
|
28
|
+
"LICENSE",
|
|
29
|
+
"package.json",
|
|
30
|
+
"MCP_SERVER_SETUP.md",
|
|
31
|
+
"SETUP_NEW_PROJECT.md",
|
|
32
|
+
"CHROMADB_SETUP.md",
|
|
33
|
+
"QUICK_START.md",
|
|
34
|
+
"ADR_VORSCHLAEGE.md",
|
|
35
|
+
"SYSTEM_ANALYSIS_REPORT.md",
|
|
36
|
+
"INSTALLATION_READINESS.md",
|
|
37
|
+
"MCP_SERVER_TEST_REPORT.md",
|
|
38
|
+
"KNOWN_ISSUES.md",
|
|
39
|
+
"IMPROVEMENT_ROADMAP.md",
|
|
40
|
+
"NOYRAX_INTEGRATION.md"
|
|
41
|
+
],
|
|
42
|
+
"engines": {
|
|
43
|
+
"vscode": "^1.74.0"
|
|
44
|
+
},
|
|
45
|
+
"categories": [
|
|
46
|
+
"Other"
|
|
47
|
+
],
|
|
48
|
+
"activationEvents": [
|
|
49
|
+
"onStartupFinished"
|
|
50
|
+
],
|
|
51
|
+
"main": "./out/extension.js",
|
|
52
|
+
"bin": {
|
|
53
|
+
"noyrax-5d-database": "./out/cli/ingest-cli.js",
|
|
54
|
+
"noyrax-5d-database-mcp": "./out/cli/mcp-server-cli.js",
|
|
55
|
+
"noyrax-5d-database-query": "./out/cli/query-cli.js",
|
|
56
|
+
"noyrax-5d-database-tool": "./out/cli/tool-cli.js",
|
|
57
|
+
"noyrax-5d-database-search": "./out/cli/semantic-search-cli.js",
|
|
58
|
+
"noyrax-5d-database-embedding": "./out/cli/embedding-cli.js"
|
|
59
|
+
},
|
|
60
|
+
"contributes": {
|
|
61
|
+
"commands": [
|
|
62
|
+
{
|
|
63
|
+
"command": "5d-database.ingest",
|
|
64
|
+
"title": "Ingest Documentation"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"command": "5d-database.search",
|
|
68
|
+
"title": "Semantic Search"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"command": "5d-database.showModuleDetail",
|
|
72
|
+
"title": "Show Module Detail"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"command": "5d-database.showSymbolDetail",
|
|
76
|
+
"title": "Show Symbol Detail"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"command": "5d-database.showAdrDetail",
|
|
80
|
+
"title": "Show ADR Detail"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"command": "5d-database.showDependencyDetail",
|
|
84
|
+
"title": "Show Dependency Detail"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"command": "5d-database.showChangeDetail",
|
|
88
|
+
"title": "Show Change Report Detail"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"command": "5d-database.openSourceFile",
|
|
92
|
+
"title": "Open Source File"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"menus": {
|
|
96
|
+
"view/item/context": [
|
|
97
|
+
{
|
|
98
|
+
"command": "5d-database.openSourceFile",
|
|
99
|
+
"when": "view == 5d-database-explorer && viewItem == module",
|
|
100
|
+
"group": "navigation"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"command": "5d-database.openSourceFile",
|
|
104
|
+
"when": "view == 5d-database-explorer && viewItem == symbol",
|
|
105
|
+
"group": "navigation"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"command": "5d-database.openSourceFile",
|
|
109
|
+
"when": "view == 5d-database-explorer && viewItem == dependency",
|
|
110
|
+
"group": "navigation"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"views": {
|
|
115
|
+
"explorer": [
|
|
116
|
+
{
|
|
117
|
+
"id": "5d-database-explorer",
|
|
118
|
+
"name": "5D Database Explorer"
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"scripts": {
|
|
124
|
+
"compile": "tsc -p ./",
|
|
125
|
+
"postcompile": "npm run scan && npm run validate && npm run verify:adrs",
|
|
126
|
+
"scan": "cd .. && noyrax-scan",
|
|
127
|
+
"validate": "cd .. && noyrax-validate",
|
|
128
|
+
"verify:adrs": "cd .. && noyrax-verify-adrs",
|
|
129
|
+
"verify:architecture": "cd .. && noyrax-verify-architecture",
|
|
130
|
+
"verify:imports": "cd .. && noyrax-verify-imports",
|
|
131
|
+
"verify:all": "npm run compile && npm run verify:architecture && npm run verify:imports",
|
|
132
|
+
"watch": "tsc -watch -p ./",
|
|
133
|
+
"package": "vsce package --allow-missing-repository",
|
|
134
|
+
"prepublishOnly": "npm run compile",
|
|
135
|
+
"publish": "npm publish --access public",
|
|
136
|
+
"test": "jest",
|
|
137
|
+
"test:coverage": "jest --coverage",
|
|
138
|
+
"test:v-dimension": "node out/cli/test-v-dimension.js",
|
|
139
|
+
"test:chromadb": "node out/cli/test-chromadb.js",
|
|
140
|
+
"verify:openai-key": "node out/cli/verify-openai-key.js",
|
|
141
|
+
"verify:vss-status": "node out/cli/verify-vss-status.js"
|
|
142
|
+
},
|
|
143
|
+
"dependencies": {
|
|
144
|
+
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
145
|
+
"chromadb": "^3.2.0",
|
|
146
|
+
"dotenv": "^16.4.5",
|
|
147
|
+
"openai": "^6.15.0",
|
|
148
|
+
"sqlite-vss": "^0.1.2",
|
|
149
|
+
"sqlite3": "^5.1.6",
|
|
150
|
+
"uuid": "^9.0.1",
|
|
151
|
+
"zod": "^4.2.1"
|
|
152
|
+
},
|
|
153
|
+
"devDependencies": {
|
|
154
|
+
"@types/dotenv": "^6.1.1",
|
|
155
|
+
"@types/jest": "^30.0.0",
|
|
156
|
+
"@types/node": "16.x",
|
|
157
|
+
"@types/uuid": "^10.0.0",
|
|
158
|
+
"@types/vscode": "^1.74.0",
|
|
159
|
+
"@vscode/vsce": "^2.22.0",
|
|
160
|
+
"jest": "^29.7.0",
|
|
161
|
+
"ts-jest": "^29.4.6",
|
|
162
|
+
"typescript": "^5.1.6"
|
|
163
|
+
},
|
|
164
|
+
"peerDependencies": {
|
|
165
|
+
"@noyrax/documentation-system-plugin": "*"
|
|
166
|
+
},
|
|
167
|
+
"peerDependenciesMeta": {
|
|
168
|
+
"@noyrax/documentation-system-plugin": {
|
|
169
|
+
"optional": false,
|
|
170
|
+
"description": "Documentation System Plugin (Noyrax) must be installed and docs/ must be generated before using 5D Database Plugin"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
-- X-Dimension: Modules Database Schema
|
|
2
|
+
-- Stores module documentation from docs/modules/*.md
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS modules (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
plugin_id TEXT NOT NULL,
|
|
7
|
+
file_path TEXT NOT NULL,
|
|
8
|
+
content_hash TEXT NOT NULL,
|
|
9
|
+
content_markdown TEXT NOT NULL,
|
|
10
|
+
deleted_at DATETIME,
|
|
11
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
12
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
+
UNIQUE(plugin_id, file_path)
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE TABLE IF NOT EXISTS module_symbols (
|
|
17
|
+
id TEXT PRIMARY KEY,
|
|
18
|
+
module_id TEXT NOT NULL,
|
|
19
|
+
symbol_external_id TEXT NOT NULL,
|
|
20
|
+
symbol_name TEXT NOT NULL,
|
|
21
|
+
symbol_kind TEXT NOT NULL,
|
|
22
|
+
FOREIGN KEY (module_id) REFERENCES modules(id) ON DELETE CASCADE
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
-- ID Mapping for external IDs
|
|
26
|
+
CREATE TABLE IF NOT EXISTS module_id_mapping (
|
|
27
|
+
internal_id TEXT PRIMARY KEY,
|
|
28
|
+
external_id TEXT NOT NULL UNIQUE,
|
|
29
|
+
plugin_id TEXT NOT NULL
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- Indexes
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_modules_plugin_id ON modules(plugin_id);
|
|
34
|
+
CREATE INDEX IF NOT EXISTS idx_modules_file_path ON modules(file_path);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_modules_content_hash ON modules(content_hash);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_module_symbols_module_id ON module_symbols(module_id);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_module_id_mapping_external_id ON module_id_mapping(external_id);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_module_id_mapping_plugin_id ON module_id_mapping(plugin_id);
|
|
39
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
-- Y-Dimension: Symbols Database Schema
|
|
2
|
+
-- Stores symbols from docs/index/symbols.jsonl
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS symbols (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
plugin_id TEXT NOT NULL,
|
|
7
|
+
symbol_id TEXT NOT NULL,
|
|
8
|
+
path TEXT NOT NULL,
|
|
9
|
+
kind TEXT NOT NULL,
|
|
10
|
+
name TEXT NOT NULL,
|
|
11
|
+
signature_json TEXT NOT NULL,
|
|
12
|
+
signature_hash TEXT NOT NULL,
|
|
13
|
+
summary TEXT,
|
|
14
|
+
deleted_at DATETIME,
|
|
15
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
16
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
17
|
+
UNIQUE(plugin_id, symbol_id)
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE TABLE IF NOT EXISTS symbol_dependencies (
|
|
21
|
+
id TEXT PRIMARY KEY,
|
|
22
|
+
symbol_id TEXT NOT NULL,
|
|
23
|
+
dependency_module TEXT NOT NULL,
|
|
24
|
+
dependency_symbols_json TEXT,
|
|
25
|
+
is_type_only BOOLEAN DEFAULT FALSE,
|
|
26
|
+
is_reexport BOOLEAN DEFAULT FALSE,
|
|
27
|
+
FOREIGN KEY (symbol_id) REFERENCES symbols(id) ON DELETE CASCADE
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
-- ID Mapping for external IDs
|
|
31
|
+
CREATE TABLE IF NOT EXISTS symbol_id_mapping (
|
|
32
|
+
internal_id TEXT PRIMARY KEY,
|
|
33
|
+
external_id TEXT NOT NULL UNIQUE,
|
|
34
|
+
plugin_id TEXT NOT NULL
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
-- Indexes
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_symbols_plugin_id ON symbols(plugin_id);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS idx_symbols_symbol_id ON symbols(symbol_id);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS idx_symbols_path ON symbols(path);
|
|
41
|
+
CREATE INDEX IF NOT EXISTS idx_symbols_signature_hash ON symbols(signature_hash);
|
|
42
|
+
CREATE INDEX IF NOT EXISTS idx_symbol_dependencies_symbol_id ON symbol_dependencies(symbol_id);
|
|
43
|
+
CREATE INDEX IF NOT EXISTS idx_symbol_dependencies_module ON symbol_dependencies(dependency_module);
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_symbol_id_mapping_external_id ON symbol_id_mapping(external_id);
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_symbol_id_mapping_plugin_id ON symbol_id_mapping(plugin_id);
|
|
46
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
-- Z-Dimension: Dependencies Database Schema
|
|
2
|
+
-- Stores module dependencies from docs/system/DEPENDENCY_GRAPH.md
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS dependencies (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
plugin_id TEXT NOT NULL,
|
|
7
|
+
from_module TEXT NOT NULL,
|
|
8
|
+
to_module TEXT NOT NULL,
|
|
9
|
+
dependency_type TEXT NOT NULL CHECK (dependency_type IN ('import', 'export', 'require')),
|
|
10
|
+
symbols_json TEXT,
|
|
11
|
+
content_hash TEXT NOT NULL,
|
|
12
|
+
is_type_only BOOLEAN DEFAULT FALSE,
|
|
13
|
+
is_reexport BOOLEAN DEFAULT FALSE,
|
|
14
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
16
|
+
UNIQUE(plugin_id, from_module, to_module, dependency_type)
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE TABLE IF NOT EXISTS dependency_graph_cache (
|
|
20
|
+
id TEXT PRIMARY KEY,
|
|
21
|
+
plugin_id TEXT NOT NULL,
|
|
22
|
+
mermaid_graph TEXT NOT NULL,
|
|
23
|
+
generated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
24
|
+
UNIQUE(plugin_id)
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- Traceability: Links Z-Dimension dependencies to Y-Dimension symbol dependencies
|
|
28
|
+
CREATE TABLE IF NOT EXISTS dependency_symbol_evidence (
|
|
29
|
+
id TEXT PRIMARY KEY,
|
|
30
|
+
dependency_id TEXT NOT NULL,
|
|
31
|
+
symbol_dependency_id TEXT NOT NULL,
|
|
32
|
+
FOREIGN KEY (dependency_id) REFERENCES dependencies(id) ON DELETE CASCADE
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
-- ID Mapping for external IDs
|
|
36
|
+
CREATE TABLE IF NOT EXISTS dependency_id_mapping (
|
|
37
|
+
internal_id TEXT PRIMARY KEY,
|
|
38
|
+
external_id TEXT NOT NULL UNIQUE,
|
|
39
|
+
plugin_id TEXT NOT NULL
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
-- Indexes
|
|
43
|
+
CREATE INDEX IF NOT EXISTS idx_dependencies_plugin_id ON dependencies(plugin_id);
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_dependencies_from_module ON dependencies(from_module);
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_dependencies_to_module ON dependencies(to_module);
|
|
46
|
+
CREATE INDEX IF NOT EXISTS idx_dependencies_content_hash ON dependencies(content_hash);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_symbol_evidence_dependency_id ON dependency_symbol_evidence(dependency_id);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_symbol_evidence_symbol_dep_id ON dependency_symbol_evidence(symbol_dependency_id);
|
|
49
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_id_mapping_external_id ON dependency_id_mapping(external_id);
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_id_mapping_plugin_id ON dependency_id_mapping(plugin_id);
|
|
51
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
-- W-Dimension: ADRs Database Schema
|
|
2
|
+
-- Stores Architecture Decision Records from docs/adr/*.md
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS adrs (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
plugin_id TEXT NOT NULL,
|
|
7
|
+
adr_number TEXT NOT NULL,
|
|
8
|
+
title TEXT NOT NULL,
|
|
9
|
+
file_name TEXT NOT NULL,
|
|
10
|
+
content_markdown TEXT NOT NULL,
|
|
11
|
+
content_hash TEXT NOT NULL,
|
|
12
|
+
deleted_at DATETIME,
|
|
13
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
14
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
UNIQUE(plugin_id, adr_number)
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE TABLE IF NOT EXISTS adr_file_mappings (
|
|
19
|
+
id TEXT PRIMARY KEY,
|
|
20
|
+
adr_id TEXT NOT NULL,
|
|
21
|
+
file_path TEXT NOT NULL,
|
|
22
|
+
FOREIGN KEY (adr_id) REFERENCES adrs(id) ON DELETE CASCADE,
|
|
23
|
+
UNIQUE(adr_id, file_path)
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
-- ID Mapping for external IDs
|
|
27
|
+
CREATE TABLE IF NOT EXISTS adr_id_mapping (
|
|
28
|
+
internal_id TEXT PRIMARY KEY,
|
|
29
|
+
external_id TEXT NOT NULL UNIQUE,
|
|
30
|
+
plugin_id TEXT NOT NULL
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
-- Indexes
|
|
34
|
+
CREATE INDEX IF NOT EXISTS idx_adrs_plugin_id ON adrs(plugin_id);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_adrs_adr_number ON adrs(adr_number);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_adrs_content_hash ON adrs(content_hash);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_adr_file_mappings_adr_id ON adr_file_mappings(adr_id);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_adr_file_mappings_file_path ON adr_file_mappings(file_path);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS idx_adr_id_mapping_external_id ON adr_id_mapping(external_id);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS idx_adr_id_mapping_plugin_id ON adr_id_mapping(plugin_id);
|
|
41
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
-- T-Dimension: Changes Database Schema
|
|
2
|
+
-- Stores change reports from docs/system/CHANGE_REPORT.md
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS change_reports (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
plugin_id TEXT NOT NULL,
|
|
7
|
+
run_type TEXT NOT NULL CHECK (run_type IN ('full', 'incremental')),
|
|
8
|
+
parsed_files INTEGER NOT NULL,
|
|
9
|
+
skipped_files INTEGER NOT NULL,
|
|
10
|
+
total_dependencies INTEGER NOT NULL,
|
|
11
|
+
validation_errors INTEGER NOT NULL,
|
|
12
|
+
validation_warnings INTEGER NOT NULL,
|
|
13
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
14
|
+
UNIQUE(plugin_id, created_at)
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE TABLE IF NOT EXISTS symbol_changes (
|
|
18
|
+
id TEXT PRIMARY KEY,
|
|
19
|
+
report_id TEXT NOT NULL,
|
|
20
|
+
change_type TEXT NOT NULL CHECK (change_type IN ('added', 'removed', 'changed')),
|
|
21
|
+
file_path TEXT NOT NULL,
|
|
22
|
+
symbol_name TEXT NOT NULL,
|
|
23
|
+
symbol_kind TEXT NOT NULL,
|
|
24
|
+
old_signature TEXT,
|
|
25
|
+
new_signature TEXT,
|
|
26
|
+
FOREIGN KEY (report_id) REFERENCES change_reports(id) ON DELETE CASCADE
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE TABLE IF NOT EXISTS dependency_changes (
|
|
30
|
+
id TEXT PRIMARY KEY,
|
|
31
|
+
report_id TEXT NOT NULL,
|
|
32
|
+
change_type TEXT NOT NULL CHECK (change_type IN ('added', 'removed')),
|
|
33
|
+
from_module TEXT NOT NULL,
|
|
34
|
+
to_module TEXT NOT NULL,
|
|
35
|
+
dependency_type TEXT NOT NULL,
|
|
36
|
+
FOREIGN KEY (report_id) REFERENCES change_reports(id) ON DELETE CASCADE
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
-- ID Mapping for external IDs
|
|
40
|
+
CREATE TABLE IF NOT EXISTS change_id_mapping (
|
|
41
|
+
internal_id TEXT PRIMARY KEY,
|
|
42
|
+
external_id TEXT NOT NULL UNIQUE,
|
|
43
|
+
plugin_id TEXT NOT NULL
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
-- Indexes
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_change_reports_plugin_id ON change_reports(plugin_id);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_change_reports_created_at ON change_reports(created_at);
|
|
49
|
+
CREATE INDEX IF NOT EXISTS idx_symbol_changes_report_id ON symbol_changes(report_id);
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_symbol_changes_file_path ON symbol_changes(file_path);
|
|
51
|
+
CREATE INDEX IF NOT EXISTS idx_dependency_changes_report_id ON dependency_changes(report_id);
|
|
52
|
+
CREATE INDEX IF NOT EXISTS idx_change_id_mapping_external_id ON change_id_mapping(external_id);
|
|
53
|
+
CREATE INDEX IF NOT EXISTS idx_change_id_mapping_plugin_id ON change_id_mapping(plugin_id);
|
|
54
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- Ingestion Management Schema
|
|
2
|
+
-- This schema is used across all dimensions for tracking ingestion runs
|
|
3
|
+
|
|
4
|
+
-- Note: This table should be created in a separate ingestion.db or in one of the dimension databases
|
|
5
|
+
-- For simplicity, we'll create it in each dimension database, but only use it from one
|
|
6
|
+
-- Alternatively, it could be in a separate ingestion.db file
|
|
7
|
+
|
|
8
|
+
CREATE TABLE IF NOT EXISTS ingestion_runs (
|
|
9
|
+
id TEXT PRIMARY KEY,
|
|
10
|
+
plugin_id TEXT NOT NULL,
|
|
11
|
+
run_type TEXT NOT NULL CHECK (run_type IN ('full', 'incremental')),
|
|
12
|
+
started_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
+
completed_at DATETIME,
|
|
14
|
+
status TEXT NOT NULL CHECK (status IN ('running', 'completed', 'failed')),
|
|
15
|
+
dimensions_processed TEXT NOT NULL,
|
|
16
|
+
error_message TEXT
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE TABLE IF NOT EXISTS entity_renames (
|
|
20
|
+
id TEXT PRIMARY KEY,
|
|
21
|
+
dimension TEXT NOT NULL CHECK (dimension IN ('X', 'Y', 'Z', 'W')),
|
|
22
|
+
old_external_id TEXT NOT NULL,
|
|
23
|
+
new_external_id TEXT NOT NULL,
|
|
24
|
+
plugin_id TEXT NOT NULL,
|
|
25
|
+
detected_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
-- Indexes
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_ingestion_runs_plugin_id ON ingestion_runs(plugin_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_ingestion_runs_status ON ingestion_runs(status);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_ingestion_runs_started_at ON ingestion_runs(started_at);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_entity_renames_dimension ON entity_renames(dimension);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_entity_renames_plugin_id ON entity_renames(plugin_id);
|
|
34
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
-- V-Dimension: Vectors Database Schema
|
|
2
|
+
-- Stores embeddings, importance scores, and navigation metadata
|
|
3
|
+
|
|
4
|
+
-- Embeddings pro Entity (aus 5D-DBs)
|
|
5
|
+
CREATE TABLE IF NOT EXISTS embeddings (
|
|
6
|
+
id TEXT PRIMARY KEY,
|
|
7
|
+
plugin_id TEXT NOT NULL,
|
|
8
|
+
dimension TEXT NOT NULL CHECK (dimension IN ('X', 'Y', 'Z', 'W', 'T')),
|
|
9
|
+
entity_id TEXT NOT NULL, -- Internal ID aus entsprechender Dimension
|
|
10
|
+
external_id TEXT NOT NULL, -- External ID (file_path, symbol_id, etc.)
|
|
11
|
+
content_hash TEXT NOT NULL, -- Hash des Original-Contents
|
|
12
|
+
embedding_model TEXT NOT NULL, -- z.B. 'text-embedding-3-small'
|
|
13
|
+
embedding_vector BLOB NOT NULL, -- VSS vector (1536 floats as binary)
|
|
14
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
16
|
+
UNIQUE(plugin_id, dimension, entity_id, embedding_model)
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- Importance Scores pro Entity
|
|
20
|
+
CREATE TABLE IF NOT EXISTS importance_scores (
|
|
21
|
+
id TEXT PRIMARY KEY,
|
|
22
|
+
plugin_id TEXT NOT NULL,
|
|
23
|
+
dimension TEXT NOT NULL CHECK (dimension IN ('X', 'Y', 'Z', 'W', 'T')),
|
|
24
|
+
entity_id TEXT NOT NULL,
|
|
25
|
+
pagerank_score REAL NOT NULL,
|
|
26
|
+
betweenness_score REAL NOT NULL,
|
|
27
|
+
combined_score REAL NOT NULL, -- Gewichtete Kombination
|
|
28
|
+
rank INTEGER NOT NULL, -- Ranking (1 = wichtigste)
|
|
29
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
30
|
+
UNIQUE(plugin_id, dimension, entity_id)
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
-- Navigation Metadata
|
|
34
|
+
CREATE TABLE IF NOT EXISTS navigation_metadata (
|
|
35
|
+
id TEXT PRIMARY KEY,
|
|
36
|
+
plugin_id TEXT NOT NULL,
|
|
37
|
+
dimension TEXT NOT NULL CHECK (dimension IN ('X', 'Y', 'Z', 'W', 'T')),
|
|
38
|
+
entity_id TEXT NOT NULL,
|
|
39
|
+
is_entry_point BOOLEAN DEFAULT FALSE,
|
|
40
|
+
cluster_id TEXT, -- Gruppierung verwandter Entities
|
|
41
|
+
related_adrs TEXT, -- JSON Array von ADR-Nummern
|
|
42
|
+
importance_rank INTEGER,
|
|
43
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
44
|
+
UNIQUE(plugin_id, dimension, entity_id)
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
-- Entry Points (manuelle Overrides)
|
|
48
|
+
CREATE TABLE IF NOT EXISTS entry_points (
|
|
49
|
+
id TEXT PRIMARY KEY,
|
|
50
|
+
plugin_id TEXT NOT NULL,
|
|
51
|
+
dimension TEXT NOT NULL CHECK (dimension IN ('X', 'Y', 'Z', 'W', 'T')),
|
|
52
|
+
entity_id TEXT NOT NULL,
|
|
53
|
+
priority INTEGER NOT NULL DEFAULT 0, -- Höher = wichtiger
|
|
54
|
+
reason TEXT, -- Warum ist dies ein Entry Point?
|
|
55
|
+
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
56
|
+
UNIQUE(plugin_id, dimension, entity_id)
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
-- VSS Index (wird von SQLite VSS verwaltet)
|
|
60
|
+
-- Note: VSS virtual table creation is done programmatically after VSS extension is loaded
|
|
61
|
+
-- CREATE VIRTUAL TABLE embeddings_vss USING vss0(embedding_vector(1536));
|
|
62
|
+
|
|
63
|
+
-- Indexes for performance
|
|
64
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_plugin_dimension ON embeddings(plugin_id, dimension);
|
|
65
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_entity_id ON embeddings(entity_id);
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_content_hash ON embeddings(content_hash);
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_importance_scores_plugin_dimension ON importance_scores(plugin_id, dimension);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_importance_scores_rank ON importance_scores(rank);
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_navigation_metadata_plugin_dimension ON navigation_metadata(plugin_id, dimension);
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_navigation_metadata_entry_point ON navigation_metadata(is_entry_point);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_entry_points_plugin_dimension ON entry_points(plugin_id, dimension);
|
|
72
|
+
|
|
73
|
+
|