Skip to content
24 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002)1import type { WorkspaceAgent } from "@g1t/contracts";
2
3import { Mark } from "./logo";
4
5/**
The docs folder is gone, and what it held lives where people read it: how a self-hosted g1t runs and how to deploy g1t to Cloudflare are pages on docs.g1t.sh under Run g1t yourself, and speed, rate limits and operating g1t.sh are sections of CONTRIBUTING.md; code that cited a file in docs/ now points to the page or section that covers it, or says what it means itself, and applied migrations and the runner images are left as they were.6 * Whether an agent is `@g1t`, the orchestrator every workspace has: built
7 * in, first in the agents service's list. Its handle is never another agent's.
Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002)8 */
9export function isOrchestrator(agent: Pick<WorkspaceAgent, "handle"> & { builtin?: boolean | null }): boolean {
10 return agent.builtin === true || agent.handle === "g1t";
11}
12
13/** g1t's face: the pixel 1 of the logo on a dark square, where agents wear the sparkle. */
14export function G1tMark({ size = 20 }: { size?: number }) {
15 return (
16 <span
17 aria-hidden="true"
18 className="inline-flex shrink-0 items-center justify-center bg-[#0b0b0d] ring-1 ring-line-strong ring-inset"
19 style={{ width: size, height: size, borderRadius: Math.round(size * 0.26) }}
20 >
21 <Mark className="size-full" />
22 </span>
23 );
24}

This file's history is long; its oldest lines are credited to the oldest commit read.