codevault 1.7.2 โ†’ 1.7.4

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.
Files changed (215) hide show
  1. package/README.md +18 -5
  2. package/dist/chunking/semantic-chunker.d.ts.map +1 -1
  3. package/dist/chunking/semantic-chunker.js +20 -7
  4. package/dist/chunking/semantic-chunker.js.map +1 -1
  5. package/dist/cli/commands/index-cmd.d.ts +3 -0
  6. package/dist/cli/commands/index-cmd.d.ts.map +1 -0
  7. package/dist/cli/commands/index-cmd.js +118 -0
  8. package/dist/cli/commands/index-cmd.js.map +1 -0
  9. package/dist/cli/commands/info-cmd.d.ts +3 -0
  10. package/dist/cli/commands/info-cmd.d.ts.map +1 -0
  11. package/dist/cli/commands/info-cmd.js +47 -0
  12. package/dist/cli/commands/info-cmd.js.map +1 -0
  13. package/dist/cli/commands/mcp-cmd.d.ts +3 -0
  14. package/dist/cli/commands/mcp-cmd.d.ts.map +1 -0
  15. package/dist/cli/commands/mcp-cmd.js +33 -0
  16. package/dist/cli/commands/mcp-cmd.js.map +1 -0
  17. package/dist/cli/commands/search-cmd.d.ts +3 -0
  18. package/dist/cli/commands/search-cmd.d.ts.map +1 -0
  19. package/dist/cli/commands/search-cmd.js +52 -0
  20. package/dist/cli/commands/search-cmd.js.map +1 -0
  21. package/dist/cli/commands/search-with-code-cmd.d.ts +3 -0
  22. package/dist/cli/commands/search-with-code-cmd.d.ts.map +1 -0
  23. package/dist/cli/commands/search-with-code-cmd.js +74 -0
  24. package/dist/cli/commands/search-with-code-cmd.js.map +1 -0
  25. package/dist/cli/commands/update-cmd.d.ts +3 -0
  26. package/dist/cli/commands/update-cmd.d.ts.map +1 -0
  27. package/dist/cli/commands/update-cmd.js +24 -0
  28. package/dist/cli/commands/update-cmd.js.map +1 -0
  29. package/dist/cli/commands/watch-cmd.d.ts +3 -0
  30. package/dist/cli/commands/watch-cmd.d.ts.map +1 -0
  31. package/dist/cli/commands/watch-cmd.js +47 -0
  32. package/dist/cli/commands/watch-cmd.js.map +1 -0
  33. package/dist/cli/index.d.ts +3 -0
  34. package/dist/cli/index.d.ts.map +1 -0
  35. package/dist/cli/index.js +47 -0
  36. package/dist/cli/index.js.map +1 -0
  37. package/dist/cli.d.ts +1 -1
  38. package/dist/cli.d.ts.map +1 -1
  39. package/dist/cli.js +4 -398
  40. package/dist/cli.js.map +1 -1
  41. package/dist/codemap/io.d.ts +1 -0
  42. package/dist/codemap/io.d.ts.map +1 -1
  43. package/dist/codemap/io.js.map +1 -1
  44. package/dist/config/constants.d.ts +11 -0
  45. package/dist/config/constants.d.ts.map +1 -1
  46. package/dist/config/constants.js +9 -0
  47. package/dist/config/constants.js.map +1 -1
  48. package/dist/config/loader.d.ts.map +1 -1
  49. package/dist/config/loader.js +9 -2
  50. package/dist/config/loader.js.map +1 -1
  51. package/dist/core/IndexerEngine.d.ts +9 -17
  52. package/dist/core/IndexerEngine.d.ts.map +1 -1
  53. package/dist/core/IndexerEngine.js +72 -351
  54. package/dist/core/IndexerEngine.js.map +1 -1
  55. package/dist/core/SearchService.d.ts +13 -13
  56. package/dist/core/SearchService.d.ts.map +1 -1
  57. package/dist/core/SearchService.js +133 -325
  58. package/dist/core/SearchService.js.map +1 -1
  59. package/dist/core/batch-indexer.d.ts +5 -0
  60. package/dist/core/batch-indexer.d.ts.map +1 -1
  61. package/dist/core/batch-indexer.js +25 -27
  62. package/dist/core/batch-indexer.js.map +1 -1
  63. package/dist/core/indexer.d.ts +13 -0
  64. package/dist/core/indexer.d.ts.map +1 -1
  65. package/dist/core/indexer.js +13 -0
  66. package/dist/core/indexer.js.map +1 -1
  67. package/dist/core/indexing/FileProcessor.d.ts +42 -0
  68. package/dist/core/indexing/FileProcessor.d.ts.map +1 -0
  69. package/dist/core/indexing/FileProcessor.js +245 -0
  70. package/dist/core/indexing/FileProcessor.js.map +1 -0
  71. package/dist/core/indexing/IndexContext.d.ts +42 -0
  72. package/dist/core/indexing/IndexContext.d.ts.map +1 -0
  73. package/dist/core/indexing/IndexContext.js +133 -0
  74. package/dist/core/indexing/IndexContext.js.map +1 -0
  75. package/dist/core/indexing/IndexFinalizationStage.d.ts +39 -0
  76. package/dist/core/indexing/IndexFinalizationStage.d.ts.map +1 -0
  77. package/dist/core/indexing/IndexFinalizationStage.js +114 -0
  78. package/dist/core/indexing/IndexFinalizationStage.js.map +1 -0
  79. package/dist/core/indexing/IndexState.d.ts +50 -0
  80. package/dist/core/indexing/IndexState.d.ts.map +1 -0
  81. package/dist/core/indexing/IndexState.js +66 -0
  82. package/dist/core/indexing/IndexState.js.map +1 -0
  83. package/dist/core/indexing/chunk-pipeline.d.ts +39 -3
  84. package/dist/core/indexing/chunk-pipeline.d.ts.map +1 -1
  85. package/dist/core/indexing/chunk-pipeline.js +59 -24
  86. package/dist/core/indexing/chunk-pipeline.js.map +1 -1
  87. package/dist/core/search/CandidateRetriever.d.ts +51 -0
  88. package/dist/core/search/CandidateRetriever.d.ts.map +1 -0
  89. package/dist/core/search/CandidateRetriever.js +119 -0
  90. package/dist/core/search/CandidateRetriever.js.map +1 -0
  91. package/dist/core/search/HybridFusion.d.ts +89 -0
  92. package/dist/core/search/HybridFusion.d.ts.map +1 -0
  93. package/dist/core/search/HybridFusion.js +263 -0
  94. package/dist/core/search/HybridFusion.js.map +1 -0
  95. package/dist/core/search/ResultMapper.d.ts +31 -0
  96. package/dist/core/search/ResultMapper.d.ts.map +1 -0
  97. package/dist/core/search/ResultMapper.js +131 -0
  98. package/dist/core/search/ResultMapper.js.map +1 -0
  99. package/dist/core/search/SearchContextManager.d.ts +69 -0
  100. package/dist/core/search/SearchContextManager.d.ts.map +1 -0
  101. package/dist/core/search/SearchContextManager.js +139 -0
  102. package/dist/core/search/SearchContextManager.js.map +1 -0
  103. package/dist/core/search.d.ts +31 -0
  104. package/dist/core/search.d.ts.map +1 -1
  105. package/dist/core/search.js +33 -0
  106. package/dist/core/search.js.map +1 -1
  107. package/dist/core/types.d.ts +13 -0
  108. package/dist/core/types.d.ts.map +1 -1
  109. package/dist/database/db.d.ts +36 -18
  110. package/dist/database/db.d.ts.map +1 -1
  111. package/dist/database/db.js +151 -24
  112. package/dist/database/db.js.map +1 -1
  113. package/dist/indexer/ChangeQueue.d.ts +67 -0
  114. package/dist/indexer/ChangeQueue.d.ts.map +1 -0
  115. package/dist/indexer/ChangeQueue.js +182 -0
  116. package/dist/indexer/ChangeQueue.js.map +1 -0
  117. package/dist/indexer/ProviderManager.d.ts +33 -0
  118. package/dist/indexer/ProviderManager.d.ts.map +1 -0
  119. package/dist/indexer/ProviderManager.js +75 -0
  120. package/dist/indexer/ProviderManager.js.map +1 -0
  121. package/dist/indexer/WatchService.d.ts +68 -0
  122. package/dist/indexer/WatchService.d.ts.map +1 -0
  123. package/dist/indexer/WatchService.js +155 -0
  124. package/dist/indexer/WatchService.js.map +1 -0
  125. package/dist/indexer/merkle.d.ts +5 -0
  126. package/dist/indexer/merkle.d.ts.map +1 -1
  127. package/dist/indexer/merkle.js +36 -12
  128. package/dist/indexer/merkle.js.map +1 -1
  129. package/dist/indexer/update.d.ts +14 -2
  130. package/dist/indexer/update.d.ts.map +1 -1
  131. package/dist/indexer/update.js +11 -0
  132. package/dist/indexer/update.js.map +1 -1
  133. package/dist/indexer/watch.d.ts +15 -20
  134. package/dist/indexer/watch.d.ts.map +1 -1
  135. package/dist/indexer/watch.js +14 -223
  136. package/dist/indexer/watch.js.map +1 -1
  137. package/dist/mcp/handlers/project.d.ts.map +1 -1
  138. package/dist/mcp/handlers/project.js +17 -1
  139. package/dist/mcp/handlers/project.js.map +1 -1
  140. package/dist/mcp-server.d.ts +6 -0
  141. package/dist/mcp-server.d.ts.map +1 -1
  142. package/dist/mcp-server.js +63 -2
  143. package/dist/mcp-server.js.map +1 -1
  144. package/dist/providers/base.d.ts +3 -0
  145. package/dist/providers/base.d.ts.map +1 -1
  146. package/dist/providers/base.js.map +1 -1
  147. package/dist/providers/index.d.ts +7 -0
  148. package/dist/providers/index.d.ts.map +1 -1
  149. package/dist/providers/index.js +15 -0
  150. package/dist/providers/index.js.map +1 -1
  151. package/dist/providers/mock.d.ts +16 -0
  152. package/dist/providers/mock.d.ts.map +1 -0
  153. package/dist/providers/mock.js +46 -0
  154. package/dist/providers/mock.js.map +1 -0
  155. package/dist/providers/openai.d.ts.map +1 -1
  156. package/dist/providers/openai.js +4 -8
  157. package/dist/providers/openai.js.map +1 -1
  158. package/dist/ranking/api-reranker.d.ts.map +1 -1
  159. package/dist/ranking/api-reranker.js +9 -5
  160. package/dist/ranking/api-reranker.js.map +1 -1
  161. package/dist/search/bm25.d.ts.map +1 -1
  162. package/dist/search/bm25.js +21 -1
  163. package/dist/search/bm25.js.map +1 -1
  164. package/dist/search/scope.d.ts +1 -1
  165. package/dist/search/scope.d.ts.map +1 -1
  166. package/dist/search/scope.js +3 -3
  167. package/dist/search/scope.js.map +1 -1
  168. package/dist/storage/encrypted-chunks.d.ts +7 -1
  169. package/dist/storage/encrypted-chunks.d.ts.map +1 -1
  170. package/dist/storage/encrypted-chunks.js +187 -75
  171. package/dist/storage/encrypted-chunks.js.map +1 -1
  172. package/dist/symbols/extract.d.ts +2 -1
  173. package/dist/symbols/extract.d.ts.map +1 -1
  174. package/dist/symbols/extract.js +1 -1
  175. package/dist/symbols/extract.js.map +1 -1
  176. package/dist/symbols/graph.d.ts.map +1 -1
  177. package/dist/symbols/graph.js.map +1 -1
  178. package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -1
  179. package/dist/synthesis/conversational-synthesizer.js +68 -76
  180. package/dist/synthesis/conversational-synthesizer.js.map +1 -1
  181. package/dist/synthesis/prompt-builder.d.ts +2 -0
  182. package/dist/synthesis/prompt-builder.d.ts.map +1 -1
  183. package/dist/synthesis/prompt-builder.js +80 -81
  184. package/dist/synthesis/prompt-builder.js.map +1 -1
  185. package/dist/synthesis/synthesizer.d.ts +11 -0
  186. package/dist/synthesis/synthesizer.d.ts.map +1 -1
  187. package/dist/synthesis/synthesizer.js +29 -1
  188. package/dist/synthesis/synthesizer.js.map +1 -1
  189. package/dist/tests/helpers/test-repo.d.ts +7 -0
  190. package/dist/tests/helpers/test-repo.d.ts.map +1 -0
  191. package/dist/tests/helpers/test-repo.js +21 -0
  192. package/dist/tests/helpers/test-repo.js.map +1 -0
  193. package/dist/tests/integration/index-search.integration.test.d.ts +2 -0
  194. package/dist/tests/integration/index-search.integration.test.d.ts.map +1 -0
  195. package/dist/tests/integration/index-search.integration.test.js +163 -0
  196. package/dist/tests/integration/index-search.integration.test.js.map +1 -0
  197. package/dist/tests/simple-lru.test.js +22 -10
  198. package/dist/tests/simple-lru.test.js.map +1 -1
  199. package/dist/utils/cli-ui.d.ts.map +1 -1
  200. package/dist/utils/cli-ui.js +9 -3
  201. package/dist/utils/cli-ui.js.map +1 -1
  202. package/dist/utils/logger.d.ts +4 -1
  203. package/dist/utils/logger.d.ts.map +1 -1
  204. package/dist/utils/logger.js.map +1 -1
  205. package/dist/utils/path-helpers.d.ts.map +1 -1
  206. package/dist/utils/path-helpers.js +17 -1
  207. package/dist/utils/path-helpers.js.map +1 -1
  208. package/dist/utils/scan-patterns.d.ts.map +1 -1
  209. package/dist/utils/scan-patterns.js +1 -2
  210. package/dist/utils/scan-patterns.js.map +1 -1
  211. package/dist/utils/simple-lru.d.ts +21 -2
  212. package/dist/utils/simple-lru.d.ts.map +1 -1
  213. package/dist/utils/simple-lru.js +126 -19
  214. package/dist/utils/simple-lru.js.map +1 -1
  215. package/package.json +13 -4
package/README.md CHANGED
@@ -7,22 +7,30 @@ CodeVault is an intelligent code indexing and search system that enables AI assi
7
7
  ## ๐ŸŒŸ Features
8
8
 
9
9
  - **๐Ÿ” Semantic Search**: Find code by meaning, not just keywords using vector embeddings
10
- - **๐Ÿค– MCP Integration**: Native support for Claude Desktop and other MCP clients
10
+ - **๐Ÿค– MCP Integration**: Native support for Claude Desktop and other MCP clients (search, synthesize, update tools)
11
11
  - **๐Ÿ’ฌ LLM-Synthesized Answers**: Ask questions in natural language, get markdown responses with code citations
12
12
  - **๐Ÿ—ฃ๏ธ Interactive Chat Mode**: Have multi-turn conversations about your codebase with conversation history
13
13
  - **๐ŸŽฏ Symbol-Aware Ranking**: Boost results based on function signatures, parameters, and relationships
14
14
  - **โšก Hybrid Retrieval**: Combines vector embeddings with BM25 keyword matching via Reciprocal Rank Fusion
15
15
  - **๐Ÿš€ Batch Processing**: Efficient API usage with configurable batching (50 chunks/batch by default)
16
+ - **๐Ÿงช Integration Tests**: End-to-end coverage for indexing, search, encryption, and watch flows
16
17
  - **๐Ÿ“ฆ Smart Chunking**: Token-aware semantic code splitting with overlap for optimal context
17
18
  - **๐Ÿ”„ Context Packs**: Save and reuse search scopes for different features/modules
18
19
  - **๐Ÿ  Local-First**: Works with local models (Ollama) or cloud APIs (OpenAI, Nebius, OpenRouter)
19
- - **๐Ÿ” Optional Encryption**: AES-256-GCM encryption for indexed code chunks
20
+ - **๐Ÿ” Optional Encryption**: AES-256-GCM encryption for indexed code chunks (multi-key/rotation support)
20
21
  - **โš™๏ธ Global Configuration**: One-time setup with interactive wizard for CLI convenience
21
22
  - **๐Ÿ“Š Multi-Language Support**: 25+ programming languages via Tree-sitter
22
- - **๐Ÿ”Ž File Watching**: Real-time index updates with debounced change detection
23
+ - **๐Ÿ”Ž File Watching**: Real-time index updates with debounced change detection and provider reuse
24
+ - **โœ… CI/CD**: Typecheck + lint + tests on PR/main; auto-publish to npm on version bumps (with NPM_TOKEN)
23
25
  - **โฑ๏ธ Rate Limiting**: Intelligent request/token throttling with automatic retry
24
26
  - **๐Ÿ’พ Memory Efficient**: LRU caches with automatic cleanup for long-running processes
25
27
 
28
+ ## ๐Ÿ“‹ Prerequisites
29
+
30
+ - **Node.js**: Version 18.0.0 or higher
31
+ - **npm**: Comes with Node.js
32
+ - **API Key**: OpenAI API key or compatible endpoint (Ollama for local models)
33
+
26
34
  ## ๐Ÿš€ Quick Start
27
35
 
28
36
  ### Installation
@@ -193,10 +201,15 @@ See complete setup guide: **[MCP Setup Guide](docs/MCP_SETUP.md)**
193
201
  "CODEVAULT_RERANK_MODEL": "qwen/qwen3-reranker-8b"
194
202
  }
195
203
  }
196
- }
204
+ }
197
205
  }
198
206
  ```
199
207
 
208
+ ## ๐Ÿ› ๏ธ Development & CI/CD
209
+
210
+ - CI runs on PRs and pushes to `main`: `npm run typecheck`, `npm run lint`, and `npm test`.
211
+ - Version bumps on `main` auto-publish to npm when `NPM_TOKEN` is configured in repo secrets.
212
+
200
213
  **Example configs:**
201
214
  - [NPX (Recommended)](examples/claude-desktop-config-npx.example.json)
202
215
  - [Full Options](examples/claude-desktop-config.example.json)
@@ -384,4 +397,4 @@ Built with:
384
397
 
385
398
  **Version**: 1.6.0
386
399
  **Built by**: Shariq Riaz
387
- **Last Updated**: November 2025
400
+ **Last Updated**: November 2025
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-chunker.d.ts","sourceRoot":"","sources":["../../src/chunking/semantic-chunker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,UAAU,YAAY;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,cAAc,EAAE,CAwBnG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAgB9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO7E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,cAAc,EAAE,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,UAAQ,GACpB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC,CAgCzD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,cAAc,EAAE,CAAC,CA0C3B"}
1
+ {"version":3,"file":"semantic-chunker.d.ts","sourceRoot":"","sources":["../../src/chunking/semantic-chunker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,UAAU,YAAY;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,cAAc,EAAE,CAwBnG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAgB9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO7E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIrG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,cAAc,EAAE,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,UAAQ,GACpB,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC,CAgCzD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,cAAc,EAAE,CAAC,CA6D3B"}
@@ -134,13 +134,26 @@ export async function yieldStatementChunks(node, source, maxSize, overlapSize, p
134
134
  size: currentSize,
135
135
  unit: profile.useTokens ? 'tokens' : 'characters'
136
136
  });
137
- // Use the provided overlapSize parameter instead of hardcoded 20%
138
- const overlapRatio = Math.min(1, Math.max(0, overlapSize / maxSize));
139
- const overlapLines = Math.max(1, Math.floor(currentChunk.length * overlapRatio));
140
- currentChunk = currentChunk.slice(-overlapLines);
141
- currentSize = profile.useTokens && profile.tokenCounter
142
- ? await profile.tokenCounter(currentChunk.join('\n'))
143
- : currentChunk.join('\n').length;
137
+ // Ensure minimum 20% overlap by token/character count, not line count
138
+ // This prevents overlap from degrading to 1-2% for large chunks
139
+ const MIN_OVERLAP_RATIO = 0.2;
140
+ const targetOverlapSize = Math.max(overlapSize, Math.floor(maxSize * MIN_OVERLAP_RATIO));
141
+ // Calculate how many lines we need to achieve target overlap size
142
+ let overlapAccumulatedSize = 0;
143
+ let linesToKeep = 0;
144
+ // Walk backwards through lines to accumulate target overlap size
145
+ for (let i = currentChunk.length - 1; i >= 0 && overlapAccumulatedSize < targetOverlapSize; i--) {
146
+ const lineText = currentChunk[i];
147
+ const lineSize = profile.useTokens && profile.tokenCounter
148
+ ? await profile.tokenCounter(lineText)
149
+ : lineText.length;
150
+ overlapAccumulatedSize += lineSize;
151
+ linesToKeep++;
152
+ }
153
+ // Keep at least 1 line for overlap
154
+ linesToKeep = Math.max(1, linesToKeep);
155
+ currentChunk = currentChunk.slice(-linesToKeep);
156
+ currentSize = overlapAccumulatedSize;
144
157
  }
145
158
  currentChunk.push(line);
146
159
  currentSize += lineSize;
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-chunker.js","sourceRoot":"","sources":["../../src/chunking/semantic-chunker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-chunker.js","sourceRoot":"","sources":["../../src/chunking/semantic-chunker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerIndexCommand(program: Command): void;
3
+ //# sourceMappingURL=index-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index-cmd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoH3D"}
@@ -0,0 +1,118 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { indexProject } from '../../core/indexer.js';
4
+ import { IndexerUI } from '../../utils/cli-ui.js';
5
+ import { indexProjectWithProgress } from '../../utils/indexer-with-progress.js';
6
+ import { log } from '../../utils/logger.js';
7
+ import { createEmbeddingProvider, getModelProfile, getSizeLimits } from '../../providers/index.js';
8
+ import { resolveProviderContext } from '../../config/resolver.js';
9
+ export function registerIndexCommand(program) {
10
+ program
11
+ .command('index [path]')
12
+ .description('Index project and build codevault.codemap.json')
13
+ .option('-p, --provider <provider>', 'embedding provider (auto|openai)', 'auto')
14
+ .option('--project <path>', 'alias for project path')
15
+ .option('--directory <path>', 'alias for project directory')
16
+ .option('--encrypt <mode>', 'encrypt chunk payloads (on|off)')
17
+ .option('--verbose', 'show verbose output')
18
+ .action(async (projectPath = '.', options) => {
19
+ const resolvedPath = options.project || options.directory || projectPath || '.';
20
+ const ui = new IndexerUI();
21
+ try {
22
+ if (!options.verbose) {
23
+ process.env.CODEVAULT_QUIET = 'true';
24
+ process.env.CODEVAULT_MODEL_PROFILE_CACHED = 'true';
25
+ log.setQuiet(true);
26
+ ui.showHeader();
27
+ const providerContext = resolveProviderContext(resolvedPath);
28
+ const embeddingProvider = createEmbeddingProvider(options.provider, providerContext.embedding);
29
+ if (embeddingProvider.init) {
30
+ await embeddingProvider.init();
31
+ }
32
+ const providerName = embeddingProvider.getName();
33
+ const modelName = embeddingProvider.getModelName ? embeddingProvider.getModelName() : null;
34
+ const profile = await getModelProfile(providerName, modelName || providerName);
35
+ const limits = getSizeLimits(profile);
36
+ ui.showConfiguration({
37
+ provider: providerName,
38
+ model: modelName || undefined,
39
+ dimensions: embeddingProvider.getDimensions(),
40
+ chunkSize: {
41
+ min: limits.min,
42
+ max: limits.max,
43
+ optimal: limits.optimal
44
+ },
45
+ rateLimit: embeddingProvider.rateLimiter ? {
46
+ rpm: embeddingProvider.rateLimiter.getStats().rpm || 0
47
+ } : undefined
48
+ });
49
+ ui.startScanning();
50
+ }
51
+ else {
52
+ console.log('Starting project indexing...');
53
+ console.log(`Provider: ${options.provider}`);
54
+ }
55
+ let result;
56
+ if (!options.verbose) {
57
+ result = await indexProjectWithProgress({
58
+ repoPath: resolvedPath,
59
+ provider: options.provider,
60
+ encryptMode: options.encrypt,
61
+ callbacks: {
62
+ onScanComplete: (fileCount) => {
63
+ ui.finishScanning(fileCount, 25);
64
+ ui.startIndexing();
65
+ },
66
+ onFileProgress: (current, total, fileName) => {
67
+ ui.updateProgress(fileName);
68
+ },
69
+ onFinalizing: () => {
70
+ ui.showFinalizing();
71
+ }
72
+ }
73
+ });
74
+ ui.cleanup();
75
+ ui.finishIndexing();
76
+ const dbPath = path.join(resolvedPath, '.codevault/codevault.db');
77
+ const codemapPath = path.join(resolvedPath, 'codevault.codemap.json');
78
+ const dbSize = fs.existsSync(dbPath) ? `${(fs.statSync(dbPath).size / 1024 / 1024).toFixed(1)} MB` : undefined;
79
+ const codemapSize = fs.existsSync(codemapPath) ? `${(fs.statSync(codemapPath).size / 1024).toFixed(1)} KB` : undefined;
80
+ if (result.chunkingStats) {
81
+ ui.updateStats({
82
+ chunks: result.processedChunks,
83
+ merged: result.chunkingStats.mergedSmall,
84
+ subdivided: result.chunkingStats.subdivided,
85
+ skipped: result.chunkingStats.skippedSmall
86
+ });
87
+ }
88
+ ui.showSummary({
89
+ totalChunks: result.totalChunks,
90
+ dbSize,
91
+ codemapSize,
92
+ tokenStats: result.tokenStats
93
+ });
94
+ delete process.env.CODEVAULT_QUIET;
95
+ delete process.env.CODEVAULT_MODEL_PROFILE_CACHED;
96
+ }
97
+ else {
98
+ result = await indexProject({
99
+ repoPath: resolvedPath,
100
+ provider: options.provider,
101
+ encryptMode: options.encrypt
102
+ });
103
+ console.log('Indexing completed successfully');
104
+ }
105
+ }
106
+ catch (error) {
107
+ if (!options.verbose) {
108
+ ui.cleanup();
109
+ ui.showError(error.message);
110
+ }
111
+ else {
112
+ console.error('ERROR during indexing:', error.message);
113
+ }
114
+ process.exit(1);
115
+ }
116
+ });
117
+ }
118
+ //# sourceMappingURL=index-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/index-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerInfoCommand(program: Command): void;
3
+ //# sourceMappingURL=info-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info-cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD1D"}
@@ -0,0 +1,47 @@
1
+ import fs from 'fs';
2
+ import { readCodemap } from '../../codemap/io.js';
3
+ export function registerInfoCommand(program) {
4
+ program
5
+ .command('info')
6
+ .description('Show project information')
7
+ .action(async () => {
8
+ try {
9
+ const codemapPath = 'codevault.codemap.json';
10
+ if (!fs.existsSync(codemapPath)) {
11
+ console.log('Project not indexed');
12
+ console.log('TIP: Run "codevault index" to index the project');
13
+ return;
14
+ }
15
+ const codemap = readCodemap(codemapPath);
16
+ const chunks = Object.values(codemap);
17
+ const langStats = chunks.reduce((acc, chunk) => {
18
+ acc[chunk.lang || 'unknown'] = (acc[chunk.lang || 'unknown'] || 0) + 1;
19
+ return acc;
20
+ }, {});
21
+ const fileStats = chunks.reduce((acc, chunk) => {
22
+ acc[chunk.file] = (acc[chunk.file] || 0) + 1;
23
+ return acc;
24
+ }, {});
25
+ const topFiles = Object.entries(fileStats)
26
+ .sort(([, a], [, b]) => b - a)
27
+ .slice(0, 10);
28
+ console.log('CodeVault project information\n');
29
+ console.log(`Total indexed functions: ${chunks.length}`);
30
+ console.log('');
31
+ console.log('By language:');
32
+ Object.entries(langStats).forEach(([lang, count]) => {
33
+ console.log(` ${lang}: ${count} functions`);
34
+ });
35
+ console.log('');
36
+ console.log('Files with most functions:');
37
+ topFiles.forEach(([file, count]) => {
38
+ console.log(` ${file}: ${count} functions`);
39
+ });
40
+ }
41
+ catch (error) {
42
+ console.error('ERROR getting information:', error.message);
43
+ process.exit(1);
44
+ }
45
+ });
46
+ }
47
+ //# sourceMappingURL=info-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/info-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,wBAAwB,CAAC;YAE7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEtC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAA2B,EAAE,KAAK,EAAE,EAAE;gBACrE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvE,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAA2B,EAAE,KAAK,EAAE,EAAE;gBACrE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7C,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;iBACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,YAAY,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;gBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,YAAY,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMcpCommand(program: Command): void;
3
+ //# sourceMappingURL=mcp-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp-cmd.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiCzD"}
@@ -0,0 +1,33 @@
1
+ import { spawn } from 'child_process';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ export function registerMcpCommand(program) {
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ program
8
+ .command('mcp')
9
+ .description('Start MCP server')
10
+ .action(() => {
11
+ const serverPath = path.join(__dirname, '..', '..', 'mcp-server.js');
12
+ const mcpServer = spawn('node', [serverPath], {
13
+ stdio: 'inherit'
14
+ });
15
+ mcpServer.on('error', (error) => {
16
+ process.stderr.write(`ERROR starting MCP server: ${error.message}\n`);
17
+ process.exit(1);
18
+ });
19
+ mcpServer.on('exit', (code) => {
20
+ if (code !== 0) {
21
+ process.stderr.write(`MCP server terminated with code: ${code}\n`);
22
+ process.exit(code || 0);
23
+ }
24
+ });
25
+ process.on('SIGINT', () => {
26
+ mcpServer.kill('SIGINT');
27
+ });
28
+ process.on('SIGTERM', () => {
29
+ mcpServer.kill('SIGTERM');
30
+ });
31
+ });
32
+ }
33
+ //# sourceMappingURL=mcp-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;YAC5C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,IAAI,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSearchCommand(program: Command): void;
3
+ //# sourceMappingURL=search-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search-cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD5D"}
@@ -0,0 +1,52 @@
1
+ import chalk from 'chalk';
2
+ import { resolveScopeWithPack } from '../../context/packs.js';
3
+ import { searchCode } from '../../core/search.js';
4
+ export function registerSearchCommand(program) {
5
+ program
6
+ .command('search <query> [path]')
7
+ .description('Search indexed code (returns metadata only)')
8
+ .option('-k, --limit <num>', 'maximum results', '10')
9
+ .option('-p, --provider <provider>', 'embedding provider', 'auto')
10
+ .option('--project <path>', 'project path')
11
+ .option('--directory <path>', 'project directory')
12
+ .option('--path_glob <pattern...>', 'file patterns')
13
+ .option('--tags <tag...>', 'filter by tags')
14
+ .option('--lang <language...>', 'filter by language')
15
+ .option('--reranker <mode>', 'reranker (off|api)', 'off')
16
+ .option('--hybrid <mode>', 'hybrid search (on|off)', 'on')
17
+ .option('--bm25 <mode>', 'BM25 (on|off)', 'on')
18
+ .option('--symbol_boost <mode>', 'symbol boost (on|off)', 'on')
19
+ .action(async (query, projectPath = '.', options) => {
20
+ try {
21
+ process.env.CODEVAULT_QUIET = 'true';
22
+ const resolvedPath = options.project || options.directory || projectPath || '.';
23
+ const limit = parseInt(options.limit);
24
+ const { scope: scopeFilters } = resolveScopeWithPack(options, { basePath: resolvedPath });
25
+ const results = await searchCode(query, limit, options.provider, resolvedPath, scopeFilters);
26
+ if (!results.success) {
27
+ console.log(chalk.yellow(`\nNo results found for "${query}"`));
28
+ if (results.suggestion) {
29
+ console.log(chalk.gray(`Suggestion: ${results.suggestion}`));
30
+ }
31
+ return;
32
+ }
33
+ if (results.results.length === 0) {
34
+ console.log(chalk.yellow(`\nNo results found for "${query}"`));
35
+ return;
36
+ }
37
+ console.log(chalk.cyan(`\n๐Ÿ” Found ${results.results.length} results for "${query}"\n`));
38
+ results.results.forEach((result, index) => {
39
+ const score = (result.meta.score * 100).toFixed(0);
40
+ console.log(chalk.white(`${index + 1}. ${result.path}`));
41
+ console.log(chalk.gray(` ${result.meta.symbol}() ยท ${result.lang}`));
42
+ console.log(chalk.gray(` Score: ${score}%\n`));
43
+ });
44
+ delete process.env.CODEVAULT_QUIET;
45
+ }
46
+ catch (error) {
47
+ console.error(chalk.red('\nโŒ Search error:'), error.message);
48
+ process.exit(1);
49
+ }
50
+ });
51
+ }
52
+ //# sourceMappingURL=search-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/search-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSearchWithCodeCommand(program: Command): void;
3
+ //# sourceMappingURL=search-with-code-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-with-code-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search-with-code-cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkFpE"}
@@ -0,0 +1,74 @@
1
+ import chalk from 'chalk';
2
+ import { resolveScopeWithPack } from '../../context/packs.js';
3
+ import { searchCode } from '../../core/search.js';
4
+ export function registerSearchWithCodeCommand(program) {
5
+ program
6
+ .command('search-with-code <query> [path]')
7
+ .description('Search indexed code and display full code chunks')
8
+ .option('-k, --limit <num>', 'maximum results', '5')
9
+ .option('-p, --provider <provider>', 'embedding provider', 'auto')
10
+ .option('--project <path>', 'project path')
11
+ .option('--directory <path>', 'project directory')
12
+ .option('--path_glob <pattern...>', 'file patterns')
13
+ .option('--tags <tag...>', 'filter by tags')
14
+ .option('--lang <language...>', 'filter by language')
15
+ .option('--reranker <mode>', 'reranker (off|api)', 'off')
16
+ .option('--hybrid <mode>', 'hybrid search (on|off)', 'on')
17
+ .option('--bm25 <mode>', 'BM25 (on|off)', 'on')
18
+ .option('--symbol_boost <mode>', 'symbol boost (on|off)', 'on')
19
+ .option('--max-code-size <bytes>', 'max code size to display per chunk', '100000')
20
+ .action(async (query, projectPath = '.', options) => {
21
+ try {
22
+ process.env.CODEVAULT_QUIET = 'true';
23
+ const resolvedPath = options.project || options.directory || projectPath || '.';
24
+ const limit = parseInt(options.limit);
25
+ const maxCodeSize = parseInt(options.maxCodeSize || '100000');
26
+ const { scope: scopeFilters } = resolveScopeWithPack(options, { basePath: resolvedPath });
27
+ const results = await searchCode(query, limit, options.provider, resolvedPath, scopeFilters);
28
+ if (!results.success) {
29
+ console.log(chalk.yellow(`\nNo results found for "${query}"`));
30
+ if (results.suggestion) {
31
+ console.log(chalk.gray(`Suggestion: ${results.suggestion}`));
32
+ }
33
+ return;
34
+ }
35
+ if (results.results.length === 0) {
36
+ console.log(chalk.yellow(`\nNo results found for "${query}"`));
37
+ return;
38
+ }
39
+ console.log(chalk.cyan(`\n๐Ÿ” Found ${results.results.length} results with code for "${query}"\n`));
40
+ const { getChunk } = await import('../../core/search.js');
41
+ for (let index = 0; index < results.results.length; index++) {
42
+ const result = results.results[index];
43
+ const score = (result.meta.score * 100).toFixed(0);
44
+ console.log(chalk.gray('โ”'.repeat(80)));
45
+ console.log(chalk.white(`๐Ÿ“„ ${result.path} ยท ${result.meta.symbol}() ยท Score: ${score}%`));
46
+ console.log(chalk.gray('โ”'.repeat(80)));
47
+ const chunkResult = await getChunk(result.sha, resolvedPath);
48
+ if (chunkResult.success && chunkResult.code) {
49
+ let code = chunkResult.code;
50
+ let truncated = false;
51
+ if (code.length > maxCodeSize) {
52
+ code = code.substring(0, maxCodeSize);
53
+ truncated = true;
54
+ }
55
+ console.log();
56
+ console.log(code);
57
+ if (truncated) {
58
+ console.log(chalk.yellow(`\nโš ๏ธ Code truncated (${chunkResult.code.length} chars, showing ${maxCodeSize})`));
59
+ }
60
+ }
61
+ else {
62
+ console.log(chalk.red(`\nโŒ Error retrieving code: ${chunkResult.error}`));
63
+ }
64
+ console.log('');
65
+ }
66
+ delete process.env.CODEVAULT_QUIET;
67
+ }
68
+ catch (error) {
69
+ console.error(chalk.red('\nโŒ Search error:'), error.message);
70
+ process.exit(1);
71
+ }
72
+ });
73
+ }
74
+ //# sourceMappingURL=search-with-code-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-with-code-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/search-with-code-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerUpdateCommand(program: Command): void;
3
+ //# sourceMappingURL=update-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB5D"}
@@ -0,0 +1,24 @@
1
+ import { indexProject } from '../../core/indexer.js';
2
+ export function registerUpdateCommand(program) {
3
+ program
4
+ .command('update [path]')
5
+ .description('Update index by re-scanning all files')
6
+ .option('-p, --provider <provider>', 'embedding provider (auto|openai)', 'auto')
7
+ .option('--project <path>', 'alias for project path')
8
+ .option('--directory <path>', 'alias for project directory')
9
+ .option('--encrypt <mode>', 'encrypt chunk payloads (on|off)')
10
+ .action(async (projectPath = '.', options) => {
11
+ const resolvedPath = options.project || options.directory || projectPath || '.';
12
+ console.log('๐Ÿ”„ Updating project index...');
13
+ console.log(`Provider: ${options.provider}`);
14
+ try {
15
+ await indexProject({ repoPath: resolvedPath, provider: options.provider, encryptMode: options.encrypt });
16
+ console.log('โœ… Index updated successfully');
17
+ }
18
+ catch (error) {
19
+ console.error('โŒ ERROR during update:', error.message);
20
+ process.exit(1);
21
+ }
22
+ });
23
+ }
24
+ //# sourceMappingURL=update-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/update-cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,CAAC;SAC/E,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;SACpD,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;SAC3D,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE;QAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,WAAW,IAAI,GAAG,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACzG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerWatchCommand(program: Command): void;
3
+ //# sourceMappingURL=watch-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/watch-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgD3D"}