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
feat(website): library pages in the homepage manner (#914)
* docs(website): spec for library hero subtitle fixes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* copy(website): retire the last two hero litanies on the library pages
/langgraph's subtitle was the site's final six-noun list; /ag-ui's
re-enumerated all eight runtimes its own H1 had just counted. The other
library-page copy was verified already in voice — this closes the
recorded five-page copy-pass follow-up as satisfied.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(website): design spec — library pages in the homepage manner
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(website): implementation plan for library pages
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* refactor(website): extract buildPanes for reuse by library pages
* feat(website): section media for the library pages
Add libLanggraph/libChat/libAgUi/libRender to SECTION_MEDIA for Task 2 of
the library-pages plan. Code sources are lifted verbatim from each page's
current static mock content (app.config.ts blocks for langgraph/ag-ui, the
spec JSON for render); libChat has no code pane since its mock is a fake
chat-debug panel, not source. Task 3 wires the pages to these entries and
deletes the page-local copies.
* feat(website): library pages — switchers, dark closers, package kickers
Adopt the homepage's MediumSwitcher, dark FinalCTA, and hero kicker rail
across the four library pages (/langgraph, /chat, /ag-ui, /render):
- First FeatureBlock's static BrowserFrame mock is replaced with
MediumSwitcher, panes built server-side via buildPanes(SECTION_MEDIA.lib*).
For /ag-ui the static mock lives on the "primitives" FeatureBlock (its
first block, BackendsGrid, is real content, not a mock) — the switcher
goes there instead, matching the SECTION_MEDIA.libAgUi code content that
was already lifted from that block.
- Mono package-identity kicker + rail hairline above each hero h1.
- One marker-highlight sweep per subtitle on the load-bearing phrase.
- FinalCTA variant="dark" on all four; /ag-ui also gains
WhitePaperBlock paper="overview" for parity with the other three.
- Orphaned static-mock CSS deleted from pages.css (zero consumers after
the page edits): render-page-visual-panel/-spec-block/-rendered-card/
-ai-label/-card-title/-card-value; chat-page-visual-panel/
-visual-pills-row/-tool-label/-result-block/-replay-footer;
ag-ui-page-code-pre; langgraph-page-code-pre.
Page specs assert kicker text, marker span, switcher tablist, and dark
FinalCTA surface. Each spec mocks its second FeatureBlock's *CodeShowcase
(untouched, pre-existing) because it's an async Server Component and
react-dom/client cannot render an async component outside Next's RSC
pipeline ("Only Server Components can be async at the moment").
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(website): single package kicker per library hero
Review caught that each library hero (/langgraph, /chat, /ag-ui, /render)
showed the package name twice: the new .lib-hero-rail kicker plus the old
plain <Eyebrow className="*-page-eyebrow-spaced"> line that predates it.
Delete the old line on all four pages, keeping the rail kicker as the sole
package-identity marker.
Deleted the now-zero-consumer *-page-eyebrow-spaced CSS rules from
pages.css: render-page-eyebrow-spaced, chat-page-eyebrow-spaced,
ag-ui-page-eyebrow-spaced, langgraph-page-eyebrow-spaced.
pricing-page-eyebrow-spaced is a distinct rule still used by /pricing and
is untouched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* chore(website): final-review polish for the library pages arc
- section-media.ts libRender: SolutionCode's language union is typescript |
python | html — no 'json' — so the code block stays tagged typescript
(noted inline); simplified its dead label to 'spec.json'.
- section-media.ts: the library-entries comment described Task 3's
not-yet-done deletion of the page-local mocks; rewritten to present tense
now that the pages consume these entries and the mocks are gone. Also
documented the /ag-ui deviation (switcher lands on its second block,
BackendsGrid stays on the first) directly on libAgUi.
- FinalCTA.spec.tsx: test name said "8 non-home pages" — now 4 after the
library pages moved to the dark closer.
- library-pages-design.md §1: amended the FIRST FeatureBlock sentence with
the ratified /ag-ui deviation.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Build an Angular agent UI on AG-UI-compatible runtimes including CrewAI, Mastra, Microsoft Agent Framework, AG2, Pydantic AI, AWS Strands, or LangGraph fronted by AG-UI. Same Agent contract and chat surface; runtime-specific history and checkpoint behavior stays with the backend.
40
+
Build the Angular UI once, on the AG-UI protocol — eight runtimes speak it today, and new ones <spanclassName="marker-highlight">work the day they ship</span>. History and checkpoint behavior stays with your backend.
chat-timeline + chat-debug + GenUI surfaces. Production-shaped from day one, themable to your design system, or use the headless primitives if you want full control.
39
+
chat-timeline + chat-debug + GenUI surfaces. <spanclassName="marker-highlight">Production-shaped from day one</span>, themable to your design system, or use the headless primitives if you want full control.
Ship LangGraph agents inside your Angular 20–22 app with headless chat, durable threads, interrupts, branch/history, tool progress, and generative UI.
39
+
Ship LangGraph agents inside your Angular app. Agent state arrives as signals; threads survive reloads; <spanclassName="marker-highlight">humans stay in the loop</span>.
0 commit comments