[versions] kotlin = "2.4.20" kotlinx-coroutines = "1.11.0" kotlinx-serialization = "1.11.0" ksqlite = "0.1.3" # Ktor — версия из agentik (там же живут `:client`-модули, engine выбирает # потребитель; CIO — то, что agentik использует в собственных тестах). ktor = "3.1.3" kotlin-logging = "3.0.5" logback = "1.5.18" junit = "5.10.2" # Compose Multiplatform — версия взята из assistent (`compose-multiplatform`, # там с ней собирается клиент), совместима с Kotlin 2.4.x. compose-multiplatform = "1.7.3" # Обёртка над JetBrains org.intellij.markdown (GFM), живёт в корпоративном # developerspace Nexus (см. settings.gradle.kts), не в Maven Central. markdown = "0.51.0" # Голос: всё опубликовано в caffeine Nexus (см. MIC-ASR-SEARCH.md). # mic-api — поток микрофона (JVM: javax.sound.sampled), версия 1.0.0. mic = "1.0.0" # asr-api — интерфейс Stt (feed/partialText/finalText), движки в отдельных # артефактах; версия 4 — та, что использует agentik-android. asr = "4" # VAD (Silero) — модель внутри артефакта, ничего качать не надо. vad = "2" [libraries] # --- Agentik модули (composite build ../agentik, group = "pw.binom.agentik") --- # Эти артефакты резолвятся через `includeBuild("../agentik")` в settings.gradle.kts — # agentik публикует свои модули с group = "pw.binom.agentik", артефакт-id = # имени Gradle-модуля. Подключаем точечно только то что реально нужно десктопу. agentik-client = { module = "pw.binom.agentik:client" } agentik-journal-api = { module = "pw.binom.agentik:journal-api" } agentik-journal-ksqlite = { module = "pw.binom.agentik:journal-ksqlite" } agentik-outbox-api = { module = "pw.binom.agentik:outbox-api" } agentik-proto = { module = "pw.binom.agentik:proto" } # Только для тестов: поднять настоящий HTTP/SSE-фасад `:server` поверх # in-memory-агента и прогнать десктопный стек против живого протокола. agentik-server = { module = "pw.binom.agentik:server" } agentik-journal-inmemory = { module = "pw.binom.agentik:journal-inmemory" } agentik-outbox-inmemory = { module = "pw.binom.agentik:outbox-inmemory" } # --- Ktor client engine: нужен AgentikAgent(...) как `engineFactory`. --- # `:client` объявляет ktor-client-core как `api`, но engine — выбор потребителя. ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } # --- Ktor server engine (только тесты): embeddedServer(CIO) для E2E. --- ktor-server-cio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" } # --- ksqlite (pw.binom.db) — KMP SQLite с sqlite-vec. # Резолвится из caffeine Nexus (см. settings.gradle.kts); GMM выбирает jvm-variant. ksqlite = { module = "pw.binom.db:ksqlite", version.ref = "ksqlite" } # --- Kotlinx (KMP-артефакты, Gradle сам разруливает per-target variants) --- kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } # --- Логирование: kotlin-logging + logback (binding) --- kotlin-logging = { module = "io.github.microutils:kotlin-logging", version.ref = "kotlin-logging" } logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } # --- Markdown: парсер/модель сегментов (обёртка над org.intellij.markdown) --- markdown = { module = "ru.otpbank.ai:markdown", version.ref = "markdown" } # --- Голос: микрофон → VAD → распознавание (всё из caffeine Nexus) --- # mic-api публикует KMP-метаданные + `-jvm`/`-android` варианты; GMM выберет jvm. mic-api = { module = "pw.binom.mic:mic-api", version.ref = "mic" } # asr-api — только интерфейс `Stt`; конкретный движок подключаем отдельно. asr-api = { module = "pw.binom.asr:asr-api", version.ref = "asr" } # asr-vosk — Vosk: модель распаковывается из артефакта, скачивать нечего. asr-vosk = { module = "pw.binom.asr:asr-vosk", version.ref = "asr" } # VAD — детектор речи (Silero), модель внутри артефакта. vad = { module = "pw.binom.voice.vad:vad", version.ref = "vad" } # --- Тесты --- junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } [plugins] # Kotlin Multiplatform — фундамент; конкретные цели объявляются в build.gradle.kts kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } # Compose Compiler plugin — обязателен для @Composable. Версионируется вместе # с Kotlin; без него @Composable-лямбды ломаются (Function0 вместо Function2). kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } # Compose Multiplatform plugin — приносит `compose.material3` / `compose.ui` / # `compose.materialIconsExtended` и desktop-инфраструктуру. compose = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }