Bind a human decision to its original native request#

PropertyValue
Servicecrossfire
OperationcreateRuntimeDecision
MethodPOST
Path/api/agents/{agentId}/runtime-decisions
Authenticationagent
Success status201
Response dataUnpaginated value
Request formatjson
Maximum request body16777216 bytes (operation-specific)
Permission codesruntime.report.self

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 pathRepresentation and constraints
agentIdlowercase opaque UUID

Validation#

check.object({ agentId: 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.none

Referenced definitions:

Request body#

object; fields below; unknown fields rejected ( decisionCreation )

Field pathRepresentation and constraints
idlowercase opaque UUID
runIdlowercase opaque UUID
runtimecodex or pi ( implementedRuntime )
sessionIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
requestIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
turnIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
itemIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
kindpermission or question
actionstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
reviewplain-text string; at most 8388608 UTF-8 bytes; allowed whitespace controls only; constraint: Native review exceeds the separate UTF-8 resource bound
blockingboolean
expiresAtexact JSON integer; 0…9007199254740991; JSON null permitted
questionsarray; 1–100 entries; item: object; fields below; unknown fields rejected ( decisionQuestion )
questions[].idstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].titlestring; 1–1000 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].promptplain-text string; at most 16000 UTF-8 bytes; allowed whitespace controls only
questions[].secretboolean
questions[].allowTextboolean
questions[].optionsarray; 0–100 entries; item: object; fields below; unknown fields rejected ( option )
questions[].options[].idstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].options[].labelstring; 1–1000 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].options[].descriptionplain-text string; at most 4000 UTF-8 bytes; allowed whitespace controls only

Additional checks#

The following checks apply in addition to the field limits.

Constraint on review:

value => new TextEncoder().encode(value).byteLength <= MAX_REVIEW_BYTES

Validation#

runtime.decisionCreation

Referenced definitions:

Response data#

object; fields below; unknown fields rejected ( decisionView )

Field pathRepresentation and constraints
idlowercase opaque UUID
runIdlowercase opaque UUID
runtimelowercase name; pattern [a-z][a-z0-9-]{0,39}
sessionIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
requestIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
turnIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
itemIdstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
kindpermission or question
actionstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
reviewplain-text string; at most 8388608 UTF-8 bytes; allowed whitespace controls only; constraint: Native review exceeds the separate UTF-8 resource bound
blockingboolean
expiresAtexact JSON integer; 0…9007199254740991; JSON null permitted
questionsarray; 1–100 entries; item: object; fields below; unknown fields rejected ( decisionQuestion )
questions[].idstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].titlestring; 1–1000 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].promptplain-text string; at most 16000 UTF-8 bytes; allowed whitespace controls only
questions[].secretboolean
questions[].allowTextboolean
questions[].optionsarray; 0–100 entries; item: object; fields below; unknown fields rejected ( option )
questions[].options[].idstring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].options[].labelstring; 1–1000 UTF-16 units; well-formed Unicode; no C0/DEL controls
questions[].options[].descriptionplain-text string; at most 4000 UTF-8 bytes; allowed whitespace controls only
agentIdlowercase opaque UUID
statuspending or answered or responded or cancelled or expired ( decisionStatus )
createdAtexact 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_BYTES

Validation#

runtime.decisionView

Referenced 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"
  }
}