Skip to main content

FullPipelineResult

Combined output of a full ψ → φ → α pipeline execution.

Returned by POST /evaluate/full.

result — concept execution output (Rₜ); the ψ layer. decision — condition evaluation output (Aₜ); the φ layer. actions_triggered[] is nested inside decision, not here. dry_run — True when the request was a simulation (actions were not invoked).

result objectrequired

Output of concept execution (Rₜ). The ψ layer result.

deterministic reflects the execution mode, not the value stability: True → timestamp was provided; same inputs always produce the same result. False → snapshot mode; reflects current state at call time.

explanation is None when explain=False (the default). The executor sets it only when the caller passes explain=True on the request.

value objectrequired
anyOf
number
typeConceptOutputType (string)required

Declared output type of a concept. Matches the ConceptResult.type wire values.

Determines which Python type result.value carries: float → float boolean → bool categorical → str (a label from the declared label set)

Possible values: [float, boolean, categorical]

entityEntity (string)required
versionVersion (string)required
deterministicDeterministic (boolean)required
timestamp object
anyOf
string
explanation object
anyOf
output objectrequired
anyOf
number
contributions object
property name*number
nodes object[]
  • Array [
  • node_idNode Id (string)required
    opOp (string)required
    inputsobjectrequired
    paramsobjectrequired
    output_value objectrequired
    anyOf
    number
    output_typeOutput Type (string)required
  • ]
  • traceobject[]
    decision objectrequired

    Output of condition evaluation (Aₜ). The φ layer result.

    actions_triggered[] is nested HERE, not at the top level of FullPipelineResult. This is a hard API contract requirement. Do not flatten it.

    value is bool for boolean strategies (threshold/percentile/z_score/change/composite). value is str (the matched label) for the equals strategy on categorical input.

    reason is populated when z_score, percentile, or change strategies could not evaluate due to insufficient or unavailable history. Auditable and queryable. "insufficient_history" — fewer than the required minimum results available. "history_unavailable" — history query failed; fallback to False. history_count reflects how many historical results were found (0 if the query failed). Set only when reason is also set.

    value objectrequired
    anyOf
    boolean
    typeDecisionType (string)required

    Output type of a condition evaluation.

    boolean — produced by threshold, percentile, z_score, change, composite categorical — produced by equals only

    Possible values: [boolean, categorical]

    entityEntity (string)required
    condition_idCondition Id (string)required
    condition_versionCondition Version (string)required
    timestamp object
    anyOf
    string
    actions_triggered object[]
  • Array [
  • action_idAction Id (string)required
    action_versionAction Version (string)required
    statusActionTriggeredStatus (string)required

    Delivery status of a single action after a decision fires.

    triggered — action was invoked and delivery succeeded skipped — fire_on rule not met (e.g. fire_on='true' but decision=False) failed — action was attempted but delivery raised an error would_trigger — dry_run mode; action would have fired but was not invoked

    Possible values: [triggered, skipped, failed, would_trigger]

    payload_sent object
    anyOf
    object
    error object
    anyOf
    error objectrequired

    The inner error object serialised inside ErrorResponse.

    This is the exact shape the API spec requires: { "type": "...", "message": "...", "location": null, "suggestion": null }

    Callers must branch on type, never on message.

    typeErrorType (string)required

    Canonical error type identifiers. The string value is the wire value.

    Rules (from API spec):

    • Callers must branch on .type, never on .message.
    • Message text is for humans; type is for machines.
    • The enum spelling is the ground truth for YAML, HTTP, and Python alike. In particular: z_score (not zscore), not_found (not 404), conflict (not 409).

    Possible values: [syntax_error, type_error, semantic_error, reference_error, parameter_error, graph_error, execution_error, execution_timeout, auth_error, not_found, conflict, rate_limit_exceeded, bounds_exceeded, action_binding_failed]

    messageMessage (string)required
    location object
    anyOf
    string
    suggestion object
    anyOf
    string
  • ]
  • reason object
    anyOf
    string
    history_count object
    anyOf
    integer
    dry_runDry Run (boolean)
    Default value: false
    entityEntity (string)required
    timestamp object
    anyOf
    string
    FullPipelineResult
    {
    "result": {
    "value": 0,
    "type": "float",
    "entity": "string",
    "version": "string",
    "deterministic": true,
    "timestamp": "string",
    "explanation": {
    "output": 0,
    "contributions": {},
    "nodes": [
    {
    "node_id": "string",
    "op": "string",
    "inputs": {},
    "params": {},
    "output_value": 0,
    "output_type": "string"
    }
    ],
    "trace": [
    {}
    ]
    }
    },
    "decision": {
    "value": true,
    "type": "boolean",
    "entity": "string",
    "condition_id": "string",
    "condition_version": "string",
    "timestamp": "string",
    "actions_triggered": [
    {
    "action_id": "string",
    "action_version": "string",
    "status": "triggered",
    "payload_sent": {},
    "error": {
    "error": {
    "type": "syntax_error",
    "message": "string",
    "location": "string",
    "suggestion": "string"
    }
    }
    }
    ],
    "reason": "string",
    "history_count": 0
    },
    "dry_run": false,
    "entity": "string",
    "timestamp": "string"
    }