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