@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,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SemanticSearchApi = void 0;
|
|
4
|
+
const embedding_repository_1 = require("../repositories/embedding-repository");
|
|
5
|
+
const importance_repository_1 = require("../repositories/importance-repository");
|
|
6
|
+
/**
|
|
7
|
+
* API for semantic search over all dimensions using vector similarity.
|
|
8
|
+
*/
|
|
9
|
+
class SemanticSearchApi {
|
|
10
|
+
constructor(dbManager, embeddingGenerator) {
|
|
11
|
+
this.vectorWeight = 0.7;
|
|
12
|
+
this.importanceWeight = 0.3;
|
|
13
|
+
this.dbManager = dbManager;
|
|
14
|
+
this.embeddingGenerator = embeddingGenerator;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Performs semantic search across all or specified dimensions.
|
|
18
|
+
*
|
|
19
|
+
* @param query Natural language query
|
|
20
|
+
* @param pluginId Plugin ID
|
|
21
|
+
* @param options Search options
|
|
22
|
+
* @returns Promise that resolves to search results sorted by relevance
|
|
23
|
+
*/
|
|
24
|
+
async search(query, pluginId, options = {}) {
|
|
25
|
+
if (!this.embeddingGenerator.isConfigured()) {
|
|
26
|
+
throw new Error('Embedding generator not configured. Cannot perform semantic search.');
|
|
27
|
+
}
|
|
28
|
+
const dimensions = options.dimensions || ['X', 'Y', 'Z', 'W', 'T'];
|
|
29
|
+
const limit = options.limit || 10;
|
|
30
|
+
const minScore = options.minScore || 0.0;
|
|
31
|
+
console.log(`[SemanticSearchApi] Searching for "${query}" in dimensions ${dimensions.join(', ')}`);
|
|
32
|
+
// 1. Generate query embedding
|
|
33
|
+
const queryEmbedding = await this.embeddingGenerator.generateEmbedding('X', // Dimension doesn't matter for query
|
|
34
|
+
'query', query);
|
|
35
|
+
// 2. Search in each dimension
|
|
36
|
+
const allResults = [];
|
|
37
|
+
for (const dimension of dimensions) {
|
|
38
|
+
const dimensionResults = await this.searchDimension(dimension, queryEmbedding, pluginId, minScore);
|
|
39
|
+
allResults.push(...dimensionResults);
|
|
40
|
+
}
|
|
41
|
+
// 3. Sort by combined score (descending)
|
|
42
|
+
allResults.sort((a, b) => b.score - a.score);
|
|
43
|
+
// 4. Apply limit
|
|
44
|
+
return allResults.slice(0, limit);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Searches in a specific dimension using vector similarity.
|
|
48
|
+
* Uses VSS if available, otherwise falls back to cosine similarity.
|
|
49
|
+
*/
|
|
50
|
+
async searchDimension(dimension, queryEmbedding, pluginId, minScore) {
|
|
51
|
+
const db = await this.dbManager.getDatabase('V');
|
|
52
|
+
const embeddingRepo = new embedding_repository_1.EmbeddingRepository(db);
|
|
53
|
+
const importanceRepo = new importance_repository_1.ImportanceRepository(db);
|
|
54
|
+
const vectorDb = this.dbManager.getVectorDatabase();
|
|
55
|
+
const model = this.embeddingGenerator.getModel();
|
|
56
|
+
// Try vector database search first if available
|
|
57
|
+
if (vectorDb && vectorDb.isAvailable()) {
|
|
58
|
+
try {
|
|
59
|
+
return await this.searchWithVectorDatabase(dimension, queryEmbedding, pluginId, minScore, vectorDb, embeddingRepo, importanceRepo);
|
|
60
|
+
}
|
|
61
|
+
catch (vectorDbError) {
|
|
62
|
+
console.warn(`[SemanticSearchApi] Vector database search failed, falling back to cosine similarity: ${vectorDbError}`);
|
|
63
|
+
// Fall through to cosine similarity
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Fallback: Manual cosine similarity
|
|
67
|
+
return await this.searchWithCosineSimilarity(dimension, queryEmbedding, pluginId, minScore, embeddingRepo, importanceRepo, model);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Searches using vector database (VSS or external DB).
|
|
71
|
+
*/
|
|
72
|
+
async searchWithVectorDatabase(dimension, queryEmbedding, pluginId, minScore, vectorDb, embeddingRepo, importanceRepo) {
|
|
73
|
+
// Perform vector database search
|
|
74
|
+
const queryEmbeddingFloat32 = new Float32Array(queryEmbedding);
|
|
75
|
+
const vectorResults = await vectorDb.search(queryEmbeddingFloat32, 100, dimension, pluginId);
|
|
76
|
+
if (vectorResults.length === 0) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
// Get importance scores
|
|
80
|
+
const importanceScores = await importanceRepo.getAllByDimension(dimension, pluginId);
|
|
81
|
+
const importanceMap = new Map();
|
|
82
|
+
for (const score of importanceScores) {
|
|
83
|
+
importanceMap.set(score.entity_id, score.combined_score);
|
|
84
|
+
}
|
|
85
|
+
// Get embeddings for the rowids
|
|
86
|
+
const db = await this.dbManager.getDatabase('V');
|
|
87
|
+
const results = [];
|
|
88
|
+
for (const vectorResult of vectorResults) {
|
|
89
|
+
// Get embedding ID from rowid
|
|
90
|
+
const embeddingId = await vectorDb.getEmbeddingIdFromRowid(vectorResult.rowid);
|
|
91
|
+
if (!embeddingId) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// Get embedding by ID
|
|
95
|
+
const embedding = await embeddingRepo.getById(embeddingId, pluginId);
|
|
96
|
+
if (!embedding) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
// Use vector database similarity score
|
|
100
|
+
const vectorScore = vectorResult.similarity || (1 - vectorResult.distance);
|
|
101
|
+
// Get importance score (default to 0 if not found)
|
|
102
|
+
const importanceScore = importanceMap.get(embedding.entity_id) || 0;
|
|
103
|
+
// Combine scores
|
|
104
|
+
const combinedScore = this.vectorWeight * vectorScore + this.importanceWeight * importanceScore;
|
|
105
|
+
if (combinedScore >= minScore) {
|
|
106
|
+
results.push({
|
|
107
|
+
dimension,
|
|
108
|
+
entityId: embedding.entity_id,
|
|
109
|
+
externalId: embedding.external_id,
|
|
110
|
+
score: combinedScore,
|
|
111
|
+
vectorScore,
|
|
112
|
+
importanceScore,
|
|
113
|
+
entityRef: {
|
|
114
|
+
dimension,
|
|
115
|
+
entity_id: embedding.entity_id,
|
|
116
|
+
external_id: embedding.external_id
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return results;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets embedding by rowid.
|
|
125
|
+
*/
|
|
126
|
+
async getEmbeddingByRowid(db, rowid, pluginId) {
|
|
127
|
+
return new Promise((resolve, reject) => {
|
|
128
|
+
db.get(`SELECT * FROM embeddings WHERE rowid = ? AND plugin_id = ?`, [rowid, pluginId], (err, row) => {
|
|
129
|
+
if (err) {
|
|
130
|
+
reject(err);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
resolve(row || null);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Searches using manual cosine similarity (fallback).
|
|
140
|
+
*/
|
|
141
|
+
async searchWithCosineSimilarity(dimension, queryEmbedding, pluginId, minScore, embeddingRepo, importanceRepo, model) {
|
|
142
|
+
// Get all embeddings for this dimension
|
|
143
|
+
const embeddings = await embeddingRepo.getAllByDimension(dimension, pluginId, model);
|
|
144
|
+
if (embeddings.length === 0) {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
// Get importance scores
|
|
148
|
+
const importanceScores = await importanceRepo.getAllByDimension(dimension, pluginId);
|
|
149
|
+
const importanceMap = new Map();
|
|
150
|
+
for (const score of importanceScores) {
|
|
151
|
+
importanceMap.set(score.entity_id, score.combined_score);
|
|
152
|
+
}
|
|
153
|
+
// Calculate vector similarity for each embedding
|
|
154
|
+
const results = [];
|
|
155
|
+
for (const embedding of embeddings) {
|
|
156
|
+
// Convert Buffer to Float32Array
|
|
157
|
+
const embeddingVector = new Float32Array(embedding.embedding_vector.buffer, embedding.embedding_vector.byteOffset, embedding.embedding_vector.length / 4);
|
|
158
|
+
// Calculate cosine similarity
|
|
159
|
+
const vectorScore = this.cosineSimilarity(queryEmbedding, Array.from(embeddingVector));
|
|
160
|
+
// Get importance score (default to 0 if not found)
|
|
161
|
+
const importanceScore = importanceMap.get(embedding.entity_id) || 0;
|
|
162
|
+
// Combine scores
|
|
163
|
+
const combinedScore = this.vectorWeight * vectorScore + this.importanceWeight * importanceScore;
|
|
164
|
+
if (combinedScore >= minScore) {
|
|
165
|
+
results.push({
|
|
166
|
+
dimension,
|
|
167
|
+
entityId: embedding.entity_id,
|
|
168
|
+
externalId: embedding.external_id,
|
|
169
|
+
score: combinedScore,
|
|
170
|
+
vectorScore,
|
|
171
|
+
importanceScore,
|
|
172
|
+
entityRef: {
|
|
173
|
+
dimension,
|
|
174
|
+
entity_id: embedding.entity_id,
|
|
175
|
+
external_id: embedding.external_id
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return results;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Calculates cosine similarity between two vectors.
|
|
184
|
+
*/
|
|
185
|
+
cosineSimilarity(vecA, vecB) {
|
|
186
|
+
if (vecA.length !== vecB.length) {
|
|
187
|
+
throw new Error(`Vector length mismatch: ${vecA.length} vs ${vecB.length}`);
|
|
188
|
+
}
|
|
189
|
+
let dotProduct = 0;
|
|
190
|
+
let normA = 0;
|
|
191
|
+
let normB = 0;
|
|
192
|
+
for (let i = 0; i < vecA.length; i++) {
|
|
193
|
+
dotProduct += vecA[i] * vecB[i];
|
|
194
|
+
normA += vecA[i] * vecA[i];
|
|
195
|
+
normB += vecB[i] * vecB[i];
|
|
196
|
+
}
|
|
197
|
+
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
198
|
+
if (denominator === 0) {
|
|
199
|
+
return 0;
|
|
200
|
+
}
|
|
201
|
+
return dotProduct / denominator;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.SemanticSearchApi = SemanticSearchApi;
|
|
205
|
+
//# sourceMappingURL=semantic-search-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search-api.js","sourceRoot":"","sources":["../../src/api/semantic-search-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MultiDbManager } from '../core/multi-db-manager';
|
|
2
|
+
import { Symbol } from '../models/symbol';
|
|
3
|
+
/**
|
|
4
|
+
* API for Y-Dimension: Symbols
|
|
5
|
+
*/
|
|
6
|
+
export declare class SymbolApi {
|
|
7
|
+
private dbManager;
|
|
8
|
+
constructor(dbManager: MultiDbManager);
|
|
9
|
+
/**
|
|
10
|
+
* Gets a symbol by external symbol ID.
|
|
11
|
+
*/
|
|
12
|
+
getSymbolById(symbolId: string, pluginId: string): Promise<Symbol | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Gets all symbols for a plugin.
|
|
15
|
+
*/
|
|
16
|
+
getAllSymbols(pluginId: string): Promise<Symbol[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Gets symbols by file path.
|
|
19
|
+
*/
|
|
20
|
+
getSymbolsByPath(path: string, pluginId: string): Promise<Symbol[]>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=symbol-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-api.d.ts","sourceRoot":"","sources":["../../src/api/symbol-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAIrC;;OAEG;IACU,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMtF;;OAEG;IACU,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM/D;;OAEG;IACU,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAKnF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SymbolApi = void 0;
|
|
4
|
+
const symbol_repository_1 = require("../repositories/symbol-repository");
|
|
5
|
+
/**
|
|
6
|
+
* API for Y-Dimension: Symbols
|
|
7
|
+
*/
|
|
8
|
+
class SymbolApi {
|
|
9
|
+
constructor(dbManager) {
|
|
10
|
+
this.dbManager = dbManager;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Gets a symbol by external symbol ID.
|
|
14
|
+
*/
|
|
15
|
+
async getSymbolById(symbolId, pluginId) {
|
|
16
|
+
const db = await this.dbManager.getDatabase('Y');
|
|
17
|
+
const repository = new symbol_repository_1.SymbolRepository(db);
|
|
18
|
+
return repository.getBySymbolId(symbolId, pluginId);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Gets all symbols for a plugin.
|
|
22
|
+
*/
|
|
23
|
+
async getAllSymbols(pluginId) {
|
|
24
|
+
const db = await this.dbManager.getDatabase('Y');
|
|
25
|
+
const repository = new symbol_repository_1.SymbolRepository(db);
|
|
26
|
+
return repository.getAll(pluginId);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Gets symbols by file path.
|
|
30
|
+
*/
|
|
31
|
+
async getSymbolsByPath(path, pluginId) {
|
|
32
|
+
const db = await this.dbManager.getDatabase('Y');
|
|
33
|
+
const repository = new symbol_repository_1.SymbolRepository(db);
|
|
34
|
+
return repository.findByPath(path, pluginId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.SymbolApi = SymbolApi;
|
|
38
|
+
//# sourceMappingURL=symbol-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-api.js","sourceRoot":"","sources":["../../src/api/symbol-api.ts"],"names":[],"mappings":";;;AACA,yEAAqE;AAGrE;;GAEG;AACH,MAAa,SAAS;IAGlB,YAAY,SAAyB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,QAAgB;QACzD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,QAAgB;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,QAAgB;QACxD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;CACJ;AAjCD,8BAiCC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MultiDbManager } from '../core/multi-db-manager';
|
|
2
|
+
/**
|
|
3
|
+
* API for V-Dimension: Vectors
|
|
4
|
+
* Provides access to embeddings, importance scores, and navigation metadata.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VectorApi {
|
|
7
|
+
private dbManager;
|
|
8
|
+
constructor(dbManager: MultiDbManager);
|
|
9
|
+
/**
|
|
10
|
+
* Gets embedding for an entity.
|
|
11
|
+
*/
|
|
12
|
+
getEmbedding(dimension: 'X' | 'Y' | 'Z' | 'W' | 'T', entityId: string, pluginId: string, model: string): Promise<import("../repositories/embedding-repository").Embedding | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Gets importance score for an entity.
|
|
15
|
+
*/
|
|
16
|
+
getImportanceScore(dimension: 'X' | 'Y' | 'Z' | 'W' | 'T', entityId: string, pluginId: string): Promise<import("../repositories/importance-repository").ImportanceScore | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Gets navigation metadata for an entity.
|
|
19
|
+
*/
|
|
20
|
+
getNavigationMetadata(dimension: 'X' | 'Y' | 'Z' | 'W' | 'T', entityId: string, pluginId: string): Promise<import("../repositories/navigation-repository").NavigationMetadata | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Gets all entry points for a dimension.
|
|
23
|
+
*/
|
|
24
|
+
getEntryPoints(dimension: 'X' | 'Y' | 'Z' | 'W' | 'T', pluginId: string): Promise<import("../repositories/navigation-repository").NavigationMetadata[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=vector-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-api.d.ts","sourceRoot":"","sources":["../../src/api/vector-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D;;;GAGG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAiB;gBAEtB,SAAS,EAAE,cAAc;IAIrC;;OAEG;IACG,YAAY,CACd,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;IAOjB;;OAEG;IACG,kBAAkB,CACpB,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;IAOpB;;OAEG;IACG,qBAAqB,CACvB,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;IAOpB;;OAEG;IACG,cAAc,CAChB,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM;CAMvB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VectorApi = void 0;
|
|
4
|
+
const embedding_repository_1 = require("../repositories/embedding-repository");
|
|
5
|
+
const importance_repository_1 = require("../repositories/importance-repository");
|
|
6
|
+
const navigation_repository_1 = require("../repositories/navigation-repository");
|
|
7
|
+
/**
|
|
8
|
+
* API for V-Dimension: Vectors
|
|
9
|
+
* Provides access to embeddings, importance scores, and navigation metadata.
|
|
10
|
+
*/
|
|
11
|
+
class VectorApi {
|
|
12
|
+
constructor(dbManager) {
|
|
13
|
+
this.dbManager = dbManager;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Gets embedding for an entity.
|
|
17
|
+
*/
|
|
18
|
+
async getEmbedding(dimension, entityId, pluginId, model) {
|
|
19
|
+
const db = await this.dbManager.getDatabase('V');
|
|
20
|
+
const embeddingRepo = new embedding_repository_1.EmbeddingRepository(db);
|
|
21
|
+
return embeddingRepo.getByEntity(dimension, entityId, pluginId, model);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Gets importance score for an entity.
|
|
25
|
+
*/
|
|
26
|
+
async getImportanceScore(dimension, entityId, pluginId) {
|
|
27
|
+
const db = await this.dbManager.getDatabase('V');
|
|
28
|
+
const importanceRepo = new importance_repository_1.ImportanceRepository(db);
|
|
29
|
+
return importanceRepo.getByEntity(dimension, entityId, pluginId);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gets navigation metadata for an entity.
|
|
33
|
+
*/
|
|
34
|
+
async getNavigationMetadata(dimension, entityId, pluginId) {
|
|
35
|
+
const db = await this.dbManager.getDatabase('V');
|
|
36
|
+
const navRepo = new navigation_repository_1.NavigationRepository(db);
|
|
37
|
+
return navRepo.getByEntity(dimension, entityId, pluginId);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Gets all entry points for a dimension.
|
|
41
|
+
*/
|
|
42
|
+
async getEntryPoints(dimension, pluginId) {
|
|
43
|
+
const db = await this.dbManager.getDatabase('V');
|
|
44
|
+
const navRepo = new navigation_repository_1.NavigationRepository(db);
|
|
45
|
+
return navRepo.getEntryPoints(dimension, pluginId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.VectorApi = VectorApi;
|
|
49
|
+
//# sourceMappingURL=vector-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-api.js","sourceRoot":"","sources":["../../src/api/vector-api.ts"],"names":[],"mappings":";;;AACA,+EAA2E;AAC3E,iFAA6E;AAC7E,iFAA6E;AAE7E;;;GAGG;AACH,MAAa,SAAS;IAGlB,YAAY,SAAyB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACd,SAAsC,EACtC,QAAgB,EAChB,QAAgB,EAChB,KAAa;QAEb,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,0CAAmB,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACpB,SAAsC,EACtC,QAAgB,EAChB,QAAgB;QAEhB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,4CAAoB,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CACvB,SAAsC,EACtC,QAAgB,EAChB,QAAgB;QAEhB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,4CAAoB,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAChB,SAAsC,EACtC,QAAgB;QAEhB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,4CAAoB,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;CACJ;AA1DD,8BA0DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-cli.d.ts","sourceRoot":"","sources":["../../src/cli/embedding-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const dotenv_1 = require("dotenv");
|
|
40
|
+
const multi_db_manager_1 = require("../core/multi-db-manager");
|
|
41
|
+
const embedding_pipeline_1 = require("../embedding/embedding-pipeline");
|
|
42
|
+
const embedding_generator_1 = require("../embedding/embedding-generator");
|
|
43
|
+
const docs_path_resolver_1 = require("../core/docs-path-resolver");
|
|
44
|
+
/**
|
|
45
|
+
* Loads .env file from workspace root or parent directories.
|
|
46
|
+
*/
|
|
47
|
+
function loadEnvFile(workspaceRoot) {
|
|
48
|
+
let currentPath = workspaceRoot;
|
|
49
|
+
const maxDepth = 5;
|
|
50
|
+
for (let depth = 0; depth < maxDepth; depth++) {
|
|
51
|
+
const envPath = path.join(currentPath, '.env');
|
|
52
|
+
if (fs.existsSync(envPath)) {
|
|
53
|
+
(0, dotenv_1.config)({ path: envPath });
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const parentPath = path.dirname(currentPath);
|
|
57
|
+
if (parentPath === currentPath) {
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
currentPath = parentPath;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Validates that docs/ directory exists.
|
|
65
|
+
*/
|
|
66
|
+
function validateDocsDirectory(workspaceRoot) {
|
|
67
|
+
const docsPath = docs_path_resolver_1.DocsPathResolver.findDocsDirectoryFromPath(workspaceRoot);
|
|
68
|
+
if (!docsPath) {
|
|
69
|
+
console.error('ERROR: docs/ directory not found in workspace or parent directories.');
|
|
70
|
+
console.error('Please run Documentation System Plugin (Noyrax) first to generate docs/ directory.');
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* CLI tool for syncing embeddings (V-Dimension).
|
|
77
|
+
* Usage: embedding-cli <workspace-root>
|
|
78
|
+
*/
|
|
79
|
+
async function main() {
|
|
80
|
+
const args = process.argv.slice(2);
|
|
81
|
+
if (args.length < 1) {
|
|
82
|
+
console.error('Usage: embedding-cli <workspace-root>');
|
|
83
|
+
console.error('');
|
|
84
|
+
console.error('This tool syncs embeddings for all 5 dimensions (X, Y, Z, W, T).');
|
|
85
|
+
console.error('It requires:');
|
|
86
|
+
console.error(' - OPENAI_API_KEY in .env file or environment');
|
|
87
|
+
console.error(' - ChromaDB Server running (on Windows) or SQLite VSS (on macOS/Linux)');
|
|
88
|
+
console.error(' - Existing 5D database with ingested data');
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
const workspaceRoot = path.resolve(args[0]);
|
|
92
|
+
// Validate workspace root exists
|
|
93
|
+
if (!fs.existsSync(workspaceRoot)) {
|
|
94
|
+
console.error(`ERROR: Workspace root does not exist: ${workspaceRoot}`);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
// Load .env file (required for OpenAI API key)
|
|
98
|
+
loadEnvFile(workspaceRoot);
|
|
99
|
+
// Check for OpenAI API key
|
|
100
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
101
|
+
console.error('ERROR: OPENAI_API_KEY not found in environment or .env file');
|
|
102
|
+
console.error('Embedding generation requires OpenAI API key.');
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
// Validate docs/ directory (for context)
|
|
106
|
+
validateDocsDirectory(workspaceRoot);
|
|
107
|
+
try {
|
|
108
|
+
console.log(`[Embedding CLI] Starting embedding sync for workspace: ${workspaceRoot}`);
|
|
109
|
+
const dbManager = new multi_db_manager_1.MultiDbManager(workspaceRoot);
|
|
110
|
+
const pluginId = dbManager.getPluginId();
|
|
111
|
+
// Check vector database availability
|
|
112
|
+
const vectorDb = dbManager.getVectorDatabase();
|
|
113
|
+
if (vectorDb) {
|
|
114
|
+
if (vectorDb.isAvailable()) {
|
|
115
|
+
console.log(`[Embedding CLI] Vector database available: ${vectorDb.constructor.name}`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.warn('[Embedding CLI] Vector database initialized but not available.');
|
|
119
|
+
console.warn('[Embedding CLI] Will store embeddings in SQLite only (fallback to cosine similarity).');
|
|
120
|
+
console.warn('[Embedding CLI] On Windows: Make sure ChromaDB server is running: chroma run --host localhost --port 8000');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
console.warn('[Embedding CLI] Vector database not initialized. Embeddings will be stored in SQLite only.');
|
|
125
|
+
}
|
|
126
|
+
const embeddingGenerator = new embedding_generator_1.EmbeddingGenerator();
|
|
127
|
+
const embeddingPipeline = new embedding_pipeline_1.EmbeddingPipeline(dbManager, embeddingGenerator);
|
|
128
|
+
// Sync embeddings for all dimensions
|
|
129
|
+
await embeddingPipeline.syncEmbeddings(pluginId);
|
|
130
|
+
console.log('[Embedding CLI] Embedding sync completed successfully!');
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
134
|
+
console.error(`Error: ${errorMsg}`);
|
|
135
|
+
if (error instanceof Error && error.stack) {
|
|
136
|
+
console.error(`Stack trace: ${error.stack}`);
|
|
137
|
+
}
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (require.main === module) {
|
|
142
|
+
main().catch(error => {
|
|
143
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
144
|
+
console.error(`Fatal error: ${errorMsg}`);
|
|
145
|
+
if (error instanceof Error && error.stack) {
|
|
146
|
+
console.error(`Stack trace: ${error.stack}`);
|
|
147
|
+
}
|
|
148
|
+
process.exit(1);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=embedding-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-cli.js","sourceRoot":"","sources":["../../src/cli/embedding-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-cli.d.ts","sourceRoot":"","sources":["../../src/cli/ingest-cli.ts"],"names":[],"mappings":""}
|