code-graph-rag 0.3.2__tar.gz → 0.3.13__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.3.2/code_graph_rag.egg-info → code_graph_rag-0.3.13}/PKG-INFO +4 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/README.md +6 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13/code_graph_rag.egg-info}/PKG-INFO +4 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/code_graph_rag.egg-info/SOURCES.txt +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/code_graph_rag.egg-info/requires.txt +3 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/cli.py +13 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/cli_help.py +39 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/__init__.py +1 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_rust.py +8 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/languages.py +1 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/mcp.py +6 -0
- code_graph_rag-0.3.13/codebase_rag/constants/port.py +88 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/rename.py +29 -13
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/sites.py +5 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/graph_updater.py +126 -55
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/logs.py +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/mcp/tools.py +35 -4
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/call_processor.py +64 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/preproc_recovery.py +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/definition_processor.py +64 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/export_detection.py +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/factory.py +1 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/rs/type_inference.py +123 -4
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/rs/utils.py +11 -3
- code_graph_rag-0.3.13/codebase_rag/parsers/sql_ddl.py +267 -0
- code_graph_rag-0.3.13/codebase_rag/parsers/sql_recovery.py +343 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/type_inference.py +6 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/utils.py +49 -0
- code_graph_rag-0.3.13/codebase_rag/port_cli.py +97 -0
- code_graph_rag-0.3.13/codebase_rag/port_parity.py +715 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/__init__.py +9 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/protobuf_service.py +17 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/structural_delta.py +13 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codec/schema.proto +82 -0
- code_graph_rag-0.3.13/codec/schema_pb2.py +95 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codec/schema_pb2.pyi +144 -20
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/pyproject.toml +10 -1
- code_graph_rag-0.3.2/codec/schema_pb2.py +0 -95
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/LICENSE +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/PYPI_README.md +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/cgr/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/_cli_env.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/ast_cache.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/capture.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/check_isolation.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/checkout_state.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/cli_runtime.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/config.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/console_marks.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_cpp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_csharp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_dart.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_go.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_java.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_js.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_julia.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_lua.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_nodes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_php.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_python.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_scala.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/ast_sql.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/build.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/core.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/deadcode_roots.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/deps.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/duplicates.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/embedded_graph.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/fqn_specs.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/graph.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/health.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/interface.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/lang_tooling.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/notebook.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/providers.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/security.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/sqlite_vectors.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/stdlib_types.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/structural.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/constants/trace.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/context_pruning.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/context_slice.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/crash_correlation.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/cypher_queries.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/dead_code.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/decorators.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/docker-compose.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/duplicates.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/contract.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/import_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/imports.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/occurrences.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/patcher.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/signature_bind.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/signature_contract.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/signature_spec.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editing/transaction.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/editor_links.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/compiler.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/connection.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/cypher_ast.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/executor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/expressions.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/extension.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/functions.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/lexer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/limits.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/native.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/parser.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/procedures.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/sql.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/store.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedded_graph/types.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/embedder.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/exceptions.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/flow_verdict.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/function_registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/gloss.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/gloss_anchor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/gloss_repair.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/graph_audit.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/graph_cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/graph_dialects.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/graph_query.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/interface_skip.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/language_spec.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/main.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/mcp/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/mcp/client.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/mcp/server.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/mgclient_compat.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/mgclient_probe.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/models.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parser_fingerprint.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parser_loader.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/anchor_hash.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_fingerprint.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_scope.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/ast_grep_tier.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/build_lock.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/call_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/base_targets.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/identity.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/mixin.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/class_ingest/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/contract_linking.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/contracts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/class_macro.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/function_values.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/local_types.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/overloads.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/trailing_annotation.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp/arity.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/dart/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/dart/package_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/dart/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/dart/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/definition_docstring.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/dependency_parser.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/dispatch_registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/document_tier.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/endpoint_routes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/endpoints.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/enum_variants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/field_nodes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/flat_module.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/flow_access/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/flow_access/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/flow_access/processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontend_mode.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/cpp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/csharp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/go.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/java.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/protocol.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/python.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/frontends/registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/function_ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/builds.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/interface_ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/interfaces.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/link_state.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/module_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/base.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/cpp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/java.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/js_ts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/julia.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/lua.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/php.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/protocol.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/python.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/handlers/rust.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/import_processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/interface_fingerprint.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/descriptor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/extract.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/models.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/resource_names.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/io_access/url_folding.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java/method_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java/type_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java/variable_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java_generated.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/java_lombok.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/commonjs_exports.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/module_system.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/overloads.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/reexports.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/js_ts/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/julia/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/julia/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/lua/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/lua/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/lua/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/module_docstring.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/notebook.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/parameter_nodes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/php/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/php/class_names.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/php/namespaces.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/php/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/positional_params.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/ast_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/class_aliases.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/forward_refs.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/overloads.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/receiver_rebinding.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/variable_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py/with_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/python_source_roots.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/rpc_exposure.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/rs/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/rs/cargo_semver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/scala/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/scala/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/semantic_call_join.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/stdlib_extractor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/string_call.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/structure_processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/parsers/type_facts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/path_filters.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/project_selection.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/prompts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/providers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/providers/base.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/providers/litellm.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/c_sharp.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/dart.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/java.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/javascript.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/julia.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/php.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/python.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/rust.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/queries/highlights/typescript.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/readme_sections.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/schema_parse.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/anthropic_token_counter.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/cypher_guard.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/filtering.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/gloss_cleanup.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/graph_diff.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/graph_service.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/llm.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/neo4j_driver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/provenance.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/resource_cleanup.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/services/usage_cost.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/sql_names.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/sqlite_vectors.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/stack/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/stack/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/stack/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/stack/health.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/stack/manager.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/structural_check.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/sync_guard.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/sync_lock.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/taint.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tool_errors.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/ast_grep_service.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/code_retrieval.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/codebase_query.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/directory_lister.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/duplicate_detection.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/file_editor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/file_reader.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/file_writer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/graph_refresh.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/graph_rerank.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/health_checker.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/language.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/language_catalog.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/research.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/semantic_search.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/shell_command.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/structural_editor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/structural_search.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/tool_descriptions.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tools/web_search.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/carry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/cpuprofile.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/dispatch_site.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/ebpf_pprof.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/instrumented.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/pprof.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/pytest_plugin.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/records.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/resolution.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/rust_pprof.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/sourcemap.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/speedscope.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/tracer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/trace/xdebug.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/tree_sitter_point.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/types_defs.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/unixcoder.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/cpp_signatures.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/dependencies.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/endpoints.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/fqn_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/interruptible_thread.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/json_io.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/path_utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/process_owner.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/qn_markers.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/rich_markdown.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/source_encoding.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/source_extraction.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/terminal_console.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/utils/token_utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/vector_store.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/watch.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/workspaces/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/workspaces/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/workspaces/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/workspaces/models.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codebase_rag/workspaces/storage.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/codec/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.3.13}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.13
|
|
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
|
|
@@ -38,6 +38,7 @@ Requires-Dist: defusedxml>=0.7.1
|
|
|
38
38
|
Requires-Dist: huggingface-hub[hf-xet]>=1.7.2
|
|
39
39
|
Requires-Dist: pathspec>=1.0.4
|
|
40
40
|
Requires-Dist: pygments>=2.20.0
|
|
41
|
+
Requires-Dist: certifi>=2026.10.23
|
|
41
42
|
Requires-Dist: regex>=2024.11.6
|
|
42
43
|
Requires-Dist: cgr-graph-rs<0.2,>=0.1.0; platform_python_implementation == "CPython" and ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64"))
|
|
43
44
|
Provides-Extra: test
|
|
@@ -78,11 +79,13 @@ Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
|
|
|
78
79
|
Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
|
|
79
80
|
Provides-Extra: semantic
|
|
80
81
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
82
|
+
Requires-Dist: grpcio>=1.84.1; extra == "semantic"
|
|
81
83
|
Requires-Dist: sqlite-vec>=0.1.9; ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64")) and extra == "semantic"
|
|
82
84
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
83
85
|
Requires-Dist: transformers>=5.0.0; extra == "semantic"
|
|
84
86
|
Provides-Extra: milvus
|
|
85
87
|
Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
88
|
+
Requires-Dist: grpcio>=1.84.1; extra == "milvus"
|
|
86
89
|
Provides-Extra: sqlite-vec
|
|
87
90
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "sqlite-vec"
|
|
88
91
|
Provides-Extra: ast-grep
|
|
@@ -61,7 +61,11 @@ 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
|
+
- **Security Enhancements**: Incorporates an OSS Scanner build image and threat model.
|
|
65
|
+
- **Data Export**: Ensures all node properties within the graph are exported.
|
|
66
|
+
- **SQL Fixes**: Addresses several SQL-related issues including grammar errors and dead-code roots.
|
|
67
|
+
- **Rust Fixes**: Improves indexing of methods and handling of types in Rust code.
|
|
68
|
+
- **Build Fixes**: Repairs build issues related to eMudhra root certificates and distrusted components.
|
|
65
69
|
<!-- /SECTION:latest_news -->
|
|
66
70
|
|
|
67
71
|
See [NEWS.md](NEWS.md) for the full history.
|
|
@@ -188,6 +192,7 @@ Code-Graph-RAG runs as an [MCP](https://modelcontextprotocol.io) server so Claud
|
|
|
188
192
|
- [Real-Time Updates](docs/guide/realtime-updates.md)
|
|
189
193
|
- [C/C++ Semantic Mode](docs/guide/cpp-semantic-mode.md)
|
|
190
194
|
- [MCP Server](docs/guide/mcp-server.md)
|
|
195
|
+
- [Porting Between Languages](docs/guide/porting.md)
|
|
191
196
|
|
|
192
197
|
**Architecture**
|
|
193
198
|
- [Overview](docs/architecture/overview.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.13
|
|
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
|
|
@@ -38,6 +38,7 @@ Requires-Dist: defusedxml>=0.7.1
|
|
|
38
38
|
Requires-Dist: huggingface-hub[hf-xet]>=1.7.2
|
|
39
39
|
Requires-Dist: pathspec>=1.0.4
|
|
40
40
|
Requires-Dist: pygments>=2.20.0
|
|
41
|
+
Requires-Dist: certifi>=2026.10.23
|
|
41
42
|
Requires-Dist: regex>=2024.11.6
|
|
42
43
|
Requires-Dist: cgr-graph-rs<0.2,>=0.1.0; platform_python_implementation == "CPython" and ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64"))
|
|
43
44
|
Provides-Extra: test
|
|
@@ -78,11 +79,13 @@ Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
|
|
|
78
79
|
Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
|
|
79
80
|
Provides-Extra: semantic
|
|
80
81
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
82
|
+
Requires-Dist: grpcio>=1.84.1; extra == "semantic"
|
|
81
83
|
Requires-Dist: sqlite-vec>=0.1.9; ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64")) and extra == "semantic"
|
|
82
84
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
83
85
|
Requires-Dist: transformers>=5.0.0; extra == "semantic"
|
|
84
86
|
Provides-Extra: milvus
|
|
85
87
|
Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
88
|
+
Requires-Dist: grpcio>=1.84.1; extra == "milvus"
|
|
86
89
|
Provides-Extra: sqlite-vec
|
|
87
90
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "sqlite-vec"
|
|
88
91
|
Provides-Extra: ast-grep
|
|
@@ -52,6 +52,8 @@ codebase_rag/models.py
|
|
|
52
52
|
codebase_rag/parser_fingerprint.py
|
|
53
53
|
codebase_rag/parser_loader.py
|
|
54
54
|
codebase_rag/path_filters.py
|
|
55
|
+
codebase_rag/port_cli.py
|
|
56
|
+
codebase_rag/port_parity.py
|
|
55
57
|
codebase_rag/project_selection.py
|
|
56
58
|
codebase_rag/prompts.py
|
|
57
59
|
codebase_rag/readme_sections.py
|
|
@@ -148,6 +150,7 @@ codebase_rag/constants/lang_tooling.py
|
|
|
148
150
|
codebase_rag/constants/languages.py
|
|
149
151
|
codebase_rag/constants/mcp.py
|
|
150
152
|
codebase_rag/constants/notebook.py
|
|
153
|
+
codebase_rag/constants/port.py
|
|
151
154
|
codebase_rag/constants/providers.py
|
|
152
155
|
codebase_rag/constants/security.py
|
|
153
156
|
codebase_rag/constants/sqlite_vectors.py
|
|
@@ -223,6 +226,8 @@ codebase_rag/parsers/positional_params.py
|
|
|
223
226
|
codebase_rag/parsers/python_source_roots.py
|
|
224
227
|
codebase_rag/parsers/rpc_exposure.py
|
|
225
228
|
codebase_rag/parsers/semantic_call_join.py
|
|
229
|
+
codebase_rag/parsers/sql_ddl.py
|
|
230
|
+
codebase_rag/parsers/sql_recovery.py
|
|
226
231
|
codebase_rag/parsers/stdlib_extractor.py
|
|
227
232
|
codebase_rag/parsers/string_call.py
|
|
228
233
|
codebase_rag/parsers/structure_processor.py
|
|
@@ -18,6 +18,7 @@ defusedxml>=0.7.1
|
|
|
18
18
|
huggingface-hub[hf-xet]>=1.7.2
|
|
19
19
|
pathspec>=1.0.4
|
|
20
20
|
pygments>=2.20.0
|
|
21
|
+
certifi>=2026.10.23
|
|
21
22
|
regex>=2024.11.6
|
|
22
23
|
|
|
23
24
|
[:platform_python_implementation == "CPython" and ((sys_platform == "linux" and (platform_machine == "x86_64" or platform_machine == "aarch64")) or sys_platform == "darwin" or (sys_platform == "win32" and platform_machine == "AMD64"))]
|
|
@@ -35,6 +36,7 @@ pymgclient>=1.6.0
|
|
|
35
36
|
|
|
36
37
|
[milvus]
|
|
37
38
|
pymilvus[milvus-lite]>=3.0.0
|
|
39
|
+
grpcio>=1.84.1
|
|
38
40
|
|
|
39
41
|
[neo4j]
|
|
40
42
|
neo4j>=5.28.1
|
|
@@ -44,6 +46,7 @@ jedi>=0.19
|
|
|
44
46
|
|
|
45
47
|
[semantic]
|
|
46
48
|
qdrant-client>=1.9.0
|
|
49
|
+
grpcio>=1.84.1
|
|
47
50
|
torch>=2.6.0
|
|
48
51
|
transformers>=5.0.0
|
|
49
52
|
|
|
@@ -59,6 +59,7 @@ from .editor_links import (
|
|
|
59
59
|
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
|
+
from .port_cli import cli as port_cli
|
|
62
63
|
from .project_selection import ProjectChoice, choose_project, scope_refusal
|
|
63
64
|
from .services.gloss_cleanup import prune_orphaned_glosses
|
|
64
65
|
from .services.graph_diff import DiffError, diff_indexes, diff_is_empty
|
|
@@ -2176,6 +2177,18 @@ def graph_command(ctx: typer.Context) -> None:
|
|
|
2176
2177
|
_run_delegated_group(graph_cli, ctx)
|
|
2177
2178
|
|
|
2178
2179
|
|
|
2180
|
+
@app.command(
|
|
2181
|
+
name=ch.CLICommandName.PORT,
|
|
2182
|
+
help=ch.CMD_PORT,
|
|
2183
|
+
short_help=ch.CMD_PORT,
|
|
2184
|
+
add_help_option=False,
|
|
2185
|
+
context_settings=_DELEGATED_GROUP_CONTEXT,
|
|
2186
|
+
rich_help_panel=ch.PANEL_USE,
|
|
2187
|
+
)
|
|
2188
|
+
def port_command(ctx: typer.Context) -> None:
|
|
2189
|
+
_run_delegated_group(port_cli, ctx)
|
|
2190
|
+
|
|
2191
|
+
|
|
2179
2192
|
@app.command(
|
|
2180
2193
|
name=ch.CLICommandName.CHECK,
|
|
2181
2194
|
help=ch.CMD_CHECK,
|
|
@@ -23,6 +23,7 @@ class CLICommandName(StrEnum):
|
|
|
23
23
|
CHECK = "check"
|
|
24
24
|
RENAME = "rename"
|
|
25
25
|
CONTEXT = "context"
|
|
26
|
+
PORT = "port"
|
|
26
27
|
STOP = "stop"
|
|
27
28
|
STATUS = "status"
|
|
28
29
|
HELP = "help"
|
|
@@ -206,6 +207,43 @@ EXAMPLES_CONTEXT = (
|
|
|
206
207
|
)
|
|
207
208
|
HELP_CONTEXT_TARGET = "Qualified name, bare name, path:line, or a free-text task."
|
|
208
209
|
HELP_CONTEXT_BUDGET = "Token budget for the slice."
|
|
210
|
+
CMD_PORT = "Judge a port between languages: pair the functions of two implementations and compare their calls and arity, as JSON, no LLM."
|
|
211
|
+
CMD_PORT_GROUP = CMD_PORT
|
|
212
|
+
CMD_PORT_CHECK = (
|
|
213
|
+
"Pair the functions and methods under OLD_SCOPE with those under "
|
|
214
|
+
"NEW_SCOPE (paths relative to the repository root) and judge each pair "
|
|
215
|
+
"MATCH, DIFFERS or UNKNOWN on the first-party calls it makes and its "
|
|
216
|
+
"positional arity; unpaired and ambiguous definitions are listed."
|
|
217
|
+
)
|
|
218
|
+
EPILOG_PORT = "Run 'cgr help port COMMAND' for command-specific help."
|
|
219
|
+
# `\b` opens a paragraph click prints as written instead of rewrapping it,
|
|
220
|
+
# which keeps one example per line.
|
|
221
|
+
EPILOG_PORT_CHECK = (
|
|
222
|
+
"\b\nExamples:\n cgr port check src/legacy src/rewrite\n"
|
|
223
|
+
" cgr port check codebase_rag/embedded_graph rust/cgr_graph_rs/src "
|
|
224
|
+
"--fail-on-found\n"
|
|
225
|
+
" cgr port check py rs --pair py.lexer._lex=rs.lexer.tokenize\n\n"
|
|
226
|
+
"Exit status: 0 with the JSON report; 1 with --fail-on-found when a pair "
|
|
227
|
+
"DIFFERS; 2 when the scopes overlap or a --pair is malformed or repeated; "
|
|
228
|
+
"3 when a project is not indexed; 4 when a scope holds no function or "
|
|
229
|
+
"method, or a --pair names none or several."
|
|
230
|
+
)
|
|
231
|
+
HELP_PORT_NEW_PROJECT = (
|
|
232
|
+
"Project holding NEW_SCOPE, when the new implementation was indexed as a "
|
|
233
|
+
"project of its own (default: the project of OLD_SCOPE)."
|
|
234
|
+
)
|
|
235
|
+
HELP_PORT_PAIR = (
|
|
236
|
+
"Pair two definitions explicitly, OLD=NEW, each a qualified name or a "
|
|
237
|
+
"dotted suffix naming exactly one definition of its side. Repeatable."
|
|
238
|
+
)
|
|
239
|
+
HELP_PORT_INCLUDE_TESTS = (
|
|
240
|
+
"Pair test functions too; by default they are left out, classified as "
|
|
241
|
+
"tests-reaching classifies them."
|
|
242
|
+
)
|
|
243
|
+
HELP_PORT_FAIL_ON_FOUND = (
|
|
244
|
+
"Exit with status 1 when any pair DIFFERS. UNKNOWN pairs and unpaired "
|
|
245
|
+
"definitions do not fail the check."
|
|
246
|
+
)
|
|
209
247
|
CMD_TRACE_INGEST = "Resolve a trace file against a project and write dynamic edges"
|
|
210
248
|
CMD_TRACE_CONVERT = "Convert a V8 .cpuprofile (node --cpu-prof) to a trace file"
|
|
211
249
|
|
|
@@ -678,6 +716,7 @@ CLI_COMMANDS: dict[CLICommandName, str] = {
|
|
|
678
716
|
CLICommandName.CHECK: CMD_CHECK,
|
|
679
717
|
CLICommandName.RENAME: CMD_RENAME,
|
|
680
718
|
CLICommandName.CONTEXT: CMD_CONTEXT,
|
|
719
|
+
CLICommandName.PORT: CMD_PORT,
|
|
681
720
|
CLICommandName.WORKSPACE: CMD_WORKSPACE,
|
|
682
721
|
CLICommandName.STOP: CMD_STOP,
|
|
683
722
|
CLICommandName.STATUS: CMD_STATUS,
|
|
@@ -30,6 +30,7 @@ from .lang_tooling import * # noqa: F403
|
|
|
30
30
|
from .languages import * # noqa: F403
|
|
31
31
|
from .mcp import * # noqa: F403
|
|
32
32
|
from .notebook import * # noqa: F403
|
|
33
|
+
from .port import * # noqa: F403
|
|
33
34
|
from .providers import * # noqa: F403
|
|
34
35
|
from .security import * # noqa: F403
|
|
35
36
|
from .sqlite_vectors import * # noqa: F403
|
|
@@ -113,6 +113,14 @@ TS_RS_LOOP_EXPRESSION = "loop_expression"
|
|
|
113
113
|
# A Rust call node whose callee is descended for chain flattening: a plain call
|
|
114
114
|
# or a turbofish generic_function (`f::<T>()`).
|
|
115
115
|
RS_CALL_OR_GENERIC_FN = (TS_RS_CALL_EXPRESSION, TS_GENERIC_FUNCTION)
|
|
116
|
+
TS_RS_GENERIC_TYPE_WITH_TURBOFISH = "generic_type_with_turbofish"
|
|
117
|
+
# A constructor path with type arguments: `Tree::<u8>::Leaf`'s qualifier,
|
|
118
|
+
# `Wrapper::<u8> { .. }`'s name, `Pair::<u8>(..)`'s callee.
|
|
119
|
+
RS_GENERIC_CONSTRUCTOR_PATHS = (
|
|
120
|
+
TS_GENERIC_TYPE,
|
|
121
|
+
TS_RS_GENERIC_TYPE_WITH_TURBOFISH,
|
|
122
|
+
TS_GENERIC_FUNCTION,
|
|
123
|
+
)
|
|
116
124
|
TS_RS_TUPLE_STRUCT_PATTERN = "tuple_struct_pattern"
|
|
117
125
|
TS_RS_TYPE_ARGUMENTS = "type_arguments"
|
|
118
126
|
TS_RS_TRY_EXPRESSION = "try_expression"
|
|
@@ -401,7 +401,7 @@ LANGUAGE_METADATA: dict[SupportedLanguage, LanguageMetadata] = {
|
|
|
401
401
|
),
|
|
402
402
|
SupportedLanguage.SQL: LanguageMetadata(
|
|
403
403
|
LanguageStatus.DEV,
|
|
404
|
-
"Stored functions (CREATE FUNCTION), schema-qualified names, invocations between routines. CREATE PROCEDURE and in-depth PL/pgSQL bodies await upstream grammar support: the published grammar parses plain SQL statements only",
|
|
404
|
+
"Stored functions (CREATE FUNCTION), each one a dead-code root, schema-qualified names, invocations between routines, and the DDL that runs a routine by name (trigger EXECUTE FUNCTION, aggregate SFUNC/FINALFUNC, cast WITH FUNCTION, operator FUNCTION, type INPUT/OUTPUT, HANDLER/VALIDATOR, SUPPORT). CREATE PROCEDURE and in-depth PL/pgSQL bodies await upstream grammar support: the published grammar parses plain SQL statements only",
|
|
405
405
|
"SQL (PostgreSQL)",
|
|
406
406
|
),
|
|
407
407
|
SupportedLanguage.JULIA: LanguageMetadata(
|
|
@@ -246,6 +246,12 @@ MCP_ROOT_NOT_INDEXED = (
|
|
|
246
246
|
"No project is indexed for this server's root {path}; run "
|
|
247
247
|
"index_repository or update_repository first, or pass `project`."
|
|
248
248
|
)
|
|
249
|
+
# flow_verdict, explain_traceback and rank_root_causes take no `project`, so
|
|
250
|
+
# their refusal cannot advise passing one (issue #3193).
|
|
251
|
+
MCP_FIXED_ROOT_NOT_INDEXED = (
|
|
252
|
+
"No project is indexed for this server's root {path}; run "
|
|
253
|
+
"index_repository or update_repository first."
|
|
254
|
+
)
|
|
249
255
|
# An empty answer for a name the graph does not hold read as "nothing calls
|
|
250
256
|
# it" / "no test reaches it" (issue #2461).
|
|
251
257
|
MCP_UNKNOWN_TARGET = "{qualified_name!r} is not in the graph."
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Cross-language parity (`cgr port check`, epic #3413): how two
|
|
2
|
+
# implementations of the same code are paired and judged.
|
|
3
|
+
|
|
4
|
+
from enum import StrEnum
|
|
5
|
+
|
|
6
|
+
from .graph import EdgeResolution, NodeLabel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ParityVerdict(StrEnum):
|
|
10
|
+
"""A dimension's or a pair's verdict. `UNKNOWN` is what the graph cannot
|
|
11
|
+
settle (an edge it only guessed, a signature it did not record), and is
|
|
12
|
+
never reported as `MATCH`."""
|
|
13
|
+
|
|
14
|
+
MATCH = "MATCH"
|
|
15
|
+
DIFFERS = "DIFFERS"
|
|
16
|
+
UNKNOWN = "UNKNOWN"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# A pair's verdict is the worst of its dimensions'.
|
|
20
|
+
PARITY_VERDICT_RANK: dict[ParityVerdict, int] = {
|
|
21
|
+
ParityVerdict.MATCH: 0,
|
|
22
|
+
ParityVerdict.UNKNOWN: 1,
|
|
23
|
+
ParityVerdict.DIFFERS: 2,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class PairedBy(StrEnum):
|
|
28
|
+
"""How a pair was found, strongest first: a `--pair` the user gave; the
|
|
29
|
+
same normalised name at the same module path relative to each scope (and
|
|
30
|
+
in the same class, for a method); the same name in the same container
|
|
31
|
+
(the class, or the module file's stem) when the layouts differ; or the
|
|
32
|
+
same name alone with the containers differing, which is the pairing to
|
|
33
|
+
verify."""
|
|
34
|
+
|
|
35
|
+
EXPLICIT = "explicit"
|
|
36
|
+
MODULE = "module"
|
|
37
|
+
CONTAINER = "container"
|
|
38
|
+
NAME = "name"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
# The automatic tiers, tried in this order on what the previous one left.
|
|
42
|
+
PORT_PAIRING_TIERS = (PairedBy.MODULE, PairedBy.CONTAINER, PairedBy.NAME)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
PORT_CALLABLE_LABELS = frozenset({NodeLabel.FUNCTION.value, NodeLabel.METHOD.value})
|
|
46
|
+
|
|
47
|
+
# Edges the resolver only guessed: a difference resting on them alone is
|
|
48
|
+
# UNKNOWN, since the other side may simply have bound the same call exactly.
|
|
49
|
+
PORT_UNCERTAIN_RESOLUTIONS = frozenset(
|
|
50
|
+
{EdgeResolution.HEURISTIC.value, EdgeResolution.OVERLOAD.value}
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
# Folded before names are compared, so `_read_number`, `readNumber` and
|
|
54
|
+
# `ReadNumber` agree. The boundary pattern splits camelCase and the end of an
|
|
55
|
+
# acronym (`HTTPServer` -> `HTTP_Server`).
|
|
56
|
+
PORT_NAME_STRIP_CHARS = "_"
|
|
57
|
+
PORT_CAMEL_BOUNDARY_PATTERN = r"(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])"
|
|
58
|
+
PORT_NAME_JOIN = "_"
|
|
59
|
+
|
|
60
|
+
# File stems that name a package rather than its contents (`__init__.py`,
|
|
61
|
+
# Rust `mod.rs` and `lib.rs`, `index.ts`): a function's container is then the
|
|
62
|
+
# directory holding the file.
|
|
63
|
+
PORT_PACKAGE_ENTRY_STEMS = frozenset({"__init__", "mod", "lib", "main", "index"})
|
|
64
|
+
|
|
65
|
+
PORT_PAIR_SEPARATOR = "="
|
|
66
|
+
PORT_SCOPE_ROOTS = frozenset({"", "."})
|
|
67
|
+
|
|
68
|
+
# Overlapping scopes and a malformed or repeated `--pair` are usage errors,
|
|
69
|
+
# reported under click's own status for one; a scope or pair naming nothing
|
|
70
|
+
# in the graph exits with GRAPH_EXIT_UNKNOWN_TARGET like `cgr graph`.
|
|
71
|
+
PORT_EXIT_USAGE = 2
|
|
72
|
+
PORT_EXIT_DIFFERS = 1
|
|
73
|
+
|
|
74
|
+
PORT_ERR_EMPTY_SCOPE = (
|
|
75
|
+
"No function or method of project '{project}' lies under '{scope}'. "
|
|
76
|
+
"A scope is a path relative to the repository root, as `cgr graph "
|
|
77
|
+
"definition` prints it."
|
|
78
|
+
)
|
|
79
|
+
PORT_ERR_OVERLAPPING_SCOPES = (
|
|
80
|
+
"The scopes '{old}' and '{new}' overlap in project '{project}': each "
|
|
81
|
+
"definition must belong to one side."
|
|
82
|
+
)
|
|
83
|
+
PORT_ERR_PAIR_FORMAT = "--pair takes OLD=NEW, got '{value}'."
|
|
84
|
+
PORT_ERR_PAIR_TARGET = (
|
|
85
|
+
"--pair: '{target}' names {count} definitions under '{scope}'; give a "
|
|
86
|
+
"qualified name, or a dotted suffix of one, that names exactly one."
|
|
87
|
+
)
|
|
88
|
+
PORT_ERR_PAIR_TWICE = "--pair: '{qualified_name}' is paired more than once."
|
|
@@ -471,25 +471,39 @@ def _chain_links(
|
|
|
471
471
|
if parser is None:
|
|
472
472
|
return []
|
|
473
473
|
root = parser.parse(source).root_node
|
|
474
|
+
# Each link's own site starts at its name (issue #3166); the links of
|
|
475
|
+
# its chain are the calls that start where the site's call starts.
|
|
476
|
+
starts = {call.start_point for call in calls_starting_at(root, line - 1, col)}
|
|
477
|
+
starts = starts or {(line - 1, col)}
|
|
474
478
|
found: list[tuple[int, int]] = []
|
|
475
479
|
stack: list[Node] = [root]
|
|
476
480
|
while stack:
|
|
477
481
|
node = stack.pop()
|
|
478
|
-
if
|
|
479
|
-
|
|
480
|
-
member
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
and member.text is not None
|
|
485
|
-
and member.text.decode(cs.ENCODING_UTF8, errors="replace") == name
|
|
486
|
-
):
|
|
487
|
-
found.append((member.start_point[0] + 1, member.start_point[1]))
|
|
488
|
-
if node.start_point[0] <= line - 1 <= node.end_point[0]:
|
|
482
|
+
if (
|
|
483
|
+
node.start_point in starts
|
|
484
|
+
and (member := _called_member(node, name)) is not None
|
|
485
|
+
):
|
|
486
|
+
found.append((member.start_point[0] + 1, member.start_point[1]))
|
|
487
|
+
if any(node.start_point[0] <= row <= node.end_point[0] for row, _ in starts):
|
|
489
488
|
stack.extend(node.children)
|
|
490
489
|
return sorted(found)
|
|
491
490
|
|
|
492
491
|
|
|
492
|
+
def _called_member(call: Node, name: str) -> Node | None:
|
|
493
|
+
# The member name a call invokes (`name` in `obj.name(...)`), if it is
|
|
494
|
+
# `name`; None for a bare call or another member.
|
|
495
|
+
func = call.child_by_field_name(cs.FIELD_FUNCTION)
|
|
496
|
+
member = func.children[-1] if func is not None and func.children else None
|
|
497
|
+
if (
|
|
498
|
+
member is not None
|
|
499
|
+
and member.type in _MEMBER_NAME_TYPES
|
|
500
|
+
and member.text is not None
|
|
501
|
+
and member.text.decode(cs.ENCODING_UTF8, errors="replace") == name
|
|
502
|
+
):
|
|
503
|
+
return member
|
|
504
|
+
return None
|
|
505
|
+
|
|
506
|
+
|
|
493
507
|
def _jsx_closing_token(
|
|
494
508
|
source: bytes,
|
|
495
509
|
language: cs.SupportedLanguage | None,
|
|
@@ -614,8 +628,10 @@ def _last_identifier(
|
|
|
614
628
|
# (a grammar whose call node has no `function` field, such as Java's
|
|
615
629
|
# method_invocation) keeps the fallback.
|
|
616
630
|
return _STALE_CALL
|
|
617
|
-
if callee is not None and callee[0]
|
|
618
|
-
|
|
631
|
+
if callee is not None and callee[0] <= start < callee[1]:
|
|
632
|
+
# The callee ends the token search, whether the site starts with it
|
|
633
|
+
# or at its member name (issue #3166): never inside the arguments.
|
|
634
|
+
end = callee[1]
|
|
619
635
|
text = source[start:end].decode(cs.ENCODING_UTF8, errors="replace")
|
|
620
636
|
if callee is None:
|
|
621
637
|
# No grammar: cut at the last opening parenthesis so the arguments
|
|
@@ -17,6 +17,7 @@ from .. import constants as cs
|
|
|
17
17
|
from .. import cypher_queries as cq
|
|
18
18
|
from .. import graph_query
|
|
19
19
|
from ..graph_query import QueryFn
|
|
20
|
+
from ..parsers.utils import call_site_start
|
|
20
21
|
|
|
21
22
|
# Resolutions that bound a site by guesswork: an operation rewrites through
|
|
22
23
|
# them only when the caller accepts the risk with `allow_heuristic`.
|
|
@@ -123,13 +124,14 @@ def call_node_at(
|
|
|
123
124
|
|
|
124
125
|
|
|
125
126
|
def calls_starting_at(root: Node, row: int, col: int) -> list[Node]:
|
|
127
|
+
# A member call's site starts at its name (issue #3166); a graph indexed
|
|
128
|
+
# before that recorded the call node's own start, so both name the call.
|
|
126
129
|
calls: list[Node] = []
|
|
127
130
|
stack: list[Node] = [root]
|
|
128
131
|
while stack:
|
|
129
132
|
node = stack.pop()
|
|
130
|
-
if (
|
|
131
|
-
node.start_point == (row, col)
|
|
132
|
-
and node.child_by_field_name(cs.FIELD_FUNCTION) is not None
|
|
133
|
+
if node.child_by_field_name(cs.FIELD_FUNCTION) is not None and (
|
|
134
|
+
node.start_point == (row, col) or call_site_start(node) == (row, col)
|
|
133
135
|
):
|
|
134
136
|
calls.append(node)
|
|
135
137
|
if node.start_point[0] <= row <= node.end_point[0]:
|