docs/auth-host-api.mdx
Rama main · réplica de lectura del repositorio original.
---
title: "Auth host HTTP API"
description: "HTTP operations, parameters, responses, and authentication for the Auth host HTTP interface."
kind: "Reference (informative)"
audience: "HTTP client authors"
---
Source: [OpenAPI description](../implementations/auth/host.openapi.json).
Host-only HTTP operations of the stock auth service. These six routes exist only on the loopback listener and return 404 on the public listener. The owner-private auth-service discovery record supplies its port and exchange capability. Every operation requires the exact Authorization bearer capability, application/json and no Origin header. Requests match the exact target, so query strings and trailing slashes return 404. Bodies default to 65536 bytes. More than 30 invalid capability attempts in a rolling minute receive 429.
The loopback listener also serves /health, /jwks, /exchange, /manager-service-authority, /manager-instances, /service-endpoint-authority, /service-endpoint-host and /chat-session/open, /chat-session/bearer, /chat-session/retire. Their public request and response shapes are in the [Auth HTTP API](https://docs.cotal.ai/api/auth/). Proof operations additionally require the loopback capability. The loopback /health handler also accepts other methods. Elevated exchange views and operator host operations are loopback-only. Mesh discovery is public-listener-only. This implementation reference does not establish a stable cloud API.
## Reading the contract
The [interactive reference](https://docs.cotal.ai/api/auth-host/) and [downloadable OpenAPI specification](https://docs.cotal.ai/auth-host.openapi.json) describe the same operations.
Schema references in the sections below resolve inside the downloadable specification.
See [API reference](api-reference.mdx) for the other integration interfaces.
## Retire an interactive lifecycle [#auth-host-retire-interactive]
```http
POST /interactive-lifecycle/retire
```
Retire one exact interactive actor lifecycle before rotating or deleting its grant. Unknown actors return 404 and a mismatched current lifecycle returns 409. Refusals before the retirement barrier begins carry outcome not-executed. A later failure without an outcome must be treated as unknown.
### Parameters
No operation parameters.
### Request body
The request uses the schema below.
Required: yes.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/LifecycleTarget"
}
```
### Responses
#### HTTP 200
The host decision completed.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Retirement"
}
```
#### HTTP 400
Malformed JSON or invalid request fields.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 401
Missing or invalid loopback capability.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 403
An Origin header or failed authority/proof check is refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 404
The actor is not granted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 405
Only POST is accepted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 409
The requested lifecycle is not current.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 413
Request exceeds the 65536-byte body limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 415
Content-Type must be application/json.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 429
Invalid-capability attempts exceeded the rolling-minute limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP default
A native refusal uses its HTTP status and may include code and outcome. Unexpected failures use the handler error classification.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
## Activate a managed lifecycle [#auth-host-activate-managed]
```http
POST /managed-lifecycle/activate
```
Activate the exact host-issued lifecycle UID. accountPublicKey must name this authority or the request returns 403 before mutation. Native already-exists is 409. Native refusals preserve code, outcome and optional details. An unexpected failure returns 500 with outcome unknown.
### Parameters
No operation parameters.
### Request body
The request uses the schema below.
Required: yes.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Activation"
}
```
### Responses
#### HTTP 200
The host decision completed.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Activated"
}
```
#### HTTP 400
Malformed JSON or invalid request fields.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 401
Missing or invalid loopback capability.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 403
An Origin header or failed authority/proof check is refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 405
Only POST is accepted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 409
The lifecycle already exists or a native conflict was refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 413
Request exceeds the 65536-byte body limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 415
Content-Type must be application/json.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 429
Invalid-capability attempts exceeded the rolling-minute limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 500
Unexpected activation failure; outcome is unknown.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP default
Native authority refusal classified by its error code.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
## Retire a managed lifecycle [#auth-host-retire-managed]
```http
POST /managed-lifecycle/retire
```
Complete terminal retirement of an exact managed lifecycle after its grant was revoked. This host recovery door is used when the responsible remote manager is gone.
### Parameters
No operation parameters.
### Request body
The request uses the schema below.
Required: yes.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/LifecycleTarget"
}
```
### Responses
#### HTTP 200
The host decision completed.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Retirement"
}
```
#### HTTP 400
Malformed JSON or invalid request fields.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 401
Missing or invalid loopback capability.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 403
An Origin header or failed authority/proof check is refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 405
Only POST is accepted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 409
Native retirement conflict.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 413
Request exceeds the 65536-byte body limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 415
Content-Type must be application/json.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 429
Invalid-capability attempts exceeded the rolling-minute limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 500
Unexpected retirement failure.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
## Verify a managed agent host decision [#auth-host-verify-enrollment]
```http
POST /manager-service-authority/verify-enrollment
```
Verify enrollment, retirement preparation, runtime creation or runtime status. Forward the participant request verbatim. The host derives the interactive actor scope from its own ledger; the caller cannot supply scope.
### Parameters
No operation parameters.
### Request body
The request uses the schema below.
Required: yes.
Content type: `application/json`.
```json
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"request": {
"$ref": "#/components/schemas/ManagedDecisionRequest"
}
},
"required": [
"owner",
"request"
],
"additionalProperties": false
}
```
### Responses
#### HTTP 200
The host decision completed.
Content type: `application/json`.
```json
{
"oneOf": [
{
"type": "object",
"properties": {
"authorized": {
"const": true
},
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"instanceId": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"serveEpoch": {
"type": "integer"
}
},
"required": [
"authorized",
"owner",
"actor",
"instanceId",
"serveEpoch"
]
},
{
"type": "object",
"properties": {
"authorized": {
"const": true
},
"v": {
"const": 1
},
"kind": {
"type": "string",
"enum": [
"manager-managed-agent-runtime-create",
"manager-managed-agent-runtime-status"
]
},
"space": {
"type": "string"
},
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"instanceId": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"managerLifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"requestId": {
"type": "string"
},
"target": {
"$ref": "#/components/schemas/LifecycleTarget"
},
"state": {
"type": "string",
"enum": [
"reserved",
"creating",
"bound",
"create-unknown",
"closing",
"closed"
]
},
"readiness": {
"type": "string",
"enum": [
"ready",
"bound-not-ready",
"none"
]
},
"retirementPhase": {
"type": "string",
"enum": [
"intent",
"released",
"retired",
"deprovisioned",
"terminal"
]
}
},
"required": [
"authorized",
"v",
"kind",
"space",
"owner",
"actor",
"instanceId",
"managerLifecycleUid",
"requestId",
"target",
"state",
"readiness"
]
}
]
}
```
#### HTTP 400
Malformed JSON or invalid request fields.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 401
Missing or invalid loopback capability.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 403
An Origin header or failed authority/proof check is refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 405
Only POST is accepted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 409
Native conflict.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 412
Native failed precondition.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 413
Request exceeds the 65536-byte body limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 415
Content-Type must be application/json.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 429
Invalid-capability attempts exceeded the rolling-minute limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
## Verify a fresh human proof [#auth-host-verify-human-proof]
```http
POST /tool-result-human-proof/verify
```
Verify a signed password proof no older than five minutes against the authenticated session subject. The verified subject must equal subject. The owner is derived from the verified IdP proof; it is not accepted from the body.
### Parameters
No operation parameters.
### Request body
The request uses the schema below.
Required: yes.
Content type: `application/json`.
```json
{
"type": "object",
"properties": {
"idpToken": {
"type": "string",
"minLength": 1
},
"subject": {
"type": "string",
"minLength": 1
}
},
"required": [
"idpToken",
"subject"
],
"additionalProperties": false
}
```
### Responses
#### HTTP 200
The host decision completed.
Content type: `application/json`.
```json
{
"type": "object",
"properties": {
"authorized": {
"const": true
},
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"sub": {
"type": "string"
},
"exp": {
"type": "integer"
},
"authTime": {
"type": "integer"
}
},
"required": [
"authorized",
"owner",
"sub",
"exp",
"authTime"
]
}
```
#### HTTP 400
Malformed JSON or invalid request fields.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 401
Missing or invalid loopback capability.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 403
An Origin header or failed authority/proof check is refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 405
Only POST is accepted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 413
Request exceeds the 65536-byte body limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 415
Content-Type must be application/json.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 429
Invalid-capability attempts exceeded the rolling-minute limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
## Issue tool result consent [#auth-host-issue-consent]
```http
POST /tool-result-consent/issue
```
Issue signed consent for the exact holder and target after verifying a fresh human proof. This route never returns private result content. ttlMs is bounded to 24 hours. Source parser and contract are packages/core/src/private-tool-results.ts and implementations/auth/src/tool-result-consent.ts.
### Parameters
No operation parameters.
### Request body
The request uses the schema below.
Required: yes.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/ConsentRequest"
}
```
### Responses
#### HTTP 200
The host decision completed.
`Cache-Control`: Consent responses are not cached.
Content type: `application/json`.
```json
{
"type": "object",
"properties": {
"consent": {
"$ref": "#/components/schemas/Consent"
}
},
"required": [
"consent"
],
"additionalProperties": false
}
```
#### HTTP 400
Malformed input or any request-body read failure, including a body over 65536 bytes.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 401
Missing or invalid loopback capability.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 403
An Origin header or failed authority/proof check is refused.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 405
Only POST is accepted.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 409
The consent ID is already recorded.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 415
Content-Type must be application/json.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 429
Invalid-capability attempts exceeded the rolling-minute limit.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
#### HTTP 503
Consent signer is unavailable or issuance outcome is unknown.
Content type: `application/json`.
```json
{
"$ref": "#/components/schemas/Error"
}
```
## Schemas
These schemas describe the HTTP request and response wrappers. The downloadable specification includes the referenced definitions.
### Error
```json
{
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"outcome": {
"type": "string",
"enum": [
"not-executed",
"executed",
"unknown"
]
},
"details": {}
},
"required": [
"error"
]
}
```
### LifecycleTarget
```json
{
"type": "object",
"properties": {
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"lifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
}
},
"required": [
"owner",
"actor",
"lifecycleUid"
],
"additionalProperties": false
}
```
### Retirement
```json
{
"type": "object",
"properties": {
"retired": {
"type": "boolean"
},
"lifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"notStarted": {
"type": "boolean"
},
"alreadyRetired": {
"type": "boolean"
}
},
"required": [
"retired",
"lifecycleUid"
]
}
```
### Activation
```json
{
"type": "object",
"properties": {
"accountPublicKey": {
"type": "string",
"description": "Assigned account authority public key."
},
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"lifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
}
},
"required": [
"accountPublicKey",
"owner",
"actor",
"lifecycleUid"
],
"additionalProperties": false
}
```
### Activated
```json
{
"type": "object",
"properties": {
"accountPublicKey": {
"type": "string",
"description": "Assigned account authority public key."
},
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"lifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"activated": {
"const": true
}
},
"required": [
"accountPublicKey",
"owner",
"actor",
"lifecycleUid",
"activated"
],
"additionalProperties": false
}
```
### ManagedDecisionRequest
```json
{
"oneOf": [
{
"type": "object",
"properties": {
"v": {
"const": 1
},
"kind": {
"const": "manager-managed-agent-enrollment"
},
"space": {
"type": "string"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"instanceId": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"managerLifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22,64}$"
},
"registrationProof": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$"
},
"serveEpoch": {
"type": "integer",
"minimum": 0
},
"target": {
"type": "object",
"properties": {
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"tokenHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"role": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"capabilities": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 64
},
"subscribe": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 64
},
"allowSubscribe": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 64
},
"allowPublish": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 64
}
},
"required": [
"actor",
"tokenHash"
],
"additionalProperties": false
},
"identities": {
"type": "object",
"properties": {
"supervisor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"executor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"serve": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"goalWriter": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"sessionLedger": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"required": [
"supervisor",
"executor",
"serve",
"goalWriter",
"sessionLedger"
],
"additionalProperties": false
}
},
"required": [
"v",
"kind",
"space",
"actor",
"instanceId",
"managerLifecycleUid",
"requestId",
"registrationProof",
"serveEpoch",
"target",
"identities"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"v": {
"const": 1
},
"kind": {
"const": "manager-managed-agent-prepare-retirement"
},
"space": {
"type": "string"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"instanceId": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"managerLifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22,64}$"
},
"registrationProof": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$"
},
"serveEpoch": {
"type": "integer",
"minimum": 0
},
"target": {
"$ref": "#/components/schemas/LifecycleTarget"
},
"identities": {
"type": "object",
"properties": {
"supervisor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"executor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"serve": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"goalWriter": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"sessionLedger": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"required": [
"supervisor",
"executor",
"serve",
"goalWriter",
"sessionLedger"
],
"additionalProperties": false
},
"opId": {
"type": "string"
}
},
"required": [
"v",
"kind",
"space",
"actor",
"instanceId",
"managerLifecycleUid",
"requestId",
"registrationProof",
"serveEpoch",
"target",
"identities",
"opId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"v": {
"const": 1
},
"kind": {
"const": "manager-managed-agent-runtime-create"
},
"space": {
"type": "string"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"instanceId": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"managerLifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22,64}$"
},
"registrationProof": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$"
},
"serveEpoch": {
"type": "integer",
"minimum": 0
},
"target": {
"$ref": "#/components/schemas/LifecycleTarget"
},
"identities": {
"type": "object",
"properties": {
"supervisor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"executor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"serve": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"goalWriter": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"sessionLedger": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"required": [
"supervisor",
"executor",
"serve",
"goalWriter",
"sessionLedger"
],
"additionalProperties": false
}
},
"required": [
"v",
"kind",
"space",
"actor",
"instanceId",
"managerLifecycleUid",
"requestId",
"registrationProof",
"serveEpoch",
"target",
"identities"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"v": {
"const": 1
},
"kind": {
"const": "manager-managed-agent-runtime-status"
},
"space": {
"type": "string"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"instanceId": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"managerLifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22,64}$"
},
"registrationProof": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$"
},
"serveEpoch": {
"type": "integer",
"minimum": 0
},
"target": {
"$ref": "#/components/schemas/LifecycleTarget"
},
"identities": {
"type": "object",
"properties": {
"supervisor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"executor": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"serve": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"goalWriter": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"sessionLedger": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^U[A-Z2-7]{55}$"
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"required": [
"supervisor",
"executor",
"serve",
"goalWriter",
"sessionLedger"
],
"additionalProperties": false
}
},
"required": [
"v",
"kind",
"space",
"actor",
"instanceId",
"managerLifecycleUid",
"requestId",
"registrationProof",
"serveEpoch",
"target",
"identities"
],
"additionalProperties": false
}
],
"description": "Native requests from packages/core/src/remote-manager-authority.ts. Forward verbatim; the host derives caller scope from its ledger."
}
```
### ConsentRequest
```json
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,200}$"
},
"idpToken": {
"type": "string",
"minLength": 1,
"maxLength": 16384
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"accountPublicKey": {
"type": "string"
},
"holder": {
"type": "object",
"properties": {
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
},
"lifecycleUid": {
"type": "string",
"pattern": "^[a-z0-9]{26,32}$"
}
},
"required": [
"actor",
"lifecycleUid"
],
"additionalProperties": false
},
"target": {
"$ref": "#/components/schemas/LifecycleTarget"
},
"ttlMs": {
"type": "integer",
"minimum": 1,
"maximum": 86400000
}
},
"required": [
"id",
"idpToken",
"subject",
"accountPublicKey",
"holder",
"target",
"ttlMs"
],
"additionalProperties": false
}
```
### Consent
```json
{
"type": "object",
"properties": {
"v": {
"const": 1
},
"kind": {
"const": "tool-result-consent"
},
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,200}$"
},
"space": {
"type": "string"
},
"target": {
"$ref": "#/components/schemas/LifecycleTarget"
},
"holder": {
"type": "object",
"properties": {
"owner": {
"type": "string",
"pattern": "^u_[a-z2-7]{26}$"
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9_]+$",
"minLength": 1
}
},
"required": [
"owner",
"actor"
],
"additionalProperties": false
},
"iat": {
"type": "integer",
"minimum": 0
},
"exp": {
"type": "integer",
"minimum": 0
},
"issuer": {
"type": "object",
"properties": {
"keyId": {
"type": "string"
}
},
"required": [
"keyId"
],
"additionalProperties": false
},
"sig": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{86}$"
}
},
"required": [
"v",
"kind",
"id",
"space",
"target",
"holder",
"iat",
"exp",
"issuer",
"sig"
],
"additionalProperties": false
}
```