mini-swe-agent 1.1.0__tar.gz → 1.1.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.
Files changed (52) hide show
  1. {mini_swe_agent-1.1.0/src/mini_swe_agent.egg-info → mini_swe_agent-1.1.2}/PKG-INFO +37 -19
  2. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/README.md +34 -16
  3. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/pyproject.toml +3 -3
  4. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2/src/mini_swe_agent.egg-info}/PKG-INFO +37 -19
  5. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/mini_swe_agent.egg-info/SOURCES.txt +2 -3
  6. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/__init__.py +3 -3
  7. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/agents/interactive_textual.py +1 -3
  8. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/config/README.md +1 -1
  9. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/models/__init__.py +1 -1
  10. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/extra/config.py +3 -0
  11. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/inspector.py +1 -1
  12. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/mini.py +3 -6
  13. mini_swe_agent-1.1.0/src/minisweagent/config/__pycache__/__init__.cpython-313.pyc +0 -0
  14. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/LICENSE.md +0 -0
  15. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/setup.cfg +0 -0
  16. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/mini_swe_agent.egg-info/dependency_links.txt +0 -0
  17. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/mini_swe_agent.egg-info/entry_points.txt +0 -0
  18. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/mini_swe_agent.egg-info/requires.txt +0 -0
  19. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/mini_swe_agent.egg-info/top_level.txt +0 -0
  20. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/__main__.py +0 -0
  21. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/agents/__init__.py +0 -0
  22. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/agents/default.py +0 -0
  23. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/agents/interactive.py +0 -0
  24. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/config/__init__.py +0 -0
  25. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/config/default.yaml +0 -0
  26. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/config/extra/__init__.py +0 -0
  27. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/config/extra/swebench.yaml +0 -0
  28. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/config/github_issue.yaml +0 -0
  29. /mini_swe_agent-1.1.0/src/minisweagent/config/local2.tcss → /mini_swe_agent-1.1.2/src/minisweagent/config/mini.tcss +0 -0
  30. /mini_swe_agent-1.1.0/src/minisweagent/config/local.yaml → /mini_swe_agent-1.1.2/src/minisweagent/config/mini.yaml +0 -0
  31. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/environments/__init__.py +0 -0
  32. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/environments/docker.py +0 -0
  33. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/environments/extra/__init__.py +0 -0
  34. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/environments/extra/swerex_docker.py +0 -0
  35. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/environments/local.py +0 -0
  36. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/environments/singularity.py +0 -0
  37. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/models/anthropic.py +0 -0
  38. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/models/litellm_model.py +0 -0
  39. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/models/test_models.py +0 -0
  40. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/models/utils/cache_control.py +0 -0
  41. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/models/utils/key_per_thread.py +0 -0
  42. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/py.typed +0 -0
  43. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/__init__.py +0 -0
  44. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/extra/__init__.py +0 -0
  45. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/extra/swebench.py +0 -0
  46. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/extra/swebench_single.py +0 -0
  47. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/extra/utils/batch_progress.py +0 -0
  48. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/github_issue.py +0 -0
  49. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/hello_world.py +0 -0
  50. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/mini_extra.py +0 -0
  51. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/utils/__init__.py +0 -0
  52. {mini_swe_agent-1.1.0 → mini_swe_agent-1.1.2}/src/minisweagent/run/utils/save.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mini-swe-agent
3
- Version: 1.1.0
3
+ Version: 1.1.2
4
4
  Summary: Nano SWE Agent - A simple AI software engineering agent
5
5
  Author-email: Kilian Lieret <kilian.lieret@posteo.de>, "Carlos E. Jimenez" <carlosej@princeton.edu>
6
6
  License: MIT License
@@ -32,9 +32,9 @@ Classifier: Development Status :: 3 - Alpha
32
32
  Classifier: Operating System :: OS Independent
33
33
  Classifier: Intended Audience :: Developers
34
34
  Classifier: License :: OSI Approved :: MIT License
35
- Classifier: Programming Language :: Python :: 3.11
35
+ Classifier: Programming Language :: Python :: 3.10
36
36
  Classifier: Programming Language :: Python :: 3 :: Only
37
- Requires-Python: >=3.11
37
+ Requires-Python: >=3.10
38
38
  Description-Content-Type: text/markdown
39
39
  License-File: LICENSE.md
40
40
  Requires-Dist: pyyaml
@@ -67,36 +67,34 @@ Requires-Dist: mkdocs-glightbox; extra == "dev"
67
67
  Dynamic: license-file
68
68
 
69
69
  <div align="center">
70
-
71
70
  <a href="https://mini-swe-agent.com/latest/"><img src="https://github.com/SWE-agent/mini-swe-agent/raw/main/docs/assets/mini-swe-agent-banner.svg" alt="mini-swe-agent banner" style="height: 7em"/></a>
71
+ </div>
72
72
 
73
73
  <h1>The 100 line AI agent that solves GitHub issues & more</h1>
74
74
 
75
75
  [![Docs](https://img.shields.io/badge/Docs-green?style=for-the-badge&logo=materialformkdocs&logoColor=white)](https://mini-swe-agent.com/latest/)
76
76
  [![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)](https://join.slack.com/t/swe-bench/shared_invite/zt-36pj9bu5s-o3_yXPZbaH2wVnxnss1EkQ)
77
- ![PyPI - Version](https://img.shields.io/pypi/v/mini-swe-agent?style=for-the-badge&logo=python&logoColor=white&labelColor=black&color=deeppink)
77
+ [![PyPI - Version](https://img.shields.io/pypi/v/mini-swe-agent?style=for-the-badge&logo=python&logoColor=white&labelColor=black&color=deeppink)](https://pypi.org/project/mini-swe-agent/)
78
78
 
79
- </div>
80
-
81
- In 2024, [SWE-bench](https://swebench.com) & [SWE-agent](https://swe-agent.com) helped kickstart the agentic AI for software revolution.
79
+ In 2024, [SWE-bench](https://github.com/swe-bench/SWE-bench) & [SWE-agent](https://github.com/swe-agent/swe-agent) helped kickstart the agentic AI for software revolution.
82
80
 
83
81
  We now ask: **What if SWE-agent was 100x smaller, and still worked nearly as well?**
84
82
 
85
83
  `mini` is for
86
84
 
87
- - 🧪 **Researchers** who want to **benchmark, fine-tune or RL** without assumptions, bloat, or surprises
88
- - 🧑‍💻 **Hackers & power users** who like their tools like their scripts: **short, sharp, and readable**
89
- - 🐳 **Engineers** who want something **trivial to sandbox & to deploy anywhere**
85
+ - **Researchers** who want to **benchmark, fine-tune or RL** without assumptions, bloat, or surprises
86
+ - **Hackers & power users** who like their tools like their scripts: **short, sharp, and readable**
87
+ - **Engineers** who want something **trivial to sandbox & to deploy anywhere**
90
88
 
91
89
  Here's some details:
92
90
 
93
- - **🐜 Minimal**: Just [100 lines of python](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/agents/default.py) (+100 total for [env](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/environments/local.py),
91
+ - **Minimal**: Just [100 lines of python](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/agents/default.py) (+100 total for [env](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/environments/local.py),
94
92
  [model](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/models/litellm_model.py), [script](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/run/hello_world.py)) — no fancy dependencies!
95
- - **💪 Powerful:** Resolves 65% of GitHub issues in the [SWE-bench verified benchmark](https://www.swebench.com/).
96
- - **🤗 Friendly:** Comes with **two convenient UIs** that will turn this into your daily dev swiss army knife!
97
- - **🍀 Environments:** In addition to local envs, you can use **docker**, **podman**, **singularity**, **apptainer**, and more
98
- - **🧪 Tested:** [![Codecov](https://img.shields.io/codecov/c/github/swe-agent/mini-swe-agent?style=flat-square)](https://codecov.io/gh/SWE-agent/mini-swe-agent)
99
- - **🎓 Cutting edge:** Built by the Princeton & Stanford team behind [SWE-bench](https://swebench.com) and [SWE-agent](https://swe-agent.com).
93
+ - **Powerful:** Resolves 65% of GitHub issues in the [SWE-bench verified benchmark](https://www.swebench.com/) (with Claude Sonnet 4).
94
+ - **Friendly:** Comes with **two convenient UIs** that will turn this into your daily dev swiss army knife!
95
+ - **Environments:** In addition to local envs, you can use **docker**, **podman**, **singularity**, **apptainer**, and more
96
+ - **Tested:** [![Codecov](https://img.shields.io/codecov/c/github/swe-agent/mini-swe-agent?style=flat-square)](https://codecov.io/gh/SWE-agent/mini-swe-agent)
97
+ - **Cutting edge:** Built by the Princeton & Stanford team behind [SWE-bench](https://swebench.com) and [SWE-agent](https://swe-agent.com).
100
98
 
101
99
  <details>
102
100
 
@@ -240,11 +238,13 @@ agent.run("Write a sudoku game")
240
238
  </tr>
241
239
  </table>
242
240
 
243
- ## 🔥 Let's get started!
241
+ ## Let's get started!
244
242
 
245
243
  Install + run in virtual environment
246
244
 
247
245
  ```bash
246
+ pip install uv && uvx mini-swe-agent [-v]
247
+ # or
248
248
  pip install pipx && pipx ensurepath && pipx run mini-swe-agent [-v]
249
249
  ```
250
250
 
@@ -272,7 +272,25 @@ Read more in our [documentation](https://mini-swe-agent.com/latest/):
272
272
  * [FAQ](https://mini-swe-agent.com/latest/faq/)
273
273
  * [Contribute!](https://mini-swe-agent.com/latest/contributing/)
274
274
 
275
- ## 👀 More agentic AI
275
+ ## Bottom line
276
+
277
+ If you found this work helpful, please consider citing
278
+
279
+ <details>
280
+ <summary> SWE-agent citation</summary>
281
+
282
+ ```bibtex
283
+ @inproceedings{yang2024sweagent,
284
+ title={{SWE}-agent: Agent-Computer Interfaces Enable Automated Software Engineering},
285
+ author={John Yang and Carlos E Jimenez and Alexander Wettig and Kilian Lieret and Shunyu Yao and Karthik R Narasimhan and Ofir Press},
286
+ booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},
287
+ year={2024},
288
+ url={https://arxiv.org/abs/2405.15793}
289
+ }
290
+ ```
291
+ </details>
292
+
293
+ More agentic AI:
276
294
 
277
295
  <div align="center">
278
296
  <a href="https://github.com/SWE-agent/SWE-agent"><img src="https://github.com/SWE-agent/mini-swe-agent/raw/main/docs/assets/sweagent_logo_text_below.svg" alt="SWE-agent" height="120px"></a>
@@ -1,34 +1,32 @@
1
1
  <div align="center">
2
-
3
2
  <a href="https://mini-swe-agent.com/latest/"><img src="https://github.com/SWE-agent/mini-swe-agent/raw/main/docs/assets/mini-swe-agent-banner.svg" alt="mini-swe-agent banner" style="height: 7em"/></a>
3
+ </div>
4
4
 
5
5
  <h1>The 100 line AI agent that solves GitHub issues & more</h1>
6
6
 
7
7
  [![Docs](https://img.shields.io/badge/Docs-green?style=for-the-badge&logo=materialformkdocs&logoColor=white)](https://mini-swe-agent.com/latest/)
8
8
  [![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)](https://join.slack.com/t/swe-bench/shared_invite/zt-36pj9bu5s-o3_yXPZbaH2wVnxnss1EkQ)
9
- ![PyPI - Version](https://img.shields.io/pypi/v/mini-swe-agent?style=for-the-badge&logo=python&logoColor=white&labelColor=black&color=deeppink)
9
+ [![PyPI - Version](https://img.shields.io/pypi/v/mini-swe-agent?style=for-the-badge&logo=python&logoColor=white&labelColor=black&color=deeppink)](https://pypi.org/project/mini-swe-agent/)
10
10
 
11
- </div>
12
-
13
- In 2024, [SWE-bench](https://swebench.com) & [SWE-agent](https://swe-agent.com) helped kickstart the agentic AI for software revolution.
11
+ In 2024, [SWE-bench](https://github.com/swe-bench/SWE-bench) & [SWE-agent](https://github.com/swe-agent/swe-agent) helped kickstart the agentic AI for software revolution.
14
12
 
15
13
  We now ask: **What if SWE-agent was 100x smaller, and still worked nearly as well?**
16
14
 
17
15
  `mini` is for
18
16
 
19
- - 🧪 **Researchers** who want to **benchmark, fine-tune or RL** without assumptions, bloat, or surprises
20
- - 🧑‍💻 **Hackers & power users** who like their tools like their scripts: **short, sharp, and readable**
21
- - 🐳 **Engineers** who want something **trivial to sandbox & to deploy anywhere**
17
+ - **Researchers** who want to **benchmark, fine-tune or RL** without assumptions, bloat, or surprises
18
+ - **Hackers & power users** who like their tools like their scripts: **short, sharp, and readable**
19
+ - **Engineers** who want something **trivial to sandbox & to deploy anywhere**
22
20
 
23
21
  Here's some details:
24
22
 
25
- - **🐜 Minimal**: Just [100 lines of python](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/agents/default.py) (+100 total for [env](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/environments/local.py),
23
+ - **Minimal**: Just [100 lines of python](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/agents/default.py) (+100 total for [env](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/environments/local.py),
26
24
  [model](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/models/litellm_model.py), [script](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/run/hello_world.py)) — no fancy dependencies!
27
- - **💪 Powerful:** Resolves 65% of GitHub issues in the [SWE-bench verified benchmark](https://www.swebench.com/).
28
- - **🤗 Friendly:** Comes with **two convenient UIs** that will turn this into your daily dev swiss army knife!
29
- - **🍀 Environments:** In addition to local envs, you can use **docker**, **podman**, **singularity**, **apptainer**, and more
30
- - **🧪 Tested:** [![Codecov](https://img.shields.io/codecov/c/github/swe-agent/mini-swe-agent?style=flat-square)](https://codecov.io/gh/SWE-agent/mini-swe-agent)
31
- - **🎓 Cutting edge:** Built by the Princeton & Stanford team behind [SWE-bench](https://swebench.com) and [SWE-agent](https://swe-agent.com).
25
+ - **Powerful:** Resolves 65% of GitHub issues in the [SWE-bench verified benchmark](https://www.swebench.com/) (with Claude Sonnet 4).
26
+ - **Friendly:** Comes with **two convenient UIs** that will turn this into your daily dev swiss army knife!
27
+ - **Environments:** In addition to local envs, you can use **docker**, **podman**, **singularity**, **apptainer**, and more
28
+ - **Tested:** [![Codecov](https://img.shields.io/codecov/c/github/swe-agent/mini-swe-agent?style=flat-square)](https://codecov.io/gh/SWE-agent/mini-swe-agent)
29
+ - **Cutting edge:** Built by the Princeton & Stanford team behind [SWE-bench](https://swebench.com) and [SWE-agent](https://swe-agent.com).
32
30
 
33
31
  <details>
34
32
 
@@ -172,11 +170,13 @@ agent.run("Write a sudoku game")
172
170
  </tr>
173
171
  </table>
174
172
 
175
- ## 🔥 Let's get started!
173
+ ## Let's get started!
176
174
 
177
175
  Install + run in virtual environment
178
176
 
179
177
  ```bash
178
+ pip install uv && uvx mini-swe-agent [-v]
179
+ # or
180
180
  pip install pipx && pipx ensurepath && pipx run mini-swe-agent [-v]
181
181
  ```
182
182
 
@@ -204,7 +204,25 @@ Read more in our [documentation](https://mini-swe-agent.com/latest/):
204
204
  * [FAQ](https://mini-swe-agent.com/latest/faq/)
205
205
  * [Contribute!](https://mini-swe-agent.com/latest/contributing/)
206
206
 
207
- ## 👀 More agentic AI
207
+ ## Bottom line
208
+
209
+ If you found this work helpful, please consider citing
210
+
211
+ <details>
212
+ <summary> SWE-agent citation</summary>
213
+
214
+ ```bibtex
215
+ @inproceedings{yang2024sweagent,
216
+ title={{SWE}-agent: Agent-Computer Interfaces Enable Automated Software Engineering},
217
+ author={John Yang and Carlos E Jimenez and Alexander Wettig and Kilian Lieret and Shunyu Yao and Karthik R Narasimhan and Ofir Press},
218
+ booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},
219
+ year={2024},
220
+ url={https://arxiv.org/abs/2405.15793}
221
+ }
222
+ ```
223
+ </details>
224
+
225
+ More agentic AI:
208
226
 
209
227
  <div align="center">
210
228
  <a href="https://github.com/SWE-agent/SWE-agent"><img src="https://github.com/SWE-agent/mini-swe-agent/raw/main/docs/assets/sweagent_logo_text_below.svg" alt="SWE-agent" height="120px"></a>
@@ -8,7 +8,7 @@ name = "mini-swe-agent"
8
8
  dynamic = ["version"]
9
9
  description = "Nano SWE Agent - A simple AI software engineering agent"
10
10
  readme = "README.md"
11
- requires-python = ">=3.11"
11
+ requires-python = ">=3.10"
12
12
  license = {file = "LICENSE.md"}
13
13
  keywords = ["nlp", "agents", "code"]
14
14
  authors = [
@@ -26,7 +26,7 @@ classifiers = [
26
26
  "Intended Audience :: Developers",
27
27
  # Pick your license as you wish
28
28
  "License :: OSI Approved :: MIT License",
29
- "Programming Language :: Python :: 3.11",
29
+ "Programming Language :: Python :: 3.10",
30
30
  "Programming Language :: Python :: 3 :: Only",
31
31
  ]
32
32
 
@@ -127,7 +127,7 @@ exclude = [
127
127
  line-length = 120
128
128
  indent-width = 4
129
129
 
130
- target-version = "py311"
130
+ target-version = "py310"
131
131
 
132
132
  [tool.ruff.lint]
133
133
  # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mini-swe-agent
3
- Version: 1.1.0
3
+ Version: 1.1.2
4
4
  Summary: Nano SWE Agent - A simple AI software engineering agent
5
5
  Author-email: Kilian Lieret <kilian.lieret@posteo.de>, "Carlos E. Jimenez" <carlosej@princeton.edu>
6
6
  License: MIT License
@@ -32,9 +32,9 @@ Classifier: Development Status :: 3 - Alpha
32
32
  Classifier: Operating System :: OS Independent
33
33
  Classifier: Intended Audience :: Developers
34
34
  Classifier: License :: OSI Approved :: MIT License
35
- Classifier: Programming Language :: Python :: 3.11
35
+ Classifier: Programming Language :: Python :: 3.10
36
36
  Classifier: Programming Language :: Python :: 3 :: Only
37
- Requires-Python: >=3.11
37
+ Requires-Python: >=3.10
38
38
  Description-Content-Type: text/markdown
39
39
  License-File: LICENSE.md
40
40
  Requires-Dist: pyyaml
@@ -67,36 +67,34 @@ Requires-Dist: mkdocs-glightbox; extra == "dev"
67
67
  Dynamic: license-file
68
68
 
69
69
  <div align="center">
70
-
71
70
  <a href="https://mini-swe-agent.com/latest/"><img src="https://github.com/SWE-agent/mini-swe-agent/raw/main/docs/assets/mini-swe-agent-banner.svg" alt="mini-swe-agent banner" style="height: 7em"/></a>
71
+ </div>
72
72
 
73
73
  <h1>The 100 line AI agent that solves GitHub issues & more</h1>
74
74
 
75
75
  [![Docs](https://img.shields.io/badge/Docs-green?style=for-the-badge&logo=materialformkdocs&logoColor=white)](https://mini-swe-agent.com/latest/)
76
76
  [![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)](https://join.slack.com/t/swe-bench/shared_invite/zt-36pj9bu5s-o3_yXPZbaH2wVnxnss1EkQ)
77
- ![PyPI - Version](https://img.shields.io/pypi/v/mini-swe-agent?style=for-the-badge&logo=python&logoColor=white&labelColor=black&color=deeppink)
77
+ [![PyPI - Version](https://img.shields.io/pypi/v/mini-swe-agent?style=for-the-badge&logo=python&logoColor=white&labelColor=black&color=deeppink)](https://pypi.org/project/mini-swe-agent/)
78
78
 
79
- </div>
80
-
81
- In 2024, [SWE-bench](https://swebench.com) & [SWE-agent](https://swe-agent.com) helped kickstart the agentic AI for software revolution.
79
+ In 2024, [SWE-bench](https://github.com/swe-bench/SWE-bench) & [SWE-agent](https://github.com/swe-agent/swe-agent) helped kickstart the agentic AI for software revolution.
82
80
 
83
81
  We now ask: **What if SWE-agent was 100x smaller, and still worked nearly as well?**
84
82
 
85
83
  `mini` is for
86
84
 
87
- - 🧪 **Researchers** who want to **benchmark, fine-tune or RL** without assumptions, bloat, or surprises
88
- - 🧑‍💻 **Hackers & power users** who like their tools like their scripts: **short, sharp, and readable**
89
- - 🐳 **Engineers** who want something **trivial to sandbox & to deploy anywhere**
85
+ - **Researchers** who want to **benchmark, fine-tune or RL** without assumptions, bloat, or surprises
86
+ - **Hackers & power users** who like their tools like their scripts: **short, sharp, and readable**
87
+ - **Engineers** who want something **trivial to sandbox & to deploy anywhere**
90
88
 
91
89
  Here's some details:
92
90
 
93
- - **🐜 Minimal**: Just [100 lines of python](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/agents/default.py) (+100 total for [env](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/environments/local.py),
91
+ - **Minimal**: Just [100 lines of python](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/agents/default.py) (+100 total for [env](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/environments/local.py),
94
92
  [model](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/models/litellm_model.py), [script](https://github.com/SWE-agent/mini-swe-agent/blob/main/src/minisweagent/run/hello_world.py)) — no fancy dependencies!
95
- - **💪 Powerful:** Resolves 65% of GitHub issues in the [SWE-bench verified benchmark](https://www.swebench.com/).
96
- - **🤗 Friendly:** Comes with **two convenient UIs** that will turn this into your daily dev swiss army knife!
97
- - **🍀 Environments:** In addition to local envs, you can use **docker**, **podman**, **singularity**, **apptainer**, and more
98
- - **🧪 Tested:** [![Codecov](https://img.shields.io/codecov/c/github/swe-agent/mini-swe-agent?style=flat-square)](https://codecov.io/gh/SWE-agent/mini-swe-agent)
99
- - **🎓 Cutting edge:** Built by the Princeton & Stanford team behind [SWE-bench](https://swebench.com) and [SWE-agent](https://swe-agent.com).
93
+ - **Powerful:** Resolves 65% of GitHub issues in the [SWE-bench verified benchmark](https://www.swebench.com/) (with Claude Sonnet 4).
94
+ - **Friendly:** Comes with **two convenient UIs** that will turn this into your daily dev swiss army knife!
95
+ - **Environments:** In addition to local envs, you can use **docker**, **podman**, **singularity**, **apptainer**, and more
96
+ - **Tested:** [![Codecov](https://img.shields.io/codecov/c/github/swe-agent/mini-swe-agent?style=flat-square)](https://codecov.io/gh/SWE-agent/mini-swe-agent)
97
+ - **Cutting edge:** Built by the Princeton & Stanford team behind [SWE-bench](https://swebench.com) and [SWE-agent](https://swe-agent.com).
100
98
 
101
99
  <details>
102
100
 
@@ -240,11 +238,13 @@ agent.run("Write a sudoku game")
240
238
  </tr>
241
239
  </table>
242
240
 
243
- ## 🔥 Let's get started!
241
+ ## Let's get started!
244
242
 
245
243
  Install + run in virtual environment
246
244
 
247
245
  ```bash
246
+ pip install uv && uvx mini-swe-agent [-v]
247
+ # or
248
248
  pip install pipx && pipx ensurepath && pipx run mini-swe-agent [-v]
249
249
  ```
250
250
 
@@ -272,7 +272,25 @@ Read more in our [documentation](https://mini-swe-agent.com/latest/):
272
272
  * [FAQ](https://mini-swe-agent.com/latest/faq/)
273
273
  * [Contribute!](https://mini-swe-agent.com/latest/contributing/)
274
274
 
275
- ## 👀 More agentic AI
275
+ ## Bottom line
276
+
277
+ If you found this work helpful, please consider citing
278
+
279
+ <details>
280
+ <summary> SWE-agent citation</summary>
281
+
282
+ ```bibtex
283
+ @inproceedings{yang2024sweagent,
284
+ title={{SWE}-agent: Agent-Computer Interfaces Enable Automated Software Engineering},
285
+ author={John Yang and Carlos E Jimenez and Alexander Wettig and Kilian Lieret and Shunyu Yao and Karthik R Narasimhan and Ofir Press},
286
+ booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},
287
+ year={2024},
288
+ url={https://arxiv.org/abs/2405.15793}
289
+ }
290
+ ```
291
+ </details>
292
+
293
+ More agentic AI:
276
294
 
277
295
  <div align="center">
278
296
  <a href="https://github.com/SWE-agent/SWE-agent"><img src="https://github.com/SWE-agent/mini-swe-agent/raw/main/docs/assets/sweagent_logo_text_below.svg" alt="SWE-agent" height="120px"></a>
@@ -18,9 +18,8 @@ src/minisweagent/config/README.md
18
18
  src/minisweagent/config/__init__.py
19
19
  src/minisweagent/config/default.yaml
20
20
  src/minisweagent/config/github_issue.yaml
21
- src/minisweagent/config/local.yaml
22
- src/minisweagent/config/local2.tcss
23
- src/minisweagent/config/__pycache__/__init__.cpython-313.pyc
21
+ src/minisweagent/config/mini.tcss
22
+ src/minisweagent/config/mini.yaml
24
23
  src/minisweagent/config/extra/__init__.py
25
24
  src/minisweagent/config/extra/swebench.yaml
26
25
  src/minisweagent/environments/__init__.py
@@ -8,7 +8,7 @@ This file provides:
8
8
  unless you want the static type checking.
9
9
  """
10
10
 
11
- __version__ = "1.1.0"
11
+ __version__ = "1.1.2"
12
12
 
13
13
  import os
14
14
  from pathlib import Path
@@ -20,11 +20,11 @@ from rich.console import Console
20
20
 
21
21
  package_dir = Path(__file__).resolve().parent
22
22
 
23
- global_config_dir = Path(os.getenv("MINI_SWE_AGENT_GLOBAL_CONFIG_DIR") or user_config_dir("mini-swe-agent"))
23
+ global_config_dir = Path(os.getenv("MSWEA_GLOBAL_CONFIG_DIR") or user_config_dir("mini-swe-agent"))
24
24
  global_config_dir.mkdir(parents=True, exist_ok=True)
25
25
  global_config_file = Path(global_config_dir) / ".env"
26
26
 
27
- if not os.getenv("MINI_SWE_AGENT_SILENT_STARTUP"):
27
+ if not os.getenv("MSWEA_SILENT_STARTUP"):
28
28
  Console().print(
29
29
  f"👋 This is [bold green]mini-swe-agent[/bold green] version [bold green]{__version__}[/bold green].\n"
30
30
  f"Your config is stored in [bold green]'{global_config_file}'[/bold green]"
@@ -174,9 +174,7 @@ class AgentApp(App):
174
174
  ]
175
175
 
176
176
  def __init__(self, model, env, task: str, **kwargs):
177
- css_path = os.environ.get(
178
- "MSWEA_LOCAL2_STYLE_PATH", str(Path(__file__).parent.parent / "config" / "local2.tcss")
179
- )
177
+ css_path = os.environ.get("MSWEA_MINI_STYLE_PATH", str(Path(__file__).parent.parent / "config" / "mini.tcss"))
180
178
  self.__class__.CSS = Path(css_path).read_text()
181
179
  super().__init__()
182
180
  self.agent_state = "UNINITIALIZED"
@@ -1,6 +1,6 @@
1
1
  # Configs
2
2
 
3
- * `local.yaml` - Default config for `mini`/`agents/interactive.py` or `mini -v`/`agents/interactive_textual.py` agent.
3
+ * `mini.yaml` - Default config for `mini`/`agents/interactive.py` or `mini -v`/`agents/interactive_textual.py` agent.
4
4
  * `default.yaml` - Default config for the `default.py` agent.
5
5
  * `github_issue.yaml` - Config for the `run/github_issue.py` entry point.
6
6
 
@@ -18,7 +18,7 @@ class GlobalModelStats:
18
18
  self._lock = threading.Lock()
19
19
  self.cost_limit = float(os.getenv("MSWEA_GLOBAL_COST_LIMIT", "0"))
20
20
  self.call_limit = int(os.getenv("MSWEA_GLOBAL_CALL_LIMIT", "0"))
21
- if (self.cost_limit > 0 or self.call_limit > 0) and not os.getenv("MINI_SWE_AGENT_SILENT_STARTUP"):
21
+ if (self.cost_limit > 0 or self.call_limit > 0) and not os.getenv("MSWEA_SILENT_STARTUP"):
22
22
  print(f"Global cost/call limit: ${self.cost_limit:.4f} / {self.call_limit}")
23
23
 
24
24
  def add(self, cost: float) -> None:
@@ -58,6 +58,9 @@ def setup():
58
58
  ).strip()
59
59
  if default_model:
60
60
  set_key(global_config_file, "MSWEA_MODEL_NAME", default_model)
61
+ console.print(
62
+ "[bold yellow]If you already have your API keys set as environment variables, you can ignore the next question.[/bold yellow]"
63
+ )
61
64
  key_name = prompt("Enter your API key name (e.g., ANTHROPIC_API_KEY): ").strip()
62
65
  key_value = None
63
66
  if key_name:
@@ -38,7 +38,7 @@ class TrajectoryInspector(App):
38
38
 
39
39
  def __init__(self, trajectory_files: list[Path]):
40
40
  css_path = os.environ.get(
41
- "MSWEA_INSPECTOR_STYLE_PATH", str(Path(__file__).parent.parent / "config" / "local2.tcss")
41
+ "MSWEA_INSPECTOR_STYLE_PATH", str(Path(__file__).parent.parent / "config" / "mini.tcss")
42
42
  )
43
43
  self.__class__.CSS = Path(css_path).read_text()
44
44
 
@@ -32,7 +32,7 @@ from minisweagent.models import get_model
32
32
  from minisweagent.run.extra.config import configure_if_first_time
33
33
  from minisweagent.run.utils.save import save_traj
34
34
 
35
- DEFAULT_CONFIG = Path(os.getenv("MSWEA_LOCAL_CONFIG_PATH", builtin_config_dir / "local.yaml"))
35
+ DEFAULT_CONFIG = Path(os.getenv("MSWEA_MINI_CONFIG_PATH", builtin_config_dir / "mini.yaml"))
36
36
  console = Console(highlight=False)
37
37
  app = typer.Typer(rich_markup_mode="rich")
38
38
  prompt_session = PromptSession(history=FileHistory(global_config_dir / "mini_task_history.txt"))
@@ -48,8 +48,6 @@ def run_interactive(model: Model, env: Environment, agent_config: dict, task: st
48
48
  exit_status, result = None, None
49
49
  try:
50
50
  exit_status, result = agent.run(task)
51
- except KeyboardInterrupt:
52
- console.print("\n[bold red]KeyboardInterrupt -- goodbye[/bold red]")
53
51
  finally:
54
52
  if output:
55
53
  save_traj(agent, output, exit_status=exit_status, result=result)
@@ -65,10 +63,9 @@ def run_textual(model: Model, env: Environment, agent_config: dict, task: str, o
65
63
  )
66
64
  try:
67
65
  agent_app.run()
68
- except KeyboardInterrupt:
69
- typer.echo("\nKeyboardInterrupt -- goodbye")
70
66
  finally:
71
- save_traj(agent_app.agent, Path("traj.json"), exit_status=agent_app.exit_status, result=agent_app.result)
67
+ if output:
68
+ save_traj(agent_app.agent, output, exit_status=agent_app.exit_status, result=agent_app.result)
72
69
 
73
70
 
74
71
  @app.command(help=__doc__)
File without changes