code-graph-rag 0.2.10__tar.gz → 0.2.19__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.2.10/code_graph_rag.egg-info → code_graph_rag-0.2.19}/PKG-INFO +6 -5
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/PYPI_README.md +3 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/README.md +7 -5
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19/code_graph_rag.egg-info}/PKG-INFO +6 -5
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/code_graph_rag.egg-info/SOURCES.txt +2 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/code_graph_rag.egg-info/requires.txt +2 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/cli.py +66 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/cli_help.py +4 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_dart.py +7 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_python.py +2 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_rust.py +6 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/cli.py +18 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/core.py +9 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/duplicates.py +29 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/graph.py +46 -4
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/mcp.py +20 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/providers.py +10 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/structural.py +4 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/trace.py +23 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/crash_correlation.py +269 -29
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/cypher_queries.py +66 -12
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/patcher.py +2 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/gloss_repair.py +18 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/graph_query.py +97 -17
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/graph_updater.py +238 -6
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/language_spec.py +6 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/logs.py +19 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/main.py +14 -3
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/mcp/tools.py +156 -50
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +1 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/call_processor.py +161 -50
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/call_resolver.py +10 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/mixin.py +10 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/type_inference.py +7 -3
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/dart/__init__.py +2 -0
- code_graph_rag-0.2.19/codebase_rag/parsers/dart/package_paths.py +61 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/dart/utils.py +22 -6
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/definition_processor.py +5 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/endpoint_prefixes.py +32 -13
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/endpoint_routes.py +74 -5
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/endpoints.py +33 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/flow_access/processor.py +6 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/type_inference.py +17 -11
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/import_processor.py +98 -29
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/constants.py +2 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/processor.py +7 -4
- code_graph_rag-0.2.19/codebase_rag/parsers/io_access/resource_names.py +29 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/php/namespaces.py +16 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/variable_analyzer.py +40 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/rs/type_inference.py +36 -28
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/llm.py +41 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/structural_check.py +35 -9
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/structural_delta.py +710 -41
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/ast_grep_service.py +19 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/tool_descriptions.py +18 -8
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/cli.py +11 -7
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/pprof.py +17 -7
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/xdebug.py +23 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/types_defs.py +3 -1
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/source_encoding.py +66 -8
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/source_extraction.py +4 -2
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/pyproject.toml +15 -4
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/LICENSE +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/cgr/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/_cli_env.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/ast_cache.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/capture.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/check_isolation.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/checkout_state.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/cli_runtime.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/config.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/console_marks.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_cpp.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_csharp.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_go.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_java.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_js.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_julia.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_lua.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_nodes.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_php.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_scala.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/ast_sql.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/build.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/deadcode_roots.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/deps.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/embedded_graph.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/fqn_specs.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/health.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/interface.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/lang_tooling.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/languages.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/notebook.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/security.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/sqlite_vectors.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/constants/stdlib_types.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/context_pruning.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/context_slice.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/dead_code.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/decorators.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/docker-compose.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/duplicates.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/cli.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/contract.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/import_paths.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/imports.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/occurrences.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/rename.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/signature_bind.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/signature_contract.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/signature_spec.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/sites.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editing/transaction.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/editor_links.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/compiler.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/connection.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/cypher_ast.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/executor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/expressions.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/extension.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/functions.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/lexer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/limits.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/native.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/parser.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/procedures.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/sql.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/store.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedded_graph/types.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/embedder.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/exceptions.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/flow_verdict.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/function_registry.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/gloss.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/gloss_anchor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/graph_audit.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/graph_cli.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/graph_dialects.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/interface_skip.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/mcp/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/mcp/client.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/mcp/server.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/mgclient_compat.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/mgclient_probe.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/models.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parser_fingerprint.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parser_loader.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/anchor_hash.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_fingerprint.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_scope.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/ast_grep_tier.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/build_lock.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/base_targets.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/identity.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/class_ingest/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/contract_linking.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/contracts.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/class_macro.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/function_values.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/local_types.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/overloads.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/preproc_recovery.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/trailing_annotation.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp/arity.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/dart/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/definition_docstring.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/dependency_parser.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/dispatch_registry.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/document_tier.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/enum_variants.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/export_detection.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/factory.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/field_nodes.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/flat_module.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/flow_access/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/flow_access/constants.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontend_mode.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/cpp.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/csharp.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/go.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/java.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/protocol.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/python.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/frontends/registry.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/function_ingest.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/builds.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/interface_ingest.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/interfaces.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/link_state.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/module_paths.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/base.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/cpp.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/java.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/js_ts.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/julia.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/lua.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/php.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/protocol.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/python.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/registry.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/handlers/rust.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/interface_fingerprint.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/descriptor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/extract.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/models.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/registry.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/io_access/url_folding.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java/method_resolver.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java/type_resolver.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java/variable_analyzer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java_generated.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/java_lombok.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/commonjs_exports.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/ingest.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/module_system.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/overloads.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/reexports.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/js_ts/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/julia/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/julia/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/lua/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/lua/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/lua/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/module_docstring.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/notebook.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/parameter_nodes.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/php/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/php/class_names.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/php/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/positional_params.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/ast_analyzer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/class_aliases.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/forward_refs.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/overloads.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/receiver_rebinding.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py/with_analyzer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/python_source_roots.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/rpc_exposure.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/rs/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/rs/cargo_semver.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/rs/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/scala/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/scala/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/semantic_call_join.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/stdlib_extractor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/string_call.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/structure_processor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/type_facts.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/type_inference.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/parsers/utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/path_filters.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/project_selection.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/prompts.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/providers/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/providers/base.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/providers/litellm.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/c_sharp.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/dart.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/java.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/javascript.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/julia.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/php.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/python.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/rust.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/queries/highlights/typescript.scm +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/readme_sections.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/schema_parse.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/anthropic_token_counter.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/cypher_guard.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/filtering.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/gloss_cleanup.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/graph_diff.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/graph_service.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/neo4j_driver.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/protobuf_service.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/provenance.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/resource_cleanup.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/services/usage_cost.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/sql_names.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/sqlite_vectors.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/stack/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/stack/cli.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/stack/constants.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/stack/health.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/stack/manager.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/sync_guard.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/sync_lock.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/taint.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tool_errors.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/code_retrieval.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/codebase_query.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/directory_lister.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/duplicate_detection.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/file_editor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/file_reader.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/file_writer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/graph_refresh.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/graph_rerank.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/health_checker.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/language.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/language_catalog.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/research.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/semantic_search.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/shell_command.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/structural_editor.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/structural_search.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tools/web_search.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/carry.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/cpuprofile.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/dispatch_site.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/ebpf_pprof.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/ingest.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/instrumented.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/pytest_plugin.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/records.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/resolution.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/rust_pprof.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/sourcemap.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/speedscope.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/trace/tracer.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/tree_sitter_point.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/unixcoder.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/cpp_signatures.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/dependencies.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/endpoints.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/fqn_resolver.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/interruptible_thread.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/json_io.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/path_utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/process_owner.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/qn_markers.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/rich_markdown.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/terminal_console.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/utils/token_utils.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/vector_store.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/watch.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/workspaces/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/workspaces/cli.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/workspaces/constants.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/workspaces/models.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codebase_rag/workspaces/storage.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codec/__init__.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codec/schema.proto +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codec/schema_pb2.py +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/codec/schema_pb2.pyi +0 -0
- {code_graph_rag-0.2.10 → code_graph_rag-0.2.19}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.19
|
|
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
|
|
@@ -49,7 +49,7 @@ Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
|
49
49
|
Requires-Dist: testcontainers>=4.9.0; extra == "test"
|
|
50
50
|
Requires-Dist: libclang>=18.1.1; extra == "test"
|
|
51
51
|
Requires-Dist: filelock>=3.12; extra == "test"
|
|
52
|
-
Requires-Dist: ast-grep-py>=0.
|
|
52
|
+
Requires-Dist: ast-grep-py>=0.51.0; extra == "test"
|
|
53
53
|
Requires-Dist: pyyaml>=6.0; extra == "test"
|
|
54
54
|
Requires-Dist: pymgclient>=1.6.0; extra == "test"
|
|
55
55
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "test"
|
|
@@ -85,7 +85,7 @@ Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
|
85
85
|
Provides-Extra: sqlite-vec
|
|
86
86
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "sqlite-vec"
|
|
87
87
|
Provides-Extra: ast-grep
|
|
88
|
-
Requires-Dist: ast-grep-py>=0.
|
|
88
|
+
Requires-Dist: ast-grep-py>=0.51.0; extra == "ast-grep"
|
|
89
89
|
Requires-Dist: pyyaml>=6.0; extra == "ast-grep"
|
|
90
90
|
Provides-Extra: python-semantics
|
|
91
91
|
Requires-Dist: jedi>=0.19; extra == "python-semantics"
|
|
@@ -152,8 +152,9 @@ transformers are then not required locally.
|
|
|
152
152
|
`pip install code-graph-rag` gives you the newest PyPI release, which is deliberately
|
|
153
153
|
not the newest commit. Git tags exist for every version (one per merge), while PyPI
|
|
154
154
|
uploads and GitHub Release binaries land on an every-50 cadence, so the tag on `main`
|
|
155
|
-
usually runs ahead of the published version. A security fix
|
|
156
|
-
|
|
155
|
+
usually runs ahead of the published version. A security fix, a breaking change or a
|
|
156
|
+
merge a maintainer labels `release now` is the exception: each ships immediately
|
|
157
|
+
rather than waiting for the cadence.
|
|
157
158
|
|
|
158
159
|
To run code newer than the latest release, install from git with uv:
|
|
159
160
|
|
|
@@ -59,8 +59,9 @@ transformers are then not required locally.
|
|
|
59
59
|
`pip install code-graph-rag` gives you the newest PyPI release, which is deliberately
|
|
60
60
|
not the newest commit. Git tags exist for every version (one per merge), while PyPI
|
|
61
61
|
uploads and GitHub Release binaries land on an every-50 cadence, so the tag on `main`
|
|
62
|
-
usually runs ahead of the published version. A security fix
|
|
63
|
-
|
|
62
|
+
usually runs ahead of the published version. A security fix, a breaking change or a
|
|
63
|
+
merge a maintainer labels `release now` is the exception: each ships immediately
|
|
64
|
+
rather than waiting for the cadence.
|
|
64
65
|
|
|
65
66
|
To run code newer than the latest release, install from git with uv:
|
|
66
67
|
|
|
@@ -61,7 +61,8 @@ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by c
|
|
|
61
61
|
## Latest News 🔥
|
|
62
62
|
|
|
63
63
|
<!-- SECTION:latest_news -->
|
|
64
|
-
- **
|
|
64
|
+
- **Dependency Locking**: Locked `opentelemetry-api` to version 1.45.1 for stability.
|
|
65
|
+
- **GHSA Security Fix**: Addressed GHSA-xcq7-p3pf-p88h vulnerability.
|
|
65
66
|
<!-- /SECTION:latest_news -->
|
|
66
67
|
|
|
67
68
|
See [NEWS.md](NEWS.md) for the full history.
|
|
@@ -118,13 +119,14 @@ Three version lines exist and they intentionally differ:
|
|
|
118
119
|
| where | what it tracks |
|
|
119
120
|
|---|---|
|
|
120
121
|
| git tags | every version, one per merge |
|
|
121
|
-
| GitHub Releases (binaries, signatures) | every 50th version, plus any security fix |
|
|
122
|
-
| PyPI | every 50th version, plus any security fix |
|
|
122
|
+
| GitHub Releases (binaries, signatures) | every 50th version, plus any security fix, breaking change or merge labelled `release now` |
|
|
123
|
+
| PyPI | every 50th version, plus any security fix, breaking change or merge labelled `release now` |
|
|
123
124
|
|
|
124
125
|
So the newest tag on `main` usually runs ahead of the newest release, often by
|
|
125
126
|
tens of patch versions; they coincide only just after a release. Nothing is
|
|
126
|
-
stuck, the cadences differ by design. A security fix
|
|
127
|
-
|
|
127
|
+
stuck, the cadences differ by design. A security fix, a breaking change or a
|
|
128
|
+
merge a maintainer labels `release now` does NOT wait for the cadence: each ships
|
|
129
|
+
a release and a PyPI upload immediately.
|
|
128
130
|
|
|
129
131
|
`uv tool install` and `pipx install` give you the newest PyPI version, which is the
|
|
130
132
|
newest RELEASE, not the newest tag. Interim tags exist so every merge is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.19
|
|
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
|
|
@@ -49,7 +49,7 @@ Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
|
49
49
|
Requires-Dist: testcontainers>=4.9.0; extra == "test"
|
|
50
50
|
Requires-Dist: libclang>=18.1.1; extra == "test"
|
|
51
51
|
Requires-Dist: filelock>=3.12; extra == "test"
|
|
52
|
-
Requires-Dist: ast-grep-py>=0.
|
|
52
|
+
Requires-Dist: ast-grep-py>=0.51.0; extra == "test"
|
|
53
53
|
Requires-Dist: pyyaml>=6.0; extra == "test"
|
|
54
54
|
Requires-Dist: pymgclient>=1.6.0; extra == "test"
|
|
55
55
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "test"
|
|
@@ -85,7 +85,7 @@ Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
|
85
85
|
Provides-Extra: sqlite-vec
|
|
86
86
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "sqlite-vec"
|
|
87
87
|
Provides-Extra: ast-grep
|
|
88
|
-
Requires-Dist: ast-grep-py>=0.
|
|
88
|
+
Requires-Dist: ast-grep-py>=0.51.0; extra == "ast-grep"
|
|
89
89
|
Requires-Dist: pyyaml>=6.0; extra == "ast-grep"
|
|
90
90
|
Provides-Extra: python-semantics
|
|
91
91
|
Requires-Dist: jedi>=0.19; extra == "python-semantics"
|
|
@@ -152,8 +152,9 @@ transformers are then not required locally.
|
|
|
152
152
|
`pip install code-graph-rag` gives you the newest PyPI release, which is deliberately
|
|
153
153
|
not the newest commit. Git tags exist for every version (one per merge), while PyPI
|
|
154
154
|
uploads and GitHub Release binaries land on an every-50 cadence, so the tag on `main`
|
|
155
|
-
usually runs ahead of the published version. A security fix
|
|
156
|
-
|
|
155
|
+
usually runs ahead of the published version. A security fix, a breaking change or a
|
|
156
|
+
merge a maintainer labels `release now` is the exception: each ships immediately
|
|
157
|
+
rather than waiting for the cadence.
|
|
157
158
|
|
|
158
159
|
To run code newer than the latest release, install from git with uv:
|
|
159
160
|
|
|
@@ -270,6 +270,7 @@ codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs
|
|
|
270
270
|
codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj
|
|
271
271
|
codebase_rag/parsers/csharp_frontend/roslyn/Program.cs
|
|
272
272
|
codebase_rag/parsers/dart/__init__.py
|
|
273
|
+
codebase_rag/parsers/dart/package_paths.py
|
|
273
274
|
codebase_rag/parsers/dart/type_inference.py
|
|
274
275
|
codebase_rag/parsers/dart/utils.py
|
|
275
276
|
codebase_rag/parsers/flow_access/__init__.py
|
|
@@ -315,6 +316,7 @@ codebase_rag/parsers/io_access/extract.py
|
|
|
315
316
|
codebase_rag/parsers/io_access/models.py
|
|
316
317
|
codebase_rag/parsers/io_access/processor.py
|
|
317
318
|
codebase_rag/parsers/io_access/registry.py
|
|
319
|
+
codebase_rag/parsers/io_access/resource_names.py
|
|
318
320
|
codebase_rag/parsers/io_access/url_folding.py
|
|
319
321
|
codebase_rag/parsers/java/__init__.py
|
|
320
322
|
codebase_rag/parsers/java/method_resolver.py
|
|
@@ -24,7 +24,7 @@ regex>=2024.11.6
|
|
|
24
24
|
cgr-graph-rs<0.2,>=0.1.0
|
|
25
25
|
|
|
26
26
|
[ast-grep]
|
|
27
|
-
ast-grep-py>=0.
|
|
27
|
+
ast-grep-py>=0.51.0
|
|
28
28
|
pyyaml>=6.0
|
|
29
29
|
|
|
30
30
|
[cpp]
|
|
@@ -59,7 +59,7 @@ pytest-xdist>=3.8.0
|
|
|
59
59
|
testcontainers>=4.9.0
|
|
60
60
|
libclang>=18.1.1
|
|
61
61
|
filelock>=3.12
|
|
62
|
-
ast-grep-py>=0.
|
|
62
|
+
ast-grep-py>=0.51.0
|
|
63
63
|
pyyaml>=6.0
|
|
64
64
|
pymgclient>=1.6.0
|
|
65
65
|
sqlite-vec>=0.1.9
|
|
@@ -60,6 +60,7 @@ from .graph_cli import cli as graph_cli
|
|
|
60
60
|
from .graph_dialects import DIALECT_MEMGRAPH
|
|
61
61
|
from .parser_loader import load_parsers
|
|
62
62
|
from .project_selection import ProjectChoice, choose_project, scope_refusal
|
|
63
|
+
from .services.gloss_cleanup import prune_orphaned_glosses
|
|
63
64
|
from .services.graph_diff import DiffError, diff_indexes, diff_is_empty
|
|
64
65
|
from .services.graph_service import GraphUnavailableError, MemgraphIngestor
|
|
65
66
|
from .services.protobuf_service import ProtobufFileIngestor
|
|
@@ -1069,6 +1070,28 @@ def _clear_deleted_project_markers(
|
|
|
1069
1070
|
logger.warning(ls.CLI_DELETE_SYNC_MARKER_KEPT.format(project=project_name))
|
|
1070
1071
|
|
|
1071
1072
|
|
|
1073
|
+
def _sweep_glosses_after_failed_delete(
|
|
1074
|
+
ingestor: MemgraphIngestor, project_name: str
|
|
1075
|
+
) -> None:
|
|
1076
|
+
"""Sweep the notes of a delete that raised after the project was removed.
|
|
1077
|
+
|
|
1078
|
+
The delete commits statement by statement, so a later cleanup can raise
|
|
1079
|
+
once the project is already gone, and a retry then stops at "project not
|
|
1080
|
+
found" before any sweep. A project still listed keeps its unattached
|
|
1081
|
+
notes: they are LOST or AMBIGUOUS by design and readable on their old
|
|
1082
|
+
names. Never raises, so the delete's own error is what is reported.
|
|
1083
|
+
"""
|
|
1084
|
+
try:
|
|
1085
|
+
still_listed = project_name in ingestor.list_projects()
|
|
1086
|
+
except Exception as exc:
|
|
1087
|
+
logger.warning(
|
|
1088
|
+
ls.CLI_DELETE_GLOSS_SWEEP_SKIPPED.format(project=project_name, error=exc)
|
|
1089
|
+
)
|
|
1090
|
+
return
|
|
1091
|
+
if not still_listed:
|
|
1092
|
+
prune_orphaned_glosses(ingestor, project_name)
|
|
1093
|
+
|
|
1094
|
+
|
|
1072
1095
|
def _run_updater_deferring_interrupt(
|
|
1073
1096
|
updater: "GraphUpdater",
|
|
1074
1097
|
) -> KeyboardInterrupt | None:
|
|
@@ -1207,10 +1230,33 @@ def _run_graph_sync(
|
|
|
1207
1230
|
cs.StyleModifier.NONE,
|
|
1208
1231
|
)
|
|
1209
1232
|
)
|
|
1233
|
+
_report_call_pass_failures(repo, list(updater.call_pass_failures))
|
|
1210
1234
|
if interrupted is not None:
|
|
1211
1235
|
raise interrupted
|
|
1212
1236
|
|
|
1213
1237
|
|
|
1238
|
+
def _report_call_pass_failures(repo: Path, failed: list[Path]) -> None:
|
|
1239
|
+
# A file whose call pass failed lost edges while the sync still reads
|
|
1240
|
+
# "done": the error lines scroll away, so the summary counts them (#3173).
|
|
1241
|
+
if not failed:
|
|
1242
|
+
return
|
|
1243
|
+
names = sorted(
|
|
1244
|
+
path.relative_to(repo).as_posix() if path.is_relative_to(repo) else str(path)
|
|
1245
|
+
for path in failed
|
|
1246
|
+
)
|
|
1247
|
+
shown = names[: cs.CLI_CALL_PASS_FAILURES_SHOWN]
|
|
1248
|
+
if len(names) > len(shown):
|
|
1249
|
+
shown.append(cs.CLI_MSG_AND_MORE.format(count=len(names) - len(shown)))
|
|
1250
|
+
app_context.console.print(
|
|
1251
|
+
style(
|
|
1252
|
+
cs.CLI_MSG_CALL_PASS_FAILURES.format(
|
|
1253
|
+
count=len(names), files=", ".join(shown)
|
|
1254
|
+
),
|
|
1255
|
+
cs.Color.YELLOW,
|
|
1256
|
+
)
|
|
1257
|
+
)
|
|
1258
|
+
|
|
1259
|
+
|
|
1214
1260
|
def _delete_hash_cache(repo_path: Path) -> None:
|
|
1215
1261
|
# Resolving the state directory also moves in what an older cgr left in
|
|
1216
1262
|
# the tree, so a clean right after upgrading clears that copy too.
|
|
@@ -3519,7 +3565,26 @@ def delete_project(
|
|
|
3519
3565
|
)
|
|
3520
3566
|
)
|
|
3521
3567
|
_cleanup_project_embeddings(ingestor, project_name, projects)
|
|
3522
|
-
|
|
3568
|
+
try:
|
|
3569
|
+
ingestor.delete_project(project_name)
|
|
3570
|
+
except Exception:
|
|
3571
|
+
_sweep_glosses_after_failed_delete(ingestor, project_name)
|
|
3572
|
+
raise
|
|
3573
|
+
# A Gloss is out of the delete's reach by design, which is what
|
|
3574
|
+
# lets it survive an index's delete-then-rebuild, so the
|
|
3575
|
+
# deliberate delete sweeps the project's notes, as MCP
|
|
3576
|
+
# `delete_project` does. Without it the next index re-attached
|
|
3577
|
+
# them by name (issue #3231). The sweep never raises: the delete
|
|
3578
|
+
# is done, and a retry would stop at "project not found".
|
|
3579
|
+
if not prune_orphaned_glosses(ingestor, project_name):
|
|
3580
|
+
app_context.console.print(
|
|
3581
|
+
style(
|
|
3582
|
+
cs.CLI_WARN_GLOSSES_NOT_PRUNED.format(
|
|
3583
|
+
project_name=project_name
|
|
3584
|
+
),
|
|
3585
|
+
cs.Color.YELLOW,
|
|
3586
|
+
)
|
|
3587
|
+
)
|
|
3523
3588
|
_clear_deleted_project_markers(ingestor, project_name)
|
|
3524
3589
|
except typer.Exit:
|
|
3525
3590
|
raise
|
|
@@ -169,8 +169,10 @@ HELP_CHECK_BASE = (
|
|
|
169
169
|
)
|
|
170
170
|
HELP_CHECK_FAIL_ON_FOUND = (
|
|
171
171
|
"Exit with status 1 when the delta reports dangling callers, dangling "
|
|
172
|
-
"importers, calls with too many arguments,
|
|
173
|
-
"
|
|
172
|
+
"importers, calls with too many arguments, too few for a required "
|
|
173
|
+
"parameter or a keyword the callee does not accept, new duplicates or new "
|
|
174
|
+
"import cycles. A possibly_missing site is reported but does not fail the "
|
|
175
|
+
"check."
|
|
174
176
|
)
|
|
175
177
|
HELP_CHECK_ISOLATED = (
|
|
176
178
|
"Measure the edit, then put the graph and the hash cache back so the "
|
|
@@ -216,6 +216,13 @@ DART_SCHEME_DART = "dart:"
|
|
|
216
216
|
DART_SCHEME_PACKAGE = "package:"
|
|
217
217
|
DART_QUOTE_CHARS = "'\""
|
|
218
218
|
DART_EXT = ".dart"
|
|
219
|
+
# A `package:<name>/<path>` import names `<path>` under the `lib/` beside the
|
|
220
|
+
# pubspec whose top-level `name:` is `<name>` (issue #3278). The name is a
|
|
221
|
+
# Dart identifier, optionally quoted, optionally followed by a comment.
|
|
222
|
+
DART_PACKAGE_LIB_DIR = "lib"
|
|
223
|
+
DART_PUBSPEC_NAME_PATTERN = (
|
|
224
|
+
r"^name:[ \t]*['\"]?([A-Za-z_][A-Za-z0-9_]*)['\"]?[ \t]*(?:#.*)?$"
|
|
225
|
+
)
|
|
219
226
|
|
|
220
227
|
# Node types whose captured signature needs the sibling-body span fix.
|
|
221
228
|
DART_SIGNATURE_TYPES = frozenset(
|
|
@@ -409,6 +409,8 @@ PROPERTY_DECORATORS: frozenset[str] = frozenset({"property", "cached_property"})
|
|
|
409
409
|
ABSTRACT_DECORATORS: frozenset[str] = frozenset({"abstractmethod", "abstractproperty"})
|
|
410
410
|
# A static method takes no receiver: a first parameter named `self` is explicit.
|
|
411
411
|
STATIC_DECORATORS: frozenset[str] = frozenset({"staticmethod"})
|
|
412
|
+
# A class method binds `cls` even when called through its class.
|
|
413
|
+
CLASSMETHOD_DECORATORS: frozenset[str] = frozenset({"classmethod"})
|
|
412
414
|
|
|
413
415
|
# Eager builtins that invoke a callable argument synchronously in the caller's
|
|
414
416
|
# stack frame, so the trace attributes the call to the enclosing function (no
|
|
@@ -156,6 +156,9 @@ RS_MACRO_RECEIVER_TYPES = RS_IDENT_OR_SELF
|
|
|
156
156
|
# (`server . run`, `Config :: load`), and the segments a `::` path takes
|
|
157
157
|
# (`Self` is an identifier token; `crate`, `super`, `self` are keywords).
|
|
158
158
|
RS_MACRO_CHAIN_SEPARATORS = (TS_RS_TOKEN_DOT, TS_RS_TOKEN_SCOPE)
|
|
159
|
+
# How far each token moves the nesting of a turbofish's generic arguments in a
|
|
160
|
+
# macro token stream, where `Vec<Vec<u8>>` closes with one `>>` token.
|
|
161
|
+
RS_MACRO_ANGLE_DEPTH = {"<": 1, ">": -1, ">>": -2}
|
|
159
162
|
RS_MACRO_PATH_SEGMENT_TYPES = (TS_IDENTIFIER, KEYWORD_SELF, TS_RS_CRATE, KEYWORD_SUPER)
|
|
160
163
|
# Rust `Self` return type resolves to the enclosing impl target.
|
|
161
164
|
RS_SELF_TYPE = "Self"
|
|
@@ -294,6 +297,9 @@ RS_MANIFEST_KIND_DIRS = {
|
|
|
294
297
|
}
|
|
295
298
|
RS_MANIFEST_WORKSPACE_KEY = "workspace"
|
|
296
299
|
RS_MANIFEST_MEMBERS_KEY = "members"
|
|
300
|
+
# A workspace member that is the root package itself, and its `./` prefix.
|
|
301
|
+
RS_CURRENT_DIR = "."
|
|
302
|
+
RS_CURRENT_DIR_PREFIX = "./"
|
|
297
303
|
RS_MANIFEST_NAME_KEY = "name"
|
|
298
304
|
RS_MANIFEST_LIB_SECTION = "lib"
|
|
299
305
|
RS_MANIFEST_DEP_SECTIONS = ("dependencies", "dev-dependencies", "build-dependencies")
|
|
@@ -170,6 +170,12 @@ MSG_SYNCING_WORKSPACE = (
|
|
|
170
170
|
)
|
|
171
171
|
CLI_MSG_SYNC_SKIPPED = "Knowledge graph already in sync for '{project}' ({elapsed:.2f}s, no changes detected)."
|
|
172
172
|
CLI_MSG_SYNC_DONE = "Knowledge graph sync done for '{project}' in {elapsed:.2f}s."
|
|
173
|
+
CLI_MSG_CALL_PASS_FAILURES = (
|
|
174
|
+
"Call analysis failed in {count} file(s); their CALLS edges may be "
|
|
175
|
+
"incomplete (see the errors above): {files}"
|
|
176
|
+
)
|
|
177
|
+
CLI_CALL_PASS_FAILURES_SHOWN = 10
|
|
178
|
+
CLI_MSG_AND_MORE = "... {count} more"
|
|
173
179
|
CLI_MSG_SYNC_INTERRUPTED = (
|
|
174
180
|
"Interrupted: the graph for '{project}' is incomplete; re-run "
|
|
175
181
|
"'cgr start --update-graph' with the same options to finish it."
|
|
@@ -249,6 +255,10 @@ CLI_ERR_CLEAN_UNKNOWN_PROJECTS = (
|
|
|
249
255
|
CLI_MSG_CLEAN_ABORTED = "Aborted: the graph was left untouched."
|
|
250
256
|
CLI_MSG_DELETING_PROJECT = "Deleting project '{project_name}' from the graph..."
|
|
251
257
|
CLI_MSG_PROJECT_DELETED = "Project '{project_name}' deleted successfully."
|
|
258
|
+
CLI_WARN_GLOSSES_NOT_PRUNED = (
|
|
259
|
+
"Warning: the notes (glosses) of project '{project_name}' could not be "
|
|
260
|
+
"removed and remain in the graph unattached; the log has the error."
|
|
261
|
+
)
|
|
252
262
|
CLI_WARN_DELETE_PROJECT_SHARED_ROOT = (
|
|
253
263
|
"Warning: project(s) {projects} were indexed from the same directory as "
|
|
254
264
|
"'{project_name}' ({root_path}). Only what '{project_name}' owns is "
|
|
@@ -355,8 +365,8 @@ CHECK_NOT_INDEXED = (
|
|
|
355
365
|
# before rebuilding them from the edited tree, so those edges cannot be put
|
|
356
366
|
# back. Refused rather than silently lost (greptile-local, #1718).
|
|
357
367
|
CHECK_ISOLATED_GRAPH_HAS_IO = (
|
|
358
|
-
"--isolated cannot restore the IO resource links
|
|
359
|
-
"
|
|
368
|
+
"--isolated cannot restore the IO resource links project {project}'s code "
|
|
369
|
+
"anchors ({groups}): cutting a changed file's subtree can leave a resource "
|
|
360
370
|
"chain unanchored, and the re-ingest's repo-wide resource prune would "
|
|
361
371
|
"delete it. Re-run without --isolated on a graph you can rebuild."
|
|
362
372
|
)
|
|
@@ -535,6 +545,12 @@ UI_NEW_FILE_HEADER = "[bold cyan]New file: {path}[/bold cyan]"
|
|
|
535
545
|
UI_SHELL_COMMAND_HEADER = "[bold cyan]Shell command:[/bold cyan]"
|
|
536
546
|
UI_TOOL_APPROVAL = "[bold yellow]⚠️ Tool '{tool_name}' requires approval:[/bold yellow]"
|
|
537
547
|
UI_FEEDBACK_PROMPT = "Feedback (why rejected, or press Enter to skip)"
|
|
548
|
+
# `cgr start -a` has no operator to ask: what the model is told when it asks
|
|
549
|
+
# for an edit or a non-read-only command without --no-confirm (issue #2657).
|
|
550
|
+
ASK_AGENT_APPROVAL_DENIED = (
|
|
551
|
+
"Edits and non-read-only commands are disabled in --ask-agent mode; "
|
|
552
|
+
"answer without them. The user can re-run with --no-confirm to allow them."
|
|
553
|
+
)
|
|
538
554
|
UI_OPTIMIZATION_START = (
|
|
539
555
|
"[bold green]Starting {language} optimization session...[/bold green]"
|
|
540
556
|
)
|
|
@@ -10,6 +10,15 @@ PY_PACKAGE_INIT_FILES: tuple[str, ...] = (INIT_PY, INIT_PYI)
|
|
|
10
10
|
|
|
11
11
|
ENCODING_UTF8 = "utf-8"
|
|
12
12
|
ENCODING_UTF8_SIG = "utf-8-sig"
|
|
13
|
+
# BOM-aware: decoding picks the byte order from the mark and drops it.
|
|
14
|
+
ENCODING_UTF16 = "utf-16"
|
|
15
|
+
ENCODING_UTF32 = "utf-32"
|
|
16
|
+
# One byte order each, for the text after a BOM: writing that text back in
|
|
17
|
+
# one of these, behind the same mark, gives the file's own bytes.
|
|
18
|
+
ENCODING_UTF16_LE = "utf-16-le"
|
|
19
|
+
ENCODING_UTF16_BE = "utf-16-be"
|
|
20
|
+
ENCODING_UTF32_LE = "utf-32-le"
|
|
21
|
+
ENCODING_UTF32_BE = "utf-32-be"
|
|
13
22
|
ENCODING_ASCII = "ascii"
|
|
14
23
|
# Codec names (as `codecs.lookup` normalises them) whose bytes the grammar
|
|
15
24
|
# already reads as they are, so a source declaring one needs no transcoding.
|
|
@@ -127,18 +127,46 @@ DELTA_ARITY_TOO_MANY = "too_many"
|
|
|
127
127
|
DELTA_ARITY_TOO_FEW = "too_few"
|
|
128
128
|
DELTA_ARITY_POSSIBLY_MISSING = "possibly_missing"
|
|
129
129
|
DELTA_ARITY_UNKNOWN = "unknown"
|
|
130
|
+
# Definite only where the callee's header was read back (issues #2853,
|
|
131
|
+
# #2845): a keyword the new signature does not accept, with no `**kwargs`,
|
|
132
|
+
# and a required parameter no argument fills, with no splat to supply it.
|
|
133
|
+
DELTA_ARITY_UNEXPECTED_KEYWORD = "unexpected_keyword"
|
|
134
|
+
# The verdicts that fail `--fail-on-found`: each is a certain `TypeError`.
|
|
135
|
+
DELTA_ARITY_DEFINITE = frozenset(
|
|
136
|
+
{DELTA_ARITY_TOO_MANY, DELTA_ARITY_UNEXPECTED_KEYWORD, DELTA_ARITY_TOO_FEW}
|
|
137
|
+
)
|
|
138
|
+
# Decorators that hand the call to the def as written; any other may change
|
|
139
|
+
# what a caller must pass, so the header alone settles nothing.
|
|
140
|
+
PY_STATICMETHOD = "staticmethod"
|
|
141
|
+
PY_SIGNATURE_PRESERVING_DECORATORS = frozenset(
|
|
142
|
+
{
|
|
143
|
+
PY_STATICMETHOD,
|
|
144
|
+
"classmethod",
|
|
145
|
+
"abstractmethod",
|
|
146
|
+
"abc.abstractmethod",
|
|
147
|
+
"override",
|
|
148
|
+
"typing.override",
|
|
149
|
+
"typing_extensions.override",
|
|
150
|
+
}
|
|
151
|
+
)
|
|
130
152
|
|
|
131
153
|
|
|
132
154
|
# What still names a removed or renamed symbol in a structural delta's
|
|
133
155
|
# `dangling_importers` (issue #2516): an import statement binding it, or a
|
|
134
|
-
# Python `__all__` string entry exporting it.
|
|
156
|
+
# Python `__all__` string entry exporting it. `module` is an import of a
|
|
157
|
+
# module the edit deleted or moved (issue #3266): `import pkg.signals`,
|
|
158
|
+
# `from pkg import util`, `export * from "./util"`.
|
|
135
159
|
class DanglingImportKind(StrEnum):
|
|
136
160
|
IMPORT = "import"
|
|
137
161
|
ALL = "__all__"
|
|
162
|
+
MODULE = "module"
|
|
138
163
|
|
|
139
164
|
|
|
140
165
|
# Hops the backward test-reach walk follows before giving up.
|
|
141
166
|
DELTA_REACH_MAX_DEPTH = 12
|
|
167
|
+
# Source files whose syntax tree the arity verdicts keep while judging one
|
|
168
|
+
# delta's sites (issue #2899): one parse per file version, however many sites.
|
|
169
|
+
DELTA_PARSED_SOURCES_KEPT = 64
|
|
142
170
|
|
|
143
171
|
# Cypher return alias for the not-analyzed symbol count.
|
|
144
172
|
KEY_SKIPPED = "skipped"
|
|
@@ -209,6 +209,10 @@ KEY_UNRESOLVED_SPECIFIERS = "unresolved_specifiers"
|
|
|
209
209
|
# so the modules that waited for it are re-parsed (issue #1568). Written
|
|
210
210
|
# unconditionally on every parse so a resolved name clears.
|
|
211
211
|
KEY_UNRESOLVED_REFERENCES = "unresolved_references"
|
|
212
|
+
# The dotted namespace a PHP file declares (`App.Util`), on its Module: a
|
|
213
|
+
# `use function App\\Util\\slug` matches it, and only a parse of the file
|
|
214
|
+
# gives it, so an incremental run reads it back from here (issue #3277).
|
|
215
|
+
KEY_PHP_NAMESPACE = "php_namespace"
|
|
212
216
|
KEY_ABSOLUTE_PATH = "absolute_path"
|
|
213
217
|
# Whether flow analysis covered a Module: its language is in the source/sink
|
|
214
218
|
# registry AND the FLOWS_TO capture group was enabled at indexing. Read by
|
|
@@ -837,6 +841,9 @@ KEY_ANCHOR = "anchor"
|
|
|
837
841
|
# omitted key, so a fixed link would otherwise stay listed as broken.
|
|
838
842
|
KEY_BROKEN_LINKS = "broken_links"
|
|
839
843
|
KEY_DECORATORS = "decorators"
|
|
844
|
+
# The largest line a `path:line` target is looked up at: past it no source
|
|
845
|
+
# file has the line, and the value would overflow a Bolt integer.
|
|
846
|
+
GRAPH_MAX_SOURCE_LINE = 2**31 - 1
|
|
840
847
|
# Return and parameter annotations as written (issue #1527). `return_type` is
|
|
841
848
|
# absent when the definition has none; `param_types` is parallel to the
|
|
842
849
|
# declared parameters ("" for an unannotated one) and absent, not empty, for
|
|
@@ -991,6 +998,13 @@ MILVUS_IDS_EXPR = "{field} in {ids}"
|
|
|
991
998
|
# Milvus answers a delete with the deleted keys or with this count.
|
|
992
999
|
MILVUS_DELETE_COUNT_KEY = "delete_count"
|
|
993
1000
|
|
|
1001
|
+
# The ownership relations a Module's subtree hangs off, walked by the
|
|
1002
|
+
# re-parse delete and by the lookup of files that attach members to it.
|
|
1003
|
+
MODULE_SUBTREE_REL_PATTERN = (
|
|
1004
|
+
"DEFINES|DEFINES_METHOD|CONTAINS_SECTION|HAS_PARAMETER"
|
|
1005
|
+
"|HAS_FIELD|HAS_VARIANT|DEFINES_CONSTANT"
|
|
1006
|
+
"|IMPLEMENTS_PATTERN|HAS_SMELL|HAS_VULNERABILITY"
|
|
1007
|
+
)
|
|
994
1008
|
CYPHER_DELETE_MODULE = (
|
|
995
1009
|
# Scoped to the project: two projects in the shared graph can hold the
|
|
996
1010
|
# same relative path, and a path-only match would take the sibling's
|
|
@@ -1030,9 +1044,7 @@ CYPHER_DELETE_MODULE = (
|
|
|
1030
1044
|
# re-parse stripped its edge and left the node: an orphan per re-parse
|
|
1031
1045
|
# after a sync that drops the `findings` capture group, or per finding
|
|
1032
1046
|
# the edited source no longer matches (issue #2536).
|
|
1033
|
-
"OPTIONAL MATCH (m)-[:
|
|
1034
|
-
"|HAS_FIELD|HAS_VARIANT|DEFINES_CONSTANT"
|
|
1035
|
-
"|IMPLEMENTS_PATTERN|HAS_SMELL|HAS_VULNERABILITY*0..]->(c) "
|
|
1047
|
+
f"OPTIONAL MATCH (m)-[:{MODULE_SUBTREE_REL_PATTERN}*0..]->(c) "
|
|
1036
1048
|
"DETACH DELETE m, c"
|
|
1037
1049
|
)
|
|
1038
1050
|
# Keyed on absolute_path: the relative path is shared across same-layout
|
|
@@ -1240,7 +1252,8 @@ CYPHER_ALL_DEFINITION_QNS = (
|
|
|
1240
1252
|
CYPHER_ALL_MODULE_QNS = (
|
|
1241
1253
|
"MATCH (n) WHERE (n:Module OR n:ModuleInterface) "
|
|
1242
1254
|
"AND n.qualified_name STARTS WITH $project_prefix "
|
|
1243
|
-
"RETURN n.qualified_name AS qualified_name, head(labels(n)) AS label"
|
|
1255
|
+
"RETURN n.qualified_name AS qualified_name, head(labels(n)) AS label, "
|
|
1256
|
+
"n.php_namespace AS php_namespace"
|
|
1244
1257
|
)
|
|
1245
1258
|
|
|
1246
1259
|
# Inbound reference edges (from unchanged files) into symbols defined in one
|
|
@@ -1303,6 +1316,19 @@ CYPHER_INBOUND_EDGES = (
|
|
|
1303
1316
|
# like INHERITS: an implementor in the same package holds no import edge into
|
|
1304
1317
|
# its interface's file, and without this it was neither re-parsed nor
|
|
1305
1318
|
# restored when that file was re-indexed (issue #1565).
|
|
1319
|
+
# Files that attach members to these modules' subtrees: a Go method keyed
|
|
1320
|
+
# under its receiver type's module whatever file declares it, a C++
|
|
1321
|
+
# out-of-line definition hung on its header's class. The re-parse delete
|
|
1322
|
+
# walks the subtree and takes them, and only their own file recreates them,
|
|
1323
|
+
# so they must re-parse in the same run (issue #3271).
|
|
1324
|
+
CYPHER_FOREIGN_MEMBER_PATHS = (
|
|
1325
|
+
"MATCH (m:Module) WHERE m.path IN $paths "
|
|
1326
|
+
"AND (m.qualified_name = $project_name "
|
|
1327
|
+
"OR m.qualified_name STARTS WITH $project_prefix) "
|
|
1328
|
+
f"MATCH (m)-[:{MODULE_SUBTREE_REL_PATTERN}*1..]->(c) "
|
|
1329
|
+
"WHERE c.path IS NOT NULL AND NOT c.path IN $paths "
|
|
1330
|
+
"RETURN DISTINCT c.path AS path"
|
|
1331
|
+
)
|
|
1306
1332
|
CYPHER_AFFECTED_CALLER_PATHS = (
|
|
1307
1333
|
"MATCH (caller)-[:CALLS|REFERENCES|INSTANTIATES|IMPORTS|INHERITS|IMPLEMENTS]->(target) "
|
|
1308
1334
|
"WHERE target.path IN $paths AND caller.path IS NOT NULL "
|
|
@@ -1405,6 +1431,22 @@ CYPHER_UNRESOLVED_IMPORTER_PATHS = (
|
|
|
1405
1431
|
"OR target.qualified_name STARTS WITH (name + '.')) "
|
|
1406
1432
|
"RETURN DISTINCT importer.path AS caller_path"
|
|
1407
1433
|
)
|
|
1434
|
+
# Every IMPORTS edge written for a `package:` URI, with where it went (issue
|
|
1435
|
+
# #3278 review). A Dart pubspec's `name:` decides whether `package:<name>/...`
|
|
1436
|
+
# is a module of the project or an external package, so adding, deleting or
|
|
1437
|
+
# renaming one moves those imports while the importers stay unchanged on
|
|
1438
|
+
# disk, and no edge leads from them to the pubspec for the dependents lookup
|
|
1439
|
+
# to follow. The caller resolves each URI again and keeps the moved ones.
|
|
1440
|
+
CYPHER_PACKAGE_URI_IMPORTS = (
|
|
1441
|
+
"MATCH (importer)-[r:IMPORTS]->(target) "
|
|
1442
|
+
"WHERE importer.path IS NOT NULL "
|
|
1443
|
+
"AND importer.qualified_name STARTS WITH $project_prefix "
|
|
1444
|
+
"AND r.imported_name STARTS WITH $uri_prefix "
|
|
1445
|
+
"RETURN DISTINCT importer.path AS caller_path, "
|
|
1446
|
+
"importer.qualified_name AS from_qn, r.imported_name AS imported_name, "
|
|
1447
|
+
"target.qualified_name AS to_qn"
|
|
1448
|
+
)
|
|
1449
|
+
CYPHER_PARAM_URI_PREFIX = "uri_prefix"
|
|
1408
1450
|
# Modules carrying at least one unresolved relative specifier, with the
|
|
1409
1451
|
# specifiers themselves. The specifier is relative to the IMPORTING module's
|
|
1410
1452
|
# directory, so the match against a created file is resolved in Python rather
|
|
@@ -134,6 +134,17 @@ MCP_JSON_INDENT = 2
|
|
|
134
134
|
MCP_LOG_LEVEL_INFO = "INFO"
|
|
135
135
|
MCP_LOG_FORMAT = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <level>{message}</level>"
|
|
136
136
|
MCP_PAGINATION_HEADER = "# Lines {start}-{end} of {total}\n"
|
|
137
|
+
# `read_file`'s window, refused in its own terms rather than as whatever
|
|
138
|
+
# `islice()` says of a negative index, or as "Lines 1001-1000 of 7"
|
|
139
|
+
# (issue #3244). The schema bounds them too; a direct call is checked here.
|
|
140
|
+
MCP_READ_OFFSET_MINIMUM = 0
|
|
141
|
+
MCP_READ_LIMIT_MINIMUM = 1
|
|
142
|
+
MCP_READ_OFFSET_NEGATIVE = "offset {offset} is negative"
|
|
143
|
+
MCP_READ_LIMIT_NOT_POSITIVE = "limit {limit} is not positive"
|
|
144
|
+
MCP_READ_PAST_END = "offset {offset} is past the end of {path} ({total} lines)"
|
|
145
|
+
# A `path:line` target whose line no source file can reach; sent on, it
|
|
146
|
+
# overflows the 64-bit Bolt integer in the driver.
|
|
147
|
+
MCP_RESOLVE_LINE_OUT_OF_RANGE = "Line {line} of {path} is out of range."
|
|
137
148
|
|
|
138
149
|
# MCP response messages
|
|
139
150
|
MCP_INDEX_SUCCESS = "Successfully indexed repository at {path}. Knowledge graph has been updated (previous data cleared)."
|
|
@@ -212,6 +223,10 @@ MCP_SEMANTIC_NOT_AVAILABLE_RESPONSE = (
|
|
|
212
223
|
"Semantic search is not available. Install with: uv sync --extra semantic"
|
|
213
224
|
)
|
|
214
225
|
MCP_ASK_AGENT_ERROR = "Error running ask_agent: {error}"
|
|
226
|
+
MCP_ASK_AGENT_APPROVAL_DENIED = (
|
|
227
|
+
"ask_agent cannot edit files or run non-read-only commands; answer "
|
|
228
|
+
"without them. The client can make the change with the MCP edit tools."
|
|
229
|
+
)
|
|
215
230
|
# Refused rather than answered with zero rows: an empty result for a
|
|
216
231
|
# misspelled project name is indistinguishable from a genuine empty result.
|
|
217
232
|
MCP_UNKNOWN_PROJECT = "Unknown project {project!r}. Indexed projects: {known}"
|
|
@@ -235,6 +250,11 @@ MCP_ROOT_NOT_INDEXED = (
|
|
|
235
250
|
# it" / "no test reaches it" (issue #2461).
|
|
236
251
|
MCP_UNKNOWN_TARGET = "{qualified_name!r} is not in the graph."
|
|
237
252
|
MCP_UNKNOWN_TARGET_HINT = " `resolve` lists the qualified names a name matches."
|
|
253
|
+
MCP_UNKNOWN_ENDPOINT = (
|
|
254
|
+
"{target!r} names no endpoint project {project!r} exposes: neither a "
|
|
255
|
+
"handler nor an endpoint identity."
|
|
256
|
+
)
|
|
257
|
+
MCP_UNKNOWN_ENDPOINT_HINT = " `endpoints` lists the project's identities and handlers."
|
|
238
258
|
# `flow_verdict` with a source or sink it cannot walk from (issue #2939).
|
|
239
259
|
MCP_FLOW_SOURCE = "source"
|
|
240
260
|
MCP_FLOW_SINK = "sink"
|
|
@@ -211,3 +211,13 @@ class UniXcoderMode(StrEnum):
|
|
|
211
211
|
UNIXCODER_MASK_TOKEN = "<mask0>"
|
|
212
212
|
UNIXCODER_BUFFER_BIAS = "bias"
|
|
213
213
|
UNIXCODER_MAX_CONTEXT = 1024
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
# An agent run with no operator settles every tool approval itself (the CLI's
|
|
217
|
+
# `-a`, MCP's ask_agent; issue #2657). A model that asks again after every
|
|
218
|
+
# answer would otherwise loop forever.
|
|
219
|
+
NONINTERACTIVE_APPROVAL_ROUNDS = 10
|
|
220
|
+
NONINTERACTIVE_APPROVAL_LOOP = (
|
|
221
|
+
"The agent still requested tool approval after {rounds} rounds of answers; "
|
|
222
|
+
"stopped without a text answer."
|
|
223
|
+
)
|
|
@@ -59,6 +59,10 @@ AST_GREP_UNKNOWN_LANGUAGE = (
|
|
|
59
59
|
"Unknown or unsupported language '{language}'. Supported: {supported}"
|
|
60
60
|
)
|
|
61
61
|
AST_GREP_INVALID_PATTERN = "Invalid ast-grep pattern '{pattern}': {error}"
|
|
62
|
+
# ast-grep's error carries its whole cause chain and a Rust backtrace; the
|
|
63
|
+
# deepest numbered cause before the backtrace is the one that says why.
|
|
64
|
+
AST_GREP_BACKTRACE_MARKER = "Stack backtrace:"
|
|
65
|
+
AST_GREP_CAUSE = re.compile(r"^\s*\d+: (?P<cause>.+)$")
|
|
62
66
|
AST_GREP_TRUNCATED = (
|
|
63
67
|
"Result cap of {limit} reached; narrow the pattern or raise the limit for more."
|
|
64
68
|
)
|
|
@@ -105,6 +105,17 @@ TRACE_MSG_ADDRS_UNRESOLVED = (
|
|
|
105
105
|
TRACE_ERR_BAD_XDEBUG = (
|
|
106
106
|
"{path} is not an Xdebug computerized trace (expected 'File format: 4')."
|
|
107
107
|
)
|
|
108
|
+
TRACE_ERR_BAD_XDEBUG_GZIP = (
|
|
109
|
+
"{path} is gzip-compressed but truncated or corrupt, so it cannot be read "
|
|
110
|
+
"as an Xdebug trace."
|
|
111
|
+
)
|
|
112
|
+
TRACE_ERR_XDEBUG_TOO_LARGE = (
|
|
113
|
+
"{path} decompresses to more than {limit} bytes; refusing to inflate it in "
|
|
114
|
+
"memory. If the trace is genuine, gunzip it and convert the .xt file."
|
|
115
|
+
)
|
|
116
|
+
# Xdebug >= 3.1 built with zlib compresses traces by default
|
|
117
|
+
# (xdebug.use_compression=1) and appends .gz to the .xt name.
|
|
118
|
+
TRACE_XDEBUG_SUFFIXES = (".xt", ".xt.gz")
|
|
108
119
|
TRACE_XDEBUG_FORMAT_LINE = "File format: 4"
|
|
109
120
|
TRACE_XDEBUG_MAIN = "{main}"
|
|
110
121
|
TRACE_XDEBUG_GLUE_FUNCTIONS = frozenset(
|
|
@@ -194,6 +205,18 @@ TRACEBACK_NOTE_NOTHING_RESOLVED = (
|
|
|
194
205
|
'e.g. {{"/app": "."}}.'
|
|
195
206
|
)
|
|
196
207
|
|
|
208
|
+
# An ExceptionGroup's report covers the group and, under `members`, each
|
|
209
|
+
# sub-exception it printed (issue #3235).
|
|
210
|
+
TRACEBACK_NOTE_EXCEPTION_GROUP = (
|
|
211
|
+
"{type} with {listed} sub-exception{plural}: frames is the stack that "
|
|
212
|
+
"raised the group, and each sub-exception is analysed on its own under "
|
|
213
|
+
"members."
|
|
214
|
+
)
|
|
215
|
+
TRACEBACK_NOTE_MEMBERS_OMITTED = (
|
|
216
|
+
" The traceback itself left out {omitted} more, past its "
|
|
217
|
+
"max_group_width or max_group_depth."
|
|
218
|
+
)
|
|
219
|
+
|
|
197
220
|
TRACE_ERR_BAD_HEADER = "Trace file {path} does not start with a valid cgr trace header."
|
|
198
221
|
TRACE_ERR_VERSION = (
|
|
199
222
|
"Trace file {path} has format version {found}; this build reads version {expected}."
|