Core concepts
Seven nouns carry the whole API, and they form one chain:
- Deployment — solver code plus its data, deployed once under a handle.
- Project — a workspace created from a deployment. Where the work happens.
- Conversation — a thread of messages inside a project.
- Turn — one message, and everything the agent does in response.
- Execution — the record of one solver run.
- Snapshot — the workspace, frozen at the end of a run.
- Tag — a movable name for a snapshot worth keeping.
Deployment
Section titled “Deployment”A named bundle of solver code and data, owned by your company. Its handle is <company>/<name>,
for example acme/vrp, and comes back as handle on every deployment response. Deploy it once and
create as many projects from it as you like.
Its layout is fixed:
| Path | Holds |
|---|---|
run/ |
The solver package — its own pyproject.toml and a module under src/solver/ |
data/ |
The dataset the solver reads, as ../data/ at solve time |
checkDeployment / check_deployment runs that contract server-side and answers ok, missing and
warnings.
Deploying again syncs: remote files absent locally are pruned after the uploads, so a rename
leaves nothing stale.
A deployment can also carry agent config — instructions and skills describing how the agent should operate the model. It is not part of that layout and never appears in the workspace; see Instructions and skills.
Project
Section titled “Project”A workspace created from a deployment, where Aura does the work. A project created with
fromDeployment / from_deployment lands directly in run mode, so you can chat with it immediately.
The project workspace is a live file tree — the deployment’s files plus whatever the agent has
since written (solutions/out.json, a dashboard, edited inputs). Read it with listFiles /
list_files and readFile / read_file, naming the
workspace container.
A project also holds its own copy of its deployment’s agent config, plus any it adds itself.
That copy is taken when the project is created, so a later edit to the deployment does not reach
projects already running until something pulls it in — a checkout, or
pullAgentConfig / pull_agent_config.
Conversation
Section titled “Conversation”A thread of messages inside a project. A project can hold several; one is active at a time. Every project gets one when it is created.
A turn is pinned to the conversation it was dispatched to, so two callers on two conversations do not wait on each other’s replies.
One user message plus everything the agent does in response — tool calls, file writes, solves — ending in one assistant message. Turns are the unit of cancellation.
chat() delivers the turn live over the project WebSocket and returns the completed reply. Where a
socket cannot be held open it falls back to dispatch-and-poll, which changes the latency, not the
result. Either way it matches the reply on the dispatched message’s sequence number, so a busy
conversation cannot hand you someone else’s reply.
Execution
Section titled “Execution”One run of the solver, recorded: status, execution_time_ms, output_summary,
output_data, and the snapshot it froze. listExecutions / list_executions returns them newest-first, so
executions[0] is the latest run.
Snapshot and tag
Section titled “Snapshot and tag”Every completed solve freezes the project workspace into an immutable snapshot of kind solve;
you can also capture one on demand, kind manual. A snapshot records the files, the execution
it came from, and its solution_path.
A snapshot’s label is its title — the name listings show, describing that one frozen state.
A tag is its address — a movable name inside a project, best-known or baseline, accepted
anywhere a snapshot id is, so a downstream reader can ask for a name rather than tracking ids.
Snapshots age out. One survives pruning if it is labelled, tagged, of kind manual, or the snapshot
a project is currently checked out on; the rest are eventually deleted.
Checkout loads a snapshot’s files back into a project’s live workspace. source can be:
source |
Means |
|---|---|
a1b2c3… or best-known |
A snapshot id, or a tag inside this project |
acme/vrp |
A deployment handle |
acme/vrp-demo/best-known |
A tag on another project in your company |
A snapshot holds the workspace. A project’s agent config is separate from it, and a checkout of a snapshot leaves that config alone.