52bf0279Read-only native decision review#
| Property | Value |
|---|---|
| Service | crossfire |
| Operation | runtimeDecision |
| Method | GET |
| Path | /api/agents/{agentId}/runtime-decisions/{decisionId} |
| Authentication | either |
| Success status | 200 |
| Response data | Unpaginated value |
| Request format | json |
| Maximum request body | 2097152 bytes (service default) |
| Permission codes | agent.read.self, agent.read.owned, agent.read.any |
Listed permission codes are alternatives, not token scopes. The service also checks access to the requested records and rejects stale revisions or controller generations.
Path parameters#
object; fields below; unknown fields rejected
| Field path | Representation and constraints |
|---|---|
agentId | lowercase opaque UUID |
decisionId | lowercase opaque UUID |
Validation#
check.object({ agentId: check.identifier, decisionId: check.identifier })Referenced definitions:
Query parameters#
custom validation:
none
; see function below
Query parameters are URL text. The validation function below specifies their format, defaults and combinations. Pagination applies only to operations that use it.
Additional checks#
The following checks apply in addition to the field limits.
Constraint on value:
export function none(input: unknown) {
const parsed = listQuery([])(input);
return parsed.ok ? success({}) : parsed;
}Validation#
query.noneReferenced definitions:
Request body#
empty object; unknown fields rejected
Validation#
check.emptyReferenced definitions:
Response data#
object; fields below; unknown fields rejected (
decisionView
)
| Field path | Representation and constraints |
|---|---|
id | lowercase opaque UUID |
runId | lowercase opaque UUID |
runtime | lowercase name; pattern [a-z][a-z0-9-]{0,39} |
sessionId | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
requestId | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
turnId | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
itemId | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
kind | permission or question |
action | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
review | plain-text string; at most 8388608 UTF-8 bytes; allowed whitespace controls only; constraint: Native review exceeds the separate UTF-8 resource bound |
blocking | boolean |
expiresAt | exact JSON integer; 0…9007199254740991; JSON null permitted |
questions | array; 1–100 entries; item: object; fields below; unknown fields rejected (
decisionQuestion
) |
questions[].id | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
questions[].title | string; 1–1000 UTF-16 units; well-formed Unicode; no C0/DEL controls |
questions[].prompt | plain-text string; at most 16000 UTF-8 bytes; allowed whitespace controls only |
questions[].secret | boolean |
questions[].allowText | boolean |
questions[].options | array; 0–100 entries; item: object; fields below; unknown fields rejected (
option
) |
questions[].options[].id | string; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls |
questions[].options[].label | string; 1–1000 UTF-16 units; well-formed Unicode; no C0/DEL controls |
questions[].options[].description | plain-text string; at most 4000 UTF-8 bytes; allowed whitespace controls only |
agentId | lowercase opaque UUID |
status | pending or answered or responded or cancelled or expired (
decisionStatus
) |
createdAt | exact JSON integer; 0…9007199254740991 |
Additional checks#
The following checks apply in addition to the field limits.
Constraint on review:
value => new TextEncoder().encode(value).byteLength <= MAX_REVIEW_BYTESValidation#
runtime.decisionViewReferenced definitions:
Response envelope#
A successful JSON response contains data and meta. Replace the data placeholder below with the response fields described above. Errors contain error instead of data.
{
"data": "<value matching the response-data validator>",
"meta": {
"requestId": "00000000-0000-0000-0000-000000000001"
}
}