code-graph-rag 0.0.895__tar.gz → 0.0.945__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.895/code_graph_rag.egg-info → code_graph_rag-0.0.945}/PKG-INFO +3 -1
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/README.md +3 -6
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945/code_graph_rag.egg-info}/PKG-INFO +3 -1
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/code_graph_rag.egg-info/SOURCES.txt +11 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/code_graph_rag.egg-info/requires.txt +3 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/cli.py +24 -1
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/config.py +45 -7
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_cpp.py +1 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_dart.py +5 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_java.py +3 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_nodes.py +1 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_php.py +5 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_python.py +28 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_rust.py +1 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_scala.py +1 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/cli.py +42 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/core.py +20 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/graph.py +231 -2
- code_graph_rag-0.0.945/codebase_rag/constants/health.py +87 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/mcp.py +25 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/trace.py +2 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/cypher_queries.py +276 -27
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editing/__init__.py +18 -0
- code_graph_rag-0.0.945/codebase_rag/editing/contract.py +352 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editing/imports.py +27 -5
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editing/rename.py +467 -9
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editing/transaction.py +17 -0
- code_graph_rag-0.0.945/codebase_rag/gloss.py +321 -0
- code_graph_rag-0.0.945/codebase_rag/gloss_repair.py +245 -0
- code_graph_rag-0.0.945/codebase_rag/graph_dialects.py +243 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/graph_query.py +18 -3
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/graph_updater.py +889 -65
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/language_spec.py +34 -18
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/logs.py +46 -8
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/main.py +157 -8
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/mcp/tools.py +898 -72
- code_graph_rag-0.0.945/codebase_rag/parsers/anchor_hash.py +85 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/call_processor.py +137 -37
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/call_resolver.py +201 -16
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/identity.py +2 -1
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/mixin.py +29 -2
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp_frontend/frontend.py +5 -1
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp/utils.py +64 -38
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/dart/utils.py +10 -9
- code_graph_rag-0.0.945/codebase_rag/parsers/definition_docstring.py +385 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/definition_processor.py +102 -10
- code_graph_rag-0.0.945/codebase_rag/parsers/field_nodes.py +1083 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/function_ingest.py +30 -4
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/js_ts/ingest.py +6 -4
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/js_ts/module_system.py +23 -4
- code_graph_rag-0.0.945/codebase_rag/parsers/module_docstring.py +672 -0
- code_graph_rag-0.0.945/codebase_rag/parsers/parameter_nodes.py +262 -0
- code_graph_rag-0.0.945/codebase_rag/parsers/py/ast_analyzer.py +1375 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/py/expression_analyzer.py +89 -1
- code_graph_rag-0.0.945/codebase_rag/parsers/py/type_inference.py +407 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/py/variable_analyzer.py +365 -13
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/python_source_roots.py +85 -53
- code_graph_rag-0.0.945/codebase_rag/parsers/structure_processor.py +273 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/type_facts.py +7 -1
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/type_inference.py +11 -3
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/utils.py +262 -11
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/prompts.py +74 -10
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/readme_sections.py +36 -26
- code_graph_rag-0.0.945/codebase_rag/services/gloss_cleanup.py +94 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/graph_service.py +131 -42
- code_graph_rag-0.0.945/codebase_rag/services/neo4j_driver.py +190 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/protobuf_service.py +19 -14
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/provenance.py +25 -14
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/structural_delta.py +262 -20
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/codebase_query.py +49 -3
- code_graph_rag-0.0.945/codebase_rag/tools/health_checker.py +378 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/tool_descriptions.py +42 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/cpuprofile.py +8 -4
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/types_defs.py +124 -4
- code_graph_rag-0.0.945/codebase_rag/utils/token_utils.py +104 -0
- code_graph_rag-0.0.945/codec/schema_pb2.py +91 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codec/schema_pb2.pyi +118 -8
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/pyproject.toml +7 -1
- code_graph_rag-0.0.895/codebase_rag/constants/health.py +0 -62
- code_graph_rag-0.0.895/codebase_rag/parsers/py/ast_analyzer.py +0 -575
- code_graph_rag-0.0.895/codebase_rag/parsers/py/type_inference.py +0 -116
- code_graph_rag-0.0.895/codebase_rag/parsers/structure_processor.py +0 -167
- code_graph_rag-0.0.895/codebase_rag/tools/health_checker.py +0 -258
- code_graph_rag-0.0.895/codebase_rag/utils/token_utils.py +0 -53
- code_graph_rag-0.0.895/codec/schema_pb2.py +0 -85
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/LICENSE +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/PYPI_README.md +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/cgr/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/ast_cache.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/capture.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/cgr_state.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/cli_help.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_csharp.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_go.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_js.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_lua.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/ast_sql.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/build.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/deadcode_roots.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/deps.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/duplicates.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/fqn_specs.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/lang_tooling.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/languages.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/providers.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/security.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/stdlib_types.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/constants/structural.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/context_pruning.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/crash_correlation.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/dead_code.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/decorators.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/docker-compose.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/duplicates.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editing/cli.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editing/patcher.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/editor_links.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/embedder.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/exceptions.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/flow_verdict.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/function_registry.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/graph_audit.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/graph_cli.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/mcp/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/mcp/client.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/mcp/server.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/models.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parser_fingerprint.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parser_loader.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_fingerprint.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/ast_grep_tier.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/build_lock.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/class_ingest/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/contract_linking.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/contracts.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp/preproc_recovery.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/dart/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/dart/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/dependency_parser.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/dispatch_registry.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/document_tier.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/endpoint_routes.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/endpoints.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/export_detection.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/factory.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/flat_module.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/flow_access/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/flow_access/constants.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/flow_access/processor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontend_mode.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/cpp.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/csharp.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/go.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/java.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/protocol.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/python.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/frontends/registry.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go/module_paths.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/base.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/cpp.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/java.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/js_ts.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/lua.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/php.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/protocol.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/python.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/registry.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/handlers/rust.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/import_processor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/constants.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/descriptor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/extract.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/models.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/processor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/io_access/registry.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java/method_resolver.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java/type_resolver.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java/variable_analyzer.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java_generated.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/java_lombok.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/js_ts/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/js_ts/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/lua/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/lua/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/lua/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/py/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/py/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/rpc_exposure.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/rs/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/rs/type_inference.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/rs/utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/semantic_call_join.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/stdlib_extractor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/parsers/string_call.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/path_filters.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/providers/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/providers/base.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/providers/litellm.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/schema_parse.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/anthropic_token_counter.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/filtering.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/graph_diff.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/llm.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/resource_cleanup.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/services/usage_cost.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/sql_names.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/stack/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/stack/cli.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/stack/constants.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/stack/health.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/stack/manager.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/structural_check.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/taint.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tool_errors.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/ast_grep_service.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/code_retrieval.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/directory_lister.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/duplicate_detection.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/file_editor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/file_reader.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/file_writer.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/graph_rerank.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/language.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/research.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/semantic_search.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/shell_command.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/structural_editor.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/structural_search.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/tools/web_search.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/cli.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/dispatch_site.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/ebpf_pprof.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/ingest.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/instrumented.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/pprof.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/pytest_plugin.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/records.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/resolution.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/rust_pprof.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/sourcemap.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/speedscope.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/tracer.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/trace/xdebug.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/unixcoder.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/utils/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/utils/dependencies.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/utils/fqn_resolver.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/utils/path_utils.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/utils/rich_markdown.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/utils/source_extraction.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/vector_store.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/workspaces/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/workspaces/cli.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/workspaces/constants.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/workspaces/models.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codebase_rag/workspaces/storage.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/codec/__init__.py +0 -0
- {code_graph_rag-0.0.895 → code_graph_rag-0.0.945}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.945
|
|
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
|
|
@@ -52,6 +52,8 @@ Requires-Dist: ast-grep-py>=0.44.0; extra == "test"
|
|
|
52
52
|
Requires-Dist: pyyaml>=6.0; extra == "test"
|
|
53
53
|
Provides-Extra: cpp
|
|
54
54
|
Requires-Dist: libclang>=18.1.1; extra == "cpp"
|
|
55
|
+
Provides-Extra: neo4j
|
|
56
|
+
Requires-Dist: neo4j>=5.28.1; extra == "neo4j"
|
|
55
57
|
Provides-Extra: treesitter-full
|
|
56
58
|
Requires-Dist: tree-sitter-python>=0.23.6; extra == "treesitter-full"
|
|
57
59
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == "treesitter-full"
|
|
@@ -51,12 +51,9 @@ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, builds a knowl
|
|
|
51
51
|
## Latest News 🔥
|
|
52
52
|
|
|
53
53
|
<!-- SECTION:latest_news -->
|
|
54
|
-
- **
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **Re-ingestion & Parsing**: Improved re-ingestion processes, including handling of deleted files, re-parsing of related files, and rebuilding of key data structures.
|
|
58
|
-
- **Security & Stability**: Addressed security concerns by blocking removal of project root and improved stability by preventing skipped edits and handling orphaned caches.
|
|
59
|
-
- **C++ & Go Integration**: Enhanced integration with C++ and Go, including parsing of module interfaces and handling of module-level class aliases.
|
|
54
|
+
- **UTF-8 Handling**: Improved handling of invalid UTF-8 bytes prevents file definitions from being dropped.
|
|
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.
|
|
60
57
|
<!-- /SECTION:latest_news -->
|
|
61
58
|
|
|
62
59
|
See [NEWS.md](NEWS.md) for the full history.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.945
|
|
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
|
|
@@ -52,6 +52,8 @@ Requires-Dist: ast-grep-py>=0.44.0; extra == "test"
|
|
|
52
52
|
Requires-Dist: pyyaml>=6.0; extra == "test"
|
|
53
53
|
Provides-Extra: cpp
|
|
54
54
|
Requires-Dist: libclang>=18.1.1; extra == "cpp"
|
|
55
|
+
Provides-Extra: neo4j
|
|
56
|
+
Requires-Dist: neo4j>=5.28.1; extra == "neo4j"
|
|
55
57
|
Provides-Extra: treesitter-full
|
|
56
58
|
Requires-Dist: tree-sitter-python>=0.23.6; extra == "treesitter-full"
|
|
57
59
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == "treesitter-full"
|
|
@@ -28,8 +28,11 @@ codebase_rag/embedder.py
|
|
|
28
28
|
codebase_rag/exceptions.py
|
|
29
29
|
codebase_rag/flow_verdict.py
|
|
30
30
|
codebase_rag/function_registry.py
|
|
31
|
+
codebase_rag/gloss.py
|
|
32
|
+
codebase_rag/gloss_repair.py
|
|
31
33
|
codebase_rag/graph_audit.py
|
|
32
34
|
codebase_rag/graph_cli.py
|
|
35
|
+
codebase_rag/graph_dialects.py
|
|
33
36
|
codebase_rag/graph_loader.py
|
|
34
37
|
codebase_rag/graph_query.py
|
|
35
38
|
codebase_rag/graph_updater.py
|
|
@@ -133,6 +136,7 @@ codebase_rag/constants/structural.py
|
|
|
133
136
|
codebase_rag/constants/trace.py
|
|
134
137
|
codebase_rag/editing/__init__.py
|
|
135
138
|
codebase_rag/editing/cli.py
|
|
139
|
+
codebase_rag/editing/contract.py
|
|
136
140
|
codebase_rag/editing/imports.py
|
|
137
141
|
codebase_rag/editing/patcher.py
|
|
138
142
|
codebase_rag/editing/rename.py
|
|
@@ -142,6 +146,7 @@ codebase_rag/mcp/client.py
|
|
|
142
146
|
codebase_rag/mcp/server.py
|
|
143
147
|
codebase_rag/mcp/tools.py
|
|
144
148
|
codebase_rag/parsers/__init__.py
|
|
149
|
+
codebase_rag/parsers/anchor_hash.py
|
|
145
150
|
codebase_rag/parsers/ast_fingerprint.py
|
|
146
151
|
codebase_rag/parsers/ast_grep_tier.py
|
|
147
152
|
codebase_rag/parsers/build_lock.py
|
|
@@ -149,6 +154,7 @@ codebase_rag/parsers/call_processor.py
|
|
|
149
154
|
codebase_rag/parsers/call_resolver.py
|
|
150
155
|
codebase_rag/parsers/contract_linking.py
|
|
151
156
|
codebase_rag/parsers/contracts.py
|
|
157
|
+
codebase_rag/parsers/definition_docstring.py
|
|
152
158
|
codebase_rag/parsers/definition_processor.py
|
|
153
159
|
codebase_rag/parsers/dependency_parser.py
|
|
154
160
|
codebase_rag/parsers/dispatch_registry.py
|
|
@@ -158,12 +164,15 @@ codebase_rag/parsers/endpoint_routes.py
|
|
|
158
164
|
codebase_rag/parsers/endpoints.py
|
|
159
165
|
codebase_rag/parsers/export_detection.py
|
|
160
166
|
codebase_rag/parsers/factory.py
|
|
167
|
+
codebase_rag/parsers/field_nodes.py
|
|
161
168
|
codebase_rag/parsers/flat_module.py
|
|
162
169
|
codebase_rag/parsers/frontend_mode.py
|
|
163
170
|
codebase_rag/parsers/function_ingest.py
|
|
164
171
|
codebase_rag/parsers/import_processor.py
|
|
165
172
|
codebase_rag/parsers/java_generated.py
|
|
166
173
|
codebase_rag/parsers/java_lombok.py
|
|
174
|
+
codebase_rag/parsers/module_docstring.py
|
|
175
|
+
codebase_rag/parsers/parameter_nodes.py
|
|
167
176
|
codebase_rag/parsers/python_source_roots.py
|
|
168
177
|
codebase_rag/parsers/rpc_exposure.py
|
|
169
178
|
codebase_rag/parsers/semantic_call_join.py
|
|
@@ -282,9 +291,11 @@ codebase_rag/providers/litellm.py
|
|
|
282
291
|
codebase_rag/services/__init__.py
|
|
283
292
|
codebase_rag/services/anthropic_token_counter.py
|
|
284
293
|
codebase_rag/services/filtering.py
|
|
294
|
+
codebase_rag/services/gloss_cleanup.py
|
|
285
295
|
codebase_rag/services/graph_diff.py
|
|
286
296
|
codebase_rag/services/graph_service.py
|
|
287
297
|
codebase_rag/services/llm.py
|
|
298
|
+
codebase_rag/services/neo4j_driver.py
|
|
288
299
|
codebase_rag/services/protobuf_service.py
|
|
289
300
|
codebase_rag/services/provenance.py
|
|
290
301
|
codebase_rag/services/resource_cleanup.py
|
|
@@ -1185,6 +1185,14 @@ def rename_command(
|
|
|
1185
1185
|
|
|
1186
1186
|
name, fetch_all, ingestor = _project_and_fetch(project, repo_path)
|
|
1187
1187
|
with ingestor: # type: ignore[attr-defined]
|
|
1188
|
+
parsers, queries = load_parsers()
|
|
1189
|
+
updater = GraphUpdater(
|
|
1190
|
+
ingestor=ingestor, # type: ignore[arg-type]
|
|
1191
|
+
repo_path=repo_path.resolve(),
|
|
1192
|
+
parsers=parsers,
|
|
1193
|
+
queries=queries,
|
|
1194
|
+
project_name=name,
|
|
1195
|
+
)
|
|
1188
1196
|
try:
|
|
1189
1197
|
report = rename(
|
|
1190
1198
|
repo_path.resolve(),
|
|
@@ -1194,6 +1202,7 @@ def rename_command(
|
|
|
1194
1202
|
new_name,
|
|
1195
1203
|
allow_heuristic=allow_heuristic,
|
|
1196
1204
|
dry_run=dry_run,
|
|
1205
|
+
reingest=updater.reingest,
|
|
1197
1206
|
)
|
|
1198
1207
|
except RenameRefused as refused:
|
|
1199
1208
|
typer.echo(str(refused), err=True)
|
|
@@ -1205,6 +1214,7 @@ def rename_command(
|
|
|
1205
1214
|
payload = dict(report._asdict())
|
|
1206
1215
|
payload[cs.KEY_SITES] = sites_for(report.sites)
|
|
1207
1216
|
payload[cs.KEY_AMBIGUOUS] = sites_for(report.ambiguous)
|
|
1217
|
+
payload["verdict"] = report.verdict._asdict() if report.verdict else None
|
|
1208
1218
|
typer.echo(json.dumps(payload, indent=cs.MCP_JSON_INDENT, sort_keys=True))
|
|
1209
1219
|
if not report.applied and not dry_run:
|
|
1210
1220
|
raise typer.Exit(code=1)
|
|
@@ -1291,6 +1301,18 @@ def status_command() -> None:
|
|
|
1291
1301
|
app_context.console.print(f" - {project}: last sync {ts}")
|
|
1292
1302
|
|
|
1293
1303
|
|
|
1304
|
+
def _status_mark(passed: bool, encoding: str) -> str:
|
|
1305
|
+
"""The pass/fail mark the console's stream can encode.
|
|
1306
|
+
|
|
1307
|
+
Rich substitutes ASCII box characters on a non-UTF stream but leaves
|
|
1308
|
+
text alone, so the glyph raised UnicodeEncodeError on a CP950 Windows
|
|
1309
|
+
terminal before a single check was shown (issue #1910).
|
|
1310
|
+
"""
|
|
1311
|
+
if encoding.lower().startswith(cs.ENCODING_UTF_PREFIX):
|
|
1312
|
+
return cs.HEALTH_MARK_PASS if passed else cs.HEALTH_MARK_FAIL
|
|
1313
|
+
return cs.HEALTH_MARK_PASS_ASCII if passed else cs.HEALTH_MARK_FAIL_ASCII
|
|
1314
|
+
|
|
1315
|
+
|
|
1294
1316
|
@app.command(
|
|
1295
1317
|
name=ch.CLICommandName.DOCTOR,
|
|
1296
1318
|
help=ch.CMD_DOCTOR,
|
|
@@ -1306,8 +1328,9 @@ def doctor() -> None:
|
|
|
1306
1328
|
table = Table(show_header=False, box=None, padding=(0, 2))
|
|
1307
1329
|
table.add_column(style="cyan", no_wrap=False)
|
|
1308
1330
|
|
|
1331
|
+
encoding = app_context.console.encoding
|
|
1309
1332
|
for result in results:
|
|
1310
|
-
status =
|
|
1333
|
+
status = _status_mark(result.passed, encoding)
|
|
1311
1334
|
status_color = cs.Color.GREEN if result.passed else cs.Color.RED
|
|
1312
1335
|
status_text = style(status, status_color, cs.StyleModifier.NONE)
|
|
1313
1336
|
|
|
@@ -9,12 +9,13 @@ from typing import TypedDict, Unpack
|
|
|
9
9
|
|
|
10
10
|
from dotenv import load_dotenv
|
|
11
11
|
from loguru import logger
|
|
12
|
-
from pydantic import Field
|
|
12
|
+
from pydantic import Field, field_validator
|
|
13
13
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
14
14
|
|
|
15
15
|
from . import constants as cs
|
|
16
16
|
from . import exceptions as ex
|
|
17
17
|
from . import logs
|
|
18
|
+
from .graph_dialects import DIALECT_MEMGRAPH, available_dialects
|
|
18
19
|
from .types_defs import CgrignorePatterns, ModelConfigKwargs
|
|
19
20
|
|
|
20
21
|
# Load only the configuration file in the invocation directory. The default
|
|
@@ -103,6 +104,16 @@ def format_missing_api_key_errors(
|
|
|
103
104
|
|
|
104
105
|
LOCAL_PROVIDERS = frozenset({cs.Provider.OLLAMA})
|
|
105
106
|
|
|
107
|
+
# The provider-owned variable `validate_api_key` accepts INSTEAD of the role's
|
|
108
|
+
# own `<ROLE>_API_KEY`. Module level so `cgr doctor` can name the same variable
|
|
109
|
+
# the gate reads rather than restating the rule and drifting from it (#1910).
|
|
110
|
+
# A provider absent here is satisfied only by the role variable.
|
|
111
|
+
PROVIDER_ENV_KEYS = {
|
|
112
|
+
cs.Provider.ANTHROPIC: cs.ENV_ANTHROPIC_API_KEY,
|
|
113
|
+
cs.Provider.AZURE: cs.ENV_AZURE_API_KEY,
|
|
114
|
+
cs.Provider.MINIMAX: cs.ENV_MINIMAX_API_KEY,
|
|
115
|
+
}
|
|
116
|
+
|
|
106
117
|
|
|
107
118
|
@dataclass
|
|
108
119
|
class ModelConfig:
|
|
@@ -124,12 +135,7 @@ class ModelConfig:
|
|
|
124
135
|
|
|
125
136
|
def validate_api_key(self, role: str = cs.DEFAULT_MODEL_ROLE) -> None:
|
|
126
137
|
provider_lower = self.provider.lower()
|
|
127
|
-
|
|
128
|
-
cs.Provider.ANTHROPIC: cs.ENV_ANTHROPIC_API_KEY,
|
|
129
|
-
cs.Provider.AZURE: cs.ENV_AZURE_API_KEY,
|
|
130
|
-
cs.Provider.MINIMAX: cs.ENV_MINIMAX_API_KEY,
|
|
131
|
-
}
|
|
132
|
-
env_key = provider_env_keys.get(provider_lower)
|
|
138
|
+
env_key = PROVIDER_ENV_KEYS.get(provider_lower)
|
|
133
139
|
if (
|
|
134
140
|
provider_lower in LOCAL_PROVIDERS
|
|
135
141
|
or (
|
|
@@ -159,11 +165,24 @@ class AppConfig(BaseSettings):
|
|
|
159
165
|
case_sensitive=False,
|
|
160
166
|
)
|
|
161
167
|
|
|
168
|
+
# Which graph engine the ingestor talks to. Memgraph stays the default,
|
|
169
|
+
# so an existing install keeps its behaviour without touching config;
|
|
170
|
+
# see `graph_dialects` for what actually differs between engines.
|
|
171
|
+
GRAPH_BACKEND: str = DIALECT_MEMGRAPH
|
|
172
|
+
|
|
162
173
|
MEMGRAPH_HOST: str = "localhost"
|
|
163
174
|
MEMGRAPH_PORT: int = 7687
|
|
164
175
|
MEMGRAPH_HTTP_PORT: int = 7444
|
|
165
176
|
MEMGRAPH_USERNAME: str | None = None
|
|
166
177
|
MEMGRAPH_PASSWORD: str | None = None
|
|
178
|
+
|
|
179
|
+
# Neo4j connects by URI rather than host/port: the scheme carries the
|
|
180
|
+
# routing mode (`neo4j://` for a cluster, `bolt://` for one instance)
|
|
181
|
+
# and TLS (`+s`/`+ssc`), none of which a host/port pair can express.
|
|
182
|
+
NEO4J_URI: str = "bolt://localhost:7687"
|
|
183
|
+
NEO4J_USERNAME: str | None = None
|
|
184
|
+
NEO4J_PASSWORD: str | None = None
|
|
185
|
+
NEO4J_DATABASE: str = "neo4j"
|
|
167
186
|
LAB_PORT: int = 3000
|
|
168
187
|
MEMGRAPH_BATCH_SIZE: int = 1000
|
|
169
188
|
AGENT_RETRIES: int = 3
|
|
@@ -364,6 +383,25 @@ class AppConfig(BaseSettings):
|
|
|
364
383
|
QUERY_MEMORY_LIMIT_MB: int = Field(default=4096, gt=0)
|
|
365
384
|
QUERY_TIMEOUT_S: float = Field(default=60.0, gt=0)
|
|
366
385
|
|
|
386
|
+
@field_validator("GRAPH_BACKEND")
|
|
387
|
+
@classmethod
|
|
388
|
+
def _known_backend(cls, value: str) -> str:
|
|
389
|
+
"""Reject an unknown engine name at startup.
|
|
390
|
+
|
|
391
|
+
Defaulting an unrecognised value to Memgraph would send Memgraph
|
|
392
|
+
DDL to whatever server is actually configured, and
|
|
393
|
+
`MemgraphIngestor.ensure_constraints` swallows DDL failures -- so
|
|
394
|
+
a typo would surface much later as a graph built with no
|
|
395
|
+
constraints rather than as a startup error.
|
|
396
|
+
"""
|
|
397
|
+
normalised = value.strip().lower()
|
|
398
|
+
if normalised not in available_dialects():
|
|
399
|
+
raise ValueError(
|
|
400
|
+
f"GRAPH_BACKEND must be one of {', '.join(available_dialects())}; "
|
|
401
|
+
f"got {value!r}"
|
|
402
|
+
)
|
|
403
|
+
return normalised
|
|
404
|
+
|
|
367
405
|
OLLAMA_HEALTH_TIMEOUT: float = 5.0
|
|
368
406
|
LITELLM_HEALTH_TIMEOUT: float = 5.0
|
|
369
407
|
|
|
@@ -81,6 +81,7 @@ CPP_KEYWORD_STRUCT = "struct"
|
|
|
81
81
|
# `static` storage on a declaration: internal linkage, TU-local symbol.
|
|
82
82
|
CPP_KEYWORD_STATIC = "static"
|
|
83
83
|
TS_CPP_STORAGE_CLASS_SPECIFIER = "storage_class_specifier"
|
|
84
|
+
TS_CPP_TYPE_QUALIFIER = "type_qualifier"
|
|
84
85
|
CPP_EXPORTED_CLASS_KEYWORDS = frozenset({CPP_KEYWORD_CLASS, CPP_KEYWORD_STRUCT})
|
|
85
86
|
|
|
86
87
|
# A C/C++ class/struct/union tag with no body is a forward declaration
|
|
@@ -81,6 +81,11 @@ DART_NESTED_SCOPE_NODE_TYPES = frozenset(
|
|
|
81
81
|
}
|
|
82
82
|
)
|
|
83
83
|
TS_DART_INITIALIZED_IDENTIFIER_LIST = "initialized_identifier_list"
|
|
84
|
+
TS_DART_STATIC_FINAL_DECLARATION_LIST = "static_final_declaration_list"
|
|
85
|
+
TS_DART_STATIC_FINAL_DECLARATION = "static_final_declaration"
|
|
86
|
+
TS_DART_CONST_BUILTIN = "const_builtin"
|
|
87
|
+
TS_DART_FINAL_BUILTIN = "final_builtin"
|
|
88
|
+
TS_DART_LATE = "late"
|
|
84
89
|
TS_DART_INITIALIZED_IDENTIFIER = "initialized_identifier"
|
|
85
90
|
TS_DART_INITIALIZED_VARIABLE_DEFINITION = "initialized_variable_definition"
|
|
86
91
|
TS_DART_FORMAL_PARAMETER = "formal_parameter"
|
|
@@ -21,6 +21,9 @@ TS_FORMAL_PARAMETER = "formal_parameter"
|
|
|
21
21
|
TS_SPREAD_PARAMETER = "spread_parameter"
|
|
22
22
|
TS_LOCAL_VARIABLE_DECLARATION = "local_variable_declaration"
|
|
23
23
|
TS_FIELD_DECLARATION = "field_declaration"
|
|
24
|
+
# An interface field. The grammar names it after what it implicitly is
|
|
25
|
+
# (`public static final`), so the keywords are usually absent from source.
|
|
26
|
+
TS_JAVA_CONSTANT_DECLARATION = "constant_declaration"
|
|
24
27
|
TS_ASSIGNMENT_EXPRESSION = "assignment_expression"
|
|
25
28
|
|
|
26
29
|
TS_OBJECT_CREATION_EXPRESSION = "object_creation_expression"
|
|
@@ -32,6 +32,11 @@ TS_PHP_ATTRIBUTE_LIST = "attribute_list"
|
|
|
32
32
|
TS_PHP_ATTRIBUTE = "attribute"
|
|
33
33
|
TS_PHP_ATTRIBUTE_GROUP = "attribute_group"
|
|
34
34
|
TS_PHP_VISIBILITY_MODIFIER = "visibility_modifier"
|
|
35
|
+
TS_PHP_STATIC_MODIFIER = "static_modifier"
|
|
36
|
+
TS_PHP_PROPERTY_DECLARATION = "property_declaration"
|
|
37
|
+
TS_PHP_PROPERTY_ELEMENT = "property_element"
|
|
38
|
+
TS_PHP_DECLARATION_LIST = "declaration_list"
|
|
39
|
+
TS_PHP_VARIABLE_NAME = "variable_name"
|
|
35
40
|
TS_PHP_USE_DECLARATION = "use_declaration"
|
|
36
41
|
|
|
37
42
|
# FLOWS_TO lean-walk node types (issue #1174). PHP variables carry a `$` prefix
|
|
@@ -62,6 +62,7 @@ TS_FIELD_OPERATORS = "operators"
|
|
|
62
62
|
TS_PY_IF_STATEMENT = "if_statement"
|
|
63
63
|
TS_PY_TRY_STATEMENT = "try_statement"
|
|
64
64
|
TS_PY_GLOBAL_STATEMENT = "global_statement"
|
|
65
|
+
TS_PY_NONLOCAL_STATEMENT = "nonlocal_statement"
|
|
65
66
|
# Match statement: arms are exclusive; an UNGUARDED `case _` (empty
|
|
66
67
|
# case_pattern) always matches, removing the implicit no-match path.
|
|
67
68
|
TS_PY_MATCH_STATEMENT = "match_statement"
|
|
@@ -76,6 +77,11 @@ TS_PY_DOTTED_NAME = "dotted_name"
|
|
|
76
77
|
# `a | b` case alternatives; the bare `_` alternative is an ANONYMOUS
|
|
77
78
|
# node, invisible to named_children.
|
|
78
79
|
TS_PY_UNION_PATTERN = "union_pattern"
|
|
80
|
+
# `Foo(x=<pattern>)`, `*rest` / `**rest` inside a case pattern.
|
|
81
|
+
TS_PY_KEYWORD_PATTERN = "keyword_pattern"
|
|
82
|
+
TS_PY_SPLAT_PATTERN = "splat_pattern"
|
|
83
|
+
# `import x as y` / `from m import x as y`; the alias is a local binding.
|
|
84
|
+
TS_PY_ALIASED_IMPORT = "aliased_import"
|
|
79
85
|
TS_PY_WILDCARD_NODE = "_"
|
|
80
86
|
TS_PY_WHILE_STATEMENT = "while_statement"
|
|
81
87
|
TS_PY_ELIF_CLAUSE = "elif_clause"
|
|
@@ -84,6 +90,7 @@ TS_PY_EXCEPT_CLAUSE = "except_clause"
|
|
|
84
90
|
TS_PY_FINALLY_CLAUSE = "finally_clause"
|
|
85
91
|
TS_PY_CONDITIONAL_EXPRESSION = "conditional_expression"
|
|
86
92
|
TS_PY_BOOLEAN_OPERATOR = "boolean_operator"
|
|
93
|
+
TS_PY_BINARY_OPERATOR = "binary_operator"
|
|
87
94
|
TS_PY_NOT_OPERATOR = "not_operator"
|
|
88
95
|
TS_FIELD_CONDITION = "condition"
|
|
89
96
|
TS_FIELD_CONSEQUENCE = "consequence"
|
|
@@ -92,6 +99,25 @@ TS_FIELD_ARGUMENT = "argument"
|
|
|
92
99
|
# Python operator syntax dispatches to dunder methods at runtime; these names
|
|
93
100
|
# let the call extractor synthesise the implied <operand>.__dunder__ call.
|
|
94
101
|
PY_OP_IN = "in"
|
|
102
|
+
PY_OP_AND = "and"
|
|
103
|
+
# `left <op> right` dispatches to `left.__dunder__`, so the expression's type is
|
|
104
|
+
# whatever that method returns -- which an overloaded operator can make a
|
|
105
|
+
# different class from either operand (`Factory / Config -> Product`).
|
|
106
|
+
PY_BINARY_OPERATOR_DUNDERS: dict[str, str] = {
|
|
107
|
+
"+": "__add__",
|
|
108
|
+
"-": "__sub__",
|
|
109
|
+
"*": "__mul__",
|
|
110
|
+
"/": "__truediv__",
|
|
111
|
+
"//": "__floordiv__",
|
|
112
|
+
"%": "__mod__",
|
|
113
|
+
"@": "__matmul__",
|
|
114
|
+
"**": "__pow__",
|
|
115
|
+
"|": "__or__",
|
|
116
|
+
"&": "__and__",
|
|
117
|
+
"^": "__xor__",
|
|
118
|
+
"<<": "__lshift__",
|
|
119
|
+
">>": "__rshift__",
|
|
120
|
+
}
|
|
95
121
|
PY_BUILTIN_LEN = "len"
|
|
96
122
|
PY_BUILTIN_GETATTR = "getattr"
|
|
97
123
|
TS_PY_STRING_CONTENT = "string_content"
|
|
@@ -138,6 +164,8 @@ PY_METHOD_INIT = "__init__"
|
|
|
138
164
|
DECORATOR_AT = "@"
|
|
139
165
|
PROPERTY_DECORATORS: frozenset[str] = frozenset({"property", "cached_property"})
|
|
140
166
|
ABSTRACT_DECORATORS: frozenset[str] = frozenset({"abstractmethod", "abstractproperty"})
|
|
167
|
+
# A static method takes no receiver: a first parameter named `self` is explicit.
|
|
168
|
+
STATIC_DECORATORS: frozenset[str] = frozenset({"staticmethod"})
|
|
141
169
|
|
|
142
170
|
# Eager builtins that invoke a callable argument synchronously in the caller's
|
|
143
171
|
# stack frame, so the trace attributes the call to the enclosing function (no
|
|
@@ -81,6 +81,7 @@ TS_RS_MUTABLE_SPECIFIER = "mutable_specifier"
|
|
|
81
81
|
TS_RS_STRUCT_EXPRESSION = "struct_expression"
|
|
82
82
|
TS_RS_FIELD_DECLARATION_LIST = "field_declaration_list"
|
|
83
83
|
TS_RS_FIELD_DECLARATION = "field_declaration"
|
|
84
|
+
TS_RS_VISIBILITY_MODIFIER = "visibility_modifier"
|
|
84
85
|
TS_RS_FIELD_IDENTIFIER = "field_identifier"
|
|
85
86
|
TS_RS_MATCH_EXPRESSION = "match_expression"
|
|
86
87
|
TS_RS_MATCH_ARM = "match_arm"
|
|
@@ -34,6 +34,7 @@ TS_SCALA_BLOCK = "block"
|
|
|
34
34
|
TS_SCALA_TEMPLATE_BODY = "template_body"
|
|
35
35
|
TS_SCALA_VAL_DEFINITION = "val_definition"
|
|
36
36
|
TS_SCALA_VAR_DEFINITION = "var_definition"
|
|
37
|
+
TS_SCALA_ACCESS_MODIFIER = "access_modifier"
|
|
37
38
|
TS_SCALA_LAMBDA_EXPRESSION = "lambda_expression"
|
|
38
39
|
TS_SCALA_IDENTIFIER = "identifier"
|
|
39
40
|
TS_SCALA_INSTANCE_EXPRESSION = "instance_expression"
|
|
@@ -539,6 +539,10 @@ EDIT_RESERVED_PATH = "Path is cgr state, not part of the tree: {path}"
|
|
|
539
539
|
EDIT_TRANSACTION_FINISHED = "This transaction has already been committed or rolled back"
|
|
540
540
|
EDIT_CONFLICT = "File changed since it was staged; transaction refused: {path}"
|
|
541
541
|
EDIT_NOTHING_STAGED = "Nothing staged; the working tree is untouched"
|
|
542
|
+
EDIT_NOT_NEWEST = (
|
|
543
|
+
"Transaction {transaction_id} is not the newest recorded edit ({newest}); "
|
|
544
|
+
"undo the later edit first"
|
|
545
|
+
)
|
|
542
546
|
EDIT_VERIFICATION_FAILED = (
|
|
543
547
|
"Verification failed; the working tree is untouched: {reason}"
|
|
544
548
|
)
|
|
@@ -577,6 +581,44 @@ RENAME_STRUCTURAL_UNLOCATABLE = (
|
|
|
577
581
|
)
|
|
578
582
|
RENAME_PLANNED = "{count} site(s) would be rewritten"
|
|
579
583
|
RENAME_PARSE_FAILED = "Rename rolled back: {files} would no longer parse"
|
|
584
|
+
RENAME_CONTRACT_FAILED = "Rename rolled back, postcondition failed: {reasons}"
|
|
585
|
+
RENAME_ROLLBACK_REFUSED = (
|
|
586
|
+
"Rename failed its postcondition ({reasons}) and was not rolled back "
|
|
587
|
+
"({error}); renamed files may remain modified; check the working tree"
|
|
588
|
+
)
|
|
589
|
+
RENAME_ROLLBACK_UNKNOWN = (
|
|
590
|
+
"Rename kept: its postcondition failed ({reasons}) and its transaction is "
|
|
591
|
+
"no longer in the edit history, so whether it was already reversed cannot "
|
|
592
|
+
"be told from a truncated history; check the working tree"
|
|
593
|
+
)
|
|
594
|
+
RENAME_ROLLBACK_ALREADY_UNDONE = (
|
|
595
|
+
"Rename rolled back: its postcondition failed ({reasons}) and its "
|
|
596
|
+
"transaction had already been reversed by another actor, so the files "
|
|
597
|
+
"were restored without this rollback doing it"
|
|
598
|
+
)
|
|
599
|
+
RENAME_ROLLBACK_UNMEASURED = (
|
|
600
|
+
"Rename rolled back after its postcondition failed ({reasons}), but the "
|
|
601
|
+
"graph could not be re-ingested afterwards ({error}); rebuild the graph "
|
|
602
|
+
"before the next graph-backed operation"
|
|
603
|
+
)
|
|
604
|
+
RENAME_CONTRACT_UNMEASURED = (
|
|
605
|
+
"Rename applied, but its postcondition could not be measured: {error}"
|
|
606
|
+
)
|
|
607
|
+
# Postcondition contract (issue #1531).
|
|
608
|
+
CONTRACT_OP_RENAME = "rename"
|
|
609
|
+
CONTRACT_OP_CHANGE_SIGNATURE = "change_signature"
|
|
610
|
+
CONTRACT_OP_MOVE = "move"
|
|
611
|
+
CONTRACT_RENAME_MISSING = "{old} was not renamed to {new}"
|
|
612
|
+
CONTRACT_RENAME_UNEXPECTED = "unexpected rename: {pairs}"
|
|
613
|
+
CONTRACT_SYMBOLS_MOVED = "symbol set changed: added {added}; removed {removed}"
|
|
614
|
+
CONTRACT_CALLERS_MOVED = "call site count changed: {before} before, {after} after"
|
|
615
|
+
CONTRACT_DANGLING = "dangling callers: {sites}"
|
|
616
|
+
CONTRACT_SITES_UNMAPPED = "call sites neither mapped nor listed as unmapped: {sites}"
|
|
617
|
+
CONTRACT_HEURISTIC_REWRITTEN = "sites resolved by guesswork were rewritten: {sites}"
|
|
618
|
+
CONTRACT_NEW_CYCLE = "new import cycle: {cycles}"
|
|
619
|
+
CONTRACT_STALE_IMPORTER = "importers still target the old module: {sites}"
|
|
620
|
+
CONTRACT_NEW_DUPLICATE = "new duplicate: {pairs}"
|
|
621
|
+
CONTRACT_PARSE_FAILED = "files no longer parse: {files}"
|
|
580
622
|
MSG_SURGICAL_FAILED = (
|
|
581
623
|
"Failed to apply surgical replacement in {path}. "
|
|
582
624
|
"Target code not found or patches failed."
|
|
@@ -5,6 +5,18 @@ from enum import StrEnum
|
|
|
5
5
|
INIT_PY = "__init__.py"
|
|
6
6
|
|
|
7
7
|
ENCODING_UTF8 = "utf-8"
|
|
8
|
+
# Any UTF encoding can carry the whole of Unicode; the check Rich itself
|
|
9
|
+
# uses to decide whether a stream can show box-drawing characters.
|
|
10
|
+
ENCODING_UTF_PREFIX = "utf"
|
|
11
|
+
# Longest UTF-8 sequence, so a window this size either side of a name spans
|
|
12
|
+
# any single character that could legitimately sit next to it.
|
|
13
|
+
UTF8_MAX_SEQUENCE_BYTES = 4
|
|
14
|
+
# Sigils an ingestor prepends to a synthesized symbol name (a C# destructor
|
|
15
|
+
# is stored as `~Greeter` while the source leaf is `Greeter`).
|
|
16
|
+
SYNTHETIC_NAME_PREFIXES = "~"
|
|
17
|
+
# What `errors="replace"` substitutes for an undecodable byte. Its presence
|
|
18
|
+
# in an extracted symbol name means the name is damaged.
|
|
19
|
+
UNICODE_REPLACEMENT_CHAR = "\ufffd"
|
|
8
20
|
|
|
9
21
|
ARG_TARGET_CODE = "target_code"
|
|
10
22
|
ARG_REPLACEMENT_CODE = "replacement_code"
|
|
@@ -188,6 +200,14 @@ CGR_STATE_FILENAMES: frozenset[str] = frozenset(
|
|
|
188
200
|
)
|
|
189
201
|
# Edit transactions (issue #1528).
|
|
190
202
|
EDIT_HISTORY_LIMIT = 50
|
|
203
|
+
|
|
204
|
+
# What a TransactionConflict means for a rename's rollback. Absence from the
|
|
205
|
+
# history is only evidence of an undo while the history has not reached its
|
|
206
|
+
# retention limit; at the limit an entry can have been EVICTED with its
|
|
207
|
+
# rename still on disk.
|
|
208
|
+
RENAME_UNDO_STACKED = "stacked"
|
|
209
|
+
RENAME_UNDO_UNDONE = "undone"
|
|
210
|
+
RENAME_UNDO_UNKNOWN = "unknown"
|
|
191
211
|
EDIT_TRANSACTION_ID_LENGTH = 12
|
|
192
212
|
EDIT_STAGING_PREFIX = "cgr-edit-"
|
|
193
213
|
DIFF_DEV_NULL = "/dev/null"
|