e816d8d9d1
1. UUID: java.util.UUID.randomUUID() → commonMain helper Ids.new(prefix)
wrapping kotlin.uuid.Uuid.random(). kotlin.uuid is stdlib (KMP: jvm +
all native targets), so the call sites (ChatAgent, ChatConversation,
SqliteWorkingMemoryStore) are now ready for native builds. Format kept:
'<prefix>-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.
2. HTTP engine: ktor-server-netty → ktor-server-cio. Netty is JVM-only;
CIO is KMP (jvm, linuxX64, ios, etc.) and feature-complete for our
needs (POST + SSE). standalone/build.gradle.kts drops netty and adds
cio; Main.kt imports io.ktor.server.cio.CIO and calls
embeddedServer(CIO, port = port).
Netty is left in libs.versions.toml (catalog entry kept) in case anyone
needs to fall back; only :standalone stopped depending on it.
E2E verified end-to-end against litellm local/codding: standalone-1.0.0
tarball starts on AGENTIK_PORT, GET /health -> 'ok', POST
/agentik/conversations -> 201 with new UUID-format id, POST .../messages
returns real LLM answer ('Ассистент'). 44/44 unit tests green.
62 lines
3.5 KiB
TOML
62 lines
3.5 KiB
TOML
[versions]
|
|
kotlin = "2.4.20"
|
|
kotlinx-serialization = "1.11.0"
|
|
kotlinx-coroutines = "1.11.0"
|
|
kotlinx-datetime = "0.8.0"
|
|
ktor = "3.1.3"
|
|
agui = "0.1.0"
|
|
a2a = "1.0.0-SNAPSHOT"
|
|
litert = "7"
|
|
sqldelight = "2.3.2"
|
|
|
|
[plugins]
|
|
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
|
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }
|
|
|
|
[libraries]
|
|
# --- AG-UI (pw.binom.agui) — KMP: jvm + native ---
|
|
agui-api = { module = "pw.binom.agui:api", version.ref = "agui" }
|
|
agui-client = { module = "pw.binom.agui:client", version.ref = "agui" }
|
|
agui-server = { module = "pw.binom.agui:server", version.ref = "agui" }
|
|
|
|
# --- A2A (pw.binom.a2a) — shared: KMP (jvm + linuxX64); client/server: JVM-only ---
|
|
a2a-shared = { module = "pw.binom.a2a:shared", version.ref = "a2a" }
|
|
a2a-client = { module = "pw.binom.a2a:client", version.ref = "a2a" }
|
|
a2a-server = { module = "pw.binom.a2a:server", version.ref = "a2a" }
|
|
|
|
# --- litert-kmp (pw.binom.litert) — universal LLM wrapper ---
|
|
litert-api = { module = "pw.binom.litert:litert-api", version.ref = "litert" }
|
|
litert-openai = { module = "pw.binom.litert:litert-openai-jvm", version.ref = "litert" }
|
|
litert-google = { module = "pw.binom.litert:litert-google", version.ref = "litert" }
|
|
|
|
# --- SQLDelight (app.cash.sqldelight) — KMP SQLite, JDBC driver ---
|
|
sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version.ref = "sqldelight" }
|
|
sqldelight-sqlite-driver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" }
|
|
sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqldelight" }
|
|
|
|
# --- Ktor (сервер) ---
|
|
ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktor" }
|
|
ktor-server-sse = { module = "io.ktor:ktor-server-sse", version.ref = "ktor" }
|
|
ktor-server-cio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" }
|
|
ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
|
|
ktor-server-content-negotiation = { module = "io.ktor:ktor-server-content-negotiation", version.ref = "ktor" }
|
|
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
|
|
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
|
|
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }
|
|
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
|
|
ktor-server-test-host = { module = "io.ktor:ktor-server-test-host", version.ref = "ktor" }
|
|
ktor-client-sse = { module = "io.ktor:ktor-client-sse", version.ref = "ktor" }
|
|
|
|
# --- Model Context Protocol (MCP) ---
|
|
mcp-sdk-client = { module = "io.modelcontextprotocol:kotlin-sdk-client", version = "0.15.0" }
|
|
|
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
|
|
|
# --- commons ---
|
|
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
|
|
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" }
|
|
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
|
|
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
|