RunSummary

@Serializable
data class RunSummary(val analysisName: String, val runDirectory: String? = null, val algorithm: String, val solverName: String? = null, val modelIdentifier: String? = null, val status: ResultsStatus, val statusReason: String? = null, val startTime: String, val endTime: String, val elapsedMillis: Long, val totalIterations: Int, val totalOracleCalls: Int? = null, val bestEstimatedObjective: Double? = null, val bestPenalizedObjective: Double? = null, val bestFoundAtIteration: Int? = null, val runId: String, val bestInputs: Map<String, Double> = emptyMap(), val solverConfiguration: Map<String, String> = emptyMap())(source)

Machine-readable summary of a finished optimization run.

Written as summary.toml alongside the other run-output artifacts. Lets a future "compare runs" feature ingest the metadata without parsing HTML or scraping CSV headers.

Field declaration order is the encoded file's key order — tomlkt emits fields in declaration order — so the leading fields are the human-friendly identifiers users want to see first, followed by termination metadata, the headline numeric outcomes, and the substrate's UUID-based cross-reference last. The two map-valued fields (bestInputs, solverConfiguration) are emitted as TOML tables after the scalar block.

Per-field @TomlComment annotations show up as #-prefixed lines above each key in the encoded file, so the artifact is self-documenting for anyone opening it cold in a text editor. This mirrors the convention OptimizationRunConfiguration already uses for the document format.

Optional fields (bestEstimatedObjective, bestPenalizedObjective, bestFoundAtIteration, bestInputs) are null on partial / failed runs where no completed best snapshot is available. Those keys are omitted from the encoded file via explicitNulls = false rather than written as key = null.

Constructors

Link copied to clipboard
constructor(analysisName: String, runDirectory: String? = null, algorithm: String, solverName: String? = null, modelIdentifier: String? = null, status: ResultsStatus, statusReason: String? = null, startTime: String, endTime: String, elapsedMillis: Long, totalIterations: Int, totalOracleCalls: Int? = null, bestEstimatedObjective: Double? = null, bestPenalizedObjective: Double? = null, bestFoundAtIteration: Int? = null, runId: String, bestInputs: Map<String, Double> = emptyMap(), solverConfiguration: Map<String, String> = emptyMap())

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard