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 ──► :outbox-api (нет обратной зависимости) // :proto ──► :journal-api (нет обратной зависимости) // Добились переносом AgentEvent/CommonEvent/Event из :proto в // :outbox-api — они теперь self-contained в outbox (не нужны // :proto-типы), а :proto использует их через :outbox-api. api(project(":journal-api")) api(project(":outbox-api")) } commonTest.dependencies { implementation(kotlin("test")) } } }