code-graph-rag 0.2.0__tar.gz → 0.2.10__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 (458) hide show
  1. {code_graph_rag-0.2.0/code_graph_rag.egg-info → code_graph_rag-0.2.10}/PKG-INFO +32 -15
  2. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/PYPI_README.md +30 -13
  3. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/README.md +10 -6
  4. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10/code_graph_rag.egg-info}/PKG-INFO +32 -15
  5. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/code_graph_rag.egg-info/SOURCES.txt +1 -0
  6. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/code_graph_rag.egg-info/requires.txt +1 -1
  7. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/cli.py +51 -2
  8. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/config.py +4 -0
  9. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_python.py +7 -0
  10. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/cli.py +12 -0
  11. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/cypher_queries.py +224 -52
  12. code_graph_rag-0.2.10/codebase_rag/editing/signature_bind.py +608 -0
  13. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/signature_spec.py +2 -1
  14. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/graph_service.py +24 -7
  15. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/path_utils.py +19 -0
  16. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/pyproject.toml +6 -3
  17. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/LICENSE +0 -0
  18. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/cgr/__init__.py +0 -0
  19. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/code_graph_rag.egg-info/dependency_links.txt +0 -0
  20. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/code_graph_rag.egg-info/entry_points.txt +0 -0
  21. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/code_graph_rag.egg-info/top_level.txt +0 -0
  22. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/__init__.py +0 -0
  23. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/_cli_env.py +0 -0
  24. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/__init__.py +0 -0
  25. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
  26. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
  27. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
  28. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
  29. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
  30. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
  31. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
  32. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
  33. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
  34. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
  35. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
  36. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
  37. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
  38. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
  39. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
  40. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
  41. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
  42. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
  43. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
  44. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
  45. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
  46. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
  47. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
  48. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
  49. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
  50. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
  51. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
  52. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
  53. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
  54. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
  55. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
  56. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
  57. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
  58. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
  59. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
  60. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
  61. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
  62. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
  63. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
  64. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
  65. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
  66. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
  67. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
  68. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
  69. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
  70. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
  71. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/ast_cache.py +0 -0
  72. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/capture.py +0 -0
  73. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/check_isolation.py +0 -0
  74. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/checkout_state.py +0 -0
  75. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/cli_help.py +0 -0
  76. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/cli_runtime.py +0 -0
  77. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/console_marks.py +0 -0
  78. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/__init__.py +0 -0
  79. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_cpp.py +0 -0
  80. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_csharp.py +0 -0
  81. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_dart.py +0 -0
  82. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_go.py +0 -0
  83. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_java.py +0 -0
  84. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_js.py +0 -0
  85. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_julia.py +0 -0
  86. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_lua.py +0 -0
  87. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_nodes.py +0 -0
  88. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_php.py +0 -0
  89. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_rust.py +0 -0
  90. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_scala.py +0 -0
  91. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/ast_sql.py +0 -0
  92. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/build.py +0 -0
  93. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/core.py +0 -0
  94. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/deadcode_roots.py +0 -0
  95. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/deps.py +0 -0
  96. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/duplicates.py +0 -0
  97. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/embedded_graph.py +0 -0
  98. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/fqn_specs.py +0 -0
  99. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/graph.py +0 -0
  100. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/health.py +0 -0
  101. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/interface.py +0 -0
  102. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/lang_tooling.py +0 -0
  103. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/languages.py +0 -0
  104. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/mcp.py +0 -0
  105. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/notebook.py +0 -0
  106. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/providers.py +0 -0
  107. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/security.py +0 -0
  108. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/sqlite_vectors.py +0 -0
  109. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/stdlib_types.py +0 -0
  110. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/structural.py +0 -0
  111. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/constants/trace.py +0 -0
  112. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/context_pruning.py +0 -0
  113. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/context_slice.py +0 -0
  114. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/crash_correlation.py +0 -0
  115. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/dead_code.py +0 -0
  116. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/decorators.py +0 -0
  117. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/docker-compose.yaml +0 -0
  118. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/duplicates.py +0 -0
  119. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/__init__.py +0 -0
  120. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/cli.py +0 -0
  121. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/contract.py +0 -0
  122. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/import_paths.py +0 -0
  123. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/imports.py +0 -0
  124. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/occurrences.py +0 -0
  125. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/patcher.py +0 -0
  126. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/rename.py +0 -0
  127. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/signature_contract.py +0 -0
  128. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/sites.py +0 -0
  129. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editing/transaction.py +0 -0
  130. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/editor_links.py +0 -0
  131. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/__init__.py +0 -0
  132. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/compiler.py +0 -0
  133. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/connection.py +0 -0
  134. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/cypher_ast.py +0 -0
  135. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/executor.py +0 -0
  136. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/expressions.py +0 -0
  137. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/extension.py +0 -0
  138. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/functions.py +0 -0
  139. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/lexer.py +0 -0
  140. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/limits.py +0 -0
  141. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/native.py +0 -0
  142. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/parser.py +0 -0
  143. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/procedures.py +0 -0
  144. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/sql.py +0 -0
  145. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/store.py +0 -0
  146. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedded_graph/types.py +0 -0
  147. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/embedder.py +0 -0
  148. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/exceptions.py +0 -0
  149. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/flow_verdict.py +0 -0
  150. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/function_registry.py +0 -0
  151. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/gloss.py +0 -0
  152. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/gloss_anchor.py +0 -0
  153. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/gloss_repair.py +0 -0
  154. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/graph_audit.py +0 -0
  155. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/graph_cli.py +0 -0
  156. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/graph_dialects.py +0 -0
  157. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/graph_loader.py +0 -0
  158. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/graph_query.py +0 -0
  159. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/graph_updater.py +0 -0
  160. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/interface_skip.py +0 -0
  161. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/language_spec.py +0 -0
  162. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/logs.py +0 -0
  163. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/main.py +0 -0
  164. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/mcp/__init__.py +0 -0
  165. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/mcp/client.py +0 -0
  166. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/mcp/server.py +0 -0
  167. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/mcp/tools.py +0 -0
  168. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/mgclient_compat.py +0 -0
  169. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/mgclient_probe.py +0 -0
  170. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/models.py +0 -0
  171. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parser_fingerprint.py +0 -0
  172. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parser_loader.py +0 -0
  173. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/__init__.py +0 -0
  174. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/anchor_hash.py +0 -0
  175. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_fingerprint.py +0 -0
  176. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
  177. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
  178. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +0 -0
  179. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
  180. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
  181. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
  182. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
  183. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
  184. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_scope.py +0 -0
  185. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/ast_grep_tier.py +0 -0
  186. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/build_lock.py +0 -0
  187. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/call_processor.py +0 -0
  188. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/call_resolver.py +0 -0
  189. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
  190. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/base_targets.py +0 -0
  191. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
  192. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/identity.py +0 -0
  193. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
  194. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/mixin.py +0 -0
  195. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
  196. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
  197. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
  198. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/class_ingest/utils.py +0 -0
  199. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/contract_linking.py +0 -0
  200. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/contracts.py +0 -0
  201. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/__init__.py +0 -0
  202. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/class_macro.py +0 -0
  203. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/function_values.py +0 -0
  204. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/local_types.py +0 -0
  205. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/overloads.py +0 -0
  206. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/preproc_recovery.py +0 -0
  207. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/trailing_annotation.py +0 -0
  208. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/type_inference.py +0 -0
  209. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp/utils.py +0 -0
  210. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
  211. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
  212. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
  213. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
  214. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp/__init__.py +0 -0
  215. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp/arity.py +0 -0
  216. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp/type_inference.py +0 -0
  217. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp/utils.py +0 -0
  218. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
  219. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
  220. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
  221. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
  222. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
  223. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/dart/__init__.py +0 -0
  224. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/dart/type_inference.py +0 -0
  225. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/dart/utils.py +0 -0
  226. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/definition_docstring.py +0 -0
  227. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/definition_processor.py +0 -0
  228. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/dependency_parser.py +0 -0
  229. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/dispatch_registry.py +0 -0
  230. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/document_tier.py +0 -0
  231. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
  232. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/endpoint_routes.py +0 -0
  233. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/endpoints.py +0 -0
  234. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/enum_variants.py +0 -0
  235. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/export_detection.py +0 -0
  236. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/factory.py +0 -0
  237. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/field_nodes.py +0 -0
  238. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/flat_module.py +0 -0
  239. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/flow_access/__init__.py +0 -0
  240. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/flow_access/constants.py +0 -0
  241. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/flow_access/processor.py +0 -0
  242. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontend_mode.py +0 -0
  243. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/__init__.py +0 -0
  244. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/cpp.py +0 -0
  245. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/csharp.py +0 -0
  246. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/go.py +0 -0
  247. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/java.py +0 -0
  248. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/protocol.py +0 -0
  249. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/python.py +0 -0
  250. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/frontends/registry.py +0 -0
  251. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/function_ingest.py +0 -0
  252. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/__init__.py +0 -0
  253. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/builds.py +0 -0
  254. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/interface_ingest.py +0 -0
  255. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/interfaces.py +0 -0
  256. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/link_state.py +0 -0
  257. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/module_paths.py +0 -0
  258. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/type_inference.py +0 -0
  259. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go/utils.py +0 -0
  260. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
  261. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
  262. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -0
  263. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -0
  264. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
  265. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/__init__.py +0 -0
  266. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/base.py +0 -0
  267. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/cpp.py +0 -0
  268. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/java.py +0 -0
  269. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/js_ts.py +0 -0
  270. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/julia.py +0 -0
  271. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/lua.py +0 -0
  272. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/php.py +0 -0
  273. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/protocol.py +0 -0
  274. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/python.py +0 -0
  275. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/registry.py +0 -0
  276. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/handlers/rust.py +0 -0
  277. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/import_processor.py +0 -0
  278. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/interface_fingerprint.py +0 -0
  279. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/__init__.py +0 -0
  280. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/constants.py +0 -0
  281. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/descriptor.py +0 -0
  282. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/extract.py +0 -0
  283. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/models.py +0 -0
  284. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/processor.py +0 -0
  285. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/registry.py +0 -0
  286. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/io_access/url_folding.py +0 -0
  287. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java/__init__.py +0 -0
  288. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java/method_resolver.py +0 -0
  289. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java/type_inference.py +0 -0
  290. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java/type_resolver.py +0 -0
  291. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java/utils.py +0 -0
  292. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java/variable_analyzer.py +0 -0
  293. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
  294. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
  295. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
  296. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java_generated.py +0 -0
  297. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/java_lombok.py +0 -0
  298. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/__init__.py +0 -0
  299. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/commonjs_exports.py +0 -0
  300. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/ingest.py +0 -0
  301. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
  302. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/module_system.py +0 -0
  303. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/overloads.py +0 -0
  304. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/reexports.py +0 -0
  305. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
  306. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/js_ts/utils.py +0 -0
  307. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/julia/__init__.py +0 -0
  308. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/julia/utils.py +0 -0
  309. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/lua/__init__.py +0 -0
  310. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/lua/type_inference.py +0 -0
  311. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/lua/utils.py +0 -0
  312. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/module_docstring.py +0 -0
  313. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/notebook.py +0 -0
  314. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/parameter_nodes.py +0 -0
  315. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/php/__init__.py +0 -0
  316. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/php/class_names.py +0 -0
  317. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/php/namespaces.py +0 -0
  318. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/php/utils.py +0 -0
  319. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/positional_params.py +0 -0
  320. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/__init__.py +0 -0
  321. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/ast_analyzer.py +0 -0
  322. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/class_aliases.py +0 -0
  323. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
  324. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/forward_refs.py +0 -0
  325. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/overloads.py +0 -0
  326. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/receiver_rebinding.py +0 -0
  327. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/type_inference.py +0 -0
  328. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/utils.py +0 -0
  329. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/variable_analyzer.py +0 -0
  330. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py/with_analyzer.py +0 -0
  331. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
  332. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
  333. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/python_source_roots.py +0 -0
  334. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/rpc_exposure.py +0 -0
  335. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/rs/__init__.py +0 -0
  336. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/rs/cargo_semver.py +0 -0
  337. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/rs/type_inference.py +0 -0
  338. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/rs/utils.py +0 -0
  339. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/scala/__init__.py +0 -0
  340. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/scala/utils.py +0 -0
  341. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/semantic_call_join.py +0 -0
  342. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/stdlib_extractor.py +0 -0
  343. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/string_call.py +0 -0
  344. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/structure_processor.py +0 -0
  345. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/type_facts.py +0 -0
  346. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/type_inference.py +0 -0
  347. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/parsers/utils.py +0 -0
  348. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/path_filters.py +0 -0
  349. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/project_selection.py +0 -0
  350. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/prompts.py +0 -0
  351. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/providers/__init__.py +0 -0
  352. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/providers/base.py +0 -0
  353. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/providers/litellm.py +0 -0
  354. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/c_sharp.scm +0 -0
  355. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/dart.scm +0 -0
  356. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/java.scm +0 -0
  357. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/javascript.scm +0 -0
  358. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/julia.scm +0 -0
  359. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/php.scm +0 -0
  360. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/python.scm +0 -0
  361. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/rust.scm +0 -0
  362. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/queries/highlights/typescript.scm +0 -0
  363. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/readme_sections.py +0 -0
  364. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/schema_builder.py +0 -0
  365. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/schema_parse.py +0 -0
  366. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/schemas.py +0 -0
  367. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/__init__.py +0 -0
  368. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/anthropic_token_counter.py +0 -0
  369. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/cypher_guard.py +0 -0
  370. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/filtering.py +0 -0
  371. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/gloss_cleanup.py +0 -0
  372. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/graph_diff.py +0 -0
  373. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/llm.py +0 -0
  374. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/neo4j_driver.py +0 -0
  375. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/protobuf_service.py +0 -0
  376. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/provenance.py +0 -0
  377. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/resource_cleanup.py +0 -0
  378. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/services/usage_cost.py +0 -0
  379. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/sql_names.py +0 -0
  380. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/sqlite_vectors.py +0 -0
  381. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/stack/__init__.py +0 -0
  382. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/stack/cli.py +0 -0
  383. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/stack/constants.py +0 -0
  384. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/stack/health.py +0 -0
  385. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/stack/manager.py +0 -0
  386. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/structural_check.py +0 -0
  387. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/structural_delta.py +0 -0
  388. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/sync_guard.py +0 -0
  389. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/sync_lock.py +0 -0
  390. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/taint.py +0 -0
  391. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tool_errors.py +0 -0
  392. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/__init__.py +0 -0
  393. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/ast_grep_service.py +0 -0
  394. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/code_retrieval.py +0 -0
  395. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/codebase_query.py +0 -0
  396. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/directory_lister.py +0 -0
  397. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/duplicate_detection.py +0 -0
  398. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/file_editor.py +0 -0
  399. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/file_reader.py +0 -0
  400. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/file_writer.py +0 -0
  401. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/graph_refresh.py +0 -0
  402. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/graph_rerank.py +0 -0
  403. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/health_checker.py +0 -0
  404. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/language.py +0 -0
  405. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/language_catalog.py +0 -0
  406. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/research.py +0 -0
  407. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/semantic_search.py +0 -0
  408. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/shell_command.py +0 -0
  409. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/structural_editor.py +0 -0
  410. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/structural_search.py +0 -0
  411. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/tool_descriptions.py +0 -0
  412. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tools/web_search.py +0 -0
  413. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/__init__.py +0 -0
  414. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/carry.py +0 -0
  415. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/cli.py +0 -0
  416. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/cpuprofile.py +0 -0
  417. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/dispatch_site.py +0 -0
  418. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/ebpf_pprof.py +0 -0
  419. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/ingest.py +0 -0
  420. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/instrumented.py +0 -0
  421. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/pprof.py +0 -0
  422. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/pytest_plugin.py +0 -0
  423. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/records.py +0 -0
  424. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/resolution.py +0 -0
  425. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/rust_pprof.py +0 -0
  426. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/sourcemap.py +0 -0
  427. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/speedscope.py +0 -0
  428. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/tracer.py +0 -0
  429. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/trace/xdebug.py +0 -0
  430. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/tree_sitter_point.py +0 -0
  431. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/types_defs.py +0 -0
  432. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/unixcoder.py +0 -0
  433. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/__init__.py +0 -0
  434. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/cpp_signatures.py +0 -0
  435. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/dependencies.py +0 -0
  436. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/endpoints.py +0 -0
  437. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/fqn_resolver.py +0 -0
  438. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/interruptible_thread.py +0 -0
  439. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/json_io.py +0 -0
  440. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/process_owner.py +0 -0
  441. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/qn_markers.py +0 -0
  442. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/rich_markdown.py +0 -0
  443. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/source_encoding.py +0 -0
  444. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/source_extraction.py +0 -0
  445. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/terminal_console.py +0 -0
  446. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/utils/token_utils.py +0 -0
  447. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/vector_store.py +0 -0
  448. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/watch.py +0 -0
  449. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/workspaces/__init__.py +0 -0
  450. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/workspaces/cli.py +0 -0
  451. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/workspaces/constants.py +0 -0
  452. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/workspaces/models.py +0 -0
  453. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codebase_rag/workspaces/storage.py +0 -0
  454. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codec/__init__.py +0 -0
  455. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codec/schema.proto +0 -0
  456. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codec/schema_pb2.py +0 -0
  457. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/codec/schema_pb2.pyi +0 -0
  458. {code_graph_rag-0.2.0 → code_graph_rag-0.2.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-graph-rag
3
- Version: 0.2.0
3
+ Version: 0.2.10
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
@@ -19,7 +19,7 @@ Requires-Python: >=3.12
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: loguru>=0.7.3
22
- Requires-Dist: mcp<2,>=1.28.1
22
+ Requires-Dist: mcp<2,>=1.30.0
23
23
  Requires-Dist: pydantic-ai-slim[anthropic,google,openai]>=2.0.0
24
24
  Requires-Dist: pydantic-settings>=2.12.0
25
25
  Requires-Dist: python-dotenv>=1.2.1
@@ -93,7 +93,7 @@ Dynamic: license-file
93
93
 
94
94
  # Code-Graph-RAG
95
95
 
96
- Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in Memgraph, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
96
+ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in an embedded graph database that needs no server, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
97
97
 
98
98
  ## What It Does
99
99
 
@@ -175,14 +175,22 @@ for git installs and the other methods.
175
175
  ### Prerequisites
176
176
 
177
177
  - Python 3.12+
178
- - Docker (for Memgraph)
179
- - `cmake` (for building pymgclient)
180
178
  - `ripgrep` (`rg`) (for shell command text searching)
179
+ - Only for the optional Memgraph backend: Docker, and `cmake` where no
180
+ `pymgclient` wheel fits your platform
181
+
182
+ The knowledge graph is an embedded SQLite file (`~/.cgr/graph.sqlite`), so there
183
+ is no database server to run. Memgraph and Neo4j remain available as opt-in
184
+ backends; see [Graph Backends](https://docs.code-graph-rag.com/architecture/embedded-graph/).
181
185
 
182
186
  The wheel is pure Python (`py3-none-any`), so it installs on any platform with
183
- Python 3.12 or newer. Some distributions ship an older interpreter (Debian
184
- Bookworm, and so Raspberry Pi OS Bookworm, ships 3.11), which also explains the
185
- failed piwheels Bookworm build. On those systems, see the [installation
187
+ Python 3.12 or newer. On Linux (x86_64, aarch64), macOS and Windows x64 it also
188
+ pulls in `cgr-graph-rs`, a native extension that speeds up the embedded graph;
189
+ elsewhere the same engine runs in pure Python.
190
+
191
+ Some distributions ship an older interpreter (Debian Bookworm, and so Raspberry
192
+ Pi OS Bookworm, ships 3.11), which also explains the failed piwheels Bookworm
193
+ build. On those systems, see the [installation
186
194
  guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#older-system-interpreters)
187
195
  for the available interpreter-pinning alternatives.
188
196
 
@@ -190,14 +198,17 @@ for the available interpreter-pinning alternatives.
190
198
 
191
199
  The package installs a `cgr` command.
192
200
 
193
- **Start Memgraph, parse a repo, and query it:**
201
+ **Parse a repo, then query it:**
194
202
 
195
203
  ```bash
196
- cgr daemon up # start Memgraph + Qdrant
197
- cgr start --repo-path ./my-project \
198
- --update-graph --clean # parse & launch interactive chat
204
+ cgr start --repo-path ./my-project --update-graph # parse into the graph
205
+ cgr start --repo-path ./my-project # launch the interactive chat
199
206
  ```
200
207
 
208
+ The graph is written to `~/.cgr/graph.sqlite`. To use Memgraph instead, install
209
+ `code-graph-rag[memgraph]`, set `GRAPH_BACKEND=memgraph`, and start the packaged
210
+ Memgraph + Qdrant stack with `cgr daemon up`.
211
+
201
212
  **Index to protobuf for offline use:**
202
213
 
203
214
  ```bash
@@ -304,7 +315,11 @@ for fn in functions[:5]:
304
315
  print(f"{fn.properties['name']}: {len(rels)} relationships")
305
316
  ```
306
317
 
307
- ### Query Memgraph with Cypher
318
+ ### Query the graph with Cypher
319
+
320
+ `MemgraphIngestor` keeps its original name but works with whichever backend
321
+ `GRAPH_BACKEND` selects. On the default embedded graph, `host` and `port` are
322
+ not used.
308
323
 
309
324
  ```python
310
325
  from cgr import MemgraphIngestor
@@ -357,8 +372,10 @@ Configure via `.env` or environment variables:
357
372
 
358
373
  | Variable | Default | Description |
359
374
  |----------|---------|-------------|
360
- | `MEMGRAPH_HOST` | `localhost` | Memgraph hostname |
361
- | `MEMGRAPH_PORT` | `7687` | Memgraph port |
375
+ | `GRAPH_BACKEND` | `sqlite` | Graph engine: `sqlite` (embedded), `memgraph`, or `neo4j` |
376
+ | `SQLITE_GRAPH_PATH` | `~/.cgr/graph.sqlite` | Embedded graph file |
377
+ | `MEMGRAPH_HOST` | `localhost` | Memgraph hostname (with `GRAPH_BACKEND=memgraph`) |
378
+ | `MEMGRAPH_PORT` | `7687` | Memgraph port (with `GRAPH_BACKEND=memgraph`) |
362
379
  | `ORCHESTRATOR_PROVIDER` | | Provider: `google`, `openai`, `anthropic`, `azure`, `ollama`, `minimax`, `litellm_proxy` |
363
380
  | `ORCHESTRATOR_MODEL` | | Model ID (e.g. `gpt-5.6-terra`, `gemini-3.6-flash`, `claude-sonnet-5`, `qwen2.5-coder`) |
364
381
  | `ORCHESTRATOR_API_KEY` | | API key for the provider (not needed for `ollama`) |
@@ -1,6 +1,6 @@
1
1
  # Code-Graph-RAG
2
2
 
3
- Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in Memgraph, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
3
+ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in an embedded graph database that needs no server, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
4
4
 
5
5
  ## What It Does
6
6
 
@@ -82,14 +82,22 @@ for git installs and the other methods.
82
82
  ### Prerequisites
83
83
 
84
84
  - Python 3.12+
85
- - Docker (for Memgraph)
86
- - `cmake` (for building pymgclient)
87
85
  - `ripgrep` (`rg`) (for shell command text searching)
86
+ - Only for the optional Memgraph backend: Docker, and `cmake` where no
87
+ `pymgclient` wheel fits your platform
88
+
89
+ The knowledge graph is an embedded SQLite file (`~/.cgr/graph.sqlite`), so there
90
+ is no database server to run. Memgraph and Neo4j remain available as opt-in
91
+ backends; see [Graph Backends](https://docs.code-graph-rag.com/architecture/embedded-graph/).
88
92
 
89
93
  The wheel is pure Python (`py3-none-any`), so it installs on any platform with
90
- Python 3.12 or newer. Some distributions ship an older interpreter (Debian
91
- Bookworm, and so Raspberry Pi OS Bookworm, ships 3.11), which also explains the
92
- failed piwheels Bookworm build. On those systems, see the [installation
94
+ Python 3.12 or newer. On Linux (x86_64, aarch64), macOS and Windows x64 it also
95
+ pulls in `cgr-graph-rs`, a native extension that speeds up the embedded graph;
96
+ elsewhere the same engine runs in pure Python.
97
+
98
+ Some distributions ship an older interpreter (Debian Bookworm, and so Raspberry
99
+ Pi OS Bookworm, ships 3.11), which also explains the failed piwheels Bookworm
100
+ build. On those systems, see the [installation
93
101
  guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#older-system-interpreters)
94
102
  for the available interpreter-pinning alternatives.
95
103
 
@@ -97,14 +105,17 @@ for the available interpreter-pinning alternatives.
97
105
 
98
106
  The package installs a `cgr` command.
99
107
 
100
- **Start Memgraph, parse a repo, and query it:**
108
+ **Parse a repo, then query it:**
101
109
 
102
110
  ```bash
103
- cgr daemon up # start Memgraph + Qdrant
104
- cgr start --repo-path ./my-project \
105
- --update-graph --clean # parse & launch interactive chat
111
+ cgr start --repo-path ./my-project --update-graph # parse into the graph
112
+ cgr start --repo-path ./my-project # launch the interactive chat
106
113
  ```
107
114
 
115
+ The graph is written to `~/.cgr/graph.sqlite`. To use Memgraph instead, install
116
+ `code-graph-rag[memgraph]`, set `GRAPH_BACKEND=memgraph`, and start the packaged
117
+ Memgraph + Qdrant stack with `cgr daemon up`.
118
+
108
119
  **Index to protobuf for offline use:**
109
120
 
110
121
  ```bash
@@ -211,7 +222,11 @@ for fn in functions[:5]:
211
222
  print(f"{fn.properties['name']}: {len(rels)} relationships")
212
223
  ```
213
224
 
214
- ### Query Memgraph with Cypher
225
+ ### Query the graph with Cypher
226
+
227
+ `MemgraphIngestor` keeps its original name but works with whichever backend
228
+ `GRAPH_BACKEND` selects. On the default embedded graph, `host` and `port` are
229
+ not used.
215
230
 
216
231
  ```python
217
232
  from cgr import MemgraphIngestor
@@ -264,8 +279,10 @@ Configure via `.env` or environment variables:
264
279
 
265
280
  | Variable | Default | Description |
266
281
  |----------|---------|-------------|
267
- | `MEMGRAPH_HOST` | `localhost` | Memgraph hostname |
268
- | `MEMGRAPH_PORT` | `7687` | Memgraph port |
282
+ | `GRAPH_BACKEND` | `sqlite` | Graph engine: `sqlite` (embedded), `memgraph`, or `neo4j` |
283
+ | `SQLITE_GRAPH_PATH` | `~/.cgr/graph.sqlite` | Embedded graph file |
284
+ | `MEMGRAPH_HOST` | `localhost` | Memgraph hostname (with `GRAPH_BACKEND=memgraph`) |
285
+ | `MEMGRAPH_PORT` | `7687` | Memgraph port (with `GRAPH_BACKEND=memgraph`) |
269
286
  | `ORCHESTRATOR_PROVIDER` | | Provider: `google`, `openai`, `anthropic`, `azure`, `ollama`, `minimax`, `litellm_proxy` |
270
287
  | `ORCHESTRATOR_MODEL` | | Model ID (e.g. `gpt-5.6-terra`, `gemini-3.6-flash`, `claude-sonnet-5`, `qwen2.5-coder`) |
271
288
  | `ORCHESTRATOR_API_KEY` | | API key for the provider (not needed for `ollama`) |
@@ -42,13 +42,13 @@
42
42
 
43
43
  # Code-Graph-RAG
44
44
 
45
- Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in Memgraph, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
45
+ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in an embedded graph database that needs no server, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
46
46
 
47
47
  <p align="center">
48
48
  <b>1. Index:</b> <code>cgr start --update-graph</code> parses a repository into a knowledge graph (sped up)
49
49
  </p>
50
50
  <p align="center">
51
- <img src="./assets/demo-indexing.gif" alt="cgr parsing the code-graph-rag repository into a Memgraph knowledge graph, then printing node and relationship counts">
51
+ <img src="./assets/demo-indexing.gif" alt="cgr parsing the code-graph-rag repository into a knowledge graph, then printing node and relationship counts">
52
52
  </p>
53
53
 
54
54
  <p align="center">
@@ -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
- - **Contextual Queries**: Support for more detailed context queries has been added, including reasons and evaluation ingestor reads, enhancing the understanding of code interactions.
65
- - **Graph Improvements**: The graph analysis capabilities have been expanded to follow cross-service links and implementors/overrides, providing a more comprehensive view of code dependencies.
64
+ - **GitHub Sponsors**: Added support for GitHub Sponsors via the command line.
66
65
  <!-- /SECTION:latest_news -->
67
66
 
68
67
  See [NEWS.md](NEWS.md) for the full history.
@@ -83,15 +82,17 @@ Point Code-Graph-RAG at a repository and it reads every source file, extracts fu
83
82
 
84
83
  The system has two components:
85
84
 
86
- 1. **Multi-language parser.** A Tree-sitter based parser reads the codebase and ingests functions, classes, methods, modules, and their relationships into Memgraph under a single language-agnostic schema. Where a toolchain is available, compiler-grade frontends layer exact facts on top (libclang for C/C++, `go/types` for Go, and opt-in Roslyn, `javac` and Jedi for C#, Java and Python), and [dynamic tracing](docs/guide/dynamic-tracing.md) merges calls observed at runtime. Tree-sitter stays the backbone: a trace only sees code that ran, and a compiler frontend only covers what its toolchain can build.
85
+ 1. **Multi-language parser.** A Tree-sitter based parser reads the codebase and ingests functions, classes, methods, modules, and their relationships into the graph under a single language-agnostic schema. Where a toolchain is available, compiler-grade frontends layer exact facts on top (libclang for C/C++, `go/types` for Go, and opt-in Roslyn, `javac` and Jedi for C#, Java and Python), and [dynamic tracing](docs/guide/dynamic-tracing.md) merges calls observed at runtime. Tree-sitter stays the backbone: a trace only sees code that ran, and a compiler frontend only covers what its toolchain can build.
87
86
  2. **RAG system** (`codebase_rag/`). An interactive CLI that turns natural language into Cypher queries, retrieves matching code, and drives AI-powered editing and optimisation.
88
87
 
89
88
  ```
90
- Source Code -> Tree-sitter Parser -> AST Analysis -> Memgraph Knowledge Graph
89
+ Source Code -> Tree-sitter Parser -> AST Analysis -> Knowledge Graph
91
90
  |
92
91
  User Query -> AI Model (Cypher Gen) -> Cypher Query -> Graph Results -> Response
93
92
  ```
94
93
 
94
+ The graph is stored in an embedded SQLite file by default. Memgraph and Neo4j are opt-in backends that run the same Cypher; [Graph Backends](docs/architecture/embedded-graph.md) compares them.
95
+
95
96
  See the [Architecture Overview](docs/architecture/overview.md) and [Graph Schema](docs/architecture/graph-schema.md) for the full picture.
96
97
 
97
98
  ## Supported Languages
@@ -190,6 +191,7 @@ Code-Graph-RAG runs as an [MCP](https://modelcontextprotocol.io) server so Claud
190
191
  **Architecture**
191
192
  - [Overview](docs/architecture/overview.md)
192
193
  - [Graph Schema](docs/architecture/graph-schema.md)
194
+ - [Graph Backends](docs/architecture/embedded-graph.md)
193
195
  - [Language Support](docs/architecture/language-support.md)
194
196
  - [Data-Flow Edges](docs/architecture/data-flow-edges.md)
195
197
 
@@ -224,6 +226,8 @@ Please see [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines. Good
224
226
 
225
227
  For issues or questions, check the [Troubleshooting](docs/advanced/troubleshooting.md) guide first, then open an issue.
226
228
 
229
+ If cgr is useful to you, please consider pledging support on [GitHub Sponsors](https://github.com/sponsors/vitali87). cgr links the page under `cgr --version` and, in a terminal, after most commands finish; set `CGR_SPONSOR_PLEDGE=false` to hide that line.
230
+
227
231
  ## License
228
232
 
229
233
  MIT. See [LICENSE](LICENSE).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-graph-rag
3
- Version: 0.2.0
3
+ Version: 0.2.10
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
@@ -19,7 +19,7 @@ Requires-Python: >=3.12
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: loguru>=0.7.3
22
- Requires-Dist: mcp<2,>=1.28.1
22
+ Requires-Dist: mcp<2,>=1.30.0
23
23
  Requires-Dist: pydantic-ai-slim[anthropic,google,openai]>=2.0.0
24
24
  Requires-Dist: pydantic-settings>=2.12.0
25
25
  Requires-Dist: python-dotenv>=1.2.1
@@ -93,7 +93,7 @@ Dynamic: license-file
93
93
 
94
94
  # Code-Graph-RAG
95
95
 
96
- Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in Memgraph, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
96
+ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by compiler-grade frontends and runtime traces where available, builds a knowledge graph of its structure in an embedded graph database that needs no server, and lets you query, edit, and optimise that code in plain English. It works across a monorepo of mixed languages under one unified graph schema.
97
97
 
98
98
  ## What It Does
99
99
 
@@ -175,14 +175,22 @@ for git installs and the other methods.
175
175
  ### Prerequisites
176
176
 
177
177
  - Python 3.12+
178
- - Docker (for Memgraph)
179
- - `cmake` (for building pymgclient)
180
178
  - `ripgrep` (`rg`) (for shell command text searching)
179
+ - Only for the optional Memgraph backend: Docker, and `cmake` where no
180
+ `pymgclient` wheel fits your platform
181
+
182
+ The knowledge graph is an embedded SQLite file (`~/.cgr/graph.sqlite`), so there
183
+ is no database server to run. Memgraph and Neo4j remain available as opt-in
184
+ backends; see [Graph Backends](https://docs.code-graph-rag.com/architecture/embedded-graph/).
181
185
 
182
186
  The wheel is pure Python (`py3-none-any`), so it installs on any platform with
183
- Python 3.12 or newer. Some distributions ship an older interpreter (Debian
184
- Bookworm, and so Raspberry Pi OS Bookworm, ships 3.11), which also explains the
185
- failed piwheels Bookworm build. On those systems, see the [installation
187
+ Python 3.12 or newer. On Linux (x86_64, aarch64), macOS and Windows x64 it also
188
+ pulls in `cgr-graph-rs`, a native extension that speeds up the embedded graph;
189
+ elsewhere the same engine runs in pure Python.
190
+
191
+ Some distributions ship an older interpreter (Debian Bookworm, and so Raspberry
192
+ Pi OS Bookworm, ships 3.11), which also explains the failed piwheels Bookworm
193
+ build. On those systems, see the [installation
186
194
  guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#older-system-interpreters)
187
195
  for the available interpreter-pinning alternatives.
188
196
 
@@ -190,14 +198,17 @@ for the available interpreter-pinning alternatives.
190
198
 
191
199
  The package installs a `cgr` command.
192
200
 
193
- **Start Memgraph, parse a repo, and query it:**
201
+ **Parse a repo, then query it:**
194
202
 
195
203
  ```bash
196
- cgr daemon up # start Memgraph + Qdrant
197
- cgr start --repo-path ./my-project \
198
- --update-graph --clean # parse & launch interactive chat
204
+ cgr start --repo-path ./my-project --update-graph # parse into the graph
205
+ cgr start --repo-path ./my-project # launch the interactive chat
199
206
  ```
200
207
 
208
+ The graph is written to `~/.cgr/graph.sqlite`. To use Memgraph instead, install
209
+ `code-graph-rag[memgraph]`, set `GRAPH_BACKEND=memgraph`, and start the packaged
210
+ Memgraph + Qdrant stack with `cgr daemon up`.
211
+
201
212
  **Index to protobuf for offline use:**
202
213
 
203
214
  ```bash
@@ -304,7 +315,11 @@ for fn in functions[:5]:
304
315
  print(f"{fn.properties['name']}: {len(rels)} relationships")
305
316
  ```
306
317
 
307
- ### Query Memgraph with Cypher
318
+ ### Query the graph with Cypher
319
+
320
+ `MemgraphIngestor` keeps its original name but works with whichever backend
321
+ `GRAPH_BACKEND` selects. On the default embedded graph, `host` and `port` are
322
+ not used.
308
323
 
309
324
  ```python
310
325
  from cgr import MemgraphIngestor
@@ -357,8 +372,10 @@ Configure via `.env` or environment variables:
357
372
 
358
373
  | Variable | Default | Description |
359
374
  |----------|---------|-------------|
360
- | `MEMGRAPH_HOST` | `localhost` | Memgraph hostname |
361
- | `MEMGRAPH_PORT` | `7687` | Memgraph port |
375
+ | `GRAPH_BACKEND` | `sqlite` | Graph engine: `sqlite` (embedded), `memgraph`, or `neo4j` |
376
+ | `SQLITE_GRAPH_PATH` | `~/.cgr/graph.sqlite` | Embedded graph file |
377
+ | `MEMGRAPH_HOST` | `localhost` | Memgraph hostname (with `GRAPH_BACKEND=memgraph`) |
378
+ | `MEMGRAPH_PORT` | `7687` | Memgraph port (with `GRAPH_BACKEND=memgraph`) |
362
379
  | `ORCHESTRATOR_PROVIDER` | | Provider: `google`, `openai`, `anthropic`, `azure`, `ollama`, `minimax`, `litellm_proxy` |
363
380
  | `ORCHESTRATOR_MODEL` | | Model ID (e.g. `gpt-5.6-terra`, `gemini-3.6-flash`, `claude-sonnet-5`, `qwen2.5-coder`) |
364
381
  | `ORCHESTRATOR_API_KEY` | | API key for the provider (not needed for `ollama`) |
@@ -162,6 +162,7 @@ codebase_rag/editing/imports.py
162
162
  codebase_rag/editing/occurrences.py
163
163
  codebase_rag/editing/patcher.py
164
164
  codebase_rag/editing/rename.py
165
+ codebase_rag/editing/signature_bind.py
165
166
  codebase_rag/editing/signature_contract.py
166
167
  codebase_rag/editing/signature_spec.py
167
168
  codebase_rag/editing/sites.py
@@ -1,5 +1,5 @@
1
1
  loguru>=0.7.3
2
- mcp<2,>=1.28.1
2
+ mcp<2,>=1.30.0
3
3
  pydantic-ai-slim[anthropic,google,openai]>=2.0.0
4
4
  pydantic-settings>=2.12.0
5
5
  python-dotenv>=1.2.1
@@ -44,7 +44,7 @@ from .capture import (
44
44
  unknown_tokens,
45
45
  )
46
46
  from .checkout_state import prepare_state_dir
47
- from .cli_runtime import app_context, connect_memgraph, style
47
+ from .cli_runtime import app_context, connect_memgraph, dim, style
48
48
  from .config import load_ignore_patterns, settings, settings_errors
49
49
  from .console_marks import status_mark
50
50
  from .editing.cli import cli as edits_cli
@@ -102,6 +102,7 @@ from .utils.path_utils import (
102
102
  normalize_project_name,
103
103
  project_name_error,
104
104
  project_roots_from_rows,
105
+ projects_sharing_root,
105
106
  resolve_repo_path,
106
107
  unwritable_output_reason,
107
108
  )
@@ -199,10 +200,40 @@ class _CgrGroup(TyperGroup):
199
200
  # this at connect time with the fix in its message; printing it here
200
201
  # covers them all, the delegated groups and the chat included (#2443).
201
202
  try:
202
- return super().invoke(ctx)
203
+ result = super().invoke(ctx)
203
204
  except GraphUnavailableError as e:
204
205
  app_context.console.print(style(str(e), cs.Color.RED))
205
206
  raise typer.Exit(1) from e
207
+ # Only a command that finished gets here: a failure exits by raising.
208
+ pledge = sponsor_pledge(ctx.invoked_subcommand, sys.stderr.isatty())
209
+ if pledge:
210
+ # Soft-wrapped so the terminal, not Rich, breaks the line, and
211
+ # the URL stays one clickable link.
212
+ terminal_aware_console(stderr=True).print(
213
+ dim(pledge), highlight=False, soft_wrap=True
214
+ )
215
+ return result
216
+
217
+
218
+ # Help pages, and the MCP server, which speaks its protocol until the client
219
+ # hangs up, are not runs that finished.
220
+ _NO_SPONSOR_PLEDGE = frozenset({ch.CLICommandName.HELP, ch.CLICommandName.MCP_SERVER})
221
+
222
+
223
+ def sponsor_pledge(command: str | None, terminal: bool) -> str | None:
224
+ """The GitHub Sponsors line a finished command ends on, or None where it
225
+ would be in the way: off a terminal (a script or a log reading stderr),
226
+ under `--quiet` or CGR_SPONSOR_PLEDGE=false, and after the commands in
227
+ `_NO_SPONSOR_PLEDGE`. On stderr, so it never mixes into a command's
228
+ output on stdout."""
229
+ if (
230
+ not terminal
231
+ or settings.QUIET
232
+ or not settings.SPONSOR_PLEDGE
233
+ or command in _NO_SPONSOR_PLEDGE
234
+ ):
235
+ return None
236
+ return cs.CLI_MSG_SPONSOR_PLEDGE.format(url=cs.SPONSOR_URL)
206
237
 
207
238
 
208
239
  app = typer.Typer(
@@ -225,6 +256,9 @@ def _version_callback(value: bool) -> None:
225
256
  )
226
257
  for line in credits_lines():
227
258
  app_context.console.print(line, highlight=False)
259
+ app_context.console.print(
260
+ cs.CLI_MSG_SPONSOR.format(url=cs.SPONSOR_URL), highlight=False
261
+ )
228
262
  raise typer.Exit()
229
263
 
230
264
 
@@ -3463,6 +3497,21 @@ def delete_project(
3463
3497
  app_context.console.print(style(choice.refusal, cs.Color.RED))
3464
3498
  raise typer.Exit(1)
3465
3499
 
3500
+ # A directory indexed under two names used to lose both on delete
3501
+ # (#2665). The delete is ownership-scoped now; say so before it runs.
3502
+ roots = ingestor.list_project_roots()
3503
+ if sharing := projects_sharing_root(project_name, roots):
3504
+ app_context.console.print(
3505
+ style(
3506
+ cs.CLI_WARN_DELETE_PROJECT_SHARED_ROOT.format(
3507
+ projects=", ".join(sharing),
3508
+ project_name=project_name,
3509
+ root_path=roots[project_name],
3510
+ ),
3511
+ cs.Color.YELLOW,
3512
+ )
3513
+ )
3514
+
3466
3515
  _info(
3467
3516
  style(
3468
3517
  cs.CLI_MSG_DELETING_PROJECT.format(project_name=project_name),
@@ -584,6 +584,10 @@ class AppConfig(BaseSettings):
584
584
 
585
585
  QUIET: bool = Field(False, validation_alias="CGR_QUIET")
586
586
 
587
+ # The GitHub Sponsors line a finished command ends on in a terminal; set
588
+ # false to drop it without the rest of the output `--quiet` drops.
589
+ SPONSOR_PLEDGE: bool = Field(True, validation_alias="CGR_SPONSOR_PLEDGE")
590
+
587
591
  # Compaction discards old tool output to bound the context (#1500). It is
588
592
  # on by default because an unbounded history eventually fails the request
589
593
  # outright, but a mechanism that drops data must be declinable: set this
@@ -160,6 +160,13 @@ TS_FIELD_CONSEQUENCE = "consequence"
160
160
  TS_FIELD_ARGUMENT = "argument"
161
161
  TS_PY_UNARY_OPERATOR = "unary_operator"
162
162
  TS_PY_CONCATENATED_STRING = "concatenated_string"
163
+ # Argument values that run no code when evaluated, so `change_signature` may
164
+ # reorder a call site made only of them (issue #1533).
165
+ TS_PY_INTEGER = "integer"
166
+ TS_PY_FLOAT = "float"
167
+ TS_PY_TRUE = "true"
168
+ TS_PY_FALSE = "false"
169
+ TS_PY_NONE = "none"
163
170
  # Read positions the binding scan of `python_name_binding_sites` recognises.
164
171
  TS_PY_SLICE = "slice"
165
172
  TS_PY_ASSERT_STATEMENT = "assert_statement"
@@ -249,6 +249,11 @@ CLI_ERR_CLEAN_UNKNOWN_PROJECTS = (
249
249
  CLI_MSG_CLEAN_ABORTED = "Aborted: the graph was left untouched."
250
250
  CLI_MSG_DELETING_PROJECT = "Deleting project '{project_name}' from the graph..."
251
251
  CLI_MSG_PROJECT_DELETED = "Project '{project_name}' deleted successfully."
252
+ CLI_WARN_DELETE_PROJECT_SHARED_ROOT = (
253
+ "Warning: project(s) {projects} were indexed from the same directory as "
254
+ "'{project_name}' ({root_path}). Only what '{project_name}' owns is "
255
+ "deleted; the Folder and File nodes they also hold are kept."
256
+ )
252
257
  # Deleting never defaults to the current directory (issue #2415).
253
258
  CLI_ERR_PROJECT_NAME_REQUIRED = (
254
259
  "Error: name the project with --project, or pass --repo-path."
@@ -287,6 +292,13 @@ CREDITS_URL = "https://docs.code-graph-rag.com/credits/"
287
292
  CLI_MSG_CREDITS = "Third-party credits: {url}"
288
293
  CLI_MSG_CREDITS_NOTICES = "Third-party notices: {name}, beside this binary"
289
294
  THIRD_PARTY_NOTICES_SUFFIX = ".THIRD_PARTY_NOTICES.txt"
295
+ # The project's GitHub Sponsors page, named beside the credits by `--version`
296
+ # and, on a terminal, after most commands finish.
297
+ SPONSOR_URL = "https://github.com/sponsors/vitali87"
298
+ CLI_MSG_SPONSOR = "Sponsor development: {url}"
299
+ CLI_MSG_SPONSOR_PLEDGE = (
300
+ "Find cgr useful? Pledge your support: {url} (CGR_SPONSOR_PLEDGE=false hides this)"
301
+ )
290
302
  CLI_MSG_HINT_TARGET_REPO = (
291
303
  "\nHint: Make sure TARGET_REPO_PATH environment variable is set."
292
304
  )