LICENSE
MANIFEST.in
NOTICE
README.md
pyproject.toml
selvage/__main__.py
selvage/__version__.py
selvage/cli.py
selvage.egg-info/PKG-INFO
selvage.egg-info/SOURCES.txt
selvage.egg-info/dependency_links.txt
selvage.egg-info/entry_points.txt
selvage.egg-info/requires.txt
selvage.egg-info/top_level.txt
selvage/resources/error_patterns.yml
selvage/resources/models.yml
selvage/resources/prompt/synthesis/recommendation_synthesis_prompt.txt
selvage/resources/prompt/synthesis/summary_synthesis_prompt.txt
selvage/resources/prompt/synthesis/synthesis_system_prompt.txt
selvage/resources/prompt/v1/code_review_system_prompt_v1.txt
selvage/resources/prompt/v1/deepeval_result_file_conversion_prompt_v1.md
selvage/resources/prompt/v2/code_review_system_prompt_v2.txt
selvage/resources/prompt/v3/code_review_system_prompt_v3.txt
selvage/resources/prompt/v4/code_review_system_prompt_v4.txt
selvage/src/__init__.py
selvage/src/config.py
selvage/src/model_config.py
selvage/src/ui.py
selvage/src/cache/__init__.py
selvage/src/cache/cache_key_generator.py
selvage/src/cache/cache_manager.py
selvage/src/cache/models.py
selvage/src/context_extractor/__init__.py
selvage/src/context_extractor/context_extractor.py
selvage/src/context_extractor/fallback_context_extractor.py
selvage/src/context_extractor/line_range.py
selvage/src/context_extractor/meaningless_change_filter.py
selvage/src/diff_parser/__init__.py
selvage/src/diff_parser/constants.py
selvage/src/diff_parser/parser.py
selvage/src/diff_parser/models/__init__.py
selvage/src/diff_parser/models/diff_result.py
selvage/src/diff_parser/models/file_diff.py
selvage/src/diff_parser/models/hunk.py
selvage/src/diff_parser/utils/__init__.py
selvage/src/diff_parser/utils/hunk_line_calculator.py
selvage/src/exceptions/__init__.py
selvage/src/exceptions/api_key_not_found_error.py
selvage/src/exceptions/context_extraction_error.py
selvage/src/exceptions/context_limit_exceeded_error.py
selvage/src/exceptions/diff_parsing_error.py
selvage/src/exceptions/invalid_api_key_error.py
selvage/src/exceptions/invalid_model_provider_error.py
selvage/src/exceptions/json_parsing_error.py
selvage/src/exceptions/llm_gateway_error.py
selvage/src/exceptions/openrouter_api_error.py
selvage/src/exceptions/token_count_error.py
selvage/src/exceptions/unsupported_model_error.py
selvage/src/exceptions/unsupported_provider_error.py
selvage/src/llm_gateway/__init__.py
selvage/src/llm_gateway/base_gateway.py
selvage/src/llm_gateway/claude_gateway.py
selvage/src/llm_gateway/gateway_factory.py
selvage/src/llm_gateway/google_gateway.py
selvage/src/llm_gateway/openai_gateway.py
selvage/src/llm_gateway/openrouter_gateway.py
selvage/src/llm_gateway/openrouter/__init__.py
selvage/src/llm_gateway/openrouter/gateway.py
selvage/src/llm_gateway/openrouter/http_client.py
selvage/src/llm_gateway/openrouter/models.py
selvage/src/models/__init__.py
selvage/src/models/claude_provider.py
selvage/src/models/error_pattern_parser.py
selvage/src/models/error_response.py
selvage/src/models/model_choice.py
selvage/src/models/model_provider.py
selvage/src/models/review_result.py
selvage/src/models/review_status.py
selvage/src/multiturn/__init__.py
selvage/src/multiturn/models.py
selvage/src/multiturn/multiturn_review_executor.py
selvage/src/multiturn/prompt_splitter.py
selvage/src/multiturn/review_synthesizer.py
selvage/src/multiturn/synthesis_api_client.py
selvage/src/multiturn/synthesis_prompt_manager.py
selvage/src/multiturn/synthesis_types.py
selvage/src/utils/__init__.py
selvage/src/utils/base_console.py
selvage/src/utils/constants.py
selvage/src/utils/file_utils.py
selvage/src/utils/git_utils.py
selvage/src/utils/json_extractor.py
selvage/src/utils/language_detector.py
selvage/src/utils/line_number_calculator.py
selvage/src/utils/llm_client_factory.py
selvage/src/utils/platform_utils.py
selvage/src/utils/review_display.py
selvage/src/utils/review_formatter.py
selvage/src/utils/smart_context_utils.py
selvage/src/utils/logging/__init__.py
selvage/src/utils/logging/config.py
selvage/src/utils/logging/review_log_manager.py
selvage/src/utils/prompts/__init__.py
selvage/src/utils/prompts/prompt_constants.py
selvage/src/utils/prompts/prompt_generator.py
selvage/src/utils/prompts/models/__init__.py
selvage/src/utils/prompts/models/file_context_info.py
selvage/src/utils/prompts/models/formatted_hunk.py
selvage/src/utils/prompts/models/review_prompt_with_file_content.py
selvage/src/utils/prompts/models/system_prompt.py
selvage/src/utils/prompts/models/user_prompt.py
selvage/src/utils/prompts/models/user_prompt_with_file_content.py
selvage/src/utils/token/__init__.py
selvage/src/utils/token/cost_estimator.py
selvage/src/utils/token/models.py
selvage/src/utils/token/token_utils.py
tests/test_base_gateway_retry.py
tests/test_claude_provider.py
tests/test_cli_error_handling.py
tests/test_cli_flags.py
tests/test_cli_version.py
tests/test_config_env_vars.py
tests/test_config_language.py
tests/test_config_review_log_dir.py
tests/test_console_debug_mode.py
tests/test_context_limit_handling_mock.py
tests/test_context_limit_workflow_integration.py
tests/test_cost_estimator.py
tests/test_diff_parser.py
tests/test_error_pattern_parser.py
tests/test_formatted_hunk.py
tests/test_hunk_line_calculator.py
tests/test_json_extractor.py
tests/test_json_parsing_error.py
tests/test_llm_gateway.py
tests/test_llm_gateway_request.py
tests/test_llm_gateway_review_code.py
tests/test_new_error_handling.py
tests/test_openrouter_api_error.py
tests/test_openrouter_first.py
tests/test_openrouter_gateway_retry.py
tests/test_prompt_generator.py
tests/test_review_display.py
tests/test_review_formatter.py
tests/test_usage_response.py