code-context-engine 0.4.4__py3-none-any.whl → 0.4.5__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.
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-engine
3
- Version: 0.4.4
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.
3
+ Version: 0.4.5
4
+ Summary: Index your codebase. AI searches instead of re-reading files. 93% 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
7
7
  Project-URL: Homepage, https://github.com/elara-labs/code-context-engine
8
8
  Project-URL: Repository, https://github.com/elara-labs/code-context-engine
9
9
  Project-URL: Issues, https://github.com/elara-labs/code-context-engine/issues
10
10
  Keywords: claude,context,mcp,llm,code-indexing,vector-search
11
- Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Development Status :: 4 - Beta
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3.11
@@ -37,6 +37,7 @@ Requires-Dist: httpx>=0.27
37
37
  Requires-Dist: fastapi>=0.110
38
38
  Requires-Dist: uvicorn>=0.29
39
39
  Requires-Dist: aiohttp>=3.9
40
+ Requires-Dist: psutil>=5.9
40
41
  Provides-Extra: dev
41
42
  Requires-Dist: pytest>=8.0; extra == "dev"
42
43
  Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
@@ -57,6 +58,7 @@ Dynamic: license-file
57
58
  </p>
58
59
 
59
60
  <p align="center">
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>
60
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>
61
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>
62
64
  <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-green.svg" alt="MCP Compatible"></a>
@@ -87,6 +89,14 @@ Dynamic: license-file
87
89
 
88
90
  ---
89
91
 
92
+ ## System requirements
93
+
94
+ - Python 3.11+
95
+ - A C compiler and `cmake` (needed to build tree-sitter grammars)
96
+ - **macOS:** `xcode-select --install`
97
+ - **Ubuntu/Debian:** `sudo apt install build-essential cmake`
98
+ - **Windows:** Visual Studio Build Tools (C++ workload)
99
+
90
100
  ## Install and see savings in 60 seconds
91
101
 
92
102
  ```bash
@@ -210,6 +220,14 @@ cce savings --all # see savings across all projects
210
220
 
211
221
  ---
212
222
 
223
+ ## How is CCE different?
224
+
225
+ CCE is editor-agnostic, local-first, and gives you measurable token savings. Your code never leaves your machine. Unlike built-in indexing (Cursor, Continue), CCE works across Claude Code, VS Code, Cursor, Gemini CLI, and Codex with a single index. Unlike cloud tools (Greptile), it's free and private.
226
+
227
+ See the [full comparison with alternatives](docs/comparison.md) for an honest look at trade-offs.
228
+
229
+ ---
230
+
213
231
  ## How it works (the short version)
214
232
 
215
233
  1. **Index:** Tree-sitter parses your code into semantic chunks (functions, classes, modules). Stored as vector embeddings locally.
@@ -1,8 +1,8 @@
1
- code_context_engine-0.4.4.dist-info/licenses/LICENSE,sha256=vLbw0GGCVJSIRppMus7Oq0PyMDhDXz-dfvz2rPpWtjQ,1069
1
+ code_context_engine-0.4.5.dist-info/licenses/LICENSE,sha256=vLbw0GGCVJSIRppMus7Oq0PyMDhDXz-dfvz2rPpWtjQ,1069
2
2
  context_engine/__init__.py,sha256=qThGxB7xfZi5M9jDpUno0MKBp7KKrEOdH1hG4wHMuLc,193
3
3
  context_engine/cli.py,sha256=KcOO3WSbo8joKcSPJlKKhpVFsnLDIffKmqTLx5PGs14,113198
4
4
  context_engine/cli_style.py,sha256=a3l3Smq1gIN2asbNalFUz0i_5x7Tmkp_wEhyGMoo8a4,2460
5
- context_engine/config.py,sha256=FU8Hn8-9KCLGhjImsMbmV9WGNZyWp_qOtWW4BxI-URQ,7202
5
+ context_engine/config.py,sha256=2pCe-nJbB1IgrFwT3iMOmUSZMaaH2IBamm867CULdnY,7129
6
6
  context_engine/editors.py,sha256=LT_WdYwyB1EeH1xsB6DDtJlbGMKXOTIVSOWXOOfXh1U,8970
7
7
  context_engine/event_bus.py,sha256=g4r9QKuC-Y7RmrjOTlUrJSB-bBTpAqp0-_IXeMUg4wo,775
8
8
  context_engine/models.py,sha256=XBbM0CUqNDQ5MOp6F3STST2qLqy2Zk0m050ZtWdXkrk,2048
@@ -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.4.dist-info/METADATA,sha256=CHQ_RdzQCryh6CJi_bUjrPtY2KPxdiZPC5GOuovwTsM,17592
60
- code_context_engine-0.4.4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
61
- code_context_engine-0.4.4.dist-info/entry_points.txt,sha256=DQuRWUuVFM7nPcXtDmJzlem7QA0IboD_4N8AnTtDD9Q,144
62
- code_context_engine-0.4.4.dist-info/top_level.txt,sha256=X1-RUqb61WXBjy3JjsW2oXwfvqk2ydXKDNidxmw4CZ4,15
63
- code_context_engine-0.4.4.dist-info/RECORD,,
59
+ code_context_engine-0.4.5.dist-info/METADATA,sha256=Xf-6Rk_H3Z0GjLZBQE0G1i1HgUquXbya5UuQiwskt14,18539
60
+ code_context_engine-0.4.5.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
61
+ code_context_engine-0.4.5.dist-info/entry_points.txt,sha256=DQuRWUuVFM7nPcXtDmJzlem7QA0IboD_4N8AnTtDD9Q,144
62
+ code_context_engine-0.4.5.dist-info/top_level.txt,sha256=X1-RUqb61WXBjy3JjsW2oXwfvqk2ydXKDNidxmw4CZ4,15
63
+ code_context_engine-0.4.5.dist-info/RECORD,,
context_engine/config.py CHANGED
@@ -90,11 +90,8 @@ class Config:
90
90
  storage_path: str = str(_CCE_HOME / "projects")
91
91
 
92
92
  def detect_resource_profile(self) -> str:
93
- try:
94
- import psutil
95
- ram_gb = psutil.virtual_memory().total / (1024 ** 3)
96
- except ImportError:
97
- ram_gb = 16
93
+ import psutil
94
+ ram_gb = psutil.virtual_memory().total / (1024 ** 3)
98
95
  if ram_gb >= 32:
99
96
  return "full"
100
97
  if ram_gb >= 12: