plugins { alias(libs.plugins.kotlin.multiplatform) } kotlin { jvmToolchain(21) jvm() macosX64() macosArm64() iosX64() iosArm64() iosSimulatorArm64() linuxX64() linuxArm64() mingwX64() sourceSets { commonMain.dependencies { // :proto — read-only Agent interface, который MutableAgent расширяет. // Через api(), иначе downstream-impl ChatAgent не сможет // override suspend-методы Agent. api(project(":proto")) // :memory-api — typealias ConversationTurn на memory-api одноимённый // класс, иначе пер-конво компоненты (skill mining, reflection) не // смогут передать его в SkillMiner.mine() напрямую. api(project(":memory-api")) // :litert-api — отсюда LiteTool, который ToolProvider.getTools() // возвращает напрямую. До v9 интерфейс не имел поля name, и был // промежуточный NamedTool(name, LiteTool); после v9 — лишний слой. api(libs.litert.api) // SystemPromptProvider.section() и другие нон-suspend сигнатуры пока // не дёргают корутины; kotlinx-coroutines нужен на будущее (suspend event // listener) — оставлен как api, чтобы downstream не забывал объявить. api(libs.kotlinx.coroutines.core) } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) } } }