Request and response schemas
280 component schemas from contracts/openapi-v2.json.
Look up a request or response type to check its fields, required values and constraints. Replace generated example values before sending a request.
Index
Accepted
| Field | Type | Required |
|---|
accepted | boolean | yes |
Used by: completeTask, reportProgress
{
"accepted": false
}
AccessAdmission
Preview (`evaluate`) or charge (`admit`) an operation for the authenticated
caller. `target` is `label.capability`; `input` is the invocation payload the
constraints are matched against. Workers pass their lease to act as the
leased effective principal.
| Field | Type | Required |
|---|
input | any JSON | no |
lease_token | string or null | no |
operation | string | yes |
step_id | string or null | no |
target | string or null | no |
task_id | string or null | no |
Used by: admitAccess, evaluateAccess
{
"input": {},
"lease_token": "string",
"operation": "string",
"step_id": "string",
"target": "string",
"task_id": "string"
}
AccessConnector
A connector binding. `revoked_at` is set once and never cleared: a revoked
connector never becomes an unrestricted bearer principal again.
| Field | Type | Required |
|---|
enabled | boolean | yes |
expires_at | integer (int64) or null | no |
grants | array of string | yes |
principal | string | yes |
revision | integer (int64) | yes |
revoked_at | integer (int64) or null | no |
updated_at | integer (int64) | yes |
Used by: getConnector, getOwnConnector, putConnector, revokeConnector
{
"enabled": false,
"expires_at": 0,
"grants": [
"string"
],
"principal": "string",
"revision": 0,
"revoked_at": 0,
"updated_at": 0
}
AccessConnectorList
Used by: listConnectors
{
"items": [
{
"enabled": false,
"expires_at": 0,
"grants": [
"string"
],
"principal": "string",
"revision": 0,
"revoked_at": 0,
"updated_at": 0
}
]
}
AccessConnectorPut
Bind an authenticated principal to an allow-list of operation patterns.
Create with `expected_revision` absent or 0; replace with the current revision.
| Field | Type | Required |
|---|
enabled | boolean or null | no |
expected_revision | integer (int64) or null | no |
expires_at | integer (int64) or null | no |
grants | array of string | yes |
Used by: putConnector
{
"enabled": false,
"expected_revision": 0,
"expires_at": 0,
"grants": [
"string"
]
}
AccessConnectorRevoke
| Field | Type | Required |
|---|
expected_revision | integer (int64) | yes |
Used by: revokeConnector
{
"expected_revision": 0
}
AccessConstraint
One predicate over a top-level input field. Ordered operators (`<`, `<=`,
`>`, `>=`) require a numeric `value`; `==` and `!=` compare JSON values.
| Field | Type | Required |
|---|
operator | string | yes |
value | any JSON | yes |
{
"operator": "string",
"value": {}
}
AccessDecision
A decision is data, not an error: `allowed:false` is returned with 200.
| Field | Type | Required |
|---|
allowed | boolean | yes |
budget_ids | array of string or null | no |
policy_ids | array of string | yes |
reason | AccessDecisionReason | yes |
retry_after_ms | integer (int64) | yes |
warnings | array of BudgetUsage or null | no |
Used by: admitAccess, evaluateAccess
{
"allowed": false,
"budget_ids": [
"string"
],
"policy_ids": [
"string"
],
"reason": "bearer_authorization",
"retry_after_ms": 0,
"warnings": [
{
"action": "string",
"as_of": 0,
"budget_id": "string",
"consumed": 0.0,
"enabled": false,
"exceeded": false,
"limit": 0.0,
"metric": "tokens",
"name": "string",
"remaining": 0.0,
"scope": "string",
"subject": "string",
"window": "string",
"window_start": 0
}
]
}
AccessDecisionReason
Why an admission decision was taken. `bearer_authorization` means no policy
matched and the caller's existing roles decide; the other reasons name the
rule that decided.
String enum: "bearer_authorization" "policy_allowed" "policy_denied" "constraint_denied" "connector_forbidden" "rate_limited" "budget_exceeded"
"bearer_authorization"
AccessEffect
Policy effect. `rate` is only valid on `allow` policies.
String enum: "allow" "deny"
"allow"
AccessPolicy
A stored policy. `expires_at` and `rate` are null when unset.
| Field | Type | Required |
|---|
capability | string | yes |
constraints | object of AccessConstraint | yes |
created_at | integer (int64) | yes |
effect | AccessEffect | yes |
enabled | boolean | yes |
expires_at | integer (int64) or null | no |
id | string | yes |
label | string | yes |
name | string | yes |
owner | string | yes |
principal | string | yes |
rate | null or AccessRate | no |
revision | integer (int64) | yes |
tags | array of string or null | no |
updated_at | integer (int64) | yes |
Used by: createAccessPolicy, getAccessPolicy, updateAccessPolicy
{
"capability": "string",
"constraints": {
"key": {
"operator": "string",
"value": {}
}
},
"created_at": 0,
"effect": "allow",
"enabled": false,
"expires_at": 0,
"id": "string",
"label": "string",
"name": "string",
"owner": "string",
"principal": "string",
"rate": {
"burst": 0,
"requests_per_second": 0.0
},
"revision": 0,
"tags": [
"string"
],
"updated_at": 0
}
AccessPolicyCreate
| Field | Type | Required |
|---|
capability | string or null | no |
constraints | object of AccessConstraint or null | no |
effect | null or AccessEffect | no |
enabled | boolean or null | no |
expires_at | integer (int64) or null | no |
label | string | yes |
name | string or null | no |
principal | string or null | no |
rate | null or AccessRate | no |
tags | array of string or null | no |
Used by: createAccessPolicy
{
"capability": "string",
"constraints": {
"key": {
"operator": "string",
"value": {}
}
},
"effect": "allow",
"enabled": false,
"expires_at": 0,
"label": "string",
"name": "string",
"principal": "string",
"rate": {
"burst": 0,
"requests_per_second": 0.0
},
"tags": [
"string"
]
}
AccessPolicyDeleted
| Field | Type | Required |
|---|
deleted | boolean | yes |
id | string | yes |
Used by: deleteAccessPolicy
{
"deleted": false,
"id": "string"
}
AccessPolicyList
Used by: listAccessPolicies
{
"items": [
{
"capability": "string",
"constraints": {
"key": {
"operator": "string",
"value": {}
}
},
"created_at": 0,
"effect": "allow",
"enabled": false,
"expires_at": 0,
"id": "string",
"label": "string",
"name": "string",
"owner": "string",
"principal": "string",
"rate": {
"burst": 0,
"requests_per_second": 0.0
},
"revision": 0,
"tags": [
"string"
],
"updated_at": 0
}
]
}
AccessPolicyUpdate
Compare-and-set edit. `label` is immutable; unknown keys are rejected.
| Field | Type | Required |
|---|
capability | string or null | no |
constraints | object of AccessConstraint or null | no |
effect | null or AccessEffect | no |
enabled | boolean or null | no |
expected_revision | integer (int64) | yes |
expires_at | integer (int64) or null | no |
name | string or null | no |
principal | string or null | no |
rate | null or AccessRate | no |
tags | array of string or null | no |
Used by: updateAccessPolicy
{
"capability": "string",
"constraints": {
"key": {
"operator": "string",
"value": {}
}
},
"effect": "allow",
"enabled": false,
"expected_revision": 0,
"expires_at": 0,
"name": "string",
"principal": "string",
"rate": {
"burst": 0,
"requests_per_second": 0.0
},
"tags": [
"string"
]
}
AccessRate
Token bucket shared by every capability the policy matches, per principal.
| Field | Type | Required |
|---|
burst | integer (int64) | yes |
requests_per_second | number | yes |
{
"burst": 0,
"requests_per_second": 0.0
}
Admission
| Field | Type | Required |
|---|
id | string | yes |
root_id | string | yes |
status | Status | yes |
step_id | string | yes |
Used by: fireEmitter, restartTraverser, submitTraverser
{
"id": "string",
"root_id": "string",
"status": "queued",
"step_id": "string"
}
AgentDefinition
| Field | Type | Required |
|---|
capabilities | object of Capability | yes |
id | string | yes |
label | string | yes |
tags | array of string or null | no |
version | string | yes |
Used by: agentCapabilities, registerAgent
{
"capabilities": {
"key": {
"input_schema": {},
"kind": "traversal",
"output_schema": {},
"realtime": {
"model": "string",
"provider": "string",
"transport": "string"
},
"retry": {
"max_attempts": 0
},
"tags": [
"string"
],
"timeout_seconds": 0
}
},
"id": "string",
"label": "string",
"tags": [
"string"
],
"version": "string"
}
AgentList
Used by: listAgents
{
"items": [
{
"capabilities": {
"key": {
"input_schema": {},
"kind": {},
"output_schema": {},
"realtime": {},
"retry": {},
"tags": [
{}
],
"timeout_seconds": 0
}
},
"id": "string",
"label": "string",
"tags": [
"string"
],
"version": "string"
}
]
}
AgentRemoved
Result of `DELETE /api/v2/agents/{label}`: every version of the label is gone from the namespace.
| Field | Type | Required |
|---|
deleted | boolean | yes |
label | string | yes |
versions | integer (int64) | yes |
Used by: unregisterAgent
{
"deleted": false,
"label": "string",
"versions": 0
}
ApiError
| Field | Type | Required |
|---|
code | string | yes |
message | string | yes |
{
"code": "string",
"message": "string"
}
ApiToken
A stored token without its secret: only the first 8 characters (`prefix`) are
ever shown again. `active` is false once revoked or expired; a `revoked_at` in the
future is a scheduled revocation from a rotation grace period.
| Field | Type | Required |
|---|
active | boolean | yes |
created_at | integer (int64) | yes |
created_by | string | yes |
expires_at | integer (int64) or null | no |
id | string | yes |
label | string | yes |
last_used_at | integer (int64) or null | no |
prefix | string | yes |
principal | string | yes |
revoked_at | integer (int64) or null | no |
roles | array of string | yes |
rotated_from | string or null | no |
Used by: revokeApiToken
{
"active": false,
"created_at": 0,
"created_by": "string",
"expires_at": 0,
"id": "string",
"label": "string",
"last_used_at": 0,
"prefix": "string",
"principal": "string",
"revoked_at": 0,
"roles": [
"string"
],
"rotated_from": "string"
}
ApiTokenCreate
Issue a bearer credential for a principal of the caller's namespace.
| Field | Type | Required |
|---|
expires_at | integer (int64) or null | no |
label | string or null | no |
namespace | string or null | no |
principal | string | yes |
roles | array of string | yes |
Used by: createApiToken
{
"expires_at": 0,
"label": "string",
"namespace": "string",
"principal": "string",
"roles": [
"string"
]
}
ApiTokenCreated
The answer to create and rotate: the record plus the plaintext `token`, returned
exactly once. Store it; it cannot be recovered, only rotated.
| Field | Type | Required |
|---|
active | boolean | yes |
created_at | integer (int64) | yes |
created_by | string | yes |
expires_at | integer (int64) or null | no |
id | string | yes |
label | string | yes |
last_used_at | integer (int64) or null | no |
prefix | string | yes |
previous_revoked_at | integer (int64) or null | no |
principal | string | yes |
revoked_at | integer (int64) or null | no |
roles | array of string | yes |
rotated_from | string or null | no |
token | string | yes |
Used by: createApiToken, rotateApiToken
{
"active": false,
"created_at": 0,
"created_by": "string",
"expires_at": 0,
"id": "string",
"label": "string",
"last_used_at": 0,
"prefix": "string",
"previous_revoked_at": 0,
"principal": "string",
"revoked_at": 0,
"roles": [
"string"
],
"rotated_from": "string",
"token": "string"
}
ApiTokenList
| Field | Type | Required |
|---|
items | array of ApiToken | yes |
Used by: listApiTokens
{
"items": [
{
"active": false,
"created_at": 0,
"created_by": "string",
"expires_at": 0,
"id": "string",
"label": "string",
"last_used_at": 0,
"prefix": "string",
"principal": "string",
"revoked_at": 0,
"roles": [
"string"
],
"rotated_from": "string"
}
]
}
ApiTokenRotate
Rotate: issue a fresh secret for the same principal, roles, label and expiry and
revoke the old one `grace_seconds` from now (default 0: immediately).
| Field | Type | Required |
|---|
grace_seconds | integer (int64) or null | no |
Used by: rotateApiToken
{
"grace_seconds": 0
}
Approval
| Field | Type | Required |
|---|
checkpoint | any JSON | yes |
decided_by | string or null | no |
expires_at | integer (int64) or null | no |
id | string | yes |
operation_key | string | yes |
paused | boolean | yes |
prompt | any JSON | yes |
response | any JSON | no |
status | string | yes |
traverser_id | string | yes |
Used by: decideApproval, getApproval, requestApproval
{
"checkpoint": {},
"decided_by": "string",
"expires_at": 0,
"id": "string",
"operation_key": "string",
"paused": false,
"prompt": {},
"response": {},
"status": "string",
"traverser_id": "string"
}
ApprovalDecision
| Field | Type | Required |
|---|
decision | string | yes |
response | any JSON | no |
Used by: decideApproval
{
"decision": "string",
"response": {}
}
ApprovalList
| Field | Type | Required |
|---|
items | array of Approval | yes |
Used by: listApprovals
{
"items": [
{
"checkpoint": {},
"decided_by": "string",
"expires_at": 0,
"id": "string",
"operation_key": "string",
"paused": false,
"prompt": {},
"response": {},
"status": "string",
"traverser_id": "string"
}
]
}
ApprovalRequest
| Field | Type | Required |
|---|
checkpoint | any JSON | no |
expires_in_seconds | integer (int64) or null | no |
id | string | yes |
lease_token | string | yes |
operation_key | string | yes |
pause | boolean or null | no |
prompt | any JSON | yes |
worker_id | string | yes |
Used by: requestApproval
{
"checkpoint": {},
"expires_in_seconds": 0,
"id": "string",
"lease_token": "string",
"operation_key": "string",
"pause": false,
"prompt": {},
"worker_id": "string"
}
Artifact
| Field | Type | Required |
|---|
content_type | string | yes |
created_at | integer (int64) | yes |
id | string | yes |
name | string | yes |
sha256 | string | yes |
size_bytes | integer (int64) | yes |
traverser_id | string | yes |
Used by: putArtifact
{
"content_type": "string",
"created_at": 0,
"id": "string",
"name": "string",
"sha256": "string",
"size_bytes": 0,
"traverser_id": "string"
}
ArtifactContent
| Field | Type | Required |
|---|
content_type | string | yes |
created_at | integer (int64) | yes |
data_base64 | string | yes |
id | string | yes |
name | string | yes |
sha256 | string | yes |
size_bytes | integer (int64) | yes |
traverser_id | string | yes |
Used by: getArtifact
{
"content_type": "string",
"created_at": 0,
"data_base64": "string",
"id": "string",
"name": "string",
"sha256": "string",
"size_bytes": 0,
"traverser_id": "string"
}
ArtifactDeleted
| Field | Type | Required |
|---|
deleted | boolean | yes |
id | string | yes |
Used by: deleteArtifact
{
"deleted": false,
"id": "string"
}
ArtifactList
| Field | Type | Required |
|---|
items | array of Artifact | yes |
Used by: listArtifacts
{
"items": [
{
"content_type": "string",
"created_at": 0,
"id": "string",
"name": "string",
"sha256": "string",
"size_bytes": 0,
"traverser_id": "string"
}
]
}
Attempt
| Field | Type | Required |
|---|
attempt | integer (int32) | yes |
error | any JSON | no |
finished_at | integer (int64) or null | no |
lease_expires_at | integer (int64) | yes |
started_at | integer (int64) | yes |
status | string | yes |
worker_id | string | yes |
{
"attempt": 0,
"error": {},
"finished_at": 0,
"lease_expires_at": 0,
"started_at": 0,
"status": "string",
"worker_id": "string"
}
BindSession
| Field | Type | Required |
|---|
id | string | yes |
lease_token | string | yes |
session_id | string | yes |
worker_id | string | yes |
Used by: bindSession
{
"id": "string",
"lease_token": "string",
"session_id": "string",
"worker_id": "string"
}
BriefArtifact
One file attached to a session before any run exists (the Studio brief).
Uploaded as raw bytes to `POST /api/v2/sessions/{id}/artifacts`; downloaded as
raw bytes from `GET /api/v2/sessions/{id}/artifacts/{artifact_id}`.
| Field | Type | Required |
|---|
content_type | string | yes |
created_at | integer (int64) | yes |
id | string | yes |
kind | string | yes |
name | string | yes |
session_id | string | yes |
sha256 | string | yes |
size_bytes | integer (int64) | yes |
Used by: getBriefArtifact
{
"content_type": "string",
"created_at": 0,
"id": "string",
"kind": "string",
"name": "string",
"session_id": "string",
"sha256": "string",
"size_bytes": 0
}
BriefArtifactCreated
Used by: putBriefArtifact
{
"artifact": {
"content_type": "string",
"created_at": 0,
"id": "string",
"kind": "string",
"name": "string",
"session_id": "string",
"sha256": "string",
"size_bytes": 0
}
}
BriefArtifactDeleted
| Field | Type | Required |
|---|
deleted | boolean | yes |
id | string | yes |
Used by: deleteBriefArtifact
{
"deleted": false,
"id": "string"
}
BriefArtifactList
| Field | Type | Required |
|---|
items | array of BriefArtifact | yes |
total_bytes | integer (int64) | yes |
Used by: listBriefArtifacts
{
"items": [
{
"content_type": "string",
"created_at": 0,
"id": "string",
"kind": "string",
"name": "string",
"session_id": "string",
"sha256": "string",
"size_bytes": 0
}
],
"total_bytes": 0
}
Budget
| Field | Type | Required |
|---|
action | string | yes |
created_at | integer (int64) | yes |
enabled | boolean | yes |
id | string | yes |
limit | number | yes |
metric | BudgetMetric | yes |
name | string | yes |
principal | string | yes |
revision | integer (int64) | yes |
scope | string | yes |
subject | string | yes |
updated_at | integer (int64) | yes |
window | string | yes |
Used by: createBudget, getBudget, updateBudget
{
"action": "string",
"created_at": 0,
"enabled": false,
"id": "string",
"limit": 0.0,
"metric": "tokens",
"name": "string",
"principal": "string",
"revision": 0,
"scope": "string",
"subject": "string",
"updated_at": 0,
"window": "string"
}
BudgetCreate
Create a budget. `subject` names what the scope binds: a principal, an agent
label, a `label.capability`, or nothing for `namespace`. `limit` is a positive
integer for `tokens` and `runs`, a positive number for `cost_usd`.
| Field | Type | Required |
|---|
action | string or null | no |
enabled | boolean or null | no |
limit | number | yes |
metric | BudgetMetric | yes |
name | string | yes |
scope | string | yes |
subject | string or null | no |
window | string | yes |
Used by: createBudget
{
"action": "string",
"enabled": false,
"limit": 0.0,
"metric": "tokens",
"name": "string",
"scope": "string",
"subject": "string",
"window": "string"
}
BudgetList
| Field | Type | Required |
|---|
items | array of Budget | yes |
Used by: listBudgets
{
"items": [
{
"action": "string",
"created_at": 0,
"enabled": false,
"id": "string",
"limit": 0.0,
"metric": "tokens",
"name": "string",
"principal": "string",
"revision": 0,
"scope": "string",
"subject": "string",
"updated_at": 0,
"window": "string"
}
]
}
BudgetMetric
What a budget measures: model tokens or priced cost from usage receipts, or the
number of root executions admitted.
String enum: "tokens" "cost_usd" "runs"
"tokens"
BudgetStatus
Every enabled budget that applies to an admission by `principal` of `target`, with
its headroom. `allowed` is false when a `deny` budget is exceeded.
| Field | Type | Required |
|---|
allowed | boolean | yes |
items | array of BudgetUsage | yes |
principal | string | yes |
target | string or null | no |
Used by: budgetStatus
{
"allowed": false,
"items": [
{
"action": "string",
"as_of": 0,
"budget_id": "string",
"consumed": 0.0,
"enabled": false,
"exceeded": false,
"limit": 0.0,
"metric": "tokens",
"name": "string",
"remaining": 0.0,
"scope": "string",
"subject": "string",
"window": "string",
"window_start": 0
}
],
"principal": "string",
"target": "string"
}
BudgetUpdate
Compare-and-set edit. Scope, subject and metric are immutable; create a new budget
to change them.
| Field | Type | Required |
|---|
action | string or null | no |
enabled | boolean or null | no |
expected_revision | integer (int64) | yes |
limit | number or null | no |
name | string or null | no |
window | string or null | no |
Used by: updateBudget
{
"action": "string",
"enabled": false,
"expected_revision": 0,
"limit": 0.0,
"name": "string",
"window": "string"
}
BudgetUsage
Consumption of one budget in its current window. `exceeded` is `consumed >= limit`;
`remaining` never goes below 0.
| Field | Type | Required |
|---|
action | string | yes |
as_of | integer (int64) | yes |
budget_id | string | yes |
consumed | number | yes |
enabled | boolean | yes |
exceeded | boolean | yes |
limit | number | yes |
metric | BudgetMetric | yes |
name | string | yes |
remaining | number | yes |
scope | string | yes |
subject | string | yes |
window | string | yes |
window_start | integer (int64) | yes |
Used by: budgetUsage
{
"action": "string",
"as_of": 0,
"budget_id": "string",
"consumed": 0.0,
"enabled": false,
"exceeded": false,
"limit": 0.0,
"metric": "tokens",
"name": "string",
"remaining": 0.0,
"scope": "string",
"subject": "string",
"window": "string",
"window_start": 0
}
Capability
| Field | Type | Required |
|---|
input_schema | any JSON | yes |
kind | CapabilityKind | yes |
output_schema | any JSON | yes |
realtime | null or RealtimeBinding | no |
retry | null or RetryPolicy | no |
tags | array of string or null | no |
timeout_seconds | integer (int64) or null | no |
{
"input_schema": {},
"kind": "traversal",
"output_schema": {},
"realtime": {
"model": "string",
"provider": "string",
"transport": "string"
},
"retry": {
"max_attempts": 0
},
"tags": [
"string"
],
"timeout_seconds": 0
}
CapabilityKind
`realtime` is a live-session entrypoint: listed and publishable (as `http`
only), never admitted as a traverser (400 `realtime_entrypoint`).
String enum: "traversal" "skill" "decision" "realtime"
"traversal"
Checkpoint
| Field | Type | Required |
|---|
name | string | yes |
revision | integer (int64) | yes |
updated_at | integer (int64) | yes |
value | any JSON | yes |
Used by: getCheckpoint
{
"name": "string",
"revision": 0,
"updated_at": 0,
"value": {}
}
CheckpointList
Used by: listCheckpoints
{
"items": [
{
"name": "string",
"revision": 0,
"updated_at": 0,
"value": {}
}
]
}
CheckpointRevision
| Field | Type | Required |
|---|
name | string | yes |
revision | integer (int64) | yes |
Used by: writeCheckpoint
{
"name": "string",
"revision": 0
}
CheckpointWrite
| Field | Type | Required |
|---|
expected_revision | integer (int64) or null | no |
lease_token | string | yes |
value | any JSON | yes |
worker_id | string | yes |
Used by: writeCheckpoint
{
"expected_revision": 0,
"lease_token": "string",
"value": {},
"worker_id": "string"
}
Claim
| Field | Type | Required |
|---|
capacity | integer (int32) or null | no |
draining | boolean or null | no |
task | null or WorkerTask | no |
Used by: claimTask
{
"capacity": 0,
"draining": false,
"task": {
"attempt": 0,
"capability": "string",
"deadline_at": 0,
"emitter": {
"emitter_id": "string",
"event_id": "string",
"event_type": "string",
"idempotency_key": "string",
"managed_by": "string",
"received_at": "string",
"source": "string"
},
"id": "string",
"input": {},
"kind": "string",
"label": "string",
"lease_expires_at": 0,
"lease_token": "string",
"max_attempts": 0,
"namespace": "string",
"parent_id": "string",
"parent_step_id": "string",
"principal": "string",
"root_id": "string",
"session_id": "string",
"step_id": "string",
"target": "string",
"timeout_seconds": 0,
"version": "string"
}
}
CompleteTask
| Field | Type | Required |
|---|
error | null or ExecutionError | no |
id | string | yes |
lease_token | string | yes |
output | any JSON | no |
worker_id | string | yes |
Used by: completeTask
{
"error": {
"code": "string",
"message": "string",
"retryable": false
},
"id": "string",
"lease_token": "string",
"output": {},
"worker_id": "string"
}
CreateSession
| Field | Type | Required |
|---|
id | string or null | no |
Used by: createSession
{
"id": "string"
}
Credential
| Field | Type | Required |
|---|
credential | VerifiableCredential | yes |
expires_at | integer (int64) or null | no |
id | string | yes |
issued_at | integer (int64) | yes |
issuer_did | string | yes |
issuer_key_id | string | yes |
issuer_label | string | yes |
kind | CredentialKind | yes |
node_label | string or null | no |
parent_id | string or null | no |
principal | string | yes |
revocation_reason | string or null | no |
revoked_at | integer (int64) or null | no |
revoked_by | string or null | no |
root_id | string or null | no |
subject_id | string | yes |
traverser_id | string or null | no |
type | string | yes |
Used by: getCredential, issueCredential, revokeCredential
{
"credential": {
"@context": [
"string"
],
"credentialSubject": {},
"expirationDate": "string",
"id": "string",
"issuanceDate": "string",
"issuer": "string",
"proof": {
"created": "string",
"cryptosuite": "string",
"proofPurpose": "string",
"proofValue": "string",
"type": "string",
"verificationMethod": "string"
},
"type": [
"string"
]
},
"expires_at": 0,
"id": "string",
"issued_at": 0,
"issuer_did": "string",
"issuer_key_id": "string",
"issuer_label": "string",
"kind": "execution",
"node_label": "string",
"parent_id": "string",
"principal": "string",
"revocation_reason": "string",
"revoked_at": 0,
"revoked_by": "string",
"root_id": "string",
"subject_id": "string",
"traverser_id": "string",
"type": "string"
}
CredentialIssue
Issue a credential signed by the issuer node's enrolled DID. `execution` needs
`traverser_id` (terminal, owned or inside the worker's leased subtree) and is
idempotent per issuer key; `custom` needs `subject` with a string `id`.
| Field | Type | Required |
|---|
expires_in_seconds | integer (int64) or null | no |
issuer_label | string | yes |
kind | null or CredentialKind | no |
lease_token | string or null | no |
parent_id | string or null | no |
step_id | string or null | no |
subject | object of any JSON or null | no |
task_id | string or null | no |
traverser_id | string or null | no |
type | string or null | no |
Used by: issueCredential
{
"expires_in_seconds": 0,
"issuer_label": "string",
"kind": "execution",
"lease_token": "string",
"parent_id": "string",
"step_id": "string",
"subject": {
"key": {}
},
"task_id": "string",
"traverser_id": "string",
"type": "string"
}
CredentialKind
`execution` certifies a terminal traverser, `custom` carries a caller subject,
`tag` is issued only by tag decisions.
String enum: "execution" "custom" "tag"
"execution"
CredentialList
Used by: listCredentials
{
"items": [
{
"credential": {
"@context": [
"string"
],
"credentialSubject": {},
"expirationDate": "string",
"id": "string",
"issuanceDate": "string",
"issuer": "string",
"proof": {
"created": {},
"cryptosuite": {},
"proofPurpose": {},
"proofValue": {},
"type": {},
"verificationMethod": {}
},
"type": [
"string"
]
},
"expires_at": 0,
"id": "string",
"issued_at": 0,
"issuer_did": "string",
"issuer_key_id": "string",
"issuer_label": "string",
"kind": "execution",
"node_label": "string",
"parent_id": "string",
"principal": "string",
"revocation_reason": "string",
"revoked_at": 0,
"revoked_by": "string",
"root_id": "string",
"subject_id": "string",
"traverser_id": "string",
"type": "string"
}
]
}
CredentialRevoke
| Field | Type | Required |
|---|
reason | string or null | no |
Used by: revokeCredential
{
"reason": "string"
}
CredentialVerification
`valid` is the cryptographic and temporal result; `trusted` additionally
requires the credential to be known, unrevoked and issued by an enrolled,
unrevoked key in this namespace. `reason` is the first failing check.
| Field | Type | Required |
|---|
checks | array of VerificationCheck | yes |
credential_id | string or null | no |
evaluated_at | integer (int64) | yes |
issuer | string or null | no |
issuer_resolution | string | yes |
key_state | string or null | no |
known | boolean | yes |
message | string | yes |
reason | string or null | no |
revoked_at | integer (int64) or null | no |
subject_id | string or null | no |
trusted | boolean | yes |
valid | boolean | yes |
verification_method | string or null | no |
Used by: verifyCredential
{
"checks": [
{
"detail": "string",
"name": "string",
"ok": false
}
],
"credential_id": "string",
"evaluated_at": 0,
"issuer": "string",
"issuer_resolution": "string",
"key_state": "string",
"known": false,
"message": "string",
"reason": "string",
"revoked_at": 0,
"subject_id": "string",
"trusted": false,
"valid": false,
"verification_method": "string"
}
CredentialVerify
Verify a presented credential (any issuer). `at` evaluates validity at another
time; `resolve_remote` allows bounded `did:web` resolution of the issuer.
| Field | Type | Required |
|---|
at | integer (int64) or null | no |
credential | any JSON | yes |
lease_token | string or null | no |
resolve_remote | boolean or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: verifyCredential
{
"at": 0,
"credential": {},
"lease_token": "string",
"resolve_remote": false,
"step_id": "string",
"task_id": "string"
}
DataIntegrityProof
Data Integrity proof, cryptosuite `eddsa-jcs-2022`.
| Field | Type | Required |
|---|
created | string | yes |
cryptosuite | string | yes |
proofPurpose | string | yes |
proofValue | string | yes |
type | string | yes |
verificationMethod | string | yes |
{
"created": "string",
"cryptosuite": "string",
"proofPurpose": "string",
"proofValue": "string",
"type": "string",
"verificationMethod": "string"
}
Deleted
| Field | Type | Required |
|---|
deleted | boolean | yes |
Used by: deleteBudget, deleteEmitter, deleteEvalCase, deleteEvalCaseSet, deleteMemory, deleteMemoryVector, deleteObservabilityWebhook, deletePublication
{
"deleted": false
}
DidDocument
W3C DID document for an enrolled Ed25519 identity.
| Field | Type | Required |
|---|
@context | array of string | yes |
alsoKnownAs | array of string or null | no |
assertionMethod | array of string | yes |
authentication | array of string | yes |
id | string | yes |
verificationMethod | array of VerificationMethod | yes |
{
"@context": [
"string"
],
"alsoKnownAs": [
"string"
],
"assertionMethod": [
"string"
],
"authentication": [
"string"
],
"id": "string",
"verificationMethod": [
{
"controller": "string",
"id": "string",
"publicKeyJwk": {
"crv": "string",
"kty": "string",
"x": "string"
},
"publicKeyMultibase": "string",
"type": "string"
}
]
}
DidEnrol
Enrol the node's active identity key (created when missing) as a `did:key`.
| Field | Type | Required |
|---|
label | string | yes |
Used by: enrolDid
{
"label": "string"
}
DidEnrolment
An enrolled DID. `key_state` mirrors the underlying identity (`active`,
`retired`, `revoked`); `also_known_as` is present when `web_base_url` was given.
| Field | Type | Required |
|---|
algorithm | string | yes |
also_known_as | array of string or null | no |
created_at | integer (int64) | yes |
did | string | yes |
did_document | DidDocument | yes |
encryption | string | yes |
key_id | string | yes |
key_state | string | yes |
label | string | yes |
master_key_id | string | yes |
public_key | string | yes |
public_key_multibase | string | yes |
verification_method | string | yes |
Used by: enrolDid, getDid
{
"algorithm": "string",
"also_known_as": [
"string"
],
"created_at": 0,
"did": "string",
"did_document": {
"@context": [
"string"
],
"alsoKnownAs": [
"string"
],
"assertionMethod": [
"string"
],
"authentication": [
"string"
],
"id": "string",
"verificationMethod": [
{
"controller": "string",
"id": "string",
"publicKeyJwk": {},
"publicKeyMultibase": "string",
"type": "string"
}
]
},
"encryption": "string",
"key_id": "string",
"key_state": "string",
"label": "string",
"master_key_id": "string",
"public_key": "string",
"public_key_multibase": "string",
"verification_method": "string"
}
DidEnrolmentList
Used by: listDids
{
"items": [
{
"algorithm": "string",
"also_known_as": [
"string"
],
"created_at": 0,
"did": "string",
"did_document": {
"@context": [
"string"
],
"alsoKnownAs": [
"string"
],
"assertionMethod": [
"string"
],
"authentication": [
"string"
],
"id": "string",
"verificationMethod": [
{}
]
},
"encryption": "string",
"key_id": "string",
"key_state": "string",
"label": "string",
"master_key_id": "string",
"public_key": "string",
"public_key_multibase": "string",
"verification_method": "string"
}
]
}
DidLocalKey
The enrolled identity behind a resolved DID, when it belongs to this namespace.
| Field | Type | Required |
|---|
key_id | string | yes |
key_state | string | yes |
label | string | yes |
{
"key_id": "string",
"key_state": "string",
"label": "string"
}
DidMethod
String enum: "key" "web"
"key"
DidResolution
`did:key` resolves offline; `did:web` is fetched over bounded HTTPS. `document`
is the DID document as published by its controller.
Used by: resolveDid
{
"canonical_did": "string",
"did": "string",
"document": {},
"legacy_encoding": false,
"local": {
"key_id": "string",
"key_state": "string",
"label": "string"
},
"method": "key",
"resolved_from": "string",
"verification_methods": [
{
"id": "string",
"public_key": "string",
"type": "string"
}
]
}
DidResolve
| Field | Type | Required |
|---|
did | string | yes |
Used by: resolveDid
{
"did": "string"
}
DiscoveryProtocols
| Field | Type | Required |
|---|
a2a_enabled | boolean | yes |
mcp_enabled | boolean | yes |
public_base_url | string or null | no |
{
"a2a_enabled": false,
"mcp_enabled": false,
"public_base_url": "string"
}
DiscoveryPublication
| Field | Type | Required |
|---|
artifact | any JSON | yes |
artifact_type | string | yes |
description | string | yes |
display_name | string | yes |
id | string | yes |
label | string | yes |
published | boolean | yes |
tags | array of string or null | no |
updated_at | integer (int64) | yes |
validation | DiscoveryValidation | yes |
version | string | yes |
Used by: publishDiscovery
{
"artifact": {},
"artifact_type": "string",
"description": "string",
"display_name": "string",
"id": "string",
"label": "string",
"published": false,
"tags": [
"string"
],
"updated_at": 0,
"validation": {
"scope": "string",
"status": "string"
},
"version": "string"
}
DiscoveryPublications
Used by: listPublications, searchDiscovery
{
"items": [
{
"artifact": {},
"artifact_type": "string",
"description": "string",
"display_name": "string",
"id": "string",
"label": "string",
"published": false,
"tags": [
"string"
],
"updated_at": 0,
"validation": {
"scope": "string",
"status": "string"
},
"version": "string"
}
]
}
DiscoverySearch
| Field | Type | Required |
|---|
query | string | yes |
tags | array of string or null | no |
Used by: searchDiscovery
{
"query": "string",
"tags": [
"string"
]
}
DiscoverySettings
| Field | Type | Required |
|---|
configuration_path | string | yes |
configuration_source | string | yes |
enabled | boolean | yes |
locked_reason | string | yes |
protocols | DiscoveryProtocols | yes |
public_base_url | string or null | no |
public_registry | boolean | yes |
publish_catalog | boolean | yes |
Used by: discoverySettings
{
"configuration_path": "string",
"configuration_source": "string",
"enabled": false,
"locked_reason": "string",
"protocols": {
"a2a_enabled": false,
"mcp_enabled": false,
"public_base_url": "string"
},
"public_base_url": "string",
"public_registry": false,
"publish_catalog": false
}
DiscoveryValidation
| Field | Type | Required |
|---|
scope | string | yes |
status | string | yes |
{
"scope": "string",
"status": "string"
}
Draining
| Field | Type | Required |
|---|
draining | boolean | yes |
Used by: drainWorker
{
"draining": false
}
Emitter
| Field | Type | Required |
|---|
code_origin | string or null | no |
cron_expression | string or null | no |
enabled | boolean | yes |
event_types | array of string | yes |
id | string | yes |
input | any JSON | yes |
interval_seconds | integer (int64) or null | no |
kind | string | yes |
last_registered_at | integer (int64) or null | no |
managed_by | string | yes |
name | string | yes |
next_due_at | integer (int64) or null | no |
orphaned | boolean | yes |
revision | integer (int64) | yes |
secret_env | string or null | no |
source | string | yes |
source_config | EmitterSourceConfig | yes |
sticky_paused | boolean | yes |
target | string | yes |
timezone | string | yes |
version | string | yes |
Used by: createEmitter, getEmitter, updateEmitter
{
"code_origin": "string",
"cron_expression": "string",
"enabled": false,
"event_types": [
"string"
],
"id": "string",
"input": {},
"interval_seconds": 0,
"kind": "string",
"last_registered_at": 0,
"managed_by": "string",
"name": "string",
"next_due_at": 0,
"orphaned": false,
"revision": 0,
"secret_env": "string",
"source": "string",
"source_config": {
"actions": [
"set"
],
"auth_mode": "string",
"basic_username": "string",
"event_id_path": "string",
"event_type_header": "string",
"event_type_path": "string",
"header": "string",
"idempotency_header": "string",
"job_ids": [
{}
],
"kinds": [
"value"
],
"prefix": "string",
"scheme": "string",
"scope": "session",
"scope_id": "string",
"signature_header": "string",
"signature_prefix": "string",
"timestamp_header": "string",
"tolerance_seconds": 0,
"workspace_id": "string",
"workspace_path": "string"
},
"sticky_paused": false,
"target": "string",
"timezone": "string",
"version": "string"
}
EmitterBinding
| Field | Type | Required |
|---|
capability | string | yes |
code_origin | string or null | no |
cron_expression | string or null | no |
event_types | array of string or null | no |
input | any JSON | no |
interval_seconds | integer (int64) or null | no |
secret_env | string or null | no |
source | string | yes |
source_config | null or EmitterSourceConfig | no |
timezone | string or null | no |
{
"capability": "string",
"code_origin": "string",
"cron_expression": "string",
"event_types": [
"string"
],
"input": {},
"interval_seconds": 0,
"secret_env": "string",
"source": "string",
"source_config": {
"actions": [
"set"
],
"auth_mode": "string",
"basic_username": "string",
"event_id_path": "string",
"event_type_header": "string",
"event_type_path": "string",
"header": "string",
"idempotency_header": "string",
"job_ids": [
{}
],
"kinds": [
"value"
],
"prefix": "string",
"scheme": "string",
"scope": "session",
"scope_id": "string",
"signature_header": "string",
"signature_prefix": "string",
"timestamp_header": "string",
"tolerance_seconds": 0,
"workspace_id": "string",
"workspace_path": "string"
},
"timezone": "string"
}
EmitterContext
| Field | Type | Required |
|---|
emitter_id | string | yes |
event_id | string or null | no |
event_type | string | yes |
idempotency_key | string | yes |
managed_by | string | yes |
received_at | string | yes |
source | string | yes |
{
"emitter_id": "string",
"event_id": "string",
"event_type": "string",
"idempotency_key": "string",
"managed_by": "string",
"received_at": "string",
"source": "string"
}
EmitterCreate
| Field | Type | Required |
|---|
cron_expression | string or null | no |
event_types | array of string or null | no |
input | any JSON | no |
interval_seconds | integer (int64) or null | no |
kind | string | yes |
name | string | yes |
secret_env | string or null | no |
source | string or null | no |
source_config | null or EmitterSourceConfig | no |
target | string | yes |
timezone | string or null | no |
version | string or null | no |
Used by: createEmitter
{
"cron_expression": "string",
"event_types": [
"string"
],
"input": {},
"interval_seconds": 0,
"kind": "string",
"name": "string",
"secret_env": "string",
"source": "string",
"source_config": {
"actions": [
"set"
],
"auth_mode": "string",
"basic_username": "string",
"event_id_path": "string",
"event_type_header": "string",
"event_type_path": "string",
"header": "string",
"idempotency_header": "string",
"job_ids": [
{}
],
"kinds": [
"value"
],
"prefix": "string",
"scheme": "string",
"scope": "session",
"scope_id": "string",
"signature_header": "string",
"signature_prefix": "string",
"timestamp_header": "string",
"tolerance_seconds": 0,
"workspace_id": "string",
"workspace_path": "string"
},
"target": "string",
"timezone": "string",
"version": "string"
}
EmitterFire
| Field | Type | Required |
|---|
delivery_key | string | yes |
input | any JSON | no |
Used by: fireEmitter
{
"delivery_key": "string",
"input": {}
}
EmitterList
| Field | Type | Required |
|---|
items | array of Emitter | yes |
Used by: listEmitters, syncEmitters
{
"items": [
{
"code_origin": "string",
"cron_expression": "string",
"enabled": false,
"event_types": [
"string"
],
"id": "string",
"input": {},
"interval_seconds": 0,
"kind": "string",
"last_registered_at": 0,
"managed_by": "string",
"name": "string",
"next_due_at": 0,
"orphaned": false,
"revision": 0,
"secret_env": "string",
"source": "string",
"source_config": {
"actions": [
{}
],
"auth_mode": "string",
"basic_username": "string",
"event_id_path": "string",
"event_type_header": "string",
"event_type_path": "string",
"header": "string",
"idempotency_header": "string",
"job_ids": [
{}
],
"kinds": [
{}
],
"prefix": "string",
"scheme": "string",
"scope": {},
"scope_id": "string",
"signature_header": "string",
"signature_prefix": "string",
"timestamp_header": "string",
"tolerance_seconds": 0,
"workspace_id": "string",
"workspace_path": "string"
},
"sticky_paused": false,
"target": "string",
"timezone": "string",
"version": "string"
}
]
}
EmitterMetrics
| Field | Type | Required |
|---|
dlq_depth | integer (int64) | yes |
enabled_emitters | integer (int64) | yes |
events_24h | object of integer (int64) | yes |
memory_dispatch_failures | integer (int64) | yes |
orphaned_emitters | integer (int64) | yes |
total_emitters | integer (int64) | yes |
Used by: emitterMetrics
{
"dlq_depth": 0,
"enabled_emitters": 0,
"events_24h": {
"key": 0
},
"memory_dispatch_failures": 0,
"orphaned_emitters": 0,
"total_emitters": 0
}
EmitterReplay
| Field | Type | Required |
|---|
event_id | string | yes |
Used by: replayEmitterEvent
{
"event_id": "string"
}
EmitterSourceConfig
| Field | Type | Required |
|---|
actions | array of MemoryChangeAction or null | no |
auth_mode | string or null | no |
basic_username | string or null | no |
event_id_path | string or null | no |
event_type_header | string or null | no |
event_type_path | string or null | no |
header | string or null | no |
idempotency_header | string or null | no |
job_ids | array of any JSON or null | no |
kinds | array of MemoryKind or null | no |
prefix | string or null | no |
scheme | string or null | no |
scope | null or MemoryScope | no |
scope_id | string or null | no |
signature_header | string or null | no |
signature_prefix | string or null | no |
timestamp_header | string or null | no |
tolerance_seconds | integer (int64) or null | no |
workspace_id | string or null | no |
workspace_path | string or null | no |
{
"actions": [
"set"
],
"auth_mode": "string",
"basic_username": "string",
"event_id_path": "string",
"event_type_header": "string",
"event_type_path": "string",
"header": "string",
"idempotency_header": "string",
"job_ids": [
{}
],
"kinds": [
"value"
],
"prefix": "string",
"scheme": "string",
"scope": "session",
"scope_id": "string",
"signature_header": "string",
"signature_prefix": "string",
"timestamp_header": "string",
"tolerance_seconds": 0,
"workspace_id": "string",
"workspace_path": "string"
}
EmitterSync
Used by: syncEmitters
{
"bindings": [
{
"capability": "string",
"code_origin": "string",
"cron_expression": "string",
"event_types": [
"string"
],
"input": {},
"interval_seconds": 0,
"secret_env": "string",
"source": "string",
"source_config": {
"actions": [
{}
],
"auth_mode": "string",
"basic_username": "string",
"event_id_path": "string",
"event_type_header": "string",
"event_type_path": "string",
"header": "string",
"idempotency_header": "string",
"job_ids": [
{}
],
"kinds": [
{}
],
"prefix": "string",
"scheme": "string",
"scope": {},
"scope_id": "string",
"signature_header": "string",
"signature_prefix": "string",
"timestamp_header": "string",
"tolerance_seconds": 0,
"workspace_id": "string",
"workspace_path": "string"
},
"timezone": "string"
}
]
}
EmitterUpdate
| Field | Type | Required |
|---|
enabled | boolean or null | no |
expected_revision | integer (int64) | yes |
managed_by | string or null | no |
Used by: updateEmitter
{
"enabled": false,
"expected_revision": 0,
"managed_by": "string"
}
EnrollWorker
| Field | Type | Required |
|---|
capacity | integer (int32) or null | no |
label | string | yes |
version | string | yes |
Used by: enrollWorker
{
"capacity": 0,
"label": "string",
"version": "string"
}
ErrorResponse
| Field | Type | Required |
|---|
error | ApiError | yes |
request_id | string | yes |
Used by: admitAccess, agentCapabilities, appendLogs, applyRuntimeSettings, bindSession, budgetStatus, budgetUsage, cancelEvalRun, cancelTraverser, claimTask, completeTask, createAccessPolicy, createApiToken, createBudget, createEmitter, createEvalCase, createEvalCaseSet, createIdentity, createSession, decideApproval, decideTags, deleteAccessPolicy, deleteArtifact, deleteBriefArtifact, deleteBudget, deleteEmitter, deleteEvalCase, deleteEvalCaseSet, deleteKnowledgeDocument, deleteMemory, deleteMemoryVector, deleteObservabilityWebhook, deletePublication, deleteRuntimeSettings, deleteSession, deleteSessionSecrets, discoverySettings, drainWorker, emitterEvents, emitterMetrics, enrolDid, enrollWorker, evalScores, evaluateAccess, fireEmitter, getAccessPolicy, getApproval, getArtifact, getBriefArtifact, getBudget, getCheckpoint, getConnector, getCredential, getDid, getEmitter, getEvalCaseSet, getEvalRun, getEventLog, getKnowledgeDocument, getMemoryVector, getObservabilitySettings, getObservabilityWebhook, getOwnConnector, getPath, getRunMetadata, getRuntimeSettings, getSession, getSessionSecrets, getTagPolicy, getTraverser, health, issueCredential, knowledgeStats, listAccessPolicies, listAgents, listApiTokens, listApprovals, listArtifacts, listBriefArtifacts, listBudgets, listCheckpoints, listConnectors, listCredentials, listDids, listEmitters, listEvalCaseSets, listEvalCases, listEvalRuns, listIdentities, listKnowledgeDocuments, listMemory, listPathProofs, listPublications, listRuntimeSettings, listSessions, listTagLedger, listTraversers, listUsage, listWorkers, memoryChanges, modelHealth, observabilityWebhookStatus, proposeTags, publishDiscovery, putArtifact, putBriefArtifact, putConnector, putKnowledgeBatch, putKnowledgeDocument, putObservabilityWebhook, putRuntimeSettings, putSessionSecrets, putTagPolicy, queryLogs, readMemory, recordRetrievalFeedback, recordUsage, redriveObservabilityWebhook, registerAgent, renewLease, replayEmitterEvent, reportProgress, requestApproval, resolveDid, restartTraverser, resumeTask, retentionApply, retentionPlan, retrievalFeedbackTotals, revokeApiToken, revokeConnector, revokeCredential, revokeIdentity, rotateApiToken, rotateIdentity, searchDiscovery, searchKnowledge, searchMemoryVectors, serverInfo, setMemoryVector, signPath, startEvalRun, stats, streamExecutionEvents, streamNodeLogs, submitTraverser, suspendTask, syncEmitters, testObservabilityWebhook, unregisterAgent, updateAccessPolicy, updateBudget, updateEmitter, updateEvalCase, updateEvalCaseSet, updateObservabilitySettings, updateRunMetadata, usageTotals, verifyCredential, verifyProof, writeCheckpoint, writeMemory
{
"error": {
"code": "string",
"message": "string"
},
"request_id": "string"
}
EvalAssertion
One check over a case's outcome. `value` is the comparison operand: any JSON for
`equals`/`not_equals`/`contains`/`not_contains`; a pattern for `regex`; one of
string, number, boolean, object, array, null for `type`; a JSON Schema for `schema`;
succeeded, failed, cancelled or timed_out for `status`; the `error.code` for
`error_code`; a non-negative number for the bounds. `exists` takes none.
{
"path": "string",
"type": "equals",
"value": {}
}
EvalAssertionResult
| Field | Type | Required |
|---|
actual | any JSON | no |
message | string | yes |
passed | boolean | yes |
path | string or null | no |
type | EvalAssertionType | yes |
{
"actual": {},
"message": "string",
"passed": false,
"path": "string",
"type": "equals"
}
EvalAssertionType
What one assertion checks. Path types read `path` from the traverser output;
`status`, `error_code`, `max_duration_ms`, `max_cost_usd` and `max_tokens` read the
outcome and take no path. `contains` and `regex` stringify non-string values as JSON;
`min_length`/`max_length` apply to strings (characters) and arrays (items).
String enum: "equals" "not_equals" "contains" "not_contains" "regex" "exists" "type" "schema" "status" "error_code" "max_duration_ms" "max_cost_usd" "max_tokens" "min_length" "max_length"
"equals"
EvalCase
| Field | Type | Required |
|---|
assertions | array of EvalAssertion | yes |
case_set_id | string | yes |
created_at | integer (int64) | yes |
id | string | yes |
input | any JSON | yes |
name | string | yes |
revision | integer (int64) | yes |
tags | array of string | yes |
updated_at | integer (int64) | yes |
Used by: createEvalCase, updateEvalCase
{
"assertions": [
{
"path": "string",
"type": "equals",
"value": {}
}
],
"case_set_id": "string",
"created_at": 0,
"id": "string",
"input": {},
"name": "string",
"revision": 0,
"tags": [
"string"
],
"updated_at": 0
}
EvalCaseList
| Field | Type | Required |
|---|
items | array of EvalCase | yes |
next_cursor | string or null | no |
Used by: listEvalCases
{
"items": [
{
"assertions": [
{
"path": "string",
"type": {},
"value": {}
}
],
"case_set_id": "string",
"created_at": 0,
"id": "string",
"input": {},
"name": "string",
"revision": 0,
"tags": [
"string"
],
"updated_at": 0
}
],
"next_cursor": "string"
}
EvalCaseSet
| Field | Type | Required |
|---|
case_count | integer (int64) | yes |
created_at | integer (int64) | yes |
description | string | yes |
id | string | yes |
last_run | null or EvalRun | no |
name | string | yes |
principal | string | yes |
revision | integer (int64) | yes |
target | string | yes |
updated_at | integer (int64) | yes |
version | string | yes |
Used by: createEvalCaseSet, getEvalCaseSet, updateEvalCaseSet
{
"case_count": 0,
"created_at": 0,
"description": "string",
"id": "string",
"last_run": {
"case_set_id": "string",
"cost_complete": false,
"cost_usd": 0.0,
"created_at": 0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"finished_at": 0,
"id": "string",
"label": "string",
"pass_rate": 0.0,
"passed": 0,
"pending": 0,
"revision": 0,
"skipped": 0,
"started_at": 0,
"status": "string",
"target": "string",
"total": 0,
"total_tokens": 0,
"version": "string"
},
"name": "string",
"principal": "string",
"revision": 0,
"target": "string",
"updated_at": 0,
"version": "string"
}
EvalCaseSetCreate
| Field | Type | Required |
|---|
cases | array of EvalCaseInput or null | no |
description | string or null | no |
name | string | yes |
target | string | yes |
version | string or null | no |
Used by: createEvalCaseSet
{
"cases": [
{
"assertions": [
{
"path": "string",
"type": {},
"value": {}
}
],
"input": {},
"name": "string",
"tags": [
"string"
]
}
],
"description": "string",
"name": "string",
"target": "string",
"version": "string"
}
EvalCaseSetList
| Field | Type | Required |
|---|
items | array of EvalCaseSet | yes |
next_cursor | string or null | no |
Used by: listEvalCaseSets
{
"items": [
{
"case_count": 0,
"created_at": 0,
"description": "string",
"id": "string",
"last_run": {
"case_set_id": "string",
"cost_complete": false,
"cost_usd": 0.0,
"created_at": 0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"finished_at": 0,
"id": "string",
"label": "string",
"pass_rate": 0.0,
"passed": 0,
"pending": 0,
"revision": 0,
"skipped": 0,
"started_at": 0,
"status": "string",
"target": "string",
"total": 0,
"total_tokens": 0,
"version": "string"
},
"name": "string",
"principal": "string",
"revision": 0,
"target": "string",
"updated_at": 0,
"version": "string"
}
],
"next_cursor": "string"
}
EvalCaseSetUpdate
Compare-and-set edit of a case set; unknown fields are rejected.
| Field | Type | Required |
|---|
description | string or null | no |
expected_revision | integer (int64) | yes |
name | string or null | no |
target | string or null | no |
version | string or null | no |
Used by: updateEvalCaseSet
{
"description": "string",
"expected_revision": 0,
"name": "string",
"target": "string",
"version": "string"
}
EvalCaseUpdate
Compare-and-set edit of a case; unknown fields are rejected.
| Field | Type | Required |
|---|
assertions | array of EvalAssertion or null | no |
expected_revision | integer (int64) | yes |
input | any JSON | no |
name | string or null | no |
tags | array of string or null | no |
Used by: updateEvalCase
{
"assertions": [
{
"path": "string",
"type": "equals",
"value": {}
}
],
"expected_revision": 0,
"input": {},
"name": "string",
"tags": [
"string"
]
}
EvalResult
One case's verdict in a run. `status` is pending, passed, failed, errored or
skipped (patterned string, see `EvalRun.status`): `skipped` when the traverser was
cancelled, `errored` when it failed or timed out without a `status`/`error_code`
assertion expecting that, otherwise passed/failed by the assertions.
| Field | Type | Required |
|---|
assertions | array of EvalAssertionResult | yes |
case_id | string | yes |
case_name | string | yes |
cost_usd | number or null | no |
duration_ms | integer (int64) or null | no |
error | any JSON | no |
finished_at | integer (int64) or null | no |
output | any JSON | no |
run_id | string | yes |
status | string | yes |
total_tokens | integer (int64) or null | no |
traverser_id | string or null | no |
{
"assertions": [
{
"actual": {},
"message": "string",
"passed": false,
"path": "string",
"type": "equals"
}
],
"case_id": "string",
"case_name": "string",
"cost_usd": 0.0,
"duration_ms": 0,
"error": {},
"finished_at": 0,
"output": {},
"run_id": "string",
"status": "string",
"total_tokens": 0,
"traverser_id": "string"
}
EvalRun
One execution of a case set. `status` is running, succeeded, failed or cancelled
(a patterned string: these values already belong to `Status`, and the Go generator
shares one constant namespace across every enum). Counters are maintained by
settlement; `pass_rate` is passed over settled verdicts and null until one settles.
| Field | Type | Required |
|---|
case_set_id | string | yes |
cost_complete | boolean | yes |
cost_usd | number or null | no |
created_at | integer (int64) | yes |
duration_ms_p50 | integer (int64) or null | no |
errored | integer (int64) | yes |
failed | integer (int64) | yes |
finished_at | integer (int64) or null | no |
id | string | yes |
label | string | yes |
pass_rate | number or null | no |
passed | integer (int64) | yes |
pending | integer (int64) | yes |
revision | integer (int64) | yes |
skipped | integer (int64) | yes |
started_at | integer (int64) | yes |
status | string | yes |
target | string | yes |
total | integer (int64) | yes |
total_tokens | integer (int64) | yes |
version | string | yes |
Used by: cancelEvalRun, startEvalRun
{
"case_set_id": "string",
"cost_complete": false,
"cost_usd": 0.0,
"created_at": 0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"finished_at": 0,
"id": "string",
"label": "string",
"pass_rate": 0.0,
"passed": 0,
"pending": 0,
"revision": 0,
"skipped": 0,
"started_at": 0,
"status": "string",
"target": "string",
"total": 0,
"total_tokens": 0,
"version": "string"
}
EvalRunDetail
Used by: getEvalRun
{
"results": [
{
"assertions": [
{
"actual": {},
"message": "string",
"passed": false,
"path": "string",
"type": {}
}
],
"case_id": "string",
"case_name": "string",
"cost_usd": 0.0,
"duration_ms": 0,
"error": {},
"finished_at": 0,
"output": {},
"run_id": "string",
"status": "string",
"total_tokens": 0,
"traverser_id": "string"
}
],
"run": {
"case_set_id": "string",
"cost_complete": false,
"cost_usd": 0.0,
"created_at": 0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"finished_at": 0,
"id": "string",
"label": "string",
"pass_rate": 0.0,
"passed": 0,
"pending": 0,
"revision": 0,
"skipped": 0,
"started_at": 0,
"status": "string",
"target": "string",
"total": 0,
"total_tokens": 0,
"version": "string"
}
}
EvalRunList
| Field | Type | Required |
|---|
items | array of EvalRun | yes |
next_cursor | string or null | no |
Used by: listEvalRuns
{
"items": [
{
"case_set_id": "string",
"cost_complete": false,
"cost_usd": 0.0,
"created_at": 0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"finished_at": 0,
"id": "string",
"label": "string",
"pass_rate": 0.0,
"passed": 0,
"pending": 0,
"revision": 0,
"skipped": 0,
"started_at": 0,
"status": "string",
"target": "string",
"total": 0,
"total_tokens": 0,
"version": "string"
}
],
"next_cursor": "string"
}
EvalRunRequest
| Field | Type | Required |
|---|
case_ids | array of string or null | no |
label | string or null | no |
version | string or null | no |
Used by: startEvalRun
{
"case_ids": [
"string"
],
"label": "string",
"version": "string"
}
EvalScore
Finished runs of one set aggregated per version.
| Field | Type | Required |
|---|
cases | integer (int64) | yes |
cost_complete | boolean | yes |
cost_usd | number or null | no |
duration_ms_p50 | integer (int64) or null | no |
errored | integer (int64) | yes |
failed | integer (int64) | yes |
last_finished_at | integer (int64) or null | no |
last_run_id | string | yes |
pass_rate | number or null | no |
passed | integer (int64) | yes |
runs | integer (int64) | yes |
skipped | integer (int64) | yes |
total_tokens | integer (int64) | yes |
version | string | yes |
{
"cases": 0,
"cost_complete": false,
"cost_usd": 0.0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"last_finished_at": 0,
"last_run_id": "string",
"pass_rate": 0.0,
"passed": 0,
"runs": 0,
"skipped": 0,
"total_tokens": 0,
"version": "string"
}
EvalScores
| Field | Type | Required |
|---|
case_set_id | string | yes |
items | array of EvalScore | yes |
Used by: evalScores
{
"case_set_id": "string",
"items": [
{
"cases": 0,
"cost_complete": false,
"cost_usd": 0.0,
"duration_ms_p50": 0,
"errored": 0,
"failed": 0,
"last_finished_at": 0,
"last_run_id": "string",
"pass_rate": 0.0,
"passed": 0,
"runs": 0,
"skipped": 0,
"total_tokens": 0,
"version": "string"
}
]
}
EventLog
| Field | Type | Required |
|---|
id | string | yes |
items | array of ExecutionEvent | yes |
root_id | string | yes |
Used by: getEventLog
{
"id": "string",
"items": [
{
"created_at": 0,
"data": {},
"root_id": "string",
"sequence": 0,
"traverser_id": "string",
"type": "string"
}
],
"root_id": "string"
}
ExecutionError
| Field | Type | Required |
|---|
code | string | yes |
message | string | yes |
retryable | boolean or null | no |
{
"code": "string",
"message": "string",
"retryable": false
}
ExecutionEvent
| Field | Type | Required |
|---|
created_at | integer (int64) | yes |
data | any JSON | yes |
root_id | string | yes |
sequence | integer (int64) | yes |
traverser_id | string | yes |
type | string | yes |
{
"created_at": 0,
"data": {},
"root_id": "string",
"sequence": 0,
"traverser_id": "string",
"type": "string"
}
ExecutionPath
| Field | Type | Required |
|---|
id | string | yes |
items | array of Traverser | yes |
root_id | string | yes |
steps_returned | integer (int64) or null | no |
steps_total | integer (int64) or null | no |
truncated | boolean or null | no |
Used by: getPath
{
"id": "string",
"items": [
{
"attempt": 0,
"attempts": [
{
"attempt": 0,
"error": {},
"finished_at": 0,
"lease_expires_at": 0,
"started_at": 0,
"status": "string",
"worker_id": "string"
}
],
"cancel_requested": false,
"capability": "string",
"created_at": 0,
"deadline_at": 0,
"error": {},
"finished_at": 0,
"id": "string",
"idempotency_key": "string",
"input": {},
"input_bytes": 0,
"input_truncated": false,
"kind": "string",
"label": "string",
"max_attempts": 0,
"operation_key": "string",
"output": {},
"output_bytes": 0,
"parent_id": "string",
"parent_step_id": "string",
"principal": "string",
"replay": {
"reuse": "string",
"reused_output": false,
"source_id": "string"
},
"root_id": "string",
"seq": 0,
"session_id": "string",
"started_at": 0,
"status": "queued",
"step_id": "string",
"submitted_by": "string",
"target": "string",
"timeout_seconds": 0,
"updated_at": 0,
"version": "string"
}
],
"root_id": "string",
"steps_returned": 0,
"steps_total": 0,
"truncated": false
}
Health
| Field | Type | Required |
|---|
product | string | yes |
status | string | yes |
Used by: health
{
"product": "string",
"status": "string"
}
IdentityCreate
| Field | Type | Required |
|---|
label | string | yes |
Used by: createIdentity
{
"label": "string"
}
IdentityList
Used by: listIdentities
{
"items": [
{
"algorithm": "string",
"created_at": 0,
"id": "string",
"label": "string",
"public_key": "string",
"retired_at": 0,
"revoked_at": 0,
"state": "string"
}
]
}
InboundDelivery
| Field | Type | Required |
|---|
delivery_key | string | yes |
event_type | string or null | no |
input | any JSON | no |
raw_payload | any JSON | no |
{
"delivery_key": "string",
"event_type": "string",
"input": {},
"raw_payload": {}
}
InboundEvent
| Field | Type | Required |
|---|
created_at | integer (int64) | yes |
delivery_key | string | yes |
emitter_id | string | yes |
error | any JSON | no |
event_type | string | yes |
id | string | yes |
input | any JSON | yes |
raw_payload | any JSON | yes |
replay_of | string or null | no |
status | string | yes |
traverser_id | string or null | no |
Used by: replayEmitterEvent
{
"created_at": 0,
"delivery_key": "string",
"emitter_id": "string",
"error": {},
"event_type": "string",
"id": "string",
"input": {},
"raw_payload": {},
"replay_of": "string",
"status": "string",
"traverser_id": "string"
}
InboundEventList
Used by: emitterEvents
{
"items": [
{
"created_at": 0,
"delivery_key": "string",
"emitter_id": "string",
"error": {},
"event_type": "string",
"id": "string",
"input": {},
"raw_payload": {},
"replay_of": "string",
"status": "string",
"traverser_id": "string"
}
]
}
Jwk
Ed25519 public key as a JSON Web Key.
| Field | Type | Required |
|---|
crv | string | yes |
kty | string | yes |
x | string | yes |
{
"crv": "string",
"kty": "string",
"x": "string"
}
KnowledgeBatchResult
| Field | Type | Required |
|---|
chunks | integer (int64) | yes |
documents | integer (int64) | yes |
items | array of KnowledgeWriteResult | yes |
Used by: putKnowledgeBatch
{
"chunks": 0,
"documents": 0,
"items": [
{
"chunks": 0,
"created": false,
"doc_id": "string",
"postings": 0,
"revision": 0,
"terms": 0,
"tokens": 0
}
]
}
KnowledgeChunk
| Field | Type | Required |
|---|
citation | string | yes |
metadata | object of any JSON | yes |
ordinal | integer (int64) | yes |
page | integer (int64) or null | no |
text | string | yes |
tokens | integer (int64) | yes |
{
"citation": "string",
"metadata": {
"key": {}
},
"ordinal": 0,
"page": 0,
"text": "string",
"tokens": 0
}
KnowledgeChunkBounds
| Field | Type | Required |
|---|
default | integer (int64) | yes |
max | integer (int64) | yes |
min | integer (int64) | yes |
{
"default": 0,
"max": 0,
"min": 0
}
KnowledgeChunking
Server-side chunking of `text`; defaults 1200 characters with 100 overlap.
| Field | Type | Required |
|---|
overlap | integer (int64) or null | no |
size | integer (int64) or null | no |
{
"overlap": 0,
"size": 0
}
KnowledgeDelete
| Field | Type | Required |
|---|
actor_id | string or null | no |
doc_id | string | yes |
expected_revision | integer (int64) or null | no |
lease_token | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: deleteKnowledgeDocument
{
"actor_id": "string",
"doc_id": "string",
"expected_revision": 0,
"lease_token": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
KnowledgeDeleted
`deleted:false` (no live document) carries no `revision`; a tombstone keeps
the revision monotonic.
| Field | Type | Required |
|---|
deleted | boolean | yes |
doc_id | string | yes |
revision | integer (int64) or null | no |
Used by: deleteKnowledgeDocument
{
"deleted": false,
"doc_id": "string",
"revision": 0
}
KnowledgeDocument
`found:false` carries only `doc_id`. `items` is present only when
`include_chunks` is true.
| Field | Type | Required |
|---|
chunks | integer (int64) or null | no |
created_at | integer (int64) or null | no |
doc_id | string | yes |
found | boolean | yes |
items | array of KnowledgeChunk or null | no |
metadata | object of any JSON or null | no |
principal | string or null | no |
revision | integer (int64) or null | no |
text_bytes | integer (int64) or null | no |
title | string or null | no |
tokens | integer (int64) or null | no |
updated_at | integer (int64) or null | no |
Used by: getKnowledgeDocument
{
"chunks": 0,
"created_at": 0,
"doc_id": "string",
"found": false,
"items": [
{
"citation": "string",
"metadata": {
"key": {}
},
"ordinal": 0,
"page": 0,
"text": "string",
"tokens": 0
}
],
"metadata": {
"key": {}
},
"principal": "string",
"revision": 0,
"text_bytes": 0,
"title": "string",
"tokens": 0,
"updated_at": 0
}
KnowledgeDocumentSummary
| Field | Type | Required |
|---|
chunks | integer (int64) | yes |
doc_id | string | yes |
metadata | object of any JSON | yes |
revision | integer (int64) | yes |
text_bytes | integer (int64) | yes |
title | string | yes |
tokens | integer (int64) | yes |
updated_at | integer (int64) | yes |
{
"chunks": 0,
"doc_id": "string",
"metadata": {
"key": {}
},
"revision": 0,
"text_bytes": 0,
"title": "string",
"tokens": 0,
"updated_at": 0
}
KnowledgeGet
| Field | Type | Required |
|---|
actor_id | string or null | no |
doc_id | string | yes |
include_chunks | boolean or null | no |
lease_token | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: getKnowledgeDocument
{
"actor_id": "string",
"doc_id": "string",
"include_chunks": false,
"lease_token": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
KnowledgeHit
| Field | Type | Required |
|---|
chunk_metadata | object of any JSON | yes |
citation | string | yes |
doc_id | string | yes |
matched_terms | array of string | yes |
metadata | object of any JSON | yes |
ordinal | integer (int64) | yes |
page | integer (int64) or null | no |
score | number | yes |
text | string | yes |
title | string | yes |
tokens | integer (int64) | yes |
{
"chunk_metadata": {
"key": {}
},
"citation": "string",
"doc_id": "string",
"matched_terms": [
"string"
],
"metadata": {
"key": {}
},
"ordinal": 0,
"page": 0,
"score": 0.0,
"text": "string",
"title": "string",
"tokens": 0
}
KnowledgeHits
| Field | Type | Required |
|---|
corpus_chunks | integer (int64) | yes |
items | array of KnowledgeHit | yes |
next_offset | integer (int64) or null | no |
offset | integer (int64) | yes |
scanned | integer (int64) | yes |
strategy | KnowledgeStrategy | yes |
terms | array of string | yes |
top_k | integer (int64) | yes |
total | integer (int64) | yes |
Used by: searchKnowledge
{
"corpus_chunks": 0,
"items": [
{
"chunk_metadata": {
"key": {}
},
"citation": "string",
"doc_id": "string",
"matched_terms": [
"string"
],
"metadata": {
"key": {}
},
"ordinal": 0,
"page": 0,
"score": 0.0,
"text": "string",
"title": "string",
"tokens": 0
}
],
"next_offset": 0,
"offset": 0,
"scanned": 0,
"strategy": "bm25",
"terms": [
"string"
],
"top_k": 0,
"total": 0
}
KnowledgeLimits
Bounds the store enforces, reported so clients can validate before sending.
| Field | Type | Required |
|---|
chunk_bytes | integer (int64) | yes |
chunk_chars | KnowledgeChunkBounds | yes |
chunk_overlap_default | integer (int64) | yes |
chunks_per_document | integer (int64) | yes |
chunks_per_scope | integer (int64) | yes |
doc_id_chars | integer (int64) | yes |
documents_per_batch | integer (int64) | yes |
documents_per_scope | integer (int64) | yes |
list_limit | integer (int64) | yes |
metadata_bytes | integer (int64) | yes |
offset | integer (int64) | yes |
query_chars | integer (int64) | yes |
query_terms | integer (int64) | yes |
term_chars | integer (int64) | yes |
text_bytes | integer (int64) | yes |
title_chars | integer (int64) | yes |
top_k | integer (int64) | yes |
{
"chunk_bytes": 0,
"chunk_chars": {
"default": 0,
"max": 0,
"min": 0
},
"chunk_overlap_default": 0,
"chunks_per_document": 0,
"chunks_per_scope": 0,
"doc_id_chars": 0,
"documents_per_batch": 0,
"documents_per_scope": 0,
"list_limit": 0,
"metadata_bytes": 0,
"offset": 0,
"query_chars": 0,
"query_terms": 0,
"term_chars": 0,
"text_bytes": 0,
"title_chars": 0,
"top_k": 0
}
KnowledgeListQuery
| Field | Type | Required |
|---|
actor_id | string or null | no |
cursor | string or null | no |
lease_token | string or null | no |
limit | integer (int64) or null | no |
prefix | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: listKnowledgeDocuments
{
"actor_id": "string",
"cursor": "string",
"lease_token": "string",
"limit": 0,
"prefix": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
KnowledgeListing
Used by: listKnowledgeDocuments
{
"items": [
{
"chunks": 0,
"doc_id": "string",
"metadata": {
"key": {}
},
"revision": 0,
"text_bytes": 0,
"title": "string",
"tokens": 0,
"updated_at": 0
}
],
"next_cursor": "string"
}
KnowledgePut
Write or replace one document: authority fields plus the document fields.
| Field | Type | Required |
|---|
actor_id | string or null | no |
chunk | null or KnowledgeChunking | no |
chunks | array of KnowledgeChunkInput or null | no |
doc_id | string | yes |
expected_revision | integer (int64) or null | no |
lease_token | string or null | no |
metadata | object of any JSON or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
text | string or null | no |
title | string or null | no |
Used by: putKnowledgeDocument
{
"actor_id": "string",
"chunk": {
"overlap": 0,
"size": 0
},
"chunks": [
{
"metadata": {
"key": {}
},
"page": 0,
"text": "string"
}
],
"doc_id": "string",
"expected_revision": 0,
"lease_token": "string",
"metadata": {
"key": {}
},
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string",
"text": "string",
"title": "string"
}
KnowledgePutBatch
One transaction: any failure writes nothing. Duplicate `doc_id`s are rejected
and the combined text is bounded to 4 MiB.
| Field | Type | Required |
|---|
actor_id | string or null | no |
documents | array of KnowledgePutDocument | yes |
lease_token | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: putKnowledgeBatch
{
"actor_id": "string",
"documents": [
{
"chunk": {
"overlap": 0,
"size": 0
},
"chunks": [
{
"metadata": {
"key": {}
},
"page": 0,
"text": "string"
}
],
"doc_id": "string",
"expected_revision": 0,
"metadata": {
"key": {}
},
"text": "string",
"title": "string"
}
],
"lease_token": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
KnowledgePutDocument
One document in a batch: exactly one of `text` (with optional `chunk`) or `chunks`.
| Field | Type | Required |
|---|
chunk | null or KnowledgeChunking | no |
chunks | array of KnowledgeChunkInput or null | no |
doc_id | string | yes |
expected_revision | integer (int64) or null | no |
metadata | object of any JSON or null | no |
text | string or null | no |
title | string or null | no |
{
"chunk": {
"overlap": 0,
"size": 0
},
"chunks": [
{
"metadata": {
"key": {}
},
"page": 0,
"text": "string"
}
],
"doc_id": "string",
"expected_revision": 0,
"metadata": {
"key": {}
},
"text": "string",
"title": "string"
}
KnowledgeScope
Memory authority fields shared by every knowledge request; `scope` resolves
ownership exactly like `memory/read`.
| Field | Type | Required |
|---|
actor_id | string or null | no |
lease_token | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: knowledgeStats
{
"actor_id": "string",
"lease_token": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
KnowledgeSearch
| Field | Type | Required |
|---|
actor_id | string or null | no |
doc_id | string or null | no |
filters | object of any JSON or null | no |
lease_token | string or null | no |
min_score | number or null | no |
offset | integer (int64) or null | no |
query | string | yes |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
top_k | integer (int64) or null | no |
Used by: searchKnowledge
{
"actor_id": "string",
"doc_id": "string",
"filters": {
"key": {}
},
"lease_token": "string",
"min_score": 0.0,
"offset": 0,
"query": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string",
"top_k": 0
}
KnowledgeStats
| Field | Type | Required |
|---|
average_chunk_tokens | number | yes |
chunks | integer (int64) | yes |
documents | integer (int64) | yes |
limits | KnowledgeLimits | yes |
postings | integer (int64) | yes |
scope | MemoryScope | yes |
strategy | KnowledgeStrategy | yes |
terms | integer (int64) | yes |
text_bytes | integer (int64) | yes |
tokens | integer (int64) | yes |
Used by: knowledgeStats
{
"average_chunk_tokens": 0.0,
"chunks": 0,
"documents": 0,
"limits": {
"chunk_bytes": 0,
"chunk_chars": {
"default": 0,
"max": 0,
"min": 0
},
"chunk_overlap_default": 0,
"chunks_per_document": 0,
"chunks_per_scope": 0,
"doc_id_chars": 0,
"documents_per_batch": 0,
"documents_per_scope": 0,
"list_limit": 0,
"metadata_bytes": 0,
"offset": 0,
"query_chars": 0,
"query_terms": 0,
"term_chars": 0,
"text_bytes": 0,
"title_chars": 0,
"top_k": 0
},
"postings": 0,
"scope": "session",
"strategy": "bm25",
"terms": 0,
"text_bytes": 0,
"tokens": 0
}
KnowledgeStrategy
Ranking strategy; always `bm25` (k1 = 1.2, b = 0.75). No embedding index exists.
String enum: "bm25"
"bm25"
KnowledgeWriteResult
| Field | Type | Required |
|---|
chunks | integer (int64) | yes |
created | boolean | yes |
doc_id | string | yes |
postings | integer (int64) | yes |
revision | integer (int64) | yes |
terms | integer (int64) | yes |
tokens | integer (int64) | yes |
Used by: putKnowledgeDocument
{
"chunks": 0,
"created": false,
"doc_id": "string",
"postings": 0,
"revision": 0,
"terms": 0,
"tokens": 0
}
Lease
| Field | Type | Required |
|---|
id | string | yes |
lease_token | string | yes |
worker_id | string | yes |
Used by: renewLease, resumeTask, suspendTask
{
"id": "string",
"lease_token": "string",
"worker_id": "string"
}
LeaseRenewal
| Field | Type | Required |
|---|
cancel_requested | boolean | yes |
lease_expires_at | integer (int64) | yes |
Used by: renewLease
{
"cancel_requested": false,
"lease_expires_at": 0
}
LogAppendRequest
| Field | Type | Required |
|---|
entries | array of LogEntry or null | no |
entry | null or LogEntry | no |
lease_token | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
traverser_id | string or null | no |
Used by: appendLogs
{
"entries": [
{
"fields": {
"key": {}
},
"level": "trace",
"logged_at": 0,
"message": "string",
"source": "string",
"stream": "stdout"
}
],
"entry": {
"fields": {
"key": {}
},
"level": "trace",
"logged_at": 0,
"message": "string",
"source": "string",
"stream": "stdout"
},
"lease_token": "string",
"step_id": "string",
"task_id": "string",
"traverser_id": "string"
}
LogEntry
One node log line. `message` is truncated to the namespace's byte bound.
| Field | Type | Required |
|---|
fields | object of any JSON or null | no |
level | null or LogLevel | no |
logged_at | integer (int64) or null | no |
message | string | yes |
source | string or null | no |
stream | null or LogStream | no |
{
"fields": {
"key": {}
},
"level": "trace",
"logged_at": 0,
"message": "string",
"source": "string",
"stream": "stdout"
}
LogLevel
String enum: "trace" "debug" "info" "warn" "error" "fatal" "log"
"trace"
LogPage
| Field | Type | Required |
|---|
items | array of LogRecord | yes |
next_cursor | integer (int64) | yes |
root_id | string | yes |
traverser_id | string | yes |
Used by: queryLogs
{
"items": [
{
"attempt": 0,
"created_at": 0,
"fields": {
"key": {}
},
"level": "trace",
"logged_at": 0,
"message": "string",
"root_id": "string",
"sequence": 0,
"source": "string",
"stream": "stdout",
"traverser_id": "string",
"truncated": false
}
],
"next_cursor": 0,
"root_id": "string",
"traverser_id": "string"
}
LogReceipt
| Field | Type | Required |
|---|
accepted | integer (int64) | yes |
attempt | integer (int64) | yes |
first_sequence | integer (int64) | yes |
last_sequence | integer (int64) | yes |
max_message_bytes | integer (int64) | yes |
root_id | string | yes |
traverser_id | string | yes |
truncated | integer (int64) | yes |
Used by: appendLogs
{
"accepted": 0,
"attempt": 0,
"first_sequence": 0,
"last_sequence": 0,
"max_message_bytes": 0,
"root_id": "string",
"traverser_id": "string",
"truncated": 0
}
LogRecord
| Field | Type | Required |
|---|
attempt | integer (int64) | yes |
created_at | integer (int64) | yes |
fields | object of any JSON | yes |
level | LogLevel | yes |
logged_at | integer (int64) | yes |
message | string | yes |
root_id | string | yes |
sequence | integer (int64) | yes |
source | string | yes |
stream | LogStream | yes |
traverser_id | string | yes |
truncated | boolean | yes |
{
"attempt": 0,
"created_at": 0,
"fields": {
"key": {}
},
"level": "trace",
"logged_at": 0,
"message": "string",
"root_id": "string",
"sequence": 0,
"source": "string",
"stream": "stdout",
"traverser_id": "string",
"truncated": false
}
LogStream
String enum: "stdout" "stderr" "app"
"stdout"
MemoryChangeAction
Whether a change event records a write or a tombstone.
String enum: "set" "delete"
"set"
MemoryChangeEvent
One durable change. `value` carries the written JSON only for value sets whose
canonical JSON is at most 65536 bytes; larger payloads set `value_omitted`.
| Field | Type | Required |
|---|
action | MemoryChangeAction | yes |
created_at | integer (int64) | yes |
key | string | yes |
kind | MemoryKind | yes |
principal | string | yes |
revision | integer (int64) | yes |
scope | MemoryScope | yes |
scope_id | string | yes |
sequence | integer (int64) | yes |
value | any JSON | no |
value_omitted | boolean or null | no |
{
"action": "set",
"created_at": 0,
"key": "string",
"kind": "value",
"principal": "string",
"revision": 0,
"scope": "session",
"scope_id": "string",
"sequence": 0,
"value": {},
"value_omitted": false
}
MemoryChangeFeed
| Field | Type | Required |
|---|
items | array of MemoryChangeEvent | yes |
next_cursor | integer (int64) | yes |
oldest_sequence | integer (int64) or null | no |
Used by: memoryChanges
{
"items": [
{
"action": "set",
"created_at": 0,
"key": "string",
"kind": "value",
"principal": "string",
"revision": 0,
"scope": "session",
"scope_id": "string",
"sequence": 0,
"value": {},
"value_omitted": false
}
],
"next_cursor": 0,
"oldest_sequence": 0
}
MemoryChangeQuery
| Field | Type | Required |
|---|
actor_id | string or null | no |
after | integer (int64) or null | no |
lease_token | string or null | no |
limit | integer (int64) or null | no |
prefix | string or null | no |
root_id | string or null | no |
scope | null or MemoryScope | no |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: memoryChanges
{
"actor_id": "string",
"after": 0,
"lease_token": "string",
"limit": 0,
"prefix": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
MemoryDelete
| Field | Type | Required |
|---|
actor_id | string or null | no |
expected_revision | integer (int64) or null | no |
key | string | yes |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
Used by: deleteMemory
{
"actor_id": "string",
"expected_revision": 0,
"key": "string",
"root_id": "string",
"scope": "session",
"session_id": "string"
}
MemoryEntry
One live entry. `expires_at` is present for value entries (null when the
entry has no TTL); `dimension` is present for vector entries.
| Field | Type | Required |
|---|
dimension | integer (int64) or null | no |
expires_at | integer (int64) or null | no |
key | string | yes |
revision | integer (int64) | yes |
updated_at | integer (int64) | yes |
{
"dimension": 0,
"expires_at": 0,
"key": "string",
"revision": 0,
"updated_at": 0
}
MemoryKey
| Field | Type | Required |
|---|
actor_id | string or null | no |
key | string | yes |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
Used by: readMemory
{
"actor_id": "string",
"key": "string",
"root_id": "string",
"scope": "session",
"session_id": "string"
}
MemoryKind
What a listed or changed memory entry holds: a JSON value or an embedding.
String enum: "value" "vector"
"value"
MemoryListQuery
| Field | Type | Required |
|---|
actor_id | string or null | no |
cursor | string or null | no |
kind | null or MemoryKind | no |
lease_token | string or null | no |
limit | integer (int64) or null | no |
prefix | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: listMemory
{
"actor_id": "string",
"cursor": "string",
"kind": "value",
"lease_token": "string",
"limit": 0,
"prefix": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
MemoryListing
Used by: listMemory
{
"items": [
{
"dimension": 0,
"expires_at": 0,
"key": "string",
"revision": 0,
"updated_at": 0
}
],
"kind": "value",
"next_cursor": "string"
}
MemoryRevision
| Field | Type | Required |
|---|
expires_at | integer (int64) or null | no |
revision | integer (int64) | yes |
Used by: writeMemory
{
"expires_at": 0,
"revision": 0
}
MemoryScope
String enum: "session" "actor" "global" "workflow"
"session"
MemoryValue
| Field | Type | Required |
|---|
found | boolean | yes |
revision | integer (int64) | yes |
value | any JSON | yes |
Used by: readMemory
{
"found": false,
"revision": 0,
"value": {}
}
MemoryVector
A stored vector. When `found` is false the server returns `embedding` and
`metadata` as null with `dimension` and `revision` 0.
| Field | Type | Required |
|---|
dimension | integer (int64) | yes |
embedding | array of number or null | no |
found | boolean | yes |
key | string | yes |
metadata | object of any JSON or null | no |
revision | integer (int64) | yes |
Used by: getMemoryVector
{
"dimension": 0,
"embedding": [
0.0
],
"found": false,
"key": "string",
"metadata": {
"key": {}
},
"revision": 0
}
MemoryVectorDelete
| Field | Type | Required |
|---|
actor_id | string or null | no |
expected_revision | integer (int64) or null | no |
key | string | yes |
lease_token | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: deleteMemoryVector
{
"actor_id": "string",
"expected_revision": 0,
"key": "string",
"lease_token": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
MemoryVectorKey
| Field | Type | Required |
|---|
actor_id | string or null | no |
key | string | yes |
lease_token | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: getMemoryVector
{
"actor_id": "string",
"key": "string",
"lease_token": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
MemoryVectorMatch
| Field | Type | Required |
|---|
key | string | yes |
metadata | object of any JSON | yes |
revision | integer (int64) | yes |
score | number | yes |
{
"key": "string",
"metadata": {
"key": {}
},
"revision": 0,
"score": 0.0
}
MemoryVectorMatches
Used by: searchMemoryVectors
{
"dimension": 0,
"items": [
{
"key": "string",
"metadata": {
"key": {}
},
"revision": 0,
"score": 0.0
}
],
"scanned": 0,
"strategy": "linear"
}
MemoryVectorRevision
| Field | Type | Required |
|---|
dimension | integer (int64) | yes |
revision | integer (int64) | yes |
Used by: setMemoryVector
{
"dimension": 0,
"revision": 0
}
MemoryVectorSearch
| Field | Type | Required |
|---|
actor_id | string or null | no |
filters | object of any JSON or null | no |
lease_token | string or null | no |
min_score | number or null | no |
query_embedding | array of number | yes |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
top_k | integer (int64) or null | no |
Used by: searchMemoryVectors
{
"actor_id": "string",
"filters": {
"key": {}
},
"lease_token": "string",
"min_score": 0.0,
"query_embedding": [
0.0
],
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string",
"top_k": 0
}
MemoryVectorWrite
| Field | Type | Required |
|---|
actor_id | string or null | no |
embedding | array of number | yes |
expected_revision | integer (int64) or null | no |
key | string | yes |
lease_token | string or null | no |
metadata | object of any JSON or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
Used by: setMemoryVector
{
"actor_id": "string",
"embedding": [
0.0
],
"expected_revision": 0,
"key": "string",
"lease_token": "string",
"metadata": {
"key": {}
},
"root_id": "string",
"scope": "session",
"session_id": "string",
"step_id": "string",
"task_id": "string"
}
MemoryWrite
| Field | Type | Required |
|---|
actor_id | string or null | no |
expected_revision | integer (int64) or null | no |
key | string | yes |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
ttl_seconds | integer (int64) or null | no |
value | any JSON | yes |
Used by: writeMemory
{
"actor_id": "string",
"expected_revision": 0,
"key": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"ttl_seconds": 0,
"value": {}
}
ModelHealth
Model-endpoint health as the process-wide monitor reports it.
`status` is `not_configured` when no monitor is installed. That is
deliberately distinct from healthy: a console that cannot tell "nobody is
watching" from "everything is fine" would show green for an unmonitored
system.
| Field | Type | Required |
|---|
enabled | boolean | yes |
endpoint_count | integer (int64) | yes |
endpoints | array of any JSON | yes |
evaluated_at | integer (int64) or null | no |
next_check_at | integer (int64) or null | no |
policy | any JSON | no |
running | boolean | yes |
status | string | yes |
Used by: modelHealth
{
"enabled": false,
"endpoint_count": 0,
"endpoints": [
{}
],
"evaluated_at": 0,
"next_check_at": 0,
"policy": {},
"running": false,
"status": "string"
}
NodeIdentity
| Field | Type | Required |
|---|
algorithm | string | yes |
created_at | integer (int64) | yes |
id | string | yes |
label | string | yes |
public_key | string | yes |
retired_at | integer (int64) or null | no |
revoked_at | integer (int64) or null | no |
state | string | yes |
Used by: createIdentity, rotateIdentity
{
"algorithm": "string",
"created_at": 0,
"id": "string",
"label": "string",
"public_key": "string",
"retired_at": 0,
"revoked_at": 0,
"state": "string"
}
NodeLogOverrides
The namespace's explicit overrides; null means the process default applies.
| Field | Type | Required |
|---|
enabled | boolean or null | no |
max_message_bytes | integer (int64) or null | no |
{
"enabled": false,
"max_message_bytes": 0
}
NodeLogSettings
| Field | Type | Required |
|---|
configured | NodeLogOverrides | yes |
enabled | boolean | yes |
max_message_bytes | integer (int64) | yes |
{
"configured": {
"enabled": false,
"max_message_bytes": 0
},
"enabled": false,
"max_message_bytes": 0
}
NodeLogSettingsUpdate
| Field | Type | Required |
|---|
enabled | boolean or null | no |
max_message_bytes | integer (int64) or null | no |
{
"enabled": false,
"max_message_bytes": 0
}
ObservabilityEventType
Events the namespace observability webhook can subscribe to.
String enum: "usage.recorded" "node_logs.appended" "run_metadata.updated" "run.completed" "webhook.test"
"usage.recorded"
ObservabilityLimits
| Field | Type | Required |
|---|
node_logs_max_entries_per_call | integer (int64) | yes |
node_logs_max_message_bytes | integer (int64) | yes |
node_logs_retention_days | integer (int64) | yes |
usage_max_entries_per_call | integer (int64) | yes |
webhook_max_attempts | integer (int64) | yes |
{
"node_logs_max_entries_per_call": 0,
"node_logs_max_message_bytes": 0,
"node_logs_retention_days": 0,
"usage_max_entries_per_call": 0,
"webhook_max_attempts": 0
}
ObservabilitySettings
Used by: getObservabilitySettings, updateObservabilitySettings
{
"limits": {
"node_logs_max_entries_per_call": 0,
"node_logs_max_message_bytes": 0,
"node_logs_retention_days": 0,
"usage_max_entries_per_call": 0,
"webhook_max_attempts": 0
},
"namespace": "string",
"node_logs": {
"configured": {
"enabled": false,
"max_message_bytes": 0
},
"enabled": false,
"max_message_bytes": 0
}
}
ObservabilitySettingsUpdate
Used by: updateObservabilitySettings
{
"node_logs": {
"enabled": false,
"max_message_bytes": 0
}
}
ObservabilityWebhook
Webhook configuration. Only `configured` is present when none is set. The
secret itself is never stored or returned: `secret_env` names the daemon
environment variable and `secret_present` reports whether it is set.
| Field | Type | Required |
|---|
configured | boolean | yes |
created_at | integer (int64) or null | no |
enabled | boolean or null | no |
event_types | array of ObservabilityEventType or null | no |
headers | object of string or null | no |
secret_env | string or null | no |
secret_present | boolean or null | no |
updated_at | integer (int64) or null | no |
updated_by | string or null | no |
url | string or null | no |
Used by: getObservabilityWebhook, putObservabilityWebhook
{
"configured": false,
"created_at": 0,
"enabled": false,
"event_types": [
"usage.recorded"
],
"headers": {
"key": "string"
},
"secret_env": "string",
"secret_present": false,
"updated_at": 0,
"updated_by": "string",
"url": "string"
}
ObservabilityWebhookPut
| Field | Type | Required |
|---|
enabled | boolean or null | no |
event_types | array of ObservabilityEventType or null | no |
headers | object of string or null | no |
secret_env | string or null | no |
url | string | yes |
Used by: putObservabilityWebhook
{
"enabled": false,
"event_types": [
"usage.recorded"
],
"headers": {
"key": "string"
},
"secret_env": "string",
"url": "string"
}
ObservabilityWebhookRedrive
| Field | Type | Required |
|---|
limit | integer (int64) or null | no |
Used by: redriveObservabilityWebhook
{
"limit": 0
}
ObservabilityWebhookStatus
| Field | Type | Required |
|---|
configured | boolean | yes |
delivered | integer (int64) | yes |
enabled | boolean | yes |
failed | integer (int64) | yes |
pending | integer (int64) | yes |
recent | array of WebhookDelivery | yes |
secret_present | boolean | yes |
Used by: observabilityWebhookStatus
{
"configured": false,
"delivered": 0,
"enabled": false,
"failed": 0,
"pending": 0,
"recent": [
{
"attempts": 0,
"created_at": 0,
"delivered_at": 0,
"event_type": "usage.recorded",
"id": "string",
"last_error": "string",
"last_status": 0,
"status": "string",
"updated_at": 0
}
],
"secret_present": false
}
ObservabilityWebhookTest
| Field | Type | Required |
|---|
message | string or null | no |
Used by: testObservabilityWebhook
{
"message": "string"
}
PathProof
| Field | Type | Required |
|---|
algorithm | string | yes |
id | string | yes |
key_id | string | yes |
public_key | string | yes |
sha256 | string | yes |
signature | string | yes |
signed | SignedPayload | yes |
Used by: signPath
{
"algorithm": "string",
"id": "string",
"key_id": "string",
"public_key": "string",
"sha256": "string",
"signature": "string",
"signed": {
"format": "string",
"key_id": "string",
"namespace": "string",
"path": {
"id": "string",
"items": [
{
"attempt": {},
"attempts": {},
"cancel_requested": {},
"capability": {},
"created_at": {},
"deadline_at": {},
"error": {},
"finished_at": {},
"id": {},
"idempotency_key": {},
"input": {},
"input_bytes": {},
"input_truncated": {},
"kind": {},
"label": {},
"max_attempts": {},
"operation_key": {},
"output": {},
"output_bytes": {},
"parent_id": {},
"parent_step_id": {},
"principal": {},
"replay": {},
"root_id": {},
"seq": {},
"session_id": {},
"started_at": {},
"status": {},
"step_id": {},
"submitted_by": {},
"target": {},
"timeout_seconds": {},
"updated_at": {},
"version": {}
}
],
"root_id": "string",
"steps_returned": 0,
"steps_total": 0,
"truncated": false
},
"signed_at": 0
}
}
ProgressTask
| Field | Type | Required |
|---|
data | any JSON | yes |
id | string | yes |
lease_token | string | yes |
worker_id | string | yes |
Used by: reportProgress
{
"data": {},
"id": "string",
"lease_token": "string",
"worker_id": "string"
}
ProofList
Used by: listPathProofs
{
"items": [
{
"algorithm": "string",
"id": "string",
"key_id": "string",
"public_key": "string",
"sha256": "string",
"signature": "string",
"signed": {
"format": "string",
"key_id": "string",
"namespace": "string",
"path": {
"id": {},
"items": {},
"root_id": {},
"steps_returned": {},
"steps_total": {},
"truncated": {}
},
"signed_at": 0
}
}
]
}
ProofVerification
| Field | Type | Required |
|---|
algorithm | string | yes |
key_state | string | yes |
trusted | boolean | yes |
valid | boolean | yes |
Used by: verifyProof
{
"algorithm": "string",
"key_state": "string",
"trusted": false,
"valid": false
}
PublishDiscovery
| Field | Type | Required |
|---|
artifact_type | string or null | no |
description | string or null | no |
display_name | string or null | no |
label | string | yes |
published | boolean or null | no |
version | string or null | no |
Used by: publishDiscovery
{
"artifact_type": "string",
"description": "string",
"display_name": "string",
"label": "string",
"published": false,
"version": "string"
}
PutArtifact
Durable byte payload attached to one traverser. `data_base64` is padded
standard base64 of at most 524288 decoded bytes; the server assigns `id`,
`sha256`, `size_bytes` and `created_at`.
| Field | Type | Required |
|---|
content_type | string | yes |
data_base64 | string | yes |
lease_token | string or null | no |
name | string | yes |
task_id | string or null | no |
Used by: putArtifact
{
"content_type": "string",
"data_base64": "string",
"lease_token": "string",
"name": "string",
"task_id": "string"
}
RealtimeBinding
Provider binding of a `realtime` capability. The session-setup shape is the
capability's `input_schema`; the node opens the session itself through the SDK.
| Field | Type | Required |
|---|
model | string or null | no |
provider | string | yes |
transport | string | yes |
{
"model": "string",
"provider": "string",
"transport": "string"
}
RegisterAgent
| Field | Type | Required |
|---|
capabilities | object of Capability | yes |
label | string | yes |
tags | array of string or null | no |
version | string | yes |
Used by: registerAgent
{
"capabilities": {
"key": {
"input_schema": {},
"kind": "traversal",
"output_schema": {},
"realtime": {
"model": "string",
"provider": "string",
"transport": "string"
},
"retry": {
"max_attempts": 0
},
"tags": [
"string"
],
"timeout_seconds": 0
}
},
"label": "string",
"tags": [
"string"
],
"version": "string"
}
ReplayInfo
| Field | Type | Required |
|---|
reuse | string | yes |
reused_output | boolean | yes |
source_id | string | yes |
{
"reuse": "string",
"reused_output": false,
"source_id": "string"
}
ResolvedVerificationMethod
| Field | Type | Required |
|---|
id | string | yes |
public_key | string | yes |
type | string | yes |
{
"id": "string",
"public_key": "string",
"type": "string"
}
RestartTraverser
| Field | Type | Required |
|---|
fork | boolean or null | no |
idempotency_key | string or null | no |
input | any JSON | no |
reason | string or null | no |
reuse | string or null | no |
scope | string or null | no |
session_id | string or null | no |
Used by: restartTraverser
{
"fork": false,
"idempotency_key": "string",
"input": {},
"reason": "string",
"reuse": "string",
"scope": "string",
"session_id": "string"
}
Resumed
| Field | Type | Required |
|---|
resumed | boolean | yes |
Used by: resumeTask
{
"resumed": false
}
RetentionReport
Report of one plan or apply call. In `journal` mode execution rows, usage, run
metadata, credentials, sessions and memory are retained and only the journal
tables listed in `pruned_tables` are deleted; in `sessions` mode only brief
artifacts are deleted and `sessions` lists what was scanned.
| Field | Type | Required |
|---|
after_seq | integer (int64) | yes |
cutoff | integer (int64) | yes |
dry_run | boolean | yes |
eligible | integer (int64) | yes |
evaluated_at | integer (int64) | yes |
exhausted | boolean | yes |
failed | integer (int64) | yes |
limit | integer (int64) | yes |
mode | string | yes |
namespace | string | yes |
next_after_seq | integer (int64) or null | no |
next_cursor | string or null | no |
operation | string | yes |
pruned | integer (int64) | yes |
pruned_tables | array of string | yes |
retained_tables | array of string | yes |
roots | array of RetentionRoot | yes |
rows_deleted | RetentionRowCounts | yes |
rows_planned | RetentionRowCounts | yes |
scanned | integer (int64) | yes |
sessions | array of RetentionSession | yes |
skip_reasons | object of integer (int64) | yes |
skipped | integer (int64) | yes |
Used by: retentionApply, retentionPlan
{
"after_seq": 0,
"cutoff": 0,
"dry_run": false,
"eligible": 0,
"evaluated_at": 0,
"exhausted": false,
"failed": 0,
"limit": 0,
"mode": "string",
"namespace": "string",
"next_after_seq": 0,
"next_cursor": "string",
"operation": "string",
"pruned": 0,
"pruned_tables": [
"string"
],
"retained_tables": [
"string"
],
"roots": [
{
"action": "string",
"descendants": 0,
"error": {
"code": "string",
"message": "string"
},
"finished_at": 0,
"principal": "string",
"reason": "string",
"root_id": "string",
"rows": {
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
},
"seq": 0,
"status": "queued"
}
],
"rows_deleted": {
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
},
"rows_planned": {
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
},
"scanned": 0,
"sessions": [
{
"action": "string",
"artifacts": 0,
"bytes": 0,
"error": {
"code": "string",
"message": "string"
},
"principal": "string",
"reason": "string",
"rows": {
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
},
"session_id": "string",
"updated_at": 0
}
],
"skip_reasons": {
"key": 0
},
"skipped": 0
}
RetentionRequest
Select the next batch of finished root executions whose journal may be pruned.
`cutoff` is epoch milliseconds (the store also accepts a numeric or RFC 3339
string); only trees whose every member finished strictly before it qualify.
| Field | Type | Required |
|---|
after_seq | integer (int64) or null | no |
cursor | string or null | no |
cutoff | integer (int64) | yes |
dry_run | boolean or null | no |
limit | integer (int64) or null | no |
mode | string or null | no |
Used by: retentionApply, retentionPlan
{
"after_seq": 0,
"cursor": "string",
"cutoff": 0,
"dry_run": false,
"limit": 0,
"mode": "string"
}
RetentionRoot
One scanned root. `action` is `prune` (dry run, would be pruned), `skip`,
`pruned` or `failed`; `reason` accompanies `skip`, `rows` accompanies `prune`
and `pruned`, `error` accompanies `failed` (that root was rolled back).
| Field | Type | Required |
|---|
action | string | yes |
descendants | integer (int64) or null | no |
error | null or ApiError | no |
finished_at | integer (int64) | yes |
principal | string | yes |
reason | string or null | no |
root_id | string | yes |
rows | null or RetentionRowCounts | no |
seq | integer (int64) | yes |
status | Status | yes |
{
"action": "string",
"descendants": 0,
"error": {
"code": "string",
"message": "string"
},
"finished_at": 0,
"principal": "string",
"reason": "string",
"root_id": "string",
"rows": {
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
},
"seq": 0,
"status": "queued"
}
RetentionRowCounts
Journal rows per pruned table plus their sum.
| Field | Type | Required |
|---|
approvals | integer (int64) | yes |
attempts | integer (int64) | yes |
brief_artifacts | integer (int64) | yes |
checkpoints | integer (int64) | yes |
events | integer (int64) | yes |
execution_artifacts | integer (int64) | yes |
node_logs | integer (int64) | yes |
signed_paths | integer (int64) | yes |
total | integer (int64) | yes |
{
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
}
RetentionSession
One session scanned in sessions mode. `action` as for `RetentionRoot`; `reason`
is one of session_active, unfinished_traverser, recent_activity, nothing_to_prune,
vanished.
| Field | Type | Required |
|---|
action | string | yes |
artifacts | integer (int64) | yes |
bytes | integer (int64) | yes |
error | null or ApiError | no |
principal | string | yes |
reason | string or null | no |
rows | null or RetentionRowCounts | no |
session_id | string | yes |
updated_at | integer (int64) | yes |
{
"action": "string",
"artifacts": 0,
"bytes": 0,
"error": {
"code": "string",
"message": "string"
},
"principal": "string",
"reason": "string",
"rows": {
"approvals": 0,
"attempts": 0,
"brief_artifacts": 0,
"checkpoints": 0,
"events": 0,
"execution_artifacts": 0,
"node_logs": 0,
"signed_paths": 0,
"total": 0
},
"session_id": "string",
"updated_at": 0
}
RetrievalFeedback
One verdict on one retrieved item. Append-only: an item useful in March and
outdated in June is two true facts, so repeating a verdict records a second
row rather than conflicting with the first.
| Field | Type | Required |
|---|
actor_id | string or null | no |
capability | string or null | no |
item_key | string | yes |
lease_token | string or null | no |
note | string or null | no |
root_id | string or null | no |
scope | MemoryScope | yes |
session_id | string or null | no |
source | string or null | no |
verdict | RetrievalVerdict | yes |
Used by: recordRetrievalFeedback
{
"actor_id": "string",
"capability": "string",
"item_key": "string",
"lease_token": "string",
"note": "string",
"root_id": "string",
"scope": "session",
"session_id": "string",
"source": "string",
"verdict": "useful"
}
RetrievalFeedbackQuery
| Field | Type | Required |
|---|
group_by | string or null | no |
since | integer (int64) or null | no |
Used by: retrievalFeedbackTotals
{
"group_by": "string",
"since": 0
}
RetrievalFeedbackReceipt
Receipt for one recorded verdict.
| Field | Type | Required |
|---|
capability | string or null | no |
id | string | yes |
item_key | string | yes |
recorded_at | integer (int64) | yes |
source | string | yes |
verdict | string | yes |
Used by: recordRetrievalFeedback
{
"capability": "string",
"id": "string",
"item_key": "string",
"recorded_at": 0,
"source": "string",
"verdict": "string"
}
RetrievalFeedbackReport
Used by: retrievalFeedbackTotals
{
"group_by": "string",
"groups": [
{
"irrelevant": 0,
"key": "string",
"outdated": 0,
"total": 0,
"useful": 0,
"wrong": 0
}
],
"scanned": 0,
"since": 0,
"totals": {
"irrelevant": 0,
"key": "string",
"outdated": 0,
"total": 0,
"useful": 0,
"wrong": 0
}
}
RetrievalVerdict
A verdict on one retrieved item. Four, closed and ordered from "the ranking
worked" to "the ranking was actively wrong": a free-text label cannot be
aggregated, and an open set stops being comparable between runs.
String enum: "useful" "irrelevant" "outdated" "wrong"
"useful"
RetrievalVerdictCounts
Verdict counts. Every verdict appears with its count, zero included: a bucket
missing `wrong` and a bucket with zero `wrong` are different facts.
| Field | Type | Required |
|---|
irrelevant | integer (int64) | yes |
key | string or null | no |
outdated | integer (int64) | yes |
total | integer (int64) | yes |
useful | integer (int64) | yes |
wrong | integer (int64) | yes |
{
"irrelevant": 0,
"key": "string",
"outdated": 0,
"total": 0,
"useful": 0,
"wrong": 0
}
RetryPolicy
| Field | Type | Required |
|---|
max_attempts | integer (int32) or null | no |
{
"max_attempts": 0
}
RevokedIdentity
| Field | Type | Required |
|---|
id | string | yes |
state | string | yes |
Used by: revokeIdentity
{
"id": "string",
"state": "string"
}
RunMetadataEntry
| Field | Type | Required |
|---|
key | string | yes |
set_by | string | yes |
updated_at | integer (int64) | yes |
value | any JSON | yes |
{
"key": "string",
"set_by": "string",
"updated_at": 0,
"value": {}
}
RuntimeSettingsApplied
The outcome of applying a stored document over the deployed baseline.
`shadowed` names every leaf that was ignored because the operator had locked
it in YAML or the environment — precedence is environment > explicit YAML >
stored document > compiled defaults. `restart_required` is true when the
document changed a startup-class setting, which cannot take effect live.
| Field | Type | Required |
|---|
applied_at | integer (int64) | yes |
applied_by | string | yes |
applied_live | boolean | yes |
applied_revision | integer (int64) | yes |
effective | boolean | yes |
effective_values | any JSON | yes |
instance_id | string | yes |
key | string | yes |
pending_restart | array of string | yes |
restart_required | boolean | yes |
revision | integer (int64) | yes |
scope | string | yes |
shadowed | array of string | yes |
Used by: applyRuntimeSettings
{
"applied_at": 0,
"applied_by": "string",
"applied_live": false,
"applied_revision": 0,
"effective": false,
"effective_values": {},
"instance_id": "string",
"key": "string",
"pending_restart": [
"string"
],
"restart_required": false,
"revision": 0,
"scope": "string",
"shadowed": [
"string"
]
}
RuntimeSettingsDeleted
| Field | Type | Required |
|---|
deleted | boolean | yes |
deleted_revision | integer (int64) | yes |
key | string | yes |
namespace | string or null | no |
scope | string | yes |
Used by: deleteRuntimeSettings
{
"deleted": false,
"deleted_revision": 0,
"key": "string",
"namespace": "string",
"scope": "string"
}
RuntimeSettingsDocument
One stored runtime-settings document.
Two scopes share one table: `process` holds a single namespace-neutral
document that only a deployment operator may write, and `namespace` holds
bounded per-tenant documents. A committed row is **not** effective until
`applyRuntimeSettings` merges it over the deployed baseline.
| Field | Type | Required |
|---|
bytes | integer (int64) | yes |
created_at | integer (int64) | yes |
created_by | string | yes |
document | any JSON | no |
key | string | yes |
namespace | string or null | no |
revision | integer (int64) | yes |
scope | string | yes |
updated_at | integer (int64) | yes |
updated_by | string | yes |
Used by: getRuntimeSettings
{
"bytes": 0,
"created_at": 0,
"created_by": "string",
"document": {},
"key": "string",
"namespace": "string",
"revision": 0,
"scope": "string",
"updated_at": 0,
"updated_by": "string"
}
RuntimeSettingsList
| Field | Type | Required |
|---|
items | array of RuntimeSettingsDocument | yes |
limit | integer (int64) | yes |
namespace | string or null | no |
scope | string | yes |
total | integer (int64) | yes |
Used by: listRuntimeSettings
{
"items": [
{
"bytes": 0,
"created_at": 0,
"created_by": "string",
"document": {},
"key": "string",
"namespace": "string",
"revision": 0,
"scope": "string",
"updated_at": 0,
"updated_by": "string"
}
],
"limit": 0,
"namespace": "string",
"scope": "string",
"total": 0
}
RuntimeSettingsWritten
| Field | Type | Required |
|---|
bytes | integer (int64) | yes |
created | boolean | yes |
key | string | yes |
namespace | string or null | no |
previous_revision | integer (int64) | yes |
revision | integer (int64) | yes |
scope | string | yes |
updated_at | integer (int64) | yes |
updated_by | string | yes |
Used by: putRuntimeSettings
{
"bytes": 0,
"created": false,
"key": "string",
"namespace": "string",
"previous_revision": 0,
"revision": 0,
"scope": "string",
"updated_at": 0,
"updated_by": "string"
}
ServerInfo
| Field | Type | Required |
|---|
api_version | string | yes |
features | object of boolean | yes |
namespace | string | yes |
product | string | yes |
version | string | yes |
worker_protocol | string | yes |
Used by: serverInfo
{
"api_version": "string",
"features": {
"key": false
},
"namespace": "string",
"product": "string",
"version": "string",
"worker_protocol": "string"
}
Session
| Field | Type | Required |
|---|
created_at | integer (int64) | yes |
id | string | yes |
namespace | string | yes |
principal | string | yes |
Used by: createSession
{
"created_at": 0,
"id": "string",
"namespace": "string",
"principal": "string"
}
SessionBinding
| Field | Type | Required |
|---|
bound | boolean | yes |
session_id | string | yes |
Used by: bindSession
{
"bound": false,
"session_id": "string"
}
SessionDeleted
Used by: deleteSession
{
"deleted": false,
"deleted_at": 0,
"id": "string",
"kept": {
"approvals": 0,
"checkpoints": 0,
"traversers": 0
},
"removed": {
"brief_artifacts": 0,
"knowledge_documents": 0,
"memory_entries": 0,
"memory_vectors": 0,
"scrubbed_prompts": 0,
"transcript_entries": 0
}
}
SessionKept
Run records kept for audit and cost after the session is deleted.
| Field | Type | Required |
|---|
approvals | integer (int64) | yes |
checkpoints | integer (int64) | yes |
traversers | integer (int64) | yes |
{
"approvals": 0,
"checkpoints": 0,
"traversers": 0
}
SessionLastTraverser
The most recent root traverser of a session.
| Field | Type | Required |
|---|
created_at | integer (int64) | yes |
id | string | yes |
status | Status | yes |
target | string | yes |
updated_at | integer (int64) | yes |
{
"created_at": 0,
"id": "string",
"status": "queued",
"target": "string",
"updated_at": 0
}
SessionList
| Field | Type | Required |
|---|
items | array of SessionSummary | yes |
next_cursor | string or null | no |
Used by: listSessions
{
"items": [
{
"active_root_id": "string",
"artifact_bytes": 0,
"created_at": 0,
"deleted_at": 0,
"id": "string",
"label": "string",
"last_traverser": {
"created_at": 0,
"id": "string",
"status": {},
"target": "string",
"updated_at": 0
},
"namespace": "string",
"principal": "string",
"targets": [
"string"
],
"traverser_count": 0,
"updated_at": 0
}
],
"next_cursor": "string"
}
SessionRemoved
Private data hard-deleted with the session.
| Field | Type | Required |
|---|
brief_artifacts | integer (int64) | yes |
knowledge_documents | integer (int64) | yes |
memory_entries | integer (int64) | yes |
memory_vectors | integer (int64) | yes |
scrubbed_prompts | integer (int64) | yes |
transcript_entries | integer (int64) | yes |
{
"brief_artifacts": 0,
"knowledge_documents": 0,
"memory_entries": 0,
"memory_vectors": 0,
"scrubbed_prompts": 0,
"transcript_entries": 0
}
SessionSecrets
What the server says about waiting secrets. `names` and `expires_at` answer
the owner's `?names=1` read and the PUT; `values` is present only on the
deploying worker's one-shot read.
| Field | Type | Required |
|---|
expires_at | integer (int64) or null | no |
label | string | yes |
names | array of string or null | no |
session_id | string | yes |
values | object of string or null | no |
Used by: getSessionSecrets, putSessionSecrets
{
"expires_at": 0,
"label": "string",
"names": [
"string"
],
"session_id": "string",
"values": {
"key": "string"
}
}
SessionSecretsCleared
| Field | Type | Required |
|---|
cleared | boolean | yes |
had_secrets | boolean | yes |
session_id | string | yes |
Used by: deleteSessionSecrets
{
"cleared": false,
"had_secrets": false,
"session_id": "string"
}
SessionSecretsPut
Secrets a Studio brief provides for the node it will deploy. Held in the
server's process memory only (never the database, journal or logs) for one
hour, and handed out exactly once to the deploying worker.
| Field | Type | Required |
|---|
label | string | yes |
values | object of string | yes |
Used by: putSessionSecrets
{
"label": "string",
"values": {
"key": "string"
}
}
SessionSummary
One row of the session index: the session and what has run in it.
| Field | Type | Required |
|---|
active_root_id | string or null | no |
artifact_bytes | integer (int64) | yes |
created_at | integer (int64) | yes |
deleted_at | integer (int64) or null | no |
id | string | yes |
label | string or null | no |
last_traverser | null or SessionLastTraverser | no |
namespace | string | yes |
principal | string | yes |
targets | array of string | yes |
traverser_count | integer (int64) | yes |
updated_at | integer (int64) | yes |
Used by: getSession
{
"active_root_id": "string",
"artifact_bytes": 0,
"created_at": 0,
"deleted_at": 0,
"id": "string",
"label": "string",
"last_traverser": {
"created_at": 0,
"id": "string",
"status": "queued",
"target": "string",
"updated_at": 0
},
"namespace": "string",
"principal": "string",
"targets": [
"string"
],
"traverser_count": 0,
"updated_at": 0
}
SignPath
| Field | Type | Required |
|---|
key_id | string | yes |
Used by: signPath
{
"key_id": "string"
}
SignedPayload
| Field | Type | Required |
|---|
format | string | yes |
key_id | string | yes |
namespace | string | yes |
path | ExecutionPath | yes |
signed_at | integer (int64) | yes |
{
"format": "string",
"key_id": "string",
"namespace": "string",
"path": {
"id": "string",
"items": [
{
"attempt": 0,
"attempts": [
{}
],
"cancel_requested": false,
"capability": "string",
"created_at": 0,
"deadline_at": 0,
"error": {},
"finished_at": 0,
"id": "string",
"idempotency_key": "string",
"input": {},
"input_bytes": 0,
"input_truncated": false,
"kind": "string",
"label": "string",
"max_attempts": 0,
"operation_key": "string",
"output": {},
"output_bytes": 0,
"parent_id": "string",
"parent_step_id": "string",
"principal": "string",
"replay": {},
"root_id": "string",
"seq": 0,
"session_id": "string",
"started_at": 0,
"status": "queued",
"step_id": "string",
"submitted_by": "string",
"target": "string",
"timeout_seconds": 0,
"updated_at": 0,
"version": "string"
}
],
"root_id": "string",
"steps_returned": 0,
"steps_total": 0,
"truncated": false
},
"signed_at": 0
}
Stats
Aggregate counters for one namespace over an optional window.
| Field | Type | Required |
|---|
complete | boolean | yes |
namespace | string | yes |
oldest_retained_at | integer (int64) or null | no |
traversers | any JSON | yes |
window | any JSON | yes |
workers | any JSON | yes |
Used by: stats
{
"complete": false,
"namespace": "string",
"oldest_retained_at": 0,
"traversers": {},
"window": {},
"workers": {}
}
Status
String enum: "queued" "running" "waiting" "succeeded" "failed" "cancelled" "timed_out"
"queued"
SubmitTraverser
| Field | Type | Required |
|---|
idempotency_key | string or null | no |
input | any JSON | yes |
operation_key | string or null | no |
parent_lease_token | string or null | no |
parent_step_id | string or null | no |
session_id | string or null | no |
target | string | yes |
version | string or null | no |
Used by: submitTraverser
{
"idempotency_key": "string",
"input": {},
"operation_key": "string",
"parent_lease_token": "string",
"parent_step_id": "string",
"session_id": "string",
"target": "string",
"version": "string"
}
Suspended
| Field | Type | Required |
|---|
suspended | boolean | yes |
Used by: suspendTask
{
"suspended": false
}
TagApprovalMode
String enum: "auto" "manual" "forbidden"
"auto"
TagDecision
Admin decision. Omit `tags` to act on every tag in the source state
(`pending` for approve/reject, `approved` for revoke).
| Field | Type | Required |
|---|
decision | TagDecisionKind | yes |
label | string | yes |
reason | string or null | no |
tags | array of string or null | no |
Used by: decideTags
{
"decision": "approve",
"label": "string",
"reason": "string",
"tags": [
"string"
]
}
TagDecisionKind
String enum: "approve" "reject" "revoke"
"approve"
TagDecisionResult
Used by: decideTags
{
"changed": [
"string"
],
"credential": {
"credential": {
"@context": [
"string"
],
"credentialSubject": {},
"expirationDate": "string",
"id": "string",
"issuanceDate": "string",
"issuer": "string",
"proof": {
"created": {},
"cryptosuite": {},
"proofPurpose": {},
"proofValue": {},
"type": {},
"verificationMethod": {}
},
"type": [
"string"
]
},
"expires_at": 0,
"id": "string",
"issued_at": 0,
"issuer_did": "string",
"issuer_key_id": "string",
"issuer_label": "string",
"kind": "execution",
"node_label": "string",
"parent_id": "string",
"principal": "string",
"revocation_reason": "string",
"revoked_at": 0,
"revoked_by": "string",
"root_id": "string",
"subject_id": "string",
"traverser_id": "string",
"type": "string"
},
"decision": "approve",
"label": "string",
"tags": [
{
"decided_at": 0,
"decided_by": "string",
"label": "string",
"proposed_at": 0,
"proposed_by": "string",
"reason": "string",
"state": "pending",
"tag": "string",
"updated_at": 0
}
],
"warning": "string"
}
TagLedger
Used by: listTagLedger
{
"items": [
{
"decided_at": 0,
"decided_by": "string",
"label": "string",
"proposed_at": 0,
"proposed_by": "string",
"reason": "string",
"state": "pending",
"tag": "string",
"updated_at": 0
}
]
}
TagPolicy
Namespace tag approval policy. `issuer_label` names the node whose enrolled
DID signs `AgentTagCredential`s; null records approvals without credentials.
| Field | Type | Required |
|---|
default_mode | TagApprovalMode | yes |
issuer_label | string or null | no |
rules | array of TagRule | yes |
updated_at | integer (int64) or null | no |
updated_by | string or null | no |
Used by: getTagPolicy, putTagPolicy
{
"default_mode": "auto",
"issuer_label": "string",
"rules": [
{
"approval": "auto",
"reason": "string",
"tags": [
"string"
]
}
],
"updated_at": 0,
"updated_by": "string"
}
TagPolicyPut
| Field | Type | Required |
|---|
default_mode | null or TagApprovalMode | no |
issuer_label | string or null | no |
rules | array of TagRule or null | no |
Used by: putTagPolicy
{
"default_mode": "auto",
"issuer_label": "string",
"rules": [
{
"approval": "auto",
"reason": "string",
"tags": [
"string"
]
}
]
}
TagProposal
Propose tags for a node the caller registered. Tags are lower-cased
`[a-z0-9-_.:]{1,64}`; the namespace policy decides auto/manual/forbidden.
| Field | Type | Required |
|---|
label | string | yes |
tags | array of string | yes |
Used by: proposeTags
{
"label": "string",
"tags": [
"string"
]
}
TagProposalResult
`modes` maps each proposed tag to the policy mode applied; `credential` is the
refreshed `AgentTagCredential` when approvals changed and the policy names an
enrolled issuer, otherwise `warning` explains why none was issued.
Used by: proposeTags
{
"credential": {
"credential": {
"@context": [
"string"
],
"credentialSubject": {},
"expirationDate": "string",
"id": "string",
"issuanceDate": "string",
"issuer": "string",
"proof": {
"created": {},
"cryptosuite": {},
"proofPurpose": {},
"proofValue": {},
"type": {},
"verificationMethod": {}
},
"type": [
"string"
]
},
"expires_at": 0,
"id": "string",
"issued_at": 0,
"issuer_did": "string",
"issuer_key_id": "string",
"issuer_label": "string",
"kind": "execution",
"node_label": "string",
"parent_id": "string",
"principal": "string",
"revocation_reason": "string",
"revoked_at": 0,
"revoked_by": "string",
"root_id": "string",
"subject_id": "string",
"traverser_id": "string",
"type": "string"
},
"label": "string",
"modes": {
"key": "auto"
},
"tags": [
{
"decided_at": 0,
"decided_by": "string",
"label": "string",
"proposed_at": 0,
"proposed_by": "string",
"reason": "string",
"state": "pending",
"tag": "string",
"updated_at": 0
}
],
"warning": "string"
}
TagRecord
| Field | Type | Required |
|---|
decided_at | integer (int64) or null | no |
decided_by | string or null | no |
label | string | yes |
proposed_at | integer (int64) | yes |
proposed_by | string | yes |
reason | string or null | no |
state | TagState | yes |
tag | string | yes |
updated_at | integer (int64) | yes |
{
"decided_at": 0,
"decided_by": "string",
"label": "string",
"proposed_at": 0,
"proposed_by": "string",
"reason": "string",
"state": "pending",
"tag": "string",
"updated_at": 0
}
TagRule
| Field | Type | Required |
|---|
approval | TagApprovalMode | yes |
reason | string or null | no |
tags | array of string | yes |
{
"approval": "auto",
"reason": "string",
"tags": [
"string"
]
}
Traverser
| Field | Type | Required |
|---|
attempt | integer (int32) | yes |
attempts | array of Attempt or null | no |
cancel_requested | boolean | yes |
capability | string | yes |
created_at | integer (int64) | yes |
deadline_at | integer (int64) or null | no |
error | any JSON | no |
finished_at | integer (int64) or null | no |
id | string | yes |
idempotency_key | string or null | no |
input | any JSON | no |
input_bytes | integer (int64) or null | no |
input_truncated | boolean or null | no |
kind | string | yes |
label | string | yes |
max_attempts | integer (int32) | yes |
operation_key | string or null | no |
output | any JSON | no |
output_bytes | integer (int64) or null | no |
parent_id | string or null | no |
parent_step_id | string or null | no |
principal | string | yes |
replay | null or ReplayInfo | no |
root_id | string | yes |
seq | integer (int64) | yes |
session_id | string or null | no |
started_at | integer (int64) or null | no |
status | Status | yes |
step_id | string | yes |
submitted_by | string | yes |
target | string | yes |
timeout_seconds | integer (int64) | yes |
updated_at | integer (int64) | yes |
version | string | yes |
Used by: cancelTraverser, getTraverser
{
"attempt": 0,
"attempts": [
{
"attempt": 0,
"error": {},
"finished_at": 0,
"lease_expires_at": 0,
"started_at": 0,
"status": "string",
"worker_id": "string"
}
],
"cancel_requested": false,
"capability": "string",
"created_at": 0,
"deadline_at": 0,
"error": {},
"finished_at": 0,
"id": "string",
"idempotency_key": "string",
"input": {},
"input_bytes": 0,
"input_truncated": false,
"kind": "string",
"label": "string",
"max_attempts": 0,
"operation_key": "string",
"output": {},
"output_bytes": 0,
"parent_id": "string",
"parent_step_id": "string",
"principal": "string",
"replay": {
"reuse": "string",
"reused_output": false,
"source_id": "string"
},
"root_id": "string",
"seq": 0,
"session_id": "string",
"started_at": 0,
"status": "queued",
"step_id": "string",
"submitted_by": "string",
"target": "string",
"timeout_seconds": 0,
"updated_at": 0,
"version": "string"
}
TraverserList
| Field | Type | Required |
|---|
items | array of Traverser | yes |
next_cursor | string or null | no |
Used by: listTraversers
{
"items": [
{
"attempt": 0,
"attempts": [
{
"attempt": 0,
"error": {},
"finished_at": 0,
"lease_expires_at": 0,
"started_at": 0,
"status": "string",
"worker_id": "string"
}
],
"cancel_requested": false,
"capability": "string",
"created_at": 0,
"deadline_at": 0,
"error": {},
"finished_at": 0,
"id": "string",
"idempotency_key": "string",
"input": {},
"input_bytes": 0,
"input_truncated": false,
"kind": "string",
"label": "string",
"max_attempts": 0,
"operation_key": "string",
"output": {},
"output_bytes": 0,
"parent_id": "string",
"parent_step_id": "string",
"principal": "string",
"replay": {
"reuse": "string",
"reused_output": false,
"source_id": "string"
},
"root_id": "string",
"seq": 0,
"session_id": "string",
"started_at": 0,
"status": "queued",
"step_id": "string",
"submitted_by": "string",
"target": "string",
"timeout_seconds": 0,
"updated_at": 0,
"version": "string"
}
],
"next_cursor": "string"
}
UsageEntry
One model or media call. `cost_usd` is only what the provider reported; omit
it when unknown (the server keeps unknown distinct from zero).
| Field | Type | Required |
|---|
cache_creation_tokens | integer (int64) or null | no |
cache_read_tokens | integer (int64) or null | no |
call_id | string or null | no |
confident | boolean or null | no |
cost_source | string or null | no |
cost_usd | number or null | no |
extra | object of any JSON or null | no |
fallback | string or null | no |
input_tokens | integer (int64) or null | no |
model | string | yes |
operation | string or null | no |
output_tokens | integer (int64) or null | no |
provider | string or null | no |
source | string or null | no |
total_tokens | integer (int64) or null | no |
{
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"call_id": "string",
"confident": false,
"cost_source": "string",
"cost_usd": 0.0,
"extra": {
"key": {}
},
"fallback": "string",
"input_tokens": 0,
"model": "string",
"operation": "string",
"output_tokens": 0,
"provider": "string",
"source": "string",
"total_tokens": 0
}
UsageGroup
One `group_by` bucket: the totals plus the bucket key.
| Field | Type | Required |
|---|
cache_creation_tokens | integer (int64) | yes |
cache_read_tokens | integer (int64) | yes |
calls | integer (int64) | yes |
cost_complete | boolean | yes |
cost_usd | number or null | no |
fallback_calls | integer (int64) | yes |
input_tokens | integer (int64) | yes |
key | string | yes |
output_tokens | integer (int64) | yes |
priced_calls | integer (int64) | yes |
total_tokens | integer (int64) | yes |
unconfident_calls | integer (int64) | yes |
unpriced_calls | integer (int64) | yes |
{
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"calls": 0,
"cost_complete": false,
"cost_usd": 0.0,
"fallback_calls": 0,
"input_tokens": 0,
"key": "string",
"output_tokens": 0,
"priced_calls": 0,
"total_tokens": 0,
"unconfident_calls": 0,
"unpriced_calls": 0
}
UsageGrouping
Bucket key for usage totals. `none` returns the overall totals only.
String enum: "run" "model" "provider" "day" "attempt_status" "label" "principal" "capability" "none"
"run"
UsagePage
| Field | Type | Required |
|---|
items | array of UsageRecord | yes |
next_cursor | string or null | no |
root_id | string | yes |
traverser_id | string | yes |
Used by: listUsage
{
"items": [
{
"attempt": 0,
"attempt_status": "string",
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"call_id": "string",
"capability": "string",
"confident": false,
"cost_known": false,
"cost_source": "string",
"cost_usd": 0.0,
"created_at": 0,
"extra": {
"key": {}
},
"fallback": "string",
"id": "string",
"input_tokens": 0,
"label": "string",
"model": "string",
"operation": "string",
"output_tokens": 0,
"principal": "string",
"provider": "string",
"recorded_by": "string",
"root_id": "string",
"source": "string",
"total_tokens": 0,
"traverser_id": "string"
}
],
"next_cursor": "string",
"root_id": "string",
"traverser_id": "string"
}
UsageReceipt
| Field | Type | Required |
|---|
attempt | integer (int64) | yes |
deduplicated | integer (int64) | yes |
items | array of UsageReceiptItem | yes |
recorded | integer (int64) | yes |
root_id | string | yes |
totals | UsageTotals | yes |
traverser_id | string | yes |
Used by: recordUsage
{
"attempt": 0,
"deduplicated": 0,
"items": [
{
"call_id": "string",
"deduplicated": false,
"id": "string"
}
],
"recorded": 0,
"root_id": "string",
"totals": {
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"calls": 0,
"cost_complete": false,
"cost_usd": 0.0,
"fallback_calls": 0,
"input_tokens": 0,
"output_tokens": 0,
"priced_calls": 0,
"total_tokens": 0,
"unconfident_calls": 0,
"unpriced_calls": 0
},
"traverser_id": "string"
}
UsageReceiptItem
| Field | Type | Required |
|---|
call_id | string | yes |
deduplicated | boolean | yes |
id | string | yes |
{
"call_id": "string",
"deduplicated": false,
"id": "string"
}
UsageRecord
A stored usage row. Rows of failed attempts are retained (the tokens were
consumed) and identified by `attempt` and `attempt_status`.
| Field | Type | Required |
|---|
attempt | integer (int64) | yes |
attempt_status | string or null | no |
cache_creation_tokens | integer (int64) | yes |
cache_read_tokens | integer (int64) | yes |
call_id | string | yes |
capability | string | yes |
confident | boolean or null | no |
cost_known | boolean | yes |
cost_source | string or null | no |
cost_usd | number or null | no |
created_at | integer (int64) | yes |
extra | object of any JSON | yes |
fallback | string or null | no |
id | string | yes |
input_tokens | integer (int64) | yes |
label | string | yes |
model | string | yes |
operation | string | yes |
output_tokens | integer (int64) | yes |
principal | string | yes |
provider | string or null | no |
recorded_by | string | yes |
root_id | string | yes |
source | string | yes |
total_tokens | integer (int64) | yes |
traverser_id | string | yes |
{
"attempt": 0,
"attempt_status": "string",
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"call_id": "string",
"capability": "string",
"confident": false,
"cost_known": false,
"cost_source": "string",
"cost_usd": 0.0,
"created_at": 0,
"extra": {
"key": {}
},
"fallback": "string",
"id": "string",
"input_tokens": 0,
"label": "string",
"model": "string",
"operation": "string",
"output_tokens": 0,
"principal": "string",
"provider": "string",
"recorded_by": "string",
"root_id": "string",
"source": "string",
"total_tokens": 0,
"traverser_id": "string"
}
UsageRecordRequest
Worker write: `task_id` (or `step_id`) + `lease_token`. Admin backfill:
`traverser_id` without a lease. Provide `entries` or a single `entry`.
| Field | Type | Required |
|---|
entries | array of UsageEntry or null | no |
entry | null or UsageEntry | no |
lease_token | string or null | no |
step_id | string or null | no |
task_id | string or null | no |
traverser_id | string or null | no |
Used by: recordUsage
{
"entries": [
{
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"call_id": "string",
"confident": false,
"cost_source": "string",
"cost_usd": 0.0,
"extra": {
"key": {}
},
"fallback": "string",
"input_tokens": 0,
"model": "string",
"operation": "string",
"output_tokens": 0,
"provider": "string",
"source": "string",
"total_tokens": 0
}
],
"entry": {
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"call_id": "string",
"confident": false,
"cost_source": "string",
"cost_usd": 0.0,
"extra": {
"key": {}
},
"fallback": "string",
"input_tokens": 0,
"model": "string",
"operation": "string",
"output_tokens": 0,
"provider": "string",
"source": "string",
"total_tokens": 0
},
"lease_token": "string",
"step_id": "string",
"task_id": "string",
"traverser_id": "string"
}
UsageReport
Used by: usageTotals
{
"group_by": "run",
"groups": [
{
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"calls": 0,
"cost_complete": false,
"cost_usd": 0.0,
"fallback_calls": 0,
"input_tokens": 0,
"key": "string",
"output_tokens": 0,
"priced_calls": 0,
"total_tokens": 0,
"unconfident_calls": 0,
"unpriced_calls": 0
}
],
"scanned": 0,
"scope": {
"namespace": "string",
"principal": "string",
"root_id": "string",
"since": 0,
"until": 0
},
"totals": {
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"calls": 0,
"cost_complete": false,
"cost_usd": 0.0,
"fallback_calls": 0,
"input_tokens": 0,
"output_tokens": 0,
"priced_calls": 0,
"total_tokens": 0,
"unconfident_calls": 0,
"unpriced_calls": 0
},
"truncated": false
}
UsageScope
| Field | Type | Required |
|---|
namespace | string | yes |
principal | string or null | no |
root_id | string or null | no |
since | integer (int64) | yes |
until | integer (int64) or null | no |
{
"namespace": "string",
"principal": "string",
"root_id": "string",
"since": 0,
"until": 0
}
UsageTotals
Aggregate of usage rows. `cost_usd` is null unless at least one call was
priced; `cost_complete` is true only when every call was.
| Field | Type | Required |
|---|
cache_creation_tokens | integer (int64) | yes |
cache_read_tokens | integer (int64) | yes |
calls | integer (int64) | yes |
cost_complete | boolean | yes |
cost_usd | number or null | no |
fallback_calls | integer (int64) | yes |
input_tokens | integer (int64) | yes |
output_tokens | integer (int64) | yes |
priced_calls | integer (int64) | yes |
total_tokens | integer (int64) | yes |
unconfident_calls | integer (int64) | yes |
unpriced_calls | integer (int64) | yes |
{
"cache_creation_tokens": 0,
"cache_read_tokens": 0,
"calls": 0,
"cost_complete": false,
"cost_usd": 0.0,
"fallback_calls": 0,
"input_tokens": 0,
"output_tokens": 0,
"priced_calls": 0,
"total_tokens": 0,
"unconfident_calls": 0,
"unpriced_calls": 0
}
VectorSearchStrategy
Search execution strategy. `linear` scans exact source vectors; `hnsw`
combines PostgreSQL index candidates with any not-yet-backfilled source rows.
String enum: "linear" "hnsw"
"linear"
VerifiableCredential
W3C VC 1.1 document exactly as signed. `credentialSubject` is the issued
subject (typed per credential kind by the issuer).
| Field | Type | Required |
|---|
@context | array of string | yes |
credentialSubject | any JSON | yes |
expirationDate | string or null | no |
id | string | yes |
issuanceDate | string | yes |
issuer | string | yes |
proof | DataIntegrityProof | yes |
type | array of string | yes |
{
"@context": [
"string"
],
"credentialSubject": {},
"expirationDate": "string",
"id": "string",
"issuanceDate": "string",
"issuer": "string",
"proof": {
"created": "string",
"cryptosuite": "string",
"proofPurpose": "string",
"proofValue": "string",
"type": "string",
"verificationMethod": "string"
},
"type": [
"string"
]
}
VerificationCheck
| Field | Type | Required |
|---|
detail | string or null | no |
name | string | yes |
ok | boolean | yes |
{
"detail": "string",
"name": "string",
"ok": false
}
VerificationMethod
| Field | Type | Required |
|---|
controller | string | yes |
id | string | yes |
publicKeyJwk | null or Jwk | no |
publicKeyMultibase | string | yes |
type | string | yes |
{
"controller": "string",
"id": "string",
"publicKeyJwk": {
"crv": "string",
"kty": "string",
"x": "string"
},
"publicKeyMultibase": "string",
"type": "string"
}
VerifyProof
Used by: verifyProof
{
"proof": {
"algorithm": "string",
"id": "string",
"key_id": "string",
"public_key": "string",
"sha256": "string",
"signature": "string",
"signed": {
"format": "string",
"key_id": "string",
"namespace": "string",
"path": {
"id": "string",
"items": [
{}
],
"root_id": "string",
"steps_returned": 0,
"steps_total": 0,
"truncated": false
},
"signed_at": 0
}
}
}
WebhookDelivery
| Field | Type | Required |
|---|
attempts | integer (int64) | yes |
created_at | integer (int64) | yes |
delivered_at | integer (int64) or null | no |
event_type | ObservabilityEventType | yes |
id | string | yes |
last_error | string or null | no |
last_status | integer (int64) or null | no |
status | string | yes |
updated_at | integer (int64) | yes |
{
"attempts": 0,
"created_at": 0,
"delivered_at": 0,
"event_type": "usage.recorded",
"id": "string",
"last_error": "string",
"last_status": 0,
"status": "string",
"updated_at": 0
}
WebhookRedriven
Redrive outcome: `redriven` = `from_failed` + `from_abandoned_pending`, where a
pending delivery quiet for longer than `abandoned_after_ms` counts as abandoned.
| Field | Type | Required |
|---|
abandoned_after_ms | integer (int64) | yes |
from_abandoned_pending | integer (int64) | yes |
from_failed | integer (int64) | yes |
redriven | integer (int64) | yes |
Used by: redriveObservabilityWebhook
{
"abandoned_after_ms": 0,
"from_abandoned_pending": 0,
"from_failed": 0,
"redriven": 0
}
WebhookTestQueued
| Field | Type | Required |
|---|
delivery_id | string | yes |
queued | boolean | yes |
Used by: testObservabilityWebhook
{
"delivery_id": "string",
"queued": false
}
Worker
| Field | Type | Required |
|---|
capacity | integer (int32) | yes |
label | string | yes |
lease_seconds | integer (int64) | yes |
version | string | yes |
worker_id | string | yes |
Used by: enrollWorker
{
"capacity": 0,
"label": "string",
"lease_seconds": 0,
"version": "string",
"worker_id": "string"
}
WorkerId
| Field | Type | Required |
|---|
worker_id | string | yes |
Used by: claimTask, drainWorker
{
"worker_id": "string"
}
WorkerList
| Field | Type | Required |
|---|
items | array of WorkerStatus | yes |
truncated | boolean | yes |
Used by: listWorkers
{
"items": [
{
"capacity": 0,
"draining": false,
"enrolled_at": 0,
"expired_leases": 0,
"id": "string",
"label": "string",
"last_seen_age_ms": 0,
"last_seen_at": 0,
"principal": "string",
"state": "string",
"tasks_in_flight": 0,
"version": "string"
}
],
"truncated": false
}
WorkerStatus
One enrolled worker as the fleet read model reports it.
Distinct from [`Worker`], which is the *enrolment response* — that carries
`worker_id` and `lease_seconds` and answers "you are now enrolled". This
answers "here is the state of the fleet".
| Field | Type | Required |
|---|
capacity | integer (int64) | yes |
draining | boolean | yes |
enrolled_at | integer (int64) | yes |
expired_leases | integer (int64) | yes |
id | string | yes |
label | string | yes |
last_seen_age_ms | integer (int64) | yes |
last_seen_at | integer (int64) | yes |
principal | string | yes |
state | string | yes |
tasks_in_flight | integer (int64) | yes |
version | string | yes |
{
"capacity": 0,
"draining": false,
"enrolled_at": 0,
"expired_leases": 0,
"id": "string",
"label": "string",
"last_seen_age_ms": 0,
"last_seen_at": 0,
"principal": "string",
"state": "string",
"tasks_in_flight": 0,
"version": "string"
}
WorkerTask
| Field | Type | Required |
|---|
attempt | integer (int32) | yes |
capability | string | yes |
deadline_at | integer (int64) | yes |
emitter | null or EmitterContext | no |
id | string | yes |
input | any JSON | yes |
kind | string | yes |
label | string | yes |
lease_expires_at | integer (int64) | yes |
lease_token | string | yes |
max_attempts | integer (int32) | yes |
namespace | string | yes |
parent_id | string or null | no |
parent_step_id | string or null | no |
principal | string | yes |
root_id | string | yes |
session_id | string or null | no |
step_id | string | yes |
target | string | yes |
timeout_seconds | integer (int64) | yes |
version | string | yes |
{
"attempt": 0,
"capability": "string",
"deadline_at": 0,
"emitter": {
"emitter_id": "string",
"event_id": "string",
"event_type": "string",
"idempotency_key": "string",
"managed_by": "string",
"received_at": "string",
"source": "string"
},
"id": "string",
"input": {},
"kind": "string",
"label": "string",
"lease_expires_at": 0,
"lease_token": "string",
"max_attempts": 0,
"namespace": "string",
"parent_id": "string",
"parent_step_id": "string",
"principal": "string",
"root_id": "string",
"session_id": "string",
"step_id": "string",
"target": "string",
"timeout_seconds": 0,
"version": "string"
}