Files
agentik-android/app/build.gradle.kts
T

93 lines
4.1 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.kotlin.serialization)
}
android {
namespace = "pw.binom.agentik.android"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
applicationId = "pw.binom.agentik.android"
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = (project.findProperty("versionCode") as? String)?.toIntOrNull() ?: 1
versionName = (project.findProperty("versionName") as? String) ?: "1.0.0"
}
buildTypes {
release {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
buildFeatures {
compose = true
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
excludes += "/META-INF/INDEX.LIST"
excludes += "/META-INF/DEPENDENCIES"
}
}
}
dependencies {
// Ядро агента (Nexus caffeine). Тянет :proto, :journal-api (транзитивно в v9), ktor-client-core и т.д.
implementation(libs.agentik.client)
// journal-api объявлен отдельно, чтобы IDE/компилятор видел MessageRecord в AgentMappers
// (транзитивная зависимость в v9, но прямой импорт делаем явным).
implementation(libs.agentik.journal.api)
// InMemoryJournalStore — RAM-кэш истории для HttpChatSession. Персистентный
// кэш (SQLite) подключим отдельной задачей.
implementation(libs.agentik.journal.inmemory)
// Persistent journal-кеш через ksqlite. Подменяет InMemoryJournalStore —
// история сообщений переживает kill приложения. Начиная с journal-ksqlite:12
// конструктор `KsqliteJournalStore(path)` публичный — рефлексия и
// явная зависимость `pw.binom.db:ksqlite` больше не нужны.
implementation(libs.agentik.journal.ksqlite)
// ksqlite опубликован в Maven Central (0.1.2). Наш ConversationMetaRepository
// работает с SQLiteConnection напрямую — общая абстракция
// :journal-ksqlite (MutableJournalStore) про метаданные диалогов не знает.
// Декларируем явно, чтобы транзитивная compile-api за journal-ksqlite не
// подсунула несовместимую версию.
implementation(libs.ksqlite)
// ASR-стек: модель Qwen3-ASR на устройстве (auto-download через QwenModelProvider).
implementation(libs.asr.qwen3)
implementation(libs.mic.api)
implementation(libs.androidx.work.runtime.ktx)
// Markdown-парсер (ru.otpbank.ai:markdown) — нужно для рендеринга
// сообщений ассистента. Хостится в нашем Nexus (см. settings.gradle.kts).
implementation(libs.ru.otpbank.markdown)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.material.icons.extended)
debugImplementation(libs.androidx.compose.ui.tooling)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.okhttp)
}