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,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for search-with-code-cmd.ts
|
|
3
|
+
* Tests the search-with-code command registration and option handling
|
|
4
|
+
*/
|
|
5
|
+
import test from 'node:test';
|
|
6
|
+
import assert from 'node:assert/strict';
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import { registerSearchWithCodeCommand } from '../../cli/commands/search-with-code-cmd.js';
|
|
9
|
+
test('registerSearchWithCodeCommand adds search-with-code command to program', () => {
|
|
10
|
+
const program = new Command();
|
|
11
|
+
registerSearchWithCodeCommand(program);
|
|
12
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
13
|
+
assert.ok(cmd, 'search-with-code command should be registered');
|
|
14
|
+
});
|
|
15
|
+
test('search-with-code command requires query argument', () => {
|
|
16
|
+
const program = new Command();
|
|
17
|
+
registerSearchWithCodeCommand(program);
|
|
18
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
19
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
20
|
+
const args = cmd.registeredArguments || [];
|
|
21
|
+
assert.ok(args.length >= 1, 'should have at least one argument');
|
|
22
|
+
if (args.length > 0) {
|
|
23
|
+
assert.ok(args[0].required, 'query should be required');
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
test('search-with-code command has correct description', () => {
|
|
27
|
+
const program = new Command();
|
|
28
|
+
registerSearchWithCodeCommand(program);
|
|
29
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
30
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
31
|
+
const desc = cmd.description().toLowerCase();
|
|
32
|
+
assert.ok(desc.includes('search') && desc.includes('code'), 'description should mention search and code');
|
|
33
|
+
});
|
|
34
|
+
test('search-with-code command has limit option with default 5', () => {
|
|
35
|
+
const program = new Command();
|
|
36
|
+
registerSearchWithCodeCommand(program);
|
|
37
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
38
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
39
|
+
const limitOpt = cmd.options.find(opt => opt.long === '--limit');
|
|
40
|
+
assert.ok(limitOpt, 'should have --limit option');
|
|
41
|
+
assert.equal(limitOpt.defaultValue, '5', 'default should be 5');
|
|
42
|
+
});
|
|
43
|
+
test('search-with-code command has max-code-size option with default 100000', () => {
|
|
44
|
+
const program = new Command();
|
|
45
|
+
registerSearchWithCodeCommand(program);
|
|
46
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
47
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
48
|
+
const maxCodeSizeOpt = cmd.options.find(opt => opt.long === '--max-code-size');
|
|
49
|
+
assert.ok(maxCodeSizeOpt, 'should have --max-code-size option');
|
|
50
|
+
assert.equal(maxCodeSizeOpt.defaultValue, '100000', 'default should be 100000');
|
|
51
|
+
});
|
|
52
|
+
test('search-with-code command has hybrid option with default on', () => {
|
|
53
|
+
const program = new Command();
|
|
54
|
+
registerSearchWithCodeCommand(program);
|
|
55
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
56
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
57
|
+
const hybridOpt = cmd.options.find(opt => opt.long === '--hybrid');
|
|
58
|
+
assert.ok(hybridOpt, 'should have --hybrid option');
|
|
59
|
+
assert.equal(hybridOpt.defaultValue, 'on', 'default should be on');
|
|
60
|
+
});
|
|
61
|
+
test('search-with-code command has bm25 option with default on', () => {
|
|
62
|
+
const program = new Command();
|
|
63
|
+
registerSearchWithCodeCommand(program);
|
|
64
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
65
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
66
|
+
const bm25Opt = cmd.options.find(opt => opt.long === '--bm25');
|
|
67
|
+
assert.ok(bm25Opt, 'should have --bm25 option');
|
|
68
|
+
assert.equal(bm25Opt.defaultValue, 'on', 'default should be on');
|
|
69
|
+
});
|
|
70
|
+
test('search-with-code command has symbol_boost option with default on', () => {
|
|
71
|
+
const program = new Command();
|
|
72
|
+
registerSearchWithCodeCommand(program);
|
|
73
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
74
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
75
|
+
const symbolBoostOpt = cmd.options.find(opt => opt.long === '--symbol_boost');
|
|
76
|
+
assert.ok(symbolBoostOpt, 'should have --symbol_boost option');
|
|
77
|
+
assert.equal(symbolBoostOpt.defaultValue, 'on', 'default should be on');
|
|
78
|
+
});
|
|
79
|
+
test('search-with-code command has reranker option with default off', () => {
|
|
80
|
+
const program = new Command();
|
|
81
|
+
registerSearchWithCodeCommand(program);
|
|
82
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
83
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
84
|
+
const rerankerOpt = cmd.options.find(opt => opt.long === '--reranker');
|
|
85
|
+
assert.ok(rerankerOpt, 'should have --reranker option');
|
|
86
|
+
assert.equal(rerankerOpt.defaultValue, 'off', 'default should be off');
|
|
87
|
+
});
|
|
88
|
+
test('search-with-code command has path filtering options', () => {
|
|
89
|
+
const program = new Command();
|
|
90
|
+
registerSearchWithCodeCommand(program);
|
|
91
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
92
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
93
|
+
const pathGlobOpt = cmd.options.find(opt => opt.long === '--path_glob');
|
|
94
|
+
const tagsOpt = cmd.options.find(opt => opt.long === '--tags');
|
|
95
|
+
const langOpt = cmd.options.find(opt => opt.long === '--lang');
|
|
96
|
+
assert.ok(pathGlobOpt, 'should have --path_glob option');
|
|
97
|
+
assert.ok(tagsOpt, 'should have --tags option');
|
|
98
|
+
assert.ok(langOpt, 'should have --lang option');
|
|
99
|
+
});
|
|
100
|
+
test('search-with-code command has project and directory path aliases', () => {
|
|
101
|
+
const program = new Command();
|
|
102
|
+
registerSearchWithCodeCommand(program);
|
|
103
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
104
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
105
|
+
const projectOpt = cmd.options.find(opt => opt.long === '--project');
|
|
106
|
+
const directoryOpt = cmd.options.find(opt => opt.long === '--directory');
|
|
107
|
+
assert.ok(projectOpt, 'should have --project option');
|
|
108
|
+
assert.ok(directoryOpt, 'should have --directory option');
|
|
109
|
+
});
|
|
110
|
+
test('search-with-code command provider option has auto default', () => {
|
|
111
|
+
const program = new Command();
|
|
112
|
+
registerSearchWithCodeCommand(program);
|
|
113
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
114
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
115
|
+
const providerOpt = cmd.options.find(opt => opt.long === '--provider');
|
|
116
|
+
assert.ok(providerOpt, 'should have --provider option');
|
|
117
|
+
assert.equal(providerOpt.defaultValue, 'auto', 'default should be auto');
|
|
118
|
+
});
|
|
119
|
+
test('search-with-code command has short flag -k for limit', () => {
|
|
120
|
+
const program = new Command();
|
|
121
|
+
registerSearchWithCodeCommand(program);
|
|
122
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
123
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
124
|
+
const limitOpt = cmd.options.find(opt => opt.long === '--limit');
|
|
125
|
+
assert.ok(limitOpt, 'should have --limit option');
|
|
126
|
+
assert.equal(limitOpt.short, '-k', 'should have -k short flag');
|
|
127
|
+
});
|
|
128
|
+
test('search-with-code command accepts optional path argument', () => {
|
|
129
|
+
const program = new Command();
|
|
130
|
+
registerSearchWithCodeCommand(program);
|
|
131
|
+
const cmd = program.commands.find(c => c.name() === 'search-with-code');
|
|
132
|
+
assert.ok(cmd, 'search-with-code command should exist');
|
|
133
|
+
const args = cmd.registeredArguments || [];
|
|
134
|
+
// First arg is query (required), second is path (optional)
|
|
135
|
+
assert.ok(args.length >= 1, 'should have at least query argument');
|
|
136
|
+
if (args.length >= 2) {
|
|
137
|
+
assert.ok(!args[1].required, 'path should be optional');
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=search-with-code-cmd.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-with-code-cmd.test.js","sourceRoot":"","sources":["../../../src/tests/cli/search-with-code-cmd.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-cmd.test.d.ts","sourceRoot":"","sources":["../../../src/tests/cli/update-cmd.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for update-cmd.ts
|
|
3
|
+
* Tests the update command registration and option handling
|
|
4
|
+
*/
|
|
5
|
+
import test from 'node:test';
|
|
6
|
+
import assert from 'node:assert/strict';
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import { registerUpdateCommand } from '../../cli/commands/update-cmd.js';
|
|
9
|
+
test('registerUpdateCommand adds update command to program', () => {
|
|
10
|
+
const program = new Command();
|
|
11
|
+
registerUpdateCommand(program);
|
|
12
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
13
|
+
assert.ok(updateCmd, 'update command should be registered');
|
|
14
|
+
});
|
|
15
|
+
test('update command has correct description', () => {
|
|
16
|
+
const program = new Command();
|
|
17
|
+
registerUpdateCommand(program);
|
|
18
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
19
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
20
|
+
assert.ok(updateCmd.description().toLowerCase().includes('update'), 'description should mention update');
|
|
21
|
+
});
|
|
22
|
+
test('update command accepts path as positional argument', () => {
|
|
23
|
+
const program = new Command();
|
|
24
|
+
registerUpdateCommand(program);
|
|
25
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
26
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
27
|
+
// Check that it accepts optional path
|
|
28
|
+
const usage = updateCmd.usage();
|
|
29
|
+
assert.ok(usage.includes('[path]') || updateCmd.registeredArguments?.length >= 0, 'should accept optional path argument');
|
|
30
|
+
});
|
|
31
|
+
test('update command has provider option with auto default', () => {
|
|
32
|
+
const program = new Command();
|
|
33
|
+
registerUpdateCommand(program);
|
|
34
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
35
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
36
|
+
const providerOpt = updateCmd.options.find(opt => opt.long === '--provider');
|
|
37
|
+
assert.ok(providerOpt, 'should have --provider option');
|
|
38
|
+
assert.equal(providerOpt.defaultValue, 'auto', 'default should be auto');
|
|
39
|
+
});
|
|
40
|
+
test('update command has encrypt option', () => {
|
|
41
|
+
const program = new Command();
|
|
42
|
+
registerUpdateCommand(program);
|
|
43
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
44
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
45
|
+
const encryptOpt = updateCmd.options.find(opt => opt.long === '--encrypt');
|
|
46
|
+
assert.ok(encryptOpt, 'should have --encrypt option');
|
|
47
|
+
});
|
|
48
|
+
test('update command has concurrency option', () => {
|
|
49
|
+
const program = new Command();
|
|
50
|
+
registerUpdateCommand(program);
|
|
51
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
52
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
53
|
+
const concurrencyOpt = updateCmd.options.find(opt => opt.long === '--concurrency');
|
|
54
|
+
assert.ok(concurrencyOpt, 'should have --concurrency option');
|
|
55
|
+
});
|
|
56
|
+
test('update command has project and directory path aliases', () => {
|
|
57
|
+
const program = new Command();
|
|
58
|
+
registerUpdateCommand(program);
|
|
59
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
60
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
61
|
+
const projectOpt = updateCmd.options.find(opt => opt.long === '--project');
|
|
62
|
+
const directoryOpt = updateCmd.options.find(opt => opt.long === '--directory');
|
|
63
|
+
assert.ok(projectOpt, 'should have --project option');
|
|
64
|
+
assert.ok(directoryOpt, 'should have --directory option');
|
|
65
|
+
});
|
|
66
|
+
test('update command provider option has short flag -p', () => {
|
|
67
|
+
const program = new Command();
|
|
68
|
+
registerUpdateCommand(program);
|
|
69
|
+
const updateCmd = program.commands.find(cmd => cmd.name() === 'update');
|
|
70
|
+
assert.ok(updateCmd, 'update command should exist');
|
|
71
|
+
const providerOpt = updateCmd.options.find(opt => opt.long === '--provider');
|
|
72
|
+
assert.ok(providerOpt, 'should have --provider option');
|
|
73
|
+
assert.equal(providerOpt.short, '-p', 'should have -p short flag');
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=update-cmd.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-cmd.test.js","sourceRoot":"","sources":["../../../src/tests/cli/update-cmd.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../src/tests/cli/utils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for CLI utility functions
|
|
3
|
+
*/
|
|
4
|
+
import test from 'node:test';
|
|
5
|
+
import assert from 'node:assert/strict';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { parseIntOption, parseFloatOption, resolveProjectPath, ExitCode } from '../../cli/utils.js';
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// parseIntOption tests
|
|
10
|
+
// ============================================================================
|
|
11
|
+
test('parseIntOption returns parsed integer for valid input', () => {
|
|
12
|
+
const result = parseIntOption('42', 'testOption');
|
|
13
|
+
assert.equal(result, 42);
|
|
14
|
+
});
|
|
15
|
+
test('parseIntOption returns default when value is undefined', () => {
|
|
16
|
+
const result = parseIntOption(undefined, 'testOption', { default: 10 });
|
|
17
|
+
assert.equal(result, 10);
|
|
18
|
+
});
|
|
19
|
+
test('parseIntOption returns default when value is empty string', () => {
|
|
20
|
+
const result = parseIntOption('', 'testOption', { default: 5 });
|
|
21
|
+
assert.equal(result, 5);
|
|
22
|
+
});
|
|
23
|
+
test('parseIntOption throws when value is undefined and no default', () => {
|
|
24
|
+
assert.throws(() => parseIntOption(undefined, 'testOption'), /Missing required option: testOption/);
|
|
25
|
+
});
|
|
26
|
+
test('parseIntOption throws for non-numeric input', () => {
|
|
27
|
+
assert.throws(() => parseIntOption('abc', 'testOption'), /Invalid testOption: expected a number, got "abc"/);
|
|
28
|
+
});
|
|
29
|
+
test('parseIntOption throws for value below minimum', () => {
|
|
30
|
+
assert.throws(() => parseIntOption('5', 'testOption', { min: 10 }), /testOption must be at least 10, got 5/);
|
|
31
|
+
});
|
|
32
|
+
test('parseIntOption throws for value above maximum', () => {
|
|
33
|
+
assert.throws(() => parseIntOption('100', 'testOption', { max: 50 }), /testOption must be at most 50, got 100/);
|
|
34
|
+
});
|
|
35
|
+
test('parseIntOption accepts value at minimum boundary', () => {
|
|
36
|
+
const result = parseIntOption('10', 'testOption', { min: 10 });
|
|
37
|
+
assert.equal(result, 10);
|
|
38
|
+
});
|
|
39
|
+
test('parseIntOption accepts value at maximum boundary', () => {
|
|
40
|
+
const result = parseIntOption('50', 'testOption', { max: 50 });
|
|
41
|
+
assert.equal(result, 50);
|
|
42
|
+
});
|
|
43
|
+
test('parseIntOption handles negative numbers', () => {
|
|
44
|
+
const result = parseIntOption('-5', 'testOption', { min: -10, max: 0 });
|
|
45
|
+
assert.equal(result, -5);
|
|
46
|
+
});
|
|
47
|
+
test('parseIntOption parses integer from float string (truncates)', () => {
|
|
48
|
+
const result = parseIntOption('3.14', 'testOption');
|
|
49
|
+
assert.equal(result, 3);
|
|
50
|
+
});
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// parseFloatOption tests
|
|
53
|
+
// ============================================================================
|
|
54
|
+
test('parseFloatOption returns parsed float for valid input', () => {
|
|
55
|
+
const result = parseFloatOption('3.14', 'testOption');
|
|
56
|
+
assert.equal(result, 3.14);
|
|
57
|
+
});
|
|
58
|
+
test('parseFloatOption returns default when value is undefined', () => {
|
|
59
|
+
const result = parseFloatOption(undefined, 'testOption', { default: 0.5 });
|
|
60
|
+
assert.equal(result, 0.5);
|
|
61
|
+
});
|
|
62
|
+
test('parseFloatOption returns default when value is empty string', () => {
|
|
63
|
+
const result = parseFloatOption('', 'testOption', { default: 0.7 });
|
|
64
|
+
assert.equal(result, 0.7);
|
|
65
|
+
});
|
|
66
|
+
test('parseFloatOption throws when value is undefined and no default', () => {
|
|
67
|
+
assert.throws(() => parseFloatOption(undefined, 'testOption'), /Missing required option: testOption/);
|
|
68
|
+
});
|
|
69
|
+
test('parseFloatOption throws for non-numeric input', () => {
|
|
70
|
+
assert.throws(() => parseFloatOption('xyz', 'testOption'), /Invalid testOption: expected a number, got "xyz"/);
|
|
71
|
+
});
|
|
72
|
+
test('parseFloatOption throws for value below minimum', () => {
|
|
73
|
+
assert.throws(() => parseFloatOption('0.1', 'testOption', { min: 0.5 }), /testOption must be at least 0.5, got 0.1/);
|
|
74
|
+
});
|
|
75
|
+
test('parseFloatOption throws for value above maximum', () => {
|
|
76
|
+
assert.throws(() => parseFloatOption('2.5', 'testOption', { max: 2.0 }), /testOption must be at most 2, got 2.5/);
|
|
77
|
+
});
|
|
78
|
+
test('parseFloatOption handles scientific notation', () => {
|
|
79
|
+
const result = parseFloatOption('1e-3', 'testOption');
|
|
80
|
+
assert.equal(result, 0.001);
|
|
81
|
+
});
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// resolveProjectPath tests
|
|
84
|
+
// ============================================================================
|
|
85
|
+
test('resolveProjectPath uses project option when provided', () => {
|
|
86
|
+
const result = resolveProjectPath({ project: '/some/path' });
|
|
87
|
+
assert.equal(result, '/some/path');
|
|
88
|
+
});
|
|
89
|
+
test('resolveProjectPath uses directory option when project not provided', () => {
|
|
90
|
+
const result = resolveProjectPath({ directory: '/another/path' });
|
|
91
|
+
assert.equal(result, '/another/path');
|
|
92
|
+
});
|
|
93
|
+
test('resolveProjectPath prefers project over directory', () => {
|
|
94
|
+
const result = resolveProjectPath({ project: '/project', directory: '/directory' });
|
|
95
|
+
assert.equal(result, '/project');
|
|
96
|
+
});
|
|
97
|
+
test('resolveProjectPath uses positional path when no options', () => {
|
|
98
|
+
const result = resolveProjectPath({}, '/positional');
|
|
99
|
+
assert.equal(result, '/positional');
|
|
100
|
+
});
|
|
101
|
+
test('resolveProjectPath defaults to current directory', () => {
|
|
102
|
+
const result = resolveProjectPath({});
|
|
103
|
+
assert.equal(result, path.resolve('.'));
|
|
104
|
+
});
|
|
105
|
+
test('resolveProjectPath resolves relative paths to absolute', () => {
|
|
106
|
+
const result = resolveProjectPath({ project: 'relative/path' });
|
|
107
|
+
assert.ok(path.isAbsolute(result));
|
|
108
|
+
assert.ok(result.endsWith('relative/path'));
|
|
109
|
+
});
|
|
110
|
+
// ============================================================================
|
|
111
|
+
// ExitCode tests
|
|
112
|
+
// ============================================================================
|
|
113
|
+
test('ExitCode has correct values', () => {
|
|
114
|
+
assert.equal(ExitCode.SUCCESS, 0);
|
|
115
|
+
assert.equal(ExitCode.ERROR, 1);
|
|
116
|
+
assert.equal(ExitCode.INVALID_ARGS, 2);
|
|
117
|
+
assert.equal(ExitCode.INTERRUPTED, 130);
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/tests/cli/utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-cmd.test.d.ts","sourceRoot":"","sources":["../../../src/tests/cli/watch-cmd.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for watch-cmd.ts
|
|
3
|
+
* Tests the watch command registration and option handling
|
|
4
|
+
*/
|
|
5
|
+
import test from 'node:test';
|
|
6
|
+
import assert from 'node:assert/strict';
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import { registerWatchCommand } from '../../cli/commands/watch-cmd.js';
|
|
9
|
+
test('registerWatchCommand adds watch command to program', () => {
|
|
10
|
+
const program = new Command();
|
|
11
|
+
registerWatchCommand(program);
|
|
12
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
13
|
+
assert.ok(watchCmd, 'watch command should be registered');
|
|
14
|
+
});
|
|
15
|
+
test('watch command has correct description', () => {
|
|
16
|
+
const program = new Command();
|
|
17
|
+
registerWatchCommand(program);
|
|
18
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
19
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
20
|
+
assert.ok(watchCmd.description().toLowerCase().includes('watch'), 'description should mention watch');
|
|
21
|
+
});
|
|
22
|
+
test('watch command has debounce option with default 500', () => {
|
|
23
|
+
const program = new Command();
|
|
24
|
+
registerWatchCommand(program);
|
|
25
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
26
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
27
|
+
const debounceOpt = watchCmd.options.find(opt => opt.long === '--debounce');
|
|
28
|
+
assert.ok(debounceOpt, 'should have --debounce option');
|
|
29
|
+
assert.equal(debounceOpt.defaultValue, '500', 'default should be 500ms');
|
|
30
|
+
});
|
|
31
|
+
test('watch command has short flag -d for debounce', () => {
|
|
32
|
+
const program = new Command();
|
|
33
|
+
registerWatchCommand(program);
|
|
34
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
35
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
36
|
+
const debounceOpt = watchCmd.options.find(opt => opt.long === '--debounce');
|
|
37
|
+
assert.ok(debounceOpt, 'should have --debounce option');
|
|
38
|
+
assert.equal(debounceOpt.short, '-d', 'should have -d short flag');
|
|
39
|
+
});
|
|
40
|
+
test('watch command has provider option', () => {
|
|
41
|
+
const program = new Command();
|
|
42
|
+
registerWatchCommand(program);
|
|
43
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
44
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
45
|
+
const providerOpt = watchCmd.options.find(opt => opt.long === '--provider');
|
|
46
|
+
assert.ok(providerOpt, 'should have --provider option');
|
|
47
|
+
assert.equal(providerOpt.defaultValue, 'auto', 'default should be auto');
|
|
48
|
+
});
|
|
49
|
+
test('watch command has encrypt option', () => {
|
|
50
|
+
const program = new Command();
|
|
51
|
+
registerWatchCommand(program);
|
|
52
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
53
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
54
|
+
const encryptOpt = watchCmd.options.find(opt => opt.long === '--encrypt');
|
|
55
|
+
assert.ok(encryptOpt, 'should have --encrypt option');
|
|
56
|
+
});
|
|
57
|
+
test('watch command has concurrency option', () => {
|
|
58
|
+
const program = new Command();
|
|
59
|
+
registerWatchCommand(program);
|
|
60
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
61
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
62
|
+
const concurrencyOpt = watchCmd.options.find(opt => opt.long === '--concurrency');
|
|
63
|
+
assert.ok(concurrencyOpt, 'should have --concurrency option');
|
|
64
|
+
});
|
|
65
|
+
test('watch command has project and directory path aliases', () => {
|
|
66
|
+
const program = new Command();
|
|
67
|
+
registerWatchCommand(program);
|
|
68
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
69
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
70
|
+
const projectOpt = watchCmd.options.find(opt => opt.long === '--project');
|
|
71
|
+
const directoryOpt = watchCmd.options.find(opt => opt.long === '--directory');
|
|
72
|
+
assert.ok(projectOpt, 'should have --project option');
|
|
73
|
+
assert.ok(directoryOpt, 'should have --directory option');
|
|
74
|
+
});
|
|
75
|
+
test('watch command accepts optional path argument', () => {
|
|
76
|
+
const program = new Command();
|
|
77
|
+
registerWatchCommand(program);
|
|
78
|
+
const watchCmd = program.commands.find(cmd => cmd.name() === 'watch');
|
|
79
|
+
assert.ok(watchCmd, 'watch command should exist');
|
|
80
|
+
// Verify it can accept positional path
|
|
81
|
+
const usage = watchCmd.usage();
|
|
82
|
+
assert.ok(usage.includes('[path]') || watchCmd.registeredArguments?.length >= 0, 'should accept optional path argument');
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=watch-cmd.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-cmd.test.js","sourceRoot":"","sources":["../../../src/tests/cli/watch-cmd.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-ui.test.d.ts","sourceRoot":"","sources":["../../src/tests/cli-ui.test.ts"],"names":[],"mappings":""}
|