Skip to content

feat: A2UI Phase 3 — render events, 6 new components, custom catalogs#89

Merged
blove merged 17 commits into
mainfrom
feat/a2ui-phase3
Apr 10, 2026
Merged

feat: A2UI Phase 3 — render events, 6 new components, custom catalogs#89
blove merged 17 commits into
mainfrom
feat/a2ui-phase3

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented Apr 10, 2026

Summary

  • Render-lib event systemRenderEvent union type (handler, stateChange, lifecycle), events output on RenderSpecComponent, wrapped handlers that emit events after execution, StateStore change subscription, spec-level lifecycle + opt-in element lifecycle
  • 6 new A2UI components — Tabs, Modal, Video, AudioPlayer, DateTimeInput, Slider (18 total in a2uiBasicCatalog())
  • A2UI action→spec binding bridgesurfaceToSpec() maps A2UI actions to spec on bindings, default a2ui:event and a2ui:localAction handlers on A2uiSurfaceComponent, Button simplified to emit('click')
  • ChatComponent event outputrenderEvent output with ChatRenderEvent wrapper, removed hardcoded a2uiBasicCatalog() (consumers must pass views input explicitly)
  • Documentation — new render events page, updated A2UI catalog/overview/surface-component/surface-store, new custom catalogs guide

Breaking Changes

ChatComponent no longer includes a2uiBasicCatalog() by default. Consumers must pass it via [views]:

<chat [ref]="agentRef" [views]="a2uiBasicCatalog()" />

Test plan

  • npx nx test render — all tests pass (includes new RenderEvent type tests, event emission tests)
  • npx nx test a2ui — all tests pass
  • npx nx test chat — all tests pass (includes action mapping tests, state initialization tests)
  • npx nx build agent --configuration=production — production build succeeds
  • Verify cockpit generative-ui example still works with explicit views input

🤖 Generated with Claude Code

blove and others added 17 commits April 9, 2026 15:31
…es (#14)

Cockpit is an integrated developer reference surface for @cacheplane/stream-resource.
It embeds running Angular examples, shows syntax-highlighted source code, renders
tutorial documentation, and displays auto-generated API references for each capability.

Shared libraries:
- @cacheplane/design-tokens: colors, glass, gradient, glow, typography tokens
- @cacheplane/ui-react: GlassPanel, GlassButton, Callout, Steps, Tabs, Card, CodeGroup, NavLink
- @cacheplane/chat: Angular chat component library (cp-chat, cp-chat-message, cp-chat-input)

14 capability examples (Angular + Python + docs + e2e each):
- LangGraph: streaming, persistence, interrupts, memory, durable-execution, subgraphs, time-travel, deployment-runtime
- Deep Agents: planning, filesystem, subagents, memory, skills, sandboxes

Unified harness:
- Capability registry as single source of truth
- Serve orchestrator with --capability and --all modes
- Per-capability Nx serve targets
- CI build job for all Angular apps
- LangGraph deployment matrix for all 14 backends
- Smoke e2e test suite (28 tests: 14 UI render + 14 send/receive)

Light glassmorphism theme matching the website design with frosted glass panels,
warm-to-cool gradient backgrounds, and EB Garamond/Inter/JetBrains Mono typography.
Covers 3 bespoke landing pages (/angular, /render, /chat), home page
refactor replacing FullStackSection with teaser cards, 3 library-specific
whitepapers with drip campaigns, footer Libraries column, and mobile
docs nav integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
11 tasks covering home page refactor, 3 landing pages (/angular,
/render, /chat), whitepaper pipeline, drip emails, footer update,
and mobile nav integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers render-lib event system, 6 new A2UI components, action→spec binding
bridge, custom catalogs via ViewRegistry composition, and ChatComponent
event output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…fecycle events

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ion to RenderSpecComponent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…omponent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…Modal components

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… dataModel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…onent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix Tabs component: use effect() to track selected input instead of
  reading in constructor (before Angular resolves bindings), replace
  getter-returning-function with computed() signal
- Fix wrapped handler Promise rejection: add .catch() to prevent
  unobserved rejections, emit handler event with undefined result
- Fix docs: update overview and catalog to reflect that A2UI catalog
  is no longer automatic — consumers must pass views input explicitly

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cacheplane Ready Ready Preview, Comment Apr 10, 2026 0:33am

Request Review

@blove blove merged commit f1ba4bb into main Apr 10, 2026
14 checks passed
@blove blove deleted the feat/a2ui-phase3 branch May 7, 2026 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant