93 lines
4.1 KiB
Kotlin
93 lines
4.1 KiB
Kotlin
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)
|
||
}
|