Skip to main content

oro-env-runtime

Portable sealed-pack execution and verification for ORO environments.

Requires Python 3.11 or newer and is distributed under the MIT License.

pip install oro-env-runtime

Public API

  • TaskSession(epoch_dir, task_id, ...): opens one task of a sealed pack. policy_view() returns the task query, tool schemas and contract versions; step() and step_parallel() run one ordered action group and return observation, done and error per call; run() runs the managed solver and shopper-simulator loop; verdict() returns the VerifierResult.
  • check_epoch(epoch_dir): the loading checks TaskSession runs on a pack it has not seen: file set and checksums, pack format, the delivery declaration and its runtime contract, and every task row. Returns the errors, empty when the pack loads.
  • validate_delivery_binding(...): checks delivered bytes against the scope and roster they were authorized for, and refuses a delivery whose runtime_contract is not this runtime's RUNTIME_CONTRACT.
  • replay_actions, make_replay_artifact, validate_replay_artifact: deterministic replay of recorded action groups.
  • failure_classes(verdict, situation): see below.

Configured Readers require an explicit reader_completion run client; the runtime does not choose a funding account. Validators bind the same miner-funded simulator client for Reader, shopper and rewording requests. TaskSession.run(reader_completion=...) uses that client for its shopper loop. Rewording uses Jev when the bound client supports decide, with the LLM meaning-preservation judge as fallback. Without decide, that LLM judge uses the same bound client. Reader policy and reference state are pack data, outside this public package. The inference account owner and validator host may inspect those requests; using a separate request does not make them confidential.

step() and step_parallel() do not deliver queued shopper lines, and an order is refused with line_pending while one is unsaid. An adapter with its own turn boundary runs each turn in this order, as replay_actions does: session.env.begin_solver_turn(n) for the coming turn (n = session.solver_turn_count + 1); then oro_env_runtime.loop.reword_utterances and say_utterances to deliver the lines that boundary fired; then step_parallel(group); then reword_utterances and say_utterances again for lines the group fired. Shopper replies are recorded with oro_env_runtime.loop.record_user_message.

A pack is a directory with exactly manifest.json, checksums.sha256 and data/tasks/private_tasks.jsonl. TaskSession caches each file digest while its size and mtime_ns are unchanged, so consumers must mount each pack on a read-only or otherwise immutable filesystem for the full execution lifetime.

Contract versions

Contract Version
Pack format oro_compiled_epoch_v7
Environment oro.env.v3
Runtime 0.3.4
Result schema v2
Delivery subset oro.delivery_subset.v1
Runtime contract (RUNTIME_CONTRACT) 3

The event and replay contract versions are exported from oro_env_runtime.contracts. These are labels, separate from the package version. RUNTIME_CONTRACT is the one compatibility gate: every delivery declares the contract it was built for and runs only on a runtime with the same one.

Failure feedback

failure_classes(verdict, situation) returns {"primary", "categories"} for one episode. verdict is the validator's episode result (outcome and the verifier result under verdict) or a verifier result alone; situation is the episode task's own situation. categories follow the order of oro_env_runtime.failure.CATEGORIES and primary is the first: did_not_finish (no order placed, or the agent errored), request_not_met, needs_not_found, changes_missed, process_issue, not_best_option, extra_questions. infrastructure (an environment or verifier error, or a missing or ungradable verdict) is never the miner's failure and is then the only entry.

Releasing

Bump project.version in pyproject.toml in a reviewed pull request. Merging it to main tags runtime-vMAJOR.MINOR.PATCH and publishes to PyPI. PyPI releases are immutable: fix a bad release with a new version.

Metadata

Release files for oro-env-runtime 3.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for oro-env-runtime 3.4.0
File Interpreter ABI Platform
oro_env_runtime-3.4.0-py3-none-any.whl Python 3 none any Details

Release files / oro_env_runtime-3.4.0-py3-none-any.whl

Download URL oro_env_runtime-3.4.0-py3-none-any.whl
Size 70.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79c8bffd80beeec0a6231bb69367cb9218072faf414f8ea58fa0af19d7461907
BLAKE2b-256 checksum
How to use checksums
5a5c8f5b0c19e9aa32bc91b1bd94527f9cb8688ad51000a1e0f59d73344904a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

3.7.1

1 release file

3.7.0

1 release file

3.6.0

1 release file

3.5.0

1 release file

This release

3.4.0 This release

1 release file

3.3.0

1 release file

3.2.0

1 release file

3.1.0

1 release file

3.0.3

1 release file

3.0.2

1 release file

2.0.1

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.2.18

1 release file

0.2.16

1 release file

0.2.15

1 release file

0.2.14

1 release file

0.2.13

1 release file

0.2.12

1 release file

0.2.11

1 release file

0.2.10

1 release file

0.2.9

1 release file

0.2.7

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page