Work
The work Bash does on its computer: list it, read it, stop it or delete it.
GET/v1/tasks/{task_id}/traceEvery step: tools called with a summary of inputs and outputs, timings, tokens and cost per turn.
Request1 field
Path
task_idstringrequiredThe piece of work's id (task_...).
- Type
string
Answers 2005 fields
object"task_trace"Always task_trace.
- Type
"task_trace"
task_idstringThe task (task_...).
- Type
string
stepsobject[]Every tool Bash used, in order.
tool_use_idstringThe step: one use of a tool.
- Type
string
namestring | nullThe tool Bash used; null when it was not recorded.
- Type
string | null
input_summarystring | nullWhat Bash did with it, in a line: never the raw input. Null when there is none.
- Type
string | null
output_summarystring | nullWhat came back, in a line; null when there is none.
- Type
string | null
is_errorbooleanWhether the step failed.
- Type
boolean
started_atstringWhen it started, as an ISO 8601 time.
- Type
string
finished_atstring | nullWhen it finished, as an ISO 8601 time; null while running.
- Type
string | null
duration_msnumber | nullHow long it took, in milliseconds; null while running.
- Type
number | null
turnsobject[]Every call to the model, in order, with its tokens and cost.
turn_idstringThe model turn: one call to the model.
- Type
string
modelstring | nullThe model that answered; null when it was not recorded.
- Type
string | null
input_tokensnumberTokens the model read.
- Type
number
output_tokensnumberTokens the model wrote.
- Type
number
cache_read_tokensnumberOf the tokens it read, how many came from the cache, at a lower price.
- Type
number
cost_usdnumberWhat this turn cost, in billed US dollars.
- Type
number
duration_msnumber | nullHow long it took, in milliseconds; null when not recorded.
- Type
number | null
statusstring | nullHow it ended, as recorded; null when not recorded.
- Type
string | null
started_atstringWhen it started, as an ISO 8601 time.
- Type
string
totalsobjectThe turns added up.
input_tokensnumberAll tokens read.
- Type
number
output_tokensnumberAll tokens written.
- Type
number
cost_usdnumberWhat every turn cost together, in billed US dollars.
- Type
number
const trace = await vestra.events.trace('task_91d');trace = vestra.events.trace("task_91d")vestra events task_91d# Stream a conversation live. If the connection drops, reconnect with the last seq you saw.curl -N "$VESTRA_BASE_URL/v1/conversations/conv_8f2k/events" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Last-Event-ID: 41" # Read the same events as JSON. You get them in pages, after the seq you give.curl "$VESTRA_BASE_URL/v1/conversations/conv_8f2k/events?format=json&after=41" \ -H "Authorization: Bearer $VESTRA_API_KEY" # Read a task afterwards. You get every step of one task, with tokens and cost per turn.curl "$VESTRA_BASE_URL/v1/tasks/task_91d/trace" \ -H "Authorization: Bearer $VESTRA_API_KEY" # Send events to your server. Register a URL and the events it wants. The signing secret is shown only once.curl "$VESTRA_BASE_URL/v1/webhooks" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://hooks.example.com/vestra", "events": ["task.completed", "interaction.created", "usage.cap_reached"] }' # Catch up on what you missed. List the events your webhooks were sent, newest first.curl "$VESTRA_BASE_URL/v1/events?type=task.failed" \ -H "Authorization: Bearer $VESTRA_API_KEY"{ "method": "tools/call", "params": { "name": "events", "arguments": { "user": "traveller-42", "conversation": "conv_8f2k", "after": 0 } }}