code-graph-rag 0.3.2__tar.gz → 0.4.5__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.4.5}/PKG-INFO +7 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/README.md +6 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5/code_graph_rag.egg-info}/PKG-INFO +7 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/SOURCES.txt +9 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/requires.txt +6 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/check_isolation.py +2 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/cli.py +239 -26
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/cli_help.py +75 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/config.py +114 -16
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/__init__.py +1 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_js.py +11 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_python.py +72 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_rust.py +8 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/cli.py +60 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/core.py +13 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/embedded_graph.py +89 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/graph.py +6 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/interface.py +12 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/languages.py +1 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/mcp.py +83 -1
- code_graph_rag-0.4.5/codebase_rag/constants/port.py +88 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/providers.py +1 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/security.py +100 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/cypher_queries.py +30 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/docker-compose.yaml +3 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/rename.py +29 -13
- code_graph_rag-0.4.5/codebase_rag/editing/signature.py +588 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/signature_bind.py +75 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/sites.py +5 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/transaction.py +3 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/limits.py +2 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/exceptions.py +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/graph_updater.py +128 -55
- code_graph_rag-0.4.5/codebase_rag/instructions_trust.py +65 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/logs.py +39 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/main.py +67 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/mcp/server.py +85 -35
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/mcp/tools.py +246 -11
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/anchor_hash.py +15 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_fingerprint.py +15 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +8 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_tier.py +20 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/call_processor.py +64 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/mixin.py +2 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/preproc_recovery.py +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/definition_processor.py +67 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/document_tier.py +8 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/export_detection.py +5 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/factory.py +1 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/interface_fingerprint.py +139 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/variable_analyzer.py +5 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/module_system.py +2 -3
- code_graph_rag-0.4.5/codebase_rag/parsers/native_trees.py +272 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/ast_analyzer.py +270 -159
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/type_inference.py +123 -4
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/utils.py +11 -3
- code_graph_rag-0.4.5/codebase_rag/parsers/sql_ddl.py +267 -0
- code_graph_rag-0.4.5/codebase_rag/parsers/sql_recovery.py +343 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/type_inference.py +6 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/utils.py +60 -41
- code_graph_rag-0.4.5/codebase_rag/port_cli.py +97 -0
- code_graph_rag-0.4.5/codebase_rag/port_parity.py +715 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/prompts.py +4 -3
- code_graph_rag-0.4.5/codebase_rag/sensitive_paths.py +41 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/__init__.py +9 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/protobuf_service.py +17 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/sqlite_vectors.py +2 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/stack/health.py +3 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/structural_check.py +3 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/structural_delta.py +13 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/sync_guard.py +127 -5
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/sync_lock.py +2 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tool_errors.py +1 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/file_reader.py +35 -15
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/health_checker.py +2 -2
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/shell_command.py +129 -3
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/tool_descriptions.py +26 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/types_defs.py +209 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/unixcoder.py +9 -1
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/process_owner.py +14 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codec/schema.proto +82 -0
- code_graph_rag-0.4.5/codec/schema_pb2.py +95 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codec/schema_pb2.pyi +144 -20
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/pyproject.toml +25 -11
- code_graph_rag-0.3.2/codec/schema_pb2.py +0 -95
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/LICENSE +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/PYPI_README.md +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/cgr/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/_cli_env.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/ast_cache.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/capture.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/checkout_state.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/cli_runtime.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/console_marks.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_cpp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_csharp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_dart.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_go.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_java.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_julia.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_lua.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_nodes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_php.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_scala.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_sql.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/build.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/deadcode_roots.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/deps.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/duplicates.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/fqn_specs.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/health.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/lang_tooling.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/notebook.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/sqlite_vectors.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/stdlib_types.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/structural.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/constants/trace.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/context_pruning.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/context_slice.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/crash_correlation.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/dead_code.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/decorators.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/duplicates.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/contract.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/import_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/imports.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/occurrences.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/patcher.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/signature_contract.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editing/signature_spec.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/editor_links.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/compiler.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/connection.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/cypher_ast.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/executor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/expressions.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/extension.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/functions.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/lexer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/native.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/parser.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/procedures.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/sql.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/store.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/types.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/embedder.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/flow_verdict.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/function_registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/gloss.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/gloss_anchor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/gloss_repair.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/graph_audit.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/graph_cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/graph_dialects.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/graph_query.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/interface_skip.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/language_spec.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/mcp/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/mcp/client.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/mgclient_compat.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/mgclient_probe.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/models.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parser_fingerprint.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parser_loader.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_scope.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/build_lock.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/call_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/base_targets.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/identity.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/contract_linking.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/contracts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/class_macro.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/function_values.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/local_types.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/overloads.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/trailing_annotation.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/arity.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/package_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/definition_docstring.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/dependency_parser.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/dispatch_registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/endpoint_routes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/endpoints.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/enum_variants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/field_nodes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/flat_module.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/flow_access/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/flow_access/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/flow_access/processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontend_mode.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/cpp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/csharp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/go.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/java.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/protocol.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/python.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/function_ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/builds.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/interface_ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/interfaces.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/link_state.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/module_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/base.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/cpp.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/java.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/js_ts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/julia.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/lua.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/php.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/protocol.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/python.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/rust.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/import_processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/descriptor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/extract.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/models.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/registry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/resource_names.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/url_folding.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/method_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/type_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_generated.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_lombok.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/commonjs_exports.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/overloads.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/reexports.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/julia/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/julia/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/lua/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/lua/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/lua/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/module_docstring.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/notebook.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/parameter_nodes.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/class_names.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/namespaces.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/positional_params.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/class_aliases.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/forward_refs.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/overloads.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/receiver_rebinding.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/type_inference.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/variable_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/with_analyzer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/python_source_roots.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/rpc_exposure.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/cargo_semver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/scala/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/scala/utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/semantic_call_join.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/stdlib_extractor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/string_call.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/structure_processor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/parsers/type_facts.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/path_filters.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/project_selection.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/providers/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/providers/base.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/providers/litellm.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/c_sharp.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/dart.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/java.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/javascript.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/julia.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/php.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/python.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/rust.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/typescript.scm +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/readme_sections.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/schema_parse.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/anthropic_token_counter.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/cypher_guard.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/filtering.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/gloss_cleanup.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/graph_diff.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/graph_service.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/llm.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/neo4j_driver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/provenance.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/resource_cleanup.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/services/usage_cost.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/sql_names.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/stack/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/stack/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/stack/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/stack/manager.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/taint.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/ast_grep_service.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/code_retrieval.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/codebase_query.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/directory_lister.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/duplicate_detection.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/file_editor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/file_writer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/graph_refresh.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/graph_rerank.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/language.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/language_catalog.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/research.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/semantic_search.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/structural_editor.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/structural_search.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tools/web_search.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/carry.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/cpuprofile.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/dispatch_site.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/ebpf_pprof.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/ingest.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/instrumented.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/pprof.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/pytest_plugin.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/records.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/resolution.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/rust_pprof.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/sourcemap.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/speedscope.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/tracer.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/trace/xdebug.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/tree_sitter_point.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/cpp_signatures.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/dependencies.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/endpoints.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/fqn_resolver.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/interruptible_thread.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/json_io.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/path_utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/qn_markers.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/rich_markdown.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/source_encoding.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/source_extraction.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/terminal_console.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/utils/token_utils.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/vector_store.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/watch.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/workspaces/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/workspaces/cli.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/workspaces/constants.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/workspaces/models.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codebase_rag/workspaces/storage.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/codec/__init__.py +0 -0
- {code_graph_rag-0.3.2 → code_graph_rag-0.4.5}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Keywords: rag,retrieval-augmented-generation,knowledge-graph,code-analysis,tree-sitter,mcp,mcp-server,llm,graph-database,semantic-search,codebase,memgraph,developer-tools,monorepo
|
|
@@ -19,7 +19,8 @@ Requires-Python: >=3.12
|
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: loguru>=0.7.3
|
|
22
|
-
Requires-Dist: mcp<2
|
|
22
|
+
Requires-Dist: mcp<3,>=2.3.0
|
|
23
|
+
Requires-Dist: jsonschema>=4.20.0
|
|
23
24
|
Requires-Dist: pydantic-ai-slim[anthropic,google,openai]>=2.0.0
|
|
24
25
|
Requires-Dist: pydantic-settings>=2.12.0
|
|
25
26
|
Requires-Dist: python-dotenv>=1.2.1
|
|
@@ -38,8 +39,9 @@ Requires-Dist: defusedxml>=0.7.1
|
|
|
38
39
|
Requires-Dist: huggingface-hub[hf-xet]>=1.7.2
|
|
39
40
|
Requires-Dist: pathspec>=1.0.4
|
|
40
41
|
Requires-Dist: pygments>=2.20.0
|
|
42
|
+
Requires-Dist: certifi>=2026.10.23
|
|
41
43
|
Requires-Dist: regex>=2024.11.6
|
|
42
|
-
Requires-Dist: cgr-graph-rs<0.2,>=0.1.
|
|
44
|
+
Requires-Dist: cgr-graph-rs<0.2,>=0.1.4; 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
45
|
Provides-Extra: test
|
|
44
46
|
Requires-Dist: jedi>=0.19; extra == "test"
|
|
45
47
|
Requires-Dist: pytest>=8.4.1; extra == "test"
|
|
@@ -78,11 +80,13 @@ Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
|
|
|
78
80
|
Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
|
|
79
81
|
Provides-Extra: semantic
|
|
80
82
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
83
|
+
Requires-Dist: grpcio>=1.84.1; extra == "semantic"
|
|
81
84
|
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
85
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
83
86
|
Requires-Dist: transformers>=5.0.0; extra == "semantic"
|
|
84
87
|
Provides-Extra: milvus
|
|
85
88
|
Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
89
|
+
Requires-Dist: grpcio>=1.84.1; extra == "milvus"
|
|
86
90
|
Provides-Extra: sqlite-vec
|
|
87
91
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "sqlite-vec"
|
|
88
92
|
Provides-Extra: ast-grep
|
|
@@ -61,7 +61,7 @@ Code-Graph-RAG parses a multi-language codebase with Tree-sitter, sharpened by c
|
|
|
61
61
|
## Latest News 🔥
|
|
62
62
|
|
|
63
63
|
<!-- SECTION:latest_news -->
|
|
64
|
-
- **
|
|
64
|
+
- **MiniMax Models Added**: Current MiniMax text models have been included.
|
|
65
65
|
<!-- /SECTION:latest_news -->
|
|
66
66
|
|
|
67
67
|
See [NEWS.md](NEWS.md) for the full history.
|
|
@@ -188,6 +188,7 @@ Code-Graph-RAG runs as an [MCP](https://modelcontextprotocol.io) server so Claud
|
|
|
188
188
|
- [Real-Time Updates](docs/guide/realtime-updates.md)
|
|
189
189
|
- [C/C++ Semantic Mode](docs/guide/cpp-semantic-mode.md)
|
|
190
190
|
- [MCP Server](docs/guide/mcp-server.md)
|
|
191
|
+
- [Porting Between Languages](docs/guide/porting.md)
|
|
191
192
|
|
|
192
193
|
**Architecture**
|
|
193
194
|
- [Overview](docs/architecture/overview.md)
|
|
@@ -229,6 +230,10 @@ For issues or questions, check the [Troubleshooting](docs/advanced/troubleshooti
|
|
|
229
230
|
|
|
230
231
|
If cgr is useful to you, please consider pledging support on [GitHub Sponsors](https://github.com/sponsors/vitali87). cgr links the page under `cgr --version` and, in a terminal, after most commands finish; set `CGR_SPONSOR_PLEDGE=false` to hide that line.
|
|
231
232
|
|
|
233
|
+
## Accessibility
|
|
234
|
+
|
|
235
|
+
[ACCESSIBILITY.md](ACCESSIBILITY.md) describes what cgr and its documentation support for people using assistive technology or alternative settings, the known limitations and their workarounds, and how to report a barrier.
|
|
236
|
+
|
|
232
237
|
## License
|
|
233
238
|
|
|
234
239
|
MIT. See [LICENSE](LICENSE).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-graph-rag
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: The ultimate RAG for your monorepo. Query, understand, and edit multi-language codebases with the power of AI and knowledge graphs
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Keywords: rag,retrieval-augmented-generation,knowledge-graph,code-analysis,tree-sitter,mcp,mcp-server,llm,graph-database,semantic-search,codebase,memgraph,developer-tools,monorepo
|
|
@@ -19,7 +19,8 @@ Requires-Python: >=3.12
|
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: loguru>=0.7.3
|
|
22
|
-
Requires-Dist: mcp<2
|
|
22
|
+
Requires-Dist: mcp<3,>=2.3.0
|
|
23
|
+
Requires-Dist: jsonschema>=4.20.0
|
|
23
24
|
Requires-Dist: pydantic-ai-slim[anthropic,google,openai]>=2.0.0
|
|
24
25
|
Requires-Dist: pydantic-settings>=2.12.0
|
|
25
26
|
Requires-Dist: python-dotenv>=1.2.1
|
|
@@ -38,8 +39,9 @@ Requires-Dist: defusedxml>=0.7.1
|
|
|
38
39
|
Requires-Dist: huggingface-hub[hf-xet]>=1.7.2
|
|
39
40
|
Requires-Dist: pathspec>=1.0.4
|
|
40
41
|
Requires-Dist: pygments>=2.20.0
|
|
42
|
+
Requires-Dist: certifi>=2026.10.23
|
|
41
43
|
Requires-Dist: regex>=2024.11.6
|
|
42
|
-
Requires-Dist: cgr-graph-rs<0.2,>=0.1.
|
|
44
|
+
Requires-Dist: cgr-graph-rs<0.2,>=0.1.4; 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
45
|
Provides-Extra: test
|
|
44
46
|
Requires-Dist: jedi>=0.19; extra == "test"
|
|
45
47
|
Requires-Dist: pytest>=8.4.1; extra == "test"
|
|
@@ -78,11 +80,13 @@ Requires-Dist: tree-sitter-sql>=0.3.11; extra == "treesitter-full"
|
|
|
78
80
|
Requires-Dist: tree-sitter-markdown>=0.5.1; extra == "treesitter-full"
|
|
79
81
|
Provides-Extra: semantic
|
|
80
82
|
Requires-Dist: qdrant-client>=1.9.0; extra == "semantic"
|
|
83
|
+
Requires-Dist: grpcio>=1.84.1; extra == "semantic"
|
|
81
84
|
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
85
|
Requires-Dist: torch>=2.6.0; extra == "semantic"
|
|
83
86
|
Requires-Dist: transformers>=5.0.0; extra == "semantic"
|
|
84
87
|
Provides-Extra: milvus
|
|
85
88
|
Requires-Dist: pymilvus[milvus-lite]>=3.0.0; extra == "milvus"
|
|
89
|
+
Requires-Dist: grpcio>=1.84.1; extra == "milvus"
|
|
86
90
|
Provides-Extra: sqlite-vec
|
|
87
91
|
Requires-Dist: sqlite-vec>=0.1.9; extra == "sqlite-vec"
|
|
88
92
|
Provides-Extra: ast-grep
|
|
@@ -42,6 +42,7 @@ codebase_rag/graph_dialects.py
|
|
|
42
42
|
codebase_rag/graph_loader.py
|
|
43
43
|
codebase_rag/graph_query.py
|
|
44
44
|
codebase_rag/graph_updater.py
|
|
45
|
+
codebase_rag/instructions_trust.py
|
|
45
46
|
codebase_rag/interface_skip.py
|
|
46
47
|
codebase_rag/language_spec.py
|
|
47
48
|
codebase_rag/logs.py
|
|
@@ -52,12 +53,15 @@ codebase_rag/models.py
|
|
|
52
53
|
codebase_rag/parser_fingerprint.py
|
|
53
54
|
codebase_rag/parser_loader.py
|
|
54
55
|
codebase_rag/path_filters.py
|
|
56
|
+
codebase_rag/port_cli.py
|
|
57
|
+
codebase_rag/port_parity.py
|
|
55
58
|
codebase_rag/project_selection.py
|
|
56
59
|
codebase_rag/prompts.py
|
|
57
60
|
codebase_rag/readme_sections.py
|
|
58
61
|
codebase_rag/schema_builder.py
|
|
59
62
|
codebase_rag/schema_parse.py
|
|
60
63
|
codebase_rag/schemas.py
|
|
64
|
+
codebase_rag/sensitive_paths.py
|
|
61
65
|
codebase_rag/sql_names.py
|
|
62
66
|
codebase_rag/sqlite_vectors.py
|
|
63
67
|
codebase_rag/structural_check.py
|
|
@@ -148,6 +152,7 @@ codebase_rag/constants/lang_tooling.py
|
|
|
148
152
|
codebase_rag/constants/languages.py
|
|
149
153
|
codebase_rag/constants/mcp.py
|
|
150
154
|
codebase_rag/constants/notebook.py
|
|
155
|
+
codebase_rag/constants/port.py
|
|
151
156
|
codebase_rag/constants/providers.py
|
|
152
157
|
codebase_rag/constants/security.py
|
|
153
158
|
codebase_rag/constants/sqlite_vectors.py
|
|
@@ -162,6 +167,7 @@ codebase_rag/editing/imports.py
|
|
|
162
167
|
codebase_rag/editing/occurrences.py
|
|
163
168
|
codebase_rag/editing/patcher.py
|
|
164
169
|
codebase_rag/editing/rename.py
|
|
170
|
+
codebase_rag/editing/signature.py
|
|
165
171
|
codebase_rag/editing/signature_bind.py
|
|
166
172
|
codebase_rag/editing/signature_contract.py
|
|
167
173
|
codebase_rag/editing/signature_spec.py
|
|
@@ -217,12 +223,15 @@ codebase_rag/parsers/interface_fingerprint.py
|
|
|
217
223
|
codebase_rag/parsers/java_generated.py
|
|
218
224
|
codebase_rag/parsers/java_lombok.py
|
|
219
225
|
codebase_rag/parsers/module_docstring.py
|
|
226
|
+
codebase_rag/parsers/native_trees.py
|
|
220
227
|
codebase_rag/parsers/notebook.py
|
|
221
228
|
codebase_rag/parsers/parameter_nodes.py
|
|
222
229
|
codebase_rag/parsers/positional_params.py
|
|
223
230
|
codebase_rag/parsers/python_source_roots.py
|
|
224
231
|
codebase_rag/parsers/rpc_exposure.py
|
|
225
232
|
codebase_rag/parsers/semantic_call_join.py
|
|
233
|
+
codebase_rag/parsers/sql_ddl.py
|
|
234
|
+
codebase_rag/parsers/sql_recovery.py
|
|
226
235
|
codebase_rag/parsers/stdlib_extractor.py
|
|
227
236
|
codebase_rag/parsers/string_call.py
|
|
228
237
|
codebase_rag/parsers/structure_processor.py
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
loguru>=0.7.3
|
|
2
|
-
mcp<2
|
|
2
|
+
mcp<3,>=2.3.0
|
|
3
|
+
jsonschema>=4.20.0
|
|
3
4
|
pydantic-ai-slim[anthropic,google,openai]>=2.0.0
|
|
4
5
|
pydantic-settings>=2.12.0
|
|
5
6
|
python-dotenv>=1.2.1
|
|
@@ -18,10 +19,11 @@ defusedxml>=0.7.1
|
|
|
18
19
|
huggingface-hub[hf-xet]>=1.7.2
|
|
19
20
|
pathspec>=1.0.4
|
|
20
21
|
pygments>=2.20.0
|
|
22
|
+
certifi>=2026.10.23
|
|
21
23
|
regex>=2024.11.6
|
|
22
24
|
|
|
23
25
|
[: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"))]
|
|
24
|
-
cgr-graph-rs<0.2,>=0.1.
|
|
26
|
+
cgr-graph-rs<0.2,>=0.1.4
|
|
25
27
|
|
|
26
28
|
[ast-grep]
|
|
27
29
|
ast-grep-py>=0.51.0
|
|
@@ -35,6 +37,7 @@ pymgclient>=1.6.0
|
|
|
35
37
|
|
|
36
38
|
[milvus]
|
|
37
39
|
pymilvus[milvus-lite]>=3.0.0
|
|
40
|
+
grpcio>=1.84.1
|
|
38
41
|
|
|
39
42
|
[neo4j]
|
|
40
43
|
neo4j>=5.28.1
|
|
@@ -44,6 +47,7 @@ jedi>=0.19
|
|
|
44
47
|
|
|
45
48
|
[semantic]
|
|
46
49
|
qdrant-client>=1.9.0
|
|
50
|
+
grpcio>=1.84.1
|
|
47
51
|
torch>=2.6.0
|
|
48
52
|
transformers>=5.0.0
|
|
49
53
|
|
|
@@ -45,7 +45,7 @@ from __future__ import annotations
|
|
|
45
45
|
|
|
46
46
|
from collections.abc import Sequence
|
|
47
47
|
from pathlib import Path
|
|
48
|
-
from typing import Protocol
|
|
48
|
+
from typing import Protocol
|
|
49
49
|
|
|
50
50
|
from . import constants as cs
|
|
51
51
|
from . import cypher_queries as cq
|
|
@@ -138,7 +138,7 @@ def _props(raw: object) -> PropertyDict | None:
|
|
|
138
138
|
scalars), but it is the graph's own property set read back, so it is
|
|
139
139
|
written back as it was read.
|
|
140
140
|
"""
|
|
141
|
-
return
|
|
141
|
+
return dict(raw) if isinstance(raw, dict) else None
|
|
142
142
|
|
|
143
143
|
|
|
144
144
|
def _discard_pending(store: GraphStore) -> None:
|
|
@@ -8,7 +8,7 @@ import subprocess
|
|
|
8
8
|
import sys
|
|
9
9
|
import tempfile
|
|
10
10
|
import time
|
|
11
|
-
from collections.abc import Callable, Coroutine,
|
|
11
|
+
from collections.abc import Callable, Coroutine, Generator, Iterable
|
|
12
12
|
from contextlib import ExitStack, contextmanager
|
|
13
13
|
from fnmatch import fnmatch
|
|
14
14
|
from functools import partial, wraps
|
|
@@ -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
|
|
@@ -78,7 +79,10 @@ from .sync_guard import RUNNING_SYNC_TOKENS as _RUNNING_SYNC_TOKENS
|
|
|
78
79
|
from .sync_guard import OwnerCheck as _OwnerCheck
|
|
79
80
|
from .sync_guard import SyncRefusedError, mark_sync_incomplete, release_project_claim
|
|
80
81
|
from .sync_guard import clear_sync_incomplete as _clear_sync_incomplete
|
|
82
|
+
from .sync_guard import partial_graph_refusal as _partial_graph_refusal
|
|
81
83
|
from .sync_guard import project_owner_refusal as _project_owner_refusal
|
|
84
|
+
from .sync_guard import retire_stranded_runs as _retire_stranded_runs
|
|
85
|
+
from .sync_guard import stranded_runs as _stranded_runs
|
|
82
86
|
from .sync_guard import sync_marker_params as _sync_marker_params
|
|
83
87
|
from .sync_guard import sync_owner as _sync_owner
|
|
84
88
|
from .sync_lock import SyncLockError, repo_sync_lock
|
|
@@ -94,6 +98,7 @@ from .types_defs import (
|
|
|
94
98
|
DuplicatesReport,
|
|
95
99
|
ProjectSync,
|
|
96
100
|
PropertyValue,
|
|
101
|
+
ReingestReport,
|
|
97
102
|
ResultRow,
|
|
98
103
|
ResultValue,
|
|
99
104
|
)
|
|
@@ -114,6 +119,7 @@ from .workspaces.cli import cli as workspace_cli
|
|
|
114
119
|
|
|
115
120
|
if TYPE_CHECKING:
|
|
116
121
|
from .graph_updater import GraphUpdater
|
|
122
|
+
from .watch import WriteMarker
|
|
117
123
|
|
|
118
124
|
|
|
119
125
|
def _vendored_click_exception() -> type[click.ClickException]:
|
|
@@ -570,7 +576,7 @@ def _start_active_projects(
|
|
|
570
576
|
|
|
571
577
|
|
|
572
578
|
@contextmanager
|
|
573
|
-
def _console_on_stderr() ->
|
|
579
|
+
def _console_on_stderr() -> Generator[None]:
|
|
574
580
|
console = app_context.console
|
|
575
581
|
app_context.console = terminal_aware_console(stderr=True)
|
|
576
582
|
try:
|
|
@@ -942,7 +948,7 @@ def _release_project_claim(batch_size: int, project_name: str, repo: Path) -> No
|
|
|
942
948
|
@contextmanager
|
|
943
949
|
def _project_claim(
|
|
944
950
|
batch_size: int, project_name: str, repo: Path, *, clean: bool, assume_yes: bool
|
|
945
|
-
) ->
|
|
951
|
+
) -> Generator[list[str] | None]:
|
|
946
952
|
"""Hold this sync's claim on its project name while the sync runs (#2411).
|
|
947
953
|
|
|
948
954
|
Yields the roots `_mark_sync_incomplete` must still find on the Project.
|
|
@@ -980,7 +986,7 @@ def _mark_sync_incomplete(
|
|
|
980
986
|
|
|
981
987
|
|
|
982
988
|
@contextmanager
|
|
983
|
-
def _sync_lock_or_exit(repo: Path, project_name: str) ->
|
|
989
|
+
def _sync_lock_or_exit(repo: Path, project_name: str) -> Generator[None]:
|
|
984
990
|
"""Hold the checkout's sync lock for the whole sync, or stop first (#2441).
|
|
985
991
|
|
|
986
992
|
Taken before the `--clean` wipe and the `:IncompleteRun` marker, so a
|
|
@@ -1103,16 +1109,17 @@ def _sweep_glosses_after_failed_delete(
|
|
|
1103
1109
|
|
|
1104
1110
|
|
|
1105
1111
|
def _run_updater_deferring_interrupt(
|
|
1106
|
-
updater: "GraphUpdater",
|
|
1112
|
+
updater: "GraphUpdater", *, rebuild: bool = False
|
|
1107
1113
|
) -> KeyboardInterrupt | None:
|
|
1108
1114
|
"""Run the sync's graph update; return a Ctrl+C that landed after its commit.
|
|
1109
1115
|
|
|
1110
1116
|
The run stamps the sync time as part of its commit (#2444), and the
|
|
1111
1117
|
caller clears its marker before re-raising what this returns; a Ctrl+C
|
|
1112
|
-
before the commit raises `SyncInterrupted` instead.
|
|
1118
|
+
before the commit raises `SyncInterrupted` instead. `rebuild` forces a
|
|
1119
|
+
full re-index over runs another writer left part-way.
|
|
1113
1120
|
"""
|
|
1114
1121
|
try:
|
|
1115
|
-
updater.run()
|
|
1122
|
+
updater.run(force=rebuild)
|
|
1116
1123
|
except ex.EmbeddingsInterrupted as stop:
|
|
1117
1124
|
# Raised only after the run committed, so the graph is whole and
|
|
1118
1125
|
# the sync is recorded like any other; the interrupt then ends
|
|
@@ -1182,6 +1189,15 @@ def _run_graph_sync(
|
|
|
1182
1189
|
# hits and can map onto unrelated nodes in the rebuilt graph.
|
|
1183
1190
|
clear_all_embeddings()
|
|
1184
1191
|
|
|
1192
|
+
# Read before this sync marks: the runs whose markers its rebuild
|
|
1193
|
+
# supersedes (review of PR #3493).
|
|
1194
|
+
stranded = _stranded_runs(ingestor, project_name, cs.CLI_SYNC_RUN_ID)
|
|
1195
|
+
if stranded:
|
|
1196
|
+
logger.warning(
|
|
1197
|
+
ls.REBUILD_OVER_STRANDED_RUNS.format(
|
|
1198
|
+
project=project_name, count=len(stranded)
|
|
1199
|
+
)
|
|
1200
|
+
)
|
|
1185
1201
|
# After the wipe, which would delete the marker with everything else,
|
|
1186
1202
|
# and before `ensure_constraints`, whose migration can already purge.
|
|
1187
1203
|
_mark_sync_incomplete(ingestor, project_name, owner, owned_roots)
|
|
@@ -1201,8 +1217,9 @@ def _run_graph_sync(
|
|
|
1201
1217
|
capture=_capture_selection(capture),
|
|
1202
1218
|
skip_embeddings=skip_embeddings,
|
|
1203
1219
|
)
|
|
1204
|
-
interrupted = _run_updater_deferring_interrupt(updater)
|
|
1220
|
+
interrupted = _run_updater_deferring_interrupt(updater, rebuild=bool(stranded))
|
|
1205
1221
|
_clear_sync_incomplete(ingestor, project_name)
|
|
1222
|
+
_retire_stranded_runs(ingestor, project_name, stranded)
|
|
1206
1223
|
# Taken before the export: counting it made a no-op sync of a small
|
|
1207
1224
|
# repo report the time to dump the whole shared graph (issue #2440).
|
|
1208
1225
|
elapsed = time.monotonic() - elapsed
|
|
@@ -2002,7 +2019,12 @@ def mcp_server(
|
|
|
2002
2019
|
workspace: str | None = typer.Option(
|
|
2003
2020
|
None, "--workspace", help=ch.HELP_MCP_WORKSPACE
|
|
2004
2021
|
),
|
|
2022
|
+
read_only: bool = typer.Option(False, "--read-only", help=ch.HELP_MCP_READ_ONLY),
|
|
2005
2023
|
) -> None:
|
|
2024
|
+
# `is True`: typer passes a bool, while a direct call that omits the
|
|
2025
|
+
# flag passes the truthy OptionInfo default, which must not turn the
|
|
2026
|
+
# setting on.
|
|
2027
|
+
settings.MCP_READ_ONLY = settings.MCP_READ_ONLY or read_only is True
|
|
2006
2028
|
try:
|
|
2007
2029
|
if transport == cs.MCPTransport.HTTP:
|
|
2008
2030
|
from codebase_rag.mcp import serve_http
|
|
@@ -2176,6 +2198,18 @@ def graph_command(ctx: typer.Context) -> None:
|
|
|
2176
2198
|
_run_delegated_group(graph_cli, ctx)
|
|
2177
2199
|
|
|
2178
2200
|
|
|
2201
|
+
@app.command(
|
|
2202
|
+
name=ch.CLICommandName.PORT,
|
|
2203
|
+
help=ch.CMD_PORT,
|
|
2204
|
+
short_help=ch.CMD_PORT,
|
|
2205
|
+
add_help_option=False,
|
|
2206
|
+
context_settings=_DELEGATED_GROUP_CONTEXT,
|
|
2207
|
+
rich_help_panel=ch.PANEL_USE,
|
|
2208
|
+
)
|
|
2209
|
+
def port_command(ctx: typer.Context) -> None:
|
|
2210
|
+
_run_delegated_group(port_cli, ctx)
|
|
2211
|
+
|
|
2212
|
+
|
|
2179
2213
|
@app.command(
|
|
2180
2214
|
name=ch.CLICommandName.CHECK,
|
|
2181
2215
|
help=ch.CMD_CHECK,
|
|
@@ -2235,6 +2269,75 @@ def check_command(
|
|
|
2235
2269
|
raise typer.Exit(code=1)
|
|
2236
2270
|
|
|
2237
2271
|
|
|
2272
|
+
EditReingest = Callable[[list[str]], ReingestReport]
|
|
2273
|
+
|
|
2274
|
+
|
|
2275
|
+
@contextmanager
|
|
2276
|
+
def _guarded_edit_reingest(
|
|
2277
|
+
ingestor: MemgraphIngestor, updater: "GraphUpdater", project_name: str, repo: Path
|
|
2278
|
+
) -> Generator[tuple[EditReingest, "WriteMarker"]]:
|
|
2279
|
+
"""The re-ingest an applied edit is measured through, behind the marker.
|
|
2280
|
+
|
|
2281
|
+
Refuses before anything is planned when a run left the project's graph
|
|
2282
|
+
partial: the plan reads its call sites from the graph, so a caller a
|
|
2283
|
+
stopped sync deleted would be neither rewritten nor reported (Greptile
|
|
2284
|
+
review, PR #2164). The MCP tools refuse the same graph through
|
|
2285
|
+
`_guarded_rename_reingest`.
|
|
2286
|
+
|
|
2287
|
+
The checkout's sync lock is held for the whole edit, from that check to
|
|
2288
|
+
the marker's clear: a sync taking the checkout between the check and the
|
|
2289
|
+
plan would leave the plan reading a graph it is rewriting (Greptile
|
|
2290
|
+
review, PR #3493). It waits behind a running sync, as a scoped re-ingest
|
|
2291
|
+
does, and the re-ingest re-enters it.
|
|
2292
|
+
|
|
2293
|
+
The callback is `cgr watch`'s scoped re-ingest. The marker goes down from
|
|
2294
|
+
`before_write`, where the read-only prologue ends, and comes off once the
|
|
2295
|
+
re-ingest returned. A failure after the first write leaves it down, so
|
|
2296
|
+
the next edit, `cgr status` and the MCP server know the graph is partial;
|
|
2297
|
+
the edit's `graph_incomplete` alone would not outlive this process.
|
|
2298
|
+
"""
|
|
2299
|
+
held = ExitStack()
|
|
2300
|
+
try:
|
|
2301
|
+
held.enter_context(repo_sync_lock(repo, project_name, wait=True))
|
|
2302
|
+
except SyncLockError as refused:
|
|
2303
|
+
typer.echo(str(refused), err=True)
|
|
2304
|
+
raise typer.Exit(code=1) from None
|
|
2305
|
+
with held:
|
|
2306
|
+
if (refusal := _partial_graph_refusal(ingestor, project_name)) is not None:
|
|
2307
|
+
typer.echo(refusal, err=True)
|
|
2308
|
+
raise typer.Exit(code=1)
|
|
2309
|
+
from .watch import WriteMarker
|
|
2310
|
+
|
|
2311
|
+
with _sync_owner() as owner:
|
|
2312
|
+
marker = WriteMarker(ingestor, project_name, owner, None)
|
|
2313
|
+
|
|
2314
|
+
def reingest(paths: list[str]) -> ReingestReport:
|
|
2315
|
+
report = updater.reingest(paths, before_write=marker.mark_scoped)
|
|
2316
|
+
if updater.reingest_mutated:
|
|
2317
|
+
marker.clear()
|
|
2318
|
+
return report
|
|
2319
|
+
|
|
2320
|
+
yield reingest, marker
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
def _mark_edit_partial(marker: "WriteMarker", project_name: str) -> str | None:
|
|
2324
|
+
"""Mark the graph partial after an edit reported `graph_incomplete`.
|
|
2325
|
+
|
|
2326
|
+
The edit's report decides, as in the MCP tools: a rollback whose
|
|
2327
|
+
re-ingest stopped before its first write put no marker down, yet left
|
|
2328
|
+
the graph describing files the rollback has since restored. Returns the
|
|
2329
|
+
error to print after the edit's JSON when the marker cannot go down, so
|
|
2330
|
+
the report of what changed is not lost.
|
|
2331
|
+
"""
|
|
2332
|
+
try:
|
|
2333
|
+
marker.mark()
|
|
2334
|
+
except SyncRefusedError as refused:
|
|
2335
|
+
return cs.CLI_ERR_EDIT_MARKER_FAILED.format(
|
|
2336
|
+
project=project_name, error=refused.__cause__ or refused
|
|
2337
|
+
)
|
|
2338
|
+
return None
|
|
2339
|
+
|
|
2340
|
+
|
|
2238
2341
|
@app.command(
|
|
2239
2342
|
name=ch.CLICommandName.RENAME,
|
|
2240
2343
|
help=ch.CMD_RENAME,
|
|
@@ -2275,31 +2378,141 @@ def rename_command(
|
|
|
2275
2378
|
queries=queries,
|
|
2276
2379
|
project_name=name,
|
|
2277
2380
|
)
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2381
|
+
with _guarded_edit_reingest(ingestor, updater, name, repo_path.resolve()) as (
|
|
2382
|
+
reingest,
|
|
2383
|
+
marker,
|
|
2384
|
+
):
|
|
2385
|
+
try:
|
|
2386
|
+
report = rename(
|
|
2387
|
+
repo_path.resolve(),
|
|
2388
|
+
fetch_all,
|
|
2389
|
+
name,
|
|
2390
|
+
qualified_name,
|
|
2391
|
+
new_name,
|
|
2392
|
+
allow_heuristic=allow_heuristic,
|
|
2393
|
+
dry_run=dry_run,
|
|
2394
|
+
reingest=reingest,
|
|
2395
|
+
heuristic_opt_in=cs.RENAME_CLI_ALLOW_HEURISTIC,
|
|
2396
|
+
)
|
|
2397
|
+
except RenameRefused as refused:
|
|
2398
|
+
typer.echo(str(refused), err=True)
|
|
2399
|
+
for site in sites_for([*refused.ambiguous, *refused.unplanned]):
|
|
2400
|
+
typer.echo(f" {site}", err=True)
|
|
2401
|
+
for entry in refused.unlocatable:
|
|
2402
|
+
typer.echo(f" {entry}", err=True)
|
|
2403
|
+
raise typer.Exit(code=1) from refused
|
|
2404
|
+
marker_error = (
|
|
2405
|
+
_mark_edit_partial(marker, name) if report.graph_incomplete else None
|
|
2289
2406
|
)
|
|
2290
|
-
except RenameRefused as refused:
|
|
2291
|
-
typer.echo(str(refused), err=True)
|
|
2292
|
-
for site in sites_for([*refused.ambiguous, *refused.unplanned]):
|
|
2293
|
-
typer.echo(f" {site}", err=True)
|
|
2294
|
-
for entry in refused.unlocatable:
|
|
2295
|
-
typer.echo(f" {entry}", err=True)
|
|
2296
|
-
raise typer.Exit(code=1) from refused
|
|
2297
2407
|
payload = dict(report._asdict())
|
|
2298
2408
|
payload[cs.KEY_SITES] = sites_for(report.sites)
|
|
2299
2409
|
payload[cs.KEY_AMBIGUOUS] = sites_for(report.ambiguous)
|
|
2300
2410
|
payload[cs.KEY_UNPLANNED] = sites_for(report.unplanned)
|
|
2301
2411
|
payload["verdict"] = report.verdict._asdict() if report.verdict else None
|
|
2302
2412
|
typer.echo(json.dumps(payload, indent=cs.MCP_JSON_INDENT, sort_keys=True))
|
|
2413
|
+
if marker_error is not None:
|
|
2414
|
+
typer.echo(marker_error, err=True)
|
|
2415
|
+
raise typer.Exit(code=1)
|
|
2416
|
+
if not report.applied and not dry_run:
|
|
2417
|
+
raise typer.Exit(code=1)
|
|
2418
|
+
|
|
2419
|
+
|
|
2420
|
+
@app.command(
|
|
2421
|
+
name=ch.CLICommandName.CHANGE_SIGNATURE,
|
|
2422
|
+
help=ch.CMD_CHANGE_SIGNATURE,
|
|
2423
|
+
short_help=ch.CMD_CHANGE_SIGNATURE,
|
|
2424
|
+
epilog=ch.EXAMPLES_CHANGE_SIGNATURE,
|
|
2425
|
+
rich_help_panel=ch.PANEL_USE,
|
|
2426
|
+
)
|
|
2427
|
+
def change_signature_command(
|
|
2428
|
+
qualified_name: str = typer.Argument(..., help=ch.HELP_CHANGE_SIGNATURE_QN),
|
|
2429
|
+
new_params: list[str] = typer.Argument(..., help=ch.HELP_CHANGE_SIGNATURE_PARAMS),
|
|
2430
|
+
repo_path: Path = typer.Option(
|
|
2431
|
+
Path(cs.MCP_DEFAULT_DIRECTORY),
|
|
2432
|
+
"--repo-path",
|
|
2433
|
+
exists=True,
|
|
2434
|
+
file_okay=False,
|
|
2435
|
+
help=ch.HELP_GRAPH_REPO_PATH,
|
|
2436
|
+
),
|
|
2437
|
+
project: str | None = typer.Option(None, "--project", help=ch.HELP_GRAPH_PROJECT),
|
|
2438
|
+
mapping: list[str] | None = typer.Option(
|
|
2439
|
+
None, "--map", help=ch.HELP_CHANGE_SIGNATURE_MAP
|
|
2440
|
+
),
|
|
2441
|
+
allow_heuristic: bool = typer.Option(
|
|
2442
|
+
False, "--allow-heuristic", help=ch.HELP_CHANGE_SIGNATURE_ALLOW_HEURISTIC
|
|
2443
|
+
),
|
|
2444
|
+
dry_run: bool = typer.Option(
|
|
2445
|
+
False, "--dry-run", help=ch.HELP_CHANGE_SIGNATURE_DRY_RUN
|
|
2446
|
+
),
|
|
2447
|
+
) -> None:
|
|
2448
|
+
from .editing.signature import change_signature
|
|
2449
|
+
from .editing.signature_spec import (
|
|
2450
|
+
SignatureRefused,
|
|
2451
|
+
parse_mapping,
|
|
2452
|
+
sites_for,
|
|
2453
|
+
unmapped_for,
|
|
2454
|
+
)
|
|
2455
|
+
from .graph_cli import _project_and_fetch
|
|
2456
|
+
from .graph_query import source_root_for
|
|
2457
|
+
|
|
2458
|
+
try:
|
|
2459
|
+
parsed = parse_mapping(mapping or [])
|
|
2460
|
+
except SignatureRefused as refused:
|
|
2461
|
+
typer.echo(str(refused), err=True)
|
|
2462
|
+
raise typer.Exit(code=1) from refused
|
|
2463
|
+
name, fetch_all, ingestor = _project_and_fetch(project, repo_path)
|
|
2464
|
+
with ingestor:
|
|
2465
|
+
# An explicit --project may name a graph indexed from another
|
|
2466
|
+
# checkout; its repo-relative paths must not be edited under this
|
|
2467
|
+
# one. The MCP handler refuses the same mismatch.
|
|
2468
|
+
if source_root_for(fetch_all, name, repo_path) is None:
|
|
2469
|
+
typer.echo(
|
|
2470
|
+
cs.SIGNATURE_CLI_WRONG_ROOT.format(
|
|
2471
|
+
project=name, root=repo_path.resolve()
|
|
2472
|
+
),
|
|
2473
|
+
err=True,
|
|
2474
|
+
)
|
|
2475
|
+
raise typer.Exit(code=1)
|
|
2476
|
+
parsers, queries = load_parsers()
|
|
2477
|
+
from .graph_updater import GraphUpdater
|
|
2478
|
+
|
|
2479
|
+
updater = GraphUpdater(
|
|
2480
|
+
ingestor=ingestor,
|
|
2481
|
+
repo_path=repo_path.resolve(),
|
|
2482
|
+
parsers=parsers,
|
|
2483
|
+
queries=queries,
|
|
2484
|
+
project_name=name,
|
|
2485
|
+
)
|
|
2486
|
+
with _guarded_edit_reingest(ingestor, updater, name, repo_path.resolve()) as (
|
|
2487
|
+
reingest,
|
|
2488
|
+
marker,
|
|
2489
|
+
):
|
|
2490
|
+
try:
|
|
2491
|
+
report = change_signature(
|
|
2492
|
+
repo_path.resolve(),
|
|
2493
|
+
fetch_all,
|
|
2494
|
+
name,
|
|
2495
|
+
qualified_name,
|
|
2496
|
+
new_params,
|
|
2497
|
+
parsed,
|
|
2498
|
+
allow_heuristic=allow_heuristic,
|
|
2499
|
+
dry_run=dry_run,
|
|
2500
|
+
reingest=reingest,
|
|
2501
|
+
)
|
|
2502
|
+
except SignatureRefused as refused:
|
|
2503
|
+
typer.echo(str(refused), err=True)
|
|
2504
|
+
raise typer.Exit(code=1) from refused
|
|
2505
|
+
marker_error = (
|
|
2506
|
+
_mark_edit_partial(marker, name) if report.graph_incomplete else None
|
|
2507
|
+
)
|
|
2508
|
+
payload = dict(report._asdict())
|
|
2509
|
+
payload[cs.KEY_SITES] = sites_for(report.sites)
|
|
2510
|
+
payload[cs.KEY_UNMAPPED] = unmapped_for(report.unmapped)
|
|
2511
|
+
payload[cs.KEY_VERDICT] = report.verdict._asdict() if report.verdict else None
|
|
2512
|
+
typer.echo(json.dumps(payload, indent=cs.MCP_JSON_INDENT, sort_keys=True))
|
|
2513
|
+
if marker_error is not None:
|
|
2514
|
+
typer.echo(marker_error, err=True)
|
|
2515
|
+
raise typer.Exit(code=1)
|
|
2303
2516
|
if not report.applied and not dry_run:
|
|
2304
2517
|
raise typer.Exit(code=1)
|
|
2305
2518
|
|