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.
Files changed (160) hide show
  1. {codegraphcontext-0.4.7/src/codegraphcontext.egg-info → codegraphcontext-0.4.8}/PKG-INFO +49 -87
  2. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/README.md +44 -82
  3. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/pyproject.toml +5 -5
  4. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/cli_helpers.py +54 -4
  5. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/config_manager.py +3 -3
  6. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/main.py +90 -9
  7. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/__init__.py +3 -3
  8. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_kuzu.py +57 -9
  9. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/code_finder.py +172 -28
  10. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/graph_builder.py +61 -12
  11. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/analysis_handlers.py +2 -2
  12. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/discovery.py +26 -2
  13. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/persistence/writer.py +154 -154
  14. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/pipeline.py +16 -3
  15. codegraphcontext-0.4.8/src/codegraphcontext/tools/indexing/resolution/calls.py +2453 -0
  16. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +26 -15
  17. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/schema.py +22 -0
  18. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/scip_pipeline.py +69 -5
  19. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/java.py +143 -8
  20. codegraphcontext-0.4.8/src/codegraphcontext/tools/languages/kotlin.py +2158 -0
  21. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/php.py +18 -14
  22. codegraphcontext-0.4.8/src/codegraphcontext/tools/scip_indexer.py +752 -0
  23. codegraphcontext-0.4.8/src/codegraphcontext/tools/type_utils.py +12 -0
  24. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/tree_sitter_manager.py +86 -35
  25. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8/src/codegraphcontext.egg-info}/PKG-INFO +49 -87
  26. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/SOURCES.txt +1 -0
  27. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/requires.txt +4 -4
  28. codegraphcontext-0.4.7/src/codegraphcontext/tools/indexing/resolution/calls.py +0 -323
  29. codegraphcontext-0.4.7/src/codegraphcontext/tools/languages/kotlin.py +0 -640
  30. codegraphcontext-0.4.7/src/codegraphcontext/tools/scip_indexer.py +0 -599
  31. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/LICENSE +0 -0
  32. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/MANIFEST.in +0 -0
  33. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/setup.cfg +0 -0
  34. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/__init__.py +0 -0
  35. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/__main__.py +0 -0
  36. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/__init__.py +0 -0
  37. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/registry_commands.py +0 -0
  38. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/setup_macos.py +0 -0
  39. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/setup_wizard.py +0 -0
  40. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/cli/visualizer.py +0 -0
  41. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/bundle_registry.py +0 -0
  42. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/cgc_bundle.py +0 -0
  43. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/cgcignore.py +0 -0
  44. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database.py +0 -0
  45. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_falkordb.py +0 -0
  46. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
  47. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/database_nornic.py +0 -0
  48. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/falkor_worker.py +0 -0
  49. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/jobs.py +0 -0
  50. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/core/watcher.py +0 -0
  51. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/prompts.py +0 -0
  52. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/server.py +0 -0
  53. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tool_definitions.py +0 -0
  54. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/__init__.py +0 -0
  55. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/advanced_language_query_tool.py +0 -0
  56. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
  57. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
  58. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
  59. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
  60. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/indexing_handlers.py +0 -0
  61. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
  62. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
  63. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
  64. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
  65. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/constants.py +0 -0
  66. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
  67. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
  68. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/pre_scan.py +0 -0
  69. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
  70. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
  71. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
  72. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
  73. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
  74. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/c.py +0 -0
  75. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/cpp.py +0 -0
  76. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/csharp.py +0 -0
  77. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/css.py +0 -0
  78. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/dart.py +0 -0
  79. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/elixir.py +0 -0
  80. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/go.py +0 -0
  81. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/gradle.py +0 -0
  82. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/haskell.py +0 -0
  83. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/html.py +0 -0
  84. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/javascript.py +0 -0
  85. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/lua.py +0 -0
  86. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/maven.py +0 -0
  87. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
  88. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/perl.py +0 -0
  89. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/python.py +0 -0
  90. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/ruby.py +0 -0
  91. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/rust.py +0 -0
  92. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/scala.py +0 -0
  93. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/swift.py +0 -0
  94. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/typescript.py +0 -0
  95. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
  96. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/package_resolver.py +0 -0
  97. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
  98. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
  99. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
  100. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
  101. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
  102. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
  103. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
  104. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
  105. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
  106. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
  107. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
  108. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
  109. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
  110. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
  111. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
  112. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/report_generator.py +0 -0
  113. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/scip_pb2.py +0 -0
  114. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/system.py +0 -0
  115. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
  116. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/debug_log.py +0 -0
  117. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/git_utils.py +0 -0
  118. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/path_ignore.py +0 -0
  119. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/repo_path.py +0 -0
  120. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/tool_limits.py +0 -0
  121. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/utils/visualize_graph.py +0 -0
  122. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
  123. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
  124. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
  125. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
  126. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
  127. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/index-BJT3EMmQ.js +0 -0
  128. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/index-DjDPHWki.css +0 -0
  129. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/parser.worker-CZgm11E5.js +0 -0
  130. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
  131. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
  132. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/index.html +0 -0
  133. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
  134. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
  135. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/robots.txt +0 -0
  136. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
  137. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
  138. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
  139. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
  140. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
  141. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
  142. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
  143. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
  144. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
  145. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
  146. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
  147. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
  148. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
  149. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
  150. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
  151. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
  152. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
  153. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
  154. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
  155. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
  156. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext/viz/server.py +0 -0
  157. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
  158. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
  159. {codegraphcontext-0.4.7 → codegraphcontext-0.4.8}/src/codegraphcontext.egg-info/top_level.txt +0 -0
  160. {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.7
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>=0.21.0; python_version != "3.13"
47
- Requires-Dist: tree-sitter-language-pack!=1.6.3,>=0.6.0; python_version != "3.13"
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>=0.21.0; python_version != "3.13" and extra == "parsing"
62
- Requires-Dist: tree-sitter-language-pack!=1.6.3,>=0.6.0; python_version != "3.13" and extra == "parsing"
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://CodeGraphContext.github.io/CodeGraphContext/">
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.7
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](http://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 15 programming languages.
202
- - **Flexible Database Backend:** LadybugDB (Default), FalkorDB Lite (Typical Unix default), FalkorDB Remote, Nornic DB, or Neo4j (all platforms via Docker/native).
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 | LadybugDB | FalkorDB Lite | Neo4j / Nornic DB |
230
+ | Feature | KuzuDB | FalkorDB Lite | Neo4j / Nornic DB |
228
231
  | :--- | :--- | :--- | :--- |
229
- | **Typical default** | **Standard Default** (embedded, when `real_ladybug` is installed) | **Unix** (Python 3.12+, when `falkordblite` works) | When explicitly configured |
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 real_ladybug` | `pip install falkordblite` | Neo4j Server / Docker / Nornic Cloud |
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.7`
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
- ## Quick Start
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
- ### 📋 Understanding CodeGraphContext Modes
288
- CodeGraphContext operates in **two modes**, and you can use either or both:
289
-
290
- #### 🛠️ Mode 1: CLI Toolkit (Standalone)
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
- 1. **Install:** `pip install codegraphcontext`
309
- <details>
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
- # Download the fix script
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
- 2. **Database Setup (Automatic)**
343
-
344
- - **LadybugDB (Default):** Runs natively on Windows, macOS, and Linux. It is the primary embedded choice; `pip install real_ladybug` if needed.
345
- - **FalkorDB Lite (High Performance Unix):** When Python 3.12+ and `falkordblite` are available on Unix/macOS/WSL, the embedded backend prefers FalkorDB Lite for speed; otherwise LadybugDB is used.
346
- - **Neo4j (Alternative):** To use Neo4j instead, or if you prefer a server-based approach, run: `codegraphcontext neo4j setup`
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://CodeGraphContext.github.io/CodeGraphContext/">
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.7
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](http://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 15 programming languages.
133
- - **Flexible Database Backend:** LadybugDB (Default), FalkorDB Lite (Typical Unix default), FalkorDB Remote, Nornic DB, or Neo4j (all platforms via Docker/native).
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 | LadybugDB | FalkorDB Lite | Neo4j / Nornic DB |
161
+ | Feature | KuzuDB | FalkorDB Lite | Neo4j / Nornic DB |
159
162
  | :--- | :--- | :--- | :--- |
160
- | **Typical default** | **Standard Default** (embedded, when `real_ladybug` is installed) | **Unix** (Python 3.12+, when `falkordblite` works) | When explicitly configured |
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 real_ladybug` | `pip install falkordblite` | Neo4j Server / Docker / Nornic Cloud |
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.7`
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
- ## Quick Start
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
- ### 📋 Understanding CodeGraphContext Modes
219
- CodeGraphContext operates in **two modes**, and you can use either or both:
220
-
221
- #### 🛠️ Mode 1: CLI Toolkit (Standalone)
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
- 1. **Install:** `pip install codegraphcontext`
240
- <details>
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
- # Download the fix script
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
- 2. **Database Setup (Automatic)**
274
-
275
- - **LadybugDB (Default):** Runs natively on Windows, macOS, and Linux. It is the primary embedded choice; `pip install real_ladybug` if needed.
276
- - **FalkorDB Lite (High Performance Unix):** When Python 3.12+ and `falkordblite` are available on Unix/macOS/WSL, the embedded backend prefers FalkorDB Lite for speed; otherwise LadybugDB is used.
277
- - **Neo4j (Alternative):** To use Neo4j instead, or if you prefer a server-based approach, run: `codegraphcontext neo4j setup`
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.7"
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,!=1.6.3; python_version != '3.13'",
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,!=1.6.3; python_version != '3.13'",
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
- if any(keyword in query.upper() for keyword in forbidden_keywords):
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
- if any(keyword in query.upper() for keyword in forbidden_keywords):
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)
@@ -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="",