Buckets:
| import{s as Nl,n as Ll,o as Yl}from"../chunks/scheduler.2b22cead.js";import{S as zl,i as Ol,e as a,s,c as o,h as Dl,a as r,d as l,b as i,f as _l,g as m,j as p,k as il,l as Pl,m as n,n as T,t as M,o as y,p as c}from"../chunks/index.1a0e8013.js";import{C as ql,H as d,E as Kl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.05940ba4.js";import{C as w}from"../chunks/CodeBlock.da090c73.js";function en(al){let u,Qe,We,He,U,Xe,f,ke,v,rl='An OpenEnv wrapper for <a href="https://github.com/textarena/textarena" rel="nofollow">TextArena</a> game environments. Supports text-based games like Wordle, providing a standardized API for agent interaction.',Fe,J,pl='<p>Generic wrapper for any <a href="https://www.textarena.ai/docs/overview" rel="nofollow">TextArena</a> game inside OpenEnv. This module exposes the TextArena <code>Env</code> interface through the standard HTTP server/client APIs used by other OpenEnv environments, enabling quick experimentation with the full suite of word, reasoning, and multi-agent games.</p>',Se,g,_e,h,ol="The simplest way to use the TextArena environment is through the <code>TextArenaEnv</code> class:",Ne,I,Le,$,ml="That’s it! The <code>TextArenaEnv.from_docker_image()</code> method handles:",Ye,b,Tl="<li>Starting the Docker container</li> <li>Waiting for the server to be ready</li> <li>Connecting to the environment</li> <li>Container cleanup when you call <code>close()</code></li>",ze,C,Oe,j,Ml="Before using the environment, you need to build the Docker image:",De,B,Pe,Z,qe,A,yl='With the web interface enabled, the server serves a <strong>Gradio UI</strong> at <code>/web</code>. If your <code>openenv</code> supports <code>gradio_builder</code>, you get two tabs (see <a href="https://huggingface.co/docs/openenv/guides/customizing-web-ui" rel="nofollow">Customizing the Web UI</a>):',Ke,x,cl='<li><strong>Playground</strong> – default OpenEnv UI (Reset, Step, Get state, Quick Start, README).</li> <li><strong>Custom</strong> – Wordle-style HTML block (see <code>server/gradio_ui.py</code>; uses <a href="https://gradio.app/docs/gradio/html" rel="nofollow">Gradio 6 <code>gr.HTML</code></a> to render the block).</li>',et,E,dl="<strong>Option A – From the OpenEnv repo root (recommended for the Custom tab)</strong>",tt,R,wl="Use the core that includes the tabbed interface and custom builder:",lt,V,nt,W,ul="<strong>Option B – From the environment directory only</strong>",st,G,it,Q,Jl="Or:",at,H,rt,X,Ul="Then open <strong>http://localhost:8000/web</strong>. Use the <strong>Playground</strong> tab to Reset and Step with guesses (e.g. <code>[crane]</code>, <code>[stone]</code>). If you ran with Option A, the <strong>Custom</strong> tab shows the Wordle-style demo block.",pt,k,ot,F,fl="You can easily deploy your OpenEnv environment to Hugging Face Spaces using the <code>openenv push</code> command:",mt,S,Tt,_,vl="The <code>openenv push</code> command will:",Mt,N,gl="<li>Validate that the directory is an OpenEnv environment (checks for <code>openenv.yaml</code>)</li> <li>Prepare a custom build for Hugging Face Docker space (enables web interface)</li> <li>Upload to Hugging Face (ensuring you’re logged in)</li>",yt,L,ct,Y,hl="<li>Authenticate with Hugging Face: The command will prompt for login if not already authenticated</li>",dt,z,wt,O,Il="<li><code>--directory</code>, <code>-d</code>: Directory containing the OpenEnv environment (defaults to current directory)</li> <li><code>--repo-id</code>, <code>-r</code>: Repository ID in format ‘username/repo-name’ (defaults to ‘username/env-name’ from openenv.yaml)</li> <li><code>--base-image</code>, <code>-b</code>: Base Docker image to use (overrides Dockerfile FROM)</li> <li><code>--private</code>: Deploy the space as private (default: public)</li>",ut,D,Jt,P,Ut,q,$l=`After deployment, your space will be available at: | |
| <code>https://huggingface.co/spaces/<repo-id></code>`,ft,K,bl="The deployed space includes:",vt,ee,Cl="<li><strong>Web Interface</strong> at <code>/web</code> - Interactive UI for exploring the environment</li> <li><strong>API Documentation</strong> at <code>/docs</code> - Full OpenAPI/Swagger interface</li> <li><strong>Health Check</strong> at <code>/health</code> - Container health monitoring</li>",gt,te,ht,le,It,ne,jl="<strong>TextArenaAction</strong>: Contains a single field",$t,se,Bl="<li><code>message</code> (str) - The message/action to send to the game</li>",bt,ie,Ct,ae,Zl="<strong>TextArenaObservation</strong>: Contains the game state and response",jt,re,Al="<li><code>prompt</code> (str) - Game instructions and context</li> <li><code>messages</code> (List[TextArenaMessage]) - Conversation history with the game</li> <li><code>current_player_id</code> (int) - ID of the current player</li> <li><code>legal_players</code> (List[int]) - List of valid player IDs</li> <li><code>info</code> (Dict) - Additional game metadata</li> <li><code>reward</code> (float) - Reward for the current step (inherited from Observation)</li> <li><code>done</code> (bool) - Whether the episode has ended (inherited from Observation)</li>",Bt,pe,Zt,oe,xl="Each message in the conversation has:",At,me,El="<li><code>sender_id</code> (int) - ID of the message sender</li> <li><code>content</code> (str) - The message content</li> <li><code>category</code> (str) - Message type (e.g., “PROMPT”, “MESSAGE”)</li>",xt,Te,Et,Me,Rl="<strong>TextArenaState</strong>: Server-side state snapshot",Rt,ye,Vl="<li><code>episode_id</code> (str) - Unique identifier for the current episode</li> <li><code>step_count</code> (int) - Number of steps taken in the current episode</li> <li><code>env_id</code> (str) - The TextArena environment ID (e.g., “Wordle-v0”)</li> <li><code>num_players</code> (int) - Number of players in the game</li> <li><code>max_turns</code> (Optional[int]) - Maximum turns allowed</li> <li><code>turn</code> (int) - Current turn number</li> <li><code>last_reward</code> (float) - Most recent reward</li> <li><code>last_info</code> (Dict) - Most recent info dictionary</li> <li><code>raw_state</code> (Dict) - Raw TextArena state snapshot</li>",Vt,ce,Wt,de,Wl="Rewards are determined by the underlying TextArena game. For example:",Gt,we,Gl="<li><strong>Wordle-v0</strong>: Positive reward for winning, includes reward signals for green/yellow letter matches</li>",Qt,ue,Ht,Je,Xt,Ue,Ql="If you already have a TextArena environment server running, you can connect directly:",kt,fe,Ft,ve,St,ge,Hl="The server supports configuration via environment variables:",_t,he,Xl="<li><code>TEXTARENA_ENV_ID</code> - Game to load (default: “Wordle-v0”)</li> <li><code>TEXTARENA_NUM_PLAYERS</code> - Number of players (default: 1)</li> <li><code>TEXTARENA_MAX_TURNS</code> - Maximum turns per episode</li> <li><code>TEXTARENA_DOWNLOAD_NLTK</code> - Download NLTK data (default: “1”)</li> <li><code>TEXTARENA_KW_*</code> - Pass additional kwargs to TextArena (e.g., <code>TEXTARENA_KW_difficulty=hard</code>)</li>",Nt,Ie,Lt,$e,Yt,be,kl="Test the environment logic directly without starting the HTTP server:",zt,Ce,Ot,je,Dt,Be,Fl="Run the server locally for development:",Pt,Ze,qt,Ae,Sl="Or using the CLI entry point:",Kt,xe,el,Ee,tl,Re,ll,Ve,nl,Ge,sl;return U=new ql({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),f=new d({props:{title:"TextArena Environment",local:"textarena-environment",headingTag:"h1"}}),g=new d({props:{title:"Quick Start",local:"quick-start",headingTag:"h2"}}),I=new w({props:{code:"ZnJvbSUyMHRleHRhcmVuYV9lbnYlMjBpbXBvcnQlMjBUZXh0QXJlbmFBY3Rpb24lMkMlMjBUZXh0QXJlbmFFbnYlMEElMEF0cnklM0ElMEElMjAlMjAlMjAlMjAlMjMlMjBDcmVhdGUlMjBlbnZpcm9ubWVudCUyMGZyb20lMjBEb2NrZXIlMjBpbWFnZSUwQSUyMCUyMCUyMCUyMGVudiUyMCUzRCUyMFRleHRBcmVuYUVudi5mcm9tX2RvY2tlcl9pbWFnZSglMjJ0ZXh0YXJlbmEtZW52JTNBbGF0ZXN0JTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMFJlc2V0JTIwdG8lMjBzdGFydCUyMGElMjBuZXclMjBlcGlzb2RlJTBBJTIwJTIwJTIwJTIwcmVzdWx0JTIwJTNEJTIwZW52LnJlc2V0KCklMEElMjAlMjAlMjAlMjBwcmludChmJTIyR2FtZSUyMHByb21wdCUzQSU1Q24lN0JyZXN1bHQub2JzZXJ2YXRpb24ucHJvbXB0JTdEJTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMFBsYXklMjBhJTIwZmV3JTIwdHVybnMlMjAoZXhhbXBsZSUzQSUyMFdvcmRsZSUyMGd1ZXNzZXMpJTBBJTIwJTIwJTIwJTIwZ3Vlc3NlcyUyMCUzRCUyMCU1QiUyMiU1QmNyYW5lJTVEJTIyJTJDJTIwJTIyJTVCc2xhdGUlNUQlMjIlMkMlMjAlMjIlNUJhdWRpbyU1RCUyMiU1RCUwQSUwQSUyMCUyMCUyMCUyMGZvciUyMGd1ZXNzJTIwaW4lMjBndWVzc2VzJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzdWx0JTIwJTNEJTIwZW52LnN0ZXAoVGV4dEFyZW5hQWN0aW9uKG1lc3NhZ2UlM0RndWVzcykpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwQ2hlY2slMjBtZXNzYWdlcyUyMGZvciUyMGZlZWRiYWNrJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZm9yJTIwbWVzc2FnZSUyMGluJTIwcmVzdWx0Lm9ic2VydmF0aW9uLm1lc3NhZ2VzJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQoZiUyMlJlc3BvbnNlJTNBJTIwJTdCbWVzc2FnZS5jb250ZW50JTdEJTIyKSUwQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50KGYlMjJSZXdhcmQlM0ElMjAlN0JyZXN1bHQucmV3YXJkJTdEJTIyKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByaW50KGYlMjJEb25lJTNBJTIwJTdCcmVzdWx0LmRvbmUlN0QlMjIpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjByZXN1bHQuZG9uZSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGJyZWFrJTBBJTBBZmluYWxseSUzQSUwQSUyMCUyMCUyMCUyMCUyMyUyMEFsd2F5cyUyMGNsZWFuJTIwdXAlMEElMjAlMjAlMjAlMjBlbnYuY2xvc2UoKQ==",highlighted:`<span class="hljs-keyword">from</span> textarena_env <span class="hljs-keyword">import</span> TextArenaAction, TextArenaEnv | |
| <span class="hljs-keyword">try</span>: | |
| <span class="hljs-comment"># Create environment from Docker image</span> | |
| env = TextArenaEnv.from_docker_image(<span class="hljs-string">"textarena-env:latest"</span>) | |
| <span class="hljs-comment"># Reset to start a new episode</span> | |
| result = env.reset() | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Game prompt:\\n<span class="hljs-subst">{result.observation.prompt}</span>"</span>) | |
| <span class="hljs-comment"># Play a few turns (example: Wordle guesses)</span> | |
| guesses = [<span class="hljs-string">"[crane]"</span>, <span class="hljs-string">"[slate]"</span>, <span class="hljs-string">"[audio]"</span>] | |
| <span class="hljs-keyword">for</span> guess <span class="hljs-keyword">in</span> guesses: | |
| result = env.step(TextArenaAction(message=guess)) | |
| <span class="hljs-comment"># Check messages for feedback</span> | |
| <span class="hljs-keyword">for</span> message <span class="hljs-keyword">in</span> result.observation.messages: | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Response: <span class="hljs-subst">{message.content}</span>"</span>) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Reward: <span class="hljs-subst">{result.reward}</span>"</span>) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Done: <span class="hljs-subst">{result.done}</span>"</span>) | |
| <span class="hljs-keyword">if</span> result.done: | |
| <span class="hljs-keyword">break</span> | |
| <span class="hljs-keyword">finally</span>: | |
| <span class="hljs-comment"># Always clean up</span> | |
| env.close()`,lang:"python",wrap:!1}}),C=new d({props:{title:"Building the Docker Image",local:"building-the-docker-image",headingTag:"h2"}}),B=new w({props:{code:"JTIzJTIwRnJvbSUyMHRoZSUyMHRleHRhcmVuYV9lbnYlMjBkaXJlY3RvcnklMEFjZCUyMGVudnMlMkZ0ZXh0YXJlbmFfZW52JTBBZG9ja2VyJTIwYnVpbGQlMjAtdCUyMHRleHRhcmVuYS1lbnYlM0FsYXRlc3QlMjAtZiUyMHNlcnZlciUyRkRvY2tlcmZpbGUlMjAu",highlighted:`<span class="hljs-comment"># From the textarena_env directory</span> | |
| <span class="hljs-built_in">cd</span> envs/textarena_env | |
| docker build -t textarena-env:latest -f server/Dockerfile .`,lang:"bash",wrap:!1}}),Z=new d({props:{title:"Testing the Gradio UI locally",local:"testing-the-gradio-ui-locally",headingTag:"h2"}}),V=new w({props:{code:"Y2QlMjBlbnZzJTJGdGV4dGFyZW5hX2VudiUwQUVOQUJMRV9XRUJfSU5URVJGQUNFJTNEdHJ1ZSUyMFBZVEhPTlBBVEglM0QuLiUyRi4uJTJGc3JjJTIwdXYlMjBydW4lMjB1dmljb3JuJTIwc2VydmVyLmFwcCUzQWFwcCUyMC0taG9zdCUyMDAuMC4wLjAlMjAtLXBvcnQlMjA4MDAw",highlighted:`<span class="hljs-built_in">cd</span> envs/textarena_env | |
| ENABLE_WEB_INTERFACE=<span class="hljs-literal">true</span> PYTHONPATH=../../src uv run uvicorn server.app:app --host 0.0.0.0 --port 8000`,lang:"bash",wrap:!1}}),G=new w({props:{code:"Y2QlMjBlbnZzJTJGdGV4dGFyZW5hX2VudiUwQUVOQUJMRV9XRUJfSU5URVJGQUNFJTNEdHJ1ZSUyMHV2JTIwcnVuJTIwc2VydmVy",highlighted:`<span class="hljs-built_in">cd</span> envs/textarena_env | |
| ENABLE_WEB_INTERFACE=<span class="hljs-literal">true</span> uv run server`,lang:"bash",wrap:!1}}),H=new w({props:{code:"RU5BQkxFX1dFQl9JTlRFUkZBQ0UlM0R0cnVlJTIwdXYlMjBydW4lMjB1dmljb3JuJTIwc2VydmVyLmFwcCUzQWFwcCUyMC0taG9zdCUyMDAuMC4wLjAlMjAtLXBvcnQlMjA4MDAw",highlighted:'ENABLE_WEB_INTERFACE=<span class="hljs-literal">true</span> uv run uvicorn server.app:app --host 0.0.0.0 --port 8000',lang:"bash",wrap:!1}}),k=new d({props:{title:"Deploying to Hugging Face Spaces",local:"deploying-to-hugging-face-spaces",headingTag:"h2"}}),S=new w({props:{code:"JTIzJTIwRnJvbSUyMHRoZSUyMGVudmlyb25tZW50JTIwZGlyZWN0b3J5JTIwKHdoZXJlJTIwb3BlbmVudi55YW1sJTIwaXMlMjBsb2NhdGVkKSUwQW9wZW5lbnYlMjBwdXNoJTBBJTBBJTIzJTIwT3IlMjBzcGVjaWZ5JTIwb3B0aW9ucyUwQW9wZW5lbnYlMjBwdXNoJTIwLS1uYW1lc3BhY2UlMjBteS1vcmclMjAtLXByaXZhdGU=",highlighted:`<span class="hljs-comment"># From the environment directory (where openenv.yaml is located)</span> | |
| openenv push | |
| <span class="hljs-comment"># Or specify options</span> | |
| openenv push --namespace my-org --private`,lang:"bash",wrap:!1}}),L=new d({props:{title:"Prerequisites",local:"prerequisites",headingTag:"h3"}}),z=new d({props:{title:"Options",local:"options",headingTag:"h3"}}),D=new d({props:{title:"Examples",local:"examples",headingTag:"h3"}}),P=new w({props:{code:"JTIzJTIwUHVzaCUyMHRvJTIweW91ciUyMHBlcnNvbmFsJTIwbmFtZXNwYWNlJTIwKGRlZmF1bHRzJTIwdG8lMjB1c2VybmFtZSUyRmVudi1uYW1lJTIwZnJvbSUyMG9wZW5lbnYueWFtbCklMEFvcGVuZW52JTIwcHVzaCUwQSUwQSUyMyUyMFB1c2glMjB0byUyMGElMjBzcGVjaWZpYyUyMHJlcG9zaXRvcnklMEFvcGVuZW52JTIwcHVzaCUyMC0tcmVwby1pZCUyMG15LW9yZyUyRm15LWVudiUwQSUwQSUyMyUyMFB1c2glMjB3aXRoJTIwYSUyMGN1c3RvbSUyMGJhc2UlMjBpbWFnZSUwQW9wZW5lbnYlMjBwdXNoJTIwLS1iYXNlLWltYWdlJTIwZ2hjci5pbyUyRmh1Z2dpbmdmYWNlJTJGb3BlbmVudi1iYXNlJTNBbGF0ZXN0JTBBJTBBJTIzJTIwUHVzaCUyMGFzJTIwYSUyMHByaXZhdGUlMjBzcGFjZSUwQW9wZW5lbnYlMjBwdXNoJTIwLS1wcml2YXRlJTBBJTBBJTIzJTIwQ29tYmluZSUyMG9wdGlvbnMlMEFvcGVuZW52JTIwcHVzaCUyMC0tcmVwby1pZCUyMG15LW9yZyUyRm15LWVudiUyMC0tYmFzZS1pbWFnZSUyMGN1c3RvbS1iYXNlJTNBbGF0ZXN0JTIwLS1wcml2YXRl",highlighted:`<span class="hljs-comment"># Push to your personal namespace (defaults to username/env-name from openenv.yaml)</span> | |
| openenv push | |
| <span class="hljs-comment"># Push to a specific repository</span> | |
| openenv push --repo-id my-org/my-env | |
| <span class="hljs-comment"># Push with a custom base image</span> | |
| openenv push --base-image ghcr.io/huggingface/openenv-base:latest | |
| <span class="hljs-comment"># Push as a private space</span> | |
| openenv push --private | |
| <span class="hljs-comment"># Combine options</span> | |
| openenv push --repo-id my-org/my-env --base-image custom-base:latest --private`,lang:"bash",wrap:!1}}),te=new d({props:{title:"Environment Details",local:"environment-details",headingTag:"h2"}}),le=new d({props:{title:"Action",local:"action",headingTag:"h3"}}),ie=new d({props:{title:"Observation",local:"observation",headingTag:"h3"}}),pe=new d({props:{title:"TextArenaMessage",local:"textarenamessage",headingTag:"h3"}}),Te=new d({props:{title:"State",local:"state",headingTag:"h3"}}),ce=new d({props:{title:"Reward",local:"reward",headingTag:"h3"}}),ue=new d({props:{title:"Advanced Usage",local:"advanced-usage",headingTag:"h2"}}),Je=new d({props:{title:"Connecting to an Existing Server",local:"connecting-to-an-existing-server",headingTag:"h3"}}),fe=new w({props:{code:"ZnJvbSUyMHRleHRhcmVuYV9lbnYlMjBpbXBvcnQlMjBUZXh0QXJlbmFFbnYlMkMlMjBUZXh0QXJlbmFBY3Rpb24lMEElMEElMjMlMjBDb25uZWN0JTIwdG8lMjBleGlzdGluZyUyMHNlcnZlciUwQWVudiUyMCUzRCUyMFRleHRBcmVuYUVudihiYXNlX3VybCUzRCUyMiUzQ0VOVl9IVFRQX1VSTF9IRVJFJTNFJTIyKSUwQSUwQSUyMyUyMFVzZSUyMGFzJTIwbm9ybWFsJTBBcmVzdWx0JTIwJTNEJTIwZW52LnJlc2V0KCklMEFyZXN1bHQlMjAlM0QlMjBlbnYuc3RlcChUZXh0QXJlbmFBY3Rpb24obWVzc2FnZSUzRCUyMiU1QmNyYW5lJTVEJTIyKSklMEElMEElMjMlMjBDbG9zZSUyMGNvbm5lY3Rpb24lMjAoZG9lcyUyME5PVCUyMHN0b3AlMjB0aGUlMjBzZXJ2ZXIpJTBBZW52LmNsb3NlKCk=",highlighted:`<span class="hljs-keyword">from</span> textarena_env <span class="hljs-keyword">import</span> TextArenaEnv, TextArenaAction | |
| <span class="hljs-comment"># Connect to existing server</span> | |
| env = TextArenaEnv(base_url=<span class="hljs-string">"<ENV_HTTP_URL_HERE>"</span>) | |
| <span class="hljs-comment"># Use as normal</span> | |
| result = env.reset() | |
| result = env.step(TextArenaAction(message=<span class="hljs-string">"[crane]"</span>)) | |
| <span class="hljs-comment"># Close connection (does NOT stop the server)</span> | |
| env.close()`,lang:"python",wrap:!1}}),ve=new d({props:{title:"Environment Configuration",local:"environment-configuration",headingTag:"h3"}}),Ie=new d({props:{title:"Development & Testing",local:"development--testing",headingTag:"h2"}}),$e=new d({props:{title:"Direct Environment Testing",local:"direct-environment-testing",headingTag:"h3"}}),Ce=new w({props:{code:"ZnJvbSUyMHRleHRhcmVuYV9lbnYuc2VydmVyLmVudmlyb25tZW50JTIwaW1wb3J0JTIwVGV4dEFyZW5hRW52aXJvbm1lbnQlMEFmcm9tJTIwdGV4dGFyZW5hX2Vudi5tb2RlbHMlMjBpbXBvcnQlMjBUZXh0QXJlbmFBY3Rpb24lMEElMEElMjMlMjBDcmVhdGUlMjBlbnZpcm9ubWVudCUyMGRpcmVjdGx5JTBBZW52JTIwJTNEJTIwVGV4dEFyZW5hRW52aXJvbm1lbnQoZW52X2lkJTNEJTIyV29yZGxlLXYwJTIyJTJDJTIwbnVtX3BsYXllcnMlM0QxKSUwQSUwQSUyMyUyMFRlc3QlMjByZXNldCUwQW9icyUyMCUzRCUyMGVudi5yZXNldCgpJTBBcHJpbnQoZiUyMlByb21wdCUzQSUyMCU3Qm9icy5wcm9tcHQlN0QlMjIpJTBBJTBBJTIzJTIwVGVzdCUyMHN0ZXAlMEFvYnMlMjAlM0QlMjBlbnYuc3RlcChUZXh0QXJlbmFBY3Rpb24obWVzc2FnZSUzRCUyMiU1QmNyYW5lJTVEJTIyKSklMEFwcmludChmJTIyRG9uZSUzQSUyMCU3Qm9icy5kb25lJTdEJTJDJTIwUmV3YXJkJTNBJTIwJTdCb2JzLnJld2FyZCU3RCUyMik=",highlighted:`<span class="hljs-keyword">from</span> textarena_env.server.environment <span class="hljs-keyword">import</span> TextArenaEnvironment | |
| <span class="hljs-keyword">from</span> textarena_env.models <span class="hljs-keyword">import</span> TextArenaAction | |
| <span class="hljs-comment"># Create environment directly</span> | |
| env = TextArenaEnvironment(env_id=<span class="hljs-string">"Wordle-v0"</span>, num_players=<span class="hljs-number">1</span>) | |
| <span class="hljs-comment"># Test reset</span> | |
| obs = env.reset() | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Prompt: <span class="hljs-subst">{obs.prompt}</span>"</span>) | |
| <span class="hljs-comment"># Test step</span> | |
| obs = env.step(TextArenaAction(message=<span class="hljs-string">"[crane]"</span>)) | |
| <span class="hljs-built_in">print</span>(<span class="hljs-string">f"Done: <span class="hljs-subst">{obs.done}</span>, Reward: <span class="hljs-subst">{obs.reward}</span>"</span>)`,lang:"python",wrap:!1}}),je=new d({props:{title:"Running Locally",local:"running-locally",headingTag:"h3"}}),Ze=new w({props:{code:"JTIzJTIwSW5zdGFsbCUyMGRlcGVuZGVuY2llcyUwQXV2JTIwdmVudiUyMCUyNiUyNiUyMHNvdXJjZSUyMC52ZW52JTJGYmluJTJGYWN0aXZhdGUlMEF1diUyMHBpcCUyMGluc3RhbGwlMjAtZSUyMC4lMEElMEElMjMlMjBTdGFydCUyMHRoZSUyMHNlcnZlciUwQXB5dGhvbiUyMC1tJTIwdXZpY29ybiUyMHNlcnZlci5hcHAlM0FhcHAlMjAtLXJlbG9hZA==",highlighted:`<span class="hljs-comment"># Install dependencies</span> | |
| uv venv && <span class="hljs-built_in">source</span> .venv/bin/activate | |
| uv pip install -e . | |
| <span class="hljs-comment"># Start the server</span> | |
| python -m uvicorn server.app:app --reload`,lang:"bash",wrap:!1}}),xe=new w({props:{code:"dXYlMjBydW4lMjAtLXByb2plY3QlMjAuJTIwc2VydmVyJTIwLS1wb3J0JTIwODAwMA==",highlighted:"uv run --project . server --port 8000",lang:"bash",wrap:!1}}),Ee=new d({props:{title:"Project Structure",local:"project-structure",headingTag:"h2"}}),Re=new w({props:{code:"dGV4dGFyZW5hX2VudiUyRiUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMF9faW5pdF9fLnB5JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwTW9kdWxlJTIwZXhwb3J0cyUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMFJFQURNRS5tZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMFRoaXMlMjBmaWxlJTBBJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwb3BlbmVudi55YW1sJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwT3BlbkVudiUyMG1hbmlmZXN0JTBBJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwcHlwcm9qZWN0LnRvbWwlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBQcm9qZWN0JTIwbWV0YWRhdGElMjBhbmQlMjBkZXBlbmRlbmNpZXMlMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjB1di5sb2NrJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwTG9ja2VkJTIwZGVwZW5kZW5jaWVzJTIwKGdlbmVyYXRlZCklMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjBjbGllbnQucHklMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBUZXh0QXJlbmFFbnYlMjBjbGllbnQlMjBpbXBsZW1lbnRhdGlvbiUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMG1vZGVscy5weSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMEFjdGlvbiUyQyUyME9ic2VydmF0aW9uJTJDJTIwYW5kJTIwU3RhdGUlMjBtb2RlbHMlMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjByZXdhcmRzLnB5JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwUmV3YXJkJTIwcHJvdmlkZXIlMjB1dGlsaXRpZXMlMEElRTIlOTQlOTQlRTIlOTQlODAlRTIlOTQlODAlMjBzZXJ2ZXIlMkYlMEElMjAlMjAlMjAlMjAlRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjBfX2luaXRfXy5weSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMFNlcnZlciUyMG1vZHVsZSUyMGV4cG9ydHMlMEElMjAlMjAlMjAlMjAlRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjBlbnZpcm9ubWVudC5weSUyMCUyMCUyMCUyMCUyMCUyMyUyMENvcmUlMjBUZXh0QXJlbmFFbnZpcm9ubWVudCUyMGltcGxlbWVudGF0aW9uJTBBJTIwJTIwJTIwJTIwJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwYXBwLnB5JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwRmFzdEFQSSUyMGFwcGxpY2F0aW9uJTBBJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwRG9ja2VyZmlsZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMENvbnRhaW5lciUyMGltYWdlJTIwZGVmaW5pdGlvbg==",highlighted:`textarena_env/ | |
| ├── __init__.py # Module exports | |
| ├── README.md # This file | |
| ├── openenv.yaml # OpenEnv manifest | |
| ├── pyproject.toml # Project metadata and dependencies | |
| ├── uv.lock # Locked dependencies (generated) | |
| ├── client.py # TextArenaEnv client <span class="hljs-keyword">implementation</span> | |
| ├── models.py # Action, Observation, and State models | |
| ├── rewards.py # Reward provider utilities | |
| └── server/ | |
| ├── __init__.py # Server <span class="hljs-keyword">module</span> exports | |
| ├── environment.py # Core TextArenaEnvironment <span class="hljs-keyword">implementation</span> | |
| ├── app.py # FastAPI application | |
| └── Dockerfile # Container image <span class="hljs-keyword">definition</span>`,lang:"",wrap:!1}}),Ve=new Kl({props:{source:"https://github.com/huggingface/openenv/blob/main/docs/source/environments/textarena.md"}}),{c(){u=a("meta"),Qe=s(),We=a("p"),He=s(),o(U.$$.fragment),Xe=s(),o(f.$$.fragment),ke=s(),v=a("p"),v.innerHTML=rl,Fe=s(),J=a("blockquote"),J.innerHTML=pl,Se=s(),o(g.$$.fragment),_e=s(),h=a("p"),h.innerHTML=ol,Ne=s(),o(I.$$.fragment),Le=s(),$=a("p"),$.innerHTML=ml,Ye=s(),b=a("ul"),b.innerHTML=Tl,ze=s(),o(C.$$.fragment),Oe=s(),j=a("p"),j.textContent=Ml,De=s(),o(B.$$.fragment),Pe=s(),o(Z.$$.fragment),qe=s(),A=a("p"),A.innerHTML=yl,Ke=s(),x=a("ul"),x.innerHTML=cl,et=s(),E=a("p"),E.innerHTML=dl,tt=s(),R=a("p"),R.textContent=wl,lt=s(),o(V.$$.fragment),nt=s(),W=a("p"),W.innerHTML=ul,st=s(),o(G.$$.fragment),it=s(),Q=a("p"),Q.textContent=Jl,at=s(),o(H.$$.fragment),rt=s(),X=a("p"),X.innerHTML=Ul,pt=s(),o(k.$$.fragment),ot=s(),F=a("p"),F.innerHTML=fl,mt=s(),o(S.$$.fragment),Tt=s(),_=a("p"),_.innerHTML=vl,Mt=s(),N=a("ol"),N.innerHTML=gl,yt=s(),o(L.$$.fragment),ct=s(),Y=a("ul"),Y.innerHTML=hl,dt=s(),o(z.$$.fragment),wt=s(),O=a("ul"),O.innerHTML=Il,ut=s(),o(D.$$.fragment),Jt=s(),o(P.$$.fragment),Ut=s(),q=a("p"),q.innerHTML=$l,ft=s(),K=a("p"),K.textContent=bl,vt=s(),ee=a("ul"),ee.innerHTML=Cl,gt=s(),o(te.$$.fragment),ht=s(),o(le.$$.fragment),It=s(),ne=a("p"),ne.innerHTML=jl,$t=s(),se=a("ul"),se.innerHTML=Bl,bt=s(),o(ie.$$.fragment),Ct=s(),ae=a("p"),ae.innerHTML=Zl,jt=s(),re=a("ul"),re.innerHTML=Al,Bt=s(),o(pe.$$.fragment),Zt=s(),oe=a("p"),oe.textContent=xl,At=s(),me=a("ul"),me.innerHTML=El,xt=s(),o(Te.$$.fragment),Et=s(),Me=a("p"),Me.innerHTML=Rl,Rt=s(),ye=a("ul"),ye.innerHTML=Vl,Vt=s(),o(ce.$$.fragment),Wt=s(),de=a("p"),de.textContent=Wl,Gt=s(),we=a("ul"),we.innerHTML=Gl,Qt=s(),o(ue.$$.fragment),Ht=s(),o(Je.$$.fragment),Xt=s(),Ue=a("p"),Ue.textContent=Ql,kt=s(),o(fe.$$.fragment),Ft=s(),o(ve.$$.fragment),St=s(),ge=a("p"),ge.textContent=Hl,_t=s(),he=a("ul"),he.innerHTML=Xl,Nt=s(),o(Ie.$$.fragment),Lt=s(),o($e.$$.fragment),Yt=s(),be=a("p"),be.textContent=kl,zt=s(),o(Ce.$$.fragment),Ot=s(),o(je.$$.fragment),Dt=s(),Be=a("p"),Be.textContent=Fl,Pt=s(),o(Ze.$$.fragment),qt=s(),Ae=a("p"),Ae.textContent=Sl,Kt=s(),o(xe.$$.fragment),el=s(),o(Ee.$$.fragment),tl=s(),o(Re.$$.fragment),ll=s(),o(Ve.$$.fragment),nl=s(),Ge=a("p"),this.h()},l(e){const t=Dl("svelte-u9bgzb",document.head);u=r(t,"META",{name:!0,content:!0}),t.forEach(l),Qe=i(e),We=r(e,"P",{}),_l(We).forEach(l),He=i(e),m(U.$$.fragment,e),Xe=i(e),m(f.$$.fragment,e),ke=i(e),v=r(e,"P",{"data-svelte-h":!0}),p(v)!=="svelte-cv4ndc"&&(v.innerHTML=rl),Fe=i(e),J=r(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(J)!=="svelte-viz3e3"&&(J.innerHTML=pl),Se=i(e),m(g.$$.fragment,e),_e=i(e),h=r(e,"P",{"data-svelte-h":!0}),p(h)!=="svelte-aucaid"&&(h.innerHTML=ol),Ne=i(e),m(I.$$.fragment,e),Le=i(e),$=r(e,"P",{"data-svelte-h":!0}),p($)!=="svelte-1bbe6ra"&&($.innerHTML=ml),Ye=i(e),b=r(e,"UL",{"data-svelte-h":!0}),p(b)!=="svelte-18k8876"&&(b.innerHTML=Tl),ze=i(e),m(C.$$.fragment,e),Oe=i(e),j=r(e,"P",{"data-svelte-h":!0}),p(j)!=="svelte-78ic0n"&&(j.textContent=Ml),De=i(e),m(B.$$.fragment,e),Pe=i(e),m(Z.$$.fragment,e),qe=i(e),A=r(e,"P",{"data-svelte-h":!0}),p(A)!=="svelte-zcij56"&&(A.innerHTML=yl),Ke=i(e),x=r(e,"UL",{"data-svelte-h":!0}),p(x)!=="svelte-127h5cr"&&(x.innerHTML=cl),et=i(e),E=r(e,"P",{"data-svelte-h":!0}),p(E)!=="svelte-1l75en8"&&(E.innerHTML=dl),tt=i(e),R=r(e,"P",{"data-svelte-h":!0}),p(R)!=="svelte-cwsah0"&&(R.textContent=wl),lt=i(e),m(V.$$.fragment,e),nt=i(e),W=r(e,"P",{"data-svelte-h":!0}),p(W)!=="svelte-wnm4yw"&&(W.innerHTML=ul),st=i(e),m(G.$$.fragment,e),it=i(e),Q=r(e,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-ylaoa1"&&(Q.textContent=Jl),at=i(e),m(H.$$.fragment,e),rt=i(e),X=r(e,"P",{"data-svelte-h":!0}),p(X)!=="svelte-12egixn"&&(X.innerHTML=Ul),pt=i(e),m(k.$$.fragment,e),ot=i(e),F=r(e,"P",{"data-svelte-h":!0}),p(F)!=="svelte-1w0m59y"&&(F.innerHTML=fl),mt=i(e),m(S.$$.fragment,e),Tt=i(e),_=r(e,"P",{"data-svelte-h":!0}),p(_)!=="svelte-10tfdgm"&&(_.innerHTML=vl),Mt=i(e),N=r(e,"OL",{"data-svelte-h":!0}),p(N)!=="svelte-jijyjb"&&(N.innerHTML=gl),yt=i(e),m(L.$$.fragment,e),ct=i(e),Y=r(e,"UL",{"data-svelte-h":!0}),p(Y)!=="svelte-348gc7"&&(Y.innerHTML=hl),dt=i(e),m(z.$$.fragment,e),wt=i(e),O=r(e,"UL",{"data-svelte-h":!0}),p(O)!=="svelte-k1u5ib"&&(O.innerHTML=Il),ut=i(e),m(D.$$.fragment,e),Jt=i(e),m(P.$$.fragment,e),Ut=i(e),q=r(e,"P",{"data-svelte-h":!0}),p(q)!=="svelte-16csr9h"&&(q.innerHTML=$l),ft=i(e),K=r(e,"P",{"data-svelte-h":!0}),p(K)!=="svelte-nvk5q8"&&(K.textContent=bl),vt=i(e),ee=r(e,"UL",{"data-svelte-h":!0}),p(ee)!=="svelte-1vgii3r"&&(ee.innerHTML=Cl),gt=i(e),m(te.$$.fragment,e),ht=i(e),m(le.$$.fragment,e),It=i(e),ne=r(e,"P",{"data-svelte-h":!0}),p(ne)!=="svelte-17m5kj9"&&(ne.innerHTML=jl),$t=i(e),se=r(e,"UL",{"data-svelte-h":!0}),p(se)!=="svelte-1ifgpku"&&(se.innerHTML=Bl),bt=i(e),m(ie.$$.fragment,e),Ct=i(e),ae=r(e,"P",{"data-svelte-h":!0}),p(ae)!=="svelte-1jtec9c"&&(ae.innerHTML=Zl),jt=i(e),re=r(e,"UL",{"data-svelte-h":!0}),p(re)!=="svelte-s67c53"&&(re.innerHTML=Al),Bt=i(e),m(pe.$$.fragment,e),Zt=i(e),oe=r(e,"P",{"data-svelte-h":!0}),p(oe)!=="svelte-suv41"&&(oe.textContent=xl),At=i(e),me=r(e,"UL",{"data-svelte-h":!0}),p(me)!=="svelte-39h1vq"&&(me.innerHTML=El),xt=i(e),m(Te.$$.fragment,e),Et=i(e),Me=r(e,"P",{"data-svelte-h":!0}),p(Me)!=="svelte-5owym2"&&(Me.innerHTML=Rl),Rt=i(e),ye=r(e,"UL",{"data-svelte-h":!0}),p(ye)!=="svelte-adylre"&&(ye.innerHTML=Vl),Vt=i(e),m(ce.$$.fragment,e),Wt=i(e),de=r(e,"P",{"data-svelte-h":!0}),p(de)!=="svelte-1avw3bj"&&(de.textContent=Wl),Gt=i(e),we=r(e,"UL",{"data-svelte-h":!0}),p(we)!=="svelte-hkfmtw"&&(we.innerHTML=Gl),Qt=i(e),m(ue.$$.fragment,e),Ht=i(e),m(Je.$$.fragment,e),Xt=i(e),Ue=r(e,"P",{"data-svelte-h":!0}),p(Ue)!=="svelte-11wgexd"&&(Ue.textContent=Ql),kt=i(e),m(fe.$$.fragment,e),Ft=i(e),m(ve.$$.fragment,e),St=i(e),ge=r(e,"P",{"data-svelte-h":!0}),p(ge)!=="svelte-1h4iz2"&&(ge.textContent=Hl),_t=i(e),he=r(e,"UL",{"data-svelte-h":!0}),p(he)!=="svelte-1yjh26x"&&(he.innerHTML=Xl),Nt=i(e),m(Ie.$$.fragment,e),Lt=i(e),m($e.$$.fragment,e),Yt=i(e),be=r(e,"P",{"data-svelte-h":!0}),p(be)!=="svelte-12l40io"&&(be.textContent=kl),zt=i(e),m(Ce.$$.fragment,e),Ot=i(e),m(je.$$.fragment,e),Dt=i(e),Be=r(e,"P",{"data-svelte-h":!0}),p(Be)!=="svelte-168rc93"&&(Be.textContent=Fl),Pt=i(e),m(Ze.$$.fragment,e),qt=i(e),Ae=r(e,"P",{"data-svelte-h":!0}),p(Ae)!=="svelte-kafmnw"&&(Ae.textContent=Sl),Kt=i(e),m(xe.$$.fragment,e),el=i(e),m(Ee.$$.fragment,e),tl=i(e),m(Re.$$.fragment,e),ll=i(e),m(Ve.$$.fragment,e),nl=i(e),Ge=r(e,"P",{}),_l(Ge).forEach(l),this.h()},h(){il(u,"name","hf:doc:metadata"),il(u,"content",tn),il(J,"class","note")},m(e,t){Pl(document.head,u),n(e,Qe,t),n(e,We,t),n(e,He,t),T(U,e,t),n(e,Xe,t),T(f,e,t),n(e,ke,t),n(e,v,t),n(e,Fe,t),n(e,J,t),n(e,Se,t),T(g,e,t),n(e,_e,t),n(e,h,t),n(e,Ne,t),T(I,e,t),n(e,Le,t),n(e,$,t),n(e,Ye,t),n(e,b,t),n(e,ze,t),T(C,e,t),n(e,Oe,t),n(e,j,t),n(e,De,t),T(B,e,t),n(e,Pe,t),T(Z,e,t),n(e,qe,t),n(e,A,t),n(e,Ke,t),n(e,x,t),n(e,et,t),n(e,E,t),n(e,tt,t),n(e,R,t),n(e,lt,t),T(V,e,t),n(e,nt,t),n(e,W,t),n(e,st,t),T(G,e,t),n(e,it,t),n(e,Q,t),n(e,at,t),T(H,e,t),n(e,rt,t),n(e,X,t),n(e,pt,t),T(k,e,t),n(e,ot,t),n(e,F,t),n(e,mt,t),T(S,e,t),n(e,Tt,t),n(e,_,t),n(e,Mt,t),n(e,N,t),n(e,yt,t),T(L,e,t),n(e,ct,t),n(e,Y,t),n(e,dt,t),T(z,e,t),n(e,wt,t),n(e,O,t),n(e,ut,t),T(D,e,t),n(e,Jt,t),T(P,e,t),n(e,Ut,t),n(e,q,t),n(e,ft,t),n(e,K,t),n(e,vt,t),n(e,ee,t),n(e,gt,t),T(te,e,t),n(e,ht,t),T(le,e,t),n(e,It,t),n(e,ne,t),n(e,$t,t),n(e,se,t),n(e,bt,t),T(ie,e,t),n(e,Ct,t),n(e,ae,t),n(e,jt,t),n(e,re,t),n(e,Bt,t),T(pe,e,t),n(e,Zt,t),n(e,oe,t),n(e,At,t),n(e,me,t),n(e,xt,t),T(Te,e,t),n(e,Et,t),n(e,Me,t),n(e,Rt,t),n(e,ye,t),n(e,Vt,t),T(ce,e,t),n(e,Wt,t),n(e,de,t),n(e,Gt,t),n(e,we,t),n(e,Qt,t),T(ue,e,t),n(e,Ht,t),T(Je,e,t),n(e,Xt,t),n(e,Ue,t),n(e,kt,t),T(fe,e,t),n(e,Ft,t),T(ve,e,t),n(e,St,t),n(e,ge,t),n(e,_t,t),n(e,he,t),n(e,Nt,t),T(Ie,e,t),n(e,Lt,t),T($e,e,t),n(e,Yt,t),n(e,be,t),n(e,zt,t),T(Ce,e,t),n(e,Ot,t),T(je,e,t),n(e,Dt,t),n(e,Be,t),n(e,Pt,t),T(Ze,e,t),n(e,qt,t),n(e,Ae,t),n(e,Kt,t),T(xe,e,t),n(e,el,t),T(Ee,e,t),n(e,tl,t),T(Re,e,t),n(e,ll,t),T(Ve,e,t),n(e,nl,t),n(e,Ge,t),sl=!0},p:Ll,i(e){sl||(M(U.$$.fragment,e),M(f.$$.fragment,e),M(g.$$.fragment,e),M(I.$$.fragment,e),M(C.$$.fragment,e),M(B.$$.fragment,e),M(Z.$$.fragment,e),M(V.$$.fragment,e),M(G.$$.fragment,e),M(H.$$.fragment,e),M(k.$$.fragment,e),M(S.$$.fragment,e),M(L.$$.fragment,e),M(z.$$.fragment,e),M(D.$$.fragment,e),M(P.$$.fragment,e),M(te.$$.fragment,e),M(le.$$.fragment,e),M(ie.$$.fragment,e),M(pe.$$.fragment,e),M(Te.$$.fragment,e),M(ce.$$.fragment,e),M(ue.$$.fragment,e),M(Je.$$.fragment,e),M(fe.$$.fragment,e),M(ve.$$.fragment,e),M(Ie.$$.fragment,e),M($e.$$.fragment,e),M(Ce.$$.fragment,e),M(je.$$.fragment,e),M(Ze.$$.fragment,e),M(xe.$$.fragment,e),M(Ee.$$.fragment,e),M(Re.$$.fragment,e),M(Ve.$$.fragment,e),sl=!0)},o(e){y(U.$$.fragment,e),y(f.$$.fragment,e),y(g.$$.fragment,e),y(I.$$.fragment,e),y(C.$$.fragment,e),y(B.$$.fragment,e),y(Z.$$.fragment,e),y(V.$$.fragment,e),y(G.$$.fragment,e),y(H.$$.fragment,e),y(k.$$.fragment,e),y(S.$$.fragment,e),y(L.$$.fragment,e),y(z.$$.fragment,e),y(D.$$.fragment,e),y(P.$$.fragment,e),y(te.$$.fragment,e),y(le.$$.fragment,e),y(ie.$$.fragment,e),y(pe.$$.fragment,e),y(Te.$$.fragment,e),y(ce.$$.fragment,e),y(ue.$$.fragment,e),y(Je.$$.fragment,e),y(fe.$$.fragment,e),y(ve.$$.fragment,e),y(Ie.$$.fragment,e),y($e.$$.fragment,e),y(Ce.$$.fragment,e),y(je.$$.fragment,e),y(Ze.$$.fragment,e),y(xe.$$.fragment,e),y(Ee.$$.fragment,e),y(Re.$$.fragment,e),y(Ve.$$.fragment,e),sl=!1},d(e){e&&(l(Qe),l(We),l(He),l(Xe),l(ke),l(v),l(Fe),l(J),l(Se),l(_e),l(h),l(Ne),l(Le),l($),l(Ye),l(b),l(ze),l(Oe),l(j),l(De),l(Pe),l(qe),l(A),l(Ke),l(x),l(et),l(E),l(tt),l(R),l(lt),l(nt),l(W),l(st),l(it),l(Q),l(at),l(rt),l(X),l(pt),l(ot),l(F),l(mt),l(Tt),l(_),l(Mt),l(N),l(yt),l(ct),l(Y),l(dt),l(wt),l(O),l(ut),l(Jt),l(Ut),l(q),l(ft),l(K),l(vt),l(ee),l(gt),l(ht),l(It),l(ne),l($t),l(se),l(bt),l(Ct),l(ae),l(jt),l(re),l(Bt),l(Zt),l(oe),l(At),l(me),l(xt),l(Et),l(Me),l(Rt),l(ye),l(Vt),l(Wt),l(de),l(Gt),l(we),l(Qt),l(Ht),l(Xt),l(Ue),l(kt),l(Ft),l(St),l(ge),l(_t),l(he),l(Nt),l(Lt),l(Yt),l(be),l(zt),l(Ot),l(Dt),l(Be),l(Pt),l(qt),l(Ae),l(Kt),l(el),l(tl),l(ll),l(nl),l(Ge)),l(u),c(U,e),c(f,e),c(g,e),c(I,e),c(C,e),c(B,e),c(Z,e),c(V,e),c(G,e),c(H,e),c(k,e),c(S,e),c(L,e),c(z,e),c(D,e),c(P,e),c(te,e),c(le,e),c(ie,e),c(pe,e),c(Te,e),c(ce,e),c(ue,e),c(Je,e),c(fe,e),c(ve,e),c(Ie,e),c($e,e),c(Ce,e),c(je,e),c(Ze,e),c(xe,e),c(Ee,e),c(Re,e),c(Ve,e)}}}const tn='{"title":"TextArena Environment","local":"textarena-environment","sections":[{"title":"Quick Start","local":"quick-start","sections":[],"depth":2},{"title":"Building the Docker Image","local":"building-the-docker-image","sections":[],"depth":2},{"title":"Testing the Gradio UI locally","local":"testing-the-gradio-ui-locally","sections":[],"depth":2},{"title":"Deploying to Hugging Face Spaces","local":"deploying-to-hugging-face-spaces","sections":[{"title":"Prerequisites","local":"prerequisites","sections":[],"depth":3},{"title":"Options","local":"options","sections":[],"depth":3},{"title":"Examples","local":"examples","sections":[],"depth":3}],"depth":2},{"title":"Environment Details","local":"environment-details","sections":[{"title":"Action","local":"action","sections":[],"depth":3},{"title":"Observation","local":"observation","sections":[],"depth":3},{"title":"TextArenaMessage","local":"textarenamessage","sections":[],"depth":3},{"title":"State","local":"state","sections":[],"depth":3},{"title":"Reward","local":"reward","sections":[],"depth":3}],"depth":2},{"title":"Advanced Usage","local":"advanced-usage","sections":[{"title":"Connecting to an Existing Server","local":"connecting-to-an-existing-server","sections":[],"depth":3},{"title":"Environment Configuration","local":"environment-configuration","sections":[],"depth":3}],"depth":2},{"title":"Development & Testing","local":"development--testing","sections":[{"title":"Direct Environment Testing","local":"direct-environment-testing","sections":[],"depth":3},{"title":"Running Locally","local":"running-locally","sections":[],"depth":3}],"depth":2},{"title":"Project Structure","local":"project-structure","sections":[],"depth":2}],"depth":1}';function ln(al){return Yl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class pn extends zl{constructor(u){super(),Ol(this,u,ln,en,Nl,{})}}export{pn as component}; | |
Xet Storage Details
- Size:
- 35.2 kB
- Xet hash:
- ac78cee944b14b402ba837674bb537b0ac9fbc82fb0191df9556c5f789912991
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.