d5e3f2dcef
Punkt 7 of NATIVE-COMPATIBILITY.md. Proto sources were already on
kotlin.time.Instant (migrated earlier); the kotlinx-datetime api dep
in :proto/build.gradle.kts and the implementation dep in
:standalone/build.gradle.kts were dead weight.
Dropped:
- api(libs.kotlinx.datetime) from proto/build.gradle.kts
- implementation(libs.kotlinx.datetime) from standalone/build.gradle.kts
- [versions] kotlinx-datetime and [libraries] kotlinx-datetime from
gradle/libs.versions.toml
Verification: ./gradlew :server:assemble (all 9 native targets) +
./gradlew :standalone:jvmTest (44/44 green, 0 failures) — both pass.
The kotlinx-datetime typealias was deprecated in 0.8.0 (memory #3708);
now nothing in agentik pulls the library.
93 lines
3.2 KiB
Kotlin
93 lines
3.2 KiB
Kotlin
@file:OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class)
|
|
|
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
alias(libs.plugins.kotlin.serialization)
|
|
alias(libs.plugins.sqldelight)
|
|
}
|
|
|
|
kotlin {
|
|
jvmToolchain(21)
|
|
|
|
jvm {
|
|
binaries {
|
|
executable {
|
|
mainClass.set("pw.binom.agentik.standalone.MainKt")
|
|
}
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
implementation(project(":proto"))
|
|
implementation(project(":server"))
|
|
|
|
// Commons
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
|
|
// litert-kmp: контракт (commonMain)
|
|
api(libs.litert.api)
|
|
|
|
// SQLDelight runtime (commonMain)
|
|
api(libs.sqldelight.runtime)
|
|
api(libs.sqldelight.coroutines)
|
|
}
|
|
|
|
jvmMain.dependencies {
|
|
// litert-openai: JVM-реализация
|
|
implementation(libs.litert.openai)
|
|
// litert-google: встроенный LiteRT-LM движок, нужен только на runtime
|
|
runtimeOnly(libs.litert.google)
|
|
|
|
// SQLDelight JDBC driver (JVM)
|
|
implementation(libs.sqldelight.sqlite.driver)
|
|
|
|
// Ktor server (для :server facade + a2aServer)
|
|
// Используем CIO вместо Netty — он KMP (jvm + linuxX64/ios/...), нам нужен
|
|
// для будущей native-сборки; на JVM работает идентично для нашего сценария.
|
|
implementation(libs.ktor.server.core)
|
|
implementation(libs.ktor.server.sse)
|
|
implementation(libs.ktor.server.cio)
|
|
implementation(libs.ktor.server.content.negotiation)
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
|
|
// Транспортные фасады
|
|
implementation(libs.agui.server)
|
|
implementation(libs.a2a.server)
|
|
|
|
// MCP (Model Context Protocol) клиент — подключение внешних/внутренних MCP-серверов
|
|
implementation(libs.mcp.sdk.client)
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.cio)
|
|
implementation(libs.ktor.client.content.negotiation)
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
}
|
|
|
|
commonTest.dependencies {
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.kotlin.test)
|
|
}
|
|
|
|
jvmTest.dependencies {
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.kotlin.test)
|
|
// Ktor test engine для smoke-тестов HTTP
|
|
implementation(libs.ktor.server.test.host)
|
|
}
|
|
}
|
|
}
|
|
|
|
sqldelight {
|
|
databases {
|
|
create("AgentikDatabase") {
|
|
packageName.set("pw.binom.agentik.standalone.persistence.sqlite")
|
|
srcDirs.setFrom("src/jvmMain/sqldelight")
|
|
}
|
|
}
|
|
}
|