package com.correx.core.context.state

import com.correx.core.events.types.ArtifactId
import com.correx.core.events.types.ContextPackId
import kotlinx.serialization.Serializable

@Serializable
data class ContextState(
    val builtPackIds: List<ContextPackId> = emptyList(),
    val buildingInProgress: Boolean = false,
    val interrupted: Boolean = false,
    // Recursive-summarization coverage (pipeline stage 5). Freeform context up through this
    // stable event sequence is represented by [summaryArtifactId]; assembly drops the covered
    // raw entries and injects the summary instead. -1 = nothing summarized yet.
    val summarizedThroughSequence: Long = -1L,
    val summaryArtifactId: ArtifactId? = null,
    val summaryTier: Int = 0,
)
