codevault 1.4.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +79 -44
- package/README.md +115 -343
- package/package.json +4 -4
- package/dist/chunking/file-grouper.d.ts +0 -39
- package/dist/chunking/file-grouper.d.ts.map +0 -1
- package/dist/chunking/file-grouper.js +0 -181
- package/dist/chunking/file-grouper.js.map +0 -1
- package/dist/chunking/semantic-chunker.d.ts +0 -37
- package/dist/chunking/semantic-chunker.d.ts.map +0 -1
- package/dist/chunking/semantic-chunker.js +0 -172
- package/dist/chunking/semantic-chunker.js.map +0 -1
- package/dist/chunking/token-counter.d.ts +0 -28
- package/dist/chunking/token-counter.d.ts.map +0 -1
- package/dist/chunking/token-counter.js +0 -207
- package/dist/chunking/token-counter.js.map +0 -1
- package/dist/cli/commands/ask-cmd.d.ts +0 -3
- package/dist/cli/commands/ask-cmd.d.ts.map +0 -1
- package/dist/cli/commands/ask-cmd.js +0 -130
- package/dist/cli/commands/ask-cmd.js.map +0 -1
- package/dist/cli/commands/config-cmd.d.ts +0 -3
- package/dist/cli/commands/config-cmd.d.ts.map +0 -1
- package/dist/cli/commands/config-cmd.js +0 -245
- package/dist/cli/commands/config-cmd.js.map +0 -1
- package/dist/cli/commands/context.d.ts +0 -3
- package/dist/cli/commands/context.d.ts.map +0 -1
- package/dist/cli/commands/context.js +0 -98
- package/dist/cli/commands/context.js.map +0 -1
- package/dist/cli/commands/interactive-config.d.ts +0 -2
- package/dist/cli/commands/interactive-config.d.ts.map +0 -1
- package/dist/cli/commands/interactive-config.js +0 -304
- package/dist/cli/commands/interactive-config.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -398
- package/dist/cli.js.map +0 -1
- package/dist/codemap/io.d.ts +0 -5
- package/dist/codemap/io.d.ts.map +0 -1
- package/dist/codemap/io.js +0 -30
- package/dist/codemap/io.js.map +0 -1
- package/dist/config/apply-env.d.ts +0 -15
- package/dist/config/apply-env.d.ts.map +0 -1
- package/dist/config/apply-env.js +0 -107
- package/dist/config/apply-env.js.map +0 -1
- package/dist/config/loader.d.ts +0 -57
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -304
- package/dist/config/loader.js.map +0 -1
- package/dist/config/types.d.ts +0 -48
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -2
- package/dist/config/types.js.map +0 -1
- package/dist/context/packs.d.ts +0 -33
- package/dist/context/packs.d.ts.map +0 -1
- package/dist/context/packs.js +0 -180
- package/dist/context/packs.js.map +0 -1
- package/dist/core/batch-indexer.d.ts +0 -44
- package/dist/core/batch-indexer.d.ts.map +0 -1
- package/dist/core/batch-indexer.js +0 -161
- package/dist/core/batch-indexer.js.map +0 -1
- package/dist/core/indexer.d.ts +0 -3
- package/dist/core/indexer.d.ts.map +0 -1
- package/dist/core/indexer.js +0 -624
- package/dist/core/indexer.js.map +0 -1
- package/dist/core/metadata.d.ts +0 -19
- package/dist/core/metadata.d.ts.map +0 -1
- package/dist/core/metadata.js +0 -161
- package/dist/core/metadata.js.map +0 -1
- package/dist/core/search.d.ts +0 -7
- package/dist/core/search.d.ts.map +0 -1
- package/dist/core/search.js +0 -542
- package/dist/core/search.js.map +0 -1
- package/dist/core/symbol-extractor.d.ts +0 -3
- package/dist/core/symbol-extractor.d.ts.map +0 -1
- package/dist/core/symbol-extractor.js +0 -78
- package/dist/core/symbol-extractor.js.map +0 -1
- package/dist/core/types.d.ts +0 -104
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/database/db.d.ts +0 -63
- package/dist/database/db.d.ts.map +0 -1
- package/dist/database/db.js +0 -205
- package/dist/database/db.js.map +0 -1
- package/dist/indexer/merkle.d.ts +0 -13
- package/dist/indexer/merkle.d.ts.map +0 -1
- package/dist/indexer/merkle.js +0 -86
- package/dist/indexer/merkle.js.map +0 -1
- package/dist/indexer/update.d.ts +0 -19
- package/dist/indexer/update.d.ts.map +0 -1
- package/dist/indexer/update.js +0 -40
- package/dist/indexer/update.js.map +0 -1
- package/dist/indexer/watch.d.ts +0 -21
- package/dist/indexer/watch.d.ts.map +0 -1
- package/dist/indexer/watch.js +0 -222
- package/dist/indexer/watch.js.map +0 -1
- package/dist/languages/rules.d.ts +0 -11
- package/dist/languages/rules.d.ts.map +0 -1
- package/dist/languages/rules.js +0 -371
- package/dist/languages/rules.js.map +0 -1
- package/dist/languages/tree-sitter-loader.d.ts +0 -27
- package/dist/languages/tree-sitter-loader.d.ts.map +0 -1
- package/dist/languages/tree-sitter-loader.js +0 -76
- package/dist/languages/tree-sitter-loader.js.map +0 -1
- package/dist/mcp/tools/ask-codebase.d.ts +0 -85
- package/dist/mcp/tools/ask-codebase.d.ts.map +0 -1
- package/dist/mcp/tools/ask-codebase.js +0 -125
- package/dist/mcp/tools/ask-codebase.js.map +0 -1
- package/dist/mcp/tools/use-context-pack.d.ts +0 -57
- package/dist/mcp/tools/use-context-pack.d.ts.map +0 -1
- package/dist/mcp/tools/use-context-pack.js +0 -91
- package/dist/mcp/tools/use-context-pack.js.map +0 -1
- package/dist/mcp-server.d.ts +0 -3
- package/dist/mcp-server.d.ts.map +0 -1
- package/dist/mcp-server.js +0 -518
- package/dist/mcp-server.js.map +0 -1
- package/dist/providers/base.d.ts +0 -39
- package/dist/providers/base.d.ts.map +0 -1
- package/dist/providers/base.js +0 -199
- package/dist/providers/base.js.map +0 -1
- package/dist/providers/chat-llm.d.ts +0 -41
- package/dist/providers/chat-llm.d.ts.map +0 -1
- package/dist/providers/chat-llm.js +0 -155
- package/dist/providers/chat-llm.js.map +0 -1
- package/dist/providers/index.d.ts +0 -6
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -23
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/ollama.d.ts +0 -13
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -50
- package/dist/providers/ollama.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -14
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -122
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/token-counter.d.ts +0 -2
- package/dist/providers/token-counter.d.ts.map +0 -1
- package/dist/providers/token-counter.js +0 -18
- package/dist/providers/token-counter.js.map +0 -1
- package/dist/ranking/api-reranker.d.ts +0 -18
- package/dist/ranking/api-reranker.d.ts.map +0 -1
- package/dist/ranking/api-reranker.js +0 -134
- package/dist/ranking/api-reranker.js.map +0 -1
- package/dist/ranking/symbol-boost.d.ts +0 -15
- package/dist/ranking/symbol-boost.d.ts.map +0 -1
- package/dist/ranking/symbol-boost.js +0 -154
- package/dist/ranking/symbol-boost.js.map +0 -1
- package/dist/search/bm25.d.ts +0 -17
- package/dist/search/bm25.d.ts.map +0 -1
- package/dist/search/bm25.js +0 -56
- package/dist/search/bm25.js.map +0 -1
- package/dist/search/hybrid.d.ts +0 -21
- package/dist/search/hybrid.d.ts.map +0 -1
- package/dist/search/hybrid.js +0 -50
- package/dist/search/hybrid.js.map +0 -1
- package/dist/search/scope.d.ts +0 -5
- package/dist/search/scope.d.ts.map +0 -1
- package/dist/search/scope.js +0 -107
- package/dist/search/scope.js.map +0 -1
- package/dist/storage/encrypted-chunks.d.ts +0 -40
- package/dist/storage/encrypted-chunks.d.ts.map +0 -1
- package/dist/storage/encrypted-chunks.js +0 -237
- package/dist/storage/encrypted-chunks.js.map +0 -1
- package/dist/symbols/extract.d.ts +0 -15
- package/dist/symbols/extract.d.ts.map +0 -1
- package/dist/symbols/extract.js +0 -187
- package/dist/symbols/extract.js.map +0 -1
- package/dist/symbols/graph.d.ts +0 -3
- package/dist/symbols/graph.d.ts.map +0 -1
- package/dist/symbols/graph.js +0 -89
- package/dist/symbols/graph.js.map +0 -1
- package/dist/synthesis/markdown-formatter.d.ts +0 -13
- package/dist/synthesis/markdown-formatter.d.ts.map +0 -1
- package/dist/synthesis/markdown-formatter.js +0 -104
- package/dist/synthesis/markdown-formatter.js.map +0 -1
- package/dist/synthesis/prompt-builder.d.ts +0 -21
- package/dist/synthesis/prompt-builder.d.ts.map +0 -1
- package/dist/synthesis/prompt-builder.js +0 -129
- package/dist/synthesis/prompt-builder.js.map +0 -1
- package/dist/synthesis/synthesizer.d.ts +0 -30
- package/dist/synthesis/synthesizer.d.ts.map +0 -1
- package/dist/synthesis/synthesizer.js +0 -210
- package/dist/synthesis/synthesizer.js.map +0 -1
- package/dist/types/ast.d.ts +0 -3
- package/dist/types/ast.d.ts.map +0 -1
- package/dist/types/ast.js +0 -2
- package/dist/types/ast.js.map +0 -1
- package/dist/types/codemap.d.ts +0 -58
- package/dist/types/codemap.d.ts.map +0 -1
- package/dist/types/codemap.js +0 -224
- package/dist/types/codemap.js.map +0 -1
- package/dist/types/context-pack.d.ts +0 -47
- package/dist/types/context-pack.d.ts.map +0 -1
- package/dist/types/context-pack.js +0 -44
- package/dist/types/context-pack.js.map +0 -1
- package/dist/types/search.d.ts +0 -15
- package/dist/types/search.d.ts.map +0 -1
- package/dist/types/search.js +0 -11
- package/dist/types/search.js.map +0 -1
- package/dist/utils/cli-ui.d.ts +0 -44
- package/dist/utils/cli-ui.d.ts.map +0 -1
- package/dist/utils/cli-ui.js +0 -139
- package/dist/utils/cli-ui.js.map +0 -1
- package/dist/utils/indexer-with-progress.d.ts +0 -10
- package/dist/utils/indexer-with-progress.d.ts.map +0 -1
- package/dist/utils/indexer-with-progress.js +0 -58
- package/dist/utils/indexer-with-progress.js.map +0 -1
- package/dist/utils/rate-limiter.d.ts +0 -34
- package/dist/utils/rate-limiter.d.ts.map +0 -1
- package/dist/utils/rate-limiter.js +0 -179
- package/dist/utils/rate-limiter.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,12 +9,13 @@ CodeVault is an intelligent code indexing and search system that enables AI assi
|
|
|
9
9
|
- **🔍 Semantic Search**: Find code by meaning, not just keywords using vector embeddings
|
|
10
10
|
- **🤖 MCP Integration**: Native support for Claude Desktop and other MCP clients
|
|
11
11
|
- **💬 LLM-Synthesized Answers**: Ask questions in natural language, get markdown responses with code citations
|
|
12
|
+
- **🗣️ Interactive Chat Mode**: Have multi-turn conversations about your codebase with conversation history
|
|
12
13
|
- **🎯 Symbol-Aware Ranking**: Boost results based on function signatures, parameters, and relationships
|
|
13
14
|
- **⚡ Hybrid Retrieval**: Combines vector embeddings with BM25 keyword matching via Reciprocal Rank Fusion
|
|
14
15
|
- **🚀 Batch Processing**: Efficient API usage with configurable batching (50 chunks/batch by default)
|
|
15
16
|
- **📦 Smart Chunking**: Token-aware semantic code splitting with overlap for optimal context
|
|
16
17
|
- **🔄 Context Packs**: Save and reuse search scopes for different features/modules
|
|
17
|
-
- **🏠 Local-First**: Works with local models (Ollama) or cloud APIs (OpenAI, Nebius)
|
|
18
|
+
- **🏠 Local-First**: Works with local models (Ollama) or cloud APIs (OpenAI, Nebius, OpenRouter)
|
|
18
19
|
- **🔐 Optional Encryption**: AES-256-GCM encryption for indexed code chunks
|
|
19
20
|
- **⚙️ Global Configuration**: One-time setup with interactive wizard for CLI convenience
|
|
20
21
|
- **📊 Multi-Language Support**: 25+ programming languages via Tree-sitter
|
|
@@ -29,8 +30,8 @@ CodeVault is an intelligent code indexing and search system that enables AI assi
|
|
|
29
30
|
#### NPM (Global - Recommended)
|
|
30
31
|
|
|
31
32
|
```bash
|
|
32
|
-
# Install latest
|
|
33
|
-
npm install -g codevault
|
|
33
|
+
# Install latest version
|
|
34
|
+
npm install -g codevault
|
|
34
35
|
|
|
35
36
|
# Interactive configuration setup (one-time)
|
|
36
37
|
codevault config init
|
|
@@ -45,7 +46,7 @@ codevault index
|
|
|
45
46
|
```bash
|
|
46
47
|
git clone https://github.com/shariqriazz/codevault.git
|
|
47
48
|
cd codevault
|
|
48
|
-
npm
|
|
49
|
+
npm install --legacy-peer-deps
|
|
49
50
|
npm run build
|
|
50
51
|
npm link
|
|
51
52
|
```
|
|
@@ -70,57 +71,49 @@ Guides you through:
|
|
|
70
71
|
|
|
71
72
|
Configuration saved to `~/.codevault/config.json`
|
|
72
73
|
|
|
73
|
-
#### Option 2:
|
|
74
|
+
#### Option 2: Quick Setup with Nebius (Qwen Embeddings)
|
|
74
75
|
|
|
75
76
|
```bash
|
|
76
|
-
# Set
|
|
77
|
-
codevault config set providers.openai.apiKey
|
|
78
|
-
codevault config set providers.openai.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
codevault config
|
|
82
|
-
|
|
83
|
-
#
|
|
84
|
-
codevault config
|
|
77
|
+
# Set up Nebius for embeddings (Qwen3-Embedding-8B)
|
|
78
|
+
codevault config set providers.openai.apiKey your-nebius-api-key
|
|
79
|
+
codevault config set providers.openai.baseUrl https://api.studio.nebius.com/v1
|
|
80
|
+
codevault config set providers.openai.model Qwen/Qwen3-Embedding-8B
|
|
81
|
+
codevault config set providers.openai.dimensions 4096
|
|
82
|
+
codevault config set maxTokens 32000
|
|
83
|
+
|
|
84
|
+
# Set up OpenRouter for chat (Claude Sonnet 4.5)
|
|
85
|
+
codevault config set chatLLM.openai.apiKey your-openrouter-api-key
|
|
86
|
+
codevault config set chatLLM.openai.baseUrl https://openrouter.ai/api/v1
|
|
87
|
+
codevault config set chatLLM.openai.model anthropic/claude-sonnet-4.5
|
|
88
|
+
|
|
89
|
+
# Optional: Enable reranking with Novita (Qwen3-Reranker)
|
|
90
|
+
codevault config set reranker.apiUrl https://api.novita.ai/openai/v1/rerank
|
|
91
|
+
codevault config set reranker.apiKey your-novita-api-key
|
|
92
|
+
codevault config set reranker.model qwen/qwen3-reranker-8b
|
|
85
93
|
```
|
|
86
94
|
|
|
87
95
|
#### Option 3: Environment Variables (MCP / CI/CD)
|
|
88
96
|
|
|
89
97
|
```bash
|
|
90
|
-
# Embedding Provider (
|
|
91
|
-
export CODEVAULT_EMBEDDING_API_KEY=
|
|
92
|
-
export CODEVAULT_EMBEDDING_BASE_URL=https://api.
|
|
93
|
-
export CODEVAULT_EMBEDDING_MODEL=
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
export
|
|
100
|
-
export
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
- `OPENAI_API_KEY` → `CODEVAULT_EMBEDDING_API_KEY`
|
|
107
|
-
- `OPENAI_BASE_URL` → `CODEVAULT_EMBEDDING_BASE_URL`
|
|
108
|
-
- `CODEVAULT_OPENAI_EMBEDDING_MODEL` → `CODEVAULT_EMBEDDING_MODEL`
|
|
109
|
-
- `CODEVAULT_OLLAMA_MODEL` → `CODEVAULT_OLLAMA_EMBEDDING_MODEL`
|
|
110
|
-
- `CODEVAULT_MAX_TOKENS` → `CODEVAULT_EMBEDDING_MAX_TOKENS`
|
|
111
|
-
- `CODEVAULT_DIMENSIONS` → `CODEVAULT_EMBEDDING_DIMENSIONS`
|
|
112
|
-
- `CODEVAULT_RATE_LIMIT_RPM` → `CODEVAULT_EMBEDDING_RATE_LIMIT_RPM`
|
|
113
|
-
- `CODEVAULT_RATE_LIMIT_TPM` → `CODEVAULT_EMBEDDING_RATE_LIMIT_TPM`
|
|
114
|
-
|
|
115
|
-
#### Option 4: Project-Specific Config
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Set local config (project-specific)
|
|
119
|
-
codevault config set --local provider ollama
|
|
120
|
-
codevault config set --local providers.ollama.model nomic-embed-text
|
|
98
|
+
# Embedding Provider (Nebius + Qwen)
|
|
99
|
+
export CODEVAULT_EMBEDDING_API_KEY=your-nebius-api-key
|
|
100
|
+
export CODEVAULT_EMBEDDING_BASE_URL=https://api.studio.nebius.com/v1
|
|
101
|
+
export CODEVAULT_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-8B
|
|
102
|
+
export CODEVAULT_EMBEDDING_DIMENSIONS=4096
|
|
103
|
+
export CODEVAULT_EMBEDDING_MAX_TOKENS=32000
|
|
104
|
+
|
|
105
|
+
# Chat LLM (OpenRouter + Claude)
|
|
106
|
+
export CODEVAULT_CHAT_API_KEY=your-openrouter-api-key
|
|
107
|
+
export CODEVAULT_CHAT_BASE_URL=https://openrouter.ai/api/v1
|
|
108
|
+
export CODEVAULT_CHAT_MODEL=anthropic/claude-sonnet-4.5
|
|
109
|
+
|
|
110
|
+
# Reranking (Novita + Qwen)
|
|
111
|
+
export CODEVAULT_RERANK_API_URL=https://api.novita.ai/openai/v1/rerank
|
|
112
|
+
export CODEVAULT_RERANK_API_KEY=your-novita-api-key
|
|
113
|
+
export CODEVAULT_RERANK_MODEL=qwen/qwen3-reranker-8b
|
|
121
114
|
```
|
|
122
115
|
|
|
123
|
-
See [
|
|
116
|
+
See [Configuration Guide](docs/CONFIGURATION.md) for complete details.
|
|
124
117
|
|
|
125
118
|
### Index Your Project
|
|
126
119
|
|
|
@@ -128,18 +121,16 @@ See [`CONFIGURATION.md`](CONFIGURATION.md) for complete configuration guide.
|
|
|
128
121
|
# Using global config (if set via codevault config init)
|
|
129
122
|
codevault index
|
|
130
123
|
|
|
131
|
-
# Using
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
# Using OpenAI with custom settings
|
|
135
|
-
export OPENAI_API_KEY=your-key-here
|
|
136
|
-
codevault index --provider openai
|
|
137
|
-
|
|
138
|
-
# Using Qwen (via Nebius AI Studio)
|
|
139
|
-
export CODEVAULT_EMBEDDING_API_KEY=your-nebius-api-key
|
|
124
|
+
# Using Nebius + Qwen embeddings
|
|
125
|
+
export CODEVAULT_EMBEDDING_API_KEY=your-key
|
|
140
126
|
export CODEVAULT_EMBEDDING_BASE_URL=https://api.studio.nebius.com/v1
|
|
141
127
|
export CODEVAULT_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-8B
|
|
142
|
-
codevault index
|
|
128
|
+
codevault index
|
|
129
|
+
|
|
130
|
+
# Using local Ollama
|
|
131
|
+
export CODEVAULT_EMBEDDING_BASE_URL=http://localhost:11434/v1
|
|
132
|
+
export CODEVAULT_EMBEDDING_MODEL=nomic-embed-text
|
|
133
|
+
codevault index
|
|
143
134
|
|
|
144
135
|
# With encryption
|
|
145
136
|
export CODEVAULT_ENCRYPTION_KEY=$(openssl rand -base64 32)
|
|
@@ -165,229 +156,87 @@ codevault search-with-code "database connection" --limit 5
|
|
|
165
156
|
codevault ask "How does authentication work in this codebase?"
|
|
166
157
|
codevault ask "How do I add a new payment provider?" --multi-query --stream
|
|
167
158
|
|
|
159
|
+
# Start interactive chat (NEW!)
|
|
160
|
+
codevault chat
|
|
161
|
+
# Features:
|
|
162
|
+
# - Multi-turn conversations with history
|
|
163
|
+
# - Maintains context across questions
|
|
164
|
+
# - Commands: /help, /history, /clear, /stats, /exit
|
|
165
|
+
# - Configurable history window (--max-history)
|
|
166
|
+
|
|
168
167
|
# View project stats
|
|
169
168
|
codevault info
|
|
170
169
|
```
|
|
171
170
|
|
|
172
171
|
### Use with Claude Desktop
|
|
173
172
|
|
|
174
|
-
|
|
173
|
+
See complete setup guide: **[MCP Setup Guide](docs/MCP_SETUP.md)**
|
|
174
|
+
|
|
175
|
+
**Quick setup** - Add to your `claude_desktop_config.json`:
|
|
175
176
|
|
|
176
177
|
```json
|
|
177
178
|
{
|
|
178
179
|
"mcpServers": {
|
|
179
180
|
"codevault": {
|
|
180
181
|
"command": "npx",
|
|
181
|
-
"args": ["-y", "codevault
|
|
182
|
+
"args": ["-y", "codevault", "mcp"],
|
|
182
183
|
"env": {
|
|
183
|
-
"CODEVAULT_EMBEDDING_API_KEY": "your-api-key
|
|
184
|
-
"
|
|
184
|
+
"CODEVAULT_EMBEDDING_API_KEY": "your-nebius-api-key",
|
|
185
|
+
"CODEVAULT_EMBEDDING_BASE_URL": "https://api.studio.nebius.com/v1",
|
|
186
|
+
"CODEVAULT_EMBEDDING_MODEL": "Qwen/Qwen3-Embedding-8B",
|
|
187
|
+
"CODEVAULT_EMBEDDING_DIMENSIONS": "4096",
|
|
188
|
+
"CODEVAULT_CHAT_API_KEY": "your-openrouter-api-key",
|
|
189
|
+
"CODEVAULT_CHAT_BASE_URL": "https://openrouter.ai/api/v1",
|
|
190
|
+
"CODEVAULT_CHAT_MODEL": "anthropic/claude-sonnet-4.5",
|
|
191
|
+
"CODEVAULT_RERANK_API_URL": "https://api.novita.ai/openai/v1/rerank",
|
|
192
|
+
"CODEVAULT_RERANK_API_KEY": "your-novita-api-key",
|
|
193
|
+
"CODEVAULT_RERANK_MODEL": "qwen/qwen3-reranker-8b"
|
|
185
194
|
}
|
|
186
195
|
}
|
|
187
196
|
}
|
|
188
197
|
}
|
|
189
198
|
```
|
|
190
199
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
"mcpServers": {
|
|
196
|
-
"codevault": {
|
|
197
|
-
"command": "node",
|
|
198
|
-
"args": ["/path/to/codevault/dist/mcp-server.js"],
|
|
199
|
-
"env": {
|
|
200
|
-
"CODEVAULT_EMBEDDING_API_KEY": "your-api-key-here"
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
```
|
|
200
|
+
**Example configs:**
|
|
201
|
+
- [NPX (Recommended)](examples/claude-desktop-config-npx.example.json)
|
|
202
|
+
- [Full Options](examples/claude-desktop-config.example.json)
|
|
203
|
+
- [Ollama Local](examples/claude-desktop-ollama.example.json)
|
|
206
204
|
|
|
207
205
|
## 📖 Documentation
|
|
208
206
|
|
|
209
|
-
|
|
207
|
+
- **[Configuration Guide](docs/CONFIGURATION.md)** - Complete configuration options
|
|
208
|
+
- **[MCP Setup Guide](docs/MCP_SETUP.md)** - Claude Desktop integration
|
|
209
|
+
- **[Ask Feature Guide](docs/ASK_FEATURE.md)** - LLM-synthesized Q&A
|
|
210
|
+
- **[CLI Reference](docs/CLI_REFERENCE.md)** - All commands and options
|
|
211
|
+
- **[API Providers](docs/PROVIDERS.md)** - Embedding, chat, and reranking providers
|
|
212
|
+
- **[Advanced Features](docs/ADVANCED.md)** - Chunking, encryption, context packs
|
|
213
|
+
|
|
214
|
+
### Quick Links
|
|
210
215
|
|
|
211
216
|
```bash
|
|
212
217
|
# Configuration Management
|
|
213
218
|
codevault config init # Interactive setup wizard
|
|
214
219
|
codevault config set <key> <value> # Set global config value
|
|
215
|
-
codevault config set --local <key> <val> # Set project config value
|
|
216
|
-
codevault config get <key> # Get config value
|
|
217
220
|
codevault config list # Show merged config
|
|
218
|
-
codevault config list --sources # Show all config sources
|
|
219
|
-
codevault config unset <key> # Remove config value
|
|
220
|
-
codevault config path # Show config file paths
|
|
221
221
|
|
|
222
222
|
# Indexing
|
|
223
223
|
codevault index [path] # Index project
|
|
224
|
-
codevault index --provider openai # Use specific provider
|
|
225
|
-
codevault index --encrypt on # Enable encryption
|
|
226
224
|
codevault update [path] # Update existing index
|
|
227
225
|
codevault watch [path] # Watch for changes
|
|
228
|
-
codevault watch --debounce 1000 # Custom debounce interval
|
|
229
226
|
|
|
230
227
|
# Searching
|
|
231
|
-
codevault search <query>
|
|
232
|
-
--limit <num> # Max results (default: 10)
|
|
233
|
-
--provider <name> # Embedding provider
|
|
234
|
-
--path_glob <pattern> # Filter by file pattern
|
|
235
|
-
--tags <tag...> # Filter by tags
|
|
236
|
-
--lang <language...> # Filter by language
|
|
237
|
-
--reranker <off|api> # Enable API reranking
|
|
238
|
-
--hybrid <on|off> # Hybrid search (default: on)
|
|
239
|
-
--bm25 <on|off> # BM25 keyword search (default: on)
|
|
240
|
-
--symbol_boost <on|off> # Symbol boosting (default: on)
|
|
241
|
-
|
|
228
|
+
codevault search <query> # Search code (metadata only)
|
|
242
229
|
codevault search-with-code <query> # Search with full code chunks
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
# Ask Questions (LLM Synthesis)
|
|
246
|
-
codevault ask <question> # Ask a question, get synthesized answer
|
|
247
|
-
-p, --provider <name> # Embedding provider
|
|
248
|
-
-c, --chat-provider <name> # Chat LLM provider (auto|openai|ollama)
|
|
249
|
-
-k, --max-chunks <num> # Max code chunks to analyze (default: 10)
|
|
250
|
-
--path_glob <pattern...> # Filter by file pattern
|
|
251
|
-
--tags <tag...> # Filter by tags
|
|
252
|
-
--lang <language...> # Filter by language
|
|
253
|
-
--reranker <on|off> # Use API reranking (default: on)
|
|
254
|
-
--multi-query # Break complex questions into sub-queries
|
|
255
|
-
--temperature <num> # LLM temperature 0-2 (default: 0.7)
|
|
256
|
-
--stream # Stream response in real-time
|
|
257
|
-
--citations # Add citation footer
|
|
258
|
-
--no-metadata # Hide search metadata
|
|
230
|
+
codevault ask <question> # Ask questions, get synthesized answers
|
|
231
|
+
codevault chat # Interactive conversation mode (NEW!)
|
|
259
232
|
|
|
260
233
|
# Context Packs
|
|
261
234
|
codevault context list # List saved contexts
|
|
262
|
-
codevault context show <name> # Show context pack details
|
|
263
235
|
codevault context use <name> # Activate context pack
|
|
264
236
|
|
|
265
237
|
# Utilities
|
|
266
238
|
codevault info # Project statistics
|
|
267
239
|
codevault mcp # Start MCP server
|
|
268
|
-
codevault --version # Show version
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
### MCP Tools
|
|
272
|
-
|
|
273
|
-
When used via MCP, CodeVault provides these tools:
|
|
274
|
-
|
|
275
|
-
- **`search_code`**: Semantic search returning metadata (paths, symbols, scores, SHAs)
|
|
276
|
-
- **`search_code_with_chunks`**: Search + retrieve full code for each result
|
|
277
|
-
- **`get_code_chunk`**: Get specific code chunk by SHA
|
|
278
|
-
- **`ask_codebase`**: ✨ Ask questions and get LLM-synthesized answers with code citations
|
|
279
|
-
- **`index_project`**: Index a new project
|
|
280
|
-
- **`update_project`**: Update existing index
|
|
281
|
-
- **`get_project_stats`**: Get project overview and statistics
|
|
282
|
-
- **`use_context_pack`**: Apply saved search context/scope
|
|
283
|
-
|
|
284
|
-
### Supported Languages
|
|
285
|
-
|
|
286
|
-
- **Web**: JavaScript, TypeScript, TSX, HTML, CSS, JSON, Markdown
|
|
287
|
-
- **Backend**: Python, PHP, Go, Java, Kotlin, C#, Ruby, Scala, Swift
|
|
288
|
-
- **Systems**: C, C++, Rust
|
|
289
|
-
- **Functional**: Haskell, OCaml, Elixir
|
|
290
|
-
- **Scripting**: Bash, Lua
|
|
291
|
-
|
|
292
|
-
### Embedding Providers
|
|
293
|
-
|
|
294
|
-
| Provider | Model | Dimensions | Context | Best For | API Key Required |
|
|
295
|
-
|----------|-------|------------|---------|----------|------------------|
|
|
296
|
-
| **ollama** | nomic-embed-text | 768 | 8K | Local, no API costs | ❌ No |
|
|
297
|
-
| **openai** | text-embedding-3-large | 3072 | 8K | Highest quality | ✅ Yes |
|
|
298
|
-
| **openai** | text-embedding-3-small | 1536 | 8K | Faster, cheaper | ✅ Yes |
|
|
299
|
-
| **openai** | Qwen/Qwen3-Embedding-8B | 4096 | 32K | Large context, high quality | ✅ Yes (Nebius) |
|
|
300
|
-
| **custom** | Your choice | Custom | Custom | Any OpenAI-compatible API | ✅ Yes |
|
|
301
|
-
|
|
302
|
-
### Environment Variables
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
# Embedding Provider Configuration
|
|
306
|
-
CODEVAULT_EMBEDDING_API_KEY=sk-... # API key for embeddings
|
|
307
|
-
CODEVAULT_EMBEDDING_BASE_URL=https://api.openai.com/v1 # Embedding API endpoint
|
|
308
|
-
CODEVAULT_EMBEDDING_MODEL=text-embedding-3-large # Embedding model name
|
|
309
|
-
CODEVAULT_OLLAMA_EMBEDDING_MODEL=nomic-embed-text # Ollama embedding model
|
|
310
|
-
|
|
311
|
-
# Embedding Chunking Configuration
|
|
312
|
-
CODEVAULT_EMBEDDING_MAX_TOKENS=8192 # Max tokens per embedding chunk
|
|
313
|
-
CODEVAULT_EMBEDDING_DIMENSIONS=3072 # Embedding vector dimensions
|
|
314
|
-
|
|
315
|
-
# Embedding API Rate Limiting
|
|
316
|
-
CODEVAULT_EMBEDDING_RATE_LIMIT_RPM=10000 # Embedding API requests/min
|
|
317
|
-
CODEVAULT_EMBEDDING_RATE_LIMIT_TPM=600000 # Embedding API tokens/min
|
|
318
|
-
|
|
319
|
-
# Encryption
|
|
320
|
-
CODEVAULT_ENCRYPTION_KEY=... # 32-byte key (base64 or hex)
|
|
321
|
-
|
|
322
|
-
# API Reranking (Optional)
|
|
323
|
-
# Novita Qwen3-Reranker (32K context, great for code)
|
|
324
|
-
CODEVAULT_RERANK_API_URL=https://api.novita.ai/openai/v1/rerank
|
|
325
|
-
CODEVAULT_RERANK_API_KEY=your-novita-key
|
|
326
|
-
CODEVAULT_RERANK_MODEL=qwen/qwen3-reranker-8b
|
|
327
|
-
|
|
328
|
-
# Or Cohere (4K context, $25 free credits)
|
|
329
|
-
# CODEVAULT_RERANK_API_URL=https://api.cohere.ai/v1/rerank
|
|
330
|
-
# CODEVAULT_RERANK_API_KEY=your-cohere-key
|
|
331
|
-
# CODEVAULT_RERANK_MODEL=rerank-english-v3.0
|
|
332
|
-
|
|
333
|
-
# Memory Management
|
|
334
|
-
CODEVAULT_CACHE_CLEAR_INTERVAL=3600000 # Cache cleanup interval (ms)
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
### Ask Questions (LLM Synthesis)
|
|
338
|
-
|
|
339
|
-
The `ask` command combines semantic search with LLM synthesis to answer natural language questions about your codebase:
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
# Basic question
|
|
343
|
-
codevault ask "How does authentication work in this codebase?"
|
|
344
|
-
|
|
345
|
-
# With filters
|
|
346
|
-
codevault ask "How do I add Stripe checkout?" --tags stripe --lang php
|
|
347
|
-
|
|
348
|
-
# Complex question with multi-query
|
|
349
|
-
codevault ask "What are the main components and how do they interact?" --multi-query
|
|
350
|
-
|
|
351
|
-
# Streaming response
|
|
352
|
-
codevault ask "Explain the database connection pooling" --stream
|
|
353
|
-
|
|
354
|
-
# With custom settings
|
|
355
|
-
codevault ask "How does error handling work?" \
|
|
356
|
-
--chat-provider openai \
|
|
357
|
-
--temperature 0.5 \
|
|
358
|
-
--max-chunks 15 \
|
|
359
|
-
--reranker on
|
|
360
|
-
|
|
361
|
-
# Using Ollama for local processing
|
|
362
|
-
codevault ask "What routes are available?" --chat-provider ollama
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
**How it works:**
|
|
366
|
-
1. 🔍 Searches codebase using embeddings (+ optional reranking)
|
|
367
|
-
2. 📚 Retrieves top N most relevant code chunks
|
|
368
|
-
3. 🤖 Sends context to LLM with structured prompt
|
|
369
|
-
4. 📝 LLM synthesizes natural language answer with code citations
|
|
370
|
-
5. ✨ Returns formatted markdown with file references
|
|
371
|
-
|
|
372
|
-
**Example Output:**
|
|
373
|
-
```markdown
|
|
374
|
-
# How Authentication Works
|
|
375
|
-
|
|
376
|
-
The authentication system uses a middleware-based approach...
|
|
377
|
-
|
|
378
|
-
The main authentication flow is handled by `AuthMiddleware` in [`src/middleware/auth.ts`](src/middleware/auth.ts):
|
|
379
|
-
|
|
380
|
-
```typescript
|
|
381
|
-
export function authenticate(req, res, next) {
|
|
382
|
-
// Token validation logic
|
|
383
|
-
...
|
|
384
|
-
}
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
Key components:
|
|
388
|
-
- **Session Management**: [`src/auth/session.ts`](src/auth/session.ts)
|
|
389
|
-
- **Token Validation**: [`src/auth/token.ts`](src/auth/token.ts)
|
|
390
|
-
- **User Model**: [`src/models/user.ts`](src/models/user.ts)
|
|
391
240
|
```
|
|
392
241
|
|
|
393
242
|
## 🏗️ Architecture
|
|
@@ -410,115 +259,37 @@ Key components:
|
|
|
410
259
|
- Optionally applies API reranking
|
|
411
260
|
- Returns ranked results with metadata
|
|
412
261
|
|
|
413
|
-
3. **
|
|
414
|
-
-
|
|
415
|
-
-
|
|
416
|
-
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
```
|
|
421
|
-
.codevault/
|
|
422
|
-
├── codevault.db # SQLite: embeddings + metadata
|
|
423
|
-
├── chunks/ # Compressed code chunks
|
|
424
|
-
│ ├── <sha>.gz # Plain compressed
|
|
425
|
-
│ └── <sha>.gz.enc # Encrypted compressed
|
|
426
|
-
└── contextpacks/ # Saved search contexts
|
|
427
|
-
└── feature-auth.json # Example context pack
|
|
428
|
-
|
|
429
|
-
codevault.codemap.json # Lightweight index (symbol graph)
|
|
430
|
-
|
|
431
|
-
~/.codevault/ # Global CLI configuration
|
|
432
|
-
└── config.json # User-wide settings
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### Advanced Features
|
|
436
|
-
|
|
437
|
-
#### Batch Processing
|
|
438
|
-
|
|
439
|
-
Embeddings are generated in batches of 50 for optimal API efficiency:
|
|
440
|
-
|
|
441
|
-
```typescript
|
|
442
|
-
// Automatic batching - no configuration needed
|
|
443
|
-
// Processes 50 chunks per API call
|
|
444
|
-
// Falls back to individual processing on error
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
#### Smart Chunking
|
|
448
|
-
|
|
449
|
-
Token-aware semantic chunking with configurable limits:
|
|
450
|
-
|
|
451
|
-
- Respects function/class boundaries
|
|
452
|
-
- Applies overlap for context continuity
|
|
453
|
-
- Subdivides large functions intelligently
|
|
454
|
-
- Merges small chunks when beneficial
|
|
455
|
-
|
|
456
|
-
#### Symbol-Aware Ranking
|
|
457
|
-
|
|
458
|
-
Boosts search results based on:
|
|
459
|
-
- Exact symbol name matches
|
|
460
|
-
- Function signature matches
|
|
461
|
-
- Parameter name matches
|
|
462
|
-
- Symbol neighbor relationships (calls, imports)
|
|
463
|
-
|
|
464
|
-
#### Hybrid Search
|
|
465
|
-
|
|
466
|
-
Combines multiple ranking signals:
|
|
467
|
-
- Vector similarity (semantic understanding)
|
|
468
|
-
- BM25 keyword matching (exact term matches)
|
|
469
|
-
- Symbol boost (code structure awareness)
|
|
470
|
-
- Reciprocal Rank Fusion (combines rankings)
|
|
262
|
+
3. **LLM Synthesis Phase** (Ask Feature)
|
|
263
|
+
- Searches for relevant code chunks
|
|
264
|
+
- Retrieves full code content
|
|
265
|
+
- Builds context prompt with metadata
|
|
266
|
+
- Generates natural language answer via chat LLM
|
|
267
|
+
- Returns markdown with code citations
|
|
471
268
|
|
|
472
|
-
|
|
269
|
+
4. **Interactive Chat Phase** (Chat Feature)
|
|
270
|
+
- Maintains conversation history (last N turns)
|
|
271
|
+
- Performs fresh semantic search for each question
|
|
272
|
+
- Combines conversation context + new code chunks
|
|
273
|
+
- Generates conversational responses with continuity
|
|
274
|
+
- Supports commands: /help, /history, /clear, /stats
|
|
473
275
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
```json
|
|
477
|
-
{
|
|
478
|
-
"key": "feature-auth",
|
|
479
|
-
"name": "Authentication Feature",
|
|
480
|
-
"description": "Login, signup, password reset",
|
|
481
|
-
"scope": {
|
|
482
|
-
"path_glob": ["src/auth/**", "src/middleware/auth.ts"],
|
|
483
|
-
"tags": ["auth", "security"],
|
|
484
|
-
"lang": ["typescript", "javascript"]
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
Usage:
|
|
490
|
-
```bash
|
|
491
|
-
codevault context use feature-auth
|
|
492
|
-
codevault search "token validation" # Scoped to auth files
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
#### File Watching
|
|
496
|
-
|
|
497
|
-
Real-time index updates with intelligent debouncing:
|
|
498
|
-
|
|
499
|
-
```bash
|
|
500
|
-
codevault watch --debounce 500
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
- Detects file changes, additions, deletions
|
|
504
|
-
- Batches rapid changes (debouncing)
|
|
505
|
-
- Updates only affected chunks
|
|
506
|
-
- Preserves index consistency
|
|
507
|
-
|
|
508
|
-
#### Encryption
|
|
509
|
-
|
|
510
|
-
AES-256-GCM encryption for code chunks:
|
|
276
|
+
### Supported Languages
|
|
511
277
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
278
|
+
- **Web**: JavaScript, TypeScript, TSX, HTML, CSS, JSON, Markdown
|
|
279
|
+
- **Backend**: Python, PHP, Go, Java, Kotlin, C#, Ruby, Scala, Swift
|
|
280
|
+
- **Systems**: C, C++, Rust
|
|
281
|
+
- **Functional**: Haskell, OCaml, Elixir
|
|
282
|
+
- **Scripting**: Bash, Lua
|
|
515
283
|
|
|
516
|
-
|
|
517
|
-
codevault index --encrypt on
|
|
284
|
+
### Recommended Providers
|
|
518
285
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
286
|
+
| Purpose | Provider | Model | Context | Best For |
|
|
287
|
+
|---------|----------|-------|---------|----------|
|
|
288
|
+
| **Embeddings** | Nebius | Qwen/Qwen3-Embedding-8B | 32K | High quality, large context |
|
|
289
|
+
| **Embeddings** | Ollama | nomic-embed-text | 8K | Local, privacy-focused |
|
|
290
|
+
| **Chat LLM** | OpenRouter | anthropic/claude-sonnet-4.5 | 200K | Best code understanding |
|
|
291
|
+
| **Chat LLM** | Ollama | qwen2.5-coder:7b | 32K | Local, code-specialized |
|
|
292
|
+
| **Reranking** | Novita | qwen/qwen3-reranker-8b | 32K | Best for code reranking |
|
|
522
293
|
|
|
523
294
|
## 🔧 Performance & Optimization
|
|
524
295
|
|
|
@@ -597,8 +368,6 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
597
368
|
- **GitHub**: https://github.com/shariqriazz/codevault
|
|
598
369
|
- **NPM**: https://www.npmjs.com/package/codevault
|
|
599
370
|
- **Issues**: https://github.com/shariqriazz/codevault/issues
|
|
600
|
-
- **Configuration Guide**: [CONFIGURATION.md](CONFIGURATION.md)
|
|
601
|
-
- **Ask Feature Guide**: [ASK_FEATURE.md](ASK_FEATURE.md)
|
|
602
371
|
|
|
603
372
|
## 🙏 Acknowledgments
|
|
604
373
|
|
|
@@ -607,9 +376,12 @@ Built with:
|
|
|
607
376
|
- [Tree-sitter](https://tree-sitter.github.io/) - Parsing infrastructure
|
|
608
377
|
- [OpenAI](https://openai.com/) - Embedding models
|
|
609
378
|
- [Ollama](https://ollama.ai/) - Local model support
|
|
379
|
+
- [Nebius AI Studio](https://nebius.com/) - Qwen embeddings
|
|
380
|
+
- [OpenRouter](https://openrouter.ai/) - LLM access
|
|
381
|
+
- [Novita AI](https://novita.ai/) - Reranking API
|
|
610
382
|
|
|
611
383
|
---
|
|
612
384
|
|
|
613
|
-
**Version**: 1.
|
|
385
|
+
**Version**: 1.6.0
|
|
614
386
|
**Built by**: Shariq Riaz
|
|
615
|
-
**Last Updated**:
|
|
387
|
+
**Last Updated**: November 2025
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codevault",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "AI-powered semantic code search via Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.20.2",
|
|
49
49
|
"@tree-sitter-grammars/tree-sitter-kotlin": "^1.1.0",
|
|
50
50
|
"@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2",
|
|
51
|
+
"better-sqlite3": "^11.10.0",
|
|
51
52
|
"chalk": "^5.6.2",
|
|
52
53
|
"chokidar": "^4.0.3",
|
|
53
54
|
"cli-progress": "^3.12.0",
|
|
@@ -55,10 +56,8 @@
|
|
|
55
56
|
"dotenv": "^17.2.3",
|
|
56
57
|
"fast-glob": "^3.3.3",
|
|
57
58
|
"micromatch": "^4.0.8",
|
|
58
|
-
"ollama": "^0.6.0",
|
|
59
59
|
"openai": "^6.7.0",
|
|
60
60
|
"ora": "^9.0.0",
|
|
61
|
-
"sqlite3": "^5.1.7",
|
|
62
61
|
"tiktoken": "^1.0.22",
|
|
63
62
|
"tree-sitter": "^0.25.0",
|
|
64
63
|
"tree-sitter-bash": "^0.25.0",
|
|
@@ -87,10 +86,11 @@
|
|
|
87
86
|
"zod": "^4.1.12"
|
|
88
87
|
},
|
|
89
88
|
"devDependencies": {
|
|
89
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
90
90
|
"@types/chokidar": "^1.7.5",
|
|
91
91
|
"@types/cli-progress": "^3.11.6",
|
|
92
92
|
"@types/micromatch": "^4.0.10",
|
|
93
|
-
"@types/node": "^24.
|
|
93
|
+
"@types/node": "^24.10.0",
|
|
94
94
|
"typescript": "^5.9.3"
|
|
95
95
|
}
|
|
96
96
|
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { ModelProfile } from '../providers/base.js';
|
|
2
|
-
import type { TreeSitterNode } from '../types/ast.js';
|
|
3
|
-
interface LanguageRule {
|
|
4
|
-
subdivisionTypes?: Record<string, string[]>;
|
|
5
|
-
[key: string]: any;
|
|
6
|
-
}
|
|
7
|
-
interface NodeAnalysis {
|
|
8
|
-
node: TreeSitterNode;
|
|
9
|
-
size: number;
|
|
10
|
-
code: string;
|
|
11
|
-
}
|
|
12
|
-
interface SemanticGroup {
|
|
13
|
-
type: string;
|
|
14
|
-
containerType?: string;
|
|
15
|
-
nodes: TreeSitterNode[];
|
|
16
|
-
analyses: NodeAnalysis[];
|
|
17
|
-
parentNode: TreeSitterNode | null;
|
|
18
|
-
}
|
|
19
|
-
export interface NodeGroup {
|
|
20
|
-
nodes: TreeSitterNode[];
|
|
21
|
-
totalSize: number;
|
|
22
|
-
groupInfo: SemanticGroup[];
|
|
23
|
-
}
|
|
24
|
-
export declare function groupNodesForChunking(nodes: TreeSitterNode[], source: string, profile: ModelProfile, rule: LanguageRule): Promise<NodeGroup[]>;
|
|
25
|
-
export interface CombinedChunk {
|
|
26
|
-
code: string;
|
|
27
|
-
node: TreeSitterNode & {
|
|
28
|
-
type: string;
|
|
29
|
-
};
|
|
30
|
-
metadata: {
|
|
31
|
-
isGroup: boolean;
|
|
32
|
-
nodeCount: number;
|
|
33
|
-
totalSize: number;
|
|
34
|
-
groupTypes: string[];
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export declare function createCombinedChunk(nodeGroup: NodeGroup, source: string, filerel: string): CombinedChunk | null;
|
|
38
|
-
export {};
|
|
39
|
-
//# sourceMappingURL=file-grouper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-grouper.d.ts","sourceRoot":"","sources":["../../src/chunking/file-grouper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,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;AAUD,UAAU,YAAY;IACpB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AA2KD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAkBtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA4B/G"}
|