Skip to content

AppContract

The app’s own declaration of its capabilities, delivered to the shell on connect. Every field is optional — an app that declares nothing simply offers nothing to the broker. Advisory: the shell ingests it defensively (malformed → treated as empty) and sources capabilities from it, but never trusts it for authorization (each backend re-enforces independently).

optional consumes?: ConsumeDecl[];

Intents this app invokes on others — the broker permits an invoke only for a declared consume.


optional permissions?: string[];

Platform capabilities this app intends to use (e.g. notify.toast, surface.embed).


optional provides?: ProvideDecl[];

Intents and surfaces this app provides to others.


optional subscribes?: string[];

Broadcast event topics this app subscribes to (e.g. session.changed, theme.changed).