Live demo
Chat kit: one declaration, one envelope
A reservation is declared once, with a lifecycle. @de_canter/apogee-chat-kit turns that into capabilities that all run the same pipeline and return the same envelope: the state, the data, and what may happen next. The card below is @de_canter/apogee-chat-kit-app; it renders only from the envelope and acts only through capabilities.
Loading the kit…
Declaration
src/demo/rental/kit.ts: a kernel lifecycle, a view schema, and one execute per transition, over the same rental domain as the desk. Approving books a real unit against the calendar, so it can fail.
Projections
This page uses the HTTP projection at /api/kit. The agent-tool names in the table come from toAgentTools on the same kit. registerKit projects it onto an MCP server; this site does not mount one.
Card
EnvelopeProvider with httpTransport. In an MCP Apps host, the same card takes mcpAppTransport instead; nothing else changes.