Package-level declarations

Types

Link copied to clipboard
Link copied to clipboard
data class CapsuleDirectory(val capsule: Capsule, val run: Run? = null, val execution: Execution? = null, val tail: String? = null)

A directory holding one environment: capsule.json, and when known run.json (the Run with its outcome, steps and symptoms) and result.json (an Execution, written by drift run). tail.log holds the bounded log tail and is never read back.

Link copied to clipboard
sealed interface DirectoryRead
Link copied to clipboard
data class Execution(val command: String, val exitCode: Int, val durationMs: Long, val truncated: Boolean)

How a wrapped command ended: command is redacted, truncated says the tail was cut.

Link copied to clipboard

Reads GitHub Actions output that was saved to a file: a job log (raw, or as printed by gh run view --log) and the summary from gh run view --json. The runner image block, the operating system group, the runner version and the job env: block become capsule attributes with source log; symptoms come from SymptomExtractor.

Link copied to clipboard

Reads GitLab CI output that was saved to a file: a job trace and the pipeline JSON (the pipeline object, an object with a jobs array, or the jobs array alone). The runner version, executor and image in the trace become capsule attributes with source trace.

Link copied to clipboard
sealed interface Import

What an importer made of a saved log or summary; importers never throw.

Link copied to clipboard
data class JUnitCheck(val name: String, val status: JUnitStatus, val message: String)

One testcase: name is the check id; message is the failure or skip reason.

Link copied to clipboard
Link copied to clipboard
object JUnitXml
Link copied to clipboard
object LooseJson

Reads CI service JSON, where durations may be fractional; those numbers become strings.