Events
Every event has the same envelope: id, type, time, schema_version, org, project, sandbox, conversation and data. JSON Schemas are in api/events/.
| Event | Means |
|---|---|
sandbox.creating |
Creation accepted. |
sandbox.queued |
A start joined the queue. |
sandbox.ready |
Commands work and billing has started. site is where HareBox placed it, inside the EU. |
sandbox.hydrated |
All disk and memory content is local. |
sandbox.sleeping |
The sandbox slept: memory saved and RAM freed. It is billed like a running sandbox. |
sandbox.sleep_warning |
Sleep is about to happen on an idle sandbox. |
sandbox.waking |
A wake began. |
sandbox.woke |
A sleeping sandbox is ready again. |
sandbox.stopping |
A stop began. |
sandbox.stopped |
Disk saved and machine released. |
sandbox.stop_retrying |
A save failed; the stop is retrying and the meter is paused. |
sandbox.resumed |
A stopped sandbox is ready again. start_ms is what the restore took; budget_ms is the host kind's restore target, not a measurement. |
sandbox.forked |
A fork was created from this sandbox. |
sandbox.restored |
A point-in-time restore finished. |
sandbox.resized |
The size changed. |
sandbox.archive_warning |
A stopped sandbox will soon move to paid archive. |
sandbox.archived |
Disk moved to cold storage after the free period. |
sandbox.migrating |
Live migration began. |
sandbox.migrated |
Live migration finished. |
sandbox.degraded |
The sandbox is impaired. |
sandbox.recovered |
A degraded or failed sandbox recovered. |
sandbox.failed |
The sandbox could not start or was lost. |
sandbox.preempting |
A Spot sandbox has two minutes before preemption. |
sandbox.preempted |
A Spot sandbox was saved and stopped. |
sandbox.moved |
A running sandbox moved to another host with its memory, after a pause of a few seconds. HareBox does this to release a host it no longer needs, or before a Spot host is taken back. |
sandbox.deleted |
The sandbox was erased. |
sandbox.maintenance_scheduled |
A restart is scheduled because live migration is not possible. |
sandbox.deadline_extended |
The deadline moved. |
command.started |
A command started. |
command.exited |
A command ended. |
prompt.queued |
A prompt is waiting. |
prompt.started |
A turn began. |
prompt.delta |
Partial agent text. Streams only, never sent to webhooks. |
prompt.tool_call |
The agent called a tool. |
prompt.steered |
A steer joined the turn. |
prompt.finished |
A turn finished. |
prompt.failed |
A turn failed. |
prompt.interrupted |
A turn was interrupted. |
prompt.budget_exceeded |
A turn passed its budget and stopped. |
snapshot.created |
A snapshot finished. |
snapshot.failed |
A snapshot failed. |
template.saved |
A new template version is ready. |
template.shared |
A share code was created. |
endpoint.created |
A port was exposed. |
endpoint.rotated |
A URL token rotated. |
firewall.changed |
Firewall rules changed. |
domain.active |
A custom domain is live. |
domain.failed |
A custom domain failed verification. |
budget.threshold |
A budget passed an alert level. |
budget.exceeded |
A budget passed its limit and its action ran. |
wallet.low |
The wallet is running low. |
wallet.empty |
The wallet is empty and a grace period began. |
trial.ended |
The trial ended. With a card it became the build plan; without one the account has no plan. |
trial.ending |
A trial is near its end. |
apikey.created |
An API key was created. |
apikey.rotated |
An API key rotated. |
apikey.revoked |
An API key was revoked. |
apikey.expiring |
An API key expires soon. |
member.joined |
A member joined. |
member.cap_reached |
A member reached a cap. |
ci.job_finished |
A CI job ended. |
abuse.limited |
Abuse controls limited a sandbox. |
copilot.recommendation |
A new saving is available. |
command.output |
Command output. Streams only, never sent to webhooks. |
proxy.request |
The credentials proxy forwarded a request. |
webhook.test |
A signed test event. |

