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.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: outerloop-science
3
- Version: 0.1.0.dev0
4
- Summary: Autonomous research agent that co-develops the lab's benchmark-bearing repos
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 two files: your model key and the contract. You need a repo
60
- with a benchmark command, a model API key (Anthropic by default), and a Slurm
61
- cluster or one machine with a GPU.
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, your GitHub bot; writes the config
65
+ outerloop init # where the loop runs, which repo, which model and its key, your GitHub identity
66
66
  ```
67
67
 
68
- Put your Anthropic API key in `~/.config/outerloop/harness_key`: one line,
69
- readable only by you (`chmod 600`). Then add one file, `.outerloop.yaml`, to
70
- the repo you want improved:
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=VdBqNDaS-j7ck0kDi0meK4p0XwmpdqNEzKZv7clVJGI,681
1
+ outerloop/__init__.py,sha256=sIIc5yYu2cnaaZt1u9_X2RLGOYt3UlnLPwNhoWNIMyE,633
2
2
  outerloop/__main__.py,sha256=Fq2ADl3rjZ4i2m1svON_KO2kJqpwUnohLhdlacAnEpM,57
3
- outerloop/appauth.py,sha256=leIxUcfdHKM_uzNyw96RRi0hOvFqq1k6nZVbnddZz48,8901
4
- outerloop/appmanifest.py,sha256=qn-IaWHzhd2TRu_JGuFRM26MUiKYSsYIfv2JxkLu2D0,8119
5
- outerloop/attempt.py,sha256=wrziCX_x3s0PVxAc0s88Y-1a6EGt0Y8NRpK4VLb5l4o,158071
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=9Mu79H1TO2H4VarqIZYMrGtRkKw1iYxAG_qc4r9lKJo,16829
8
- outerloop/climbboard.py,sha256=IH0sAu2sZgY4D2DoIhvgb7e7ppXWViXKv8y0qs-QEDw,57015
9
- outerloop/compute.py,sha256=cY_iXR_T4pz6NWIXmAnmmaDaGgC-N2ywA88JjRj6PEg,21087
10
- outerloop/contract.py,sha256=_MYTqKJ6CYyuDWR1t3u1EY6dOTq4MBTEZjJXVI-wYvk,24463
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=NhUnFhDAm4ryGcBdLeC7o01aPqin5dnMN7UbMG3Uf00,93827
15
- outerloop/github.py,sha256=8SWJB2JB61X7tPwJqz0fG3RhjtPYorQvvJNL4sZX57g,65317
16
- outerloop/harness.py,sha256=xldeTzupl_03jjUhvzB-BqCv46pEmDl4B__pnwI6BqM,66652
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/init.py,sha256=7NL1odo2Pk7yQY_A0_ZSCZUVHxLR16JWliw3FXvwZ8g,13902
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=GQdspxW4_x5dnFM-6nLJxFQ1z3tkRak75LLzzFQTClM,3388
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=aHAAj6SjVvxPfh9YTSlpUigpeozaa35FeD_ix4x2w20,22499
23
- outerloop/orchestrator.py,sha256=Ljl9L7Jxl2DexiBejN0ujRlJ5A5-OOMRgFVatRZR77Y,84461
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=W8P5ucsOm8l8ynO3rwJBl1dcbxK1mMiqHtVfSF_JeU8,939
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=bRGWrZkoeAqu5lF_cLhO5NtH-p3tAVyclv4XDaesz6c,27187
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=E7T7plC3HiVYGpLu6Ehpqd08ATA2ptku0Sg_yiZ0ht8,34400
39
+ outerloop/steward.py,sha256=3MiYQsSDVR6KGU8dDji3v_vr8OUT5nl_6JWhUB4U9AE,34396
39
40
  outerloop/style.py,sha256=icZQNq0hOLjhoXStpH7rxZm24fsAh4uL8NMH72nz9S0,497
40
- outerloop/syscall.py,sha256=VBewFVBv1pucByUx44-cKd2a1-k3YsdcP31JQ16X6tk,44542
41
+ outerloop/syscall.py,sha256=367I0rhhkEgm7-KNkXaX1h9960K_y2mTRmLjwcFqFCM,44601
41
42
  outerloop/syscall_cli.py,sha256=e2Y_TQ9rAxAKjwLgSHHKgT93yMfu55SFO04k4s83OF4,22079
42
- outerloop/tick.py,sha256=9JTVGU_E9SQXcg4ftVpy-FGwZBg8-Kcg3H8SEdvmheg,142849
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.dev0.dist-info/METADATA,sha256=FKw7IwXq3XYUOROexIGT50TG4Ygd0afDNyQs_QtrUFk,6326
48
- outerloop_science-0.1.0.dev0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
49
- outerloop_science-0.1.0.dev0.dist-info/entry_points.txt,sha256=mLYW8Dxv8FnrYdCkKV8ekwcV3TnfzPYkdbJOkYzF5xE,49
50
- outerloop_science-0.1.0.dev0.dist-info/licenses/LICENSE,sha256=Kqt7czAsZdfZp9B6a3WoTt9CZuy7_0sjPNMW7KHckk8,11375
51
- outerloop_science-0.1.0.dev0.dist-info/licenses/NOTICE,sha256=VTBNz2gnaoM68CoUkQe1G7VbrV-R0WfqKHrZhYYbuqI,193
52
- outerloop_science-0.1.0.dev0.dist-info/RECORD,,
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,,