LICENSE
MANIFEST.in
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/models.yml
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/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/diff_parser/__init__.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/exceptions/__init__.py
selvage/src/exceptions/api_key_not_found_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/llm_gateway_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/model_choice.py
selvage/src/models/model_provider.py
selvage/src/models/review_result.py
selvage/src/models/review_status.py
selvage/src/utils/__init__.py
selvage/src/utils/base_console.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/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/logging/__init__.py
selvage/src/utils/logging/config.py
selvage/src/utils/prompts/__init__.py
selvage/src/utils/prompts/prompt_generator.py
selvage/src/utils/prompts/models/__init__.py
selvage/src/utils/prompts/models/formatted_hunk.py
selvage/src/utils/prompts/models/review_prompt.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_claude_provider.py
tests/test_cli_claude_provider.py
tests/test_cli_flags.py
tests/test_cli_version.py
tests/test_config_claude_provider.py
tests/test_config_env_vars.py
tests/test_config_language.py
tests/test_config_review_log_dir.py
tests/test_cost_estimator.py
tests/test_diff_parser.py
tests/test_formatted_hunk.py
tests/test_llm_gateway.py
tests/test_llm_gateway_request.py
tests/test_llm_gateway_review_code.py
tests/test_prompt_generator.py
tests/test_review_display.py
tests/test_review_formatter.py
tests/test_usage_response.py