- Rename module package com.agui -> pw.binom.agui (dirs + code + root group)
- Expand KMP targets on all modules: jvm + macOS/ios/Linux/mingw (no Android)
- Server native via ktor-server-cio; client native via ktor-client-cio
- Annotate sealed interface BaseEvent with @Serializable so the sealed
serializer resolves without reflection on Kotlin/Native (was reflection-only
on JVM, so native tests failed with 'Serializer for class BaseEvent not found')
Model the AG-UI protocol as an in-process API of Java-style interfaces and
classes, mirroring the official AG-UI Java SDK, and build it as a Kotlin
Multiplatform library with two Ktor transport modules.
Modules:
- api: BaseEvent sealed hierarchy (all AG-UI event types), messages, state,
tool, context, RunAgentInput/Parameters, Agent/AgentSubscriber/
EventDispatcher, AguiJson (kotlinx.serialization, "type" discriminator),
plus a SerializersModule registering every event subtype polymorphically.
- client: HttpAgent over Ktor SSE (POST RunAgentInput -> stream BaseEvent),
implementing the Agent interface.
- server: Application.agui()/Route.aguiAgent() exposing an Agent behind a
POST + SSE endpoint via SSEServerContent, plus a runnable sample.
Tests: api serialization round-trips, client SSE decode against a real
test-host server, server endpoint integration.