codegraphcontext 0.4.7__tar.gz → 0.4.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. {codegraphcontext-0.4.7/src/codegraphcontext.egg-info → codegraphcontext-0.4.9}/PKG-INFO +49 -87
  2. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/README.md +44 -82
  3. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/pyproject.toml +5 -5
  4. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/cli_helpers.py +57 -6
  5. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/config_manager.py +13 -6
  6. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/main.py +101 -10
  7. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/__init__.py +3 -3
  8. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_falkordb.py +2 -2
  9. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_kuzu.py +101 -14
  10. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/server.py +45 -0
  11. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/code_finder.py +204 -42
  12. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/graph_builder.py +65 -12
  13. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/analysis_handlers.py +5 -4
  14. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/discovery.py +26 -2
  15. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/persistence/writer.py +314 -214
  16. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/pipeline.py +17 -4
  17. codegraphcontext-0.4.9/src/codegraphcontext/tools/indexing/resolution/calls.py +2496 -0
  18. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +34 -16
  19. codegraphcontext-0.4.9/src/codegraphcontext/tools/indexing/schema.py +108 -0
  20. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/scip_pipeline.py +69 -5
  21. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/c.py +86 -4
  22. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/cpp.py +109 -53
  23. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/csharp.py +23 -4
  24. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/css.py +2 -3
  25. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/dart.py +138 -80
  26. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/elixir.py +54 -9
  27. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/go.py +63 -2
  28. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/html.py +8 -8
  29. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/java.py +178 -19
  30. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/javascript.py +1 -0
  31. codegraphcontext-0.4.9/src/codegraphcontext/tools/languages/kotlin.py +2193 -0
  32. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/perl.py +26 -4
  33. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/php.py +24 -14
  34. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/python.py +7 -1
  35. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/ruby.py +20 -1
  36. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/rust.py +58 -39
  37. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/scala.py +19 -7
  38. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/swift.py +57 -53
  39. codegraphcontext-0.4.9/src/codegraphcontext/tools/scip_indexer.py +752 -0
  40. codegraphcontext-0.4.9/src/codegraphcontext/tools/type_utils.py +12 -0
  41. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/tree_sitter_manager.py +86 -35
  42. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9/src/codegraphcontext.egg-info}/PKG-INFO +49 -87
  43. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/SOURCES.txt +1 -0
  44. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/requires.txt +4 -4
  45. codegraphcontext-0.4.7/src/codegraphcontext/tools/indexing/resolution/calls.py +0 -323
  46. codegraphcontext-0.4.7/src/codegraphcontext/tools/indexing/schema.py +0 -79
  47. codegraphcontext-0.4.7/src/codegraphcontext/tools/languages/kotlin.py +0 -640
  48. codegraphcontext-0.4.7/src/codegraphcontext/tools/scip_indexer.py +0 -599
  49. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/LICENSE +0 -0
  50. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/MANIFEST.in +0 -0
  51. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/setup.cfg +0 -0
  52. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/__init__.py +0 -0
  53. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/__main__.py +0 -0
  54. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/__init__.py +0 -0
  55. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/registry_commands.py +0 -0
  56. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/setup_macos.py +0 -0
  57. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/setup_wizard.py +0 -0
  58. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/cli/visualizer.py +0 -0
  59. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/bundle_registry.py +0 -0
  60. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/cgc_bundle.py +0 -0
  61. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/cgcignore.py +0 -0
  62. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database.py +0 -0
  63. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
  64. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/database_nornic.py +0 -0
  65. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/falkor_worker.py +0 -0
  66. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/jobs.py +0 -0
  67. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/core/watcher.py +0 -0
  68. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/prompts.py +0 -0
  69. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tool_definitions.py +0 -0
  70. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/__init__.py +0 -0
  71. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/advanced_language_query_tool.py +0 -0
  72. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
  73. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
  74. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
  75. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
  76. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/indexing_handlers.py +0 -0
  77. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
  78. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
  79. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
  80. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
  81. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/constants.py +0 -0
  82. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
  83. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
  84. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/pre_scan.py +0 -0
  85. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
  86. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
  87. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
  88. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
  89. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
  90. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/gradle.py +0 -0
  91. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/haskell.py +0 -0
  92. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/lua.py +0 -0
  93. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/maven.py +0 -0
  94. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
  95. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/typescript.py +0 -0
  96. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
  97. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/package_resolver.py +0 -0
  98. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
  99. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
  100. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
  101. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
  102. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
  103. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
  104. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
  105. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
  106. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
  107. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
  108. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
  109. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
  110. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
  111. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
  112. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
  113. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/report_generator.py +0 -0
  114. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/scip_pb2.py +0 -0
  115. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/system.py +0 -0
  116. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
  117. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/debug_log.py +0 -0
  118. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/git_utils.py +0 -0
  119. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/path_ignore.py +0 -0
  120. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/repo_path.py +0 -0
  121. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/tool_limits.py +0 -0
  122. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/utils/visualize_graph.py +0 -0
  123. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
  124. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
  125. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
  126. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
  127. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
  128. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/index-BJT3EMmQ.js +0 -0
  129. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/index-DjDPHWki.css +0 -0
  130. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/parser.worker-CZgm11E5.js +0 -0
  131. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
  132. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
  133. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/index.html +0 -0
  134. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
  135. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
  136. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/robots.txt +0 -0
  137. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
  138. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
  139. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
  140. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
  141. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
  142. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
  143. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
  144. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
  145. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
  146. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
  147. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
  148. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
  149. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
  150. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
  151. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
  152. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
  153. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
  154. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
  155. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
  156. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
  157. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext/viz/server.py +0 -0
  158. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
  159. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
  160. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/src/codegraphcontext.egg-info/top_level.txt +0 -0
  161. {codegraphcontext-0.4.7 → codegraphcontext-0.4.9}/tests/test_issue_806_fix.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codegraphcontext
3
- Version: 0.4.7
3
+ Version: 0.4.9
4
4
  Summary: An MCP server that indexes local code into a graph database to provide context to AI assistants.
5
5
  Author-email: Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
6
6
  License: MIT License
@@ -43,8 +43,8 @@ Requires-Dist: typer>=0.9.0
43
43
  Requires-Dist: rich>=13.7.0
44
44
  Requires-Dist: inquirerpy>=0.3.4
45
45
  Requires-Dist: python-dotenv>=1.0.0
46
- Requires-Dist: tree-sitter>=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.9
170
171
  - **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
171
172
  - **License:** MIT License (See [LICENSE](LICENSE) for details)
172
173
  - **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
@@ -180,7 +181,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
180
181
  - 📧 Email: [shashankshekharsingh1205@gmail.com](mailto:shashankshekharsingh1205@gmail.com)
181
182
  - 🐙 GitHub: [@Shashankss1205](https://github.com/Shashankss1205)
182
183
  - 🔗 LinkedIn: [Shashank Shekhar Singh](https://www.linkedin.com/in/shashank-shekhar-singh-a67282228/)
183
- - 🌐 Website: [codegraphcontext.vercel.app](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.9
101
102
  - **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
102
103
  - **License:** MIT License (See [LICENSE](LICENSE) for details)
103
104
  - **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
@@ -111,7 +112,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
111
112
  - 📧 Email: [shashankshekharsingh1205@gmail.com](mailto:shashankshekharsingh1205@gmail.com)
112
113
  - 🐙 GitHub: [@Shashankss1205](https://github.com/Shashankss1205)
113
114
  - 🔗 LinkedIn: [Shashank Shekhar Singh](https://www.linkedin.com/in/shashank-shekhar-singh-a67282228/)
114
- - 🌐 Website: [codegraphcontext.vercel.app](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.9"
4
4
  description = "An MCP server that indexes local code into a graph database to provide context to AI assistants."
5
5
  authors = [{ name = "Shashank Shekhar Singh", email = "shashankshekharsingh1205@gmail.com" }]
6
6
  readme = "README.md"
@@ -22,8 +22,8 @@ dependencies = [
22
22
  "rich>=13.7.0",
23
23
  "inquirerpy>=0.3.4",
24
24
  "python-dotenv>=1.0.0",
25
- "tree-sitter>=0.21.0; python_version != '3.13'",
26
- "tree-sitter-language-pack>=0.6.0,!=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.
@@ -60,8 +87,9 @@ def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, A
60
87
  ):
61
88
  os.environ["DEFAULT_DATABASE"] = ctx.database
62
89
 
63
- # Pass the exact DB path resolved from the context
64
- db_manager = get_database_manager(db_path=ctx.db_path)
90
+ # Pass the exact DB path resolved from the context, or the runtime override
91
+ runtime_path = os.getenv("CGC_RUNTIME_DB_PATH")
92
+ db_manager = get_database_manager(db_path=runtime_path or ctx.db_path)
65
93
  except ValueError as e:
66
94
  console.print(f"[bold red]Database Configuration Error:[/bold red] {e}")
67
95
  return None, None, None, ctx
@@ -243,6 +271,7 @@ def index_helper(path: str, context: Optional[str] = None):
243
271
  asyncio.run(_run_index_with_progress(graph_builder, path_obj, is_dependency=False, cgcignore_path=ctx.cgcignore_path))
244
272
  time_end = time.time()
245
273
  elapsed = time_end - time_start
274
+ _print_call_resolution_diagnostics(graph_builder)
246
275
  console.print(f"[green]Successfully finished indexing: {path} in {elapsed:.2f} seconds[/green]")
247
276
 
248
277
  # Check if auto-watch is enabled
@@ -259,6 +288,7 @@ def index_helper(path: str, context: Optional[str] = None):
259
288
 
260
289
  except Exception as e:
261
290
  console.print(f"[bold red]An error occurred during indexing:[/bold red] {e}")
291
+ raise typer.Exit(code=1)
262
292
  finally:
263
293
  db_manager.close_driver()
264
294
 
@@ -289,6 +319,7 @@ def add_package_helper(package_name: str, language: str, context: Optional[str]
289
319
 
290
320
  try:
291
321
  asyncio.run(_run_index_with_progress(graph_builder, package_path, is_dependency=True, cgcignore_path=ctx.cgcignore_path))
322
+ _print_call_resolution_diagnostics(graph_builder)
292
323
  console.print(f"[green]Successfully finished indexing package: {package_name}[/green]")
293
324
  except Exception as e:
294
325
  console.print(f"[bold red]An error occurred during package indexing:[/bold red] {e}")
@@ -354,9 +385,11 @@ def cypher_helper(query: str, context: Optional[str] = None):
354
385
 
355
386
  db_manager, _, _, ctx = services
356
387
 
357
- # Replicating safety checks from MCPServer
388
+ # Replicating safety checks from MCPServer (using word boundaries to avoid false positives like 'createEmail')
389
+ import re
358
390
  forbidden_keywords = ['CREATE', 'MERGE', 'DELETE', 'SET', 'REMOVE', 'DROP', 'CALL apoc']
359
- if any(keyword in query.upper() for keyword in forbidden_keywords):
391
+ pattern = r'\b(' + '|'.join(forbidden_keywords) + r')\b'
392
+ if re.search(pattern, query, re.IGNORECASE):
360
393
  console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
361
394
  db_manager.close_driver()
362
395
  return
@@ -382,9 +415,11 @@ def cypher_helper_visual(query: str, context: Optional[str] = None):
382
415
 
383
416
  db_manager, _, _, ctx = services
384
417
 
385
- # Replicating safety checks from MCPServer
418
+ # Replicating safety checks from MCPServer (using word boundaries to avoid false positives like 'createEmail')
419
+ import re
386
420
  forbidden_keywords = ['CREATE', 'MERGE', 'DELETE', 'SET', 'REMOVE', 'DROP', 'CALL apoc']
387
- if any(keyword in query.upper() for keyword in forbidden_keywords):
421
+ pattern = r'\b(' + '|'.join(forbidden_keywords) + r')\b'
422
+ if re.search(pattern, query, re.IGNORECASE):
388
423
  console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
389
424
  db_manager.close_driver()
390
425
  return
@@ -540,9 +575,11 @@ def reindex_helper(path: str, context: Optional[str] = None):
540
575
  asyncio.run(_run_index_with_progress(graph_builder, path_obj, is_dependency=False, cgcignore_path=ctx.cgcignore_path))
541
576
  time_end = time.time()
542
577
  elapsed = time_end - time_start
578
+ _print_call_resolution_diagnostics(graph_builder)
543
579
  console.print(f"[green]Successfully re-indexed: {path} in {elapsed:.2f} seconds[/green]")
544
580
  except Exception as e:
545
581
  console.print(f"[bold red]An error occurred during re-indexing:[/bold red] {e}")
582
+ raise typer.Exit(code=1)
546
583
  finally:
547
584
  db_manager.close_driver()
548
585
 
@@ -669,6 +706,12 @@ def stats_helper(path: str = None, context: Optional[str] = None):
669
706
  class_count = session.run("MATCH (c:Class) RETURN count(c) as c").single()["c"]
670
707
  module_count = session.run("MATCH (m:Module) RETURN count(m) as c").single()["c"]
671
708
 
709
+ # Extended node types (PHP, Rust, Go, etc.)
710
+ interface_count = session.run("MATCH (i:Interface) RETURN count(i) as c").single()["c"]
711
+ trait_count = session.run("MATCH (t:Trait) RETURN count(t) as c").single()["c"]
712
+ struct_count = session.run("MATCH (s:Struct) RETURN count(s) as c").single()["c"]
713
+ enum_count = session.run("MATCH (e:Enum) RETURN count(e) as c").single()["c"]
714
+
672
715
  table = Table(show_header=True, header_style="bold magenta")
673
716
  table.add_column("Metric", style="cyan")
674
717
  table.add_column("Count", style="green", justify="right")
@@ -677,6 +720,14 @@ def stats_helper(path: str = None, context: Optional[str] = None):
677
720
  table.add_row("Files", str(file_count))
678
721
  table.add_row("Functions", str(func_count))
679
722
  table.add_row("Classes", str(class_count))
723
+ if interface_count > 0:
724
+ table.add_row("Interfaces", str(interface_count))
725
+ if trait_count > 0:
726
+ table.add_row("Traits", str(trait_count))
727
+ if struct_count > 0:
728
+ table.add_row("Structs", str(struct_count))
729
+ if enum_count > 0:
730
+ table.add_row("Enums", str(enum_count))
680
731
  table.add_row("Modules", str(module_count))
681
732
 
682
733
  console.print(table)