Lifecycle of an agent product
An agent product moves from draft to selling to retired by its Offers, and each customer's agent from standby to seated, paused and retired.
An agent product has two lifecycles: the Product's, set by its Offers, and each customer's Agent's, set by its seat. A Version runs through both.
The product
The product is draft until a published Offer sells it. Offer.publish runs the gate first: every task type the Offer sells passes its eval cases, or nothing publishes. The product is retired when its last Offer is withdrawn, and every Customer keeps the agent its Subscription bought.
Each customer's agent
| Move | Verb | What changes |
|---|---|---|
| Minted | Agent.mint | The agent exists in the Customer's Tenant, bounded by its Entitlements |
| Seated | The seat is staffed | It works its Role's Tasks |
| Paused | Agent.pause | It starts no new Action; writers get a holding reply |
| Resumed | Agent.resume | It picks up where it stopped, with Memory, Mandates and Limits unchanged |
| Retired | Agent.retire | It holds no seat again; its Actions, Memory and Mailbox history stay on the record |
The Customer pauses its own agent from its Portal. The Startup pauses every customer-facing agent at once with one Agent.pause call.
Versions
Every change to the Role, the product file or an Evaluator builds a new Version. No Version ships worse than the last on the eval cases. A minted agent runs the Version its Customer bought until that Customer moves.
Moving a Customer to a new Version replays that Customer's own past cases on it first. Agent upgrades has the contract, with status planned.
Nothing is purged
Retiring an agent or deleting a record never erases it. A deleted record leaves every list and keeps its history, and Thing.restore brings it back. Action.undo reverses what one Action did, and each record it removes stays restorable.