Use when
- A bounded number of agents may work on the same resource concurrently.
- Each holder needs an independently expiring permit.
coordination · beta · free
Atomically admits up to a declared capacity of holders. Each holder permit expires independently, can be renewed idempotently, and can be released without exposing holder identities.
{
"input": {
"action": "acquire",
"namespace": "crawl:example.invalid",
"key": "render-workers",
"capacity": 3,
"holder": "agent-a",
"ttl_seconds": 30
},
"output": {
"action": "acquire",
"semaphore_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"configuration_matches": true,
"capacity": 3,
"active_holders": 1,
"available_permits": 2,
"acquired": true,
"released": false,
"already_held": false,
"next_expiration_at": "2026-07-24T12:00:30.000Z",
"holder_expiration_at": "2026-07-24T12:00:30.000Z"
},
"negative": [
{
"scenario": "Exactly one agent must own the resource; use PennyLock instead.",
"expected_error": "INVALID_INPUT",
"charged": false
}
]
}| Code | Retry | Charged | Recovery |
|---|---|---|---|
| INVALID_INPUT | false | false | Correct the request to match input_schema. |
| TOOL_PAUSED | true | false | Wait for the operator to resume the tool. |
| RATE_LIMITED | true | false | Retry after the response Retry-After interval. |
| DEPENDENCY_UNAVAILABLE | true | false | Retry with the same idempotency identity. |
The HTTP, OpenAPI, MCP, llms.txt, and ARD descriptions are generated from this same registry record.