The @a2ui/web_core package contains the core logic, state management, and protocol handling for the A2UI framework. It is designed to be framework-agnostic, providing the foundation for specific renderer implementations like Angular, React, or Lit.
- Protocol Handling: Implements A2UI specification (v0.8 and v0_9) message processing and validation.
- State Management: Reactive data models using
@preact/signals-core. - DataContext: Advanced data binding and function execution logic with support for dependency tracking and automatic updates.
- Catalog System: Extensible registry for components and functions, enabling cross-renderer reuse.
- Schema Validation: Built-in Zod-based validation for protocol messages and component properties.
The v0_9 architecture centers around a decoupled model where rendering is driven by a SurfaceGroupModel and its constituent SurfaceModels.
- Internal Models:
DataModelmanages the application state, whileSurfaceComponentsModeltracks the components rendered on a surface. - DataContext: Provides the execution environment for expressions and functions defined in the A2UI protocol.
- Processing:
MessageProcessortranslates incoming A2A messages into state updates.
Maintains compatibility with the initial A2UI specification version, focusing on static component mapping and direct data binding.
npm install @a2ui/web_coreThe package uses wireit for optimized build orchestration:
npm run buildRun the test suite using the native Node.js test runner:
npm testGenerate coverage reports:
npm run test:coverageThis library is part of the A2UI project. Please refer to the top-level documentation for security considerations and developer responsibilities when handling untrusted agent data.