feat(kernel): inject decision journal into stage context + wire repository
This commit is contained in:
@@ -13,6 +13,7 @@ dependencies {
|
||||
testImplementation(project(":core:context"))
|
||||
testImplementation(project(":core:inference"))
|
||||
testImplementation(project(":core:kernel"))
|
||||
testImplementation(project(":core:journal"))
|
||||
testImplementation(project(":core:risk"))
|
||||
testImplementation(project(":core:tools"))
|
||||
testImplementation(project(":core:toolintent"))
|
||||
|
||||
@@ -52,6 +52,9 @@ import com.correx.core.inference.Tokenizer
|
||||
import com.correx.core.inference.ToolCallFunction
|
||||
import com.correx.core.inference.ToolCallRequest
|
||||
import com.correx.core.kernel.orchestration.DefaultOrchestrationReducer
|
||||
import com.correx.core.journal.DecisionJournalProjector
|
||||
import com.correx.core.journal.DefaultDecisionJournalReducer
|
||||
import com.correx.core.journal.DefaultDecisionJournalRepository
|
||||
import com.correx.core.kernel.orchestration.DefaultSessionOrchestrator
|
||||
import com.correx.core.kernel.orchestration.OrchestrationConfig
|
||||
import com.correx.core.kernel.orchestration.OrchestrationProjector
|
||||
@@ -124,6 +127,10 @@ class SessionOrchestratorIntegrationTest {
|
||||
DefaultEventReplayer(eventStore, ApprovalProjector(DefaultApprovalReducer())),
|
||||
)
|
||||
|
||||
private val decisionJournalRepository = DefaultDecisionJournalRepository(
|
||||
DefaultEventReplayer(eventStore, DecisionJournalProjector(DefaultDecisionJournalReducer())),
|
||||
)
|
||||
|
||||
private val repositories = OrchestratorRepositories(
|
||||
eventStore = eventStore,
|
||||
inferenceRepository = inferenceRepository,
|
||||
@@ -147,6 +154,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines,
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
@Test
|
||||
@@ -194,6 +202,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
),
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
failingOrchestrator.run(sessionId, graph, config)
|
||||
|
||||
@@ -221,6 +230,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines.copy(validationPipeline = approvingPipeline),
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
val runJob = launch { orchestrator.run(sessionId, graph, config) }
|
||||
@@ -269,6 +279,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines.copy(validationPipeline = approvingPipeline),
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
val runJob = launch { approvalOrchestrator.run(sessionId, graph, config) }
|
||||
@@ -322,6 +333,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines,
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
val sessionId = SessionId("s6")
|
||||
@@ -364,6 +376,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines.copy(contextPackBuilder = droppingBuilder, promptResolver = PromptResolver { it }),
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
val sessionId = SessionId("s-trunc")
|
||||
val config = OrchestrationConfig(retryPolicy = RetryPolicy(maxAttempts = 1, backoffMs = 0))
|
||||
@@ -386,6 +399,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines,
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = recordingStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
recordingOrchestrator.run(sessionId, graph, config)
|
||||
@@ -480,6 +494,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
engines = engines,
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
livenessOrchestrator.run(sessionId, livenessGraph, config)
|
||||
@@ -596,6 +611,7 @@ class SessionOrchestratorIntegrationTest {
|
||||
),
|
||||
retryCoordinator = retryCoordinator,
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
livenessOrchestrator.run(sessionId, livenessGraph, config)
|
||||
|
||||
@@ -38,6 +38,9 @@ import com.correx.core.inference.ToolCallFunction
|
||||
import com.correx.core.inference.ToolCallRequest
|
||||
import com.correx.core.inference.TokenUsage
|
||||
import com.correx.core.kernel.orchestration.DefaultOrchestrationReducer
|
||||
import com.correx.core.journal.DecisionJournalProjector
|
||||
import com.correx.core.journal.DefaultDecisionJournalReducer
|
||||
import com.correx.core.journal.DefaultDecisionJournalRepository
|
||||
import com.correx.core.kernel.orchestration.DefaultSessionOrchestrator
|
||||
import com.correx.core.kernel.orchestration.OrchestrationConfig
|
||||
import com.correx.core.kernel.orchestration.OrchestrationProjector
|
||||
@@ -220,11 +223,15 @@ class ToolCallGateTest {
|
||||
workspacePolicy = policy,
|
||||
)
|
||||
|
||||
val decisionJournalRepository = DefaultDecisionJournalRepository(
|
||||
DefaultEventReplayer(eventStore, DecisionJournalProjector(DefaultDecisionJournalReducer())),
|
||||
)
|
||||
val orchestrator = DefaultSessionOrchestrator(
|
||||
repositories = repositories,
|
||||
engines = engines,
|
||||
retryCoordinator = DefaultRetryCoordinator(eventStore),
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
)
|
||||
|
||||
return Triple(orchestrator, eventStore, provider)
|
||||
|
||||
@@ -31,6 +31,9 @@ import com.correx.core.inference.ToolCallFunction
|
||||
import com.correx.core.inference.ToolCallRequest
|
||||
import com.correx.core.inference.TokenUsage
|
||||
import com.correx.core.kernel.orchestration.DefaultOrchestrationReducer
|
||||
import com.correx.core.journal.DecisionJournalProjector
|
||||
import com.correx.core.journal.DefaultDecisionJournalReducer
|
||||
import com.correx.core.journal.DefaultDecisionJournalRepository
|
||||
import com.correx.core.kernel.orchestration.DefaultSessionOrchestrator
|
||||
import com.correx.core.kernel.orchestration.OrchestrationConfig
|
||||
import com.correx.core.kernel.orchestration.OrchestrationProjector
|
||||
@@ -210,11 +213,15 @@ class WorkspaceScopedToolRegistryTest {
|
||||
workspaceToolRegistryProvider = workspaceProvider,
|
||||
)
|
||||
|
||||
val decisionJournalRepository = DefaultDecisionJournalRepository(
|
||||
DefaultEventReplayer(eventStore, DecisionJournalProjector(DefaultDecisionJournalReducer())),
|
||||
)
|
||||
return DefaultSessionOrchestrator(
|
||||
repositories = repositories,
|
||||
engines = engines,
|
||||
retryCoordinator = DefaultRetryCoordinator(eventStore),
|
||||
artifactStore = artifactStore,
|
||||
decisionJournalRepository = decisionJournalRepository,
|
||||
) to eventStore
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user