Resolve an uncertain tool outcome
/api/v1/runs/{run_id}/resolve-tool-outcomeRecord an explicit human decision for a tool request whose external effect could not be confirmed. The run remains paused until the durable keyed wake is consumed.
Generate one resolution_id and retain it across transport retries. An exact replay returns the committed decision; a changed decision, stale blocker, or stale review digest returns 409.
When the review is not attestable, only abandon_operation is accepted. The backend never infers whether the external effect occurred.
Generic resume and replan operations cannot bypass an active uncertain-outcome blocker.
Required access
Credentials: user session
Requires the existing mutation permission for the run and a direct authenticated human user session. Service principals, delegated tokens, agents, and background workflows cannot attest to an external outcome.
Path Parameters
Header Parameters
Selects the active organization for a credential that belongs to more than one. Service-principal keys are bound to a single organization and ignore it.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Client idempotency identity plus exact blocker/review preconditions.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/runs/0/resolve-tool-outcome" \ -H "Authorization: Bearer $GUEST_MACHINES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "resolution_id": "8a9ff2c6-16e7-4c6e-8b2f-1aec855c6b95", "resolution": "confirmed_applied", "expected_blocker_id": "retry-blocker:v1:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "expected_review_digest": "review:v1:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }'{ "resolution_id": "e25ae328-69b8-4e08-9f09-52d881051e39", "blocker_id": "string", "review_digest": "string", "resolution": "abandon_operation", "committed": true, "resume_pending": true, "wake_state": "dead", "retry_not_before": "2019-08-24T14:15:22Z"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}{ "detail": "string", "error_code": "string", "request_id": "string"}