chore(deps): refactor ksqlite dependency to use version catalog

This commit is contained in:
2026-09-24 16:12:28 +03:00
parent f191387e99
commit 4156e5f95f
9 changed files with 40 additions and 18 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ kotlin {
implementation(libs.ktor.server.sse)
}
jvmTest.dependencies {
implementation("junit:junit:4.13.2")
implementation(libs.junit)
}
}
+2 -2
View File
@@ -21,9 +21,9 @@ kotlin {
sourceSets {
commonMain.dependencies {
// ksqlite 0.1.3 опубликован в Maven Central — обычный
// ksqlite живёт в libs.versions.toml (см. catalog) — обычный
// `mavenCentral()` в settings.gradle.kts его подтянет.
implementation("pw.binom.db:ksqlite:0.1.3")
implementation(libs.ksqlite)
implementation(libs.kotlinx.serialization.json)
api(project(":context-api"))
+10
View File
@@ -16,6 +16,8 @@ logback = "1.5.18"
mosaic = "0.18.0"
clikt = "5.0.3"
kotlinx-cli = "0.3.6"
ksqlite = "0.1.3"
junit = "4.13.2"
[plugins]
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
@@ -96,6 +98,14 @@ kotlinx-io-core = { module = "org.jetbrains.kotlinx:kotlinx-io-core", version.re
# --- kMMIO (dev.karmakrafts.kmmio) — резерв под будущую vector-DB, пока не используется ---
# kmmio-core = { module = "dev.karmakrafts.kmmio:kmmio-core", version = "2.3.1" }
# --- ksqlite (pw.binom.db) — KMP SQLite со встроенным sqlite-vec (https://github.com/caffeine-mgn/ksqlite).
# Тянется как обычная `implementation(libs.ksqlite)` — Gradle Module Metadata резолвит per-target
# variant (ksqlite-jvm / ksqlite-linuxx64 / ksqlite-mingwx64 / ...).
ksqlite = { module = "pw.binom.db:ksqlite", version.ref = "ksqlite" }
# --- JUnit 4 — legacy test framework (используется в :client для совместимости с ktor-server-test-host). ---
junit = { module = "junit:junit", version.ref = "junit" }
# --- JVector (io.github.jbellis) — embedded ANN-индекс для vector-бэкенда памяти. JVM-only. ---
jvector = { module = "io.github.jbellis:jvector", version.ref = "jvector" }
+2 -2
View File
@@ -20,9 +20,9 @@ kotlin {
sourceSets {
commonMain.dependencies {
// ksqlite 0.1.3 опубликован в Maven Central — обычный
// ksqlite живёт в libs.versions.toml (см. catalog) — обычный
// `mavenCentral()` в settings.gradle.kts его подтянет.
implementation("pw.binom.db:ksqlite:0.1.3")
implementation(libs.ksqlite)
implementation(libs.kotlinx.serialization.json)
api(project(":journal-api"))
+2 -2
View File
@@ -30,9 +30,9 @@ kotlin {
sourceSets {
commonMain.dependencies {
// ksqlite 0.1.3 опубликован в Maven Central — обычный
// ksqlite живёт в libs.versions.toml (см. catalog) — обычный
// `mavenCentral()` в settings.gradle.kts его подтянет.
implementation("pw.binom.db:ksqlite:0.1.3")
implementation(libs.ksqlite)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.io.core)
+3 -3
View File
@@ -9,7 +9,7 @@ plugins {
// других ksqlite-модулях; этот модуль не претендует на полную схему агента.
//
// Цели сборки — jvm() + linuxX64() + mingwX64(); Apple targets auto-disabled
// на Linux (ksqlite 0.1.3 не публикует native артефакты для Apple).
// на Linux (ksqlite не публикует native артефакты для Apple).
kotlin {
jvmToolchain(21)
@@ -20,9 +20,9 @@ kotlin {
sourceSets {
commonMain.dependencies {
// ksqlite 0.1.3 опубликован в Maven Central — обычный
// ksqlite живёт в libs.versions.toml (см. catalog) — обычный
// `mavenCentral()` в settings.gradle.kts его подтянет.
implementation("pw.binom.db:ksqlite:0.1.3")
implementation(libs.ksqlite)
api(project(":reflection-api"))
// :reflection-api ссылается на :journal-api типы в сигнатурах
+1 -1
View File
@@ -70,7 +70,7 @@ kotlin {
// ksqlite объявлен как `implementation` (не `api`) в каждом
// ksqlite-модуле, поэтому SqliteStores здесь использует
// SQLiteConnection напрямую — фиксируем зависимость явно.
implementation("pw.binom.db:ksqlite:0.1.3")
implementation(libs.ksqlite)
// Bounded-tail live event stream + per-event TTL.
implementation(project(":outbox-inmemory"))
@@ -33,6 +33,7 @@ import pw.binom.agentik.mcp.bridge.McpRegistry
import pw.binom.agentik.standalone.persistence.SqliteStores
import java.io.File
import pw.binom.agentik.skill.mining.SkillMiner
/**
* standalone-контейнер agentik:
* - :server (proto): встраиваемый Ktor (CIO), порт AGENTIK_PORT (default 8080)
@@ -67,10 +68,12 @@ fun main(args: Array<String>) {
runPullModel(args.drop(1))
return
}
"--help", "-h", "help" -> {
printHelp()
return
}
else -> {
System.err.println("Unknown subcommand: ${args[0]}")
printHelp()
@@ -82,11 +85,13 @@ fun main(args: Array<String>) {
}
private fun printHelp() {
println("""
println(
"""
agentik standalone — usage:
java -jar agentik.jar Start HTTP server (A2A + :proto)
java -jar agentik.jar pull-model Download the LiteRT-LM model from static.binom.pw
""".trimIndent())
""".trimIndent()
)
}
/**
@@ -245,6 +250,7 @@ private fun runServer() {
println(" memory: disabled")
null
}
MemoryBackend.MD -> {
if (rawMemory.equals("off", ignoreCase = true)) {
println(" memory: disabled (memoryDir=off)")
@@ -256,6 +262,7 @@ private fun runServer() {
}
}
}
MemoryBackend.VECTOR -> {
val embedding: pw.binom.agentik.memory.TextEmbeddingExecutor = when (config.embedding.backend) {
AppConfig.EmbeddingBackend.HTTP -> {
@@ -274,6 +281,7 @@ private fun runServer() {
dimension = config.embedding.dimension,
).asExecutor()
}
AppConfig.EmbeddingBackend.SIGLIP -> {
val modelPath = checkNotNull(config.embedding.modelPath) {
"AGENTIK_EMBEDDING_BACKEND=siglip требует AGENTIK_EMBEDDING_MODEL_PATH"
@@ -291,12 +299,14 @@ private fun runServer() {
val backendLabel = when (config.embedding.backend) {
AppConfig.EmbeddingBackend.HTTP ->
"model=${config.embedding.model}, dim=${config.embedding.dimension}"
AppConfig.EmbeddingBackend.SIGLIP ->
"model=siglip2-base (on-device), dim=${embedding.dimension}"
}
println(" memory: db=${config.agent.dbPath} (vector-backend, $backendLabel)")
}
}
MemoryBackend.HYBRID -> {
// Гибрид: .md файлы (single source of truth) + ksqlite vector-кэш.
// Нужны embeddings (HTTP/SIGLIP) + путь к vector-БД (по умолчанию рядом с agentik.db).
@@ -314,6 +324,7 @@ private fun runServer() {
dimension = config.embedding.dimension,
).asExecutor()
}
AppConfig.EmbeddingBackend.SIGLIP -> {
val modelPath = checkNotNull(config.embedding.modelPath) {
"AGENTIK_EMBEDDING_BACKEND=siglip требует AGENTIK_EMBEDDING_MODEL_PATH"
+6 -5
View File
@@ -7,9 +7,10 @@ plugins {
// обычная SQLite БД. Подходит для small-to-medium масштабов (≤10K записей на
// embedding ~512d); для больших датасетов — sqlite-vec или JVector.
//
// Цели сборки — только те, для которых ksqlite 0.1.3 опубликован в Maven Central:
// jvm + linuxX64/Arm64 + mingwX64. Apple/iOS/tvOS/watchOS — НЕ публикуются;
// для них использовать JVM-only `:vector-index-jvector`.
// Цели сборки — только те, для которых ksqlite опубликован в Maven Central
// (см. libs.versions.toml): jvm + linuxX64/Arm64 + mingwX64.
// Apple/iOS/tvOS/watchOS — НЕ публикуются; для них использовать
// JVM-only `:vector-index-jvector`.
kotlin {
jvmToolchain(21)
@@ -20,8 +21,8 @@ kotlin {
sourceSets {
commonMain.dependencies {
// ksqlite 0.1.3 опубликован в Maven Central.
implementation("pw.binom.db:ksqlite:0.1.3")
// ksqlite живёт в libs.versions.toml (см. catalog).
implementation(libs.ksqlite)
api(project(":vector-index-api"))
}
commonTest.dependencies {