code-context-engine 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. code_context_engine-0.4.0.dist-info/METADATA +389 -0
  2. code_context_engine-0.4.0.dist-info/RECORD +63 -0
  3. code_context_engine-0.4.0.dist-info/WHEEL +5 -0
  4. code_context_engine-0.4.0.dist-info/entry_points.txt +4 -0
  5. code_context_engine-0.4.0.dist-info/licenses/LICENSE +21 -0
  6. code_context_engine-0.4.0.dist-info/top_level.txt +1 -0
  7. context_engine/__init__.py +3 -0
  8. context_engine/cli.py +2848 -0
  9. context_engine/cli_style.py +66 -0
  10. context_engine/compression/__init__.py +0 -0
  11. context_engine/compression/compressor.py +144 -0
  12. context_engine/compression/ollama_client.py +33 -0
  13. context_engine/compression/output_rules.py +77 -0
  14. context_engine/compression/prompts.py +9 -0
  15. context_engine/compression/quality.py +37 -0
  16. context_engine/config.py +198 -0
  17. context_engine/dashboard/__init__.py +0 -0
  18. context_engine/dashboard/_page.py +1548 -0
  19. context_engine/dashboard/server.py +429 -0
  20. context_engine/editors.py +265 -0
  21. context_engine/event_bus.py +24 -0
  22. context_engine/indexer/__init__.py +0 -0
  23. context_engine/indexer/chunker.py +147 -0
  24. context_engine/indexer/embedder.py +154 -0
  25. context_engine/indexer/embedding_cache.py +168 -0
  26. context_engine/indexer/git_hooks.py +73 -0
  27. context_engine/indexer/git_indexer.py +136 -0
  28. context_engine/indexer/ignorefile.py +96 -0
  29. context_engine/indexer/manifest.py +78 -0
  30. context_engine/indexer/pipeline.py +624 -0
  31. context_engine/indexer/secrets.py +332 -0
  32. context_engine/indexer/watcher.py +109 -0
  33. context_engine/integration/__init__.py +0 -0
  34. context_engine/integration/bootstrap.py +76 -0
  35. context_engine/integration/git_context.py +132 -0
  36. context_engine/integration/mcp_server.py +1825 -0
  37. context_engine/integration/session_capture.py +306 -0
  38. context_engine/memory/__init__.py +6 -0
  39. context_engine/memory/compressor.py +344 -0
  40. context_engine/memory/db.py +922 -0
  41. context_engine/memory/extractive.py +106 -0
  42. context_engine/memory/grammar.py +419 -0
  43. context_engine/memory/hook_installer.py +258 -0
  44. context_engine/memory/hook_server.py +83 -0
  45. context_engine/memory/hooks.py +327 -0
  46. context_engine/memory/migrate.py +268 -0
  47. context_engine/models.py +96 -0
  48. context_engine/pricing.py +104 -0
  49. context_engine/project_commands.py +296 -0
  50. context_engine/retrieval/__init__.py +0 -0
  51. context_engine/retrieval/confidence.py +47 -0
  52. context_engine/retrieval/query_parser.py +105 -0
  53. context_engine/retrieval/retriever.py +199 -0
  54. context_engine/serve_http.py +208 -0
  55. context_engine/services.py +252 -0
  56. context_engine/storage/__init__.py +0 -0
  57. context_engine/storage/backend.py +39 -0
  58. context_engine/storage/fts_store.py +112 -0
  59. context_engine/storage/graph_store.py +219 -0
  60. context_engine/storage/local_backend.py +109 -0
  61. context_engine/storage/remote_backend.py +117 -0
  62. context_engine/storage/vector_store.py +357 -0
  63. context_engine/utils.py +72 -0
@@ -0,0 +1,389 @@
1
+ Metadata-Version: 2.4
2
+ Name: code-context-engine
3
+ Version: 0.4.0
4
+ Summary: Index your codebase. AI searches instead of re-reading files. Save 70%+ on tokens. Works with Claude Code, Cursor, VS Code, Gemini CLI, and Codex.
5
+ Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/elara-labs/code-context-engine
8
+ Project-URL: Repository, https://github.com/elara-labs/code-context-engine
9
+ Project-URL: Issues, https://github.com/elara-labs/code-context-engine/issues
10
+ Keywords: claude,context,mcp,llm,code-indexing,vector-search
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Software Development :: Libraries
18
+ Requires-Python: >=3.11
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: click>=8.1
22
+ Requires-Dist: pyyaml>=6.0
23
+ Requires-Dist: sqlite-vec>=0.1.6
24
+ Requires-Dist: fastembed>=0.4
25
+ Requires-Dist: numpy>=1.24
26
+ Requires-Dist: tree-sitter>=0.22
27
+ Requires-Dist: tree-sitter-python>=0.21
28
+ Requires-Dist: tree-sitter-javascript>=0.21
29
+ Requires-Dist: tree-sitter-typescript>=0.21
30
+ Requires-Dist: tree-sitter-php>=0.23
31
+ Requires-Dist: tree-sitter-go>=0.23
32
+ Requires-Dist: tree-sitter-rust>=0.23
33
+ Requires-Dist: tree-sitter-java>=0.23
34
+ Requires-Dist: watchdog>=4.0
35
+ Requires-Dist: mcp>=1.0
36
+ Requires-Dist: httpx>=0.27
37
+ Requires-Dist: fastapi>=0.110
38
+ Requires-Dist: uvicorn>=0.29
39
+ Requires-Dist: aiohttp>=3.9
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest>=8.0; extra == "dev"
42
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
43
+ Requires-Dist: pytest-aiohttp>=1.0; extra == "dev"
44
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
45
+ Requires-Dist: pytest-xdist>=3.5; extra == "dev"
46
+ Provides-Extra: http
47
+ Dynamic: license-file
48
+
49
+ <p align="center">
50
+ <img src="docs/logo.svg" alt="Code Context Engine" width="160">
51
+ </p>
52
+
53
+ <h1 align="center">Code Context Engine</h1>
54
+
55
+ <p align="center">
56
+ <strong>Index your codebase. AI searches instead of re-reading files. Save 70%+ on tokens.</strong>
57
+ </p>
58
+
59
+ <p align="center">
60
+ <a href="https://pypi.org/project/code-context-engine/"><img src="https://img.shields.io/pypi/v/code-context-engine?color=blue&label=PyPI" alt="PyPI"></a>
61
+ <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.11+-blue.svg" alt="Python 3.11+"></a>
62
+ <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-green.svg" alt="MCP Compatible"></a>
63
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License"></a>
64
+ <a href="https://github.com/elara-labs/code-context-engine"><img src="https://img.shields.io/github/stars/elara-labs/code-context-engine?style=social" alt="Stars"></a>
65
+ </p>
66
+
67
+ <p align="center">
68
+ <img src="https://img.shields.io/badge/Claude_Code-black?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude Code">
69
+ <img src="https://img.shields.io/badge/VS_Code-007ACC?style=for-the-badge&logo=visual-studio-code&logoColor=white" alt="VS Code">
70
+ <img src="https://img.shields.io/badge/Cursor-000000?style=for-the-badge&logo=cursor&logoColor=white" alt="Cursor">
71
+ <img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google&logoColor=white" alt="Gemini CLI">
72
+ <img src="https://img.shields.io/badge/Codex_CLI-412991?style=for-the-badge&logo=openai&logoColor=white" alt="Codex CLI">
73
+ </p>
74
+
75
+ <p align="center">
76
+ One command. Index your codebase. Your AI coding agent searches instead of reading entire files.<br>
77
+ Works with Claude Code, Cursor, VS Code, Gemini CLI, and OpenAI Codex. Local, zero-cloud.
78
+ </p>
79
+
80
+ <p align="center">
81
+ <img src="docs/demo.gif" alt="CCE Demo" width="800">
82
+ </p>
83
+
84
+ ---
85
+
86
+ ## Install and see savings in 60 seconds
87
+
88
+ ```bash
89
+ uv tool install code-context-engine # or: pipx install code-context-engine
90
+ cd /path/to/your/project
91
+ cce init # index, install hooks, register MCP server
92
+ ```
93
+
94
+ Restart your editor. Done. Every question now hits the index instead of re-reading files.
95
+
96
+ `cce init` auto-detects your editor and writes the right config:
97
+
98
+ | Editor | Config written | Instructions |
99
+ |--------|---------------|--------------|
100
+ | Claude Code | `.mcp.json` | `CLAUDE.md` |
101
+ | VS Code / Copilot | `.vscode/mcp.json` | |
102
+ | Cursor | `.cursor/mcp.json` | `.cursorrules` |
103
+ | Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
104
+ | OpenAI Codex | `.codex/config.toml` | |
105
+
106
+ Multiple editors in the same project? All get configured in one command.
107
+
108
+ ```
109
+ my-project · 38 queries
110
+
111
+ ⛁ ⛁ ⛁ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ 70% tokens saved
112
+
113
+ Without CCE 48.0k tokens $0.24
114
+ With CCE 14.2k tokens $0.07
115
+ ──────────────────────────────────────────
116
+ Saved 33.8k tokens $0.17
117
+
118
+ Cost estimate based on Opus input pricing ($5/1M tokens)
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Why this matters
124
+
125
+ Input tokens are 85-95% of your Claude Code bill. CCE cuts them by 70-98%.
126
+
127
+ ```
128
+ Without CCE: Claude reads payments.py + shipping.py = 45,000 tokens
129
+ With CCE: context_search "payment flow" = 800 tokens
130
+ ```
131
+
132
+ | | Without CCE | With CCE |
133
+ |---|---|---|
134
+ | Session startup | Re-reads files every time | Queries the index |
135
+ | Finding a function | Read entire 800-line file | Get the 40-line function |
136
+ | Cross-session memory | None | Decisions + code areas persisted |
137
+ | Token cost (Opus, medium project) | ~$0.48/session | ~$0.14/session |
138
+
139
+ ---
140
+
141
+ ## What you get
142
+
143
+ **9 MCP tools** that Claude uses automatically:
144
+
145
+ | Tool | What it does |
146
+ |------|-------------|
147
+ | `context_search` | Hybrid vector + BM25 search with graph expansion |
148
+ | `expand_chunk` | Full source for a compressed result |
149
+ | `related_context` | Find code via graph edges (calls, imports) |
150
+ | `session_recall` | Recall decisions from past sessions |
151
+ | `record_decision` | Save a decision for future sessions |
152
+ | `record_code_area` | Record which files were worked in |
153
+ | `index_status` | Check index freshness |
154
+ | `reindex` | Re-index a file or the full project |
155
+ | `set_output_compression` | Adjust response verbosity (`off` / `lite` / `standard` / `max`) |
156
+
157
+ **Live dashboard** with donut charts, file health, and session history:
158
+
159
+ ```bash
160
+ cce dashboard
161
+ ```
162
+
163
+ ![CCE Dashboard](docs/dashboard.png)
164
+
165
+ **Dollar estimates** fetched from live Anthropic pricing:
166
+
167
+ ```bash
168
+ cce savings --all # see savings across all projects
169
+ ```
170
+
171
+ ---
172
+
173
+ ## How it works (the short version)
174
+
175
+ 1. **Index:** Tree-sitter parses your code into semantic chunks (functions, classes, modules). Stored as vector embeddings locally.
176
+ 2. **Search:** Claude calls `context_search`. Hybrid vector + BM25 retrieval finds the right chunks. Code graph adds related files automatically.
177
+ 3. **Compress:** Chunks are truncated to signatures + docstrings (or LLM-summarized if Ollama is running).
178
+ 4. **Remember:** Decisions and code areas persist across sessions via `session_recall`.
179
+ 5. **Track:** Every query is logged. `cce savings` shows exactly how much you saved.
180
+
181
+ Re-indexing after edits takes under 1 second (96% embedding cache hit rate). Git hooks keep the index current automatically.
182
+
183
+ ---
184
+
185
+ ## What makes CCE different
186
+
187
+ ### It saves where the money is
188
+
189
+ Output compression tools (like Caveman) save 20-75% on output tokens. Output is 5-15% of your bill. Net savings: ~11%.
190
+
191
+ CCE saves 70-98% on **input** tokens. Input is 85-95% of your bill. Net savings: ~77%.
192
+
193
+ ### It actually understands your code
194
+
195
+ Not a text search. Tree-sitter AST parsing creates semantic chunks. Hybrid retrieval merges vector similarity with BM25 keyword matching via Reciprocal Rank Fusion. A confidence scorer blends similarity (50%), keyword match (30%), and recency (20%). Graph expansion walks CALLS/IMPORTS edges to pull in related code.
196
+
197
+ ### It remembers
198
+
199
+ `record_decision("use JWT for auth", reason="session tokens flagged by legal")` is stored in SQLite and surfaces via `session_recall` in the next session. No re-explaining your architecture.
200
+
201
+ ### It tracks real savings
202
+
203
+ Not estimates. Actual tokens served vs full-file baseline, broken down by 7 buckets (retrieval, compression, output, memory, grammar, summarization, progressive disclosure). Dollar costs fetched from Anthropic's pricing page.
204
+
205
+ ### It is secure by default
206
+
207
+ Secret files (.env, *.pem, credentials.json) are never indexed. Content is scanned for AWS keys, GitHub tokens, Slack tokens, Stripe keys, JWTs, and generic credentials. PII (emails, IPs, SSNs, credit cards) is scrubbed from memory writes. All MCP file paths are validated against path traversal.
208
+
209
+ ---
210
+
211
+ ## Under the hood
212
+
213
+ <details>
214
+ <summary><strong>Content-Hash Embedding Cache</strong></summary>
215
+
216
+ SHA-256 fingerprint per chunk, salted with model name. Re-index skips unchanged code. Binary float32 storage (10x smaller than JSON). Typical re-index: 96% cache hit, under 1 second.
217
+ </details>
218
+
219
+ <details>
220
+ <summary><strong>sqlite-vec: 2 MB instead of 217 MB</strong></summary>
221
+
222
+ Replaced LanceDB with sqlite-vec. Same cosine-distance quality, 99% smaller install. WAL mode + PRAGMA NORMAL for 80% write speedup. Vectors, FTS5, code graph, and compression cache all in three SQLite files.
223
+ </details>
224
+
225
+ <details>
226
+ <summary><strong>Deterministic Grammar Compression</strong></summary>
227
+
228
+ Memory entries compressed without LLM calls. Drops articles, fillers, pronouns. Three levels (lite/full/ultra, 20-60% savings). Code, paths, URLs preserved byte-for-byte. Same input always yields same output.
229
+ </details>
230
+
231
+ <details>
232
+ <summary><strong>Fail-Closed Hook Design</strong></summary>
233
+
234
+ 5 Claude Code lifecycle hooks capture session context. Every hook runs `curl ... || true`, so a crashed server never blocks the user. SessionStart injects bootstrap context; others capture silently.
235
+ </details>
236
+
237
+ <details>
238
+ <summary><strong>Dynamic Pricing</strong></summary>
239
+
240
+ Dollar estimates in `cce savings` come from live Anthropic pricing (HTML table parsed, cached 7 days, offline fallback). No manual updates when rates change.
241
+ </details>
242
+
243
+ <details>
244
+ <summary><strong>Append-Only Savings Ledger</strong></summary>
245
+
246
+ 7 buckets track every token saved: retrieval, chunk compression, output compression, memory recall, grammar, turn summarization, progressive disclosure. Survives restarts. Powers CLI and dashboard analytics.
247
+ </details>
248
+
249
+ ---
250
+
251
+ ## CLI at a glance
252
+
253
+ ```bash
254
+ cce init # Index + install hooks + register MCP
255
+ cce # Status banner
256
+ cce savings # Token savings with dollar estimates
257
+ cce savings --all # All projects
258
+ cce dashboard # Web dashboard with live charts
259
+ cce search "auth flow" # Test a query
260
+ cce status # Index health + config
261
+ cce services # Ollama + dashboard + MCP status
262
+ cce commands add-rule '...' # Project rules for Claude
263
+ cce uninstall # Clean removal of all CCE artifacts
264
+ ```
265
+
266
+ Run `cce list` for the full command reference.
267
+
268
+ ---
269
+
270
+ ## Configuration
271
+
272
+ Zero-config by default. Override what you need in `~/.cce/config.yaml` or `.context-engine.yaml`:
273
+
274
+ ```yaml
275
+ compression:
276
+ level: standard # minimal | standard | full
277
+ output: standard # off | lite | standard | max
278
+
279
+ retrieval:
280
+ top_k: 20
281
+ confidence_threshold: 0.5
282
+
283
+ pricing:
284
+ model: opus # opus | sonnet | haiku
285
+ ```
286
+
287
+ ---
288
+
289
+ ## Output Compression
290
+
291
+ CCE also compresses Claude's responses (same concept as Caveman):
292
+
293
+ | Level | Style | Savings |
294
+ |-------|-------|---------|
295
+ | `off` | Full output | 0% |
296
+ | `lite` | No filler or hedging | ~30% |
297
+ | `standard` | Fragments, drop articles | ~65% |
298
+ | `max` | Telegraphic | ~75% |
299
+
300
+ Tell Claude: "switch to max compression" or "turn off compression". Code blocks and commands are never compressed.
301
+
302
+ ---
303
+
304
+ ## Disk Footprint
305
+
306
+ | Component | Size |
307
+ |-----------|------|
308
+ | Installed package | ~189 MB (ONNX Runtime is 66 MB of that) |
309
+ | Embedding model (one-time download) | ~60 MB |
310
+ | Index per project (small/medium/large) | 5-60 MB |
311
+
312
+ No GPU required. Embedding model runs on CPU via ONNX Runtime.
313
+
314
+ ---
315
+
316
+ ## Supported Languages
317
+
318
+ **AST-aware chunking (10 extensions):**
319
+
320
+ | Language | Extensions |
321
+ |----------|-----------|
322
+ | Python | `.py` |
323
+ | JavaScript | `.js`, `.jsx` |
324
+ | TypeScript | `.ts`, `.tsx` |
325
+ | PHP | `.php` |
326
+ | Go | `.go` |
327
+ | Rust | `.rs` |
328
+ | Java | `.java` |
329
+
330
+ **Fallback chunking:** All other text files (Markdown, YAML, config, etc.) chunked by line range.
331
+
332
+ ---
333
+
334
+ ## Documentation
335
+
336
+ | Page | Content |
337
+ |------|---------|
338
+ | [Examples](docs/wiki/Examples.md) | Real conversations with Claude |
339
+ | [How It Works](docs/wiki/How-It-Works.md) | Full 9-stage pipeline |
340
+ | [CLI Reference](docs/wiki/CLI-Reference.md) | Every command with output |
341
+ | [Configuration](docs/wiki/Configuration.md) | All config options |
342
+ | [Project Commands](docs/wiki/Project-Commands.md) | Rules and preferences for Claude |
343
+ | [Tech Stack](docs/wiki/Tech-Stack.md) | Every library and why |
344
+
345
+ ---
346
+
347
+ ## Roadmap
348
+
349
+ - [x] Semantic indexing + hybrid retrieval + graph expansion
350
+ - [x] Cross-session memory (decisions, code areas, session recall)
351
+ - [x] Web dashboard with live charts
352
+ - [x] Token savings tracking with dollar estimates
353
+ - [x] Output compression (off / lite / standard / max)
354
+ - [x] Content-hash embedding cache (96% hit rate on re-index)
355
+ - [x] sqlite-vec migration (99% smaller install)
356
+ - [x] Dynamic pricing from Anthropic docs
357
+ - [x] 7-layer security (secrets, PII, path traversal, audit log)
358
+ - [x] Clean uninstall (removes all CCE artifacts)
359
+ - [x] AST-aware chunking for PHP, Go, Rust, Java (tree-sitter)
360
+ - [x] Multi-editor support (Cursor, VS Code/Copilot, Gemini CLI)
361
+ - [ ] Tree-sitter support for C, C++, Ruby, Swift, Kotlin
362
+ - [ ] Docker support for remote mode
363
+
364
+ ---
365
+
366
+ ## Contributing
367
+
368
+ Contributions welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for setup.
369
+
370
+ ---
371
+
372
+ ## License
373
+
374
+ MIT. See [LICENSE](LICENSE).
375
+
376
+ ## Authors
377
+
378
+ - [Fazle Elahee](https://github.com/fazleelahhee)
379
+ - [Raj](https://github.com/rajkumarsakthivel)
380
+
381
+ ## Acknowledgments
382
+
383
+ [Claude Code](https://docs.anthropic.com/en/docs/claude-code) · [MCP](https://modelcontextprotocol.io) · [sqlite-vec](https://github.com/asg017/sqlite-vec) · [Tree-sitter](https://tree-sitter.github.io/) · [fastembed](https://github.com/qdrant/fastembed) · [Ollama](https://ollama.com/)
384
+
385
+ ---
386
+
387
+ <p align="center">
388
+ <strong>If CCE saves you tokens, give it a star.</strong>
389
+ </p>
@@ -0,0 +1,63 @@
1
+ code_context_engine-0.4.0.dist-info/licenses/LICENSE,sha256=vLbw0GGCVJSIRppMus7Oq0PyMDhDXz-dfvz2rPpWtjQ,1069
2
+ context_engine/__init__.py,sha256=fuadCYvYXNRlI2dBn6j3pivzr5c0RGgUX7s3Sg1EAAw,129
3
+ context_engine/cli.py,sha256=ZJ2qg8srayPouQ6Cg_kk-jf5zQbM4khjGetDkWPSyOE,113122
4
+ context_engine/cli_style.py,sha256=a3l3Smq1gIN2asbNalFUz0i_5x7Tmkp_wEhyGMoo8a4,2460
5
+ context_engine/config.py,sha256=FU8Hn8-9KCLGhjImsMbmV9WGNZyWp_qOtWW4BxI-URQ,7202
6
+ context_engine/editors.py,sha256=LT_WdYwyB1EeH1xsB6DDtJlbGMKXOTIVSOWXOOfXh1U,8970
7
+ context_engine/event_bus.py,sha256=g4r9QKuC-Y7RmrjOTlUrJSB-bBTpAqp0-_IXeMUg4wo,775
8
+ context_engine/models.py,sha256=XBbM0CUqNDQ5MOp6F3STST2qLqy2Zk0m050ZtWdXkrk,2048
9
+ context_engine/pricing.py,sha256=aA7iMsIC4ET6-Pqqp5PSji1XYwIjrTg64lGcPeHdom8,3173
10
+ context_engine/project_commands.py,sha256=hF00j1_GskEzRDCD3q5KOmbzJBE099uTAuLiL8AFu7E,10307
11
+ context_engine/serve_http.py,sha256=0x5GbnhsJyR8zzHrMOTVIVXXYtXijagO-P3wIKpagp4,9473
12
+ context_engine/services.py,sha256=mF40wXvKAZN4VOtv27mpmgu_00RsoZmRQOZ8oAYHOAI,8108
13
+ context_engine/utils.py,sha256=4jB7EmPwXVjP82wPzVbjjMXqOb6essCJt7uhilIrkDk,2640
14
+ context_engine/compression/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ context_engine/compression/compressor.py,sha256=JlNxZeM6-tXISWVOGiJAcLoixqAxwfEGcYtE0dj8FPw,6680
16
+ context_engine/compression/ollama_client.py,sha256=MKF1gii2BXMU-wxBRPyMCjo8t72v3dZ06Kv2JNfILgQ,1265
17
+ context_engine/compression/output_rules.py,sha256=M68k2BnQ64mPBjj0nX2EjQl0vizQf3yrwYv5-ITC4jY,3526
18
+ context_engine/compression/prompts.py,sha256=jZnpqhr77uI9R3S0vm3Dj17JYy03AXq24E6HQTPXy-A,711
19
+ context_engine/compression/quality.py,sha256=F6fyxDdWjq-Hgtw4xFIaE4BqPoJw1W1EQSn3RXDgdHc,1676
20
+ context_engine/dashboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ context_engine/dashboard/_page.py,sha256=EdFBGlrL-6j3XVpi-TViFJjUHzMvTorH4CDos8w-oMI,70579
22
+ context_engine/dashboard/server.py,sha256=8NgIsMIqGhEtL3svjCpd4g781L7owZkdVu93k_viR88,17379
23
+ context_engine/indexer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ context_engine/indexer/chunker.py,sha256=f0n7gJughdHP1fmMd1sbHAxLmVlCnIq6scHOeGFmBS8,6503
25
+ context_engine/indexer/embedder.py,sha256=jHCybuliTtVyHWJYokA8XfznaDX4I_OZH-_RGA4YDQc,5580
26
+ context_engine/indexer/embedding_cache.py,sha256=1v99mSR4T4GyyJWCd9Wtpb8PfJlJmUZ7XncLEOkLH8U,6329
27
+ context_engine/indexer/git_hooks.py,sha256=vKjMjAyYwMOv8IEVFoviXM2iV1qWrQzNwt9C30oI_gI,2266
28
+ context_engine/indexer/git_indexer.py,sha256=3IbAHYKa-XzpEX4zUfdvU0EHj-qjyn8muK6yPuxy9kw,4154
29
+ context_engine/indexer/ignorefile.py,sha256=BbS3O1UbuxC1Vlg2OLKVtsY_umvpyC84lCW-umdrOd0,3607
30
+ context_engine/indexer/manifest.py,sha256=-Kz5dAL6YOfkvGe2t4upv4TWgargvyRQC95uPCfXR3E,2704
31
+ context_engine/indexer/pipeline.py,sha256=tHZQv48tltx8qgwP94q02I1kSDHgJCHSD-MvpGySJ7E,24423
32
+ context_engine/indexer/secrets.py,sha256=_Gj6qKzXe1UsXlzW7CospQDhEqQnylExdmFrYt5AyMU,13650
33
+ context_engine/indexer/watcher.py,sha256=uILU_29M7J4VNv94nEQL7KKVyWSNee6JCA7lzXtstMU,3693
34
+ context_engine/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ context_engine/integration/bootstrap.py,sha256=nD7brJXAgEgO6MTtIu6rui-DlewS9hzpVga55_bRhZs,3272
36
+ context_engine/integration/git_context.py,sha256=nAUOh1w7IU2Ph6MWbnfhSEnZ99-hRP424X0Ziy3aW3Q,4252
37
+ context_engine/integration/mcp_server.py,sha256=XGr4HK0cS8PkaWABI7hvLeZAJx2ooDHUhzCBuDOhn8U,79580
38
+ context_engine/integration/session_capture.py,sha256=azc0I2PoQQ-0gsmTFy254na_Ez3ADHJ5IdOKU5oFIEU,12440
39
+ context_engine/memory/__init__.py,sha256=-mzH2HLbjF6mlyzlt0IZoezDPLHBTJmIXFlsn8cjeQA,299
40
+ context_engine/memory/compressor.py,sha256=qSXPE67dTNnhf7M5lKpIetpa-s0rpoa22AQljQRv52Q,13257
41
+ context_engine/memory/db.py,sha256=HfaYAeVdxnpars9RogfrUcW4_1KC1M8ZS2qIMacAXo0,34258
42
+ context_engine/memory/extractive.py,sha256=VJFBG8P6Wku0OaKBQmOr3eTk5XRS2ed3q-TYb432GLc,3227
43
+ context_engine/memory/grammar.py,sha256=1yrMky1MlmT9m4-_XW3Rq8ZAEE6fBp4miFiWNEcH8ao,16776
44
+ context_engine/memory/hook_installer.py,sha256=1rtPuw9KKveCGiPTojH4CNLK8gwh7Um3l1h0QN0dWv0,9273
45
+ context_engine/memory/hook_server.py,sha256=y62r7TGxXIDIAMiAcebIyqHE0fU5u-1dq3qGHspM4PQ,2692
46
+ context_engine/memory/hooks.py,sha256=CuwDUOdvRrD9SZe9GOtI5m1-e_j_EGYU-3QPZh5uv90,12302
47
+ context_engine/memory/migrate.py,sha256=X5w6t96mWXz5p_CtEHYNQEpmCvcnwJ0uVsXeM9k3Xro,9447
48
+ context_engine/retrieval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ context_engine/retrieval/confidence.py,sha256=gOjL_T-_s1OSg0rKIzCh0ishmZ0Vw6LMB9qq7pr6WsE,1621
50
+ context_engine/retrieval/query_parser.py,sha256=ljxkD25HVE4yrikmq2UJO6aLPTnDM43RLpYWQ1huh6k,3532
51
+ context_engine/retrieval/retriever.py,sha256=w-4A59aVA1kJtLixdlk0q9mG7M5k91DfNz7Pzu1EdG0,8240
52
+ context_engine/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ context_engine/storage/backend.py,sha256=2GjQ8wqs09lG-plqJOH9pBjvb3hZrFLIq1332BRnF2E,1062
54
+ context_engine/storage/fts_store.py,sha256=cUvftCeBxD_2jLG-rjV2iOjg-LeUI0dmtxfUYA_ICjQ,3991
55
+ context_engine/storage/graph_store.py,sha256=mftuJFvlkFeBlzMsQorY5YS4l5wsDUxCMw5SF0Hc23A,8794
56
+ context_engine/storage/local_backend.py,sha256=5MVoAn6Jkiltho-9BjClisLkyXMkSZZc2Z_h3N7Vfcg,4200
57
+ context_engine/storage/remote_backend.py,sha256=u77lnGIvqrL3PwInjT6nfRgyNn6oVxW92KUK66oWrvI,5504
58
+ context_engine/storage/vector_store.py,sha256=tA0ol_v5B2KRNMt2hE2kI4qnYe_AoYP_HSp1MvzcsFU,14704
59
+ code_context_engine-0.4.0.dist-info/METADATA,sha256=OeGewnIPEjTIhW0z73wgFkVVzO_VfgkQLeEU7UBs2fU,14566
60
+ code_context_engine-0.4.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
61
+ code_context_engine-0.4.0.dist-info/entry_points.txt,sha256=DQuRWUuVFM7nPcXtDmJzlem7QA0IboD_4N8AnTtDD9Q,144
62
+ code_context_engine-0.4.0.dist-info/top_level.txt,sha256=X1-RUqb61WXBjy3JjsW2oXwfvqk2ydXKDNidxmw4CZ4,15
63
+ code_context_engine-0.4.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ cce = context_engine.cli:main
3
+ cce-savings = context_engine.cli:savings_shortcut
4
+ code-context-engine = context_engine.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Fazle Elahee
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ context_engine
@@ -0,0 +1,3 @@
1
+ # src/context_engine/__init__.py
2
+ """code-context-engine: Local context engine for AI coding assistants."""
3
+ __version__ = "0.4.0"