codegraphcontext 0.4.14__tar.gz → 0.4.16__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 (170) hide show
  1. {codegraphcontext-0.4.14/src/codegraphcontext.egg-info → codegraphcontext-0.4.16}/PKG-INFO +3 -3
  2. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/README.md +2 -2
  3. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/pyproject.toml +1 -1
  4. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/cli_helpers.py +47 -26
  5. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/config_manager.py +12 -2
  6. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/main.py +71 -24
  7. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/cgc_bundle.py +62 -25
  8. codegraphcontext-0.4.16/src/codegraphcontext/core/cgcignore.py +242 -0
  9. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/graph_builder.py +1 -1
  10. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/handlers/indexing_handlers.py +3 -2
  11. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/persistence/writer.py +83 -8
  12. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16/src/codegraphcontext.egg-info}/PKG-INFO +3 -3
  13. codegraphcontext-0.4.14/src/codegraphcontext/core/cgcignore.py +0 -119
  14. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/LICENSE +0 -0
  15. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/MANIFEST.in +0 -0
  16. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/setup.cfg +0 -0
  17. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/__init__.py +0 -0
  18. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/__main__.py +0 -0
  19. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/api/__init__.py +0 -0
  20. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/api/app.py +0 -0
  21. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/api/mcp_sse.py +0 -0
  22. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/api/router.py +0 -0
  23. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/api/schemas.py +0 -0
  24. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/__init__.py +0 -0
  25. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/registry_commands.py +0 -0
  26. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/setup_macos.py +0 -0
  27. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/setup_wizard.py +0 -0
  28. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/cli/visualizer.py +0 -0
  29. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/__init__.py +0 -0
  30. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/bundle_registry.py +0 -0
  31. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/database.py +0 -0
  32. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/database_falkordb.py +0 -0
  33. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/database_falkordb_remote.py +0 -0
  34. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/database_kuzu.py +0 -0
  35. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/database_ladybug.py +0 -0
  36. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/database_nornic.py +0 -0
  37. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/falkor_worker.py +0 -0
  38. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/jobs.py +0 -0
  39. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/core/watcher.py +0 -0
  40. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/prompts.py +0 -0
  41. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/server.py +0 -0
  42. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tool_definitions.py +0 -0
  43. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/__init__.py +0 -0
  44. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/advanced_language_query_tool.py +0 -0
  45. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/code_finder.py +0 -0
  46. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/datasources/__init__.py +0 -0
  47. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/datasources/cassandra_ingester.py +0 -0
  48. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/datasources/mysql_ingester.py +0 -0
  49. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/datasources/redis_ingester.py +0 -0
  50. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/handlers/analysis_handlers.py +0 -0
  51. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/handlers/management_handlers.py +0 -0
  52. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/handlers/query_handlers.py +0 -0
  53. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/handlers/watcher_handlers.py +0 -0
  54. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/__init__.py +0 -0
  55. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/constants.py +0 -0
  56. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/discovery.py +0 -0
  57. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/embeddings.py +0 -0
  58. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/persistence/__init__.py +0 -0
  59. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/pipeline.py +0 -0
  60. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/pre_scan.py +0 -0
  61. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/resolution/__init__.py +0 -0
  62. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/resolution/calls.py +0 -0
  63. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/resolution/inheritance.py +0 -0
  64. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/resolution/post_resolution.py +0 -0
  65. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/sanitize.py +0 -0
  66. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/schema.py +0 -0
  67. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/schema_contract.py +0 -0
  68. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/scip_pipeline.py +0 -0
  69. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/indexing/vector_resolver.py +0 -0
  70. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/c.py +0 -0
  71. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/cpp.py +0 -0
  72. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/csharp.py +0 -0
  73. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/css.py +0 -0
  74. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/dart.py +0 -0
  75. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/elisp.py +0 -0
  76. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/elixir.py +0 -0
  77. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/go.py +0 -0
  78. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/gradle.py +0 -0
  79. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/haskell.py +0 -0
  80. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/html.py +0 -0
  81. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/java.py +0 -0
  82. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/javascript.py +0 -0
  83. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/kotlin.py +0 -0
  84. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/lua.py +0 -0
  85. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/maven.py +0 -0
  86. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/mybatis.py +0 -0
  87. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/perl.py +0 -0
  88. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/php.py +0 -0
  89. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/python.py +0 -0
  90. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/ruby.py +0 -0
  91. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/rust.py +0 -0
  92. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/scala.py +0 -0
  93. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/swift.py +0 -0
  94. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/typescript.py +0 -0
  95. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/languages/typescriptjsx.py +0 -0
  96. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/package_resolver.py +0 -0
  97. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/c_toolkit.py +0 -0
  98. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/cpp_toolkit.py +0 -0
  99. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/csharp_toolkit.py +0 -0
  100. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/dart_toolkit.py +0 -0
  101. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/elisp_toolkit.py +0 -0
  102. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/go_toolkit.py +0 -0
  103. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/haskell_toolkit.py +0 -0
  104. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/java_toolkit.py +0 -0
  105. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/javascript_toolkit.py +0 -0
  106. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/perl_toolkit.py +0 -0
  107. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/python_toolkit.py +0 -0
  108. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/ruby_toolkit.py +0 -0
  109. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/rust_toolkit.py +0 -0
  110. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/scala_toolkit.py +0 -0
  111. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/swift_toolkit.py +0 -0
  112. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/query_tool_languages/typescript_toolkit.py +0 -0
  113. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/report_generator.py +0 -0
  114. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/scip_indexer.py +0 -0
  115. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/scip_pb2.py +0 -0
  116. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/system.py +0 -0
  117. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/tree_sitter_parser.py +0 -0
  118. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/tools/type_utils.py +0 -0
  119. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/debug_log.py +0 -0
  120. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/git_utils.py +0 -0
  121. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/path_ignore.py +0 -0
  122. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/repo_path.py +0 -0
  123. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/tool_limits.py +0 -0
  124. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/tree_sitter_manager.py +0 -0
  125. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/utils/visualize_graph.py +0 -0
  126. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/__vite-browser-external-9wXp6ZBx.js +0 -0
  127. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/function-calls-BtRHrqa2.png +0 -0
  128. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/graph-total-D1fBAugo.png +0 -0
  129. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/hero-graph-2voMJp2a.jpg +0 -0
  130. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/hierarchy-DGADo0YT.png +0 -0
  131. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/index-C-187lf0.js +0 -0
  132. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/index-fNAa6jgv.css +0 -0
  133. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/parser-pyodide.worker-BgsDfaad.js +0 -0
  134. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/parser.worker-_nvrecvj.js +0 -0
  135. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/assets/tree-sitter-qKYAACSa.wasm +0 -0
  136. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/cgcIcon.png +0 -0
  137. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/favicon.ico +0 -0
  138. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/index.html +0 -0
  139. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/logo-icon.svg +0 -0
  140. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/logo.svg +0 -0
  141. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/placeholder.svg +0 -0
  142. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/preview-image.png +0 -0
  143. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/robots.txt +0 -0
  144. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c.wasm +0 -0
  145. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-c_sharp.wasm +0 -0
  146. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-core.js +0 -0
  147. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-cpp.wasm +0 -0
  148. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-dart.wasm +0 -0
  149. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-go.wasm +0 -0
  150. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-java.wasm +0 -0
  151. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-javascript.wasm +0 -0
  152. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-kotlin.wasm +0 -0
  153. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-perl.wasm +0 -0
  154. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-php.wasm +0 -0
  155. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-python.wasm +0 -0
  156. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-ruby.wasm +0 -0
  157. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-rust.wasm +0 -0
  158. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-swift.wasm +0 -0
  159. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-tsx.wasm +0 -0
  160. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter-typescript.wasm +0 -0
  161. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/tree-sitter.wasm +0 -0
  162. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.js +0 -0
  163. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/dist/wasm/web-tree-sitter.wasm +0 -0
  164. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext/viz/server.py +0 -0
  165. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext.egg-info/SOURCES.txt +0 -0
  166. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext.egg-info/dependency_links.txt +0 -0
  167. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext.egg-info/entry_points.txt +0 -0
  168. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext.egg-info/requires.txt +0 -0
  169. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/src/codegraphcontext.egg-info/top_level.txt +0 -0
  170. {codegraphcontext-0.4.14 → codegraphcontext-0.4.16}/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.14
3
+ Version: 0.4.16
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
@@ -155,7 +155,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
155
155
  ---
156
156
 
157
157
  ## 📍 Quick Navigation
158
- * [🚀 Quick Start](#quick-start)
158
+ * [🚀 Quick Start](#-installation--quick-start)
159
159
  * [🌐 Supported Programming Languages](#supported-programming-languages)
160
160
  * [🛠️ CLI Toolkit](#for-cli-toolkit-mode)
161
161
  * [🤖 MCP Server](#-for-mcp-server-mode)
@@ -183,7 +183,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
183
183
  ---
184
184
 
185
185
  ## Project Details
186
- - **Version:** 0.4.14
186
+ - **Version:** 0.4.16
187
187
  - **Authors:** Shashank Shekhar Singh <shashankshekharsingh1205@gmail.com>
188
188
  - **License:** MIT License (See [LICENSE](LICENSE) for details)
189
189
  - **Website:** [CodeGraphContext](http://codegraphcontext.vercel.app/)
@@ -70,7 +70,7 @@ A powerful **MCP server** and **CLI toolkit** that indexes local code into a gra
70
70
  ---
71
71
 
72
72
  ## 📍 Quick Navigation
73
- * [🚀 Quick Start](#quick-start)
73
+ * [🚀 Quick Start](#-installation--quick-start)
74
74
  * [🌐 Supported Programming Languages](#supported-programming-languages)
75
75
  * [🛠️ CLI Toolkit](#for-cli-toolkit-mode)
76
76
  * [🤖 MCP Server](#-for-mcp-server-mode)
@@ -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.14
101
+ - **Version:** 0.4.16
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/)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codegraphcontext"
3
- version = "0.4.14"
3
+ version = "0.4.16"
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"
@@ -34,6 +34,22 @@ from .config_manager import resolve_context, ResolvedContext, register_repo_in_c
34
34
  console = Console()
35
35
 
36
36
 
37
+ def _fail_services_init() -> None:
38
+ """Abort the CLI command when database/services could not be initialized."""
39
+ raise typer.Exit(code=1)
40
+
41
+
42
+ def _kuzu_fallback_path(ctx: ResolvedContext) -> Optional[str]:
43
+ """Derive a KùzuDB directory when falling back from another backend."""
44
+ if ctx.db_path:
45
+ return str(Path(ctx.db_path).parent / "kuzudb")
46
+ try:
47
+ from .config_manager import _default_global_db_path
48
+ return _default_global_db_path("kuzudb")
49
+ except Exception:
50
+ return None
51
+
52
+
37
53
  def _print_call_resolution_diagnostics(graph_builder: GraphBuilder, limit: int = 5) -> None:
38
54
  diagnostics = getattr(graph_builder, "last_call_resolution_diagnostics", [])
39
55
  if not diagnostics:
@@ -59,14 +75,17 @@ def _print_call_resolution_diagnostics(graph_builder: GraphBuilder, limit: int =
59
75
  console.print(table)
60
76
 
61
77
 
62
- def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, Any, Any, ResolvedContext]:
78
+ def _initialize_services(
79
+ cli_context_flag: Optional[str] = None,
80
+ cwd: Optional[Path] = None,
81
+ ) -> tuple[Any, Any, Any, ResolvedContext]:
63
82
  """
64
83
  Initializes and returns core service managers based on the resolved context.
65
84
  Returns (db_manager, graph_builder, code_finder, resolved_context).
66
85
  """
67
86
  ensure_first_run_bootstrap()
68
87
  console.print("[dim]Resolving context...[/dim]")
69
- ctx = resolve_context(cli_context_flag)
88
+ ctx = resolve_context(cli_context_flag, cwd=cwd)
70
89
 
71
90
  # Let the user know what context we're operating in
72
91
  if ctx.mode == "named":
@@ -93,7 +112,7 @@ def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, A
93
112
  db_manager = get_database_manager(db_path=runtime_path or ctx.db_path)
94
113
  except ValueError as e:
95
114
  console.print(f"[bold red]Database Configuration Error:[/bold red] {e}")
96
- return None, None, None, ctx
115
+ _fail_services_init()
97
116
 
98
117
  try:
99
118
  db_manager.get_driver()
@@ -110,15 +129,16 @@ def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, A
110
129
  except Exception:
111
130
  pass
112
131
 
113
- # Re-initialize explicitly with KùzuDB
132
+ # Re-initialize explicitly with KùzuDB (never reuse the FalkorDB directory)
114
133
  from ..core.database_kuzu import KuzuDBManager
115
- db_manager = KuzuDBManager()
134
+ kuzu_path = _kuzu_fallback_path(ctx)
135
+ db_manager = KuzuDBManager(db_path=kuzu_path)
116
136
  try:
117
137
  db_manager.get_driver()
118
138
  console.print("[green]✓[/green] Successfully switched to KùzuDB fallback")
119
139
  except Exception as kuzu_e:
120
140
  console.print(f"[bold red]Critical Error:[/bold red] Both FalkorDB and KùzuDB failed: {kuzu_e}")
121
- return None, None, None, ctx
141
+ _fail_services_init()
122
142
  else:
123
143
  selected_db = (
124
144
  os.environ.get("CGC_RUNTIME_DB_TYPE")
@@ -135,20 +155,20 @@ def _initialize_services(cli_context_flag: Optional[str] = None) -> tuple[Any, A
135
155
  console.print("[cyan]Neo4j failed and CGC_ALLOW_NEO4J_FALLBACK=true. Falling back to KuzuDB...[/cyan]")
136
156
  try:
137
157
  from ..core.database_kuzu import KuzuDBManager
138
- db_manager = KuzuDBManager()
158
+ db_manager = KuzuDBManager(db_path=_kuzu_fallback_path(ctx))
139
159
  db_manager.get_driver()
140
160
  console.print("[green]✓[/green] Successfully switched to KuzuDB fallback")
141
161
  except Exception as kuzu_e:
142
162
  console.print(f"[bold red]Critical Error:[/bold red] Neo4j failed and KuzuDB fallback failed: {kuzu_e}")
143
- return None, None, None, ctx
163
+ _fail_services_init()
144
164
  else:
145
165
  if selected_db == "neo4j":
146
166
  console.print("[yellow]Tip:[/yellow] To continue without Neo4j, rerun with --db kuzudb")
147
- return None, None, None, ctx
167
+ _fail_services_init()
148
168
  else:
149
169
  console.print(f"[bold red]Database Connection Error:[/bold red] {e}")
150
170
  console.print("Please ensure your database is configured correctly or run 'cgc doctor'.")
151
- return None, None, None, ctx
171
+ _fail_services_init()
152
172
 
153
173
  # The GraphBuilder requires an event loop, even for synchronous-style execution
154
174
  try:
@@ -224,17 +244,18 @@ async def _run_index_with_progress(graph_builder: GraphBuilder, path_obj: Path,
224
244
  def index_helper(path: str, context: Optional[str] = None):
225
245
  """Synchronously indexes a repository in a given context."""
226
246
  time_start = time.time()
227
- services = _initialize_services(context)
247
+ path_obj = Path(path).resolve()
248
+ index_cwd = path_obj if path_obj.is_dir() else path_obj.parent
249
+ services = _initialize_services(context, cwd=index_cwd)
228
250
  if not all(services[:3]):
229
- return
251
+ _fail_services_init()
230
252
 
231
253
  db_manager, graph_builder, code_finder, ctx = services
232
- path_obj = Path(path).resolve()
233
254
 
234
255
  if not path_obj.exists():
235
256
  console.print(f"[red]Error: Path does not exist: {path_obj}[/red]")
236
257
  db_manager.close_driver()
237
- return
258
+ raise typer.Exit(code=1)
238
259
 
239
260
  indexed_repos = code_finder.list_indexed_repositories()
240
261
  repo_exists = any_repo_matches_path(indexed_repos, path_obj)
@@ -298,7 +319,7 @@ def add_package_helper(package_name: str, language: str, context: Optional[str]
298
319
  """Synchronously indexes a package."""
299
320
  services = _initialize_services(context)
300
321
  if not all(services[:3]):
301
- return
322
+ _fail_services_init()
302
323
 
303
324
  db_manager, graph_builder, code_finder, ctx = services
304
325
 
@@ -332,7 +353,7 @@ def list_repos_helper(context: Optional[str] = None):
332
353
  """Lists all indexed repositories."""
333
354
  services = _initialize_services(context)
334
355
  if not all(services[:3]):
335
- return
356
+ _fail_services_init()
336
357
 
337
358
  db_manager, _, code_finder, ctx = services
338
359
 
@@ -362,7 +383,7 @@ def delete_helper(repo_path: str, context: Optional[str] = None):
362
383
  """Deletes a repository from the graph."""
363
384
  services = _initialize_services(context)
364
385
  if not all(services[:3]):
365
- return
386
+ _fail_services_init()
366
387
 
367
388
  db_manager, graph_builder, _, ctx = services
368
389
 
@@ -382,7 +403,7 @@ def cypher_helper(query: str, context: Optional[str] = None):
382
403
  """Executes a read-only Cypher query."""
383
404
  services = _initialize_services(context)
384
405
  if not all(services[:3]):
385
- return
406
+ _fail_services_init()
386
407
 
387
408
  db_manager, _, _, ctx = services
388
409
 
@@ -393,7 +414,7 @@ def cypher_helper(query: str, context: Optional[str] = None):
393
414
  if re.search(pattern, query, re.IGNORECASE):
394
415
  console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
395
416
  db_manager.close_driver()
396
- return
417
+ raise typer.Exit(code=1)
397
418
 
398
419
  try:
399
420
  with db_manager.get_driver().session() as session:
@@ -412,7 +433,7 @@ def cypher_helper_visual(query: str, context: Optional[str] = None):
412
433
 
413
434
  services = _initialize_services(context)
414
435
  if not all(services[:3]):
415
- return
436
+ _fail_services_init()
416
437
 
417
438
  db_manager, _, _, ctx = services
418
439
 
@@ -423,7 +444,7 @@ def cypher_helper_visual(query: str, context: Optional[str] = None):
423
444
  if re.search(pattern, query, re.IGNORECASE):
424
445
  console.print("[bold red]Error: This command only supports read-only queries.[/bold red]")
425
446
  db_manager.close_driver()
426
- return
447
+ raise typer.Exit(code=1)
427
448
 
428
449
  try:
429
450
  with db_manager.get_driver().session() as session:
@@ -449,7 +470,7 @@ def visualize_helper(repo_path: Optional[str] = None, port: int = 8000, context:
449
470
  """Generates an interactive visualization using the Playground UI."""
450
471
  services = _initialize_services(context)
451
472
  if not all(services[:3]):
452
- return
473
+ _fail_services_init()
453
474
 
454
475
  db_manager, _, _, ctx = services
455
476
 
@@ -546,7 +567,7 @@ def reindex_helper(path: str, context: Optional[str] = None):
546
567
  time_start = time.time()
547
568
  services = _initialize_services(context)
548
569
  if not all(services[:3]):
549
- return
570
+ _fail_services_init()
550
571
 
551
572
  db_manager, graph_builder, code_finder, ctx = services
552
573
  path_obj = Path(path).resolve()
@@ -595,7 +616,7 @@ def clean_helper(context: Optional[str] = None):
595
616
  """Remove orphaned nodes and relationships from the database."""
596
617
  services = _initialize_services(context)
597
618
  if not all(services[:3]):
598
- return
619
+ _fail_services_init()
599
620
 
600
621
  db_manager, _, _, ctx = services
601
622
 
@@ -643,7 +664,7 @@ def stats_helper(path: str = None, context: Optional[str] = None):
643
664
  """Show indexing statistics for a repository or overall."""
644
665
  services = _initialize_services(context)
645
666
  if not all(services[:3]):
646
- return
667
+ _fail_services_init()
647
668
 
648
669
  db_manager, _, code_finder, ctx = services
649
670
 
@@ -753,7 +774,7 @@ def watch_helper(path: str, context: Optional[str] = None):
753
774
 
754
775
  services = _initialize_services(context)
755
776
  if not all(services[:3]):
756
- return
777
+ _fail_services_init()
757
778
 
758
779
  db_manager, graph_builder, code_finder, ctx = services
759
780
  path_obj = Path(path).resolve()
@@ -19,10 +19,17 @@ console = Console()
19
19
  CONFIG_DIR = Path.home() / ".codegraphcontext"
20
20
  CONFIG_FILE = CONFIG_DIR / ".env"
21
21
 
22
+ # Keys that pin embedded DB directories; must not bleed across profiles via local .env
23
+ DB_PATH_ENV_KEYS = frozenset({
24
+ "FALKORDB_PATH", "FALKORDB_SOCKET_PATH", "KUZUDB_PATH", "LADYBUGDB_PATH",
25
+ })
26
+
22
27
  # Database credential keys (stored in same .env file but not managed as config)
23
28
  DATABASE_CREDENTIAL_KEYS = {
24
29
  "NEO4J_URI", "NEO4J_USERNAME", "NEO4J_PASSWORD", "NEO4J_DATABASE",
25
- "NORNIC_URI", "NORNIC_USERNAME", "NORNIC_PASSWORD", "NORNIC_DATABASE"
30
+ "NORNIC_URI", "NORNIC_USERNAME", "NORNIC_PASSWORD", "NORNIC_DATABASE",
31
+ "FALKORDB_HOST", "FALKORDB_PORT", "FALKORDB_PASSWORD", "FALKORDB_SSL",
32
+ "FALKORDB_GRAPH_NAME",
26
33
  }
27
34
 
28
35
  # Default configuration values
@@ -669,7 +676,10 @@ def _default_global_db_path(database: str) -> str:
669
676
  if database == "falkordb":
670
677
  custom_path = load_config().get("FALKORDB_PATH")
671
678
  if custom_path:
672
- return str(Path(custom_path).resolve())
679
+ resolved = Path(custom_path).resolve()
680
+ # Ignore paths from another profile/repo that leaked via local .env
681
+ if str(resolved).startswith(str(CONFIG_DIR.resolve())):
682
+ return str(resolved)
673
683
  if _LEGACY_FALKORDB_PATH.exists():
674
684
  return str(_LEGACY_FALKORDB_PATH)
675
685
  return str(CONFIG_DIR / "global" / "db" / database)
@@ -302,6 +302,7 @@ def _load_credentials(cli_context_flag: Optional[str] = None):
302
302
  ensure_config_dir,
303
303
  codegraphcontext_dotenv_at_cwd,
304
304
  normalize_config_path,
305
+ DB_PATH_ENV_KEYS,
305
306
  )
306
307
 
307
308
  # Ensure config directory exists (lazy initialization)
@@ -371,6 +372,11 @@ def _load_credentials(cli_context_flag: Optional[str] = None):
371
372
  if local_cgc_env and local_cgc_env.resolve() != global_env_path.resolve():
372
373
  with open(local_cgc_env, "r", encoding="utf-8", errors="replace") as f:
373
374
  vals = dotenv_values(stream=f)
375
+ # Do not let a repo-local profile override another user's global DB paths.
376
+ vals = {
377
+ k: v for k, v in (vals or {}).items()
378
+ if k not in DB_PATH_ENV_KEYS
379
+ }
374
380
  _append_source(str(local_cgc_env), vals)
375
381
  except Exception as e:
376
382
  console.print(
@@ -622,7 +628,8 @@ def bundle_export(
622
628
 
623
629
  services = _initialize_services(context)
624
630
  if not all(services[:3]):
625
- return
631
+ from .cli_helpers import _fail_services_init
632
+ _fail_services_init()
626
633
  db_manager, _, code_finder = services[:3]
627
634
 
628
635
  try:
@@ -655,6 +662,7 @@ def bundle_export(
655
662
  def bundle_import(
656
663
  bundle_file: str = typer.Argument(..., help="Path to the .cgc bundle file to import"),
657
664
  clear: bool = typer.Option(False, "--clear", help="Clear existing graph data before importing"),
665
+ yes: bool = typer.Option(False, "--yes", "-y", help="Skip confirmation when using --clear"),
658
666
  context: Optional[str] = typer.Option(None, "--context", "-c", help="Specific context to use"),
659
667
  ):
660
668
  """
@@ -672,7 +680,8 @@ def bundle_import(
672
680
 
673
681
  services = _initialize_services(context)
674
682
  if not all(services[:3]):
675
- return
683
+ from .cli_helpers import _fail_services_init
684
+ _fail_services_init()
676
685
  db_manager, graph_builder, code_finder = services[:3]
677
686
 
678
687
  try:
@@ -684,9 +693,9 @@ def bundle_import(
684
693
 
685
694
  if clear:
686
695
  console.print("[yellow]⚠️ Warning: This will clear all existing graph data![/yellow]")
687
- if not typer.confirm("Are you sure you want to continue?", default=False):
696
+ if not yes and not typer.confirm("Are you sure you want to continue?", default=False):
688
697
  console.print("[yellow]Import cancelled[/yellow]")
689
- return
698
+ raise typer.Exit(code=1)
690
699
 
691
700
  console.print(f"[cyan]Importing bundle from {bundle_path}...[/cyan]")
692
701
 
@@ -1026,6 +1035,26 @@ def doctor():
1026
1035
  console.print(" [red]✗[/red] LadybugDB core (ladybug) is not installed")
1027
1036
  console.print(" Run: pip install ladybug")
1028
1037
  all_checks_passed = False
1038
+ elif default_db == "falkordb-remote":
1039
+ host = os.environ.get("FALKORDB_HOST")
1040
+ if host:
1041
+ port = os.environ.get("FALKORDB_PORT", "6379")
1042
+ console.print(f" [cyan]Endpoint:[/cyan] {host}:{port}")
1043
+ try:
1044
+ from codegraphcontext.core.database_falkordb_remote import FalkorDBRemoteManager
1045
+ ok, msg = FalkorDBRemoteManager.test_connection()
1046
+ if ok:
1047
+ console.print(" [green]✓[/green] FalkorDB remote connection successful")
1048
+ else:
1049
+ console.print(f" [red]✗[/red] FalkorDB remote connection failed: {msg}")
1050
+ all_checks_passed = False
1051
+ except Exception as exc:
1052
+ console.print(f" [red]✗[/red] FalkorDB remote check error: {exc}")
1053
+ all_checks_passed = False
1054
+ else:
1055
+ console.print(" [red]✗[/red] FALKORDB_HOST is not configured")
1056
+ console.print(" Run: cgc config set FALKORDB_HOST 127.0.0.1")
1057
+ all_checks_passed = False
1029
1058
  else:
1030
1059
  # FalkorDB
1031
1060
  try:
@@ -1200,7 +1229,8 @@ def delete(
1200
1229
  # Delete all repositories
1201
1230
  services = _initialize_services(context)
1202
1231
  if not all(services[:3]):
1203
- return
1232
+ from .cli_helpers import _fail_services_init
1233
+ _fail_services_init()
1204
1234
  db_manager, graph_builder, code_finder = services[:3]
1205
1235
 
1206
1236
  try:
@@ -1435,7 +1465,8 @@ def find_by_name(
1435
1465
  _load_credentials()
1436
1466
  services = _initialize_services(context)
1437
1467
  if not all(services[:3]):
1438
- return
1468
+ from .cli_helpers import _fail_services_init
1469
+ _fail_services_init()
1439
1470
  db_manager, graph_builder, code_finder = services[:3]
1440
1471
 
1441
1472
  # Resolve effective fuzzy setting: CLI flag wins, else config, else true.
@@ -1557,7 +1588,8 @@ def find_by_pattern(
1557
1588
  _load_credentials()
1558
1589
  services = _initialize_services(context)
1559
1590
  if not all(services[:3]):
1560
- return
1591
+ from .cli_helpers import _fail_services_init
1592
+ _fail_services_init()
1561
1593
  db_manager, graph_builder, code_finder = services[:3]
1562
1594
 
1563
1595
  try:
@@ -1650,7 +1682,8 @@ def find_by_type(
1650
1682
  _load_credentials()
1651
1683
  services = _initialize_services(context)
1652
1684
  if not all(services[:3]):
1653
- return
1685
+ from .cli_helpers import _fail_services_init
1686
+ _fail_services_init()
1654
1687
  db_manager, graph_builder, code_finder = services[:3]
1655
1688
 
1656
1689
  try:
@@ -1705,7 +1738,8 @@ def find_by_variable(
1705
1738
  _load_credentials()
1706
1739
  services = _initialize_services(context)
1707
1740
  if not all(services[:3]):
1708
- return
1741
+ from .cli_helpers import _fail_services_init
1742
+ _fail_services_init()
1709
1743
  db_manager, graph_builder, code_finder = services[:3]
1710
1744
 
1711
1745
  try:
@@ -1751,7 +1785,8 @@ def find_by_content_search(
1751
1785
  _load_credentials()
1752
1786
  services = _initialize_services(context)
1753
1787
  if not all(services[:3]):
1754
- return
1788
+ from .cli_helpers import _fail_services_init
1789
+ _fail_services_init()
1755
1790
  db_manager, graph_builder, code_finder = services[:3]
1756
1791
 
1757
1792
  try:
@@ -1813,7 +1848,8 @@ def find_by_decorator_search(
1813
1848
  _load_credentials()
1814
1849
  services = _initialize_services(context)
1815
1850
  if not all(services[:3]):
1816
- return
1851
+ from .cli_helpers import _fail_services_init
1852
+ _fail_services_init()
1817
1853
  db_manager, graph_builder, code_finder = services[:3]
1818
1854
 
1819
1855
  try:
@@ -1861,7 +1897,8 @@ def find_by_argument_search(
1861
1897
  _load_credentials()
1862
1898
  services = _initialize_services(context)
1863
1899
  if not all(services[:3]):
1864
- return
1900
+ from .cli_helpers import _fail_services_init
1901
+ _fail_services_init()
1865
1902
  db_manager, graph_builder, code_finder = services[:3]
1866
1903
 
1867
1904
  try:
@@ -1917,7 +1954,8 @@ def analyze_calls(
1917
1954
  _load_credentials()
1918
1955
  services = _initialize_services(context)
1919
1956
  if not all(services[:3]):
1920
- return
1957
+ from .cli_helpers import _fail_services_init
1958
+ _fail_services_init()
1921
1959
  db_manager, graph_builder, code_finder = services[:3]
1922
1960
 
1923
1961
  try:
@@ -1973,7 +2011,8 @@ def analyze_callers(
1973
2011
  _load_credentials()
1974
2012
  services = _initialize_services(context)
1975
2013
  if not all(services[:3]):
1976
- return
2014
+ from .cli_helpers import _fail_services_init
2015
+ _fail_services_init()
1977
2016
  db_manager, graph_builder, code_finder = services[:3]
1978
2017
 
1979
2018
  try:
@@ -2034,7 +2073,8 @@ def analyze_chain(
2034
2073
  _load_credentials()
2035
2074
  services = _initialize_services(context)
2036
2075
  if not all(services[:3]):
2037
- return
2076
+ from .cli_helpers import _fail_services_init
2077
+ _fail_services_init()
2038
2078
  db_manager, graph_builder, code_finder = services[:3]
2039
2079
 
2040
2080
  try:
@@ -2104,7 +2144,8 @@ def analyze_kotlin_call_audit(
2104
2144
  _load_credentials()
2105
2145
  services = _initialize_services(context)
2106
2146
  if not all(services[:3]):
2107
- return
2147
+ from .cli_helpers import _fail_services_init
2148
+ _fail_services_init()
2108
2149
  db_manager, _, code_finder = services[:3]
2109
2150
 
2110
2151
  try:
@@ -2164,7 +2205,8 @@ def analyze_dependencies(
2164
2205
  _load_credentials()
2165
2206
  services = _initialize_services(context)
2166
2207
  if not all(services[:3]):
2167
- return
2208
+ from .cli_helpers import _fail_services_init
2209
+ _fail_services_init()
2168
2210
  db_manager, graph_builder, code_finder = services[:3]
2169
2211
 
2170
2212
  try:
@@ -2216,7 +2258,8 @@ def analyze_inheritance_tree(
2216
2258
  _load_credentials()
2217
2259
  services = _initialize_services(context)
2218
2260
  if not all(services[:3]):
2219
- return
2261
+ from .cli_helpers import _fail_services_init
2262
+ _fail_services_init()
2220
2263
  db_manager, graph_builder, code_finder = services[:3]
2221
2264
 
2222
2265
  try:
@@ -2286,7 +2329,8 @@ def analyze_complexity(
2286
2329
  _load_credentials()
2287
2330
  services = _initialize_services(context)
2288
2331
  if not all(services[:3]):
2289
- return
2332
+ from .cli_helpers import _fail_services_init
2333
+ _fail_services_init()
2290
2334
  db_manager, graph_builder, code_finder = services[:3]
2291
2335
 
2292
2336
  _FILE_EXTENSIONS = ('.py', '.js', '.ts', '.jsx', '.tsx', '.go', '.rs', '.rb',
@@ -2363,7 +2407,8 @@ def analyze_dead_code(
2363
2407
  _load_credentials()
2364
2408
  services = _initialize_services(context)
2365
2409
  if not all(services[:3]):
2366
- return
2410
+ from .cli_helpers import _fail_services_init
2411
+ _fail_services_init()
2367
2412
  db_manager, graph_builder, code_finder = services[:3]
2368
2413
 
2369
2414
  try:
@@ -2417,7 +2462,8 @@ def analyze_overrides(
2417
2462
  _load_credentials()
2418
2463
  services = _initialize_services(context)
2419
2464
  if not all(services[:3]):
2420
- return
2465
+ from .cli_helpers import _fail_services_init
2466
+ _fail_services_init()
2421
2467
  db_manager, graph_builder, code_finder = services[:3]
2422
2468
 
2423
2469
  try:
@@ -2472,7 +2518,8 @@ def analyze_variable_usage(
2472
2518
  _load_credentials()
2473
2519
  services = _initialize_services(context)
2474
2520
  if not all(services[:3]):
2475
- return
2521
+ from .cli_helpers import _fail_services_init
2522
+ _fail_services_init()
2476
2523
  db_manager, graph_builder, code_finder = services[:3]
2477
2524
 
2478
2525
  try:
@@ -2634,7 +2681,7 @@ def main(
2634
2681
  "--database",
2635
2682
  "--db",
2636
2683
  "-db",
2637
- help="[Global] Temporarily override database backend (falkordb, falkordb-remote, neo4j, or kuzudb) for any command"
2684
+ help="[Global] Temporarily override database backend (falkordb, falkordb-remote, kuzudb, ladybugdb, neo4j, or nornic) for any command"
2638
2685
  ),
2639
2686
  visual: bool = typer.Option(
2640
2687
  False,
@@ -2849,7 +2896,7 @@ def _write_datasource_graph(ingested: dict) -> None:
2849
2896
  raise typer.Exit(1)
2850
2897
 
2851
2898
  from codegraphcontext.tools.indexing.persistence.writer import GraphWriter
2852
- GraphWriter(driver).write_datasource_graph(ingested)
2899
+ GraphWriter(driver, db_manager=dm).write_datasource_graph(ingested)
2853
2900
 
2854
2901
 
2855
2902
  if __name__ == "__main__":