codegraph-engine 2.1.7__tar.gz → 2.2.0__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.
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/PKG-INFO +48 -23
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/README.md +47 -22
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/pyproject.toml +3 -2
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/__init__.py +1 -1
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/cli.py +177 -54
- codegraph_engine-2.2.0/src/codegraph/cli_output.py +190 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/context.py +119 -3
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/database/interrogation.py +30 -7
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/freshness.py +59 -21
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/indexer.py +11 -4
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/installer.py +72 -22
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/interrogation.py +19 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/mcp/server.py +97 -6
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/mcp_diagnostics.py +5 -2
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/monorepo.py +1 -1
- codegraph_engine-2.2.0/src/codegraph/process_lifecycle.py +1115 -0
- codegraph_engine-2.2.0/src/codegraph/runtime/runner.py +204 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph_engine.egg-info/PKG-INFO +48 -23
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph_engine.egg-info/SOURCES.txt +6 -1
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_platform_resources.py +3 -1
- codegraph_engine-2.2.0/tests/test_v22_enterprise_concurrency_and_runtime.py +200 -0
- codegraph_engine-2.2.0/tests/test_windows_and_process_lifecycle.py +678 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/LICENSE +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/setup.cfg +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/agent.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/agent_brain.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/agent_capabilities.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/agent_rules.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/architecture.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/audit.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/binding_resolver.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/cache.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/config.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/constraints.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/database/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/database/extractor.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/database/models.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/epistemic.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/errors.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/evidence/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/evidence/citations.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/evidence_contract.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/frameworks.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/git.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/graph/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/graph/models.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/graph/traversal.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/classifier.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/models.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/parser.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/scanner.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/telemetry.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/indexing/test_framework.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/llm/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/llm/base.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/llm/context.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/mcp/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/memory/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/memory/store.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/models.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/observability.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/optimizer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/planner.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/py.typed +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/query_expansion.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/ranking.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resolver.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/cache.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/coalescer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/debouncer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/governor.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/monitor.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/resources/policy.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/retrieval_policy.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/route_composer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/runtime/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/runtime/ingestor.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/runtime/models.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/runtime/reconciliation.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/search/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/search/hybrid.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/search/semantic.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/security/__init__.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/security/paths.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/security/redaction.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/semantic_decorators.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/target_resolver.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/task.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph/tool_selection_eval.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph_engine.egg-info/dependency_links.txt +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph_engine.egg-info/entry_points.txt +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph_engine.egg-info/requires.txt +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/src/codegraph_engine.egg-info/top_level.txt +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_active_coding_protection.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_adaptive_planning.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_adversarial_edge_cases.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_agent_ux_hardening.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_agent_ux_text_search_file_inspection.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_artifact_classification.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_artifact_retrieval_policy.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_benchmark_infra.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_bounded_caches.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_change_impact.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_cli_doctor_privacy.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_conservative_binding.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_context_budget.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_context_cache.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_context_compiler_v2.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_core.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_database_integrity.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_database_runtime_intelligence_and_security.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_debouncer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_dependency_injection.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_determinism_and_soak.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_developer_audit.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_epistemic_relationships.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_evaluation_framework.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_framework_analyzers.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_framework_routes_persistence.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_git_intelligence.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_hardening.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_interrogation_contracts.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_latency_modes_and_parallel.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_mcp_integration.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_monorepo_packages.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_package_boundaries.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_phase10_context_optimization.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_phase11_agent_integration.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_phase12_hardening.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_phase13_agent_brain_and_rc.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_phase2.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_ranking_engine.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_reference_resolution.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_registries_and_dispatch.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_request_coalescer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_resource_governor.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_retrieval_planner.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_route_composition.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_scanner_security.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_semantic_decorators.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_single_pass_parser.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_symbol_identity.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_task_ambiguity.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_task_mcp_tools.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_task_normalization.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_task_spec.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_test_intelligence.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v211_factory_resolution.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v211_features.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v211_imports_dependents_cli.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v211_recursive_frameworks.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v215_external_feedback.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v216_installer.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v217_large_repo_indexing.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v21_diagnostics.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v21_hard_exclusions.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v21_query_expansion.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v21_retrieval_policy.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_v21_target_resolver.py +0 -0
- {codegraph_engine-2.1.7 → codegraph_engine-2.2.0}/tests/test_verify_evidence.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codegraph-engine
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: Deep deterministic repository intelligence for AI coding agents (code, dependencies, databases, and runtime observations)
|
|
5
5
|
Author: CodeGraph contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -35,23 +35,24 @@ Dynamic: license-file
|
|
|
35
35
|
<img src="docs/assets/codegraph_logo.jpg" alt="CodeGraph MCP — Deep Deterministic Repository Intelligence for AI Coding Agents" width="500" />
|
|
36
36
|
</p>
|
|
37
37
|
|
|
38
|
-
<h1 align="center">CodeGraph Engine (v2.
|
|
38
|
+
<h1 align="center">CodeGraph-MCP Engine (v2.2.0)</h1>
|
|
39
39
|
|
|
40
40
|
<p align="center">
|
|
41
41
|
<strong>Deep deterministic repository intelligence for AI coding agents.</strong>
|
|
42
42
|
</p>
|
|
43
43
|
|
|
44
44
|
<p align="center">
|
|
45
|
-
<a href="https://
|
|
45
|
+
<a href="https://pypi.org/project/codegraph-engine/2.2.0/"><img src="https://img.shields.io/badge/pypi-codegraph--engine%20v2.2.0-blue.svg" alt="PyPI: codegraph-engine v2.2.0" /></a>
|
|
46
46
|
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.12%20%7C%203.13-3776AB.svg" alt="Python 3.12 | 3.13" /></a>
|
|
47
47
|
<a href="src/codegraph/mcp/server.py"><img src="https://img.shields.io/badge/MCP-14%20default%20%7C%2056%20full%20tools-2ea043.svg" alt="MCP Tools: 14 default | 56 full" /></a>
|
|
48
|
-
<a href="tests/"><img src="https://img.shields.io/badge/pytest-
|
|
48
|
+
<a href="tests/"><img src="https://img.shields.io/badge/pytest-861%20passed-brightgreen.svg" alt="Tests: 861 passed" /></a>
|
|
49
49
|
<a href="pyproject.toml"><img src="https://img.shields.io/badge/ruff-0%20errors-success.svg" alt="Ruff: 0 errors" /></a>
|
|
50
|
-
<a href="src/codegraph/"><img src="https://img.shields.io/badge/mypy-0%20issues%20(
|
|
50
|
+
<a href="src/codegraph/"><img src="https://img.shields.io/badge/mypy-0%20issues%20(80%20files)-blue.svg" alt="Mypy: strict" /></a>
|
|
51
51
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
|
|
52
52
|
</p>
|
|
53
53
|
|
|
54
54
|
<p align="center">
|
|
55
|
+
<a href="https://pypi.org/project/codegraph-engine/2.2.0/"><strong>PyPI (v2.2.0)</strong></a> •
|
|
55
56
|
<a href="#2-quickstart-30-second-setup"><strong>Quickstart</strong></a> •
|
|
56
57
|
<a href="#1-built-for-aiml-and-backend-heavy-repositories"><strong>Built For</strong></a> •
|
|
57
58
|
<a href="#5-database-intelligence"><strong>Database Intelligence</strong></a> •
|
|
@@ -125,7 +126,7 @@ pip install "codegraph-engine[mcp]"
|
|
|
125
126
|
|
|
126
127
|
### Step 2: Configure Your AI Coding Agents (`codegraph install`)
|
|
127
128
|
|
|
128
|
-
CodeGraph includes an interactive, idempotent onboarding installer ([`src/codegraph/installer.py`](src/codegraph/installer.py)) that detects installed AI coding agents (**Claude Code**, **Cursor**, **Antigravity**, **Codex CLI**, **Gemini CLI**, and **Cline**), configures `mcpServers.codegraph`, installs marker-bounded routing instructions (`<!-- CODEGRAPH:START -->` … `<!-- CODEGRAPH:END -->`), and verifies MCP server startup:
|
|
129
|
+
CodeGraph-MCP includes an interactive, idempotent onboarding installer ([`src/codegraph/installer.py`](src/codegraph/installer.py)) that detects installed AI coding agents (**Claude Code**, **Cursor**, **Antigravity**, **Codex CLI**, **Gemini CLI**, and **Cline**), configures `mcpServers.codegraph`, installs marker-bounded routing instructions (`<!-- CODEGRAPH:START -->` … `<!-- CODEGRAPH:END -->`), and verifies MCP server startup:
|
|
129
130
|
|
|
130
131
|
```bash
|
|
131
132
|
# Interactive setup (detects installed agents, previews planned changes, asks confirmation)
|
|
@@ -147,18 +148,31 @@ codegraph status
|
|
|
147
148
|
codegraph doctor
|
|
148
149
|
```
|
|
149
150
|
|
|
150
|
-
|
|
151
|
+
> **Dynamic Index Hot-Reloading:** If your AI coding agent launches `codegraph mcp serve` before you run `codegraph init`, you do **not** need to restart your IDE or MCP session. As soon as `codegraph init` or `codegraph index` creates or updates `.codegraph.sqlite3`, the running MCP server automatically detects the updated database on the next tool call and refreshes its in-memory graph cache (`get_repository_status(reload=True, reindex=True)` can also be invoked directly by the agent).
|
|
151
152
|
|
|
152
|
-
|
|
153
|
+
### Managing Installation, Process & Project Index Lifecycle
|
|
154
|
+
|
|
155
|
+
CodeGraph cleanly separates agent configuration, process lifecycle, and project index files:
|
|
153
156
|
|
|
154
157
|
| Command | Scope | What It Does |
|
|
155
158
|
| :--- | :--- | :--- |
|
|
156
|
-
| `codegraph install` | Agent configuration | Configures MCP server + marker-managed rules/skills for selected AI agents. |
|
|
157
|
-
| `codegraph init` | Project repository | Initializes `.codegraph.sqlite3` and indexes the current repository. |
|
|
159
|
+
| `codegraph install` | Agent configuration | Configures MCP server + marker-managed rules/skills for selected AI agents (ASCII-safe on Windows `cp1252`). |
|
|
160
|
+
| `codegraph init` | Project repository | Initializes `.codegraph.sqlite3` and indexes the current repository (hot-reloaded automatically by running MCP servers). |
|
|
158
161
|
| `codegraph index` | Project repository | Incrementally indexes modified files (`--verbose`, `--quiet`, `--json`). |
|
|
159
|
-
| `codegraph
|
|
162
|
+
| `codegraph stop` | Process lifecycle | Safely stops running CodeGraph-owned MCP background processes (`--all`, `--repo`, `--json`) and releases file locks. |
|
|
163
|
+
| `codegraph doctor --processes` | Process lifecycle | Lists active CodeGraph MCP processes, parent PIDs, orphan status, and cleans stale PID files. |
|
|
164
|
+
| `codegraph uninstall` | Agent configuration | Stops active workspace MCP processes and removes CodeGraph-managed MCP entries and instruction blocks. |
|
|
160
165
|
| `codegraph uninit` | Project repository | Removes only `.codegraph.sqlite3` and `.codegraph/` in the project (never touches source code or Git history). |
|
|
161
166
|
|
|
167
|
+
### Safe Upgrading on Windows (`WinError 32` Prevention)
|
|
168
|
+
|
|
169
|
+
On Windows, running `pip install --upgrade codegraph-engine` while an IDE or agent still holds `codegraph.exe` open can trigger `WinError 32`. Before upgrading on Windows, run:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
codegraph stop --all
|
|
173
|
+
pip install --upgrade "codegraph-engine[mcp]"
|
|
174
|
+
```
|
|
175
|
+
|
|
162
176
|
---
|
|
163
177
|
|
|
164
178
|
## 3. Core Workflow & Architecture
|
|
@@ -218,7 +232,7 @@ InferenceService.run_inference
|
|
|
218
232
|
db:table:postgresql.public.prediction_logs
|
|
219
233
|
```
|
|
220
234
|
|
|
221
|
-
**What CodeGraph structurally proves**:
|
|
235
|
+
**What CodeGraph-MCP structurally proves**:
|
|
222
236
|
- `find_routes(path="/v1/predict")` resolves composed router prefixes (`MOUNTS`) to `predict_endpoint`.
|
|
223
237
|
- `trace_path(from_symbol="predict_endpoint", to_symbol="log_prediction")` proves the multi-hop execution chain across DI injection, preprocessing, model execution, and persistence.
|
|
224
238
|
- `get_db_impact(symbol="InferenceService.run_inference")` identifies downstream writes to `prediction_logs`.
|
|
@@ -236,7 +250,7 @@ TrainingPipeline.run
|
|
|
236
250
|
└──►CALLS (AST_VERIFIED) ──► Evaluator.compute_metrics
|
|
237
251
|
```
|
|
238
252
|
|
|
239
|
-
**What CodeGraph structurally proves**:
|
|
253
|
+
**What CodeGraph-MCP structurally proves**:
|
|
240
254
|
- `find_callees(symbol="TrainingPipeline.run")` enumerates every stage of the pipeline with exact file and line ranges.
|
|
241
255
|
- `find_tests(symbol="Evaluator.compute_metrics")` locates the unit and regression tests covering metric calculation.
|
|
242
256
|
- When a transform or model class is dynamically instantiated from a YAML string (`getattr(models, cfg.arch)`), CodeGraph explicitly records `POSSIBLE_CALLS` (`POSSIBLE`) or `UNRESOLVED_REFERENCE` (`UNKNOWN`) rather than fabricating a false static call edge.
|
|
@@ -255,7 +269,7 @@ AgentRunner.execute_step
|
|
|
255
269
|
└──►CALLS (AST_VERIFIED) ──► ModelProviderClient.generate
|
|
256
270
|
```
|
|
257
271
|
|
|
258
|
-
**What CodeGraph structurally proves**:
|
|
272
|
+
**What CodeGraph-MCP structurally proves**:
|
|
259
273
|
- Tracks decorator and call-based registrations (`@tool_registry.register("search_orders")`) via `REGISTERS` and `REGISTERED_HANDLER` edges.
|
|
260
274
|
- Tracks environment variable dependencies (`os.getenv("OPENAI_API_KEY")`) as `READS_ENV` edges with the variable name only—never indexing or exposing secret values.
|
|
261
275
|
|
|
@@ -419,20 +433,23 @@ Rather than claiming a single universal token reduction percentage across all po
|
|
|
419
433
|
| **Compression at `budget = 200 tokens`** | `85.6%` reduction | [`benchmarks/baselines/context_baseline.json`](benchmarks/baselines/context_baseline.json) |
|
|
420
434
|
| **Compression at `budget = 600 tokens`** | `56.3%` reduction | [`benchmarks/baselines/context_baseline.json`](benchmarks/baselines/context_baseline.json) |
|
|
421
435
|
| **Cold vs. Warm `get_context` Latency (`p50`)** | `20.0 ms` cold → `0.67 ms` warm (`30.0x`) | [`benchmarks/baselines/context_baseline.json`](benchmarks/baselines/context_baseline.json) |
|
|
436
|
+
| **Single-Tool Query Latency (Indexed SQLite)** | `1 ms – 15 ms` | Local SQLite B-tree / FTS5 lookup |
|
|
422
437
|
| **FACT / UNKNOWN / AMBIGUITY Correctness** | `100.0%` / `98.0%` / `100.0%` | [`benchmarks/baselines/v2_0_verified.json`](benchmarks/baselines/v2_0_verified.json) |
|
|
423
438
|
|
|
424
439
|
### Results from the 32-Task Internal Evaluation ([`src/codegraph/tool_selection_eval.py`](src/codegraph/tool_selection_eval.py))
|
|
425
440
|
|
|
426
|
-
The table below reports results from the **32-task internal evaluation harness** (`run_tool_selection_ab_benchmark()`) comparing Mode A (unassisted
|
|
441
|
+
The table below reports results from the **32-task internal evaluation harness** (`run_tool_selection_ab_benchmark()`) comparing Mode A (unassisted `grep` + full-file reading without CodeGraph routing rules) against Mode B (CodeGraph MCP + agent routing rules) on the same 32 tasks:
|
|
427
442
|
|
|
428
|
-
| Metric (32-Task Internal Evaluation) | Mode A (
|
|
443
|
+
| Metric (32-Task Internal Evaluation) | Mode A (Without CodeGraph) | Mode B (With CodeGraph MCP) | Measured Improvement |
|
|
429
444
|
| :--- | ---: | ---: | :--- |
|
|
430
|
-
| **Total Tool Calls** | `164` | `71` |
|
|
431
|
-
| **Direct Full-File Reads** | `161` | `7` |
|
|
432
|
-
| **
|
|
433
|
-
| **
|
|
434
|
-
| **
|
|
435
|
-
| **
|
|
445
|
+
| **Total Tool Calls (32 Tasks)** | `164 calls` (`~5.1 / task`) | `71 calls` (`~2.2 / task`) | **`-93 calls (-56.7% fewer tool calls)`** |
|
|
446
|
+
| **Direct Full-File Reads** | `161 full-file reads` | `7 bounded slice reads` | **`-154 file reads (-95.7% fewer file reads)`** |
|
|
447
|
+
| **Context Tokens per Task** | `3,000 – 12,000+ tokens` (full files) | `~542 tokens` avg (`get_context`) | **`65.0% – 85.6% token reduction`** |
|
|
448
|
+
| **Query Latency (`p50`)** | Hundreds of ms (multi-step `grep` + reads) | `20.0 ms` cold / `0.67 ms` warm (`30.0x`) | **Sub-20ms indexed lookup** |
|
|
449
|
+
| **First-Tool Selection Accuracy** | `9.38%` | `100.0%` | **`+90.62%`** |
|
|
450
|
+
| **Unsupported Claims (Hallucinated Edges)** | `11 (34.38%)` | `0 (0.00%)` | **`-11 claims (0% unsupported)`** |
|
|
451
|
+
| **Task Accuracy** | `59.84%` | `100.0%` | **`+40.16%`** |
|
|
452
|
+
| **12-Prompt Natural-Language Routing Eval** | — | `12 / 12 (100.0%)` | **`12/12 on this evaluation set`** |
|
|
436
453
|
|
|
437
454
|

|
|
438
455
|
|
|
@@ -540,6 +557,12 @@ codegraph index . --verbose # Incremental index w
|
|
|
540
557
|
codegraph index . --json # Output structured JSON phase telemetry
|
|
541
558
|
codegraph uninit --dry-run # Preview removal of .codegraph.sqlite3
|
|
542
559
|
|
|
560
|
+
# Process Lifecycle & Upgrade Lock Safety
|
|
561
|
+
codegraph stop # Safely stop CodeGraph MCP server for current repo
|
|
562
|
+
codegraph stop --all # Stop all CodeGraph-owned MCP processes across repos
|
|
563
|
+
codegraph stop --repo /path/to/repo --json # Stop MCP processes for a specific repo (JSON output)
|
|
564
|
+
codegraph doctor --processes # Inspect active MCP processes, parent PIDs, & stale locks
|
|
565
|
+
|
|
543
566
|
# Health, Integrity & Privacy Diagnostics
|
|
544
567
|
codegraph status . # Show index freshness and graph counts
|
|
545
568
|
codegraph doctor . --database --resources # Verify SQLite integrity, FKs, FTS, and memory
|
|
@@ -567,8 +590,10 @@ codegraph memory list -r . # Inspect repository-
|
|
|
567
590
|
codegraph benchmark -r . # Run deterministic benchmark suite
|
|
568
591
|
|
|
569
592
|
# MCP Server Subcommands
|
|
570
|
-
codegraph mcp serve . # Start stdio MCP server
|
|
593
|
+
codegraph mcp serve . # Start stdio MCP server (with parent/EOF lifecycle guard)
|
|
571
594
|
codegraph mcp serve . --profile full # Start stdio MCP server with all 56 tools
|
|
595
|
+
codegraph mcp stop # Alias for codegraph stop
|
|
596
|
+
codegraph mcp kill # Alias for codegraph stop (1s graceful timeout)
|
|
572
597
|
codegraph mcp doctor . # End-to-end MCP startup & query check
|
|
573
598
|
codegraph mcp config-check . # Read-only MCP config validation
|
|
574
599
|
codegraph mcp capabilities # Print machine-readable capability manifest
|
|
@@ -2,23 +2,24 @@
|
|
|
2
2
|
<img src="docs/assets/codegraph_logo.jpg" alt="CodeGraph MCP — Deep Deterministic Repository Intelligence for AI Coding Agents" width="500" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">CodeGraph Engine (v2.
|
|
5
|
+
<h1 align="center">CodeGraph-MCP Engine (v2.2.0)</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<strong>Deep deterministic repository intelligence for AI coding agents.</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<a href="https://
|
|
12
|
+
<a href="https://pypi.org/project/codegraph-engine/2.2.0/"><img src="https://img.shields.io/badge/pypi-codegraph--engine%20v2.2.0-blue.svg" alt="PyPI: codegraph-engine v2.2.0" /></a>
|
|
13
13
|
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.12%20%7C%203.13-3776AB.svg" alt="Python 3.12 | 3.13" /></a>
|
|
14
14
|
<a href="src/codegraph/mcp/server.py"><img src="https://img.shields.io/badge/MCP-14%20default%20%7C%2056%20full%20tools-2ea043.svg" alt="MCP Tools: 14 default | 56 full" /></a>
|
|
15
|
-
<a href="tests/"><img src="https://img.shields.io/badge/pytest-
|
|
15
|
+
<a href="tests/"><img src="https://img.shields.io/badge/pytest-861%20passed-brightgreen.svg" alt="Tests: 861 passed" /></a>
|
|
16
16
|
<a href="pyproject.toml"><img src="https://img.shields.io/badge/ruff-0%20errors-success.svg" alt="Ruff: 0 errors" /></a>
|
|
17
|
-
<a href="src/codegraph/"><img src="https://img.shields.io/badge/mypy-0%20issues%20(
|
|
17
|
+
<a href="src/codegraph/"><img src="https://img.shields.io/badge/mypy-0%20issues%20(80%20files)-blue.svg" alt="Mypy: strict" /></a>
|
|
18
18
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
21
|
<p align="center">
|
|
22
|
+
<a href="https://pypi.org/project/codegraph-engine/2.2.0/"><strong>PyPI (v2.2.0)</strong></a> •
|
|
22
23
|
<a href="#2-quickstart-30-second-setup"><strong>Quickstart</strong></a> •
|
|
23
24
|
<a href="#1-built-for-aiml-and-backend-heavy-repositories"><strong>Built For</strong></a> •
|
|
24
25
|
<a href="#5-database-intelligence"><strong>Database Intelligence</strong></a> •
|
|
@@ -92,7 +93,7 @@ pip install "codegraph-engine[mcp]"
|
|
|
92
93
|
|
|
93
94
|
### Step 2: Configure Your AI Coding Agents (`codegraph install`)
|
|
94
95
|
|
|
95
|
-
CodeGraph includes an interactive, idempotent onboarding installer ([`src/codegraph/installer.py`](src/codegraph/installer.py)) that detects installed AI coding agents (**Claude Code**, **Cursor**, **Antigravity**, **Codex CLI**, **Gemini CLI**, and **Cline**), configures `mcpServers.codegraph`, installs marker-bounded routing instructions (`<!-- CODEGRAPH:START -->` … `<!-- CODEGRAPH:END -->`), and verifies MCP server startup:
|
|
96
|
+
CodeGraph-MCP includes an interactive, idempotent onboarding installer ([`src/codegraph/installer.py`](src/codegraph/installer.py)) that detects installed AI coding agents (**Claude Code**, **Cursor**, **Antigravity**, **Codex CLI**, **Gemini CLI**, and **Cline**), configures `mcpServers.codegraph`, installs marker-bounded routing instructions (`<!-- CODEGRAPH:START -->` … `<!-- CODEGRAPH:END -->`), and verifies MCP server startup:
|
|
96
97
|
|
|
97
98
|
```bash
|
|
98
99
|
# Interactive setup (detects installed agents, previews planned changes, asks confirmation)
|
|
@@ -114,18 +115,31 @@ codegraph status
|
|
|
114
115
|
codegraph doctor
|
|
115
116
|
```
|
|
116
117
|
|
|
117
|
-
|
|
118
|
+
> **Dynamic Index Hot-Reloading:** If your AI coding agent launches `codegraph mcp serve` before you run `codegraph init`, you do **not** need to restart your IDE or MCP session. As soon as `codegraph init` or `codegraph index` creates or updates `.codegraph.sqlite3`, the running MCP server automatically detects the updated database on the next tool call and refreshes its in-memory graph cache (`get_repository_status(reload=True, reindex=True)` can also be invoked directly by the agent).
|
|
118
119
|
|
|
119
|
-
|
|
120
|
+
### Managing Installation, Process & Project Index Lifecycle
|
|
121
|
+
|
|
122
|
+
CodeGraph cleanly separates agent configuration, process lifecycle, and project index files:
|
|
120
123
|
|
|
121
124
|
| Command | Scope | What It Does |
|
|
122
125
|
| :--- | :--- | :--- |
|
|
123
|
-
| `codegraph install` | Agent configuration | Configures MCP server + marker-managed rules/skills for selected AI agents. |
|
|
124
|
-
| `codegraph init` | Project repository | Initializes `.codegraph.sqlite3` and indexes the current repository. |
|
|
126
|
+
| `codegraph install` | Agent configuration | Configures MCP server + marker-managed rules/skills for selected AI agents (ASCII-safe on Windows `cp1252`). |
|
|
127
|
+
| `codegraph init` | Project repository | Initializes `.codegraph.sqlite3` and indexes the current repository (hot-reloaded automatically by running MCP servers). |
|
|
125
128
|
| `codegraph index` | Project repository | Incrementally indexes modified files (`--verbose`, `--quiet`, `--json`). |
|
|
126
|
-
| `codegraph
|
|
129
|
+
| `codegraph stop` | Process lifecycle | Safely stops running CodeGraph-owned MCP background processes (`--all`, `--repo`, `--json`) and releases file locks. |
|
|
130
|
+
| `codegraph doctor --processes` | Process lifecycle | Lists active CodeGraph MCP processes, parent PIDs, orphan status, and cleans stale PID files. |
|
|
131
|
+
| `codegraph uninstall` | Agent configuration | Stops active workspace MCP processes and removes CodeGraph-managed MCP entries and instruction blocks. |
|
|
127
132
|
| `codegraph uninit` | Project repository | Removes only `.codegraph.sqlite3` and `.codegraph/` in the project (never touches source code or Git history). |
|
|
128
133
|
|
|
134
|
+
### Safe Upgrading on Windows (`WinError 32` Prevention)
|
|
135
|
+
|
|
136
|
+
On Windows, running `pip install --upgrade codegraph-engine` while an IDE or agent still holds `codegraph.exe` open can trigger `WinError 32`. Before upgrading on Windows, run:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
codegraph stop --all
|
|
140
|
+
pip install --upgrade "codegraph-engine[mcp]"
|
|
141
|
+
```
|
|
142
|
+
|
|
129
143
|
---
|
|
130
144
|
|
|
131
145
|
## 3. Core Workflow & Architecture
|
|
@@ -185,7 +199,7 @@ InferenceService.run_inference
|
|
|
185
199
|
db:table:postgresql.public.prediction_logs
|
|
186
200
|
```
|
|
187
201
|
|
|
188
|
-
**What CodeGraph structurally proves**:
|
|
202
|
+
**What CodeGraph-MCP structurally proves**:
|
|
189
203
|
- `find_routes(path="/v1/predict")` resolves composed router prefixes (`MOUNTS`) to `predict_endpoint`.
|
|
190
204
|
- `trace_path(from_symbol="predict_endpoint", to_symbol="log_prediction")` proves the multi-hop execution chain across DI injection, preprocessing, model execution, and persistence.
|
|
191
205
|
- `get_db_impact(symbol="InferenceService.run_inference")` identifies downstream writes to `prediction_logs`.
|
|
@@ -203,7 +217,7 @@ TrainingPipeline.run
|
|
|
203
217
|
└──►CALLS (AST_VERIFIED) ──► Evaluator.compute_metrics
|
|
204
218
|
```
|
|
205
219
|
|
|
206
|
-
**What CodeGraph structurally proves**:
|
|
220
|
+
**What CodeGraph-MCP structurally proves**:
|
|
207
221
|
- `find_callees(symbol="TrainingPipeline.run")` enumerates every stage of the pipeline with exact file and line ranges.
|
|
208
222
|
- `find_tests(symbol="Evaluator.compute_metrics")` locates the unit and regression tests covering metric calculation.
|
|
209
223
|
- When a transform or model class is dynamically instantiated from a YAML string (`getattr(models, cfg.arch)`), CodeGraph explicitly records `POSSIBLE_CALLS` (`POSSIBLE`) or `UNRESOLVED_REFERENCE` (`UNKNOWN`) rather than fabricating a false static call edge.
|
|
@@ -222,7 +236,7 @@ AgentRunner.execute_step
|
|
|
222
236
|
└──►CALLS (AST_VERIFIED) ──► ModelProviderClient.generate
|
|
223
237
|
```
|
|
224
238
|
|
|
225
|
-
**What CodeGraph structurally proves**:
|
|
239
|
+
**What CodeGraph-MCP structurally proves**:
|
|
226
240
|
- Tracks decorator and call-based registrations (`@tool_registry.register("search_orders")`) via `REGISTERS` and `REGISTERED_HANDLER` edges.
|
|
227
241
|
- Tracks environment variable dependencies (`os.getenv("OPENAI_API_KEY")`) as `READS_ENV` edges with the variable name only—never indexing or exposing secret values.
|
|
228
242
|
|
|
@@ -386,20 +400,23 @@ Rather than claiming a single universal token reduction percentage across all po
|
|
|
386
400
|
| **Compression at `budget = 200 tokens`** | `85.6%` reduction | [`benchmarks/baselines/context_baseline.json`](benchmarks/baselines/context_baseline.json) |
|
|
387
401
|
| **Compression at `budget = 600 tokens`** | `56.3%` reduction | [`benchmarks/baselines/context_baseline.json`](benchmarks/baselines/context_baseline.json) |
|
|
388
402
|
| **Cold vs. Warm `get_context` Latency (`p50`)** | `20.0 ms` cold → `0.67 ms` warm (`30.0x`) | [`benchmarks/baselines/context_baseline.json`](benchmarks/baselines/context_baseline.json) |
|
|
403
|
+
| **Single-Tool Query Latency (Indexed SQLite)** | `1 ms – 15 ms` | Local SQLite B-tree / FTS5 lookup |
|
|
389
404
|
| **FACT / UNKNOWN / AMBIGUITY Correctness** | `100.0%` / `98.0%` / `100.0%` | [`benchmarks/baselines/v2_0_verified.json`](benchmarks/baselines/v2_0_verified.json) |
|
|
390
405
|
|
|
391
406
|
### Results from the 32-Task Internal Evaluation ([`src/codegraph/tool_selection_eval.py`](src/codegraph/tool_selection_eval.py))
|
|
392
407
|
|
|
393
|
-
The table below reports results from the **32-task internal evaluation harness** (`run_tool_selection_ab_benchmark()`) comparing Mode A (unassisted
|
|
408
|
+
The table below reports results from the **32-task internal evaluation harness** (`run_tool_selection_ab_benchmark()`) comparing Mode A (unassisted `grep` + full-file reading without CodeGraph routing rules) against Mode B (CodeGraph MCP + agent routing rules) on the same 32 tasks:
|
|
394
409
|
|
|
395
|
-
| Metric (32-Task Internal Evaluation) | Mode A (
|
|
410
|
+
| Metric (32-Task Internal Evaluation) | Mode A (Without CodeGraph) | Mode B (With CodeGraph MCP) | Measured Improvement |
|
|
396
411
|
| :--- | ---: | ---: | :--- |
|
|
397
|
-
| **Total Tool Calls** | `164` | `71` |
|
|
398
|
-
| **Direct Full-File Reads** | `161` | `7` |
|
|
399
|
-
| **
|
|
400
|
-
| **
|
|
401
|
-
| **
|
|
402
|
-
| **
|
|
412
|
+
| **Total Tool Calls (32 Tasks)** | `164 calls` (`~5.1 / task`) | `71 calls` (`~2.2 / task`) | **`-93 calls (-56.7% fewer tool calls)`** |
|
|
413
|
+
| **Direct Full-File Reads** | `161 full-file reads` | `7 bounded slice reads` | **`-154 file reads (-95.7% fewer file reads)`** |
|
|
414
|
+
| **Context Tokens per Task** | `3,000 – 12,000+ tokens` (full files) | `~542 tokens` avg (`get_context`) | **`65.0% – 85.6% token reduction`** |
|
|
415
|
+
| **Query Latency (`p50`)** | Hundreds of ms (multi-step `grep` + reads) | `20.0 ms` cold / `0.67 ms` warm (`30.0x`) | **Sub-20ms indexed lookup** |
|
|
416
|
+
| **First-Tool Selection Accuracy** | `9.38%` | `100.0%` | **`+90.62%`** |
|
|
417
|
+
| **Unsupported Claims (Hallucinated Edges)** | `11 (34.38%)` | `0 (0.00%)` | **`-11 claims (0% unsupported)`** |
|
|
418
|
+
| **Task Accuracy** | `59.84%` | `100.0%` | **`+40.16%`** |
|
|
419
|
+
| **12-Prompt Natural-Language Routing Eval** | — | `12 / 12 (100.0%)` | **`12/12 on this evaluation set`** |
|
|
403
420
|
|
|
404
421
|

|
|
405
422
|
|
|
@@ -507,6 +524,12 @@ codegraph index . --verbose # Incremental index w
|
|
|
507
524
|
codegraph index . --json # Output structured JSON phase telemetry
|
|
508
525
|
codegraph uninit --dry-run # Preview removal of .codegraph.sqlite3
|
|
509
526
|
|
|
527
|
+
# Process Lifecycle & Upgrade Lock Safety
|
|
528
|
+
codegraph stop # Safely stop CodeGraph MCP server for current repo
|
|
529
|
+
codegraph stop --all # Stop all CodeGraph-owned MCP processes across repos
|
|
530
|
+
codegraph stop --repo /path/to/repo --json # Stop MCP processes for a specific repo (JSON output)
|
|
531
|
+
codegraph doctor --processes # Inspect active MCP processes, parent PIDs, & stale locks
|
|
532
|
+
|
|
510
533
|
# Health, Integrity & Privacy Diagnostics
|
|
511
534
|
codegraph status . # Show index freshness and graph counts
|
|
512
535
|
codegraph doctor . --database --resources # Verify SQLite integrity, FKs, FTS, and memory
|
|
@@ -534,8 +557,10 @@ codegraph memory list -r . # Inspect repository-
|
|
|
534
557
|
codegraph benchmark -r . # Run deterministic benchmark suite
|
|
535
558
|
|
|
536
559
|
# MCP Server Subcommands
|
|
537
|
-
codegraph mcp serve . # Start stdio MCP server
|
|
560
|
+
codegraph mcp serve . # Start stdio MCP server (with parent/EOF lifecycle guard)
|
|
538
561
|
codegraph mcp serve . --profile full # Start stdio MCP server with all 56 tools
|
|
562
|
+
codegraph mcp stop # Alias for codegraph stop
|
|
563
|
+
codegraph mcp kill # Alias for codegraph stop (1s graceful timeout)
|
|
539
564
|
codegraph mcp doctor . # End-to-end MCP startup & query check
|
|
540
565
|
codegraph mcp config-check . # Read-only MCP config validation
|
|
541
566
|
codegraph mcp capabilities # Print machine-readable capability manifest
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "codegraph-engine"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.2.0"
|
|
8
8
|
description = "Deep deterministic repository intelligence for AI coding agents (code, dependencies, databases, and runtime observations)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -61,6 +61,7 @@ disable_error_code = ["untyped-decorator"]
|
|
|
61
61
|
ignore_missing_imports = true
|
|
62
62
|
|
|
63
63
|
[[tool.mypy.overrides]]
|
|
64
|
-
module = ["psutil.*", "psutil"]
|
|
64
|
+
module = ["psutil.*", "psutil", "yaml.*", "yaml"]
|
|
65
65
|
ignore_missing_imports = true
|
|
66
|
+
disable_error_code = ["import-untyped"]
|
|
66
67
|
|