Изменение выносит типы контента в :content-api и разделяет потоки событий.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package pw.binom.agentik.server
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import pw.binom.agentik.proto.Content
|
||||
import pw.binom.agentik.content.Content
|
||||
import pw.binom.agentik.proto.Conversation
|
||||
import pw.binom.agentik.proto.MessageContext
|
||||
import pw.binom.agentik.content.MessageContext
|
||||
import kotlin.time.Instant
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,7 +21,7 @@ import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.json.Json
|
||||
import pw.binom.agentik.proto.Agent
|
||||
import pw.binom.agentik.proto.Conversation
|
||||
import pw.binom.agentik.proto.Content
|
||||
import pw.binom.agentik.content.Content
|
||||
import pw.binom.agentik.outbox.AgentEvent
|
||||
import pw.binom.agentik.outbox.CommonEvent
|
||||
import pw.binom.agentik.outbox.Event
|
||||
@@ -189,6 +189,15 @@ internal fun Route.agentikRoutes(agent: Agent) {
|
||||
call.streamJsonSse(agent.onlineOutbox.onlineEvents(id), OnlineEvent.serializer())
|
||||
}
|
||||
|
||||
/**
|
||||
* `GET /online` — **live-only** SSE поток онлайн-событий всех диалогов
|
||||
* агента (аналог `/events/all` для durable). Без `after`: онлайн-события
|
||||
* не хранятся и не реплеятся.
|
||||
*/
|
||||
get("/online") {
|
||||
call.streamJsonSse(agent.onlineOutbox.onlineEvents(), OnlineEvent.serializer())
|
||||
}
|
||||
|
||||
get("/events") {
|
||||
val after = call.parseAfter() ?: return@get
|
||||
// agent.outbox.agentEvents(after) возвращает Flow<CommonEvent.Agent>;
|
||||
|
||||
@@ -19,7 +19,7 @@ import kotlinx.coroutines.flow.emptyFlow
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.serialization.Serializable
|
||||
import pw.binom.agentik.journal.ConversationStore
|
||||
import pw.binom.agentik.journal.Content as JContent
|
||||
import pw.binom.agentik.content.Content as JContent
|
||||
import pw.binom.agentik.journal.JournalStore
|
||||
import pw.binom.agentik.journal.MessageRecord
|
||||
import pw.binom.agentik.journal.inmemory.InMemoryJournalStore
|
||||
|
||||
@@ -9,6 +9,7 @@ import pw.binom.agentik.outbox.OnlineOutbox
|
||||
* онлайн-канал тестам не нужен, но интерфейс обязывает его отдать.
|
||||
*/
|
||||
internal fun emptyOnlineOutbox(): OnlineOutbox = object : OnlineOutbox {
|
||||
override fun onlineEvents() = emptyFlow<OnlineEvent>()
|
||||
override fun onlineEvents(conversationId: String) = emptyFlow<OnlineEvent>()
|
||||
override fun close() {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user