Address PR review: rename package to pw.binom.agui, add native KMP targets, fix native event serialization

- 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')
This commit is contained in:
2026-09-09 23:40:52 +03:00
parent fed7f7ab71
commit 4ca54a9b05
24 changed files with 203 additions and 171 deletions
@@ -1,9 +1,9 @@
package com.agui.client
package pw.binom.agui.client
import com.agui.api.agent.Agent
import com.agui.api.event.BaseEvent
import com.agui.api.run.RunAgentInput
import com.agui.api.serialization.AguiJson
import pw.binom.agui.api.agent.Agent
import pw.binom.agui.api.event.BaseEvent
import pw.binom.agui.api.run.RunAgentInput
import pw.binom.agui.api.serialization.AguiJson
import io.ktor.client.HttpClient
import io.ktor.client.plugins.sse.sse
import io.ktor.client.request.setBody
@@ -1,4 +1,4 @@
package com.agui.client
package pw.binom.agui.client
import io.ktor.client.HttpClient
import io.ktor.client.HttpClientConfig
@@ -1,15 +1,15 @@
package com.agui.client
package pw.binom.agui.client
import com.agui.api.agent.Agent
import com.agui.api.event.RunFinishedEvent
import com.agui.api.event.RunStartedEvent
import com.agui.api.event.TextMessageContentEvent
import com.agui.api.event.TextMessageEndEvent
import com.agui.api.event.TextMessageStartEvent
import com.agui.api.message.Message
import com.agui.api.message.MessageRole
import com.agui.api.run.RunAgentInput
import com.agui.server.agui
import pw.binom.agui.api.agent.Agent
import pw.binom.agui.api.event.RunFinishedEvent
import pw.binom.agui.api.event.RunStartedEvent
import pw.binom.agui.api.event.TextMessageContentEvent
import pw.binom.agui.api.event.TextMessageEndEvent
import pw.binom.agui.api.event.TextMessageStartEvent
import pw.binom.agui.api.message.Message
import pw.binom.agui.api.message.MessageRole
import pw.binom.agui.api.run.RunAgentInput
import pw.binom.agui.server.agui
import io.ktor.client.plugins.sse.SSE
import io.ktor.server.application.application
import io.ktor.server.testing.testApplication
@@ -21,7 +21,7 @@ import kotlin.test.assertEquals
import kotlin.test.assertIs
/**
* Exercises [HttpAgent] against the real AG-UI endpoint exposed by [com.agui.server.agui],
* Exercises [HttpAgent] against the real AG-UI endpoint exposed by [pw.binom.agui.server.agui],
* using the Ktor test host so the SSE transport is exercised end-to-end over HTTP.
*/
class HttpAgentTest {