codebase-context 1.5.1 → 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/README.md +128 -158
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +26 -16
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/reranker.d.ts +23 -0
- package/dist/core/reranker.d.ts.map +1 -0
- package/dist/core/reranker.js +120 -0
- package/dist/core/reranker.js.map +1 -0
- package/dist/core/search.d.ts +10 -2
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +312 -68
- package/dist/core/search.js.map +1 -1
- package/dist/embeddings/transformers.d.ts.map +1 -1
- package/dist/embeddings/transformers.js +17 -7
- package/dist/embeddings/transformers.js.map +1 -1
- package/dist/embeddings/types.d.ts.map +1 -1
- package/dist/embeddings/types.js +3 -0
- package/dist/embeddings/types.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +109 -49
- package/dist/index.js.map +1 -1
- package/dist/preflight/evidence-lock.js +1 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/chunking.js +2 -2
- package/dist/utils/chunking.js.map +1 -1
- package/dist/utils/usage-tracker.d.ts.map +1 -1
- package/dist/utils/usage-tracker.js +2 -4
- package/dist/utils/usage-tracker.js.map +1 -1
- package/docs/capabilities.md +75 -0
- package/package.json +31 -9
package/README.md
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
# codebase-context
|
|
2
2
|
|
|
3
|
+
## Local-first second brain for AI Agents working on your codebase
|
|
4
|
+
|
|
3
5
|
[](https://www.npmjs.com/package/codebase-context) [](./LICENSE) [](./package.json)
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
You're tired of AI agents writing code that 'just works' but fits like a square peg in a round hole - not your conventions, not your architecture, not your repo. Even with well-curated instructions. You correct the agent, it doesn't remember. Next session, same mistakes.
|
|
8
|
+
|
|
9
|
+
This MCP gives agents _just enough_ context so they match _how_ your team codes, know _why_, and _remember_ every correction.
|
|
10
|
+
|
|
11
|
+
Here's what codebase-context does:
|
|
12
|
+
|
|
13
|
+
**Finds the right context** - Search that doesn't just return code. Each result comes back with analyzed -and quantified- coding patterns and conventions, related team memories, file relationships, and quality indicators. The agent gets curated context, not raw hits.
|
|
14
|
+
|
|
15
|
+
**Knows your conventions** - Detected from your code, not only from rules you wrote. Seeks team consensus and direction by adoption percentages and trends (rising/declining), golden files. What patterns the team is moving toward and what's being left behind.
|
|
16
|
+
|
|
17
|
+
**Remembers across sessions** - Decisions, failures, things that _should_ work but didn't when you tried - recorded once, surfaced automatically. Conventional git commits (`refactor:`, `migrate:`, `fix:`) auto-extract into memory with zero effort. Stale memories decay and get flagged instead of blindly trusted.
|
|
18
|
+
|
|
19
|
+
**Checks before editing** - A preflight card with risk level, patterns to use and avoid, failure warnings, and a `readyToEdit` evidence check. If evidence is thin or contradictory, it says so.
|
|
20
|
+
|
|
21
|
+
One tool call returns all of it. Local-first - your code never leaves your machine.
|
|
22
|
+
|
|
23
|
+
<!-- TODO: Add demo GIF here showing search_codebase with preflight card output -->
|
|
24
|
+
<!--  -->
|
|
6
25
|
|
|
7
26
|
## Quick Start
|
|
8
27
|
|
|
28
|
+
Add it to the configuration of your AI Agent of preference:
|
|
29
|
+
|
|
30
|
+
### Claude Code
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
claude mcp add codebase-context -- npx -y codebase-context /path/to/your/project
|
|
34
|
+
```
|
|
35
|
+
|
|
9
36
|
### Claude Desktop
|
|
10
37
|
|
|
11
38
|
Add to `claude_desktop_config.json`:
|
|
@@ -30,7 +57,7 @@ Add `.vscode/mcp.json` to your project root:
|
|
|
30
57
|
"servers": {
|
|
31
58
|
"codebase-context": {
|
|
32
59
|
"command": "npx",
|
|
33
|
-
"args": ["-y", "codebase-context", "${workspaceFolder}"
|
|
60
|
+
"args": ["-y", "codebase-context", "/path/to/your/project"] // Or "${workspaceFolder}"if your workspace is one project only
|
|
34
61
|
}
|
|
35
62
|
}
|
|
36
63
|
}
|
|
@@ -66,82 +93,36 @@ Open Settings > MCP and add:
|
|
|
66
93
|
}
|
|
67
94
|
```
|
|
68
95
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
No config file needed. Add to `.claude/settings.json` or run:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
claude mcp add codebase-context -- npx -y codebase-context /path/to/your/project
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## What Makes It a Second Brain
|
|
78
|
-
|
|
79
|
-
Other tools help AI find code. This one helps AI make the right decisions — by remembering what your team does, tracking how patterns evolve, and warning before mistakes repeat.
|
|
80
|
-
|
|
81
|
-
### Remembers
|
|
82
|
-
|
|
83
|
-
Decisions, rationale, and past failures persist across sessions. Not just what the team does — why.
|
|
84
|
-
|
|
85
|
-
- Internal library usage: `@mycompany/ui-toolkit` (847 uses) vs `primeng` (3 uses) — and _why_ the wrapper exists
|
|
86
|
-
- "Tried direct PrimeNG toast, broke event system" — recorded as a failure memory, surfaced before the next agent repeats it
|
|
87
|
-
- Conventions from git history auto-extracted: `refactor:`, `migrate:`, `fix:`, `revert:` commits become memories with zero manual effort
|
|
88
|
-
|
|
89
|
-
### Reasons
|
|
90
|
-
|
|
91
|
-
Quantified pattern analysis with trend direction. Not "use inject()" — "97% of the team uses inject(), and it's rising."
|
|
92
|
-
|
|
93
|
-
- `inject()`: 97% adoption vs `constructor()`: 3% — with trend direction (rising/declining)
|
|
94
|
-
- `Signals`: rising (last used 2 days ago) vs `RxJS BehaviorSubject`: declining (180+ days)
|
|
95
|
-
- Golden files: real implementations scoring highest on modern pattern density — canonical examples to follow
|
|
96
|
-
- Pattern conflicts detected: when two approaches in the same category both exceed 20% adoption
|
|
97
|
-
|
|
98
|
-
### Protects
|
|
99
|
-
|
|
100
|
-
Before an edit happens, the agent gets a preflight briefing: what to use, what to avoid, what broke last time.
|
|
101
|
-
|
|
102
|
-
- Preflight card on `search_codebase` with `intent: "edit"` — risk level, preferred/avoid patterns, failure warnings, golden files, impact candidates
|
|
103
|
-
- Failure memories bump risk level and surface as explicit warnings
|
|
104
|
-
- Confidence decay: memories age (90-day or 180-day half-life). Stale guidance gets flagged, not blindly trusted
|
|
105
|
-
- Epistemic stress detection: when evidence is contradictory, stale, or too thin, the preflight card says "insufficient evidence" instead of guessing
|
|
106
|
-
- Search quality transparency: `search_codebase` includes `searchQuality` (`ok`/`low_confidence`, signals, confidence, next steps) so ambiguous retrieval is explicit instead of hidden
|
|
96
|
+
## Codex
|
|
107
97
|
|
|
108
|
-
|
|
98
|
+
Run codex mcp add codebase-context npx -y codebase-context "/path/to/your/project"
|
|
109
99
|
|
|
110
|
-
|
|
100
|
+
## What It Actually Does
|
|
111
101
|
|
|
112
|
-
-
|
|
113
|
-
- **Language**: TypeScript, JavaScript, Python, Go, Rust, and 25+ more
|
|
114
|
-
- **Component type**: component, service, directive, guard, interceptor, pipe
|
|
115
|
-
- **Architectural layer**: presentation, business, data, state, core, shared
|
|
116
|
-
- Circular dependency detection, style guide auto-detection, architectural layer classification
|
|
102
|
+
Other tools help AI find code. This one helps AI make the right decisions - by knowing what your team does, tracking where codebases are heading, and warning before mistakes happen.
|
|
117
103
|
|
|
118
|
-
|
|
104
|
+
### The Difference
|
|
119
105
|
|
|
120
|
-
|
|
106
|
+
| Without codebase-context | With codebase-context |
|
|
107
|
+
| ------------------------------------------------------- | --------------------------------------------------- |
|
|
108
|
+
| Generates code using whatever matches or "sounds" right | Generates code following your team conventions |
|
|
109
|
+
| Copies any example that fits | Follows your best implementations (golden files) |
|
|
110
|
+
| Repeats mistakes you already corrected | Surfaces failure memories right before trying again |
|
|
111
|
+
| You re-explain the same things every session | Remembers conventions and decisions automatically |
|
|
112
|
+
| Edits confidently even when context is weak | Flags high-risk changes when evidence is thin |
|
|
113
|
+
| Sees what the current code does and assumes | Sees how your code has evolved and why |
|
|
121
114
|
|
|
122
|
-
|
|
123
|
-
| -------------------------- | -------------------------------------------------------- |
|
|
124
|
-
| Internal library detection | 336 uses of `@company/ui-toolkit` vs 3 direct PrimeNG |
|
|
125
|
-
| DI pattern consensus | 98% `inject()` adoption detected, constructor DI flagged |
|
|
126
|
-
| Test framework detection | 74% Jest, 26% Jasmine/Karma, per-module awareness |
|
|
127
|
-
| Wrapper discovery | `ToastEventService`, `DialogComponent` surfaced over raw |
|
|
128
|
-
| Golden file identification | Top 5 files scoring 4-6 modern patterns each |
|
|
115
|
+
### The Search Tool (`search_codebase`)
|
|
129
116
|
|
|
130
|
-
|
|
117
|
+
This is where it all comes together. One call returns:
|
|
131
118
|
|
|
132
|
-
|
|
119
|
+
- **Code results** with `summary`, `snippet`, `filePath`, `score`, and `relevanceReason`
|
|
120
|
+
- **Pattern signals** per result: `trend` (Rising/Stable/Declining) and `patternWarning` when using legacy code
|
|
121
|
+
- **Relationships** per result: `importedBy`, `imports`, `testedIn`, `lastModified`
|
|
122
|
+
- **Related memories**: team decisions, gotchas, and failures matched to the query
|
|
123
|
+
- **Search quality**: `ok` or `low_confidence` with diagnostic signals and next steps
|
|
133
124
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
| Without second brain | With second brain |
|
|
137
|
-
| ---------------------------------------- | ------------------------------------ |
|
|
138
|
-
| Uses `constructor(private svc: Service)` | Uses `inject()` (97% team adoption) |
|
|
139
|
-
| Suggests `primeng/button` directly | Uses `@mycompany/ui-toolkit` wrapper |
|
|
140
|
-
| Generic Jest setup | Your team's actual test utilities |
|
|
141
|
-
|
|
142
|
-
### Preflight Card
|
|
143
|
-
|
|
144
|
-
When using `search_codebase` with `intent: "edit"`, `"refactor"`, or `"migrate"`, the response includes a preflight card alongside search results:
|
|
125
|
+
When the intent is `edit`, `refactor`, or `migrate`, the same call also returns a **preflight card**:
|
|
145
126
|
|
|
146
127
|
```json
|
|
147
128
|
{
|
|
@@ -160,132 +141,121 @@ When using `search_codebase` with `intent: "edit"`, `"refactor"`, or `"migrate"`
|
|
|
160
141
|
{ "source": "memories", "strength": "strong", "count": 2 }
|
|
161
142
|
]
|
|
162
143
|
},
|
|
163
|
-
"preferredPatterns": [
|
|
164
|
-
|
|
165
|
-
],
|
|
166
|
-
"
|
|
167
|
-
{ "pattern": "Constructor injection", "category": "dependencyInjection", "adoption": "2%", "trend": "Declining" }
|
|
168
|
-
],
|
|
169
|
-
"goldenFiles": [
|
|
170
|
-
{ "file": "src/features/auth/auth.service.ts", "score": 6 }
|
|
171
|
-
],
|
|
172
|
-
"failureWarnings": [
|
|
173
|
-
{ "memory": "Direct PrimeNG toast broke event system", "reason": "Must use ToastEventService" }
|
|
174
|
-
]
|
|
144
|
+
"preferredPatterns": [...],
|
|
145
|
+
"avoidPatterns": [...],
|
|
146
|
+
"goldenFiles": [...],
|
|
147
|
+
"failureWarnings": [...]
|
|
175
148
|
},
|
|
176
149
|
"results": [...]
|
|
177
150
|
}
|
|
178
151
|
```
|
|
179
152
|
|
|
180
|
-
|
|
153
|
+
Risk level, what to use, what to avoid, what broke last time, and whether the evidence is strong enough to proceed - all in one response.
|
|
181
154
|
|
|
182
|
-
###
|
|
155
|
+
### Patterns & Conventions (`get_team_patterns`)
|
|
183
156
|
|
|
184
|
-
|
|
157
|
+
Detects what your team actually does by analyzing the codebase:
|
|
185
158
|
|
|
186
|
-
|
|
187
|
-
|
|
159
|
+
- Adoption percentages for dependency injection, state management, testing, libraries
|
|
160
|
+
- Patterns/conventions trend direction (Rising / Stable / Declining) based on git recency
|
|
161
|
+
- Golden files - your best implementations ranked by modern pattern density
|
|
162
|
+
- Conflicts - when the team hasn't converged (both approaches above 20% adoption)
|
|
188
163
|
|
|
189
|
-
|
|
164
|
+
### Team Memory (`remember` + `get_memory`)
|
|
190
165
|
|
|
191
|
-
**
|
|
192
|
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
|
|
166
|
+
Record a decision once. It surfaces automatically in search results and preflight cards from then on. **Your git commits also become memories** - conventional commits like `refactor:`, `migrate:`, `fix:`, `revert:` from the last 90 days are auto-extracted during indexing.
|
|
167
|
+
|
|
168
|
+
- **Types**: conventions (style rules), decisions (architecture choices), gotchas (things that break), failures (we tried X, it broke because Y)
|
|
169
|
+
- **Confidence decay**: decisions age over 180 days, gotchas and failures over 90 days. Stale memories get flagged instead of blindly trusted.
|
|
170
|
+
- **Zero-config git extraction**: runs automatically during `refresh_index`. No setup, no manual work.
|
|
171
|
+
|
|
172
|
+
### All Tools
|
|
196
173
|
|
|
197
|
-
|
|
174
|
+
| Tool | What it does |
|
|
175
|
+
| ------------------------------ | ------------------------------------------------------------------- |
|
|
176
|
+
| `search_codebase` | Hybrid search with enrichment. Pass `intent: "edit"` for preflight. |
|
|
177
|
+
| `get_team_patterns` | Pattern frequencies, golden files, conflict detection |
|
|
178
|
+
| `get_component_usage` | "Find Usages" - where a library or component is imported |
|
|
179
|
+
| `remember` | Record a convention, decision, gotcha, or failure |
|
|
180
|
+
| `get_memory` | Query team memory with confidence decay scoring |
|
|
181
|
+
| `get_codebase_metadata` | Project structure, frameworks, dependencies |
|
|
182
|
+
| `get_style_guide` | Style guide rules for the current project |
|
|
183
|
+
| `detect_circular_dependencies` | Import cycles between files |
|
|
184
|
+
| `refresh_index` | Re-index (full or incremental) + extract git memories |
|
|
185
|
+
| `get_indexing_status` | Progress and stats for the current index |
|
|
198
186
|
|
|
199
|
-
##
|
|
187
|
+
## How the Search Works
|
|
200
188
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
| `get_memory` | Query memory with confidence decay scoring |
|
|
212
|
-
| `refresh_index` | Re-index the codebase + extract git memories |
|
|
189
|
+
The retrieval pipeline is designed around one goal: give the agent the right context, not just any file that matches.
|
|
190
|
+
|
|
191
|
+
- **Intent classification** - knows whether "AuthService" is a name lookup or "how does auth work" is conceptual. Adjusts keyword/semantic weights accordingly.
|
|
192
|
+
- **Hybrid fusion (RRF)** - combines keyword and semantic search using Reciprocal Rank Fusion instead of brittle score averaging.
|
|
193
|
+
- **Query expansion** - conceptual queries automatically expand with domain-relevant terms (auth → login, token, session, guard).
|
|
194
|
+
- **Contamination control** - test files are filtered/demoted for non-test queries.
|
|
195
|
+
- **Import centrality** - files that are imported more often rank higher.
|
|
196
|
+
- **Cross-encoder reranking** - a stage-2 reranker triggers only when top scores are ambiguous. CPU-only, bounded to top-K.
|
|
197
|
+
- **Incremental Indexing** - Whenever a file is changed, it
|
|
198
|
+
- **Auto-heal** - if the index corrupts, search triggers a full re-index automatically.
|
|
213
199
|
|
|
214
200
|
## Language Support
|
|
215
201
|
|
|
216
|
-
|
|
202
|
+
Over **30+ languages** are supported: TypeScript, JavaScript, Python, Java, Kotlin, C/C++, C#, Go, Rust, PHP, Ruby, Swift, Scala, Shell, and common config/markup formats.
|
|
203
|
+
However right now only **Angular** has a specific analyzer for enriched context (signals, standalone components, control flow, DI patterns).
|
|
204
|
+
If you need enriched context from any language or framework, please file an issue - or even better, contribute with a new analyzer
|
|
217
205
|
|
|
218
|
-
|
|
206
|
+
Structured filters available: `framework`, `language`, `componentType`, `layer` (presentation, business, data, state, core, shared).
|
|
207
|
+
|
|
208
|
+
## Configuration
|
|
219
209
|
|
|
220
|
-
|
|
210
|
+
| Variable | Default | Description |
|
|
211
|
+
| ------------------------ | -------------- | --------------------------------------------------------- |
|
|
212
|
+
| `EMBEDDING_PROVIDER` | `transformers` | `openai` (fast, cloud) or `transformers` (local, private) |
|
|
213
|
+
| `OPENAI_API_KEY` | - | Required only if using `openai` provider |
|
|
214
|
+
| `CODEBASE_ROOT` | - | Project root (CLI arg takes precedence) |
|
|
215
|
+
| `CODEBASE_CONTEXT_DEBUG` | - | Set to `1` for verbose logging |
|
|
216
|
+
|
|
217
|
+
## Performance
|
|
218
|
+
|
|
219
|
+
- **First indexing**: 2-5 minutes for ~30k files (embedding computation).
|
|
220
|
+
- **Subsequent queries**: milliseconds from cache.
|
|
221
|
+
- **Incremental updates**: `refresh_index` with `incrementalOnly: true` processes only changed files (SHA-256 manifest diffing).
|
|
222
|
+
|
|
223
|
+
## File Structure
|
|
221
224
|
|
|
222
225
|
```
|
|
223
226
|
.codebase-context/
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
227
|
+
memory.json # Team knowledge (should be persisted in git)
|
|
228
|
+
intelligence.json # Pattern analysis (generated)
|
|
229
|
+
index.json # Keyword index (generated)
|
|
230
|
+
index/ # Vector database (generated)
|
|
228
231
|
```
|
|
229
232
|
|
|
230
|
-
**Recommended `.gitignore`:**
|
|
233
|
+
**Recommended `.gitignore`:**
|
|
231
234
|
|
|
232
235
|
```gitignore
|
|
233
|
-
# Codebase Context
|
|
236
|
+
# Codebase Context - ignore generated files, keep memory
|
|
234
237
|
.codebase-context/*
|
|
235
238
|
!.codebase-context/memory.json
|
|
236
239
|
```
|
|
237
240
|
|
|
238
|
-
|
|
241
|
+
## Tip: Ensuring your AI Agent recalls memory:
|
|
239
242
|
|
|
240
|
-
|
|
243
|
+
Add this to `.cursorrules`, `CLAUDE.md`, or `AGENTS.md`:
|
|
241
244
|
|
|
242
|
-
```typescript
|
|
243
|
-
remember({
|
|
244
|
-
type: 'decision',
|
|
245
|
-
category: 'dependencies',
|
|
246
|
-
memory: 'Use node-linker: hoisted, not isolated',
|
|
247
|
-
reason: "Some packages don't declare transitive deps."
|
|
248
|
-
});
|
|
249
245
|
```
|
|
246
|
+
## Codebase Context
|
|
250
247
|
|
|
251
|
-
**
|
|
252
|
-
|
|
253
|
-
**Confidence decay:** Memories age. Conventions never decay. Decisions have a 180-day half-life. Gotchas and failures have a 90-day half-life. Memories below 30% confidence are flagged as stale in `get_memory` responses.
|
|
254
|
-
|
|
255
|
-
**Git auto-extraction:** During indexing, conventional commits (`refactor:`, `migrate:`, `fix:`, `revert:`) from the last 90 days are auto-recorded as memories. Zero manual effort.
|
|
256
|
-
|
|
257
|
-
**Pattern conflicts:** `get_team_patterns` detects when two patterns in the same category are both above 20% adoption with different trends, and surfaces them as conflicts with both sides.
|
|
258
|
-
|
|
259
|
-
Memories surface automatically in `search_codebase` results, `get_team_patterns` responses, and preflight cards.
|
|
260
|
-
|
|
261
|
-
**Known quirks:**
|
|
262
|
-
|
|
263
|
-
- Agents may bundle multiple things into one entry
|
|
264
|
-
- Edit `.codebase-context/memory.json` directly to clean up
|
|
265
|
-
- Be explicit: "Remember this: use X not Y"
|
|
266
|
-
|
|
267
|
-
## Configuration
|
|
268
|
-
|
|
269
|
-
| Variable | Default | Description |
|
|
270
|
-
| ------------------------ | -------------- | ------------------------------------------------------------------------------ |
|
|
271
|
-
| `EMBEDDING_PROVIDER` | `transformers` | `openai` (fast, cloud) or `transformers` (local, private) |
|
|
272
|
-
| `OPENAI_API_KEY` | - | Required if provider is `openai` |
|
|
273
|
-
| `CODEBASE_ROOT` | - | Project root to index (CLI arg takes precedence) |
|
|
274
|
-
| `CODEBASE_CONTEXT_DEBUG` | - | Set to `1` to enable verbose logging (startup messages, analyzer registration) |
|
|
275
|
-
|
|
276
|
-
## Performance
|
|
277
|
-
|
|
278
|
-
This tool runs locally on your machine.
|
|
248
|
+
**At start of each task:** Call `get_memory` to load team conventions.
|
|
279
249
|
|
|
280
|
-
|
|
281
|
-
-
|
|
282
|
-
|
|
250
|
+
**When user says "remember this" or "record this":**
|
|
251
|
+
- Call `remember` tool IMMEDIATELY before doing anything else.
|
|
252
|
+
```
|
|
283
253
|
|
|
284
254
|
## Links
|
|
285
255
|
|
|
286
|
-
- [Motivation](./MOTIVATION.md)
|
|
287
|
-
- [Changelog](./CHANGELOG.md)
|
|
288
|
-
- [Contributing](./CONTRIBUTING.md)
|
|
256
|
+
- [Motivation](./MOTIVATION.md) - Research and design rationale
|
|
257
|
+
- [Changelog](./CHANGELOG.md) - Version history
|
|
258
|
+
- [Contributing](./CONTRIBUTING.md) - How to add analyzers
|
|
289
259
|
|
|
290
260
|
## License
|
|
291
261
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACf,MAAM,mBAAmB,CAAC;AA+B3B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAuC;IAClE,OAAO,CAAC,eAAe,CAAU;gBAErB,OAAO,EAAE,cAAc;IAiBnC,OAAO,CAAC,WAAW;IAuDb,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;YA6gBvB,SAAS;IAiEvB,OAAO,CAAC,cAAc;IAShB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAqFjD;;;OAGG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAUvB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,WAAW,IAAI,gBAAgB;CAGhC"}
|
package/dist/core/indexer.js
CHANGED
|
@@ -9,9 +9,10 @@ import { glob } from 'glob';
|
|
|
9
9
|
import ignore from 'ignore';
|
|
10
10
|
import { analyzerRegistry } from './analyzer-registry.js';
|
|
11
11
|
import { isCodeFile, isBinaryFile } from '../utils/language-detection.js';
|
|
12
|
-
import { getEmbeddingProvider } from '../embeddings/index.js';
|
|
12
|
+
import { getEmbeddingProvider, DEFAULT_MODEL } from '../embeddings/index.js';
|
|
13
13
|
import { getStorageProvider } from '../storage/index.js';
|
|
14
14
|
import { LibraryUsageTracker, PatternDetector, ImportGraph, InternalFileGraph } from '../utils/usage-tracker.js';
|
|
15
|
+
import { mergeSmallChunks } from '../utils/chunking.js';
|
|
15
16
|
import { getFileCommitDates } from '../utils/git-dates.js';
|
|
16
17
|
import { CODEBASE_CONTEXT_DIRNAME, INDEXING_STATS_FILENAME, INTELLIGENCE_FILENAME, KEYWORD_INDEX_FILENAME, MANIFEST_FILENAME, VECTOR_DB_DIRNAME } from '../constants/codebase-context.js';
|
|
17
18
|
import { computeFileHashes, readManifest, writeManifest, diffManifest } from './manifest.js';
|
|
@@ -48,9 +49,9 @@ export class CodebaseIndexer {
|
|
|
48
49
|
exclude: ['node_modules/**', 'dist/**', 'build/**', '.git/**', 'coverage/**'],
|
|
49
50
|
respectGitignore: true,
|
|
50
51
|
parsing: {
|
|
51
|
-
maxFileSize: 1048576,
|
|
52
|
-
chunkSize:
|
|
53
|
-
chunkOverlap:
|
|
52
|
+
maxFileSize: 1048576,
|
|
53
|
+
chunkSize: 50,
|
|
54
|
+
chunkOverlap: 0,
|
|
54
55
|
parseTests: true,
|
|
55
56
|
parseNodeModules: false
|
|
56
57
|
},
|
|
@@ -66,8 +67,8 @@ export class CodebaseIndexer {
|
|
|
66
67
|
},
|
|
67
68
|
embedding: {
|
|
68
69
|
provider: 'transformers',
|
|
69
|
-
model:
|
|
70
|
-
batchSize:
|
|
70
|
+
model: DEFAULT_MODEL,
|
|
71
|
+
batchSize: 32
|
|
71
72
|
},
|
|
72
73
|
skipEmbedding: false,
|
|
73
74
|
storage: {
|
|
@@ -151,7 +152,7 @@ export class CodebaseIndexer {
|
|
|
151
152
|
};
|
|
152
153
|
// Short-circuit: nothing changed
|
|
153
154
|
if (diff.added.length === 0 && diff.changed.length === 0 && diff.deleted.length === 0) {
|
|
154
|
-
console.error('No files changed
|
|
155
|
+
console.error('No files changed - skipping re-index.');
|
|
155
156
|
this.updateProgress('complete', 100);
|
|
156
157
|
stats.duration = Date.now() - startTime;
|
|
157
158
|
stats.completedAt = new Date();
|
|
@@ -226,9 +227,10 @@ export class CodebaseIndexer {
|
|
|
226
227
|
const result = await analyzerRegistry.analyzeFile(file, content);
|
|
227
228
|
if (result) {
|
|
228
229
|
const isFileChanged = !filesToProcessSet || filesToProcessSet.has(file);
|
|
229
|
-
|
|
230
|
+
const mergedChunks = mergeSmallChunks(result.chunks, 15);
|
|
231
|
+
allChunks.push(...mergedChunks);
|
|
230
232
|
if (isFileChanged) {
|
|
231
|
-
changedChunks.push(...
|
|
233
|
+
changedChunks.push(...mergedChunks);
|
|
232
234
|
}
|
|
233
235
|
stats.indexedFiles++;
|
|
234
236
|
stats.totalLines += content.split('\n').length;
|
|
@@ -362,19 +364,27 @@ export class CodebaseIndexer {
|
|
|
362
364
|
// Initialize embedding provider
|
|
363
365
|
const embeddingProvider = await getEmbeddingProvider(this.config.embedding);
|
|
364
366
|
// Generate embeddings for all chunks
|
|
365
|
-
|
|
367
|
+
// Outer batch size controls how many chunks we collect before calling embedBatch.
|
|
368
|
+
// embedBatch internally sub-batches further based on model context size.
|
|
369
|
+
const batchSize = Math.min(this.config.embedding?.batchSize || 32, 32);
|
|
366
370
|
for (let i = 0; i < chunksToEmbed.length; i += batchSize) {
|
|
367
371
|
const batch = chunksToEmbed.slice(i, i + batchSize);
|
|
368
372
|
const texts = batch.map((chunk) => {
|
|
369
|
-
|
|
370
|
-
|
|
373
|
+
const meta = [];
|
|
374
|
+
if (chunk.relativePath) {
|
|
375
|
+
meta.push(`path:${chunk.relativePath}`);
|
|
376
|
+
}
|
|
377
|
+
if (chunk.componentType && chunk.componentType !== 'unknown') {
|
|
378
|
+
meta.push(`type:${chunk.componentType}`);
|
|
379
|
+
}
|
|
371
380
|
if (chunk.metadata?.componentName) {
|
|
372
|
-
|
|
381
|
+
meta.push(`component:${chunk.metadata.componentName}`);
|
|
373
382
|
}
|
|
374
|
-
if (chunk.
|
|
375
|
-
|
|
383
|
+
if (chunk.layer && chunk.layer !== 'unknown') {
|
|
384
|
+
meta.push(`layer:${chunk.layer}`);
|
|
376
385
|
}
|
|
377
|
-
|
|
386
|
+
const prefix = meta.length > 0 ? meta.join(' ') + '\n' : '';
|
|
387
|
+
return prefix + chunk.content;
|
|
378
388
|
});
|
|
379
389
|
const embeddings = await embeddingProvider.embedBatch(texts);
|
|
380
390
|
for (let j = 0; j < batch.length; j++) {
|
package/dist/core/indexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage-2 cross-encoder reranker for search results.
|
|
3
|
+
*
|
|
4
|
+
* Triggered by score ambiguity (clustered top scores), not by intent.
|
|
5
|
+
* Uses a lightweight cross-encoder to re-score (query, passage) pairs,
|
|
6
|
+
* converting high top-3 recall into better top-1 accuracy.
|
|
7
|
+
*
|
|
8
|
+
* Default model: Xenova/ms-marco-MiniLM-L-6-v2 (~22M params, ~80MB, CPU-safe).
|
|
9
|
+
*/
|
|
10
|
+
import type { SearchResult } from '../types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* Detect whether the result set has ambiguous ordering.
|
|
13
|
+
* Returns true when the top scores are clustered, meaning
|
|
14
|
+
* the embedding model isn't confident about the ranking.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isAmbiguous(results: SearchResult[]): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Rerank the top-K results using a cross-encoder.
|
|
19
|
+
* Only reranks when scores are ambiguous (clustered).
|
|
20
|
+
* Returns the full result array with the top-K portion re-ordered.
|
|
21
|
+
*/
|
|
22
|
+
export declare function rerank(query: string, results: SearchResult[]): Promise<SearchResult[]>;
|
|
23
|
+
//# sourceMappingURL=reranker.d.ts.map
|