feat(router,server): wire workflow inventory and project profile into router context per turn

This commit is contained in:
2026-06-11 13:15:32 +04:00
parent 823c2e0ade
commit f1fc43cc85
4 changed files with 110 additions and 5 deletions
@@ -31,6 +31,8 @@ import com.correx.core.router.RouterProjector
import com.correx.core.router.l3.InMemoryL3MemoryStore
import com.correx.core.router.l3.L3MemoryStore
import com.correx.core.router.model.RouterConfig
import com.correx.core.router.model.WorkflowSummary
import com.correx.core.events.types.SessionId
import com.correx.core.sessions.projections.replay.DefaultEventReplayer
import com.correx.core.tools.contract.ToolExecutor
import com.correx.core.tools.registry.ToolRegistry
@@ -291,12 +293,14 @@ object InfrastructureModule {
tokenizer: Tokenizer? = null,
embedder: Embedder = createNoopEmbedder(),
l3MemoryStore: L3MemoryStore = createInMemoryL3MemoryStore(),
workflowSummaryProvider: () -> List<WorkflowSummary> = { emptyList() },
sessionProfileProvider: suspend (SessionId) -> String? = { null },
): RouterFacade {
val reducer = DefaultRouterReducer()
val projector = RouterProjector(reducer)
val replayer = DefaultEventReplayer(eventStore, projector)
val repository = DefaultRouterRepository(replayer)
val contextBuilder = DefaultRouterContextBuilder(config, tokenizer)
return DefaultRouterFacade(repository, contextBuilder, inferenceRouter, eventStore, config, null, embedder, l3MemoryStore)
return DefaultRouterFacade(repository, contextBuilder, inferenceRouter, eventStore, config, null, embedder, l3MemoryStore, workflowSummaryProvider, sessionProfileProvider)
}
}