codevault 1.8.3 → 1.8.5
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/README.md +33 -5
- package/dist/chunking/file-grouper.d.ts +1 -1
- package/dist/chunking/file-grouper.d.ts.map +1 -1
- package/dist/chunking/file-grouper.js +3 -3
- package/dist/chunking/file-grouper.js.map +1 -1
- package/dist/chunking/semantic-chunker.d.ts +1 -1
- package/dist/chunking/semantic-chunker.d.ts.map +1 -1
- package/dist/chunking/token-counter.d.ts +1 -1
- package/dist/chunking/token-counter.d.ts.map +1 -1
- package/dist/chunking/token-counter.js +16 -10
- package/dist/chunking/token-counter.js.map +1 -1
- package/dist/cli/commands/ask-cmd.js +15 -15
- package/dist/cli/commands/ask-cmd.js.map +1 -1
- package/dist/cli/commands/chat-cmd.d.ts.map +1 -1
- package/dist/cli/commands/chat-cmd.js +40 -40
- package/dist/cli/commands/chat-cmd.js.map +1 -1
- package/dist/cli/commands/config-cmd.d.ts.map +1 -1
- package/dist/cli/commands/config-cmd.js +61 -52
- package/dist/cli/commands/config-cmd.js.map +1 -1
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +20 -11
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/index-cmd.d.ts.map +1 -1
- package/dist/cli/commands/index-cmd.js +109 -85
- package/dist/cli/commands/index-cmd.js.map +1 -1
- package/dist/cli/commands/info-cmd.d.ts.map +1 -1
- package/dist/cli/commands/info-cmd.js +12 -11
- package/dist/cli/commands/info-cmd.js.map +1 -1
- package/dist/cli/commands/interactive-config.d.ts.map +1 -1
- package/dist/cli/commands/interactive-config.js +60 -20
- package/dist/cli/commands/interactive-config.js.map +1 -1
- package/dist/cli/commands/search-cmd.d.ts.map +1 -1
- package/dist/cli/commands/search-cmd.js +22 -11
- package/dist/cli/commands/search-cmd.js.map +1 -1
- package/dist/cli/commands/search-with-code-cmd.d.ts.map +1 -1
- package/dist/cli/commands/search-with-code-cmd.js +25 -16
- package/dist/cli/commands/search-with-code-cmd.js.map +1 -1
- package/dist/cli/commands/update-cmd.d.ts.map +1 -1
- package/dist/cli/commands/update-cmd.js +16 -7
- package/dist/cli/commands/update-cmd.js.map +1 -1
- package/dist/cli/commands/watch-cmd.d.ts.map +1 -1
- package/dist/cli/commands/watch-cmd.js +21 -11
- package/dist/cli/commands/watch-cmd.js.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils.d.ts +56 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +98 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/cli.js +0 -0
- package/dist/codemap/io.js.map +1 -1
- package/dist/config/constants.d.ts +4 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +2 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/context/packs.d.ts +2 -2
- package/dist/context/packs.d.ts.map +1 -1
- package/dist/context/packs.js +7 -4
- package/dist/context/packs.js.map +1 -1
- package/dist/core/IndexerEngine.d.ts +2 -0
- package/dist/core/IndexerEngine.d.ts.map +1 -1
- package/dist/core/IndexerEngine.js +34 -26
- package/dist/core/IndexerEngine.js.map +1 -1
- package/dist/core/SearchService.d.ts +2 -1
- package/dist/core/SearchService.d.ts.map +1 -1
- package/dist/core/SearchService.js +25 -18
- package/dist/core/SearchService.js.map +1 -1
- package/dist/core/batch-indexer.d.ts +4 -3
- package/dist/core/batch-indexer.d.ts.map +1 -1
- package/dist/core/batch-indexer.js +32 -35
- package/dist/core/batch-indexer.js.map +1 -1
- package/dist/core/indexing/FileProcessor.d.ts +1 -0
- package/dist/core/indexing/FileProcessor.d.ts.map +1 -1
- package/dist/core/indexing/FileProcessor.js +32 -9
- package/dist/core/indexing/FileProcessor.js.map +1 -1
- package/dist/core/indexing/IndexContext.d.ts +6 -4
- package/dist/core/indexing/IndexContext.d.ts.map +1 -1
- package/dist/core/indexing/IndexContext.js +3 -3
- package/dist/core/indexing/IndexContext.js.map +1 -1
- package/dist/core/indexing/IndexFinalizationStage.d.ts +6 -1
- package/dist/core/indexing/IndexFinalizationStage.d.ts.map +1 -1
- package/dist/core/indexing/IndexFinalizationStage.js +22 -3
- package/dist/core/indexing/IndexFinalizationStage.js.map +1 -1
- package/dist/core/indexing/IndexState.d.ts +3 -8
- package/dist/core/indexing/IndexState.d.ts.map +1 -1
- package/dist/core/indexing/IndexState.js.map +1 -1
- package/dist/core/indexing/PersistManager.d.ts +1 -1
- package/dist/core/indexing/PersistManager.d.ts.map +1 -1
- package/dist/core/indexing/PersistManager.js +17 -17
- package/dist/core/indexing/PersistManager.js.map +1 -1
- package/dist/core/indexing/chunk-pipeline.d.ts +33 -7
- package/dist/core/indexing/chunk-pipeline.d.ts.map +1 -1
- package/dist/core/indexing/chunk-pipeline.js +20 -8
- package/dist/core/indexing/chunk-pipeline.js.map +1 -1
- package/dist/core/metadata.d.ts +1 -1
- package/dist/core/metadata.d.ts.map +1 -1
- package/dist/core/metadata.js +1 -1
- package/dist/core/metadata.js.map +1 -1
- package/dist/core/search/CandidateRetriever.d.ts +1 -1
- package/dist/core/search/CandidateRetriever.d.ts.map +1 -1
- package/dist/core/search/CandidateRetriever.js +7 -5
- package/dist/core/search/CandidateRetriever.js.map +1 -1
- package/dist/core/search/HybridFusion.d.ts +1 -2
- package/dist/core/search/HybridFusion.d.ts.map +1 -1
- package/dist/core/search/HybridFusion.js +5 -17
- package/dist/core/search/HybridFusion.js.map +1 -1
- package/dist/core/search/ResultMapper.d.ts +0 -1
- package/dist/core/search/ResultMapper.d.ts.map +1 -1
- package/dist/core/search/ResultMapper.js +3 -14
- package/dist/core/search/ResultMapper.js.map +1 -1
- package/dist/core/search/SearchContextManager.d.ts +4 -1
- package/dist/core/search/SearchContextManager.d.ts.map +1 -1
- package/dist/core/search/SearchContextManager.js +19 -6
- package/dist/core/search/SearchContextManager.js.map +1 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +9 -4
- package/dist/core/search.js.map +1 -1
- package/dist/core/types.d.ts +2 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/database/db.d.ts +14 -14
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +14 -14
- package/dist/database/db.js.map +1 -1
- package/dist/indexer/merkle.js +1 -1
- package/dist/indexer/merkle.js.map +1 -1
- package/dist/languages/rules.d.ts +2 -1
- package/dist/languages/rules.d.ts.map +1 -1
- package/dist/languages/rules.js +14 -5
- package/dist/languages/rules.js.map +1 -1
- package/dist/languages/tree-sitter-loader.d.ts +24 -24
- package/dist/languages/tree-sitter-loader.d.ts.map +1 -1
- package/dist/languages/tree-sitter-loader.js +14 -10
- package/dist/languages/tree-sitter-loader.js.map +1 -1
- package/dist/mcp/handlers/context.d.ts +5 -11
- package/dist/mcp/handlers/context.d.ts.map +1 -1
- package/dist/mcp/handlers/context.js.map +1 -1
- package/dist/mcp/handlers/project.d.ts +9 -27
- package/dist/mcp/handlers/project.d.ts.map +1 -1
- package/dist/mcp/handlers/search.d.ts +24 -18
- package/dist/mcp/handlers/search.d.ts.map +1 -1
- package/dist/mcp/handlers/search.js +8 -2
- package/dist/mcp/handlers/search.js.map +1 -1
- package/dist/mcp/handlers/synthesis.d.ts +15 -11
- package/dist/mcp/handlers/synthesis.d.ts.map +1 -1
- package/dist/mcp/handlers/synthesis.js +4 -1
- package/dist/mcp/handlers/synthesis.js.map +1 -1
- package/dist/mcp/schemas.d.ts +2 -2
- package/dist/mcp/tools/ask-codebase.d.ts +10 -28
- package/dist/mcp/tools/ask-codebase.d.ts.map +1 -1
- package/dist/mcp/tools/ask-codebase.js +1 -1
- package/dist/mcp/tools/ask-codebase.js.map +1 -1
- package/dist/mcp/tools/use-context-pack.d.ts +14 -23
- package/dist/mcp/tools/use-context-pack.d.ts.map +1 -1
- package/dist/mcp/tools/use-context-pack.js +4 -3
- package/dist/mcp/tools/use-context-pack.js.map +1 -1
- package/dist/mcp-server.d.ts +1 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +39 -24
- package/dist/mcp-server.js.map +1 -1
- package/dist/providers/base.d.ts +3 -2
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +3 -10
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/chat-llm.d.ts +3 -2
- package/dist/providers/chat-llm.d.ts.map +1 -1
- package/dist/providers/chat-llm.js +13 -9
- package/dist/providers/chat-llm.js.map +1 -1
- package/dist/providers/mock.d.ts.map +1 -1
- package/dist/providers/mock.js +6 -5
- package/dist/providers/mock.js.map +1 -1
- package/dist/providers/openai.d.ts +2 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +15 -19
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/token-counter.d.ts.map +1 -1
- package/dist/providers/token-counter.js +11 -3
- package/dist/providers/token-counter.js.map +1 -1
- package/dist/ranking/api-reranker.d.ts +1 -1
- package/dist/ranking/api-reranker.d.ts.map +1 -1
- package/dist/ranking/api-reranker.js +50 -13
- package/dist/ranking/api-reranker.js.map +1 -1
- package/dist/ranking/symbol-boost.d.ts.map +1 -1
- package/dist/ranking/symbol-boost.js +4 -11
- package/dist/ranking/symbol-boost.js.map +1 -1
- package/dist/search/bm25.d.ts +10 -0
- package/dist/search/bm25.d.ts.map +1 -1
- package/dist/search/bm25.js +16 -0
- package/dist/search/bm25.js.map +1 -1
- package/dist/search/hybrid.js.map +1 -1
- package/dist/search/scope.d.ts.map +1 -1
- package/dist/search/scope.js +3 -2
- package/dist/search/scope.js.map +1 -1
- package/dist/storage/encrypted-chunks.d.ts +3 -0
- package/dist/storage/encrypted-chunks.d.ts.map +1 -1
- package/dist/storage/encrypted-chunks.js +126 -47
- package/dist/storage/encrypted-chunks.js.map +1 -1
- package/dist/symbols/extract.d.ts.map +1 -1
- package/dist/symbols/extract.js +3 -2
- package/dist/symbols/extract.js.map +1 -1
- package/dist/symbols/graph.d.ts.map +1 -1
- package/dist/symbols/graph.js +14 -8
- package/dist/symbols/graph.js.map +1 -1
- package/dist/synthesis/conversational-synthesizer.d.ts +2 -1
- package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -1
- package/dist/synthesis/conversational-synthesizer.js +6 -1
- package/dist/synthesis/conversational-synthesizer.js.map +1 -1
- package/dist/synthesis/markdown-formatter.d.ts.map +1 -1
- package/dist/synthesis/markdown-formatter.js +1 -1
- package/dist/synthesis/markdown-formatter.js.map +1 -1
- package/dist/synthesis/prompt-builder.d.ts.map +1 -1
- package/dist/synthesis/prompt-builder.js +42 -15
- package/dist/synthesis/prompt-builder.js.map +1 -1
- package/dist/synthesis/synthesizer.d.ts.map +1 -1
- package/dist/synthesis/synthesizer.js +23 -10
- package/dist/synthesis/synthesizer.js.map +1 -1
- package/dist/tests/api-reranker.test.d.ts +2 -0
- package/dist/tests/api-reranker.test.d.ts.map +1 -0
- package/dist/tests/api-reranker.test.js +575 -0
- package/dist/tests/api-reranker.test.js.map +1 -0
- package/dist/tests/bm25.test.d.ts +2 -0
- package/dist/tests/bm25.test.d.ts.map +1 -0
- package/dist/tests/bm25.test.js +340 -0
- package/dist/tests/bm25.test.js.map +1 -0
- package/dist/tests/chunking/file-grouper.test.d.ts +2 -0
- package/dist/tests/chunking/file-grouper.test.d.ts.map +1 -0
- package/dist/tests/chunking/file-grouper.test.js +495 -0
- package/dist/tests/chunking/file-grouper.test.js.map +1 -0
- package/dist/tests/chunking/semantic-chunker.test.d.ts +2 -0
- package/dist/tests/chunking/semantic-chunker.test.d.ts.map +1 -0
- package/dist/tests/chunking/semantic-chunker.test.js +509 -0
- package/dist/tests/chunking/semantic-chunker.test.js.map +1 -0
- package/dist/tests/chunking/token-counter.test.d.ts +2 -0
- package/dist/tests/chunking/token-counter.test.d.ts.map +1 -0
- package/dist/tests/chunking/token-counter.test.js +441 -0
- package/dist/tests/chunking/token-counter.test.js.map +1 -0
- package/dist/tests/cli/ask-cmd.test.d.ts +2 -0
- package/dist/tests/cli/ask-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/ask-cmd.test.js +152 -0
- package/dist/tests/cli/ask-cmd.test.js.map +1 -0
- package/dist/tests/cli/chat-cmd.test.d.ts +2 -0
- package/dist/tests/cli/chat-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/chat-cmd.test.js +118 -0
- package/dist/tests/cli/chat-cmd.test.js.map +1 -0
- package/dist/tests/cli/config-cmd.test.d.ts +2 -0
- package/dist/tests/cli/config-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/config-cmd.test.js +226 -0
- package/dist/tests/cli/config-cmd.test.js.map +1 -0
- package/dist/tests/cli/context.test.d.ts +2 -0
- package/dist/tests/cli/context.test.d.ts.map +1 -0
- package/dist/tests/cli/context.test.js +158 -0
- package/dist/tests/cli/context.test.js.map +1 -0
- package/dist/tests/cli/index-cmd.test.d.ts +2 -0
- package/dist/tests/cli/index-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/index-cmd.test.js +89 -0
- package/dist/tests/cli/index-cmd.test.js.map +1 -0
- package/dist/tests/cli/index.test.d.ts +2 -0
- package/dist/tests/cli/index.test.d.ts.map +1 -0
- package/dist/tests/cli/index.test.js +167 -0
- package/dist/tests/cli/index.test.js.map +1 -0
- package/dist/tests/cli/info-cmd.test.d.ts +2 -0
- package/dist/tests/cli/info-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/info-cmd.test.js +47 -0
- package/dist/tests/cli/info-cmd.test.js.map +1 -0
- package/dist/tests/cli/interactive-config.test.d.ts +2 -0
- package/dist/tests/cli/interactive-config.test.d.ts.map +1 -0
- package/dist/tests/cli/interactive-config.test.js +30 -0
- package/dist/tests/cli/interactive-config.test.js.map +1 -0
- package/dist/tests/cli/mcp-cmd.test.d.ts +2 -0
- package/dist/tests/cli/mcp-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/mcp-cmd.test.js +47 -0
- package/dist/tests/cli/mcp-cmd.test.js.map +1 -0
- package/dist/tests/cli/search-cmd.test.d.ts +2 -0
- package/dist/tests/cli/search-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/search-cmd.test.js +120 -0
- package/dist/tests/cli/search-cmd.test.js.map +1 -0
- package/dist/tests/cli/search-with-code-cmd.test.d.ts +2 -0
- package/dist/tests/cli/search-with-code-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/search-with-code-cmd.test.js +140 -0
- package/dist/tests/cli/search-with-code-cmd.test.js.map +1 -0
- package/dist/tests/cli/update-cmd.test.d.ts +2 -0
- package/dist/tests/cli/update-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/update-cmd.test.js +75 -0
- package/dist/tests/cli/update-cmd.test.js.map +1 -0
- package/dist/tests/cli/utils.test.d.ts +2 -0
- package/dist/tests/cli/utils.test.d.ts.map +1 -0
- package/dist/tests/cli/utils.test.js +119 -0
- package/dist/tests/cli/utils.test.js.map +1 -0
- package/dist/tests/cli/watch-cmd.test.d.ts +2 -0
- package/dist/tests/cli/watch-cmd.test.d.ts.map +1 -0
- package/dist/tests/cli/watch-cmd.test.js +84 -0
- package/dist/tests/cli/watch-cmd.test.js.map +1 -0
- package/dist/tests/cli-ui.test.d.ts +2 -0
- package/dist/tests/cli-ui.test.d.ts.map +1 -0
- package/dist/tests/cli-ui.test.js +608 -0
- package/dist/tests/cli-ui.test.js.map +1 -0
- package/dist/tests/codemap-io.test.d.ts +2 -0
- package/dist/tests/codemap-io.test.d.ts.map +1 -0
- package/dist/tests/codemap-io.test.js +992 -0
- package/dist/tests/codemap-io.test.js.map +1 -0
- package/dist/tests/config/apply-env.test.d.ts +2 -0
- package/dist/tests/config/apply-env.test.d.ts.map +1 -0
- package/dist/tests/config/apply-env.test.js +717 -0
- package/dist/tests/config/apply-env.test.js.map +1 -0
- package/dist/tests/config/constants.test.d.ts +2 -0
- package/dist/tests/config/constants.test.d.ts.map +1 -0
- package/dist/tests/config/constants.test.js +406 -0
- package/dist/tests/config/constants.test.js.map +1 -0
- package/dist/tests/config/loader.test.d.ts +2 -0
- package/dist/tests/config/loader.test.d.ts.map +1 -0
- package/dist/tests/config/loader.test.js +716 -0
- package/dist/tests/config/loader.test.js.map +1 -0
- package/dist/tests/config/resolver.test.d.ts +2 -0
- package/dist/tests/config/resolver.test.d.ts.map +1 -0
- package/dist/tests/config/resolver.test.js +402 -0
- package/dist/tests/config/resolver.test.js.map +1 -0
- package/dist/tests/config/types.test.d.ts +2 -0
- package/dist/tests/config/types.test.d.ts.map +1 -0
- package/dist/tests/config/types.test.js +460 -0
- package/dist/tests/config/types.test.js.map +1 -0
- package/dist/tests/context-packs.test.d.ts +2 -0
- package/dist/tests/context-packs.test.d.ts.map +1 -0
- package/dist/tests/context-packs.test.js +826 -0
- package/dist/tests/context-packs.test.js.map +1 -0
- package/dist/tests/conversational-synthesizer.test.d.ts +2 -0
- package/dist/tests/conversational-synthesizer.test.d.ts.map +1 -0
- package/dist/tests/conversational-synthesizer.test.js +595 -0
- package/dist/tests/conversational-synthesizer.test.js.map +1 -0
- package/dist/tests/database.test.d.ts +2 -0
- package/dist/tests/database.test.d.ts.map +1 -0
- package/dist/tests/database.test.js +965 -0
- package/dist/tests/database.test.js.map +1 -0
- package/dist/tests/encrypted-chunks.test.d.ts +2 -0
- package/dist/tests/encrypted-chunks.test.d.ts.map +1 -0
- package/dist/tests/encrypted-chunks.test.js +1470 -0
- package/dist/tests/encrypted-chunks.test.js.map +1 -0
- package/dist/tests/hybrid.test.d.ts +2 -0
- package/dist/tests/hybrid.test.d.ts.map +1 -0
- package/dist/tests/hybrid.test.js +456 -0
- package/dist/tests/hybrid.test.js.map +1 -0
- package/dist/tests/indexer/ChangeQueue.test.d.ts +12 -0
- package/dist/tests/indexer/ChangeQueue.test.d.ts.map +1 -0
- package/dist/tests/indexer/ChangeQueue.test.js +441 -0
- package/dist/tests/indexer/ChangeQueue.test.js.map +1 -0
- package/dist/tests/indexer/ProviderManager.test.d.ts +12 -0
- package/dist/tests/indexer/ProviderManager.test.d.ts.map +1 -0
- package/dist/tests/indexer/ProviderManager.test.js +290 -0
- package/dist/tests/indexer/ProviderManager.test.js.map +1 -0
- package/dist/tests/indexer/WatchService.test.d.ts +14 -0
- package/dist/tests/indexer/WatchService.test.d.ts.map +1 -0
- package/dist/tests/indexer/WatchService.test.js +667 -0
- package/dist/tests/indexer/WatchService.test.js.map +1 -0
- package/dist/tests/indexer/merkle.test.d.ts +11 -0
- package/dist/tests/indexer/merkle.test.d.ts.map +1 -0
- package/dist/tests/indexer/merkle.test.js +497 -0
- package/dist/tests/indexer/merkle.test.js.map +1 -0
- package/dist/tests/indexer/update.test.d.ts +10 -0
- package/dist/tests/indexer/update.test.d.ts.map +1 -0
- package/dist/tests/indexer/update.test.js +317 -0
- package/dist/tests/indexer/update.test.js.map +1 -0
- package/dist/tests/indexer/watch.test.d.ts +8 -0
- package/dist/tests/indexer/watch.test.d.ts.map +1 -0
- package/dist/tests/indexer/watch.test.js +95 -0
- package/dist/tests/indexer/watch.test.js.map +1 -0
- package/dist/tests/integration/index-search.integration.test.js +6 -4
- package/dist/tests/integration/index-search.integration.test.js.map +1 -1
- package/dist/tests/languages.test.d.ts +2 -0
- package/dist/tests/languages.test.d.ts.map +1 -0
- package/dist/tests/languages.test.js +575 -0
- package/dist/tests/languages.test.js.map +1 -0
- package/dist/tests/logger-redaction.test.d.ts +2 -0
- package/dist/tests/logger-redaction.test.d.ts.map +1 -0
- package/dist/tests/logger-redaction.test.js +48 -0
- package/dist/tests/logger-redaction.test.js.map +1 -0
- package/dist/tests/logger.test.d.ts +2 -0
- package/dist/tests/logger.test.d.ts.map +1 -0
- package/dist/tests/logger.test.js +468 -0
- package/dist/tests/logger.test.js.map +1 -0
- package/dist/tests/markdown-formatter.test.d.ts +2 -0
- package/dist/tests/markdown-formatter.test.d.ts.map +1 -0
- package/dist/tests/markdown-formatter.test.js +453 -0
- package/dist/tests/markdown-formatter.test.js.map +1 -0
- package/dist/tests/mcp/tools/use-context-pack.test.d.ts +7 -0
- package/dist/tests/mcp/tools/use-context-pack.test.d.ts.map +1 -0
- package/dist/tests/mcp/tools/use-context-pack.test.js +505 -0
- package/dist/tests/mcp/tools/use-context-pack.test.js.map +1 -0
- package/dist/tests/mutex.test.d.ts +2 -0
- package/dist/tests/mutex.test.d.ts.map +1 -0
- package/dist/tests/mutex.test.js +489 -0
- package/dist/tests/mutex.test.js.map +1 -0
- package/dist/tests/path-helpers.test.d.ts +2 -0
- package/dist/tests/path-helpers.test.d.ts.map +1 -0
- package/dist/tests/path-helpers.test.js +332 -0
- package/dist/tests/path-helpers.test.js.map +1 -0
- package/dist/tests/prompt-builder.test.d.ts +2 -0
- package/dist/tests/prompt-builder.test.d.ts.map +1 -0
- package/dist/tests/prompt-builder.test.js +417 -0
- package/dist/tests/prompt-builder.test.js.map +1 -0
- package/dist/tests/providers/base.test.d.ts +2 -0
- package/dist/tests/providers/base.test.d.ts.map +1 -0
- package/dist/tests/providers/base.test.js +299 -0
- package/dist/tests/providers/base.test.js.map +1 -0
- package/dist/tests/providers/chat-llm.test.d.ts +2 -0
- package/dist/tests/providers/chat-llm.test.d.ts.map +1 -0
- package/dist/tests/providers/chat-llm.test.js +435 -0
- package/dist/tests/providers/chat-llm.test.js.map +1 -0
- package/dist/tests/providers/index.test.d.ts +2 -0
- package/dist/tests/providers/index.test.d.ts.map +1 -0
- package/dist/tests/providers/index.test.js +204 -0
- package/dist/tests/providers/index.test.js.map +1 -0
- package/dist/tests/providers/mock.test.d.ts +2 -0
- package/dist/tests/providers/mock.test.d.ts.map +1 -0
- package/dist/tests/providers/mock.test.js +225 -0
- package/dist/tests/providers/mock.test.js.map +1 -0
- package/dist/tests/providers/openai.test.d.ts +2 -0
- package/dist/tests/providers/openai.test.d.ts.map +1 -0
- package/dist/tests/providers/openai.test.js +408 -0
- package/dist/tests/providers/openai.test.js.map +1 -0
- package/dist/tests/providers/token-counter.test.d.ts +2 -0
- package/dist/tests/providers/token-counter.test.d.ts.map +1 -0
- package/dist/tests/providers/token-counter.test.js +247 -0
- package/dist/tests/providers/token-counter.test.js.map +1 -0
- package/dist/tests/rate-limiter.test.js +392 -1
- package/dist/tests/rate-limiter.test.js.map +1 -1
- package/dist/tests/scope.test.d.ts +2 -0
- package/dist/tests/scope.test.d.ts.map +1 -0
- package/dist/tests/scope.test.js +529 -0
- package/dist/tests/scope.test.js.map +1 -0
- package/dist/tests/search-normalization.test.js.map +1 -1
- package/dist/tests/semantic-chunker.test.js.map +1 -1
- package/dist/tests/simple-lru.test.js +377 -0
- package/dist/tests/simple-lru.test.js.map +1 -1
- package/dist/tests/symbol-boost.test.js +730 -10
- package/dist/tests/symbol-boost.test.js.map +1 -1
- package/dist/tests/symbols-extract.test.d.ts +2 -0
- package/dist/tests/symbols-extract.test.d.ts.map +1 -0
- package/dist/tests/symbols-extract.test.js +536 -0
- package/dist/tests/symbols-extract.test.js.map +1 -0
- package/dist/tests/symbols-graph.test.d.ts +2 -0
- package/dist/tests/symbols-graph.test.d.ts.map +1 -0
- package/dist/tests/symbols-graph.test.js +656 -0
- package/dist/tests/symbols-graph.test.js.map +1 -0
- package/dist/tests/synthesizer.test.d.ts +2 -0
- package/dist/tests/synthesizer.test.d.ts.map +1 -0
- package/dist/tests/synthesizer.test.js +381 -0
- package/dist/tests/synthesizer.test.js.map +1 -0
- package/dist/types/codemap.d.ts +2 -2
- package/dist/types/codemap.d.ts.map +1 -1
- package/dist/types/codemap.js +17 -9
- package/dist/types/codemap.js.map +1 -1
- package/dist/types/context-pack.d.ts +5 -5
- package/dist/types/context-pack.d.ts.map +1 -1
- package/dist/types/context-pack.js +6 -3
- package/dist/types/context-pack.js.map +1 -1
- package/dist/utils/cli-ui.d.ts +1 -1
- package/dist/utils/cli-ui.d.ts.map +1 -1
- package/dist/utils/cli-ui.js +26 -26
- package/dist/utils/cli-ui.js.map +1 -1
- package/dist/utils/indexer-with-progress.d.ts.map +1 -1
- package/dist/utils/indexer-with-progress.js +0 -6
- package/dist/utils/indexer-with-progress.js.map +1 -1
- package/dist/utils/logger.d.ts +10 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +158 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/mutex.d.ts +7 -2
- package/dist/utils/mutex.d.ts.map +1 -1
- package/dist/utils/mutex.js +35 -7
- package/dist/utils/mutex.js.map +1 -1
- package/dist/utils/path-helpers.d.ts.map +1 -1
- package/dist/utils/path-helpers.js +5 -2
- package/dist/utils/path-helpers.js.map +1 -1
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +23 -4
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/simple-lru.d.ts +6 -0
- package/dist/utils/simple-lru.d.ts.map +1 -1
- package/dist/utils/simple-lru.js +26 -0
- package/dist/utils/simple-lru.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { createEmbeddingProvider, EmbeddingProvider, OpenAIProvider, MockEmbeddingProvider } from '../../providers/index.js';
|
|
4
|
+
// ============= Re-exports tests =============
|
|
5
|
+
test('index.ts re-exports EmbeddingProvider base class', () => {
|
|
6
|
+
assert.ok(EmbeddingProvider, 'EmbeddingProvider should be exported');
|
|
7
|
+
assert.equal(typeof EmbeddingProvider, 'function');
|
|
8
|
+
});
|
|
9
|
+
test('index.ts re-exports OpenAIProvider', () => {
|
|
10
|
+
assert.ok(OpenAIProvider, 'OpenAIProvider should be exported');
|
|
11
|
+
assert.equal(typeof OpenAIProvider, 'function');
|
|
12
|
+
});
|
|
13
|
+
test('index.ts re-exports MockEmbeddingProvider', () => {
|
|
14
|
+
assert.ok(MockEmbeddingProvider, 'MockEmbeddingProvider should be exported');
|
|
15
|
+
assert.equal(typeof MockEmbeddingProvider, 'function');
|
|
16
|
+
});
|
|
17
|
+
// ============= createEmbeddingProvider factory tests =============
|
|
18
|
+
test('createEmbeddingProvider returns OpenAIProvider for "openai"', () => {
|
|
19
|
+
const provider = createEmbeddingProvider('openai');
|
|
20
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
21
|
+
assert.equal(provider.getName(), 'OpenAI');
|
|
22
|
+
});
|
|
23
|
+
test('createEmbeddingProvider returns OpenAIProvider for "auto"', () => {
|
|
24
|
+
const provider = createEmbeddingProvider('auto');
|
|
25
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
26
|
+
});
|
|
27
|
+
test('createEmbeddingProvider returns MockEmbeddingProvider for "mock"', () => {
|
|
28
|
+
const provider = createEmbeddingProvider('mock');
|
|
29
|
+
assert.ok(provider instanceof MockEmbeddingProvider);
|
|
30
|
+
assert.equal(provider.getName(), 'mock');
|
|
31
|
+
});
|
|
32
|
+
test('createEmbeddingProvider returns MockEmbeddingProvider for "test"', () => {
|
|
33
|
+
const provider = createEmbeddingProvider('test');
|
|
34
|
+
assert.ok(provider instanceof MockEmbeddingProvider);
|
|
35
|
+
assert.equal(provider.getName(), 'mock');
|
|
36
|
+
});
|
|
37
|
+
test('createEmbeddingProvider returns OpenAIProvider for unknown provider', () => {
|
|
38
|
+
const provider = createEmbeddingProvider('unknown-provider');
|
|
39
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
40
|
+
});
|
|
41
|
+
test('createEmbeddingProvider is case-insensitive', () => {
|
|
42
|
+
const provider1 = createEmbeddingProvider('MOCK');
|
|
43
|
+
const provider2 = createEmbeddingProvider('Mock');
|
|
44
|
+
const provider3 = createEmbeddingProvider('mock');
|
|
45
|
+
assert.ok(provider1 instanceof MockEmbeddingProvider);
|
|
46
|
+
assert.ok(provider2 instanceof MockEmbeddingProvider);
|
|
47
|
+
assert.ok(provider3 instanceof MockEmbeddingProvider);
|
|
48
|
+
});
|
|
49
|
+
test('createEmbeddingProvider with no arguments uses defaults', () => {
|
|
50
|
+
const provider = createEmbeddingProvider();
|
|
51
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
52
|
+
});
|
|
53
|
+
// ============= Options passing tests =============
|
|
54
|
+
test('createEmbeddingProvider passes options to OpenAIProvider', () => {
|
|
55
|
+
const provider = createEmbeddingProvider('openai', {
|
|
56
|
+
model: 'text-embedding-3-small',
|
|
57
|
+
dimensions: 512
|
|
58
|
+
});
|
|
59
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
60
|
+
assert.equal(provider.getModelName(), 'text-embedding-3-small');
|
|
61
|
+
assert.equal(provider.getDimensions(), 512);
|
|
62
|
+
});
|
|
63
|
+
test('createEmbeddingProvider passes dimensions to MockEmbeddingProvider', () => {
|
|
64
|
+
const provider = createEmbeddingProvider('mock', { dimensions: 128 });
|
|
65
|
+
assert.ok(provider instanceof MockEmbeddingProvider);
|
|
66
|
+
assert.equal(provider.getDimensions(), 128);
|
|
67
|
+
});
|
|
68
|
+
test('createEmbeddingProvider uses default dimensions for mock when not specified', () => {
|
|
69
|
+
const provider = createEmbeddingProvider('mock');
|
|
70
|
+
assert.equal(provider.getDimensions(), 32);
|
|
71
|
+
});
|
|
72
|
+
test('createEmbeddingProvider uses default dimensions for mock when options empty', () => {
|
|
73
|
+
const provider = createEmbeddingProvider('mock', {});
|
|
74
|
+
assert.equal(provider.getDimensions(), 32);
|
|
75
|
+
});
|
|
76
|
+
test('createEmbeddingProvider handles invalid dimensions for mock (non-finite)', () => {
|
|
77
|
+
const provider = createEmbeddingProvider('mock', { dimensions: Infinity });
|
|
78
|
+
assert.equal(provider.getDimensions(), 32); // Falls back to default
|
|
79
|
+
});
|
|
80
|
+
test('createEmbeddingProvider handles invalid dimensions for mock (NaN)', () => {
|
|
81
|
+
const provider = createEmbeddingProvider('mock', { dimensions: NaN });
|
|
82
|
+
assert.equal(provider.getDimensions(), 32); // Falls back to default
|
|
83
|
+
});
|
|
84
|
+
test('createEmbeddingProvider handles negative dimensions for mock', () => {
|
|
85
|
+
const provider = createEmbeddingProvider('mock', { dimensions: -10 });
|
|
86
|
+
// Floors to 1 minimum
|
|
87
|
+
assert.equal(provider.getDimensions(), 1);
|
|
88
|
+
});
|
|
89
|
+
test('createEmbeddingProvider handles zero dimensions for mock', () => {
|
|
90
|
+
const provider = createEmbeddingProvider('mock', { dimensions: 0 });
|
|
91
|
+
// Floors to 1 minimum
|
|
92
|
+
assert.equal(provider.getDimensions(), 1);
|
|
93
|
+
});
|
|
94
|
+
test('createEmbeddingProvider handles fractional dimensions for mock', () => {
|
|
95
|
+
const provider = createEmbeddingProvider('mock', { dimensions: 64.7 });
|
|
96
|
+
// Floors the value
|
|
97
|
+
assert.equal(provider.getDimensions(), 64);
|
|
98
|
+
});
|
|
99
|
+
// ============= Rate limit options tests =============
|
|
100
|
+
test('createEmbeddingProvider passes rate limit options to OpenAIProvider', () => {
|
|
101
|
+
const provider = createEmbeddingProvider('openai', { rpm: 200, tpm: 100000 });
|
|
102
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
103
|
+
const stats = provider.rateLimiter?.getStats();
|
|
104
|
+
assert.ok(stats, 'Rate limiter should exist');
|
|
105
|
+
assert.equal(stats.rpm, 200);
|
|
106
|
+
assert.equal(stats.tpm, 100000);
|
|
107
|
+
});
|
|
108
|
+
test('createEmbeddingProvider passes null rate limits correctly', () => {
|
|
109
|
+
const provider = createEmbeddingProvider('openai', { rpm: null, tpm: null });
|
|
110
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
111
|
+
const stats = provider.rateLimiter?.getStats();
|
|
112
|
+
assert.ok(stats, 'Rate limiter should exist');
|
|
113
|
+
// When explicitly set to null, should use null
|
|
114
|
+
assert.equal(stats.rpm, null);
|
|
115
|
+
assert.equal(stats.tpm, null);
|
|
116
|
+
});
|
|
117
|
+
// ============= API key and base URL tests =============
|
|
118
|
+
test('createEmbeddingProvider passes apiKey to OpenAIProvider', () => {
|
|
119
|
+
// We can't easily verify the apiKey was passed, but we can verify no error
|
|
120
|
+
const provider = createEmbeddingProvider('openai', { apiKey: 'test-api-key' });
|
|
121
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
122
|
+
});
|
|
123
|
+
test('createEmbeddingProvider passes baseUrl to OpenAIProvider', () => {
|
|
124
|
+
const provider = createEmbeddingProvider('openai', {
|
|
125
|
+
baseUrl: 'https://custom-api.example.com/v1'
|
|
126
|
+
});
|
|
127
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
128
|
+
});
|
|
129
|
+
// ============= Routing config tests =============
|
|
130
|
+
test('createEmbeddingProvider passes routing config to OpenAIProvider', () => {
|
|
131
|
+
const provider = createEmbeddingProvider('openai', {
|
|
132
|
+
routing: { order: ['first', 'second'] }
|
|
133
|
+
});
|
|
134
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
135
|
+
});
|
|
136
|
+
// ============= Provider interface tests =============
|
|
137
|
+
test('createEmbeddingProvider returns objects with EmbeddingProvider interface', async () => {
|
|
138
|
+
const openaiProvider = createEmbeddingProvider('openai');
|
|
139
|
+
const mockProvider = createEmbeddingProvider('mock');
|
|
140
|
+
// Both should have the required methods
|
|
141
|
+
assert.equal(typeof openaiProvider.generateEmbedding, 'function');
|
|
142
|
+
assert.equal(typeof openaiProvider.generateEmbeddings, 'function');
|
|
143
|
+
assert.equal(typeof openaiProvider.getDimensions, 'function');
|
|
144
|
+
assert.equal(typeof openaiProvider.getName, 'function');
|
|
145
|
+
assert.equal(typeof mockProvider.generateEmbedding, 'function');
|
|
146
|
+
assert.equal(typeof mockProvider.generateEmbeddings, 'function');
|
|
147
|
+
assert.equal(typeof mockProvider.getDimensions, 'function');
|
|
148
|
+
assert.equal(typeof mockProvider.getName, 'function');
|
|
149
|
+
});
|
|
150
|
+
test('createEmbeddingProvider returns functional providers', async () => {
|
|
151
|
+
const mockProvider = createEmbeddingProvider('mock', { dimensions: 16 });
|
|
152
|
+
const embedding = await mockProvider.generateEmbedding('test');
|
|
153
|
+
assert.equal(embedding.length, 16);
|
|
154
|
+
const embeddings = await mockProvider.generateEmbeddings(['a', 'b']);
|
|
155
|
+
assert.equal(embeddings.length, 2);
|
|
156
|
+
});
|
|
157
|
+
// ============= Edge cases =============
|
|
158
|
+
test('createEmbeddingProvider handles empty string provider name', () => {
|
|
159
|
+
const provider = createEmbeddingProvider('');
|
|
160
|
+
// Empty string goes to default case which returns OpenAIProvider
|
|
161
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
162
|
+
});
|
|
163
|
+
test('createEmbeddingProvider handles whitespace provider name', () => {
|
|
164
|
+
const provider = createEmbeddingProvider(' mock '.trim());
|
|
165
|
+
assert.ok(provider instanceof MockEmbeddingProvider);
|
|
166
|
+
});
|
|
167
|
+
test('createEmbeddingProvider handles uppercase TEST', () => {
|
|
168
|
+
const provider = createEmbeddingProvider('TEST');
|
|
169
|
+
assert.ok(provider instanceof MockEmbeddingProvider);
|
|
170
|
+
});
|
|
171
|
+
test('createEmbeddingProvider handles mixed case Auto', () => {
|
|
172
|
+
const provider = createEmbeddingProvider('Auto');
|
|
173
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
174
|
+
});
|
|
175
|
+
// ============= Multiple provider instances =============
|
|
176
|
+
test('createEmbeddingProvider creates independent instances', () => {
|
|
177
|
+
const provider1 = createEmbeddingProvider('mock', { dimensions: 32 });
|
|
178
|
+
const provider2 = createEmbeddingProvider('mock', { dimensions: 64 });
|
|
179
|
+
assert.equal(provider1.getDimensions(), 32);
|
|
180
|
+
assert.equal(provider2.getDimensions(), 64);
|
|
181
|
+
});
|
|
182
|
+
test('createEmbeddingProvider OpenAI instances are independent', () => {
|
|
183
|
+
const provider1 = createEmbeddingProvider('openai', { model: 'text-embedding-3-small' });
|
|
184
|
+
const provider2 = createEmbeddingProvider('openai', { model: 'text-embedding-3-large' });
|
|
185
|
+
assert.equal(provider1.getModelName?.(), 'text-embedding-3-small');
|
|
186
|
+
assert.equal(provider2.getModelName?.(), 'text-embedding-3-large');
|
|
187
|
+
});
|
|
188
|
+
// ============= All options together =============
|
|
189
|
+
test('createEmbeddingProvider handles all options together for OpenAI', () => {
|
|
190
|
+
const provider = createEmbeddingProvider('openai', {
|
|
191
|
+
apiKey: 'test-key',
|
|
192
|
+
baseUrl: 'https://api.example.com',
|
|
193
|
+
model: 'custom-model',
|
|
194
|
+
dimensions: 768,
|
|
195
|
+
maxTokens: 4096,
|
|
196
|
+
rpm: 50,
|
|
197
|
+
tpm: 10000,
|
|
198
|
+
routing: { order: ['provider1'] }
|
|
199
|
+
});
|
|
200
|
+
assert.ok(provider instanceof OpenAIProvider);
|
|
201
|
+
assert.equal(provider.getModelName(), 'custom-model');
|
|
202
|
+
assert.equal(provider.getDimensions(), 768);
|
|
203
|
+
});
|
|
204
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/tests/providers/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.test.d.ts","sourceRoot":"","sources":["../../../src/tests/providers/mock.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { MockEmbeddingProvider } from '../../providers/mock.js';
|
|
4
|
+
// ============= Constructor tests =============
|
|
5
|
+
test('MockEmbeddingProvider uses default dimensions of 32', () => {
|
|
6
|
+
const provider = new MockEmbeddingProvider();
|
|
7
|
+
assert.equal(provider.getDimensions(), 32);
|
|
8
|
+
});
|
|
9
|
+
test('MockEmbeddingProvider accepts custom dimensions', () => {
|
|
10
|
+
const provider = new MockEmbeddingProvider(128);
|
|
11
|
+
assert.equal(provider.getDimensions(), 128);
|
|
12
|
+
});
|
|
13
|
+
test('MockEmbeddingProvider accepts large dimensions', () => {
|
|
14
|
+
const provider = new MockEmbeddingProvider(3072);
|
|
15
|
+
assert.equal(provider.getDimensions(), 3072);
|
|
16
|
+
});
|
|
17
|
+
// ============= getName tests =============
|
|
18
|
+
test('MockEmbeddingProvider.getName returns "mock"', () => {
|
|
19
|
+
const provider = new MockEmbeddingProvider();
|
|
20
|
+
assert.equal(provider.getName(), 'mock');
|
|
21
|
+
});
|
|
22
|
+
// ============= getModelName tests =============
|
|
23
|
+
test('MockEmbeddingProvider.getModelName returns "mock"', () => {
|
|
24
|
+
const provider = new MockEmbeddingProvider();
|
|
25
|
+
assert.equal(provider.getModelName(), 'mock');
|
|
26
|
+
});
|
|
27
|
+
// ============= init tests =============
|
|
28
|
+
test('MockEmbeddingProvider.init resolves immediately', async () => {
|
|
29
|
+
const provider = new MockEmbeddingProvider();
|
|
30
|
+
await assert.doesNotReject(async () => {
|
|
31
|
+
await provider.init();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
test('MockEmbeddingProvider.init can be called multiple times', async () => {
|
|
35
|
+
const provider = new MockEmbeddingProvider();
|
|
36
|
+
await provider.init();
|
|
37
|
+
await provider.init();
|
|
38
|
+
await provider.init();
|
|
39
|
+
// No error should occur
|
|
40
|
+
assert.ok(true);
|
|
41
|
+
});
|
|
42
|
+
// ============= generateEmbedding tests =============
|
|
43
|
+
test('MockEmbeddingProvider.generateEmbedding returns vector of correct dimensions', async () => {
|
|
44
|
+
const provider = new MockEmbeddingProvider(64);
|
|
45
|
+
const embedding = await provider.generateEmbedding('test text');
|
|
46
|
+
assert.equal(embedding.length, 64);
|
|
47
|
+
});
|
|
48
|
+
test('MockEmbeddingProvider.generateEmbedding returns all numeric values', async () => {
|
|
49
|
+
const provider = new MockEmbeddingProvider(32);
|
|
50
|
+
const embedding = await provider.generateEmbedding('hello world');
|
|
51
|
+
embedding.forEach((value, i) => {
|
|
52
|
+
assert.equal(typeof value, 'number', `Value at index ${i} should be a number`);
|
|
53
|
+
assert.ok(!isNaN(value), `Value at index ${i} should not be NaN`);
|
|
54
|
+
assert.ok(isFinite(value), `Value at index ${i} should be finite`);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
test('MockEmbeddingProvider.generateEmbedding is deterministic (same text produces same vector)', async () => {
|
|
58
|
+
const provider = new MockEmbeddingProvider(32);
|
|
59
|
+
const text = 'deterministic test input';
|
|
60
|
+
const embedding1 = await provider.generateEmbedding(text);
|
|
61
|
+
const embedding2 = await provider.generateEmbedding(text);
|
|
62
|
+
assert.deepEqual(embedding1, embedding2, 'Same text should produce same embedding');
|
|
63
|
+
});
|
|
64
|
+
test('MockEmbeddingProvider.generateEmbedding produces different vectors for different text', async () => {
|
|
65
|
+
const provider = new MockEmbeddingProvider(32);
|
|
66
|
+
const embedding1 = await provider.generateEmbedding('text one');
|
|
67
|
+
const embedding2 = await provider.generateEmbedding('text two');
|
|
68
|
+
// Vectors should differ for different inputs
|
|
69
|
+
const isDifferent = embedding1.some((val, i) => val !== embedding2[i]);
|
|
70
|
+
assert.ok(isDifferent, 'Different texts should produce different embeddings');
|
|
71
|
+
});
|
|
72
|
+
test('MockEmbeddingProvider.generateEmbedding produces normalized vectors', async () => {
|
|
73
|
+
const provider = new MockEmbeddingProvider(64);
|
|
74
|
+
const embedding = await provider.generateEmbedding('normalize test');
|
|
75
|
+
// Calculate magnitude (L2 norm)
|
|
76
|
+
const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
|
|
77
|
+
// Normalized vector should have magnitude close to 1
|
|
78
|
+
assert.ok(Math.abs(magnitude - 1) < 0.0001, `Vector magnitude should be ~1, got ${magnitude}`);
|
|
79
|
+
});
|
|
80
|
+
test('MockEmbeddingProvider.generateEmbedding handles empty string', async () => {
|
|
81
|
+
const provider = new MockEmbeddingProvider(16);
|
|
82
|
+
const embedding = await provider.generateEmbedding('');
|
|
83
|
+
assert.equal(embedding.length, 16);
|
|
84
|
+
// Still produces a valid normalized vector
|
|
85
|
+
const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
|
|
86
|
+
assert.ok(Math.abs(magnitude - 1) < 0.0001);
|
|
87
|
+
});
|
|
88
|
+
test('MockEmbeddingProvider.generateEmbedding handles very long text', async () => {
|
|
89
|
+
const provider = new MockEmbeddingProvider(32);
|
|
90
|
+
const longText = 'a'.repeat(100000);
|
|
91
|
+
const embedding = await provider.generateEmbedding(longText);
|
|
92
|
+
assert.equal(embedding.length, 32);
|
|
93
|
+
const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
|
|
94
|
+
assert.ok(Math.abs(magnitude - 1) < 0.0001);
|
|
95
|
+
});
|
|
96
|
+
test('MockEmbeddingProvider.generateEmbedding handles unicode characters', async () => {
|
|
97
|
+
const provider = new MockEmbeddingProvider(32);
|
|
98
|
+
const embedding = await provider.generateEmbedding('Hello World');
|
|
99
|
+
assert.equal(embedding.length, 32);
|
|
100
|
+
});
|
|
101
|
+
test('MockEmbeddingProvider.generateEmbedding handles special characters', async () => {
|
|
102
|
+
const provider = new MockEmbeddingProvider(32);
|
|
103
|
+
const embedding = await provider.generateEmbedding('function foo() { return "bar"; }');
|
|
104
|
+
assert.equal(embedding.length, 32);
|
|
105
|
+
const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
|
|
106
|
+
assert.ok(Math.abs(magnitude - 1) < 0.0001);
|
|
107
|
+
});
|
|
108
|
+
// ============= generateEmbeddings (batch) tests =============
|
|
109
|
+
test('MockEmbeddingProvider.generateEmbeddings returns array of vectors', async () => {
|
|
110
|
+
const provider = new MockEmbeddingProvider(48);
|
|
111
|
+
const texts = ['text1', 'text2', 'text3'];
|
|
112
|
+
const embeddings = await provider.generateEmbeddings(texts);
|
|
113
|
+
assert.equal(embeddings.length, 3);
|
|
114
|
+
embeddings.forEach((emb, i) => {
|
|
115
|
+
assert.equal(emb.length, 48, `Embedding ${i} should have 48 dimensions`);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
test('MockEmbeddingProvider.generateEmbeddings handles empty array', async () => {
|
|
119
|
+
const provider = new MockEmbeddingProvider(32);
|
|
120
|
+
const embeddings = await provider.generateEmbeddings([]);
|
|
121
|
+
assert.equal(embeddings.length, 0);
|
|
122
|
+
});
|
|
123
|
+
test('MockEmbeddingProvider.generateEmbeddings handles single item', async () => {
|
|
124
|
+
const provider = new MockEmbeddingProvider(32);
|
|
125
|
+
const embeddings = await provider.generateEmbeddings(['single']);
|
|
126
|
+
assert.equal(embeddings.length, 1);
|
|
127
|
+
assert.equal(embeddings[0].length, 32);
|
|
128
|
+
});
|
|
129
|
+
test('MockEmbeddingProvider.generateEmbeddings produces deterministic results', async () => {
|
|
130
|
+
const provider = new MockEmbeddingProvider(32);
|
|
131
|
+
const texts = ['apple', 'banana', 'cherry'];
|
|
132
|
+
const embeddings1 = await provider.generateEmbeddings(texts);
|
|
133
|
+
const embeddings2 = await provider.generateEmbeddings(texts);
|
|
134
|
+
assert.deepEqual(embeddings1, embeddings2, 'Batch embeddings should be deterministic');
|
|
135
|
+
});
|
|
136
|
+
test('MockEmbeddingProvider.generateEmbeddings produces same result as individual calls', async () => {
|
|
137
|
+
const provider = new MockEmbeddingProvider(32);
|
|
138
|
+
const texts = ['foo', 'bar', 'baz'];
|
|
139
|
+
const batchEmbeddings = await provider.generateEmbeddings(texts);
|
|
140
|
+
const individualEmbeddings = await Promise.all(texts.map(text => provider.generateEmbedding(text)));
|
|
141
|
+
assert.deepEqual(batchEmbeddings, individualEmbeddings, 'Batch and individual embeddings should match');
|
|
142
|
+
});
|
|
143
|
+
test('MockEmbeddingProvider.generateEmbeddings handles large batch', async () => {
|
|
144
|
+
const provider = new MockEmbeddingProvider(16);
|
|
145
|
+
const texts = Array.from({ length: 100 }, (_, i) => `text${i}`);
|
|
146
|
+
const embeddings = await provider.generateEmbeddings(texts);
|
|
147
|
+
assert.equal(embeddings.length, 100);
|
|
148
|
+
embeddings.forEach(emb => {
|
|
149
|
+
assert.equal(emb.length, 16);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
// ============= Vector quality tests =============
|
|
153
|
+
test('MockEmbeddingProvider vectors have diverse values (not all same)', async () => {
|
|
154
|
+
const provider = new MockEmbeddingProvider(64);
|
|
155
|
+
const embedding = await provider.generateEmbedding('diverse test');
|
|
156
|
+
// Check that not all values are the same
|
|
157
|
+
const uniqueValues = new Set(embedding.map(v => v.toFixed(6)));
|
|
158
|
+
assert.ok(uniqueValues.size > 1, 'Vector should have diverse values');
|
|
159
|
+
});
|
|
160
|
+
test('MockEmbeddingProvider similar texts produce somewhat similar vectors', async () => {
|
|
161
|
+
const provider = new MockEmbeddingProvider(32);
|
|
162
|
+
// These texts are very similar
|
|
163
|
+
const emb1 = await provider.generateEmbedding('hello world');
|
|
164
|
+
const emb2 = await provider.generateEmbedding('hello world!');
|
|
165
|
+
// Calculate cosine similarity
|
|
166
|
+
const dotProduct = emb1.reduce((sum, val, i) => sum + val * emb2[i], 0);
|
|
167
|
+
const mag1 = Math.sqrt(emb1.reduce((sum, val) => sum + val * val, 0));
|
|
168
|
+
const mag2 = Math.sqrt(emb2.reduce((sum, val) => sum + val * val, 0));
|
|
169
|
+
const cosineSimilarity = dotProduct / (mag1 * mag2);
|
|
170
|
+
// Similar texts should have positive similarity
|
|
171
|
+
// Note: This is a simple hash-based mock, so similarity may not be high,
|
|
172
|
+
// but it should be stable and consistent
|
|
173
|
+
assert.equal(typeof cosineSimilarity, 'number');
|
|
174
|
+
assert.ok(!isNaN(cosineSimilarity), 'Cosine similarity should be a valid number');
|
|
175
|
+
});
|
|
176
|
+
// ============= Edge cases =============
|
|
177
|
+
test('MockEmbeddingProvider with dimensions=1 works', async () => {
|
|
178
|
+
const provider = new MockEmbeddingProvider(1);
|
|
179
|
+
const embedding = await provider.generateEmbedding('test');
|
|
180
|
+
assert.equal(embedding.length, 1);
|
|
181
|
+
// Single dimension normalized vector is always 1 or -1
|
|
182
|
+
assert.ok(Math.abs(Math.abs(embedding[0]) - 1) < 0.0001);
|
|
183
|
+
});
|
|
184
|
+
test('MockEmbeddingProvider handles whitespace-only text', async () => {
|
|
185
|
+
const provider = new MockEmbeddingProvider(32);
|
|
186
|
+
const embedding = await provider.generateEmbedding(' \n\t ');
|
|
187
|
+
assert.equal(embedding.length, 32);
|
|
188
|
+
});
|
|
189
|
+
test('MockEmbeddingProvider handles newlines in text', async () => {
|
|
190
|
+
const provider = new MockEmbeddingProvider(32);
|
|
191
|
+
const embedding = await provider.generateEmbedding('line1\nline2\nline3');
|
|
192
|
+
assert.equal(embedding.length, 32);
|
|
193
|
+
});
|
|
194
|
+
test('MockEmbeddingProvider two instances produce same results for same text', async () => {
|
|
195
|
+
const provider1 = new MockEmbeddingProvider(32);
|
|
196
|
+
const provider2 = new MockEmbeddingProvider(32);
|
|
197
|
+
const emb1 = await provider1.generateEmbedding('shared text');
|
|
198
|
+
const emb2 = await provider2.generateEmbedding('shared text');
|
|
199
|
+
assert.deepEqual(emb1, emb2, 'Different instances should produce same embeddings');
|
|
200
|
+
});
|
|
201
|
+
// ============= Concurrent access tests =============
|
|
202
|
+
test('MockEmbeddingProvider handles concurrent generateEmbedding calls', async () => {
|
|
203
|
+
const provider = new MockEmbeddingProvider(32);
|
|
204
|
+
const results = await Promise.all([
|
|
205
|
+
provider.generateEmbedding('text1'),
|
|
206
|
+
provider.generateEmbedding('text2'),
|
|
207
|
+
provider.generateEmbedding('text3'),
|
|
208
|
+
provider.generateEmbedding('text4'),
|
|
209
|
+
provider.generateEmbedding('text5')
|
|
210
|
+
]);
|
|
211
|
+
assert.equal(results.length, 5);
|
|
212
|
+
results.forEach(emb => {
|
|
213
|
+
assert.equal(emb.length, 32);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
test('MockEmbeddingProvider handles concurrent generateEmbeddings calls', async () => {
|
|
217
|
+
const provider = new MockEmbeddingProvider(32);
|
|
218
|
+
const [batch1, batch2] = await Promise.all([
|
|
219
|
+
provider.generateEmbeddings(['a', 'b', 'c']),
|
|
220
|
+
provider.generateEmbeddings(['d', 'e', 'f'])
|
|
221
|
+
]);
|
|
222
|
+
assert.equal(batch1.length, 3);
|
|
223
|
+
assert.equal(batch2.length, 3);
|
|
224
|
+
});
|
|
225
|
+
//# sourceMappingURL=mock.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.test.js","sourceRoot":"","sources":["../../../src/tests/providers/mock.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.test.d.ts","sourceRoot":"","sources":["../../../src/tests/providers/openai.test.ts"],"names":[],"mappings":""}
|