You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hero's two noun rows merge into one linked capability row; the first FAQ
answer loses its litany; all five non-home pages migrate to FeatureBlock
rows (33 rows, claim→API grammar); the legacy bullets+cards path is
deleted and rows becomes required. Net -197 lines.
Squashed rebuild of the original commit series to shed an unsigned
api-docs bot commit that tripped required_signatures.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: apps/website/src/app/ag-ui/page.tsx
+8-20Lines changed: 8 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -59,16 +59,10 @@ export default async function AgUiPage() {
59
59
eyebrow="Runtime choice"
60
60
headline="Pick a backend. Keep the UI."
61
61
body="The AG-UI protocol decouples your agent runtime from your front-end. @threadplane/ag-ui wraps any AG-UI AbstractAgent into the runtime-neutral Agent contract that @threadplane/chat consumes — so the same Angular components ship against eight different runtimes."
62
-
bullets={[
63
-
'Stream from Python, .NET, or TypeScript backends — same chat primitives',
64
-
'Swap runtimes without rewriting the UI layer',
65
-
'Protocol-first: tool calls, state deltas, citations all standardized',
66
-
'Future runtimes that ship AG-UI work day-one',
67
-
]}
68
-
supportingCards={[
69
-
{title: 'LangGraph',description: 'Python or TS via AG-UI.'},
{claim: 'Stream from Python, .NET, or TypeScript',api: 'AG-UI protocol'},
64
+
{claim: 'Tool calls, state deltas, citations — standardized',api: 'protocol events'},
65
+
{claim: 'New AG-UI runtimes work day one',api: 'no adapter needed'},
72
66
]}
73
67
cta={{label: 'Browse the AG-UI protocol',href: 'https://github.com/ag-ui-protocol/ag-ui'}}
74
68
visual={<BackendsGrid/>}
@@ -79,16 +73,10 @@ export default async function AgUiPage() {
79
73
eyebrow="Same primitives"
80
74
headline="Drop-in for everything @threadplane/chat ships."
81
75
body="provideAgent registers an AG-UI client and exposes the same Agent contract that @threadplane/langgraph provides. Chat rendering, status, tool calls, generative UI, and citations use the same Angular primitives; durable checkpointed threads and history depend on the backend protocol, so use @threadplane/langgraph when you need the native LangGraph thread API."
82
-
bullets={[
83
-
'provideAgent + injectAgent — same names across adapters',
@@ -90,16 +84,10 @@ export default async function ChatPage() {
90
84
eyebrow="Headless"
91
85
headline="Or skip the shell — use the primitives."
92
86
body="If you have a design system, use the headless primitives directly. They're the same building blocks the compositions are made of — bring your own DOM, keep our state machine."
Copy file name to clipboardExpand all lines: apps/website/src/app/langgraph/page.tsx
+8-20Lines changed: 8 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -52,16 +52,10 @@ export default async function LangGraphPage() {
52
52
eyebrow="Providers"
53
53
headline="Drop it into app.config.ts. Done."
54
54
body="provideAgent wires LangGraph into Angular's DI container. From any component, injectAgent() returns a signal-based handle for messages, status, errors, and interrupts."
55
-
bullets={[
56
-
'provideAgent — wire it once in app.config.ts',
57
-
'injectAgent() returns a typed signal-based handle',
body="Every agent surface is exposed as a signal — message stream, tool progress, interrupts, errors, status. Compose with the rest of your Angular reactivity story. No subscriptions to leak."
Copy file name to clipboardExpand all lines: apps/website/src/app/pilot-to-prod/page.tsx
+12-31Lines changed: 12 additions & 31 deletions
Original file line number
Diff line number
Diff line change
@@ -52,16 +52,10 @@ export default function PilotToProdPage() {
52
52
eyebrow="Week 1–2 · Discover"
53
53
headline="Map your stack. Pick the work that earns its keep."
54
54
body="We don't start with the model. We start with the workflow — the meeting where someone says 'this would be a great use of AI' and the friction that's stopping it from shipping."
@@ -93,16 +87,10 @@ export default function PilotToProdPage() {
93
87
eyebrow="Week 3–5 · Build"
94
88
headline="Ship a working agent on your real data."
95
89
body="Working code, not slideware. We integrate against your real backend, your real auth, and your real Angular app — paired with your engineers, not behind a curtain."
96
-
bullets={[
97
-
'Real LangGraph or AG-UI backend (yours or ours, your call)',
98
-
'Streaming chat surface using @threadplane/chat compositions',
99
-
'Generative UI for the workflows that benefit from it',
@@ -125,17 +113,10 @@ export default function PilotToProdPage() {
125
113
eyebrow="Week 6–7 · Harden"
126
114
headline="Production-ready, not demo-ready."
127
115
body="Observability, error boundaries, fallback strategies, deploy paths, on-call runbook. The stuff that makes the difference between a demo and an app you can leave running on a Friday afternoon."
Copy file name to clipboardExpand all lines: apps/website/src/app/render/page.tsx
+8-20Lines changed: 8 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -49,16 +49,10 @@ export default async function RenderPage() {
49
49
eyebrow="Schemas"
50
50
headline="One spec. Your components."
51
51
body="The agent emits structured UI as JSON. @threadplane/render maps each spec node to one of your Angular components — so the design system stays yours, and the agent gets to assemble it."
52
-
bullets={[
53
-
'Vercel json-render adapter',
54
-
'Google A2UI protocol',
55
-
'Component registry — declare once, use everywhere',
body="When the agent emits a spec your registry doesn't know how to render, @threadplane/render falls back gracefully — and surfaces it to your observability layer. No mystery white screens."
0 commit comments