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:
@@ -6,6 +6,14 @@ plugins {
|
||||
kotlin {
|
||||
jvmToolchain(21)
|
||||
jvm()
|
||||
macosX64()
|
||||
macosArm64()
|
||||
iosX64()
|
||||
iosArm64()
|
||||
iosSimulatorArm64()
|
||||
linuxX64()
|
||||
linuxArm64()
|
||||
mingwX64()
|
||||
|
||||
sourceSets {
|
||||
commonMain.dependencies {
|
||||
|
||||
+10
-10
@@ -1,14 +1,14 @@
|
||||
package com.agui.api.agent
|
||||
package pw.binom.agui.api.agent
|
||||
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.message.Message
|
||||
import com.agui.api.run.RunAgentInput
|
||||
import com.agui.api.run.RunAgentParameters
|
||||
import com.agui.api.run.randomRunId
|
||||
import com.agui.api.run.toParameters
|
||||
import com.agui.api.run.toRunAgentInput
|
||||
import com.agui.api.state.State
|
||||
import com.agui.api.state.mutableState
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.message.Message
|
||||
import pw.binom.agui.api.run.RunAgentInput
|
||||
import pw.binom.agui.api.run.RunAgentParameters
|
||||
import pw.binom.agui.api.run.randomRunId
|
||||
import pw.binom.agui.api.run.toParameters
|
||||
import pw.binom.agui.api.run.toRunAgentInput
|
||||
import pw.binom.agui.api.state.State
|
||||
import pw.binom.agui.api.state.mutableState
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
/**
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
package com.agui.api.agent
|
||||
package pw.binom.agui.api.agent
|
||||
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.run.RunAgentInput
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.run.RunAgentInput
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
/**
|
||||
@@ -10,7 +10,7 @@ import kotlinx.coroutines.flow.Flow
|
||||
*
|
||||
* This is the network-agnostic heart of the protocol. A concrete [Agent] can be:
|
||||
*
|
||||
* - remote — [com.agui.client.HttpAgent] streams events over SSE;
|
||||
* - remote — [pw.binom.agui.client.HttpAgent] streams events over SSE;
|
||||
* - local — a real agent implementation;
|
||||
* - composed/decorated — logging, auth, retry, observability wrappers.
|
||||
*/
|
||||
+19
-19
@@ -1,23 +1,23 @@
|
||||
package com.agui.api.agent
|
||||
package pw.binom.agui.api.agent
|
||||
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.event.CustomEvent
|
||||
import com.agui.api.event.MessagesSnapshotEvent
|
||||
import com.agui.api.event.RawEvent
|
||||
import com.agui.api.event.RunErrorEvent
|
||||
import com.agui.api.event.RunFinishedEvent
|
||||
import com.agui.api.event.RunStartedEvent
|
||||
import com.agui.api.event.StateDeltaEvent
|
||||
import com.agui.api.event.StateSnapshotEvent
|
||||
import com.agui.api.event.StepFinishedEvent
|
||||
import com.agui.api.event.StepStartedEvent
|
||||
import com.agui.api.event.TextMessageContentEvent
|
||||
import com.agui.api.event.TextMessageEndEvent
|
||||
import com.agui.api.event.TextMessageStartEvent
|
||||
import com.agui.api.event.ToolCallArgsEvent
|
||||
import com.agui.api.event.ToolCallEndEvent
|
||||
import com.agui.api.event.ToolCallResultEvent
|
||||
import com.agui.api.event.ToolCallStartEvent
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.event.CustomEvent
|
||||
import pw.binom.agui.api.event.MessagesSnapshotEvent
|
||||
import pw.binom.agui.api.event.RawEvent
|
||||
import pw.binom.agui.api.event.RunErrorEvent
|
||||
import pw.binom.agui.api.event.RunFinishedEvent
|
||||
import pw.binom.agui.api.event.RunStartedEvent
|
||||
import pw.binom.agui.api.event.StateDeltaEvent
|
||||
import pw.binom.agui.api.event.StateSnapshotEvent
|
||||
import pw.binom.agui.api.event.StepFinishedEvent
|
||||
import pw.binom.agui.api.event.StepStartedEvent
|
||||
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.event.ToolCallArgsEvent
|
||||
import pw.binom.agui.api.event.ToolCallEndEvent
|
||||
import pw.binom.agui.api.event.ToolCallResultEvent
|
||||
import pw.binom.agui.api.event.ToolCallStartEvent
|
||||
|
||||
/**
|
||||
* Observer for a stream of [BaseEvent]s.
|
||||
+19
-19
@@ -1,23 +1,23 @@
|
||||
package com.agui.api.agent
|
||||
package pw.binom.agui.api.agent
|
||||
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.event.CustomEvent
|
||||
import com.agui.api.event.MessagesSnapshotEvent
|
||||
import com.agui.api.event.RawEvent
|
||||
import com.agui.api.event.RunErrorEvent
|
||||
import com.agui.api.event.RunFinishedEvent
|
||||
import com.agui.api.event.RunStartedEvent
|
||||
import com.agui.api.event.StateDeltaEvent
|
||||
import com.agui.api.event.StateSnapshotEvent
|
||||
import com.agui.api.event.StepFinishedEvent
|
||||
import com.agui.api.event.StepStartedEvent
|
||||
import com.agui.api.event.TextMessageContentEvent
|
||||
import com.agui.api.event.TextMessageEndEvent
|
||||
import com.agui.api.event.TextMessageStartEvent
|
||||
import com.agui.api.event.ToolCallArgsEvent
|
||||
import com.agui.api.event.ToolCallEndEvent
|
||||
import com.agui.api.event.ToolCallResultEvent
|
||||
import com.agui.api.event.ToolCallStartEvent
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.event.CustomEvent
|
||||
import pw.binom.agui.api.event.MessagesSnapshotEvent
|
||||
import pw.binom.agui.api.event.RawEvent
|
||||
import pw.binom.agui.api.event.RunErrorEvent
|
||||
import pw.binom.agui.api.event.RunFinishedEvent
|
||||
import pw.binom.agui.api.event.RunStartedEvent
|
||||
import pw.binom.agui.api.event.StateDeltaEvent
|
||||
import pw.binom.agui.api.event.StateSnapshotEvent
|
||||
import pw.binom.agui.api.event.StepFinishedEvent
|
||||
import pw.binom.agui.api.event.StepStartedEvent
|
||||
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.event.ToolCallArgsEvent
|
||||
import pw.binom.agui.api.event.ToolCallEndEvent
|
||||
import pw.binom.agui.api.event.ToolCallResultEvent
|
||||
import pw.binom.agui.api.event.ToolCallStartEvent
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
/**
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.agui.api.context
|
||||
package pw.binom.agui.api.context
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
+5
-4
@@ -1,8 +1,8 @@
|
||||
package com.agui.api.event
|
||||
package pw.binom.agui.api.event
|
||||
|
||||
import com.agui.api.message.Message
|
||||
import com.agui.api.message.MessageRole
|
||||
import com.agui.api.state.State
|
||||
import pw.binom.agui.api.message.Message
|
||||
import pw.binom.agui.api.message.MessageRole
|
||||
import pw.binom.agui.api.state.State
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
@@ -14,6 +14,7 @@ import kotlinx.serialization.json.JsonElement
|
||||
* subclasses mirror the AG-UI protocol event catalogue and are (de)serialized
|
||||
* polymorphically by the `type` discriminator field.
|
||||
*/
|
||||
@Serializable
|
||||
public sealed interface BaseEvent {
|
||||
|
||||
/** Event creation timestamp in epoch milliseconds, if provided. */
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.agui.api.message
|
||||
package pw.binom.agui.api.message
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
package com.agui.api.run
|
||||
package pw.binom.agui.api.run
|
||||
|
||||
import com.agui.api.context.Context
|
||||
import com.agui.api.message.Message
|
||||
import com.agui.api.state.State
|
||||
import com.agui.api.tool.Tool
|
||||
import pw.binom.agui.api.context.Context
|
||||
import pw.binom.agui.api.message.Message
|
||||
import pw.binom.agui.api.state.State
|
||||
import pw.binom.agui.api.tool.Tool
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import kotlin.random.Random
|
||||
+19
-19
@@ -1,23 +1,23 @@
|
||||
package com.agui.api.serialization
|
||||
package pw.binom.agui.api.serialization
|
||||
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.event.CustomEvent
|
||||
import com.agui.api.event.MessagesSnapshotEvent
|
||||
import com.agui.api.event.RawEvent
|
||||
import com.agui.api.event.RunErrorEvent
|
||||
import com.agui.api.event.RunFinishedEvent
|
||||
import com.agui.api.event.RunStartedEvent
|
||||
import com.agui.api.event.StateDeltaEvent
|
||||
import com.agui.api.event.StateSnapshotEvent
|
||||
import com.agui.api.event.StepFinishedEvent
|
||||
import com.agui.api.event.StepStartedEvent
|
||||
import com.agui.api.event.TextMessageContentEvent
|
||||
import com.agui.api.event.TextMessageEndEvent
|
||||
import com.agui.api.event.TextMessageStartEvent
|
||||
import com.agui.api.event.ToolCallArgsEvent
|
||||
import com.agui.api.event.ToolCallEndEvent
|
||||
import com.agui.api.event.ToolCallResultEvent
|
||||
import com.agui.api.event.ToolCallStartEvent
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.event.CustomEvent
|
||||
import pw.binom.agui.api.event.MessagesSnapshotEvent
|
||||
import pw.binom.agui.api.event.RawEvent
|
||||
import pw.binom.agui.api.event.RunErrorEvent
|
||||
import pw.binom.agui.api.event.RunFinishedEvent
|
||||
import pw.binom.agui.api.event.RunStartedEvent
|
||||
import pw.binom.agui.api.event.StateDeltaEvent
|
||||
import pw.binom.agui.api.event.StateSnapshotEvent
|
||||
import pw.binom.agui.api.event.StepFinishedEvent
|
||||
import pw.binom.agui.api.event.StepStartedEvent
|
||||
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.event.ToolCallArgsEvent
|
||||
import pw.binom.agui.api.event.ToolCallEndEvent
|
||||
import pw.binom.agui.api.event.ToolCallResultEvent
|
||||
import pw.binom.agui.api.event.ToolCallStartEvent
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import kotlinx.serialization.modules.polymorphic
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
package com.agui.api.state
|
||||
package pw.binom.agui.api.state
|
||||
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* A loosely-typed, platform-agnostic bag of agent state carried in AG-UI
|
||||
* `STATE_SNAPSHOT`/`STATE_DELTA` events and in [com.agui.api.run.RunAgentInput.state].
|
||||
* `STATE_SNAPSHOT`/`STATE_DELTA` events and in [pw.binom.agui.api.run.RunAgentInput.state].
|
||||
*
|
||||
* Because the value is a JSON element, it can be any JSON scalar, object or array — the
|
||||
* protocol does not prescribe a concrete schema.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.agui.api.tool
|
||||
package pw.binom.agui.api.tool
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
+15
-15
@@ -1,19 +1,19 @@
|
||||
package com.agui.api
|
||||
package pw.binom.agui.api
|
||||
|
||||
import com.agui.api.agent.AbstractAgent
|
||||
import com.agui.api.agent.AgentSubscriber
|
||||
import com.agui.api.agent.EventDispatcher
|
||||
import com.agui.api.agent.dispatchTo
|
||||
import com.agui.api.context.Context
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.event.CustomEvent
|
||||
import com.agui.api.event.RunStartedEvent
|
||||
import com.agui.api.run.RunAgentInput
|
||||
import com.agui.api.run.RunAgentParameters
|
||||
import com.agui.api.run.randomRunId
|
||||
import com.agui.api.run.toParameters
|
||||
import com.agui.api.run.toRunAgentInput
|
||||
import com.agui.api.tool.Tool
|
||||
import pw.binom.agui.api.agent.AbstractAgent
|
||||
import pw.binom.agui.api.agent.AgentSubscriber
|
||||
import pw.binom.agui.api.agent.EventDispatcher
|
||||
import pw.binom.agui.api.agent.dispatchTo
|
||||
import pw.binom.agui.api.context.Context
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.event.CustomEvent
|
||||
import pw.binom.agui.api.event.RunStartedEvent
|
||||
import pw.binom.agui.api.run.RunAgentInput
|
||||
import pw.binom.agui.api.run.RunAgentParameters
|
||||
import pw.binom.agui.api.run.randomRunId
|
||||
import pw.binom.agui.api.run.toParameters
|
||||
import pw.binom.agui.api.run.toRunAgentInput
|
||||
import pw.binom.agui.api.tool.Tool
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.toList
|
||||
import kotlinx.coroutines.test.runTest
|
||||
+23
-23
@@ -1,27 +1,27 @@
|
||||
package com.agui.api
|
||||
package pw.binom.agui.api
|
||||
|
||||
import com.agui.api.event.BaseEvent
|
||||
import com.agui.api.event.CustomEvent
|
||||
import com.agui.api.event.MessagesSnapshotEvent
|
||||
import com.agui.api.event.RawEvent
|
||||
import com.agui.api.event.RunErrorEvent
|
||||
import com.agui.api.event.RunFinishedEvent
|
||||
import com.agui.api.event.RunStartedEvent
|
||||
import com.agui.api.event.StateDeltaEvent
|
||||
import com.agui.api.event.StateSnapshotEvent
|
||||
import com.agui.api.event.StepFinishedEvent
|
||||
import com.agui.api.event.StepStartedEvent
|
||||
import com.agui.api.event.TextMessageContentEvent
|
||||
import com.agui.api.event.TextMessageEndEvent
|
||||
import com.agui.api.event.TextMessageStartEvent
|
||||
import com.agui.api.event.ToolCallArgsEvent
|
||||
import com.agui.api.event.ToolCallEndEvent
|
||||
import com.agui.api.event.ToolCallResultEvent
|
||||
import com.agui.api.event.ToolCallStartEvent
|
||||
import com.agui.api.message.Message
|
||||
import com.agui.api.message.MessageRole
|
||||
import com.agui.api.serialization.AguiJson
|
||||
import com.agui.api.state.mutableState
|
||||
import pw.binom.agui.api.event.BaseEvent
|
||||
import pw.binom.agui.api.event.CustomEvent
|
||||
import pw.binom.agui.api.event.MessagesSnapshotEvent
|
||||
import pw.binom.agui.api.event.RawEvent
|
||||
import pw.binom.agui.api.event.RunErrorEvent
|
||||
import pw.binom.agui.api.event.RunFinishedEvent
|
||||
import pw.binom.agui.api.event.RunStartedEvent
|
||||
import pw.binom.agui.api.event.StateDeltaEvent
|
||||
import pw.binom.agui.api.event.StateSnapshotEvent
|
||||
import pw.binom.agui.api.event.StepFinishedEvent
|
||||
import pw.binom.agui.api.event.StepStartedEvent
|
||||
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.event.ToolCallArgsEvent
|
||||
import pw.binom.agui.api.event.ToolCallEndEvent
|
||||
import pw.binom.agui.api.event.ToolCallResultEvent
|
||||
import pw.binom.agui.api.event.ToolCallStartEvent
|
||||
import pw.binom.agui.api.message.Message
|
||||
import pw.binom.agui.api.message.MessageRole
|
||||
import pw.binom.agui.api.serialization.AguiJson
|
||||
import pw.binom.agui.api.state.mutableState
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
Reference in New Issue
Block a user