Skip to content

Worker complete callback

POST
/internal/computer-use/{session_id}/complete
curl --request POST \
--url https://api.ultimateteam.ai/internal/computer-use/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/complete \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "artifacts": [ { "generation": "example", "provider_response_id": "example", "sha256_hash": "example", "size_bytes": 1, "step": 1, "storage_uri": "example" } ], "steps_executed": 1, "tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "usage": { "cache_creation_input_tokens": 1, "cache_read_input_tokens": 1, "input_tokens": 1, "model": "example", "output_tokens": 1, "turns": 1 } }'

Called by the Cloud Run container on successful completion. Requires the configured worker identity and execution receipt.

session_id
required
Session Id
string format: uuid
Media typeapplication/json
CompleteCallbackBody

Request body for the worker complete callback.

Attributes: steps_executed: Number of screenshot-action iterations completed. tenant_id: Tenant UUID (passed by container for routing). usage: Required accumulated provider usage. artifacts: Actual immutable screenshot object receipts for every turn.

object
artifacts
required
Artifacts
Array<object>
>= 1 items <= 50 items
ComputerUseArtifactReceipt

Worker-attested immutable GCS generation and provider observation.

object
generation
required
Generation
string
/^[1-9][0-9]*$/
provider_response_id
required
Provider Response Id
string
<= 200 characters /^msg_[A-Za-z0-9_-]+$/
sha256_hash
required
Sha256 Hash
string
/^[0-9a-f]{64}$/
size_bytes
required
Size Bytes
integer
> 0 <= 20971520
step
required
Step
integer
< 50
storage_uri
required
Storage Uri
string
>= 1 characters <= 2048 characters
steps_executed
required
Steps Executed
integer
>= 1 <= 50
tenant_id
required
Tenant Id
string format: uuid
usage
required
ComputerUseUsageBody

Accumulated Anthropic token usage reported by the container.

The worker cannot bill from inside its isolated Cloud Run container (no Redis, no Postgres, no CreditManager – same isolation as the D-13 deviation documented in src/workers/computer_use_worker.py), so it counts tokens across every turn of the computer-use loop and reports the totals here. ComputerUseExecutor._meter_llm_usage runs the reserve/settle against the tenant’s real balance on receipt.

Missing receipts remain unknown; required counters never default to zero.

Attributes: model: Model the container actually called (priced against this). input_tokens: Summed usage.input_tokens across all turns. output_tokens: Summed usage.output_tokens across all turns. cache_creation_input_tokens: Summed cache-write tokens. cache_read_input_tokens: Summed cache-read tokens. turns: Number of provider round-trips.

object
cache_creation_input_tokens
required
Cache Creation Input Tokens
integer
cache_read_input_tokens
required
Cache Read Input Tokens
integer
input_tokens
required
Input Tokens
integer
model
required
Model
string
output_tokens
required
Output Tokens
integer
turns
required
Turns
integer
Examplegenerated
{
"artifacts": [
{
"generation": "example",
"provider_response_id": "example",
"sha256_hash": "example",
"size_bytes": 1,
"step": 1,
"storage_uri": "example"
}
],
"steps_executed": 1,
"tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"usage": {
"cache_creation_input_tokens": 1,
"cache_read_input_tokens": 1,
"input_tokens": 1,
"model": "example",
"output_tokens": 1,
"turns": 1
}
}

Successful Response

Media typeapplication/json
Response Worker Complete Callback Internal Computer Use Session Id Complete Post
object
key
additional properties
string
Examplegenerated
{
"additionalProperty": "example"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}