plugins { alias(libs.plugins.kotlin.multiplatform) } // :memory-md-vector — гибридное хранилище памяти: // // .md файлы (:memory-md, single source of truth) // ↓ reconcile() на старте // sqlite vector index (ksqlite + sqlite-vec vec0, derived cache) // // `.md` — единственный источник правды по метаданным и тексту заметок. // Вектора — derived cache, перестраивается на старте и при `upsert`/`delete`. // // ANN-поиск: vector KNN (sqlite-vec MATCH) → top-50 → keyword rerank // через `MdMemoryFormat.keywordScore` (vector 0.7 + keyword 0.3). // // Цели сборки — KMP: jvm() + linuxX64() + mingwX64(). До 2026-09-21 был // JVM-only, потому что тащил `EmbeddingProvider` из JVM-only `:memory-vector`. // С переходом на `TextEmbeddingExecutor` (из `:memory-api`, который тянет // `pw.binom.ai.embeddingtext:api` — теперь KMP) модуль стал платформо- // независимым. Под нативом тесты работают с `FakeTextEmbeddingExtractor`; // прод-реализация (`:siglip` модуль text-embedding-kmp) пока JVM+Android only. kotlin { jvmToolchain(21) jvm() linuxX64() mingwX64() sourceSets { commonMain.dependencies { // ksqlite 0.1.2 опубликован в Maven Central — обычный // `mavenCentral()` в settings.gradle.kts его подтянет. implementation("pw.binom.db:ksqlite:0.1.2") implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.io.core) api(project(":memory-api")) implementation(project(":memory-md")) // `text-embedding-api` тянется транзитивно через `:memory-api` // (мы добавили `api(libs.text.embedding.api)` в memory-api/build.gradle.kts). // Раньше тут стоял `implementation(project(":memory-vector"))` ради // `EmbeddingProvider` — JVM-only модуль с JVector. Теперь не нужен. } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) } } }