code-context-engine 0.4.7__py3-none-any.whl → 0.4.9__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.
- {code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/METADATA +14 -5
- {code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/RECORD +9 -9
- context_engine/cli.py +2 -1
- context_engine/dashboard/_page.py +1 -1
- context_engine/integration/mcp_server.py +4 -1
- {code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/WHEEL +0 -0
- {code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/entry_points.txt +0 -0
- {code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/licenses/LICENSE +0 -0
- {code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-engine
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.9
|
|
4
4
|
Summary: Index your codebase. AI searches instead of re-reading files. 94% token savings, benchmarked on FastAPI. Works with Claude Code, Cursor, VS Code, Gemini CLI, and Codex.
|
|
5
5
|
Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -61,6 +61,9 @@ Dynamic: license-file
|
|
|
61
61
|
<a href="https://github.com/elara-labs/code-context-engine/actions/workflows/ci.yml"><img src="https://github.com/elara-labs/code-context-engine/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
62
62
|
<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>
|
|
63
63
|
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.11+-blue.svg" alt="Python 3.11+"></a>
|
|
64
|
+
<img src="https://img.shields.io/badge/macOS-000000?logo=apple&logoColor=white" alt="macOS">
|
|
65
|
+
<img src="https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black" alt="Linux">
|
|
66
|
+
<img src="https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white" alt="Windows">
|
|
64
67
|
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-green.svg" alt="MCP Compatible"></a>
|
|
65
68
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License"></a>
|
|
66
69
|
<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>
|
|
@@ -91,11 +94,17 @@ Dynamic: license-file
|
|
|
91
94
|
|
|
92
95
|
## System requirements
|
|
93
96
|
|
|
94
|
-
- Python 3.11+
|
|
97
|
+
- Python 3.11+ (tested on 3.11, 3.12, 3.13)
|
|
95
98
|
- A C compiler and `cmake` (needed to build tree-sitter grammars)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
|
|
100
|
+
| Platform | Setup |
|
|
101
|
+
|----------|-------|
|
|
102
|
+
| **macOS** | `xcode-select --install` (provides compiler and cmake) |
|
|
103
|
+
| **Ubuntu/Debian** | `sudo apt install build-essential cmake` |
|
|
104
|
+
| **Fedora/RHEL** | `sudo dnf install gcc gcc-c++ cmake` |
|
|
105
|
+
| **Windows** | Install [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) (C++ workload) and [CMake](https://cmake.org/download/) |
|
|
106
|
+
|
|
107
|
+
Tested on all three platforms in CI (macOS, Linux, Windows × Python 3.11/3.12/3.13).
|
|
99
108
|
|
|
100
109
|
## Install and see savings in 60 seconds
|
|
101
110
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
code_context_engine-0.4.
|
|
1
|
+
code_context_engine-0.4.9.dist-info/licenses/LICENSE,sha256=vLbw0GGCVJSIRppMus7Oq0PyMDhDXz-dfvz2rPpWtjQ,1069
|
|
2
2
|
context_engine/__init__.py,sha256=qThGxB7xfZi5M9jDpUno0MKBp7KKrEOdH1hG4wHMuLc,193
|
|
3
|
-
context_engine/cli.py,sha256=
|
|
3
|
+
context_engine/cli.py,sha256=gALUIyDu0rUSLHSqqsD1tm3s4XCO9q4LuwBnCNoGT8g,113468
|
|
4
4
|
context_engine/cli_style.py,sha256=a3l3Smq1gIN2asbNalFUz0i_5x7Tmkp_wEhyGMoo8a4,2460
|
|
5
5
|
context_engine/config.py,sha256=2pCe-nJbB1IgrFwT3iMOmUSZMaaH2IBamm867CULdnY,7129
|
|
6
6
|
context_engine/editors.py,sha256=LT_WdYwyB1EeH1xsB6DDtJlbGMKXOTIVSOWXOOfXh1U,8970
|
|
@@ -18,7 +18,7 @@ context_engine/compression/output_rules.py,sha256=M68k2BnQ64mPBjj0nX2EjQl0vizQf3
|
|
|
18
18
|
context_engine/compression/prompts.py,sha256=jZnpqhr77uI9R3S0vm3Dj17JYy03AXq24E6HQTPXy-A,711
|
|
19
19
|
context_engine/compression/quality.py,sha256=F6fyxDdWjq-Hgtw4xFIaE4BqPoJw1W1EQSn3RXDgdHc,1676
|
|
20
20
|
context_engine/dashboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
context_engine/dashboard/_page.py,sha256=
|
|
21
|
+
context_engine/dashboard/_page.py,sha256=2LOz6GxVFHdNyd6iGV-u6sbwCnTrw2p_cVUY-LyZEWU,70600
|
|
22
22
|
context_engine/dashboard/server.py,sha256=N-QVaDCUL1h70QUgKrIy6QhQIedasf0KYHcV5LACZ0U,17437
|
|
23
23
|
context_engine/indexer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
24
|
context_engine/indexer/chunker.py,sha256=f0n7gJughdHP1fmMd1sbHAxLmVlCnIq6scHOeGFmBS8,6503
|
|
@@ -34,7 +34,7 @@ context_engine/indexer/watcher.py,sha256=uILU_29M7J4VNv94nEQL7KKVyWSNee6JCA7lzXt
|
|
|
34
34
|
context_engine/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
35
|
context_engine/integration/bootstrap.py,sha256=nD7brJXAgEgO6MTtIu6rui-DlewS9hzpVga55_bRhZs,3272
|
|
36
36
|
context_engine/integration/git_context.py,sha256=nAUOh1w7IU2Ph6MWbnfhSEnZ99-hRP424X0Ziy3aW3Q,4252
|
|
37
|
-
context_engine/integration/mcp_server.py,sha256=
|
|
37
|
+
context_engine/integration/mcp_server.py,sha256=uiPZ6jRwEOZSfbquGrEECZw_06kofaHJ7Wmx44PaRj4,80225
|
|
38
38
|
context_engine/integration/session_capture.py,sha256=azc0I2PoQQ-0gsmTFy254na_Ez3ADHJ5IdOKU5oFIEU,12440
|
|
39
39
|
context_engine/memory/__init__.py,sha256=-mzH2HLbjF6mlyzlt0IZoezDPLHBTJmIXFlsn8cjeQA,299
|
|
40
40
|
context_engine/memory/compressor.py,sha256=qSXPE67dTNnhf7M5lKpIetpa-s0rpoa22AQljQRv52Q,13257
|
|
@@ -56,8 +56,8 @@ context_engine/storage/graph_store.py,sha256=mftuJFvlkFeBlzMsQorY5YS4l5wsDUxCMw5
|
|
|
56
56
|
context_engine/storage/local_backend.py,sha256=5MVoAn6Jkiltho-9BjClisLkyXMkSZZc2Z_h3N7Vfcg,4200
|
|
57
57
|
context_engine/storage/remote_backend.py,sha256=u77lnGIvqrL3PwInjT6nfRgyNn6oVxW92KUK66oWrvI,5504
|
|
58
58
|
context_engine/storage/vector_store.py,sha256=tA0ol_v5B2KRNMt2hE2kI4qnYe_AoYP_HSp1MvzcsFU,14704
|
|
59
|
-
code_context_engine-0.4.
|
|
60
|
-
code_context_engine-0.4.
|
|
61
|
-
code_context_engine-0.4.
|
|
62
|
-
code_context_engine-0.4.
|
|
63
|
-
code_context_engine-0.4.
|
|
59
|
+
code_context_engine-0.4.9.dist-info/METADATA,sha256=tniZIYdEE8b87x-lmx8feDMEwp_plrVH4vdbqfK2CGs,19160
|
|
60
|
+
code_context_engine-0.4.9.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
61
|
+
code_context_engine-0.4.9.dist-info/entry_points.txt,sha256=DQuRWUuVFM7nPcXtDmJzlem7QA0IboD_4N8AnTtDD9Q,144
|
|
62
|
+
code_context_engine-0.4.9.dist-info/top_level.txt,sha256=X1-RUqb61WXBjy3JjsW2oXwfvqk2ydXKDNidxmw4CZ4,15
|
|
63
|
+
code_context_engine-0.4.9.dist-info/RECORD,,
|
context_engine/cli.py
CHANGED
|
@@ -445,7 +445,8 @@ def _show_welcome_banner(config) -> None:
|
|
|
445
445
|
if queries > 0:
|
|
446
446
|
left_lines.append(f" {G}●{R} Savings {GB}{saved_pct}%{R} over {C}{queries}{R} queries")
|
|
447
447
|
elif full_file > 0:
|
|
448
|
-
left_lines.append(f" {D}○ Savings
|
|
448
|
+
left_lines.append(f" {D}○ Savings waiting for first search{R}")
|
|
449
|
+
left_lines.append(f" {D}stats update after context_search calls{R}")
|
|
449
450
|
else:
|
|
450
451
|
left_lines.append(f" {Y}○ Not indexed{R}")
|
|
451
452
|
left_lines.append(f" {D}run: cce init{R}")
|
|
@@ -1229,7 +1229,7 @@ async function loadOverviewPanels() {
|
|
|
1229
1229
|
);
|
|
1230
1230
|
} else {
|
|
1231
1231
|
document.getElementById('chart-token-savings').innerHTML =
|
|
1232
|
-
'<div class="empty"><span class="empty-title">
|
|
1232
|
+
'<div class="empty"><span class="empty-title">Waiting for first search</span><span class="empty-hint">Stats populate automatically after context_search calls</span></div>';
|
|
1233
1233
|
}
|
|
1234
1234
|
|
|
1235
1235
|
// ── File Health Donut ──
|
|
@@ -1355,7 +1355,10 @@ class ContextEngineMCP:
|
|
|
1355
1355
|
f"({saved:,} saved, {pct}%)"
|
|
1356
1356
|
)
|
|
1357
1357
|
else:
|
|
1358
|
-
status_parts.append(
|
|
1358
|
+
status_parts.append(
|
|
1359
|
+
"Token savings: waiting for first context_search call. "
|
|
1360
|
+
"Stats populate automatically after searches."
|
|
1361
|
+
)
|
|
1359
1362
|
return [TextContent(type="text", text="\n".join(status_parts))]
|
|
1360
1363
|
|
|
1361
1364
|
async def _handle_reindex(self, args):
|
|
File without changes
|
{code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{code_context_engine-0.4.7.dist-info → code_context_engine-0.4.9.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|