Served at GET <page>.json (JSON) and GET <page>.toon (TOON). Both carry the same fields.

Top level

string
required
"AIP".
string
required
Protocol version, e.g. "0.1-demo".
string
required
Pathname of this page, e.g. "/store".
string
Absolute URL of the site’s agent sitemap.
"session" | "public_schema_only"
required
session when a valid token was supplied and the tab has synced. Otherwise public_schema_only, with empty state.
boolean
required
Whether the session’s tab has sent a heartbeat in the last 15 seconds.
string
required
Absolute URL for POST invocations.
string
required
"POST".
object
Template of the invocation body.
object
A complete valid body built from the first action.
Cookie name (aim_session).
string
"Authorization: Bearer <session token>".
object
required
Page-defined JSON state. Empty in public scope.
Action[]
required
Actions available right now. Always includes disconnect.

Action

string
required
Non-empty identifier, used as actionId.
string
required
What the action does.
StringSchema | ObjectSchema
required
Shape of input.
any
required
A value that passes input_schema.
boolean
required
Advisory flag: the action has real effects and should be confirmed with the user.

Input schemas

0.1 is intentionally a small subset of JSON Schema: strings and flat objects of strings. Richer types are future work.

The disconnect action

Every manifest lists disconnect (input {}). Invoking it revokes the session token and frees the tab. Use it to recover from a stuck session or page conflict.