codegraphcontext 0.4.7__tar.gz → 0.4.9__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.
- {codegraphcontext-0.4.7/src/codegraphcontext.egg-info → codegraphcontext-0.4.9}/PKG-INFO +49 -87
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/README.md +44 -82
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/pyproject.toml +5 -5
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/cli_helpers.py +57 -6
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/config_manager.py +13 -6
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/main.py +101 -10
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/__init__.py +3 -3
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_falkordb.py +2 -2
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_kuzu.py +101 -14
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/server.py +45 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/code_finder.py +204 -42
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/graph_builder.py +65 -12
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/analysis_handlers.py +5 -4
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/discovery.py +26 -2
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/persistence/writer.py +314 -214
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/pipeline.py +17 -4
- codegraphcontext-0.4.9/src/codegraphcontext/tools/indexing/resolution/calls.py +2496 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +34 -16
- codegraphcontext-0.4.9/src/codegraphcontext/tools/indexing/schema.py +108 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/scip_pipeline.py +69 -5
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/c.py +86 -4
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/cpp.py +109 -53
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/csharp.py +23 -4
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/css.py +2 -3
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/dart.py +138 -80
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/elixir.py +54 -9
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/go.py +63 -2
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/html.py +8 -8
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/java.py +178 -19
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/javascript.py +1 -0
- codegraphcontext-0.4.9/src/codegraphcontext/tools/languages/kotlin.py +2193 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/perl.py +26 -4
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/php.py +24 -14
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/python.py +7 -1
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/ruby.py +20 -1
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/rust.py +58 -39
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/scala.py +19 -7
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/swift.py +57 -53
- codegraphcontext-0.4.9/src/codegraphcontext/tools/scip_indexer.py +752 -0
- codegraphcontext-0.4.9/src/codegraphcontext/tools/type_utils.py +12 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/tree_sitter_manager.py +86 -35
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9/src/codegraphcontext.egg-info}/PKG-INFO +49 -87
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/SOURCES.txt +1 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/requires.txt +4 -4
- codegraphcontext-0.4.7/src/codegraphcontext/tools/indexing/resolution/calls.py +0 -323
- codegraphcontext-0.4.7/src/codegraphcontext/tools/indexing/schema.py +0 -79
- codegraphcontext-0.4.7/src/codegraphcontext/tools/languages/kotlin.py +0 -640
- codegraphcontext-0.4.7/src/codegraphcontext/tools/scip_indexer.py +0 -599
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/LICENSE +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/MANIFEST.in +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/setup.cfg +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/__main__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/registry_commands.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/setup_macos.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/setup_wizard.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/visualizer.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/bundle_registry.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/cgc_bundle.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/cgcignore.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_nornic.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/falkor_worker.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/jobs.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/watcher.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/prompts.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tool_definitions.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/advanced_language_query_tool.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/indexing_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/constants.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/pre_scan.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/gradle.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/haskell.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/lua.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/maven.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/typescript.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/package_resolver.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/report_generator.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/scip_pb2.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/system.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/debug_log.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/git_utils.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/path_ignore.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/repo_path.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/tool_limits.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/visualize_graph.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/index-BJT3EMmQ.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/index-DjDPHWki.css +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/parser.worker-CZgm11E5.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/index.html +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/robots.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/server.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/top_level.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/tests/test_issue_806_fix.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codegraphcontext
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.9
|
|
4
4
|
Summary: An MCP server that indexes local code into a graph database to provide context to AI assistants.
|
|
5
5
|
Author-email: Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -43,8 +43,8 @@ Requires-Dist: typer>=0.9.0
|
|
|
43
43
|
Requires-Dist: rich>=13.7.0
|
|
44
44
|
Requires-Dist: inquirerpy>=0.3.4
|
|
45
45
|
Requires-Dist: python-dotenv>=1.0.0
|
|
46
|
-
Requires-Dist: tree-sitter
|
|
47
|
-
Requires-Dist: tree-sitter-language-pack
|
|
46
|
+
Requires-Dist: tree-sitter<0.26.0,>=0.21.0; python_version != "3.13"
|
|
47
|
+
Requires-Dist: tree-sitter-language-pack<1.0.0,>=0.6.0; python_version != "3.13"
|
|
48
48
|
Requires-Dist: tree-sitter-c-sharp>=0.21.0; python_version != "3.13"
|
|
49
49
|
Requires-Dist: pyyaml
|
|
50
50
|
Requires-Dist: nbformat
|
|
@@ -58,8 +58,8 @@ Requires-Dist: kuzu; sys_platform == "win32" or (sys_platform != "win32" and pyt
|
|
|
58
58
|
Requires-Dist: fastapi>=0.100.0
|
|
59
59
|
Requires-Dist: uvicorn>=0.22.0
|
|
60
60
|
Provides-Extra: parsing
|
|
61
|
-
Requires-Dist: tree-sitter
|
|
62
|
-
Requires-Dist: tree-sitter-language-pack
|
|
61
|
+
Requires-Dist: tree-sitter<0.26.0,>=0.21.0; python_version != "3.13" and extra == "parsing"
|
|
62
|
+
Requires-Dist: tree-sitter-language-pack<1.0.0,>=0.6.0; python_version != "3.13" and extra == "parsing"
|
|
63
63
|
Requires-Dist: tree-sitter-c-sharp>=0.21.0; python_version != "3.13" and extra == "parsing"
|
|
64
64
|
Provides-Extra: dev
|
|
65
65
|
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
@@ -125,7 +125,7 @@ Dynamic: license-file
|
|
|
125
125
|
<a href="http://codegraphcontext.vercel.app/">
|
|
126
126
|
<img src="https://img.shields.io/badge/website-up-brightgreen?style=flat-square" alt="Website">
|
|
127
127
|
</a>
|
|
128
|
-
<a href="https://
|
|
128
|
+
<a href="https://codegraphcontext.vercel.app/">
|
|
129
129
|
<img src="https://img.shields.io/badge/docs-GitHub%20Pages-blue?style=flat-square" alt="Docs">
|
|
130
130
|
</a>
|
|
131
131
|
<a href="https://youtu.be/KYYSdxhg1xU">
|
|
@@ -144,6 +144,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
144
144
|
* [🛠️ CLI Toolkit](#for-cli-toolkit-mode)
|
|
145
145
|
* [🤖 MCP Server](#-for-mcp-server-mode)
|
|
146
146
|
* [🗄️ Database Options](#database-options)
|
|
147
|
+
* [🔬 SCIP indexing (optional)](#scip-indexing-optional)
|
|
147
148
|
|
|
148
149
|
---
|
|
149
150
|
|
|
@@ -166,7 +167,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
166
167
|
---
|
|
167
168
|
|
|
168
169
|
## Project Details
|
|
169
|
-
- **Version:** 0.4.
|
|
170
|
+
- **Version:** 0.4.9
|
|
170
171
|
- **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
|
|
171
172
|
- **License:** MIT License (See [LICENSE](LICENSE) for details)
|
|
172
173
|
- **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
|
|
@@ -180,7 +181,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
180
181
|
- 📧 Email: [shashankshekharsingh1205@gmail.com](mailto:shashankshekharsingh1205@gmail.com)
|
|
181
182
|
- 🐙 GitHub: [@Shashankss1205](https://github.com/Shashankss1205)
|
|
182
183
|
- 🔗 LinkedIn: [Shashank Shekhar Singh](https://www.linkedin.com/in/shashank-shekhar-singh-a67282228/)
|
|
183
|
-
- 🌐 Website: [codegraphcontext.vercel.app](
|
|
184
|
+
- 🌐 Website: [codegraphcontext.vercel.app](https://codegraphcontext.vercel.app/)
|
|
184
185
|
|
|
185
186
|
*Contributions and feedback are always welcome! Feel free to reach out for questions, suggestions, or collaboration opportunities.*
|
|
186
187
|
|
|
@@ -198,8 +199,8 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
198
199
|
- **Live File Watching:** Watch directories for changes and automatically update the graph in real-time (`codegraphcontext watch`).
|
|
199
200
|
- **Interactive Setup:** A user-friendly command-line wizard for easy setup.
|
|
200
201
|
- **Dual Mode:** Works as a standalone **CLI toolkit** for developers and as an **MCP server** for AI agents.
|
|
201
|
-
- **Multi-Language Support:** Full support for
|
|
202
|
-
- **Flexible Database Backend:**
|
|
202
|
+
- **Multi-Language Support:** Full support for 20 programming languages.
|
|
203
|
+
- **Flexible Database Backend:** KuzuDB (Default), FalkorDB Lite (Typical Unix default), FalkorDB Remote, Nornic DB, or Neo4j (all platforms via Docker/native).
|
|
203
204
|
|
|
204
205
|
|
|
205
206
|
---
|
|
@@ -215,6 +216,8 @@ CodeGraphContext provides comprehensive parsing and analysis for the following l
|
|
|
215
216
|
| 🐹 | **Go** | 🦀 | **Rust** | 💎 | **Ruby** |
|
|
216
217
|
| 🐘 | **PHP** | 🍎 | **Swift** | 🎨 | **Kotlin** |
|
|
217
218
|
| 🎯 | **Dart** | 🐪 | **Perl** | 🌙 | **Lua** |
|
|
219
|
+
| 🚀 | **Scala** | λ | **Haskell** | 💧 | **Elixir** |
|
|
220
|
+
| ⚛️ | **TSX** | | | | |
|
|
218
221
|
|
|
219
222
|
Each language parser extracts functions, classes, methods, parameters, inheritance relationships, function calls, and imports to build a comprehensive code graph.
|
|
220
223
|
|
|
@@ -224,18 +227,30 @@ Each language parser extracts functions, classes, methods, parameters, inheritan
|
|
|
224
227
|
|
|
225
228
|
CodeGraphContext supports multiple graph database backends to suit your environment:
|
|
226
229
|
|
|
227
|
-
| Feature |
|
|
230
|
+
| Feature | KuzuDB | FalkorDB Lite | Neo4j / Nornic DB |
|
|
228
231
|
| :--- | :--- | :--- | :--- |
|
|
229
|
-
| **Typical default** | **Standard Default** (embedded,
|
|
232
|
+
| **Typical default** | **Standard Default** (embedded, powered by KuzuDB) | **Unix** (Python 3.12+, when `falkordblite` works) | When explicitly configured |
|
|
230
233
|
| **Setup** | Zero-config / Embedded | Zero-config / In-process | Docker / External |
|
|
231
234
|
| **Platform** | **All (Windows Native, macOS, Linux)** | Unix-only (Linux/macOS/WSL) | All Platforms |
|
|
232
235
|
| **Use Case** | Desktop, IDE, Local development | Specialized Unix development | Enterprise, Massive graphs |
|
|
233
|
-
| **Requirement**| `pip install
|
|
236
|
+
| **Requirement**| `pip install kuzu` | `pip install falkordblite` | Neo4j Server / Docker / Nornic Cloud |
|
|
234
237
|
| **Speed** | ⚡ Extremely Fast | ⚡ Fast | 🚀 Scalable |
|
|
235
238
|
| **Persistence**| Yes (to disk) | Yes (to disk) | Yes (to disk) |
|
|
236
239
|
|
|
237
240
|
---
|
|
238
241
|
|
|
242
|
+
## SCIP indexing (optional)
|
|
243
|
+
|
|
244
|
+
When `SCIP_INDEXER=true` in your CGC config (`~/.codegraphcontext/.env`), some languages use external **SCIP** indexers for more accurate calls and inheritance than Tree-sitter heuristics alone.
|
|
245
|
+
|
|
246
|
+
**C and C++** use **scip-clang**, which requires a **`compile_commands.json`** file (a [JSON compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html)): one entry per translation unit with the real compiler command (include paths, `-D` defines, `-std`, etc.). Without it, scip-clang cannot run; CGC logs a warning and **falls back to Tree-sitter** for that repo. Typical ways to produce the file: **CMake** with `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON`, or wrap your real build with **[Bear](https://github.com/rizsotto/Bear)** (e.g. `bear -- make`). CGC also looks under `build/` and `cmake-build-*/` for that filename.
|
|
247
|
+
|
|
248
|
+
**C#** uses **scip-dotnet** (Roslyn); you need a normal **`.csproj` / `.sln`** and a successful restore—no `compile_commands.json`.
|
|
249
|
+
|
|
250
|
+
SCIP is **independent of which graph database** you use (Kuzu, Neo4j, etc.); the same flag applies to all backends.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
239
254
|
## Used By
|
|
240
255
|
|
|
241
256
|
CodeGraphContext is already being explored by developers and projects for:
|
|
@@ -255,95 +270,42 @@ _If you’re using CodeGraphContext in your project, feel free to open a PR and
|
|
|
255
270
|
- `stdlibs>=2023.11.18`
|
|
256
271
|
- `typer>=0.9.0`
|
|
257
272
|
- `rich>=13.7.0`
|
|
258
|
-
- `inquirerpy>=0.3.
|
|
273
|
+
- `inquirerpy>=0.3.4`
|
|
259
274
|
- `python-dotenv>=1.0.0`
|
|
260
275
|
- `tree-sitter>=0.21.0` (not installed on Python 3.13)
|
|
261
276
|
- `tree-sitter-language-pack>=0.6.0` (not installed on Python 3.13)
|
|
262
277
|
- `pyyaml`
|
|
263
|
-
- `pytest`
|
|
264
|
-
- `nbformat`
|
|
265
|
-
- `nbconvert>=7.16.6`
|
|
266
278
|
- `pathspec>=0.12.1`
|
|
279
|
+
- `falkordb>=0.1.0`
|
|
280
|
+
- `falkordblite>=0.1.0` (Unix only)
|
|
281
|
+
- `kuzu` (KuzuDB engine)
|
|
282
|
+
- `fastapi>=0.100.0`
|
|
283
|
+
- `uvicorn>=0.22.0`
|
|
284
|
+
- `requests>=2.28.0`
|
|
285
|
+
- `protobuf>=3.20,<3.21`
|
|
267
286
|
|
|
268
287
|
**Note:** Python 3.10-3.14 is supported.
|
|
269
288
|
|
|
270
289
|
---
|
|
271
290
|
|
|
272
|
-
|
|
273
|
-
### Install the core toolkit
|
|
274
|
-
```
|
|
275
|
-
pip install codegraphcontext
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
### If 'codegraphcontext' command isn't found, run our one-line fix:
|
|
279
|
-
```
|
|
280
|
-
curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## Getting Started
|
|
291
|
+
### 🚀 Installation & Quick Start
|
|
286
292
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
Use CodeGraphContext as a **powerful command-line toolkit** for code analysis:
|
|
292
|
-
- Index and analyze codebases directly from your terminal
|
|
293
|
-
- Query code relationships, find dead code, analyze complexity
|
|
294
|
-
- Visualize code graphs and dependencies
|
|
295
|
-
- Perfect for developers who want direct control via CLI commands
|
|
296
|
-
|
|
297
|
-
#### 🤖 Mode 2: MCP Server (AI-Powered)
|
|
298
|
-
Use CodeGraphContext as an **MCP server** for AI assistants:
|
|
299
|
-
- Connect to AI IDEs (VS Code, Cursor, Windsurf, Claude, Kiro, etc.)
|
|
300
|
-
- Let AI agents query your codebase using natural language
|
|
301
|
-
- Automatic code understanding and relationship analysis
|
|
302
|
-
- Perfect for AI-assisted development workflows
|
|
303
|
-
|
|
304
|
-
**You can use both modes!** Install once, then use CLI commands directly OR connect to your AI assistant.
|
|
305
|
-
|
|
306
|
-
### Installation (Both Modes)
|
|
293
|
+
1. **Install the toolkit:**
|
|
294
|
+
```bash
|
|
295
|
+
pip install codegraphcontext
|
|
296
|
+
```
|
|
307
297
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
<summary>⚙️ Troubleshooting: In case, command <code>codegraphcontext</code> not found</summary>
|
|
311
|
-
<br>
|
|
312
|
-
If you encounter <i>"codegraphcontext: command not found"</i> after installation, run the PATH fix script:
|
|
313
|
-
|
|
314
|
-
**Linux/Mac:**
|
|
298
|
+
2. **Troubleshooting (Command not found):**
|
|
299
|
+
If the `codegraphcontext` command is not found, run this one-line fix:
|
|
315
300
|
```bash
|
|
316
|
-
|
|
317
|
-
curl -O https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh
|
|
318
|
-
|
|
319
|
-
# Make it executable
|
|
320
|
-
chmod +x post_install_fix.sh
|
|
321
|
-
|
|
322
|
-
# Run the script
|
|
323
|
-
./post_install_fix.sh
|
|
324
|
-
|
|
325
|
-
# Restart your terminal or reload shell config
|
|
326
|
-
source ~/.bashrc # or ~/.zshrc for zsh users
|
|
301
|
+
curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
|
|
327
302
|
```
|
|
328
|
-
|
|
329
|
-
**Windows (PowerShell):**
|
|
330
|
-
```powershell
|
|
331
|
-
# Download the fix script
|
|
332
|
-
curl -O https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh
|
|
333
|
-
|
|
334
|
-
# Run with bash (requires Git Bash or WSL)
|
|
335
|
-
bash post_install_fix.sh
|
|
336
|
-
|
|
337
|
-
# Restart PowerShell or reload profile
|
|
338
|
-
. $PROFILE
|
|
339
|
-
```
|
|
340
|
-
</details>
|
|
341
303
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
- **
|
|
345
|
-
- **FalkorDB Lite
|
|
346
|
-
- **Neo4j
|
|
304
|
+
3. **Database Setup (Automatic):**
|
|
305
|
+
CodeGraphContext uses an embedded graph database by default.
|
|
306
|
+
- **KuzuDB:** Default for all platforms.
|
|
307
|
+
- **FalkorDB Lite:** Preferred on Unix/macOS if available.
|
|
308
|
+
- **Neo4j:** Run `codegraphcontext neo4j setup` to use an external server.
|
|
347
309
|
|
|
348
310
|
---
|
|
349
311
|
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
<a href="http://codegraphcontext.vercel.app/">
|
|
57
57
|
<img src="https://img.shields.io/badge/website-up-brightgreen?style=flat-square" alt="Website">
|
|
58
58
|
</a>
|
|
59
|
-
<a href="https://
|
|
59
|
+
<a href="https://codegraphcontext.vercel.app/">
|
|
60
60
|
<img src="https://img.shields.io/badge/docs-GitHub%20Pages-blue?style=flat-square" alt="Docs">
|
|
61
61
|
</a>
|
|
62
62
|
<a href="https://youtu.be/KYYSdxhg1xU">
|
|
@@ -75,6 +75,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
75
75
|
* [🛠️ CLI Toolkit](#for-cli-toolkit-mode)
|
|
76
76
|
* [🤖 MCP Server](#-for-mcp-server-mode)
|
|
77
77
|
* [🗄️ Database Options](#database-options)
|
|
78
|
+
* [🔬 SCIP indexing (optional)](#scip-indexing-optional)
|
|
78
79
|
|
|
79
80
|
---
|
|
80
81
|
|
|
@@ -97,7 +98,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
97
98
|
---
|
|
98
99
|
|
|
99
100
|
## Project Details
|
|
100
|
-
- **Version:** 0.4.
|
|
101
|
+
- **Version:** 0.4.9
|
|
101
102
|
- **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
|
|
102
103
|
- **License:** MIT License (See [LICENSE](LICENSE) for details)
|
|
103
104
|
- **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
|
|
@@ -111,7 +112,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
111
112
|
- 📧 Email: [shashankshekharsingh1205@gmail.com](mailto:shashankshekharsingh1205@gmail.com)
|
|
112
113
|
- 🐙 GitHub: [@Shashankss1205](https://github.com/Shashankss1205)
|
|
113
114
|
- 🔗 LinkedIn: [Shashank Shekhar Singh](https://www.linkedin.com/in/shashank-shekhar-singh-a67282228/)
|
|
114
|
-
- 🌐 Website: [codegraphcontext.vercel.app](
|
|
115
|
+
- 🌐 Website: [codegraphcontext.vercel.app](https://codegraphcontext.vercel.app/)
|
|
115
116
|
|
|
116
117
|
*Contributions and feedback are always welcome! Feel free to reach out for questions, suggestions, or collaboration opportunities.*
|
|
117
118
|
|
|
@@ -129,8 +130,8 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
|
|
|
129
130
|
- **Live File Watching:** Watch directories for changes and automatically update the graph in real-time (`codegraphcontext watch`).
|
|
130
131
|
- **Interactive Setup:** A user-friendly command-line wizard for easy setup.
|
|
131
132
|
- **Dual Mode:** Works as a standalone **CLI toolkit** for developers and as an **MCP server** for AI agents.
|
|
132
|
-
- **Multi-Language Support:** Full support for
|
|
133
|
-
- **Flexible Database Backend:**
|
|
133
|
+
- **Multi-Language Support:** Full support for 20 programming languages.
|
|
134
|
+
- **Flexible Database Backend:** KuzuDB (Default), FalkorDB Lite (Typical Unix default), FalkorDB Remote, Nornic DB, or Neo4j (all platforms via Docker/native).
|
|
134
135
|
|
|
135
136
|
|
|
136
137
|
---
|
|
@@ -146,6 +147,8 @@ CodeGraphContext provides comprehensive parsing and analysis for the following l
|
|
|
146
147
|
| 🐹 | **Go** | 🦀 | **Rust** | 💎 | **Ruby** |
|
|
147
148
|
| 🐘 | **PHP** | 🍎 | **Swift** | 🎨 | **Kotlin** |
|
|
148
149
|
| 🎯 | **Dart** | 🐪 | **Perl** | 🌙 | **Lua** |
|
|
150
|
+
| 🚀 | **Scala** | λ | **Haskell** | 💧 | **Elixir** |
|
|
151
|
+
| ⚛️ | **TSX** | | | | |
|
|
149
152
|
|
|
150
153
|
Each language parser extracts functions, classes, methods, parameters, inheritance relationships, function calls, and imports to build a comprehensive code graph.
|
|
151
154
|
|
|
@@ -155,18 +158,30 @@ Each language parser extracts functions, classes, methods, parameters, inheritan
|
|
|
155
158
|
|
|
156
159
|
CodeGraphContext supports multiple graph database backends to suit your environment:
|
|
157
160
|
|
|
158
|
-
| Feature |
|
|
161
|
+
| Feature | KuzuDB | FalkorDB Lite | Neo4j / Nornic DB |
|
|
159
162
|
| :--- | :--- | :--- | :--- |
|
|
160
|
-
| **Typical default** | **Standard Default** (embedded,
|
|
163
|
+
| **Typical default** | **Standard Default** (embedded, powered by KuzuDB) | **Unix** (Python 3.12+, when `falkordblite` works) | When explicitly configured |
|
|
161
164
|
| **Setup** | Zero-config / Embedded | Zero-config / In-process | Docker / External |
|
|
162
165
|
| **Platform** | **All (Windows Native, macOS, Linux)** | Unix-only (Linux/macOS/WSL) | All Platforms |
|
|
163
166
|
| **Use Case** | Desktop, IDE, Local development | Specialized Unix development | Enterprise, Massive graphs |
|
|
164
|
-
| **Requirement**| `pip install
|
|
167
|
+
| **Requirement**| `pip install kuzu` | `pip install falkordblite` | Neo4j Server / Docker / Nornic Cloud |
|
|
165
168
|
| **Speed** | ⚡ Extremely Fast | ⚡ Fast | 🚀 Scalable |
|
|
166
169
|
| **Persistence**| Yes (to disk) | Yes (to disk) | Yes (to disk) |
|
|
167
170
|
|
|
168
171
|
---
|
|
169
172
|
|
|
173
|
+
## SCIP indexing (optional)
|
|
174
|
+
|
|
175
|
+
When `SCIP_INDEXER=true` in your CGC config (`~/.codegraphcontext/.env`), some languages use external **SCIP** indexers for more accurate calls and inheritance than Tree-sitter heuristics alone.
|
|
176
|
+
|
|
177
|
+
**C and C++** use **scip-clang**, which requires a **`compile_commands.json`** file (a [JSON compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html)): one entry per translation unit with the real compiler command (include paths, `-D` defines, `-std`, etc.). Without it, scip-clang cannot run; CGC logs a warning and **falls back to Tree-sitter** for that repo. Typical ways to produce the file: **CMake** with `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON`, or wrap your real build with **[Bear](https://github.com/rizsotto/Bear)** (e.g. `bear -- make`). CGC also looks under `build/` and `cmake-build-*/` for that filename.
|
|
178
|
+
|
|
179
|
+
**C#** uses **scip-dotnet** (Roslyn); you need a normal **`.csproj` / `.sln`** and a successful restore—no `compile_commands.json`.
|
|
180
|
+
|
|
181
|
+
SCIP is **independent of which graph database** you use (Kuzu, Neo4j, etc.); the same flag applies to all backends.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
170
185
|
## Used By
|
|
171
186
|
|
|
172
187
|
CodeGraphContext is already being explored by developers and projects for:
|
|
@@ -186,95 +201,42 @@ _If you’re using CodeGraphContext in your project, feel free to open a PR and
|
|
|
186
201
|
- `stdlibs>=2023.11.18`
|
|
187
202
|
- `typer>=0.9.0`
|
|
188
203
|
- `rich>=13.7.0`
|
|
189
|
-
- `inquirerpy>=0.3.
|
|
204
|
+
- `inquirerpy>=0.3.4`
|
|
190
205
|
- `python-dotenv>=1.0.0`
|
|
191
206
|
- `tree-sitter>=0.21.0` (not installed on Python 3.13)
|
|
192
207
|
- `tree-sitter-language-pack>=0.6.0` (not installed on Python 3.13)
|
|
193
208
|
- `pyyaml`
|
|
194
|
-
- `pytest`
|
|
195
|
-
- `nbformat`
|
|
196
|
-
- `nbconvert>=7.16.6`
|
|
197
209
|
- `pathspec>=0.12.1`
|
|
210
|
+
- `falkordb>=0.1.0`
|
|
211
|
+
- `falkordblite>=0.1.0` (Unix only)
|
|
212
|
+
- `kuzu` (KuzuDB engine)
|
|
213
|
+
- `fastapi>=0.100.0`
|
|
214
|
+
- `uvicorn>=0.22.0`
|
|
215
|
+
- `requests>=2.28.0`
|
|
216
|
+
- `protobuf>=3.20,<3.21`
|
|
198
217
|
|
|
199
218
|
**Note:** Python 3.10-3.14 is supported.
|
|
200
219
|
|
|
201
220
|
---
|
|
202
221
|
|
|
203
|
-
|
|
204
|
-
### Install the core toolkit
|
|
205
|
-
```
|
|
206
|
-
pip install codegraphcontext
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### If 'codegraphcontext' command isn't found, run our one-line fix:
|
|
210
|
-
```
|
|
211
|
-
curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## Getting Started
|
|
222
|
+
### 🚀 Installation & Quick Start
|
|
217
223
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
Use CodeGraphContext as a **powerful command-line toolkit** for code analysis:
|
|
223
|
-
- Index and analyze codebases directly from your terminal
|
|
224
|
-
- Query code relationships, find dead code, analyze complexity
|
|
225
|
-
- Visualize code graphs and dependencies
|
|
226
|
-
- Perfect for developers who want direct control via CLI commands
|
|
227
|
-
|
|
228
|
-
#### 🤖 Mode 2: MCP Server (AI-Powered)
|
|
229
|
-
Use CodeGraphContext as an **MCP server** for AI assistants:
|
|
230
|
-
- Connect to AI IDEs (VS Code, Cursor, Windsurf, Claude, Kiro, etc.)
|
|
231
|
-
- Let AI agents query your codebase using natural language
|
|
232
|
-
- Automatic code understanding and relationship analysis
|
|
233
|
-
- Perfect for AI-assisted development workflows
|
|
234
|
-
|
|
235
|
-
**You can use both modes!** Install once, then use CLI commands directly OR connect to your AI assistant.
|
|
236
|
-
|
|
237
|
-
### Installation (Both Modes)
|
|
224
|
+
1. **Install the toolkit:**
|
|
225
|
+
```bash
|
|
226
|
+
pip install codegraphcontext
|
|
227
|
+
```
|
|
238
228
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
<summary>⚙️ Troubleshooting: In case, command <code>codegraphcontext</code> not found</summary>
|
|
242
|
-
<br>
|
|
243
|
-
If you encounter <i>"codegraphcontext: command not found"</i> after installation, run the PATH fix script:
|
|
244
|
-
|
|
245
|
-
**Linux/Mac:**
|
|
229
|
+
2. **Troubleshooting (Command not found):**
|
|
230
|
+
If the `codegraphcontext` command is not found, run this one-line fix:
|
|
246
231
|
```bash
|
|
247
|
-
|
|
248
|
-
curl -O https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh
|
|
249
|
-
|
|
250
|
-
# Make it executable
|
|
251
|
-
chmod +x post_install_fix.sh
|
|
252
|
-
|
|
253
|
-
# Run the script
|
|
254
|
-
./post_install_fix.sh
|
|
255
|
-
|
|
256
|
-
# Restart your terminal or reload shell config
|
|
257
|
-
source ~/.bashrc # or ~/.zshrc for zsh users
|
|
232
|
+
curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
|
|
258
233
|
```
|
|
259
|
-
|
|
260
|
-
**Windows (PowerShell):**
|
|
261
|
-
```powershell
|
|
262
|
-
# Download the fix script
|
|
263
|
-
curl -O https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh
|
|
264
|
-
|
|
265
|
-
# Run with bash (requires Git Bash or WSL)
|
|
266
|
-
bash post_install_fix.sh
|
|
267
|
-
|
|
268
|
-
# Restart PowerShell or reload profile
|
|
269
|
-
. $PROFILE
|
|
270
|
-
```
|
|
271
|
-
</details>
|
|
272
234
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
- **
|
|
276
|
-
- **FalkorDB Lite
|
|
277
|
-
- **Neo4j
|
|
235
|
+
3. **Database Setup (Automatic):**
|
|
236
|
+
CodeGraphContext uses an embedded graph database by default.
|
|
237
|
+
- **KuzuDB:** Default for all platforms.
|
|
238
|
+
- **FalkorDB Lite:** Preferred on Unix/macOS if available.
|
|
239
|
+
- **Neo4j:** Run `codegraphcontext neo4j setup` to use an external server.
|
|
278
240
|
|
|
279
241
|
---
|
|
280
242
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "codegraphcontext"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.9"
|
|
4
4
|
description = "An MCP server that indexes local code into a graph database to provide context to AI assistants."
|
|
5
5
|
authors = [{ name = "Shashank Shekhar Singh", email = "shashankshekharsingh1205@gmail.com" }]
|
|
6
6
|
readme = "README.md"
|
|
@@ -22,8 +22,8 @@ dependencies = [
|
|
|
22
22
|
"rich>=13.7.0",
|
|
23
23
|
"inquirerpy>=0.3.4",
|
|
24
24
|
"python-dotenv>=1.0.0",
|
|
25
|
-
"tree-sitter>=0.21.0; python_version != '3.13'",
|
|
26
|
-
"tree-sitter-language-pack>=0.6.0
|
|
25
|
+
"tree-sitter>=0.21.0,<0.26.0; python_version != '3.13'",
|
|
26
|
+
"tree-sitter-language-pack>=0.6.0,<1.0.0; python_version != '3.13'",
|
|
27
27
|
"tree-sitter-c-sharp>=0.21.0; python_version != '3.13'",
|
|
28
28
|
"pyyaml",
|
|
29
29
|
"nbformat",
|
|
@@ -40,8 +40,8 @@ dependencies = [
|
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
42
|
parsing = [
|
|
43
|
-
"tree-sitter>=0.21.0; python_version != '3.13'",
|
|
44
|
-
"tree-sitter-language-pack>=0.6.0
|
|
43
|
+
"tree-sitter>=0.21.0,<0.26.0; python_version != '3.13'",
|
|
44
|
+
"tree-sitter-language-pack>=0.6.0,<1.0.0; python_version != '3.13'",
|
|
45
45
|
"tree-sitter-c-sharp>=0.21.0; python_version != '3.13'",
|
|
46
46
|
]
|
|
47
47
|
dev = [
|
|
@@ -2,10 +2,12 @@ import asyncio
|
|
|
2
2
|
import json
|
|
3
3
|
import uuid
|
|
4
4
|
import urllib.parse
|
|
5
|
+
from collections import Counter
|
|
5
6
|
from pathlib import Path
|
|
6
7
|
import time
|
|
7
8
|
import os
|
|
8
9
|
from typing import Optional, List, Dict, Any
|
|
10
|
+
import typer
|
|
9
11
|
from rich.console import Console
|
|
10
12
|
from rich.table import Table
|
|
11
13
|
from rich.progress import (
|
|
@@ -31,6 +33,31 @@ from .config_manager import resolve_context, ResolvedContext, register_repo_in_c
|
|
|
31
33
|
console = Console()
|
|
32
34
|
|
|
33
35
|
|
|
36
|
+
def _print_call_resolution_diagnostics(graph_builder: GraphBuilder, limit: int = 5) -> None:
|
|
37
|
+
diagnostics = getattr(graph_builder, "last_call_resolution_diagnostics", [])
|
|
38
|
+
if not diagnostics:
|
|
39
|
+
return
|
|
40
|
+
|
|
41
|
+
reason_counts = Counter(d.get("reason", "unknown") for d in diagnostics)
|
|
42
|
+
summary = ", ".join(
|
|
43
|
+
f"{reason}={count}" for reason, count in reason_counts.most_common()
|
|
44
|
+
)
|
|
45
|
+
console.print(
|
|
46
|
+
f"[yellow]Skipped {len(diagnostics)} unresolved call relationship(s): {summary}[/yellow]"
|
|
47
|
+
)
|
|
48
|
+
table = Table(show_header=True, header_style="bold magenta")
|
|
49
|
+
table.add_column("Call", style="cyan", overflow="fold")
|
|
50
|
+
table.add_column("Reason", style="yellow")
|
|
51
|
+
table.add_column("Location", style="dim", overflow="fold")
|
|
52
|
+
for diagnostic in diagnostics[:limit]:
|
|
53
|
+
table.add_row(
|
|
54
|
+
str(diagnostic.get("full_call_name") or ""),
|
|
55
|
+
str(diagnostic.get("reason") or ""),
|
|
56
|
+
f"{diagnostic.get('caller_file_path')}:{diagnostic.get('line_number')}",
|
|
57
|
+
)
|
|
58
|
+
console.print(table)
|
|
59
|
+
|
|
60
|
+
|
|
34
61
|
def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, Any, Any, ResolvedContext]:
|
|
35
62
|
"""
|
|
36
63
|
Initializes and returns core service managers based on the resolved context.
|
|
@@ -60,8 +87,9 @@ def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, A
|
|
|
60
87
|
):
|
|
61
88
|
os.environ["DEFAULT_DATABASE"] = ctx.database
|
|
62
89
|
|
|
63
|
-
# Pass the exact DB path resolved from the context
|
|
64
|
-
|
|
90
|
+
# Pass the exact DB path resolved from the context, or the runtime override
|
|
91
|
+
runtime_path = os.getenv("CGC_RUNTIME_DB_PATH")
|
|
92
|
+
db_manager = get_database_manager(db_path=runtime_path or ctx.db_path)
|
|
65
93
|
except ValueError as e:
|
|
66
94
|
console.print(f"[bold red]Database Configuration Error:[/bold red] {e}")
|
|
67
95
|
return None, None, None, ctx
|
|
@@ -243,6 +271,7 @@ def index_helper(path: str, context: Optional[str] = None):
|
|
|
243
271
|
asyncio.run(_run_index_with_progress(graph_builder, path_obj, is_dependency=False, cgcignore_path=ctx.cgcignore_path))
|
|
244
272
|
time_end = time.time()
|
|
245
273
|
elapsed = time_end - time_start
|
|
274
|
+
_print_call_resolution_diagnostics(graph_builder)
|
|
246
275
|
console.print(f"[green]Successfully finished indexing: {path} in {elapsed:.2f} seconds[/green]")
|
|
247
276
|
|
|
248
277
|
# Check if auto-watch is enabled
|
|
@@ -259,6 +288,7 @@ def index_helper(path: str, context: Optional[str] = None):
|
|
|
259
288
|
|
|
260
289
|
except Exception as e:
|
|
261
290
|
console.print(f"[bold red]An error occurred during indexing:[/bold red] {e}")
|
|
291
|
+
raise typer.Exit(code=1)
|
|
262
292
|
finally:
|
|
263
293
|
db_manager.close_driver()
|
|
264
294
|
|
|
@@ -289,6 +319,7 @@ def add_package_helper(package_name: str, language: str, context: Optional[str]
|
|
|
289
319
|
|
|
290
320
|
try:
|
|
291
321
|
asyncio.run(_run_index_with_progress(graph_builder, package_path, is_dependency=True, cgcignore_path=ctx.cgcignore_path))
|
|
322
|
+
_print_call_resolution_diagnostics(graph_builder)
|
|
292
323
|
console.print(f"[green]Successfully finished indexing package: {package_name}[/green]")
|
|
293
324
|
except Exception as e:
|
|
294
325
|
console.print(f"[bold red]An error occurred during package indexing:[/bold red] {e}")
|
|
@@ -354,9 +385,11 @@ def cypher_helper(query: str, context: Optional[str] = None):
|
|
|
354
385
|
|
|
355
386
|
db_manager, _, _, ctx = services
|
|
356
387
|
|
|
357
|
-
# Replicating safety checks from MCPServer
|
|
388
|
+
# Replicating safety checks from MCPServer (using word boundaries to avoid false positives like 'createEmail')
|
|
389
|
+
import re
|
|
358
390
|
forbidden_keywords = ['CREATE', 'MERGE', 'DELETE', 'SET', 'REMOVE', 'DROP', 'CALL apoc']
|
|
359
|
-
|
|
391
|
+
pattern = r'\b(' + '|'.join(forbidden_keywords) + r')\b'
|
|
392
|
+
if re.search(pattern, query, re.IGNORECASE):
|
|
360
393
|
console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
|
|
361
394
|
db_manager.close_driver()
|
|
362
395
|
return
|
|
@@ -382,9 +415,11 @@ def cypher_helper_visual(query: str, context: Optional[str] = None):
|
|
|
382
415
|
|
|
383
416
|
db_manager, _, _, ctx = services
|
|
384
417
|
|
|
385
|
-
# Replicating safety checks from MCPServer
|
|
418
|
+
# Replicating safety checks from MCPServer (using word boundaries to avoid false positives like 'createEmail')
|
|
419
|
+
import re
|
|
386
420
|
forbidden_keywords = ['CREATE', 'MERGE', 'DELETE', 'SET', 'REMOVE', 'DROP', 'CALL apoc']
|
|
387
|
-
|
|
421
|
+
pattern = r'\b(' + '|'.join(forbidden_keywords) + r')\b'
|
|
422
|
+
if re.search(pattern, query, re.IGNORECASE):
|
|
388
423
|
console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
|
|
389
424
|
db_manager.close_driver()
|
|
390
425
|
return
|
|
@@ -540,9 +575,11 @@ def reindex_helper(path: str, context: Optional[str] = None):
|
|
|
540
575
|
asyncio.run(_run_index_with_progress(graph_builder, path_obj, is_dependency=False, cgcignore_path=ctx.cgcignore_path))
|
|
541
576
|
time_end = time.time()
|
|
542
577
|
elapsed = time_end - time_start
|
|
578
|
+
_print_call_resolution_diagnostics(graph_builder)
|
|
543
579
|
console.print(f"[green]Successfully re-indexed: {path} in {elapsed:.2f} seconds[/green]")
|
|
544
580
|
except Exception as e:
|
|
545
581
|
console.print(f"[bold red]An error occurred during re-indexing:[/bold red] {e}")
|
|
582
|
+
raise typer.Exit(code=1)
|
|
546
583
|
finally:
|
|
547
584
|
db_manager.close_driver()
|
|
548
585
|
|
|
@@ -669,6 +706,12 @@ def stats_helper(path: str = None, context: Optional[str] = None):
|
|
|
669
706
|
class_count = session.run("MATCH (c:Class) RETURN count(c) as c").single()["c"]
|
|
670
707
|
module_count = session.run("MATCH (m:Module) RETURN count(m) as c").single()["c"]
|
|
671
708
|
|
|
709
|
+
# Extended node types (PHP, Rust, Go, etc.)
|
|
710
|
+
interface_count = session.run("MATCH (i:Interface) RETURN count(i) as c").single()["c"]
|
|
711
|
+
trait_count = session.run("MATCH (t:Trait) RETURN count(t) as c").single()["c"]
|
|
712
|
+
struct_count = session.run("MATCH (s:Struct) RETURN count(s) as c").single()["c"]
|
|
713
|
+
enum_count = session.run("MATCH (e:Enum) RETURN count(e) as c").single()["c"]
|
|
714
|
+
|
|
672
715
|
table = Table(show_header=True, header_style="bold magenta")
|
|
673
716
|
table.add_column("Metric", style="cyan")
|
|
674
717
|
table.add_column("Count", style="green", justify="right")
|
|
@@ -677,6 +720,14 @@ def stats_helper(path: str = None, context: Optional[str] = None):
|
|
|
677
720
|
table.add_row("Files", str(file_count))
|
|
678
721
|
table.add_row("Functions", str(func_count))
|
|
679
722
|
table.add_row("Classes", str(class_count))
|
|
723
|
+
if interface_count > 0:
|
|
724
|
+
table.add_row("Interfaces", str(interface_count))
|
|
725
|
+
if trait_count > 0:
|
|
726
|
+
table.add_row("Traits", str(trait_count))
|
|
727
|
+
if struct_count > 0:
|
|
728
|
+
table.add_row("Structs", str(struct_count))
|
|
729
|
+
if enum_count > 0:
|
|
730
|
+
table.add_row("Enums", str(enum_count))
|
|
680
731
|
table.add_row("Modules", str(module_count))
|
|
681
732
|
|
|
682
733
|
console.print(table)
|