Skip to content

simulo.OutputKind

Kind of a job-produced output — a checkpoint is NOT a trained model.

Checkpoints are resumable training state; trained models are standalone, deployable policy outputs. The platform never conflates the two.

Values are a stable wire ABI persisted in database rows (job_recordings .kind, job_artifacts.kind) and served by the /outputs union projection: append-only, never renumber, rename, or reorder — the six members up to EVALUATION_OUTPUT predate the typed-outputs contract and every member added for the typed-outputs contract is appended after them.

class OutputKind(StrEnum)
Member Value Meaning
MODEL_CHECKPOINT 'model_checkpoint' Resumable training state (optimizer included) — for continuing training. The tier-0 output kind implied by a declared ResumableCheckpoint callback.
TRAINED_MODEL 'trained_model' A standalone, deployable policy output — for inference/playback.
LOG 'log' The job’s captured log stream.
METRIC 'metric' Structured training/evaluation metrics.
REPLAY_OUTPUT 'replay_output' A recording produced by a REPLAY run — reserved, no producer exists yet. Boundary with RECORDING (mechanical rule — classify by what the recorder was pointed at, never by file format; both are MCAPs): * the job’s own live simulation, stepped by this job and recorded as it executed → RECORDING; * a pre-existing recording consumed as input (ResourceKind.REPLAY_INPUT — the dormant replay-run design, ReplaySessionProtocol) and re-rendered/derived into a new recording → REPLAY_OUTPUT. No shipped code path produces replay runs today, so no existing row may ever be classified here: every job_recordings row written before kinds existed (kind NULL) is a RECORDING, and the read-time union projection maps legacy NULL to recording — never to replay_output. This value is used only when an actual replay-run producer stamps it explicitly.
EVALUATION_OUTPUT 'evaluation_output' Structured output of an evaluation run.
RECORDING 'recording' An MCAP recording captured live from THIS job’s own simulation as it executed — the policy flight recorder’s output, what simulo recordings lists and downloads (home table job_recordings; a legacy NULL kind row is exactly this). See REPLAY_OUTPUT for the mechanical boundary rule with replay-derived recordings, and ANOMALY_CAPTURE for the anomaly-triggered sibling.
ANOMALY_CAPTURE 'anomaly_capture' A bounded MCAP debug session captured when a DebugOnAnomaly monitor detected an anomaly — the tier-0 optional (0..N) output kind implied by declaring the callback; a healthy run captures nothing. Stored beside plain recordings in job_recordings and still listed by simulo recordings; this kind is the discriminator. Boundary with RECORDING: same recorder, same live-simulation source — what differs is the trigger (an anomaly’s evidence window vs. the run’s rollout capture). When the same file is both planned as an anomaly capture and sniffed as a recording it registers exactly once, as anomaly_capture — the plan’s kind wins.
REPORT 'report' A generated document summarizing the run for humans (e.g. an evaluation report as HTML/PDF/Markdown) — a byte stream at a path, unlike METRIC (structured values in the result dict).
VIDEO 'video' A rendered video file (e.g. an .mp4 rollout render). Boundary with RECORDING: a recording is structured MCAP telemetry a viewer replays; a video is a finished movie file, even when rendered from the same run.
DATASET 'dataset' A data collection produced by the job (generated trajectories, demonstrations, images…). Classifies an OUTPUT — the identically-named ResourceKind.DATASET classifies an input mount.
FILE 'file' A general produced file. This is the default kind used by simulo.save_output. After a successful job completes, the worker uploads eligible registrations to job_artifacts; persisted files are listed by the external /outputs projection and can be downloaded. Registration alone does not guarantee delivery on a failed run or when an upload is refused.