feat(journal): add Salience enum + DecisionKind.salience()

This commit is contained in:
2026-06-08 09:56:31 +04:00
parent 4d1b4ffbb6
commit 357c171053
2 changed files with 34 additions and 1 deletions
@@ -2,7 +2,16 @@ package com.correx.core.journal.model
import kotlinx.serialization.Serializable
enum class DecisionKind { INTENT, STEERING, PREEMPT, APPROVAL, TRANSITION, RETRY, FAILURE, ARTIFACT }
enum class Salience { HIGH, LOW }
enum class DecisionKind {
INTENT, STEERING, PREEMPT, APPROVAL, TRANSITION, RETRY, FAILURE, ARTIFACT;
fun salience(): Salience = when (this) {
INTENT, STEERING, PREEMPT, APPROVAL, FAILURE -> Salience.HIGH
TRANSITION, RETRY, ARTIFACT -> Salience.LOW
}
}
/**
* One distilled decision. [sequence] is the source event's sessionSequence, used for
@@ -0,0 +1,24 @@
package com.correx.core.journal.model
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class DecisionKindSalienceTest {
@Test
fun `HIGH kinds cover intent steering preempt approval failure`() {
listOf(DecisionKind.INTENT, DecisionKind.STEERING, DecisionKind.PREEMPT,
DecisionKind.APPROVAL, DecisionKind.FAILURE)
.forEach { assertEquals(Salience.HIGH, it.salience(), "$it should be HIGH") }
}
@Test
fun `LOW kinds cover transition retry artifact`() {
listOf(DecisionKind.TRANSITION, DecisionKind.RETRY, DecisionKind.ARTIFACT)
.forEach { assertEquals(Salience.LOW, it.salience(), "$it should be LOW") }
}
@Test
fun `salience is exhaustive over all DecisionKind entries`() {
DecisionKind.entries.forEach { it.salience() }
}
}