Teams UI: deploy scope selector + TeamWizard + Team page
ci / gates (push) Has been cancelled
ci / rust (push) Has been cancelled
ci / sandbox-k8s (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / e2e (push) Has been cancelled

The "+" deploy flow now opens a scope selector (Single / Team / Company-soon /
Org-soon). Single = the existing CreateClawForm. Team = TeamWizard: pick a
baseline topology (from the catalog + role distribution), set size, auto-staff
editable claw cards (name / role / model / persona), preview the topology
graph, then POST /api/teams → land on the Team page.

Team page (/teams/[id]): topology SVG + claw roster (each links to its chat) +
a Run panel that drives the team on the durable runner with live SSE progress
(reuses the topology-run streaming). /teams list page + a Teams nav entry.

lint + typecheck + next build clean.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Omar Sobh
2026-06-18 13:17:30 -07:00
co-authored by Claude Opus 4.8
parent 8123a27bcf
commit bba18a4687
7 changed files with 575 additions and 7 deletions
@@ -1,17 +1,15 @@
import { CreateClawForm } from "@/components/wizard/CreateClawForm";
import { DeployWizard } from "@/components/wizard/DeployWizard";
export default function NewClawPage() {
return (
<section className="flex min-h-dvh flex-col items-center justify-center gap-6 px-4 motion-safe:animate-[fade-up_var(--duration-normal)_var(--ease-app)]">
<div className="text-center">
<h1 className="text-2xl font-semibold tracking-tight">
Create your Claw
</h1>
<h1 className="text-2xl font-semibold tracking-tight">Deploy</h1>
<p className="pt-1 text-sm text-muted-foreground">
Claws help get your work done.
A single claw, or a whole team pick your scale.
</p>
</div>
<CreateClawForm />
<DeployWizard />
</section>
);
}