codegraphcontext 0.4.7__tar.gz → 0.4.8__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.8}/PKG-INFO +49 -87
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/README.md +44 -82
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/pyproject.toml +5 -5
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/cli_helpers.py +54 -4
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/config_manager.py +3 -3
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/main.py +90 -9
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/__init__.py +3 -3
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_kuzu.py +57 -9
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/code_finder.py +172 -28
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/graph_builder.py +61 -12
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/analysis_handlers.py +2 -2
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/discovery.py +26 -2
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/persistence/writer.py +154 -154
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/pipeline.py +16 -3
- codegraphcontext-0.4.8/src/codegraphcontext/tools/indexing/resolution/calls.py +2453 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +26 -15
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/schema.py +22 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/scip_pipeline.py +69 -5
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/java.py +143 -8
- codegraphcontext-0.4.8/src/codegraphcontext/tools/languages/kotlin.py +2158 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/php.py +18 -14
- codegraphcontext-0.4.8/src/codegraphcontext/tools/scip_indexer.py +752 -0
- codegraphcontext-0.4.8/src/codegraphcontext/tools/type_utils.py +12 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/tree_sitter_manager.py +86 -35
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8/src/codegraphcontext.egg-info}/PKG-INFO +49 -87
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/SOURCES.txt +1 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/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/languages/kotlin.py +0 -640
- codegraphcontext-0.4.7/src/codegraphcontext/tools/scip_indexer.py +0 -599
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/LICENSE +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/MANIFEST.in +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/setup.cfg +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/__main__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/registry_commands.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/setup_macos.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/setup_wizard.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/visualizer.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/bundle_registry.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/cgc_bundle.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/cgcignore.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_falkordb.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_nornic.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/falkor_worker.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/jobs.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/watcher.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/prompts.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/server.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tool_definitions.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/advanced_language_query_tool.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/indexing_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/constants.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/pre_scan.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/c.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/cpp.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/csharp.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/css.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/dart.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/elixir.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/go.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/gradle.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/haskell.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/html.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/javascript.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/lua.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/maven.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/perl.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/python.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/ruby.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/rust.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/scala.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/swift.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/typescript.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/package_resolver.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/report_generator.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/scip_pb2.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/system.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/debug_log.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/git_utils.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/path_ignore.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/repo_path.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/tool_limits.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/visualize_graph.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/index-BJT3EMmQ.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/index-DjDPHWki.css +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/parser.worker-CZgm11E5.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/index.html +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/robots.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/server.py +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/top_level.txt +0 -0
- {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/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.8
|
|
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.8
|
|
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.8
|
|
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.8"
|
|
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.
|
|
@@ -243,6 +270,7 @@ def index_helper(path: str, context: Optional[str] = None):
|
|
|
243
270
|
asyncio.run(_run_index_with_progress(graph_builder, path_obj, is_dependency=False, cgcignore_path=ctx.cgcignore_path))
|
|
244
271
|
time_end = time.time()
|
|
245
272
|
elapsed = time_end - time_start
|
|
273
|
+
_print_call_resolution_diagnostics(graph_builder)
|
|
246
274
|
console.print(f"[green]Successfully finished indexing: {path} in {elapsed:.2f} seconds[/green]")
|
|
247
275
|
|
|
248
276
|
# Check if auto-watch is enabled
|
|
@@ -259,6 +287,7 @@ def index_helper(path: str, context: Optional[str] = None):
|
|
|
259
287
|
|
|
260
288
|
except Exception as e:
|
|
261
289
|
console.print(f"[bold red]An error occurred during indexing:[/bold red] {e}")
|
|
290
|
+
raise typer.Exit(code=1)
|
|
262
291
|
finally:
|
|
263
292
|
db_manager.close_driver()
|
|
264
293
|
|
|
@@ -289,6 +318,7 @@ def add_package_helper(package_name: str, language: str, context: Optional[str]
|
|
|
289
318
|
|
|
290
319
|
try:
|
|
291
320
|
asyncio.run(_run_index_with_progress(graph_builder, package_path, is_dependency=True, cgcignore_path=ctx.cgcignore_path))
|
|
321
|
+
_print_call_resolution_diagnostics(graph_builder)
|
|
292
322
|
console.print(f"[green]Successfully finished indexing package: {package_name}[/green]")
|
|
293
323
|
except Exception as e:
|
|
294
324
|
console.print(f"[bold red]An error occurred during package indexing:[/bold red] {e}")
|
|
@@ -354,9 +384,11 @@ def cypher_helper(query: str, context: Optional[str] = None):
|
|
|
354
384
|
|
|
355
385
|
db_manager, _, _, ctx = services
|
|
356
386
|
|
|
357
|
-
# Replicating safety checks from MCPServer
|
|
387
|
+
# Replicating safety checks from MCPServer (using word boundaries to avoid false positives like 'createEmail')
|
|
388
|
+
import re
|
|
358
389
|
forbidden_keywords = ['CREATE', 'MERGE', 'DELETE', 'SET', 'REMOVE', 'DROP', 'CALL apoc']
|
|
359
|
-
|
|
390
|
+
pattern = r'\b(' + '|'.join(forbidden_keywords) + r')\b'
|
|
391
|
+
if re.search(pattern, query, re.IGNORECASE):
|
|
360
392
|
console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
|
|
361
393
|
db_manager.close_driver()
|
|
362
394
|
return
|
|
@@ -382,9 +414,11 @@ def cypher_helper_visual(query: str, context: Optional[str] = None):
|
|
|
382
414
|
|
|
383
415
|
db_manager, _, _, ctx = services
|
|
384
416
|
|
|
385
|
-
# Replicating safety checks from MCPServer
|
|
417
|
+
# Replicating safety checks from MCPServer (using word boundaries to avoid false positives like 'createEmail')
|
|
418
|
+
import re
|
|
386
419
|
forbidden_keywords = ['CREATE', 'MERGE', 'DELETE', 'SET', 'REMOVE', 'DROP', 'CALL apoc']
|
|
387
|
-
|
|
420
|
+
pattern = r'\b(' + '|'.join(forbidden_keywords) + r')\b'
|
|
421
|
+
if re.search(pattern, query, re.IGNORECASE):
|
|
388
422
|
console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
|
|
389
423
|
db_manager.close_driver()
|
|
390
424
|
return
|
|
@@ -540,9 +574,11 @@ def reindex_helper(path: str, context: Optional[str] = None):
|
|
|
540
574
|
asyncio.run(_run_index_with_progress(graph_builder, path_obj, is_dependency=False, cgcignore_path=ctx.cgcignore_path))
|
|
541
575
|
time_end = time.time()
|
|
542
576
|
elapsed = time_end - time_start
|
|
577
|
+
_print_call_resolution_diagnostics(graph_builder)
|
|
543
578
|
console.print(f"[green]Successfully re-indexed: {path} in {elapsed:.2f} seconds[/green]")
|
|
544
579
|
except Exception as e:
|
|
545
580
|
console.print(f"[bold red]An error occurred during re-indexing:[/bold red] {e}")
|
|
581
|
+
raise typer.Exit(code=1)
|
|
546
582
|
finally:
|
|
547
583
|
db_manager.close_driver()
|
|
548
584
|
|
|
@@ -669,6 +705,12 @@ def stats_helper(path: str = None, context: Optional[str] = None):
|
|
|
669
705
|
class_count = session.run("MATCH (c:Class) RETURN count(c) as c").single()["c"]
|
|
670
706
|
module_count = session.run("MATCH (m:Module) RETURN count(m) as c").single()["c"]
|
|
671
707
|
|
|
708
|
+
# Extended node types (PHP, Rust, Go, etc.)
|
|
709
|
+
interface_count = session.run("MATCH (i:Interface) RETURN count(i) as c").single()["c"]
|
|
710
|
+
trait_count = session.run("MATCH (t:Trait) RETURN count(t) as c").single()["c"]
|
|
711
|
+
struct_count = session.run("MATCH (s:Struct) RETURN count(s) as c").single()["c"]
|
|
712
|
+
enum_count = session.run("MATCH (e:Enum) RETURN count(e) as c").single()["c"]
|
|
713
|
+
|
|
672
714
|
table = Table(show_header=True, header_style="bold magenta")
|
|
673
715
|
table.add_column("Metric", style="cyan")
|
|
674
716
|
table.add_column("Count", style="green", justify="right")
|
|
@@ -677,6 +719,14 @@ def stats_helper(path: str = None, context: Optional[str] = None):
|
|
|
677
719
|
table.add_row("Files", str(file_count))
|
|
678
720
|
table.add_row("Functions", str(func_count))
|
|
679
721
|
table.add_row("Classes", str(class_count))
|
|
722
|
+
if interface_count > 0:
|
|
723
|
+
table.add_row("Interfaces", str(interface_count))
|
|
724
|
+
if trait_count > 0:
|
|
725
|
+
table.add_row("Traits", str(trait_count))
|
|
726
|
+
if struct_count > 0:
|
|
727
|
+
table.add_row("Structs", str(struct_count))
|
|
728
|
+
if enum_count > 0:
|
|
729
|
+
table.add_row("Enums", str(enum_count))
|
|
680
730
|
table.add_row("Modules", str(module_count))
|
|
681
731
|
|
|
682
732
|
console.print(table)
|
{codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/config_manager.py
RENAMED
|
@@ -48,7 +48,7 @@ DEFAULT_CONFIG = {
|
|
|
48
48
|
"INDEX_SOURCE": "true",
|
|
49
49
|
# SCIP indexer feature flag (default off — existing Tree-sitter behaviour unchanged)
|
|
50
50
|
"SCIP_INDEXER": "false",
|
|
51
|
-
"SCIP_LANGUAGES": "python,typescript,go,rust,java",
|
|
51
|
+
"SCIP_LANGUAGES": "python,typescript,javascript,go,rust,java,dart,cpp,c,csharp",
|
|
52
52
|
"SKIP_EXTERNAL_RESOLUTION": "false",
|
|
53
53
|
# 0 = unlimited; any positive integer caps MCP tool response size.
|
|
54
54
|
"MAX_TOOL_RESPONSE_TOKENS": "0",
|
|
@@ -85,7 +85,7 @@ CONFIG_DESCRIPTIONS = {
|
|
|
85
85
|
"IGNORE_DIRS": "Comma-separated list of directory names to ignore during indexing",
|
|
86
86
|
"INDEX_SOURCE": "Store full source code in graph database (for faster indexing use false, for better performance use true)",
|
|
87
87
|
"SCIP_INDEXER": "Use SCIP-based indexing for higher accuracy call/inheritance resolution (requires scip-<lang> tools installed)",
|
|
88
|
-
"SCIP_LANGUAGES": "Comma-separated languages to index via SCIP when SCIP_INDEXER=true (python,typescript,go,rust,java)",
|
|
88
|
+
"SCIP_LANGUAGES": "Comma-separated languages to index via SCIP when SCIP_INDEXER=true (python,typescript,javascript,go,rust,java,dart,cpp,c,csharp)",
|
|
89
89
|
"SKIP_EXTERNAL_RESOLUTION": "Skip resolution attempts for external library method calls (recommended for enterprise large Java/Spring codebases)",
|
|
90
90
|
"MAX_TOOL_RESPONSE_TOKENS": "Maximum tokens per MCP tool response (0 = unlimited). Truncates oversized payloads and appends a notice.",
|
|
91
91
|
"TOOL_RESULT_LIMITS": "JSON object mapping tool names to max result counts, e.g. {\"find_code\": 20, \"analyze_code_relationships\": 10}. Missing keys use built-in defaults.",
|
|
@@ -859,7 +859,7 @@ def resolve_context(
|
|
|
859
859
|
)
|
|
860
860
|
|
|
861
861
|
# --- 4. Global fallback ---
|
|
862
|
-
db = load_config().get("DEFAULT_DATABASE", "falkordb")
|
|
862
|
+
db = os.getenv("CGC_RUNTIME_DB_TYPE") or load_config().get("DEFAULT_DATABASE", "falkordb")
|
|
863
863
|
return ResolvedContext(
|
|
864
864
|
mode="global",
|
|
865
865
|
context_name="",
|