outerloop-science 0.1.0.dev0__py3-none-any.whl → 0.1.0.dev2__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.
- outerloop/__init__.py +7 -7
- outerloop/appauth.py +3 -3
- outerloop/appmanifest.py +16 -11
- outerloop/attempt.py +80 -52
- outerloop/cli.py +170 -86
- outerloop/climbboard.py +209 -4
- outerloop/compute.py +84 -7
- outerloop/contract.py +3 -2
- outerloop/followup.py +37 -23
- outerloop/github.py +4 -4
- outerloop/harness.py +18 -7
- outerloop/image.py +372 -0
- outerloop/init.py +417 -29
- outerloop/limits.py +1 -1
- outerloop/measure.py +2 -2
- outerloop/orchestrator.py +1 -1
- outerloop/paths.py +14 -1
- outerloop/review.py +1 -1
- outerloop/steward.py +3 -3
- outerloop/syscall.py +1 -0
- outerloop/tick.py +400 -105
- {outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/METADATA +14 -10
- {outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/RECORD +27 -26
- {outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/WHEEL +0 -0
- {outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/entry_points.txt +0 -0
- {outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/licenses/LICENSE +0 -0
- {outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/licenses/NOTICE +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: outerloop-science
|
|
3
|
-
Version: 0.1.0.
|
|
4
|
-
Summary: Autonomous research
|
|
3
|
+
Version: 0.1.0.dev2
|
|
4
|
+
Summary: Autonomous research agents that improve the benchmark you point them at, one verified pull request at a time
|
|
5
5
|
Project-URL: Homepage, https://outerloop.science
|
|
6
6
|
Project-URL: Repository, https://github.com/outerloop-science/outerloop
|
|
7
7
|
Project-URL: Changelog, https://github.com/outerloop-science/outerloop/blob/main/CHANGELOG.md
|
|
@@ -11,10 +11,10 @@ License-Expression: Apache-2.0
|
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
License-File: NOTICE
|
|
13
13
|
Requires-Python: >=3.12
|
|
14
|
+
Requires-Dist: cryptography>=42
|
|
14
15
|
Requires-Dist: pydantic>=2
|
|
15
16
|
Requires-Dist: pyyaml>=6
|
|
16
17
|
Provides-Extra: app-auth
|
|
17
|
-
Requires-Dist: cryptography>=42; extra == 'app-auth'
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
|
|
20
20
|
<picture>
|
|
@@ -56,18 +56,22 @@ themselves.
|
|
|
56
56
|
|
|
57
57
|
## Get started
|
|
58
58
|
|
|
59
|
-
Three commands and
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
Three commands and one file. You need a repo with a benchmark command, an API
|
|
60
|
+
key for the model that will write the code, and a Slurm cluster or one machine
|
|
61
|
+
with a GPU.
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
64
|
pip install outerloop-science
|
|
65
|
-
outerloop init # where the loop runs, which repo,
|
|
65
|
+
outerloop init # where the loop runs, which repo, which model and its key, your GitHub identity
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
The wizard asks for a GitHub identity for the agents to open pull requests
|
|
69
|
+
as. Pick `app` and it walks you through creating a GitHub App, under your
|
|
70
|
+
account or under an organization you name, and installing it on the repo:
|
|
71
|
+
two browser pages and a code pasted back. It then checks that the App can
|
|
72
|
+
write the repo and tells you if it cannot. Pick `pat` if you already have a
|
|
73
|
+
token. It writes the config and the key files; nothing to edit by hand. Then
|
|
74
|
+
add one file, `.outerloop.yaml`, to the repo you want improved:
|
|
71
75
|
|
|
72
76
|
```yaml
|
|
73
77
|
benchmarks:
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
outerloop/__init__.py,sha256=
|
|
1
|
+
outerloop/__init__.py,sha256=sIIc5yYu2cnaaZt1u9_X2RLGOYt3UlnLPwNhoWNIMyE,633
|
|
2
2
|
outerloop/__main__.py,sha256=Fq2ADl3rjZ4i2m1svON_KO2kJqpwUnohLhdlacAnEpM,57
|
|
3
|
-
outerloop/appauth.py,sha256=
|
|
4
|
-
outerloop/appmanifest.py,sha256=
|
|
5
|
-
outerloop/attempt.py,sha256=
|
|
3
|
+
outerloop/appauth.py,sha256=j4XG7gF8Zeg91R-MG7A2S1IxgmJCqSQEgaGA7iwRZtY,8898
|
|
4
|
+
outerloop/appmanifest.py,sha256=9L4NyUqVJhgE8BlBnK6BTpMdkhpukLtAnezZQcbyBwI,8459
|
|
5
|
+
outerloop/attempt.py,sha256=Unfne2yY9DeHKXKUdqcQHbC68LruwOPDu0k5LNhoQtM,159339
|
|
6
6
|
outerloop/brief.py,sha256=f8QeMQRhsZvyNEh28sbM684FwWZCGU-rwPL0o8lqtrw,24156
|
|
7
|
-
outerloop/cli.py,sha256=
|
|
8
|
-
outerloop/climbboard.py,sha256=
|
|
9
|
-
outerloop/compute.py,sha256=
|
|
10
|
-
outerloop/contract.py,sha256=
|
|
7
|
+
outerloop/cli.py,sha256=3FJqLpxlEsLQ1RoSiJhzQSWqChVHwXKZ-EJ1WeTpwRg,20859
|
|
8
|
+
outerloop/climbboard.py,sha256=GoucONPvtjIWHz3jH_9ewX4iSZfeh7q_PtR5atClogA,67011
|
|
9
|
+
outerloop/compute.py,sha256=z1nG559IBAi16qH3Ux9APWmDWG-oqkWGf9Y5GjV5ljs,24589
|
|
10
|
+
outerloop/contract.py,sha256=lj_EPz-oPNdM_LacF0M04-Jqlvs0r_qNRlr8zP1cOiI,24516
|
|
11
11
|
outerloop/contract_cli.py,sha256=Pa-sJe7G8BuLGed5tqnlq6L75fTT1HHO4d-XWZPW8U8,1992
|
|
12
12
|
outerloop/disk.py,sha256=FAgR1FJVPTu1YCcfNxcJtUFxJsBFcOaenF8lYAVPL1Y,5853
|
|
13
13
|
outerloop/dispatch.py,sha256=70Of08UygVco9drBpq8Xfqi5tunMBvNk--tPYZjcpNI,27401
|
|
14
|
-
outerloop/followup.py,sha256=
|
|
15
|
-
outerloop/github.py,sha256=
|
|
16
|
-
outerloop/harness.py,sha256=
|
|
14
|
+
outerloop/followup.py,sha256=dM6z2te4yOoQ2WNak2rr-npVCQ8WQtfDXjUe_BaYbFo,94680
|
|
15
|
+
outerloop/github.py,sha256=mOR6Hp_fAVEXZZ0NWyLyOEyqlM_5CGqnpgDSX2YYqzM,65305
|
|
16
|
+
outerloop/harness.py,sha256=0RXz-TWkSigxLhlAxnq0OcNQF0rHajJuuSraInHm5VA,67232
|
|
17
17
|
outerloop/housekeeping.py,sha256=nlyy9kWUwTPjW0FLizVwXI99xSTZj7JJDzIdzJzDfEk,6663
|
|
18
|
-
outerloop/
|
|
18
|
+
outerloop/image.py,sha256=nVnU2HQIWMXKgluUPw7exCcPDPv0fnKxsXBG2Sdo9os,15406
|
|
19
|
+
outerloop/init.py,sha256=w7HEJ76p0A9PWNuFkLQ27_LnlZJ4ON0o_djJyo4I_jw,31951
|
|
19
20
|
outerloop/intake.py,sha256=a3j1B6W7v3QpQv53CoJS0hh6vz7B3nLn_cV2G-nt6Uw,5424
|
|
20
|
-
outerloop/limits.py,sha256=
|
|
21
|
+
outerloop/limits.py,sha256=ubdBqhtN8SN4r5RoDhuptoolqtq_m-1KZPdW3iXaml8,3385
|
|
21
22
|
outerloop/markers.py,sha256=Bi_hwWCICW6qPQ8_yB--0IrUaLLh9C3K24aDaCxHNAY,1739
|
|
22
|
-
outerloop/measure.py,sha256=
|
|
23
|
-
outerloop/orchestrator.py,sha256=
|
|
23
|
+
outerloop/measure.py,sha256=NFAljbUV29py4JoqfFSI3JYGho8by_L1eDgPw2ubNjU,22493
|
|
24
|
+
outerloop/orchestrator.py,sha256=bH2pOhpfJdwhvZvjqlQnfrwTMMWwQOLB-Xh6Ew2468Q,84458
|
|
24
25
|
outerloop/panel.py,sha256=bSoQtuP2xqWbl7DBdeqihrGNyDz6-u5wWrV3nI-b0Js,7665
|
|
25
|
-
outerloop/paths.py,sha256=
|
|
26
|
+
outerloop/paths.py,sha256=SpOt3zU2KS9_KZ6FiNEH9vs9fbQt8y1rWMYbZskwxHA,1501
|
|
26
27
|
outerloop/posting.py,sha256=dUi7P46HzsQmVgs5BXy5GXGOkcTNjOZDO-x_y0yAaaU,6632
|
|
27
28
|
outerloop/progress.py,sha256=9vCKsO8_NGrw3-hhSif5QA6rLoqNOrQ8ICIpVBqD2VI,6133
|
|
28
29
|
outerloop/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
-
outerloop/review.py,sha256=
|
|
30
|
+
outerloop/review.py,sha256=_vJcTCVdtrK7ymfd0pgjz-IE7oM3CVzMceNZt1AMhGk,27184
|
|
30
31
|
outerloop/review_agent.py,sha256=XxGrGVZb61pqd6F3I15lrFBQptduER7QNmxMmCaUNec,9961
|
|
31
32
|
outerloop/review_agent_cli.py,sha256=R9rZHvQ9LSttocSUuO0087fywLf3iHt-vldxo6Ygd7k,8355
|
|
32
33
|
outerloop/review_post_cli.py,sha256=XNw8BjxJMtEMzWRK4jKV-f_alOdIWeqJfwdndFCqTm8,6266
|
|
@@ -35,18 +36,18 @@ outerloop/role_runner.py,sha256=4l4zw0TtiFrGDmzHW8T6vZ7OLq7vVD0cN4U4BoNbgUs,9681
|
|
|
35
36
|
outerloop/roles.py,sha256=hx8RrtJCBb0nsJGvxamHJ8Dk3j8lIFsTCapbOlQyKN0,10952
|
|
36
37
|
outerloop/rolespec.py,sha256=6VmrwTlLSsN17aQSDtLB2MvcEHYpbSOPIyPcY1uGny8,3915
|
|
37
38
|
outerloop/runstate.py,sha256=5bEczCz1KTbVI1cTwNvd4Oc2RXIX-9piWD5-g_S6tMo,17976
|
|
38
|
-
outerloop/steward.py,sha256=
|
|
39
|
+
outerloop/steward.py,sha256=3MiYQsSDVR6KGU8dDji3v_vr8OUT5nl_6JWhUB4U9AE,34396
|
|
39
40
|
outerloop/style.py,sha256=icZQNq0hOLjhoXStpH7rxZm24fsAh4uL8NMH72nz9S0,497
|
|
40
|
-
outerloop/syscall.py,sha256=
|
|
41
|
+
outerloop/syscall.py,sha256=367I0rhhkEgm7-KNkXaX1h9960K_y2mTRmLjwcFqFCM,44601
|
|
41
42
|
outerloop/syscall_cli.py,sha256=e2Y_TQ9rAxAKjwLgSHHKgT93yMfu55SFO04k4s83OF4,22079
|
|
42
|
-
outerloop/tick.py,sha256=
|
|
43
|
+
outerloop/tick.py,sha256=tLMDs-zoPy_y659s1FQuglevDURR84bXGZsVCROJX-Q,157004
|
|
43
44
|
outerloop/verifier.py,sha256=BeizeiAqXGiuL-pmGptedtFo_GWAxfguwZhoTdAn1qg,17793
|
|
44
45
|
outerloop/verify_agent.py,sha256=fzv5N_cm5g6ZcwMmIpd5S5UbqW3wAEXTQmPFWK_Zdi4,6482
|
|
45
46
|
outerloop/verify_agent_cli.py,sha256=3QCQTB7MSdtN-k9x9HovLPo8q988H9o9Uus8rmaR444,3908
|
|
46
47
|
outerloop/verify_post_cli.py,sha256=vw2WXzP10HlZW7inDDpt6k6Zq9sPQwFnmXrwvnpHjZg,4601
|
|
47
|
-
outerloop_science-0.1.0.
|
|
48
|
-
outerloop_science-0.1.0.
|
|
49
|
-
outerloop_science-0.1.0.
|
|
50
|
-
outerloop_science-0.1.0.
|
|
51
|
-
outerloop_science-0.1.0.
|
|
52
|
-
outerloop_science-0.1.0.
|
|
48
|
+
outerloop_science-0.1.0.dev2.dist-info/METADATA,sha256=vHimtrNg4OlCZSXbJMWvIrvvrJmvC7ZjO3qogLgRkYw,6659
|
|
49
|
+
outerloop_science-0.1.0.dev2.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
|
|
50
|
+
outerloop_science-0.1.0.dev2.dist-info/entry_points.txt,sha256=mLYW8Dxv8FnrYdCkKV8ekwcV3TnfzPYkdbJOkYzF5xE,49
|
|
51
|
+
outerloop_science-0.1.0.dev2.dist-info/licenses/LICENSE,sha256=Kqt7czAsZdfZp9B6a3WoTt9CZuy7_0sjPNMW7KHckk8,11375
|
|
52
|
+
outerloop_science-0.1.0.dev2.dist-info/licenses/NOTICE,sha256=VTBNz2gnaoM68CoUkQe1G7VbrV-R0WfqKHrZhYYbuqI,193
|
|
53
|
+
outerloop_science-0.1.0.dev2.dist-info/RECORD,,
|
|
File without changes
|
{outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{outerloop_science-0.1.0.dev0.dist-info → outerloop_science-0.1.0.dev2.dist-info}/licenses/NOTICE
RENAMED
|
File without changes
|