xai-review 0.32.0__tar.gz → 0.33.0__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.
Potentially problematic release.
This version of xai-review might be problematic. Click here for more details.
- {xai_review-0.32.0/xai_review.egg-info → xai_review-0.33.0}/PKG-INFO +2 -2
- {xai_review-0.32.0 → xai_review-0.33.0}/README.md +1 -1
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/artifacts/tools.py +2 -2
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/artifacts.py +6 -0
- xai_review-0.33.0/ai_review/tests/suites/services/artifacts/test_service.py +92 -0
- xai_review-0.33.0/ai_review/tests/suites/services/artifacts/test_tools.py +28 -0
- xai_review-0.33.0/ai_review/tests/suites/services/vcs/gitlab/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/pyproject.toml +1 -1
- {xai_review-0.32.0 → xai_review-0.33.0/xai_review.egg-info}/PKG-INFO +2 -2
- {xai_review-0.32.0 → xai_review-0.33.0}/xai_review.egg-info/SOURCES.txt +3 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/LICENSE +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/run_context_review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/run_inline_reply_review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/run_inline_review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/run_review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/run_summary_reply_review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/commands/run_summary_review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/cli/main.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/schema/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/schema/comments.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/schema/files.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/schema/pull_request.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/schema/user.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/claude/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/claude/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/claude/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/claude/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gemini/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gemini/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gemini/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gemini/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/schema/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/schema/comments.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/schema/files.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/schema/pull_request.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/schema/user.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/pr/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitea/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/schema/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/schema/comments.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/schema/files.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/schema/pull_request.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/schema/reviews.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/schema/user.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/pr/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/github/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/schema/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/schema/changes.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/schema/discussions.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/schema/notes.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/schema/position.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/schema/user.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/mr/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/gitlab/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/ollama/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/ollama/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/ollama/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/ollama/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/openai/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/openai/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/openai/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/openai/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/config.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/asynchronous/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/asynchronous/gather.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/artifacts.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/base.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/core.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/http.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/base.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/claude.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/gemini.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/meta.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/ollama.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/llm/openai.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/logger.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/prompt.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/review.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/base.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/bitbucket.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/gitea.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/github.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/gitlab.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/config/vcs/pagination.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/constants/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/constants/llm_provider.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/constants/vcs_provider.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/diff/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/diff/models.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/diff/parser.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/diff/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/event_hooks/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/event_hooks/base.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/event_hooks/logger.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/handlers.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/paginate.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/transports/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/http/transports/retry.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/json.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/llm/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/llm/output_json_parser.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/logger.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/resources.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/template/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/libs/template/render.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_context.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_inline.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_inline_reply.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_summary.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_summary_reply.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_system_context.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_system_inline.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_system_inline_reply.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_system_summary.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/prompts/default_system_summary_reply.md +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/resources/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/resources/pricing.yaml +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/artifacts/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/artifacts/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/artifacts/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/artifacts/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/cost/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/cost/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/cost/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/cost/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/diff/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/diff/renderers.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/diff/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/diff/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/diff/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/diff/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/git/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/git/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/git/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/hook/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/hook/constants.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/hook/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/hook/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/claude/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/claude/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/factory.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/gemini/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/gemini/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/ollama/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/ollama/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/openai/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/openai/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/llm/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/prompt/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/prompt/adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/prompt/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/prompt/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/prompt/tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/prompt/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/gateway/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/gateway/review_comment_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/gateway/review_dry_run_comment_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/gateway/review_llm_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/gateway/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline_reply/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline_reply/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline_reply/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/inline_reply/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/policy/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/policy/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/policy/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary_reply/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary_reply/schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary_reply/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/internal/summary_reply/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/context.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/inline.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/inline_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/summary.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/summary_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/runner/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/review/service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/bitbucket/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/bitbucket/adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/bitbucket/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/factory.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/gitea/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/gitea/adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/gitea/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/github/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/github/adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/github/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/gitlab/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/gitlab/adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/gitlab/client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/services/vcs/types.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/bitbucket.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/claude.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/gemini.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/gitea.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/github.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/gitlab.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/ollama.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/clients/openai.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/libs/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/libs/llm/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/libs/llm/output_json_parser.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/cost.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/diff.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/git.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/hook.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/llm.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/prompt.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/base.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/gateway/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/gateway/review_comment_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/gateway/review_dry_run_comment_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/gateway/review_llm_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/internal/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/internal/inline.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/internal/inline_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/internal/policy.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/internal/summary.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/internal/summary_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/runner/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/runner/context.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/runner/inline.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/runner/inline_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/runner/summary.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/review/runner/summary_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/fixtures/services/vcs.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/cli/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/cli/test_main.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/bitbucket/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/bitbucket/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/bitbucket/test_tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/claude/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/claude/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/claude/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gemini/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gemini/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gemini/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gitea/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gitea/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gitea/test_tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/github/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/github/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/github/test_tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gitlab/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gitlab/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/gitlab/test_tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/ollama/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/ollama/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/ollama/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/openai/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/openai/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/clients/openai/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/asynchronous/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/asynchronous/test_gather.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/config/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/config/test_prompt.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/diff/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/diff/test_models.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/diff/test_parser.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/diff/test_tools.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/http/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/http/test_paginate.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/llm/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/llm/test_output_json_parser.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/template/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/template/test_render.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/libs/test_json.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/__init__.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/cost → xai_review-0.33.0/ai_review/tests/suites/services/artifacts}/__init__.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/diff → xai_review-0.33.0/ai_review/tests/suites/services/cost}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/cost/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/cost/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/hook → xai_review-0.33.0/ai_review/tests/suites/services/diff}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/diff/test_renderers.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/diff/test_service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/diff/test_tools.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/llm → xai_review-0.33.0/ai_review/tests/suites/services/hook}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/hook/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/llm/claude → xai_review-0.33.0/ai_review/tests/suites/services/llm}/__init__.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/llm/gemini → xai_review-0.33.0/ai_review/tests/suites/services/llm/claude}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/llm/claude/test_client.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/llm/ollama → xai_review-0.33.0/ai_review/tests/suites/services/llm/gemini}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/llm/gemini/test_client.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/llm/openai → xai_review-0.33.0/ai_review/tests/suites/services/llm/ollama}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/llm/ollama/test_client.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/prompt → xai_review-0.33.0/ai_review/tests/suites/services/llm/openai}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/llm/openai/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/llm/test_factory.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review → xai_review-0.33.0/ai_review/tests/suites/services/prompt}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/prompt/test_adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/prompt/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/prompt/test_service.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/prompt/test_tools.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/gateway → xai_review-0.33.0/ai_review/tests/suites/services/review}/__init__.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/internal → xai_review-0.33.0/ai_review/tests/suites/services/review/gateway}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/gateway/test_review_comment_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/gateway/test_review_dry_run_comment_gateway.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/gateway/test_review_llm_gateway.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/internal/inline → xai_review-0.33.0/ai_review/tests/suites/services/review/internal}/__init__.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/internal/inline_reply → xai_review-0.33.0/ai_review/tests/suites/services/review/internal/inline}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/inline/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/inline/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/internal/policy → xai_review-0.33.0/ai_review/tests/suites/services/review/internal/inline_reply}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/inline_reply/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/inline_reply/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/internal/summary → xai_review-0.33.0/ai_review/tests/suites/services/review/internal/policy}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/policy/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/internal/summary_reply → xai_review-0.33.0/ai_review/tests/suites/services/review/internal/summary}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/summary/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/summary/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/review/runner → xai_review-0.33.0/ai_review/tests/suites/services/review/internal/summary_reply}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/summary_reply/test_schema.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/internal/summary_reply/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/vcs → xai_review-0.33.0/ai_review/tests/suites/services/review/runner}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/runner/test_context.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/runner/test_inline.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/runner/test_inline_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/runner/test_summary.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/runner/test_summary_reply.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/review/test_service.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/vcs/bitbucket → xai_review-0.33.0/ai_review/tests/suites/services/vcs}/__init__.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/vcs/gitea → xai_review-0.33.0/ai_review/tests/suites/services/vcs/bitbucket}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/bitbucket/test_adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/bitbucket/test_client.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/vcs/github → xai_review-0.33.0/ai_review/tests/suites/services/vcs/gitea}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/gitea/test_adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/gitea/test_client.py +0 -0
- {xai_review-0.32.0/ai_review/tests/suites/services/vcs/gitlab → xai_review-0.33.0/ai_review/tests/suites/services/vcs/github}/__init__.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/github/test_adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/github/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/gitlab/test_adapter.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/gitlab/test_client.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/ai_review/tests/suites/services/vcs/test_factory.py +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/setup.cfg +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/xai_review.egg-info/dependency_links.txt +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/xai_review.egg-info/entry_points.txt +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/xai_review.egg-info/requires.txt +0 -0
- {xai_review-0.32.0 → xai_review-0.33.0}/xai_review.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xai-review
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.33.0
|
|
4
4
|
Summary: AI-powered code review tool
|
|
5
5
|
Author-email: Nikita Filonov <nikita.filonov@example.com>
|
|
6
6
|
Maintainer-email: Nikita Filonov <nikita.filonov@example.com>
|
|
@@ -220,7 +220,7 @@ jobs:
|
|
|
220
220
|
with:
|
|
221
221
|
fetch-depth: 0
|
|
222
222
|
|
|
223
|
-
- uses: Nikita-Filonov/ai-review@v0.
|
|
223
|
+
- uses: Nikita-Filonov/ai-review@v0.33.0
|
|
224
224
|
with:
|
|
225
225
|
review-command: ${{ inputs.review-command }}
|
|
226
226
|
env:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import hashlib
|
|
2
|
-
from datetime import datetime
|
|
2
|
+
from datetime import datetime, timezone
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
def make_artifact_id(text: str) -> str:
|
|
6
6
|
sha = hashlib.sha1(text.encode()).hexdigest()[:8]
|
|
7
|
-
ts = datetime.
|
|
7
|
+
ts = datetime.now(timezone.utc).strftime("%Y.%m.%d_%H-%M-%S")
|
|
8
8
|
return f"{ts}_{sha}"
|
|
@@ -2,6 +2,7 @@ from pathlib import Path
|
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
|
|
5
|
+
from ai_review.services.artifacts.service import ArtifactsService
|
|
5
6
|
from ai_review.services.artifacts.types import ArtifactsServiceProtocol
|
|
6
7
|
|
|
7
8
|
|
|
@@ -49,3 +50,8 @@ class FakeArtifactsService(ArtifactsServiceProtocol):
|
|
|
49
50
|
@pytest.fixture
|
|
50
51
|
def fake_artifacts_service() -> FakeArtifactsService:
|
|
51
52
|
return FakeArtifactsService()
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@pytest.fixture
|
|
56
|
+
def artifacts_service() -> ArtifactsService:
|
|
57
|
+
return ArtifactsService()
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
import aiofiles
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
7
|
+
from ai_review.config import settings
|
|
8
|
+
from ai_review.libs.config.artifacts import ArtifactsConfig
|
|
9
|
+
from ai_review.services.artifacts.service import ArtifactsService
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.mark.asyncio
|
|
13
|
+
async def test_save_llm_interaction_creates_file(
|
|
14
|
+
tmp_path: Path,
|
|
15
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
16
|
+
artifacts_service: ArtifactsService
|
|
17
|
+
):
|
|
18
|
+
"""Checks that a JSON file is created with the correct name and content when LLM saving is enabled."""
|
|
19
|
+
monkeypatch.setattr(settings, "artifacts", ArtifactsConfig(llm_dir=tmp_path, llm_enabled=True))
|
|
20
|
+
|
|
21
|
+
artifact_id = await artifacts_service.save_llm_interaction(
|
|
22
|
+
prompt="Hello world",
|
|
23
|
+
prompt_system="system prompt",
|
|
24
|
+
response="model answer"
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
assert artifact_id is not None
|
|
28
|
+
artifact_path = tmp_path / f"{artifact_id}.json"
|
|
29
|
+
assert artifact_path.exists(), "Artifact file was not created"
|
|
30
|
+
|
|
31
|
+
async with aiofiles.open(artifact_path, "r", encoding="utf-8") as file:
|
|
32
|
+
content = await file.read()
|
|
33
|
+
data = json.loads(content)
|
|
34
|
+
assert data["id"] == artifact_id
|
|
35
|
+
assert data["prompt"] == "Hello world"
|
|
36
|
+
assert data["response"] == "model answer"
|
|
37
|
+
assert data["prompt_system"] == "system prompt"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@pytest.mark.asyncio
|
|
41
|
+
async def test_save_llm_interaction_disabled(
|
|
42
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
43
|
+
artifacts_service: ArtifactsService
|
|
44
|
+
):
|
|
45
|
+
"""Checks that the method returns None and does not create a file if LLM saving is disabled."""
|
|
46
|
+
monkeypatch.setattr(settings, "artifacts", ArtifactsConfig(llm_enabled=False))
|
|
47
|
+
|
|
48
|
+
artifact_id = await artifacts_service.save_llm_interaction(
|
|
49
|
+
prompt="ignored",
|
|
50
|
+
prompt_system="ignored",
|
|
51
|
+
response="ignored"
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
assert artifact_id is None
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@pytest.mark.asyncio
|
|
58
|
+
async def test_save_artifact_writes_file(tmp_path: Path, artifacts_service: ArtifactsService):
|
|
59
|
+
"""Checks that save_artifact writes content to the given file path."""
|
|
60
|
+
file_path = tmp_path / "test.json"
|
|
61
|
+
content = '{"key": "value"}'
|
|
62
|
+
|
|
63
|
+
result = await artifacts_service.save_artifact(file=file_path, content=content, kind="test")
|
|
64
|
+
|
|
65
|
+
assert result == file_path
|
|
66
|
+
assert file_path.exists()
|
|
67
|
+
async with aiofiles.open(file_path, "r", encoding="utf-8") as f:
|
|
68
|
+
saved_content = await f.read()
|
|
69
|
+
assert saved_content == content
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
@pytest.mark.asyncio
|
|
73
|
+
async def test_save_artifact_handles_exception(
|
|
74
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
75
|
+
artifacts_service: ArtifactsService
|
|
76
|
+
):
|
|
77
|
+
"""Checks that save_artifact gracefully returns None on write error."""
|
|
78
|
+
|
|
79
|
+
class BrokenAsyncFile:
|
|
80
|
+
async def __aenter__(self):
|
|
81
|
+
raise OSError("disk full")
|
|
82
|
+
|
|
83
|
+
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
|
84
|
+
return False
|
|
85
|
+
|
|
86
|
+
monkeypatch.setattr(
|
|
87
|
+
"ai_review.services.artifacts.service.aiofiles.open",
|
|
88
|
+
lambda *args, **kwargs: BrokenAsyncFile()
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
result = await artifacts_service.save_artifact(Path("/fake/path.json"), "data")
|
|
92
|
+
assert result is None
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import hashlib
|
|
2
|
+
import re
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from ai_review.services.artifacts.tools import make_artifact_id
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@pytest.mark.parametrize("text", ["hello", "some longer text", ""])
|
|
10
|
+
def test_make_artifact_id_format_and_sha(text: str):
|
|
11
|
+
"""Checks that the function returns a valid artifact ID format and correct SHA prefix."""
|
|
12
|
+
artifact_id = make_artifact_id(text)
|
|
13
|
+
|
|
14
|
+
pattern = r"^\d{4}\.\d{2}\.\d{2}_\d{2}-\d{2}-\d{2}_[0-9a-f]{8}$"
|
|
15
|
+
assert re.match(pattern, artifact_id), f"Invalid format: {artifact_id}"
|
|
16
|
+
|
|
17
|
+
expected_sha = hashlib.sha1(text.encode()).hexdigest()[:8]
|
|
18
|
+
assert artifact_id.endswith(expected_sha)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_make_artifact_id_is_deterministic_for_same_input():
|
|
22
|
+
"""Checks that the SHA part is deterministic (identical for the same input)."""
|
|
23
|
+
sha1 = hashlib.sha1("repeatable".encode()).hexdigest()[:8]
|
|
24
|
+
artifact_id1 = make_artifact_id("repeatable")
|
|
25
|
+
artifact_id2 = make_artifact_id("repeatable")
|
|
26
|
+
|
|
27
|
+
assert artifact_id1.split("_")[2] == sha1
|
|
28
|
+
assert artifact_id2.split("_")[2] == sha1
|
|
File without changes
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "xai-review"
|
|
7
7
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
8
|
-
version = "0.
|
|
8
|
+
version = "0.33.0"
|
|
9
9
|
license = { text = "Apache-2.0" }
|
|
10
10
|
authors = [
|
|
11
11
|
{ name = "Nikita Filonov", email = "nikita.filonov@example.com" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xai-review
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.33.0
|
|
4
4
|
Summary: AI-powered code review tool
|
|
5
5
|
Author-email: Nikita Filonov <nikita.filonov@example.com>
|
|
6
6
|
Maintainer-email: Nikita Filonov <nikita.filonov@example.com>
|
|
@@ -220,7 +220,7 @@ jobs:
|
|
|
220
220
|
with:
|
|
221
221
|
fetch-depth: 0
|
|
222
222
|
|
|
223
|
-
- uses: Nikita-Filonov/ai-review@v0.
|
|
223
|
+
- uses: Nikita-Filonov/ai-review@v0.33.0
|
|
224
224
|
with:
|
|
225
225
|
review-command: ${{ inputs.review-command }}
|
|
226
226
|
env:
|
|
@@ -311,6 +311,9 @@ ai_review/tests/suites/libs/llm/test_output_json_parser.py
|
|
|
311
311
|
ai_review/tests/suites/libs/template/__init__.py
|
|
312
312
|
ai_review/tests/suites/libs/template/test_render.py
|
|
313
313
|
ai_review/tests/suites/services/__init__.py
|
|
314
|
+
ai_review/tests/suites/services/artifacts/__init__.py
|
|
315
|
+
ai_review/tests/suites/services/artifacts/test_service.py
|
|
316
|
+
ai_review/tests/suites/services/artifacts/test_tools.py
|
|
314
317
|
ai_review/tests/suites/services/cost/__init__.py
|
|
315
318
|
ai_review/tests/suites/services/cost/test_schema.py
|
|
316
319
|
ai_review/tests/suites/services/cost/test_service.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xai_review-0.32.0 → xai_review-0.33.0}/ai_review/clients/bitbucket/pr/schema/pull_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|