code-graph-rag 0.0.945__tar.gz → 0.1.38__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.
- {code_graph_rag-0.0.945/code_graph_rag.egg-info → code_graph_rag-0.1.38}/PKG-INFO +26 -18
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/PYPI_README.md +20 -12
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/README.md +19 -7
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38/code_graph_rag.egg-info}/PKG-INFO +26 -18
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/code_graph_rag.egg-info/SOURCES.txt +16 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/code_graph_rag.egg-info/requires.txt +5 -5
- code_graph_rag-0.1.38/codebase_rag/_cli_env.py +14 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/ast_cache.py +47 -28
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/cli.py +428 -133
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/cli_help.py +27 -3
- code_graph_rag-0.1.38/codebase_rag/cli_runtime.py +37 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/config.py +86 -10
- code_graph_rag-0.1.38/codebase_rag/console_marks.py +59 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_cpp.py +7 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_csharp.py +158 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_dart.py +43 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_java.py +10 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_nodes.py +18 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_php.py +9 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_python.py +6 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_rust.py +7 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_scala.py +4 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/build.py +22 -2
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/cli.py +106 -8
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/core.py +26 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/graph.py +100 -6
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/health.py +17 -4
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/mcp.py +29 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/providers.py +15 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/security.py +228 -7
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/trace.py +22 -2
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/context_pruning.py +107 -16
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/crash_correlation.py +5 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/cypher_queries.py +206 -11
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/dead_code.py +347 -181
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/decorators.py +47 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/docker-compose.yaml +15 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/duplicates.py +4 -12
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/rename.py +113 -43
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/embedder.py +12 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/exceptions.py +45 -4
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/gloss.py +55 -6
- code_graph_rag-0.1.38/codebase_rag/gloss_anchor.py +228 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/gloss_repair.py +219 -25
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/graph_audit.py +9 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/graph_cli.py +1 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/graph_query.py +196 -6
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/graph_updater.py +2230 -636
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/language_spec.py +113 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/logs.py +53 -21
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/main.py +215 -145
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/mcp/server.py +35 -6
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/mcp/tools.py +385 -10
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/models.py +7 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_tier.py +43 -29
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/call_processor.py +3366 -2256
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/call_resolver.py +803 -163
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/cpp_modules.py +24 -17
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/identity.py +5 -8
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/method_override.py +132 -86
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/mixin.py +970 -663
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/parent_extraction.py +168 -105
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/relationships.py +115 -64
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/contracts.py +2 -2
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp/preproc_recovery.py +15 -8
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp/type_inference.py +1 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp/utils.py +72 -63
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp/type_inference.py +777 -122
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp/utils.py +178 -17
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp_frontend/frontend.py +2 -2
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/dart/__init__.py +4 -0
- code_graph_rag-0.1.38/codebase_rag/parsers/dart/utils.py +780 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/definition_processor.py +208 -131
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/dependency_parser.py +35 -22
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/dispatch_registry.py +2 -6
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/endpoints.py +47 -33
- code_graph_rag-0.1.38/codebase_rag/parsers/enum_variants.py +177 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/export_detection.py +26 -25
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/factory.py +4 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/field_nodes.py +1 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/flow_access/processor.py +757 -538
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/function_ingest.py +507 -409
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go/type_inference.py +2 -4
- code_graph_rag-0.1.38/codebase_rag/parsers/go_frontend/gotypes/go.mod +12 -0
- code_graph_rag-0.1.38/codebase_rag/parsers/go_frontend/gotypes/go.sum +8 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go_frontend/gotypes/main.go +1 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/base.py +1 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/cpp.py +6 -5
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/js_ts.py +35 -21
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/php.py +10 -10
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/import_processor.py +1119 -704
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/extract.py +62 -47
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/processor.py +38 -30
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java/method_resolver.py +120 -78
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java/utils.py +48 -13
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java/variable_analyzer.py +45 -23
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/js_ts/module_paths.py +3 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/js_ts/module_system.py +57 -40
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/js_ts/type_inference.py +146 -104
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/js_ts/utils.py +21 -13
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/lua/type_inference.py +33 -25
- code_graph_rag-0.1.38/codebase_rag/parsers/parameter_nodes.py +843 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py/ast_analyzer.py +265 -60
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py/type_inference.py +3 -2
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py/utils.py +1 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py/variable_analyzer.py +35 -22
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/python_source_roots.py +79 -38
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/rs/type_inference.py +25 -18
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/rs/utils.py +146 -100
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/stdlib_extractor.py +54 -47
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/type_facts.py +19 -3
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/type_inference.py +59 -75
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/utils.py +330 -250
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/prompts.py +20 -4
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/providers/base.py +78 -20
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/providers/litellm.py +18 -9
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/c_sharp.scm +3 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/dart.scm +19 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/java.scm +17 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/javascript.scm +14 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/php.scm +11 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/python.scm +5 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/rust.scm +11 -0
- code_graph_rag-0.1.38/codebase_rag/queries/highlights/typescript.scm +17 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/readme_sections.py +34 -8
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/__init__.py +13 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/anthropic_token_counter.py +69 -48
- code_graph_rag-0.1.38/codebase_rag/services/cypher_guard.py +198 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/graph_service.py +210 -101
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/llm.py +75 -34
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/neo4j_driver.py +110 -25
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/protobuf_service.py +28 -21
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/usage_cost.py +1 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/stack/cli.py +1 -0
- code_graph_rag-0.1.38/codebase_rag/stack/constants.py +189 -0
- code_graph_rag-0.1.38/codebase_rag/stack/health.py +203 -0
- code_graph_rag-0.1.38/codebase_rag/stack/manager.py +922 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/structural_check.py +53 -14
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/structural_delta.py +119 -17
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tool_errors.py +4 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/code_retrieval.py +25 -25
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/codebase_query.py +176 -62
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/file_editor.py +104 -84
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/health_checker.py +21 -7
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/language.py +61 -52
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/semantic_search.py +24 -13
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/shell_command.py +931 -613
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/tool_descriptions.py +41 -4
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/cli.py +34 -2
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/instrumented.py +10 -4
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/pprof.py +58 -6
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/resolution.py +2 -5
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/types_defs.py +39 -16
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/unixcoder.py +27 -28
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/fqn_resolver.py +28 -12
- code_graph_rag-0.1.38/codebase_rag/utils/json_io.py +31 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/path_utils.py +142 -9
- code_graph_rag-0.1.38/codebase_rag/utils/qn_markers.py +77 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/token_utils.py +1 -1
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/vector_store.py +135 -30
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/workspaces/cli.py +1 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/workspaces/models.py +3 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/workspaces/storage.py +4 -3
- code_graph_rag-0.1.38/codec/schema_pb2.py +93 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codec/schema_pb2.pyi +38 -8
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/pyproject.toml +22 -15
- code_graph_rag-0.0.945/codebase_rag/parsers/dart/utils.py +0 -327
- code_graph_rag-0.0.945/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -10
- code_graph_rag-0.0.945/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -8
- code_graph_rag-0.0.945/codebase_rag/parsers/parameter_nodes.py +0 -262
- code_graph_rag-0.0.945/codebase_rag/stack/constants.py +0 -71
- code_graph_rag-0.0.945/codebase_rag/stack/health.py +0 -61
- code_graph_rag-0.0.945/codebase_rag/stack/manager.py +0 -365
- code_graph_rag-0.0.945/codec/schema_pb2.py +0 -91
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/LICENSE +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/cgr/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/capture.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/cgr_state.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_go.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_js.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_lua.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/ast_sql.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/deadcode_roots.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/deps.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/duplicates.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/fqn_specs.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/lang_tooling.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/languages.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/stdlib_types.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/constants/structural.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/cli.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/contract.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/imports.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/patcher.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editing/transaction.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/editor_links.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/flow_verdict.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/function_registry.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/graph_dialects.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/mcp/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/mcp/client.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parser_fingerprint.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parser_loader.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/anchor_hash.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_fingerprint.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/build_lock.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/class_ingest/utils.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/contract_linking.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/dart/type_inference.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/definition_docstring.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/document_tier.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/endpoint_routes.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/flat_module.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/flow_access/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/flow_access/constants.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontend_mode.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/cpp.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/csharp.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/go.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/java.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/protocol.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/python.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/frontends/registry.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go/module_paths.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go/utils.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/java.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/lua.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/protocol.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/python.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/registry.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/handlers/rust.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/constants.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/descriptor.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/models.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/io_access/registry.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java/type_inference.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java/type_resolver.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java_generated.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/java_lombok.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/js_ts/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/js_ts/ingest.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/lua/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/lua/utils.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/module_docstring.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/rpc_exposure.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/rs/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/semantic_call_join.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/string_call.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/parsers/structure_processor.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/path_filters.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/providers/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/schema_parse.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/filtering.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/gloss_cleanup.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/graph_diff.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/provenance.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/services/resource_cleanup.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/sql_names.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/stack/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/taint.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/ast_grep_service.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/directory_lister.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/duplicate_detection.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/file_reader.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/file_writer.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/graph_rerank.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/research.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/structural_editor.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/structural_search.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/tools/web_search.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/cpuprofile.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/dispatch_site.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/ebpf_pprof.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/ingest.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/pytest_plugin.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/records.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/rust_pprof.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/sourcemap.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/speedscope.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/tracer.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/trace/xdebug.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/dependencies.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/rich_markdown.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/utils/source_extraction.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/workspaces/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codebase_rag/workspaces/constants.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/codec/__init__.py +0 -0
- {code_graph_rag-0.0.945 → code_graph_rag-0.1.38}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1.38
|
|
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
|
|
@@ -20,14 +20,14 @@ Description-Content-Type: text/markdown
|
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: loguru>=0.7.3
|
|
22
22
|
Requires-Dist: mcp>=1.28.1
|
|
23
|
-
Requires-Dist: pydantic-ai>=2.0.0
|
|
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: pymgclient>=1.5.1
|
|
26
26
|
Requires-Dist: python-dotenv>=1.2.1
|
|
27
27
|
Requires-Dist: tiktoken>=0.12.0
|
|
28
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: tomli-w>=1.2.0
|
|
29
29
|
Requires-Dist: tree-sitter-python>=0.25.0
|
|
30
|
-
Requires-Dist: tree-sitter==0.
|
|
30
|
+
Requires-Dist: tree-sitter==0.26.0
|
|
31
31
|
Requires-Dist: watchdog>=6.0.0
|
|
32
32
|
Requires-Dist: typer>=0.21.1
|
|
33
33
|
Requires-Dist: rich>=14.2.0
|
|
@@ -67,13 +67,13 @@ Requires-Dist: tree-sitter-cpp>=0.23.0; extra == "treesitter-full"
|
|
|
67
67
|
Requires-Dist: tree-sitter-lua>=0.0.19; extra == "treesitter-full"
|
|
68
68
|
Requires-Dist: tree-sitter-php>=0.24.1; extra == "treesitter-full"
|
|
69
69
|
Requires-Dist: tree-sitter-c-sharp>=0.23.5; extra == "treesitter-full"
|
|
70
|
-
Requires-Dist: tree-sitter-dart
|
|
70
|
+
Requires-Dist: tree-sitter-dart==0.1.0; extra == "treesitter-full"
|
|
71
71
|
Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
|
|
72
72
|
Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
|
|
73
73
|
Provides-Extra: semantic
|
|
74
74
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
75
75
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
76
|
-
Requires-Dist: transformers>=
|
|
76
|
+
Requires-Dist: transformers>=5.0.0; extra == "semantic"
|
|
77
77
|
Provides-Extra: milvus
|
|
78
78
|
Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
79
79
|
Provides-Extra: ast-grep
|
|
@@ -85,7 +85,7 @@ Dynamic: license-file
|
|
|
85
85
|
|
|
86
86
|
# Code-Graph-RAG
|
|
87
87
|
|
|
88
|
-
Code-Graph-RAG parses a multi-language codebase with Tree-sitter, 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.
|
|
88
|
+
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.
|
|
89
89
|
|
|
90
90
|
## What It Does
|
|
91
91
|
|
|
@@ -142,12 +142,23 @@ uploads and GitHub Release binaries land on an every-50 cadence, so the tag on `
|
|
|
142
142
|
usually runs ahead of the published version. A security fix is the exception: it
|
|
143
143
|
ships immediately rather than waiting for the cadence.
|
|
144
144
|
|
|
145
|
-
To run code newer than the latest release, install from git:
|
|
145
|
+
To run code newer than the latest release, install from git with uv:
|
|
146
146
|
|
|
147
147
|
```bash
|
|
148
|
-
|
|
148
|
+
uv tool install "code-graph-rag[treesitter-full] @ git+https://github.com/vitali87/code-graph-rag@main"
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
+
Use uv for this: it applies the project's `[tool.uv.sources]`, which build the C
|
|
152
|
+
and C++ grammars from forks that keep the declarations upstream drops after a
|
|
153
|
+
`#define` whose value contains a block comment. `pip` ignores those sources and
|
|
154
|
+
installs the upstream grammars.
|
|
155
|
+
|
|
156
|
+
To upgrade, rerun the install with `--upgrade` and the extras you chose, for
|
|
157
|
+
example `pip install --upgrade 'code-graph-rag[treesitter-full]'`. With uv or pipx,
|
|
158
|
+
run `uv tool upgrade code-graph-rag` or `pipx upgrade code-graph-rag` instead; see the
|
|
159
|
+
[installation guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#upgrade)
|
|
160
|
+
for git installs and the other methods.
|
|
161
|
+
|
|
151
162
|
### Prerequisites
|
|
152
163
|
|
|
153
164
|
- Python 3.12+
|
|
@@ -155,15 +166,12 @@ pip install "code-graph-rag[treesitter-full] @ git+https://github.com/vitali87/c
|
|
|
155
166
|
- `cmake` (for building pymgclient)
|
|
156
167
|
- `ripgrep` (`rg`) (for shell command text searching)
|
|
157
168
|
|
|
158
|
-
The wheel is pure Python (`py3-none-any`), so
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
run `uv venv --python 3.12 --seed && source .venv/bin/activate` (uv downloads
|
|
165
|
-
3.12 automatically; `--seed` puts pip in the environment), or install CPython 3.12 yourself and use
|
|
166
|
-
`python3.12 -m pip install ...`.
|
|
169
|
+
The wheel is pure Python (`py3-none-any`), so it installs on any platform with
|
|
170
|
+
Python 3.12 or newer. Some distributions ship an older interpreter (Debian
|
|
171
|
+
Bookworm, and so Raspberry Pi OS Bookworm, ships 3.11), which also explains the
|
|
172
|
+
failed piwheels Bookworm build. On those systems, see the [installation
|
|
173
|
+
guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#older-system-interpreters)
|
|
174
|
+
for the available interpreter-pinning alternatives.
|
|
167
175
|
|
|
168
176
|
## CLI Quick Start
|
|
169
177
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Code-Graph-RAG
|
|
2
2
|
|
|
3
|
-
Code-Graph-RAG parses a multi-language codebase with Tree-sitter, 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 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.
|
|
4
4
|
|
|
5
5
|
## What It Does
|
|
6
6
|
|
|
@@ -57,12 +57,23 @@ uploads and GitHub Release binaries land on an every-50 cadence, so the tag on `
|
|
|
57
57
|
usually runs ahead of the published version. A security fix is the exception: it
|
|
58
58
|
ships immediately rather than waiting for the cadence.
|
|
59
59
|
|
|
60
|
-
To run code newer than the latest release, install from git:
|
|
60
|
+
To run code newer than the latest release, install from git with uv:
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
|
|
63
|
+
uv tool install "code-graph-rag[treesitter-full] @ git+https://github.com/vitali87/code-graph-rag@main"
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
Use uv for this: it applies the project's `[tool.uv.sources]`, which build the C
|
|
67
|
+
and C++ grammars from forks that keep the declarations upstream drops after a
|
|
68
|
+
`#define` whose value contains a block comment. `pip` ignores those sources and
|
|
69
|
+
installs the upstream grammars.
|
|
70
|
+
|
|
71
|
+
To upgrade, rerun the install with `--upgrade` and the extras you chose, for
|
|
72
|
+
example `pip install --upgrade 'code-graph-rag[treesitter-full]'`. With uv or pipx,
|
|
73
|
+
run `uv tool upgrade code-graph-rag` or `pipx upgrade code-graph-rag` instead; see the
|
|
74
|
+
[installation guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#upgrade)
|
|
75
|
+
for git installs and the other methods.
|
|
76
|
+
|
|
66
77
|
### Prerequisites
|
|
67
78
|
|
|
68
79
|
- Python 3.12+
|
|
@@ -70,15 +81,12 @@ pip install "code-graph-rag[treesitter-full] @ git+https://github.com/vitali87/c
|
|
|
70
81
|
- `cmake` (for building pymgclient)
|
|
71
82
|
- `ripgrep` (`rg`) (for shell command text searching)
|
|
72
83
|
|
|
73
|
-
The wheel is pure Python (`py3-none-any`), so
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
run `uv venv --python 3.12 --seed && source .venv/bin/activate` (uv downloads
|
|
80
|
-
3.12 automatically; `--seed` puts pip in the environment), or install CPython 3.12 yourself and use
|
|
81
|
-
`python3.12 -m pip install ...`.
|
|
84
|
+
The wheel is pure Python (`py3-none-any`), so it installs on any platform with
|
|
85
|
+
Python 3.12 or newer. Some distributions ship an older interpreter (Debian
|
|
86
|
+
Bookworm, and so Raspberry Pi OS Bookworm, ships 3.11), which also explains the
|
|
87
|
+
failed piwheels Bookworm build. On those systems, see the [installation
|
|
88
|
+
guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#older-system-interpreters)
|
|
89
|
+
for the available interpreter-pinning alternatives.
|
|
82
90
|
|
|
83
91
|
## CLI Quick Start
|
|
84
92
|
|
|
@@ -42,18 +42,26 @@
|
|
|
42
42
|
|
|
43
43
|
# Code-Graph-RAG
|
|
44
44
|
|
|
45
|
-
Code-Graph-RAG parses a multi-language codebase with Tree-sitter, 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 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.
|
|
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
|
+
</p>
|
|
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">
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
<p align="center">
|
|
55
|
+
<b>2. Ask:</b> <code>cgr start</code> answers questions and edits code, grounded in that graph
|
|
56
|
+
</p>
|
|
57
|
+
<p align="center">
|
|
58
|
+
<img src="./assets/demo.gif" alt="cgr agent answering questions about the indexed repository">
|
|
49
59
|
</p>
|
|
50
60
|
|
|
51
61
|
## Latest News 🔥
|
|
52
62
|
|
|
53
63
|
<!-- SECTION:latest_news -->
|
|
54
|
-
- **
|
|
55
|
-
- **Neo4j Backend Support**: Added support for Neo4j as a graph backend through a pluggable dialect seam.
|
|
56
|
-
- **Gloss Node & Notes**: Introduced the Gloss node for agent-authored notes and enabled writing and reading Gloss notes via the MCP server.
|
|
64
|
+
- **Incremental Indexing**: Improved handling of same-stem sibling matches and skipped EXPOSES cleanups during incremental updates.
|
|
57
65
|
<!-- /SECTION:latest_news -->
|
|
58
66
|
|
|
59
67
|
See [NEWS.md](NEWS.md) for the full history.
|
|
@@ -74,7 +82,7 @@ Point Code-Graph-RAG at a repository and it reads every source file, extracts fu
|
|
|
74
82
|
|
|
75
83
|
The system has two components:
|
|
76
84
|
|
|
77
|
-
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.
|
|
85
|
+
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.
|
|
78
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.
|
|
79
87
|
|
|
80
88
|
```
|
|
@@ -126,10 +134,12 @@ To run code newer than the latest release, install from git:
|
|
|
126
134
|
uv tool install "code-graph-rag[treesitter-full,semantic] @ git+https://github.com/vitali87/code-graph-rag@main"
|
|
127
135
|
```
|
|
128
136
|
|
|
137
|
+
To upgrade an existing install, run `uv tool upgrade code-graph-rag` (with pipx, `pipx upgrade code-graph-rag`, or `pipx reinstall code-graph-rag` for a git install). [Upgrade](docs/getting-started/installation.md#upgrade) covers the other install methods.
|
|
138
|
+
|
|
129
139
|
You also need Python 3.12+, Docker (for Memgraph), `cmake`, and `ripgrep`. Full prerequisites, source installs, and environment setup are in the [Installation](docs/getting-started/installation.md) guide.
|
|
130
140
|
|
|
131
141
|
> [!NOTE]
|
|
132
|
-
> The wheel is pure Python (`py3-none-any`), so
|
|
142
|
+
> The wheel is pure Python (`py3-none-any`), so it installs on any platform with Python 3.12 or newer. Older system interpreters (Debian Bookworm ships 3.11) need the interpreter pinned explicitly; see [Installation](docs/getting-started/installation.md#older-system-interpreters) for the commands.
|
|
133
143
|
|
|
134
144
|
## Quick Start
|
|
135
145
|
|
|
@@ -212,3 +222,5 @@ For issues or questions, check the [Troubleshooting](docs/advanced/troubleshooti
|
|
|
212
222
|
## License
|
|
213
223
|
|
|
214
224
|
MIT. See [LICENSE](LICENSE).
|
|
225
|
+
|
|
226
|
+
Third-party components and their licences are credited on the [Credits page](https://docs.code-graph-rag.com/credits/).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1.38
|
|
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
|
|
@@ -20,14 +20,14 @@ Description-Content-Type: text/markdown
|
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: loguru>=0.7.3
|
|
22
22
|
Requires-Dist: mcp>=1.28.1
|
|
23
|
-
Requires-Dist: pydantic-ai>=2.0.0
|
|
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: pymgclient>=1.5.1
|
|
26
26
|
Requires-Dist: python-dotenv>=1.2.1
|
|
27
27
|
Requires-Dist: tiktoken>=0.12.0
|
|
28
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: tomli-w>=1.2.0
|
|
29
29
|
Requires-Dist: tree-sitter-python>=0.25.0
|
|
30
|
-
Requires-Dist: tree-sitter==0.
|
|
30
|
+
Requires-Dist: tree-sitter==0.26.0
|
|
31
31
|
Requires-Dist: watchdog>=6.0.0
|
|
32
32
|
Requires-Dist: typer>=0.21.1
|
|
33
33
|
Requires-Dist: rich>=14.2.0
|
|
@@ -67,13 +67,13 @@ Requires-Dist: tree-sitter-cpp>=0.23.0; extra == "treesitter-full"
|
|
|
67
67
|
Requires-Dist: tree-sitter-lua>=0.0.19; extra == "treesitter-full"
|
|
68
68
|
Requires-Dist: tree-sitter-php>=0.24.1; extra == "treesitter-full"
|
|
69
69
|
Requires-Dist: tree-sitter-c-sharp>=0.23.5; extra == "treesitter-full"
|
|
70
|
-
Requires-Dist: tree-sitter-dart
|
|
70
|
+
Requires-Dist: tree-sitter-dart==0.1.0; extra == "treesitter-full"
|
|
71
71
|
Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
|
|
72
72
|
Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
|
|
73
73
|
Provides-Extra: semantic
|
|
74
74
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
75
75
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
76
|
-
Requires-Dist: transformers>=
|
|
76
|
+
Requires-Dist: transformers>=5.0.0; extra == "semantic"
|
|
77
77
|
Provides-Extra: milvus
|
|
78
78
|
Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
79
79
|
Provides-Extra: ast-grep
|
|
@@ -85,7 +85,7 @@ Dynamic: license-file
|
|
|
85
85
|
|
|
86
86
|
# Code-Graph-RAG
|
|
87
87
|
|
|
88
|
-
Code-Graph-RAG parses a multi-language codebase with Tree-sitter, 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.
|
|
88
|
+
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.
|
|
89
89
|
|
|
90
90
|
## What It Does
|
|
91
91
|
|
|
@@ -142,12 +142,23 @@ uploads and GitHub Release binaries land on an every-50 cadence, so the tag on `
|
|
|
142
142
|
usually runs ahead of the published version. A security fix is the exception: it
|
|
143
143
|
ships immediately rather than waiting for the cadence.
|
|
144
144
|
|
|
145
|
-
To run code newer than the latest release, install from git:
|
|
145
|
+
To run code newer than the latest release, install from git with uv:
|
|
146
146
|
|
|
147
147
|
```bash
|
|
148
|
-
|
|
148
|
+
uv tool install "code-graph-rag[treesitter-full] @ git+https://github.com/vitali87/code-graph-rag@main"
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
+
Use uv for this: it applies the project's `[tool.uv.sources]`, which build the C
|
|
152
|
+
and C++ grammars from forks that keep the declarations upstream drops after a
|
|
153
|
+
`#define` whose value contains a block comment. `pip` ignores those sources and
|
|
154
|
+
installs the upstream grammars.
|
|
155
|
+
|
|
156
|
+
To upgrade, rerun the install with `--upgrade` and the extras you chose, for
|
|
157
|
+
example `pip install --upgrade 'code-graph-rag[treesitter-full]'`. With uv or pipx,
|
|
158
|
+
run `uv tool upgrade code-graph-rag` or `pipx upgrade code-graph-rag` instead; see the
|
|
159
|
+
[installation guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#upgrade)
|
|
160
|
+
for git installs and the other methods.
|
|
161
|
+
|
|
151
162
|
### Prerequisites
|
|
152
163
|
|
|
153
164
|
- Python 3.12+
|
|
@@ -155,15 +166,12 @@ pip install "code-graph-rag[treesitter-full] @ git+https://github.com/vitali87/c
|
|
|
155
166
|
- `cmake` (for building pymgclient)
|
|
156
167
|
- `ripgrep` (`rg`) (for shell command text searching)
|
|
157
168
|
|
|
158
|
-
The wheel is pure Python (`py3-none-any`), so
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
run `uv venv --python 3.12 --seed && source .venv/bin/activate` (uv downloads
|
|
165
|
-
3.12 automatically; `--seed` puts pip in the environment), or install CPython 3.12 yourself and use
|
|
166
|
-
`python3.12 -m pip install ...`.
|
|
169
|
+
The wheel is pure Python (`py3-none-any`), so it installs on any platform with
|
|
170
|
+
Python 3.12 or newer. Some distributions ship an older interpreter (Debian
|
|
171
|
+
Bookworm, and so Raspberry Pi OS Bookworm, ships 3.11), which also explains the
|
|
172
|
+
failed piwheels Bookworm build. On those systems, see the [installation
|
|
173
|
+
guide](https://github.com/vitali87/code-graph-rag/blob/main/docs/getting-started/installation.md#older-system-interpreters)
|
|
174
|
+
for the available interpreter-pinning alternatives.
|
|
167
175
|
|
|
168
176
|
## CLI Quick Start
|
|
169
177
|
|
|
@@ -10,12 +10,15 @@ code_graph_rag.egg-info/entry_points.txt
|
|
|
10
10
|
code_graph_rag.egg-info/requires.txt
|
|
11
11
|
code_graph_rag.egg-info/top_level.txt
|
|
12
12
|
codebase_rag/__init__.py
|
|
13
|
+
codebase_rag/_cli_env.py
|
|
13
14
|
codebase_rag/ast_cache.py
|
|
14
15
|
codebase_rag/capture.py
|
|
15
16
|
codebase_rag/cgr_state.py
|
|
16
17
|
codebase_rag/cli.py
|
|
17
18
|
codebase_rag/cli_help.py
|
|
19
|
+
codebase_rag/cli_runtime.py
|
|
18
20
|
codebase_rag/config.py
|
|
21
|
+
codebase_rag/console_marks.py
|
|
19
22
|
codebase_rag/context_pruning.py
|
|
20
23
|
codebase_rag/crash_correlation.py
|
|
21
24
|
codebase_rag/cypher_queries.py
|
|
@@ -29,6 +32,7 @@ codebase_rag/exceptions.py
|
|
|
29
32
|
codebase_rag/flow_verdict.py
|
|
30
33
|
codebase_rag/function_registry.py
|
|
31
34
|
codebase_rag/gloss.py
|
|
35
|
+
codebase_rag/gloss_anchor.py
|
|
32
36
|
codebase_rag/gloss_repair.py
|
|
33
37
|
codebase_rag/graph_audit.py
|
|
34
38
|
codebase_rag/graph_cli.py
|
|
@@ -162,6 +166,7 @@ codebase_rag/parsers/document_tier.py
|
|
|
162
166
|
codebase_rag/parsers/endpoint_prefixes.py
|
|
163
167
|
codebase_rag/parsers/endpoint_routes.py
|
|
164
168
|
codebase_rag/parsers/endpoints.py
|
|
169
|
+
codebase_rag/parsers/enum_variants.py
|
|
165
170
|
codebase_rag/parsers/export_detection.py
|
|
166
171
|
codebase_rag/parsers/factory.py
|
|
167
172
|
codebase_rag/parsers/field_nodes.py
|
|
@@ -288,8 +293,17 @@ codebase_rag/parsers/rs/utils.py
|
|
|
288
293
|
codebase_rag/providers/__init__.py
|
|
289
294
|
codebase_rag/providers/base.py
|
|
290
295
|
codebase_rag/providers/litellm.py
|
|
296
|
+
codebase_rag/queries/highlights/c_sharp.scm
|
|
297
|
+
codebase_rag/queries/highlights/dart.scm
|
|
298
|
+
codebase_rag/queries/highlights/java.scm
|
|
299
|
+
codebase_rag/queries/highlights/javascript.scm
|
|
300
|
+
codebase_rag/queries/highlights/php.scm
|
|
301
|
+
codebase_rag/queries/highlights/python.scm
|
|
302
|
+
codebase_rag/queries/highlights/rust.scm
|
|
303
|
+
codebase_rag/queries/highlights/typescript.scm
|
|
291
304
|
codebase_rag/services/__init__.py
|
|
292
305
|
codebase_rag/services/anthropic_token_counter.py
|
|
306
|
+
codebase_rag/services/cypher_guard.py
|
|
293
307
|
codebase_rag/services/filtering.py
|
|
294
308
|
codebase_rag/services/gloss_cleanup.py
|
|
295
309
|
codebase_rag/services/graph_diff.py
|
|
@@ -343,7 +357,9 @@ codebase_rag/trace/xdebug.py
|
|
|
343
357
|
codebase_rag/utils/__init__.py
|
|
344
358
|
codebase_rag/utils/dependencies.py
|
|
345
359
|
codebase_rag/utils/fqn_resolver.py
|
|
360
|
+
codebase_rag/utils/json_io.py
|
|
346
361
|
codebase_rag/utils/path_utils.py
|
|
362
|
+
codebase_rag/utils/qn_markers.py
|
|
347
363
|
codebase_rag/utils/rich_markdown.py
|
|
348
364
|
codebase_rag/utils/source_extraction.py
|
|
349
365
|
codebase_rag/utils/token_utils.py
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
loguru>=0.7.3
|
|
2
2
|
mcp>=1.28.1
|
|
3
|
-
pydantic-ai>=2.0.0
|
|
3
|
+
pydantic-ai-slim[anthropic,google,openai]>=2.0.0
|
|
4
4
|
pydantic-settings>=2.12.0
|
|
5
5
|
pymgclient>=1.5.1
|
|
6
6
|
python-dotenv>=1.2.1
|
|
7
7
|
tiktoken>=0.12.0
|
|
8
|
-
|
|
8
|
+
tomli-w>=1.2.0
|
|
9
9
|
tree-sitter-python>=0.25.0
|
|
10
|
-
tree-sitter==0.
|
|
10
|
+
tree-sitter==0.26.0
|
|
11
11
|
watchdog>=6.0.0
|
|
12
12
|
typer>=0.21.1
|
|
13
13
|
rich>=14.2.0
|
|
@@ -39,7 +39,7 @@ jedi>=0.19
|
|
|
39
39
|
[semantic]
|
|
40
40
|
qdrant-client>=1.9.0
|
|
41
41
|
torch>=2.6.0
|
|
42
|
-
transformers>=
|
|
42
|
+
transformers>=5.0.0
|
|
43
43
|
|
|
44
44
|
[test]
|
|
45
45
|
jedi>=0.19
|
|
@@ -66,6 +66,6 @@ tree-sitter-cpp>=0.23.0
|
|
|
66
66
|
tree-sitter-lua>=0.0.19
|
|
67
67
|
tree-sitter-php>=0.24.1
|
|
68
68
|
tree-sitter-c-sharp>=0.23.5
|
|
69
|
-
tree-sitter-dart
|
|
69
|
+
tree-sitter-dart==0.1.0
|
|
70
70
|
tree-sitter-sql>=0.3.11
|
|
71
71
|
tree-sitter-markdown>=0.5.1
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""Process defaults for the `cgr` command, applied before any settings load.
|
|
2
|
+
|
|
3
|
+
`codebase_rag.cli` imports this first among its own modules. pydantic-ai
|
|
4
|
+
depends on logfire, whose pydantic plugin pydantic loads the first time a
|
|
5
|
+
model or settings class is built; that imports OpenTelemetry and friends
|
|
6
|
+
(~0.13 s) on every start, and cgr never uses logfire (issue #2253). The
|
|
7
|
+
default applies to the CLI process only, so an application embedding
|
|
8
|
+
codebase_rag keeps its own plugins. A value the user set, including an empty
|
|
9
|
+
one that keeps every plugin, is left alone.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import os
|
|
13
|
+
|
|
14
|
+
os.environ.setdefault("PYDANTIC_DISABLE_PLUGINS", "logfire-plugin")
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
# re-parses from disk via the loader so an eviction cannot lose an AST that
|
|
3
3
|
# type inference still needs (see load()).
|
|
4
4
|
|
|
5
|
-
import sys
|
|
6
5
|
from collections import OrderedDict
|
|
7
6
|
from collections.abc import Callable, ItemsView
|
|
8
7
|
from pathlib import Path
|
|
@@ -13,8 +12,24 @@ from . import constants as cs
|
|
|
13
12
|
from .config import settings
|
|
14
13
|
|
|
15
14
|
|
|
15
|
+
def _estimate_entry_bytes(value: tuple[Node, cs.SupportedLanguage]) -> int:
|
|
16
|
+
# The memory cap is measured in bytes of SOURCE the cached trees span, not
|
|
17
|
+
# the trees' true footprint: tree-sitter allocates nodes in C, invisible to
|
|
18
|
+
# sys.getsizeof (which reports ~56 bytes for any (Node, lang) tuple, so a
|
|
19
|
+
# cap summed from it never triggered). Tree size scales with source size,
|
|
20
|
+
# which makes this a stable proxy; the real heap cost is a multiple of it.
|
|
21
|
+
return value[0].end_byte
|
|
22
|
+
|
|
23
|
+
|
|
16
24
|
class BoundedASTCache:
|
|
17
|
-
__slots__ = (
|
|
25
|
+
__slots__ = (
|
|
26
|
+
"cache",
|
|
27
|
+
"entry_sizes",
|
|
28
|
+
"loader",
|
|
29
|
+
"max_entries",
|
|
30
|
+
"max_memory_bytes",
|
|
31
|
+
"total_bytes",
|
|
32
|
+
)
|
|
18
33
|
|
|
19
34
|
def __init__(
|
|
20
35
|
self,
|
|
@@ -24,6 +39,10 @@ class BoundedASTCache:
|
|
|
24
39
|
| None = None,
|
|
25
40
|
):
|
|
26
41
|
self.cache: OrderedDict[Path, tuple[Node, cs.SupportedLanguage]] = OrderedDict()
|
|
42
|
+
# Sizes are recorded at insert so eviction and the running total never
|
|
43
|
+
# rescan every entry: each insert stays O(1) plus the evictions it causes.
|
|
44
|
+
self.entry_sizes: dict[Path, int] = {}
|
|
45
|
+
self.total_bytes = 0
|
|
27
46
|
self.loader = loader
|
|
28
47
|
self.max_entries = (
|
|
29
48
|
max_entries if max_entries is not None else settings.CACHE_MAX_ENTRIES
|
|
@@ -47,11 +66,11 @@ class BoundedASTCache:
|
|
|
47
66
|
return entry
|
|
48
67
|
|
|
49
68
|
def __setitem__(self, key: Path, value: tuple[Node, cs.SupportedLanguage]) -> None:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
69
|
+
self._remove(key)
|
|
70
|
+
size = _estimate_entry_bytes(value)
|
|
53
71
|
self.cache[key] = value
|
|
54
|
-
|
|
72
|
+
self.entry_sizes[key] = size
|
|
73
|
+
self.total_bytes += size
|
|
55
74
|
self._enforce_limits()
|
|
56
75
|
|
|
57
76
|
def __getitem__(self, key: Path) -> tuple[Node, cs.SupportedLanguage]:
|
|
@@ -60,8 +79,7 @@ class BoundedASTCache:
|
|
|
60
79
|
return value
|
|
61
80
|
|
|
62
81
|
def __delitem__(self, key: Path) -> None:
|
|
63
|
-
|
|
64
|
-
del self.cache[key]
|
|
82
|
+
self._remove(key)
|
|
65
83
|
|
|
66
84
|
def __contains__(self, key: Path) -> bool:
|
|
67
85
|
return key in self.cache
|
|
@@ -69,24 +87,25 @@ class BoundedASTCache:
|
|
|
69
87
|
def items(self) -> ItemsView[Path, tuple[Node, cs.SupportedLanguage]]:
|
|
70
88
|
return self.cache.items()
|
|
71
89
|
|
|
90
|
+
def clear(self) -> None:
|
|
91
|
+
self.cache.clear()
|
|
92
|
+
self.entry_sizes.clear()
|
|
93
|
+
self.total_bytes = 0
|
|
94
|
+
|
|
95
|
+
def _remove(self, key: Path) -> None:
|
|
96
|
+
if key in self.cache:
|
|
97
|
+
del self.cache[key]
|
|
98
|
+
self.total_bytes -= self.entry_sizes.pop(key)
|
|
99
|
+
|
|
100
|
+
def _evict_oldest(self) -> None:
|
|
101
|
+
key, _ = self.cache.popitem(last=False)
|
|
102
|
+
self.total_bytes -= self.entry_sizes.pop(key)
|
|
103
|
+
|
|
72
104
|
def _enforce_limits(self) -> None:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
)
|
|
80
|
-
for _ in range(entries_to_remove):
|
|
81
|
-
if self.cache:
|
|
82
|
-
self.cache.popitem(last=False)
|
|
83
|
-
|
|
84
|
-
def _should_evict_for_memory(self) -> bool:
|
|
85
|
-
try:
|
|
86
|
-
cache_size = sum(sys.getsizeof(v) for v in self.cache.values())
|
|
87
|
-
return cache_size > self.max_memory_bytes
|
|
88
|
-
except Exception:
|
|
89
|
-
return (
|
|
90
|
-
len(self.cache)
|
|
91
|
-
> self.max_entries * settings.CACHE_MEMORY_THRESHOLD_RATIO
|
|
92
|
-
)
|
|
105
|
+
# Evict LRU entries until both caps hold. The newest entry is kept even
|
|
106
|
+
# if it alone exceeds the memory cap: the caller just parsed it and is
|
|
107
|
+
# about to use it, and load() would only re-parse it on the next read.
|
|
108
|
+
while len(self.cache) > self.max_entries or (
|
|
109
|
+
self.total_bytes > self.max_memory_bytes and len(self.cache) > 1
|
|
110
|
+
):
|
|
111
|
+
self._evict_oldest()
|