Buckets:

download
raw
18.1 kB
import{s as te,n as ee,o as se}from"../chunks/scheduler.2b22cead.js";import{S as le,i as ne,e as i,s as n,c as r,h as ae,a as p,d as s,b as a,f as Ot,g as o,j as h,k as Kt,l as ie,m as l,n as d,t as m,o as c,p as M}from"../chunks/index.1a0e8013.js";import{C as pe,H as u,E as re}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.f6f2e20a.js";import{C as Nt}from"../chunks/CodeBlock.6eebe645.js";function oe(Lt){let T,O,q,K,w,tt,j,et,b,_t='A chess reinforcement learning environment for OpenEnv, powered by the <a href="https://github.com/luccabb/moonfish" rel="nofollow">moonfish</a> chess engine.',st,f,lt,y,Qt="<li><strong>Full chess rules</strong> via python-chess library</li> <li><strong>Configurable opponent</strong>: moonfish engine, random moves, or self-play</li> <li><strong>Position evaluation</strong>: Uses moonfish’s PSQT-based evaluation</li> <li><strong>Standard OpenEnv interface</strong>: reset(), step(), state</li>",nt,J,at,$,it,U,pt,v,rt,g,xt="The client is <strong>async by default</strong>:",ot,C,dt,I,Ht="For <strong>synchronous usage</strong>, use the <code>.sync()</code> wrapper:",mt,A,ct,B,Mt,k,Vt="<thead><tr><th>Field</th> <th>Type</th> <th>Description</th></tr></thead> <tbody><tr><td><code>fen</code></td> <td>str</td> <td>Board position in FEN notation</td></tr> <tr><td><code>legal_moves</code></td> <td>List[str]</td> <td>Legal moves in UCI format</td></tr> <tr><td><code>is_check</code></td> <td>bool</td> <td>Whether current player is in check</td></tr> <tr><td><code>done</code></td> <td>bool</td> <td>Whether game has ended</td></tr> <tr><td><code>reward</code></td> <td>float</td> <td>Reward for last action</td></tr> <tr><td><code>result</code></td> <td>str</td> <td>Game result (“1-0”, “0-1”, “1/2-1/2”)</td></tr></tbody>",ht,E,ut,Z,zt="<thead><tr><th>Field</th> <th>Type</th> <th>Description</th></tr></thead> <tbody><tr><td><code>move</code></td> <td>str</td> <td>UCI format move (e.g., “e2e4”, “e7e8q”)</td></tr></tbody>",Tt,N,wt,L,Gt="<thead><tr><th>Outcome</th> <th>Reward</th></tr></thead> <tbody><tr><td>Win</td> <td>+1.0</td></tr> <tr><td>Loss</td> <td>-1.0</td></tr> <tr><td>Draw</td> <td>0.0</td></tr> <tr><td>Illegal move</td> <td>-0.1</td></tr></tbody>",jt,_,bt,Q,Dt="The environment supports these configuration options:",ft,x,St="<thead><tr><th>Parameter</th> <th>Default</th> <th>Description</th></tr></thead> <tbody><tr><td><code>opponent</code></td> <td>“moonfish”</td> <td>Opponent type: “moonfish”, “random”, or None</td></tr> <tr><td><code>opponent_depth</code></td> <td>2</td> <td>Search depth for moonfish opponent</td></tr> <tr><td><code>max_moves</code></td> <td>500</td> <td>Maximum half-moves before draw</td></tr> <tr><td><code>agent_color</code></td> <td>None</td> <td>Agent color: “white”, “black”, or None (alternate each episode)</td></tr> <tr><td><code>gamma</code></td> <td>0.99</td> <td>Discount factor for temporal credit assignment</td></tr></tbody>",yt,H,Jt,V,Wt="For RL training, the environment computes temporally discounted rewards at episode end. This helps with credit assignment in long games where only the final outcome is known.",$t,z,Rt="When an episode ends, the terminal observation’s <code>metadata</code> includes:",Ut,G,Xt="<li><code>discounted_rewards</code>: List of discounted rewards for each agent move</li> <li><code>gamma</code>: The discount factor used</li>",vt,D,Yt="The formula is <code>r_t = γ^(T-1-t) × R_final</code> where:",gt,S,Ft="<li><code>T</code> = total agent moves</li> <li><code>t</code> = move index (0-indexed)</li> <li><code>R_final</code> = terminal reward (+1, -1, or 0)</li>",Ct,W,qt="Example for a 5-move win with γ=0.99:",It,R,At,X,Bt,Y,Pt='<li><a href="https://github.com/luccabb/moonfish" rel="nofollow">moonfish GitHub</a></li> <li><a href="https://huggingface.co/spaces/luccabb/moonfish_chess" rel="nofollow">Play online</a></li>',kt,F,Et,P,Zt;return w=new pe({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),j=new u({props:{title:"Chess Environment",local:"chess-environment",headingTag:"h1"}}),f=new u({props:{title:"Features",local:"features",headingTag:"h2"}}),J=new u({props:{title:"Quick Start",local:"quick-start",headingTag:"h2"}}),$=new u({props:{title:"Using Docker",local:"using-docker",headingTag:"h3"}}),U=new Nt({props:{code:"JTIzJTIwQnVpbGQlMjB0aGUlMjBpbWFnZSUwQWRvY2tlciUyMGJ1aWxkJTIwLXQlMjBjaGVzcy1lbnYlM0FsYXRlc3QlMjAtZiUyMGVudnMlMkZjaGVzc19lbnYlMkZzZXJ2ZXIlMkZEb2NrZXJmaWxlJTIwLiUwQSUwQSUyMyUyMFJ1biUyMHRoZSUyMHNlcnZlciUwQWRvY2tlciUyMHJ1biUyMC1wJTIwODAwMCUzQTgwMDAlMjBjaGVzcy1lbnYlM0FsYXRlc3Q=",highlighted:`<span class="hljs-comment"># Build the image</span>
docker build -t chess-env:latest -f envs/chess_env/server/Dockerfile .
<span class="hljs-comment"># Run the server</span>
docker run -p 8000:8000 chess-env:latest`,lang:"bash",wrap:!1}}),v=new u({props:{title:"Using the Client",local:"using-the-client",headingTag:"h3"}}),C=new Nt({props:{code:"aW1wb3J0JTIwYXN5bmNpbyUwQWZyb20lMjBjaGVzc19lbnYlMjBpbXBvcnQlMjBDaGVzc0VudiUyQyUyMENoZXNzQWN0aW9uJTBBJTBBYXN5bmMlMjBkZWYlMjBtYWluKCklM0ElMEElMjAlMjAlMjAlMjBhc3luYyUyMHdpdGglMjBDaGVzc0VudihiYXNlX3VybCUzRCUyMmh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDAwJTIyKSUyMGFzJTIwZW52JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwUmVzZXQlMjBmb3IlMjBhJTIwbmV3JTIwZ2FtZSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlc3VsdCUyMCUzRCUyMGF3YWl0JTIwZW52LnJlc2V0KCklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludChmJTIyU3RhcnRpbmclMjBwb3NpdGlvbiUzQSUyMCU3QnJlc3VsdC5vYnNlcnZhdGlvbi5mZW4lN0QlMjIpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQoZiUyMkxlZ2FsJTIwbW92ZXMlM0ElMjAlN0JyZXN1bHQub2JzZXJ2YXRpb24ubGVnYWxfbW92ZXMlN0QlMjIpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwTWFrZSUyMGElMjBtb3ZlJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzdWx0JTIwJTNEJTIwYXdhaXQlMjBlbnYuc3RlcChDaGVzc0FjdGlvbihtb3ZlJTNEJTIyZTJlNCUyMikpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQoZiUyMlJld2FyZCUzQSUyMCU3QnJlc3VsdC5yZXdhcmQlN0QlMkMlMjBEb25lJTNBJTIwJTdCcmVzdWx0LmRvbmUlN0QlMjIpJTBBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwUGxheSUyMHVudGlsJTIwZ2FtZSUyMGVuZHMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB3aGlsZSUyMG5vdCUyMHJlc3VsdC5kb25lJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbW92ZSUyMCUzRCUyMHJlc3VsdC5vYnNlcnZhdGlvbi5sZWdhbF9tb3ZlcyU1QjAlNUQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXN1bHQlMjAlM0QlMjBhd2FpdCUyMGVudi5zdGVwKENoZXNzQWN0aW9uKG1vdmUlM0Rtb3ZlKSklMEElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBwcmludChmJTIyR2FtZSUyMHJlc3VsdCUzQSUyMCU3QnJlc3VsdC5vYnNlcnZhdGlvbi5yZXN1bHQlN0QlMjIpJTBBJTBBYXN5bmNpby5ydW4obWFpbigpKQ==",highlighted:`<span class="hljs-keyword">import</span> asyncio
<span class="hljs-keyword">from</span> chess_env <span class="hljs-keyword">import</span> ChessEnv, ChessAction
<span class="hljs-keyword">async</span> <span class="hljs-keyword">def</span> <span class="hljs-title function_">main</span>():
<span class="hljs-keyword">async</span> <span class="hljs-keyword">with</span> ChessEnv(base_url=<span class="hljs-string">&quot;http://localhost:8000&quot;</span>) <span class="hljs-keyword">as</span> env:
<span class="hljs-comment"># Reset for a new game</span>
result = <span class="hljs-keyword">await</span> env.reset()
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Starting position: <span class="hljs-subst">{result.observation.fen}</span>&quot;</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Legal moves: <span class="hljs-subst">{result.observation.legal_moves}</span>&quot;</span>)
<span class="hljs-comment"># Make a move</span>
result = <span class="hljs-keyword">await</span> env.step(ChessAction(move=<span class="hljs-string">&quot;e2e4&quot;</span>))
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Reward: <span class="hljs-subst">{result.reward}</span>, Done: <span class="hljs-subst">{result.done}</span>&quot;</span>)
<span class="hljs-comment"># Play until game ends</span>
<span class="hljs-keyword">while</span> <span class="hljs-keyword">not</span> result.done:
move = result.observation.legal_moves[<span class="hljs-number">0</span>]
result = <span class="hljs-keyword">await</span> env.step(ChessAction(move=move))
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Game result: <span class="hljs-subst">{result.observation.result}</span>&quot;</span>)
asyncio.run(main())`,lang:"python",wrap:!1}}),A=new Nt({props:{code:"ZnJvbSUyMGNoZXNzX2VudiUyMGltcG9ydCUyMENoZXNzRW52JTJDJTIwQ2hlc3NBY3Rpb24lMEElMEF3aXRoJTIwQ2hlc3NFbnYoYmFzZV91cmwlM0QlMjJodHRwJTNBJTJGJTJGbG9jYWxob3N0JTNBODAwMCUyMikuc3luYygpJTIwYXMlMjBlbnYlM0ElMEElMjAlMjAlMjAlMjByZXN1bHQlMjAlM0QlMjBlbnYucmVzZXQoKSUwQSUyMCUyMCUyMCUyMHJlc3VsdCUyMCUzRCUyMGVudi5zdGVwKENoZXNzQWN0aW9uKG1vdmUlM0QlMjJlMmU0JTIyKSklMEElMjAlMjAlMjAlMjBwcmludChmJTIyUmV3YXJkJTNBJTIwJTdCcmVzdWx0LnJld2FyZCU3RCUyMik=",highlighted:`<span class="hljs-keyword">from</span> chess_env <span class="hljs-keyword">import</span> ChessEnv, ChessAction
<span class="hljs-keyword">with</span> ChessEnv(base_url=<span class="hljs-string">&quot;http://localhost:8000&quot;</span>).sync() <span class="hljs-keyword">as</span> env:
result = env.reset()
result = env.step(ChessAction(move=<span class="hljs-string">&quot;e2e4&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>)`,lang:"python",wrap:!1}}),B=new u({props:{title:"Observation Space",local:"observation-space",headingTag:"h2"}}),E=new u({props:{title:"Action Space",local:"action-space",headingTag:"h2"}}),N=new u({props:{title:"Rewards",local:"rewards",headingTag:"h2"}}),_=new u({props:{title:"Configuration",local:"configuration",headingTag:"h2"}}),H=new u({props:{title:"Temporal Discounting",local:"temporal-discounting",headingTag:"h2"}}),R=new Nt({props:{code:"TW92ZSUyMDAlM0ElMjAwLjk5JTVFNCUyMCVDMyU5NyUyMDEuMCUyMCUzRCUyMDAuOTYxJTBBTW92ZSUyMDElM0ElMjAwLjk5JTVFMyUyMCVDMyU5NyUyMDEuMCUyMCUzRCUyMDAuOTcwJTBBTW92ZSUyMDIlM0ElMjAwLjk5JTVFMiUyMCVDMyU5NyUyMDEuMCUyMCUzRCUyMDAuOTgwJTBBTW92ZSUyMDMlM0ElMjAwLjk5JTVFMSUyMCVDMyU5NyUyMDEuMCUyMCUzRCUyMDAuOTkwJTBBTW92ZSUyMDQlM0ElMjAwLjk5JTVFMCUyMCVDMyU5NyUyMDEuMCUyMCUzRCUyMDEuMDAw",highlighted:`<span class="hljs-attribute">Move</span> <span class="hljs-number">0</span>: <span class="hljs-number">0</span>.<span class="hljs-number">99</span>^<span class="hljs-number">4</span> × <span class="hljs-number">1</span>.<span class="hljs-number">0</span> = <span class="hljs-number">0</span>.<span class="hljs-number">961</span>
<span class="hljs-attribute">Move</span> <span class="hljs-number">1</span>: <span class="hljs-number">0</span>.<span class="hljs-number">99</span>^<span class="hljs-number">3</span> × <span class="hljs-number">1</span>.<span class="hljs-number">0</span> = <span class="hljs-number">0</span>.<span class="hljs-number">970</span>
<span class="hljs-attribute">Move</span> <span class="hljs-number">2</span>: <span class="hljs-number">0</span>.<span class="hljs-number">99</span>^<span class="hljs-number">2</span> × <span class="hljs-number">1</span>.<span class="hljs-number">0</span> = <span class="hljs-number">0</span>.<span class="hljs-number">980</span>
<span class="hljs-attribute">Move</span> <span class="hljs-number">3</span>: <span class="hljs-number">0</span>.<span class="hljs-number">99</span>^<span class="hljs-number">1</span> × <span class="hljs-number">1</span>.<span class="hljs-number">0</span> = <span class="hljs-number">0</span>.<span class="hljs-number">990</span>
<span class="hljs-attribute">Move</span> <span class="hljs-number">4</span>: <span class="hljs-number">0</span>.<span class="hljs-number">99</span>^<span class="hljs-number">0</span> × <span class="hljs-number">1</span>.<span class="hljs-number">0</span> = <span class="hljs-number">1</span>.<span class="hljs-number">000</span>`,lang:"",wrap:!1}}),X=new u({props:{title:"Links",local:"links",headingTag:"h2"}}),F=new re({props:{source:"https://github.com/huggingface/openenv/blob/main/docs/source/environments/chess.md"}}),{c(){T=i("meta"),O=n(),q=i("p"),K=n(),r(w.$$.fragment),tt=n(),r(j.$$.fragment),et=n(),b=i("p"),b.innerHTML=_t,st=n(),r(f.$$.fragment),lt=n(),y=i("ul"),y.innerHTML=Qt,nt=n(),r(J.$$.fragment),at=n(),r($.$$.fragment),it=n(),r(U.$$.fragment),pt=n(),r(v.$$.fragment),rt=n(),g=i("p"),g.innerHTML=xt,ot=n(),r(C.$$.fragment),dt=n(),I=i("p"),I.innerHTML=Ht,mt=n(),r(A.$$.fragment),ct=n(),r(B.$$.fragment),Mt=n(),k=i("table"),k.innerHTML=Vt,ht=n(),r(E.$$.fragment),ut=n(),Z=i("table"),Z.innerHTML=zt,Tt=n(),r(N.$$.fragment),wt=n(),L=i("table"),L.innerHTML=Gt,jt=n(),r(_.$$.fragment),bt=n(),Q=i("p"),Q.textContent=Dt,ft=n(),x=i("table"),x.innerHTML=St,yt=n(),r(H.$$.fragment),Jt=n(),V=i("p"),V.textContent=Wt,$t=n(),z=i("p"),z.innerHTML=Rt,Ut=n(),G=i("ul"),G.innerHTML=Xt,vt=n(),D=i("p"),D.innerHTML=Yt,gt=n(),S=i("ul"),S.innerHTML=Ft,Ct=n(),W=i("p"),W.textContent=qt,It=n(),r(R.$$.fragment),At=n(),r(X.$$.fragment),Bt=n(),Y=i("ul"),Y.innerHTML=Pt,kt=n(),r(F.$$.fragment),Et=n(),P=i("p"),this.h()},l(t){const e=ae("svelte-u9bgzb",document.head);T=p(e,"META",{name:!0,content:!0}),e.forEach(s),O=a(t),q=p(t,"P",{}),Ot(q).forEach(s),K=a(t),o(w.$$.fragment,t),tt=a(t),o(j.$$.fragment,t),et=a(t),b=p(t,"P",{"data-svelte-h":!0}),h(b)!=="svelte-b3s7m5"&&(b.innerHTML=_t),st=a(t),o(f.$$.fragment,t),lt=a(t),y=p(t,"UL",{"data-svelte-h":!0}),h(y)!=="svelte-bzxj8p"&&(y.innerHTML=Qt),nt=a(t),o(J.$$.fragment,t),at=a(t),o($.$$.fragment,t),it=a(t),o(U.$$.fragment,t),pt=a(t),o(v.$$.fragment,t),rt=a(t),g=p(t,"P",{"data-svelte-h":!0}),h(g)!=="svelte-uwz595"&&(g.innerHTML=xt),ot=a(t),o(C.$$.fragment,t),dt=a(t),I=p(t,"P",{"data-svelte-h":!0}),h(I)!=="svelte-8391rg"&&(I.innerHTML=Ht),mt=a(t),o(A.$$.fragment,t),ct=a(t),o(B.$$.fragment,t),Mt=a(t),k=p(t,"TABLE",{"data-svelte-h":!0}),h(k)!=="svelte-i2k4u5"&&(k.innerHTML=Vt),ht=a(t),o(E.$$.fragment,t),ut=a(t),Z=p(t,"TABLE",{"data-svelte-h":!0}),h(Z)!=="svelte-rriv4h"&&(Z.innerHTML=zt),Tt=a(t),o(N.$$.fragment,t),wt=a(t),L=p(t,"TABLE",{"data-svelte-h":!0}),h(L)!=="svelte-1emsodu"&&(L.innerHTML=Gt),jt=a(t),o(_.$$.fragment,t),bt=a(t),Q=p(t,"P",{"data-svelte-h":!0}),h(Q)!=="svelte-3ntcnx"&&(Q.textContent=Dt),ft=a(t),x=p(t,"TABLE",{"data-svelte-h":!0}),h(x)!=="svelte-14xxh2n"&&(x.innerHTML=St),yt=a(t),o(H.$$.fragment,t),Jt=a(t),V=p(t,"P",{"data-svelte-h":!0}),h(V)!=="svelte-1nj3y6g"&&(V.textContent=Wt),$t=a(t),z=p(t,"P",{"data-svelte-h":!0}),h(z)!=="svelte-8xocf4"&&(z.innerHTML=Rt),Ut=a(t),G=p(t,"UL",{"data-svelte-h":!0}),h(G)!=="svelte-14fg2w7"&&(G.innerHTML=Xt),vt=a(t),D=p(t,"P",{"data-svelte-h":!0}),h(D)!=="svelte-smctj6"&&(D.innerHTML=Yt),gt=a(t),S=p(t,"UL",{"data-svelte-h":!0}),h(S)!=="svelte-tyjq7m"&&(S.innerHTML=Ft),Ct=a(t),W=p(t,"P",{"data-svelte-h":!0}),h(W)!=="svelte-pvzarr"&&(W.textContent=qt),It=a(t),o(R.$$.fragment,t),At=a(t),o(X.$$.fragment,t),Bt=a(t),Y=p(t,"UL",{"data-svelte-h":!0}),h(Y)!=="svelte-dabtei"&&(Y.innerHTML=Pt),kt=a(t),o(F.$$.fragment,t),Et=a(t),P=p(t,"P",{}),Ot(P).forEach(s),this.h()},h(){Kt(T,"name","hf:doc:metadata"),Kt(T,"content",de)},m(t,e){ie(document.head,T),l(t,O,e),l(t,q,e),l(t,K,e),d(w,t,e),l(t,tt,e),d(j,t,e),l(t,et,e),l(t,b,e),l(t,st,e),d(f,t,e),l(t,lt,e),l(t,y,e),l(t,nt,e),d(J,t,e),l(t,at,e),d($,t,e),l(t,it,e),d(U,t,e),l(t,pt,e),d(v,t,e),l(t,rt,e),l(t,g,e),l(t,ot,e),d(C,t,e),l(t,dt,e),l(t,I,e),l(t,mt,e),d(A,t,e),l(t,ct,e),d(B,t,e),l(t,Mt,e),l(t,k,e),l(t,ht,e),d(E,t,e),l(t,ut,e),l(t,Z,e),l(t,Tt,e),d(N,t,e),l(t,wt,e),l(t,L,e),l(t,jt,e),d(_,t,e),l(t,bt,e),l(t,Q,e),l(t,ft,e),l(t,x,e),l(t,yt,e),d(H,t,e),l(t,Jt,e),l(t,V,e),l(t,$t,e),l(t,z,e),l(t,Ut,e),l(t,G,e),l(t,vt,e),l(t,D,e),l(t,gt,e),l(t,S,e),l(t,Ct,e),l(t,W,e),l(t,It,e),d(R,t,e),l(t,At,e),d(X,t,e),l(t,Bt,e),l(t,Y,e),l(t,kt,e),d(F,t,e),l(t,Et,e),l(t,P,e),Zt=!0},p:ee,i(t){Zt||(m(w.$$.fragment,t),m(j.$$.fragment,t),m(f.$$.fragment,t),m(J.$$.fragment,t),m($.$$.fragment,t),m(U.$$.fragment,t),m(v.$$.fragment,t),m(C.$$.fragment,t),m(A.$$.fragment,t),m(B.$$.fragment,t),m(E.$$.fragment,t),m(N.$$.fragment,t),m(_.$$.fragment,t),m(H.$$.fragment,t),m(R.$$.fragment,t),m(X.$$.fragment,t),m(F.$$.fragment,t),Zt=!0)},o(t){c(w.$$.fragment,t),c(j.$$.fragment,t),c(f.$$.fragment,t),c(J.$$.fragment,t),c($.$$.fragment,t),c(U.$$.fragment,t),c(v.$$.fragment,t),c(C.$$.fragment,t),c(A.$$.fragment,t),c(B.$$.fragment,t),c(E.$$.fragment,t),c(N.$$.fragment,t),c(_.$$.fragment,t),c(H.$$.fragment,t),c(R.$$.fragment,t),c(X.$$.fragment,t),c(F.$$.fragment,t),Zt=!1},d(t){t&&(s(O),s(q),s(K),s(tt),s(et),s(b),s(st),s(lt),s(y),s(nt),s(at),s(it),s(pt),s(rt),s(g),s(ot),s(dt),s(I),s(mt),s(ct),s(Mt),s(k),s(ht),s(ut),s(Z),s(Tt),s(wt),s(L),s(jt),s(bt),s(Q),s(ft),s(x),s(yt),s(Jt),s(V),s($t),s(z),s(Ut),s(G),s(vt),s(D),s(gt),s(S),s(Ct),s(W),s(It),s(At),s(Bt),s(Y),s(kt),s(Et),s(P)),s(T),M(w,t),M(j,t),M(f,t),M(J,t),M($,t),M(U,t),M(v,t),M(C,t),M(A,t),M(B,t),M(E,t),M(N,t),M(_,t),M(H,t),M(R,t),M(X,t),M(F,t)}}}const de='{"title":"Chess Environment","local":"chess-environment","sections":[{"title":"Features","local":"features","sections":[],"depth":2},{"title":"Quick Start","local":"quick-start","sections":[{"title":"Using Docker","local":"using-docker","sections":[],"depth":3},{"title":"Using the Client","local":"using-the-client","sections":[],"depth":3}],"depth":2},{"title":"Observation Space","local":"observation-space","sections":[],"depth":2},{"title":"Action Space","local":"action-space","sections":[],"depth":2},{"title":"Rewards","local":"rewards","sections":[],"depth":2},{"title":"Configuration","local":"configuration","sections":[],"depth":2},{"title":"Temporal Discounting","local":"temporal-discounting","sections":[],"depth":2},{"title":"Links","local":"links","sections":[],"depth":2}],"depth":1}';function me(Lt){return se(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Te extends le{constructor(T){super(),ne(this,T,me,oe,te,{})}}export{Te as component};

Xet Storage Details

Size:
18.1 kB
·
Xet hash:
45bcfa5532b2ea11a12944ef99a5478ea7fdbe72516905e54a43adeb7baac9b9

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