Skip to main content

Deployments

zap deploy bundles project.ts and every agents/<id>/agent.ts into an immutable deployment, content-addressed by bundle sha, stored under /zap/deployments/<sha>/ in the runtime VM. Deployments never change after they are built.

Aliases

Aliases (development, production) are movable pointers under /zap/aliases/:
  • zap deploy --watch rebuilds on change and advances only development.
  • zap deploy --alias production --sha <sha> moves the production pointer to an existing deployment — it never builds a new one.
Address an agent as agent-id@alias, for example transcode@production.

Sessions

Sessions are durable turns bound to a deployment:
  • The alias resolves once, at session creation; the resolved deploymentId is stored in the session. Later alias moves (including advancing production) never change a running session.
  • Resume does not rebuild history locally — transcripts stay inside the VM under /zap/sessions/<id>/; only metadata (agent, alias, deployment id, turn count) mirrors to the control plane.
  • Each turn streams JSONL events: turn.started, render, text.delta, tool.planned, tool.call, tool.result, turn.completed, turn.failed.

Development loop