scaleapi-vero 0.5.0__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.
Files changed (130) hide show
  1. scaleapi_vero-0.5.0.dist-info/METADATA +219 -0
  2. scaleapi_vero-0.5.0.dist-info/RECORD +130 -0
  3. scaleapi_vero-0.5.0.dist-info/WHEEL +4 -0
  4. scaleapi_vero-0.5.0.dist-info/entry_points.txt +3 -0
  5. vero/__init__.py +34 -0
  6. vero/agents/__init__.py +24 -0
  7. vero/agents/claude_code.py +364 -0
  8. vero/agents/events.py +46 -0
  9. vero/agents/producer.py +166 -0
  10. vero/agents/protocol.py +97 -0
  11. vero/agents/vero.py +419 -0
  12. vero/candidate.py +77 -0
  13. vero/candidate_repository/__init__.py +10 -0
  14. vero/candidate_repository/base.py +85 -0
  15. vero/candidate_repository/git.py +862 -0
  16. vero/cli.py +1028 -0
  17. vero/config.py +545 -0
  18. vero/evals_cli.py +743 -0
  19. vero/evaluation/__init__.py +174 -0
  20. vero/evaluation/backends/__init__.py +8 -0
  21. vero/evaluation/backends/base.py +110 -0
  22. vero/evaluation/backends/command.py +389 -0
  23. vero/evaluation/backends/python_task.py +328 -0
  24. vero/evaluation/engine.py +546 -0
  25. vero/evaluation/evaluator.py +295 -0
  26. vero/evaluation/exceptions.py +52 -0
  27. vero/evaluation/models.py +823 -0
  28. vero/evaluation/scoring/__init__.py +6 -0
  29. vero/evaluation/scoring/error_taxonomy.py +274 -0
  30. vero/evaluation/scoring/objective.py +190 -0
  31. vero/evaluation/scoring/security.py +108 -0
  32. vero/evaluation/store/__init__.py +6 -0
  33. vero/evaluation/store/budget.py +241 -0
  34. vero/evaluation/store/persistence.py +495 -0
  35. vero/exceptions.py +5 -0
  36. vero/gateway/__init__.py +12 -0
  37. vero/gateway/inference.py +1202 -0
  38. vero/harbor/__init__.py +45 -0
  39. vero/harbor/backend.py +1784 -0
  40. vero/harbor/build/__init__.py +33 -0
  41. vero/harbor/build/compiler.py +871 -0
  42. vero/harbor/build/config.py +746 -0
  43. vero/harbor/build/loader.py +160 -0
  44. vero/harbor/build/specs.py +355 -0
  45. vero/harbor/build/templates/Dockerfile.gateway.j2 +17 -0
  46. vero/harbor/build/templates/Dockerfile.main.j2 +22 -0
  47. vero/harbor/build/templates/Dockerfile.sidecar.j2 +53 -0
  48. vero/harbor/build/templates/docker-compose.yaml.j2 +108 -0
  49. vero/harbor/build/templates/instruction.md.j2 +132 -0
  50. vero/harbor/build/templates/seed.sh.j2 +41 -0
  51. vero/harbor/build/templates/solve.sh.j2 +17 -0
  52. vero/harbor/build/templates/task.toml.j2 +45 -0
  53. vero/harbor/build/templates/test.sh.j2 +10 -0
  54. vero/harbor/cli.py +1289 -0
  55. vero/harbor/deployment.py +477 -0
  56. vero/harbor/generation.py +58 -0
  57. vero/interpret/__init__.py +26 -0
  58. vero/interpret/analysis/__init__.py +5 -0
  59. vero/interpret/analysis/brand/fonts/GeistMono.ttf +0 -0
  60. vero/interpret/analysis/brand/fonts/HostGrotesk.ttf +0 -0
  61. vero/interpret/analysis/brand/house_style.py +137 -0
  62. vero/interpret/analysis/display.py +88 -0
  63. vero/interpret/analysis/figures.py +365 -0
  64. vero/interpret/analysis/paper_figures.py +258 -0
  65. vero/interpret/analysis/preamble.py +196 -0
  66. vero/interpret/analysis/stats.py +236 -0
  67. vero/interpret/artifacts/__init__.py +5 -0
  68. vero/interpret/artifacts/base.py +53 -0
  69. vero/interpret/artifacts/harbor/__init__.py +5 -0
  70. vero/interpret/artifacts/harbor/adapter.py +168 -0
  71. vero/interpret/artifacts/harbor/repo.py +90 -0
  72. vero/interpret/artifacts/harbor/session.py +99 -0
  73. vero/interpret/cache.py +94 -0
  74. vero/interpret/cli.py +244 -0
  75. vero/interpret/config.py +76 -0
  76. vero/interpret/edits/__init__.py +5 -0
  77. vero/interpret/edits/decompose.py +202 -0
  78. vero/interpret/edits/locus.py +172 -0
  79. vero/interpret/edits/provenance.py +62 -0
  80. vero/interpret/labeling/__init__.py +0 -0
  81. vero/interpret/labeling/client.py +85 -0
  82. vero/interpret/labeling/labeler.py +203 -0
  83. vero/interpret/labeling/taxonomy.py +182 -0
  84. vero/interpret/models.py +190 -0
  85. vero/layout.py +174 -0
  86. vero/models.py +16 -0
  87. vero/optimization/__init__.py +49 -0
  88. vero/optimization/command.py +179 -0
  89. vero/optimization/models.py +130 -0
  90. vero/optimization/optimizer.py +739 -0
  91. vero/optimization/protocols.py +90 -0
  92. vero/optimization/strategy.py +329 -0
  93. vero/report.py +529 -0
  94. vero/runtime/__init__.py +59 -0
  95. vero/runtime/artifacts.py +42 -0
  96. vero/runtime/context.py +604 -0
  97. vero/runtime/events.py +120 -0
  98. vero/runtime/factory.py +282 -0
  99. vero/runtime/session.py +522 -0
  100. vero/runtime/wandb.py +551 -0
  101. vero/sandbox.py +742 -0
  102. vero/sidecar/__init__.py +72 -0
  103. vero/sidecar/app.py +230 -0
  104. vero/sidecar/auth.py +79 -0
  105. vero/sidecar/isolation.py +43 -0
  106. vero/sidecar/serve.py +104 -0
  107. vero/sidecar/session.py +235 -0
  108. vero/sidecar/sidecar.py +850 -0
  109. vero/sidecar/transport.py +190 -0
  110. vero/sidecar/verifier.py +601 -0
  111. vero/skills/evals/SKILL.md +120 -0
  112. vero/staging.py +72 -0
  113. vero/templates/report.html +151 -0
  114. vero/tools/__init__.py +35 -0
  115. vero/tools/base.py +20 -0
  116. vero/tools/evaluation.py +95 -0
  117. vero/tools/planning.py +96 -0
  118. vero/tools/registry.py +89 -0
  119. vero/tools/sandbox_tools.py +79 -0
  120. vero/tools/sub_agent.py +182 -0
  121. vero/tools/utils/__init__.py +32 -0
  122. vero/tools/utils/openai_agents.py +80 -0
  123. vero/tools/web.py +304 -0
  124. vero/utils/__init__.py +27 -0
  125. vero/utils/asyncio.py +254 -0
  126. vero/utils/general.py +104 -0
  127. vero/utils/openai_agents.py +54 -0
  128. vero/workspace/__init__.py +6 -0
  129. vero/workspace/base.py +141 -0
  130. vero/workspace/git.py +408 -0
@@ -0,0 +1,219 @@
1
+ Metadata-Version: 2.5
2
+ Name: scaleapi-vero
3
+ Version: 0.5.0
4
+ Summary: A harness for agents to optimize programs.
5
+ Author-email: Varun Ursekar <oss@scale.com>
6
+ License: MIT
7
+ Requires-Python: <3.14,>=3.11
8
+ Requires-Dist: click>=8.0.0
9
+ Requires-Dist: pydantic>=2.11.7
10
+ Requires-Dist: wcmatch>=10.1
11
+ Provides-Extra: claude
12
+ Requires-Dist: claude-agent-sdk>=0.1.56; extra == 'claude'
13
+ Provides-Extra: harbor
14
+ Requires-Dist: fastapi>=0.110; extra == 'harbor'
15
+ Requires-Dist: httpx>=0.28.1; extra == 'harbor'
16
+ Requires-Dist: jinja2>=3.1.6; extra == 'harbor'
17
+ Requires-Dist: pyyaml>=6.0.2; extra == 'harbor'
18
+ Requires-Dist: uvicorn>=0.27; extra == 'harbor'
19
+ Provides-Extra: interpret
20
+ Requires-Dist: openai>=1.0; extra == 'interpret'
21
+ Provides-Extra: optimize
22
+ Requires-Dist: async-lru>=2.0.5; extra == 'optimize'
23
+ Requires-Dist: beautifulsoup4>=4.14.2; extra == 'optimize'
24
+ Requires-Dist: httpx>=0.28.1; extra == 'optimize'
25
+ Requires-Dist: lxml>=6.0.2; extra == 'optimize'
26
+ Requires-Dist: openai-agents[litellm]<0.19,>=0.18.3; extra == 'optimize'
27
+ Requires-Dist: orjson>=3.10; extra == 'optimize'
28
+ Requires-Dist: pypdf>=6.2.0; extra == 'optimize'
29
+ Requires-Dist: trafilatura>=2.0.0; extra == 'optimize'
30
+ Provides-Extra: wandb
31
+ Requires-Dist: wandb>=0.19.10; extra == 'wandb'
32
+ Description-Content-Type: text/markdown
33
+
34
+ # VeRO: a harness for agents to optimize programs, text, and agents
35
+
36
+ [![Paper](https://img.shields.io/badge/arXiv-2602.22480-b31b1b.svg)](https://arxiv.org/abs/2602.22480)
37
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../LICENSE)
38
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/)
39
+
40
+ VeRO gives an optimizer something to edit, a controlled way to evaluate it, and
41
+ durable memory of everything it tried. The target is anything you can put under
42
+ Git and score — a **program** (one function to a whole repo), **text** (a prompt,
43
+ spec, or config), or an **agent** (its scaffold, tools, and prompts).
44
+
45
+ VeRO runs the same **version → evaluate → select** loop over all of them. *Where*
46
+ each candidate is produced and contained is a swappable backend, and **Harbor is
47
+ the recommended one**: it runs the whole coding agent inside a reproducible,
48
+ credential-isolated container and scores it against a trusted evaluation sidecar.
49
+ That is the right default for optimizing agents and for any untrusted or
50
+ reproducibility-critical run. Lighter local backends exist for trusted work that
51
+ does not need containment.
52
+
53
+ ```
54
+ ┌─────────────────────────┐ submit candidate ┌─────────────────────────┐
55
+ │ candidate production ├──────────────────────►│ evaluation service │
56
+ │ │ │ │
57
+ │ coding agent, command, │◄──────────────────────┤ owns cases + scoring │
58
+ │ or custom strategy; │ score + diagnostics │ │
59
+ │ edits its own Git │ │ development: may ask │
60
+ │ worktree per candidate │ │ validation: aggregate │
61
+ └───────────┬─────────────┘ │ test: withheld │
62
+ │ commit └───────────┬─────────────┘
63
+ ▼ │ report
64
+ ┌─────────────────────────┐ next round ┌───────────────▼─────────────┐
65
+ │ candidate history: │◄──────────────────┤ selection: keep the best │
66
+ │ every version kept, │ │ feasible candidate │
67
+ │ each one re-selectable │ └─────────────────────────────┘
68
+ └─────────────────────────┘
69
+
70
+ Every model call on both sides goes through the inference gateway, which holds
71
+ the provider key and meters spend in tokens against a per-scope budget.
72
+ ```
73
+
74
+ ## Install
75
+
76
+ ```bash
77
+ uv sync --extra optimize # or --all-extras for the full toolchain
78
+ uv run vero --help
79
+ ```
80
+
81
+ > The published distribution is **`scaleapi-vero`** (`pip install scaleapi-vero`);
82
+ > it imports as `vero`. Do **not** install `scale-vero` from PyPI — that name is
83
+ > an unrelated placeholder squatted in July 2026, not VeRO.
84
+
85
+ Python 3.11–3.13. 3.14 is excluded because litellm does not build there.
86
+
87
+ ## Quickstart — no credentials needed
88
+
89
+ The C matrix-multiplication example is deterministic and runs with **no model
90
+ credentials at all**. Its editable target contains only C; a trusted external
91
+ harness compiles it, checks correctness, and measures latency.
92
+
93
+ ```bash
94
+ cd examples/c-matmul/target
95
+ git init -b main && git add .
96
+ git -c user.name=vero -c user.email=vero@localhost commit -m baseline
97
+ cd ..
98
+
99
+ uv run vero evaluate --config vero.toml # score the baseline
100
+ uv run vero run --config vero.toml # optimize
101
+ ```
102
+
103
+ VeRO evaluates the baseline, gives an isolated worktree to the configured
104
+ producer, evaluates its commit, selects the faster feasible result, and leaves
105
+ the original target untouched.
106
+
107
+ ## Examples
108
+
109
+ Each is a complete, checked-in target plus harness — clone-and-run, not a sketch.
110
+
111
+ | Example | Optimizes | Needs |
112
+ | --- | --- | --- |
113
+ | [`c-matmul`](examples/c-matmul/) | a C matmul kernel, for latency under a correctness constraint | **nothing** — deterministic, no credentials |
114
+ | [`circle-packing`](examples/circle-packing/) | a packing algorithm: 26 circles in a unit square, maximizing the sum of radii | a model, via `LITELLM_BASE_URL`/`LITELLM_API_KEY` or `OPENAI_BASE_URL`/`OPENAI_API_KEY` |
115
+ | [`harbor-circle-packing`](examples/harbor-circle-packing/) | the same target, but with the agent contained and scored by a sidecar | Docker + credentials |
116
+ | [`harness-conformance`](examples/harness-conformance/) | nothing — it checks the *stack*: whether a new agent or model can actually drive a run | credentials for the pair under test |
117
+
118
+ Run `harness-conformance` before spending a real benchmark on a new harness or
119
+ model. Every harness addresses its provider differently, and it costs minutes to
120
+ find that out instead of hours.
121
+
122
+ ### A real run, end to end
123
+
124
+ `harbor-circle-packing` runs a coding agent in a container, scores each candidate
125
+ through a trusted sidecar, and finalizes on a `test` partition the agent never
126
+ touches. One run with `mini-swe-agent` and `claude-sonnet-5`:
127
+
128
+ ![circle-packing search progress](examples/harbor-circle-packing/results/progress.svg)
129
+
130
+ **0.9598 → 2.5766 on the held-out partition**, `shipped: true`, in about an hour.
131
+ The best published result for 26 circles is ~2.635. The agent wrote a 15 KB
132
+ Lubachevsky–Stillinger-style growth algorithm with LP refinement — no hardcoded
133
+ coordinates.
134
+
135
+ Two details worth reading off the left panel. The red point is an **infeasible**
136
+ candidate: it scored 2.5341 but overlapped, the harness rejected it on the
137
+ `valid == 1` constraint, and the agent's next commit was "Add safety margin to
138
+ guarantee strict feasibility". And the last five evaluations are flat — it found
139
+ the idea early, then polished.
140
+
141
+ **The cautionary half.** The same task run with `codex` and no prohibition on
142
+ hardcoding scored **2.6360 in eight minutes** — higher than the honest run — by
143
+ copying the published Packomania table into 26 coordinate literals. It satisfies
144
+ the objective exactly and held-out scoring cannot catch it, because every
145
+ partition here holds one deterministic case, so a memorized answer transfers
146
+ perfectly. The instruction now forbids it. The general lesson is the one this
147
+ suite is built around: a fixed single-instance objective measures lookup and
148
+ problem-solving identically, and only varying the instance across partitions
149
+ separates them.
150
+
151
+ Regenerate the figure from any session directory:
152
+
153
+ ```bash
154
+ python examples/circle-packing/make_figure.py <session-dir> -o results/progress.svg
155
+ ```
156
+
157
+ ## Which backend
158
+
159
+ | Backend | Best for | Entry point |
160
+ | --- | --- | --- |
161
+ | **Harbor** — recommended | optimizing agents; untrusted or reproducibility-critical runs | `vero harbor run` |
162
+ | [Command harness](docs/guide.md#optimize-a-program-with-a-command-harness) | any language; a trusted local evaluator driven over versioned JSON | `vero run` |
163
+ | [Python tasks](docs/guide.md#python-benchmark-tasks) | Python evaluators via `scale-vero-tasks`, no JSON contract to write | `PythonTaskBackend` |
164
+ | [Native in-process](docs/guide.md#python-api) | fast trusted local runs; a coding agent editing a host-bound sandbox | `vero optimize` |
165
+
166
+ The target and evaluator do not have to be Python: external evaluators and
167
+ producers connect over command protocols.
168
+
169
+ ## What you get
170
+
171
+ | | |
172
+ | --- | --- |
173
+ | **Any target** | a program, text, or an agent — anything Git-versioned and scoreable |
174
+ | **Any producer** | a coding agent (any provider via LiteLLM), an external command, or a custom strategy |
175
+ | **Durable and inspectable** | every candidate is versioned and re-selectable; tool calls and evaluations stream to an event log |
176
+ | **Population search** | `EvolutionaryStrategy` fans out N offspring per round with tournament selection |
177
+ | **Metered** | per-scope token accounting through the gateway, with per-case cost and latency distributions |
178
+
179
+ ## Where things are
180
+
181
+ | Path | What |
182
+ | --- | --- |
183
+ | [`docs/guide.md`](docs/guide.md) | the full guide: Harbor, command harness, Python API, tasks, sessions, concepts, safety boundaries |
184
+ | [`docs/harbor-architecture.md`](docs/harbor-architecture.md) | how the contained run is assembled, module by module |
185
+ | [`docs/agent-setup-guide.md`](docs/agent-setup-guide.md) | getting a coding agent wired up |
186
+ | [`examples/`](examples/) | c-matmul (no credentials), circle-packing, harbor-circle-packing, harness-conformance |
187
+ | [`src/vero/`](src/vero/) | the library: optimization kernel, runtime, gateway, sidecar, CLI, agent adapters |
188
+
189
+ For end-to-end agent-optimization benchmarks, see
190
+ [`../harness-engineering-bench/`](../harness-engineering-bench/), which also
191
+ documents how each coding agent must be pointed at the gateway — the one thing
192
+ that reliably costs a run when it is wrong.
193
+
194
+ ## Paper and reproduction
195
+
196
+ VeRO was introduced in [*VeRO: A Harness for Agents to Optimize
197
+ Agents*](https://arxiv.org/abs/2602.22480), accepted at ICML 2026. The paper
198
+ studies agent-harness optimization; the current library generalizes the same
199
+ version/evaluate/select loop to programs more broadly.
200
+
201
+ The frozen code for reproducing the paper is preserved on the `paper/v1` branch
202
+ and at the `paper-v1` tag:
203
+
204
+ ```bash
205
+ git checkout paper-v1
206
+ ```
207
+
208
+ The same pre-v0.5 tree is also readable in place under
209
+ [`../legacy/`](../legacy/). Note that it is `scale-vero` 0.4.7 and this is 0.5.0,
210
+ both importing as `vero`, so they cannot share a virtualenv.
211
+
212
+ ## Development
213
+
214
+ ```bash
215
+ uv sync --all-extras
216
+ uv run pytest tests/test_v05_*.py
217
+ ```
218
+
219
+ VeRO is licensed under the MIT License.
@@ -0,0 +1,130 @@
1
+ vero/__init__.py,sha256=91Qf1606S0Edki9savsTcV7UXqLmH29fVmOX1YYn_iE,887
2
+ vero/candidate.py,sha256=TqmKGkoRg-KqPDQ5xVpYd0IBEkTIs5QWlzJuERDhWbM,2415
3
+ vero/cli.py,sha256=PoL9CR4Jhh7vMAt2urO0KKBhLCMgH5mpD3ScheRMVUs,33822
4
+ vero/config.py,sha256=A16ikOFokQ3-1wOq9llVoDn5k_uijUUnEr2es3fIVtk,19312
5
+ vero/evals_cli.py,sha256=PEVrwEpiIfe0VMqln9MI2JGhV9X0ripj-QLLkjB62Jo,26470
6
+ vero/exceptions.py,sha256=MOqTY14yBxNUAXXK4nVSfp80NXXO2YebhBgAVUxJU9o,74
7
+ vero/layout.py,sha256=M1Ge806KmYyuO3CH0yTJjo01-S_5rco2WLRRTULr30c,7368
8
+ vero/models.py,sha256=_en5V2AmQ9cTGK0m6rs3xW4FC16QYRz-7nxjITgLqUE,461
9
+ vero/report.py,sha256=av71aYK2F2LR3TCYmuv1O3_KzuAzEWEYoBf7acXiGNM,18928
10
+ vero/sandbox.py,sha256=jdsGaQsVuhHL9RsMxNosZ4GWqxi38YzNa3lGqD9l_TU,26832
11
+ vero/staging.py,sha256=UjQtgKwWo60x9u7AKqtyeNXYzAs_RUDZjWVB-ILStRk,2678
12
+ vero/agents/__init__.py,sha256=akQDnSBn16k5GCF1z4dABUBqRzSm07VYJisGtMUvm_Q,609
13
+ vero/agents/claude_code.py,sha256=rX-vlzyXcBnSnifKLr1xIkerRIzudt8KQlsSlJdXO5w,13255
14
+ vero/agents/events.py,sha256=oO_hwe6Ux-ZgWh-a2VKEPXvZAkixU2M5sFE0RXrTCI8,886
15
+ vero/agents/producer.py,sha256=MLRMh_rRcUIvKazHUpo3XV-_1hdoFWqnReQNdmAvHCA,5604
16
+ vero/agents/protocol.py,sha256=dQdigmhIQ6YGulNMQiMjWCU6hhnq4b8w8CelMAkQip0,2828
17
+ vero/agents/vero.py,sha256=rKEnlJ-fnTX10P7ZbRB6_QRQIMhv4nY2yPtJd3RoJuE,15430
18
+ vero/candidate_repository/__init__.py,sha256=vOvHaMadGWmXSvjJtTyR-xf_Be7WJA1NFQOHiJkAxVY,310
19
+ vero/candidate_repository/base.py,sha256=8mtzQRRMx8CT7zK6SW5EdMQ82uKLTVghIbnkfxX49T0,2478
20
+ vero/candidate_repository/git.py,sha256=JbPM4SchUC2OoA59O_bfcFaCJGZAUr3Xn3RNzf38Q7I,31857
21
+ vero/evaluation/__init__.py,sha256=1ccdiuRHVXduAvKYVvbRBpeUecNnriFMZUwTgADPkrQ,4602
22
+ vero/evaluation/engine.py,sha256=oAPj80JC7HtORJnIOg0m_B66CibFyssIR-qpZFqOjUA,22116
23
+ vero/evaluation/evaluator.py,sha256=wIx6UqjAnDFdMqHIV8AtOswhI75OHZ6k5B1kPOmCAsw,11029
24
+ vero/evaluation/exceptions.py,sha256=baA5GXfjLZUPQ5ZMU6lNPvWdwQA2kEMSY8PeQVD284g,1814
25
+ vero/evaluation/models.py,sha256=Tdql3fqfRsP39H5JCdKaPmiFFf_DBk-z665A6tdhWdQ,28116
26
+ vero/evaluation/backends/__init__.py,sha256=6b0tyDz2Ek52uh1HdxFLs3ll2hIeqN-pxCnkj3t-drw,368
27
+ vero/evaluation/backends/base.py,sha256=1qe3T41qheIJGfVCmxxePLN_Kqs1Lht6ZOApS0oML1w,3390
28
+ vero/evaluation/backends/command.py,sha256=HfxXwbp7CU6uGjTsd59eaxLpoOKYCLICnM8ftdWI-M0,14449
29
+ vero/evaluation/backends/python_task.py,sha256=O08vFaHZuOKyjFOqq7lNDOiSkuOyAp81gxV5s7f77XA,12384
30
+ vero/evaluation/scoring/__init__.py,sha256=wGkFEuN6MMbH8HSbtaRH166Eab8qFfIPI3mdsptcHJA,276
31
+ vero/evaluation/scoring/error_taxonomy.py,sha256=EyW9gJoBaSoJu9qShT3v7TuiwzOQb62Mo3gS-y7cNvo,12353
32
+ vero/evaluation/scoring/objective.py,sha256=i3-uwwtuzeE5-gwDMUgOkGJUsqyvdRrMlyJ5NunST5I,6584
33
+ vero/evaluation/scoring/security.py,sha256=weAZElrMO9ZrqGtX3kgeA2X0pGPbAROf0fyVTQXajMU,3555
34
+ vero/evaluation/store/__init__.py,sha256=arM-Q0KeTsfPdWf7NXLxg_vRy3LYhs_1XlKj2j0tQB4,269
35
+ vero/evaluation/store/budget.py,sha256=VQqAGrK3eZmYbu4HNHELHJ3zYhsEjnHFUgGT_4Jxm6o,9962
36
+ vero/evaluation/store/persistence.py,sha256=UeTjBUbbU7GvrZfETyES4Xlk0jPqr_RB-f7GYnqOPMc,17878
37
+ vero/gateway/__init__.py,sha256=VKQa9rTW-fMBN6ZW2bpYvBlscLuM3Hy6ETGimlXNmeI,662
38
+ vero/gateway/inference.py,sha256=gQgWoSDIOODTVQURUq3XBqjNC-FMsJX_zu5eir0y_Gw,50195
39
+ vero/harbor/__init__.py,sha256=tg0Gff6WUxUa6eJ32-vkK3bfgIRsdFAxv6dzWM-iefk,1500
40
+ vero/harbor/backend.py,sha256=cik0Ru48BSna1ANaB0UMfobhyfoEdfAVQzQCT-Lzxp8,77430
41
+ vero/harbor/cli.py,sha256=5z_OK_A0qxalcwX5mwwCC3ZEDJJG6l7S23L4Lmk6L8k,50691
42
+ vero/harbor/deployment.py,sha256=d1C5DwwWLSOMF_V-MxnvW2ZX_wt6SIYKn65Dwe3pCXU,18701
43
+ vero/harbor/generation.py,sha256=CXDHzNidYcGutauexQshlCCBLONCnnrvoUv6n4A2OnQ,2279
44
+ vero/harbor/build/__init__.py,sha256=tWY4wKxPwzlLb3V93Wm8JrciFY8tA07SiJzEJSqM_5g,1020
45
+ vero/harbor/build/compiler.py,sha256=RwGyx3p9IzF3lO7ynRseSPQoTnUIDDvQIi3JcZaXo9k,37116
46
+ vero/harbor/build/config.py,sha256=RpkyuWDPuEbxlfLmjJz-ygxjSJhtKb1G9fpNlbqwVWY,34411
47
+ vero/harbor/build/loader.py,sha256=9II0bgv3MIyOgBbD5MuR2iswrlyBDTZ5RilvBG_3Syg,6863
48
+ vero/harbor/build/specs.py,sha256=hb-uy_rA-xnShjTndKdiWt8kmBKxUvc9KP0euhCeGTg,16102
49
+ vero/harbor/build/templates/Dockerfile.gateway.j2,sha256=w5-xSFblrsR_AUW6crf-TR37rbpbVe_PY2S4IyT3si0,485
50
+ vero/harbor/build/templates/Dockerfile.main.j2,sha256=LXEkRaRHbKD5kkZb_o0ihrINzEJm-raJKxuAek8ZSMM,668
51
+ vero/harbor/build/templates/Dockerfile.sidecar.j2,sha256=3yutXn8MvHewRcJV9KYXPTBXeK5aCFlTotxXrXDvjGg,2436
52
+ vero/harbor/build/templates/docker-compose.yaml.j2,sha256=gzFVfkfhLYzAuM_tUiwXBPwZsLt8MiqKRP9ljd9i6jA,3410
53
+ vero/harbor/build/templates/instruction.md.j2,sha256=MvKDjPcbgr2O5ugi9EOKQuE5IVrwFL4JrJDv5O6rVyo,6274
54
+ vero/harbor/build/templates/seed.sh.j2,sha256=qW65TzlAuq9PTZwZ5M6U_to8PfVEYn3gNK-Al9bWG30,1403
55
+ vero/harbor/build/templates/solve.sh.j2,sha256=3fBSPDQ-tpxxh-eLm9i4UzDpxZjCJuF95zDF1qcjnsM,454
56
+ vero/harbor/build/templates/task.toml.j2,sha256=98EAGrbC-igIEcwXljc2dxR_3S52RpPobqMiYFavmYo,1603
57
+ vero/harbor/build/templates/test.sh.j2,sha256=tjuO_i8ziMW8t4gzQ5A-IArVdizJW32zH5I6ue6hDUI,244
58
+ vero/interpret/__init__.py,sha256=pQFvmOQ6VNClbagOVewCZL8uMz65bf233AqWzDcquKQ,549
59
+ vero/interpret/cache.py,sha256=Ra37w4ouZYJ7jUJbzkZFHdyt20JzRggiJmupPjSzWGw,3292
60
+ vero/interpret/cli.py,sha256=KerPeWkcuGHrBACcIm779Y0MQvST0SY06cWH2tCJ6EA,10753
61
+ vero/interpret/config.py,sha256=LdLWnDh2fp6Z1F4yKuUz4tj0ObsGUfznaQxR_AT0TEg,2543
62
+ vero/interpret/models.py,sha256=IJNsUL_irS1aEpm0fodm8lLQb5jItT24-QEjmFSAcZQ,6794
63
+ vero/interpret/analysis/__init__.py,sha256=PCma2L_NTsOk6UBX_fFgRqS-VoySUKj-6WSJiZis-P0,135
64
+ vero/interpret/analysis/display.py,sha256=Zl0TyNPduGr8wQdmZJuR7skvXolx0rymiV2r2WPS5Sk,2729
65
+ vero/interpret/analysis/figures.py,sha256=RALN49fheHxVUbK3OGGPPsm8P67LzcyXnHTm2fSA2gs,19627
66
+ vero/interpret/analysis/paper_figures.py,sha256=DIsVcHGZuUACbqu0tZNZXQCkNMW9Ye9hUhc76NPXGp0,11150
67
+ vero/interpret/analysis/preamble.py,sha256=37CAMpBXDwb4hE0W7MlbQdcpe9HyHbt-zYwkqLh561I,9494
68
+ vero/interpret/analysis/stats.py,sha256=4BMMhwyq4tuOPPFiPloD_kOr4IIh60NGnZ8XFzVnxac,9268
69
+ vero/interpret/analysis/brand/house_style.py,sha256=HJbf7AcMADoFKtD2DZ5DQD5WK1L0YL4YJNLHDTMmlXo,5381
70
+ vero/interpret/analysis/brand/fonts/GeistMono.ttf,sha256=0A5ZC46zpZrMMpstBE_RQ66TUJC32jMZnr7ifMfegZY,171948
71
+ vero/interpret/analysis/brand/fonts/HostGrotesk.ttf,sha256=dMd7joUNWN09iyLjkRGnO-80UN6ftXAY75kRny1IT10,81784
72
+ vero/interpret/artifacts/__init__.py,sha256=4Fd4CEMWs3aM_cghJ1XnuWgFDjpx6nwHBiCDVjPuZRY,211
73
+ vero/interpret/artifacts/base.py,sha256=TsiR0Zr_SxcKQf-h8V2NJaWVRNhLGkM0DkamwVnYyts,1646
74
+ vero/interpret/artifacts/harbor/__init__.py,sha256=knFUH-H4NK75mw9mpBCG_8E2SScMXr1Et2dxp21__Z0,159
75
+ vero/interpret/artifacts/harbor/adapter.py,sha256=Appa3hNR1Og31ZvIfBnAKpRT2UHbWdxsvBLL5NN8LJg,6969
76
+ vero/interpret/artifacts/harbor/repo.py,sha256=URRPxeOnKRbizq4jcMKy2Xmiqs0MtkINJRBgtgxTMCc,3468
77
+ vero/interpret/artifacts/harbor/session.py,sha256=qna55orJIh051bOHPNdZ1ZUCSkfn9kvoqFGWGX2WGB4,3556
78
+ vero/interpret/edits/__init__.py,sha256=KT_IElZ3iH2lA_QJyXGSCsaD2eM5rALvntHcfJ6Rm-g,153
79
+ vero/interpret/edits/decompose.py,sha256=9-mIr3l2WEhGydWDE3eMKTb2WDdTacWl0OWKjc1fytw,8213
80
+ vero/interpret/edits/locus.py,sha256=GW6HnYjha2eRljrrwFJnEuucJS3ku3vm1UvXNcijHWs,6416
81
+ vero/interpret/edits/provenance.py,sha256=QELhGfUh_KJUhBQS8HqiKvYw27wQlJwoIaifnOGgD38,2681
82
+ vero/interpret/labeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ vero/interpret/labeling/client.py,sha256=swS8coSYQ7UwLb7yRpixs8AHEIXC-WLqe5Qe_RYBUEs,3186
84
+ vero/interpret/labeling/labeler.py,sha256=6OSTcmDfJzM3aVdG-rSg6uaKLM5ThYq3ct_gXXCQwpg,8154
85
+ vero/interpret/labeling/taxonomy.py,sha256=aABtPsvkZAKWI9EB3H6rAIjSvs0qOT_MfLZ3XVYpK_c,9322
86
+ vero/optimization/__init__.py,sha256=fLV848g-2Yz4_xTnrCym9DeEalH_ZTfqkQGm4EO89M0,1233
87
+ vero/optimization/command.py,sha256=4H5h4wLNEUNk3Lxa0t6rlZm5l_bXha93JdNQew8Ciak,6435
88
+ vero/optimization/models.py,sha256=AeSEmMd0RYvN5WY5cu52zq-Rk6Bpq7me7cgMo55N9EQ,4262
89
+ vero/optimization/optimizer.py,sha256=q4Hdoc8NshdnLyIMN1l_YSLxISPxrkAM9M1SZnBogdQ,29951
90
+ vero/optimization/protocols.py,sha256=DD0eLYfhHfYAFMKq19rF63L_9KcEgjbahqimEeyJY7s,2581
91
+ vero/optimization/strategy.py,sha256=6z4LIa1NFcB5_-8PKMmvcJpkuWF8_gvx1QXoncjnE2E,13055
92
+ vero/runtime/__init__.py,sha256=Nevay1iTRnCzpwLWm6HQPU9RmZA7rCdNYkOlPIatbr8,1464
93
+ vero/runtime/artifacts.py,sha256=Cg6O5SPh1bw7rZnrX9O78NgzPetleNEBKHSOa3krQnw,1463
94
+ vero/runtime/context.py,sha256=fWhp8ta31BNH0HvSkPhrWAvvx_aqbGMI4IvhMaJQVwc,23100
95
+ vero/runtime/events.py,sha256=JfNimVxIJPJjOYCQkhO6eIE9WyayTX2tJxr3MNLjomk,3802
96
+ vero/runtime/factory.py,sha256=DSmXEcZixPXVef00LFhrtc5sXv_zQUfpS16g5-lWgsE,10082
97
+ vero/runtime/session.py,sha256=QBgd63Uwoha4zWwaAfseAgLbR3V-yznerbfUhKceFW0,20440
98
+ vero/runtime/wandb.py,sha256=zr3MoEp1rqxmffhNDzHpygFZcPHb_KWZMp8l3eq7n_s,22488
99
+ vero/sidecar/__init__.py,sha256=h5Z9AjDgyHkodYl8BBUIcUMlWwwhuTW4CXOoKd1o2jc,2348
100
+ vero/sidecar/app.py,sha256=pnla9ment5W5R8BuOtINU5CO-J6Ycmzlj-ObGca7C9I,7763
101
+ vero/sidecar/auth.py,sha256=T0Z0bsUGHqB4OScMuqbfAv2tVEi37c2zxn1rSMRDE3k,2654
102
+ vero/sidecar/isolation.py,sha256=LmySiA-562TH8hmlNNbCKEDcoynQ3CDqAZNj4Y-OUzg,2006
103
+ vero/sidecar/serve.py,sha256=4J_Dw1QaVDlMLmy2Mz29nbrZKHpATnzPPA0bQ-2Wm6s,2919
104
+ vero/sidecar/session.py,sha256=h6D56Qi57c4zMd8-Vd21T5ES9niUBJfsmJsPs6u8oKs,8323
105
+ vero/sidecar/sidecar.py,sha256=cQC5TdpzFIQSlls3uuLRhyWclsOGaBzoVWZXn5gX5Dk,33862
106
+ vero/sidecar/transport.py,sha256=WKvLt6Aq5znBtj9WXjubznuztVhyLHiLLWAre_GoIm8,6606
107
+ vero/sidecar/verifier.py,sha256=YNgdFLvNHIelds0njObrUOzTw7DyPLj5kSayeyya1fs,25740
108
+ vero/skills/evals/SKILL.md,sha256=Ms1USjcmTUeLAZhfERePZHawk_bGsvaC1ElbQ6FOKMw,6488
109
+ vero/templates/report.html,sha256=oFR9sq6rqZJ9XqOpHgVgGbovGCTOTojUTvEQ933I4cE,24903
110
+ vero/tools/__init__.py,sha256=VmeQHoOkt5ulp5Q9bDNzz0mQIiNGPxt-I5mJp9LvHvk,903
111
+ vero/tools/base.py,sha256=tj-Znw1DKcWA4m0ikYEY6nL8z1OXO2sXjNlJq2LPy2U,530
112
+ vero/tools/evaluation.py,sha256=Y3OFcJfRiqo89Mg84K6H7SHGNgRkXGevf17Yd2NATYQ,3486
113
+ vero/tools/planning.py,sha256=i2bSUX6sVS5a3pxG7-BKlR7ChdgreyWtuPxzm7Cm4wE,3037
114
+ vero/tools/registry.py,sha256=h1HraZGl_hdCnt9hiKkGByw-96oUq6Ez6-dKxBL5rSA,2803
115
+ vero/tools/sandbox_tools.py,sha256=gV_V6kSV8geARHpYfljPS-UfABdkrgbKxU4CKGgaAME,3041
116
+ vero/tools/sub_agent.py,sha256=ckGSxLNhXzbyVT9TJpsysDsuxJ7tQzNtIEtetGkmitw,6520
117
+ vero/tools/web.py,sha256=1TLW1ZMPqRl7-Ha_9thDgKZ_5ixa2kq_mOnhQh4tyCg,10314
118
+ vero/tools/utils/__init__.py,sha256=YHDUkg5b_9U6kM-8o66-6-dzdSPd3VBrqzCZY_IJeOA,928
119
+ vero/tools/utils/openai_agents.py,sha256=MJPZ2lzdBrrWk2PKjLNeIyUqq8PoILOoSBCokOuTnQY,2795
120
+ vero/utils/__init__.py,sha256=aSdw1Oem2-KX9g1PPGUFl65Uhr0TEiRY55xOva0Ot8Q,549
121
+ vero/utils/asyncio.py,sha256=3AgO8CIJWXx7FSnHffAiPMPDtIH-_oyPUx-mzbLAoYA,8214
122
+ vero/utils/general.py,sha256=5WLwz-YtoX4L0IsgxOiwbF9eb2dmUHYIURwcCTXv8fc,2631
123
+ vero/utils/openai_agents.py,sha256=ylv1YzP68aRMjt3Brrn7-hIGhUAVlsk12uwZgA-vtj4,1667
124
+ vero/workspace/__init__.py,sha256=2wd9NpHD1eucCGJp2ebOICvKTR2UYkS8OPwuXetkq4o,177
125
+ vero/workspace/base.py,sha256=b__MYvXPLUquEQl1H8ZeptfVroSBWTdUCmRHx01x16o,5235
126
+ vero/workspace/git.py,sha256=LXM0xLMka4tYBoKequ_2sZUkjlpFgY-ZEiyIx23cpMc,14679
127
+ scaleapi_vero-0.5.0.dist-info/METADATA,sha256=nn3xl0U7EJPR_pUpHTSzRQna5ryG-wLl_7mUsHSOeAw,11348
128
+ scaleapi_vero-0.5.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
129
+ scaleapi_vero-0.5.0.dist-info/entry_points.txt,sha256=jYSxsX5il21dxt1bqdc82OSNYtseD6b2Irrfe7m2NJI,67
130
+ scaleapi_vero-0.5.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ evals = vero.evals_cli:main
3
+ vero = vero.cli:main
vero/__init__.py ADDED
@@ -0,0 +1,34 @@
1
+ """VeRO's public program-optimization API."""
2
+
3
+ from vero.candidate import Candidate
4
+ from vero.candidate_repository import CandidateRepository, GitCandidateRepository
5
+ from vero.evaluation import (
6
+ EvaluationBackend,
7
+ EvaluationRecord,
8
+ EvaluationReport,
9
+ EvaluationSet,
10
+ ObjectiveSpec,
11
+ )
12
+ from vero.optimization import CandidateProducer, OptimizationStrategy, Optimizer
13
+ from vero.runtime import (
14
+ OptimizationSession,
15
+ create_local_optimization_session,
16
+ create_optimization_session,
17
+ )
18
+
19
+ __all__ = [
20
+ "Candidate",
21
+ "CandidateRepository",
22
+ "CandidateProducer",
23
+ "EvaluationBackend",
24
+ "EvaluationRecord",
25
+ "EvaluationReport",
26
+ "EvaluationSet",
27
+ "GitCandidateRepository",
28
+ "ObjectiveSpec",
29
+ "OptimizationSession",
30
+ "OptimizationStrategy",
31
+ "Optimizer",
32
+ "create_optimization_session",
33
+ "create_local_optimization_session",
34
+ ]
@@ -0,0 +1,24 @@
1
+ from .producer import AgentCandidateProducer
2
+ from .protocol import AgentContext, AgentRequirements, AgentRunResult, CodingAgent
3
+
4
+ __all__ = [
5
+ "AgentCandidateProducer",
6
+ "AgentContext",
7
+ "AgentRequirements",
8
+ "AgentRunResult",
9
+ "ClaudeCodeAgent",
10
+ "CodingAgent",
11
+ "VeroAgent",
12
+ ]
13
+
14
+
15
+ def __getattr__(name: str):
16
+ if name == "ClaudeCodeAgent":
17
+ from .claude_code import ClaudeCodeAgent
18
+
19
+ return ClaudeCodeAgent
20
+ if name == "VeroAgent":
21
+ from .vero import VeroAgent
22
+
23
+ return VeroAgent
24
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")