code-graph-rag 0.2.19__tar.gz → 0.3.2__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 (462) hide show
  1. {code_graph_rag-0.2.19/code_graph_rag.egg-info → code_graph_rag-0.3.2}/PKG-INFO +7 -6
  2. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/PYPI_README.md +5 -5
  3. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/README.md +1 -2
  4. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2/code_graph_rag.egg-info}/PKG-INFO +7 -6
  5. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/code_graph_rag.egg-info/requires.txt +3 -0
  6. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/cli.py +15 -5
  7. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/config.py +16 -1
  8. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/core.py +3 -0
  9. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/providers.py +7 -0
  10. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/exceptions.py +6 -4
  11. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/graph_updater.py +42 -0
  12. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/logs.py +7 -0
  13. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go_frontend/frontend.py +6 -3
  14. code_graph_rag-0.3.2/codebase_rag/parsers/go_frontend/gotypes/go.mod +10 -0
  15. code_graph_rag-0.3.2/codebase_rag/parsers/go_frontend/gotypes/go.sum +8 -0
  16. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/dependencies.py +26 -1
  17. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/vector_store.py +18 -1
  18. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/pyproject.toml +9 -3
  19. code_graph_rag-0.2.19/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -10
  20. code_graph_rag-0.2.19/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -8
  21. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/LICENSE +0 -0
  22. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/cgr/__init__.py +0 -0
  23. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/code_graph_rag.egg-info/SOURCES.txt +0 -0
  24. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/code_graph_rag.egg-info/dependency_links.txt +0 -0
  25. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/code_graph_rag.egg-info/entry_points.txt +0 -0
  26. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/code_graph_rag.egg-info/top_level.txt +0 -0
  27. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/__init__.py +0 -0
  28. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/_cli_env.py +0 -0
  29. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/__init__.py +0 -0
  30. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
  31. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
  32. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
  33. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
  34. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
  35. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
  36. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
  37. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
  38. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
  39. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
  40. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
  41. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
  42. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
  43. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
  44. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
  45. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
  46. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
  47. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
  48. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
  49. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
  50. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
  51. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
  52. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
  53. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
  54. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
  55. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
  56. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
  57. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
  58. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
  59. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
  60. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
  61. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
  62. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
  63. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
  64. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
  65. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
  66. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
  67. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
  68. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
  69. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
  70. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
  71. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
  72. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
  73. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
  74. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
  75. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
  76. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/ast_cache.py +0 -0
  77. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/capture.py +0 -0
  78. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/check_isolation.py +0 -0
  79. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/checkout_state.py +0 -0
  80. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/cli_help.py +0 -0
  81. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/cli_runtime.py +0 -0
  82. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/console_marks.py +0 -0
  83. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/__init__.py +0 -0
  84. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_cpp.py +0 -0
  85. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_csharp.py +0 -0
  86. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_dart.py +0 -0
  87. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_go.py +0 -0
  88. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_java.py +0 -0
  89. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_js.py +0 -0
  90. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_julia.py +0 -0
  91. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_lua.py +0 -0
  92. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_nodes.py +0 -0
  93. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_php.py +0 -0
  94. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_python.py +0 -0
  95. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_rust.py +0 -0
  96. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_scala.py +0 -0
  97. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/ast_sql.py +0 -0
  98. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/build.py +0 -0
  99. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/cli.py +0 -0
  100. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/deadcode_roots.py +0 -0
  101. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/deps.py +0 -0
  102. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/duplicates.py +0 -0
  103. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/embedded_graph.py +0 -0
  104. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/fqn_specs.py +0 -0
  105. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/graph.py +0 -0
  106. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/health.py +0 -0
  107. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/interface.py +0 -0
  108. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/lang_tooling.py +0 -0
  109. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/languages.py +0 -0
  110. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/mcp.py +0 -0
  111. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/notebook.py +0 -0
  112. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/security.py +0 -0
  113. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/sqlite_vectors.py +0 -0
  114. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/stdlib_types.py +0 -0
  115. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/structural.py +0 -0
  116. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/constants/trace.py +0 -0
  117. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/context_pruning.py +0 -0
  118. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/context_slice.py +0 -0
  119. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/crash_correlation.py +0 -0
  120. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/cypher_queries.py +0 -0
  121. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/dead_code.py +0 -0
  122. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/decorators.py +0 -0
  123. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/docker-compose.yaml +0 -0
  124. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/duplicates.py +0 -0
  125. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/__init__.py +0 -0
  126. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/cli.py +0 -0
  127. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/contract.py +0 -0
  128. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/import_paths.py +0 -0
  129. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/imports.py +0 -0
  130. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/occurrences.py +0 -0
  131. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/patcher.py +0 -0
  132. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/rename.py +0 -0
  133. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/signature_bind.py +0 -0
  134. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/signature_contract.py +0 -0
  135. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/signature_spec.py +0 -0
  136. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/sites.py +0 -0
  137. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editing/transaction.py +0 -0
  138. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/editor_links.py +0 -0
  139. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/__init__.py +0 -0
  140. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/compiler.py +0 -0
  141. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/connection.py +0 -0
  142. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/cypher_ast.py +0 -0
  143. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/executor.py +0 -0
  144. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/expressions.py +0 -0
  145. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/extension.py +0 -0
  146. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/functions.py +0 -0
  147. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/lexer.py +0 -0
  148. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/limits.py +0 -0
  149. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/native.py +0 -0
  150. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/parser.py +0 -0
  151. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/procedures.py +0 -0
  152. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/sql.py +0 -0
  153. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/store.py +0 -0
  154. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedded_graph/types.py +0 -0
  155. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/embedder.py +0 -0
  156. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/flow_verdict.py +0 -0
  157. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/function_registry.py +0 -0
  158. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/gloss.py +0 -0
  159. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/gloss_anchor.py +0 -0
  160. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/gloss_repair.py +0 -0
  161. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/graph_audit.py +0 -0
  162. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/graph_cli.py +0 -0
  163. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/graph_dialects.py +0 -0
  164. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/graph_loader.py +0 -0
  165. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/graph_query.py +0 -0
  166. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/interface_skip.py +0 -0
  167. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/language_spec.py +0 -0
  168. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/main.py +0 -0
  169. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/mcp/__init__.py +0 -0
  170. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/mcp/client.py +0 -0
  171. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/mcp/server.py +0 -0
  172. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/mcp/tools.py +0 -0
  173. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/mgclient_compat.py +0 -0
  174. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/mgclient_probe.py +0 -0
  175. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/models.py +0 -0
  176. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parser_fingerprint.py +0 -0
  177. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parser_loader.py +0 -0
  178. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/__init__.py +0 -0
  179. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/anchor_hash.py +0 -0
  180. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_fingerprint.py +0 -0
  181. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
  182. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
  183. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +0 -0
  184. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
  185. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
  186. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
  187. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
  188. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
  189. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_scope.py +0 -0
  190. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/ast_grep_tier.py +0 -0
  191. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/build_lock.py +0 -0
  192. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/call_processor.py +0 -0
  193. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/call_resolver.py +0 -0
  194. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
  195. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/base_targets.py +0 -0
  196. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
  197. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/identity.py +0 -0
  198. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
  199. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/mixin.py +0 -0
  200. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
  201. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
  202. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
  203. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/class_ingest/utils.py +0 -0
  204. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/contract_linking.py +0 -0
  205. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/contracts.py +0 -0
  206. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/__init__.py +0 -0
  207. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/class_macro.py +0 -0
  208. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/function_values.py +0 -0
  209. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/local_types.py +0 -0
  210. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/overloads.py +0 -0
  211. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/preproc_recovery.py +0 -0
  212. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/trailing_annotation.py +0 -0
  213. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/type_inference.py +0 -0
  214. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp/utils.py +0 -0
  215. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
  216. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
  217. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
  218. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
  219. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp/__init__.py +0 -0
  220. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp/arity.py +0 -0
  221. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp/type_inference.py +0 -0
  222. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp/utils.py +0 -0
  223. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
  224. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
  225. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
  226. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
  227. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
  228. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/dart/__init__.py +0 -0
  229. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/dart/package_paths.py +0 -0
  230. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/dart/type_inference.py +0 -0
  231. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/dart/utils.py +0 -0
  232. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/definition_docstring.py +0 -0
  233. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/definition_processor.py +0 -0
  234. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/dependency_parser.py +0 -0
  235. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/dispatch_registry.py +0 -0
  236. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/document_tier.py +0 -0
  237. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
  238. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/endpoint_routes.py +0 -0
  239. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/endpoints.py +0 -0
  240. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/enum_variants.py +0 -0
  241. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/export_detection.py +0 -0
  242. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/factory.py +0 -0
  243. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/field_nodes.py +0 -0
  244. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/flat_module.py +0 -0
  245. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/flow_access/__init__.py +0 -0
  246. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/flow_access/constants.py +0 -0
  247. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/flow_access/processor.py +0 -0
  248. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontend_mode.py +0 -0
  249. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/__init__.py +0 -0
  250. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/cpp.py +0 -0
  251. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/csharp.py +0 -0
  252. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/go.py +0 -0
  253. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/java.py +0 -0
  254. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/protocol.py +0 -0
  255. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/python.py +0 -0
  256. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/frontends/registry.py +0 -0
  257. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/function_ingest.py +0 -0
  258. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/__init__.py +0 -0
  259. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/builds.py +0 -0
  260. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/interface_ingest.py +0 -0
  261. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/interfaces.py +0 -0
  262. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/link_state.py +0 -0
  263. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/module_paths.py +0 -0
  264. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/type_inference.py +0 -0
  265. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go/utils.py +0 -0
  266. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
  267. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
  268. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/__init__.py +0 -0
  269. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/base.py +0 -0
  270. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/cpp.py +0 -0
  271. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/java.py +0 -0
  272. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/js_ts.py +0 -0
  273. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/julia.py +0 -0
  274. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/lua.py +0 -0
  275. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/php.py +0 -0
  276. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/protocol.py +0 -0
  277. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/python.py +0 -0
  278. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/registry.py +0 -0
  279. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/handlers/rust.py +0 -0
  280. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/import_processor.py +0 -0
  281. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/interface_fingerprint.py +0 -0
  282. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/__init__.py +0 -0
  283. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/constants.py +0 -0
  284. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/descriptor.py +0 -0
  285. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/extract.py +0 -0
  286. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/models.py +0 -0
  287. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/processor.py +0 -0
  288. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/registry.py +0 -0
  289. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/resource_names.py +0 -0
  290. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/io_access/url_folding.py +0 -0
  291. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java/__init__.py +0 -0
  292. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java/method_resolver.py +0 -0
  293. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java/type_inference.py +0 -0
  294. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java/type_resolver.py +0 -0
  295. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java/utils.py +0 -0
  296. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java/variable_analyzer.py +0 -0
  297. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
  298. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
  299. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
  300. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java_generated.py +0 -0
  301. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/java_lombok.py +0 -0
  302. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/__init__.py +0 -0
  303. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/commonjs_exports.py +0 -0
  304. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/ingest.py +0 -0
  305. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
  306. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/module_system.py +0 -0
  307. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/overloads.py +0 -0
  308. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/reexports.py +0 -0
  309. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
  310. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/js_ts/utils.py +0 -0
  311. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/julia/__init__.py +0 -0
  312. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/julia/utils.py +0 -0
  313. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/lua/__init__.py +0 -0
  314. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/lua/type_inference.py +0 -0
  315. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/lua/utils.py +0 -0
  316. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/module_docstring.py +0 -0
  317. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/notebook.py +0 -0
  318. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/parameter_nodes.py +0 -0
  319. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/php/__init__.py +0 -0
  320. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/php/class_names.py +0 -0
  321. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/php/namespaces.py +0 -0
  322. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/php/utils.py +0 -0
  323. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/positional_params.py +0 -0
  324. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/__init__.py +0 -0
  325. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/ast_analyzer.py +0 -0
  326. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/class_aliases.py +0 -0
  327. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
  328. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/forward_refs.py +0 -0
  329. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/overloads.py +0 -0
  330. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/receiver_rebinding.py +0 -0
  331. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/type_inference.py +0 -0
  332. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/utils.py +0 -0
  333. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/variable_analyzer.py +0 -0
  334. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py/with_analyzer.py +0 -0
  335. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
  336. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
  337. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/python_source_roots.py +0 -0
  338. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/rpc_exposure.py +0 -0
  339. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/rs/__init__.py +0 -0
  340. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/rs/cargo_semver.py +0 -0
  341. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/rs/type_inference.py +0 -0
  342. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/rs/utils.py +0 -0
  343. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/scala/__init__.py +0 -0
  344. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/scala/utils.py +0 -0
  345. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/semantic_call_join.py +0 -0
  346. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/stdlib_extractor.py +0 -0
  347. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/string_call.py +0 -0
  348. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/structure_processor.py +0 -0
  349. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/type_facts.py +0 -0
  350. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/type_inference.py +0 -0
  351. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/parsers/utils.py +0 -0
  352. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/path_filters.py +0 -0
  353. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/project_selection.py +0 -0
  354. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/prompts.py +0 -0
  355. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/providers/__init__.py +0 -0
  356. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/providers/base.py +0 -0
  357. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/providers/litellm.py +0 -0
  358. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/c_sharp.scm +0 -0
  359. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/dart.scm +0 -0
  360. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/java.scm +0 -0
  361. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/javascript.scm +0 -0
  362. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/julia.scm +0 -0
  363. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/php.scm +0 -0
  364. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/python.scm +0 -0
  365. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/rust.scm +0 -0
  366. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/queries/highlights/typescript.scm +0 -0
  367. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/readme_sections.py +0 -0
  368. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/schema_builder.py +0 -0
  369. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/schema_parse.py +0 -0
  370. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/schemas.py +0 -0
  371. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/__init__.py +0 -0
  372. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/anthropic_token_counter.py +0 -0
  373. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/cypher_guard.py +0 -0
  374. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/filtering.py +0 -0
  375. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/gloss_cleanup.py +0 -0
  376. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/graph_diff.py +0 -0
  377. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/graph_service.py +0 -0
  378. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/llm.py +0 -0
  379. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/neo4j_driver.py +0 -0
  380. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/protobuf_service.py +0 -0
  381. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/provenance.py +0 -0
  382. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/resource_cleanup.py +0 -0
  383. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/services/usage_cost.py +0 -0
  384. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/sql_names.py +0 -0
  385. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/sqlite_vectors.py +0 -0
  386. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/stack/__init__.py +0 -0
  387. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/stack/cli.py +0 -0
  388. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/stack/constants.py +0 -0
  389. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/stack/health.py +0 -0
  390. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/stack/manager.py +0 -0
  391. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/structural_check.py +0 -0
  392. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/structural_delta.py +0 -0
  393. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/sync_guard.py +0 -0
  394. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/sync_lock.py +0 -0
  395. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/taint.py +0 -0
  396. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tool_errors.py +0 -0
  397. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/__init__.py +0 -0
  398. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/ast_grep_service.py +0 -0
  399. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/code_retrieval.py +0 -0
  400. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/codebase_query.py +0 -0
  401. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/directory_lister.py +0 -0
  402. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/duplicate_detection.py +0 -0
  403. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/file_editor.py +0 -0
  404. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/file_reader.py +0 -0
  405. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/file_writer.py +0 -0
  406. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/graph_refresh.py +0 -0
  407. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/graph_rerank.py +0 -0
  408. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/health_checker.py +0 -0
  409. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/language.py +0 -0
  410. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/language_catalog.py +0 -0
  411. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/research.py +0 -0
  412. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/semantic_search.py +0 -0
  413. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/shell_command.py +0 -0
  414. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/structural_editor.py +0 -0
  415. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/structural_search.py +0 -0
  416. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/tool_descriptions.py +0 -0
  417. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tools/web_search.py +0 -0
  418. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/__init__.py +0 -0
  419. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/carry.py +0 -0
  420. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/cli.py +0 -0
  421. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/cpuprofile.py +0 -0
  422. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/dispatch_site.py +0 -0
  423. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/ebpf_pprof.py +0 -0
  424. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/ingest.py +0 -0
  425. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/instrumented.py +0 -0
  426. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/pprof.py +0 -0
  427. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/pytest_plugin.py +0 -0
  428. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/records.py +0 -0
  429. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/resolution.py +0 -0
  430. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/rust_pprof.py +0 -0
  431. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/sourcemap.py +0 -0
  432. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/speedscope.py +0 -0
  433. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/tracer.py +0 -0
  434. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/trace/xdebug.py +0 -0
  435. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/tree_sitter_point.py +0 -0
  436. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/types_defs.py +0 -0
  437. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/unixcoder.py +0 -0
  438. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/__init__.py +0 -0
  439. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/cpp_signatures.py +0 -0
  440. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/endpoints.py +0 -0
  441. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/fqn_resolver.py +0 -0
  442. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/interruptible_thread.py +0 -0
  443. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/json_io.py +0 -0
  444. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/path_utils.py +0 -0
  445. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/process_owner.py +0 -0
  446. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/qn_markers.py +0 -0
  447. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/rich_markdown.py +0 -0
  448. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/source_encoding.py +0 -0
  449. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/source_extraction.py +0 -0
  450. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/terminal_console.py +0 -0
  451. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/utils/token_utils.py +0 -0
  452. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/watch.py +0 -0
  453. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/workspaces/__init__.py +0 -0
  454. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/workspaces/cli.py +0 -0
  455. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/workspaces/constants.py +0 -0
  456. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/workspaces/models.py +0 -0
  457. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codebase_rag/workspaces/storage.py +0 -0
  458. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codec/__init__.py +0 -0
  459. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codec/schema.proto +0 -0
  460. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codec/schema_pb2.py +0 -0
  461. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/codec/schema_pb2.pyi +0 -0
  462. {code_graph_rag-0.2.19 → code_graph_rag-0.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-graph-rag
3
- Version: 0.2.19
3
+ Version: 0.3.2
4
4
  Summary: The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
5
5
  License-Expression: MIT
6
6
  Keywords: rag,retrieval-augmented-generation,knowledge-graph,code-analysis,tree-sitter,mcp,mcp-server,llm,graph-database,semantic-search,codebase,memgraph,developer-tools,monorepo
@@ -78,6 +78,7 @@ Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
78
78
  Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
79
79
  Provides-Extra: semantic
80
80
  Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
81
+ Requires-Dist: sqlite-vec>=0.1.9; ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64")) and extra == "semantic"
81
82
  Requires-Dist: torch>=2.6.0; extra == "semantic"
82
83
  Requires-Dist: transformers>=5.0.0; extra == "semantic"
83
84
  Provides-Extra: milvus
@@ -135,12 +136,12 @@ With semantic code search (UniXcoder embeddings):
135
136
  pip install 'code-graph-rag[semantic]'
136
137
  ```
137
138
 
138
- Qdrant is the default vector store for semantic search. To use Milvus Lite,
139
- install `code-graph-rag[semantic,milvus]`, then set
139
+ The vectors go to a SQLite file beside the embedded graph
140
+ (`~/.cgr/vectors.sqlite`), so semantic search needs no server and no Docker
141
+ either. To use Qdrant instead, set `CGR_VECTOR_STORE_BACKEND=qdrant`. To use
142
+ Milvus Lite, install `code-graph-rag[semantic,milvus]`, then set
140
143
  `CGR_VECTOR_STORE_BACKEND=milvus` and `MILVUS_URI=./.milvus_code_embeddings.db`
141
- before indexing. To keep the vectors in a SQLite file beside the embedded graph
142
- (`~/.cgr/vectors.sqlite`, no server), install `code-graph-rag[semantic,sqlite-vec]`
143
- and set `CGR_VECTOR_STORE_BACKEND=sqlite`.
144
+ before indexing.
144
145
 
145
146
  To compute embeddings on an OpenAI-compatible endpoint (OpenAI, Ollama, vLLM)
146
147
  instead of locally, set `CGR_EMBEDDING_PROVIDER=openai` with
@@ -42,12 +42,12 @@ With semantic code search (UniXcoder embeddings):
42
42
  pip install 'code-graph-rag[semantic]'
43
43
  ```
44
44
 
45
- Qdrant is the default vector store for semantic search. To use Milvus Lite,
46
- install `code-graph-rag[semantic,milvus]`, then set
45
+ The vectors go to a SQLite file beside the embedded graph
46
+ (`~/.cgr/vectors.sqlite`), so semantic search needs no server and no Docker
47
+ either. To use Qdrant instead, set `CGR_VECTOR_STORE_BACKEND=qdrant`. To use
48
+ Milvus Lite, install `code-graph-rag[semantic,milvus]`, then set
47
49
  `CGR_VECTOR_STORE_BACKEND=milvus` and `MILVUS_URI=./.milvus_code_embeddings.db`
48
- before indexing. To keep the vectors in a SQLite file beside the embedded graph
49
- (`~/.cgr/vectors.sqlite`, no server), install `code-graph-rag[semantic,sqlite-vec]`
50
- and set `CGR_VECTOR_STORE_BACKEND=sqlite`.
50
+ before indexing.
51
51
 
52
52
  To compute embeddings on an OpenAI-compatible endpoint (OpenAI, Ollama, vLLM)
53
53
  instead of locally, set `CGR_EMBEDDING_PROVIDER=openai` with
@@ -61,8 +61,7 @@ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by c
61
61
  ## Latest News 🔥
62
62
 
63
63
  <!-- SECTION:latest_news -->
64
- - **Dependency Locking**: Locked `opentelemetry-api` to version 1.45.1 for stability.
65
- - **GHSA Security Fix**: Addressed GHSA-xcq7-p3pf-p88h vulnerability.
64
+ - **SBOM**: CycloneDX SBOM and Docker image attestation published with each release.
66
65
  <!-- /SECTION:latest_news -->
67
66
 
68
67
  See [NEWS.md](NEWS.md) for the full history.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-graph-rag
3
- Version: 0.2.19
3
+ Version: 0.3.2
4
4
  Summary: The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
5
5
  License-Expression: MIT
6
6
  Keywords: rag,retrieval-augmented-generation,knowledge-graph,code-analysis,tree-sitter,mcp,mcp-server,llm,graph-database,semantic-search,codebase,memgraph,developer-tools,monorepo
@@ -78,6 +78,7 @@ Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
78
78
  Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
79
79
  Provides-Extra: semantic
80
80
  Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
81
+ Requires-Dist: sqlite-vec>=0.1.9; ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64")) and extra == "semantic"
81
82
  Requires-Dist: torch>=2.6.0; extra == "semantic"
82
83
  Requires-Dist: transformers>=5.0.0; extra == "semantic"
83
84
  Provides-Extra: milvus
@@ -135,12 +136,12 @@ With semantic code search (UniXcoder embeddings):
135
136
  pip install 'code-graph-rag[semantic]'
136
137
  ```
137
138
 
138
- Qdrant is the default vector store for semantic search. To use Milvus Lite,
139
- install `code-graph-rag[semantic,milvus]`, then set
139
+ The vectors go to a SQLite file beside the embedded graph
140
+ (`~/.cgr/vectors.sqlite`), so semantic search needs no server and no Docker
141
+ either. To use Qdrant instead, set `CGR_VECTOR_STORE_BACKEND=qdrant`. To use
142
+ Milvus Lite, install `code-graph-rag[semantic,milvus]`, then set
140
143
  `CGR_VECTOR_STORE_BACKEND=milvus` and `MILVUS_URI=./.milvus_code_embeddings.db`
141
- before indexing. To keep the vectors in a SQLite file beside the embedded graph
142
- (`~/.cgr/vectors.sqlite`, no server), install `code-graph-rag[semantic,sqlite-vec]`
143
- and set `CGR_VECTOR_STORE_BACKEND=sqlite`.
144
+ before indexing.
144
145
 
145
146
  To compute embeddings on an OpenAI-compatible endpoint (OpenAI, Ollama, vLLM)
146
147
  instead of locally, set `CGR_EMBEDDING_PROVIDER=openai` with
@@ -47,6 +47,9 @@ qdrant-client>=1.9.0
47
47
  torch>=2.6.0
48
48
  transformers>=5.0.0
49
49
 
50
+ [semantic:(sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64")]
51
+ sqlite-vec>=0.1.9
52
+
50
53
  [sqlite-vec]
51
54
  sqlite-vec>=0.1.9
52
55
 
@@ -72,7 +72,7 @@ from .services.provenance import (
72
72
  )
73
73
  from .stack import StackManager
74
74
  from .stack.cli import cli as daemon_cli
75
- from .stack.constants import SERVICE_QDRANT, StackState
75
+ from .stack.constants import SERVICE_MEMGRAPH, SERVICE_QDRANT, StackState
76
76
  from .stack.manager import StackError
77
77
  from .sync_guard import RUNNING_SYNC_TOKENS as _RUNNING_SYNC_TOKENS
78
78
  from .sync_guard import OwnerCheck as _OwnerCheck
@@ -775,15 +775,25 @@ def _resolve_active_projects(projects: str | None, default_project: str) -> list
775
775
  return [default_project]
776
776
 
777
777
 
778
- def _maybe_start_stack() -> None:
778
+ def _maybe_start_stack(skip_embeddings: bool = False) -> None:
779
779
  # The Docker stack serves Memgraph, and Qdrant when the vector settings
780
780
  # pick the bundled one. The embedded graph is a file and Neo4j is the
781
781
  # user's own server, so for them the stack runs only for the vectors:
782
782
  # only its Qdrant is started and checked, since every Memgraph check
783
- # needs a driver those installs need not have.
783
+ # needs a driver those installs need not have. A run that writes no
784
+ # embeddings, or writes them to another backend, needs no Qdrant, so it
785
+ # never starts one: for the embedded graph that means no Docker at all.
786
+ wants_vectors = not (skip_embeddings or settings.SKIP_EMBEDDINGS)
784
787
  if settings.GRAPH_BACKEND == DIALECT_MEMGRAPH:
785
- mgr = StackManager()
788
+ mgr = (
789
+ StackManager()
790
+ if wants_vectors
791
+ and settings.VECTOR_STORE_BACKEND == cs.VectorStoreBackend.QDRANT
792
+ else StackManager(services=(SERVICE_MEMGRAPH,))
793
+ )
786
794
  else:
795
+ if not wants_vectors:
796
+ return
787
797
  mgr = StackManager(services=(SERVICE_QDRANT,))
788
798
  if not mgr.serves_vectors():
789
799
  return
@@ -1479,7 +1489,7 @@ def start(
1479
1489
  _refuse_empty_workspace(workspace_config, update_graph, active_projects)
1480
1490
 
1481
1491
  if not no_start_stack:
1482
- _maybe_start_stack()
1492
+ _maybe_start_stack(skip_embeddings=no_embeddings)
1483
1493
 
1484
1494
  effective_batch_size = settings.resolve_batch_size(batch_size)
1485
1495
 
@@ -452,8 +452,11 @@ class AppConfig(BaseSettings):
452
452
  QDRANT_UPSERT_RETRIES: int = Field(default=3, gt=0)
453
453
  QDRANT_RETRY_BASE_DELAY: float = Field(default=0.5, gt=0)
454
454
  QDRANT_BATCH_SIZE: int = Field(default=50, gt=0)
455
+ # The `sqlite` store is the default for the reason the embedded graph is:
456
+ # a file under CGR_HOME needs no server and no Docker. Qdrant and Milvus
457
+ # stay one setting away.
455
458
  VECTOR_STORE_BACKEND: cs.VectorStoreBackend = Field(
456
- cs.VectorStoreBackend.QDRANT, validation_alias="CGR_VECTOR_STORE_BACKEND"
459
+ cs.VectorStoreBackend.SQLITE, validation_alias="CGR_VECTOR_STORE_BACKEND"
457
460
  )
458
461
  MILVUS_URI: str = "./.milvus_code_embeddings.db"
459
462
  MILVUS_TOKEN: str | None = None
@@ -469,6 +472,18 @@ class AppConfig(BaseSettings):
469
472
  SQLITE_VECTOR_DIM: int = 768
470
473
  SQLITE_VECTOR_TOP_K: int = 5
471
474
 
475
+ @property
476
+ def qdrant_set_without_backend(self) -> bool:
477
+ """Whether Qdrant is configured but the vector store was left to default.
478
+
479
+ Qdrant was the default vector store before the `sqlite` one replaced
480
+ it, so this is how an install upgraded in place looks: its embeddings
481
+ live in Qdrant while cgr now opens an empty file.
482
+ """
483
+ return cs.SETTING_VECTOR_STORE_BACKEND not in self.model_fields_set and any(
484
+ name in self.model_fields_set for name in cs.QDRANT_CONNECTION_SETTINGS
485
+ )
486
+
472
487
  @property
473
488
  def vector_db_file(self) -> Path:
474
489
  if self.SQLITE_VECTOR_PATH is not None:
@@ -262,6 +262,9 @@ PRUNE_PENDING_FILENAME = ".cgr-prune-pending"
262
262
  # PR #3358). Not in CGR_STATE_FILENAMES: no cgr ever wrote one into the tree,
263
263
  # so there is nothing to move out of it.
264
264
  EMBEDDINGS_PENDING_PROJECT_TEMPLATE = ".cgr-embeddings-pending-{digest}"
265
+ # The vector store backend a project's points were last settled in, one file
266
+ # per project for the same reason; likewise never written into the tree.
267
+ EMBEDDINGS_STORE_PROJECT_TEMPLATE = ".cgr-embeddings-store-{digest}"
265
268
  # The marker an earlier build shared between every project of a checkout: a
266
269
  # JSON list of the projects owing a pass, or an empty file. Read so that each
267
270
  # still retries once, then split into the per-project files above.
@@ -191,6 +191,13 @@ QDRANT_DEFAULT_DB_PATH = "./.qdrant_code_embeddings"
191
191
  # The settings field that holds it. Whether it was supplied is read from the
192
192
  # fields the settings sources set, since a supplied value can equal the default.
193
193
  SETTING_QDRANT_DB_PATH = "QDRANT_DB_PATH"
194
+ # Settings whose presence, with VECTOR_STORE_BACKEND left unset, marks an
195
+ # install that stored its embeddings in Qdrant when Qdrant was the default.
196
+ SETTING_VECTOR_STORE_BACKEND = "VECTOR_STORE_BACKEND"
197
+ QDRANT_CONNECTION_SETTINGS = ("QDRANT_URL", SETTING_QDRANT_DB_PATH, "QDRANT_API_KEY")
198
+ # The backend a project synced before cgr stamped its vector store was embedded
199
+ # into: the default then.
200
+ EMBEDDINGS_STORE_UNSTAMPED = VectorStoreBackend.QDRANT
194
201
 
195
202
  SEMANTIC_DEPENDENCIES = (
196
203
  MODULE_PYMILVUS,
@@ -119,12 +119,14 @@ SQLITE_VECTOR_DIM_MISMATCH = (
119
119
  "or re-index with --clean to rebuild the store with the new size."
120
120
  )
121
121
  SQLITE_VEC_NOT_INSTALLED = (
122
- "CGR_VECTOR_STORE_BACKEND=sqlite needs sqlite-vec, which is not installed. "
123
- "Install it with `pip install 'code-graph-rag[sqlite-vec]'` (or "
124
- "`uv sync --extra sqlite-vec`)."
122
+ "The sqlite vector store (the default, CGR_VECTOR_STORE_BACKEND=sqlite) "
123
+ "needs sqlite-vec, which is not installed. Install it with "
124
+ "`pip install 'code-graph-rag[sqlite-vec]'` (or `uv sync --extra "
125
+ "sqlite-vec`); the `semantic` extra includes it."
125
126
  )
126
127
  SQLITE_VEC_EXTENSIONS_UNSUPPORTED = (
127
- "CGR_VECTOR_STORE_BACKEND=sqlite loads the sqlite-vec extension, but this "
128
+ "The sqlite vector store (the default, CGR_VECTOR_STORE_BACKEND=sqlite) "
129
+ "loads the sqlite-vec extension, but this "
128
130
  "Python's sqlite3 module was built without extension loading. Use a Python "
129
131
  "that has it (uv-managed Pythons do), or set CGR_VECTOR_STORE_BACKEND=qdrant."
130
132
  )
@@ -893,6 +893,40 @@ def _embeddings_marker(state_dir: Path, project_name: str) -> Path:
893
893
  return state_dir / cs.EMBEDDINGS_PENDING_PROJECT_TEMPLATE.format(digest=digest)
894
894
 
895
895
 
896
+ def _embeddings_store_stamp(state_dir: Path, project_name: str) -> Path:
897
+ """The file naming the vector store backend `project_name`'s points are in.
898
+
899
+ A pass that settles the project writes the selected backend there. Once
900
+ the setting changes, as when `sqlite` replaced Qdrant as the default, the
901
+ points stay in a store nothing searches, and an unchanged checkout takes
902
+ the in-sync fast path, which never embeds: until the stamp names the
903
+ selected backend the project owes a pass. A checkout synced before the
904
+ stamp existed has none; its points went to the default then, Qdrant, so
905
+ only an install that now selects another backend owes that pass.
906
+ """
907
+ digest = hashlib.sha256(project_name.encode(cs.ENCODING_UTF8)).hexdigest()
908
+ return state_dir / cs.EMBEDDINGS_STORE_PROJECT_TEMPLATE.format(digest=digest)
909
+
910
+
911
+ def _stamp_names_selected_store(stamp: Path) -> bool:
912
+ try:
913
+ stamped = stamp.read_text(encoding=cs.ENCODING_UTF8).strip()
914
+ except FileNotFoundError:
915
+ stamped = str(cs.EMBEDDINGS_STORE_UNSTAMPED)
916
+ except OSError:
917
+ return False
918
+ return stamped == str(settings.VECTOR_STORE_BACKEND)
919
+
920
+
921
+ def _save_embeddings_store(stamp: Path) -> None:
922
+ try:
923
+ stamp.write_text(str(settings.VECTOR_STORE_BACKEND), encoding=cs.ENCODING_UTF8)
924
+ except OSError:
925
+ # Best effort, as for the pending marker: without the stamp the next
926
+ # sync runs the pass again, which is slower but loses nothing.
927
+ logger.debug(ls.EMBEDDINGS_PENDING_NOT_UPDATED)
928
+
929
+
896
930
  def _save_embeddings_owed(marker: Path, project_name: str, owed: bool) -> bool:
897
931
  """Create or remove `project_name`'s marker; say whether that went through."""
898
932
  try:
@@ -10101,6 +10135,10 @@ class GraphUpdater:
10101
10135
  def _owes_embeddings(self) -> bool:
10102
10136
  if _embeddings_marker(self.state_dir, self.project_name).exists():
10103
10137
  return True
10138
+ if not _stamp_names_selected_store(
10139
+ _embeddings_store_stamp(self.state_dir, self.project_name)
10140
+ ):
10141
+ return True
10104
10142
  shared = _load_shared_embeddings_owed(
10105
10143
  self.state_dir / cs.EMBEDDINGS_PENDING_FILENAME
10106
10144
  )
@@ -10122,6 +10160,10 @@ class GraphUpdater:
10122
10160
  """
10123
10161
  if pending:
10124
10162
  logger.warning(ls.EMBEDDINGS_PENDING.format(project=self.project_name))
10163
+ else:
10164
+ _save_embeddings_store(
10165
+ _embeddings_store_stamp(self.state_dir, self.project_name)
10166
+ )
10125
10167
  recorded = _save_embeddings_owed(
10126
10168
  _embeddings_marker(self.state_dir, self.project_name),
10127
10169
  self.project_name,
@@ -275,6 +275,13 @@ VECTOR_STORE_BACKEND_UNAVAILABLE = (
275
275
  "Vector store backend '{backend}' dependencies are not available"
276
276
  )
277
277
  VECTOR_STORE_BACKEND_UNKNOWN = "Unknown vector store backend '{backend}'"
278
+ QDRANT_SET_WITHOUT_BACKEND = (
279
+ "Qdrant settings are set but CGR_VECTOR_STORE_BACKEND is not, so cgr is "
280
+ "using the sqlite vector store at {path}, now the default instead of "
281
+ "Qdrant. Embeddings stored in Qdrant are not searched here. To keep using "
282
+ "Qdrant, set CGR_VECTOR_STORE_BACKEND=qdrant; to keep the sqlite store, "
283
+ "set CGR_VECTOR_STORE_BACKEND=sqlite. Either one silences this notice."
284
+ )
278
285
  VECTOR_STORE_DELETE_PROJECT = (
279
286
  "Deleting {count} {backend} vectors for project '{project}'"
280
287
  )
@@ -373,14 +373,15 @@ def _build_tool(go: str) -> Path | None:
373
373
 
374
374
  The version floor is checked before a build so an old Go is named plainly
375
375
  instead of surfacing as `go build`'s stderr, and a failed build is not
376
- retried on every sync (issue #2395).
376
+ retried on every sync (issue #2395). It is checked before a cached helper
377
+ is reused too: the helper drives the `go` on PATH to load packages, and a
378
+ version manager can put an older Go there after a newer one built it, so
379
+ a cached build must not let a Go below the floor run (PR #3410 review).
377
380
  """
378
381
  cache = _cache_dir()
379
382
  src = cache / "src"
380
383
  out = cache / "out"
381
384
  binary = out / _BINARY_NAME
382
- if artifact_fresh(binary, _newest_source_mtime):
383
- return binary
384
385
  version = _toolchain_version(go)
385
386
  if (required := _too_old(version)) is not None:
386
387
  logger.warning(
@@ -389,6 +390,8 @@ def _build_tool(go: str) -> Path | None:
389
390
  )
390
391
  )
391
392
  return None
393
+ if artifact_fresh(binary, _newest_source_mtime):
394
+ return binary
392
395
  marker = cache / _BUILD_FAILED_MARKER
393
396
  # The fast path: a remembered failure skips the lock, and any wait on it,
394
397
  # entirely. `_compile_and_remember` checks again once the lock is held.
@@ -0,0 +1,10 @@
1
+ module cgr.dev/gotypes
2
+
3
+ go 1.27.2
4
+
5
+ require golang.org/x/tools v0.52.0
6
+
7
+ require (
8
+ golang.org/x/mod v0.42.0 // indirect
9
+ golang.org/x/sync v0.24.0 // indirect
10
+ )
@@ -0,0 +1,8 @@
1
+ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
2
+ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
3
+ golang.org/x/mod v0.42.0 h1:ICeL3t2L30ljSPHHxDnR4fqVcBt/zR2zJAb9juavmQg=
4
+ golang.org/x/mod v0.42.0/go.mod h1:u5fzIrRInkL8MaO1cbRkUHT64v303YIT5KEqpNr7jRs=
5
+ golang.org/x/sync v0.24.0 h1:iqiDrGoDgyuvAKrhLQthUEzU/R378N78gXbBjxed7oA=
6
+ golang.org/x/sync v0.24.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
7
+ golang.org/x/tools v0.52.0 h1:ryxg4U63oaUYk7uOLTF37n43f4qgtGvqV4Ioit1BaEs=
8
+ golang.org/x/tools v0.52.0/go.mod h1:ItcP5UNaVGG+Yc4eIYmaFLNJ4soEopkx5Y2d4lcEurs=
@@ -1,7 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import importlib.util
4
+ from functools import cache
4
5
 
6
+ from loguru import logger
7
+
8
+ from codebase_rag import exceptions as ex
5
9
  from codebase_rag.constants import (
6
10
  MODULE_AST_GREP,
7
11
  MODULE_PYMILVUS,
@@ -45,6 +49,27 @@ def has_sqlite_vec() -> bool:
45
49
  return _check_dependency(MODULE_SQLITE_VEC)
46
50
 
47
51
 
52
+ def sqlite_vec_loadable() -> bool:
53
+ """Whether this Python can load sqlite-vec, which is installed.
54
+
55
+ It loads as a SQLite extension, which some Python builds (pyenv's default
56
+ among them) cannot load. The `sqlite` store is then unavailable, as
57
+ without the package: semantic search is off rather than failing in every
58
+ sync and on `--clean`, and the reason is logged once.
59
+ """
60
+ from codebase_rag.sqlite_vectors import extensions_loadable
61
+
62
+ if extensions_loadable():
63
+ return True
64
+ _warn_sqlite_extensions_unsupported()
65
+ return False
66
+
67
+
68
+ @cache
69
+ def _warn_sqlite_extensions_unsupported() -> None:
70
+ logger.warning(ex.SQLITE_VEC_EXTENSIONS_UNSUPPORTED)
71
+
72
+
48
73
  def has_ast_grep() -> bool:
49
74
  return _check_dependency(MODULE_AST_GREP)
50
75
 
@@ -56,7 +81,7 @@ def has_vector_store_dependencies() -> bool:
56
81
  if backend == VectorStoreBackend.MILVUS:
57
82
  return has_pymilvus()
58
83
  if backend == VectorStoreBackend.SQLITE:
59
- return has_sqlite_vec()
84
+ return has_sqlite_vec() and sqlite_vec_loadable()
60
85
  return has_qdrant_client()
61
86
 
62
87
 
@@ -5,6 +5,7 @@ import json
5
5
  import time
6
6
  import uuid
7
7
  from collections.abc import Callable, Collection, Iterable, Iterator, Mapping, Sequence
8
+ from functools import cache
8
9
  from importlib.metadata import PackageNotFoundError, version
9
10
  from pathlib import Path
10
11
  from typing import TYPE_CHECKING, Any, Protocol, Required, TypedDict, cast
@@ -31,7 +32,12 @@ from .sqlite_vectors import (
31
32
  open_sqlite_vector_client,
32
33
  )
33
34
  from .types_defs import EmbeddingPoint, EmbeddingSymbol
34
- from .utils.dependencies import has_pymilvus, has_qdrant_client, has_sqlite_vec
35
+ from .utils.dependencies import (
36
+ has_pymilvus,
37
+ has_qdrant_client,
38
+ has_sqlite_vec,
39
+ sqlite_vec_loadable,
40
+ )
35
41
 
36
42
  if TYPE_CHECKING:
37
43
  from qdrant_client.models import Filter, Record
@@ -233,6 +239,8 @@ def _get_vector_store() -> VectorStore | None:
233
239
  if not has_sqlite_vec():
234
240
  logger.warning(ls.VECTOR_STORE_BACKEND_UNAVAILABLE.format(backend=backend))
235
241
  return None
242
+ if not sqlite_vec_loadable():
243
+ return None
236
244
  return SqliteVectorStore()
237
245
  return None
238
246
 
@@ -486,6 +494,13 @@ def _ensure_sqlite_collection(client: SqliteVectorClient, validate: bool) -> Non
486
494
  )
487
495
 
488
496
 
497
+ @cache
498
+ def _note_qdrant_set_without_backend() -> None:
499
+ # Once per process, as the graph's own notice: the client reopens after
500
+ # every close, and the setting cannot change under it.
501
+ logger.warning(ls.QDRANT_SET_WITHOUT_BACKEND.format(path=settings.vector_db_file))
502
+
503
+
489
504
  def get_sqlite_vector_client(validate: bool = True) -> SqliteVectorClient:
490
505
  global _CLIENT, _CLIENT_BACKEND
491
506
  if not has_sqlite_vec():
@@ -493,6 +508,8 @@ def get_sqlite_vector_client(validate: bool = True) -> SqliteVectorClient:
493
508
 
494
509
  _ensure_client_backend(VectorStoreBackend.SQLITE)
495
510
  if _CLIENT is None:
511
+ if settings.qdrant_set_without_backend:
512
+ _note_qdrant_set_without_backend()
496
513
  client = open_sqlite_vector_client(settings.vector_db_file)
497
514
  try:
498
515
  _ensure_sqlite_collection(client, validate)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "code-graph-rag"
3
- version = "0.2.19"
3
+ version = "0.3.2"
4
4
  description = "The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs"
5
5
  readme = "PYPI_README.md"
6
6
  requires-python = ">=3.12"
@@ -193,8 +193,13 @@ treesitter-full = [
193
193
  "tree-sitter-markdown>=0.5.1",
194
194
  ]
195
195
 
196
+ # sqlite-vec is the default vector store's, on the platforms it ships wheels
197
+ # for (it has no sdist), which cover every one torch ships wheels for; no
198
+ # marker tells musl from glibc, and torch has no musl wheels either.
199
+ # qdrant-client is for CGR_VECTOR_STORE_BACKEND=qdrant, the default before it.
196
200
  semantic = [
197
201
  "qdrant-client>=1.9.0",
202
+ "sqlite-vec>=0.1.9; (sys_platform == 'linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64')) or sys_platform == 'darwin' or (sys_platform == 'win32' and platform_machine == 'AMD64')",
198
203
  "torch>=2.6.0",
199
204
  "transformers>=5.0.0",
200
205
  ]
@@ -203,8 +208,9 @@ milvus = [
203
208
  "pymilvus[milvus-lite]>=3.0.0",
204
209
  ]
205
210
 
206
- # The `sqlite` vector store (CGR_VECTOR_STORE_BACKEND=sqlite): vectors in a
207
- # file beside the embedded graph, so semantic search needs no server either.
211
+ # The default `sqlite` vector store alone, for an install that computes its
212
+ # embeddings elsewhere (CGR_EMBEDDING_PROVIDER=openai): vectors in a file
213
+ # beside the embedded graph, so semantic search needs no server either.
208
214
  sqlite-vec = [
209
215
  "sqlite-vec>=0.1.9",
210
216
  ]
@@ -1,10 +0,0 @@
1
- module cgr.dev/gotypes
2
-
3
- go 1.23.12
4
-
5
- require golang.org/x/tools v0.30.0
6
-
7
- require (
8
- golang.org/x/mod v0.23.0 // indirect
9
- golang.org/x/sync v0.11.0 // indirect
10
- )
@@ -1,8 +0,0 @@
1
- github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
2
- github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
3
- golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
4
- golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
5
- golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
6
- golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
7
- golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
8
- golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=
File without changes