plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlin.serialization) } kotlin { jvmToolchain(21) // "Все возможные цели сборки": jvm + весь натив. Полный набор KMP-целей. jvm() macosX64() macosArm64() iosX64() iosArm64() iosSimulatorArm64() linuxX64() linuxArm64() mingwX64() sourceSets { commonMain.dependencies { api(libs.kotlinx.coroutines.core) api(libs.kotlinx.serialization.core) // для JsonElement в MessageContext.metadata api(libs.kotlinx.serialization.json) // Read-only storage handles, выставляемые через Agent.journal // и Agent.outbox. Типы JournalStore/OutboxStore фигурируют в // public-сигнатуре Agent, поэтому api-висимости. // // Линейный граф зависимостей (без циклов): // :proto ──► :content-api (Content/MessageContext/MessageOrigin/TurnTokens) // :proto ──► :outbox-api (нет обратной зависимости) // :proto ──► :journal-api (нет обратной зависимости) // Общие типы содержимого живут в низкоуровневом :content-api, // чтобы ими пользовались proto/journal/outbox без дублей и циклов. api(project(":content-api")) api(project(":journal-api")) api(project(":outbox-api")) } commonTest.dependencies { implementation(kotlin("test")) } } }