Buckets:

HuggingFaceDocBuilder's picture
download
raw
35.2 kB
import{s as Ll,n as Nl,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 M,t as T,o as c,p as y}from"../chunks/index.1a0e8013.js";import{C as ql,H as d,E as Kl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.9fce96e6.js";import{C as w}from"../chunks/CodeBlock.a5335d90.js";function en(al){let u,He,We,Ge,J,ke,f,Se,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,U,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>',Xe,g,_e,h,ol="The simplest way to use the TextArena environment is through the <code>TextArenaEnv</code> class:",Le,I,Ne,$,ml="That’s it! The <code>TextArenaEnv.from_docker_image()</code> method handles:",Ye,b,Ml="<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,Tl="Before using the environment, you need to build the Docker image:",De,B,Pe,A,qe,Z,cl='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,yl='<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,Q,it,H,Ul="Or:",at,G,rt,k,Jl="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,S,ot,F,fl="You can easily deploy your OpenEnv environment to Hugging Face Spaces using the <code>openenv push</code> command:",mt,X,Mt,_,vl="The <code>openenv push</code> command will:",Tt,L,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>",ct,N,yt,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,Ut,P,Jt,q,$l=`After deployment, your space will be available at:
<code>https://huggingface.co/spaces/&lt;repo-id&gt;</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,Al="<strong>TextArenaObservation</strong>: Contains the game state and response",jt,re,Zl="<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,At,oe,xl="Each message in the conversation has:",Zt,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,Me,Et,Te,Rl="<strong>TextArenaState</strong>: Server-side state snapshot",Rt,ce,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,ye,Wt,de,Wl="Rewards are determined by the underlying TextArena game. For example:",Qt,we,Ql="<li><strong>Wordle-v0</strong>: Positive reward for winning, includes reward signals for green/yellow letter matches</li>",Ht,ue,Gt,Ue,kt,Je,Hl="If you already have a TextArena environment server running, you can connect directly:",St,fe,Ft,ve,Xt,ge,Gl="The server supports configuration via environment variables:",_t,he,kl="<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>",Lt,Ie,Nt,$e,Yt,be,Sl="Test the environment logic directly without starting the HTTP server:",zt,Ce,Ot,je,Dt,Be,Fl="Run the server locally for development:",Pt,Ae,qt,Ze,Xl="Or using the CLI entry point:",Kt,xe,el,Ee,tl,Re,ll,Ve,nl,Qe,sl;return J=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">&quot;textarena-env:latest&quot;</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&quot;Game prompt:\\n<span class="hljs-subst">{result.observation.prompt}</span>&quot;</span>)
<span class="hljs-comment"># Play a few turns (example: Wordle guesses)</span>
guesses = [<span class="hljs-string">&quot;[crane]&quot;</span>, <span class="hljs-string">&quot;[slate]&quot;</span>, <span class="hljs-string">&quot;[audio]&quot;</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&quot;Response: <span class="hljs-subst">{message.content}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Reward: <span class="hljs-subst">{result.reward}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Done: <span class="hljs-subst">{result.done}</span>&quot;</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}}),A=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}}),Q=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}}),G=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}}),S=new d({props:{title:"Deploying to Hugging Face Spaces",local:"deploying-to-hugging-face-spaces",headingTag:"h2"}}),X=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}}),N=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:"JTIzJTIwUHVzaCUyMHRvJTIweW91ciUyMHBlcnNvbmFsJTIwbmFtZXNwYWNlJTIwKGRlZmF1bHRzJTIwdG8lMjB1c2VybmFtZSUyRmVudi1uYW1lJTIwZnJvbSUyMG9wZW5lbnYueWFtbCklMEFvcGVuZW52JTIwcHVzaCUwQSUwQSUyMyUyMFB1c2glMjB0byUyMGElMjBzcGVjaWZpYyUyMHJlcG9zaXRvcnklMEFvcGVuZW52JTIwcHVzaCUyMC0tcmVwby1pZCUyMG15LW9yZyUyRm15LWVudiUwQSUwQSUyMyUyMFB1c2glMjB3aXRoJTIwYSUyMGN1c3RvbSUyMGJhc2UlMjBpbWFnZSUwQW9wZW5lbnYlMjBwdXNoJTIwLS1iYXNlLWltYWdlJTIwZ2hjci5pbyUyRm1ldGEtcHl0b3JjaCUyRm9wZW5lbnYtYmFzZSUzQWxhdGVzdCUwQSUwQSUyMyUyMFB1c2glMjBhcyUyMGElMjBwcml2YXRlJTIwc3BhY2UlMEFvcGVuZW52JTIwcHVzaCUyMC0tcHJpdmF0ZSUwQSUwQSUyMyUyMENvbWJpbmUlMjBvcHRpb25zJTBBb3BlbmVudiUyMHB1c2glMjAtLXJlcG8taWQlMjBteS1vcmclMkZteS1lbnYlMjAtLWJhc2UtaW1hZ2UlMjBjdXN0b20tYmFzZSUzQWxhdGVzdCUyMC0tcHJpdmF0ZQ==",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/meta-pytorch/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"}}),Me=new d({props:{title:"State",local:"state",headingTag:"h3"}}),ye=new d({props:{title:"Reward",local:"reward",headingTag:"h3"}}),ue=new d({props:{title:"Advanced Usage",local:"advanced-usage",headingTag:"h2"}}),Ue=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">&quot;&lt;ENV_HTTP_URL_HERE&gt;&quot;</span>)
<span class="hljs-comment"># Use as normal</span>
result = env.reset()
result = env.step(TextArenaAction(message=<span class="hljs-string">&quot;[crane]&quot;</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">&quot;Wordle-v0&quot;</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&quot;Prompt: <span class="hljs-subst">{obs.prompt}</span>&quot;</span>)
<span class="hljs-comment"># Test step</span>
obs = env.step(TextArenaAction(message=<span class="hljs-string">&quot;[crane]&quot;</span>))
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Done: <span class="hljs-subst">{obs.done}</span>, Reward: <span class="hljs-subst">{obs.reward}</span>&quot;</span>)`,lang:"python",wrap:!1}}),je=new d({props:{title:"Running Locally",local:"running-locally",headingTag:"h3"}}),Ae=new w({props:{code:"JTIzJTIwSW5zdGFsbCUyMGRlcGVuZGVuY2llcyUwQXV2JTIwdmVudiUyMCUyNiUyNiUyMHNvdXJjZSUyMC52ZW52JTJGYmluJTJGYWN0aXZhdGUlMEF1diUyMHBpcCUyMGluc3RhbGwlMjAtZSUyMC4lMEElMEElMjMlMjBTdGFydCUyMHRoZSUyMHNlcnZlciUwQXB5dGhvbiUyMC1tJTIwdXZpY29ybiUyMHNlcnZlci5hcHAlM0FhcHAlMjAtLXJlbG9hZA==",highlighted:`<span class="hljs-comment"># Install dependencies</span>
uv venv &amp;&amp; <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"),He=s(),We=a("p"),Ge=s(),o(J.$$.fragment),ke=s(),o(f.$$.fragment),Se=s(),v=a("p"),v.innerHTML=rl,Fe=s(),U=a("blockquote"),U.innerHTML=pl,Xe=s(),o(g.$$.fragment),_e=s(),h=a("p"),h.innerHTML=ol,Le=s(),o(I.$$.fragment),Ne=s(),$=a("p"),$.innerHTML=ml,Ye=s(),b=a("ul"),b.innerHTML=Ml,ze=s(),o(C.$$.fragment),Oe=s(),j=a("p"),j.textContent=Tl,De=s(),o(B.$$.fragment),Pe=s(),o(A.$$.fragment),qe=s(),Z=a("p"),Z.innerHTML=cl,Ke=s(),x=a("ul"),x.innerHTML=yl,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(Q.$$.fragment),it=s(),H=a("p"),H.textContent=Ul,at=s(),o(G.$$.fragment),rt=s(),k=a("p"),k.innerHTML=Jl,pt=s(),o(S.$$.fragment),ot=s(),F=a("p"),F.innerHTML=fl,mt=s(),o(X.$$.fragment),Mt=s(),_=a("p"),_.innerHTML=vl,Tt=s(),L=a("ol"),L.innerHTML=gl,ct=s(),o(N.$$.fragment),yt=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),Ut=s(),o(P.$$.fragment),Jt=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=Al,jt=s(),re=a("ul"),re.innerHTML=Zl,Bt=s(),o(pe.$$.fragment),At=s(),oe=a("p"),oe.textContent=xl,Zt=s(),me=a("ul"),me.innerHTML=El,xt=s(),o(Me.$$.fragment),Et=s(),Te=a("p"),Te.innerHTML=Rl,Rt=s(),ce=a("ul"),ce.innerHTML=Vl,Vt=s(),o(ye.$$.fragment),Wt=s(),de=a("p"),de.textContent=Wl,Qt=s(),we=a("ul"),we.innerHTML=Ql,Ht=s(),o(ue.$$.fragment),Gt=s(),o(Ue.$$.fragment),kt=s(),Je=a("p"),Je.textContent=Hl,St=s(),o(fe.$$.fragment),Ft=s(),o(ve.$$.fragment),Xt=s(),ge=a("p"),ge.textContent=Gl,_t=s(),he=a("ul"),he.innerHTML=kl,Lt=s(),o(Ie.$$.fragment),Nt=s(),o($e.$$.fragment),Yt=s(),be=a("p"),be.textContent=Sl,zt=s(),o(Ce.$$.fragment),Ot=s(),o(je.$$.fragment),Dt=s(),Be=a("p"),Be.textContent=Fl,Pt=s(),o(Ae.$$.fragment),qt=s(),Ze=a("p"),Ze.textContent=Xl,Kt=s(),o(xe.$$.fragment),el=s(),o(Ee.$$.fragment),tl=s(),o(Re.$$.fragment),ll=s(),o(Ve.$$.fragment),nl=s(),Qe=a("p"),this.h()},l(e){const t=Dl("svelte-u9bgzb",document.head);u=r(t,"META",{name:!0,content:!0}),t.forEach(l),He=i(e),We=r(e,"P",{}),_l(We).forEach(l),Ge=i(e),m(J.$$.fragment,e),ke=i(e),m(f.$$.fragment,e),Se=i(e),v=r(e,"P",{"data-svelte-h":!0}),p(v)!=="svelte-cv4ndc"&&(v.innerHTML=rl),Fe=i(e),U=r(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(U)!=="svelte-viz3e3"&&(U.innerHTML=pl),Xe=i(e),m(g.$$.fragment,e),_e=i(e),h=r(e,"P",{"data-svelte-h":!0}),p(h)!=="svelte-aucaid"&&(h.innerHTML=ol),Le=i(e),m(I.$$.fragment,e),Ne=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=Ml),ze=i(e),m(C.$$.fragment,e),Oe=i(e),j=r(e,"P",{"data-svelte-h":!0}),p(j)!=="svelte-78ic0n"&&(j.textContent=Tl),De=i(e),m(B.$$.fragment,e),Pe=i(e),m(A.$$.fragment,e),qe=i(e),Z=r(e,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-zcij56"&&(Z.innerHTML=cl),Ke=i(e),x=r(e,"UL",{"data-svelte-h":!0}),p(x)!=="svelte-127h5cr"&&(x.innerHTML=yl),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(Q.$$.fragment,e),it=i(e),H=r(e,"P",{"data-svelte-h":!0}),p(H)!=="svelte-ylaoa1"&&(H.textContent=Ul),at=i(e),m(G.$$.fragment,e),rt=i(e),k=r(e,"P",{"data-svelte-h":!0}),p(k)!=="svelte-12egixn"&&(k.innerHTML=Jl),pt=i(e),m(S.$$.fragment,e),ot=i(e),F=r(e,"P",{"data-svelte-h":!0}),p(F)!=="svelte-1w0m59y"&&(F.innerHTML=fl),mt=i(e),m(X.$$.fragment,e),Mt=i(e),_=r(e,"P",{"data-svelte-h":!0}),p(_)!=="svelte-10tfdgm"&&(_.innerHTML=vl),Tt=i(e),L=r(e,"OL",{"data-svelte-h":!0}),p(L)!=="svelte-jijyjb"&&(L.innerHTML=gl),ct=i(e),m(N.$$.fragment,e),yt=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),Ut=i(e),m(P.$$.fragment,e),Jt=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=Al),jt=i(e),re=r(e,"UL",{"data-svelte-h":!0}),p(re)!=="svelte-s67c53"&&(re.innerHTML=Zl),Bt=i(e),m(pe.$$.fragment,e),At=i(e),oe=r(e,"P",{"data-svelte-h":!0}),p(oe)!=="svelte-suv41"&&(oe.textContent=xl),Zt=i(e),me=r(e,"UL",{"data-svelte-h":!0}),p(me)!=="svelte-39h1vq"&&(me.innerHTML=El),xt=i(e),m(Me.$$.fragment,e),Et=i(e),Te=r(e,"P",{"data-svelte-h":!0}),p(Te)!=="svelte-5owym2"&&(Te.innerHTML=Rl),Rt=i(e),ce=r(e,"UL",{"data-svelte-h":!0}),p(ce)!=="svelte-adylre"&&(ce.innerHTML=Vl),Vt=i(e),m(ye.$$.fragment,e),Wt=i(e),de=r(e,"P",{"data-svelte-h":!0}),p(de)!=="svelte-1avw3bj"&&(de.textContent=Wl),Qt=i(e),we=r(e,"UL",{"data-svelte-h":!0}),p(we)!=="svelte-hkfmtw"&&(we.innerHTML=Ql),Ht=i(e),m(ue.$$.fragment,e),Gt=i(e),m(Ue.$$.fragment,e),kt=i(e),Je=r(e,"P",{"data-svelte-h":!0}),p(Je)!=="svelte-11wgexd"&&(Je.textContent=Hl),St=i(e),m(fe.$$.fragment,e),Ft=i(e),m(ve.$$.fragment,e),Xt=i(e),ge=r(e,"P",{"data-svelte-h":!0}),p(ge)!=="svelte-1h4iz2"&&(ge.textContent=Gl),_t=i(e),he=r(e,"UL",{"data-svelte-h":!0}),p(he)!=="svelte-1yjh26x"&&(he.innerHTML=kl),Lt=i(e),m(Ie.$$.fragment,e),Nt=i(e),m($e.$$.fragment,e),Yt=i(e),be=r(e,"P",{"data-svelte-h":!0}),p(be)!=="svelte-12l40io"&&(be.textContent=Sl),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(Ae.$$.fragment,e),qt=i(e),Ze=r(e,"P",{"data-svelte-h":!0}),p(Ze)!=="svelte-kafmnw"&&(Ze.textContent=Xl),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),Qe=r(e,"P",{}),_l(Qe).forEach(l),this.h()},h(){il(u,"name","hf:doc:metadata"),il(u,"content",tn),il(U,"class","note")},m(e,t){Pl(document.head,u),n(e,He,t),n(e,We,t),n(e,Ge,t),M(J,e,t),n(e,ke,t),M(f,e,t),n(e,Se,t),n(e,v,t),n(e,Fe,t),n(e,U,t),n(e,Xe,t),M(g,e,t),n(e,_e,t),n(e,h,t),n(e,Le,t),M(I,e,t),n(e,Ne,t),n(e,$,t),n(e,Ye,t),n(e,b,t),n(e,ze,t),M(C,e,t),n(e,Oe,t),n(e,j,t),n(e,De,t),M(B,e,t),n(e,Pe,t),M(A,e,t),n(e,qe,t),n(e,Z,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),M(V,e,t),n(e,nt,t),n(e,W,t),n(e,st,t),M(Q,e,t),n(e,it,t),n(e,H,t),n(e,at,t),M(G,e,t),n(e,rt,t),n(e,k,t),n(e,pt,t),M(S,e,t),n(e,ot,t),n(e,F,t),n(e,mt,t),M(X,e,t),n(e,Mt,t),n(e,_,t),n(e,Tt,t),n(e,L,t),n(e,ct,t),M(N,e,t),n(e,yt,t),n(e,Y,t),n(e,dt,t),M(z,e,t),n(e,wt,t),n(e,O,t),n(e,ut,t),M(D,e,t),n(e,Ut,t),M(P,e,t),n(e,Jt,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),M(te,e,t),n(e,ht,t),M(le,e,t),n(e,It,t),n(e,ne,t),n(e,$t,t),n(e,se,t),n(e,bt,t),M(ie,e,t),n(e,Ct,t),n(e,ae,t),n(e,jt,t),n(e,re,t),n(e,Bt,t),M(pe,e,t),n(e,At,t),n(e,oe,t),n(e,Zt,t),n(e,me,t),n(e,xt,t),M(Me,e,t),n(e,Et,t),n(e,Te,t),n(e,Rt,t),n(e,ce,t),n(e,Vt,t),M(ye,e,t),n(e,Wt,t),n(e,de,t),n(e,Qt,t),n(e,we,t),n(e,Ht,t),M(ue,e,t),n(e,Gt,t),M(Ue,e,t),n(e,kt,t),n(e,Je,t),n(e,St,t),M(fe,e,t),n(e,Ft,t),M(ve,e,t),n(e,Xt,t),n(e,ge,t),n(e,_t,t),n(e,he,t),n(e,Lt,t),M(Ie,e,t),n(e,Nt,t),M($e,e,t),n(e,Yt,t),n(e,be,t),n(e,zt,t),M(Ce,e,t),n(e,Ot,t),M(je,e,t),n(e,Dt,t),n(e,Be,t),n(e,Pt,t),M(Ae,e,t),n(e,qt,t),n(e,Ze,t),n(e,Kt,t),M(xe,e,t),n(e,el,t),M(Ee,e,t),n(e,tl,t),M(Re,e,t),n(e,ll,t),M(Ve,e,t),n(e,nl,t),n(e,Qe,t),sl=!0},p:Nl,i(e){sl||(T(J.$$.fragment,e),T(f.$$.fragment,e),T(g.$$.fragment,e),T(I.$$.fragment,e),T(C.$$.fragment,e),T(B.$$.fragment,e),T(A.$$.fragment,e),T(V.$$.fragment,e),T(Q.$$.fragment,e),T(G.$$.fragment,e),T(S.$$.fragment,e),T(X.$$.fragment,e),T(N.$$.fragment,e),T(z.$$.fragment,e),T(D.$$.fragment,e),T(P.$$.fragment,e),T(te.$$.fragment,e),T(le.$$.fragment,e),T(ie.$$.fragment,e),T(pe.$$.fragment,e),T(Me.$$.fragment,e),T(ye.$$.fragment,e),T(ue.$$.fragment,e),T(Ue.$$.fragment,e),T(fe.$$.fragment,e),T(ve.$$.fragment,e),T(Ie.$$.fragment,e),T($e.$$.fragment,e),T(Ce.$$.fragment,e),T(je.$$.fragment,e),T(Ae.$$.fragment,e),T(xe.$$.fragment,e),T(Ee.$$.fragment,e),T(Re.$$.fragment,e),T(Ve.$$.fragment,e),sl=!0)},o(e){c(J.$$.fragment,e),c(f.$$.fragment,e),c(g.$$.fragment,e),c(I.$$.fragment,e),c(C.$$.fragment,e),c(B.$$.fragment,e),c(A.$$.fragment,e),c(V.$$.fragment,e),c(Q.$$.fragment,e),c(G.$$.fragment,e),c(S.$$.fragment,e),c(X.$$.fragment,e),c(N.$$.fragment,e),c(z.$$.fragment,e),c(D.$$.fragment,e),c(P.$$.fragment,e),c(te.$$.fragment,e),c(le.$$.fragment,e),c(ie.$$.fragment,e),c(pe.$$.fragment,e),c(Me.$$.fragment,e),c(ye.$$.fragment,e),c(ue.$$.fragment,e),c(Ue.$$.fragment,e),c(fe.$$.fragment,e),c(ve.$$.fragment,e),c(Ie.$$.fragment,e),c($e.$$.fragment,e),c(Ce.$$.fragment,e),c(je.$$.fragment,e),c(Ae.$$.fragment,e),c(xe.$$.fragment,e),c(Ee.$$.fragment,e),c(Re.$$.fragment,e),c(Ve.$$.fragment,e),sl=!1},d(e){e&&(l(He),l(We),l(Ge),l(ke),l(Se),l(v),l(Fe),l(U),l(Xe),l(_e),l(h),l(Le),l(Ne),l($),l(Ye),l(b),l(ze),l(Oe),l(j),l(De),l(Pe),l(qe),l(Z),l(Ke),l(x),l(et),l(E),l(tt),l(R),l(lt),l(nt),l(W),l(st),l(it),l(H),l(at),l(rt),l(k),l(pt),l(ot),l(F),l(mt),l(Mt),l(_),l(Tt),l(L),l(ct),l(yt),l(Y),l(dt),l(wt),l(O),l(ut),l(Ut),l(Jt),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(At),l(oe),l(Zt),l(me),l(xt),l(Et),l(Te),l(Rt),l(ce),l(Vt),l(Wt),l(de),l(Qt),l(we),l(Ht),l(Gt),l(kt),l(Je),l(St),l(Ft),l(Xt),l(ge),l(_t),l(he),l(Lt),l(Nt),l(Yt),l(be),l(zt),l(Ot),l(Dt),l(Be),l(Pt),l(qt),l(Ze),l(Kt),l(el),l(tl),l(ll),l(nl),l(Qe)),l(u),y(J,e),y(f,e),y(g,e),y(I,e),y(C,e),y(B,e),y(A,e),y(V,e),y(Q,e),y(G,e),y(S,e),y(X,e),y(N,e),y(z,e),y(D,e),y(P,e),y(te,e),y(le,e),y(ie,e),y(pe,e),y(Me,e),y(ye,e),y(ue,e),y(Ue,e),y(fe,e),y(ve,e),y(Ie,e),y($e,e),y(Ce,e),y(je,e),y(Ae,e),y(xe,e),y(Ee,e),y(Re,e),y(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,Ll,{})}}export{pn as component};

Xet Storage Details

Size:
35.2 kB
·
Xet hash:
266c059a6bba25f9b4f745ca39de768f26db28bb071be8942fd6f72a0c0481df

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.