overkill 0.5.0__tar.gz → 0.5.2__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.
- {overkill-0.5.0 → overkill-0.5.2}/PKG-INFO +8 -1
- {overkill-0.5.0 → overkill-0.5.2}/README.md +7 -0
- {overkill-0.5.0 → overkill-0.5.2}/pyproject.toml +1 -1
- overkill-0.5.2/src/mr_overkill/__init__.py +8 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/cli.py +2 -1
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/models.py +3 -6
- {overkill-0.5.0 → overkill-0.5.2}/uv.lock +1 -1
- overkill-0.5.0/src/mr_overkill/__init__.py +0 -3
- {overkill-0.5.0 → overkill-0.5.2}/.github/workflows/publish.yml +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/.github/workflows/test.yml +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/.gitignore +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/.overkillrc.example +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/.python-version +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/.refactorsuggestrc.example +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/AGENTS.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/CLAUDE.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/GEMINI.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/LICENSE +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/install.sh +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-fix-execute.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-fix.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-refactor-fix-execute.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-refactor-fix.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-refactor-full.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-refactor-layer.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-refactor-micro.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-refactor-module.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-review.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/claude-self-review.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/codex-refactor-full.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/codex-refactor-layer.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/codex-refactor-micro.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/codex-refactor-module.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/codex-review.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/gemini-refactor-full.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/gemini-refactor-layer.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/gemini-refactor-micro.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/gemini-refactor-module.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/active/gemini-review.prompt.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/reference/claude-code-review-plugin.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/reference/claude-security-review.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/prompts/reference/codex-review-original.md +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/__main__.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/agents.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/budget/__init__.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/budget/claude.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/budget/codex.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/budget/gemini.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/budget_report.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/classify.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/data/__init__.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/git_ops.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/init.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/json_extract.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/loop_engine.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/refactor_suggest.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/reporting.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/resume.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/retry.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/review_loop.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/self_review.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/time_utils.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/src/mr_overkill/two_step_fix.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/__init__.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/conftest.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_agents.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_budget_claude.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_budget_codex.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_budget_gemini.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_budget_policy.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_budget_report.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_classify.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_cli.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_git_ops.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_init.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_integration.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_json_extract.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_loop_engine.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_refactor_suggest.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_reporting.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_resume.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_retry.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_review_loop.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_self_review.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_time_utils.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/tests/test_two_step_fix.py +0 -0
- {overkill-0.5.0 → overkill-0.5.2}/uninstall.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: overkill
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: AI-powered code review loop — automates Codex review + Claude fix cycles
|
|
5
5
|
Project-URL: Repository, https://github.com/modocai/mr-overkill
|
|
6
6
|
Project-URL: Issues, https://github.com/modocai/mr-overkill/issues
|
|
@@ -50,6 +50,13 @@ This tool is designed to:
|
|
|
50
50
|
# Install the package
|
|
51
51
|
pip install overkill # or: uv tool install overkill / pipx install overkill
|
|
52
52
|
|
|
53
|
+
# As a project dependency (uv)
|
|
54
|
+
uv add overkill
|
|
55
|
+
|
|
56
|
+
# Upgrade
|
|
57
|
+
pip install --upgrade overkill
|
|
58
|
+
uv lock --upgrade-package overkill # uv projects
|
|
59
|
+
|
|
53
60
|
# Initialize your project
|
|
54
61
|
overkill init /path/to/your-project
|
|
55
62
|
```
|
|
@@ -27,6 +27,13 @@ This tool is designed to:
|
|
|
27
27
|
# Install the package
|
|
28
28
|
pip install overkill # or: uv tool install overkill / pipx install overkill
|
|
29
29
|
|
|
30
|
+
# As a project dependency (uv)
|
|
31
|
+
uv add overkill
|
|
32
|
+
|
|
33
|
+
# Upgrade
|
|
34
|
+
pip install --upgrade overkill
|
|
35
|
+
uv lock --upgrade-package overkill # uv projects
|
|
36
|
+
|
|
30
37
|
# Initialize your project
|
|
31
38
|
overkill init /path/to/your-project
|
|
32
39
|
```
|
|
@@ -125,7 +125,8 @@ def _load_rc_file(rc_name: str) -> dict[str, str]:
|
|
|
125
125
|
continue
|
|
126
126
|
m = kv_re.match(line)
|
|
127
127
|
if m and m.group(1) in allowed_keys:
|
|
128
|
-
|
|
128
|
+
raw = m.group(2) or m.group(3) or m.group(4) or ""
|
|
129
|
+
key, val = m.group(1), raw.strip()
|
|
129
130
|
if key in boolean_keys and val.lower() not in ("true", "false"):
|
|
130
131
|
msg = f"{rc_path.name}: {key} must be 'true' or 'false', got '{val}'."
|
|
131
132
|
raise SystemExit(f"Error: {msg}")
|
|
@@ -8,7 +8,7 @@ in Wave 2 (retry, two_step_fix, loop_engine) without mutual imports.
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
10
|
from dataclasses import dataclass, field
|
|
11
|
-
from enum import
|
|
11
|
+
from enum import StrEnum
|
|
12
12
|
from pathlib import Path
|
|
13
13
|
from typing import Protocol
|
|
14
14
|
|
|
@@ -22,11 +22,8 @@ class BudgetTimeoutError(Exception):
|
|
|
22
22
|
# ── Enums ────────────────────────────────────────────────────────────
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
class _StrEnum(
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
def __str__(self) -> str:
|
|
29
|
-
return self.value
|
|
25
|
+
class _StrEnum(StrEnum):
|
|
26
|
+
"""Thin base so all project enums share a single parent."""
|
|
30
27
|
|
|
31
28
|
|
|
32
29
|
class ErrorClass(_StrEnum):
|
|
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
|