code-graph-rag 0.3.13__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.13/code_graph_rag.egg-info → code_graph_rag-0.4.5}/PKG-INFO +4 -3
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/README.md +5 -5
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5/code_graph_rag.egg-info}/PKG-INFO +4 -3
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/SOURCES.txt +4 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/requires.txt +3 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/check_isolation.py +2 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/cli.py +226 -26
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/cli_help.py +36 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/config.py +114 -16
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_js.py +11 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_python.py +72 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/cli.py +60 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/core.py +13 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/embedded_graph.py +89 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/graph.py +6 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/interface.py +12 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/mcp.py +77 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/providers.py +1 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/security.py +100 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/cypher_queries.py +30 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/docker-compose.yaml +3 -3
- code_graph_rag-0.4.5/codebase_rag/editing/signature.py +588 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/signature_bind.py +75 -3
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/transaction.py +3 -3
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/limits.py +2 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/exceptions.py +5 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/graph_updater.py +2 -0
- code_graph_rag-0.4.5/codebase_rag/instructions_trust.py +65 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/logs.py +34 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/main.py +67 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/mcp/server.py +85 -35
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/mcp/tools.py +211 -7
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/anchor_hash.py +15 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_fingerprint.py +15 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/haskell.yaml +8 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_tier.py +20 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/mixin.py +2 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/definition_processor.py +3 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/document_tier.py +8 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/interface_fingerprint.py +139 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/variable_analyzer.py +5 -3
- {code_graph_rag-0.3.13 → 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.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/ast_analyzer.py +270 -159
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/utils.py +11 -41
- {code_graph_rag-0.3.13 → 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.13 → code_graph_rag-0.4.5}/codebase_rag/sqlite_vectors.py +2 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/stack/health.py +3 -3
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/structural_check.py +3 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/sync_guard.py +127 -5
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/sync_lock.py +2 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tool_errors.py +1 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/file_reader.py +35 -15
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/health_checker.py +2 -2
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/shell_command.py +129 -3
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/tool_descriptions.py +26 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/types_defs.py +209 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/unixcoder.py +9 -1
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/process_owner.py +14 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/pyproject.toml +16 -11
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/LICENSE +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/PYPI_README.md +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/cgr/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/dependency_links.txt +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/entry_points.txt +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/code_graph_rag.egg-info/top_level.txt +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/_cli_env.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_analyzer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/c.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/cpp.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/csharp.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/dart.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/go.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/java.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/javascript.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/lua.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/php.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/python.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/ruby.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/rust.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/scala.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/tsx.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/patterns/typescript.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/c.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/cpp.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/csharp.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/dart.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/go.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/java.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/javascript.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/lua.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/php.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/python.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/ruby.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/rust.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/scala.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/tsx.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/security/typescript.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/c.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/cpp.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/csharp.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/dart.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/go.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/java.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/javascript.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/lua.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/php.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/python.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/ruby.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/rust.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/scala.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/tsx.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/analyzers/ast_grep_rules/smells/typescript.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/ast_cache.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/capture.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/checkout_state.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/cli_runtime.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/console_marks.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_cpp.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_csharp.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_dart.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_go.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_java.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_julia.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_lua.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_nodes.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_php.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_rust.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_scala.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/ast_sql.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/build.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/deadcode_roots.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/deps.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/duplicates.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/fqn_specs.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/health.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/lang_tooling.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/languages.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/notebook.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/port.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/sqlite_vectors.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/stdlib_types.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/structural.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/constants/trace.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/context_pruning.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/context_slice.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/crash_correlation.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/dead_code.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/decorators.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/duplicates.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/cli.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/contract.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/import_paths.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/imports.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/occurrences.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/patcher.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/rename.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/signature_contract.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/signature_spec.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editing/sites.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/editor_links.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/compiler.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/connection.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/cypher_ast.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/executor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/expressions.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/extension.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/functions.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/lexer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/native.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/parser.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/procedures.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/sql.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/store.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedded_graph/types.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/embedder.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/flow_verdict.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/function_registry.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/gloss.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/gloss_anchor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/gloss_repair.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/graph_audit.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/graph_cli.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/graph_dialects.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/graph_loader.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/graph_query.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/interface_skip.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/language_spec.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/mcp/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/mcp/client.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/mgclient_compat.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/mgclient_probe.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/models.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parser_fingerprint.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parser_loader.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/bash.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/elixir.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/kotlin.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/nix.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/ruby.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/solidity.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_patterns/swift.yaml +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/ast_grep_scope.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/build_lock.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/call_processor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/call_resolver.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/base_targets.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/cpp_modules.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/identity.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/method_override.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/node_type.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/parent_extraction.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/relationships.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/class_ingest/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/contract_linking.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/contracts.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/class_macro.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/function_values.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/local_types.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/overloads.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/preproc_recovery.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/trailing_annotation.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/constants.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/cpp_frontend/qn.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/arity.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.cs +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/roslyn/Frontend.csproj +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/csharp_frontend/roslyn/Program.cs +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/package_paths.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/dart/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/definition_docstring.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/dependency_parser.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/dispatch_registry.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/endpoint_prefixes.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/endpoint_routes.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/endpoints.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/enum_variants.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/export_detection.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/factory.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/field_nodes.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/flat_module.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/flow_access/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/flow_access/constants.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/flow_access/processor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontend_mode.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/cpp.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/csharp.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/go.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/java.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/protocol.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/python.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/frontends/registry.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/function_ingest.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/builds.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/interface_ingest.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/interfaces.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/link_state.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/module_paths.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/gotypes/go.mod +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/gotypes/go.sum +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/go_frontend/gotypes/main.go +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/base.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/cpp.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/java.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/js_ts.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/julia.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/lua.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/php.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/protocol.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/python.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/registry.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/handlers/rust.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/import_processor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/constants.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/descriptor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/extract.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/models.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/processor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/registry.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/resource_names.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/io_access/url_folding.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/method_resolver.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/type_resolver.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_frontend/javac/cgr/Frontend.java +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_generated.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/java_lombok.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/commonjs_exports.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/ingest.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/module_paths.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/overloads.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/reexports.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/js_ts/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/julia/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/julia/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/lua/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/lua/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/lua/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/module_docstring.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/notebook.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/parameter_nodes.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/class_names.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/namespaces.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/php/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/positional_params.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/class_aliases.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/expression_analyzer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/forward_refs.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/overloads.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/receiver_rebinding.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/variable_analyzer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py/with_analyzer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py_frontend/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/py_frontend/frontend.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/python_source_roots.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/rpc_exposure.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/cargo_semver.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/rs/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/scala/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/scala/utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/semantic_call_join.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/sql_ddl.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/sql_recovery.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/stdlib_extractor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/string_call.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/structure_processor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/type_facts.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/parsers/type_inference.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/path_filters.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/port_cli.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/port_parity.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/project_selection.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/providers/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/providers/base.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/providers/litellm.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/c_sharp.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/dart.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/java.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/javascript.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/julia.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/php.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/python.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/rust.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/queries/highlights/typescript.scm +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/readme_sections.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/schema_builder.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/schema_parse.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/schemas.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/anthropic_token_counter.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/cypher_guard.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/filtering.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/gloss_cleanup.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/graph_diff.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/graph_service.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/llm.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/neo4j_driver.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/protobuf_service.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/provenance.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/resource_cleanup.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/services/usage_cost.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/sql_names.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/stack/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/stack/cli.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/stack/constants.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/stack/manager.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/structural_delta.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/taint.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/ast_grep_service.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/code_retrieval.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/codebase_query.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/directory_lister.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/duplicate_detection.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/file_editor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/file_writer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/graph_refresh.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/graph_rerank.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/language.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/language_catalog.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/research.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/semantic_search.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/structural_editor.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/structural_search.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tools/web_search.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/carry.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/cli.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/cpuprofile.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/dispatch_site.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/ebpf_pprof.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/ingest.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/instrumented.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/pprof.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/pytest_plugin.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/records.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/resolution.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/rust_pprof.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/sourcemap.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/speedscope.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/tracer.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/trace/xdebug.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/tree_sitter_point.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/cpp_signatures.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/dependencies.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/endpoints.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/fqn_resolver.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/interruptible_thread.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/json_io.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/path_utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/qn_markers.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/rich_markdown.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/source_encoding.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/source_extraction.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/terminal_console.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/utils/token_utils.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/vector_store.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/watch.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/workspaces/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/workspaces/cli.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/workspaces/constants.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/workspaces/models.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codebase_rag/workspaces/storage.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codec/__init__.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codec/schema.proto +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codec/schema_pb2.py +0 -0
- {code_graph_rag-0.3.13 → code_graph_rag-0.4.5}/codec/schema_pb2.pyi +0 -0
- {code_graph_rag-0.3.13 → 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
|
|
@@ -40,7 +41,7 @@ Requires-Dist: pathspec>=1.0.4
|
|
|
40
41
|
Requires-Dist: pygments>=2.20.0
|
|
41
42
|
Requires-Dist: certifi>=2026.10.23
|
|
42
43
|
Requires-Dist: regex>=2024.11.6
|
|
43
|
-
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"))
|
|
44
45
|
Provides-Extra: test
|
|
45
46
|
Requires-Dist: jedi>=0.19; extra == "test"
|
|
46
47
|
Requires-Dist: pytest>=8.4.1; extra == "test"
|
|
@@ -61,11 +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
|
-
- **
|
|
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.
|
|
64
|
+
- **MiniMax Models Added**: Current MiniMax text models have been included.
|
|
69
65
|
<!-- /SECTION:latest_news -->
|
|
70
66
|
|
|
71
67
|
See [NEWS.md](NEWS.md) for the full history.
|
|
@@ -234,6 +230,10 @@ For issues or questions, check the [Troubleshooting](docs/advanced/troubleshooti
|
|
|
234
230
|
|
|
235
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.
|
|
236
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
|
+
|
|
237
237
|
## License
|
|
238
238
|
|
|
239
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
|
|
@@ -40,7 +41,7 @@ Requires-Dist: pathspec>=1.0.4
|
|
|
40
41
|
Requires-Dist: pygments>=2.20.0
|
|
41
42
|
Requires-Dist: certifi>=2026.10.23
|
|
42
43
|
Requires-Dist: regex>=2024.11.6
|
|
43
|
-
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"))
|
|
44
45
|
Provides-Extra: test
|
|
45
46
|
Requires-Dist: jedi>=0.19; extra == "test"
|
|
46
47
|
Requires-Dist: pytest>=8.4.1; extra == "test"
|
|
@@ -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
|
|
@@ -60,6 +61,7 @@ codebase_rag/readme_sections.py
|
|
|
60
61
|
codebase_rag/schema_builder.py
|
|
61
62
|
codebase_rag/schema_parse.py
|
|
62
63
|
codebase_rag/schemas.py
|
|
64
|
+
codebase_rag/sensitive_paths.py
|
|
63
65
|
codebase_rag/sql_names.py
|
|
64
66
|
codebase_rag/sqlite_vectors.py
|
|
65
67
|
codebase_rag/structural_check.py
|
|
@@ -165,6 +167,7 @@ codebase_rag/editing/imports.py
|
|
|
165
167
|
codebase_rag/editing/occurrences.py
|
|
166
168
|
codebase_rag/editing/patcher.py
|
|
167
169
|
codebase_rag/editing/rename.py
|
|
170
|
+
codebase_rag/editing/signature.py
|
|
168
171
|
codebase_rag/editing/signature_bind.py
|
|
169
172
|
codebase_rag/editing/signature_contract.py
|
|
170
173
|
codebase_rag/editing/signature_spec.py
|
|
@@ -220,6 +223,7 @@ codebase_rag/parsers/interface_fingerprint.py
|
|
|
220
223
|
codebase_rag/parsers/java_generated.py
|
|
221
224
|
codebase_rag/parsers/java_lombok.py
|
|
222
225
|
codebase_rag/parsers/module_docstring.py
|
|
226
|
+
codebase_rag/parsers/native_trees.py
|
|
223
227
|
codebase_rag/parsers/notebook.py
|
|
224
228
|
codebase_rag/parsers/parameter_nodes.py
|
|
225
229
|
codebase_rag/parsers/positional_params.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
|
|
@@ -22,7 +23,7 @@ certifi>=2026.10.23
|
|
|
22
23
|
regex>=2024.11.6
|
|
23
24
|
|
|
24
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"))]
|
|
25
|
-
cgr-graph-rs<0.2,>=0.1.
|
|
26
|
+
cgr-graph-rs<0.2,>=0.1.4
|
|
26
27
|
|
|
27
28
|
[ast-grep]
|
|
28
29
|
ast-grep-py>=0.51.0
|
|
@@ -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
|
|
@@ -79,7 +79,10 @@ from .sync_guard import RUNNING_SYNC_TOKENS as _RUNNING_SYNC_TOKENS
|
|
|
79
79
|
from .sync_guard import OwnerCheck as _OwnerCheck
|
|
80
80
|
from .sync_guard import SyncRefusedError, mark_sync_incomplete, release_project_claim
|
|
81
81
|
from .sync_guard import clear_sync_incomplete as _clear_sync_incomplete
|
|
82
|
+
from .sync_guard import partial_graph_refusal as _partial_graph_refusal
|
|
82
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
|
|
83
86
|
from .sync_guard import sync_marker_params as _sync_marker_params
|
|
84
87
|
from .sync_guard import sync_owner as _sync_owner
|
|
85
88
|
from .sync_lock import SyncLockError, repo_sync_lock
|
|
@@ -95,6 +98,7 @@ from .types_defs import (
|
|
|
95
98
|
DuplicatesReport,
|
|
96
99
|
ProjectSync,
|
|
97
100
|
PropertyValue,
|
|
101
|
+
ReingestReport,
|
|
98
102
|
ResultRow,
|
|
99
103
|
ResultValue,
|
|
100
104
|
)
|
|
@@ -115,6 +119,7 @@ from .workspaces.cli import cli as workspace_cli
|
|
|
115
119
|
|
|
116
120
|
if TYPE_CHECKING:
|
|
117
121
|
from .graph_updater import GraphUpdater
|
|
122
|
+
from .watch import WriteMarker
|
|
118
123
|
|
|
119
124
|
|
|
120
125
|
def _vendored_click_exception() -> type[click.ClickException]:
|
|
@@ -571,7 +576,7 @@ def _start_active_projects(
|
|
|
571
576
|
|
|
572
577
|
|
|
573
578
|
@contextmanager
|
|
574
|
-
def _console_on_stderr() ->
|
|
579
|
+
def _console_on_stderr() -> Generator[None]:
|
|
575
580
|
console = app_context.console
|
|
576
581
|
app_context.console = terminal_aware_console(stderr=True)
|
|
577
582
|
try:
|
|
@@ -943,7 +948,7 @@ def _release_project_claim(batch_size: int, project_name: str, repo: Path) -> No
|
|
|
943
948
|
@contextmanager
|
|
944
949
|
def _project_claim(
|
|
945
950
|
batch_size: int, project_name: str, repo: Path, *, clean: bool, assume_yes: bool
|
|
946
|
-
) ->
|
|
951
|
+
) -> Generator[list[str] | None]:
|
|
947
952
|
"""Hold this sync's claim on its project name while the sync runs (#2411).
|
|
948
953
|
|
|
949
954
|
Yields the roots `_mark_sync_incomplete` must still find on the Project.
|
|
@@ -981,7 +986,7 @@ def _mark_sync_incomplete(
|
|
|
981
986
|
|
|
982
987
|
|
|
983
988
|
@contextmanager
|
|
984
|
-
def _sync_lock_or_exit(repo: Path, project_name: str) ->
|
|
989
|
+
def _sync_lock_or_exit(repo: Path, project_name: str) -> Generator[None]:
|
|
985
990
|
"""Hold the checkout's sync lock for the whole sync, or stop first (#2441).
|
|
986
991
|
|
|
987
992
|
Taken before the `--clean` wipe and the `:IncompleteRun` marker, so a
|
|
@@ -1104,16 +1109,17 @@ def _sweep_glosses_after_failed_delete(
|
|
|
1104
1109
|
|
|
1105
1110
|
|
|
1106
1111
|
def _run_updater_deferring_interrupt(
|
|
1107
|
-
updater: "GraphUpdater",
|
|
1112
|
+
updater: "GraphUpdater", *, rebuild: bool = False
|
|
1108
1113
|
) -> KeyboardInterrupt | None:
|
|
1109
1114
|
"""Run the sync's graph update; return a Ctrl+C that landed after its commit.
|
|
1110
1115
|
|
|
1111
1116
|
The run stamps the sync time as part of its commit (#2444), and the
|
|
1112
1117
|
caller clears its marker before re-raising what this returns; a Ctrl+C
|
|
1113
|
-
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.
|
|
1114
1120
|
"""
|
|
1115
1121
|
try:
|
|
1116
|
-
updater.run()
|
|
1122
|
+
updater.run(force=rebuild)
|
|
1117
1123
|
except ex.EmbeddingsInterrupted as stop:
|
|
1118
1124
|
# Raised only after the run committed, so the graph is whole and
|
|
1119
1125
|
# the sync is recorded like any other; the interrupt then ends
|
|
@@ -1183,6 +1189,15 @@ def _run_graph_sync(
|
|
|
1183
1189
|
# hits and can map onto unrelated nodes in the rebuilt graph.
|
|
1184
1190
|
clear_all_embeddings()
|
|
1185
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
|
+
)
|
|
1186
1201
|
# After the wipe, which would delete the marker with everything else,
|
|
1187
1202
|
# and before `ensure_constraints`, whose migration can already purge.
|
|
1188
1203
|
_mark_sync_incomplete(ingestor, project_name, owner, owned_roots)
|
|
@@ -1202,8 +1217,9 @@ def _run_graph_sync(
|
|
|
1202
1217
|
capture=_capture_selection(capture),
|
|
1203
1218
|
skip_embeddings=skip_embeddings,
|
|
1204
1219
|
)
|
|
1205
|
-
interrupted = _run_updater_deferring_interrupt(updater)
|
|
1220
|
+
interrupted = _run_updater_deferring_interrupt(updater, rebuild=bool(stranded))
|
|
1206
1221
|
_clear_sync_incomplete(ingestor, project_name)
|
|
1222
|
+
_retire_stranded_runs(ingestor, project_name, stranded)
|
|
1207
1223
|
# Taken before the export: counting it made a no-op sync of a small
|
|
1208
1224
|
# repo report the time to dump the whole shared graph (issue #2440).
|
|
1209
1225
|
elapsed = time.monotonic() - elapsed
|
|
@@ -2003,7 +2019,12 @@ def mcp_server(
|
|
|
2003
2019
|
workspace: str | None = typer.Option(
|
|
2004
2020
|
None, "--workspace", help=ch.HELP_MCP_WORKSPACE
|
|
2005
2021
|
),
|
|
2022
|
+
read_only: bool = typer.Option(False, "--read-only", help=ch.HELP_MCP_READ_ONLY),
|
|
2006
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
|
|
2007
2028
|
try:
|
|
2008
2029
|
if transport == cs.MCPTransport.HTTP:
|
|
2009
2030
|
from codebase_rag.mcp import serve_http
|
|
@@ -2248,6 +2269,75 @@ def check_command(
|
|
|
2248
2269
|
raise typer.Exit(code=1)
|
|
2249
2270
|
|
|
2250
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
|
+
|
|
2251
2341
|
@app.command(
|
|
2252
2342
|
name=ch.CLICommandName.RENAME,
|
|
2253
2343
|
help=ch.CMD_RENAME,
|
|
@@ -2288,31 +2378,141 @@ def rename_command(
|
|
|
2288
2378
|
queries=queries,
|
|
2289
2379
|
project_name=name,
|
|
2290
2380
|
)
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
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
|
|
2302
2406
|
)
|
|
2303
|
-
except RenameRefused as refused:
|
|
2304
|
-
typer.echo(str(refused), err=True)
|
|
2305
|
-
for site in sites_for([*refused.ambiguous, *refused.unplanned]):
|
|
2306
|
-
typer.echo(f" {site}", err=True)
|
|
2307
|
-
for entry in refused.unlocatable:
|
|
2308
|
-
typer.echo(f" {entry}", err=True)
|
|
2309
|
-
raise typer.Exit(code=1) from refused
|
|
2310
2407
|
payload = dict(report._asdict())
|
|
2311
2408
|
payload[cs.KEY_SITES] = sites_for(report.sites)
|
|
2312
2409
|
payload[cs.KEY_AMBIGUOUS] = sites_for(report.ambiguous)
|
|
2313
2410
|
payload[cs.KEY_UNPLANNED] = sites_for(report.unplanned)
|
|
2314
2411
|
payload["verdict"] = report.verdict._asdict() if report.verdict else None
|
|
2315
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)
|
|
2316
2516
|
if not report.applied and not dry_run:
|
|
2317
2517
|
raise typer.Exit(code=1)
|
|
2318
2518
|
|
|
@@ -22,6 +22,7 @@ class CLICommandName(StrEnum):
|
|
|
22
22
|
GRAPH = "graph"
|
|
23
23
|
CHECK = "check"
|
|
24
24
|
RENAME = "rename"
|
|
25
|
+
CHANGE_SIGNATURE = "change-signature"
|
|
25
26
|
CONTEXT = "context"
|
|
26
27
|
PORT = "port"
|
|
27
28
|
STOP = "stop"
|
|
@@ -183,8 +184,9 @@ HELP_CHECK_ISOLATED = (
|
|
|
183
184
|
)
|
|
184
185
|
CMD_RENAME = (
|
|
185
186
|
"Rename a definition everywhere the graph references it (definition, call "
|
|
186
|
-
"and reference sites, imports, overrides, __all__); refuses on guessed sites "
|
|
187
|
-
"
|
|
187
|
+
"and reference sites, imports, overrides, __all__); refuses on guessed sites, "
|
|
188
|
+
"on occurrences the graph has no site for, and on a graph a stopped sync "
|
|
189
|
+
"left partial."
|
|
188
190
|
)
|
|
189
191
|
EXAMPLES_RENAME = (
|
|
190
192
|
"Examples:\n cgr rename myproj.pkg.util.helper assist --dry-run\n"
|
|
@@ -197,6 +199,32 @@ HELP_RENAME_ALLOW_HEURISTIC = (
|
|
|
197
199
|
"occurrences of the old name the graph has no site for, as well."
|
|
198
200
|
)
|
|
199
201
|
HELP_RENAME_DRY_RUN = "Print the plan and diff without writing anything."
|
|
202
|
+
CMD_CHANGE_SIGNATURE = (
|
|
203
|
+
"Change a Python definition's parameter list and rewrite every call site "
|
|
204
|
+
"the graph knows; sites the mapping cannot complete are listed, not touched; "
|
|
205
|
+
"refuses on a graph a stopped sync left partial."
|
|
206
|
+
)
|
|
207
|
+
EXAMPLES_CHANGE_SIGNATURE = (
|
|
208
|
+
"Examples:\n"
|
|
209
|
+
" cgr change-signature myproj.pkg.util.helper a 'n: int' b --map n==1 --dry-run\n"
|
|
210
|
+
" cgr change-signature myproj.pkg.util.helper b a\n"
|
|
211
|
+
" cgr change-signature myproj.pkg.util.helper 'times: int' 'text: str' "
|
|
212
|
+
"--map times=0 --map text=1"
|
|
213
|
+
)
|
|
214
|
+
HELP_CHANGE_SIGNATURE_QN = "Qualified name of the function or method to change."
|
|
215
|
+
HELP_CHANGE_SIGNATURE_PARAMS = (
|
|
216
|
+
"The new parameters in order: NAME, 'NAME: TYPE', 'NAME = DEFAULT' or "
|
|
217
|
+
"'NAME: TYPE = DEFAULT'; a bare old name carries it over unchanged."
|
|
218
|
+
)
|
|
219
|
+
HELP_CHANGE_SIGNATURE_MAP = (
|
|
220
|
+
"NEW=SOURCE, repeatable: SOURCE is an old parameter name, its 0-based "
|
|
221
|
+
"index, or =LITERAL to pass that text at every site (so NEW==1 inserts 1)."
|
|
222
|
+
)
|
|
223
|
+
HELP_CHANGE_SIGNATURE_ALLOW_HEURISTIC = (
|
|
224
|
+
"Rewrite sites the graph resolved heuristically, by overload fan-out or by "
|
|
225
|
+
"a trace as well, instead of listing them as unmapped."
|
|
226
|
+
)
|
|
227
|
+
HELP_CHANGE_SIGNATURE_DRY_RUN = "Print the plan and diff without writing anything."
|
|
200
228
|
CMD_CONTEXT = (
|
|
201
229
|
"Print a graph-ranked context slice for a symbol, location or task within "
|
|
202
230
|
"a token budget: source, caller lines, callee signatures, types, tests, docs."
|
|
@@ -588,6 +616,11 @@ HELP_QUERY_OUTPUT_FORMAT = "Format --ask-agent output as table or json."
|
|
|
588
616
|
HELP_MCP_TRANSPORT = "Transport to serve: stdio or http."
|
|
589
617
|
HELP_MCP_HTTP_HOST = "HTTP bind host. Used only with --transport http."
|
|
590
618
|
HELP_MCP_HTTP_PORT = "HTTP bind port. Used only with --transport http."
|
|
619
|
+
HELP_MCP_READ_ONLY = (
|
|
620
|
+
"Serve only the tools that read (graph queries, file reads, ask_agent); "
|
|
621
|
+
"write_file, the edit tools, indexing, annotate and the delete tools are "
|
|
622
|
+
"neither listed nor run. Also set by MCP_READ_ONLY=true."
|
|
623
|
+
)
|
|
591
624
|
HELP_MCP_WORKSPACE = (
|
|
592
625
|
"Serve the projects of workspace NAME: `list_projects` shows them, a "
|
|
593
626
|
"`project` argument, when given, must name one (omitted, the server "
|
|
@@ -715,6 +748,7 @@ CLI_COMMANDS: dict[CLICommandName, str] = {
|
|
|
715
748
|
CLICommandName.GRAPH: CMD_GRAPH,
|
|
716
749
|
CLICommandName.CHECK: CMD_CHECK,
|
|
717
750
|
CLICommandName.RENAME: CMD_RENAME,
|
|
751
|
+
CLICommandName.CHANGE_SIGNATURE: CMD_CHANGE_SIGNATURE,
|
|
718
752
|
CLICommandName.CONTEXT: CMD_CONTEXT,
|
|
719
753
|
CLICommandName.PORT: CMD_PORT,
|
|
720
754
|
CLICommandName.WORKSPACE: CMD_WORKSPACE,
|