codevault 1.5.0 → 1.6.1
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 +75 -40
- package/README.md +112 -345
- 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 +2 -19
- package/dist/chunking/file-grouper.js.map +1 -1
- package/dist/chunking/semantic-chunker.d.ts.map +1 -1
- package/dist/chunking/semantic-chunker.js +4 -19
- package/dist/chunking/semantic-chunker.js.map +1 -1
- package/dist/cli/commands/chat-cmd.d.ts +3 -0
- package/dist/cli/commands/chat-cmd.d.ts.map +1 -0
- package/dist/cli/commands/chat-cmd.js +194 -0
- package/dist/cli/commands/chat-cmd.js.map +1 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/config/constants.d.ts +326 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +214 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +11 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/core/batch-indexer.d.ts +14 -2
- package/dist/core/batch-indexer.d.ts.map +1 -1
- package/dist/core/batch-indexer.js +107 -79
- package/dist/core/batch-indexer.js.map +1 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +4 -28
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +8 -5
- package/dist/core/search.js.map +1 -1
- package/dist/database/db.d.ts +44 -5
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +270 -109
- package/dist/database/db.js.map +1 -1
- package/dist/mcp/schemas.d.ts +166 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +159 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp-server.js +31 -38
- package/dist/mcp-server.js.map +1 -1
- package/dist/providers/chat-llm.d.ts.map +1 -1
- package/dist/providers/chat-llm.js +4 -1
- package/dist/providers/chat-llm.js.map +1 -1
- package/dist/ranking/symbol-boost.d.ts.map +1 -1
- package/dist/ranking/symbol-boost.js +28 -7
- package/dist/ranking/symbol-boost.js.map +1 -1
- package/dist/storage/encrypted-chunks.d.ts.map +1 -1
- package/dist/storage/encrypted-chunks.js +3 -2
- package/dist/storage/encrypted-chunks.js.map +1 -1
- package/dist/symbols/extract.d.ts.map +1 -1
- package/dist/symbols/extract.js +27 -6
- package/dist/symbols/extract.js.map +1 -1
- package/dist/symbols/graph.d.ts.map +1 -1
- package/dist/symbols/graph.js +1 -1
- package/dist/symbols/graph.js.map +1 -1
- package/dist/synthesis/conversational-synthesizer.d.ts +61 -0
- package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -0
- package/dist/synthesis/conversational-synthesizer.js +286 -0
- package/dist/synthesis/conversational-synthesizer.js.map +1 -0
- package/dist/utils/indexer-with-progress.d.ts.map +1 -1
- package/dist/utils/indexer-with-progress.js +12 -27
- package/dist/utils/indexer-with-progress.js.map +1 -1
- package/dist/utils/logger.d.ts +55 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mutex.d.ts +63 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +123 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/path-helpers.d.ts +27 -0
- package/dist/utils/path-helpers.d.ts.map +1 -0
- package/dist/utils/path-helpers.js +55 -0
- package/dist/utils/path-helpers.js.map +1 -0
- package/dist/utils/scan-patterns.d.ts +5 -0
- package/dist/utils/scan-patterns.d.ts.map +1 -0
- package/dist/utils/scan-patterns.js +29 -0
- package/dist/utils/scan-patterns.js.map +1 -0
- package/package.json +4 -3
- 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/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
|
|
@@ -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,58 +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
|
-
|
|
100
|
-
export
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
export
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
**Note:** Old variable names are still supported for backward compatibility:
|
|
107
|
-
- `OPENAI_API_KEY` → `CODEVAULT_EMBEDDING_API_KEY`
|
|
108
|
-
- `OPENAI_BASE_URL` → `CODEVAULT_EMBEDDING_BASE_URL`
|
|
109
|
-
- `CODEVAULT_OPENAI_EMBEDDING_MODEL` → `CODEVAULT_EMBEDDING_MODEL`
|
|
110
|
-
- `CODEVAULT_OLLAMA_MODEL` → `CODEVAULT_OLLAMA_EMBEDDING_MODEL`
|
|
111
|
-
- `CODEVAULT_MAX_TOKENS` → `CODEVAULT_EMBEDDING_MAX_TOKENS`
|
|
112
|
-
- `CODEVAULT_DIMENSIONS` → `CODEVAULT_EMBEDDING_DIMENSIONS`
|
|
113
|
-
- `CODEVAULT_RATE_LIMIT_RPM` → `CODEVAULT_EMBEDDING_RATE_LIMIT_RPM`
|
|
114
|
-
- `CODEVAULT_RATE_LIMIT_TPM` → `CODEVAULT_EMBEDDING_RATE_LIMIT_TPM`
|
|
115
|
-
|
|
116
|
-
#### Option 4: Project-Specific Config
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
# Set local config (project-specific, e.g., for Ollama)
|
|
120
|
-
codevault config set --local providers.openai.baseUrl http://localhost:11434/v1
|
|
121
|
-
codevault config set --local providers.openai.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
|
|
122
114
|
```
|
|
123
115
|
|
|
124
|
-
See [
|
|
116
|
+
See [Configuration Guide](docs/CONFIGURATION.md) for complete details.
|
|
125
117
|
|
|
126
118
|
### Index Your Project
|
|
127
119
|
|
|
@@ -129,21 +121,17 @@ See [`CONFIGURATION.md`](CONFIGURATION.md) for complete configuration guide.
|
|
|
129
121
|
# Using global config (if set via codevault config init)
|
|
130
122
|
codevault index
|
|
131
123
|
|
|
132
|
-
# Using
|
|
124
|
+
# Using Nebius + Qwen embeddings
|
|
125
|
+
export CODEVAULT_EMBEDDING_API_KEY=your-key
|
|
126
|
+
export CODEVAULT_EMBEDDING_BASE_URL=https://api.studio.nebius.com/v1
|
|
127
|
+
export CODEVAULT_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-8B
|
|
128
|
+
codevault index
|
|
129
|
+
|
|
130
|
+
# Using local Ollama
|
|
133
131
|
export CODEVAULT_EMBEDDING_BASE_URL=http://localhost:11434/v1
|
|
134
132
|
export CODEVAULT_EMBEDDING_MODEL=nomic-embed-text
|
|
135
133
|
codevault index
|
|
136
134
|
|
|
137
|
-
# Using OpenAI with custom settings
|
|
138
|
-
export OPENAI_API_KEY=your-key-here
|
|
139
|
-
codevault index --provider openai
|
|
140
|
-
|
|
141
|
-
# Using Qwen (via Nebius AI Studio)
|
|
142
|
-
export CODEVAULT_EMBEDDING_API_KEY=your-nebius-api-key
|
|
143
|
-
export CODEVAULT_EMBEDDING_BASE_URL=https://api.studio.nebius.com/v1
|
|
144
|
-
export CODEVAULT_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-8B
|
|
145
|
-
codevault index --provider openai
|
|
146
|
-
|
|
147
135
|
# With encryption
|
|
148
136
|
export CODEVAULT_ENCRYPTION_KEY=$(openssl rand -base64 32)
|
|
149
137
|
codevault index --encrypt on
|
|
@@ -168,13 +156,23 @@ codevault search-with-code "database connection" --limit 5
|
|
|
168
156
|
codevault ask "How does authentication work in this codebase?"
|
|
169
157
|
codevault ask "How do I add a new payment provider?" --multi-query --stream
|
|
170
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
|
+
|
|
171
167
|
# View project stats
|
|
172
168
|
codevault info
|
|
173
169
|
```
|
|
174
170
|
|
|
175
171
|
### Use with Claude Desktop
|
|
176
172
|
|
|
177
|
-
|
|
173
|
+
See complete setup guide: **[MCP Setup Guide](docs/MCP_SETUP.md)**
|
|
174
|
+
|
|
175
|
+
**Quick setup** - Add to your `claude_desktop_config.json`:
|
|
178
176
|
|
|
179
177
|
```json
|
|
180
178
|
{
|
|
@@ -183,216 +181,62 @@ Add to your `claude_desktop_config.json`:
|
|
|
183
181
|
"command": "npx",
|
|
184
182
|
"args": ["-y", "codevault", "mcp"],
|
|
185
183
|
"env": {
|
|
186
|
-
"CODEVAULT_EMBEDDING_API_KEY": "your-api-key
|
|
187
|
-
"
|
|
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"
|
|
188
194
|
}
|
|
189
195
|
}
|
|
190
196
|
}
|
|
191
197
|
}
|
|
192
198
|
```
|
|
193
199
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
"mcpServers": {
|
|
199
|
-
"codevault": {
|
|
200
|
-
"command": "node",
|
|
201
|
-
"args": ["/path/to/codevault/dist/mcp-server.js"],
|
|
202
|
-
"env": {
|
|
203
|
-
"CODEVAULT_EMBEDDING_API_KEY": "your-api-key-here"
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
```
|
|
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)
|
|
209
204
|
|
|
210
205
|
## 📖 Documentation
|
|
211
206
|
|
|
212
|
-
|
|
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
|
|
213
215
|
|
|
214
216
|
```bash
|
|
215
217
|
# Configuration Management
|
|
216
218
|
codevault config init # Interactive setup wizard
|
|
217
219
|
codevault config set <key> <value> # Set global config value
|
|
218
|
-
codevault config set --local <key> <val> # Set project config value
|
|
219
|
-
codevault config get <key> # Get config value
|
|
220
220
|
codevault config list # Show merged config
|
|
221
|
-
codevault config list --sources # Show all config sources
|
|
222
|
-
codevault config unset <key> # Remove config value
|
|
223
|
-
codevault config path # Show config file paths
|
|
224
221
|
|
|
225
222
|
# Indexing
|
|
226
223
|
codevault index [path] # Index project
|
|
227
|
-
codevault index --provider openai # Use specific provider
|
|
228
|
-
codevault index --encrypt on # Enable encryption
|
|
229
224
|
codevault update [path] # Update existing index
|
|
230
225
|
codevault watch [path] # Watch for changes
|
|
231
|
-
codevault watch --debounce 1000 # Custom debounce interval
|
|
232
226
|
|
|
233
227
|
# Searching
|
|
234
|
-
codevault search <query>
|
|
235
|
-
--limit <num> # Max results (default: 10)
|
|
236
|
-
--provider <name> # Embedding provider
|
|
237
|
-
--path_glob <pattern> # Filter by file pattern
|
|
238
|
-
--tags <tag...> # Filter by tags
|
|
239
|
-
--lang <language...> # Filter by language
|
|
240
|
-
--reranker <off|api> # Enable API reranking
|
|
241
|
-
--hybrid <on|off> # Hybrid search (default: on)
|
|
242
|
-
--bm25 <on|off> # BM25 keyword search (default: on)
|
|
243
|
-
--symbol_boost <on|off> # Symbol boosting (default: on)
|
|
244
|
-
|
|
228
|
+
codevault search <query> # Search code (metadata only)
|
|
245
229
|
codevault search-with-code <query> # Search with full code chunks
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
# Ask Questions (LLM Synthesis)
|
|
249
|
-
codevault ask <question> # Ask a question, get synthesized answer
|
|
250
|
-
-p, --provider <name> # Embedding provider
|
|
251
|
-
-c, --chat-provider <name> # Chat LLM provider (auto|openai|ollama)
|
|
252
|
-
-k, --max-chunks <num> # Max code chunks to analyze (default: 10)
|
|
253
|
-
--path_glob <pattern...> # Filter by file pattern
|
|
254
|
-
--tags <tag...> # Filter by tags
|
|
255
|
-
--lang <language...> # Filter by language
|
|
256
|
-
--reranker <on|off> # Use API reranking (default: on)
|
|
257
|
-
--multi-query # Break complex questions into sub-queries
|
|
258
|
-
--temperature <num> # LLM temperature 0-2 (default: 0.7)
|
|
259
|
-
--stream # Stream response in real-time
|
|
260
|
-
--citations # Add citation footer
|
|
261
|
-
--no-metadata # Hide search metadata
|
|
230
|
+
codevault ask <question> # Ask questions, get synthesized answers
|
|
231
|
+
codevault chat # Interactive conversation mode (NEW!)
|
|
262
232
|
|
|
263
233
|
# Context Packs
|
|
264
234
|
codevault context list # List saved contexts
|
|
265
|
-
codevault context show <name> # Show context pack details
|
|
266
235
|
codevault context use <name> # Activate context pack
|
|
267
236
|
|
|
268
237
|
# Utilities
|
|
269
238
|
codevault info # Project statistics
|
|
270
239
|
codevault mcp # Start MCP server
|
|
271
|
-
codevault --version # Show version
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
### MCP Tools
|
|
275
|
-
|
|
276
|
-
When used via MCP, CodeVault provides these tools:
|
|
277
|
-
|
|
278
|
-
- **`search_code`**: Semantic search returning metadata (paths, symbols, scores, SHAs)
|
|
279
|
-
- **`search_code_with_chunks`**: Search + retrieve full code for each result
|
|
280
|
-
- **`get_code_chunk`**: Get specific code chunk by SHA
|
|
281
|
-
- **`ask_codebase`**: ✨ Ask questions and get LLM-synthesized answers with code citations
|
|
282
|
-
- **`index_project`**: Index a new project
|
|
283
|
-
- **`update_project`**: Update existing index
|
|
284
|
-
- **`get_project_stats`**: Get project overview and statistics
|
|
285
|
-
- **`use_context_pack`**: Apply saved search context/scope
|
|
286
|
-
|
|
287
|
-
### Supported Languages
|
|
288
|
-
|
|
289
|
-
- **Web**: JavaScript, TypeScript, TSX, HTML, CSS, JSON, Markdown
|
|
290
|
-
- **Backend**: Python, PHP, Go, Java, Kotlin, C#, Ruby, Scala, Swift
|
|
291
|
-
- **Systems**: C, C++, Rust
|
|
292
|
-
- **Functional**: Haskell, OCaml, Elixir
|
|
293
|
-
- **Scripting**: Bash, Lua
|
|
294
|
-
|
|
295
|
-
### Embedding Providers
|
|
296
|
-
|
|
297
|
-
| Provider | Model | Dimensions | Context | Best For | API Key Required |
|
|
298
|
-
|----------|-------|------------|---------|----------|------------------|
|
|
299
|
-
| **openai** | text-embedding-3-large | 3072 | 8K | Highest quality | ✅ Yes |
|
|
300
|
-
| **openai** | text-embedding-3-small | 1536 | 8K | Faster, cheaper | ✅ Yes |
|
|
301
|
-
| **openai** | Qwen/Qwen3-Embedding-8B | 4096 | 32K | Large context, high quality | ✅ Yes (Nebius) |
|
|
302
|
-
| **openai** | nomic-embed-text | 768 | 8K | Local via Ollama | ❌ No (local) |
|
|
303
|
-
| **custom** | Your choice | Custom | Custom | Any OpenAI-compatible API | Varies |
|
|
304
|
-
|
|
305
|
-
### Environment Variables
|
|
306
|
-
|
|
307
|
-
```bash
|
|
308
|
-
# Embedding Provider Configuration
|
|
309
|
-
CODEVAULT_EMBEDDING_API_KEY=sk-... # API key for embeddings
|
|
310
|
-
CODEVAULT_EMBEDDING_BASE_URL=https://api.openai.com/v1 # Embedding API endpoint
|
|
311
|
-
CODEVAULT_EMBEDDING_MODEL=text-embedding-3-large # Embedding model name
|
|
312
|
-
CODEVAULT_OLLAMA_EMBEDDING_MODEL=nomic-embed-text # Ollama embedding model
|
|
313
|
-
|
|
314
|
-
# Embedding Chunking Configuration
|
|
315
|
-
CODEVAULT_EMBEDDING_MAX_TOKENS=8192 # Max tokens per embedding chunk
|
|
316
|
-
CODEVAULT_EMBEDDING_DIMENSIONS=3072 # Embedding vector dimensions
|
|
317
|
-
|
|
318
|
-
# Embedding API Rate Limiting
|
|
319
|
-
CODEVAULT_EMBEDDING_RATE_LIMIT_RPM=10000 # Embedding API requests/min
|
|
320
|
-
CODEVAULT_EMBEDDING_RATE_LIMIT_TPM=600000 # Embedding API tokens/min
|
|
321
|
-
|
|
322
|
-
# Encryption
|
|
323
|
-
CODEVAULT_ENCRYPTION_KEY=... # 32-byte key (base64 or hex)
|
|
324
|
-
|
|
325
|
-
# API Reranking (Optional)
|
|
326
|
-
# Novita Qwen3-Reranker (32K context, great for code)
|
|
327
|
-
CODEVAULT_RERANK_API_URL=https://api.novita.ai/openai/v1/rerank
|
|
328
|
-
CODEVAULT_RERANK_API_KEY=your-novita-key
|
|
329
|
-
CODEVAULT_RERANK_MODEL=qwen/qwen3-reranker-8b
|
|
330
|
-
|
|
331
|
-
# Or Cohere (4K context, $25 free credits)
|
|
332
|
-
# CODEVAULT_RERANK_API_URL=https://api.cohere.ai/v1/rerank
|
|
333
|
-
# CODEVAULT_RERANK_API_KEY=your-cohere-key
|
|
334
|
-
# CODEVAULT_RERANK_MODEL=rerank-english-v3.0
|
|
335
|
-
|
|
336
|
-
# Memory Management
|
|
337
|
-
CODEVAULT_CACHE_CLEAR_INTERVAL=3600000 # Cache cleanup interval (ms)
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
### Ask Questions (LLM Synthesis)
|
|
341
|
-
|
|
342
|
-
The `ask` command combines semantic search with LLM synthesis to answer natural language questions about your codebase:
|
|
343
|
-
|
|
344
|
-
```bash
|
|
345
|
-
# Basic question
|
|
346
|
-
codevault ask "How does authentication work in this codebase?"
|
|
347
|
-
|
|
348
|
-
# With filters
|
|
349
|
-
codevault ask "How do I add Stripe checkout?" --tags stripe --lang php
|
|
350
|
-
|
|
351
|
-
# Complex question with multi-query
|
|
352
|
-
codevault ask "What are the main components and how do they interact?" --multi-query
|
|
353
|
-
|
|
354
|
-
# Streaming response
|
|
355
|
-
codevault ask "Explain the database connection pooling" --stream
|
|
356
|
-
|
|
357
|
-
# With custom settings
|
|
358
|
-
codevault ask "How does error handling work?" \
|
|
359
|
-
--chat-provider openai \
|
|
360
|
-
--temperature 0.5 \
|
|
361
|
-
--max-chunks 15 \
|
|
362
|
-
--reranker on
|
|
363
|
-
|
|
364
|
-
# Using Ollama for local processing (via OpenAI-compatible endpoint)
|
|
365
|
-
export CODEVAULT_CHAT_BASE_URL=http://localhost:11434/v1
|
|
366
|
-
export CODEVAULT_CHAT_MODEL=llama3.1
|
|
367
|
-
codevault ask "What routes are available?"
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
**How it works:**
|
|
371
|
-
1. 🔍 Searches codebase using embeddings (+ optional reranking)
|
|
372
|
-
2. 📚 Retrieves top N most relevant code chunks
|
|
373
|
-
3. 🤖 Sends context to LLM with structured prompt
|
|
374
|
-
4. 📝 LLM synthesizes natural language answer with code citations
|
|
375
|
-
5. ✨ Returns formatted markdown with file references
|
|
376
|
-
|
|
377
|
-
**Example Output:**
|
|
378
|
-
```markdown
|
|
379
|
-
# How Authentication Works
|
|
380
|
-
|
|
381
|
-
The authentication system uses a middleware-based approach...
|
|
382
|
-
|
|
383
|
-
The main authentication flow is handled by `AuthMiddleware` in [`src/middleware/auth.ts`](src/middleware/auth.ts):
|
|
384
|
-
|
|
385
|
-
```typescript
|
|
386
|
-
export function authenticate(req, res, next) {
|
|
387
|
-
// Token validation logic
|
|
388
|
-
...
|
|
389
|
-
}
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
Key components:
|
|
393
|
-
- **Session Management**: [`src/auth/session.ts`](src/auth/session.ts)
|
|
394
|
-
- **Token Validation**: [`src/auth/token.ts`](src/auth/token.ts)
|
|
395
|
-
- **User Model**: [`src/models/user.ts`](src/models/user.ts)
|
|
396
240
|
```
|
|
397
241
|
|
|
398
242
|
## 🏗️ Architecture
|
|
@@ -415,115 +259,37 @@ Key components:
|
|
|
415
259
|
- Optionally applies API reranking
|
|
416
260
|
- Returns ranked results with metadata
|
|
417
261
|
|
|
418
|
-
3. **
|
|
419
|
-
-
|
|
420
|
-
-
|
|
421
|
-
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
```
|
|
426
|
-
.codevault/
|
|
427
|
-
├── codevault.db # SQLite: embeddings + metadata
|
|
428
|
-
├── chunks/ # Compressed code chunks
|
|
429
|
-
│ ├── <sha>.gz # Plain compressed
|
|
430
|
-
│ └── <sha>.gz.enc # Encrypted compressed
|
|
431
|
-
└── contextpacks/ # Saved search contexts
|
|
432
|
-
└── feature-auth.json # Example context pack
|
|
433
|
-
|
|
434
|
-
codevault.codemap.json # Lightweight index (symbol graph)
|
|
435
|
-
|
|
436
|
-
~/.codevault/ # Global CLI configuration
|
|
437
|
-
└── config.json # User-wide settings
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
### Advanced Features
|
|
441
|
-
|
|
442
|
-
#### Batch Processing
|
|
443
|
-
|
|
444
|
-
Embeddings are generated in batches of 50 for optimal API efficiency:
|
|
445
|
-
|
|
446
|
-
```typescript
|
|
447
|
-
// Automatic batching - no configuration needed
|
|
448
|
-
// Processes 50 chunks per API call
|
|
449
|
-
// Falls back to individual processing on error
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
#### Smart Chunking
|
|
453
|
-
|
|
454
|
-
Token-aware semantic chunking with configurable limits:
|
|
455
|
-
|
|
456
|
-
- Respects function/class boundaries
|
|
457
|
-
- Applies overlap for context continuity
|
|
458
|
-
- Subdivides large functions intelligently
|
|
459
|
-
- Merges small chunks when beneficial
|
|
460
|
-
|
|
461
|
-
#### Symbol-Aware Ranking
|
|
462
|
-
|
|
463
|
-
Boosts search results based on:
|
|
464
|
-
- Exact symbol name matches
|
|
465
|
-
- Function signature matches
|
|
466
|
-
- Parameter name matches
|
|
467
|
-
- Symbol neighbor relationships (calls, imports)
|
|
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
|
|
468
268
|
|
|
469
|
-
|
|
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
|
|
470
275
|
|
|
471
|
-
|
|
472
|
-
- Vector similarity (semantic understanding)
|
|
473
|
-
- BM25 keyword matching (exact term matches)
|
|
474
|
-
- Symbol boost (code structure awareness)
|
|
475
|
-
- Reciprocal Rank Fusion (combines rankings)
|
|
476
|
-
|
|
477
|
-
#### Context Packs
|
|
478
|
-
|
|
479
|
-
Save search scopes for reuse:
|
|
480
|
-
|
|
481
|
-
```json
|
|
482
|
-
{
|
|
483
|
-
"key": "feature-auth",
|
|
484
|
-
"name": "Authentication Feature",
|
|
485
|
-
"description": "Login, signup, password reset",
|
|
486
|
-
"scope": {
|
|
487
|
-
"path_glob": ["src/auth/**", "src/middleware/auth.ts"],
|
|
488
|
-
"tags": ["auth", "security"],
|
|
489
|
-
"lang": ["typescript", "javascript"]
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
Usage:
|
|
495
|
-
```bash
|
|
496
|
-
codevault context use feature-auth
|
|
497
|
-
codevault search "token validation" # Scoped to auth files
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
#### File Watching
|
|
501
|
-
|
|
502
|
-
Real-time index updates with intelligent debouncing:
|
|
503
|
-
|
|
504
|
-
```bash
|
|
505
|
-
codevault watch --debounce 500
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
- Detects file changes, additions, deletions
|
|
509
|
-
- Batches rapid changes (debouncing)
|
|
510
|
-
- Updates only affected chunks
|
|
511
|
-
- Preserves index consistency
|
|
512
|
-
|
|
513
|
-
#### Encryption
|
|
514
|
-
|
|
515
|
-
AES-256-GCM encryption for code chunks:
|
|
276
|
+
### Supported Languages
|
|
516
277
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
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
|
|
520
283
|
|
|
521
|
-
|
|
522
|
-
codevault index --encrypt on
|
|
284
|
+
### Recommended Providers
|
|
523
285
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
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 |
|
|
527
293
|
|
|
528
294
|
## 🔧 Performance & Optimization
|
|
529
295
|
|
|
@@ -602,8 +368,6 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
602
368
|
- **GitHub**: https://github.com/shariqriazz/codevault
|
|
603
369
|
- **NPM**: https://www.npmjs.com/package/codevault
|
|
604
370
|
- **Issues**: https://github.com/shariqriazz/codevault/issues
|
|
605
|
-
- **Configuration Guide**: [CONFIGURATION.md](CONFIGURATION.md)
|
|
606
|
-
- **Ask Feature Guide**: [ASK_FEATURE.md](ASK_FEATURE.md)
|
|
607
371
|
|
|
608
372
|
## 🙏 Acknowledgments
|
|
609
373
|
|
|
@@ -612,9 +376,12 @@ Built with:
|
|
|
612
376
|
- [Tree-sitter](https://tree-sitter.github.io/) - Parsing infrastructure
|
|
613
377
|
- [OpenAI](https://openai.com/) - Embedding models
|
|
614
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
|
|
615
382
|
|
|
616
383
|
---
|
|
617
384
|
|
|
618
|
-
**Version**: 1.
|
|
619
|
-
**Built by**: Shariq Riaz
|
|
620
|
-
**Last Updated**:
|
|
385
|
+
**Version**: 1.6.0
|
|
386
|
+
**Built by**: Shariq Riaz
|
|
387
|
+
**Last Updated**: November 2025
|
|
@@ -34,6 +34,6 @@ export interface CombinedChunk {
|
|
|
34
34
|
groupTypes: string[];
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
export declare function createCombinedChunk(nodeGroup: NodeGroup, source: string
|
|
37
|
+
export declare function createCombinedChunk(nodeGroup: NodeGroup, source: string): CombinedChunk | null;
|
|
38
38
|
export {};
|
|
39
39
|
//# sourceMappingURL=file-grouper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;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,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;AAwJD,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,GAAG,aAAa,GAAG,IAAI,CA4B9F"}
|
|
@@ -1,22 +1,5 @@
|
|
|
1
1
|
import { batchAnalyzeCodeSize } from './token-counter.js';
|
|
2
|
-
|
|
3
|
-
if (profile.useTokens && profile.tokenCounter) {
|
|
4
|
-
return {
|
|
5
|
-
optimal: profile.optimalTokens,
|
|
6
|
-
min: profile.minChunkTokens,
|
|
7
|
-
max: profile.maxChunkTokens,
|
|
8
|
-
overlap: profile.overlapTokens,
|
|
9
|
-
unit: 'tokens'
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
optimal: profile.optimalChars,
|
|
14
|
-
min: profile.minChunkChars,
|
|
15
|
-
max: profile.maxChunkChars,
|
|
16
|
-
overlap: profile.overlapChars,
|
|
17
|
-
unit: 'characters'
|
|
18
|
-
};
|
|
19
|
-
}
|
|
2
|
+
import { getSizeLimits } from '../providers/base.js';
|
|
20
3
|
async function batchAnalyzeNodesInternal(nodes, source, profile) {
|
|
21
4
|
const codes = nodes.map(node => source.slice(node.startIndex, node.endIndex));
|
|
22
5
|
const limits = getSizeLimits(profile);
|
|
@@ -155,7 +138,7 @@ export async function groupNodesForChunking(nodes, source, profile, rule) {
|
|
|
155
138
|
const optimalGroups = await combineGroupsToOptimalSize(semanticGroups, source, profile, limits);
|
|
156
139
|
return optimalGroups;
|
|
157
140
|
}
|
|
158
|
-
export function createCombinedChunk(nodeGroup, source
|
|
141
|
+
export function createCombinedChunk(nodeGroup, source) {
|
|
159
142
|
if (!nodeGroup.nodes || nodeGroup.nodes.length === 0) {
|
|
160
143
|
return null;
|
|
161
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-grouper.js","sourceRoot":"","sources":["../../src/chunking/file-grouper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,oBAAoB,EAAyB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-grouper.js","sourceRoot":"","sources":["../../src/chunking/file-grouper.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|