openenv 0.3.1__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.1/src/openenv.egg-info → openenv-0.4.0}/PKG-INFO +52 -88
  3. {openenv-0.3.1 → openenv-0.4.0}/README.md +42 -55
  4. {openenv-0.3.1 → openenv-0.4.0}/pyproject.toml +17 -37
  5. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/__init__.py +1 -5
  6. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/_discovery.py +23 -25
  7. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/auto_action.py +6 -10
  8. {openenv-0.3.1 → 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.1 → openenv-0.4.0}/src/openenv/cli/__main__.py +1 -5
  11. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/_cli_utils.py +23 -9
  12. {openenv-0.3.1 → 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.1 → openenv-0.4.0}/src/openenv/cli/commands/build.py +38 -36
  15. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/collect.py +1 -5
  16. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/fork.py +7 -32
  17. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/init.py +5 -2
  18. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/push.py +20 -52
  19. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/serve.py +1 -5
  20. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/skills.py +19 -16
  21. {openenv-0.3.1 → 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.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/README.md +1 -1
  24. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/__init__.py +1 -5
  25. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/client.py +3 -6
  26. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/models.py +1 -5
  27. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/pyproject.toml +3 -7
  28. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/Dockerfile +2 -6
  29. {openenv-0.3.1 → 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.1 → 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.1 → 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.1 → 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.1 → 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.1 → 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.1 → openenv-0.4.0}/src/openenv/core/env_server/__init__.py +1 -5
  45. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/base_transforms.py +1 -5
  46. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/exceptions.py +1 -5
  47. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/gradio_theme.py +1 -5
  48. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/gradio_ui.py +1 -5
  49. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/http_server.py +160 -134
  50. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/interfaces.py +84 -64
  51. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/mcp_environment.py +64 -55
  52. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/mcp_types.py +3 -8
  53. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/route_config.py +17 -17
  54. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/serialization.py +52 -48
  55. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/types.py +7 -5
  56. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/web_interface.py +12 -17
  57. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/__init__.py +1 -5
  58. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/base.py +1 -5
  59. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/inspect_harness.py +1 -5
  60. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/types.py +1 -5
  61. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/generic_client.py +56 -49
  62. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/harness/__init__.py +1 -5
  63. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/harness/collect.py +17 -32
  64. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/llm_client.py +75 -47
  65. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/mcp_client.py +128 -100
  66. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/__init__.py +1 -5
  67. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/base.py +44 -23
  68. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/containers.py +64 -173
  69. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/llm_judge.py +17 -13
  70. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/trajectory.py +29 -21
  71. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/sync_client.py +82 -40
  72. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/tools/__init__.py +1 -5
  73. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/tools/git_server_client.py +43 -30
  74. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/tools/local_python_executor.py +1 -5
  75. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/utils.py +1 -5
  76. {openenv-0.3.1 → openenv-0.4.0/src/openenv.egg-info}/PKG-INFO +52 -88
  77. {openenv-0.3.1 → 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.1 → openenv-0.4.0}/tests/test_line_endings.py +1 -5
  80. openenv-0.3.1/LICENSE +0 -28
  81. openenv-0.3.1/src/openenv/cli/__init__.py +0 -9
  82. openenv-0.3.1/src/openenv/cli/commands/__init__.py +0 -11
  83. openenv-0.3.1/src/openenv/cli/templates/__init__.py +0 -7
  84. openenv-0.3.1/src/openenv/cli/templates/openenv_env/server/__init__.py +0 -11
  85. openenv-0.3.1/src/openenv/cli/templates/openenv_env/server/requirements.txt +0 -6
  86. openenv-0.3.1/src/openenv/core/client_types.py +0 -23
  87. openenv-0.3.1/src/openenv/core/containers/__init__.py +0 -7
  88. openenv-0.3.1/src/openenv/core/containers/runtime/uv_provider.py +0 -224
  89. openenv-0.3.1/src/openenv/core/env_client.py +0 -484
  90. openenv-0.3.1/src/openenv.egg-info/requires.txt +0 -57
  91. {openenv-0.3.1 → openenv-0.4.0}/MANIFEST.in +0 -0
  92. {openenv-0.3.1 → openenv-0.4.0}/setup.cfg +0 -0
  93. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/__init__.py +0 -0
  94. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/openenv.yaml +0 -0
  95. {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/containers/test_local_docker_provider.py +0 -0
  96. {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/dependency_links.txt +0 -0
  97. {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/entry_points.txt +0 -0
  98. {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/top_level.txt +0 -0
  99. {openenv-0.3.1 → 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.1
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
 
@@ -148,8 +121,6 @@ In addition to making it easier for researchers and RL framework writers, we als
148
121
 
149
122
  The OpenEnv CLI (`openenv`) provides commands to initialize new environments and deploy them to Hugging Face Spaces.
150
123
 
151
- OpenEnv is openly governed by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. The committee coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process.
152
-
153
124
  > ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
154
125
  > stage. You should expect bugs, incomplete features, and APIs that may change
155
126
  > in future versions. The project welcomes bugfixes, but significant changes
@@ -162,11 +133,13 @@ OpenEnv is openly governed by a technical committee that includes Hugging Face,
162
133
 
163
134
  Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
164
135
 
165
- - [RFC 001: Baseline API and Interface Specifications](https://github.com/meta-pytorch/OpenEnv/pull/26)
166
- - [RFC 002: Discoverability of environment tools by agents](https://github.com/meta-pytorch/OpenEnv/pull/32)
167
- - [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/meta-pytorch/OpenEnv/pull/224)
168
- - [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/meta-pytorch/OpenEnv/pull/337)
169
- - [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)
170
143
 
171
144
  ## Architecture
172
145
 
@@ -238,7 +211,9 @@ Base class for environment communication:
238
211
  #### 4. Container Providers
239
212
  Manage container deployment:
240
213
  - `LocalDockerProvider`: Run containers on local Docker daemon
241
- - `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)
242
217
 
243
218
  #### 5. Models
244
219
  Type-safe data structures:
@@ -300,18 +275,12 @@ uv pip install -e .
300
275
  uv run server --host 0.0.0.0 --port 8000
301
276
  ```
302
277
 
303
- **Benefits:**
304
- - ✅ **Client-side extensions**: Modify client classes locally without repo changes
305
- - ✅ **Better dependency management**: Clear separation between environments
306
- - ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
307
- - ✅ **CI/CD ready**: Automated dependency generation and validation
308
-
309
278
  See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
310
279
 
311
280
  ### For Environment Users
312
281
 
313
282
  To use an environment:
314
- 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`
315
284
  2. Import: `from echo_env import CallToolAction, EchoEnv`
316
285
  3. Use async (recommended) or sync API:
317
286
 
@@ -337,6 +306,10 @@ The OpenEnv CLI provides commands to manage environments:
337
306
 
338
307
  - **`openenv init <env_name>`** - Initialize a new environment from template
339
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
340
313
 
341
314
  ### Quick Start
342
315
 
@@ -349,14 +322,7 @@ cd my_game_env
349
322
  openenv push
350
323
  ```
351
324
 
352
- For detailed options: `openenv init --help` and `openenv push --help`.
353
-
354
- ## Design Principles
355
-
356
- 1. **Separation of Concerns**: Clear client-server boundaries
357
- 2. **Type Safety**: Strongly-typed actions, observations, and state
358
- 3. **Container Isolation**: Each environment runs in its own container
359
- 4. **Simple APIs**: Minimal, intuitive interfaces
325
+ For detailed options run any command with `--help`.
360
326
 
361
327
  ## Development
362
328
 
@@ -364,7 +330,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
364
330
 
365
331
  ```bash
366
332
  # Clone the repository
367
- git clone https://github.com/meta-pytorch/OpenEnv.git
333
+ git clone https://github.com/huggingface/OpenEnv.git
368
334
  cd OpenEnv
369
335
 
370
336
  # Install core package in editable mode
@@ -400,24 +366,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
400
366
 
401
367
  Tests will be automatically skipped if their required dependencies aren't installed.
402
368
 
403
- ## Requirements
369
+ ## Integrations
404
370
 
405
- - Python 3.10+
406
- - Docker Desktop or Docker Engine
407
- - FastAPI >= 0.104.0
408
- - Uvicorn >= 0.24.0
409
- - Requests >= 2.25.0
410
- - 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.
411
372
 
412
- ## Supported RL Tools
413
- 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.
414
375
 
415
376
  ### torchforge
416
377
  See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
417
378
 
418
- ### TRL
419
- See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
420
-
421
379
  ### Unsloth
422
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)
423
381
 
@@ -430,6 +388,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
430
388
  ### Oumi
431
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.
432
390
 
391
+ ### Lightning AI
392
+ [Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
393
+
433
394
  ## Example Environments
434
395
 
435
396
  | Environment | Description |
@@ -440,12 +401,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
440
401
  | [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
441
402
  | [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
442
403
 
443
- > 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).
444
405
 
445
406
  ## Community Support & Acknowledgments
446
- This is an open and community-centric project, governed in public by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. If you would like to add your project or organization here, please open a pull request for maintainer review.
447
407
 
448
- 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, Reflection, 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)
449
413
 
450
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!
451
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
 
@@ -88,8 +84,6 @@ In addition to making it easier for researchers and RL framework writers, we als
88
84
 
89
85
  The OpenEnv CLI (`openenv`) provides commands to initialize new environments and deploy them to Hugging Face Spaces.
90
86
 
91
- OpenEnv is openly governed by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. The committee coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process.
92
-
93
87
  > ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
94
88
  > stage. You should expect bugs, incomplete features, and APIs that may change
95
89
  > in future versions. The project welcomes bugfixes, but significant changes
@@ -102,11 +96,13 @@ OpenEnv is openly governed by a technical committee that includes Hugging Face,
102
96
 
103
97
  Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
104
98
 
105
- - [RFC 001: Baseline API and Interface Specifications](https://github.com/meta-pytorch/OpenEnv/pull/26)
106
- - [RFC 002: Discoverability of environment tools by agents](https://github.com/meta-pytorch/OpenEnv/pull/32)
107
- - [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/meta-pytorch/OpenEnv/pull/224)
108
- - [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/meta-pytorch/OpenEnv/pull/337)
109
- - [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)
110
106
 
111
107
  ## Architecture
112
108
 
@@ -178,7 +174,9 @@ Base class for environment communication:
178
174
  #### 4. Container Providers
179
175
  Manage container deployment:
180
176
  - `LocalDockerProvider`: Run containers on local Docker daemon
181
- - `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)
182
180
 
183
181
  #### 5. Models
184
182
  Type-safe data structures:
@@ -240,18 +238,12 @@ uv pip install -e .
240
238
  uv run server --host 0.0.0.0 --port 8000
241
239
  ```
242
240
 
243
- **Benefits:**
244
- - ✅ **Client-side extensions**: Modify client classes locally without repo changes
245
- - ✅ **Better dependency management**: Clear separation between environments
246
- - ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
247
- - ✅ **CI/CD ready**: Automated dependency generation and validation
248
-
249
241
  See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
250
242
 
251
243
  ### For Environment Users
252
244
 
253
245
  To use an environment:
254
- 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`
255
247
  2. Import: `from echo_env import CallToolAction, EchoEnv`
256
248
  3. Use async (recommended) or sync API:
257
249
 
@@ -277,6 +269,10 @@ The OpenEnv CLI provides commands to manage environments:
277
269
 
278
270
  - **`openenv init <env_name>`** - Initialize a new environment from template
279
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
280
276
 
281
277
  ### Quick Start
282
278
 
@@ -289,14 +285,7 @@ cd my_game_env
289
285
  openenv push
290
286
  ```
291
287
 
292
- For detailed options: `openenv init --help` and `openenv push --help`.
293
-
294
- ## Design Principles
295
-
296
- 1. **Separation of Concerns**: Clear client-server boundaries
297
- 2. **Type Safety**: Strongly-typed actions, observations, and state
298
- 3. **Container Isolation**: Each environment runs in its own container
299
- 4. **Simple APIs**: Minimal, intuitive interfaces
288
+ For detailed options run any command with `--help`.
300
289
 
301
290
  ## Development
302
291
 
@@ -304,7 +293,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
304
293
 
305
294
  ```bash
306
295
  # Clone the repository
307
- git clone https://github.com/meta-pytorch/OpenEnv.git
296
+ git clone https://github.com/huggingface/OpenEnv.git
308
297
  cd OpenEnv
309
298
 
310
299
  # Install core package in editable mode
@@ -340,24 +329,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
340
329
 
341
330
  Tests will be automatically skipped if their required dependencies aren't installed.
342
331
 
343
- ## Requirements
332
+ ## Integrations
344
333
 
345
- - Python 3.10+
346
- - Docker Desktop or Docker Engine
347
- - FastAPI >= 0.104.0
348
- - Uvicorn >= 0.24.0
349
- - Requests >= 2.25.0
350
- - 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.
351
335
 
352
- ## Supported RL Tools
353
- 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.
354
338
 
355
339
  ### torchforge
356
340
  See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
357
341
 
358
- ### TRL
359
- See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
360
-
361
342
  ### Unsloth
362
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)
363
344
 
@@ -370,6 +351,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
370
351
  ### Oumi
371
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.
372
353
 
354
+ ### Lightning AI
355
+ [Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
356
+
373
357
  ## Example Environments
374
358
 
375
359
  | Environment | Description |
@@ -380,12 +364,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
380
364
  | [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
381
365
  | [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
382
366
 
383
- > 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).
384
368
 
385
369
  ## Community Support & Acknowledgments
386
- This is an open and community-centric project, governed in public by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. If you would like to add your project or organization here, please open a pull request for maintainer review.
387
370
 
388
- 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, Reflection, 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)
389
376
 
390
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!
391
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.1"
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