code-context-engine 0.4.13__tar.gz → 0.4.15__tar.gz

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 (88) hide show
  1. {code_context_engine-0.4.13/src/code_context_engine.egg-info → code_context_engine-0.4.15}/PKG-INFO +1 -1
  2. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/pyproject.toml +1 -1
  3. {code_context_engine-0.4.13 → code_context_engine-0.4.15/src/code_context_engine.egg-info}/PKG-INFO +1 -1
  4. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/cli.py +4 -0
  5. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/integration/mcp_server.py +32 -0
  6. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/LICENSE +0 -0
  7. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/README.md +0 -0
  8. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/setup.cfg +0 -0
  9. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/code_context_engine.egg-info/SOURCES.txt +0 -0
  10. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/code_context_engine.egg-info/dependency_links.txt +0 -0
  11. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/code_context_engine.egg-info/entry_points.txt +0 -0
  12. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/code_context_engine.egg-info/requires.txt +0 -0
  13. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/code_context_engine.egg-info/top_level.txt +0 -0
  14. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/__init__.py +0 -0
  15. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/cli_style.py +0 -0
  16. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/compression/__init__.py +0 -0
  17. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/compression/compressor.py +0 -0
  18. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/compression/ollama_client.py +0 -0
  19. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/compression/output_rules.py +0 -0
  20. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/compression/prompts.py +0 -0
  21. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/compression/quality.py +0 -0
  22. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/config.py +0 -0
  23. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/dashboard/__init__.py +0 -0
  24. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/dashboard/_page.py +0 -0
  25. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/dashboard/server.py +0 -0
  26. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/editors.py +0 -0
  27. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/event_bus.py +0 -0
  28. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/__init__.py +0 -0
  29. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/chunker.py +0 -0
  30. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/embedder.py +0 -0
  31. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/embedding_cache.py +0 -0
  32. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/git_hooks.py +0 -0
  33. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/git_indexer.py +0 -0
  34. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/ignorefile.py +0 -0
  35. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/manifest.py +0 -0
  36. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/pipeline.py +0 -0
  37. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/secrets.py +0 -0
  38. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/indexer/watcher.py +0 -0
  39. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/integration/__init__.py +0 -0
  40. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/integration/bootstrap.py +0 -0
  41. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/integration/git_context.py +0 -0
  42. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/integration/session_capture.py +0 -0
  43. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/__init__.py +0 -0
  44. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/compressor.py +0 -0
  45. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/db.py +0 -0
  46. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/extractive.py +0 -0
  47. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/grammar.py +0 -0
  48. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/hook_installer.py +0 -0
  49. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/hook_server.py +0 -0
  50. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/hooks.py +0 -0
  51. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/memory/migrate.py +0 -0
  52. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/models.py +0 -0
  53. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/pricing.py +0 -0
  54. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/project_commands.py +0 -0
  55. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/retrieval/__init__.py +0 -0
  56. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/retrieval/confidence.py +0 -0
  57. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/retrieval/query_parser.py +0 -0
  58. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/retrieval/retriever.py +0 -0
  59. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/serve_http.py +0 -0
  60. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/services.py +0 -0
  61. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/__init__.py +0 -0
  62. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/backend.py +0 -0
  63. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/fts_store.py +0 -0
  64. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/graph_store.py +0 -0
  65. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/local_backend.py +0 -0
  66. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/remote_backend.py +0 -0
  67. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/storage/vector_store.py +0 -0
  68. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/src/context_engine/utils.py +0 -0
  69. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_init_probe.py +0 -0
  70. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_mcp_config.py +0 -0
  71. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_savings.py +0 -0
  72. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_savings_buckets.py +0 -0
  73. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_savings_e2e.py +0 -0
  74. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_serve.py +0 -0
  75. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_sessions_export.py +0 -0
  76. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_sessions_status.py +0 -0
  77. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_smoke.py +0 -0
  78. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_cli_uninstall.py +0 -0
  79. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_config.py +0 -0
  80. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_e2e.py +0 -0
  81. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_editors_opencode.py +0 -0
  82. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_event_bus.py +0 -0
  83. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_models.py +0 -0
  84. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_project_commands.py +0 -0
  85. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_real_life.py +0 -0
  86. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_services.py +0 -0
  87. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_token_efficiency.py +0 -0
  88. {code_context_engine-0.4.13 → code_context_engine-0.4.15}/tests/test_token_packing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-engine
3
- Version: 0.4.13
3
+ Version: 0.4.15
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, Codex, and OpenCode.
5
5
  Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "code-context-engine"
3
- version = "0.4.13"
3
+ version = "0.4.15"
4
4
  description = "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, Codex, and OpenCode."
5
5
  readme = {file = "README.md", content-type = "text/markdown"}
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-engine
3
- Version: 0.4.13
3
+ Version: 0.4.15
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, Codex, and OpenCode.
5
5
  Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
6
6
  License-Expression: MIT
@@ -1676,6 +1676,10 @@ def search(ctx: click.Context, query: str, top_k: int) -> None:
1676
1676
  retriever = HybridRetriever(backend=backend, embedder=embedder)
1677
1677
  results = await retriever.retrieve(query, top_k=top_k)
1678
1678
 
1679
+ # Filter out CCE config/editor files (same filter as MCP server)
1680
+ from context_engine.integration.mcp_server import _is_cce_config
1681
+ results = [r for r in results if not _is_cce_config(r.file_path)]
1682
+
1679
1683
  lines: list[str] = []
1680
1684
  lines.append("")
1681
1685
  lines.append(section(f"Search · {query}"))
@@ -61,6 +61,34 @@ def _count_tokens(text: str) -> int:
61
61
  return max(1, len(text) // _CHARS_PER_TOKEN)
62
62
 
63
63
 
64
+ # Files created by CCE itself — not user code. Filtering these from search
65
+ # results prevents config files from dominating results on small projects
66
+ # and inflating served_tokens (which causes negative savings).
67
+ _CCE_CONFIG_PREFIXES = (
68
+ ".claude/",
69
+ ".mcp.json",
70
+ ".cursor/",
71
+ ".cursorrules",
72
+ ".vscode/mcp.json",
73
+ ".gemini/",
74
+ "GEMINI.md",
75
+ ".codex/",
76
+ "opencode.json",
77
+ "opencode.jsonc",
78
+ )
79
+
80
+ _CCE_CONFIG_FILES = {
81
+ "CLAUDE.md",
82
+ }
83
+
84
+
85
+ def _is_cce_config(file_path: str) -> bool:
86
+ """True if the chunk comes from a CCE-managed or editor config file."""
87
+ if file_path in _CCE_CONFIG_FILES:
88
+ return True
89
+ return any(file_path.startswith(p) for p in _CCE_CONFIG_PREFIXES)
90
+
91
+
64
92
  def _cosine_sim(a, b) -> float:
65
93
  """Cosine similarity between two equal-length numeric sequences. Returns 0
66
94
  on degenerate input (zero norm) instead of NaN.
@@ -906,6 +934,10 @@ class ContextEngineMCP:
906
934
  )
907
935
  all_chunks = await self._compressor.compress(all_chunks, self._config.compression_level)
908
936
 
937
+ # Filter out CCE config/editor files — they inflate token counts on
938
+ # small projects and aren't what users are searching for.
939
+ all_chunks = [c for c in all_chunks if not _is_cce_config(c.file_path)]
940
+
909
941
  inline_chunks, overflow_chunks = _split_inline_overflow(all_chunks, max_tokens)
910
942
 
911
943
  # Accounting