codegraphcontext 0.4.13__tar.gz → 0.4.15__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 (169) hide show
  1. {codegraphcontext-0.4.13/src/codegraphcontext.egg-info → codegraphcontext-0.4.15}/PKG-INFO +32 -10
  2. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/README.md +14 -7
  3. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/pyproject.toml +46 -3
  4. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/config_manager.py +12 -12
  5. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/main.py +3 -3
  6. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/registry_commands.py +5 -3
  7. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/setup_wizard.py +19 -7
  8. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/__init__.py +28 -0
  9. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/cgc_bundle.py +1 -1
  10. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/database_falkordb.py +76 -9
  11. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/database_kuzu.py +5 -2
  12. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/server.py +11 -1
  13. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/advanced_language_query_tool.py +5 -3
  14. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/code_finder.py +4 -2
  15. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/graph_builder.py +6 -2
  16. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/persistence/writer.py +29 -3
  17. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/pre_scan.py +2 -0
  18. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/scip_pipeline.py +1 -1
  19. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/scip_indexer.py +3 -2
  20. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/system.py +8 -3
  21. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/server.py +4 -2
  22. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15/src/codegraphcontext.egg-info}/PKG-INFO +32 -10
  23. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext.egg-info/requires.txt +28 -2
  24. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/tests/test_issue_806_fix.py +1 -1
  25. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/LICENSE +0 -0
  26. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/MANIFEST.in +0 -0
  27. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/setup.cfg +0 -0
  28. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/__init__.py +0 -0
  29. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/__main__.py +0 -0
  30. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/api/__init__.py +0 -0
  31. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/api/app.py +0 -0
  32. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/api/mcp_sse.py +0 -0
  33. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/api/router.py +0 -0
  34. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/api/schemas.py +0 -0
  35. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/__init__.py +0 -0
  36. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/cli_helpers.py +0 -0
  37. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/setup_macos.py +0 -0
  38. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/cli/visualizer.py +0 -0
  39. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/bundle_registry.py +0 -0
  40. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/cgcignore.py +0 -0
  41. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/database.py +0 -0
  42. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
  43. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/database_ladybug.py +0 -0
  44. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/database_nornic.py +0 -0
  45. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/falkor_worker.py +0 -0
  46. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/jobs.py +0 -0
  47. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/core/watcher.py +0 -0
  48. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/prompts.py +0 -0
  49. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tool_definitions.py +0 -0
  50. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/__init__.py +0 -0
  51. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
  52. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
  53. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
  54. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
  55. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/handlers/analysis_handlers.py +0 -0
  56. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/handlers/indexing_handlers.py +0 -0
  57. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
  58. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
  59. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
  60. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
  61. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/constants.py +0 -0
  62. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/discovery.py +0 -0
  63. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
  64. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
  65. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/pipeline.py +0 -0
  66. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
  67. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/resolution/calls.py +0 -0
  68. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +0 -0
  69. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
  70. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
  71. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/schema.py +0 -0
  72. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
  73. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
  74. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/c.py +0 -0
  75. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/cpp.py +0 -0
  76. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/csharp.py +0 -0
  77. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/css.py +0 -0
  78. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/dart.py +0 -0
  79. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/elisp.py +0 -0
  80. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/elixir.py +0 -0
  81. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/go.py +0 -0
  82. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/gradle.py +0 -0
  83. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/haskell.py +0 -0
  84. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/html.py +0 -0
  85. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/java.py +0 -0
  86. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/javascript.py +0 -0
  87. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/kotlin.py +0 -0
  88. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/lua.py +0 -0
  89. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/maven.py +0 -0
  90. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
  91. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/perl.py +0 -0
  92. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/php.py +0 -0
  93. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/python.py +0 -0
  94. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/ruby.py +0 -0
  95. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/rust.py +0 -0
  96. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/scala.py +0 -0
  97. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/swift.py +0 -0
  98. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/typescript.py +0 -0
  99. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
  100. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/package_resolver.py +0 -0
  101. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
  102. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
  103. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
  104. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
  105. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/elisp_toolkit.py +0 -0
  106. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
  107. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
  108. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
  109. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
  110. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
  111. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
  112. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
  113. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
  114. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
  115. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
  116. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
  117. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/report_generator.py +0 -0
  118. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/scip_pb2.py +0 -0
  119. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
  120. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/tools/type_utils.py +0 -0
  121. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/debug_log.py +0 -0
  122. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/git_utils.py +0 -0
  123. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/path_ignore.py +0 -0
  124. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/repo_path.py +0 -0
  125. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/tool_limits.py +0 -0
  126. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/tree_sitter_manager.py +0 -0
  127. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/utils/visualize_graph.py +0 -0
  128. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
  129. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
  130. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
  131. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
  132. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
  133. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/index-C-187lf0.js +0 -0
  134. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/index-fNAa6jgv.css +0 -0
  135. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/parser-pyodide.worker-BgsDfaad.js +0 -0
  136. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/parser.worker-_nvrecvj.js +0 -0
  137. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
  138. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/cgcIcon.png +0 -0
  139. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
  140. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/index.html +0 -0
  141. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/logo-icon.svg +0 -0
  142. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/logo.svg +0 -0
  143. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
  144. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
  145. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/robots.txt +0 -0
  146. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
  147. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
  148. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
  149. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
  150. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
  151. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
  152. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
  153. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
  154. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
  155. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
  156. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
  157. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
  158. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
  159. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
  160. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
  161. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
  162. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
  163. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
  164. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
  165. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
  166. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext.egg-info/SOURCES.txt +0 -0
  167. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
  168. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
  169. {codegraphcontext-0.4.13 → codegraphcontext-0.4.15}/src/codegraphcontext.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codegraphcontext
3
- Version: 0.4.13
3
+ Version: 0.4.15
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
@@ -50,18 +50,33 @@ Requires-Dist: pyyaml
50
50
  Requires-Dist: nbformat
51
51
  Requires-Dist: nbconvert>=7.16.6
52
52
  Requires-Dist: pathspec>=0.12.1
53
- Requires-Dist: falkordb>=0.1.0
53
+ Requires-Dist: redis<6,>=5
54
+ Requires-Dist: falkordb<1.6,>=1.0
55
+ Requires-Dist: falkordblite<0.10,>=0.7; sys_platform != "win32" and python_version >= "3.12"
54
56
  Requires-Dist: requests>=2.28.0
55
57
  Requires-Dist: protobuf<3.21,>=3.20
56
- Requires-Dist: falkordblite>=0.1.0; sys_platform != "win32" and python_version >= "3.12"
57
58
  Requires-Dist: kuzu; sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")
58
59
  Requires-Dist: ladybug; sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")
60
+ Requires-Dist: mcp>=1.0.0
59
61
  Requires-Dist: fastapi>=0.100.0
60
62
  Requires-Dist: uvicorn>=0.22.0
61
63
  Provides-Extra: parsing
62
64
  Requires-Dist: tree-sitter<0.26.0,>=0.21.0; python_version != "3.13" and extra == "parsing"
63
65
  Requires-Dist: tree-sitter-language-pack<1.0.0,>=0.6.0; python_version != "3.13" and extra == "parsing"
64
66
  Requires-Dist: tree-sitter-c-sharp>=0.21.0; python_version != "3.13" and extra == "parsing"
67
+ Provides-Extra: falkordb-embedded
68
+ Requires-Dist: falkordblite<0.10,>=0.7; (sys_platform != "win32" and python_version >= "3.12") and extra == "falkordb-embedded"
69
+ Requires-Dist: falkordb<1.6,>=1.0; extra == "falkordb-embedded"
70
+ Requires-Dist: redis<6,>=5; extra == "falkordb-embedded"
71
+ Provides-Extra: falkordb-remote
72
+ Requires-Dist: falkordb<1.6,>=1.0; extra == "falkordb-remote"
73
+ Requires-Dist: redis<6,>=5; extra == "falkordb-remote"
74
+ Provides-Extra: kuzu
75
+ Requires-Dist: kuzu; (sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")) and extra == "kuzu"
76
+ Provides-Extra: ladybug
77
+ Requires-Dist: ladybug; (sys_platform == "win32" or (sys_platform != "win32" and python_version >= "3.10")) and extra == "ladybug"
78
+ Provides-Extra: neo4j
79
+ Requires-Dist: neo4j>=5.15.0; extra == "neo4j"
65
80
  Provides-Extra: dev
66
81
  Requires-Dist: pytest>=7.4.0; extra == "dev"
67
82
  Requires-Dist: black>=23.11.0; extra == "dev"
@@ -74,11 +89,11 @@ Dynamic: license-file
74
89
 
75
90
  🌐 **Languages:**
76
91
  - 🇬🇧 [English](README.md)
77
- - 🇨🇳 [中文](README.zh-CN.md)
78
- - 🇰🇷 [한국어](README.kor.md)
79
- - 🇺🇦 [Українська](README.uk.md)
80
- - 🇷🇺 [Русский](README.ru-RU.md)
81
- - 🇯🇵 [日本語](README.ja.md)
92
+ - 🇨🇳 [中文](docs/translations/README.zh-CN.md)
93
+ - 🇰🇷 [한국어](docs/translations/README.kor.md)
94
+ - 🇺🇦 [Українська](docs/translations/README.uk.md)
95
+ - 🇷🇺 [Русский](docs/translations/README.ru-RU.md)
96
+ - 🇯🇵 [日本語](docs/translations/README.ja.md)
82
97
  - 🇪🇸 Español (Soon)
83
98
 
84
99
  🌍 **Help translate CodeGraphContext to your language by raising an issue & PR on https://github.com/Shashankss1205/CodeGraphContext/issues!**
@@ -168,7 +183,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
168
183
  ---
169
184
 
170
185
  ## Project Details
171
- - **Version:** 0.4.13
186
+ - **Version:** 0.4.15
172
187
  - **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
173
188
  - **License:** MIT License (See [LICENSE](LICENSE) for details)
174
189
  - **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
@@ -375,6 +390,7 @@ codegraphcontext find pattern "Auth" --viz
375
390
  * VS Code
376
391
  * Cursor
377
392
  * Windsurf
393
+ * Zed
378
394
  * Claude
379
395
  * Gemini CLI
380
396
  * ChatGPT Codex
@@ -382,6 +398,8 @@ codegraphcontext find pattern "Auth" --viz
382
398
  * RooCode
383
399
  * Amazon Q Developer
384
400
  * Kiro
401
+ * Goose
402
+ * OpenCode
385
403
 
386
404
  Upon successful configuration, `codegraphcontext mcp setup` will generate and place the necessary configuration files:
387
405
  * It creates an `mcp.json` file in your current directory for reference.
@@ -444,6 +462,10 @@ Add the following server configuration to your client's settings file (e.g., VS
444
462
  }
445
463
  ```
446
464
 
465
+ #### OpenCode Configuration
466
+
467
+ For instructions on installing and configuring MCP servers with OpenCode, see the [OpenCode MCP Guide](https://opencode.ai/docs/ko/mcp-servers/#_top).
468
+
447
469
  #### If installed via pipx
448
470
 
449
471
  If you installed CodeGraphContext using `pipx`, use the following configuration instead:
@@ -537,7 +559,7 @@ Once the server is running, you can interact with it through your AI assistant u
537
559
  ## Contributing
538
560
 
539
561
  Contributions are welcome! 🎉
540
- Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
562
+ Please see our [CONTRIBUTING.md](.github/CONTRIBUTING.md) for detailed guidelines.
541
563
  If you have ideas for new features, integrations, or improvements, open an [issue](https://github.com/CodeGraphContext/CodeGraphContext/issues) or submit a Pull Request.
542
564
 
543
565
  Join discussions and help shape the future of CodeGraphContext.
@@ -4,11 +4,11 @@
4
4
 
5
5
  🌐 **Languages:**
6
6
  - 🇬🇧 [English](README.md)
7
- - 🇨🇳 [中文](README.zh-CN.md)
8
- - 🇰🇷 [한국어](README.kor.md)
9
- - 🇺🇦 [Українська](README.uk.md)
10
- - 🇷🇺 [Русский](README.ru-RU.md)
11
- - 🇯🇵 [日本語](README.ja.md)
7
+ - 🇨🇳 [中文](docs/translations/README.zh-CN.md)
8
+ - 🇰🇷 [한국어](docs/translations/README.kor.md)
9
+ - 🇺🇦 [Українська](docs/translations/README.uk.md)
10
+ - 🇷🇺 [Русский](docs/translations/README.ru-RU.md)
11
+ - 🇯🇵 [日本語](docs/translations/README.ja.md)
12
12
  - 🇪🇸 Español (Soon)
13
13
 
14
14
  🌍 **Help translate CodeGraphContext to your language by raising an issue & PR on https://github.com/Shashankss1205/CodeGraphContext/issues!**
@@ -98,7 +98,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
98
98
  ---
99
99
 
100
100
  ## Project Details
101
- - **Version:** 0.4.13
101
+ - **Version:** 0.4.15
102
102
  - **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
103
103
  - **License:** MIT License (See [LICENSE](LICENSE) for details)
104
104
  - **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
@@ -305,6 +305,7 @@ codegraphcontext find pattern "Auth" --viz
305
305
  * VS Code
306
306
  * Cursor
307
307
  * Windsurf
308
+ * Zed
308
309
  * Claude
309
310
  * Gemini CLI
310
311
  * ChatGPT Codex
@@ -312,6 +313,8 @@ codegraphcontext find pattern "Auth" --viz
312
313
  * RooCode
313
314
  * Amazon Q Developer
314
315
  * Kiro
316
+ * Goose
317
+ * OpenCode
315
318
 
316
319
  Upon successful configuration, `codegraphcontext mcp setup` will generate and place the necessary configuration files:
317
320
  * It creates an `mcp.json` file in your current directory for reference.
@@ -374,6 +377,10 @@ Add the following server configuration to your client's settings file (e.g., VS
374
377
  }
375
378
  ```
376
379
 
380
+ #### OpenCode Configuration
381
+
382
+ For instructions on installing and configuring MCP servers with OpenCode, see the [OpenCode MCP Guide](https://opencode.ai/docs/ko/mcp-servers/#_top).
383
+
377
384
  #### If installed via pipx
378
385
 
379
386
  If you installed CodeGraphContext using `pipx`, use the following configuration instead:
@@ -467,7 +474,7 @@ Once the server is running, you can interact with it through your AI assistant u
467
474
  ## Contributing
468
475
 
469
476
  Contributions are welcome! 🎉
470
- Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
477
+ Please see our [CONTRIBUTING.md](.github/CONTRIBUTING.md) for detailed guidelines.
471
478
  If you have ideas for new features, integrations, or improvements, open an [issue](https://github.com/CodeGraphContext/CodeGraphContext/issues) or submit a Pull Request.
472
479
 
473
480
  Join discussions and help shape the future of CodeGraphContext.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codegraphcontext"
3
- version = "0.4.13"
3
+ version = "0.4.15"
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"
@@ -29,12 +29,33 @@ dependencies = [
29
29
  "nbformat",
30
30
  "nbconvert>=7.16.6",
31
31
  "pathspec>=0.12.1",
32
- "falkordb>=0.1.0",
32
+ # ------------------------------------------------------------------
33
+ # Backend driver pins (see issue #1035)
34
+ #
35
+ # FalkorDB and its embedded sibling ``falkordblite`` co-evolve with
36
+ # ``redis-py``: the most recent ``falkordblite`` releases (>= 0.10) and
37
+ # ``falkordb`` releases (>= 1.6) require ``redis>=7.1`` / ``redis>=7.4``,
38
+ # but redis-py >= 6 breaks the Unix-socket path FalkorDB Lite uses
39
+ # (``UnixDomainSocketConnection`` lacks a ``host`` attribute, which the
40
+ # new maintenance-notifications handshake dereferences unconditionally).
41
+ #
42
+ # Until upstream resolves this we pin a known-good triple:
43
+ # * redis-py 5.x — last series that keeps UDS path working
44
+ # * falkordblite < 0.10 — last series compatible with redis>=4.5
45
+ # * falkordb < 1.6 — last series compatible with redis<7.1
46
+ #
47
+ # ``redis`` itself is now declared explicitly so a fresh resolver run
48
+ # (``uvx``, ``pipx install --force``, etc.) cannot silently pick up
49
+ # redis-py 6/7/8 again and reintroduce the bug.
50
+ # ------------------------------------------------------------------
51
+ "redis>=5,<6",
52
+ "falkordb>=1.0,<1.6",
53
+ "falkordblite>=0.7,<0.10; sys_platform != 'win32' and python_version >= '3.12'",
33
54
  "requests>=2.28.0",
34
55
  "protobuf>=3.20,<3.21",
35
- "falkordblite>=0.1.0; sys_platform != 'win32' and python_version >= '3.12'",
36
56
  "kuzu; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
37
57
  "ladybug; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
58
+ "mcp>=1.0.0",
38
59
  "fastapi>=0.100.0",
39
60
  "uvicorn>=0.22.0"
40
61
  ]
@@ -45,6 +66,28 @@ parsing = [
45
66
  "tree-sitter-language-pack>=0.6.0,<1.0.0; python_version != '3.13'",
46
67
  "tree-sitter-c-sharp>=0.21.0; python_version != '3.13'",
47
68
  ]
69
+ # Named backend extras let users (and CI) opt into a single, tested driver
70
+ # triple instead of inheriting whatever the default install pulls. They
71
+ # install the same ranges as the defaults today; the long-term plan
72
+ # (tracked separately) is to make the defaults lean and require an extra.
73
+ falkordb-embedded = [
74
+ "falkordblite>=0.7,<0.10; sys_platform != 'win32' and python_version >= '3.12'",
75
+ "falkordb>=1.0,<1.6",
76
+ "redis>=5,<6",
77
+ ]
78
+ falkordb-remote = [
79
+ "falkordb>=1.0,<1.6",
80
+ "redis>=5,<6",
81
+ ]
82
+ kuzu = [
83
+ "kuzu; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
84
+ ]
85
+ ladybug = [
86
+ "ladybug; sys_platform == 'win32' or (sys_platform != 'win32' and python_version >= '3.10')",
87
+ ]
88
+ neo4j = [
89
+ "neo4j>=5.15.0",
90
+ ]
48
91
  dev = [
49
92
  "pytest>=7.4.0",
50
93
  "black>=23.11.0",
@@ -234,7 +234,7 @@ def load_config() -> Dict[str, str]:
234
234
  # Load global config
235
235
  if CONFIG_FILE.exists():
236
236
  try:
237
- with open(CONFIG_FILE, "r") as f:
237
+ with open(CONFIG_FILE, "r", encoding="utf-8") as f:
238
238
  for line in f:
239
239
  line = line.strip()
240
240
  if line and not line.startswith("#") and "=" in line:
@@ -247,7 +247,7 @@ def load_config() -> Dict[str, str]:
247
247
  local_env = find_local_env()
248
248
  if local_env and local_env.exists():
249
249
  try:
250
- with open(local_env, "r") as f:
250
+ with open(local_env, "r", encoding="utf-8") as f:
251
251
  for line in f:
252
252
  line = line.strip()
253
253
  if line and not line.startswith("#") and "=" in line:
@@ -321,7 +321,7 @@ def save_config(config: Dict[str, str], preserve_db_credentials: bool = True):
321
321
  if preserve_db_credentials and CONFIG_FILE.exists():
322
322
  # Load existing credentials from file to preserve them
323
323
  try:
324
- with open(CONFIG_FILE, "r") as f:
324
+ with open(CONFIG_FILE, "r", encoding="utf-8") as f:
325
325
  for line in f:
326
326
  line = line.strip()
327
327
  if line and not line.startswith("#") and "=" in line:
@@ -342,7 +342,7 @@ def save_config(config: Dict[str, str], preserve_db_credentials: bool = True):
342
342
  credentials_to_write[key] = config[key]
343
343
 
344
344
  try:
345
- with open(CONFIG_FILE, "w") as f:
345
+ with open(CONFIG_FILE, "w", encoding="utf-8") as f:
346
346
  f.write("# CodeGraphContext Configuration\n")
347
347
  f.write(f"# Location: {CONFIG_FILE}\n\n")
348
348
 
@@ -696,7 +696,7 @@ def load_context_config() -> ContextConfig:
696
696
  return cfg
697
697
 
698
698
  try:
699
- with open(CONTEXT_CONFIG_FILE, "r") as f:
699
+ with open(CONTEXT_CONFIG_FILE, "r", encoding="utf-8") as f:
700
700
  raw = yaml.safe_load(f) or {}
701
701
 
702
702
  contexts: Dict[str, ContextInfo] = {}
@@ -746,7 +746,7 @@ def save_context_config(cfg: ContextConfig) -> None:
746
746
  }
747
747
 
748
748
  try:
749
- with open(CONTEXT_CONFIG_FILE, "w") as f:
749
+ with open(CONTEXT_CONFIG_FILE, "w", encoding="utf-8") as f:
750
750
  yaml.dump(raw, f, default_flow_style=False, sort_keys=False)
751
751
  except Exception as e:
752
752
  console.print(f"[red]Error saving config.yaml: {e}[/red]")
@@ -838,7 +838,7 @@ def resolve_context(
838
838
  local_db = "falkordb"
839
839
  if local_yaml.exists():
840
840
  try:
841
- with open(local_yaml) as f:
841
+ with open(local_yaml, encoding="utf-8") as f:
842
842
  local_raw = yaml.safe_load(f) or {}
843
843
  local_db = local_raw.get("database", "falkordb")
844
844
  except Exception:
@@ -1053,7 +1053,7 @@ def discover_child_contexts(
1053
1053
  local_yaml = candidate / "config.yaml"
1054
1054
  if local_yaml.exists():
1055
1055
  try:
1056
- with open(local_yaml) as f:
1056
+ with open(local_yaml, encoding="utf-8") as f:
1057
1057
  raw = yaml.safe_load(f) or {}
1058
1058
  local_db = raw.get("database", "falkordb")
1059
1059
  except Exception:
@@ -1082,7 +1082,7 @@ def _load_workspace_mappings() -> Dict[str, Dict[str, str]]:
1082
1082
  if not CONTEXT_CONFIG_FILE.exists():
1083
1083
  return {}
1084
1084
  try:
1085
- with open(CONTEXT_CONFIG_FILE, "r") as f:
1085
+ with open(CONTEXT_CONFIG_FILE, "r", encoding="utf-8") as f:
1086
1086
  raw = yaml.safe_load(f) or {}
1087
1087
  return raw.get("workspace_mappings", {}) or {}
1088
1088
  except Exception:
@@ -1096,13 +1096,13 @@ def _save_workspace_mappings(mappings: Dict[str, Dict[str, str]]) -> None:
1096
1096
  raw: Dict[str, Any] = {}
1097
1097
  if CONTEXT_CONFIG_FILE.exists():
1098
1098
  try:
1099
- with open(CONTEXT_CONFIG_FILE, "r") as f:
1099
+ with open(CONTEXT_CONFIG_FILE, "r", encoding="utf-8") as f:
1100
1100
  raw = yaml.safe_load(f) or {}
1101
1101
  except Exception:
1102
1102
  raw = {}
1103
1103
  raw["workspace_mappings"] = mappings
1104
1104
  try:
1105
- with open(CONTEXT_CONFIG_FILE, "w") as f:
1105
+ with open(CONTEXT_CONFIG_FILE, "w", encoding="utf-8") as f:
1106
1106
  yaml.dump(raw, f, default_flow_style=False, sort_keys=False)
1107
1107
  except Exception as e:
1108
1108
  console.print(f"[red]Error saving workspace mappings: {e}[/red]")
@@ -1124,7 +1124,7 @@ def save_workspace_mapping(cwd: Path, context_path: Path) -> None:
1124
1124
  local_yaml = context_path / "config.yaml"
1125
1125
  if local_yaml.exists():
1126
1126
  try:
1127
- with open(local_yaml) as f:
1127
+ with open(local_yaml, encoding="utf-8") as f:
1128
1128
  raw = yaml.safe_load(f) or {}
1129
1129
  local_db = raw.get("database", "falkordb")
1130
1130
  except Exception:
@@ -22,7 +22,6 @@ from pathlib import Path
22
22
  from importlib.metadata import version as pkg_version, PackageNotFoundError
23
23
 
24
24
  from codegraphcontext.server import MCPServer
25
- from codegraphcontext.core.database import DatabaseManager
26
25
  from .setup_wizard import run_neo4j_setup_wizard, configure_mcp_client
27
26
  from . import config_manager
28
27
  # Import the new helper functions
@@ -108,7 +107,7 @@ def mcp_setup():
108
107
  Configure MCP Client (IDE/CLI Integration).
109
108
 
110
109
  Sets up CodeGraphContext integration with your IDE or CLI tool:
111
- - VS Code, Cursor, Windsurf
110
+ - VS Code, Cursor, Windsurf, Zed
112
111
  - Claude Desktop, Gemini CLI
113
112
  - Cline, RooCode, Amazon Q Developer, Goose
114
113
  - OpenCode (prints stdio config + link to vendor docs)
@@ -125,7 +124,7 @@ def mcp_start():
125
124
  Start the CodeGraphContext MCP server.
126
125
 
127
126
  Starts the server which listens for JSON-RPC requests from stdin.
128
- This is used by IDE integrations (VS Code, Cursor, etc.).
127
+ This is used by IDE integrations (VS Code, Cursor, Zed, etc.).
129
128
  """
130
129
  console.print("[bold green]Starting CodeGraphContext Server...[/bold green]")
131
130
  _load_credentials()
@@ -979,6 +978,7 @@ def doctor():
979
978
  password = os.environ.get("NEO4J_PASSWORD")
980
979
  database_name = os.environ.get("NEO4J_DATABASE")
981
980
 
981
+ from codegraphcontext.core.database import DatabaseManager
982
982
  missing = DatabaseManager.get_missing_credentials(uri, username, password)
983
983
  console.print(f" [cyan]Credential check:[/cyan] {'OK' if not missing else 'Missing ' + ', '.join(missing)}")
984
984
  if missing:
@@ -177,6 +177,8 @@ def download_bundle(name: str, output_dir: Optional[str] = None, auto_load: bool
177
177
  and base names (e.g., 'python-bitcoin-utils' - picks most recent version).
178
178
  """
179
179
  console.print(f"[cyan]Looking for bundle '{name}'...[/cyan]")
180
+
181
+ lookup_name = name[:-4] if name.lower().endswith('.cgc') else name
180
182
 
181
183
  bundles = fetch_available_bundles()
182
184
 
@@ -187,7 +189,7 @@ def download_bundle(name: str, output_dir: Optional[str] = None, auto_load: bool
187
189
  # Strategy 1: Try exact match on full_name (with version)
188
190
  bundle = None
189
191
  for b in bundles:
190
- if b.get('full_name', '').lower() == name.lower():
192
+ if b.get('full_name', '').lower() == lookup_name.lower():
191
193
  bundle = b
192
194
  console.print(f"[dim]Found exact match: {b.get('full_name')}[/dim]")
193
195
  break
@@ -197,7 +199,7 @@ def download_bundle(name: str, output_dir: Optional[str] = None, auto_load: bool
197
199
  if not bundle:
198
200
  matching_bundles = []
199
201
  for b in bundles:
200
- if b.get('name', '').lower() == name.lower():
202
+ if b.get('name', '').lower() == lookup_name.lower():
201
203
  matching_bundles.append(b)
202
204
 
203
205
  if matching_bundles:
@@ -220,7 +222,7 @@ def download_bundle(name: str, output_dir: Optional[str] = None, auto_load: bool
220
222
  if not bundle:
221
223
  # Find bundles with similar base names
222
224
  suggestions = []
223
- name_lower = name.lower()
225
+ name_lower = lookup_name.lower()
224
226
  for b in bundles:
225
227
  base_name = b.get('name', '').lower()
226
228
  full_name = b.get('full_name', '').lower()
@@ -256,7 +256,7 @@ def _configure_ide(mcp_config):
256
256
  questions = [
257
257
  {
258
258
  "type": "confirm",
259
- "message": "Automatically configure your IDE/CLI (VS Code, Cursor, Windsurf, Claude, Gemini, Cline, RooCode, ChatGPT Codex, Amazon Q Developer, Aider, Kiro, Goose, Antigravity, OpenCode)?",
259
+ "message": "Automatically configure your IDE/CLI (VS Code, Cursor, Windsurf, Zed, Claude, Gemini, Cline, RooCode, ChatGPT Codex, Amazon Q Developer, Aider, Kiro, Goose, Antigravity, OpenCode)?",
260
260
  "name": "configure_ide",
261
261
  "default": True,
262
262
  }
@@ -270,7 +270,7 @@ def _configure_ide(mcp_config):
270
270
  {
271
271
  "type": "list",
272
272
  "message": "Choose your IDE/CLI to configure:",
273
- "choices": ["VS Code", "Cursor", "Windsurf", "Claude code", "Gemini CLI", "ChatGPT Codex", "Cline", "RooCode", "Amazon Q Developer", "JetBrainsAI", "Aider", "Kiro", "Goose", "Antigravity", "OpenCode", "None of the above"],
273
+ "choices": ["VS Code", "Cursor", "Windsurf", "Zed", "Claude code", "Gemini CLI", "ChatGPT Codex", "Cline", "RooCode", "Amazon Q Developer", "JetBrainsAI", "Aider", "Kiro", "Goose", "Antigravity", "OpenCode", "None of the above"],
274
274
  "name": "ide_choice",
275
275
  }
276
276
  ]
@@ -289,7 +289,7 @@ def _configure_ide(mcp_config):
289
289
  )
290
290
  return
291
291
 
292
- if ide_choice in ["VS Code", "Cursor", "Windsurf", "Claude code", "Gemini CLI", "ChatGPT Codex", "Cline", "RooCode", "Amazon Q Developer", "JetBrainsAI", "Aider", "Kiro", "Goose", "Antigravity"]:
292
+ if ide_choice in ["VS Code", "Cursor", "Windsurf", "Zed", "Claude code", "Gemini CLI", "ChatGPT Codex", "Cline", "RooCode", "Amazon Q Developer", "JetBrainsAI", "Aider", "Kiro", "Goose", "Antigravity"]:
293
293
  console.print(f"\n[bold cyan]Configuring for {ide_choice}...[/bold cyan]")
294
294
 
295
295
  if ide_choice == "Amazon Q Developer":
@@ -320,6 +320,10 @@ def _configure_ide(mcp_config):
320
320
  Path.home() / "AppData" / "Roaming" / "windsurf" / "settings.json",
321
321
  Path.home() / ".config" / "Windsurf" / "User" / "settings.json",
322
322
  ],
323
+ "Zed": [
324
+ Path.home() / ".config" / "zed" / "settings.json",
325
+ Path.home() / "AppData" / "Roaming" / "Zed" / "settings.json"
326
+ ],
323
327
  "Claude code": [
324
328
  Path.home() / ".claude.json"
325
329
  ],
@@ -398,10 +402,14 @@ def _configure_ide(mcp_config):
398
402
  console.print(f"[red]Error: Configuration file at {target_path} is not a valid JSON object.[/red]")
399
403
  return
400
404
 
401
- if "mcpServers" not in settings:
402
- settings["mcpServers"] = {}
403
-
404
- settings["mcpServers"].update(mcp_config["mcpServers"])
405
+ if ide_choice == "Zed":
406
+ if "context_servers" not in settings:
407
+ settings["context_servers"] = {}
408
+ settings["context_servers"].update(mcp_config["mcpServers"])
409
+ else:
410
+ if "mcpServers" not in settings:
411
+ settings["mcpServers"] = {}
412
+ settings["mcpServers"].update(mcp_config["mcpServers"])
405
413
 
406
414
  try:
407
415
  with open(target_path, "w") as f:
@@ -677,6 +685,7 @@ def setup_existing_db():
677
685
 
678
686
  # Validate the user input
679
687
  console.print("\n[cyan]🔍 Validating configuration...[/cyan]")
688
+ from codegraphcontext.core.database import DatabaseManager
680
689
  is_valid, validation_error = DatabaseManager.validate_config(
681
690
  manual_creds.get("uri", ""),
682
691
  manual_creds.get("username", ""),
@@ -795,6 +804,7 @@ def setup_hosted_db():
795
804
 
796
805
  # Validate the user input
797
806
  console.print("\n[cyan]🔍 Validating configuration...[/cyan]")
807
+ from codegraphcontext.core.database import DatabaseManager
798
808
  is_valid, validation_error = DatabaseManager.validate_config(
799
809
  manual_creds.get("uri", ""),
800
810
  manual_creds.get("username", ""),
@@ -913,6 +923,7 @@ volumes:
913
923
 
914
924
  # Validate configuration format before attempting Docker operations
915
925
  console.print("\n[cyan]🔍 Validating configuration...[/cyan]")
926
+ from codegraphcontext.core.database import DatabaseManager
916
927
  is_valid, validation_error = DatabaseManager.validate_config(
917
928
  DEFAULT_NEO4J_URI,
918
929
  DEFAULT_NEO4J_USERNAME,
@@ -972,6 +983,7 @@ volumes:
972
983
 
973
984
  # updated test_connection method
974
985
  console.print(f"[yellow]Testing connection... (attempt {attempt + 1}/{max_attempts})[/yellow]")
986
+ from codegraphcontext.core.database import DatabaseManager
975
987
  is_connected, error_msg = DatabaseManager.test_connection(DEFAULT_NEO4J_URI, DEFAULT_NEO4J_USERNAME, password)
976
988
 
977
989
  if is_connected:
@@ -101,6 +101,12 @@ def get_database_manager(db_path: Optional[str] = None) -> Union['DatabaseManage
101
101
  from .database_falkordb import FalkorDBManager, FalkorDBUnavailableError
102
102
  try:
103
103
  mgr = FalkorDBManager(db_path=db_path)
104
+ # Eagerly probe the connection so any FalkorDBUnavailableError
105
+ # (e.g. redis-py/falkordblite version mismatch — issue #1035)
106
+ # surfaces *here*, while we can still fall back to KùzuDB.
107
+ # ``get_driver`` is idempotent (singleton-guarded), so the
108
+ # subsequent real call from server.py costs nothing.
109
+ mgr.get_driver()
104
110
  info_logger(f"Using FalkorDB Lite (explicit) at {db_path or 'default path'}")
105
111
  return mgr
106
112
  except FalkorDBUnavailableError as falkor_err:
@@ -153,6 +159,9 @@ def get_database_manager(db_path: Optional[str] = None) -> Union['DatabaseManage
153
159
  from .database_falkordb import FalkorDBManager, FalkorDBUnavailableError
154
160
  try:
155
161
  mgr = FalkorDBManager(db_path=db_path)
162
+ # Eagerly probe so dep/version failures (issue #1035) surface here
163
+ # while we can still fall through to KùzuDB below.
164
+ mgr.get_driver()
156
165
  info_logger(f"Using FalkorDB Lite (default) at {db_path or 'default path'}")
157
166
  return mgr
158
167
  except FalkorDBUnavailableError as falkor_err:
@@ -196,6 +205,25 @@ def get_database_manager(db_path: Optional[str] = None) -> Union['DatabaseManage
196
205
 
197
206
  raise ValueError(error_msg)
198
207
 
208
+ # Lazy backward-compatibility exports — avoids crashing when optional
209
+ # database drivers (neo4j, falkordb, real_ladybug, …) are not installed.
210
+ # Uses PEP 562 module-level __getattr__ so that:
211
+ # from codegraphcontext.core import DatabaseManager
212
+ # still works, but only triggers the real import when actually accessed.
213
+ _LAZY_IMPORTS = {
214
+ 'DatabaseManager': '.database',
215
+ 'FalkorDBManager': '.database_falkordb',
216
+ 'FalkorDBRemoteManager': '.database_falkordb_remote',
217
+ 'KuzuDBManager': '.database_kuzu',
218
+ 'NornicDBManager': '.database_nornic',
219
+ }
220
+
221
+ def __getattr__(name: str):
222
+ if name in _LAZY_IMPORTS:
223
+ import importlib
224
+ module = importlib.import_module(_LAZY_IMPORTS[name], __package__)
225
+ return getattr(module, name)
226
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
199
227
  # For backward compatibility, export managers
200
228
  from .database import DatabaseManager
201
229
  from .database_falkordb import FalkorDBManager
@@ -139,7 +139,7 @@ class CGCBundle:
139
139
  from importlib.metadata import version as get_version
140
140
  py_version = get_version("codegraphcontext")
141
141
  except Exception:
142
- py_version = "0.4.13"
142
+ py_version = "0.4.15"
143
143
 
144
144
  metadata["format_version"] = "1.0.0"
145
145
  metadata["generator"] = f"PYv{py_version}"