Skip to main content

Execution

Fully deterministic — no LLM involved. The same entity, concept version, condition version, and timestamp always produce the same Result (Rₜ) and Decision (Aₜ).


Execute Full Pipeline

POST /evaluate/full

Runs concept execution (ψ), condition evaluation (φ), and action triggering (α) in one atomic request. Returns a FullPipelineResult containing the Result (Rₜ) and Decision (Aₜ).

Determinism: Provide a timestamp for fully deterministic, reproducible execution. Omit for snapshot mode — current data, not guaranteed reproducible.

dry_run

Pass dry_run: true to simulate without firing actions. decision.actions_triggered[].status will be "would_trigger".

Request Body

ParameterTypeRequiredDescription
concept_id / concept_versionstringRequiredPinned concept reference.
condition_id / condition_versionstringRequiredPinned condition reference.
entitystringRequiredEntity to evaluate.
timestampdatetimeOptionalISO 8601 UTC. Provides deterministic execution.
explainbooleanOptionalDefault false. Include Explanation in Result (Rₜ).
dry_runbooleanOptionalDefault false. Simulate without firing actions.

Response — FullPipelineResult

ParameterTypeRequiredDescription
resultResult (Rₜ)AlwaysConcept execution output.
result.valuenumber|bool|stringAlwaysComputed output. Type matches declared output type.
result.deterministicbooleanAlwaystrue when timestamp was provided.
decisionDecision (Aₜ)AlwaysCondition evaluation output.
decision.valueboolean|stringAlwaystrue/false for boolean strategies; matched label for equals.
decision.actions_triggeredarrayAlwaysaction_id, status, payload_sent, error? per action.

Response Codes

StatusDescription
200Pipeline executed. Action failures return 200 with per-action status.
401Unauthorised.
404Concept, condition, or entity not found.
408Execution timed out (30s).
422Execution failed — missing data or null propagation.
429Rate limit.

TypeScript Example

const pipeline = await client.evaluateFull({
conceptId: "org.churn_risk",
conceptVersion: "1.2",
conditionId: "org.high_churn",
conditionVersion: "1.0",
entity: "user_abc123",
timestamp: new Date().toISOString(),
explain: true,
});

console.log(pipeline.result.value); // 0.87 (Result Rₜ)
console.log(pipeline.result.deterministic); // true
console.log(pipeline.decision.value); // true (Decision Aₜ)

pipeline.decision.actions_triggered.forEach(a =>
console.log(a.action_id, a.status)
);