mini-swe-agent 1.4.0__py3-none-any.whl → 1.4.2__py3-none-any.whl
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.
- {mini_swe_agent-1.4.0.dist-info → mini_swe_agent-1.4.2.dist-info}/METADATA +3 -3
- {mini_swe_agent-1.4.0.dist-info → mini_swe_agent-1.4.2.dist-info}/RECORD +12 -12
- minisweagent/__init__.py +1 -1
- minisweagent/agents/default.py +1 -1
- minisweagent/agents/interactive.py +5 -3
- minisweagent/agents/interactive_textual.py +9 -11
- minisweagent/config/mini.tcss +1 -0
- minisweagent/models/litellm_model.py +1 -1
- {mini_swe_agent-1.4.0.dist-info → mini_swe_agent-1.4.2.dist-info}/WHEEL +0 -0
- {mini_swe_agent-1.4.0.dist-info → mini_swe_agent-1.4.2.dist-info}/entry_points.txt +0 -0
- {mini_swe_agent-1.4.0.dist-info → mini_swe_agent-1.4.2.dist-info}/licenses/LICENSE.md +0 -0
- {mini_swe_agent-1.4.0.dist-info → mini_swe_agent-1.4.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mini-swe-agent
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.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
|
|
@@ -274,7 +274,7 @@ Read more in our [documentation](https://mini-swe-agent.com/latest/):
|
|
|
274
274
|
* [FAQ](https://mini-swe-agent.com/latest/faq/)
|
|
275
275
|
* [Contribute!](https://mini-swe-agent.com/latest/contributing/)
|
|
276
276
|
|
|
277
|
-
##
|
|
277
|
+
## Attribution
|
|
278
278
|
|
|
279
279
|
If you found this work helpful, please consider citing the [SWE-agent paper](https://arxiv.org/abs/2405.15793) in your work:
|
|
280
280
|
|
|
@@ -288,7 +288,7 @@ If you found this work helpful, please consider citing the [SWE-agent paper](htt
|
|
|
288
288
|
}
|
|
289
289
|
```
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
Our other projects:
|
|
292
292
|
|
|
293
293
|
<div align="center">
|
|
294
294
|
<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,16 +1,16 @@
|
|
|
1
|
-
mini_swe_agent-1.4.
|
|
2
|
-
minisweagent/__init__.py,sha256=
|
|
1
|
+
mini_swe_agent-1.4.2.dist-info/licenses/LICENSE.md,sha256=D3luWPkdHAe7LBsdD4vzqDAXw6Xewb3G-uczss0uh1s,1094
|
|
2
|
+
minisweagent/__init__.py,sha256=oYWkIRVhPyOg1ZdA0e-yH_3gk4L19SUUb68qsCNQsPo,1787
|
|
3
3
|
minisweagent/__main__.py,sha256=FIyAOiw--c3FQ2g240FOM1FdL0lk_PxSpixu0pQ7WFo,194
|
|
4
4
|
minisweagent/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
minisweagent/agents/__init__.py,sha256=cpjJLzg1IGxLM-tZpoMJV9S33ye13XtdBO0x7DU_Lrk,48
|
|
6
|
-
minisweagent/agents/default.py,sha256=
|
|
7
|
-
minisweagent/agents/interactive.py,sha256=
|
|
8
|
-
minisweagent/agents/interactive_textual.py,sha256
|
|
6
|
+
minisweagent/agents/default.py,sha256=9LxgX3KWHFGkGE4FjGOZwK5oA8ykzg9KgmpgyqlEuoo,5460
|
|
7
|
+
minisweagent/agents/interactive.py,sha256=7HW2cffaV5f66DIjxvtIbL8mo_S5aZSwgNLSmHp6VC0,7450
|
|
8
|
+
minisweagent/agents/interactive_textual.py,sha256=BgHOeTCDmHGph5oXEYDM5bqSlOuDrEE2X2ukN4m4T4E,16258
|
|
9
9
|
minisweagent/config/README.md,sha256=tPruhnQDhZ8ugc1FNPKk9tVMRltmmIjdYgvHCmN-3Hs,354
|
|
10
10
|
minisweagent/config/__init__.py,sha256=UfORdQID1Ek_dduZlybUsIKJjihImkSqNU5tIjpw0hk,694
|
|
11
11
|
minisweagent/config/default.yaml,sha256=AGhcIq6X6n5Fs71ufO3B6CtZ4PS877tCxkPkrWR5Ylg,4497
|
|
12
12
|
minisweagent/config/github_issue.yaml,sha256=evvu3AJ52tXYSdami9_B8zfazOAE2r2XXkzVmScBoKc,4539
|
|
13
|
-
minisweagent/config/mini.tcss,sha256=
|
|
13
|
+
minisweagent/config/mini.tcss,sha256=fmAP9cYAp2n7Ps2Dw3e-ZOGEF2E8JcwTgK1LDcis-x4,1141
|
|
14
14
|
minisweagent/config/mini.yaml,sha256=WluQAx4AII9MFk3xDSzsJTosNJfgZti02niCYZWYq_A,5346
|
|
15
15
|
minisweagent/config/extra/__init__.py,sha256=e1MoAlDn_wc9HnXNoncf1P-B4DQ-iRf6n7Q_txjZGRI,52
|
|
16
16
|
minisweagent/config/extra/swebench.yaml,sha256=LNpTahpul6HL0HozgAAz-C6kpX3wZA7Tg8uE-ZmgrF4,7577
|
|
@@ -22,7 +22,7 @@ minisweagent/environments/extra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
22
22
|
minisweagent/environments/extra/swerex_docker.py,sha256=MOhhFdX1sAk_U0g-GOxohfjrldzO4YfrUnHq8qJff7c,1502
|
|
23
23
|
minisweagent/models/__init__.py,sha256=J4bnvfMByTVG0cL_6p51sm8gdargXhARfbG5c0UZ8Z4,2890
|
|
24
24
|
minisweagent/models/anthropic.py,sha256=D8nHvvbgzPjla0He8p0O9kaXASPWg1Sai0pHsAj_Yn8,855
|
|
25
|
-
minisweagent/models/litellm_model.py,sha256=
|
|
25
|
+
minisweagent/models/litellm_model.py,sha256=2-Q7gEoKK-2kbUsfDxrTBxIQasEqw1raE_1Xk28XXUc,2289
|
|
26
26
|
minisweagent/models/test_models.py,sha256=oB3jmZUire5TkVT8ebUCD3jLuLhPIbcTiTqdIix85Yw,1174
|
|
27
27
|
minisweagent/models/utils/cache_control.py,sha256=mG9cE56HQaUwXfoqvXoH6LcbMV_G1vlEE1aBBpikXYg,1608
|
|
28
28
|
minisweagent/models/utils/key_per_thread.py,sha256=Vlxt--rapNNYCgIHrMCu1WVAkuiVIhC_awbarkbnkZQ,644
|
|
@@ -39,8 +39,8 @@ minisweagent/run/extra/swebench_single.py,sha256=L3Kk4G65o3MCPLMEwGNIs77-AFf6Lfc
|
|
|
39
39
|
minisweagent/run/extra/utils/batch_progress.py,sha256=u__khJ-fipZLxTJu43LamGAtPUCqEZYEi8J7SfH7X6A,6211
|
|
40
40
|
minisweagent/run/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
41
|
minisweagent/run/utils/save.py,sha256=q7omf7zYHg73k8-Iyp9w5YVSYvDAacRrh4X9L_4VhNM,942
|
|
42
|
-
mini_swe_agent-1.4.
|
|
43
|
-
mini_swe_agent-1.4.
|
|
44
|
-
mini_swe_agent-1.4.
|
|
45
|
-
mini_swe_agent-1.4.
|
|
46
|
-
mini_swe_agent-1.4.
|
|
42
|
+
mini_swe_agent-1.4.2.dist-info/METADATA,sha256=j1Pbp3dIQR4QarSo7Srmbm_ePbGfVQFZWPkn7i7w90c,13462
|
|
43
|
+
mini_swe_agent-1.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
44
|
+
mini_swe_agent-1.4.2.dist-info/entry_points.txt,sha256=d1_yRbTaGjs1UXHa6JQK0sKDGBIVGm8oeW0k2kfbJgQ,182
|
|
45
|
+
mini_swe_agent-1.4.2.dist-info/top_level.txt,sha256=zKF4t8bFpV87fdVABZt2Da-vnb4Vkh_CxkwQx5YT4Ew,13
|
|
46
|
+
mini_swe_agent-1.4.2.dist-info/RECORD,,
|
minisweagent/__init__.py
CHANGED
minisweagent/agents/default.py
CHANGED
|
@@ -72,7 +72,7 @@ class DefaultAgent:
|
|
|
72
72
|
def run(self, task: str) -> tuple[str, str]:
|
|
73
73
|
"""Run step() until agent is finished. Return exit status & message"""
|
|
74
74
|
self.messages = []
|
|
75
|
-
self.add_message("system", self.config.system_template)
|
|
75
|
+
self.add_message("system", self.render_template(self.config.system_template))
|
|
76
76
|
self.add_message("user", self.render_template(self.config.instance_template, task=task))
|
|
77
77
|
while True:
|
|
78
78
|
try:
|
|
@@ -35,8 +35,8 @@ class InteractiveAgentConfig(AgentConfig):
|
|
|
35
35
|
class InteractiveAgent(DefaultAgent):
|
|
36
36
|
_MODE_COMMANDS_MAPPING = {"/u": "human", "/c": "confirm", "/y": "yolo"}
|
|
37
37
|
|
|
38
|
-
def __init__(self, *args, **kwargs):
|
|
39
|
-
super().__init__(*args, config_class=
|
|
38
|
+
def __init__(self, *args, config_class=InteractiveAgentConfig, **kwargs):
|
|
39
|
+
super().__init__(*args, config_class=config_class, **kwargs)
|
|
40
40
|
self.cost_last_confirmed = 0.0
|
|
41
41
|
|
|
42
42
|
def add_message(self, role: str, content: str):
|
|
@@ -59,7 +59,9 @@ class InteractiveAgent(DefaultAgent):
|
|
|
59
59
|
case "/y" | "/c": # Just go to the super query, which queries the LM for the next action
|
|
60
60
|
pass
|
|
61
61
|
case _:
|
|
62
|
-
|
|
62
|
+
msg = {"content": f"\n```bash\n{command}\n```"}
|
|
63
|
+
self.add_message("assistant", msg["content"])
|
|
64
|
+
return msg
|
|
63
65
|
try:
|
|
64
66
|
with console.status("Waiting for the LM to respond..."):
|
|
65
67
|
return super().query()
|
|
@@ -132,16 +132,10 @@ class SmartInputContainer(Container):
|
|
|
132
132
|
self._input_event = threading.Event()
|
|
133
133
|
self._input_result: str | None = None
|
|
134
134
|
|
|
135
|
-
self._header_display = Static(
|
|
136
|
-
|
|
137
|
-
)
|
|
138
|
-
self._hint_text = Static(
|
|
139
|
-
"[bold]Enter[/bold] to submit, [bold]Ctrl+T[/bold] to switch to multi-line input, [bold]Tab[/bold] to switch focus with other controls",
|
|
140
|
-
classes="hint-text",
|
|
141
|
-
)
|
|
135
|
+
self._header_display = Static(id="input-header-display", classes="message-header input-request-header")
|
|
136
|
+
self._hint_text = Static(classes="hint-text")
|
|
142
137
|
self._single_input = Input(placeholder="Type your input...")
|
|
143
|
-
self._multi_input = TextArea(
|
|
144
|
-
|
|
138
|
+
self._multi_input = TextArea(show_line_numbers=False, classes="multi-input")
|
|
145
139
|
self._input_elements_container = Vertical(
|
|
146
140
|
self._header_display,
|
|
147
141
|
self._hint_text,
|
|
@@ -180,7 +174,6 @@ class SmartInputContainer(Container):
|
|
|
180
174
|
"""Internal method to complete the input process."""
|
|
181
175
|
self._input_result = input_text
|
|
182
176
|
self.pending_prompt = None
|
|
183
|
-
self._header_display.update("USER INPUT REQUESTED")
|
|
184
177
|
self.display = False
|
|
185
178
|
self._single_input.value = ""
|
|
186
179
|
self._multi_input.text = ""
|
|
@@ -208,8 +201,13 @@ class SmartInputContainer(Container):
|
|
|
208
201
|
self._multi_input.text = self._single_input.value
|
|
209
202
|
self._single_input.display = False
|
|
210
203
|
self._multi_input.display = True
|
|
211
|
-
|
|
204
|
+
self._hint_text.update(
|
|
205
|
+
"[reverse][bold][$accent] Ctrl+D [/][/][/] to submit, [reverse][bold][$accent] Tab [/][/][/] to switch focus with other controls"
|
|
206
|
+
)
|
|
212
207
|
else:
|
|
208
|
+
self._hint_text.update(
|
|
209
|
+
"[reverse][bold][$accent] Enter [/][/][/] to submit, [reverse][bold][$accent] Ctrl+T [/][/][/] to switch to multi-line input, [reverse][bold][$accent] Tab [/][/][/] to switch focus with other controls",
|
|
210
|
+
)
|
|
213
211
|
self._multi_input.display = False
|
|
214
212
|
self._single_input.display = True
|
|
215
213
|
|
minisweagent/config/mini.tcss
CHANGED
|
@@ -31,7 +31,7 @@ class LitellmModel:
|
|
|
31
31
|
self.cost = 0.0
|
|
32
32
|
self.n_calls = 0
|
|
33
33
|
if self.config.litellm_model_registry is not None:
|
|
34
|
-
litellm.utils.register_model(json.loads(self.config.litellm_model_registry.read_text()))
|
|
34
|
+
litellm.utils.register_model(json.loads(Path(self.config.litellm_model_registry).read_text()))
|
|
35
35
|
|
|
36
36
|
@retry(
|
|
37
37
|
stop=stop_after_attempt(10),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|