openenv 0.3.0__tar.gz → 0.4.0__tar.gz

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 (99) hide show
  1. openenv-0.4.0/LICENSE +28 -0
  2. {openenv-0.3.0/src/openenv.egg-info → openenv-0.4.0}/PKG-INFO +57 -90
  3. {openenv-0.3.0 → openenv-0.4.0}/README.md +47 -57
  4. {openenv-0.3.0 → openenv-0.4.0}/pyproject.toml +17 -37
  5. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/__init__.py +1 -5
  6. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/_discovery.py +23 -25
  7. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/auto_action.py +6 -10
  8. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/auto_env.py +21 -13
  9. openenv-0.4.0/src/openenv/cli/__init__.py +5 -0
  10. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/__main__.py +1 -5
  11. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/_cli_utils.py +23 -9
  12. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/_validation.py +32 -30
  13. openenv-0.4.0/src/openenv/cli/commands/__init__.py +7 -0
  14. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/build.py +38 -36
  15. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/collect.py +1 -5
  16. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/fork.py +7 -32
  17. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/init.py +5 -2
  18. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/push.py +20 -52
  19. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/serve.py +1 -5
  20. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/skills.py +19 -16
  21. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/validate.py +4 -5
  22. openenv-0.4.0/src/openenv/cli/templates/__init__.py +3 -0
  23. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/README.md +1 -1
  24. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/__init__.py +1 -5
  25. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/client.py +3 -6
  26. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/models.py +1 -5
  27. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/pyproject.toml +3 -7
  28. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/Dockerfile +2 -6
  29. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/__ENV_NAME___environment.py +1 -5
  30. openenv-0.4.0/src/openenv/cli/templates/openenv_env/server/__init__.py +7 -0
  31. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/app.py +1 -5
  32. openenv-0.4.0/src/openenv/cli/templates/openenv_env/server/requirements.txt +6 -0
  33. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/__init__.py +1 -5
  34. openenv-0.4.0/src/openenv/core/client_types.py +29 -0
  35. openenv-0.4.0/src/openenv/core/containers/__init__.py +3 -0
  36. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/containers/runtime/__init__.py +6 -5
  37. openenv-0.4.0/src/openenv/core/containers/runtime/aca_provider.py +690 -0
  38. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/containers/runtime/daytona_provider.py +28 -14
  39. openenv-0.4.0/src/openenv/core/containers/runtime/hf_sandbox_provider.py +328 -0
  40. openenv-0.4.0/src/openenv/core/containers/runtime/modal_provider.py +735 -0
  41. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/containers/runtime/providers.py +128 -70
  42. openenv-0.4.0/src/openenv/core/containers/runtime/uv_provider.py +309 -0
  43. openenv-0.4.0/src/openenv/core/env_client.py +797 -0
  44. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/__init__.py +1 -5
  45. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/base_transforms.py +1 -5
  46. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/exceptions.py +1 -5
  47. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/gradio_theme.py +1 -5
  48. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/gradio_ui.py +1 -5
  49. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/http_server.py +160 -134
  50. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/interfaces.py +84 -64
  51. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/mcp_environment.py +64 -55
  52. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/mcp_types.py +3 -8
  53. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/route_config.py +17 -17
  54. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/serialization.py +52 -48
  55. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/types.py +7 -5
  56. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/web_interface.py +12 -17
  57. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/__init__.py +1 -5
  58. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/base.py +1 -5
  59. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/inspect_harness.py +1 -5
  60. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/types.py +1 -5
  61. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/generic_client.py +56 -49
  62. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/harness/__init__.py +1 -5
  63. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/harness/collect.py +17 -32
  64. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/llm_client.py +75 -47
  65. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/mcp_client.py +128 -100
  66. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/__init__.py +1 -5
  67. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/base.py +44 -23
  68. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/containers.py +64 -173
  69. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/llm_judge.py +17 -13
  70. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/trajectory.py +29 -21
  71. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/sync_client.py +82 -40
  72. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/tools/__init__.py +1 -5
  73. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/tools/git_server_client.py +43 -30
  74. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/tools/local_python_executor.py +1 -5
  75. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/utils.py +1 -5
  76. {openenv-0.3.0 → openenv-0.4.0/src/openenv.egg-info}/PKG-INFO +57 -90
  77. {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/SOURCES.txt +3 -0
  78. openenv-0.4.0/src/openenv.egg-info/requires.txt +31 -0
  79. {openenv-0.3.0 → openenv-0.4.0}/tests/test_line_endings.py +1 -5
  80. openenv-0.3.0/LICENSE +0 -28
  81. openenv-0.3.0/src/openenv/cli/__init__.py +0 -9
  82. openenv-0.3.0/src/openenv/cli/commands/__init__.py +0 -11
  83. openenv-0.3.0/src/openenv/cli/templates/__init__.py +0 -7
  84. openenv-0.3.0/src/openenv/cli/templates/openenv_env/server/__init__.py +0 -11
  85. openenv-0.3.0/src/openenv/cli/templates/openenv_env/server/requirements.txt +0 -6
  86. openenv-0.3.0/src/openenv/core/client_types.py +0 -23
  87. openenv-0.3.0/src/openenv/core/containers/__init__.py +0 -7
  88. openenv-0.3.0/src/openenv/core/containers/runtime/uv_provider.py +0 -224
  89. openenv-0.3.0/src/openenv/core/env_client.py +0 -484
  90. openenv-0.3.0/src/openenv.egg-info/requires.txt +0 -57
  91. {openenv-0.3.0 → openenv-0.4.0}/MANIFEST.in +0 -0
  92. {openenv-0.3.0 → openenv-0.4.0}/setup.cfg +0 -0
  93. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/__init__.py +0 -0
  94. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/openenv.yaml +0 -0
  95. {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/containers/test_local_docker_provider.py +0 -0
  96. {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/dependency_links.txt +0 -0
  97. {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/entry_points.txt +0 -0
  98. {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/top_level.txt +0 -0
  99. {openenv-0.3.0 → openenv-0.4.0}/src/openenv_core/__init__.py +0 -0
openenv-0.4.0/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2026, Hugging Face, Inc.
4
+
5
+ Redistribution and use in source and binary forms, with or without modification,
6
+ are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its contributors
16
+ may be used to endorse or promote products derived from this software without
17
+ specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
23
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,12 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openenv
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: A unified framework for reinforcement learning environments
5
+ License-Expression: BSD-3-Clause
5
6
  Requires-Python: >=3.10
6
7
  Description-Content-Type: text/markdown
7
8
  License-File: LICENSE
8
- Requires-Dist: fastapi>=0.104.0
9
+ Requires-Dist: fastapi>=0.116.0
9
10
  Requires-Dist: pydantic>=2.0.0
11
+ Requires-Dist: typing_extensions>=4.0.0
10
12
  Requires-Dist: uvicorn>=0.24.0
11
13
  Requires-Dist: requests>=2.25.0
12
14
  Requires-Dist: typer>=0.9.0
@@ -20,58 +22,37 @@ Requires-Dist: websockets>=15.0.1
20
22
  Requires-Dist: fastmcp>=3.0.0
21
23
  Requires-Dist: gradio>=4.0.0
22
24
  Requires-Dist: httpx>=0.28.1
23
- Provides-Extra: core
24
- Requires-Dist: fastapi>=0.104.0; extra == "core"
25
- Requires-Dist: pydantic>=2.0.0; extra == "core"
26
- Requires-Dist: uvicorn>=0.24.0; extra == "core"
27
- Requires-Dist: requests>=2.25.0; extra == "core"
28
- Requires-Dist: websockets>=15.0.1; extra == "core"
29
- Provides-Extra: cli
30
- Requires-Dist: typer>=0.9.0; extra == "cli"
31
- Requires-Dist: rich>=13.0.0; extra == "cli"
32
- Requires-Dist: pyyaml>=6.0; extra == "cli"
33
- Requires-Dist: huggingface_hub>=0.20.0; extra == "cli"
34
- Requires-Dist: openai>=2.7.2; extra == "cli"
35
- Requires-Dist: tomli>=2.3.0; extra == "cli"
36
- Requires-Dist: tomli-w>=1.2.0; extra == "cli"
37
- Provides-Extra: docs
38
- Requires-Dist: sphinx==7.2.6; extra == "docs"
39
- Requires-Dist: pytorch-sphinx-theme2; extra == "docs"
40
- Requires-Dist: sphinxcontrib.katex==0.9.11; extra == "docs"
41
- Requires-Dist: docutils<0.23,>=0.18.1; extra == "docs"
42
- Requires-Dist: sphinx-design==0.6.1; extra == "docs"
43
- Requires-Dist: sphinxcontrib-mermaid==2.0.2; extra == "docs"
44
- Requires-Dist: myst-parser; extra == "docs"
45
- Requires-Dist: sphinxext-opengraph; extra == "docs"
46
- Requires-Dist: sphinx-sitemap==2.9.0; extra == "docs"
47
- Requires-Dist: sphinx-gallery>=0.14.0; extra == "docs"
48
- Requires-Dist: matplotlib; extra == "docs"
49
- Requires-Dist: nest-asyncio; extra == "docs"
50
- Requires-Dist: smolagents; extra == "docs"
51
- Provides-Extra: all
52
- Requires-Dist: openenv[core]; extra == "all"
53
- Requires-Dist: openenv[cli]; extra == "all"
54
25
  Provides-Extra: daytona
55
26
  Requires-Dist: daytona>=0.136.0; extra == "daytona"
56
27
  Requires-Dist: pyyaml>=6.0; extra == "daytona"
28
+ Provides-Extra: aca
29
+ Requires-Dist: azure-containerapps-sandbox<0.2.0,>=0.1.0b2; extra == "aca"
30
+ Requires-Dist: azure-identity>=1.23.0; extra == "aca"
31
+ Provides-Extra: modal
32
+ Requires-Dist: modal>=1.4.0; extra == "modal"
33
+ Requires-Dist: pyyaml>=6.0; extra == "modal"
57
34
  Provides-Extra: inspect
58
35
  Requires-Dist: inspect-ai>=0.3.0; extra == "inspect"
59
36
  Dynamic: license-file
60
37
 
61
- # <img width="35" height="35" alt="image" src="https://github.com/user-attachments/assets/2700a971-e5d6-4036-b03f-2f89c9791609" /> OpenEnv: Agentic Execution Environments
38
+ # OpenEnv: Agentic Execution Environments
62
39
 
63
40
  An e2e framework for creating, deploying and using isolated execution environments for agentic RL training, built using Gymnasium style simple APIs.
64
41
 
65
- [![PyPI](https://img.shields.io/pypi/v/openenv?color=blue)](https://pypi.org/project/openenv/)
66
- [![Discord](https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white)](https://discord.gg/YsTYBh6PD9)
67
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-pytorch/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb)
68
- [![Docs](https://img.shields.io/badge/Docs-Explore-blue?logo=readthedocs&logoColor=white)](https://meta-pytorch.org/OpenEnv/)
42
+ <p align="center">
43
+ <a href="https://pypi.org/project/openenv/"><img alt="PyPI" src="https://img.shields.io/pypi/v/openenv?color=blue"/></a>
44
+ <a href="https://github.com/huggingface/OpenEnv/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg"/></a>
45
+ <a href="https://huggingface.co/docs/openenv"><img alt="Docs" src="https://img.shields.io/badge/Docs-Explore-blue?logo=readthedocs&logoColor=white"/></a>
46
+ <a href="https://huggingface.co/openenv"><img alt="Hugging Face" src="https://img.shields.io/badge/🤗%20Hugging%20Face-OpenEnv-yellow"/></a>
47
+ <a href="https://discord.gg/YsTYBh6PD9"><img alt="Discord" src="https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white"/></a>
48
+ <a href="https://colab.research.google.com/github/huggingface/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a>
49
+ </p>
69
50
 
70
51
  ---
71
52
 
72
- **🚀 Featured Example:** Train LLMs to play BlackJack using [torchforge](https://github.com/meta-pytorch/torchforge) (PyTorch's agentic RL framework): [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
53
+ **Featured Example:** Train LLMs to play BlackJack using [torchforge](https://meta-pytorch.org/torchforge/) (PyTorch's agentic RL framework): [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
73
54
 
74
- **🔥 Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.
55
+ **Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.
75
56
 
76
57
  ## Quick Start
77
58
 
@@ -130,15 +111,7 @@ with EchoEnv(base_url="https://openenv-echo-env.hf.space").sync() as client:
130
111
  print(result.observation.result)
131
112
  ```
132
113
 
133
- For a detailed quick start, check out the [docs page](https://meta-pytorch.org/OpenEnv/auto_getting_started/index.html).
134
-
135
- ## OpenEnv on partner platforms:
136
-
137
- - [Lightning AI Studio](https://lightning.ai/environments?section=featured)
138
- - [TRL example](https://huggingface.co/docs/trl/openenv)
139
- - [Unsloth Google Colab](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
140
- - [ART example](https://art.openpipe.ai/integrations/openenv-integration)
141
- - [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb)
114
+ For a detailed quick start, check out the [docs page](https://huggingface.co/docs/openenv/getting-started).
142
115
 
143
116
  ## Overview
144
117
 
@@ -150,20 +123,23 @@ The OpenEnv CLI (`openenv`) provides commands to initialize new environments and
150
123
 
151
124
  > ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
152
125
  > stage. You should expect bugs, incomplete features, and APIs that may change
153
- > in future versions. The project welcomes bugfixes, but to make sure things are
154
- > well coordinated you should discuss any significant change before starting the
155
- > work. It's recommended that you signal your intention to contribute in the
156
- > issue tracker, either by filing a new issue or by claiming an existing one.
126
+ > in future versions. The project welcomes bugfixes, but significant changes
127
+ > should be discussed before implementation so the technical committee and
128
+ > community can coordinate scope, compatibility, and release timing. It's
129
+ > recommended that you signal your intention to contribute in the issue tracker,
130
+ > either by filing a new issue or by claiming an existing one.
157
131
 
158
132
  ### RFCs
159
133
 
160
134
  Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
161
135
 
162
- - [RFC 001: Baseline API and Interface Specifications](https://github.com/meta-pytorch/OpenEnv/pull/26)
163
- - [RFC 002: Discoverability of environment tools by agents](https://github.com/meta-pytorch/OpenEnv/pull/32)
164
- - [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/meta-pytorch/OpenEnv/pull/224)
165
- - [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/meta-pytorch/OpenEnv/pull/337)
166
- - [RFC 005: Agentic Harness Integration](https://github.com/meta-pytorch/OpenEnv/pull/387)
136
+ - [RFC 000: Project Phases and Design Principles](https://github.com/huggingface/OpenEnv/pull/44)
137
+ - [RFC 001: Baseline API and Interface Specifications](https://github.com/huggingface/OpenEnv/pull/26)
138
+ - [RFC 002: Discoverability of environment tools by agents](https://github.com/huggingface/OpenEnv/pull/32)
139
+ - [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/huggingface/OpenEnv/pull/224)
140
+ - [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/huggingface/OpenEnv/pull/337)
141
+ - [RFC 005: Agentic Harness Integration](https://github.com/huggingface/OpenEnv/pull/387)
142
+ - [RFC 010: Env-token World Modeling (ECHO)](https://github.com/huggingface/OpenEnv/pull/819)
167
143
 
168
144
  ## Architecture
169
145
 
@@ -235,7 +211,9 @@ Base class for environment communication:
235
211
  #### 4. Container Providers
236
212
  Manage container deployment:
237
213
  - `LocalDockerProvider`: Run containers on local Docker daemon
238
- - `KubernetesProvider`: Deploy to K8s clusters (future)
214
+ - `DockerSwarmProvider`: Deploy to Docker Swarm clusters
215
+ - `UVProvider`, `DaytonaProvider`, `ACASandboxProvider`: Additional runtime providers
216
+ - `KubernetesProvider`: Deploy to Kubernetes clusters (planned)
239
217
 
240
218
  #### 5. Models
241
219
  Type-safe data structures:
@@ -297,18 +275,12 @@ uv pip install -e .
297
275
  uv run server --host 0.0.0.0 --port 8000
298
276
  ```
299
277
 
300
- **Benefits:**
301
- - ✅ **Client-side extensions**: Modify client classes locally without repo changes
302
- - ✅ **Better dependency management**: Clear separation between environments
303
- - ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
304
- - ✅ **CI/CD ready**: Automated dependency generation and validation
305
-
306
278
  See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
307
279
 
308
280
  ### For Environment Users
309
281
 
310
282
  To use an environment:
311
- 1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/echo-env`
283
+ 1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/echo_env`
312
284
  2. Import: `from echo_env import CallToolAction, EchoEnv`
313
285
  3. Use async (recommended) or sync API:
314
286
 
@@ -334,6 +306,10 @@ The OpenEnv CLI provides commands to manage environments:
334
306
 
335
307
  - **`openenv init <env_name>`** - Initialize a new environment from template
336
308
  - **`openenv push [--repo-id <repo>] [--private]`** - Deploy environment to Hugging Face Spaces
309
+ - **`openenv serve`** - Serve an environment locally with optional auto-reload
310
+ - **`openenv build`** - Build the Docker image for an environment
311
+ - **`openenv fork <space-id>`** - Fork a Space from HF Hub to your account
312
+ - **`openenv validate`** - Validate an environment configuration
337
313
 
338
314
  ### Quick Start
339
315
 
@@ -346,14 +322,7 @@ cd my_game_env
346
322
  openenv push
347
323
  ```
348
324
 
349
- For detailed options: `openenv init --help` and `openenv push --help`.
350
-
351
- ## Design Principles
352
-
353
- 1. **Separation of Concerns**: Clear client-server boundaries
354
- 2. **Type Safety**: Strongly-typed actions, observations, and state
355
- 3. **Container Isolation**: Each environment runs in its own container
356
- 4. **Simple APIs**: Minimal, intuitive interfaces
325
+ For detailed options run any command with `--help`.
357
326
 
358
327
  ## Development
359
328
 
@@ -361,7 +330,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
361
330
 
362
331
  ```bash
363
332
  # Clone the repository
364
- git clone https://github.com/meta-pytorch/OpenEnv.git
333
+ git clone https://github.com/huggingface/OpenEnv.git
365
334
  cd OpenEnv
366
335
 
367
336
  # Install core package in editable mode
@@ -397,24 +366,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
397
366
 
398
367
  Tests will be automatically skipped if their required dependencies aren't installed.
399
368
 
400
- ## Requirements
369
+ ## Integrations
401
370
 
402
- - Python 3.10+
403
- - Docker Desktop or Docker Engine
404
- - FastAPI >= 0.104.0
405
- - Uvicorn >= 0.24.0
406
- - Requests >= 2.25.0
407
- - Environment-specific dependencies (e.g., smolagents for coding_env)
371
+ OpenEnv works with a growing ecosystem of RL frameworks and platforms. If your project supports OpenEnv, open a PR to add it here.
408
372
 
409
- ## Supported RL Tools
410
- The goal of this project is to support a broad set of open and closed tools to help standardize the agentic RL community. If you have a project that supports OpenEnv environments, please put up a PR to add your tool name along with a link to your documentation.
373
+ ### TRL
374
+ See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
411
375
 
412
376
  ### torchforge
413
377
  See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
414
378
 
415
- ### TRL
416
- See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
417
-
418
379
  ### Unsloth
419
380
  See the 2048 game example based on gpt-oss: [Colab notebook](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
420
381
 
@@ -427,6 +388,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
427
388
  ### Oumi
428
389
  See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb) on how OpenEnv environments can be used to train models with Oumi.
429
390
 
391
+ ### Lightning AI
392
+ [Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
393
+
430
394
  ## Example Environments
431
395
 
432
396
  | Environment | Description |
@@ -437,12 +401,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
437
401
  | [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
438
402
  | [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
439
403
 
440
- > Browse the full catalog of community environments at [meta-pytorch.org/OpenEnv/environments](https://meta-pytorch.org/OpenEnv/environments.html).
404
+ > Browse the full catalog of community environments at [huggingface.co/docs/openenv/environments](https://huggingface.co/docs/openenv/environments).
441
405
 
442
406
  ## Community Support & Acknowledgments
443
- This is an open and community-centric project. If you would like to add your name here, please put up a pull request and tag @jspisak for review. Ty!!
444
407
 
445
- Supporters include: Meta-PyTorch, Hugging Face, [Scaler AI Labs](https://scalerailabs.com), [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), Unsloth AI, Reflection AI, vLLM, SkyRL (UC-Berkeley), LightningAI, Axolotl AI, Stanford Scaling Intelligence Lab, Mithril, [OpenMined](https://openmined.org/), [Fleet AI](https://fleetai.com), [Halluminate](https://halluminate.ai/), [Turing](https://www.turing.com/), [Scale AI](https://scale.com/), [Scorecard](https://www.scorecard.io/) ..
408
+ OpenEnv is governed by a technical committee that coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process. Current committee members: Meta-PyTorch, Reflection, Unsloth, Modal, Prime Intellect, Nvidia, Mercor, Fleet AI, Microsoft, Hugging Face, and RadixArk.
409
+
410
+ The project is also supported by a broader community of organizations. If you would like to add your project or organization here, please open a pull request for maintainer review.
411
+
412
+ Supporters include: [Meta-PyTorch](https://github.com/meta-pytorch), [Hugging Face](https://huggingface.co), [Scaler AI Labs](https://scalerailabs.com), [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), [Unsloth](https://unsloth.ai), [Reflection](https://reflection.ai), [vLLM](https://vllm.ai), [SkyRL](https://skyrl.readthedocs.io) (UC-Berkeley), [Lightning AI](https://lightning.ai), [Axolotl AI](https://github.com/axolotl-ai-cloud/axolotl), [Stanford Scaling Intelligence Lab](https://scalingintelligence.stanford.edu/), [Mithril](https://mithril.ai), [OpenMined](https://openmined.org/), [Fleet AI](https://fleetai.com), [Halluminate](https://halluminate.ai/), [Turing](https://www.turing.com/), [Scale AI](https://scale.com/), [Scorecard](https://www.scorecard.io/), [Snorkel AI](https://snorkel.ai/), [SGLang](https://github.com/sgl-project/sglang), [Miles](https://github.com/radixark/miles)
446
413
 
447
414
  And we'd also like to acknowledge the team at Farama Foundation as the OpenEnv API was heavily inspired by the work you all have done on Gymnasium. Cheers!
448
415
 
@@ -1,17 +1,21 @@
1
- # <img width="35" height="35" alt="image" src="https://github.com/user-attachments/assets/2700a971-e5d6-4036-b03f-2f89c9791609" /> OpenEnv: Agentic Execution Environments
1
+ # OpenEnv: Agentic Execution Environments
2
2
 
3
3
  An e2e framework for creating, deploying and using isolated execution environments for agentic RL training, built using Gymnasium style simple APIs.
4
4
 
5
- [![PyPI](https://img.shields.io/pypi/v/openenv?color=blue)](https://pypi.org/project/openenv/)
6
- [![Discord](https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white)](https://discord.gg/YsTYBh6PD9)
7
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/meta-pytorch/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb)
8
- [![Docs](https://img.shields.io/badge/Docs-Explore-blue?logo=readthedocs&logoColor=white)](https://meta-pytorch.org/OpenEnv/)
5
+ <p align="center">
6
+ <a href="https://pypi.org/project/openenv/"><img alt="PyPI" src="https://img.shields.io/pypi/v/openenv?color=blue"/></a>
7
+ <a href="https://github.com/huggingface/OpenEnv/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg"/></a>
8
+ <a href="https://huggingface.co/docs/openenv"><img alt="Docs" src="https://img.shields.io/badge/Docs-Explore-blue?logo=readthedocs&logoColor=white"/></a>
9
+ <a href="https://huggingface.co/openenv"><img alt="Hugging Face" src="https://img.shields.io/badge/🤗%20Hugging%20Face-OpenEnv-yellow"/></a>
10
+ <a href="https://discord.gg/YsTYBh6PD9"><img alt="Discord" src="https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white"/></a>
11
+ <a href="https://colab.research.google.com/github/huggingface/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a>
12
+ </p>
9
13
 
10
14
  ---
11
15
 
12
- **🚀 Featured Example:** Train LLMs to play BlackJack using [torchforge](https://github.com/meta-pytorch/torchforge) (PyTorch's agentic RL framework): [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
16
+ **Featured Example:** Train LLMs to play BlackJack using [torchforge](https://meta-pytorch.org/torchforge/) (PyTorch's agentic RL framework): [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
13
17
 
14
- **🔥 Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.
18
+ **Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.
15
19
 
16
20
  ## Quick Start
17
21
 
@@ -70,15 +74,7 @@ with EchoEnv(base_url="https://openenv-echo-env.hf.space").sync() as client:
70
74
  print(result.observation.result)
71
75
  ```
72
76
 
73
- For a detailed quick start, check out the [docs page](https://meta-pytorch.org/OpenEnv/auto_getting_started/index.html).
74
-
75
- ## OpenEnv on partner platforms:
76
-
77
- - [Lightning AI Studio](https://lightning.ai/environments?section=featured)
78
- - [TRL example](https://huggingface.co/docs/trl/openenv)
79
- - [Unsloth Google Colab](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
80
- - [ART example](https://art.openpipe.ai/integrations/openenv-integration)
81
- - [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb)
77
+ For a detailed quick start, check out the [docs page](https://huggingface.co/docs/openenv/getting-started).
82
78
 
83
79
  ## Overview
84
80
 
@@ -90,20 +86,23 @@ The OpenEnv CLI (`openenv`) provides commands to initialize new environments and
90
86
 
91
87
  > ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
92
88
  > stage. You should expect bugs, incomplete features, and APIs that may change
93
- > in future versions. The project welcomes bugfixes, but to make sure things are
94
- > well coordinated you should discuss any significant change before starting the
95
- > work. It's recommended that you signal your intention to contribute in the
96
- > issue tracker, either by filing a new issue or by claiming an existing one.
89
+ > in future versions. The project welcomes bugfixes, but significant changes
90
+ > should be discussed before implementation so the technical committee and
91
+ > community can coordinate scope, compatibility, and release timing. It's
92
+ > recommended that you signal your intention to contribute in the issue tracker,
93
+ > either by filing a new issue or by claiming an existing one.
97
94
 
98
95
  ### RFCs
99
96
 
100
97
  Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
101
98
 
102
- - [RFC 001: Baseline API and Interface Specifications](https://github.com/meta-pytorch/OpenEnv/pull/26)
103
- - [RFC 002: Discoverability of environment tools by agents](https://github.com/meta-pytorch/OpenEnv/pull/32)
104
- - [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/meta-pytorch/OpenEnv/pull/224)
105
- - [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/meta-pytorch/OpenEnv/pull/337)
106
- - [RFC 005: Agentic Harness Integration](https://github.com/meta-pytorch/OpenEnv/pull/387)
99
+ - [RFC 000: Project Phases and Design Principles](https://github.com/huggingface/OpenEnv/pull/44)
100
+ - [RFC 001: Baseline API and Interface Specifications](https://github.com/huggingface/OpenEnv/pull/26)
101
+ - [RFC 002: Discoverability of environment tools by agents](https://github.com/huggingface/OpenEnv/pull/32)
102
+ - [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/huggingface/OpenEnv/pull/224)
103
+ - [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/huggingface/OpenEnv/pull/337)
104
+ - [RFC 005: Agentic Harness Integration](https://github.com/huggingface/OpenEnv/pull/387)
105
+ - [RFC 010: Env-token World Modeling (ECHO)](https://github.com/huggingface/OpenEnv/pull/819)
107
106
 
108
107
  ## Architecture
109
108
 
@@ -175,7 +174,9 @@ Base class for environment communication:
175
174
  #### 4. Container Providers
176
175
  Manage container deployment:
177
176
  - `LocalDockerProvider`: Run containers on local Docker daemon
178
- - `KubernetesProvider`: Deploy to K8s clusters (future)
177
+ - `DockerSwarmProvider`: Deploy to Docker Swarm clusters
178
+ - `UVProvider`, `DaytonaProvider`, `ACASandboxProvider`: Additional runtime providers
179
+ - `KubernetesProvider`: Deploy to Kubernetes clusters (planned)
179
180
 
180
181
  #### 5. Models
181
182
  Type-safe data structures:
@@ -237,18 +238,12 @@ uv pip install -e .
237
238
  uv run server --host 0.0.0.0 --port 8000
238
239
  ```
239
240
 
240
- **Benefits:**
241
- - ✅ **Client-side extensions**: Modify client classes locally without repo changes
242
- - ✅ **Better dependency management**: Clear separation between environments
243
- - ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
244
- - ✅ **CI/CD ready**: Automated dependency generation and validation
245
-
246
241
  See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
247
242
 
248
243
  ### For Environment Users
249
244
 
250
245
  To use an environment:
251
- 1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/echo-env`
246
+ 1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/echo_env`
252
247
  2. Import: `from echo_env import CallToolAction, EchoEnv`
253
248
  3. Use async (recommended) or sync API:
254
249
 
@@ -274,6 +269,10 @@ The OpenEnv CLI provides commands to manage environments:
274
269
 
275
270
  - **`openenv init <env_name>`** - Initialize a new environment from template
276
271
  - **`openenv push [--repo-id <repo>] [--private]`** - Deploy environment to Hugging Face Spaces
272
+ - **`openenv serve`** - Serve an environment locally with optional auto-reload
273
+ - **`openenv build`** - Build the Docker image for an environment
274
+ - **`openenv fork <space-id>`** - Fork a Space from HF Hub to your account
275
+ - **`openenv validate`** - Validate an environment configuration
277
276
 
278
277
  ### Quick Start
279
278
 
@@ -286,14 +285,7 @@ cd my_game_env
286
285
  openenv push
287
286
  ```
288
287
 
289
- For detailed options: `openenv init --help` and `openenv push --help`.
290
-
291
- ## Design Principles
292
-
293
- 1. **Separation of Concerns**: Clear client-server boundaries
294
- 2. **Type Safety**: Strongly-typed actions, observations, and state
295
- 3. **Container Isolation**: Each environment runs in its own container
296
- 4. **Simple APIs**: Minimal, intuitive interfaces
288
+ For detailed options run any command with `--help`.
297
289
 
298
290
  ## Development
299
291
 
@@ -301,7 +293,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
301
293
 
302
294
  ```bash
303
295
  # Clone the repository
304
- git clone https://github.com/meta-pytorch/OpenEnv.git
296
+ git clone https://github.com/huggingface/OpenEnv.git
305
297
  cd OpenEnv
306
298
 
307
299
  # Install core package in editable mode
@@ -337,24 +329,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
337
329
 
338
330
  Tests will be automatically skipped if their required dependencies aren't installed.
339
331
 
340
- ## Requirements
332
+ ## Integrations
341
333
 
342
- - Python 3.10+
343
- - Docker Desktop or Docker Engine
344
- - FastAPI >= 0.104.0
345
- - Uvicorn >= 0.24.0
346
- - Requests >= 2.25.0
347
- - Environment-specific dependencies (e.g., smolagents for coding_env)
334
+ OpenEnv works with a growing ecosystem of RL frameworks and platforms. If your project supports OpenEnv, open a PR to add it here.
348
335
 
349
- ## Supported RL Tools
350
- The goal of this project is to support a broad set of open and closed tools to help standardize the agentic RL community. If you have a project that supports OpenEnv environments, please put up a PR to add your tool name along with a link to your documentation.
336
+ ### TRL
337
+ See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
351
338
 
352
339
  ### torchforge
353
340
  See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
354
341
 
355
- ### TRL
356
- See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
357
-
358
342
  ### Unsloth
359
343
  See the 2048 game example based on gpt-oss: [Colab notebook](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
360
344
 
@@ -367,6 +351,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
367
351
  ### Oumi
368
352
  See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb) on how OpenEnv environments can be used to train models with Oumi.
369
353
 
354
+ ### Lightning AI
355
+ [Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
356
+
370
357
  ## Example Environments
371
358
 
372
359
  | Environment | Description |
@@ -377,12 +364,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
377
364
  | [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
378
365
  | [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
379
366
 
380
- > Browse the full catalog of community environments at [meta-pytorch.org/OpenEnv/environments](https://meta-pytorch.org/OpenEnv/environments.html).
367
+ > Browse the full catalog of community environments at [huggingface.co/docs/openenv/environments](https://huggingface.co/docs/openenv/environments).
381
368
 
382
369
  ## Community Support & Acknowledgments
383
- This is an open and community-centric project. If you would like to add your name here, please put up a pull request and tag @jspisak for review. Ty!!
384
370
 
385
- Supporters include: Meta-PyTorch, Hugging Face, [Scaler AI Labs](https://scalerailabs.com), [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), Unsloth AI, Reflection AI, vLLM, SkyRL (UC-Berkeley), LightningAI, Axolotl AI, Stanford Scaling Intelligence Lab, Mithril, [OpenMined](https://openmined.org/), [Fleet AI](https://fleetai.com), [Halluminate](https://halluminate.ai/), [Turing](https://www.turing.com/), [Scale AI](https://scale.com/), [Scorecard](https://www.scorecard.io/) ..
371
+ OpenEnv is governed by a technical committee that coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process. Current committee members: Meta-PyTorch, Reflection, Unsloth, Modal, Prime Intellect, Nvidia, Mercor, Fleet AI, Microsoft, Hugging Face, and RadixArk.
372
+
373
+ The project is also supported by a broader community of organizations. If you would like to add your project or organization here, please open a pull request for maintainer review.
374
+
375
+ Supporters include: [Meta-PyTorch](https://github.com/meta-pytorch), [Hugging Face](https://huggingface.co), [Scaler AI Labs](https://scalerailabs.com), [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), [Unsloth](https://unsloth.ai), [Reflection](https://reflection.ai), [vLLM](https://vllm.ai), [SkyRL](https://skyrl.readthedocs.io) (UC-Berkeley), [Lightning AI](https://lightning.ai), [Axolotl AI](https://github.com/axolotl-ai-cloud/axolotl), [Stanford Scaling Intelligence Lab](https://scalingintelligence.stanford.edu/), [Mithril](https://mithril.ai), [OpenMined](https://openmined.org/), [Fleet AI](https://fleetai.com), [Halluminate](https://halluminate.ai/), [Turing](https://www.turing.com/), [Scale AI](https://scale.com/), [Scorecard](https://www.scorecard.io/), [Snorkel AI](https://snorkel.ai/), [SGLang](https://github.com/sgl-project/sglang), [Miles](https://github.com/radixark/miles)
386
376
 
387
377
  And we'd also like to acknowledge the team at Farama Foundation as the OpenEnv API was heavily inspired by the work you all have done on Gymnasium. Cheers!
388
378
 
@@ -1,19 +1,22 @@
1
1
  [build-system]
2
- requires = ["setuptools>=45", "wheel"]
2
+ requires = ["setuptools>=77", "wheel"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "openenv"
7
- version = "0.3.0"
7
+ version = "0.4.0"
8
8
  description = "A unified framework for reinforcement learning environments"
9
9
  readme = "README.md"
10
+ license = "BSD-3-Clause"
11
+ license-files = ["LICENSE"]
10
12
  requires-python = ">=3.10"
11
13
  dependencies = [
12
14
  # Core shared dependencies - minimal set required for all environments
13
15
  # Heavy dependencies (torch, numpy, smolagents, etc.) should be in
14
16
  # individual environment pyproject.toml files
15
- "fastapi>=0.104.0",
17
+ "fastapi>=0.116.0",
16
18
  "pydantic>=2.0.0",
19
+ "typing_extensions>=4.0.0",
17
20
  "uvicorn>=0.24.0",
18
21
  "requests>=2.25.0",
19
22
  # CLI dependencies
@@ -33,43 +36,20 @@ dependencies = [
33
36
  ]
34
37
 
35
38
  [project.optional-dependencies]
36
- core = [
37
- "fastapi>=0.104.0",
38
- "pydantic>=2.0.0",
39
- "uvicorn>=0.24.0",
40
- "requests>=2.25.0",
41
- "websockets>=15.0.1",
42
- ]
43
- cli = [
44
- "typer>=0.9.0",
45
- "rich>=13.0.0",
39
+ # `pip install openenv` includes the full runtime; the extras below are
40
+ # optional integrations.
41
+ daytona = [
42
+ "daytona>=0.136.0",
46
43
  "pyyaml>=6.0",
47
- "huggingface_hub>=0.20.0",
48
- "openai>=2.7.2",
49
- "tomli>=2.3.0",
50
- "tomli-w>=1.2.0",
51
- ]
52
- docs = [
53
- "sphinx==7.2.6",
54
- "pytorch-sphinx-theme2",
55
- "sphinxcontrib.katex==0.9.11",
56
- "docutils>=0.18.1,<0.23",
57
- "sphinx-design==0.6.1",
58
- "sphinxcontrib-mermaid==2.0.2",
59
- "myst-parser",
60
- "sphinxext-opengraph",
61
- "sphinx-sitemap==2.9.0",
62
- "sphinx-gallery>=0.14.0",
63
- "matplotlib",
64
- "nest-asyncio",
65
- "smolagents",
66
44
  ]
67
- all = [
68
- "openenv[core]",
69
- "openenv[cli]",
45
+ aca = [
46
+ # Preview SDK — pin with an upper bound and re-validate on upgrades
47
+ # (the provider talks to it through a private adapter for exactly this churn).
48
+ "azure-containerapps-sandbox>=0.1.0b2,<0.2.0",
49
+ "azure-identity>=1.23.0",
70
50
  ]
71
- daytona = [
72
- "daytona>=0.136.0",
51
+ modal = [
52
+ "modal>=1.4.0",
73
53
  "pyyaml>=6.0",
74
54
  ]
75
55
  inspect = [
@@ -1,8 +1,4 @@
1
- # Copyright (c) Meta Platforms, Inc. and affiliates.
2
- # All rights reserved.
3
- #
4
- # This source code is licensed under the BSD-style license found in the
5
- # LICENSE file in the root directory of this source tree.
1
+ # SPDX-License-Identifier: BSD-3-Clause
6
2
 
7
3
  """
8
4
  OpenEnv Auto Module