Skip to content

Check target API

Configure one importable module:build_target function:

def build_target(bindings: CheckBindings) -> LangGraphCheckTarget:
    selected = bindings.tool("charge", charge, "side_effecting")
    repository = bindings.action_repository
    # Wrap selected at the candidate-owned governed boundary using repository.
    return LangGraphCheckTarget(...)

bindings.tool has no default side-effect class: use exactly read_only or side_effecting. Duplicate/blank names and unstable schemas are invalid. Record mode returns the live callable. Replay and fault modes extract only schema metadata, replace the callable synchronously, and do not retain a live reference.

The target supplies a graph factory, a durable checkpointer factory that accepts the harness path, a stable case-input builder, and an invocation-config builder. It must rebuild from a fresh process without physical worker/attempt IDs entering either logical input or action identity. A full Check also requires the target to request and wire the exact bindings.action_repository instance.

Runtime flow:

config -> fresh build_target -> registered metadata -> taped tools
       -> compiled graph -> action repository/checkpointer -> evidence -> verdict

Debug target import/digest failures in zeroth.check.adapter.loading; schema substitution in adapter.bindings and replay.tools; durable action behavior in the LangGraph action lifecycle.