Game Status
Time
{formatTime(timeElapsed)}
{player === "model" && (
{model} {modelStatus === "thinking" ? "is thinking..." : "is playing"}
)}
{/* Left pane - Current page and available links */}
Available Links
{gameStatus !== "playing" && (
)}
{/* Available links */}
{gameStatus === "playing" && (
<>
{currentPageLinks
.sort((a, b) => a.localeCompare(b))
.map((link) => (
))}
{player === "model" && (
)}
>
)}
{player === "model" && modelStatus === "thinking" && gameStatus === "playing" && (
{model} is thinking...
)}
{gameStatus === "playing" && player === "me" && (
)}
{gameStatus === "won" && (
{player === "model" ? `${model} won!` : "You won!"}
{player === "model" ? "It" : "You"} reached {targetPage} in {hops}{" "}
hops.
)}
{gameStatus === "lost" && (
Game Over
{player === "model" ? `${model} didn't` : "You didn't"} reach{" "}
{targetPage} within {maxHops} hops.
)}
LLM Reasoning
{
convo.map((message, index) => (
{message.role}
{message.content}
))
}
{ modelStatus === "thinking" && (
)}
{/*
*/}
);
}